swizzle all accesses, why not

This commit is contained in:
lif 2023-12-25 01:19:19 -08:00
parent 6f692d7296
commit a275018d09
1 changed files with 11 additions and 11 deletions

View File

@ -126,15 +126,6 @@ typedef u32 fixed8_24;
#define fixed_div(numerator, denominator, bits) \
(((numerator * (1 << bits)) + (denominator / 2)) / denominator) \
#define address8(base, offset) \
*((u8 *)((u8 *)base + (offset))) \
#define address16(base, offset) \
*((u16 *)((u8 *)base + (offset))) \
#define address32(base, offset) \
*((u32 *)((u8 *)base + (offset))) \
#define eswap8(value) (value)
#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
// #define eswap16(value) __builtin_bswap16(value)
@ -152,8 +143,17 @@ typedef u32 fixed8_24;
#define swizzle_b(ofs) (ofs)
#endif
#define readaddress8(base, offset) eswap8(address8( base, swizzle_b(offset)))
#define readaddress16(base, offset) eswap16(address16(base, swizzle_h(offset)))
#define address8(base, offset) \
*((u8 *)((u8 *)base + swizzle_b(offset))) \
#define address16(base, offset) \
*((u16 *)((u8 *)base + swizzle_h(offset))) \
#define address32(base, offset) \
*((u32 *)((u8 *)base + (offset))) \
#define readaddress8(base, offset) eswap8( address8( base, offset))
#define readaddress16(base, offset) eswap16(address16(base, offset))
#define readaddress32(base, offset) eswap32(address32(base, offset))
#define read_ioreg(regnum) (eswap16(io_registers[swizzle_regnum(regnum)]))