summaryrefslogtreecommitdiff
path: root/src/cpu/inorder/resources/tlb_unit.hh
diff options
context:
space:
mode:
authorKorey Sewell <ksewell@umich.edu>2009-05-12 15:01:16 -0400
committerKorey Sewell <ksewell@umich.edu>2009-05-12 15:01:16 -0400
commit3a057bdbb10a265fb36f7827cd06142ad1624530 (patch)
treeb46e844fd6006561a0033aaefe8790b02c50752b /src/cpu/inorder/resources/tlb_unit.hh
parentf1c97e830b2bf9d1fb457050f97dfd4ec9312932 (diff)
downloadgem5-3a057bdbb10a265fb36f7827cd06142ad1624530.tar.xz
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 * * *
Diffstat (limited to 'src/cpu/inorder/resources/tlb_unit.hh')
-rw-r--r--src/cpu/inorder/resources/tlb_unit.hh5
1 files changed, 4 insertions, 1 deletions
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();