gem5  v20.1.0.0
Public Member Functions | Private Attributes | List of all members
CheckerThreadContext< TC > Class Template Reference

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

#include <thread_context.hh>

Inheritance diagram for CheckerThreadContext< TC >:
ThreadContext PCEventScope

Public Member Functions

 CheckerThreadContext (TC *actual_tc, CheckerCPU *checker_cpu)
 
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
 
BaseCPUgetCpuPtr () override
 
uint32_t socketId () const override
 
int cpuId () const override
 
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
 
BaseTLBgetITBPtr () override
 
BaseTLBgetDTBPtr () override
 
CheckerCPUgetCheckerCpuPtr () override
 
BaseISAgetIsaPtr () override
 
TheISA::Decoder * getDecoderPtr () override
 
SystemgetSystemPtr () override
 
ProcessgetProcessPtr () override
 
void setProcessPtr (Process *p) override
 
PortProxygetPhysProxy () override
 
PortProxygetVirtProxy () override
 
void initMemProxies (ThreadContext *tc) override
 Initialise the physical and virtual port proxies and tie them to the data port of the CPU. More...
 
void connectMemPorts (ThreadContext *tc)
 
void syscall () override
 Executes a syscall in SE mode. More...
 
Status status () const override
 
void setStatus (Status new_status) 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...
 
void takeOverFrom (ThreadContext *oldContext) override
 
void regStats (const std::string &name) override
 
Tick readLastActivate () override
 
Tick readLastSuspend () override
 
void copyArchRegs (ThreadContext *tc) override
 
void clearArchRegs () override
 
RegVal readIntReg (RegIndex reg_idx) const override
 
RegVal readFloatReg (RegIndex reg_idx) const override
 
const VecRegContainerreadVecReg (const RegId &reg) const override
 
VecRegContainergetWritableVecReg (const RegId &reg) override
 Read vector register for modification, hierarchical indexing. More...
 
const VecElemreadVecElem (const RegId &reg) const override
 
const VecPredRegContainerreadVecPredReg (const RegId &reg) const override
 
VecPredRegContainergetWritableVecPredReg (const RegId &reg) override
 
RegVal readCCReg (RegIndex reg_idx) const override
 
void setIntReg (RegIndex reg_idx, RegVal val) override
 
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 setNPC (Addr val)
 
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
 
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 &regId) const override
 
unsigned readStCondFailures () const override
 
void setStCondFailures (unsigned sc_failures) override
 
Counter readFuncExeInst () const override
 
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 VecRegContainerreadVecRegFlat (RegIndex idx) const override
 
VecRegContainergetWritableVecRegFlat (RegIndex idx) override
 Read vector register for modification, flat indexing. More...
 
void setVecRegFlat (RegIndex idx, const VecRegContainer &val) override
 
const VecElemreadVecElemFlat (RegIndex idx, const ElemIndex &elem_idx) const override
 
void setVecElemFlat (RegIndex idx, const ElemIndex &elem_idx, 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 &reg) const override
 Vector Register Lane Interfaces. More...
 
ConstVecLane16 readVec16BitLaneReg (const RegId &reg) const override
 Reads source vector 16bit operand. More...
 
ConstVecLane32 readVec32BitLaneReg (const RegId &reg) const override
 Reads source vector 32bit operand. More...
 
ConstVecLane64 readVec64BitLaneReg (const RegId &reg) const override
 Reads source vector 64bit operand. More...
 
virtual void setVecLane (const RegId &reg, const LaneData< LaneSize::Byte > &val) override
 Write a lane of the destination vector register. More...
 
virtual void setVecLane (const RegId &reg, const LaneData< LaneSize::TwoByte > &val) override
 
virtual void setVecLane (const RegId &reg, const LaneData< LaneSize::FourByte > &val) override
 
virtual void setVecLane (const RegId &reg, const LaneData< LaneSize::EightByte > &val) override
 
- Public Member Functions inherited from ThreadContext
virtual ~ThreadContext ()
 
void quiesce ()
 Quiesce thread context. More...
 
void quiesceTick (Tick resume)
 Quiesce, suspend, and schedule activate at resume. More...
 
void setNPC (Addr val)
 
virtual int exit ()
 

Private Attributes

TC * actualTC
 The main CPU's ThreadContext, or class that implements the ThreadContext interface. More...
 
SimpleThreadcheckerTC
 The checker's own SimpleThread. More...
 
CheckerCPUcheckerCPU
 Pointer to the checker CPU. More...
 

Additional Inherited Members

- Public Types inherited from ThreadContext
enum  Status { Active, Suspended, Halting, Halted }
 
- Static Public Member Functions inherited from ThreadContext
static void compare (ThreadContext *one, ThreadContext *two)
 function to compare two thread contexts (for debugging) More...
 
- Public Attributes inherited from ThreadContext
int intResult = DefaultIntResult
 
double floatResult = DefaultFloatResult
 
int intOffset = 0
 
- Static Public Attributes inherited from ThreadContext
static const int ints []
 
static const double floats []
 
static const int DefaultIntResult = 0
 
static const double DefaultFloatResult = 0.0
 
- Protected Types inherited from ThreadContext
typedef TheISA::MachInst MachInst
 
using VecRegContainer = TheISA::VecRegContainer
 
using VecElem = TheISA::VecElem
 
using VecPredRegContainer = TheISA::VecPredRegContainer
 

Detailed Description

template<class TC>
class CheckerThreadContext< TC >

Derived ThreadContext class for use with the Checker.

The template parameter is the ThreadContext class used by the specific CPU being verified. This CheckerThreadContext is then used by the main CPU in place of its usual ThreadContext class. It handles updating the checker's state any time state is updated externally through the ThreadContext.

Definition at line 66 of file thread_context.hh.

Constructor & Destructor Documentation

◆ CheckerThreadContext()

template<class TC >
CheckerThreadContext< TC >::CheckerThreadContext ( TC *  actual_tc,
CheckerCPU checker_cpu 
)
inline

Definition at line 69 of file thread_context.hh.

Member Function Documentation

◆ activate()

template<class TC >
void CheckerThreadContext< TC >::activate ( )
inlineoverridevirtual

Set the status to Active.

Implements ThreadContext.

Definition at line 187 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ clearArchRegs()

template<class TC >
void CheckerThreadContext< TC >::clearArchRegs ( )
inlineoverridevirtual

◆ connectMemPorts()

template<class TC >
void CheckerThreadContext< TC >::connectMemPorts ( ThreadContext tc)
inline

Definition at line 169 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ contextId()

template<class TC >
ContextID CheckerThreadContext< TC >::contextId ( ) const
inlineoverridevirtual

Implements ThreadContext.

Definition at line 112 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ copyArchRegs()

template<class TC >
void CheckerThreadContext< TC >::copyArchRegs ( ThreadContext tc)
inlineoverridevirtual

◆ cpuId()

template<class TC >
int CheckerThreadContext< TC >::cpuId ( ) const
inlineoverridevirtual

Implements ThreadContext.

Definition at line 110 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ descheduleInstCountEvent()

template<class TC >
void CheckerThreadContext< TC >::descheduleInstCountEvent ( Event event)
inlineoverridevirtual

Implements ThreadContext.

Definition at line 96 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC, and MipsISA::event.

◆ flattenRegId()

template<class TC >
RegId CheckerThreadContext< TC >::flattenRegId ( const RegId regId) const
inlineoverridevirtual

Implements ThreadContext.

Definition at line 447 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ getCheckerCpuPtr()

template<class TC >
CheckerCPU* CheckerThreadContext< TC >::getCheckerCpuPtr ( )
inlineoverridevirtual

Implements ThreadContext.

Definition at line 135 of file thread_context.hh.

References CheckerThreadContext< TC >::checkerCPU.

◆ getCpuPtr()

template<class TC >
BaseCPU* CheckerThreadContext< TC >::getCpuPtr ( )
inlineoverridevirtual

Implements ThreadContext.

Definition at line 106 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ getCurrentInstCount()

template<class TC >
Tick CheckerThreadContext< TC >::getCurrentInstCount ( )
inlineoverridevirtual

Implements ThreadContext.

Definition at line 101 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ getDecoderPtr()

template<class TC >
TheISA::Decoder* CheckerThreadContext< TC >::getDecoderPtr ( )
inlineoverridevirtual

Implements ThreadContext.

Definition at line 143 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ getDTBPtr()

template<class TC >
BaseTLB* CheckerThreadContext< TC >::getDTBPtr ( )
inlineoverridevirtual

Implements ThreadContext.

Definition at line 132 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ getHtmCheckpointPtr()

template<class TC >
BaseHTMCheckpointPtr& CheckerThreadContext< TC >::getHtmCheckpointPtr ( )
inlineoverridevirtual

Implements ThreadContext.

Definition at line 566 of file thread_context.hh.

References panic.

◆ getIsaPtr()

template<class TC >
BaseISA* CheckerThreadContext< TC >::getIsaPtr ( )
inlineoverridevirtual

Implements ThreadContext.

Definition at line 140 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ getITBPtr()

template<class TC >
BaseTLB* CheckerThreadContext< TC >::getITBPtr ( )
inlineoverridevirtual

Implements ThreadContext.

Definition at line 130 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ getPhysProxy()

template<class TC >
PortProxy& CheckerThreadContext< TC >::getPhysProxy ( )
inlineoverridevirtual

Implements ThreadContext.

Definition at line 154 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ getProcessPtr()

template<class TC >
Process* CheckerThreadContext< TC >::getProcessPtr ( )
inlineoverridevirtual

Implements ThreadContext.

Definition at line 150 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ getSystemPtr()

template<class TC >
System* CheckerThreadContext< TC >::getSystemPtr ( )
inlineoverridevirtual

Implements ThreadContext.

Definition at line 148 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ getVirtProxy()

template<class TC >
PortProxy& CheckerThreadContext< TC >::getVirtProxy ( )
inlineoverridevirtual

Implements ThreadContext.

Definition at line 157 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ getWritableVecPredReg()

template<class TC >
VecPredRegContainer& CheckerThreadContext< TC >::getWritableVecPredReg ( const RegId reg)
inlineoverridevirtual

Implements ThreadContext.

Definition at line 327 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC, and X86ISA::reg.

◆ getWritableVecPredRegFlat()

template<class TC >
VecPredRegContainer& CheckerThreadContext< TC >::getWritableVecPredRegFlat ( RegIndex  idx)
inlineoverridevirtual

Implements ThreadContext.

Definition at line 535 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ getWritableVecReg()

template<class TC >
VecRegContainer& CheckerThreadContext< TC >::getWritableVecReg ( const RegId reg)
inlineoverridevirtual

Read vector register for modification, hierarchical indexing.

Implements ThreadContext.

Definition at line 252 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC, and X86ISA::reg.

◆ getWritableVecRegFlat()

template<class TC >
VecRegContainer& CheckerThreadContext< TC >::getWritableVecRegFlat ( RegIndex  idx)
inlineoverridevirtual

Read vector register for modification, flat indexing.

Implements ThreadContext.

Definition at line 504 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ halt()

template<class TC >
void CheckerThreadContext< TC >::halt ( )
inlineoverridevirtual

Set the status to Halted.

Implements ThreadContext.

Definition at line 193 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ htmAbortTransaction()

template<class TC >
void CheckerThreadContext< TC >::htmAbortTransaction ( uint64_t  htm_uid,
HtmFailureFaultCause  cause 
)
inlineoverridevirtual

Implements ThreadContext.

Definition at line 560 of file thread_context.hh.

References panic.

◆ initMemProxies()

template<class TC >
void CheckerThreadContext< TC >::initMemProxies ( 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 ThreadContext.

Definition at line 163 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ instAddr()

template<class TC >
Addr CheckerThreadContext< TC >::instAddr ( ) const
inlineoverridevirtual

Reads this thread's PC.

Implements ThreadContext.

Definition at line 408 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ microPC()

template<class TC >
MicroPC CheckerThreadContext< TC >::microPC ( ) const
inlineoverridevirtual

Reads this thread's next PC.

Implements ThreadContext.

Definition at line 414 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ nextInstAddr()

template<class TC >
Addr CheckerThreadContext< TC >::nextInstAddr ( ) const
inlineoverridevirtual

Reads this thread's next PC.

Implements ThreadContext.

Definition at line 411 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ pcState() [1/2]

template<class TC >
TheISA::PCState CheckerThreadContext< TC >::pcState ( ) const
inlineoverridevirtual

Reads this thread's PC state.

Implements ThreadContext.

Definition at line 381 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ pcState() [2/2]

template<class TC >
void CheckerThreadContext< TC >::pcState ( const TheISA::PCState &  val)
inlineoverridevirtual

◆ pcStateNoRecord()

template<class TC >
void CheckerThreadContext< TC >::pcStateNoRecord ( const TheISA::PCState &  val)
inlineoverridevirtual

Implements ThreadContext.

Definition at line 402 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC, and X86ISA::val.

◆ readCCReg()

template<class TC >
RegVal CheckerThreadContext< TC >::readCCReg ( RegIndex  reg_idx) const
inlineoverridevirtual

Implements ThreadContext.

Definition at line 333 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ readCCRegFlat()

template<class TC >
RegVal CheckerThreadContext< TC >::readCCRegFlat ( RegIndex  idx) const
inlineoverridevirtual

Implements ThreadContext.

Definition at line 547 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ readFloatReg()

template<class TC >
RegVal CheckerThreadContext< TC >::readFloatReg ( RegIndex  reg_idx) const
inlineoverridevirtual

Implements ThreadContext.

Definition at line 237 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ readFloatRegFlat()

template<class TC >
RegVal CheckerThreadContext< TC >::readFloatRegFlat ( RegIndex  idx) const
inlineoverridevirtual

Implements ThreadContext.

Definition at line 483 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ readFuncExeInst()

template<class TC >
Counter CheckerThreadContext< TC >::readFuncExeInst ( ) const
inlineoverridevirtual

Implements ThreadContext.

Definition at line 465 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ readIntReg()

template<class TC >
RegVal CheckerThreadContext< TC >::readIntReg ( RegIndex  reg_idx) const
inlineoverridevirtual

Implements ThreadContext.

Definition at line 231 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ readIntRegFlat()

template<class TC >
RegVal CheckerThreadContext< TC >::readIntRegFlat ( RegIndex  idx) const
inlineoverridevirtual

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 ThreadContext.

Definition at line 471 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ readLastActivate()

template<class TC >
Tick CheckerThreadContext< TC >::readLastActivate ( )
inlineoverridevirtual

Implements ThreadContext.

Definition at line 209 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ readLastSuspend()

template<class TC >
Tick CheckerThreadContext< TC >::readLastSuspend ( )
inlineoverridevirtual

Implements ThreadContext.

Definition at line 210 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ readMiscReg()

template<class TC >
RegVal CheckerThreadContext< TC >::readMiscReg ( RegIndex  misc_reg)
inlineoverridevirtual

Implements ThreadContext.

Definition at line 423 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ readMiscRegNoEffect()

template<class TC >
RegVal CheckerThreadContext< TC >::readMiscRegNoEffect ( RegIndex  misc_reg) const
inlineoverridevirtual

Implements ThreadContext.

Definition at line 417 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ readStCondFailures()

template<class TC >
unsigned CheckerThreadContext< TC >::readStCondFailures ( ) const
inlineoverridevirtual

Implements ThreadContext.

Definition at line 453 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ readVec16BitLaneReg()

template<class TC >
ConstVecLane16 CheckerThreadContext< TC >::readVec16BitLaneReg ( const RegId reg) const
inlineoverridevirtual

Reads source vector 16bit operand.

Implements ThreadContext.

Definition at line 268 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC, and X86ISA::reg.

◆ readVec32BitLaneReg()

template<class TC >
ConstVecLane32 CheckerThreadContext< TC >::readVec32BitLaneReg ( const RegId reg) const
inlineoverridevirtual

Reads source vector 32bit operand.

Implements ThreadContext.

Definition at line 275 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC, and X86ISA::reg.

◆ readVec64BitLaneReg()

template<class TC >
ConstVecLane64 CheckerThreadContext< TC >::readVec64BitLaneReg ( const RegId reg) const
inlineoverridevirtual

Reads source vector 64bit operand.

Implements ThreadContext.

Definition at line 282 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC, and X86ISA::reg.

◆ readVec8BitLaneReg()

template<class TC >
ConstVecLane8 CheckerThreadContext< TC >::readVec8BitLaneReg ( const RegId reg) const
inlineoverridevirtual

Vector Register Lane Interfaces.

Reads source vector 8bit operand.

Implements ThreadContext.

Definition at line 261 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC, and X86ISA::reg.

◆ readVecElem()

template<class TC >
const VecElem& CheckerThreadContext< TC >::readVecElem ( const RegId reg) const
inlineoverridevirtual

Implements ThreadContext.

Definition at line 315 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC, and X86ISA::reg.

◆ readVecElemFlat()

template<class TC >
const VecElem& CheckerThreadContext< TC >::readVecElemFlat ( RegIndex  idx,
const ElemIndex elem_idx 
) const
inlineoverridevirtual

Implements ThreadContext.

Definition at line 516 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ readVecPredReg()

template<class TC >
const VecPredRegContainer& CheckerThreadContext< TC >::readVecPredReg ( const RegId reg) const
inlineoverridevirtual

Implements ThreadContext.

Definition at line 321 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC, and X86ISA::reg.

◆ readVecPredRegFlat()

template<class TC >
const VecPredRegContainer& CheckerThreadContext< TC >::readVecPredRegFlat ( RegIndex  idx) const
inlineoverridevirtual

Implements ThreadContext.

Definition at line 529 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ readVecReg()

template<class TC >
const VecRegContainer& CheckerThreadContext< TC >::readVecReg ( const RegId reg) const
inlineoverridevirtual

Implements ThreadContext.

Definition at line 243 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC, and X86ISA::reg.

◆ readVecRegFlat()

template<class TC >
const VecRegContainer& CheckerThreadContext< TC >::readVecRegFlat ( RegIndex  idx) const
inlineoverridevirtual

Implements ThreadContext.

Definition at line 495 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ regStats()

template<class TC >
void CheckerThreadContext< TC >::regStats ( const std::string &  name)
inlineoverridevirtual

◆ remove()

template<class TC >
bool CheckerThreadContext< TC >::remove ( PCEvent e)
inlineoverridevirtual

Implements PCEventScope.

Definition at line 88 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC, and ArmISA::e.

◆ schedule()

template<class TC >
bool CheckerThreadContext< TC >::schedule ( PCEvent e)
inlineoverridevirtual

Implements PCEventScope.

Definition at line 87 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC, and ArmISA::e.

◆ scheduleInstCountEvent()

template<class TC >
void CheckerThreadContext< TC >::scheduleInstCountEvent ( Event event,
Tick  count 
)
inlineoverridevirtual

Implements ThreadContext.

Definition at line 91 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC, X86ISA::count, and MipsISA::event.

◆ setCCReg()

template<class TC >
void CheckerThreadContext< TC >::setCCReg ( RegIndex  reg_idx,
RegVal  val 
)
inlineoverridevirtual

◆ setCCRegFlat()

template<class TC >
void CheckerThreadContext< TC >::setCCRegFlat ( RegIndex  idx,
RegVal  val 
)
inlineoverridevirtual

Implements ThreadContext.

Definition at line 553 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC, and X86ISA::val.

◆ setContextId()

template<class TC >
void CheckerThreadContext< TC >::setContextId ( ContextID  id)
inlineoverridevirtual

◆ setFloatReg()

template<class TC >
void CheckerThreadContext< TC >::setFloatReg ( RegIndex  reg_idx,
RegVal  val 
)
inlineoverridevirtual

◆ setFloatRegFlat()

template<class TC >
void CheckerThreadContext< TC >::setFloatRegFlat ( RegIndex  idx,
RegVal  val 
)
inlineoverridevirtual

Implements ThreadContext.

Definition at line 489 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC, and X86ISA::val.

◆ setHtmCheckpointPtr()

template<class TC >
void CheckerThreadContext< TC >::setHtmCheckpointPtr ( BaseHTMCheckpointPtr  new_cpt)
inlineoverridevirtual

Implements ThreadContext.

Definition at line 572 of file thread_context.hh.

References panic.

◆ setIntReg()

template<class TC >
void CheckerThreadContext< TC >::setIntReg ( RegIndex  reg_idx,
RegVal  val 
)
inlineoverridevirtual

◆ setIntRegFlat()

template<class TC >
void CheckerThreadContext< TC >::setIntRegFlat ( RegIndex  idx,
RegVal  val 
)
inlineoverridevirtual

Implements ThreadContext.

Definition at line 477 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC, and X86ISA::val.

◆ setMiscReg()

template<class TC >
void CheckerThreadContext< TC >::setMiscReg ( RegIndex  misc_reg,
RegVal  val 
)
inlineoverridevirtual

◆ setMiscRegNoEffect()

template<class TC >
void CheckerThreadContext< TC >::setMiscRegNoEffect ( RegIndex  misc_reg,
RegVal  val 
)
inlineoverridevirtual

◆ setNPC()

template<class TC >
void CheckerThreadContext< TC >::setNPC ( Addr  val)
inline

◆ setProcessPtr()

template<class TC >
void CheckerThreadContext< TC >::setProcessPtr ( Process p)
inlineoverridevirtual

Implements ThreadContext.

Definition at line 152 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC, and MipsISA::p.

◆ setStatus()

template<class TC >
void CheckerThreadContext< TC >::setStatus ( Status  new_status)
inlineoverridevirtual

◆ setStCondFailures()

template<class TC >
void CheckerThreadContext< TC >::setStCondFailures ( unsigned  sc_failures)
inlineoverridevirtual

Implements ThreadContext.

Definition at line 459 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ setThreadId()

template<class TC >
void CheckerThreadContext< TC >::setThreadId ( int  id)
inlineoverridevirtual

◆ setVecElem()

template<class TC >
void CheckerThreadContext< TC >::setVecElem ( const RegId reg,
const VecElem val 
)
inlineoverridevirtual

◆ setVecElemFlat()

template<class TC >
void CheckerThreadContext< TC >::setVecElemFlat ( RegIndex  idx,
const ElemIndex elem_idx,
const VecElem val 
)
inlineoverridevirtual

Implements ThreadContext.

Definition at line 522 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC, and X86ISA::val.

◆ setVecLane() [1/4]

template<class TC >
virtual void CheckerThreadContext< TC >::setVecLane ( const RegId reg,
const LaneData< LaneSize::Byte > &  val 
)
inlineoverridevirtual

Write a lane of the destination vector register.

Implements ThreadContext.

Definition at line 289 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC, X86ISA::reg, and X86ISA::val.

◆ setVecLane() [2/4]

template<class TC >
virtual void CheckerThreadContext< TC >::setVecLane ( const RegId reg,
const LaneData< LaneSize::EightByte > &  val 
)
inlineoverridevirtual

Implements ThreadContext.

Definition at line 307 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC, X86ISA::reg, and X86ISA::val.

◆ setVecLane() [3/4]

template<class TC >
virtual void CheckerThreadContext< TC >::setVecLane ( const RegId reg,
const LaneData< LaneSize::FourByte > &  val 
)
inlineoverridevirtual

Implements ThreadContext.

Definition at line 301 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC, X86ISA::reg, and X86ISA::val.

◆ setVecLane() [4/4]

template<class TC >
virtual void CheckerThreadContext< TC >::setVecLane ( const RegId reg,
const LaneData< LaneSize::TwoByte > &  val 
)
inlineoverridevirtual

Implements ThreadContext.

Definition at line 295 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC, X86ISA::reg, and X86ISA::val.

◆ setVecPredReg()

template<class TC >
void CheckerThreadContext< TC >::setVecPredReg ( const RegId reg,
const VecPredRegContainer val 
)
inlineoverridevirtual

◆ setVecPredRegFlat()

template<class TC >
void CheckerThreadContext< TC >::setVecPredRegFlat ( RegIndex  idx,
const VecPredRegContainer val 
)
inlineoverridevirtual

Implements ThreadContext.

Definition at line 541 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC, and X86ISA::val.

◆ setVecReg()

template<class TC >
void CheckerThreadContext< TC >::setVecReg ( const RegId reg,
const VecRegContainer val 
)
inlineoverridevirtual

◆ setVecRegFlat()

template<class TC >
void CheckerThreadContext< TC >::setVecRegFlat ( RegIndex  idx,
const VecRegContainer val 
)
inlineoverridevirtual

Implements ThreadContext.

Definition at line 510 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC, and X86ISA::val.

◆ socketId()

template<class TC >
uint32_t CheckerThreadContext< TC >::socketId ( ) const
inlineoverridevirtual

Implements ThreadContext.

Definition at line 108 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ status()

template<class TC >
Status CheckerThreadContext< TC >::status ( ) const
inlineoverridevirtual

Implements ThreadContext.

Definition at line 177 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ suspend()

template<class TC >
void CheckerThreadContext< TC >::suspend ( )
inlineoverridevirtual

Set the status to Suspended.

Implements ThreadContext.

Definition at line 190 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ syscall()

template<class TC >
void CheckerThreadContext< TC >::syscall ( )
inlineoverridevirtual

Executes a syscall in SE mode.

Implements ThreadContext.

Definition at line 175 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

◆ takeOverFrom()

template<class TC >
void CheckerThreadContext< TC >::takeOverFrom ( ThreadContext oldContext)
inlineoverridevirtual

◆ threadId()

template<class TC >
int CheckerThreadContext< TC >::threadId ( ) const
inlineoverridevirtual

Returns this thread's ID number.

Implements ThreadContext.

Definition at line 122 of file thread_context.hh.

References CheckerThreadContext< TC >::actualTC.

Member Data Documentation

◆ actualTC

template<class TC >
TC* CheckerThreadContext< TC >::actualTC
private

The main CPU's ThreadContext, or class that implements the ThreadContext interface.

Definition at line 78 of file thread_context.hh.

Referenced by CheckerThreadContext< TC >::activate(), CheckerThreadContext< TC >::clearArchRegs(), CheckerThreadContext< TC >::connectMemPorts(), CheckerThreadContext< TC >::contextId(), CheckerThreadContext< TC >::copyArchRegs(), CheckerThreadContext< TC >::cpuId(), CheckerThreadContext< TC >::descheduleInstCountEvent(), CheckerThreadContext< TC >::flattenRegId(), CheckerThreadContext< TC >::getCpuPtr(), CheckerThreadContext< TC >::getCurrentInstCount(), CheckerThreadContext< TC >::getDecoderPtr(), CheckerThreadContext< TC >::getDTBPtr(), CheckerThreadContext< TC >::getIsaPtr(), CheckerThreadContext< TC >::getITBPtr(), CheckerThreadContext< TC >::getPhysProxy(), CheckerThreadContext< TC >::getProcessPtr(), CheckerThreadContext< TC >::getSystemPtr(), CheckerThreadContext< TC >::getVirtProxy(), CheckerThreadContext< TC >::getWritableVecPredReg(), CheckerThreadContext< TC >::getWritableVecPredRegFlat(), CheckerThreadContext< TC >::getWritableVecReg(), CheckerThreadContext< TC >::getWritableVecRegFlat(), CheckerThreadContext< TC >::halt(), CheckerThreadContext< TC >::initMemProxies(), CheckerThreadContext< TC >::instAddr(), CheckerThreadContext< TC >::microPC(), CheckerThreadContext< TC >::nextInstAddr(), CheckerThreadContext< TC >::pcState(), CheckerThreadContext< TC >::pcStateNoRecord(), CheckerThreadContext< TC >::readCCReg(), CheckerThreadContext< TC >::readCCRegFlat(), CheckerThreadContext< TC >::readFloatReg(), CheckerThreadContext< TC >::readFloatRegFlat(), CheckerThreadContext< TC >::readFuncExeInst(), CheckerThreadContext< TC >::readIntReg(), CheckerThreadContext< TC >::readIntRegFlat(), CheckerThreadContext< TC >::readLastActivate(), CheckerThreadContext< TC >::readLastSuspend(), CheckerThreadContext< TC >::readMiscReg(), CheckerThreadContext< TC >::readMiscRegNoEffect(), CheckerThreadContext< TC >::readStCondFailures(), CheckerThreadContext< TC >::readVec16BitLaneReg(), CheckerThreadContext< TC >::readVec32BitLaneReg(), CheckerThreadContext< TC >::readVec64BitLaneReg(), CheckerThreadContext< TC >::readVec8BitLaneReg(), CheckerThreadContext< TC >::readVecElem(), CheckerThreadContext< TC >::readVecElemFlat(), CheckerThreadContext< TC >::readVecPredReg(), CheckerThreadContext< TC >::readVecPredRegFlat(), CheckerThreadContext< TC >::readVecReg(), CheckerThreadContext< TC >::readVecRegFlat(), CheckerThreadContext< TC >::regStats(), CheckerThreadContext< TC >::remove(), CheckerThreadContext< TC >::schedule(), CheckerThreadContext< TC >::scheduleInstCountEvent(), CheckerThreadContext< TC >::setCCReg(), CheckerThreadContext< TC >::setCCRegFlat(), CheckerThreadContext< TC >::setContextId(), CheckerThreadContext< TC >::setFloatReg(), CheckerThreadContext< TC >::setFloatRegFlat(), CheckerThreadContext< TC >::setIntReg(), CheckerThreadContext< TC >::setIntRegFlat(), CheckerThreadContext< TC >::setMiscReg(), CheckerThreadContext< TC >::setMiscRegNoEffect(), CheckerThreadContext< TC >::setNPC(), CheckerThreadContext< TC >::setProcessPtr(), CheckerThreadContext< TC >::setStatus(), CheckerThreadContext< TC >::setStCondFailures(), CheckerThreadContext< TC >::setThreadId(), CheckerThreadContext< TC >::setVecElem(), CheckerThreadContext< TC >::setVecElemFlat(), CheckerThreadContext< TC >::setVecLane(), CheckerThreadContext< TC >::setVecPredReg(), CheckerThreadContext< TC >::setVecPredRegFlat(), CheckerThreadContext< TC >::setVecReg(), CheckerThreadContext< TC >::setVecRegFlat(), CheckerThreadContext< TC >::socketId(), CheckerThreadContext< TC >::status(), CheckerThreadContext< TC >::suspend(), CheckerThreadContext< TC >::syscall(), CheckerThreadContext< TC >::takeOverFrom(), and CheckerThreadContext< TC >::threadId().

◆ checkerCPU

template<class TC >
CheckerCPU* CheckerThreadContext< TC >::checkerCPU
private

Pointer to the checker CPU.

Definition at line 84 of file thread_context.hh.

Referenced by CheckerThreadContext< TC >::getCheckerCpuPtr(), and CheckerThreadContext< TC >::pcState().

◆ checkerTC

template<class TC >
SimpleThread* CheckerThreadContext< TC >::checkerTC
private

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

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