Make sure you only handle branch delay slots specially when there actually was a branch.

--HG--
extra : convert_revision : ea6d33b1b9c2ba5c24225af4b10a9bd25558f1dd
This commit is contained in:
Gabe Black 2006-12-18 18:18:37 -05:00
parent af1e8d2d40
commit dfafe6741f

View file

@ -731,9 +731,14 @@ DefaultCommit<Impl>::commit()
#if ISA_HAS_DELAY_SLOT #if ISA_HAS_DELAY_SLOT
InstSeqNum bdelay_done_seq_num = squashed_inst; InstSeqNum bdelay_done_seq_num = squashed_inst;
bool squash_bdelay_slot = fromIEW->squashDelaySlot[tid]; bool squash_bdelay_slot = fromIEW->squashDelaySlot[tid];
bool branchMispredict = fromIEW->branchMispredict[tid];
if (!squash_bdelay_slot) // Squashing/not squashing the branch delay slot only makes
// sense when you're squashing from a branch, ie from a branch
// mispredict.
if (branchMispredict && !squash_bdelay_slot) {
bdelay_done_seq_num++; bdelay_done_seq_num++;
}
#endif #endif
if (fromIEW->includeSquashInst[tid] == true) { if (fromIEW->includeSquashInst[tid] == true) {