O3: Don't test misprediction on load instructions until executed.
This commit is contained in:
parent
1167ef19cf
commit
c98df6f8c2
1 changed files with 5 additions and 1 deletions
|
@ -1297,7 +1297,11 @@ DefaultIEW<Impl>::executeInsts()
|
||||||
!toCommit->squash[tid] ||
|
!toCommit->squash[tid] ||
|
||||||
toCommit->squashedSeqNum[tid] > inst->seqNum) {
|
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;
|
fetchRedirect[tid] = true;
|
||||||
|
|
||||||
DPRINTF(IEW, "Execute: Branch mispredict detected.\n");
|
DPRINTF(IEW, "Execute: Branch mispredict detected.\n");
|
||||||
|
|
Loading…
Reference in a new issue