From dfafe6741f9865a996488236421d57ea1e6ba815 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Mon, 18 Dec 2006 18:18:37 -0500 Subject: [PATCH] Make sure you only handle branch delay slots specially when there actually was a branch. --HG-- extra : convert_revision : ea6d33b1b9c2ba5c24225af4b10a9bd25558f1dd --- src/cpu/o3/commit_impl.hh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/cpu/o3/commit_impl.hh b/src/cpu/o3/commit_impl.hh index 194138efc..07aadbfb0 100644 --- a/src/cpu/o3/commit_impl.hh +++ b/src/cpu/o3/commit_impl.hh @@ -731,9 +731,14 @@ DefaultCommit::commit() #if ISA_HAS_DELAY_SLOT InstSeqNum bdelay_done_seq_num = squashed_inst; 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++; + } #endif if (fromIEW->includeSquashInst[tid] == true) {