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

ISA (register and regvar) Usage handler. More...

#include <Assembler.h>

Inheritance diagram for CLRX::ISAUsageHandler:
CLRX::GCNUsageHandler

Classes

struct  ReadPos
 stgructure that hold read position to store later More...
 

Public Member Functions

virtual ~ISAUsageHandler ()
 destructor
 
virtual ISAUsageHandlercopy () const =0
 copy this usage handler
 
void pushUsage (const AsmRegVarUsage &rvu)
 push regvar or register usage
 
void rewind ()
 rewind to start for reading
 
void flush ()
 flush last pending register usages
 
bool hasNext () const
 has next regvar usage
 
AsmRegVarUsage nextUsage ()
 get next usage
 
ReadPos getReadPos () const
 get reading position
 
void setReadPos (const ReadPos rpos)
 set reading position
 
void pushUseRegUsage (const AsmRegVarUsage &rvu)
 push regvar or register from usereg pseudo-op
 
virtual cxbyte getRwFlags (AsmRegField regField, uint16_t rstart, uint16_t rend) const =0
 get RW flags (used by assembler)
 
virtual std::pair< uint16_t, uint16_t > getRegPair (AsmRegField regField, cxbyte rwFlags) const =0
 get reg pair (used by assembler)
 
virtual void getUsageDependencies (cxuint rvusNum, const AsmRegVarUsage *rvus, cxbyte *linearDeps, cxbyte *equalToDeps) const =0
 get usage dependencies around single instruction
 

Protected Member Functions

void skipBytesInInstrStruct ()
 
void putSpace (size_t offset)
 put space to offset
 
 ISAUsageHandler (const std::vector< cxbyte > &content)
 constructor
 

Protected Attributes

std::vector< cxbyte > instrStruct
 structure of register usage
 
std::vector< AsmRegUsageIntregUsages
 register usage
 
std::vector< AsmRegUsage2IntregUsages2
 register usage (by .usereg)
 
std::vector< AsmRegVarUsageIntregVarUsages
 regvar usage
 
const std::vector< cxbyte > & content
 code content
 
size_t lastOffset
 last offset
 
size_t readOffset
 read offset
 
size_t instrStructPos
 position in instr struct
 
size_t regUsagesPos
 position in reg usage
 
size_t regUsages2Pos
 position in reg usage 2
 
size_t regVarUsagesPos
 position in regvar usage
 
uint16_t pushedArgs
 pushed args
 
cxbyte argPos
 argument position
 
cxbyte argFlags
 ???
 
cxbyte defaultInstrSize
 default instruction size
 
bool isNext
 is next
 
bool useRegMode
 true if in usereg mode
 

Detailed Description

ISA (register and regvar) Usage handler.


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