From c98df6f8c2f3a3685fd9210ccaee2fac07e4f604 Mon Sep 17 00:00:00 2001 From: Matt Horsnell Date: Tue, 18 Jan 2011 16:30:05 -0600 Subject: O3: Don't test misprediction on load instructions until executed. --- src/cpu/o3/iew_impl.hh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/cpu/o3/iew_impl.hh') 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"); -- cgit v1.2.3