From: Matt Horsnell Date: Tue, 18 Jan 2011 22:30:05 +0000 (-0600) Subject: O3: Don't test misprediction on load instructions until executed. X-Git-Tag: stable_2012_02_02~640 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c98df6f8c2f3a3685fd9210ccaee2fac07e4f604;p=gem5.git O3: Don't test misprediction on load instructions until executed. --- diff --git a/src/cpu/o3/iew_impl.hh b/src/cpu/o3/iew_impl.hh index 29c6786c0..ce58868ba 100644 --- a/src/cpu/o3/iew_impl.hh +++ b/src/cpu/o3/iew_impl.hh @@ -1297,7 +1297,11 @@ DefaultIEW::executeInsts() !toCommit->squash[tid] || 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; DPRINTF(IEW, "Execute: Branch mispredict detected.\n");