CLRX
1
An unofficial OpenCL extensions designed for Radeon GPUs
|
GCN arch assembler. More...
#include <Assembler.h>
Classes | |
struct | Regs |
register pool numbers More... | |
Public Member Functions | |
GCNAssembler (Assembler &assembler) | |
constructor | |
~GCNAssembler () | |
destructor | |
ISAUsageHandler * | createUsageHandler () const |
create usage handler | |
void | assemble (const CString &mnemonic, const char *mnemPlace, const char *linePtr, const char *lineEnd, std::vector< cxbyte > &output, ISAUsageHandler *usageHandler, ISAWaitHandler *waitHandler) |
assemble single line | |
bool | resolveCode (const AsmSourcePos &sourcePos, AsmSectionId targetSectionId, cxbyte *sectionData, size_t offset, AsmExprTargetType targetType, AsmSectionId sectionId, uint64_t value) |
resolve code with location, target and value | |
bool | checkMnemonic (const CString &mnemonic) const |
check if name is mnemonic | |
void | setAllocatedRegisters (const cxuint *regs, Flags regFlags) |
set allocated registers (if regs is null then reset them) | |
const cxuint * | getAllocatedRegisters (size_t ®TypesNum, Flags ®Flags) const |
get allocated register numbers after assemblying | |
void | getMaxRegistersNum (size_t ®TypesNum, cxuint *maxRegs) const |
get max registers number | |
void | getRegisterRanges (size_t ®TypesNum, cxuint *regRanges) const |
get registers ranges | |
void | fillAlignment (size_t size, cxbyte *output) |
fill alignment when value is not given | |
bool | parseRegisterRange (const char *&linePtr, cxuint ®Start, cxuint ®End, const AsmRegVar *®Var) |
parse register range | |
bool | relocationIsFit (cxuint bits, AsmExprTargetType tgtType) |
return true if expresion of target fit to value with specified bits | |
bool | parseRegisterType (const char *&linePtr, const char *end, cxuint &type) |
parse register type for '.reg' pseudo-op | |
size_t | getInstructionSize (size_t codeSize, const cxbyte *code) const |
get size of instruction | |
const AsmWaitConfig & | getWaitConfig () const |
![]() | |
virtual | ~ISAAssembler () |
destructor | |
![]() | |
NonCopyableAndNonMovable () | |
constructor | |
NonCopyableAndNonMovable (const NonCopyableAndNonMovable &)=delete | |
copy-constructor | |
NonCopyableAndNonMovable (NonCopyableAndNonMovable &&)=delete | |
move-constructor | |
NonCopyableAndNonMovable & | operator= (const NonCopyableAndNonMovable &)=delete |
copy-assignment | |
NonCopyableAndNonMovable & | operator= (NonCopyableAndNonMovable &&)=delete |
move-asignment | |
Friends | |
struct | GCNAsmUtils |
Additional Inherited Members | |
![]() | |
void | printWarning (const char *linePtr, const char *message) |
print warning for position pointed by line pointer | |
void | printError (const char *linePtr, const char *message) |
print error for position pointed by line pointer | |
void | printWarning (const AsmSourcePos &sourcePos, const char *message) |
print warning for source position | |
void | printError (const AsmSourcePos &sourcePos, const char *message) |
print error for source position | |
void | printWarningForRange (cxuint bits, uint64_t value, const AsmSourcePos &pos, cxbyte signess=WS_BOTH) |
print warning about integer out of range | |
void | addCodeFlowEntry (AsmSectionId sectionId, const AsmCodeFlowEntry &entry) |
ISAAssembler (Assembler &assembler) | |
constructor | |
![]() | |
Assembler & | assembler |
assembler | |
GCN arch assembler.