CLRX
1
An unofficial OpenCL extensions designed for Radeon GPUs
|
ISA assembler class. More...
#include <Assembler.h>
Public Member Functions | |
virtual | ~ISAAssembler () |
destructor | |
virtual ISAUsageHandler * | createUsageHandler (std::vector< cxbyte > &content) const =0 |
create usage handler | |
virtual void | assemble (const CString &mnemonic, const char *mnemPlace, const char *linePtr, const char *lineEnd, std::vector< cxbyte > &output, ISAUsageHandler *usageHandler)=0 |
assemble single line | |
virtual bool | resolveCode (const AsmSourcePos &sourcePos, cxuint targetSectionId, cxbyte *sectionData, size_t offset, AsmExprTargetType targetType, cxuint sectionId, uint64_t value)=0 |
resolve code with location, target and value | |
virtual bool | checkMnemonic (const CString &mnemonic) const =0 |
check if name is mnemonic | |
virtual void | setAllocatedRegisters (const cxuint *regs=nullptr, Flags regFlags=0)=0 |
set allocated registers (if regs is null then reset them) | |
virtual const cxuint * | getAllocatedRegisters (size_t ®TypesNum, Flags ®Flags) const =0 |
get allocated register numbers after assemblying | |
virtual void | getMaxRegistersNum (size_t ®TypesNum, cxuint *maxRegs) const =0 |
get max registers number | |
virtual void | getRegisterRanges (size_t ®TypesNum, cxuint *regRanges) const =0 |
get registers ranges | |
virtual void | fillAlignment (size_t size, cxbyte *output)=0 |
fill alignment when value is not given | |
virtual bool | parseRegisterRange (const char *&linePtr, cxuint ®Start, cxuint ®End, const AsmRegVar *®Var)=0 |
parse register range | |
virtual bool | relocationIsFit (cxuint bits, AsmExprTargetType tgtType)=0 |
return true if expresion of target fit to value with specified bits | |
virtual bool | parseRegisterType (const char *&linePtr, const char *end, cxuint &type)=0 |
parse register type for '.reg' pseudo-op | |
virtual size_t | getInstructionSize (size_t codeSize, const cxbyte *code) const =0 |
get size of instruction | |
![]() | |
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 | |
Protected Member Functions | |
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 (cxuint sectionId, const AsmCodeFlowEntry &entry) |
ISAAssembler (Assembler &assembler) | |
constructor | |
Protected Attributes | |
Assembler & | assembler |
assembler | |
ISA assembler class.