Hi,

Following discussions after Thomas's patches improving bswap support
https://gcc.gnu.org/ml/gcc-patches/2014-09/msg01279.html

I noticed that:
* the associated tests weren't executed on aarch64_be
* ARM targets older than v6 do not support the needed instructions.

The attached patch changes check_effective_target_bswap():
- accept aarch64*-*-* instead of aarch64-*-*
- when target is arm*-*-*, check __ARM_ARCH >= 6

2014-10-29  Christophe Lyon  <christophe.l...@linaro.org>

    * lib/target-supports.exp (check_effective_target_bswap): Update
    conditions for AArch64 and ARM targets.

OK?

Christophe.
diff --git a/gcc/testsuite/lib/target-supports.exp 
b/gcc/testsuite/lib/target-supports.exp
index 4398345..80ff52d 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -4892,9 +4892,8 @@ proc check_effective_target_bswap { } {
         verbose "check_effective_target_bswap: using cached result" 2
     } else {
        set et_bswap_saved 0
-       if { [istarget aarch64-*-*]
+       if { [istarget aarch64*-*-*]
             || [istarget alpha*-*-*]
-            || [istarget arm*-*-*]
             || [istarget i?86-*-*]
             || [istarget m68k-*-*]
             || [istarget powerpc*-*-*]
@@ -4902,6 +4901,16 @@ proc check_effective_target_bswap { } {
             || [istarget s390*-*-*]
             || [istarget x86_64-*-*] } {
            set et_bswap_saved 1
+       } else {
+           if { [istarget arm*-*-*]
+                && [check_no_compiler_messages_nocache arm_v6_or_later object {
+                    #if __ARM_ARCH < 6
+                    #error not armv6 or later
+                    #endif
+                    int i;
+                } ""] } {
+               set et_bswap_saved 1
+           }
        }
     }
 

Reply via email to