diff options
Diffstat (limited to 'src/cpu')
-rw-r--r-- | src/cpu/exetrace.cc | 3 | ||||
-rw-r--r-- | src/cpu/simple/base.cc | 2 |
2 files changed, 5 insertions, 0 deletions
diff --git a/src/cpu/exetrace.cc b/src/cpu/exetrace.cc index 87075c1ec..26e8b6b44 100644 --- a/src/cpu/exetrace.cc +++ b/src/cpu/exetrace.cc @@ -340,6 +340,9 @@ Trace::InstRecord::dump(ostream &outs) while (!compared) { if (shared_data->flags == OWN_M5) { m5Pc = PC & TheISA::PAddrImplMask; + if (bits(shared_data->pstate,3,3)) { + m5Pc &= mask(32); + } lgnPc = shared_data->pc & TheISA::PAddrImplMask; if (lgnPc != m5Pc) diffPC = true; diff --git a/src/cpu/simple/base.cc b/src/cpu/simple/base.cc index 9e5dfe2a6..b8d1f3bed 100644 --- a/src/cpu/simple/base.cc +++ b/src/cpu/simple/base.cc @@ -438,6 +438,8 @@ BaseSimpleCPU::advancePC(Fault fault) if (fault != NoFault) { curMacroStaticInst = StaticInst::nullStaticInstPtr; fault->invoke(tc); + thread->setMicroPC(0); + thread->setNextMicroPC(1); } else { //If we're at the last micro op for this instruction if (curStaticInst->isLastMicroOp()) { |