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