Hi all,

This patch will ensure testsuite/gcc.target/arm/fixed_float_conversion.c is checked only when "-mfpu=vfp3 -mfloat-abi=softfp" is applicable for the target.

Accordingly, two procs (check_effective_target_arm_vfp3_ok and add_options_for_arm_vfp3) are added into gcc/testsuite/lib/target-supports.exp.

I have also update related documentation.

Okay for trunk?

Kind regards,
Renlin Li


gcc/testsuite/ChangeLog:

2014-02-03  Renlin Li  <renlin...@arm.com>

* gcc.target/arm/fixed_float_conversion.c: Add arm_vfp3 option to the test case.
    * lib/target-supports.exp: check_effective_target_arm_vfp3_ok: New.
    add_options_for_arm_vfp3: New.


gcc/ChangeLog:

2014-02-03  Renlin Li  <renlin...@arm.com>

    * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
    add_options_for_arm_vfp3
diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi
index f9bc880..1ea5753 100644
--- a/gcc/doc/sourcebuild.texi
+++ b/gcc/doc/sourcebuild.texi
@@ -1551,6 +1551,10 @@ ARM target generates Thumb-2 code for @code{-mthumb}.
 ARM target supports @code{-mfpu=vfp -mfloat-abi=softfp}.
 Some multilibs may be incompatible with these options.
 
+@item arm_vfp3_ok
+ARM target supports @code{-mfpu=vfp3 -mfloat-abi=softfp}.
+Some multilibs may be incompatible with these options.
+
 @item arm_v8_vfp_ok
 ARM target supports @code{-mfpu=fp-armv8 -mfloat-abi=softfp}.
 Some multilibs may be incompatible with these options.
@@ -1954,6 +1958,10 @@ NEON and half-precision floating point support.  Only ARM targets
 support this feature, and only then in certain modes; see
 the @ref{arm_neon_ok,,arm_neon_fp16_ok effective target keyword}.
 
+@item arm_vfp3
+arm vfp3 floating point support; see
+the @ref{arm_vfp3_ok,,arm_vfp3_ok effective target keyword}.
+
 @item bind_pic_locally
 Add the target-specific flags needed to enable functions to bind
 locally when using pic/PIC passes in the testsuite.
diff --git a/gcc/testsuite/gcc.target/arm/fixed_float_conversion.c b/gcc/testsuite/gcc.target/arm/fixed_float_conversion.c
index a8befd0..078b103 100644
--- a/gcc/testsuite/gcc.target/arm/fixed_float_conversion.c
+++ b/gcc/testsuite/gcc.target/arm/fixed_float_conversion.c
@@ -1,7 +1,8 @@
 /* Check that vcvt is used for fixed and float data conversions.  */
 /* { dg-do compile } */
-/* { dg-options "-O1 -mfpu=vfp3" } */
-/* { dg-require-effective-target arm_vfp_ok } */
+/* { dg-require-effective-target arm_vfp3_ok } */
+/* { dg-options "-O1" } */
+/* { dg-add-options arm_vfp3 } */
 
 float
 fixed_to_float (int i)
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 5166679..4164d1b 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -2245,6 +2245,19 @@ proc check_effective_target_arm_vfp_ok { } {
     }
 }
 
+# Return 1 if this is an ARM target supporting -mfpu=vfp3
+# -mfloat-abi=softfp.
+
+proc check_effective_target_arm_vfp3_ok { } {
+    if { [check_effective_target_arm32] } {
+	return [check_no_compiler_messages arm_vfp3_ok object {
+	    int dummy;
+	} "-mfpu=vfp3 -mfloat-abi=softfp"]
+    } else {
+	return 0
+    }
+}
+
 # Return 1 if this is an ARM target supporting -mfpu=fp-armv8
 # -mfloat-abi=softfp.
 proc check_effective_target_arm_v8_vfp_ok {} {
@@ -2373,6 +2386,14 @@ proc add_options_for_arm_neonv2 { flags } {
     return "$flags $et_arm_neonv2_flags"
 }
 
+# Add the options needed for vfp3.
+proc add_options_for_arm_vfp3 { flags } {
+    if { ! [check_effective_target_arm_vfp3_ok] } {
+        return "$flags"
+    }
+    return "$flags -mfpu=vfp3 -mfloat-abi=softfp"
+}
+
 # Return 1 if this is an ARM target supporting -mfpu=neon
 # -mfloat-abi=softfp or equivalent options.  Some multilibs may be
 # incompatible with these options.  Also set et_arm_neon_flags to the

Reply via email to