12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- #include "symbol.h"
- #include "target.h"
- #include "machine.h"
- static void init_arm(const struct target *self)
- {
- fast16_ctype = &int_ctype;
- ufast16_ctype = &uint_ctype;
- fast32_ctype = &int_ctype;
- ufast32_ctype = &uint_ctype;
- if (arch_os == OS_NONE) {
- int32_ctype = &long_ctype;
- uint32_ctype = &ulong_ctype;
- fast8_ctype = &int_ctype;
- ufast8_ctype = &uint_ctype;
- }
- }
- 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;
- }
- if (arch_big_endian)
- predefine("__ARMEB__", 0, "1");
- else
- predefine("__ARMEL__", 0, "1");
- }
- const struct target target_arm = {
- .mach = MACH_ARM,
- .bitness = ARCH_LP32,
- .big_endian = 0,
- .unsigned_char = 1,
- .wchar = &uint_ctype,
- .bits_in_longdouble = 64,
- .max_fp_alignment = 8,
- .init = init_arm,
- .predefine = predefine_arm,
- };
|