PseudoInst: Make all the pseudo insts available in SE and FS.

This commit is contained in:
Gabe Black 2011-09-19 03:39:58 -07:00
parent 7701c5b1ec
commit 44659cb608

View file

@ -46,6 +46,7 @@ extern bool doCheckpointInsts;
extern bool doQuiesce;
#if FULL_SYSTEM
void arm(ThreadContext *tc);
void quiesce(ThreadContext *tc);
void quiesceSkip(ThreadContext *tc);
@ -57,6 +58,69 @@ uint64_t readfile(ThreadContext *tc, Addr vaddr, uint64_t len,
void loadsymbol(ThreadContext *xc);
void addsymbol(ThreadContext *tc, Addr addr, Addr symbolAddr);
uint64_t initParam(ThreadContext *xc);
#else
static inline void
panicFsOnlyPseudoInst(const char *name)
{
panic("Pseudo inst \"%s\" is only available in Full System mode.");
}
static inline void
arm(ThreadContext *tc)
{
panicFsOnlyPseudoInst("arm");
}
static inline void
quiesce(ThreadContext *tc)
{
panicFsOnlyPseudoInst("quiesce");
}
static inline void
quiesceSkip(ThreadContext *tc)
{
panicFsOnlyPseudoInst("quiesceSkip");
}
static inline void
quiesceNs(ThreadContext *tc, uint64_t ns)
{
panicFsOnlyPseudoInst("quiesceNs");
}
static inline void
quiesceCycles(ThreadContext *tc, uint64_t cycles)
{
panicFsOnlyPseudoInst("quiesceCycles");
}
static inline uint64_t
quiesceTime(ThreadContext *tc)
{
panicFsOnlyPseudoInst("quiesceTime");
return 0;
}
static inline uint64_t
readfile(ThreadContext *tc, Addr vaddr, uint64_t len, uint64_t offset)
{
panicFsOnlyPseudoInst("readFile");
return 0;
}
static inline void
loadsymbol(ThreadContext *xc)
{
panicFsOnlyPseudoInst("loadSymbol");
}
static inline void
addsymbol(ThreadContext *tc, Addr addr, Addr symbolAddr)
{
panicFsOnlyPseudoInst("addSymbol");
}
static inline uint64_t
initParam(ThreadContext *tc)
{
panicFsOnlyPseudoInst("initParam");
return 0;
}
#endif
uint64_t rpns(ThreadContext *tc);