Commit c6c42ec6 authored by Roberto Hexsel's avatar Roberto Hexsel

CAUSE always updated -- except if STATUS.EXL=1

parent ff455188
......@@ -169,7 +169,6 @@ _excp_0000:
mtc0 $k1, c0_entrylo1 # EntryLo1 <- k1 = odd element
ehb
tlbwr # update TLB
mfc0 $zero, c0_cause # clear excCode in Cause
eret
.end _excp_0000
......
......@@ -62,7 +62,7 @@ excp_180:
mfc0 $k0, c0_cause
sw $k0, 0($14) # print CAUSE
mfc0 $k0, c0_epc # fix return address
mfc0 $k0, c0_epc # fix return address
sw $k0, 0($14) # print EPC
addiu $k1, $zero, -4 # -4 = 0xffff.fffc
and $k1, $k1, $k0 # fix the invalid address
......
......@@ -139,7 +139,7 @@ lo_pri: lui $k0, %hi(ext_restart)
rf_irq: sw $k1, 0x20($15) # print IRQ source
sw $13, 0x20($15)
li $k0, 0x1000f003 # CP0active, enable COUNT irq, EXL=1
li $k0, 0x1000f001 # CP0active, enable COUNT irq, EXL=0, IE=1
mtc0 $k0, c0_status
eret
#
......
......@@ -36,7 +36,7 @@
.globl _start,_exit
.ent _start
## set STATUS, cop0, no interrupts enabled
## set STATUS, cop0, no interrupts enabled, EXL=0
_start: li $k0, 0x10000000
mtc0 $k0, cop0_STATUS
......
......@@ -36,7 +36,7 @@
.globl _start,_exit
.ent _start
## set STATUS, cop0, no interrupts enabled
## set STATUS, cop0, no interrupts enabled, UM=0, EXL=0
_start: li $k0, 0x10000000
mtc0 $k0, cop0_STATUS
......
......@@ -40,7 +40,7 @@
.globl _start
.ent _start
## set STATUS, cop0, no interrupts enabled
## set STATUS, cop0, no interrupts enabled, EXL=0
_start: li $k0, 0x10000000
mtc0 $k0, cop0_STATUS
......
......@@ -21,7 +21,7 @@
.globl _start, _exit
.ent _start
## set STATUS, cop0, no interrupts enabled, kernel mode
## set STATUS, cop0, no interrupts enabled, UM=0, EXL=0
_start: li $k0, 0x10000000
mtc0 $k0, cop0_STATUS
......
......@@ -37,7 +37,7 @@
.globl _start,_exit
.ent _start
## set STATUS, cop0, no interrupts enabled
## set STATUS, cop0, no interrupts enabled, UM=0, EXL=0
_start: li $k0, 0x10000000
mtc0 $k0, cop0_STATUS
......
......@@ -17,8 +17,8 @@
//-----------------------------------------------------------------------
// decide on the tests to run
#define WALK_THE_PT 0
#define TLB_MODIFIED 1
#define WALK_THE_PT 1
#define TLB_MODIFIED 0
#define DOUBLE_FAULT 0
// these will abort the simulation when the fault is detected/handled
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment