gem5
v20.1.0.0
|
#include "cpu/thread_context.hh"
#include "arch/generic/vec_pred_reg.hh"
#include "base/logging.hh"
#include "base/trace.hh"
#include "config/the_isa.hh"
#include "cpu/base.hh"
#include "debug/Context.hh"
#include "debug/Quiesce.hh"
#include "params/BaseCPU.hh"
#include "sim/full_system.hh"
Go to the source code of this file.
Functions | |
void | serialize (const ThreadContext &tc, CheckpointOut &cp) |
Thread context serialization helpers. More... | |
void | unserialize (ThreadContext &tc, CheckpointIn &cp) |
void | takeOverFrom (ThreadContext &ntc, ThreadContext &otc) |
Copy state between thread contexts in preparation for CPU handover. More... | |
void serialize | ( | const ThreadContext & | tc, |
CheckpointOut & | cp | ||
) |
Thread context serialization helpers.
These helper functions provide a way to the data in a ThreadContext. They are provided as separate helper function since implementing them as members of the ThreadContext interface would be confusing when the ThreadContext is exported via a proxy.
Definition at line 142 of file thread_context.cc.
References arrayParamOut(), ArmISA::i, ArmISA::NumCCRegs, ArmISA::NumFloatRegs, ArmISA::NumIntRegs, ArmISA::NumVecPredRegs, ArmISA::NumVecRegs, ThreadContext::pcState(), ThreadContext::readCCRegFlat(), ThreadContext::readFloatRegFlat(), ThreadContext::readIntRegFlat(), ThreadContext::readVecPredRegFlat(), ThreadContext::readVecRegFlat(), SERIALIZE_ARRAY, and SERIALIZE_CONTAINER.
Referenced by exitSimLoop(), and Serializable::serializeSection().
void takeOverFrom | ( | ThreadContext & | new_tc, |
ThreadContext & | old_tc | ||
) |
Copy state between thread contexts in preparation for CPU handover.
new_tc | Destination ThreadContext. |
old_tc | Source ThreadContext. |
Definition at line 226 of file thread_context.cc.
References ThreadContext::contextId(), ThreadContext::copyArchRegs(), FullSystem, ThreadContext::getProcessPtr(), ThreadContext::getSystemPtr(), ThreadContext::Halted, ThreadContext::setContextId(), ThreadContext::setStatus(), ThreadContext::setThreadId(), ThreadContext::status(), and ThreadContext::threadId().
Referenced by O3ThreadContext< Impl >::takeOverFrom().
void unserialize | ( | ThreadContext & | tc, |
CheckpointIn & | cp | ||
) |
Definition at line 183 of file thread_context.cc.
References arrayParamIn(), ArmISA::i, ArmISA::NumCCRegs, ArmISA::NumFloatRegs, ArmISA::NumIntRegs, ArmISA::NumVecPredRegs, ArmISA::NumVecRegs, ThreadContext::pcState(), ThreadContext::setCCRegFlat(), ThreadContext::setFloatRegFlat(), ThreadContext::setIntRegFlat(), ThreadContext::setVecPredRegFlat(), ThreadContext::setVecRegFlat(), UNSERIALIZE_ARRAY, and UNSERIALIZE_CONTAINER.
Referenced by Serializable::unserializeSection().