Modernize code

Can compile with arm-none-eabi-gcc 8.3.0
gbafix correctly handles ELF input
This commit is contained in:
PikalaxALT
2019-06-26 08:13:38 -04:00
parent 3f43523352
commit fb06e4a3c9
36 changed files with 3552 additions and 308 deletions

View File

@@ -6,9 +6,20 @@
#define TRUE 1
#define FALSE 0
#define BSS_DATA __attribute__((section(".bss")))
#if MODERN
#define IWRAM_DATA
#else
#define IWRAM_DATA __attribute__((section("iwram_data")))
#endif
#define EWRAM_DATA __attribute__((section("ewram_data")))
#if MODERN
#define NOINLINE __attribute__((noinline))
#else
#define NOINLINE
#endif
#define ALIGNED(n) __attribute__((aligned(n)))
#define SOUND_INFO_PTR (*(struct SoundInfo **)0x3007FF0)

View File

@@ -192,4 +192,29 @@
REG_IME = imeTemp; \
} \
#if MODERN
#define FLOAT_UNS(x, bit) ({ \
s##bit sx = x; \
float fx = (float)sx; \
if (sx < 0) fx += (1 << (bit - 1)) * 2.0f; \
fx; \
})
#define DOUBLE_UNS(x, bit) ({ \
s##bit sx = x; \
double dx = (double)sx; \
if (sx < 0) dx += (1 << (bit - 1)) * 2.0; \
dx; \
})
#else
#define FLOAT_UNS(x, bit) ((float)(x))
#define DOUBLE_UNS(x, bit) ((double)(x))
#endif //MODERN
#define FLOAT_U8(x) FLOAT_UNS(x, 8)
#define FLOAT_U16(x) FLOAT_UNS(x, 16)
#define FLOAT_U32(x) FLOAT_UNS(x, 32)
#define DOUBLE_U8(x) DOUBLE_UNS(x, 8)
#define DOUBLE_U16(x) DOUBLE_UNS(x, 16)
#define DOUBLE_U32(x) DOUBLE_UNS(x, 32)
#endif // GUARD_GBA_MACRO_H