gem5  v21.1.0.2
Public Member Functions | Public Attributes | List of all members
gem5::o3::ThreadContext Class Reference

Derived ThreadContext class for use with the O3CPU. More...

#include <thread_context.hh>

Inheritance diagram for gem5::o3::ThreadContext:
gem5::ThreadContext gem5::PCEventScope

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
 
BaseMMUgetMMUPtr () override
 Returns a pointer to the MMU. More...
 
CheckerCPUgetCheckerCpuPtr () override
 
BaseISAgetIsaPtr () override
 
TheISA::Decoder * getDecoderPtr () override
 
BaseCPUgetCpuPtr () 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
 
SystemgetSystemPtr () override
 Returns a pointer to the system. More...
 
ProcessgetProcessPtr () override
 Returns a pointer to this thread's process. More...
 
void setProcessPtr (Process *p) override
 
PortProxygetVirtProxy () override
 
void initMemProxies (gem5::ThreadContext *tc) override
 Initialise the physical and virtual port proxies and tie them to the data port of the CPU. More...
 
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...
 
const TheISA::VecElem & readVecElem (const RegId &reg) 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 &reg, const TheISA::VecRegContainer &val) override
 
void setVecElem (const RegId &reg, const TheISA::VecElem &val) override
 
void setVecPredReg (const RegId &reg, const TheISA::VecPredRegContainer &val) override
 
void setCCReg (RegIndex reg_idx, RegVal val) override
 
TheISA::PCState pcState () const override
 Reads this thread's PC state. More...
 
void pcState (const TheISA::PCState &val) override
 Sets this thread's PC state. More...
 
void pcStateNoRecord (const TheISA::PCState &val) override
 
Addr instAddr () const override
 Reads this thread's PC. More...
 
Addr nextInstAddr () const override
 Reads this thread's next PC. More...
 
MicroPC microPC () const override
 Reads this thread's next PC. More...
 
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 &regId) 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
 
const TheISA::VecElem & readVecElemFlat (RegIndex idx, const ElemIndex &elemIndex) const override
 
void setVecElemFlat (RegIndex idx, const ElemIndex &elemIdx, const TheISA::VecElem &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
 
BaseHTMCheckpointPtrgetHtmCheckpointPtr () override
 
void setHtmCheckpointPtr (BaseHTMCheckpointPtr new_cpt) override
 
- 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. More...
 
void quiesceTick (Tick resume)
 Quiesce, suspend, and schedule activate at resume. More...
 
virtual void regStats (const std::string &name)
 
void setNPC (Addr val)
 
virtual int exit ()
 

Public Attributes

CPUcpu
 Pointer to the CPU. More...
 
ThreadStatethread
 Pointer to the thread state that this TC corrseponds to. More...
 
- Public Attributes inherited from gem5::ThreadContext
int intResult = DefaultIntResult
 
double floatResult = DefaultFloatResult
 
int intOffset = 0
 

Additional Inherited Members

- Public Types inherited from gem5::ThreadContext
enum  Status { Active, Suspended, Halting, Halted }
 
- Static Public Member Functions inherited from gem5::ThreadContext
static void compare (ThreadContext *one, ThreadContext *two)
 function to compare two thread contexts (for debugging) More...
 
- 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
 
- Protected Attributes inherited from gem5::ThreadContext
bool useForClone = false
 

Detailed Description

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.

Member Function Documentation

◆ activate()

void gem5::o3::ThreadContext::activate ( )
overridevirtual

◆ clearArchRegs()

void gem5::o3::ThreadContext::clearArchRegs ( )
overridevirtual

Resets all architectural registers to 0.

Implements gem5::ThreadContext.

Definition at line 156 of file thread_context.cc.

References cpu, gem5::o3::CPU::isa, thread, and gem5::ThreadState::threadId().

◆ conditionalSquash()

void gem5::o3::ThreadContext::conditionalSquash ( )
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 365 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().

◆ contextId()

ContextID gem5::o3::ThreadContext::contextId ( ) const
inlineoverridevirtual

Implements gem5::ThreadContext.

Definition at line 130 of file thread_context.hh.

References gem5::ThreadState::contextId(), and thread.

◆ copyArchRegs()

void gem5::o3::ThreadContext::copyArchRegs ( gem5::ThreadContext tc)
overridevirtual

◆ cpuId()

int gem5::o3::ThreadContext::cpuId ( ) const
inlineoverridevirtual

Reads this CPU's ID.

Implements gem5::ThreadContext.

Definition at line 125 of file thread_context.hh.

References cpu, and gem5::BaseCPU::cpuId().

◆ descheduleInstCountEvent()

void gem5::o3::ThreadContext::descheduleInstCountEvent ( Event event)
inlineoverridevirtual

◆ flattenRegId()

RegId gem5::o3::ThreadContext::flattenRegId ( const RegId regId) const
overridevirtual

◆ getCheckerCpuPtr()

CheckerCPU* gem5::o3::ThreadContext::getCheckerCpuPtr ( )
inlineoverridevirtual

Implements gem5::ThreadContext.

Definition at line 107 of file thread_context.hh.

◆ getCpuPtr()

BaseCPU* gem5::o3::ThreadContext::getCpuPtr ( )
inlineoverridevirtual

Returns a pointer to this CPU.

Implements gem5::ThreadContext.

Definition at line 122 of file thread_context.hh.

References cpu.

◆ getCurrentInstCount()

Tick gem5::o3::ThreadContext::getCurrentInstCount ( )
inlineoverridevirtual

◆ getDecoderPtr()

TheISA::Decoder* gem5::o3::ThreadContext::getDecoderPtr ( )
inlineoverridevirtual

◆ getHtmCheckpointPtr()

BaseHTMCheckpointPtr & gem5::o3::ThreadContext::getHtmCheckpointPtr ( )
overridevirtual

Implements gem5::ThreadContext.

Definition at line 308 of file thread_context.cc.

References gem5::o3::ThreadState::htmCheckpoint, and thread.

◆ getIsaPtr()

BaseISA* gem5::o3::ThreadContext::getIsaPtr ( )
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().

◆ getMMUPtr()

BaseMMU* gem5::o3::ThreadContext::getMMUPtr ( )
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.

◆ getProcessPtr()

Process* gem5::o3::ThreadContext::getProcessPtr ( )
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.

◆ getSystemPtr()

System* gem5::o3::ThreadContext::getSystemPtr ( )
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.

◆ getVirtProxy()

PortProxy & gem5::o3::ThreadContext::getVirtProxy ( )
overridevirtual

Implements gem5::ThreadContext.

Definition at line 55 of file thread_context.cc.

References gem5::ThreadState::getVirtProxy(), and thread.

◆ getWritableVecPredReg()

TheISA::VecPredRegContainer& gem5::o3::ThreadContext::getWritableVecPredReg ( const RegId id)
inlineoverridevirtual

◆ getWritableVecPredRegFlat()

TheISA::VecPredRegContainer & gem5::o3::ThreadContext::getWritableVecPredRegFlat ( RegIndex  idx)
overridevirtual

◆ getWritableVecReg()

TheISA::VecRegContainer& gem5::o3::ThreadContext::getWritableVecReg ( const RegId id)
inlineoverridevirtual

Read vector register operand for modification, hierarchical indexing.

Implements gem5::ThreadContext.

Definition at line 218 of file thread_context.hh.

References flattenRegId(), getWritableVecRegFlat(), and gem5::MipsISA::index.

◆ getWritableVecRegFlat()

TheISA::VecRegContainer & gem5::o3::ThreadContext::getWritableVecRegFlat ( RegIndex  idx)
overridevirtual

Read vector register operand for modification, flat indexing.

Implements gem5::ThreadContext.

Definition at line 180 of file thread_context.cc.

References cpu, gem5::o3::CPU::getWritableArchVecReg(), thread, and gem5::ThreadState::threadId().

Referenced by getWritableVecReg().

◆ halt()

void gem5::o3::ThreadContext::halt ( )
overridevirtual

◆ htmAbortTransaction()

void gem5::o3::ThreadContext::htmAbortTransaction ( uint64_t  htm_uid,
HtmFailureFaultCause  cause 
)
overridevirtual

◆ initMemProxies()

void gem5::o3::ThreadContext::initMemProxies ( gem5::ThreadContext tc)
inlineoverridevirtual

Initialise the physical and virtual port proxies and tie them to the data port of the CPU.

tc ThreadContext for the virtual-to-physical translation

Implements gem5::ThreadContext.

Definition at line 149 of file thread_context.hh.

References gem5::ThreadState::initMemProxies(), and thread.

◆ instAddr()

Addr gem5::o3::ThreadContext::instAddr ( ) const
inlineoverridevirtual

Reads this thread's PC.

Implements gem5::ThreadContext.

Definition at line 301 of file thread_context.hh.

References cpu, gem5::o3::CPU::instAddr(), thread, and gem5::ThreadState::threadId().

◆ microPC()

MicroPC gem5::o3::ThreadContext::microPC ( ) const
inlineoverridevirtual

Reads this thread's next PC.

Implements gem5::ThreadContext.

Definition at line 315 of file thread_context.hh.

References cpu, gem5::o3::CPU::microPC(), thread, and gem5::ThreadState::threadId().

◆ nextInstAddr()

Addr gem5::o3::ThreadContext::nextInstAddr ( ) const
inlineoverridevirtual

Reads this thread's next PC.

Implements gem5::ThreadContext.

Definition at line 308 of file thread_context.hh.

References cpu, gem5::o3::CPU::nextInstAddr(), thread, and gem5::ThreadState::threadId().

◆ pcState() [1/2]

TheISA::PCState gem5::o3::ThreadContext::pcState ( ) const
inlineoverridevirtual

Reads this thread's PC state.

Implements gem5::ThreadContext.

Definition at line 289 of file thread_context.hh.

References cpu, gem5::o3::CPU::pcState(), thread, and gem5::ThreadState::threadId().

◆ pcState() [2/2]

void gem5::o3::ThreadContext::pcState ( const TheISA::PCState &  val)
overridevirtual

Sets this thread's PC state.

Implements gem5::ThreadContext.

Definition at line 260 of file thread_context.cc.

References conditionalSquash(), cpu, gem5::o3::CPU::pcState(), thread, gem5::ThreadState::threadId(), and gem5::X86ISA::val.

◆ pcStateNoRecord()

void gem5::o3::ThreadContext::pcStateNoRecord ( const TheISA::PCState &  val)
overridevirtual

◆ readCCReg()

RegVal gem5::o3::ThreadContext::readCCReg ( RegIndex  reg_idx) const
inlineoverridevirtual

◆ readCCRegFlat()

RegVal gem5::o3::ThreadContext::readCCRegFlat ( RegIndex  idx) const
overridevirtual

Implements gem5::ThreadContext.

Definition at line 204 of file thread_context.cc.

References cpu, gem5::o3::CPU::readArchCCReg(), thread, and gem5::ThreadState::threadId().

Referenced by readCCReg().

◆ readFloatReg()

RegVal gem5::o3::ThreadContext::readFloatReg ( RegIndex  reg_idx) const
inlineoverridevirtual

◆ readFloatRegFlat()

RegVal gem5::o3::ThreadContext::readFloatRegFlat ( RegIndex  idx) const
overridevirtual

Implements gem5::ThreadContext.

Definition at line 168 of file thread_context.cc.

References cpu, gem5::o3::CPU::readArchFloatReg(), thread, and gem5::ThreadState::threadId().

Referenced by readFloatReg().

◆ readIntReg()

RegVal gem5::o3::ThreadContext::readIntReg ( RegIndex  reg_idx) const
inlineoverridevirtual

◆ readIntRegFlat()

RegVal gem5::o3::ThreadContext::readIntRegFlat ( RegIndex  idx) const
overridevirtual

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 162 of file thread_context.cc.

References cpu, gem5::o3::CPU::readArchIntReg(), thread, and gem5::ThreadState::threadId().

Referenced by readIntReg(), and readReg().

◆ readLastActivate()

Tick gem5::o3::ThreadContext::readLastActivate ( )
overridevirtual

Reads the last tick that this thread was activated on.

Implements gem5::ThreadContext.

Definition at line 132 of file thread_context.cc.

References gem5::ThreadState::lastActivate, and thread.

◆ readLastSuspend()

Tick gem5::o3::ThreadContext::readLastSuspend ( )
overridevirtual

Reads the last tick that this thread was suspended on.

Implements gem5::ThreadContext.

Definition at line 138 of file thread_context.cc.

References gem5::ThreadState::lastSuspend, and thread.

◆ readMiscReg()

RegVal gem5::o3::ThreadContext::readMiscReg ( RegIndex  misc_reg)
inlineoverridevirtual

Reads a misc.

register, including any side-effects the read might have as defined by the architecture.

Implements gem5::ThreadContext.

Definition at line 330 of file thread_context.hh.

References cpu, gem5::o3::CPU::readMiscReg(), thread, and gem5::ThreadState::threadId().

◆ readMiscRegNoEffect()

RegVal gem5::o3::ThreadContext::readMiscRegNoEffect ( RegIndex  misc_reg) const
inlineoverridevirtual

Reads a miscellaneous register.

Implements gem5::ThreadContext.

Definition at line 322 of file thread_context.hh.

References cpu, gem5::o3::CPU::readMiscRegNoEffect(), thread, and gem5::ThreadState::threadId().

◆ readReg()

RegVal gem5::o3::ThreadContext::readReg ( RegIndex  reg_idx)
inline

Reads an integer register.

Definition at line 189 of file thread_context.hh.

References flattenRegId(), gem5::MipsISA::index, gem5::IntRegClass, and readIntRegFlat().

◆ readStCondFailures()

unsigned gem5::o3::ThreadContext::readStCondFailures ( ) const
inlineoverridevirtual

Returns the number of consecutive store conditional failures.

Implements gem5::ThreadContext.

Definition at line 347 of file thread_context.hh.

References gem5::ThreadState::storeCondFailures, and thread.

◆ readVecElem()

const TheISA::VecElem& gem5::o3::ThreadContext::readVecElem ( const RegId reg) const
inlineoverridevirtual

◆ readVecElemFlat()

const TheISA::VecElem & gem5::o3::ThreadContext::readVecElemFlat ( RegIndex  idx,
const ElemIndex elemIndex 
) const
overridevirtual

Implements gem5::ThreadContext.

Definition at line 186 of file thread_context.cc.

References cpu, gem5::o3::CPU::readArchVecElem(), thread, and gem5::ThreadState::threadId().

Referenced by readVecElem().

◆ readVecPredReg()

const TheISA::VecPredRegContainer& gem5::o3::ThreadContext::readVecPredReg ( const RegId id) const
inlineoverridevirtual

Implements gem5::ThreadContext.

Definition at line 230 of file thread_context.hh.

References flattenRegId(), gem5::MipsISA::index, and readVecPredRegFlat().

◆ readVecPredRegFlat()

const TheISA::VecPredRegContainer & gem5::o3::ThreadContext::readVecPredRegFlat ( RegIndex  idx) const
overridevirtual

◆ readVecReg()

const TheISA::VecRegContainer& gem5::o3::ThreadContext::readVecReg ( const RegId id) const
inlineoverridevirtual

Implements gem5::ThreadContext.

Definition at line 209 of file thread_context.hh.

References flattenRegId(), gem5::MipsISA::index, and readVecRegFlat().

◆ readVecRegFlat()

const TheISA::VecRegContainer & gem5::o3::ThreadContext::readVecRegFlat ( RegIndex  idx) const
overridevirtual

Implements gem5::ThreadContext.

Definition at line 174 of file thread_context.cc.

References cpu, gem5::o3::CPU::readArchVecReg(), thread, and gem5::ThreadState::threadId().

Referenced by readVecReg().

◆ remove()

bool gem5::o3::ThreadContext::remove ( PCEvent e)
inlineoverridevirtual

◆ schedule()

bool gem5::o3::ThreadContext::schedule ( PCEvent e)
inlineoverridevirtual

◆ scheduleInstCountEvent()

void gem5::o3::ThreadContext::scheduleInstCountEvent ( Event event,
Tick  count 
)
inlineoverridevirtual

◆ setCCReg()

void gem5::o3::ThreadContext::setCCReg ( RegIndex  reg_idx,
RegVal  val 
)
inlineoverridevirtual

◆ setCCRegFlat()

void gem5::o3::ThreadContext::setCCRegFlat ( RegIndex  idx,
RegVal  val 
)
overridevirtual

◆ setContextId()

void gem5::o3::ThreadContext::setContextId ( ContextID  id)
inlineoverridevirtual

Implements gem5::ThreadContext.

Definition at line 132 of file thread_context.hh.

References gem5::ThreadState::setContextId(), and thread.

◆ setFloatReg()

void gem5::o3::ThreadContext::setFloatReg ( RegIndex  reg_idx,
RegVal  val 
)
inlineoverridevirtual

◆ setFloatRegFlat()

void gem5::o3::ThreadContext::setFloatRegFlat ( RegIndex  idx,
RegVal  val 
)
overridevirtual

◆ setHtmCheckpointPtr()

void gem5::o3::ThreadContext::setHtmCheckpointPtr ( BaseHTMCheckpointPtr  new_cpt)
overridevirtual

Implements gem5::ThreadContext.

Definition at line 314 of file thread_context.cc.

References gem5::o3::ThreadState::htmCheckpoint, and thread.

◆ setIntReg()

void gem5::o3::ThreadContext::setIntReg ( RegIndex  reg_idx,
RegVal  val 
)
inlineoverridevirtual

Sets an integer register to a value.

Implements gem5::ThreadContext.

Definition at line 250 of file thread_context.hh.

References flattenRegId(), gem5::MipsISA::index, gem5::IntRegClass, setIntRegFlat(), and gem5::X86ISA::val.

◆ setIntRegFlat()

void gem5::o3::ThreadContext::setIntRegFlat ( RegIndex  idx,
RegVal  val 
)
overridevirtual

◆ setMiscReg()

void gem5::o3::ThreadContext::setMiscReg ( RegIndex  misc_reg,
RegVal  val 
)
overridevirtual

Sets a misc.

register, including any side-effects the write might have as defined by the architecture.

Implements gem5::ThreadContext.

Definition at line 290 of file thread_context.cc.

References conditionalSquash(), cpu, gem5::o3::CPU::setMiscReg(), thread, gem5::ThreadState::threadId(), and gem5::X86ISA::val.

◆ setMiscRegNoEffect()

void gem5::o3::ThreadContext::setMiscRegNoEffect ( RegIndex  misc_reg,
RegVal  val 
)
overridevirtual

◆ setProcessPtr()

void gem5::o3::ThreadContext::setProcessPtr ( Process p)
inlineoverridevirtual

Implements gem5::ThreadContext.

Definition at line 144 of file thread_context.hh.

References gem5::MipsISA::p, gem5::ThreadState::setProcessPtr(), and thread.

◆ setStatus()

void gem5::o3::ThreadContext::setStatus ( Status  new_status)
inlineoverridevirtual

Sets this thread's status.

Implements gem5::ThreadContext.

Definition at line 159 of file thread_context.hh.

References gem5::ThreadState::setStatus(), and thread.

◆ setStCondFailures()

void gem5::o3::ThreadContext::setStCondFailures ( unsigned  sc_failures)
inlineoverridevirtual

Sets the number of consecutive store conditional failures.

Implements gem5::ThreadContext.

Definition at line 354 of file thread_context.hh.

References gem5::ThreadState::storeCondFailures, and thread.

◆ setThreadId()

void gem5::o3::ThreadContext::setThreadId ( int  id)
inlineoverridevirtual

Implements gem5::ThreadContext.

Definition at line 136 of file thread_context.hh.

References gem5::ThreadState::setThreadId(), and thread.

◆ setVecElem()

void gem5::o3::ThreadContext::setVecElem ( const RegId reg,
const TheISA::VecElem &  val 
)
inlineoverridevirtual

◆ setVecElemFlat()

void gem5::o3::ThreadContext::setVecElemFlat ( RegIndex  idx,
const ElemIndex elemIdx,
const TheISA::VecElem &  val 
)
overridevirtual

◆ setVecPredReg()

void gem5::o3::ThreadContext::setVecPredReg ( const RegId reg,
const TheISA::VecPredRegContainer &  val 
)
inlineoverridevirtual

◆ setVecPredRegFlat()

void gem5::o3::ThreadContext::setVecPredRegFlat ( RegIndex  idx,
const TheISA::VecPredRegContainer &  val 
)
overridevirtual

◆ setVecReg()

void gem5::o3::ThreadContext::setVecReg ( const RegId reg,
const TheISA::VecRegContainer &  val 
)
inlineoverridevirtual

◆ setVecRegFlat()

void gem5::o3::ThreadContext::setVecRegFlat ( RegIndex  idx,
const TheISA::VecRegContainer &  val 
)
overridevirtual

◆ socketId()

uint32_t gem5::o3::ThreadContext::socketId ( ) const
inlineoverridevirtual

Reads this CPU's Socket ID.

Implements gem5::ThreadContext.

Definition at line 128 of file thread_context.hh.

References cpu, and gem5::BaseCPU::socketId().

◆ status()

Status gem5::o3::ThreadContext::status ( ) const
inlineoverridevirtual

Returns this thread's status.

Implements gem5::ThreadContext.

Definition at line 155 of file thread_context.hh.

References gem5::ThreadState::status(), and thread.

◆ suspend()

void gem5::o3::ThreadContext::suspend ( )
overridevirtual

◆ takeOverFrom()

void gem5::o3::ThreadContext::takeOverFrom ( gem5::ThreadContext old_context)
overridevirtual

◆ threadId()

int gem5::o3::ThreadContext::threadId ( ) const
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().

Member Data Documentation

◆ cpu

CPU* gem5::o3::ThreadContext::cpu

◆ thread

ThreadState* gem5::o3::ThreadContext::thread

The documentation for this class was generated from the following files:

Generated on Tue Sep 21 2021 12:31:46 for gem5 by doxygen 1.8.17