diff options
Diffstat (limited to 'target-mips.c')
-rw-r--r-- | target-mips.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/target-mips.c b/target-mips.c index 7e2b4446..395e6ff1 100644 --- a/target-mips.c +++ b/target-mips.c @@ -3,6 +3,21 @@ #include "machine.h" +static void predefine_mips(const struct target *self) +{ + predefine("__mips__", 1, "1"); + predefine("__mips", 1, "%d", ptr_ctype.bit_size); + predefine("_MIPS_SZINT", 1, "%d", int_ctype.bit_size); + predefine("_MIPS_SZLONG", 1, "%d", long_ctype.bit_size); + predefine("_MIPS_SZPTR", 1, "%d", ptr_ctype.bit_size); +} + + +static void predefine_mips32(const struct target *self) +{ + predefine_mips(self); +} + const struct target target_mips32 = { .mach = MACH_MIPS32, .bitness = ARCH_LP32, @@ -13,8 +28,18 @@ const struct target target_mips32 = { .max_fp_alignment = 8, .target_64bit = &target_mips64, + + .predefine = predefine_mips32, }; + +static void predefine_mips64(const struct target *self) +{ + predefine("__mips64", 1, "64"); + + predefine_mips(self); +} + const struct target target_mips64 = { .mach = MACH_MIPS64, .bitness = ARCH_LP64, @@ -22,4 +47,6 @@ const struct target target_mips64 = { .unsigned_char = 0, .target_32bit = &target_mips32, + + .predefine = predefine_mips64, }; |