summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/xavix2/xavix2.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/xavix2/xavix2.h')
-rw-r--r--src/devices/cpu/xavix2/xavix2.h95
1 files changed, 79 insertions, 16 deletions
diff --git a/src/devices/cpu/xavix2/xavix2.h b/src/devices/cpu/xavix2/xavix2.h
index 9e22e9587ee..08526f30728 100644
--- a/src/devices/cpu/xavix2/xavix2.h
+++ b/src/devices/cpu/xavix2/xavix2.h
@@ -20,7 +20,8 @@ protected:
F_Z = 1,
F_N = 2,
F_C = 4,
- F_V = 8
+ F_V = 8,
+ F_I = 16
};
static const u8 bpo[8];
@@ -42,9 +43,11 @@ protected:
int m_icount;
u32 m_pc;
- u32 m_r[8];
+ u32 m_r[8], m_hr[64];
+ u32 m_ilr1;
u8 m_f;
+ u8 m_if1;
static inline int r1(u32 opcode) { return (opcode >> 22) & 7; }
static inline int r2(u32 opcode) { return (opcode >> 19) & 7; }
static inline int r3(u32 opcode) { return (opcode >> 16) & 7; }
@@ -94,7 +97,7 @@ protected:
return r;
}
- inline u32 do_set_nz(u32 r) {
+ inline u32 snz(u32 r) {
u32 f = 0;
if(!r)
f |= F_Z;
@@ -104,18 +107,6 @@ protected:
return r;
}
- inline u32 do_or(u32 v1, u32 v2) {
- return do_set_nz(v1 | v2);
- }
-
- inline u32 do_and(u32 v1, u32 v2) {
- return do_set_nz(v1 & v2);
- }
-
- inline u32 do_xor(u32 v1, u32 v2) {
- return do_set_nz(v1 ^ v2);
- }
-
inline u32 do_lsl(u32 v1, u32 shift) {
if(!shift) {
m_f = v1 ? v1 & 0x80000000 ? F_N : 0 : F_Z;
@@ -177,6 +168,8 @@ protected:
}
}
}
+
+ u32 check_interrupts(u32 npc);
};
enum {
@@ -189,7 +182,77 @@ enum {
XAVIX2_R4,
XAVIX2_R5,
XAVIX2_SP,
- XAVIX2_LR
+ XAVIX2_LR,
+ XAVIX2_ILR1,
+ XAVIX2_IF1,
+
+ XAVIX2_HR00,
+ XAVIX2_HR01,
+ XAVIX2_HR02,
+ XAVIX2_HR03,
+ XAVIX2_HR04,
+ XAVIX2_HR05,
+ XAVIX2_HR06,
+ XAVIX2_HR07,
+ XAVIX2_HR08,
+ XAVIX2_HR09,
+ XAVIX2_HR0A,
+ XAVIX2_HR0B,
+ XAVIX2_HR0C,
+ XAVIX2_HR0D,
+ XAVIX2_HR0E,
+ XAVIX2_HR0F,
+
+ XAVIX2_HR10,
+ XAVIX2_HR11,
+ XAVIX2_HR12,
+ XAVIX2_HR13,
+ XAVIX2_HR14,
+ XAVIX2_HR15,
+ XAVIX2_HR16,
+ XAVIX2_HR17,
+ XAVIX2_HR18,
+ XAVIX2_HR19,
+ XAVIX2_HR1A,
+ XAVIX2_HR1B,
+ XAVIX2_HR1C,
+ XAVIX2_HR1D,
+ XAVIX2_HR1E,
+ XAVIX2_HR1F,
+
+ XAVIX2_HR20,
+ XAVIX2_HR21,
+ XAVIX2_HR22,
+ XAVIX2_HR23,
+ XAVIX2_HR24,
+ XAVIX2_HR25,
+ XAVIX2_HR26,
+ XAVIX2_HR27,
+ XAVIX2_HR28,
+ XAVIX2_HR29,
+ XAVIX2_HR2A,
+ XAVIX2_HR2B,
+ XAVIX2_HR2C,
+ XAVIX2_HR2D,
+ XAVIX2_HR2E,
+ XAVIX2_HR2F,
+
+ XAVIX2_HR30,
+ XAVIX2_HR31,
+ XAVIX2_HR32,
+ XAVIX2_HR33,
+ XAVIX2_HR34,
+ XAVIX2_HR35,
+ XAVIX2_HR36,
+ XAVIX2_HR37,
+ XAVIX2_HR38,
+ XAVIX2_HR39,
+ XAVIX2_HR3A,
+ XAVIX2_HR3B,
+ XAVIX2_HR3C,
+ XAVIX2_HR3D,
+ XAVIX2_HR3E,
+ XAVIX2_HR3F
};
DECLARE_DEVICE_TYPE(XAVIX2, xavix2_device)