experimental: directly jump through bus error vector on bus error
This commit is contained in:
@@ -326,8 +326,9 @@ access:
|
|||||||
move.l 4(a6),-(sp) // push format_status
|
move.l 4(a6),-(sp) // push format_status
|
||||||
move.l 8(a6),-(sp) // pc at exception
|
move.l 8(a6),-(sp) // pc at exception
|
||||||
move.l MCF_MMU_MMUAR,-(sp) // MMU fault address
|
move.l MCF_MMU_MMUAR,-(sp) // MMU fault address
|
||||||
move.l MCF_MMU_MMUSR,-(sp) // MMU status regisrter
|
move.l MCF_MMU_MMUSR,-(sp) // MMU status register
|
||||||
move.w #0x2300,sr // can lower interrupt mask now that MMU status is safe
|
// probably doesn't make sense since we still have a potential unmapped MMU page
|
||||||
|
// move.w #0x2300,sr // can lower interrupt mask now that MMU status is safe
|
||||||
jsr _mmutr_miss // call C routine
|
jsr _mmutr_miss // call C routine
|
||||||
lea 4 * 4(sp),sp // adjust stack
|
lea 4 * 4(sp),sp // adjust stack
|
||||||
|
|
||||||
@@ -341,7 +342,9 @@ access:
|
|||||||
bus_error:
|
bus_error:
|
||||||
movem.l (sp),d0-d1/a0-a1 // restore registers
|
movem.l (sp),d0-d1/a0-a1 // restore registers
|
||||||
unlk a6
|
unlk a6
|
||||||
bra std_exc_vec // FIXME: this seems to be bogous...
|
move.l 0x08,-(sp)
|
||||||
|
rts
|
||||||
|
// bra std_exc_vec // FIXME: this seems to be bogous...
|
||||||
|
|
||||||
zero_divide:
|
zero_divide:
|
||||||
move.w #0x2700,sr // disable interrupt
|
move.w #0x2700,sr // disable interrupt
|
||||||
|
|||||||
Reference in New Issue
Block a user