diff options
author | Sean Wilson <spwilson2@wisc.edu> | 2017-06-28 08:52:08 -0500 |
---|---|---|
committer | Sean Wilson <spwilson2@wisc.edu> | 2017-07-12 20:07:05 +0000 |
commit | 8c1ea47b3c2fc90378eb16f3ad92d4ae522567c5 (patch) | |
tree | 4ac53d611aaedd5728e9f1100d43d166634ab5a8 /src/cpu/o3/commit_impl.hh | |
parent | 741261f10bb308cdc200c5dfd8eb68567349cf19 (diff) | |
download | gem5-8c1ea47b3c2fc90378eb16f3ad92d4ae522567c5.tar.xz |
cpu: Refactor some Event subclasses to lambdas
Change-Id: If765c6100d67556f157e4e61aa33c2b7eeb8d2f0
Signed-off-by: Sean Wilson <spwilson2@wisc.edu>
Reviewed-on: https://gem5-review.googlesource.com/3923
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Diffstat (limited to 'src/cpu/o3/commit_impl.hh')
-rw-r--r-- | src/cpu/o3/commit_impl.hh | 22 |
1 files changed, 5 insertions, 17 deletions
diff --git a/src/cpu/o3/commit_impl.hh b/src/cpu/o3/commit_impl.hh index aba2696c2..bf5ee8a38 100644 --- a/src/cpu/o3/commit_impl.hh +++ b/src/cpu/o3/commit_impl.hh @@ -71,26 +71,12 @@ using namespace std; template <class Impl> -DefaultCommit<Impl>::TrapEvent::TrapEvent(DefaultCommit<Impl> *_commit, - ThreadID _tid) - : Event(CPU_Tick_Pri, AutoDelete), commit(_commit), tid(_tid) -{ -} - -template <class Impl> void -DefaultCommit<Impl>::TrapEvent::process() +DefaultCommit<Impl>::processTrapEvent(ThreadID tid) { // This will get reset by commit if it was switched out at the // time of this event processing. - commit->trapSquash[tid] = true; -} - -template <class Impl> -const char * -DefaultCommit<Impl>::TrapEvent::description() const -{ - return "Trap"; + trapSquash[tid] = true; } template <class Impl> @@ -537,7 +523,9 @@ DefaultCommit<Impl>::generateTrapEvent(ThreadID tid, Fault inst_fault) { DPRINTF(Commit, "Generating trap event for [tid:%i]\n", tid); - TrapEvent *trap = new TrapEvent(this, tid); + EventFunctionWrapper *trap = new EventFunctionWrapper( + [this, tid]{ processTrapEvent(tid); }, + "Trap", true, Event::CPU_Tick_Pri); Cycles latency = dynamic_pointer_cast<SyscallRetryFault>(inst_fault) ? cpu->syscallRetryLatency : trapLatency; |