Commit 683e3333 by Kyrylo Tkachov Committed by Kyrylo Tkachov

[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
parent c7f28cd5
2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 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 * config/aarch64/aarch64-builtins.c
(aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16, (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
BUILT_IN_BSWAP32, BUILT_IN_BSWAP64. BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
else \ else \
builtin_define ("__AARCH64EL__"); \ builtin_define ("__AARCH64EL__"); \
\ \
if (!TARGET_GENERAL_REGS_ONLY) \ if (TARGET_SIMD) \
builtin_define ("__ARM_NEON"); \ builtin_define ("__ARM_NEON"); \
\ \
switch (aarch64_cmodel) \ switch (aarch64_cmodel) \
...@@ -83,9 +83,9 @@ ...@@ -83,9 +83,9 @@
#define WORDS_BIG_ENDIAN (BYTES_BIG_ENDIAN) #define WORDS_BIG_ENDIAN (BYTES_BIG_ENDIAN)
/* AdvSIMD is supported in the default configuration, unless disabled by /* AdvSIMD is supported in the default configuration, unless disabled by
-mgeneral-regs-only. */ -mgeneral-regs-only or by the +nosimd extension. */
#define TARGET_SIMD !TARGET_GENERAL_REGS_ONLY #define TARGET_SIMD (!TARGET_GENERAL_REGS_ONLY && AARCH64_ISA_SIMD)
#define TARGET_FLOAT !TARGET_GENERAL_REGS_ONLY #define TARGET_FLOAT (!TARGET_GENERAL_REGS_ONLY && AARCH64_ISA_FP)
#define UNITS_PER_WORD 8 #define UNITS_PER_WORD 8
...@@ -185,8 +185,8 @@ extern unsigned long aarch64_isa_flags; ...@@ -185,8 +185,8 @@ extern unsigned long aarch64_isa_flags;
extern unsigned long aarch64_tune_flags; extern unsigned long aarch64_tune_flags;
#define AARCH64_TUNE_SLOWMUL (aarch64_tune_flags & AARCH64_FL_SLOWMUL) #define AARCH64_TUNE_SLOWMUL (aarch64_tune_flags & AARCH64_FL_SLOWMUL)
/* Crypto is an optional feature. */ /* Crypto is an optional extension to AdvSIMD. */
#define TARGET_CRYPTO AARCH64_ISA_CRYPTO #define TARGET_CRYPTO (TARGET_SIMD && AARCH64_ISA_CRYPTO)
/* Standard register usage. */ /* Standard register usage. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment