Exception_ce000 (nr);
else
#endif
+ {
+ if (currprefs.cpu_model == 68060) {
+ regs.buscr &= 0xa0000000;
+ regs.buscr |= regs.buscr >> 1;
+ }
if (currprefs.mmu_model) {
if (currprefs.cpu_model == 68030)
- Exception_mmu030 (nr, m68k_getpc ());
+ Exception_mmu030(nr, m68k_getpc());
else
- Exception_mmu (nr, m68k_getpc ());
+ Exception_mmu(nr, m68k_getpc());
} else {
- Exception_normal (nr);
+ Exception_normal(nr);
}
-
+ }
regs.exception = 0;
if (cpu_tracer) {
cputrace.state = 0;
case 6: regs.dtt0 = *regp & 0xffffe364; mmu_tt_modified (); break;
case 7: regs.dtt1 = *regp & 0xffffe364; mmu_tt_modified (); break;
/* 68060 only */
- case 8: regs.buscr = *regp & 0xa0000000; break;
+ case 8: regs.buscr &= 0x50000000; regs.buscr |= *regp & 0xa0000000; break;
case 0x800: regs.usp = *regp; break;
case 0x801: regs.vbr = *regp; break;