gem5
v21.2.1.0
|
Derived ThreadContext class for use with the O3CPU. More...
#include <thread_context.hh>
Public Member Functions | |
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 |
BaseMMU * | getMMUPtr () override |
Returns a pointer to the MMU. More... | |
CheckerCPU * | getCheckerCpuPtr () override |
BaseISA * | getIsaPtr () override |
InstDecoder * | getDecoderPtr () override |
BaseCPU * | getCpuPtr () override |
Returns a pointer to this CPU. More... | |
int | cpuId () const override |
Reads this CPU's ID. More... | |
uint32_t | socketId () const override |
Reads this CPU's Socket ID. More... | |
ContextID | contextId () const override |
void | setContextId (ContextID id) override |
int | threadId () const override |
Returns this thread's ID number. More... | |
void | setThreadId (int id) override |
System * | getSystemPtr () override |
Returns a pointer to the system. More... | |
Process * | getProcessPtr () override |
Returns a pointer to this thread's process. More... | |
void | setProcessPtr (Process *p) override |
Status | status () const override |
Returns this thread's status. More... | |
void | setStatus (Status new_status) override |
Sets this thread's status. More... | |
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... | |
void | takeOverFrom (gem5::ThreadContext *old_context) override |
Takes over execution of a thread from another CPU. More... | |
Tick | readLastActivate () override |
Reads the last tick that this thread was activated on. More... | |
Tick | readLastSuspend () override |
Reads the last tick that this thread was suspended on. More... | |
void | copyArchRegs (gem5::ThreadContext *tc) override |
Copies the architectural registers from another TC into this TC. More... | |
void | clearArchRegs () override |
Resets all architectural registers to 0. More... | |
RegVal | readReg (RegIndex reg_idx) |
Reads an integer register. More... | |
RegVal | readIntReg (RegIndex reg_idx) const override |
RegVal | readFloatReg (RegIndex reg_idx) const override |
const TheISA::VecRegContainer & | readVecReg (const RegId &id) const override |
TheISA::VecRegContainer & | getWritableVecReg (const RegId &id) override |
Read vector register operand for modification, hierarchical indexing. More... | |
RegVal | readVecElem (const RegId ®) const override |
const TheISA::VecPredRegContainer & | readVecPredReg (const RegId &id) const override |
TheISA::VecPredRegContainer & | getWritableVecPredReg (const RegId &id) override |
RegVal | readCCReg (RegIndex reg_idx) const override |
void | setIntReg (RegIndex reg_idx, RegVal val) override |
Sets an integer register to a value. More... | |
void | setFloatReg (RegIndex reg_idx, RegVal val) override |
void | setVecReg (const RegId ®, const TheISA::VecRegContainer &val) override |
void | setVecElem (const RegId ®, RegVal val) override |
void | setVecPredReg (const RegId ®, const TheISA::VecPredRegContainer &val) override |
void | setCCReg (RegIndex reg_idx, RegVal val) override |
const PCStateBase & | pcState () const override |
Reads this thread's PC state. More... | |
void | pcState (const PCStateBase &val) override |
Sets this thread's PC state. More... | |
void | pcStateNoRecord (const PCStateBase &val) override |
RegVal | readMiscRegNoEffect (RegIndex misc_reg) const override |
Reads a miscellaneous register. More... | |
RegVal | readMiscReg (RegIndex misc_reg) override |
Reads a misc. More... | |
void | setMiscRegNoEffect (RegIndex misc_reg, RegVal val) override |
Sets a misc. More... | |
void | setMiscReg (RegIndex misc_reg, RegVal val) override |
Sets a misc. More... | |
RegId | flattenRegId (const RegId ®Id) const override |
unsigned | readStCondFailures () const override |
Returns the number of consecutive store conditional failures. More... | |
void | setStCondFailures (unsigned sc_failures) override |
Sets the number of consecutive store conditional failures. More... | |
void | conditionalSquash () |
check if the cpu is currently in state update mode and squash if not. More... | |
RegVal | readIntRegFlat (RegIndex idx) const override |
Flat register interfaces. More... | |
void | setIntRegFlat (RegIndex idx, RegVal val) override |
RegVal | readFloatRegFlat (RegIndex idx) const override |
void | setFloatRegFlat (RegIndex idx, RegVal val) override |
const TheISA::VecRegContainer & | readVecRegFlat (RegIndex idx) const override |
TheISA::VecRegContainer & | getWritableVecRegFlat (RegIndex idx) override |
Read vector register operand for modification, flat indexing. More... | |
void | setVecRegFlat (RegIndex idx, const TheISA::VecRegContainer &val) override |
RegVal | readVecElemFlat (RegIndex idx, const ElemIndex &elemIndex) const override |
void | setVecElemFlat (RegIndex idx, const ElemIndex &elemIdx, RegVal val) override |
const TheISA::VecPredRegContainer & | readVecPredRegFlat (RegIndex idx) const override |
TheISA::VecPredRegContainer & | getWritableVecPredRegFlat (RegIndex idx) override |
void | setVecPredRegFlat (RegIndex idx, const TheISA::VecPredRegContainer &val) override |
RegVal | readCCRegFlat (RegIndex idx) const override |
void | setCCRegFlat (RegIndex idx, RegVal val) override |
void | htmAbortTransaction (uint64_t htm_uid, HtmFailureFaultCause cause) override |
BaseHTMCheckpointPtr & | getHtmCheckpointPtr () override |
void | setHtmCheckpointPtr (BaseHTMCheckpointPtr new_cpt) override |
![]() | |
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 | |
CPU * | cpu |
Pointer to the CPU. More... | |
ThreadState * | thread |
Pointer to the thread state that this TC corrseponds to. More... | |
![]() | |
int | intResult = DefaultIntResult |
double | floatResult = DefaultFloatResult |
int | intOffset = 0 |
Additional Inherited Members | |
![]() | |
enum | Status { Active, Suspended, Halting, Halted } |
![]() | |
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 |
![]() | |
bool | useForClone = false |
Derived ThreadContext class for use with the O3CPU.
It provides the interface for any external objects to access a single thread's state and some general CPU state. Any time external objects try to update state through this interface, the CPU will create an event to squash all in-flight instructions in order to ensure state is maintained correctly. It must be defined specifically for the O3CPU because not all architectural state is located within the ThreadState (such as the commit PC, and registers), and specific actions must be taken when using this interface (such as squashing all in-flight instructions when doing a write to this interface).
Definition at line 68 of file thread_context.hh.
|
overridevirtual |
Set the status to Active.
Implements gem5::ThreadContext.
Definition at line 70 of file thread_context.cc.
References gem5::o3::CPU::activateContext(), gem5::ThreadContext::Active, cpu, gem5::curTick(), DPRINTF, gem5::ThreadState::lastActivate, gem5::ThreadState::setStatus(), gem5::ThreadState::status(), thread, gem5::ThreadState::threadId(), and threadId().
|
overridevirtual |
Resets all architectural registers to 0.
Implements gem5::ThreadContext.
Definition at line 147 of file thread_context.cc.
References cpu, gem5::o3::CPU::isa, thread, and gem5::ThreadState::threadId().
|
inline |
check if the cpu is currently in state update mode and squash if not.
This function will return true if a trap is pending or if a fault or similar is currently writing to the thread context and doesn't want reset all the state (see noSquashFromTC).
Definition at line 336 of file thread_context.hh.
References cpu, gem5::o3::ThreadState::noSquashFromTC, gem5::o3::CPU::squashFromTC(), thread, gem5::ThreadState::threadId(), and gem5::o3::ThreadState::trapPending.
Referenced by htmAbortTransaction(), pcState(), pcStateNoRecord(), setCCRegFlat(), setFloatRegFlat(), setIntRegFlat(), setMiscReg(), setMiscRegNoEffect(), setVecElemFlat(), setVecPredRegFlat(), and setVecRegFlat().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 130 of file thread_context.hh.
References gem5::ThreadState::contextId(), and thread.
|
overridevirtual |
Copies the architectural registers from another TC into this TC.
Implements gem5::ThreadContext.
Definition at line 138 of file thread_context.cc.
References gem5::BaseISA::copyRegsFrom(), getIsaPtr(), gem5::o3::ThreadState::noSquashFromTC, and thread.
|
inlineoverridevirtual |
Reads this CPU's ID.
Implements gem5::ThreadContext.
Definition at line 125 of file thread_context.hh.
References cpu.
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 91 of file thread_context.hh.
References gem5::o3::ThreadState::comInstEventQueue, gem5::EventQueue::deschedule(), gem5::MipsISA::event, and thread.
Implements gem5::ThreadContext.
Definition at line 267 of file thread_context.cc.
References cpu, gem5::o3::CPU::isa, thread, and gem5::ThreadState::threadId().
Referenced by getWritableVecPredReg(), getWritableVecReg(), readCCReg(), readFloatReg(), readIntReg(), readReg(), readVecElem(), readVecPredReg(), readVecReg(), setCCReg(), setFloatReg(), setIntReg(), setVecElem(), setVecPredReg(), and setVecReg().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 107 of file thread_context.hh.
|
inlineoverridevirtual |
Returns a pointer to this CPU.
Implements gem5::ThreadContext.
Definition at line 122 of file thread_context.hh.
References cpu.
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 96 of file thread_context.hh.
References gem5::o3::ThreadState::comInstEventQueue, gem5::EventQueue::getCurTick(), and thread.
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 116 of file thread_context.hh.
References cpu, gem5::o3::Fetch::decoder, gem5::o3::CPU::fetch, thread, and gem5::ThreadState::threadId().
Referenced by takeOverFrom().
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 299 of file thread_context.cc.
References gem5::o3::ThreadState::htmCheckpoint, and thread.
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 110 of file thread_context.hh.
References cpu, gem5::o3::CPU::isa, thread, and gem5::ThreadState::threadId().
Referenced by copyArchRegs(), and takeOverFrom().
|
inlineoverridevirtual |
Returns a pointer to the MMU.
Implements gem5::ThreadContext.
Definition at line 105 of file thread_context.hh.
References cpu, and gem5::o3::CPU::mmu.
|
inlineoverridevirtual |
Returns a pointer to this thread's process.
Implements gem5::ThreadContext.
Definition at line 142 of file thread_context.hh.
References gem5::ThreadState::getProcessPtr(), and thread.
|
inlineoverridevirtual |
Returns a pointer to the system.
Implements gem5::ThreadContext.
Definition at line 139 of file thread_context.hh.
References cpu, and gem5::o3::CPU::system.
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 228 of file thread_context.hh.
References flattenRegId(), getWritableVecPredRegFlat(), and gem5::MipsISA::index.
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 189 of file thread_context.cc.
References cpu, gem5::o3::CPU::getWritableArchVecPredReg(), thread, and gem5::ThreadState::threadId().
Referenced by getWritableVecPredReg().
|
inlineoverridevirtual |
Read vector register operand for modification, hierarchical indexing.
Implements gem5::ThreadContext.
Definition at line 210 of file thread_context.hh.
References flattenRegId(), getWritableVecRegFlat(), and gem5::MipsISA::index.
|
overridevirtual |
Read vector register operand for modification, flat indexing.
Implements gem5::ThreadContext.
Definition at line 171 of file thread_context.cc.
References cpu, gem5::o3::CPU::getWritableArchVecReg(), thread, and gem5::ThreadState::threadId().
Referenced by getWritableVecReg().
|
overridevirtual |
Set the status to Halted.
Implements gem5::ThreadContext.
Definition at line 107 of file thread_context.cc.
References gem5::o3::CPU::addThreadToExitingList(), cpu, DPRINTF, gem5::ThreadContext::Halted, gem5::ThreadContext::Halting, gem5::ThreadState::setStatus(), gem5::ThreadState::status(), thread, gem5::ThreadState::threadId(), and threadId().
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 290 of file thread_context.cc.
References conditionalSquash(), cpu, gem5::o3::CPU::htmSendAbortSignal(), thread, and gem5::ThreadState::threadId().
|
inlineoverridevirtual |
Reads this thread's PC state.
Implements gem5::ThreadContext.
Definition at line 281 of file thread_context.hh.
References cpu, gem5::o3::CPU::pcState(), thread, and gem5::ThreadState::threadId().
|
overridevirtual |
Sets this thread's PC state.
Implements gem5::ThreadContext.
Definition at line 251 of file thread_context.cc.
References conditionalSquash(), cpu, gem5::o3::CPU::pcState(), thread, gem5::ThreadState::threadId(), and gem5::X86ISA::val.
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 259 of file thread_context.cc.
References conditionalSquash(), cpu, gem5::o3::CPU::pcState(), thread, gem5::ThreadState::threadId(), and gem5::X86ISA::val.
Implements gem5::ThreadContext.
Definition at line 234 of file thread_context.hh.
References gem5::CCRegClass, flattenRegId(), gem5::MipsISA::index, and readCCRegFlat().
Implements gem5::ThreadContext.
Definition at line 195 of file thread_context.cc.
References cpu, gem5::o3::CPU::readArchCCReg(), thread, and gem5::ThreadState::threadId().
Referenced by readCCReg().
Implements gem5::ThreadContext.
Definition at line 194 of file thread_context.hh.
References flattenRegId(), gem5::FloatRegClass, gem5::MipsISA::index, and readFloatRegFlat().
Implements gem5::ThreadContext.
Definition at line 159 of file thread_context.cc.
References cpu, gem5::o3::CPU::readArchFloatReg(), thread, and gem5::ThreadState::threadId().
Referenced by readFloatReg().
Implements gem5::ThreadContext.
Definition at line 187 of file thread_context.hh.
References flattenRegId(), gem5::MipsISA::index, gem5::IntRegClass, and readIntRegFlat().
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.
Implements gem5::ThreadContext.
Definition at line 153 of file thread_context.cc.
References cpu, gem5::o3::CPU::readArchIntReg(), thread, and gem5::ThreadState::threadId().
Referenced by readIntReg(), and readReg().
|
overridevirtual |
Reads the last tick that this thread was activated on.
Implements gem5::ThreadContext.
Definition at line 126 of file thread_context.cc.
References gem5::ThreadState::lastActivate, and thread.
|
overridevirtual |
Reads the last tick that this thread was suspended on.
Implements gem5::ThreadContext.
Definition at line 132 of file thread_context.cc.
References gem5::ThreadState::lastSuspend, and thread.
Reads a misc.
register, including any side-effects the read might have as defined by the architecture.
Implements gem5::ThreadContext.
Definition at line 301 of file thread_context.hh.
References cpu, gem5::o3::CPU::readMiscReg(), thread, and gem5::ThreadState::threadId().
|
inlineoverridevirtual |
Reads a miscellaneous register.
Implements gem5::ThreadContext.
Definition at line 293 of file thread_context.hh.
References cpu, gem5::o3::CPU::readMiscRegNoEffect(), thread, and gem5::ThreadState::threadId().
Reads an integer register.
Definition at line 181 of file thread_context.hh.
References flattenRegId(), gem5::MipsISA::index, gem5::IntRegClass, and readIntRegFlat().
|
inlineoverridevirtual |
Returns the number of consecutive store conditional failures.
Implements gem5::ThreadContext.
Definition at line 318 of file thread_context.hh.
References gem5::ThreadState::storeCondFailures, and thread.
Implements gem5::ThreadContext.
Definition at line 216 of file thread_context.hh.
References flattenRegId(), gem5::MipsISA::index, readVecElemFlat(), and gem5::X86ISA::reg.
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 177 of file thread_context.cc.
References cpu, gem5::o3::CPU::readArchVecElem(), thread, and gem5::ThreadState::threadId().
Referenced by readVecElem().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 222 of file thread_context.hh.
References flattenRegId(), gem5::MipsISA::index, and readVecPredRegFlat().
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 183 of file thread_context.cc.
References cpu, gem5::o3::CPU::readArchVecPredReg(), thread, and gem5::ThreadState::threadId().
Referenced by readVecPredReg().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 201 of file thread_context.hh.
References flattenRegId(), gem5::MipsISA::index, and readVecRegFlat().
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 165 of file thread_context.cc.
References cpu, gem5::o3::CPU::readArchVecReg(), thread, and gem5::ThreadState::threadId().
Referenced by readVecReg().
|
inlineoverridevirtual |
Implements gem5::PCEventScope.
Definition at line 80 of file thread_context.hh.
References gem5::ArmISA::e, gem5::o3::ThreadState::pcEventQueue, gem5::PCEventQueue::remove(), and thread.
|
inlineoverridevirtual |
Implements gem5::PCEventScope.
Definition at line 75 of file thread_context.hh.
References gem5::ArmISA::e, gem5::o3::ThreadState::pcEventQueue, gem5::PCEventQueue::schedule(), and thread.
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 86 of file thread_context.hh.
References gem5::o3::ThreadState::comInstEventQueue, gem5::X86ISA::count, gem5::MipsISA::event, gem5::EventQueue::schedule(), and thread.
Implements gem5::ThreadContext.
Definition at line 274 of file thread_context.hh.
References gem5::CCRegClass, flattenRegId(), gem5::MipsISA::index, setCCRegFlat(), and gem5::X86ISA::val.
Implements gem5::ThreadContext.
Definition at line 243 of file thread_context.cc.
References conditionalSquash(), cpu, gem5::o3::CPU::setArchCCReg(), thread, gem5::ThreadState::threadId(), and gem5::X86ISA::val.
Referenced by setCCReg().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 132 of file thread_context.hh.
References gem5::ThreadState::setContextId(), and thread.
Implements gem5::ThreadContext.
Definition at line 248 of file thread_context.hh.
References flattenRegId(), gem5::FloatRegClass, gem5::MipsISA::index, setFloatRegFlat(), and gem5::X86ISA::val.
Implements gem5::ThreadContext.
Definition at line 209 of file thread_context.cc.
References conditionalSquash(), cpu, gem5::o3::CPU::setArchFloatReg(), thread, gem5::ThreadState::threadId(), and gem5::X86ISA::val.
Referenced by setFloatReg().
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 305 of file thread_context.cc.
References gem5::o3::ThreadState::htmCheckpoint, and thread.
Sets an integer register to a value.
Implements gem5::ThreadContext.
Definition at line 242 of file thread_context.hh.
References flattenRegId(), gem5::MipsISA::index, gem5::IntRegClass, setIntRegFlat(), and gem5::X86ISA::val.
Implements gem5::ThreadContext.
Definition at line 201 of file thread_context.cc.
References conditionalSquash(), cpu, gem5::o3::CPU::setArchIntReg(), thread, gem5::ThreadState::threadId(), and gem5::X86ISA::val.
Referenced by setIntReg().
Sets a misc.
register, including any side-effects the write might have as defined by the architecture.
Implements gem5::ThreadContext.
Definition at line 281 of file thread_context.cc.
References conditionalSquash(), cpu, gem5::o3::CPU::setMiscReg(), thread, gem5::ThreadState::threadId(), and gem5::X86ISA::val.
Sets a misc.
register.
Implements gem5::ThreadContext.
Definition at line 273 of file thread_context.cc.
References conditionalSquash(), cpu, gem5::o3::CPU::setMiscRegNoEffect(), thread, gem5::ThreadState::threadId(), and gem5::X86ISA::val.
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 144 of file thread_context.hh.
References gem5::MipsISA::p, gem5::ThreadState::setProcessPtr(), and thread.
|
inlineoverridevirtual |
Sets this thread's status.
Implements gem5::ThreadContext.
Definition at line 151 of file thread_context.hh.
References gem5::ThreadState::setStatus(), and thread.
|
inlineoverridevirtual |
Sets the number of consecutive store conditional failures.
Implements gem5::ThreadContext.
Definition at line 325 of file thread_context.hh.
References gem5::ThreadState::storeCondFailures, and thread.
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 136 of file thread_context.hh.
References gem5::ThreadState::setThreadId(), and thread.
Implements gem5::ThreadContext.
Definition at line 261 of file thread_context.hh.
References flattenRegId(), gem5::MipsISA::index, gem5::X86ISA::reg, setVecElemFlat(), and gem5::X86ISA::val.
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 226 of file thread_context.cc.
References conditionalSquash(), cpu, gem5::o3::CPU::setArchVecElem(), thread, gem5::ThreadState::threadId(), and gem5::X86ISA::val.
Referenced by setVecElem().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 267 of file thread_context.hh.
References flattenRegId(), gem5::MipsISA::index, gem5::X86ISA::reg, setVecPredRegFlat(), and gem5::X86ISA::val.
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 234 of file thread_context.cc.
References conditionalSquash(), cpu, gem5::o3::CPU::setArchVecPredReg(), thread, gem5::ThreadState::threadId(), and gem5::X86ISA::val.
Referenced by setVecPredReg().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 255 of file thread_context.hh.
References flattenRegId(), gem5::MipsISA::index, gem5::X86ISA::reg, setVecRegFlat(), and gem5::X86ISA::val.
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 217 of file thread_context.cc.
References conditionalSquash(), cpu, gem5::o3::CPU::setArchVecReg(), thread, gem5::ThreadState::threadId(), and gem5::X86ISA::val.
Referenced by setVecReg().
|
inlineoverridevirtual |
Reads this CPU's Socket ID.
Implements gem5::ThreadContext.
Definition at line 128 of file thread_context.hh.
References cpu.
|
inlineoverridevirtual |
Returns this thread's status.
Implements gem5::ThreadContext.
Definition at line 147 of file thread_context.hh.
References gem5::ThreadState::status(), and thread.
|
overridevirtual |
Set the status to Suspended.
Implements gem5::ThreadContext.
Definition at line 86 of file thread_context.cc.
References cpu, gem5::curTick(), DPRINTF, gem5::o3::CPU::isDraining(), gem5::ThreadState::lastActivate, gem5::ThreadState::lastSuspend, gem5::ThreadState::setStatus(), gem5::ThreadState::status(), gem5::o3::CPU::suspendContext(), gem5::ThreadContext::Suspended, thread, gem5::ThreadState::threadId(), and threadId().
|
overridevirtual |
Takes over execution of a thread from another CPU.
Implements gem5::ThreadContext.
Definition at line 55 of file thread_context.cc.
References getDecoderPtr(), gem5::ThreadContext::getDecoderPtr(), getIsaPtr(), gem5::o3::ThreadState::noSquashFromTC, gem5::BaseISA::takeOverFrom(), gem5::InstDecoder::takeOverFrom(), gem5::takeOverFrom(), thread, and gem5::o3::ThreadState::trapPending.
|
inlineoverridevirtual |
Returns this thread's ID number.
Implements gem5::ThreadContext.
Definition at line 135 of file thread_context.hh.
References thread, and gem5::ThreadState::threadId().
Referenced by activate(), halt(), and suspend().
CPU* gem5::o3::ThreadContext::cpu |
Pointer to the CPU.
Definition at line 72 of file thread_context.hh.
Referenced by activate(), clearArchRegs(), conditionalSquash(), cpuId(), flattenRegId(), getCpuPtr(), getDecoderPtr(), getIsaPtr(), getMMUPtr(), getSystemPtr(), getWritableVecPredRegFlat(), getWritableVecRegFlat(), halt(), htmAbortTransaction(), pcState(), pcStateNoRecord(), readCCRegFlat(), readFloatRegFlat(), readIntRegFlat(), readMiscReg(), readMiscRegNoEffect(), readVecElemFlat(), readVecPredRegFlat(), readVecRegFlat(), setCCRegFlat(), setFloatRegFlat(), setIntRegFlat(), setMiscReg(), setMiscRegNoEffect(), setVecElemFlat(), setVecPredRegFlat(), setVecRegFlat(), socketId(), and suspend().
ThreadState* gem5::o3::ThreadContext::thread |
Pointer to the thread state that this TC corrseponds to.
Definition at line 102 of file thread_context.hh.
Referenced by activate(), clearArchRegs(), conditionalSquash(), contextId(), copyArchRegs(), descheduleInstCountEvent(), flattenRegId(), getCurrentInstCount(), getDecoderPtr(), getHtmCheckpointPtr(), getIsaPtr(), getProcessPtr(), getWritableVecPredRegFlat(), getWritableVecRegFlat(), halt(), htmAbortTransaction(), pcState(), pcStateNoRecord(), readCCRegFlat(), readFloatRegFlat(), readIntRegFlat(), readLastActivate(), readLastSuspend(), readMiscReg(), readMiscRegNoEffect(), readStCondFailures(), readVecElemFlat(), readVecPredRegFlat(), readVecRegFlat(), remove(), schedule(), scheduleInstCountEvent(), setCCRegFlat(), setContextId(), setFloatRegFlat(), setHtmCheckpointPtr(), setIntRegFlat(), setMiscReg(), setMiscRegNoEffect(), setProcessPtr(), setStatus(), setStCondFailures(), setThreadId(), setVecElemFlat(), setVecPredRegFlat(), setVecRegFlat(), status(), suspend(), takeOverFrom(), and threadId().