diff options
Diffstat (limited to 'src/cpu')
-rw-r--r-- | src/cpu/thread_state.cc | 12 | ||||
-rw-r--r-- | src/cpu/thread_state.hh | 9 |
2 files changed, 9 insertions, 12 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 diff --git a/src/cpu/thread_state.hh b/src/cpu/thread_state.hh index e00c86f55..db4a3f414 100644 --- a/src/cpu/thread_state.hh +++ b/src/cpu/thread_state.hh @@ -115,9 +115,9 @@ struct ThreadState : public Serializable { * the se translating port proxy needs to be reinitialized since it * holds a pointer to the process class. */ - if (proxy) { - delete proxy; - proxy = NULL; + if (virtProxy) { + delete virtProxy; + virtProxy = NULL; initMemProxies(NULL); } } @@ -197,8 +197,7 @@ struct ThreadState : public Serializable { /** A translating port proxy, outgoing only, for functional * accesse to virtual addresses. */ - FSTranslatingPortProxy *virtProxy; - SETranslatingPortProxy *proxy; + PortProxy *virtProxy; public: /* |