Yet another merge with the main repository.
[gem5.git] / src / cpu / inorder / resources / fetch_unit.hh
index 6c0b4871bfd360b0adf6c53da18b6f97d9e900b2..6d734d7e6a6ebb0d8d6f2a4182ebf6585742802b 100644 (file)
@@ -39,6 +39,7 @@
 #include "arch/predecoder.hh"
 #include "arch/tlb.hh"
 #include "config/the_isa.hh"
+#include "cpu/decode.hh"
 #include "cpu/inorder/resources/cache_unit.hh"
 #include "cpu/inorder/inorder_dyn_inst.hh"
 #include "cpu/inorder/pipeline_traits.hh"
@@ -88,6 +89,8 @@ class FetchUnit : public CacheUnit
 
     void trap(Fault fault, ThreadID tid, DynInstPtr inst);
 
+    Decoder decoder;
+
   private:
     void squashCacheRequest(CacheReqPtr req_ptr);
 
@@ -120,11 +123,13 @@ class FetchUnit : public CacheUnit
 
     int blocksInUse();
 
+    void clearFetchBuffer();
+
     int instSize;
 
     int fetchBuffSize;
 
-    TheISA::Predecoder predecoder;
+    TheISA::Predecoder *predecoder[ThePipeline::MaxThreads];
 
     /** Valid Cache Blocks*/
     std::list<FetchBlock*> fetchBuffer;