diff options
Diffstat (limited to 'src/cpu')
-rwxr-xr-x | src/cpu/o3/thread_context_impl.hh | 3 | ||||
-rw-r--r-- | src/cpu/simple_thread.cc | 1 |
2 files changed, 4 insertions, 0 deletions
diff --git a/src/cpu/o3/thread_context_impl.hh b/src/cpu/o3/thread_context_impl.hh index 6de5c5731..f818cc3dc 100755 --- a/src/cpu/o3/thread_context_impl.hh +++ b/src/cpu/o3/thread_context_impl.hh @@ -67,6 +67,9 @@ void O3ThreadContext<Impl>::takeOverFrom(ThreadContext *old_context) { ::takeOverFrom(*this, *old_context); + TheISA::Decoder *newDecoder = getDecoderPtr(); + TheISA::Decoder *oldDecoder = old_context->getDecoderPtr(); + newDecoder->takeOverFrom(oldDecoder); thread->kernelStats = old_context->getKernelStats(); thread->funcExeInst = old_context->readFuncExeInst(); diff --git a/src/cpu/simple_thread.cc b/src/cpu/simple_thread.cc index 77569aa68..de01124e0 100644 --- a/src/cpu/simple_thread.cc +++ b/src/cpu/simple_thread.cc @@ -108,6 +108,7 @@ void SimpleThread::takeOverFrom(ThreadContext *oldContext) { ::takeOverFrom(*tc, *oldContext); + decoder.takeOverFrom(oldContext->getDecoderPtr()); kernelStats = oldContext->getKernelStats(); funcExeInst = oldContext->readFuncExeInst(); |