Yet another merge with the main repository.
[gem5.git] / src / cpu / inorder / resources / execution_unit.hh
index 0a15afdabd38cbd6e95534cb9172ecf5c07935d6..bebb69ca34824ed69e86c8668e8dbe18f6dea94b 100644 (file)
 #ifndef __CPU_INORDER_EXECUTION_UNIT_HH__
 #define __CPU_INORDER_EXECUTION_UNIT_HH__
 
-#include <vector>
 #include <list>
 #include <string>
+#include <vector>
 
-#include "cpu/func_unit.hh"
 #include "cpu/inorder/first_stage.hh"
-#include "cpu/inorder/resource.hh"
 #include "cpu/inorder/inorder_dyn_inst.hh"
+#include "cpu/inorder/resource.hh"
+#include "cpu/func_unit.hh"
 
 class ExecutionUnit : public Resource {
   public:
@@ -54,13 +54,13 @@ class ExecutionUnit : public Resource {
               int res_latency, InOrderCPU *_cpu, ThePipeline::Params *params);
 
   public:
-    virtual void regStats();
+    void regStats();
 
     /** Execute the function of this resource. The Default is action
      *  is to do nothing. More specific models will derive from this
      *  class and define their own execute function.
      */
-    virtual void execute(int slot_num);
+    void execute(int slot_num);
 
   protected:
     /////////////////////////////////////////////////////////////////
@@ -70,9 +70,12 @@ class ExecutionUnit : public Resource {
     /////////////////////////////////////////////////////////////////
     Stats::Scalar predictedTakenIncorrect;
     Stats::Scalar predictedNotTakenIncorrect;
-
+    Stats::Scalar predictedIncorrect;
+    Stats::Scalar predictedCorrect;
+    Stats::Formula mispredictPct;
     Stats::Scalar executions;
-    Tick lastExecuteCycle;
+    Tick lastExecuteTick;
+    Tick lastControlTick;
 };