aboutsummaryrefslogtreecommitdiff
path: root/qtmips_machine/cop0state.h
diff options
context:
space:
mode:
Diffstat (limited to 'qtmips_machine/cop0state.h')
-rw-r--r--qtmips_machine/cop0state.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/qtmips_machine/cop0state.h b/qtmips_machine/cop0state.h
index 880dea2..649348e 100644
--- a/qtmips_machine/cop0state.h
+++ b/qtmips_machine/cop0state.h
@@ -61,6 +61,13 @@ public:
COP0REGS_CNT,
};
+ enum StatusReg {
+ Status_IE = 0x00000001,
+ Status_EXL = 0x00000002,
+ Status_IntMask = 0x0000ff00,
+ Status_Int0 = 0x00000100,
+ };
+
Cop0State(Core *core = nullptr);
Cop0State(const Cop0State&);
@@ -74,6 +81,12 @@ public:
void reset(); // Reset all values to zero
+ bool core_interrupt_request();
+
+public slots:
+ void set_interrupt_signal(uint irq_num, bool active);
+ void set_status_exl(bool value);
+
protected:
void setup_core(Core *core);
void update_execption_cause(enum ExceptionCause excause, bool in_delay_slot);