summaryrefslogtreecommitdiff
path: root/src/sim
diff options
context:
space:
mode:
Diffstat (limited to 'src/sim')
-rw-r--r--src/sim/pseudo_inst.hh64
1 files changed, 64 insertions, 0 deletions
diff --git a/src/sim/pseudo_inst.hh b/src/sim/pseudo_inst.hh
index 95ef0d187..673ec6170 100644
--- a/src/sim/pseudo_inst.hh
+++ b/src/sim/pseudo_inst.hh
@@ -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);