psxinterpreter: rework load delays
[pcsx_rearmed.git] / libpcsxcore / r3000a.h
index 8d53a18..778bd8d 100644 (file)
@@ -29,6 +29,19 @@ extern "C" {
 #include "psxcounters.h"
 #include "psxbios.h"
 
+enum R3000Aexception {
+       R3000E_Int = 0,      // Interrupt
+       R3000E_AdEL = 4,     // Address error (on load/I-fetch)
+       R3000E_AdES = 5,     // Address error (on store)
+       R3000E_IBE = 6,      // Bus error (instruction fetch)
+       R3000E_DBE = 7,      // Bus error (data load)
+       R3000E_Syscall = 8,  // syscall instruction
+       R3000E_Bp = 9,       // Breakpoint - a break instruction
+       R3000E_RI = 10,      // reserved instruction
+       R3000E_CpU = 11,     // Co-Processor unusable
+       R3000E_Ov = 12       // arithmetic overflow
+};
+
 enum R3000Anote {
        R3000ACPU_NOTIFY_CACHE_ISOLATED = 0,
        R3000ACPU_NOTIFY_CACHE_UNISOLATED = 1,
@@ -202,7 +215,10 @@ typedef struct {
        u32 subCycle;           /* interpreter cycle counting */
        u32 subCycleStep;
        u32 biuReg;
-       u32 reserved[3];
+       u8  reserved;
+       u8  dloadSel;
+       u8  dloadReg[2];
+       u32 dloadVal[2];
        // warning: changing anything in psxRegisters requires update of all
        // asm in libpcsxcore/new_dynarec/
 } psxRegisters;