diff options
Diffstat (limited to 'src/cpu/inorder/pipeline_stage.cc')
-rw-r--r-- | src/cpu/inorder/pipeline_stage.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/cpu/inorder/pipeline_stage.cc b/src/cpu/inorder/pipeline_stage.cc index d37779ce8..2e9ca64e3 100644 --- a/src/cpu/inorder/pipeline_stage.cc +++ b/src/cpu/inorder/pipeline_stage.cc @@ -351,9 +351,11 @@ PipelineStage::setupSquash(DynInstPtr inst, ThreadID tid) inst->seqNum, cpu->squashSeqNum[tid]); } else { InstSeqNum squash_seq_num = inst->squashSeqNum; + unsigned squash_stage = (nextStageValid) ? stageNum + 1 + : stageNum; - toPrevStages->stageInfo[stageNum][tid].squash = true; - toPrevStages->stageInfo[stageNum][tid].doneSeqNum = + toPrevStages->stageInfo[squash_stage][tid].squash = true; + toPrevStages->stageInfo[squash_stage][tid].doneSeqNum = squash_seq_num; DPRINTF(InOrderStage, "[tid:%i]: Squashing after [sn:%i], " |