/** The StaticInst used by this BaseDynInst. */
StaticInstPtr staticInst;
+ StaticInstPtr macroop;
////////////////////////////////////////////
//
* @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();
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;
}
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();
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();
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();
}
// 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);