44 #ifndef __CPU_CHECKER_CPU_HH__ 
   45 #define __CPU_CHECKER_CPU_HH__ 
   51 #include "arch/types.hh" 
   59 #include "debug/Checker.hh" 
   61 #include "params/CheckerCPU.hh" 
  102     void init() 
override;
 
  199     { 
panic(
"CheckerCPU::setEA() not implemented\n"); }
 
  201     { 
panic(
"CheckerCPU::getEA() not implemented\n"); }
 
  250         setResult<uint64_t>(
val);
 
  258         setResult<double>(
val);
 
  266         setResult<uint64_t>(
val);
 
  273         setResult<uint64_t>(
val);
 
  306         DPRINTF(
Checker, 
"Setting misc reg %d with no effect to check later\n", misc_reg);
 
  313         DPRINTF(
Checker, 
"Setting misc reg %d with effect to check later\n", misc_reg);
 
  331 #if THE_ISA == MIPS_ISA 
  334         panic(
"MIPS MT not defined for CheckerCPU.\n");
 
  340         panic(
"MIPS MT not defined for CheckerCPU.\n");
 
  354         this->
itb->demapPage(vaddr, asn);
 
  355         this->
dtb->demapPage(vaddr, asn);
 
  360     { BaseCPU::armMonitor(0, address); }
 
  363     { 
return BaseCPU::mwaitAtomic(0, tc, 
thread->
dtb); }
 
  365     { 
return BaseCPU::getCpuAddrMonitor(0); }
 
  369         this->
itb->demapPage(vaddr, asn);
 
  374         this->
dtb->demapPage(vaddr, asn);
 
  405                     Addr pAddr, 
int flags);
 
  432 template <
class Impl>
 
  478 #endif // __CPU_CHECKER_CPU_HH__ 
void setMiscRegOperand(const StaticInst *si, int idx, const MiscReg &val) override
 
bool simPalCheck(int palFunc) override
Check for special simulator handling of specific PAL calls. 
 
Fault writeMem(uint8_t *data, unsigned size, Addr addr, Request::Flags flags, uint64_t *res) override
 
A MasterPort is a specialisation of a BaseMasterPort, which implements the default protocol for the t...
 
FloatReg readFloatRegOperand(const StaticInst *si, int idx) override
Reads a floating point register of single register width. 
 
uint64_t readIntReg(int reg_idx)
 
void setMiscReg(int misc_reg, const MiscReg &val, ThreadID tid=0)
 
void setMiscReg(int misc_reg, const MiscReg &val) override
Sets a miscellaneous register, handling any architectural side effects due to writing that register...
 
void setPredicate(bool val) override
 
unsigned int readStCondFailures() const override
Returns the number of consecutive store conditional failures. 
 
std::list< DynInstPtr >::iterator InstListIt
 
DynInstPtr unverifiedInst
 
void syscall(int64_t callnum, Fault *fault) override
Executes a syscall specified by the callnum. 
 
Impl::DynInstPtr DynInstPtr
 
std::queue< int > miscRegIdxs
 
MasterPort & getInstPort() override
 
void wakeup(ThreadID tid) override
 
void validateInst(DynInstPtr &inst)
 
Declaration of a request, the overall memory request consisting of the parts of the request that are ...
 
virtual Counter totalOps() const override
 
void copyResult(DynInstPtr &inst, uint64_t mismatch_val, int start_idx)
 
virtual Counter totalInsts() const override
 
RegIndex destRegIdx(int i) const 
Return logical index (architectural reg num) of i'th destination reg. 
 
void handleError(DynInstPtr &inst)
 
CCReg readCCRegOperand(const StaticInst *si, int idx) override
 
Addr getEA() const override
Get the effective address of the instruction. 
 
MiscReg readRegOtherThread(int misc_reg, ThreadID tid) override
 
std::list< DynInstPtr > instList
 
bool simPalCheck(int palFunc)
Check for special simulator handling of specific PAL calls. 
 
The SimpleThread object provides a combination of the ThreadState object and the ThreadContext interf...
 
void validateExecution(DynInstPtr &inst)
 
TheISA::TLB * getITBPtr()
 
StaticInstPtr curMacroStaticInst
 
void setDcachePort(MasterPort *dcache_port)
 
ThreadContext is the external interface to all thread state for anything outside of the CPU...
 
Declaration of Statistics objects. 
 
ThreadContext * tcBase() override
Returns a pointer to the ThreadContext. 
 
void setCCReg(int reg_idx, CCReg val)
 
bool checkFlags(Request *unverified_req, Addr vAddr, Addr pAddr, int flags)
Checks if the flags set by the Checker and Checkee match. 
 
MiscReg readMiscRegNoEffect(int misc_reg, ThreadID tid=0) const 
 
AddressMonitor * getAddrMonitor() override
 
MiscReg readMiscRegNoEffect(int misc_reg) const 
 
void setStCondFailures(unsigned int sc_failures) override
Sets the number of consecutive store conditional failures. 
 
std::queue< Result > result
 
unsigned readStCondFailures()
 
void setFloatRegOperand(const StaticInst *si, int idx, FloatReg val) override
Sets a floating point register of single width to a value. 
 
void verify(DynInstPtr &inst)
 
void pcState(const TheISA::PCState &val) override
 
MasterPort & getDataPort() override
 
The ExecContext is an abstract base class the provides the interface used by the ISA to manipulate th...
 
MiscReg readMiscRegOperand(const StaticInst *si, int idx) override
 
TheISA::PCState pcState() const override
 
bool mwait(PacketPtr pkt) override
 
MasterID masterId
id attached to all issued requests 
 
void advancePC(const Fault &fault)
 
MiscReg readMiscReg(int misc_reg, ThreadID tid=0)
 
void setMiscRegNoEffect(int misc_reg, const MiscReg &val, ThreadID tid=0)
 
SimpleThread * threadBase()
 
uint8_t * unverifiedMemData
 
TheISA::FloatRegBits FloatRegBits
 
void setMiscRegNoEffect(int misc_reg, const MiscReg &val)
 
void demapInstPage(Addr vaddr, uint64_t asn)
 
void setFloatRegBits(int reg_idx, FloatRegBits val)
 
uint64_t Addr
Address type This will probably be moved somewhere else in the near future. 
 
int64_t Counter
Statistics counter type. 
 
void setCCRegOperand(const StaticInst *si, int idx, CCReg val) override
 
A Packet is used to encapsulate a transfer between two objects in the memory system (e...
 
void setFloatReg(int reg_idx, FloatReg val)
 
RegIndex srcRegIdx(int i) const 
Return logical index (architectural reg num) of i'th source reg. 
 
void setEA(Addr EA) override
Record the effective address of the instruction. 
 
Addr dbg_vtophys(Addr addr)
 
void serialize(CheckpointOut &cp) const override
 
TheISA::PCState pcState()
 
CCReg readCCReg(int reg_idx)
 
int16_t ThreadID
Thread index/ID type. 
 
FloatReg readFloatReg(int reg_idx)
 
void setIntReg(int reg_idx, uint64_t val)
 
void setIcachePort(MasterPort *icache_port)
 
TheISA::TLB * getDTBPtr()
 
std::ostream CheckpointOut
 
FloatRegBits readFloatRegBits(int reg_idx)
 
std::vector< Process * > workload
 
void setSystem(System *system)
 
GenericISA::SimplePCState< MachInst > PCState
 
void demapPage(Addr vaddr, uint64_t asn) override
Invalidate a page in the DTLB and ITLB. 
 
void takeOverFrom(BaseCPU *oldCPU)
 
Base, ISA-independent static instruction class. 
 
Defines a dynamic instruction context. 
 
void recordPCChange(const TheISA::PCState &val)
 
IntReg readIntRegOperand(const StaticInst *si, int idx) override
Reads an integer register. 
 
void armMonitor(Addr address) override
 
Fault hwrei() override
Somewhat Alpha-specific function that handles returning from an error or interrupt. 
 
TheISA::MachInst MachInst
 
void setFloatRegOperandBits(const StaticInst *si, int idx, FloatRegBits val) override
Sets the bits of a floating point register of single width to a binary value. 
 
bool readPredicate() override
 
void demapDataPage(Addr vaddr, uint64_t asn)
 
void setIntRegOperand(const StaticInst *si, int idx, IntReg val) override
Sets an integer register to a value. 
 
TheISA::PCState newPCState
 
MiscReg readMiscReg(int misc_reg) override
Reads a miscellaneous register, handling any architectural side effects due to reading that register...
 
StaticInstPtr curStaticInst
 
std::shared_ptr< FaultBase > Fault
 
Fault readMem(Addr addr, uint8_t *data, unsigned size, Request::Flags flags) override
 
void mwaitAtomic(ThreadContext *tc) override
 
TheISA::FloatReg FloatReg
 
void unserialize(CheckpointIn &cp) override
 
void setRegOtherThread(int misc_reg, MiscReg val, ThreadID tid) override
 
void setPredicate(bool val)
 
FloatRegBits readFloatRegOperandBits(const StaticInst *si, int idx) override
Reads a floating point register in its binary format, instead of by value.