diff options
Diffstat (limited to 'target-arm.c')
-rw-r--r-- | target-arm.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/target-arm.c b/target-arm.c index f5af04ee..0d7c6134 100644 --- a/target-arm.c +++ b/target-arm.c @@ -3,6 +3,24 @@ #include "machine.h" +static void predefine_arm(const struct target *self) +{ + predefine("__arm__", 1, "1"); + predefine("__VFP_FP__", 1, "1"); + + switch (arch_fp_abi) { + case FP_ABI_HARD: + predefine("__ARM_PCS_VFP", 1, "1"); + break; + case FP_ABI_SOFT: + predefine("__SOFTFP__", 1, "1"); + /* fall-through */ + case FP_ABI_HYBRID: + predefine("__ARM_PCS", 1, "1"); + break; + } +} + const struct target target_arm = { .mach = MACH_ARM, .bitness = ARCH_LP32, @@ -13,4 +31,6 @@ const struct target target_arm = { .bits_in_longdouble = 64, .max_fp_alignment = 8, + + .predefine = predefine_arm, }; |