CLRX  1
An unofficial OpenCL extensions designed for Radeon GPUs
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
CLRX::AsmKcodeHandler Class Referenceabstract

format handler with Kcode (kernel-code) handling More...

#include <AsmFormats.h>

Inheritance diagram for CLRX::AsmKcodeHandler:
CLRX::AsmFormatHandler CLRX::NonCopyableAndNonMovable CLRX::AsmAmdCL2Handler CLRX::AsmGalliumHandler CLRX::AsmROCmHandler

Public Member Functions

void handleLabel (const CString &label)
 handle labels
 
virtual bool isCodeSection () const =0
 return true if current section is code section
 
virtual KernelBasegetKernelBase (AsmKernelId index)=0
 return KernelBase for kernel index
 
virtual const KernelBasegetKernelBase (AsmKernelId index) const =0
 return KernelBase for kernel index
 
virtual size_t getKernelsNum () const =0
 return kernel number
 
- Public Member Functions inherited from CLRX::AsmFormatHandler
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 &sectionId)
 resolve symbol if needed (for example that comes from unresolvable sections)
 
virtual bool resolveRelocation (const AsmExpression *expr, uint64_t &value, AsmSectionId &sectionId)
 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)
 
- Public Member Functions inherited from CLRX::NonCopyableAndNonMovable
 NonCopyableAndNonMovable ()
 constructor
 
 NonCopyableAndNonMovable (const NonCopyableAndNonMovable &)=delete
 copy-constructor
 
 NonCopyableAndNonMovable (NonCopyableAndNonMovable &&)=delete
 move-constructor
 
NonCopyableAndNonMovableoperator= (const NonCopyableAndNonMovable &)=delete
 copy-assignment
 
NonCopyableAndNonMovableoperator= (NonCopyableAndNonMovable &&)=delete
 move-asignment
 

Protected Member Functions

 AsmKcodeHandler (Assembler &assembler)
 
void restoreKcodeCurrentAllocRegs ()
 
void saveKcodeCurrentAllocRegs ()
 
void prepareKcodeState ()
 
- Protected Member Functions inherited from CLRX::AsmFormatHandler
 AsmFormatHandler (Assembler &assembler)
 constructor
 
bool resolveLoHiRelocExpression (const AsmExpression *expr, RelocType &relType, AsmSectionId &relSectionId, uint64_t &relValue)
 

Protected Attributes

std::vector< AsmKernelIdkcodeSelection
 
std::stack< std::vector< AsmKernelId > > kcodeSelStack
 
AsmKernelId currentKcodeKernel
 
AsmSectionId codeSection
 
- Protected Attributes inherited from CLRX::AsmFormatHandler
Assemblerassembler
 assembler reference
 
bool sectionDiffsResolvable
 

Friends

struct AsmKcodePseudoOps
 

Detailed Description

format handler with Kcode (kernel-code) handling


The documentation for this class was generated from the following file: