CLRX
1
An unofficial OpenCL extensions designed for Radeon GPUs
|
handles AMD OpenCL 2.0 binary format More...
#include <AsmFormats.h>
Public Member Functions | |
AsmAmdCL2Handler (Assembler &assembler) | |
constructor | |
~AsmAmdCL2Handler () | |
destructor | |
cxuint | addKernel (const char *kernelName) |
add/set kernel More... | |
cxuint | addSection (const char *sectionName, cxuint kernelId) |
add section More... | |
cxuint | getSectionId (const char *sectionName) const |
get section id if exists in current context, otherwise returns ASMSECT_NONE | |
void | setCurrentKernel (cxuint kernel) |
set current kernel | |
void | setCurrentSection (cxuint sectionId) |
set current section, this method can change current kernel if that required | |
SectionInfo | getSectionInfo (cxuint sectionId) const |
get current section flags and type | |
bool | parsePseudoOp (const CString &firstName, const char *stmtPlace, const char *linePtr) |
parse pseudo-op (return true if recognized pseudo-op) | |
bool | resolveSymbol (const AsmSymbol &symbol, uint64_t &value, cxuint §ionId) |
resolve symbol if needed (for example that comes from unresolvable sections) | |
bool | resolveRelocation (const AsmExpression *expr, uint64_t &value, cxuint §ionId) |
resolve relocation for specified expression | |
bool | prepareBinary () |
prepare binary for use | |
void | writeBinary (std::ostream &os) const |
write binary to output stream | |
void | writeBinary (Array< cxbyte > &array) const |
write binary to array | |
const AmdCL2Input * | getOutput () const |
get output structure pointer | |
![]() | |
bool | isSectionDiffsResolvable () const |
return true if format handler can resolve differences between sections | |
virtual void | handleLabel (const CString &label) |
handle labels | |
virtual bool | prepareSectionDiffsResolving () |
prepare before section diference resolving | |
![]() | |
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 | AsmAmdCL2PseudoOps |
Additional Inherited Members | |
![]() | |
AsmFormatHandler (Assembler &assembler) | |
constructor | |
bool | resolveLoHiRelocExpression (const AsmExpression *expr, RelocType &relType, cxuint &relSectionId, uint64_t &relValue) |
![]() | |
Assembler & | assembler |
assembler reference | |
bool | sectionDiffsResolvable |
handles AMD OpenCL 2.0 binary format
|
virtual |
add/set kernel
adds new kernel. throw AsmFormatException when addition failed. Method should handles any constraint that doesn't allow to add kernel except duplicate of name.
kernelName | kernel name |
Implements CLRX::AsmFormatHandler.
add section
adds new section . throw AsmFormatException when addition failed. Method should handles any constraint that doesn't allow to add section except duplicate of name.
sectionName | section name |
kernelId | kernel id (may ASMKERN_GLOBAL) |
Implements CLRX::AsmFormatHandler.