gem5 v24.0.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 |
Public Types inherited from gem5::ThreadState | |
typedef ThreadContext::Status | Status |
Public Types inherited from gem5::ThreadContext | |
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. | |
void | unserialize (CheckpointIn &cp) override |
Unserialize an object. | |
ThreadContext * | getTC () |
Returns the pointer to this SimpleThread's ThreadContext. | |
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. | |
void | suspend () override |
Set the status to Suspended. | |
void | halt () override |
Set the status to Halted. | |
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 |
Public Member Functions inherited from gem5::ThreadState | |
ThreadState (BaseCPU *cpu, ThreadID _tid, Process *_process) | |
virtual | ~ThreadState ()=default |
void | serialize (CheckpointOut &cp) const override |
Serialize an object. | |
void | unserialize (CheckpointIn &cp) override |
Unserialize an object. | |
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. | |
void | setStatus (Status new_status) |
Sets the status of this thread. | |
Public Member Functions inherited from gem5::Serializable | |
Serializable () | |
virtual | ~Serializable () |
void | serializeSection (CheckpointOut &cp, const char *name) const |
Serialize an object into a new section. | |
void | serializeSection (CheckpointOut &cp, const std::string &name) const |
void | unserializeSection (CheckpointIn &cp, const char *name) |
Unserialize an a child object. | |
void | unserializeSection (CheckpointIn &cp, const std::string &name) |
Public Member Functions inherited from gem5::ThreadContext | |
bool | getUseForClone () |
void | setUseForClone (bool new_val) |
virtual | ~ThreadContext () |
virtual void | sendFunctional (PacketPtr pkt) |
void | quiesce () |
Quiesce thread context. | |
void | quiesceTick (Tick resume) |
Quiesce, suspend, and schedule activate at resume. | |
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. | |
System * | system |
BaseMMU * | mmu |
InstDecoder * | decoder |
int64_t | htmTransactionStarts |
int64_t | htmTransactionStops |
Public Attributes inherited from gem5::ThreadState | |
Counter | numInst |
Number of instructions committed. | |
Counter | numOp |
Number of ops (including micro ops) committed. | |
gem5::ThreadState::ThreadStateStats | threadStats |
Counter | numLoad |
Number of simulated loads, used for tracking events based on the number of loads committed. | |
Counter | startNumLoad |
The number of simulated loads committed prior to this run. | |
Tick | lastActivate |
Last time activate was called on this thread. | |
Tick | lastSuspend |
Last time suspend was called on this thread. | |
unsigned | storeCondFailures |
Public Attributes inherited from gem5::ThreadContext | |
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. | |
bool | memAccPredicate |
True if the memory access should be skipped for this instruction. | |
Protected Attributes inherited from gem5::ThreadState | |
ThreadContext::Status | _status |
BaseCPU * | baseCpu |
ContextID | _contextId |
ThreadID | _threadId |
Process * | process |
Protected Attributes inherited from gem5::ThreadContext | |
bool | useForClone = false |
Additional Inherited Members | |
Static Public Member Functions inherited from gem5::Serializable | |
static const std::string & | currentSection () |
Gets the fully-qualified name of the active section. | |
static void | generateCheckpointOut (const std::string &cpt_dir, std::ofstream &outstream) |
Generate a checkpoint file so that the serialization can be routed to it. | |
Static Public Member Functions inherited from gem5::ThreadContext | |
static void | compare (ThreadContext *one, ThreadContext *two) |
function to compare two thread contexts (for debugging) | |
Static Public Attributes inherited from gem5::ThreadContext | |
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 93 of file simple_thread.hh.
Definition at line 96 of file simple_thread.hh.
gem5::SimpleThread::SimpleThread | ( | BaseCPU * | _cpu, |
int | _thread_num, | ||
System * | _system, | ||
BaseMMU * | _mmu, | ||
BaseISA * | _isa, | ||
InstDecoder * | _decoder ) |
Definition at line 90 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::MatRegClass, gem5::BaseISA::regClasses(), gem5::VecElemClass, gem5::VecPredRegClass, and gem5::VecRegClass.
|
inlinevirtual |
Definition at line 147 of file simple_thread.hh.
|
overridevirtual |
Set the status to Active.
Implements gem5::ThreadContext.
Definition at line 133 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 245 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 202 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 167 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 107 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 198 of file simple_thread.hh.
References gem5::ThreadState::cpuId().
|
inline |
Definition at line 168 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 186 of file simple_thread.hh.
References comInstEventQueue, gem5::EventQueue::deschedule(), and gem5::MipsISA::event.
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 207 of file simple_thread.hh.
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 196 of file simple_thread.hh.
References gem5::ThreadState::baseCpu.
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 191 of file simple_thread.hh.
References comInstEventQueue, and gem5::EventQueue::getCurTick().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 211 of file simple_thread.hh.
References decoder.
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 184 of file simple_thread.cc.
References _htmCheckpoint.
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 209 of file simple_thread.hh.
References isa.
Referenced by copyArchRegs(), gem5::TimingSimpleCPU::handleReadPacket(), gem5::AtomicSimpleCPU::readMem(), gem5::TimingSimpleCPU::sendData(), gem5::CheckerCPU::setRegOperand(), gem5::CheckerCPU::setRegOperand(), gem5::minor::LSQ::tryToSendToTransfers(), and gem5::AtomicSimpleCPU::writeMem().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 205 of file simple_thread.hh.
References mmu.
Referenced by gem5::minor::ExecContext::demapPage().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 215 of file simple_thread.hh.
References gem5::ThreadState::getProcessPtr().
Reimplemented from gem5::ThreadContext.
Definition at line 313 of file simple_thread.hh.
References DPRINTFV, gem5::RegId::flatten(), gem5::RegId::index(), isa, gem5::X86ISA::reg, regFiles, and gem5::X86ISA::val.
Referenced by gem5::CheckerCPU::getRegOperand(), gem5::CheckerCPU::getRegOperand(), gem5::minor::ExecContext::getRegOperand(), gem5::minor::ExecContext::getRegOperand(), gem5::SimpleExecContext::getRegOperand(), and gem5::SimpleExecContext::getRegOperand().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 329 of file simple_thread.hh.
References DPRINTFV, gem5::RegId::flatten(), gem5::RegId::index(), 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 165 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 345 of file simple_thread.hh.
References gem5::RegId::flatten(), gem5::RegId::index(), 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 157 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 174 of file simple_thread.cc.
References gem5::ThreadState::baseCpu, gem5::BaseCPU::htmSendAbortSignal(), htmTransactionStarts, htmTransactionStops, and threadId().
|
inline |
Definition at line 116 of file simple_thread.hh.
References gem5::ThreadState::baseCpu, gem5::csprintf(), gem5::Named::name(), and threadId().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 256 of file simple_thread.hh.
References _pcState.
Referenced by gem5::BaseSimpleCPU::advancePC(), gem5::AtomicSimpleCPU::amoMem(), gem5::BaseSimpleCPU::checkPcEventQueue(), 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::CheckerCPU::pcState(), gem5::CheckerThreadContext< TC >::pcState(), gem5::minor::ExecContext::pcState(), gem5::minor::ExecContext::pcState(), gem5::SimpleExecContext::pcState(), gem5::SimpleExecContext::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 257 of file simple_thread.hh.
References _pcState, gem5::ArmISA::set, and gem5::X86ISA::val.
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 260 of file simple_thread.hh.
References _pcState, gem5::ArmISA::set, and gem5::X86ISA::val.
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 232 of file simple_thread.hh.
References gem5::ThreadState::readLastActivate().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 237 of file simple_thread.hh.
References gem5::ThreadState::readLastSuspend().
|
inline |
Definition at line 295 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 275 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 269 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 265 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 292 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 178 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 177 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 181 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 118 of file simple_thread.cc.
References gem5::serialize(), and gem5::ThreadState::serialize().
Referenced by gem5::BaseKvmCPU::serializeThread().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 203 of file simple_thread.hh.
References gem5::ThreadState::setContextId().
Referenced by gem5::CheckerThreadContext< TC >::setContextId().
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 190 of file simple_thread.cc.
References _htmCheckpoint.
|
inline |
Definition at line 301 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 287 of file simple_thread.hh.
References isa, gem5::BaseISA::setMiscReg(), and gem5::X86ISA::val.
Referenced by gem5::CheckerCPU::setMiscReg(), gem5::CheckerThreadContext< TC >::setMiscReg(), gem5::minor::ExecContext::setMiscReg(), gem5::SimpleExecContext::setMiscReg(), gem5::minor::ExecContext::setMiscRegOperand(), and gem5::SimpleExecContext::setMiscRegOperand().
Implements gem5::ThreadContext.
Definition at line 281 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 266 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 216 of file simple_thread.hh.
References gem5::MipsISA::p, and gem5::ThreadState::setProcessPtr().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 373 of file simple_thread.hh.
References DPRINTFV, gem5::RegId::flatten(), gem5::RegId::index(), isa, gem5::X86ISA::reg, regFiles, and gem5::X86ISA::val.
Reimplemented from gem5::ThreadContext.
Definition at line 355 of file simple_thread.hh.
References DPRINTFV, gem5::RegId::flatten(), gem5::RegId::index(), gem5::InvalidRegClass, isa, gem5::X86ISA::reg, regFiles, and gem5::X86ISA::val.
Referenced by gem5::CheckerThreadContext< TC >::setReg(), gem5::CheckerThreadContext< TC >::setReg(), gem5::CheckerCPU::setRegOperand(), gem5::CheckerCPU::setRegOperand(), gem5::minor::ExecContext::setRegOperand(), gem5::minor::ExecContext::setRegOperand(), gem5::SimpleExecContext::setRegOperand(), and gem5::SimpleExecContext::setRegOperand().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 220 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 307 of file simple_thread.hh.
References gem5::ThreadState::storeCondFailures.
Referenced by gem5::SimpleExecContext::setStCondFailures().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 201 of file simple_thread.hh.
References gem5::ThreadState::setThreadId().
Referenced by gem5::CheckerThreadContext< TC >::setThreadId().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 199 of file simple_thread.hh.
References gem5::ThreadState::socketId().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 218 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 144 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 96 of file simple_thread.cc.
References decoder, gem5::ThreadContext::getDecoderPtr(), isa, gem5::ThreadState::storeCondFailures, gem5::BaseISA::takeOverFrom(), gem5::InstDecoder::takeOverFrom(), and gem5::takeOverFrom().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 200 of file simple_thread.hh.
References gem5::ThreadState::threadId().
Referenced by gem5::SimpleExecContext::armMonitor(), gem5::BaseSimpleCPU::countCommitInst(), gem5::BaseSimpleCPU::countFetchInst(), gem5::SimpleExecContext::getAddrMonitor(), htmAbortTransaction(), gem5::BaseKvmCPU::kvmRun(), gem5::SimpleExecContext::mwait(), gem5::SimpleExecContext::mwaitAtomic(), name(), gem5::BaseSimpleCPU::postExecute(), gem5::SimpleExecContext::readMiscReg(), gem5::SimpleExecContext::readMiscRegOperand(), gem5::SimpleExecContext::setMiscReg(), and gem5::SimpleExecContext::setMiscRegOperand().
|
overridevirtual |
Unserialize an object.
Read an object's state from the current checkpoint section.
cp | Checkpoint state |
Implements gem5::Serializable.
Definition at line 126 of file simple_thread.cc.
References gem5::ThreadState::unserialize(), and gem5::unserialize().
Referenced by gem5::BaseKvmCPU::unserializeThread().
|
protected |
Definition at line 106 of file simple_thread.hh.
Referenced by getHtmCheckpointPtr(), and setHtmCheckpointPtr().
|
protected |
Definition at line 103 of file simple_thread.hh.
Referenced by clearArchRegs(), pcState(), 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 126 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 132 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 135 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 136 of file simple_thread.hh.
Referenced by gem5::TimingSimpleCPU::completeDataAccess(), gem5::CheckerCPU::getHtmTransactionalDepth(), gem5::SimpleExecContext::getHtmTransactionalDepth(), and htmAbortTransaction().
|
protected |
Definition at line 101 of file simple_thread.hh.
Referenced by clearArchRegs(), getIsaPtr(), getReg(), getReg(), getWritableReg(), readMiscReg(), readMiscRegNoEffect(), setMiscReg(), setMiscRegNoEffect(), setReg(), setReg(), and takeOverFrom().
|
protected |
True if the memory access should be skipped for this instruction.
Definition at line 112 of file simple_thread.hh.
Referenced by readMemAccPredicate(), and setMemAccPredicate().
BaseMMU* gem5::SimpleThread::mmu |
Definition at line 130 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 121 of file simple_thread.hh.
Referenced by remove(), and schedule().
|
protected |
Did this instruction execute or is it predicated false.
Definition at line 109 of file simple_thread.hh.
Referenced by readPredicate(), and setPredicate().
|
protected |
Definition at line 99 of file simple_thread.hh.
Referenced by clearArchRegs(), getReg(), getReg(), getWritableReg(), setReg(), and setReg().
System* gem5::SimpleThread::system |
Definition at line 128 of file simple_thread.hh.
Referenced by getSystemPtr().