summaryrefslogtreecommitdiff
path: root/libpcsxcore/r3000a.h
diff options
context:
space:
mode:
Diffstat (limited to 'libpcsxcore/r3000a.h')
-rw-r--r--libpcsxcore/r3000a.h18
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 {