OSDN Git Service

* lib/target-supports.exp
authormacro <macro@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 21 Aug 2009 22:13:56 +0000 (22:13 +0000)
committermacro <macro@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 21 Aug 2009 22:13:56 +0000 (22:13 +0000)
(check_effective_target_arm_iwmmxt_ok): New procedure.
* gcc.target/arm/mmx-1.c: Only run if arm_iwmmxt_ok.  Remove the
exclusions for -mfloat-abi=softfp and -mfloat-abi=hard.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@151003 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/arm/mmx-1.c
gcc/testsuite/lib/target-supports.exp

index 1dada40..90308c9 100644 (file)
@@ -1,3 +1,10 @@
+2009-08-21  Maciej W. Rozycki  <macro@codesourcery.com>
+
+       * lib/target-supports.exp
+       (check_effective_target_arm_iwmmxt_ok): New procedure.
+       * gcc.target/arm/mmx-1.c: Only run if arm_iwmmxt_ok.  Remove the
+       exclusions for -mfloat-abi=softfp and -mfloat-abi=hard.
+
 2009-08-21  Uros Bizjak  <ubizjak@gmail.com>
 
        * gfortran.dg/boz_9.f90: Do not generate denormal floating
index 5d51bd7..c2eca7f 100644 (file)
@@ -3,11 +3,10 @@
 /* { dg-do compile } */
 /* { dg-skip-if "Test is specific to the iWMMXt" { arm*-*-* } { "-mcpu=*" } { "-mcpu=iwmmxt" } } */
 /* { dg-skip-if "Test is specific to the iWMMXt" { arm*-*-* } { "-mabi=*" } { "-mabi=iwmmxt" } } */
-/* { dg-skip-if "Test is specific to the iWMMXt" { arm*-*-* } { "-mfloat-abi=softfp" } { "" } } */
-/* { dg-skip-if "Test is specific to the iWMMXt" { arm*-*-* } { "-mfloat-abi=hard" } { "" } } */
 /* { dg-skip-if "Test is specific to the iWMMXt" { arm*-*-* } { "-march=*" } { "-march=iwmmxt" } } */
 /* { dg-options "-O -mno-apcs-frame -mcpu=iwmmxt -mabi=iwmmxt" } */
 /* { dg-require-effective-target arm32 } */
+/* { dg-require-effective-target arm_iwmmxt_ok } */
 /* { dg-final { scan-assembler "ldmfd\[        ]sp!.*ip,\[ ]*pc" } } */
 
 /* This function uses all the call-saved registers, namely r4, r5, r6,
index f361acc..76624ad 100644 (file)
@@ -1620,6 +1620,19 @@ proc check_effective_target_arm_eabi { } {
     }]
 }
 
+# Return 1 if this is an ARM target supporting -mcpu=iwmmxt.
+# Some multilibs may be incompatible with this option.
+
+proc check_effective_target_arm_iwmmxt_ok { } {
+    if { [check_effective_target_arm32] } {
+       return [check_no_compiler_messages arm_iwmmxt_ok object {
+           int dummy;
+       } "-mcpu=iwmmxt"]
+    } else {
+       return 0
+    }
+}
+
 # Return 1 if this is a PowerPC target with floating-point registers.
 
 proc check_effective_target_powerpc_fprs { } {