diff options
author | Kyrylo Tkachov <kyrylo.tkachov@arm.com> | 2014-04-24 08:22:43 +0000 |
---|---|---|
committer | Kyrylo Tkachov <ktkachov@gcc.gnu.org> | 2014-04-24 08:22:43 +0000 |
commit | 683e3333a78857f44f03bd05a683130f527b5ad0 (patch) | |
tree | 7cb29b7192ceca33c75e80b4b38d735e157e1e38 /gcc | |
parent | c7f28cd58e12391f8e4e5c50968ed1c76ddbddb0 (diff) | |
download | gcc-683e3333a78857f44f03bd05a683130f527b5ad0.zip gcc-683e3333a78857f44f03bd05a683130f527b5ad0.tar.gz gcc-683e3333a78857f44f03bd05a683130f527b5ad0.tar.bz2 |
[AArch64] Wire up TARGET_SIMD and TARGET_FLOAT properly
* 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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64.h | 12 |
2 files changed, 14 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6b419f2..8db713b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,13 @@ 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 (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16, BUILT_IN_BSWAP32, BUILT_IN_BSWAP64. diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h index b87473b..e2b6c8e 100644 --- a/gcc/config/aarch64/aarch64.h +++ b/gcc/config/aarch64/aarch64.h @@ -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. */ |