CLRX
1
An unofficial OpenCL extensions designed for Radeon GPUs
|
an assembler for Radeon GPU's More...
#include <CLRX/Config.h>
#include <cstdint>
#include <vector>
#include <utility>
#include <list>
#include <unordered_map>
#include <CLRX/utils/Utilities.h>
#include <CLRX/amdasm/Commons.h>
#include <CLRX/amdasm/AsmSource.h>
#include <CLRX/amdasm/AsmFormats.h>
Go to the source code of this file.
Classes | |
struct | CLRX::AsmExprSymbolOccurrence |
assembler symbol occurrence in expression More... | |
struct | CLRX::AsmSymbol |
assembler symbol structure More... | |
struct | CLRX::AsmExprTarget |
target for assembler expression More... | |
struct | CLRX::AsmRelocation |
assembler relocation More... | |
class | CLRX::AsmExpression |
assembler expression class More... | |
union | CLRX::AsmExprArg |
assembler expression argument More... | |
struct | CLRX::AsmRegVar |
Regvar info structure. More... | |
struct | CLRX::AsmSingleVReg |
single regvar id More... | |
struct | CLRX::AsmRegVarUsage |
regvar usage in code More... | |
struct | CLRX::AsmRegVarUsageInt |
regvar usage (internal) More... | |
struct | CLRX::AsmRegUsageInt |
internal structure for regusage More... | |
struct | CLRX::AsmRegUsage2Int |
internal structure for regusage More... | |
struct | CLRX::AsmCodeFlowEntry |
code flow entry More... | |
struct | CLRX::AsmScope |
assembler scope for symbol, macros, regvars More... | |
struct | CLRX::AsmSection |
assembler section More... | |
struct | CLRX::AsmKernel |
kernel entry structure More... | |
struct | std::hash< CLRX::AsmSingleVReg > |
std::hash specialization for CLRX CString More... | |
Namespaces | |
CLRX | |
main namespace | |
Typedefs | |
typedef cxbyte | CLRX::AsmExprTargetType |
expression target type (one byte) | |
typedef std::unordered_map< CString, AsmSymbol > | CLRX::AsmSymbolMap |
assembler symbol map | |
typedef AsmSymbolMap::value_type | CLRX::AsmSymbolEntry |
assembler symbol entry | |
typedef cxbyte | CLRX::AsmRegField |
type of register field | |
typedef std::unordered_map< CString, AsmRegVar > | CLRX::AsmRegVarMap |
regvar map | |
typedef AsmRegVarMap::value_type | CLRX::AsmRegVarEntry |
regvar entry | |
typedef std::unordered_map< CString, RefPtr< const AsmMacro > > | CLRX::AsmMacroMap |
assembler macro map | |
typedef std::unordered_map< CString, AsmScope * > | CLRX::AsmScopeMap |
type definition of scope's map | |
Enumerations | |
enum | : cxbyte { WS_UNSIGNED = 0, WS_BOTH = 1 } |
enum | : AsmExprTargetType { CLRX::ASMXTGT_SYMBOL = 0, CLRX::ASMXTGT_DATA8, CLRX::ASMXTGT_DATA16, CLRX::ASMXTGT_DATA32, CLRX::ASMXTGT_DATA64, CLRX::ASMXTGT_CODEFLOW, GCNTGT_LITIMM = 16, GCNTGT_SOPKSIMM16, GCNTGT_SOPJMP, GCNTGT_SMRDOFFSET, GCNTGT_DSOFFSET16, GCNTGT_DSOFFSET8_0, GCNTGT_DSOFFSET8_1, GCNTGT_MXBUFOFFSET, GCNTGT_SMEMOFFSET, GCNTGT_SOPCIMM8, GCNTGT_SMEMIMM, GCNTGT_SMEMOFFSETVEGA, GCNTGT_SMEMOFFSET2, GCNTGT_INSTOFFSET, GCNTGT_INSTOFFSET_S } |
enum | CLRX::AsmExprOp : cxbyte { CLRX::AsmExprOp::ARG_VALUE = 0, CLRX::AsmExprOp::ARG_SYMBOL = 1, CLRX::AsmExprOp::NEGATE = 2, CLRX::AsmExprOp::BIT_NOT, CLRX::AsmExprOp::LOGICAL_NOT, CLRX::AsmExprOp::PLUS, CLRX::AsmExprOp::ADDITION, CLRX::AsmExprOp::SUBTRACT, CLRX::AsmExprOp::MULTIPLY, CLRX::AsmExprOp::DIVISION, CLRX::AsmExprOp::SIGNED_DIVISION, CLRX::AsmExprOp::MODULO, CLRX::AsmExprOp::SIGNED_MODULO, CLRX::AsmExprOp::BIT_AND, BIT_OR, CLRX::AsmExprOp::BIT_XOR, CLRX::AsmExprOp::BIT_ORNOT, CLRX::AsmExprOp::SHIFT_LEFT, CLRX::AsmExprOp::SHIFT_RIGHT, CLRX::AsmExprOp::SIGNED_SHIFT_RIGHT, CLRX::AsmExprOp::LOGICAL_AND, CLRX::AsmExprOp::LOGICAL_OR, CLRX::AsmExprOp::EQUAL, CLRX::AsmExprOp::NOT_EQUAL, CLRX::AsmExprOp::LESS, CLRX::AsmExprOp::LESS_EQ, CLRX::AsmExprOp::GREATER, CLRX::AsmExprOp::GREATER_EQ, CLRX::AsmExprOp::BELOW, CLRX::AsmExprOp::BELOW_EQ, CLRX::AsmExprOp::ABOVE, CLRX::AsmExprOp::ABOVE_EQ, CLRX::AsmExprOp::CHOICE, CLRX::AsmExprOp::CHOICE_START, FIRST_ARG = ARG_VALUE, LAST_ARG = ARG_SYMBOL, CLRX::AsmExprOp::FIRST_UNARY = NEGATE, CLRX::AsmExprOp::LAST_UNARY = PLUS, CLRX::AsmExprOp::FIRST_BINARY = ADDITION, CLRX::AsmExprOp::LAST_BINARY = ABOVE_EQ, CLRX::AsmExprOp::NONE = 0xff } |
assembler expression operator More... | |
enum | : AsmRegField { ASMFIELD_NONE = 0, GCNFIELD_SSRC0, GCNFIELD_SSRC1, GCNFIELD_SDST, GCNFIELD_SMRD_SBASE, GCNFIELD_SMRD_SDST, GCNFIELD_SMRD_SDSTH, GCNFIELD_SMRD_SOFFSET, GCNFIELD_VOP_SRC0, GCNFIELD_VOP_VSRC1, GCNFIELD_VOP_SSRC1, GCNFIELD_VOP_VDST, GCNFIELD_VOP_SDST, GCNFIELD_VOP3_SRC0, GCNFIELD_VOP3_SRC1, GCNFIELD_VOP3_SRC2, GCNFIELD_VOP3_VDST, GCNFIELD_VOP3_SDST0, GCNFIELD_VOP3_SSRC, GCNFIELD_VOP3_SDST1, GCNFIELD_VINTRP_VSRC0, GCNFIELD_VINTRP_VDST, GCNFIELD_DS_ADDR, GCNFIELD_DS_DATA0, GCNFIELD_DS_DATA1, GCNFIELD_DS_VDST, GCNFIELD_M_VADDR, GCNFIELD_M_VDATA, GCNFIELD_M_VDATAH, GCNFIELD_M_VDATALAST, GCNFIELD_M_SRSRC, GCNFIELD_MIMG_SSAMP, GCNFIELD_M_SOFFSET, GCNFIELD_EXP_VSRC0, GCNFIELD_EXP_VSRC1, GCNFIELD_EXP_VSRC2, GCNFIELD_EXP_VSRC3, GCNFIELD_FLAT_ADDR, GCNFIELD_FLAT_DATA, GCNFIELD_FLAT_VDST, GCNFIELD_FLAT_VDSTLAST, GCNFIELD_DPPSDWA_SRC0, GCNFIELD_DPPSDWA_SSRC0, GCNFIELD_FLAT_SADDR } |
enum | : cxbyte { CLRX::ASMRVU_READ = 1, CLRX::ASMRVU_WRITE = 2, CLRX::ASMRVU_ACCESS_MASK = 3, CLRX::ASMRVU_REGTYPE_MASK = 4, CLRX::ASMRVU_REGSIZE_SHIFT = 3, CLRX::ASMRVU_REGSIZE_MASK = 0x78 } |
enum | CLRX::AsmCodeFlowType { CLRX::JUMP = 0, CLRX::CJUMP, CLRX::CALL, CLRX::RETURN, CLRX::START, CLRX::END } |
code flow type More... | |
an assembler for Radeon GPU's