CLRX
1
An unofficial OpenCL extensions designed for Radeon GPUs
|
format handler with Kcode (kernel-code) handling More...
#include <AsmFormats.h>
Public Member Functions | |
void | handleLabel (const CString &label) |
handle labels | |
virtual bool | isCodeSection () const =0 |
return true if current section is code section | |
virtual KernelBase & | getKernelBase (AsmKernelId index)=0 |
return KernelBase for kernel index | |
virtual const KernelBase & | getKernelBase (AsmKernelId index) const =0 |
return KernelBase for kernel index | |
virtual size_t | getKernelsNum () const =0 |
return kernel number | |
![]() | |
bool | isSectionDiffsResolvable () const |
return true if format handler can resolve differences between sections | |
virtual AsmKernelId | addKernel (const char *kernelName)=0 |
add/set kernel More... | |
virtual AsmSectionId | addSection (const char *sectionName, AsmKernelId kernelId)=0 |
add section More... | |
virtual AsmSectionId | getSectionId (const char *sectionName) const =0 |
get section id if exists in current context, otherwise returns ASMSECT_NONE | |
virtual void | setCurrentKernel (AsmKernelId kernel)=0 |
set current kernel | |
virtual void | setCurrentSection (AsmSectionId sectionId)=0 |
set current section, this method can change current kernel if that required | |
virtual SectionInfo | getSectionInfo (AsmSectionId sectionId) const =0 |
get current section flags and type | |
virtual bool | parsePseudoOp (const CString &firstName, const char *stmtPlace, const char *linePtr)=0 |
parse pseudo-op (return true if recognized pseudo-op) | |
virtual bool | resolveSymbol (const AsmSymbol &symbol, uint64_t &value, AsmSectionId §ionId) |
resolve symbol if needed (for example that comes from unresolvable sections) | |
virtual bool | resolveRelocation (const AsmExpression *expr, uint64_t &value, AsmSectionId §ionId) |
resolve relocation for specified expression | |
virtual bool | prepareBinary ()=0 |
prepare binary for use | |
virtual void | writeBinary (std::ostream &os) const =0 |
write binary to output stream | |
virtual void | writeBinary (Array< cxbyte > &array) const =0 |
write binary to array | |
virtual bool | prepareSectionDiffsResolving () |
prepare before section diference resolving | |
virtual void | setCodeFlags (Flags codeFlags) |
![]() | |
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 | |
AsmKcodeHandler (Assembler &assembler) | |
void | restoreKcodeCurrentAllocRegs () |
void | saveKcodeCurrentAllocRegs () |
void | prepareKcodeState () |
![]() | |
AsmFormatHandler (Assembler &assembler) | |
constructor | |
bool | resolveLoHiRelocExpression (const AsmExpression *expr, RelocType &relType, AsmSectionId &relSectionId, uint64_t &relValue) |
Protected Attributes | |
std::vector< AsmKernelId > | kcodeSelection |
std::stack< std::vector< AsmKernelId > > | kcodeSelStack |
AsmKernelId | currentKcodeKernel |
AsmSectionId | codeSection |
![]() | |
Assembler & | assembler |
assembler reference | |
bool | sectionDiffsResolvable |
Friends | |
struct | AsmKcodePseudoOps |
format handler with Kcode (kernel-code) handling