const Params *params() const;
ISA(Params *p);
+
+ void startup(ThreadContext *tc) {}
};
}
updateRegMap(tmp_cpsr);
}
+ void startup(ThreadContext *tc) {}
+
typedef ArmISAParams Params;
const Params *params() const;
static std::string miscRegNames[NumMiscRegs];
public:
+ void startup(ThreadContext *tc) {}
+
const Params *params() const;
ISA(Params *p);
return reg;
}
+ void startup(ThreadContext *tc) {}
+
const Params *params() const;
ISA(Params *p);
void unserialize(Checkpoint *cp, const std::string & section);
+ void startup(ThreadContext *tc) {}
+
protected:
bool isHyperPriv() { return hpstate.hpriv; }
NULL);
}
+void
+ISA::startup(ThreadContext *tc)
+{
+ tc->getDecoderPtr()->setM5Reg(regVal[MISCREG_M5_REG]);
+}
+
}
X86ISA::ISA *
void serialize(std::ostream &os);
void unserialize(Checkpoint *cp, const std::string §ion);
+ void startup(ThreadContext *tc);
};
}
void
FullO3CPU<Impl>::startup()
{
+ for (int tid = 0; tid < numThreads; ++tid)
+ isa[tid]->startup(threadContexts[tid]);
+
fetch.startupStage();
decode.startupStage();
iew.startupStage();
}
}
+void
+BaseSimpleCPU::startup()
+{
+ BaseCPU::startup();
+ thread->startup();
+}
+
/*Fault
BaseSimpleCPU::CacheOp(uint8_t Op, Addr EffAddr)
{
virtual void regStats();
virtual void resetStats();
+ virtual void startup();
+
// number of simulated instructions
Counter numInst;
Counter startNumInst;
::unserialize(*tc, cp, section);
}
+void
+SimpleThread::startup()
+{
+ isa->startup(tc);
+}
+
void
SimpleThread::dumpFuncProfile()
{
void serialize(std::ostream &os);
void unserialize(Checkpoint *cp, const std::string §ion);
+ void startup();
/***************************************************************
* SimpleThread functions to provide CPU with access to various