From: Korey Sewell Date: Mon, 20 Jun 2011 01:43:37 +0000 (-0400) Subject: imported patch recoverPCfromTrap X-Git-Tag: stable_2012_02_02~244 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d02fa0f6b6b29a2caf969235feb265dbad6675ff;p=gem5.git imported patch recoverPCfromTrap --- diff --git a/src/cpu/inorder/cpu.cc b/src/cpu/inorder/cpu.cc index 03c44ea86..c7eb35b47 100644 --- a/src/cpu/inorder/cpu.cc +++ b/src/cpu/inorder/cpu.cc @@ -1312,6 +1312,7 @@ InOrderCPU::instDone(DynInstPtr inst, ThreadID tid) lastCommittedPC[tid] = comm_pc; TheISA::advancePC(comm_pc, inst->staticInst); pcState(comm_pc, tid); + DPRINTF(InOrderGraduation, "Precise State PC = %s\n", pcState(tid)); //@todo: may be unnecessary with new-ISA-specific branch handling code if (inst->isControl()) { diff --git a/src/cpu/inorder/resources/fetch_seq_unit.cc b/src/cpu/inorder/resources/fetch_seq_unit.cc index b79b17cdc..5d90f71d3 100644 --- a/src/cpu/inorder/resources/fetch_seq_unit.cc +++ b/src/cpu/inorder/resources/fetch_seq_unit.cc @@ -198,6 +198,7 @@ FetchSeqUnit::squash(DynInstPtr inst, int squash_stage, bdelay_inst->pc, nextPC); if (bdelay_inst->pc.instAddr() == nextPC.instAddr()) { + bdelay_inst->pc = nextPC; advancePC(nextPC, inst->staticInst); DPRINTF(Resource, "Advanced PC to %s\n", nextPC); }