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.
This commit is contained in:
Matt Horsnell
2011-01-18 16:30:05 -06:00
parent 5ebf3b2808
commit 62f2097917
4 changed files with 16 additions and 4 deletions

View File

@@ -520,6 +520,7 @@ DefaultCommit<Impl>::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<Impl>::commit()
toIEW->commitInfo[tid].branchMispredict =
fromIEW->branchMispredict[tid];
toIEW->commitInfo[tid].mispredictInst =
fromIEW->mispredictInst[tid];
toIEW->commitInfo[tid].branchTaken =
fromIEW->branchTaken[tid];