From 71018f5e8b59c359065580a41a96f1a78a88dea9 Mon Sep 17 00:00:00 2001 From: Korey Sewell Date: Sun, 19 Jun 2011 21:43:37 -0400 Subject: inorder: remove stalls on trap squash --- src/cpu/inorder/comm.hh | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'src/cpu/inorder/comm.hh') diff --git a/src/cpu/inorder/comm.hh b/src/cpu/inorder/comm.hh index b05ec4eff..02a7e9fa4 100644 --- a/src/cpu/inorder/comm.hh +++ b/src/cpu/inorder/comm.hh @@ -55,18 +55,32 @@ struct InterStageStruct { /** Struct that defines all backwards communication. */ struct TimeStruct { - struct stageComm { + struct StageComm { bool squash; InstSeqNum doneSeqNum; bool uncached; ThePipeline::DynInstPtr uncachedLoad; - }; - stageComm stageInfo[ThePipeline::NumStages][ThePipeline::MaxThreads]; + StageComm() + : squash(false), doneSeqNum(0), uncached(false), uncachedLoad(NULL) + { } + }; + StageComm stageInfo[ThePipeline::NumStages][ThePipeline::MaxThreads]; bool stageBlock[ThePipeline::NumStages][ThePipeline::MaxThreads]; bool stageUnblock[ThePipeline::NumStages][ThePipeline::MaxThreads]; + + TimeStruct() + { + for (int i = 0; i < ThePipeline::NumStages; i++) { + for (int j = 0; j < ThePipeline::MaxThreads; j++) { + stageBlock[i][j] = false; + stageUnblock[i][j] = false; + } + } + } + }; #endif //__CPU_INORDER_COMM_HH__ -- cgit v1.2.3