Go to the documentation of this file.
42 #ifndef __CPU_CHECKER_THREAD_CONTEXT_HH__
43 #define __CPU_CHECKER_THREAD_CONTEXT_HH__
45 #include "arch/types.hh"
46 #include "config/the_isa.hh"
50 #include "debug/Checker.hh"
103 return actualTC->getCurrentInstCount();
233 return actualTC->readIntReg(reg_idx);
239 return actualTC->readFloatReg(reg_idx);
335 return actualTC->readCCReg(reg_idx);
419 return actualTC->readMiscRegNoEffect(misc_reg);
425 return actualTC->readMiscReg(misc_reg);
431 DPRINTF(
Checker,
"Setting misc reg with no effect: %d to both Checker"
432 " and O3..\n", misc_reg);
440 DPRINTF(
Checker,
"Setting misc reg with effect: %d to both Checker"
441 " and O3..\n", misc_reg);
449 return actualTC->flattenRegId(regId);
455 return actualTC->readStCondFailures();
461 actualTC->setStCondFailures(sc_failures);
473 return actualTC->readIntRegFlat(idx);
485 return actualTC->readFloatRegFlat(idx);
497 return actualTC->readVecRegFlat(idx);
506 return actualTC->getWritableVecRegFlat(idx);
518 return actualTC->readVecElemFlat(idx, elem_idx);
531 return actualTC->readVecPredRegFlat(idx);
537 return actualTC->getWritableVecPredRegFlat(idx);
549 return actualTC->readCCRegFlat(idx);
562 panic(
"function not implemented");
568 panic(
"function not implemented");
574 panic(
"function not implemented");
579 #endif // __CPU_CHECKER_EXEC_CONTEXT_HH__
void clearArchRegs() override
ConstVecLane64 readVec64BitLaneReg(const RegId ®) const override
Reads source vector 64bit operand.
Process * getProcessPtr() override
void setThreadId(int id) override
void setCCReg(RegIndex reg_idx, RegVal val) override
void setVecRegFlat(RegIndex idx, const VecRegContainer &val) override
TheISA::PCState pcState() const override
TheISA::Decoder * getDecoderPtr() override
PortProxy & getVirtProxy() override
const VecPredRegContainer & readVecPredRegFlat(RegIndex idx) const override
void setThreadId(int id) override
Generic predicate register container.
void setVecReg(const RegId ®, const VecRegContainer &val) override
void initMemProxies(ThreadContext *tc) override
Initialise the physical and virtual port proxies and tie them to the data port of the CPU.
void setStatus(Status new_status) override
ConstVecLane32 readVec32BitLaneReg(const RegId ®) const override
Reads source vector 32bit operand.
const VecElem & readVecElemFlat(RegIndex idx, const ElemIndex &elem_idx) const override
void clearArchRegs() override
virtual void regStats(const std::string &name)
RegVal readFloatRegFlat(RegIndex idx) const override
RegVal readCCReg(RegIndex reg_idx) const override
unsigned readStCondFailures() const override
virtual void setVecLane(const RegId ®, const LaneData< LaneSize::EightByte > &val) override
int ContextID
Globally unique thread context ID.
void regStats(const std::string &name) override
uint64_t Tick
Tick count type.
void setIntReg(RegIndex reg_idx, RegVal val) override
void setCCReg(RegIndex reg_idx, RegVal val) override
bool schedule(PCEvent *e) override
ContextID contextId() const override
const VecRegContainer & readVecReg(const RegId ®) const override
void pcStateNoRecord(const TheISA::PCState &val) override
void scheduleInstCountEvent(Event *event, Tick count) override
const VecElem & readVecElem(const RegId ®) const override
const VecPredRegContainer & readVecPredReg(const RegId ®) const override
virtual void setVecLane(const RegId ®, const LaneData< LaneSize::Byte > &val) override
Write a lane of the destination vector register.
CheckerCPU * checkerCPU
Pointer to the checker CPU.
void pcState(const TheISA::PCState &val) override
Sets this thread's PC state.
void recordPCChange(const TheISA::PCState &val)
void copyArchRegs(ThreadContext *tc) override
void setMiscRegNoEffect(RegIndex misc_reg, RegVal val) override
Register ID: describe an architectural register with its class and index.
void setIntReg(RegIndex reg_idx, RegVal val) override
The SimpleThread object provides a combination of the ThreadState object and the ThreadContext interf...
void setMiscReg(RegIndex misc_reg, RegVal val) override
void setMiscReg(RegIndex misc_reg, RegVal val) override
BaseHTMCheckpointPtr & getHtmCheckpointPtr() override
void setVecPredReg(const RegId ®, const VecPredRegContainer &val) override
const VecRegContainer & readVecRegFlat(RegIndex idx) const override
int64_t Counter
Statistics counter type.
VecPredRegContainer & getWritableVecPredRegFlat(RegIndex idx) override
RegVal readMiscReg(RegIndex misc_reg) override
void setProcessPtr(Process *p) override
int cpuId() const override
ThreadContext is the external interface to all thread state for anything outside of the CPU.
void setStatus(Status newStatus) override
Vector Lane abstraction Another view of a container.
Counter readFuncExeInst() const override
void setContextId(ContextID id) override
void setMiscRegNoEffect(RegIndex misc_reg, RegVal val) override
BaseTLB * getITBPtr() override
void syscall() override
Executes a syscall in SE mode.
void setVecElem(const RegId ®, const VecElem &val) override
BaseCPU * getCpuPtr() override
void halt() override
Set the status to Halted.
void htmAbortTransaction(uint64_t htm_uid, HtmFailureFaultCause cause) override
RegId flattenRegId(const RegId ®Id) const override
Status status() const override
CheckerThreadContext(TC *actual_tc, CheckerCPU *checker_cpu)
RegVal readFloatReg(RegIndex reg_idx) const override
BaseTLB * getDTBPtr() override
RegVal readIntRegFlat(RegIndex idx) const override
Flat register interfaces.
void connectMemPorts(ThreadContext *tc)
void copyState(ThreadContext *oldContext)
PortProxy & getPhysProxy() override
bool remove(PCEvent *e) override
void setIntRegFlat(RegIndex idx, RegVal val) override
void setVecElem(const RegId ®, const VecElem &val) override
void copyArchRegs(ThreadContext *tc) override
TC * actualTC
The main CPU's ThreadContext, or class that implements the ThreadContext interface.
void setVecElemFlat(RegIndex idx, const ElemIndex &elem_idx, const VecElem &val) override
Tick getCurrentInstCount() override
void setVecPredReg(const RegId ®, const VecPredRegContainer &val) override
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
std::unique_ptr< BaseHTMCheckpoint > BaseHTMCheckpointPtr
void setVecPredRegFlat(RegIndex idx, const VecPredRegContainer &val) override
const std::string & name()
void setFloatReg(RegIndex reg_idx, RegVal val) override
Addr nextInstAddr() const override
Reads this thread's next PC.
RegVal readIntReg(RegIndex reg_idx) const override
RegVal readCCRegFlat(RegIndex idx) const override
CheckerCPU * getCheckerCpuPtr() override
ConstVecLane8 readVec8BitLaneReg(const RegId ®) const override
Vector Register Lane Interfaces.
BaseISA * getIsaPtr() override
void takeOverFrom(ThreadContext *oldContext) override
VecPredRegContainer & getWritableVecPredReg(const RegId ®) override
RegVal readMiscRegNoEffect(RegIndex misc_reg) const override
This object is a proxy for a port or other object which implements the functional response protocol,...
void setVecReg(const RegId ®, const VecRegContainer &val) override
GenericISA::DelaySlotPCState< MachInst > PCState
void activate() override
Set the status to Active.
Tick readLastSuspend() override
uint32_t socketId() const override
uint16_t ElemIndex
Logical vector register elem index type.
void descheduleInstCountEvent(Event *event) override
SimpleThread * checkerTC
The checker's own SimpleThread.
Derived ThreadContext class for use with the Checker.
System * getSystemPtr() override
VecRegContainer & getWritableVecReg(const RegId ®) override
Read vector register for modification, hierarchical indexing.
MicroPC microPC() const override
Reads this thread's next PC.
ConstVecLane16 readVec16BitLaneReg(const RegId ®) const override
Reads source vector 16bit operand.
Tick readLastActivate() override
void setCCRegFlat(RegIndex idx, RegVal val) override
void setFloatRegFlat(RegIndex idx, RegVal val) override
void suspend() override
Set the status to Suspended.
virtual void setVecLane(const RegId ®, const LaneData< LaneSize::TwoByte > &val) override
Addr instAddr() const override
Reads this thread's PC.
void setFloatReg(RegIndex reg_idx, RegVal val) override
void setContextId(ContextID id) override
VecRegContainer & getWritableVecRegFlat(RegIndex idx) override
Read vector register for modification, flat indexing.
virtual void setVecLane(const RegId ®, const LaneData< LaneSize::FourByte > &val) override
void setStCondFailures(unsigned sc_failures) override
LaneSize is an abstraction of a LS byte value for the execution and thread contexts to handle values ...
Vector Register Abstraction This generic class is the model in a particularization of MVC,...
void setHtmCheckpointPtr(BaseHTMCheckpointPtr new_cpt) override
int threadId() const override
Returns this thread's ID number.
#define panic(...)
This implements a cprintf based panic() function.
TheISA::PCState pcState() const override
Reads this thread's PC state.
Generated on Wed Sep 30 2020 14:01:58 for gem5 by doxygen 1.8.17