regs.ipl[0] = 0;
}
} else {
- if (regs.ipl[0] <= regs.intmask && regs.ipl_pin > newimask) {
+ if (regs.ipl_pin <= regs.intmask && regs.ipl_pin > newimask) {
set_special(SPCFLAG_INT);
}
}
return;
}
#ifdef JIT
- set_special (SPCFLAG_END_COMPILE);
+ if (currprefs.cachesize) {
+ set_special(SPCFLAG_END_COMPILE);
+ }
#endif
exception_check_trace(nr);
}
}
m68k_setpc (newpc);
#ifdef JIT
- set_special (SPCFLAG_END_COMPILE);
+ if (currprefs.cachesize) {
+ set_special(SPCFLAG_END_COMPILE);
+ }
#endif
exception_check_trace (nr);
return;
m68k_setpc (newpc);
cache_default_data &= ~CACHE_DISABLE_ALLOCATE;
#ifdef JIT
- set_special (SPCFLAG_END_COMPILE);
+ if (currprefs.cachesize) {
+ set_special(SPCFLAG_END_COMPILE);
+ }
#endif
branch_stack_push(currpc, nextpc);
regs.ipl_pin = intlev();
}
return;
}
- if (currprefs.cpu_compatible && currprefs.cpu_model < 68020)
- set_special (SPCFLAG_INT);
- else
- set_special (SPCFLAG_DOINT);
+ if (regs.ipl_pin > regs.intmask) {
+ if (currprefs.cpu_compatible && currprefs.cpu_model < 68020)
+ set_special(SPCFLAG_INT);
+ else
+ set_special(SPCFLAG_DOINT);
+ }
}
static void check_debugger(void)
do_copper();
#ifdef JIT
- unset_special(SPCFLAG_END_COMPILE); /* has done its job */
+ if (currprefs.cachesize) {
+ unset_special(SPCFLAG_END_COMPILE);
+ }
#endif
while ((regs.spcflags & SPCFLAG_BLTNASTY) && dmaen (DMA_BLITTER) && cycles > 0 && ((currprefs.waiting_blits && currprefs.cpu_model >= 68020) || !currprefs.blitter_cycle_exact)) {
return 1;
#ifdef JIT
- unset_special(SPCFLAG_END_COMPILE); /* has done its job */
+ if (currprefs.cachesize) {
+ unset_special(SPCFLAG_END_COMPILE);
+ }
#endif
if (regs.spcflags & SPCFLAG_DOTRACE)