diff --git a/cMIPS/include/start.s b/cMIPS/include/start.s index b69f4a2d3435f814b7b9a901f77ad6362968bd2f..042e402ed8f73b3f32d53ef552d59e5c36e99f3b 100644 --- a/cMIPS/include/start.s +++ b/cMIPS/include/start.s @@ -209,18 +209,16 @@ excp_tbl: # see Table 8-25, pg 95,96 j h_Ov # 12 overflow nop - j h_trap # 13 trap + wait 0x0d # 13 trap -- abort simulation nop - wait 0x14 # reserved, should never get here -- abort simulation + wait 0x0e # reserved, should never get here -- abort simulation nop - wait 0x15 # PF exception, should never get here -- abort simulation + wait 0x0f # FP exception, should never get here -- abort simulation nop - -h_trap: wait 13 - + h_Mod: h_TLBL: h_TLBS: @@ -229,8 +227,6 @@ h_breakpoint: h_RI: h_CpU: h_Ov: - - excp_0180ret: lui $k1, %hi(_excp_saves) # Read previous contents of STATUS @@ -332,7 +328,7 @@ _excp_BFC0: nop nop nop - wait 0x38 + wait 0xff # signal exception and abort simulation nop .end _excp_BFC0 ##--------------------------------------------------------------- diff --git a/cMIPS/vhdl/core.vhd b/cMIPS/vhdl/core.vhd index 6e9275f0646c9e98e385236ed4b0b7dd85342bf6..7aafb4df5241ebb32c01841e464028e3a80ee607 100644 --- a/cMIPS/vhdl/core.vhd +++ b/cMIPS/vhdl/core.vhd @@ -857,9 +857,10 @@ begin -- simulation aborted by instruction "wait N" assert not(exception = exWAIT and syscall_n /= x"80000") - report LF & "INVALID REFERENCE at EPC="& SLV32HEX(EPC) & - " opc="& SLV2STR(opcode) & " fun=" & SLV2STR(func) & - " instr=" & SLV32HEX(RF_instruction) & + report LF & "ABORTED at EPC="& SLV32HEX(EPC) & + " bad="& SLV32HEX(BadVAddr) & + " opc="& SLV2STR(opcode) & " wait=" & SLV2STR(syscall_n(7 downto 0)) & + " instr=" & SLV32HEX(RF_instruction) & LF & "SIMULATION ABORTED AT EXCEPTION HANDLER;" severity failure;