summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/unsp/unsp.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/unsp/unsp.h')
-rw-r--r--src/devices/cpu/unsp/unsp.h35
1 files changed, 24 insertions, 11 deletions
diff --git a/src/devices/cpu/unsp/unsp.h b/src/devices/cpu/unsp/unsp.h
index dc3ba619eaa..badc913808d 100644
--- a/src/devices/cpu/unsp/unsp.h
+++ b/src/devices/cpu/unsp/unsp.h
@@ -32,7 +32,7 @@
#define SINGLE_INSTRUCTION_MODE (0)
-#define ENABLE_UNSP_DRC (1)
+#define ENABLE_UNSP_DRC (0)
#define UNSP_LOG_OPCODES (0)
#define UNSP_LOG_REGS (0)
@@ -61,13 +61,16 @@ enum
UNSP_IRQ_EN,
UNSP_FIQ_EN,
UNSP_FIR_MOV_EN,
- UNSP_IRQ,
- UNSP_FIQ,
-#if UNSP_LOG_OPCODES || UNSP_LOG_REGS
UNSP_SB,
+ UNSP_AQ,
+ UNSP_FRA,
+ UNSP_BNK,
+ UNSP_INE,
+#if UNSP_LOG_OPCODES || UNSP_LOG_REGS
+ UNSP_PRI,
UNSP_LOG_OPS
#else
- UNSP_SB
+ UNSP_PRI
#endif
};
@@ -101,6 +104,9 @@ public:
void set_ds(uint16_t ds);
uint16_t get_ds();
+ void set_fr(uint16_t fr);
+ uint16_t get_fr();
+
inline void ccfunc_unimplemented();
void invalidate_cache();
@@ -152,7 +158,12 @@ protected:
REG_R4,
REG_BP,
REG_SR,
- REG_PC
+ REG_PC,
+
+ REG_SR1 = 0,
+ REG_SR2,
+ REG_SR3,
+ REG_SR4
};
/* internal compiler state */
@@ -168,15 +179,19 @@ protected:
struct internal_unsp_state
{
uint32_t m_r[16]; // required to be 32 bits due to DRC
+ uint32_t m_secbank[4];
uint32_t m_enable_irq;
uint32_t m_enable_fiq;
uint32_t m_fir_move;
- uint32_t m_irq;
uint32_t m_fiq;
- uint32_t m_curirq;
+ uint32_t m_irq;
uint32_t m_sirq;
uint32_t m_sb;
- uint32_t m_saved_sb[3];
+ uint32_t m_aq;
+ uint32_t m_fra;
+ uint32_t m_bnk;
+ uint32_t m_ine;
+ uint32_t m_pri;
uint32_t m_arg0;
uint32_t m_arg1;
@@ -375,8 +390,6 @@ protected:
virtual void device_reset() override;
private:
- uint32_t m_secondary_r[8];
-
enum
{
UNSP20_R8 = 0,