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:
@@ -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];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user