gem5  v20.1.0.0
Public Types | Public Member Functions | Public Attributes | List of all members
O3ThreadContext< Impl > Class Template Reference

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

#include <cpu.hh>

Public Types

typedef Impl::O3CPU O3CPU
 

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
 
BaseTLBgetITBPtr () override
 Returns a pointer to the ITB. More...
 
BaseTLBgetDTBPtr () override
 Returns a pointer to the DTB. 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
 
PortProxygetPhysProxy () override
 
PortProxygetVirtProxy () override
 
void initMemProxies (ThreadContext *tc) 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 (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 (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 VecRegContainerreadVecReg (const RegId &id) const override
 
VecRegContainergetWritableVecReg (const RegId &id) override
 Read vector register operand for modification, hierarchical indexing. More...
 
const VecElem & readVecElem (const RegId &reg) const override
 
const VecPredRegContainerreadVecPredReg (const RegId &id) const override
 
VecPredRegContainergetWritableVecPredReg (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 VecRegContainer &val) override
 
void setVecElem (const RegId &reg, const VecElem &val) override
 
void setVecPredReg (const RegId &reg, const 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 syscall () override
 Executes a syscall in SE mode. More...
 
Counter readFuncExeInst () const override
 Reads the funcExeInst counter. More...
 
void conditionalSquash ()
 check if the cpu is currently in state update mode and squash if not. More...
 
RegVal readIntRegFlat (RegIndex idx) const override
 
void setIntRegFlat (RegIndex idx, RegVal val) override
 
RegVal readFloatRegFlat (RegIndex idx) const override
 
void setFloatRegFlat (RegIndex idx, RegVal val) override
 
const VecRegContainerreadVecRegFlat (RegIndex idx) const override
 
VecRegContainergetWritableVecRegFlat (RegIndex idx) override
 Read vector register operand for modification, flat indexing. More...
 
void setVecRegFlat (RegIndex idx, const VecRegContainer &val) override
 
template<typename VecElem >
VecLaneT< VecElem, true > readVecLaneFlat (RegIndex idx, int lId) const
 
template<typename LD >
void setVecLaneFlat (int idx, int lId, const LD &val)
 
const VecElem & readVecElemFlat (RegIndex idx, const ElemIndex &elemIndex) const override
 
void setVecElemFlat (RegIndex idx, const ElemIndex &elemIdx, const VecElem &val) override
 
const VecPredRegContainerreadVecPredRegFlat (RegIndex idx) const override
 
VecPredRegContainergetWritableVecPredRegFlat (RegIndex idx) override
 
void setVecPredRegFlat (RegIndex idx, const 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
 
ConstVecLane8 readVec8BitLaneReg (const RegId &id) const override
 Vector Register Lane Interfaces. More...
 
ConstVecLane16 readVec16BitLaneReg (const RegId &id) const override
 Reads source vector 16bit operand. More...
 
ConstVecLane32 readVec32BitLaneReg (const RegId &id) const override
 Reads source vector 32bit operand. More...
 
ConstVecLane64 readVec64BitLaneReg (const RegId &id) const override
 Reads source vector 64bit operand. More...
 
void setVecLane (const RegId &reg, const LaneData< LaneSize::Byte > &val) override
 Write a lane of the destination vector register. More...
 
void setVecLane (const RegId &reg, const LaneData< LaneSize::TwoByte > &val) override
 
void setVecLane (const RegId &reg, const LaneData< LaneSize::FourByte > &val) override
 
void setVecLane (const RegId &reg, const LaneData< LaneSize::EightByte > &val) override
 

Public Attributes

O3CPUcpu
 Pointer to the CPU. More...
 
O3ThreadState< Impl > * thread
 Pointer to the thread state that this TC corrseponds to. More...
 

Detailed Description

template<class Impl>
class O3ThreadContext< Impl >

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 O3ThreadState (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 71 of file cpu.hh.

Member Typedef Documentation

◆ O3CPU

template<class Impl >
typedef Impl::O3CPU O3ThreadContext< Impl >::O3CPU

Definition at line 66 of file thread_context.hh.

Member Function Documentation

◆ activate()

template<class Impl >
void O3ThreadContext< Impl >::activate
override

Set the status to Active.

Definition at line 78 of file thread_context_impl.hh.

References ThreadContext::Active, curTick(), and DPRINTF.

◆ clearArchRegs()

template<class Impl >
void O3ThreadContext< Impl >::clearArchRegs
override

Resets all architectural registers to 0.

Definition at line 167 of file thread_context_impl.hh.

◆ conditionalSquash()

template<class Impl >
void O3ThreadContext< Impl >::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 438 of file thread_context.hh.

References O3ThreadContext< Impl >::cpu, and O3ThreadContext< Impl >::thread.

◆ contextId()

template<class Impl >
ContextID O3ThreadContext< Impl >::contextId ( ) const
inlineoverride

Definition at line 130 of file thread_context.hh.

References O3ThreadContext< Impl >::thread.

◆ copyArchRegs()

template<class Impl >
void O3ThreadContext< Impl >::copyArchRegs ( ThreadContext tc)
override

Copies the architectural registers from another TC into this TC.

Definition at line 151 of file thread_context_impl.hh.

References ArmISA::copyRegs(), FullSystem, ThreadContext::pcState(), and ThreadContext::readFuncExeInst().

◆ cpuId()

template<class Impl >
int O3ThreadContext< Impl >::cpuId ( ) const
inlineoverride

Reads this CPU's ID.

Definition at line 125 of file thread_context.hh.

References O3ThreadContext< Impl >::cpu.

◆ descheduleInstCountEvent()

template<class Impl >
void O3ThreadContext< Impl >::descheduleInstCountEvent ( Event event)
inlineoverride

Definition at line 88 of file thread_context.hh.

References MipsISA::event, and O3ThreadContext< Impl >::thread.

◆ flattenRegId()

template<class Impl >
RegId O3ThreadContext< Impl >::flattenRegId ( const RegId regId) const
override

◆ getCheckerCpuPtr()

template<class Impl >
CheckerCPU* O3ThreadContext< Impl >::getCheckerCpuPtr ( )
inlineoverride

Definition at line 107 of file thread_context.hh.

◆ getCpuPtr()

template<class Impl >
BaseCPU* O3ThreadContext< Impl >::getCpuPtr ( )
inlineoverride

Returns a pointer to this CPU.

Definition at line 122 of file thread_context.hh.

References O3ThreadContext< Impl >::cpu.

◆ getCurrentInstCount()

template<class Impl >
Tick O3ThreadContext< Impl >::getCurrentInstCount ( )
inlineoverride

Definition at line 93 of file thread_context.hh.

References O3ThreadContext< Impl >::thread.

◆ getDecoderPtr()

template<class Impl >
TheISA::Decoder* O3ThreadContext< Impl >::getDecoderPtr ( )
inlineoverride

◆ getDTBPtr()

template<class Impl >
BaseTLB* O3ThreadContext< Impl >::getDTBPtr ( )
inlineoverride

Returns a pointer to the DTB.

Definition at line 105 of file thread_context.hh.

References O3ThreadContext< Impl >::cpu.

◆ getHtmCheckpointPtr()

template<class Impl >
BaseHTMCheckpointPtr & O3ThreadContext< Impl >::getHtmCheckpointPtr
override

Definition at line 341 of file thread_context_impl.hh.

◆ getIsaPtr()

template<class Impl >
BaseISA* O3ThreadContext< Impl >::getIsaPtr ( )
inlineoverride

◆ getITBPtr()

template<class Impl >
BaseTLB* O3ThreadContext< Impl >::getITBPtr ( )
inlineoverride

Returns a pointer to the ITB.

Definition at line 102 of file thread_context.hh.

References O3ThreadContext< Impl >::cpu.

◆ getPhysProxy()

template<class Impl >
PortProxy& O3ThreadContext< Impl >::getPhysProxy ( )
inlineoverride

Definition at line 146 of file thread_context.hh.

References O3ThreadContext< Impl >::thread.

◆ getProcessPtr()

template<class Impl >
Process* O3ThreadContext< Impl >::getProcessPtr ( )
inlineoverride

Returns a pointer to this thread's process.

Definition at line 142 of file thread_context.hh.

References O3ThreadContext< Impl >::thread.

◆ getSystemPtr()

template<class Impl >
System* O3ThreadContext< Impl >::getSystemPtr ( )
inlineoverride

Returns a pointer to the system.

Definition at line 139 of file thread_context.hh.

References O3ThreadContext< Impl >::cpu.

◆ getVirtProxy()

template<class Impl >
PortProxy & O3ThreadContext< Impl >::getVirtProxy
override

Definition at line 53 of file thread_context_impl.hh.

◆ getWritableVecPredReg()

template<class Impl >
VecPredRegContainer& O3ThreadContext< Impl >::getWritableVecPredReg ( const RegId id)
inlineoverride

◆ getWritableVecPredRegFlat()

template<class Impl >
TheISA::VecPredRegContainer & O3ThreadContext< Impl >::getWritableVecPredRegFlat ( RegIndex  idx)
override

◆ getWritableVecReg()

template<class Impl >
VecRegContainer& O3ThreadContext< Impl >::getWritableVecReg ( const RegId id)
inlineoverride

Read vector register operand for modification, hierarchical indexing.

Definition at line 220 of file thread_context.hh.

References O3ThreadContext< Impl >::flattenRegId(), O3ThreadContext< Impl >::getWritableVecRegFlat(), and MipsISA::index.

◆ getWritableVecRegFlat()

template<class Impl >
TheISA::VecRegContainer & O3ThreadContext< Impl >::getWritableVecRegFlat ( RegIndex  idx)
override

Read vector register operand for modification, flat indexing.

Definition at line 195 of file thread_context_impl.hh.

Referenced by O3ThreadContext< Impl >::getWritableVecReg().

◆ halt()

template<class Impl >
void O3ThreadContext< Impl >::halt
override

Set the status to Halted.

Definition at line 117 of file thread_context_impl.hh.

References DPRINTF, ThreadContext::Halted, and ThreadContext::Halting.

◆ htmAbortTransaction()

template<class Impl >
void O3ThreadContext< Impl >::htmAbortTransaction ( uint64_t  htm_uid,
HtmFailureFaultCause  cause 
)
override

Definition at line 331 of file thread_context_impl.hh.

◆ initMemProxies()

template<class Impl >
void O3ThreadContext< Impl >::initMemProxies ( ThreadContext tc)
inlineoverride

Definition at line 151 of file thread_context.hh.

References O3ThreadContext< Impl >::thread.

◆ instAddr()

template<class Impl >
Addr O3ThreadContext< Impl >::instAddr ( ) const
inlineoverride

Reads this thread's PC.

Definition at line 364 of file thread_context.hh.

References O3ThreadContext< Impl >::cpu, and O3ThreadContext< Impl >::thread.

◆ microPC()

template<class Impl >
MicroPC O3ThreadContext< Impl >::microPC ( ) const
inlineoverride

Reads this thread's next PC.

Definition at line 378 of file thread_context.hh.

References O3ThreadContext< Impl >::cpu, and O3ThreadContext< Impl >::thread.

◆ nextInstAddr()

template<class Impl >
Addr O3ThreadContext< Impl >::nextInstAddr ( ) const
inlineoverride

Reads this thread's next PC.

Definition at line 371 of file thread_context.hh.

References O3ThreadContext< Impl >::cpu, and O3ThreadContext< Impl >::thread.

◆ pcState() [1/2]

template<class Impl >
TheISA::PCState O3ThreadContext< Impl >::pcState ( ) const
inlineoverride

Reads this thread's PC state.

Definition at line 352 of file thread_context.hh.

References O3ThreadContext< Impl >::cpu, and O3ThreadContext< Impl >::thread.

◆ pcState() [2/2]

template<class Impl >
void O3ThreadContext< Impl >::pcState ( const TheISA::PCState &  val)
override

Sets this thread's PC state.

Definition at line 287 of file thread_context_impl.hh.

References X86ISA::val.

◆ pcStateNoRecord()

template<class Impl >
void O3ThreadContext< Impl >::pcStateNoRecord ( const TheISA::PCState &  val)
override

Definition at line 296 of file thread_context_impl.hh.

References X86ISA::val.

◆ readCCReg()

template<class Impl >
RegVal O3ThreadContext< Impl >::readCCReg ( RegIndex  reg_idx) const
inlineoverride

◆ readCCRegFlat()

template<class Impl >
RegVal O3ThreadContext< Impl >::readCCRegFlat ( RegIndex  idx) const
override

Definition at line 224 of file thread_context_impl.hh.

Referenced by O3ThreadContext< Impl >::readCCReg().

◆ readFloatReg()

template<class Impl >
RegVal O3ThreadContext< Impl >::readFloatReg ( RegIndex  reg_idx) const
inlineoverride

◆ readFloatRegFlat()

template<class Impl >
RegVal O3ThreadContext< Impl >::readFloatRegFlat ( RegIndex  idx) const
override

Definition at line 181 of file thread_context_impl.hh.

Referenced by O3ThreadContext< Impl >::readFloatReg().

◆ readFuncExeInst()

template<class Impl >
Counter O3ThreadContext< Impl >::readFuncExeInst ( ) const
inlineoverride

Reads the funcExeInst counter.

Definition at line 430 of file thread_context.hh.

References O3ThreadContext< Impl >::thread.

◆ readIntReg()

template<class Impl >
RegVal O3ThreadContext< Impl >::readIntReg ( RegIndex  reg_idx) const
inlineoverride

◆ readIntRegFlat()

template<class Impl >
RegVal O3ThreadContext< Impl >::readIntRegFlat ( RegIndex  idx) const
override

◆ readLastActivate()

template<class Impl >
Tick O3ThreadContext< Impl >::readLastActivate
override

Reads the last tick that this thread was activated on.

Definition at line 137 of file thread_context_impl.hh.

◆ readLastSuspend()

template<class Impl >
Tick O3ThreadContext< Impl >::readLastSuspend
override

Reads the last tick that this thread was suspended on.

Definition at line 144 of file thread_context_impl.hh.

◆ readMiscReg()

template<class Impl >
RegVal O3ThreadContext< Impl >::readMiscReg ( RegIndex  misc_reg)
inlineoverride

Reads a misc.

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

Definition at line 393 of file thread_context.hh.

References O3ThreadContext< Impl >::cpu, and O3ThreadContext< Impl >::thread.

◆ readMiscRegNoEffect()

template<class Impl >
RegVal O3ThreadContext< Impl >::readMiscRegNoEffect ( RegIndex  misc_reg) const
inlineoverride

Reads a miscellaneous register.

Definition at line 385 of file thread_context.hh.

References O3ThreadContext< Impl >::cpu, and O3ThreadContext< Impl >::thread.

◆ readReg()

template<class Impl >
RegVal O3ThreadContext< Impl >::readReg ( RegIndex  reg_idx)
inline

◆ readStCondFailures()

template<class Impl >
unsigned O3ThreadContext< Impl >::readStCondFailures ( ) const
inlineoverride

Returns the number of consecutive store conditional failures.

Definition at line 410 of file thread_context.hh.

References O3ThreadContext< Impl >::thread.

◆ readVec16BitLaneReg()

template<class Impl >
ConstVecLane16 O3ThreadContext< Impl >::readVec16BitLaneReg ( const RegId id) const
inlineoverride

Reads source vector 16bit operand.

Definition at line 237 of file thread_context.hh.

References O3ThreadContext< Impl >::flattenRegId(), and MipsISA::index.

◆ readVec32BitLaneReg()

template<class Impl >
ConstVecLane32 O3ThreadContext< Impl >::readVec32BitLaneReg ( const RegId id) const
inlineoverride

Reads source vector 32bit operand.

Definition at line 245 of file thread_context.hh.

References O3ThreadContext< Impl >::flattenRegId(), and MipsISA::index.

◆ readVec64BitLaneReg()

template<class Impl >
ConstVecLane64 O3ThreadContext< Impl >::readVec64BitLaneReg ( const RegId id) const
inlineoverride

Reads source vector 64bit operand.

Definition at line 253 of file thread_context.hh.

References O3ThreadContext< Impl >::flattenRegId(), and MipsISA::index.

◆ readVec8BitLaneReg()

template<class Impl >
ConstVecLane8 O3ThreadContext< Impl >::readVec8BitLaneReg ( const RegId id) const
inlineoverride

Vector Register Lane Interfaces.

Reads source vector 8bit operand.

Definition at line 229 of file thread_context.hh.

References O3ThreadContext< Impl >::flattenRegId(), and MipsISA::index.

◆ readVecElem()

template<class Impl >
const VecElem& O3ThreadContext< Impl >::readVecElem ( const RegId reg) const
inlineoverride

◆ readVecElemFlat()

template<class Impl >
const TheISA::VecElem & O3ThreadContext< Impl >::readVecElemFlat ( RegIndex  idx,
const ElemIndex elemIndex 
) const
override

Definition at line 202 of file thread_context_impl.hh.

Referenced by O3ThreadContext< Impl >::readVecElem().

◆ readVecLaneFlat()

template<class Impl >
template<typename VecElem >
VecLaneT<VecElem, true> O3ThreadContext< Impl >::readVecLaneFlat ( RegIndex  idx,
int  lId 
) const
inline

◆ readVecPredReg()

template<class Impl >
const VecPredRegContainer& O3ThreadContext< Impl >::readVecPredReg ( const RegId id) const
inlineoverride

◆ readVecPredRegFlat()

template<class Impl >
const TheISA::VecPredRegContainer & O3ThreadContext< Impl >::readVecPredRegFlat ( RegIndex  idx) const
override

Definition at line 210 of file thread_context_impl.hh.

Referenced by O3ThreadContext< Impl >::readVecPredReg().

◆ readVecReg()

template<class Impl >
const VecRegContainer& O3ThreadContext< Impl >::readVecReg ( const RegId id) const
inlineoverride

◆ readVecRegFlat()

template<class Impl >
const TheISA::VecRegContainer & O3ThreadContext< Impl >::readVecRegFlat ( RegIndex  idx) const
override

Definition at line 188 of file thread_context_impl.hh.

Referenced by O3ThreadContext< Impl >::readVecReg().

◆ remove()

template<class Impl >
bool O3ThreadContext< Impl >::remove ( PCEvent e)
inlineoverride

Definition at line 77 of file thread_context.hh.

References ArmISA::e, and O3ThreadContext< Impl >::thread.

◆ schedule()

template<class Impl >
bool O3ThreadContext< Impl >::schedule ( PCEvent e)
inlineoverride

◆ scheduleInstCountEvent()

template<class Impl >
void O3ThreadContext< Impl >::scheduleInstCountEvent ( Event event,
Tick  count 
)
inlineoverride

Definition at line 83 of file thread_context.hh.

References X86ISA::count, MipsISA::event, and O3ThreadContext< Impl >::thread.

◆ setCCReg()

template<class Impl >
void O3ThreadContext< Impl >::setCCReg ( RegIndex  reg_idx,
RegVal  val 
)
inlineoverride

◆ setCCRegFlat()

template<class Impl >
void O3ThreadContext< Impl >::setCCRegFlat ( RegIndex  idx,
RegVal  val 
)
override

Definition at line 278 of file thread_context_impl.hh.

References X86ISA::val.

Referenced by O3ThreadContext< Impl >::setCCReg().

◆ setContextId()

template<class Impl >
void O3ThreadContext< Impl >::setContextId ( ContextID  id)
inlineoverride

Definition at line 132 of file thread_context.hh.

References O3ThreadContext< Impl >::thread.

◆ setFloatReg()

template<class Impl >
void O3ThreadContext< Impl >::setFloatReg ( RegIndex  reg_idx,
RegVal  val 
)
inlineoverride

◆ setFloatRegFlat()

template<class Impl >
void O3ThreadContext< Impl >::setFloatRegFlat ( RegIndex  idx,
RegVal  val 
)
override

Definition at line 240 of file thread_context_impl.hh.

References X86ISA::val.

Referenced by O3ThreadContext< Impl >::setFloatReg().

◆ setHtmCheckpointPtr()

template<class Impl >
void O3ThreadContext< Impl >::setHtmCheckpointPtr ( BaseHTMCheckpointPtr  new_cpt)
override

Definition at line 348 of file thread_context_impl.hh.

◆ setIntReg()

template<class Impl >
void O3ThreadContext< Impl >::setIntReg ( RegIndex  reg_idx,
RegVal  val 
)
inlineoverride

Sets an integer register to a value.

Definition at line 313 of file thread_context.hh.

References O3ThreadContext< Impl >::flattenRegId(), MipsISA::index, IntRegClass, O3ThreadContext< Impl >::setIntRegFlat(), and X86ISA::val.

◆ setIntRegFlat()

template<class Impl >
void O3ThreadContext< Impl >::setIntRegFlat ( RegIndex  idx,
RegVal  val 
)
override

Definition at line 231 of file thread_context_impl.hh.

References X86ISA::val.

Referenced by O3ThreadContext< Impl >::setIntReg().

◆ setMiscReg()

template<class Impl >
void O3ThreadContext< Impl >::setMiscReg ( RegIndex  misc_reg,
RegVal  val 
)
override

Sets a misc.

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

Definition at line 321 of file thread_context_impl.hh.

References X86ISA::val.

◆ setMiscRegNoEffect()

template<class Impl >
void O3ThreadContext< Impl >::setMiscRegNoEffect ( RegIndex  misc_reg,
RegVal  val 
)
override

Sets a misc.

register.

Definition at line 312 of file thread_context_impl.hh.

References X86ISA::val.

◆ setProcessPtr()

template<class Impl >
void O3ThreadContext< Impl >::setProcessPtr ( Process p)
inlineoverride

Definition at line 144 of file thread_context.hh.

References MipsISA::p, and O3ThreadContext< Impl >::thread.

◆ setStatus()

template<class Impl >
void O3ThreadContext< Impl >::setStatus ( Status  new_status)
inlineoverride

Sets this thread's status.

Definition at line 161 of file thread_context.hh.

References O3ThreadContext< Impl >::thread.

◆ setStCondFailures()

template<class Impl >
void O3ThreadContext< Impl >::setStCondFailures ( unsigned  sc_failures)
inlineoverride

Sets the number of consecutive store conditional failures.

Definition at line 417 of file thread_context.hh.

References O3ThreadContext< Impl >::thread.

◆ setThreadId()

template<class Impl >
void O3ThreadContext< Impl >::setThreadId ( int  id)
inlineoverride

Definition at line 136 of file thread_context.hh.

References O3ThreadContext< Impl >::thread.

◆ setVecElem()

template<class Impl >
void O3ThreadContext< Impl >::setVecElem ( const RegId reg,
const VecElem &  val 
)
inlineoverride

◆ setVecElemFlat()

template<class Impl >
void O3ThreadContext< Impl >::setVecElemFlat ( RegIndex  idx,
const ElemIndex elemIdx,
const VecElem &  val 
)
override

Definition at line 259 of file thread_context_impl.hh.

References X86ISA::val.

Referenced by O3ThreadContext< Impl >::setVecElem().

◆ setVecLane() [1/4]

template<class Impl >
void O3ThreadContext< Impl >::setVecLane ( const RegId reg,
const LaneData< LaneSize::Byte > &  val 
)
inlineoverride

Write a lane of the destination vector register.

Definition at line 261 of file thread_context.hh.

References O3ThreadContext< Impl >::flattenRegId(), MipsISA::index, X86ISA::reg, O3ThreadContext< Impl >::setVecLaneFlat(), and X86ISA::val.

◆ setVecLane() [2/4]

template<class Impl >
void O3ThreadContext< Impl >::setVecLane ( const RegId reg,
const LaneData< LaneSize::EightByte > &  val 
)
inlineoverride

◆ setVecLane() [3/4]

template<class Impl >
void O3ThreadContext< Impl >::setVecLane ( const RegId reg,
const LaneData< LaneSize::FourByte > &  val 
)
inlineoverride

◆ setVecLane() [4/4]

template<class Impl >
void O3ThreadContext< Impl >::setVecLane ( const RegId reg,
const LaneData< LaneSize::TwoByte > &  val 
)
inlineoverride

◆ setVecLaneFlat()

template<class Impl >
template<typename LD >
void O3ThreadContext< Impl >::setVecLaneFlat ( int  idx,
int  lId,
const LD &  val 
)
inline

◆ setVecPredReg()

template<class Impl >
void O3ThreadContext< Impl >::setVecPredReg ( const RegId reg,
const VecPredRegContainer val 
)
inlineoverride

◆ setVecPredRegFlat()

template<class Impl >
void O3ThreadContext< Impl >::setVecPredRegFlat ( RegIndex  idx,
const VecPredRegContainer val 
)
override

Definition at line 268 of file thread_context_impl.hh.

References X86ISA::val.

Referenced by O3ThreadContext< Impl >::setVecPredReg().

◆ setVecReg()

template<class Impl >
void O3ThreadContext< Impl >::setVecReg ( const RegId reg,
const VecRegContainer val 
)
inlineoverride

◆ setVecRegFlat()

template<class Impl >
void O3ThreadContext< Impl >::setVecRegFlat ( RegIndex  idx,
const VecRegContainer val 
)
override

Definition at line 249 of file thread_context_impl.hh.

References X86ISA::val.

Referenced by O3ThreadContext< Impl >::setVecReg().

◆ socketId()

template<class Impl >
uint32_t O3ThreadContext< Impl >::socketId ( ) const
inlineoverride

Reads this CPU's Socket ID.

Definition at line 128 of file thread_context.hh.

References O3ThreadContext< Impl >::cpu.

◆ status()

template<class Impl >
Status O3ThreadContext< Impl >::status ( ) const
inlineoverride

Returns this thread's status.

Definition at line 157 of file thread_context.hh.

References O3ThreadContext< Impl >::thread.

◆ suspend()

template<class Impl >
void O3ThreadContext< Impl >::suspend
override

Set the status to Suspended.

Definition at line 95 of file thread_context_impl.hh.

References curTick(), DPRINTF, and ThreadContext::Suspended.

◆ syscall()

template<class Impl >
void O3ThreadContext< Impl >::syscall ( )
inlineoverride

Executes a syscall in SE mode.

Definition at line 424 of file thread_context.hh.

References O3ThreadContext< Impl >::cpu, and O3ThreadContext< Impl >::thread.

◆ takeOverFrom()

template<class Impl >
void O3ThreadContext< Impl >::takeOverFrom ( ThreadContext old_context)
override

Takes over execution of a thread from another CPU.

Definition at line 60 of file thread_context_impl.hh.

References ThreadContext::getDecoderPtr(), ThreadContext::readFuncExeInst(), and takeOverFrom().

◆ threadId()

template<class Impl >
int O3ThreadContext< Impl >::threadId ( ) const
inlineoverride

Returns this thread's ID number.

Definition at line 135 of file thread_context.hh.

References O3ThreadContext< Impl >::thread.

Member Data Documentation

◆ cpu

template<class Impl >
O3CPU* O3ThreadContext< Impl >::cpu

◆ thread

template<class Impl >
O3ThreadState<Impl>* O3ThreadContext< Impl >::thread

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

Generated on Wed Sep 30 2020 14:02:28 for gem5 by doxygen 1.8.17