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

Reply via email to