diff options
Diffstat (limited to 'src/kern')
-rw-r--r-- | src/kern/system_events.cc | 5 | ||||
-rw-r--r-- | src/kern/tru64/tru64.hh | 7 |
2 files changed, 7 insertions, 5 deletions
diff --git a/src/kern/system_events.cc b/src/kern/system_events.cc index 25856e466..612aabc0b 100644 --- a/src/kern/system_events.cc +++ b/src/kern/system_events.cc @@ -41,9 +41,10 @@ using namespace TheISA; void SkipFuncEvent::process(ThreadContext *tc) { - DPRINTF(PCEvent, "skipping %s: pc=%x, newpc=%x\n", description, - tc->readPC(), tc->readIntReg(ReturnAddressReg)); + TheISA::PCState oldPC M5_VAR_USED = tc->pcState(); // Call ISA specific code to do the skipping TheISA::skipFunction(tc); + DPRINTF(PCEvent, "skipping %s: pc = %s, newpc = %s\n", description, + oldPC, tc->pcState()); } diff --git a/src/kern/tru64/tru64.hh b/src/kern/tru64/tru64.hh index d3348fe89..aa3c4bb50 100644 --- a/src/kern/tru64/tru64.hh +++ b/src/kern/tru64/tru64.hh @@ -509,7 +509,9 @@ class Tru64 : public OperatingSystem // Note that we'll advance PC <- NPC before the end of the cycle, // so we need to restore the desired PC into NPC. // The current regs->pc will get clobbered. - tc->setNextPC(htog(sc->sc_pc)); + PCState pc = tc->pcState(); + pc.npc(htog(sc->sc_pc)); + tc->pcState(pc); for (int i = 0; i < 31; ++i) { tc->setIntReg(i, htog(sc->sc_regs[i])); @@ -703,8 +705,7 @@ class Tru64 : public OperatingSystem tc->setIntReg(TheISA::StackPointerReg, gtoh(attrp->registers.sp)); tc->setMiscRegNoEffect(AlphaISA::MISCREG_UNIQ, uniq_val); - tc->setPC(gtoh(attrp->registers.pc)); - tc->setNextPC(gtoh(attrp->registers.pc) + sizeof(TheISA::MachInst)); + tc->pcState(gtoh(attrp->registers.pc)); tc->activate(); } |