imported patch recoverPCfromTrap
authorKorey Sewell <ksewell@umich.edu>
Mon, 20 Jun 2011 01:43:37 +0000 (21:43 -0400)
committerKorey Sewell <ksewell@umich.edu>
Mon, 20 Jun 2011 01:43:37 +0000 (21:43 -0400)
src/cpu/inorder/cpu.cc
src/cpu/inorder/resources/fetch_seq_unit.cc

index 03c44ea86aa5fbf6940304e6b96144ffbe9b3a8c..c7eb35b475bdd9e26a599c74745ad78ede67de81 100644 (file)
@@ -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()) {
index b79b17cdc1f34af32ba179748084006a29bbdfd7..5d90f71d3b84c57739db034116aee60f5a7fee03 100644 (file)
@@ -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);
                     }