An attempt to serialize the state of the micro code mechanism in the simple cpu.
src/cpu/simple/base.cc: Make a microcoded op start at the current micropc, rather than starting at 0. src/cpu/thread_state.cc: Serialize the microPC and nextMicroPC --HG-- extra : convert_revision : 5302215f17312ecef3ff4c6548acb05297ee4ff6
This commit is contained in:
parent
349c7aff9b
commit
628a3b1d01
2 changed files with 8 additions and 2 deletions
|
@ -401,13 +401,15 @@ BaseSimpleCPU::preExecute()
|
|||
StaticInstPtr instPtr = StaticInst::decode(makeExtMI(inst, thread->getTC()));
|
||||
if (instPtr->isMacroOp()) {
|
||||
curMacroStaticInst = instPtr;
|
||||
curStaticInst = curMacroStaticInst->fetchMicroOp(0);
|
||||
curStaticInst = curMacroStaticInst->
|
||||
fetchMicroOp(thread->readMicroPC());
|
||||
} else {
|
||||
curStaticInst = instPtr;
|
||||
}
|
||||
} else {
|
||||
//Read the next micro op from the macro op
|
||||
curStaticInst = curMacroStaticInst->fetchMicroOp(thread->readMicroPC());
|
||||
curStaticInst = curMacroStaticInst->
|
||||
fetchMicroOp(thread->readMicroPC());
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -62,6 +62,8 @@ ThreadState::serialize(std::ostream &os)
|
|||
// thread_num and cpu_id are deterministic from the config
|
||||
SERIALIZE_SCALAR(funcExeInst);
|
||||
SERIALIZE_SCALAR(inst);
|
||||
SERIALIZE_SCALAR(microPC);
|
||||
SERIALIZE_SCALAR(nextMicroPC);
|
||||
|
||||
#if FULL_SYSTEM
|
||||
Tick quiesceEndTick = 0;
|
||||
|
@ -81,6 +83,8 @@ ThreadState::unserialize(Checkpoint *cp, const std::string §ion)
|
|||
// thread_num and cpu_id are deterministic from the config
|
||||
UNSERIALIZE_SCALAR(funcExeInst);
|
||||
UNSERIALIZE_SCALAR(inst);
|
||||
UNSERIALIZE_SCALAR(microPC);
|
||||
UNSERIALIZE_SCALAR(nextMicroPC);
|
||||
|
||||
#if FULL_SYSTEM
|
||||
Tick quiesceEndTick;
|
||||
|
|
Loading…
Reference in a new issue