summaryrefslogtreecommitdiff
path: root/src/sim
diff options
context:
space:
mode:
authorNathan Binkert <nate@binkert.org>2008-11-10 11:51:18 -0800
committerNathan Binkert <nate@binkert.org>2008-11-10 11:51:18 -0800
commiteb5d9ba72b0309e7f98c382e3a80ce0601dbe084 (patch)
treedb510966579937d92bdacf4ad00b949e1ef0a5a8 /src/sim
parentc25d966b06061402894b99a2362cb109275b73d1 (diff)
downloadgem5-eb5d9ba72b0309e7f98c382e3a80ce0601dbe084.tar.xz
pseudo inst: Add rpns (read processor nanoseconds) instruction.
This instruction basically returns the number of nanoseconds that the CPU has been running.
Diffstat (limited to 'src/sim')
-rw-r--r--src/sim/pseudo_inst.cc6
-rw-r--r--src/sim/pseudo_inst.hh1
2 files changed, 7 insertions, 0 deletions
diff --git a/src/sim/pseudo_inst.cc b/src/sim/pseudo_inst.cc
index 409a6e009..e43279376 100644
--- a/src/sim/pseudo_inst.cc
+++ b/src/sim/pseudo_inst.cc
@@ -125,6 +125,12 @@ quiesceTime(ThreadContext *tc)
return (tc->readLastActivate() - tc->readLastSuspend()) / Clock::Int::ns;
}
+uint64_t
+rpns(ThreadContext *tc)
+{
+ return curTick / Clock::Int::ns;
+}
+
void
m5exit(ThreadContext *tc, Tick delay)
{
diff --git a/src/sim/pseudo_inst.hh b/src/sim/pseudo_inst.hh
index 40702fced..80f58f80d 100644
--- a/src/sim/pseudo_inst.hh
+++ b/src/sim/pseudo_inst.hh
@@ -47,6 +47,7 @@ void quiesce(ThreadContext *tc);
void quiesceNs(ThreadContext *tc, uint64_t ns);
void quiesceCycles(ThreadContext *tc, uint64_t cycles);
uint64_t quiesceTime(ThreadContext *tc);
+uint64_t rpns(ThreadContext *tc);
void m5exit(ThreadContext *tc, Tick delay);
void loadsymbol(ThreadContext *xc);
void resetstats(ThreadContext *tc, Tick delay, Tick period);