diff options
author | Gabe Black <gabeblack@google.com> | 2019-05-02 01:54:15 -0700 |
---|---|---|
committer | Gabe Black <gabeblack@google.com> | 2019-05-30 14:20:03 +0000 |
commit | 74e494e1a28562245d9733df61739ea3cc32f92d (patch) | |
tree | beb64021da7679ffcd96d84244ce5c8263ab1ebd /src/cpu/thread_state.cc | |
parent | 39896bd265cfab20ab512cf4bceed7b38eca9d91 (diff) | |
download | gem5-74e494e1a28562245d9733df61739ea3cc32f92d.tar.xz |
cpu: Store the translating proxy with the same pointer in SE or FS mode.
Only one is active at a time, so they can share the same pointer.
Change-Id: Ie4ae1f0ffbf9448f6730f9c7d072bc85d6d423da
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/18580
Tested-by: kokoro <noreply+kokoro@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Reviewed-by: Brandon Potter <Brandon.Potter@amd.com>
Diffstat (limited to 'src/cpu/thread_state.cc')
-rw-r--r-- | src/cpu/thread_state.cc | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/src/cpu/thread_state.cc b/src/cpu/thread_state.cc index c9fc56487..3396c75c7 100644 --- a/src/cpu/thread_state.cc +++ b/src/cpu/thread_state.cc @@ -49,7 +49,7 @@ ThreadState::ThreadState(BaseCPU *cpu, ThreadID _tid, Process *_process) _contextId(0), _threadId(_tid), lastActivate(0), lastSuspend(0), profile(NULL), profileNode(NULL), profilePC(0), quiesceEvent(NULL), kernelStats(NULL), process(_process), physProxy(NULL), virtProxy(NULL), - proxy(NULL), funcExeInst(0), storeCondFailures(0) + funcExeInst(0), storeCondFailures(0) { } @@ -59,8 +59,6 @@ ThreadState::~ThreadState() delete physProxy; if (virtProxy != NULL) delete virtProxy; - if (proxy != NULL) - delete proxy; } void @@ -118,8 +116,8 @@ ThreadState::initMemProxies(ThreadContext *tc) assert(virtProxy == NULL); virtProxy = new FSTranslatingPortProxy(tc); } else { - assert(proxy == NULL); - proxy = new SETranslatingPortProxy(baseCpu->getDataPort(), + assert(virtProxy == NULL); + virtProxy = new SETranslatingPortProxy(baseCpu->getDataPort(), process, SETranslatingPortProxy::NextPage); } @@ -145,8 +143,8 @@ PortProxy & ThreadState::getMemProxy() { assert(!FullSystem); - assert(proxy != NULL); - return *proxy; + assert(virtProxy != NULL); + return *virtProxy; } void |