O3: Don't test misprediction on load instructions until executed.

This commit is contained in:
Matt Horsnell 2011-01-18 16:30:05 -06:00
parent 1167ef19cf
commit c98df6f8c2

View file

@ -1297,7 +1297,11 @@ DefaultIEW<Impl>::executeInsts()
!toCommit->squash[tid] || !toCommit->squash[tid] ||
toCommit->squashedSeqNum[tid] > inst->seqNum) { toCommit->squashedSeqNum[tid] > inst->seqNum) {
if (inst->mispredicted()) { // Prevent testing for misprediction on load instructions,
// that have not been executed.
bool loadNotExecuted = !inst->isExecuted() && inst->isLoad();
if (inst->mispredicted() && !loadNotExecuted) {
fetchRedirect[tid] = true; fetchRedirect[tid] = true;
DPRINTF(IEW, "Execute: Branch mispredict detected.\n"); DPRINTF(IEW, "Execute: Branch mispredict detected.\n");