Go to the documentation of this file.
32 #ifndef __GPU_STATIC_INST_HH__
33 #define __GPU_STATIC_INST_HH__
48 #include "enums/GPUStaticInstFlags.hh"
49 #include "enums/StorageClassType.hh"
121 return _flags[UnconditionalJump];
227 fatal(
"calling initiateAcc() on a non-memory instruction.\n");
234 fatal(
"calling completeAcc() on a non-memory instruction.\n");
340 fatal(
"kernel launch instruction should not be executed\n");
364 #endif // __GPU_STATIC_INST_HH__
This is a simple scalar statistic, like a counter.
void initDynOperandInfo(Wavefront *wf, ComputeUnit *cu)
static uint64_t dynamic_id_count
#define fatal(...)
This implements a cprintf based fatal() function.
GPUStaticInst(const std::string &opcode)
virtual int numSrcRegOperands()=0
bool isAtomicExch() const
std::bitset< Num_Flags > _flags
const std::string & disassemble()
std::vector< OperandInfo > srcOps
bool isAtomicNoRet() const
virtual void initiateAcc(GPUDynInstPtr gpuDynInst)
void generateDisassembly() override
enums::StorageClassType executed_as
const std::vector< OperandInfo > & srcScalarRegOperands() const
const std::vector< OperandInfo > & dstVecRegOperands() const
bool isFlatGlobal() const
void initOperandInfo() override
bool isGloballyCoherent() const
Coherence domain of a memory instruction.
bool isFlatScratchRegister(int opIdx) override
std::vector< OperandInfo > srcScalarRegOps
def format Nop(code, *opt_flags)
const std::string & opcode() const
bool isEndOfKernel() const
Wrapper that groups a few flag bits under the same undelying container.
virtual bool isFlatScratchRegister(int opIdx)=0
virtual void execute(GPUDynInstPtr gpuDynInst)=0
virtual int getNumOperands()=0
virtual TheGpuISA::ScalarRegU32 srcLiteral() const
const std::vector< OperandInfo > & srcVecRegOperands() const
std::vector< OperandInfo > dstOps
const std::vector< OperandInfo > & dstScalarRegOperands() const
int numDstScalarOperands()
virtual int instSize() const =0
int getNumOperands() override
bool isReadOnlySeg() const
void execute(GPUDynInstPtr gpuDynInst) override
virtual void generateDisassembly()=0
int _ipdInstNum
Identifier of the immediate post-dominator instruction.
int(RegisterManager::* MapRegFn)(Wavefront *, int)
const std::vector< OperandInfo > & srcOperands() const
std::shared_ptr< GPUDynInst > GPUDynInstPtr
bool isKernArgSeg() const
const std::vector< OperandInfo > & dstOperands() const
virtual uint32_t getTargetPc()
bool isUnconditionalJump() const
bool isKernelLaunch() const
int numDstRegOperands() override
int getOperandSize(int operandIndex) override
const std::string _opcode
int numSrcRegOperands() override
int instSize() const override
bool isSystemCoherent() const
Base class for branch operations.
int numSrcScalarOperands()
bool isExecMaskRegister(int opIdx) override
std::vector< OperandInfo > dstScalarRegOps
std::vector< OperandInfo > dstVecRegOps
virtual int getOperandSize(int operandIndex)=0
virtual void initOperandInfo()=0
virtual void completeAcc(GPUDynInstPtr gpuDynInst)
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
virtual int coalescerTokenCount() const
void instAddr(int inst_addr)
virtual bool isExecMaskRegister(int opIdx)=0
bool isPrivateSeg() const
virtual int numDstRegOperands()=0
std::vector< OperandInfo > srcVecRegOps
bool isCondBranch() const
Generated on Sun Jul 30 2023 01:56:33 for gem5 by doxygen 1.8.17