From d02fa0f6b6b29a2caf969235feb265dbad6675ff Mon Sep 17 00:00:00 2001 From: Korey Sewell Date: Sun, 19 Jun 2011 21:43:37 -0400 Subject: [PATCH] imported patch recoverPCfromTrap --- src/cpu/inorder/cpu.cc | 1 + src/cpu/inorder/resources/fetch_seq_unit.cc | 1 + 2 files changed, 2 insertions(+) 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); } -- 2.30.2