]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
JIT interrupt handling reverted to previous version. JIT requires it for best perform...
authorToni Wilen <twilen@winuae.net>
Sat, 3 Dec 2022 12:20:30 +0000 (14:20 +0200)
committerToni Wilen <twilen@winuae.net>
Sat, 3 Dec 2022 12:20:30 +0000 (14:20 +0200)
newcpu.cpp

index 7f5e0c452a7437cf8ce77f59bb230e07ee2dd3cd..db27487856f9688fcb75b080ce2579c3c671e2e0 100644 (file)
@@ -2398,8 +2398,11 @@ static void MakeFromSR_x(int t0trace)
                                regs.ipl[0] = 0;
                        }
                } else {
-                       if (regs.ipl_pin <= regs.intmask && regs.ipl_pin > newimask) {
-                               set_special(SPCFLAG_INT);
+                       if (!currprefs.cachesize && regs.ipl_pin <= regs.intmask && regs.ipl_pin > newimask) {
+                               if (currprefs.cpu_compatible && currprefs.cpu_model < 68020)
+                                       set_special(SPCFLAG_INT);
+                               else
+                                       set_special(SPCFLAG_DOINT);
                        }
                }
                regs.intmask = newimask;
@@ -4511,13 +4514,15 @@ void doint(void)
 
                update_ipl(ipl);
        }
+
        if (m68k_interrupt_delay) {
                if (!m68k_accurate_ipl && regs.ipl_pin > regs.intmask) {
                        set_special(SPCFLAG_INT);
                }
                return;
        }
-       if (regs.ipl_pin > regs.intmask) {
+
+       if (regs.ipl_pin > regs.intmask || currprefs.cachesize) {
                if (currprefs.cpu_compatible && currprefs.cpu_model < 68020)
                        set_special(SPCFLAG_INT);
                else
@@ -6043,6 +6048,7 @@ static void m68k_run_2ce (void)
                
                                wait_memory_cycles();
                                regs.instruction_cnt++;
+                               regs.ce020extracycles++;
 
                cont:
                                if (r->spcflags || regs.ipl[0] > 0) {