diff options
Diffstat (limited to 'libpcsxcore/r3000a.h')
| -rw-r--r-- | libpcsxcore/r3000a.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/libpcsxcore/r3000a.h b/libpcsxcore/r3000a.h index fa1be142..4d62fd40 100644 --- a/libpcsxcore/r3000a.h +++ b/libpcsxcore/r3000a.h @@ -43,6 +43,20 @@ extern R3000Acpu psxRec; #endif typedef union { +#if defined(__BIGENDIAN__) + struct { u8 h3, h2, h, l; } b; + struct { s8 h3, h2, h, l; } sb; + struct { u16 h, l; } w; + struct { s16 h, l; } sw; +#else + struct { u8 l, h, h2, h3; } b; + struct { u16 l, h; } w; + struct { s8 l, h, h2, h3; } sb; + struct { s16 l, h; } sw; +#endif +} PAIR; + +typedef union { struct { u32 r0, at, v0, v1, a0, a1, a2, a3, t0, t1, t2, t3, t4, t5, t6, t7, @@ -50,6 +64,7 @@ typedef union { t8, t9, k0, k1, gp, sp, s8, ra, lo, hi; } n; u32 r[34]; /* Lo, Hi in r[32] and r[33] */ + PAIR p[34]; } psxGPRRegs; typedef union { @@ -64,6 +79,7 @@ typedef union { TagLo, TagHi, ErrorEPC, Reserved6; } n; u32 r[32]; + PAIR p[32]; } psxCP0Regs; typedef struct { @@ -105,6 +121,7 @@ typedef union { s32 lzcs, lzcr; } n; u32 r[32]; + PAIR p[32]; } psxCP2Data; typedef union { @@ -122,6 +139,7 @@ typedef union { s32 flag; } n; u32 r[32]; + PAIR p[32]; } psxCP2Ctrl; typedef struct { |
