diff -r 28a693227898 -r 1275f07556dd src/cpu/base_dyn_inst.hh --- a/src/cpu/base_dyn_inst.hh Tue Jul 19 01:46:35 2011 -0700 +++ b/src/cpu/base_dyn_inst.hh Tue Jul 19 01:47:29 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 28a693227898 -r 1275f07556dd src/cpu/base_dyn_inst_impl.hh --- a/src/cpu/base_dyn_inst_impl.hh Tue Jul 19 01:46:35 2011 -0700 +++ b/src/cpu/base_dyn_inst_impl.hh Tue Jul 19 01:47:29 2011 -0700 @@ -76,9 +76,10 @@ template BaseDynInst::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 -BaseDynInst::BaseDynInst(StaticInstPtr &_staticInst) - : staticInst(_staticInst), traceData(NULL) +BaseDynInst::BaseDynInst(StaticInstPtr _staticInst, + StaticInstPtr _macroop) + : staticInst(_staticInst), macroop(_macroop), traceData(NULL) { seqNum = 0; initVars(); diff -r 28a693227898 -r 1275f07556dd src/cpu/o3/dyn_inst.hh --- a/src/cpu/o3/dyn_inst.hh Tue Jul 19 01:46:35 2011 -0700 +++ b/src/cpu/o3/dyn_inst.hh Tue Jul 19 01:47:29 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 28a693227898 -r 1275f07556dd src/cpu/o3/dyn_inst_impl.hh --- a/src/cpu/o3/dyn_inst_impl.hh Tue Jul 19 01:46:35 2011 -0700 +++ b/src/cpu/o3/dyn_inst_impl.hh Tue Jul 19 01:47:29 2011 -0700 @@ -45,16 +45,18 @@ template BaseO3DynInst::BaseO3DynInst(StaticInstPtr staticInst, + StaticInstPtr macroop, TheISA::PCState pc, TheISA::PCState predPC, InstSeqNum seq_num, O3CPU *cpu) - : BaseDynInst(staticInst, pc, predPC, seq_num, cpu) + : BaseDynInst(staticInst, macroop, pc, predPC, seq_num, cpu) { initVars(); } template -BaseO3DynInst::BaseO3DynInst(StaticInstPtr &_staticInst) - : BaseDynInst(_staticInst) +BaseO3DynInst::BaseO3DynInst(StaticInstPtr _staticInst, + StaticInstPtr _macroop) + : BaseDynInst(_staticInst, _macroop) { initVars(); } diff -r 28a693227898 -r 1275f07556dd src/cpu/o3/fetch_impl.hh --- a/src/cpu/o3/fetch_impl.hh Tue Jul 19 01:46:35 2011 -0700 +++ b/src/cpu/o3/fetch_impl.hh Tue Jul 19 01:47:29 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);