CLRX  1
An unofficial OpenCL extensions designed for Radeon GPUs
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
Classes | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
CLRX::ISADisassembler Class Referenceabstract

main class for More...

#include <Disassembler.h>

Inheritance diagram for CLRX::ISADisassembler:
CLRX::NonCopyableAndNonMovable CLRX::GCNDisassembler

Classes

struct  Relocation
 internal relocation structure More...
 

Public Member Functions

void setInput (size_t inputSize, const cxbyte *input)
 set input code
 
virtual void beforeDisassemble ()=0
 makes some things before disassemblying
 
virtual void disassemble ()=0
 disassembles input code
 
void addNamedLabel (size_t pos, const CString &name)
 add named label to list (must be called before disassembly)
 
void addNamedLabel (size_t pos, CString &&name)
 add named label to list (must be called before disassembly)
 
size_t addRelSymbol (const CString &symName)
 add symbol to relocations
 
void addRelocation (size_t offset, RelocType type, size_t symIndex, int64_t addend)
 add relocation
 
void clearRelocations ()
 clear all relocations
 
- 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 Types

typedef std::vector< size_t >
::const_iterator 
LabelIter
 label iterator
 
typedef std::vector< std::pair
< size_t, Relocation >
>::const_iterator 
RelocIter
 relocation iterator
 
typedef std::vector< std::pair
< size_t, CString >
>::const_iterator 
NamedLabelIter
 named label iterator
 

Protected Member Functions

 ISADisassembler (Disassembler &disassembler, cxuint outBufSize=500)
 constructor
 
void writeLabelsToPosition (size_t pos, LabelIter &labelIter, NamedLabelIter &namedLabelIter)
 write all labels before specified position
 
void writeLabelsToEnd (size_t start, LabelIter labelIter, NamedLabelIter namedLabelIter)
 write all labels to end
 
void writeLocation (size_t pos)
 write location in the code
 
bool writeRelocation (size_t pos, RelocIter &relocIter)
 write relocation to current place in instruction
 

Protected Attributes

Disassemblerdisassembler
 disassembler instance
 
size_t inputSize
 size of input
 
const cxbyte * input
 input code
 
std::vector< size_t > labels
 list of local labels
 
std::vector< std::pair< size_t,
CString > > 
namedLabels
 named labels
 
std::vector< CStringrelSymbols
 symbols used by relocations
 
std::vector< std::pair< size_t,
Relocation > > 
relocations
 relocations
 
FastOutputBuffer output
 output buffer
 

Detailed Description

main class for


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