gem5
v22.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 |
![]() | |
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 |
RegId | flattenRegId (const RegId ®Id) const 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 |
RegVal | getRegFlat (const RegId ®) const override |
Flat register interfaces. More... | |
void | getReg (const RegId &arch_reg, void *val) const override |
void | getRegFlat (const RegId ®, void *val) const override |
void * | getWritableReg (const RegId &arch_reg) override |
void * | getWritableRegFlat (const RegId ®) override |
void | setReg (const RegId &arch_reg, RegVal val) override |
void | setRegFlat (const RegId ®, RegVal val) override |
void | setReg (const RegId &arch_reg, const void *val) override |
void | setRegFlat (const RegId ®, 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) |
RegVal | readIntReg (RegIndex reg_idx) const |
RegVal | readFloatReg (RegIndex reg_idx) const |
TheISA::VecRegContainer | readVecReg (const RegId ®) const |
TheISA::VecRegContainer & | getWritableVecReg (const RegId ®) |
RegVal | readVecElem (const RegId ®) const |
RegVal | readCCReg (RegIndex reg_idx) const |
void | setIntReg (RegIndex reg_idx, RegVal val) |
void | setFloatReg (RegIndex reg_idx, RegVal val) |
void | setVecReg (const RegId ®, const TheISA::VecRegContainer &val) |
void | setVecElem (const RegId ®, RegVal val) |
void | setCCReg (RegIndex reg_idx, RegVal val) |
void | pcState (Addr addr) |
virtual int | exit () |
RegVal | readIntRegFlat (RegIndex idx) const |
void | setIntRegFlat (RegIndex idx, RegVal val) |
RegVal | readFloatRegFlat (RegIndex idx) const |
void | setFloatRegFlat (RegIndex idx, RegVal val) |
TheISA::VecRegContainer | readVecRegFlat (RegIndex idx) const |
TheISA::VecRegContainer & | getWritableVecRegFlat (RegIndex idx) |
void | setVecRegFlat (RegIndex idx, const TheISA::VecRegContainer &val) |
RegVal | readVecElemFlat (RegIndex idx) const |
void | setVecElemFlat (RegIndex idx, RegVal val) |
RegVal | readCCRegFlat (RegIndex idx) const |
void | setCCRegFlat (RegIndex idx, RegVal val) |
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 |
TheISA::ISA *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 95 of file simple_thread.hh.
Definition at line 98 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 69 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 149 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::ThreadContext::Active, gem5::ThreadState::baseCpu, gem5::curTick(), gem5::ThreadState::lastActivate, and status().
Referenced by gem5::BaseKvmCPU::wakeup().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 247 of file simple_thread.hh.
References _pcState, isa, regFiles, gem5::X86ISA::rf, and gem5::ArmISA::set.
Referenced by gem5::CheckerThreadContext< TC >::clearArchRegs().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 204 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 200 of file simple_thread.hh.
References gem5::ThreadState::cpuId().
|
inline |
Definition at line 170 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 188 of file simple_thread.hh.
References comInstEventQueue, gem5::EventQueue::deschedule(), and gem5::MipsISA::event.
Implements gem5::ThreadContext.
Definition at line 295 of file simple_thread.hh.
References isa.
Referenced by getReg(), getWritableReg(), and setReg().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 209 of file simple_thread.hh.
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 198 of file simple_thread.hh.
References gem5::ThreadState::baseCpu.
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 193 of file simple_thread.hh.
References comInstEventQueue, and gem5::EventQueue::getCurTick().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 213 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 211 of file simple_thread.hh.
References isa.
Referenced by copyArchRegs(), gem5::TimingSimpleCPU::handleReadPacket(), gem5::AtomicSimpleCPU::readMem(), gem5::TimingSimpleCPU::sendData(), gem5::minor::LSQ::tryToSendToTransfers(), and gem5::AtomicSimpleCPU::writeMem().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 207 of file simple_thread.hh.
References mmu.
Referenced by gem5::minor::ExecContext::demapPage().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 217 of file simple_thread.hh.
References gem5::ThreadState::getProcessPtr().
Reimplemented from gem5::ThreadContext.
Definition at line 321 of file simple_thread.hh.
References DPRINTFV, flattenRegId(), gem5::X86ISA::reg, regFiles, and gem5::X86ISA::val.
Referenced by gem5::minor::ExecContext::getRegOperand(), gem5::CheckerCPU::getRegOperand(), and gem5::SimpleExecContext::getRegOperand().
|
inlineoverridevirtual |
Reimplemented from gem5::ThreadContext.
Definition at line 351 of file simple_thread.hh.
References DPRINTFV, flattenRegId(), gem5::X86ISA::reg, regFiles, and gem5::X86ISA::val.
Flat register interfaces.
Some architectures have different registers visible in different modes. Such architectures "flatten" a register (see flattenRegId()) to map it into the gem5 register file. This interface provides a flat interface to the underlying register file, which allows for example serialization code to access all registers.
Reimplemented from gem5::ThreadContext.
Definition at line 337 of file simple_thread.hh.
References DPRINTFV, gem5::X86ISA::reg, regFiles, and gem5::X86ISA::val.
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 367 of file simple_thread.hh.
References DPRINTFV, 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 167 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 |
Reimplemented from gem5::ThreadContext.
Definition at line 380 of file simple_thread.hh.
References flattenRegId(), gem5::X86ISA::reg, and regFiles.
Referenced by gem5::minor::ExecContext::getWritableRegOperand(), gem5::CheckerCPU::getWritableRegOperand(), and gem5::SimpleExecContext::getWritableRegOperand().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 390 of file simple_thread.hh.
References gem5::X86ISA::reg, and regFiles.
|
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::ThreadContext::Halted, and status().
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 174 of file simple_thread.cc.
References gem5::ThreadState::baseCpu, htmTransactionStarts, htmTransactionStops, and threadId().
|
inline |
Definition at line 118 of file simple_thread.hh.
References gem5::ThreadState::baseCpu, gem5::csprintf(), and threadId().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 258 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::minor::ExecContext::pcState(), gem5::CheckerThreadContext< TC >::pcState(), gem5::CheckerCPU::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 259 of file simple_thread.hh.
References _pcState, gem5::ArmISA::set, and gem5::X86ISA::val.
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 262 of file simple_thread.hh.
References _pcState, gem5::ArmISA::set, and gem5::X86ISA::val.
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 234 of file simple_thread.hh.
References gem5::ThreadState::readLastActivate().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 239 of file simple_thread.hh.
References gem5::ThreadState::readLastSuspend().
|
inline |
Definition at line 303 of file simple_thread.hh.
References memAccPredicate.
Referenced by gem5::minor::ExecContext::readMemAccPredicate(), gem5::CheckerCPU::readMemAccPredicate(), and gem5::SimpleExecContext::readMemAccPredicate().
Implements gem5::ThreadContext.
Definition at line 277 of file simple_thread.hh.
References isa.
Referenced by gem5::minor::ExecContext::readMiscReg(), gem5::CheckerCPU::readMiscReg(), gem5::SimpleExecContext::readMiscReg(), gem5::minor::ExecContext::readMiscRegOperand(), gem5::CheckerCPU::readMiscRegOperand(), and gem5::SimpleExecContext::readMiscRegOperand().
Implements gem5::ThreadContext.
Definition at line 271 of file simple_thread.hh.
References isa.
Referenced by gem5::minor::ExecContext::readMiscRegNoEffect(), and gem5::CheckerCPU::readMiscRegNoEffect().
|
inline |
Definition at line 267 of file simple_thread.hh.
References predicate.
Referenced by gem5::minor::ExecContext::readPredicate(), gem5::CheckerCPU::readPredicate(), and gem5::SimpleExecContext::readPredicate().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 300 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 180 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 179 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 183 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::ThreadState::serialize(), and gem5::serialize().
Referenced by gem5::BaseKvmCPU::serializeThread().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 205 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 309 of file simple_thread.hh.
References memAccPredicate, and gem5::X86ISA::val.
Referenced by gem5::minor::ExecContext::setMemAccPredicate(), gem5::CheckerCPU::setMemAccPredicate(), and gem5::SimpleExecContext::setMemAccPredicate().
Implements gem5::ThreadContext.
Definition at line 289 of file simple_thread.hh.
References isa, and gem5::X86ISA::val.
Referenced by gem5::minor::ExecContext::setMiscReg(), gem5::CheckerThreadContext< TC >::setMiscReg(), gem5::CheckerCPU::setMiscReg(), gem5::SimpleExecContext::setMiscReg(), gem5::minor::ExecContext::setMiscRegOperand(), and gem5::SimpleExecContext::setMiscRegOperand().
Implements gem5::ThreadContext.
Definition at line 283 of file simple_thread.hh.
References isa, and gem5::X86ISA::val.
Referenced by gem5::CheckerThreadContext< TC >::setMiscRegNoEffect(), and gem5::CheckerCPU::setMiscRegNoEffect().
|
inline |
Definition at line 268 of file simple_thread.hh.
References predicate, and gem5::X86ISA::val.
Referenced by gem5::minor::ExecContext::setPredicate(), gem5::CheckerCPU::setPredicate(), and gem5::SimpleExecContext::setPredicate().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 218 of file simple_thread.hh.
References gem5::VegaISA::p, and gem5::ThreadState::setProcessPtr().
|
inlineoverridevirtual |
Reimplemented from gem5::ThreadContext.
Definition at line 433 of file simple_thread.hh.
References DPRINTFV, flattenRegId(), gem5::X86ISA::reg, regFiles, and gem5::X86ISA::val.
Reimplemented from gem5::ThreadContext.
Definition at line 399 of file simple_thread.hh.
References DPRINTFV, flattenRegId(), gem5::InvalidRegClass, gem5::X86ISA::reg, regFiles, and gem5::X86ISA::val.
Referenced by gem5::CheckerThreadContext< TC >::setReg(), gem5::minor::ExecContext::setRegOperand(), gem5::CheckerCPU::setRegOperand(), and gem5::SimpleExecContext::setRegOperand().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 449 of file simple_thread.hh.
References DPRINTFV, gem5::X86ISA::reg, regFiles, and gem5::X86ISA::val.
Reimplemented from gem5::ThreadContext.
Definition at line 417 of file simple_thread.hh.
References DPRINTFV, gem5::InvalidRegClass, gem5::X86ISA::reg, regFiles, and gem5::X86ISA::val.
Referenced by gem5::CheckerThreadContext< TC >::setRegFlat().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 222 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 315 of file simple_thread.hh.
References gem5::ThreadState::storeCondFailures.
Referenced by gem5::SimpleExecContext::setStCondFailures().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 203 of file simple_thread.hh.
References gem5::ThreadState::setThreadId().
Referenced by gem5::CheckerThreadContext< TC >::setThreadId().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 201 of file simple_thread.hh.
References gem5::ThreadState::socketId().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 220 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(), 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::InstDecoder::takeOverFrom(), and gem5::takeOverFrom().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 202 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 126 of file simple_thread.cc.
References gem5::ThreadState::unserialize(), and gem5::unserialize().
Referenced by gem5::BaseKvmCPU::unserializeThread().
|
protected |
Definition at line 108 of file simple_thread.hh.
Referenced by getHtmCheckpointPtr(), and setHtmCheckpointPtr().
|
protected |
Definition at line 105 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 128 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 134 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 137 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 138 of file simple_thread.hh.
Referenced by gem5::TimingSimpleCPU::completeDataAccess(), gem5::CheckerCPU::getHtmTransactionalDepth(), gem5::SimpleExecContext::getHtmTransactionalDepth(), and htmAbortTransaction().
|
protected |
Definition at line 103 of file simple_thread.hh.
Referenced by clearArchRegs(), flattenRegId(), getIsaPtr(), readMiscReg(), readMiscRegNoEffect(), setMiscReg(), setMiscRegNoEffect(), and takeOverFrom().
|
protected |
True if the memory access should be skipped for this instruction.
Definition at line 114 of file simple_thread.hh.
Referenced by readMemAccPredicate(), and setMemAccPredicate().
BaseMMU* gem5::SimpleThread::mmu |
Definition at line 132 of file simple_thread.hh.
Referenced by gem5::AtomicSimpleCPU::amoMem(), demapPage(), gem5::TimingSimpleCPU::fetch(), getMMUPtr(), gem5::TimingSimpleCPU::initiateMemAMO(), gem5::TimingSimpleCPU::initiateMemRead(), gem5::minor::ExecContext::mwaitAtomic(), gem5::CheckerCPU::mwaitAtomic(), gem5::SimpleExecContext::mwaitAtomic(), gem5::AtomicSimpleCPU::readMem(), gem5::AtomicSimpleCPU::tick(), gem5::AtomicSimpleCPU::writeMem(), and gem5::TimingSimpleCPU::writeMem().
PCEventQueue gem5::SimpleThread::pcEventQueue |
Definition at line 123 of file simple_thread.hh.
Referenced by remove(), and schedule().
|
protected |
Did this instruction execute or is it predicated false.
Definition at line 111 of file simple_thread.hh.
Referenced by readPredicate(), and setPredicate().
|
protected |
Definition at line 101 of file simple_thread.hh.
Referenced by clearArchRegs(), getReg(), getRegFlat(), getWritableReg(), getWritableRegFlat(), setReg(), and setRegFlat().
System* gem5::SimpleThread::system |
Definition at line 130 of file simple_thread.hh.
Referenced by getSystemPtr().