50c50
< #include "mem/packet_impl.hh"
---
> #include "mem/packet.hh"
399,411c399
< //If we're not in the middle of a macro instruction
< if (!curMacroStaticInst) {
< StaticInstPtr instPtr = StaticInst::decode(makeExtMI(inst, thread->getTC()));
< if (instPtr->isMacroOp()) {
< curMacroStaticInst = instPtr;
< curStaticInst = curMacroStaticInst->fetchMicroOp(0);
< } else {
< curStaticInst = instPtr;
< }
< } else {
< //Read the next micro op from the macro op
< curStaticInst = curMacroStaticInst->fetchMicroOp(thread->readMicroPC());
< }
---
> curStaticInst = StaticInst::decode(makeExtMI(inst, thread->readPC()));
413d400
<
462,482c449,452
< } else {
< //If we're at the last micro op for this instruction
< if (curStaticInst->isLastMicroOp()) {
< //We should be working with a macro op
< assert(curMacroStaticInst);
< //Close out this macro op, and clean up the
< //microcode state
< curMacroStaticInst = StaticInst::nullStaticInstPtr;
< thread->setMicroPC(0);
< thread->setNextMicroPC(1);
< }
< //If we're still in a macro op
< if (curMacroStaticInst) {
< //Advance the micro pc
< thread->setMicroPC(thread->readNextMicroPC());
< //Advance the "next" micro pc. Note that there are no delay
< //slots, and micro ops are "word" addressed.
< thread->setNextMicroPC(thread->readNextMicroPC() + 1);
< } else {
< // go to the next instruction
< thread->setPC(thread->readNextPC());
---
> }
> else {
> // go to the next instruction
> thread->setPC(thread->readNextPC());
484,486c454,456
< thread->setNextPC(thread->readNextNPC());
< thread->setNextNPC(thread->readNextNPC() + sizeof(MachInst));
< assert(thread->readNextPC() != thread->readNextNPC());
---
> thread->setNextPC(thread->readNextNPC());
> thread->setNextNPC(thread->readNextNPC() + sizeof(MachInst));
> assert(thread->readNextPC() != thread->readNextNPC());
488c458
< thread->setNextPC(thread->readNextPC() + sizeof(MachInst));
---
> thread->setNextPC(thread->readNextPC() + sizeof(MachInst));
490c460
< }
---
>