gem5
v19.0.0.0
|
Derived ThreadContext class for use with the Checker. More...
#include <thread_context.hh>
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 |
BaseCPU * | getCpuPtr () 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 |
BaseTLB * | getITBPtr () override |
BaseTLB * | getDTBPtr () override |
CheckerCPU * | getCheckerCpuPtr () override |
BaseISA * | getIsaPtr () override |
TheISA::Decoder * | getDecoderPtr () override |
System * | getSystemPtr () override |
::Kernel::Statistics * | getKernelStats () override |
Process * | getProcessPtr () override |
void | setProcessPtr (Process *p) override |
PortProxy & | getPhysProxy () override |
PortProxy & | getVirtProxy () 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 (Fault *fault) 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 | dumpFuncProfile () override |
void | takeOverFrom (ThreadContext *oldContext) override |
void | regStats (const std::string &name) override |
EndQuiesceEvent * | getQuiesceEvent () override |
Tick | readLastActivate () override |
Tick | readLastSuspend () override |
void | profileClear () override |
void | profileSample () override |
void | copyArchRegs (ThreadContext *tc) override |
void | clearArchRegs () override |
RegVal | readIntReg (RegIndex reg_idx) const override |
RegVal | readFloatReg (RegIndex reg_idx) const override |
const VecRegContainer & | readVecReg (const RegId ®) const override |
VecRegContainer & | getWritableVecReg (const RegId ®) override |
Read vector register for modification, hierarchical indexing. More... | |
const VecElem & | readVecElem (const RegId ®) const override |
const VecPredRegContainer & | readVecPredReg (const RegId ®) const override |
VecPredRegContainer & | getWritableVecPredReg (const RegId ®) 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 ®, const VecRegContainer &val) override |
void | setVecElem (const RegId ®, const VecElem &val) override |
void | setVecPredReg (const RegId ®, 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 ®Id) 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 VecRegContainer & | readVecRegFlat (RegIndex idx) const override |
VecRegContainer & | getWritableVecRegFlat (RegIndex idx) override |
Read vector register for modification, flat indexing. More... | |
void | setVecRegFlat (RegIndex idx, const VecRegContainer &val) override |
const VecElem & | readVecElemFlat (RegIndex idx, const ElemIndex &elem_idx) const override |
void | setVecElemFlat (RegIndex idx, const ElemIndex &elem_idx, const VecElem &val) override |
const VecPredRegContainer & | readVecPredRegFlat (RegIndex idx) const override |
VecPredRegContainer & | getWritableVecPredRegFlat (RegIndex idx) override |
void | setVecPredRegFlat (RegIndex idx, const VecPredRegContainer &val) override |
RegVal | readCCRegFlat (RegIndex idx) const override |
void | setCCRegFlat (RegIndex idx, RegVal val) override |
ConstVecLane8 | readVec8BitLaneReg (const RegId ®) const override |
Vector Register Lane Interfaces. More... | |
ConstVecLane16 | readVec16BitLaneReg (const RegId ®) const override |
Reads source vector 16bit operand. More... | |
ConstVecLane32 | readVec32BitLaneReg (const RegId ®) const override |
Reads source vector 32bit operand. More... | |
ConstVecLane64 | readVec64BitLaneReg (const RegId ®) const override |
Reads source vector 64bit operand. More... | |
virtual void | setVecLane (const RegId ®, const LaneData< LaneSize::Byte > &val) override |
Write a lane of the destination vector register. More... | |
virtual void | setVecLane (const RegId ®, const LaneData< LaneSize::TwoByte > &val) override |
virtual void | setVecLane (const RegId ®, const LaneData< LaneSize::FourByte > &val) override |
virtual void | setVecLane (const RegId ®, const LaneData< LaneSize::EightByte > &val) override |
![]() | |
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... | |
SimpleThread * | checkerTC |
The checker's own SimpleThread. More... | |
CheckerCPU * | checkerCPU |
Pointer to the checker CPU. More... | |
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... | |
![]() | |
int | intResult = DefaultIntResult |
double | floatResult = DefaultFloatResult |
int | intOffset = 0 |
![]() | |
static const int | ints [] |
static const double | floats [] |
static const int | DefaultIntResult = 0 |
static const double | DefaultFloatResult = 0.0 |
![]() | |
typedef TheISA::MachInst | MachInst |
using | VecRegContainer = TheISA::VecRegContainer |
using | VecElem = TheISA::VecElem |
using | VecPredRegContainer = TheISA::VecPredRegContainer |
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 71 of file thread_context.hh.
|
inline |
Definition at line 74 of file thread_context.hh.
|
inlineoverridevirtual |
Set the status to Active.
Implements ThreadContext.
Definition at line 202 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 247 of file thread_context.hh.
References SimpleThread::clearArchRegs().
|
inline |
Definition at line 180 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 117 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 240 of file thread_context.hh.
References SimpleThread::copyArchRegs().
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 115 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 101 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 210 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 473 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 140 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 111 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 106 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 148 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 137 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 145 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 135 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 156 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 165 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 161 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 227 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 153 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 168 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 353 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 561 of file thread_context.hh.
|
inlineoverridevirtual |
Read vector register for modification, hierarchical indexing.
Implements ThreadContext.
Definition at line 278 of file thread_context.hh.
|
inlineoverridevirtual |
Read vector register for modification, flat indexing.
Implements ThreadContext.
Definition at line 530 of file thread_context.hh.
|
inlineoverridevirtual |
Set the status to Halted.
Implements ThreadContext.
Definition at line 208 of file thread_context.hh.
|
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 174 of file thread_context.hh.
|
inlineoverridevirtual |
|
inlineoverridevirtual |
Reads this thread's next PC.
Implements ThreadContext.
Definition at line 440 of file thread_context.hh.
|
inlineoverridevirtual |
Reads this thread's next PC.
Implements ThreadContext.
Definition at line 437 of file thread_context.hh.
|
inlineoverridevirtual |
Reads this thread's PC state.
Implements ThreadContext.
Definition at line 407 of file thread_context.hh.
|
inlineoverridevirtual |
Sets this thread's PC state.
Implements ThreadContext.
Definition at line 411 of file thread_context.hh.
References DPRINTF, SimpleThread::pcState(), and CheckerCPU::recordPCChange().
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 428 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 235 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 236 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 359 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 573 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 263 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 509 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 491 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 257 of file thread_context.hh.
|
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 497 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 232 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 233 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 449 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 443 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 479 of file thread_context.hh.
|
inlineoverridevirtual |
Reads source vector 16bit operand.
Implements ThreadContext.
Definition at line 294 of file thread_context.hh.
|
inlineoverridevirtual |
Reads source vector 32bit operand.
Implements ThreadContext.
Definition at line 301 of file thread_context.hh.
|
inlineoverridevirtual |
Reads source vector 64bit operand.
Implements ThreadContext.
Definition at line 308 of file thread_context.hh.
|
inlineoverridevirtual |
Vector Register Lane Interfaces.
Reads source vector 8bit operand.
Implements ThreadContext.
Definition at line 287 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 341 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 542 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 347 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 555 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 269 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 521 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 220 of file thread_context.hh.
References SimpleThread::regStats().
|
inlineoverridevirtual |
|
inlineoverridevirtual |
Implements PCEventScope.
Definition at line 92 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 96 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 400 of file thread_context.hh.
References SimpleThread::setCCReg().
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 579 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 120 of file thread_context.hh.
References SimpleThread::setContextId().
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 372 of file thread_context.hh.
References SimpleThread::setFloatReg().
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 515 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 365 of file thread_context.hh.
References SimpleThread::setIntReg().
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 503 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 464 of file thread_context.hh.
References DPRINTF, and SimpleThread::setMiscReg().
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 455 of file thread_context.hh.
References DPRINTF, and SimpleThread::setMiscRegNoEffect().
|
inline |
Definition at line 421 of file thread_context.hh.
References ThreadContext::setNPC().
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 163 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 195 of file thread_context.hh.
References SimpleThread::setStatus().
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 485 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 129 of file thread_context.hh.
References SimpleThread::setThreadId().
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 386 of file thread_context.hh.
References SimpleThread::setVecElem().
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 548 of file thread_context.hh.
|
inlineoverridevirtual |
Write a lane of the destination vector register.
Implements ThreadContext.
Definition at line 315 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 321 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 327 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 333 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 393 of file thread_context.hh.
References SimpleThread::setVecPredReg().
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 567 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 379 of file thread_context.hh.
References SimpleThread::setVecReg().
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 536 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 113 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 192 of file thread_context.hh.
|
inlineoverridevirtual |
Set the status to Suspended.
Implements ThreadContext.
Definition at line 205 of file thread_context.hh.
|
inlineoverridevirtual |
Executes a syscall in SE mode.
Implements ThreadContext.
Definition at line 187 of file thread_context.hh.
|
inlineoverridevirtual |
Implements ThreadContext.
Definition at line 213 of file thread_context.hh.
References SimpleThread::copyState().
|
inlineoverridevirtual |
Returns this thread's ID number.
Implements ThreadContext.
Definition at line 127 of file thread_context.hh.
|
private |
The main CPU's ThreadContext, or class that implements the ThreadContext interface.
Definition at line 83 of file thread_context.hh.
|
private |
Pointer to the checker CPU.
Definition at line 89 of file thread_context.hh.
|
private |
The checker's own SimpleThread.
Will be updated any time anything uses this ThreadContext to externally update a thread's state.
Definition at line 87 of file thread_context.hh.