// corresponding to the squash. In that case, don't bother trying to
// fix up the entry.
if (!pred_hist.empty()) {
+ if(pred_hist.front().seqNum==squashed_sn){
+
assert(pred_hist.front().seqNum == squashed_sn);
if (pred_hist.front().usedRAS) {
++RASIncorrect;
BTB.update(pred_hist.front().PC, corr_target, tid);
pred_hist.pop_front();
+ }
}
}
.desc("Number of Branches Predicted As Not Taken (False).");
Resource::regStats();
+
+ branchPred.regStats();
}
void
InstSeqNum squash_seq_num, ThreadID tid)
{
DPRINTF(InOrderBPred, "Squashing...\n");
- branchPred.squash(squash_seq_num, tid);
+ Addr corr_targ=inst->readPredPC();
+ bool taken=inst->predTaken();
+ branchPred.squash(squash_seq_num,corr_targ,taken,tid);
}
void