cpu: Resolve targets of predicted 'taken' decode for O3
authorArthur Perais <arthur.perais@inria.fr>
Wed, 21 Dec 2016 21:05:24 +0000 (15:05 -0600)
committerArthur Perais <arthur.perais@inria.fr>
Wed, 21 Dec 2016 21:05:24 +0000 (15:05 -0600)
commit1664625db89c3c9054434b5dc97a9f1c1bfad244
tree7fd4b62126246deccc2b3b21bf80e2e406d65b66
parente5fb6752d613a6f85e2f93b4c01836ac59a8c90c
cpu: Resolve targets of predicted 'taken' decode for O3

The target of taken conditional direct branches does not
need to be resolved in IEW: the target can be computed at
decode, usually using the decoded instruction word and the PC.

The higher-than-necessary penalty is taken only on conditional
branches that are predicted taken but miss in the BTB. Thus,
this is mostly inconsequential on IPC if the BTB is big/associative
enough (fewer capacity/conflict misses). Nonetheless, what gem5
simulates is not representative of how conditional branch targets
can be handled.

Signed-off-by: Jason Lowe-Power <jason@lowepower.com>
src/cpu/o3/decode_impl.hh