From 3a057bdbb10a265fb36f7827cd06142ad1624530 Mon Sep 17 00:00:00 2001 From: Korey Sewell Date: Tue, 12 May 2009 15:01:16 -0400 Subject: inorder-tlb: squash insts in TLB correctly TLB had a bug where if it was stalled and waiting , it would not squash all instructions older than squashed instruction correctly * * * --- src/cpu/inorder/resources/tlb_unit.hh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/cpu/inorder/resources/tlb_unit.hh') diff --git a/src/cpu/inorder/resources/tlb_unit.hh b/src/cpu/inorder/resources/tlb_unit.hh index 4ca240ba8..759fe14f1 100644 --- a/src/cpu/inorder/resources/tlb_unit.hh +++ b/src/cpu/inorder/resources/tlb_unit.hh @@ -41,7 +41,8 @@ #include "cpu/inorder/pipeline_traits.hh" #include "cpu/inorder/cpu.hh" -class TLBUnit : public InstBuffer { +class TLBUnit : public Resource +{ public: typedef ThePipeline::DynInstPtr DynInstPtr; @@ -66,6 +67,8 @@ class TLBUnit : public InstBuffer { virtual void execute(int slot_num); + void squash(DynInstPtr inst, int stage_num, InstSeqNum squash_seq_num, unsigned tid); + bool tlbBlocked[ThePipeline::MaxThreads]; TheISA::TLB* tlb(); -- cgit v1.2.3