370,381c370,381
< #if THE_ISA == ALPHA_ISA
< StaticInstPtr instPtr = StaticInst::decode(makeExtMI(inst, thread->readPC()));
< #elif THE_ISA == SPARC_ISA
< StaticInstPtr instPtr = StaticInst::decode(makeExtMI(inst, thread->getTC()));
< #elif THE_ISA == X86_ISA
< StaticInstPtr instPtr = StaticInst::decode(makeExtMI(inst, thread->getTC()));
< #elif THE_ISA == MIPS_ISA
< //Mips doesn't do anything in it's MakeExtMI function right now,
< //so it won't be called.
< StaticInstPtr instPtr = StaticInst::decode(inst);
< #endif
< if (instPtr->isMacroOp()) {
---
> StaticInstPtr instPtr = NULL;
>
> //Predecode, ie bundle up an ExtMachInst
> unsigned int result =
> predecode(extMachInst, thread->readPC(), inst, thread->getTC());
> //If an instruction is ready, decode it
> if (result & ExtMIReady)
> instPtr = StaticInst::decode(extMachInst);
>
> //If we decoded an instruction and it's microcoded, start pulling
> //out micro ops
> if (instPtr && instPtr->isMacroOp()) {
393a394,398
> //If we decoded an instruction this "tick", record information about it.
> if(curStaticInst)
> {
> traceData = Trace::getInstRecord(curTick, tc, curStaticInst,
> thread->readPC());
395,396c400,401
< traceData = Trace::getInstRecord(curTick, tc, curStaticInst,
< thread->readPC());
---
> DPRINTF(Decode,"Decode: Decoded %s instruction: 0x%x\n",
> curStaticInst->getName(), curStaticInst->machInst);
398,401d402
< DPRINTF(Decode,"Decode: Decoded %s instruction (opcode: 0x%x): 0x%x\n",
< curStaticInst->getName(), curStaticInst->getOpcode(),
< curStaticInst->machInst);
<
403c404
< thread->setInst(inst);
---
> thread->setInst(inst);
404a406
> }