gem5
v21.2.1.1
|
#include <instructions.hh>
Public Member Functions | |
Inst_SOPP__S_BARRIER (InFmt_SOPP *) | |
~Inst_SOPP__S_BARRIER () | |
int | getNumOperands () override |
int | numDstRegOperands () override |
int | numSrcRegOperands () override |
int | getOperandSize (int opIdx) override |
void | execute (GPUDynInstPtr) override |
Synchronize waves within a workgroup. More... | |
![]() | |
Inst_SOPP (InFmt_SOPP *, const std::string &opcode) | |
~Inst_SOPP () | |
int | instSize () const override |
void | generateDisassembly () override |
void | initOperandInfo () override |
![]() | |
GCN3GPUStaticInst (const std::string &opcode) | |
~GCN3GPUStaticInst () | |
bool | isFlatScratchRegister (int opIdx) override |
bool | isExecMaskRegister (int opIdx) override |
int | coalescerTokenCount () const override |
Return the number of tokens needed by the coalescer. More... | |
ScalarRegU32 | srcLiteral () const override |
![]() | |
GPUStaticInst (const std::string &opcode) | |
virtual | ~GPUStaticInst () |
void | instAddr (int inst_addr) |
int | instAddr () const |
int | nextInstAddr () const |
void | instNum (int num) |
int | instNum () |
void | ipdInstNum (int num) |
int | ipdInstNum () const |
void | initDynOperandInfo (Wavefront *wf, ComputeUnit *cu) |
const std::string & | disassemble () |
int | numSrcVecOperands () |
int | numDstVecOperands () |
int | numSrcVecDWords () |
int | numDstVecDWords () |
int | numSrcScalarOperands () |
int | numDstScalarOperands () |
int | numSrcScalarDWords () |
int | numDstScalarDWords () |
int | maxOperandSize () |
bool | isALU () const |
bool | isBranch () const |
bool | isCondBranch () const |
bool | isNop () const |
bool | isReturn () const |
bool | isEndOfKernel () const |
bool | isKernelLaunch () const |
bool | isSDWAInst () const |
bool | isDPPInst () const |
bool | isUnconditionalJump () const |
bool | isSpecialOp () const |
bool | isWaitcnt () const |
bool | isSleep () const |
bool | isBarrier () const |
bool | isMemSync () const |
bool | isMemRef () const |
bool | isFlat () const |
bool | isFlatGlobal () const |
bool | isLoad () const |
bool | isStore () const |
bool | isAtomic () const |
bool | isAtomicNoRet () const |
bool | isAtomicRet () const |
bool | isScalar () const |
bool | readsSCC () const |
bool | writesSCC () const |
bool | readsVCC () const |
bool | writesVCC () const |
bool | readsEXEC () const |
bool | writesEXEC () const |
bool | readsMode () const |
bool | writesMode () const |
bool | ignoreExec () const |
bool | isAtomicAnd () const |
bool | isAtomicOr () const |
bool | isAtomicXor () const |
bool | isAtomicCAS () const |
bool | isAtomicExch () const |
bool | isAtomicAdd () const |
bool | isAtomicSub () const |
bool | isAtomicInc () const |
bool | isAtomicDec () const |
bool | isAtomicMax () const |
bool | isAtomicMin () const |
bool | isArgLoad () const |
bool | isGlobalMem () const |
bool | isLocalMem () const |
bool | isArgSeg () const |
bool | isGlobalSeg () const |
bool | isGroupSeg () const |
bool | isKernArgSeg () const |
bool | isPrivateSeg () const |
bool | isReadOnlySeg () const |
bool | isSpillSeg () const |
bool | isGloballyCoherent () const |
Coherence domain of a memory instruction. More... | |
bool | isSystemCoherent () const |
bool | isF16 () const |
bool | isF32 () const |
bool | isF64 () const |
bool | isFMA () const |
bool | isMAC () const |
bool | isMAD () const |
virtual void | initiateAcc (GPUDynInstPtr gpuDynInst) |
virtual void | completeAcc (GPUDynInstPtr gpuDynInst) |
virtual uint32_t | getTargetPc () |
void | setFlag (Flags flag) |
const std::string & | opcode () const |
const std::vector< OperandInfo > & | srcOperands () const |
const std::vector< OperandInfo > & | dstOperands () const |
const std::vector< OperandInfo > & | srcVecRegOperands () const |
const std::vector< OperandInfo > & | dstVecRegOperands () const |
const std::vector< OperandInfo > & | srcScalarRegOperands () const |
const std::vector< OperandInfo > & | dstScalarRegOperands () const |
Additional Inherited Members | |
![]() | |
enum | OpType { SRC_VEC, SRC_SCALAR, DST_VEC, DST_SCALAR } |
typedef int(RegisterManager::* | MapRegFn) (Wavefront *, int) |
![]() | |
enums::StorageClassType | executed_as |
![]() | |
static uint64_t | dynamic_id_count |
![]() | |
void | panicUnimplemented () const |
![]() | |
InFmt_SOPP | instData |
![]() | |
ScalarRegU32 | _srcLiteral |
if the instruction has a src literal - an immediate value that is part of the instruction stream - we store that here More... | |
![]() | |
const std::string | _opcode |
std::string | disassembly |
int | _instNum |
int | _instAddr |
std::vector< OperandInfo > | srcOps |
std::vector< OperandInfo > | dstOps |
Definition at line 4723 of file instructions.hh.
gem5::Gcn3ISA::Inst_SOPP__S_BARRIER::Inst_SOPP__S_BARRIER | ( | InFmt_SOPP * | iFmt | ) |
Definition at line 4094 of file instructions.cc.
References gem5::GPUStaticInst::setFlag().
gem5::Gcn3ISA::Inst_SOPP__S_BARRIER::~Inst_SOPP__S_BARRIER | ( | ) |
Definition at line 4100 of file instructions.cc.
|
overridevirtual |
Synchronize waves within a workgroup.
If not all waves of the workgroup have been created yet, wait for entire group before proceeding. If some waves in the wokgroup have already terminated, this waits on only the surviving waves.
Implements gem5::GPUStaticInst.
Definition at line 4111 of file instructions.cc.
References gem5::Wavefront::barrierId(), gem5::ComputeUnit::cu_id, DPRINTF, gem5::Wavefront::hasBarrier(), gem5::ComputeUnit::incNumAtBarrier(), gem5::ComputeUnit::numAtBarrier(), gem5::ComputeUnit::numYetToReachBarrier(), gem5::Wavefront::simdId, gem5::Wavefront::wfDynId, and gem5::Wavefront::wfSlotId.
|
inlineoverridevirtual |
Implements gem5::GPUStaticInst.
Definition at line 4730 of file instructions.hh.
References numDstRegOperands(), and numSrcRegOperands().
|
inlineoverridevirtual |
Reimplemented from gem5::Gcn3ISA::GCN3GPUStaticInst.
Definition at line 4739 of file instructions.hh.
References fatal.
|
inlineoverridevirtual |
Implements gem5::GPUStaticInst.
Definition at line 4735 of file instructions.hh.
Referenced by getNumOperands().
|
inlineoverridevirtual |
Implements gem5::GPUStaticInst.
Definition at line 4736 of file instructions.hh.
Referenced by getNumOperands().