On Sun, Aug 22, 2010 at 8:28 AM, Ali Saidi <[email protected]> wrote: > > The dyninst might be able to do something like this, I'm not completely sure. > The parser still needs to add the destination registers to the source > registers or a whole mechanism would have to be cerated in the O3 to do the > wakeup logic for for the predicate false case (which seems like a whole lot > of trouble and extra code): > > void forwardOldRegs() > { > > for (int idx = 0; idx < numDestRegs(); idx++) { > PhysRegIndex prev_phys_reg = prevDestRegIdx(idx); > TheISA::RegIndex original_dest_reg = staticInst->destRegIdx(idx); > if (original_dest_reg < TheISA::FP_Base_DepTag) > setIntRegOperand(staticInst, idx, > this->cpu->readIntReg(prev_phys_reg)); > else if (original_dest_reg < TheISA::Ctrl_Base_DepTag) > setFloatRegOperandBits(staticInst, idx, > this->cpu->readFloatRegOperandBits(prev_phys_reg)); > } > }
Yea, this is along the lines of what I was thinking... if this really is all there is to it, isn't that simpler than all the changes to the isa parser? Obviously there's a little more to it than this function, but is it that bad? Steve _______________________________________________ m5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/m5-dev
