On 03/27/11 13:13, Ali Saidi wrote:
> On Mar 26, 2011, at 4:48 PM, Korey Sewell wrote:
>
>> I'm bumping the below e-mail from the users lists to dev. I believe it
>> is a legit problem with decode not actually passing back the correct
>> value for taken/not taken to the branch predictor when it detects a
>> pc-relative, unconditional control branch in decode.
>>
>> The relevant line in decode_impl.hh is this:
>> toFetch->decodeInfo[tid].branchTaken = inst->pcState().branching();
> Since it's just resolving unconditional branches (and actually just when 
> there is a mis-predict), doesn't that mean branchTaken should = true?

Possibly, but that makes the code less general. You could use the
advancePC function to get the straight line PC of the next instruction
and then compare that with the branch target. If they don't match the
branch is taken. Calling execute in decode just to straighten this out
doesn't seem like a good idea. Changes from that that ripple into
execute seem worse.

Gabe
_______________________________________________
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to