Go to the documentation of this file.
42 #ifndef __CPU_EXEC_CONTEXT_HH__
43 #define __CPU_EXEC_CONTEXT_HH__
45 #include "arch/vecregs.hh"
47 #include "config/the_isa.hh"
203 panic(
"ExecContext::readMem() should be overridden\n");
217 panic(
"ExecContext::initiateMemRead() should be overridden\n");
241 panic(
"ExecContext::amoMem() should be overridden\n");
252 panic(
"ExecContext::initiateMemAMO() should be overridden\n");
307 #endif // __CPU_EXEC_CONTEXT_HH__
virtual void setStCondFailures(unsigned int sc_failures)=0
Sets the number of consecutive store conditional failures.
virtual void setMemAccPredicate(bool val)=0
virtual void setMiscReg(int misc_reg, RegVal val)=0
Sets a miscellaneous register, handling any architectural side effects due to writing that register.
VecPredReg::Container VecPredRegContainer
virtual void setVecElemOperand(const StaticInst *si, int idx, RegVal val)=0
Sets a vector register to a value.
virtual RegVal readIntRegOperand(const StaticInst *si, int idx)=0
Reads an integer register.
virtual unsigned int readStCondFailures() const =0
Returns the number of consecutive store conditional failures.
virtual void setCCRegOperand(const StaticInst *si, int idx, RegVal val)=0
virtual bool inHtmTransactionalState() const =0
virtual TheISA::VecRegContainer & getWritableVecRegOperand(const StaticInst *si, int idx)=0
Gets destination vector register operand for modification.
virtual RegVal readMiscReg(int misc_reg)=0
Reads a miscellaneous register, handling any architectural side effects due to reading that register.
virtual AddressMonitor * getAddrMonitor()=0
virtual void mwaitAtomic(ThreadContext *tc)=0
virtual void setIntRegOperand(const StaticInst *si, int idx, RegVal val)=0
Sets an integer register to a value.
virtual bool readPredicate() const =0
Base, ISA-independent static instruction class.
ThreadContext is the external interface to all thread state for anything outside of the CPU.
std::shared_ptr< FaultBase > Fault
virtual void setVecRegOperand(const StaticInst *si, int idx, const TheISA::VecRegContainer &val)=0
Sets a destination vector register operand to a value.
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
virtual Fault writeMem(uint8_t *data, unsigned int size, Addr addr, Request::Flags flags, uint64_t *res, const std::vector< bool > &byte_enable)=0
For atomic-mode contexts, perform an atomic memory write operation.
virtual void setVecPredRegOperand(const StaticInst *si, int idx, const TheISA::VecPredRegContainer &val)=0
Sets a destination predicate register operand to a value.
virtual void demapPage(Addr vaddr, uint64_t asn)=0
Invalidate a page in the DTLB and ITLB.
virtual ThreadContext * tcBase() const =0
Returns a pointer to the ThreadContext.
virtual Fault initiateMemRead(Addr addr, unsigned int size, Request::Flags flags, const std::vector< bool > &byte_enable)
Initiate a timing memory read operation.
gem5::VecRegContainer< NumVecElemPerVecReg *sizeof(VecElem)> VecRegContainer
virtual RegVal readVecElemOperand(const StaticInst *si, int idx) const =0
Vector Elem Interfaces.
virtual bool readMemAccPredicate() const =0
virtual uint64_t getHtmTransactionUid() const =0
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
virtual Fault initiateHtmCmd(Request::Flags flags)=0
Initiate an HTM command, e.g.
virtual void setMiscRegOperand(const StaticInst *si, int idx, RegVal val)=0
virtual Fault readMem(Addr addr, uint8_t *data, unsigned int size, Request::Flags flags, const std::vector< bool > &byte_enable)
Perform an atomic memory read operation.
virtual uint64_t newHtmTransactionUid() const =0
virtual const PCStateBase & pcState() const =0
virtual const TheISA::VecPredRegContainer & readVecPredRegOperand(const StaticInst *si, int idx) const =0
Predicate registers interface.
virtual RegVal readMiscRegOperand(const StaticInst *si, int idx)=0
virtual TheISA::VecPredRegContainer & getWritableVecPredRegOperand(const StaticInst *si, int idx)=0
Gets destination predicate register operand for modification.
The ExecContext is an abstract base class the provides the interface used by the ISA to manipulate th...
virtual void setFloatRegOperandBits(const StaticInst *si, int idx, RegVal val)=0
Sets the bits of a floating point register of single width to a binary value.
virtual Fault initiateMemAMO(Addr addr, unsigned int size, Request::Flags flags, AtomicOpFunctorPtr amo_op)
For timing-mode contexts, initiate an atomic AMO (atomic read-modify-write memory operation)
virtual RegVal readCCRegOperand(const StaticInst *si, int idx)=0
std::unique_ptr< AtomicOpFunctor > AtomicOpFunctorPtr
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
virtual void armMonitor(Addr address)=0
virtual uint64_t getHtmTransactionalDepth() const =0
virtual void setPredicate(bool val)=0
virtual Fault amoMem(Addr addr, uint8_t *data, unsigned int size, Request::Flags flags, AtomicOpFunctorPtr amo_op)
For atomic-mode contexts, perform an atomic AMO (a.k.a., Atomic Read-Modify-Write Memory Operation)
virtual const TheISA::VecRegContainer & readVecRegOperand(const StaticInst *si, int idx) const =0
Vector Register Interfaces.
#define panic(...)
This implements a cprintf based panic() function.
virtual bool mwait(PacketPtr pkt)=0
virtual RegVal readFloatRegOperandBits(const StaticInst *si, int idx)=0
Reads a floating point register in its binary format, instead of by value.
Generated on Tue Feb 8 2022 11:47:02 for gem5 by doxygen 1.8.17