Fix bug; consistently treat mepc as the offset of mepcc.
Also remove PCC from the SCR file.
This commit is contained in:
@@ -729,7 +729,7 @@ module mkCommitStage#(CommitInput inIfc)(CommitStage);
|
||||
: 1));
|
||||
csrf.dcsr_cause_write (dcsr_cause);
|
||||
csrf.dpc_write (trap.pc);
|
||||
scaprfIfc.trap(trap.pc,?);
|
||||
scaprfIfc.trap (trap.pc,?);
|
||||
|
||||
// Tell fetch stage to wait for redirect
|
||||
// Note: rule doCommitTrap_flush may have done this already; redundant call is ok.
|
||||
@@ -746,7 +746,8 @@ module mkCommitStage#(CommitInput inIfc)(CommitStage);
|
||||
|
||||
if (! debugger_halt) begin
|
||||
// trap handling & redirect
|
||||
let trap_updates <- csrf.trap(trap.trap, getAddr(trap.pc), trap.addr, trap.orig_inst);
|
||||
CapPipe cp = cast(trap.pc);
|
||||
let trap_updates <- csrf.trap(trap.trap, getOffset(cp), trap.addr, trap.orig_inst);
|
||||
let cap_trap_updates <- scaprf.trap(cast(trap.pc), ?);
|
||||
CapPipe new_pc = setOffset(cast(cap_trap_updates.new_pcc), trap_updates.new_pc).value;
|
||||
inIfc.redirectPc(cast(new_pc)
|
||||
@@ -1096,9 +1097,6 @@ module mkCommitStage#(CommitInput inIfc)(CommitStage);
|
||||
regRenamingTable.commit[i].commit;
|
||||
doAssert(x.claimed_phy_reg, "should have renamed");
|
||||
|
||||
if (x.ppc_vaddr_csrData matches tagged PPC .ppc)
|
||||
scaprf.pccWr[i].put(cast(ppc));
|
||||
|
||||
`ifdef RENAME_DEBUG
|
||||
// send debug msg for rename error
|
||||
if(!x.claimed_phy_reg && !isValid(renameError)) begin
|
||||
|
||||
Reference in New Issue
Block a user