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:
parent
af1e8d2d40
commit
dfafe6741f
1 changed files with 6 additions and 1 deletions
|
@ -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) {
|
||||||
|
|
Loading…
Reference in a new issue