Go to the documentation of this file.
45 #include "arch/utility.hh"
51 #include "config/the_isa.hh"
57 #include "params/BaseCPU.hh"
72 isa(dynamic_cast<
TheISA::ISA *>(_isa)),
73 predicate(true), memAccPredicate(true),
74 comInstEventQueue(
"instruction-based event queue"),
76 htmTransactionStarts(0), htmTransactionStops(0)
85 isa(dynamic_cast<
TheISA::ISA *>(_isa)),
86 predicate(true), memAccPredicate(true),
87 comInstEventQueue(
"instruction-based event queue"),
89 htmTransactionStarts(0), htmTransactionStops(0)
102 isa->takeOverFrom(
this, oldContext);
181 assert(baseSimpleCpu);
void clearArchRegs() override
void serialize(CheckpointOut &cp) const override
Serialize an object.
void htmAbortTransaction(uint64_t htm_uid, HtmFailureFaultCause cause) override
void copyRegs(ThreadContext *src, ThreadContext *dest)
BaseHTMCheckpointPtr & getHtmCheckpointPtr() override
Tick lastActivate
Last time activate was called on this thread.
void suspend() override
Set the status to Suspended.
virtual Counter readFuncExeInst() const =0
void unserialize(CheckpointIn &cp) override
Unserialize an object.
void setHtmCheckpointPtr(BaseHTMCheckpointPtr new_cpt) override
bool FullSystem
The FullSystem variable can be used to determine the current mode of simulation.
Status status() const override
virtual int threadId() const =0
std::unique_ptr< BaseHTMCheckpoint > _htmCheckpoint
Struct for holding general thread state that is needed across CPU models.
ThreadContext::Status _status
int64_t htmTransactionStops
ThreadContext is the external interface to all thread state for anything outside of the CPU.
void takeOverFrom(ThreadContext *oldContext) override
Tick lastSuspend
Last time suspend was called on this thread.
@ Halted
Permanently shut down.
SimpleThread(BaseCPU *_cpu, int _thread_num, System *_system, BaseTLB *_itb, BaseTLB *_dtb, BaseISA *_isa)
virtual void htmSendAbortSignal(HtmFailureFaultCause cause)=0
This function is used to instruct the memory subsystem that a transaction should be aborted and the s...
virtual void activateContext(ThreadID thread_num)
Notify the CPU that the indicated context is now active.
void copyState(ThreadContext *oldContext)
virtual ContextID contextId() const =0
void copyArchRegs(ThreadContext *tc) override
virtual Status status() const =0
std::unique_ptr< BaseHTMCheckpoint > BaseHTMCheckpointPtr
void activate() override
Set the status to Active.
@ Suspended
Temporarily inactive.
virtual void haltContext(ThreadID thread_num)
Notify the CPU that the indicated context is now halted.
int64_t htmTransactionStarts
Overload hash function for BasicBlockRange type.
unsigned storeCondFailures
void unserialize(CheckpointIn &cp) override
Unserialize an object.
std::ostream CheckpointOut
virtual TheISA::Decoder * getDecoderPtr()=0
virtual void suspendContext(ThreadID thread_num)
Notify the CPU that the indicated context is now suspended.
void halt() override
Set the status to Halted.
void serialize(CheckpointOut &cp) const override
Serialize an object.
Tick curTick()
The current simulated tick.
Generated on Wed Sep 30 2020 14:02:09 for gem5 by doxygen 1.8.17