changeset f1fc7102c970 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=f1fc7102c970
description:
        O3: Add a pointer to the macroop for a microop in the dyninst.

diffstat:

 src/cpu/base_dyn_inst.hh      |  8 +++++---
 src/cpu/base_dyn_inst_impl.hh |  8 +++++---
 src/cpu/o3/dyn_inst.hh        |  4 ++--
 src/cpu/o3/dyn_inst_impl.hh   |  8 +++++---
 src/cpu/o3/fetch_impl.hh      |  2 +-
 5 files changed, 18 insertions(+), 12 deletions(-)

diffs (111 lines):

diff -r fe516fba6fc3 -r f1fc7102c970 src/cpu/base_dyn_inst.hh
--- a/src/cpu/base_dyn_inst.hh  Sat Aug 13 23:03:21 2011 -0700
+++ b/src/cpu/base_dyn_inst.hh  Sun Aug 14 04:08:14 2011 -0700
@@ -103,6 +103,7 @@
 
     /** The StaticInst used by this BaseDynInst. */
     StaticInstPtr staticInst;
+    StaticInstPtr macroop;
 
     ////////////////////////////////////////////
     //
@@ -378,13 +379,14 @@
      *  @param seq_num The sequence number of the instruction.
      *  @param cpu Pointer to the instruction's CPU.
      */
-    BaseDynInst(StaticInstPtr staticInst, TheISA::PCState pc,
-                TheISA::PCState predPC, InstSeqNum seq_num, ImplCPU *cpu);
+    BaseDynInst(StaticInstPtr staticInst, StaticInstPtr macroop,
+                TheISA::PCState pc, TheISA::PCState predPC,
+                InstSeqNum seq_num, ImplCPU *cpu);
 
     /** BaseDynInst constructor given a StaticInst pointer.
      *  @param _staticInst The StaticInst for this BaseDynInst.
      */
-    BaseDynInst(StaticInstPtr &_staticInst);
+    BaseDynInst(StaticInstPtr staticInst, StaticInstPtr macroop);
 
     /** BaseDynInst destructor. */
     ~BaseDynInst();
diff -r fe516fba6fc3 -r f1fc7102c970 src/cpu/base_dyn_inst_impl.hh
--- a/src/cpu/base_dyn_inst_impl.hh     Sat Aug 13 23:03:21 2011 -0700
+++ b/src/cpu/base_dyn_inst_impl.hh     Sun Aug 14 04:08:14 2011 -0700
@@ -76,9 +76,10 @@
 
 template <class Impl>
 BaseDynInst<Impl>::BaseDynInst(StaticInstPtr _staticInst,
+                               StaticInstPtr _macroop,
                                TheISA::PCState _pc, TheISA::PCState _predPC,
                                InstSeqNum seq_num, ImplCPU *cpu)
-  : staticInst(_staticInst), traceData(NULL), cpu(cpu)
+  : staticInst(_staticInst), macroop(_macroop), traceData(NULL), cpu(cpu)
 {
     seqNum = seq_num;
 
@@ -90,8 +91,9 @@
 }
 
 template <class Impl>
-BaseDynInst<Impl>::BaseDynInst(StaticInstPtr &_staticInst)
-    : staticInst(_staticInst), traceData(NULL)
+BaseDynInst<Impl>::BaseDynInst(StaticInstPtr _staticInst,
+                               StaticInstPtr _macroop)
+    : staticInst(_staticInst), macroop(_macroop), traceData(NULL)
 {
     seqNum = 0;
     initVars();
diff -r fe516fba6fc3 -r f1fc7102c970 src/cpu/o3/dyn_inst.hh
--- a/src/cpu/o3/dyn_inst.hh    Sat Aug 13 23:03:21 2011 -0700
+++ b/src/cpu/o3/dyn_inst.hh    Sun Aug 14 04:08:14 2011 -0700
@@ -86,12 +86,12 @@
 
   public:
     /** BaseDynInst constructor given a binary instruction. */
-    BaseO3DynInst(StaticInstPtr staticInst,
+    BaseO3DynInst(StaticInstPtr staticInst, StaticInstPtr macroop,
                   TheISA::PCState pc, TheISA::PCState predPC,
                   InstSeqNum seq_num, O3CPU *cpu);
 
     /** BaseDynInst constructor given a static inst pointer. */
-    BaseO3DynInst(StaticInstPtr &_staticInst);
+    BaseO3DynInst(StaticInstPtr _staticInst, StaticInstPtr _macroop);
 
     /** Executes the instruction.*/
     Fault execute();
diff -r fe516fba6fc3 -r f1fc7102c970 src/cpu/o3/dyn_inst_impl.hh
--- a/src/cpu/o3/dyn_inst_impl.hh       Sat Aug 13 23:03:21 2011 -0700
+++ b/src/cpu/o3/dyn_inst_impl.hh       Sun Aug 14 04:08:14 2011 -0700
@@ -45,16 +45,18 @@
 
 template <class Impl>
 BaseO3DynInst<Impl>::BaseO3DynInst(StaticInstPtr staticInst,
+                                   StaticInstPtr macroop,
                                    TheISA::PCState pc, TheISA::PCState predPC,
                                    InstSeqNum seq_num, O3CPU *cpu)
-    : BaseDynInst<Impl>(staticInst, pc, predPC, seq_num, cpu)
+    : BaseDynInst<Impl>(staticInst, macroop, pc, predPC, seq_num, cpu)
 {
     initVars();
 }
 
 template <class Impl>
-BaseO3DynInst<Impl>::BaseO3DynInst(StaticInstPtr &_staticInst)
-    : BaseDynInst<Impl>(_staticInst)
+BaseO3DynInst<Impl>::BaseO3DynInst(StaticInstPtr _staticInst,
+                                   StaticInstPtr _macroop)
+    : BaseDynInst<Impl>(_staticInst, _macroop)
 {
     initVars();
 }
diff -r fe516fba6fc3 -r f1fc7102c970 src/cpu/o3/fetch_impl.hh
--- a/src/cpu/o3/fetch_impl.hh  Sat Aug 13 23:03:21 2011 -0700
+++ b/src/cpu/o3/fetch_impl.hh  Sun Aug 14 04:08:14 2011 -0700
@@ -1097,7 +1097,7 @@
 
     // Create a new DynInst from the instruction fetched.
     DynInstPtr instruction =
-        new DynInst(staticInst, thisPC, nextPC, seq, cpu);
+        new DynInst(staticInst, curMacroop, thisPC, nextPC, seq, cpu);
     instruction->setTid(tid);
 
     instruction->setASID(tid);
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to