X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fcpu%2Finorder%2Fpipeline_stage.hh;h=963d96afb539b7f30bce6850a39c31b5914ac740;hb=39f314cc151b0a05ee0e654d52bad1c906fac668;hp=ec70fefc5daf3c0dba3169f471b704041f7b6e78;hpb=63a25a56ccc93c24703fec87f830c833974e7060;p=gem5.git diff --git a/src/cpu/inorder/pipeline_stage.hh b/src/cpu/inorder/pipeline_stage.hh index ec70fefc5..963d96afb 100644 --- a/src/cpu/inorder/pipeline_stage.hh +++ b/src/cpu/inorder/pipeline_stage.hh @@ -36,11 +36,11 @@ #include #include "base/statistics.hh" -#include "cpu/timebuf.hh" -#include "cpu/inorder/inorder_dyn_inst.hh" #include "cpu/inorder/comm.hh" -#include "params/InOrderCPU.hh" +#include "cpu/inorder/inorder_dyn_inst.hh" #include "cpu/inorder/pipeline_traits.hh" +#include "cpu/timebuf.hh" +#include "params/InOrderCPU.hh" class InOrderCPU; @@ -227,21 +227,17 @@ class PipelineStage public: void activateThread(ThreadID tid); - /** Squashes if there is a PC-relative branch that was predicted - * incorrectly. Sends squash information back to fetch. - */ - void squashDueToBranch(DynInstPtr &inst, ThreadID tid); + /** Setup Squashing Information to be passed back thru the pipeline */ + void setupSquash(DynInstPtr inst, ThreadID tid); virtual void squashDueToMemStall(InstSeqNum seq_num, ThreadID tid); + /** Perform squash of instructions above seq_num */ + virtual void squash(InstSeqNum squash_num, ThreadID tid); + /** Squash instructions from stage buffer */ void squashPrevStageInsts(InstSeqNum squash_seq_num, ThreadID tid); - /** Squashes due to commit signalling a squash. Changes status to - * squashing and clears block/unblock signals as needed. - */ - virtual void squash(InstSeqNum squash_num, ThreadID tid); - void dumpInsts(); protected: