]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
[AArch64] Wire up TARGET_SIMD and TARGET_FLOAT properly
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>
Thu, 24 Apr 2014 08:22:43 +0000 (08:22 +0000)
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>
Thu, 24 Apr 2014 08:22:43 +0000 (08:22 +0000)
* config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
(TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
(TARGET_FLOAT): Take AARCH64_ISA_FP into account.
(TARGET_CRYPTO): Take TARGET_SIMD into account.

From-SVN: r209737

gcc/ChangeLog
gcc/config/aarch64/aarch64.h

index 6b419f22082dc261a3c48839cba0221c7c48159e..8db713b8b5e004cb41a714a650664dab9fd59912 100644 (file)
@@ -1,3 +1,11 @@
+2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
+       TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
+       (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
+       (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
+       (TARGET_CRYPTO): Take TARGET_SIMD into account.
+
 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
 
        * config/aarch64/aarch64-builtins.c
index b87473b3df5b24756176f5ddd36bca9448e1b75f..e2b6c8e2908fc94001b5abe93ba75c95bd9fcf75 100644 (file)
@@ -32,7 +32,7 @@
       else                                             \
        builtin_define ("__AARCH64EL__");               \
                                                        \
-      if (!TARGET_GENERAL_REGS_ONLY)                   \
+      if (TARGET_SIMD)                                 \
        builtin_define ("__ARM_NEON");                  \
                                                        \
       switch (aarch64_cmodel)                          \
@@ -83,9 +83,9 @@
 #define WORDS_BIG_ENDIAN (BYTES_BIG_ENDIAN)
 
 /* AdvSIMD is supported in the default configuration, unless disabled by
-   -mgeneral-regs-only.  */
-#define TARGET_SIMD !TARGET_GENERAL_REGS_ONLY
-#define TARGET_FLOAT !TARGET_GENERAL_REGS_ONLY
+   -mgeneral-regs-only or by the +nosimd extension.  */
+#define TARGET_SIMD (!TARGET_GENERAL_REGS_ONLY && AARCH64_ISA_SIMD)
+#define TARGET_FLOAT (!TARGET_GENERAL_REGS_ONLY && AARCH64_ISA_FP)
 
 #define UNITS_PER_WORD         8
 
@@ -185,8 +185,8 @@ extern unsigned long aarch64_isa_flags;
 extern unsigned long aarch64_tune_flags;
 #define AARCH64_TUNE_SLOWMUL       (aarch64_tune_flags & AARCH64_FL_SLOWMUL)
 
-/* Crypto is an optional feature.  */
-#define TARGET_CRYPTO AARCH64_ISA_CRYPTO
+/* Crypto is an optional extension to AdvSIMD.  */
+#define TARGET_CRYPTO (TARGET_SIMD && AARCH64_ISA_CRYPTO)
 
 /* Standard register usage.  */