diff options
author | Kevin Lim <ktlim@umich.edu> | 2006-03-07 22:21:39 -0500 |
---|---|---|
committer | Kevin Lim <ktlim@umich.edu> | 2006-03-07 22:21:39 -0500 |
commit | 7712232e556c93204f78807194417e5b13d91cbe (patch) | |
tree | 9a49d1b3dd73b01d933943de12e7778b8b64253c /cpu/exec_context.hh | |
parent | 97c4a84985b0f9168f60f28d5cc96be448eef4fa (diff) | |
download | gem5-7712232e556c93204f78807194417e5b13d91cbe.tar.xz |
Fixes to allow the ExecContext to be used for profiling.
cpu/base.cc:
Change to be calls through the ExecContext instead of accessing the profile object directly.
cpu/cpu_exec_context.cc:
Add functions to clear and sample the profile object.
cpu/cpu_exec_context.hh:
Add functions to clear and sample the profile object. These are not the most flexible functions; it might be better to eventually move the quiesce, profile, and store conditional stuff out of ExecContext so they don't clutter the interface.
cpu/exec_context.hh:
Include functions to support using the profile object to clear itself and take samples.
--HG--
extra : convert_revision : 40849915fd51303673451515debb9ecdc7afb8c8
Diffstat (limited to 'cpu/exec_context.hh')
-rw-r--r-- | cpu/exec_context.hh | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/cpu/exec_context.hh b/cpu/exec_context.hh index b7653f121..2b6c41bd7 100644 --- a/cpu/exec_context.hh +++ b/cpu/exec_context.hh @@ -136,6 +136,9 @@ class ExecContext // Having an extra function just to read these is obnoxious virtual Tick readLastActivate() = 0; virtual Tick readLastSuspend() = 0; + + virtual void profileClear() = 0; + virtual void profileSample() = 0; #endif virtual int getThreadNum() = 0; @@ -152,6 +155,7 @@ class ExecContext virtual Fault translateDataWriteReq(MemReqPtr &req) = 0; // Also somewhat obnoxious. Really only used for the TLB fault. + // However, may be quite useful in SPARC. virtual TheISA::MachInst getInst() = 0; virtual void copyArchRegs(ExecContext *xc) = 0; @@ -294,6 +298,9 @@ class ProxyExecContext : public ExecContext Tick readLastActivate() { return actualXC->readLastActivate(); } Tick readLastSuspend() { return actualXC->readLastSuspend(); } + + void profileClear() { return actualXC->profileClear(); } + void profileSample() { return actualXC->profileSample(); } #endif int getThreadNum() { return actualXC->getThreadNum(); } |