Go to the documentation of this file.
51 #include "config/the_isa.hh"
57 #include "params/BaseCPU.hh"
73 isa(dynamic_cast<TheISA::
ISA *>(_isa)),
74 predicate(true), memAccPredicate(true),
75 comInstEventQueue(
"instruction-based event queue"),
77 htmTransactionStarts(0), htmTransactionStops(0)
80 const auto ®Classes =
isa->regClasses();
92 :
SimpleThread(_cpu, _thread_num, _sys, nullptr, _mmu, _isa, _decoder)
101 isa->takeOverFrom(
this, oldContext);
Tick curTick()
The universal simulation clock.
void unserialize(ThreadContext &tc, CheckpointIn &cp)
std::unique_ptr< BaseHTMCheckpoint > BaseHTMCheckpointPtr
int64_t htmTransactionStops
virtual void copyRegsFrom(ThreadContext *src)=0
@ Halted
Permanently shut down.
virtual void takeOverFrom(InstDecoder *old)
Take over the state from an old decoder when switching CPUs.
@ VecElemClass
Vector Register Native Elem lane.
Struct for holding general thread state that is needed across CPU models.
@ CCRegClass
Condition-code register.
void copyArchRegs(ThreadContext *tc) override
void unserialize(CheckpointIn &cp) override
Unserialize an object.
void unserialize(CheckpointIn &cp) override
Unserialize an object.
void serialize(CheckpointOut &cp) const override
Serialize an object.
virtual ContextID contextId() const =0
std::vector< RegVal > vecElemRegs
void clearArchRegs() override
std::unique_ptr< BaseHTMCheckpoint > _htmCheckpoint
void activate() override
Set the status to Active.
int64_t htmTransactionStarts
The SimpleThread object provides a combination of the ThreadState object and the ThreadContext interf...
void takeOverFrom(ThreadContext &ntc, ThreadContext &otc)
Copy state between thread contexts in preparation for CPU handover.
virtual Status status() const =0
void htmAbortTransaction(uint64_t htm_uid, HtmFailureFaultCause cause) override
@ FloatRegClass
Floating-point register.
Tick lastSuspend
Last time suspend was called on this thread.
void copyState(ThreadContext *oldContext)
ThreadContext is the external interface to all thread state for anything outside of the CPU.
void setHtmCheckpointPtr(BaseHTMCheckpointPtr new_cpt) override
@ Suspended
Temporarily inactive.
virtual InstDecoder * getDecoderPtr()=0
unsigned storeCondFailures
int threadId() const override
BaseISA * getIsaPtr() override
void takeOverFrom(ThreadContext *oldContext) override
std::vector< RegVal > floatRegs
void serialize(const ThreadContext &tc, CheckpointOut &cp)
Thread context serialization helpers.
void halt() override
Set the status to Halted.
BaseHTMCheckpointPtr & getHtmCheckpointPtr() override
@ IntRegClass
Integer register.
std::vector< RegVal > ccRegs
Tick lastActivate
Last time activate was called on this thread.
void suspend() override
Set the status to Suspended.
ThreadContext::Status _status
std::vector< TheISA::VecPredRegContainer > vecPredRegs
std::vector< TheISA::VecRegContainer > vecRegs
std::ostream CheckpointOut
virtual int threadId() const =0
@ VecRegClass
Vector Register.
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
std::vector< RegVal > intRegs
Status status() const override
SimpleThread(BaseCPU *_cpu, int _thread_num, System *_system, BaseMMU *_mmu, BaseISA *_isa, InstDecoder *_decoder)
void serialize(CheckpointOut &cp) const override
Serialize an object.
Generated on Tue Dec 21 2021 11:34:27 for gem5 by doxygen 1.8.17