From 62f2097917c977335d025e230146c6eb56a9bb5d Mon Sep 17 00:00:00 2001 From: Matt Horsnell Date: Tue, 18 Jan 2011 16:30:05 -0600 Subject: O3: Fix mispredicts from non control instructions. The squash inside the fetch unit should not attempt to remove them from the branch predictor as non-control instructions are not pushed into the predictor. --- src/cpu/o3/commit_impl.hh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/cpu/o3/commit_impl.hh') diff --git a/src/cpu/o3/commit_impl.hh b/src/cpu/o3/commit_impl.hh index 7f37b5f09..78e9a8848 100644 --- a/src/cpu/o3/commit_impl.hh +++ b/src/cpu/o3/commit_impl.hh @@ -520,6 +520,7 @@ DefaultCommit::squashAll(ThreadID tid) toIEW->commitInfo[tid].robSquashing = true; toIEW->commitInfo[tid].branchMispredict = false; + toIEW->commitInfo[tid].mispredictInst = NULL; toIEW->commitInfo[tid].pc = pc[tid]; } @@ -814,7 +815,8 @@ DefaultCommit::commit() toIEW->commitInfo[tid].branchMispredict = fromIEW->branchMispredict[tid]; - + toIEW->commitInfo[tid].mispredictInst = + fromIEW->mispredictInst[tid]; toIEW->commitInfo[tid].branchTaken = fromIEW->branchTaken[tid]; -- cgit v1.2.3