diff --git a/src/arch/arm/nativetrace.cc b/src/arch/arm/nativetrace.cc index 304f4f69a7..3cafcf7fe3 100644 --- a/src/arch/arm/nativetrace.cc +++ b/src/arch/arm/nativetrace.cc @@ -142,7 +142,7 @@ Trace::ArmNativeTrace::check(NativeTraceRecord *record) ThreadContext *tc = record->getThread(); // This area is read only on the target. It can't stop there to tell us // what's going on, so we should skip over anything there also. - if (tc->nextInstAddr() > 0xffff0000) + if (tc->pcState().npc() > 0xffff0000) return; nState.update(this); mState.update(tc); diff --git a/src/cpu/checker/cpu_impl.hh b/src/cpu/checker/cpu_impl.hh index 9d5c260d0e..436ef9615f 100644 --- a/src/cpu/checker/cpu_impl.hh +++ b/src/cpu/checker/cpu_impl.hh @@ -518,10 +518,9 @@ Checker::validateExecution(const DynInstPtr &inst) } } - if (inst->nextInstAddr() != thread->nextInstAddr()) { - warn("%lli: Instruction next PCs do not match! Inst: %#x, " - "checker: %#x", - curTick(), inst->nextInstAddr(), thread->nextInstAddr()); + if (inst->pcState() != thread->pcState()) { + warn("%lli: Instruction PCs do not match! Inst: %s, checker: %s", + curTick(), inst->pcState(), thread->pcState()); handleError(inst); } @@ -644,10 +643,9 @@ void Checker::dumpAndExit(const DynInstPtr &inst) { cprintf("Error detected, instruction information:\n"); - cprintf("PC:%s, nextPC:%#x\n[sn:%lli]\n[tid:%i]\n" + cprintf("PC:%s\n[sn:%lli]\n[tid:%i]\n" "Completed:%i\n", inst->pcState(), - inst->nextInstAddr(), inst->seqNum, inst->threadNumber, inst->isCompleted()); diff --git a/src/cpu/o3/iew.cc b/src/cpu/o3/iew.cc index 79e0783f65..2795919308 100644 --- a/src/cpu/o3/iew.cc +++ b/src/cpu/o3/iew.cc @@ -1602,17 +1602,12 @@ IEW::checkMisprediction(const DynInstPtr& inst) DPRINTF(IEW, "[tid:%i] [sn:%llu] Execute: " "Branch mispredict detected.\n", - tid,inst->seqNum); - DPRINTF(IEW, "[tid:%i] [sn:%llu] Predicted target " - "was PC:%#x, NPC:%#x\n", - tid,inst->seqNum, - inst->predInstAddr(), inst->predNextInstAddr()); + tid, inst->seqNum); + DPRINTF(IEW, "[tid:%i] [sn:%llu] Predicted target was PC: %s\n", + tid, inst->seqNum, inst->readPredTarg()); DPRINTF(IEW, "[tid:%i] [sn:%llu] Execute: " - "Redirecting fetch to PC: %#x, " - "NPC: %#x.\n", - tid,inst->seqNum, - inst->nextInstAddr(), - inst->nextInstAddr()); + "Redirecting fetch to PC: %s\n", + tid, inst->seqNum, inst->pcState()); // If incorrect, then signal the ROB that it must be squashed. squashDueToBranch(inst, tid);