diff options
| author | Robert Norton | 2016-05-10 16:49:44 +0100 |
|---|---|---|
| committer | Robert Norton | 2016-05-10 16:49:44 +0100 |
| commit | 2881758c6fa86460329e27e419cedca5b4921f15 (patch) | |
| tree | dd68a1fad5b19b450c8f09ca1de8edbce1519ff1 | |
| parent | 1877e8051dd9865f98df810550014537cf42a744 (diff) | |
Implement mfc0/mtc0 ErrorEPC.
| -rw-r--r-- | mips/mips_insts.sail | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/mips/mips_insts.sail b/mips/mips_insts.sail index 853397fa..76ec25d7 100644 --- a/mips/mips_insts.sail +++ b/mips/mips_insts.sail @@ -1352,6 +1352,7 @@ function clause execute (MFC0(rt, rd, sel, double)) = case (0b10010,0b000) -> 0 (* 18, WatchLo *) case (0b10011,0b000) -> 0 (* 19, WatchHi *) case (0b10100,0b000) -> 0 (* 20, XContext *) + case (0b11110,0b000) -> CP0ErrorEPC (* 30, ErrorEPC *) case _ -> {exit (SignalException(ResI)); 0} } in wGPR(rt) := if (double) then result else EXTS(result[31..0]) @@ -1387,6 +1388,7 @@ function clause execute (MTC0(rt, rd, sel, double)) = (CP0Cause.IP)[9..8] := reg_val[9..8]; } case (0b01110,0b000) -> CP0EPC := reg_val (* 14, EPC *) + case (0b11110,0b000) -> CP0ErrorEPC := reg_val (* 30, ErrorEPC *) case _ -> exit (SignalException(ResI)) } |
