45 #ifndef __CPU_EXEC_CONTEXT_HH__
46 #define __CPU_EXEC_CONTEXT_HH__
48 #include "arch/registers.hh"
50 #include "config/the_isa.hh"
188 panic(
"ExecContext::readMem() should be overridden\n");
201 panic(
"ExecContext::initiateMemRead() should be overridden\n");
231 virtual void syscall(int64_t callnum,
Fault *fault) = 0;
288 #if THE_ISA == MIPS_ISA
298 #endif // __CPU_EXEC_CONTEXT_HH__
virtual MiscReg readRegOtherThread(int regIdx, ThreadID tid=InvalidThreadID)=0
virtual void setPredicate(bool val)=0
virtual Addr getEA() const =0
Get the effective address of the instruction.
virtual FloatRegBits readFloatRegOperandBits(const StaticInst *si, int idx)=0
Reads a floating point register in its binary format, instead of by value.
virtual MiscReg readMiscReg(int misc_reg)=0
Reads a miscellaneous register, handling any architectural side effects due to reading that register...
Declaration of a request, the overall memory request consisting of the parts of the request that are ...
virtual void setFloatRegOperandBits(const StaticInst *si, int idx, FloatRegBits val)=0
Sets the bits of a floating point register of single width to a binary value.
virtual MiscReg readMiscRegOperand(const StaticInst *si, int idx)=0
virtual PCState pcState() const =0
virtual Fault readMem(Addr addr, uint8_t *data, unsigned int size, Request::Flags flags)
Perform an atomic memory read operation.
virtual bool simPalCheck(int palFunc)=0
Check for special simulator handling of specific PAL calls.
virtual void demapPage(Addr vaddr, uint64_t asn)=0
Invalidate a page in the DTLB and ITLB.
ThreadContext is the external interface to all thread state for anything outside of the CPU...
virtual void setStCondFailures(unsigned int sc_failures)=0
Sets the number of consecutive store conditional failures.
virtual bool mwait(PacketPtr pkt)=0
virtual IntReg readIntRegOperand(const StaticInst *si, int idx)=0
Reads an integer register.
virtual void mwaitAtomic(ThreadContext *tc)=0
TheISA::FloatReg FloatReg
virtual Fault hwrei()=0
Somewhat Alpha-specific function that handles returning from an error or interrupt.
virtual void syscall(int64_t callnum, Fault *fault)=0
Executes a syscall specified by the callnum.
The ExecContext is an abstract base class the provides the interface used by the ISA to manipulate th...
virtual void setMiscRegOperand(const StaticInst *si, int idx, const MiscReg &val)=0
TheISA::FloatRegBits FloatRegBits
virtual void setFloatRegOperand(const StaticInst *si, int idx, FloatReg val)=0
Sets a floating point register of single width to a value.
virtual void armMonitor(Addr address)=0
virtual Fault writeMem(uint8_t *data, unsigned int size, Addr addr, Request::Flags flags, uint64_t *res)=0
For atomic-mode contexts, perform an atomic memory write operation.
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,16,32,64}_t.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
virtual FloatReg readFloatRegOperand(const StaticInst *si, int idx)=0
Reads a floating point register of single register width.
A Packet is used to encapsulate a transfer between two objects in the memory system (e...
virtual void setIntRegOperand(const StaticInst *si, int idx, IntReg val)=0
Sets an integer register to a value.
const ThreadID InvalidThreadID
virtual CCReg readCCRegOperand(const StaticInst *si, int idx)=0
virtual unsigned int readStCondFailures() const =0
Returns the number of consecutive store conditional failures.
int16_t ThreadID
Thread index/ID type.
virtual AddressMonitor * getAddrMonitor()=0
virtual Fault initiateMemRead(Addr addr, unsigned int size, Request::Flags flags)
Initiate a timing memory read operation.
GenericISA::SimplePCState< MachInst > PCState
virtual void setEA(Addr EA)=0
Record the effective address of the instruction.
virtual void setRegOtherThread(int regIdx, MiscReg val, ThreadID tid=InvalidThreadID)=0
Base, ISA-independent static instruction class.
virtual ThreadContext * tcBase()=0
Returns a pointer to the ThreadContext.
virtual bool readPredicate()=0
std::shared_ptr< FaultBase > Fault
virtual void setCCRegOperand(const StaticInst *si, int idx, CCReg val)=0
virtual void setMiscReg(int misc_reg, const MiscReg &val)=0
Sets a miscellaneous register, handling any architectural side effects due to writing that register...