@@ -36,6 +36,8 @@
builtin_define ("__ARM_FEATURE_CLZ"); \
builtin_define ("__ARM_FEATURE_IDIV"); \
builtin_define ("__ARM_FEATURE_UNALIGNED"); \
+ if (flag_unsafe_math_optimizations) \
+ builtin_define ("__ARM_FP_FAST"); \
builtin_define ("__ARM_PCS_AAPCS64"); \
builtin_define_with_int_value \
("__ARM_SIZEOF_WCHAR_T", WCHAR_TYPE_SIZE / 8); \
@@ -50,10 +52,19 @@
else \
builtin_define ("__AARCH64EL__"); \
\
- if (TARGET_SIMD) \
- builtin_define ("__ARM_NEON"); \
- \
- if (TARGET_CRC32) \
+ if (TARGET_FLOAT) \
+ { \
+ builtin_define ("__ARM_FEATURE_FMA"); \
+ builtin_define_with_int_value ("__ARM_FP", 0x0C); \
+ } \
+ if (TARGET_SIMD) \
+ { \
+ builtin_define ("__ARM_FEATURE_NUMERIC_MAXMIN"); \
+ builtin_define ("__ARM_NEON"); \
+ builtin_define_with_int_value ("__ARM_NEON_FP", 0x0C);\
+ } \
+ \
+ if (TARGET_CRC32) \
builtin_define ("__ARM_FEATURE_CRC32"); \
\
switch (aarch64_cmodel) \