summaryrefslogtreecommitdiff
path: root/src/cpu/inorder
diff options
context:
space:
mode:
authorKorey Sewell <ksewell@umich.edu>2011-06-19 21:43:37 -0400
committerKorey Sewell <ksewell@umich.edu>2011-06-19 21:43:37 -0400
commitd02fa0f6b6b29a2caf969235feb265dbad6675ff (patch)
treef3b242fbdf096ae0a4a57b8083898681472560d7 /src/cpu/inorder
parent264e8178ff8e97df4fde62359a01898a8af7ae26 (diff)
downloadgem5-d02fa0f6b6b29a2caf969235feb265dbad6675ff.tar.xz
imported patch recoverPCfromTrap
Diffstat (limited to 'src/cpu/inorder')
-rw-r--r--src/cpu/inorder/cpu.cc1
-rw-r--r--src/cpu/inorder/resources/fetch_seq_unit.cc1
2 files changed, 2 insertions, 0 deletions
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);
}