gem5
v22.1.0.0
|
The SimpleThread object provides a combination of the ThreadState object and the ThreadContext interface. More...
#include <simple_thread.hh>
Public Types | |
typedef ThreadContext::Status | Status |
![]() | |
typedef ThreadContext::Status | Status |
![]() | |
enum | Status { Active , Suspended , Halting , Halted } |
Public Member Functions | |
std::string | name () const |
SimpleThread (BaseCPU *_cpu, int _thread_num, System *_system, BaseMMU *_mmu, BaseISA *_isa, InstDecoder *_decoder) | |
SimpleThread (BaseCPU *_cpu, int _thread_num, System *_system, Process *_process, BaseMMU *_mmu, BaseISA *_isa, InstDecoder *_decoder) | |
virtual | ~SimpleThread () |
void | takeOverFrom (ThreadContext *oldContext) override |
void | copyState (ThreadContext *oldContext) |
void | serialize (CheckpointOut &cp) const override |
Serialize an object. More... | |
void | unserialize (CheckpointIn &cp) override |
Unserialize an object. More... | |
ThreadContext * | getTC () |
Returns the pointer to this SimpleThread's ThreadContext. More... | |
void | demapPage (Addr vaddr, uint64_t asn) |
bool | schedule (PCEvent *e) override |
bool | remove (PCEvent *e) override |
void | scheduleInstCountEvent (Event *event, Tick count) override |
void | descheduleInstCountEvent (Event *event) override |
Tick | getCurrentInstCount () override |
BaseCPU * | getCpuPtr () override |
int | cpuId () const override |
uint32_t | socketId () const override |
int | threadId () const override |
void | setThreadId (int id) override |
ContextID | contextId () const override |
void | setContextId (ContextID id) override |
BaseMMU * | getMMUPtr () override |
CheckerCPU * | getCheckerCpuPtr () override |
BaseISA * | getIsaPtr () const override |
InstDecoder * | getDecoderPtr () override |
System * | getSystemPtr () override |
Process * | getProcessPtr () override |
void | setProcessPtr (Process *p) override |
Status | status () const override |
void | setStatus (Status newStatus) override |
void | activate () override |
Set the status to Active. More... | |
void | suspend () override |
Set the status to Suspended. More... | |
void | halt () override |
Set the status to Halted. More... | |
Tick | readLastActivate () override |
Tick | readLastSuspend () override |
void | copyArchRegs (ThreadContext *tc) override |
void | clearArchRegs () override |
const PCStateBase & | pcState () const override |
void | pcState (const PCStateBase &val) override |
void | pcStateNoRecord (const PCStateBase &val) override |
bool | readPredicate () const |
void | setPredicate (bool val) |
RegVal | readMiscRegNoEffect (RegIndex misc_reg) const override |
RegVal | readMiscReg (RegIndex misc_reg) override |
void | setMiscRegNoEffect (RegIndex misc_reg, RegVal val) override |
void | setMiscReg (RegIndex misc_reg, RegVal val) override |
unsigned | readStCondFailures () const override |
bool | readMemAccPredicate () |
void | setMemAccPredicate (bool val) |
void | setStCondFailures (unsigned sc_failures) override |
RegVal | getReg (const RegId &arch_reg) const override |
void | getReg (const RegId &arch_reg, void *val) const override |
void * | getWritableReg (const RegId &arch_reg) override |
void | setReg (const RegId &arch_reg, RegVal val) override |
void | setReg (const RegId &arch_reg, const void *val) override |
void | htmAbortTransaction (uint64_t htm_uid, HtmFailureFaultCause cause) override |
BaseHTMCheckpointPtr & | getHtmCheckpointPtr () override |
void | setHtmCheckpointPtr (BaseHTMCheckpointPtr new_cpt) override |
![]() | |
ThreadState (BaseCPU *cpu, ThreadID _tid, Process *_process) | |
virtual | ~ThreadState ()=default |
void | serialize (CheckpointOut &cp) const override |
Serialize an object. More... | |
void | unserialize (CheckpointIn &cp) override |
Unserialize an object. More... | |
int | cpuId () const |
uint32_t | socketId () const |
ContextID | contextId () const |
void | setContextId (ContextID id) |
void | setThreadId (ThreadID id) |
ThreadID | threadId () const |
Tick | readLastActivate () const |
Tick | readLastSuspend () const |
Process * | getProcessPtr () |
void | setProcessPtr (Process *p) |
Status | status () const |
Returns the status of this thread. More... | |
void | setStatus (Status new_status) |
Sets the status of this thread. More... | |
![]() | |
Serializable () | |
virtual | ~Serializable () |
void | serializeSection (CheckpointOut &cp, const char *name) const |
Serialize an object into a new section. More... | |
void | serializeSection (CheckpointOut &cp, const std::string &name) const |
void | unserializeSection (CheckpointIn &cp, const char *name) |
Unserialize an a child object. More... | |
void | unserializeSection (CheckpointIn &cp, const std::string &name) |
![]() | |
bool | getUseForClone () |
void | setUseForClone (bool new_val) |
virtual | ~ThreadContext () |
virtual void | sendFunctional (PacketPtr pkt) |
void | quiesce () |
Quiesce thread context. More... | |
void | quiesceTick (Tick resume) |
Quiesce, suspend, and schedule activate at resume. More... | |
virtual void | regStats (const std::string &name) |
void | pcState (Addr addr) |
virtual int | exit () |
Public Attributes | |
PCEventQueue | pcEventQueue |
EventQueue | comInstEventQueue |
An instruction-based event queue. More... | |
System * | system |
BaseMMU * | mmu |
InstDecoder * | decoder |
int64_t | htmTransactionStarts |
int64_t | htmTransactionStops |
![]() | |
Counter | numInst |
Number of instructions committed. More... | |
Counter | numOp |
Number of ops (including micro ops) committed. More... | |
gem5::ThreadState::ThreadStateStats | threadStats |
Counter | numLoad |
Number of simulated loads, used for tracking events based on the number of loads committed. More... | |
Counter | startNumLoad |
The number of simulated loads committed prior to this run. More... | |
Tick | lastActivate |
Last time activate was called on this thread. More... | |
Tick | lastSuspend |
Last time suspend was called on this thread. More... | |
unsigned | storeCondFailures |
![]() | |
int | intResult = DefaultIntResult |
double | floatResult = DefaultFloatResult |
int | intOffset = 0 |
Protected Attributes | |
std::array< RegFile, CCRegClass+1 > | regFiles |
BaseISA *const | isa |
std::unique_ptr< PCStateBase > | _pcState |
std::unique_ptr< BaseHTMCheckpoint > | _htmCheckpoint |
bool | predicate |
Did this instruction execute or is it predicated false. More... | |
bool | memAccPredicate |
True if the memory access should be skipped for this instruction. More... | |
![]() | |
ThreadContext::Status | _status |
BaseCPU * | baseCpu |
ContextID | _contextId |
ThreadID | _threadId |
Process * | process |
![]() | |
bool | useForClone = false |
Additional Inherited Members | |
![]() | |
static const std::string & | currentSection () |
Gets the fully-qualified name of the active section. More... | |
static void | generateCheckpointOut (const std::string &cpt_dir, std::ofstream &outstream) |
Generate a checkpoint file so that the serialization can be routed to it. More... | |
![]() | |
static void | compare (ThreadContext *one, ThreadContext *two) |
function to compare two thread contexts (for debugging) More... | |
![]() | |
static const int | ints [] |
static const double | floats [] |
static const int | DefaultIntResult = 0 |
static const double | DefaultFloatResult = 0.0 |
The SimpleThread object provides a combination of the ThreadState object and the ThreadContext interface.
It implements the ThreadContext interface and adds to the ThreadState object by adding all the objects needed for simple functional execution, including a simple architectural register file, and pointers to the ITB and DTB in full system mode. For CPU models that do not need more advanced ways to hold state (i.e. a separate physical register file, or separate fetch and commit PC's), this SimpleThread class provides all the necessary state for full architecture-level functional simulation. See the AtomicSimpleCPU or TimingSimpleCPU for examples.
Definition at line 92 of file simple_thread.hh.
Definition at line 95 of file simple_thread.hh.
gem5::SimpleThread::SimpleThread | ( | BaseCPU * | _cpu, |
int | _thread_num, | ||
System * | _system, | ||
BaseMMU * | _mmu, | ||
BaseISA * | _isa, | ||
InstDecoder * | _decoder | ||
) |
Definition at line 89 of file simple_thread.cc.
gem5::SimpleThread::SimpleThread | ( | BaseCPU * | _cpu, |
int | _thread_num, | ||
System * | _system, | ||
Process * | _process, | ||
BaseMMU * | _mmu, | ||
BaseISA * | _isa, | ||
InstDecoder * | _decoder | ||
) |
Definition at line 68 of file simple_thread.cc.
References gem5::CCRegClass, gem5::FloatRegClass, gem5::IntRegClass, gem5::BaseISA::regClasses(), gem5::VecElemClass, gem5::VecPredRegClass, and gem5::VecRegClass.
|
inlinevirtual |
Definition at line 146 of file simple_thread.hh.
|
overridevirtual |
Set the status to Active.
Implements gem5::ThreadContext.
Definition at line 132 of file simple_thread.cc.
References gem5::ThreadState::_status, gem5::ThreadState::_threadId, gem5::BaseCPU::activateContext(), gem5::ThreadContext::Active, gem5::ThreadState::baseCpu, gem5::curTick(), gem5::ThreadState::lastActivate, and status().
Referenced by gem5::BaseKvmCPU::wakeup().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 244 of file simple_thread.hh.
References _pcState, gem5::BaseISA::clear(), isa, gem5::BaseISA::newPCState(), regFiles, gem5::X86ISA::rf, and gem5::ArmISA::set.
Referenced by gem5::CheckerThreadContext< TC >::clearArchRegs().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 201 of file simple_thread.hh.
References gem5::ThreadState::contextId().
Referenced by gem5::minor::ExecContext::contextId(), gem5::TimingSimpleCPU::fetch(), gem5::TimingSimpleCPU::htmSendAbortSignal(), gem5::TimingSimpleCPU::initiateMemAMO(), gem5::TimingSimpleCPU::initiateMemMgmtCmd(), gem5::TimingSimpleCPU::initiateMemRead(), and gem5::TimingSimpleCPU::writeMem().
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 166 of file simple_thread.cc.
References gem5::BaseISA::copyRegsFrom(), and getIsaPtr().
Referenced by gem5::CheckerThreadContext< TC >::copyArchRegs(), and copyState().
void gem5::SimpleThread::copyState | ( | ThreadContext * | oldContext | ) |
Definition at line 106 of file simple_thread.cc.
References gem5::ThreadState::_contextId, gem5::ThreadState::_status, gem5::ThreadState::_threadId, gem5::ThreadContext::contextId(), copyArchRegs(), gem5::ThreadContext::status(), and gem5::ThreadContext::threadId().
Referenced by gem5::CheckerThreadContext< TC >::takeOverFrom().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 197 of file simple_thread.hh.
References gem5::ThreadState::cpuId().
|
inline |
Definition at line 167 of file simple_thread.hh.
References gem5::BaseMMU::demapPage(), mmu, and gem5::MipsISA::vaddr.
Referenced by gem5::SimpleExecContext::demapPage().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 185 of file simple_thread.hh.
References comInstEventQueue, gem5::EventQueue::deschedule(), and gem5::MipsISA::event.
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 206 of file simple_thread.hh.
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 195 of file simple_thread.hh.
References gem5::ThreadState::baseCpu.
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 190 of file simple_thread.hh.
References comInstEventQueue, and gem5::EventQueue::getCurTick().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 210 of file simple_thread.hh.
References decoder.
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 183 of file simple_thread.cc.
References _htmCheckpoint.
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 208 of file simple_thread.hh.
References isa.
Referenced by copyArchRegs(), gem5::TimingSimpleCPU::handleReadPacket(), gem5::AtomicSimpleCPU::readMem(), gem5::TimingSimpleCPU::sendData(), gem5::CheckerCPU::setRegOperand(), gem5::minor::LSQ::tryToSendToTransfers(), and gem5::AtomicSimpleCPU::writeMem().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 204 of file simple_thread.hh.
References mmu.
Referenced by gem5::minor::ExecContext::demapPage().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 214 of file simple_thread.hh.
References gem5::ThreadState::getProcessPtr().
Reimplemented from gem5::ThreadContext.
Definition at line 312 of file simple_thread.hh.
References DPRINTFV, gem5::RegId::flatten(), isa, gem5::X86ISA::reg, regFiles, and gem5::X86ISA::val.
Referenced by gem5::CheckerCPU::getRegOperand(), gem5::minor::ExecContext::getRegOperand(), and gem5::SimpleExecContext::getRegOperand().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 328 of file simple_thread.hh.
References DPRINTFV, gem5::RegId::flatten(), isa, gem5::X86ISA::reg, regFiles, and gem5::X86ISA::val.
|
inlineoverridevirtual |
|
inline |
Returns the pointer to this SimpleThread's ThreadContext.
Used when a ThreadContext must be passed to objects outside of the CPU.
Definition at line 164 of file simple_thread.hh.
Referenced by gem5::AtomicSimpleCPU::amoMem(), gem5::BaseSimpleCPU::BaseSimpleCPU(), gem5::BaseSimpleCPU::checkForInterrupts(), gem5::BaseKvmCPU::doMMIOAccess(), gem5::TimingSimpleCPU::fetch(), gem5::TimingSimpleCPU::handleReadPacket(), gem5::TimingSimpleCPU::handleWritePacket(), gem5::TimingSimpleCPU::initiateMemAMO(), gem5::TimingSimpleCPU::initiateMemRead(), gem5::MinorCPU::MinorCPU(), gem5::BaseSimpleCPU::preExecute(), gem5::AtomicSimpleCPU::readMem(), gem5::CheckerCPU::setSystem(), gem5::minor::ExecContext::tcBase(), gem5::SimpleExecContext::tcBase(), gem5::AtomicSimpleCPU::tick(), gem5::AtomicSimpleCPU::writeMem(), and gem5::TimingSimpleCPU::writeMem().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 344 of file simple_thread.hh.
References gem5::RegId::flatten(), isa, gem5::X86ISA::reg, and regFiles.
Referenced by gem5::CheckerCPU::getWritableRegOperand(), gem5::minor::ExecContext::getWritableRegOperand(), and gem5::SimpleExecContext::getWritableRegOperand().
|
overridevirtual |
Set the status to Halted.
Implements gem5::ThreadContext.
Definition at line 156 of file simple_thread.cc.
References gem5::ThreadState::_status, gem5::ThreadState::_threadId, gem5::ThreadState::baseCpu, gem5::BaseCPU::haltContext(), gem5::ThreadContext::Halted, and status().
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 173 of file simple_thread.cc.
References gem5::ThreadState::baseCpu, gem5::BaseCPU::htmSendAbortSignal(), htmTransactionStarts, htmTransactionStops, and threadId().
|
inline |
Definition at line 115 of file simple_thread.hh.
References gem5::ThreadState::baseCpu, gem5::csprintf(), gem5::Named::name(), and threadId().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 255 of file simple_thread.hh.
References _pcState.
Referenced by gem5::BaseSimpleCPU::advancePC(), gem5::AtomicSimpleCPU::amoMem(), gem5::minor::LSQ::LSQRequest::completeDisabledMemAccess(), gem5::CheckerCPU::dumpAndExit(), gem5::TimingSimpleCPU::fetch(), gem5::CheckerCPU::genMemFragmentRequest(), gem5::TimingSimpleCPU::htmSendAbortSignal(), gem5::TimingSimpleCPU::initiateMemAMO(), gem5::TimingSimpleCPU::initiateMemMgmtCmd(), gem5::TimingSimpleCPU::initiateMemRead(), gem5::AtomicSimpleCPU::isCpuDrained(), gem5::TimingSimpleCPU::isCpuDrained(), gem5::CheckerCPU::pcState(), gem5::minor::ExecContext::pcState(), gem5::SimpleExecContext::pcState(), gem5::CheckerThreadContext< TC >::pcState(), gem5::BaseSimpleCPU::preExecute(), gem5::SimPoint::profile(), gem5::BaseSimpleCPU::setupFetchRequest(), gem5::TimingSimpleCPU::switchOut(), gem5::AtomicSimpleCPU::tick(), gem5::minor::LSQ::tryToSendToTransfers(), gem5::minor::LSQ::LSQRequest::tryToSuppressFault(), and gem5::TimingSimpleCPU::writeMem().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 256 of file simple_thread.hh.
References _pcState, gem5::ArmISA::set, and gem5::X86ISA::val.
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 259 of file simple_thread.hh.
References _pcState, gem5::ArmISA::set, and gem5::X86ISA::val.
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 231 of file simple_thread.hh.
References gem5::ThreadState::readLastActivate().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 236 of file simple_thread.hh.
References gem5::ThreadState::readLastSuspend().
|
inline |
Definition at line 294 of file simple_thread.hh.
References memAccPredicate.
Referenced by gem5::CheckerCPU::readMemAccPredicate(), gem5::minor::ExecContext::readMemAccPredicate(), and gem5::SimpleExecContext::readMemAccPredicate().
Implements gem5::ThreadContext.
Definition at line 274 of file simple_thread.hh.
References isa, and gem5::BaseISA::readMiscReg().
Referenced by gem5::CheckerCPU::readMiscReg(), gem5::minor::ExecContext::readMiscReg(), gem5::SimpleExecContext::readMiscReg(), gem5::CheckerCPU::readMiscRegOperand(), gem5::minor::ExecContext::readMiscRegOperand(), and gem5::SimpleExecContext::readMiscRegOperand().
Implements gem5::ThreadContext.
Definition at line 268 of file simple_thread.hh.
References isa, and gem5::BaseISA::readMiscRegNoEffect().
Referenced by gem5::CheckerCPU::readMiscRegNoEffect(), and gem5::minor::ExecContext::readMiscRegNoEffect().
|
inline |
Definition at line 264 of file simple_thread.hh.
References predicate.
Referenced by gem5::CheckerCPU::readPredicate(), gem5::minor::ExecContext::readPredicate(), and gem5::SimpleExecContext::readPredicate().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 291 of file simple_thread.hh.
References gem5::ThreadState::storeCondFailures.
Referenced by gem5::CheckerCPU::readStCondFailures(), and gem5::SimpleExecContext::readStCondFailures().
|
inlineoverridevirtual |
Implements gem5::PCEventScope.
Definition at line 177 of file simple_thread.hh.
References gem5::ArmISA::e, pcEventQueue, and gem5::PCEventQueue::remove().
Referenced by gem5::CheckerThreadContext< TC >::remove().
|
inlineoverridevirtual |
Implements gem5::PCEventScope.
Definition at line 176 of file simple_thread.hh.
References gem5::ArmISA::e, pcEventQueue, and gem5::PCEventQueue::schedule().
Referenced by gem5::CheckerThreadContext< TC >::schedule().
Implements gem5::ThreadContext.
Definition at line 180 of file simple_thread.hh.
References comInstEventQueue, gem5::X86ISA::count, gem5::MipsISA::event, and gem5::EventQueue::schedule().
|
overridevirtual |
Serialize an object.
Output an object's state into the current checkpoint section.
cp | Checkpoint state |
Implements gem5::Serializable.
Definition at line 117 of file simple_thread.cc.
References gem5::ThreadState::serialize(), and gem5::serialize().
Referenced by gem5::BaseKvmCPU::serializeThread().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 202 of file simple_thread.hh.
References gem5::ThreadState::setContextId().
Referenced by gem5::CheckerThreadContext< TC >::setContextId().
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 189 of file simple_thread.cc.
References _htmCheckpoint.
|
inline |
Definition at line 300 of file simple_thread.hh.
References memAccPredicate, and gem5::X86ISA::val.
Referenced by gem5::CheckerCPU::setMemAccPredicate(), gem5::minor::ExecContext::setMemAccPredicate(), and gem5::SimpleExecContext::setMemAccPredicate().
Implements gem5::ThreadContext.
Definition at line 286 of file simple_thread.hh.
References isa, gem5::BaseISA::setMiscReg(), and gem5::X86ISA::val.
Referenced by gem5::CheckerCPU::setMiscReg(), gem5::minor::ExecContext::setMiscReg(), gem5::SimpleExecContext::setMiscReg(), gem5::CheckerThreadContext< TC >::setMiscReg(), gem5::minor::ExecContext::setMiscRegOperand(), and gem5::SimpleExecContext::setMiscRegOperand().
Implements gem5::ThreadContext.
Definition at line 280 of file simple_thread.hh.
References isa, gem5::BaseISA::setMiscRegNoEffect(), and gem5::X86ISA::val.
Referenced by gem5::CheckerCPU::setMiscRegNoEffect(), and gem5::CheckerThreadContext< TC >::setMiscRegNoEffect().
|
inline |
Definition at line 265 of file simple_thread.hh.
References predicate, and gem5::X86ISA::val.
Referenced by gem5::CheckerCPU::setPredicate(), gem5::minor::ExecContext::setPredicate(), and gem5::SimpleExecContext::setPredicate().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 215 of file simple_thread.hh.
References gem5::VegaISA::p, and gem5::ThreadState::setProcessPtr().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 372 of file simple_thread.hh.
References DPRINTFV, gem5::RegId::flatten(), isa, gem5::X86ISA::reg, regFiles, and gem5::X86ISA::val.
Reimplemented from gem5::ThreadContext.
Definition at line 354 of file simple_thread.hh.
References DPRINTFV, gem5::RegId::flatten(), gem5::InvalidRegClass, isa, gem5::X86ISA::reg, regFiles, and gem5::X86ISA::val.
Referenced by gem5::CheckerThreadContext< TC >::setReg(), gem5::CheckerCPU::setRegOperand(), gem5::minor::ExecContext::setRegOperand(), and gem5::SimpleExecContext::setRegOperand().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 219 of file simple_thread.hh.
References gem5::ThreadState::_status.
Referenced by gem5::MinorCPU::MinorCPU(), and gem5::CheckerThreadContext< TC >::setStatus().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 306 of file simple_thread.hh.
References gem5::ThreadState::storeCondFailures.
Referenced by gem5::SimpleExecContext::setStCondFailures().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 200 of file simple_thread.hh.
References gem5::ThreadState::setThreadId().
Referenced by gem5::CheckerThreadContext< TC >::setThreadId().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 198 of file simple_thread.hh.
References gem5::ThreadState::socketId().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 217 of file simple_thread.hh.
References gem5::ThreadState::_status.
Referenced by activate(), halt(), suspend(), and gem5::BaseKvmCPU::wakeup().
|
overridevirtual |
Set the status to Suspended.
Implements gem5::ThreadContext.
Definition at line 143 of file simple_thread.cc.
References gem5::ThreadState::_status, gem5::ThreadState::_threadId, gem5::ThreadState::baseCpu, gem5::curTick(), gem5::ThreadState::lastActivate, gem5::ThreadState::lastSuspend, status(), gem5::BaseCPU::suspendContext(), and gem5::ThreadContext::Suspended.
Referenced by gem5::X86KvmCPU::deliverInterrupts(), and gem5::BaseKvmCPU::handleKvmExit().
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 95 of file simple_thread.cc.
References decoder, gem5::ThreadContext::getDecoderPtr(), isa, gem5::ThreadState::storeCondFailures, gem5::InstDecoder::takeOverFrom(), gem5::takeOverFrom(), and gem5::BaseISA::takeOverFrom().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 199 of file simple_thread.hh.
References gem5::ThreadState::threadId().
Referenced by gem5::SimpleExecContext::armMonitor(), gem5::SimpleExecContext::getAddrMonitor(), htmAbortTransaction(), gem5::SimpleExecContext::mwait(), gem5::SimpleExecContext::mwaitAtomic(), and name().
|
overridevirtual |
Unserialize an object.
Read an object's state from the current checkpoint section.
cp | Checkpoint state |
Implements gem5::Serializable.
Definition at line 125 of file simple_thread.cc.
References gem5::ThreadState::unserialize(), and gem5::unserialize().
Referenced by gem5::BaseKvmCPU::unserializeThread().
|
protected |
Definition at line 105 of file simple_thread.hh.
Referenced by getHtmCheckpointPtr(), and setHtmCheckpointPtr().
|
protected |
Definition at line 102 of file simple_thread.hh.
Referenced by clearArchRegs(), pcState(), and pcStateNoRecord().
EventQueue gem5::SimpleThread::comInstEventQueue |
An instruction-based event queue.
Used for scheduling events based on number of instructions committed.
Definition at line 125 of file simple_thread.hh.
Referenced by descheduleInstCountEvent(), gem5::minor::Execute::doInstCommitAccounting(), getCurrentInstCount(), scheduleInstCountEvent(), gem5::BaseSimpleCPU::serviceInstCountEvents(), gem5::BaseKvmCPU::setupInstStop(), and gem5::BaseKvmCPU::tick().
InstDecoder* gem5::SimpleThread::decoder |
Definition at line 131 of file simple_thread.hh.
Referenced by gem5::BaseSimpleCPU::advancePC(), gem5::BaseSimpleCPU::checkForInterrupts(), getDecoderPtr(), gem5::BaseSimpleCPU::preExecute(), gem5::BaseSimpleCPU::setupFetchRequest(), and takeOverFrom().
int64_t gem5::SimpleThread::htmTransactionStarts |
Definition at line 134 of file simple_thread.hh.
Referenced by gem5::TimingSimpleCPU::completeIfetch(), gem5::CheckerCPU::getHtmTransactionalDepth(), gem5::SimpleExecContext::getHtmTransactionalDepth(), and htmAbortTransaction().
int64_t gem5::SimpleThread::htmTransactionStops |
Definition at line 135 of file simple_thread.hh.
Referenced by gem5::TimingSimpleCPU::completeDataAccess(), gem5::CheckerCPU::getHtmTransactionalDepth(), gem5::SimpleExecContext::getHtmTransactionalDepth(), and htmAbortTransaction().
|
protected |
Definition at line 100 of file simple_thread.hh.
Referenced by clearArchRegs(), getIsaPtr(), getReg(), getWritableReg(), readMiscReg(), readMiscRegNoEffect(), setMiscReg(), setMiscRegNoEffect(), setReg(), and takeOverFrom().
|
protected |
True if the memory access should be skipped for this instruction.
Definition at line 111 of file simple_thread.hh.
Referenced by readMemAccPredicate(), and setMemAccPredicate().
BaseMMU* gem5::SimpleThread::mmu |
Definition at line 129 of file simple_thread.hh.
Referenced by gem5::AtomicSimpleCPU::amoMem(), demapPage(), gem5::TimingSimpleCPU::fetch(), getMMUPtr(), gem5::TimingSimpleCPU::initiateMemAMO(), gem5::TimingSimpleCPU::initiateMemRead(), gem5::CheckerCPU::mwaitAtomic(), gem5::minor::ExecContext::mwaitAtomic(), gem5::SimpleExecContext::mwaitAtomic(), gem5::AtomicSimpleCPU::readMem(), gem5::AtomicSimpleCPU::tick(), gem5::AtomicSimpleCPU::writeMem(), and gem5::TimingSimpleCPU::writeMem().
PCEventQueue gem5::SimpleThread::pcEventQueue |
Definition at line 120 of file simple_thread.hh.
Referenced by remove(), and schedule().
|
protected |
Did this instruction execute or is it predicated false.
Definition at line 108 of file simple_thread.hh.
Referenced by readPredicate(), and setPredicate().
|
protected |
Definition at line 98 of file simple_thread.hh.
Referenced by clearArchRegs(), getReg(), getWritableReg(), and setReg().
System* gem5::SimpleThread::system |
Definition at line 127 of file simple_thread.hh.
Referenced by getSystemPtr().