Go to the documentation of this file.
12 #ifndef LLVM_LIB_TARGET_AMDGPU_MCTARGETDESC_AMDGPUINSTPRINTER_H
13 #define LLVM_LIB_TARGET_AMDGPU_MCTARGETDESC_AMDGPUINSTPRINTER_H
38 void printU4ImmOperand(
const MCInst *
MI,
unsigned OpNo,
41 void printU16ImmOperand(
const MCInst *
MI,
unsigned OpNo,
46 void printU32ImmOperand(
const MCInst *
MI,
unsigned OpNo,
62 void printSMRDOffset8(
const MCInst *
MI,
unsigned OpNo,
64 void printSMEMOffset(
const MCInst *
MI,
unsigned OpNo,
66 void printSMEMOffsetMod(
const MCInst *
MI,
unsigned OpNo,
68 void printSMRDLiteralOffset(
const MCInst *
MI,
unsigned OpNo,
72 void printCPol(
const MCInst *
MI,
unsigned OpNo,
90 void printLWE(
const MCInst *
MI,
unsigned OpNo,
92 void printD16(
const MCInst *
MI,
unsigned OpNo,
94 void printExpCompr(
const MCInst *
MI,
unsigned OpNo,
96 void printExpVM(
const MCInst *
MI,
unsigned OpNo,
98 void printFORMAT(
const MCInst *
MI,
unsigned OpNo,
100 void printSymbolicFormat(
const MCInst *
MI,
122 printOperand(
MI, OpNum, STI,
O);
124 void printOperandAndFPInputMods(
const MCInst *
MI,
unsigned OpNo,
125 const MCSubtargetInfo &STI, raw_ostream &
O);
126 void printOperandAndIntInputMods(
const MCInst *
MI,
unsigned OpNo,
127 const MCSubtargetInfo &STI, raw_ostream &
O);
128 void printDPP8(
const MCInst *
MI,
unsigned OpNo,
const MCSubtargetInfo &STI,
130 void printDPPCtrl(
const MCInst *
MI,
unsigned OpNo,
const MCSubtargetInfo &STI,
132 void printRowMask(
const MCInst *
MI,
unsigned OpNo,
const MCSubtargetInfo &STI,
134 void printBankMask(
const MCInst *
MI,
unsigned OpNo,
135 const MCSubtargetInfo &STI, raw_ostream &
O);
136 void printBoundCtrl(
const MCInst *
MI,
unsigned OpNo,
137 const MCSubtargetInfo &STI, raw_ostream &
O);
138 void printFI(
const MCInst *
MI,
unsigned OpNo,
139 const MCSubtargetInfo &STI, raw_ostream &
O);
140 void printSDWASel(
const MCInst *
MI,
unsigned OpNo, raw_ostream &
O);
141 void printSDWADstSel(
const MCInst *
MI,
unsigned OpNo,
142 const MCSubtargetInfo &STI, raw_ostream &
O);
143 void printSDWASrc0Sel(
const MCInst *
MI,
unsigned OpNo,
144 const MCSubtargetInfo &STI, raw_ostream &
O);
145 void printSDWASrc1Sel(
const MCInst *
MI,
unsigned OpNo,
146 const MCSubtargetInfo &STI, raw_ostream &
O);
147 void printSDWADstUnused(
const MCInst *
MI,
unsigned OpNo,
148 const MCSubtargetInfo &STI, raw_ostream &
O);
149 void printPackedModifier(
const MCInst *
MI, StringRef
Name,
unsigned Mod,
151 void printOpSel(
const MCInst *
MI,
unsigned OpNo,
152 const MCSubtargetInfo &STI, raw_ostream &
O);
153 void printOpSelHi(
const MCInst *
MI,
unsigned OpNo,
154 const MCSubtargetInfo &STI, raw_ostream &
O);
155 void printNegLo(
const MCInst *
MI,
unsigned OpNo,
156 const MCSubtargetInfo &STI, raw_ostream &
O);
157 void printNegHi(
const MCInst *
MI,
unsigned OpNo,
158 const MCSubtargetInfo &STI, raw_ostream &
O);
159 void printInterpSlot(
const MCInst *
MI,
unsigned OpNo,
160 const MCSubtargetInfo &STI, raw_ostream &
O);
161 void printInterpAttr(
const MCInst *
MI,
unsigned OpNo,
162 const MCSubtargetInfo &STI, raw_ostream &
O);
163 void printInterpAttrChan(
const MCInst *
MI,
unsigned OpNo,
164 const MCSubtargetInfo &STI, raw_ostream &
O);
166 void printVGPRIndexMode(
const MCInst *
MI,
unsigned OpNo,
167 const MCSubtargetInfo &STI, raw_ostream &
O);
168 void printMemOperand(
const MCInst *
MI,
unsigned OpNo,
169 const MCSubtargetInfo &STI, raw_ostream &
O);
170 void printBLGP(
const MCInst *
MI,
unsigned OpNo,
const MCSubtargetInfo &STI,
172 void printCBSZ(
const MCInst *
MI,
unsigned OpNo,
const MCSubtargetInfo &STI,
174 void printABID(
const MCInst *
MI,
unsigned OpNo,
const MCSubtargetInfo &STI,
176 void printDefaultVccOperand(
unsigned OpNo,
const MCSubtargetInfo &STI,
179 void printExpSrcN(
const MCInst *
MI,
unsigned OpNo,
const MCSubtargetInfo &STI,
180 raw_ostream &
O,
unsigned N);
181 void printExpSrc0(
const MCInst *
MI,
unsigned OpNo,
182 const MCSubtargetInfo &STI, raw_ostream &
O);
183 void printExpSrc1(
const MCInst *
MI,
unsigned OpNo,
184 const MCSubtargetInfo &STI, raw_ostream &
O);
185 void printExpSrc2(
const MCInst *
MI,
unsigned OpNo,
186 const MCSubtargetInfo &STI, raw_ostream &
O);
187 void printExpSrc3(
const MCInst *
MI,
unsigned OpNo,
188 const MCSubtargetInfo &STI, raw_ostream &
O);
189 void printExpTgt(
const MCInst *
MI,
unsigned OpNo,
190 const MCSubtargetInfo &STI, raw_ostream &
O);
193 static void printIfSet(
const MCInst *
MI,
unsigned OpNo, raw_ostream &
O,
194 StringRef
Asm, StringRef Default =
"");
195 static void printIfSet(
const MCInst *
MI,
unsigned OpNo, raw_ostream &
O,
198 void printAbs(
const MCInst *
MI,
unsigned OpNo,
const MCSubtargetInfo &STI,
200 void printHigh(
const MCInst *
MI,
unsigned OpNo,
const MCSubtargetInfo &STI,
202 void printClamp(
const MCInst *
MI,
unsigned OpNo,
const MCSubtargetInfo &STI,
204 void printClampSI(
const MCInst *
MI,
unsigned OpNo,
const MCSubtargetInfo &STI,
206 void printOModSI(
const MCInst *
MI,
unsigned OpNo,
const MCSubtargetInfo &STI,
208 void printLiteral(
const MCInst *
MI,
unsigned OpNo,
const MCSubtargetInfo &STI,
210 void printLast(
const MCInst *
MI,
unsigned OpNo,
const MCSubtargetInfo &STI,
212 void printNeg(
const MCInst *
MI,
unsigned OpNo,
const MCSubtargetInfo &STI,
214 void printOMOD(
const MCInst *
MI,
unsigned OpNo,
const MCSubtargetInfo &STI,
216 void printRel(
const MCInst *
MI,
unsigned OpNo,
const MCSubtargetInfo &STI,
219 const MCSubtargetInfo &STI, raw_ostream &
O);
221 const MCSubtargetInfo &STI, raw_ostream &
O);
222 void printWrite(
const MCInst *
MI,
unsigned OpNo,
const MCSubtargetInfo &STI,
225 const MCSubtargetInfo &STI, raw_ostream &
O);
226 void printRSel(
const MCInst *
MI,
unsigned OpNo,
const MCSubtargetInfo &STI,
228 void printCT(
const MCInst *
MI,
unsigned OpNo,
const MCSubtargetInfo &STI,
230 void printKCache(
const MCInst *
MI,
unsigned OpNo,
const MCSubtargetInfo &STI,
232 void printSendMsg(
const MCInst *
MI,
unsigned OpNo,
const MCSubtargetInfo &STI,
234 void printSwizzle(
const MCInst *
MI,
unsigned OpNo,
const MCSubtargetInfo &STI,
237 const MCSubtargetInfo &STI, raw_ostream &
O);
238 void printDepCtr(
const MCInst *
MI,
unsigned OpNo,
const MCSubtargetInfo &STI,
241 const MCSubtargetInfo &STI, raw_ostream &
O);
242 void printHwreg(
const MCInst *
MI,
unsigned OpNo,
const MCSubtargetInfo &STI,
244 void printEndpgm(
const MCInst *
MI,
unsigned OpNo,
const MCSubtargetInfo &STI,
void printClamp(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
This is an optimization pass for GlobalISel generic memory operations.
void printInstruction(const MCInst *MI, uint64_t Address, const MCSubtargetInfo &STI, raw_ostream &O)
void printUpdateExecMask(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
This class is intended to be used as a base class for asm properties and features specific to the tar...
void printWaitFlag(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
void printAbs(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
void printOModSI(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
void printLiteral(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
Instances of this class represent a single low-level machine instruction.
void printHigh(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
const MCRegisterInfo & MRI
void printSendMsg(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
void printKCache(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
void printUpdatePred(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
std::pair< const char *, uint64_t > getMnemonic(const MCInst *MI) override
Returns a pair containing the mnemonic for MI and the number of bits left for further processing by p...
void printRegName(raw_ostream &OS, unsigned RegNo) const override
Print the assembler register name.
void printNeg(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
This class implements an extremely fast bulk output stream that can only output to a stream.
void printClampSI(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
void printLast(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
void printSwizzle(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
static void printIfSet(const MCInst *MI, unsigned OpNo, raw_ostream &O, StringRef Asm, StringRef Default="")
This is an instance of a target assembly language printer that converts an MCInst to valid target ass...
void printEndpgm(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
void printDepCtr(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
void printRel(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
AMDGPUInstPrinter(const MCAsmInfo &MAI, const MCInstrInfo &MII, const MCRegisterInfo &MRI)
StringRef - Represent a constant reference to a string, i.e.
static const char * getRegisterName(unsigned RegNo)
MCRegisterInfo base class - We assume that the target defines a static array of MCRegisterDesc object...
void printBankSwizzle(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
Interface to description of machine instruction set.
void printRSel(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
void printHwreg(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
void printInst(const MCInst *MI, uint64_t Address, StringRef Annot, const MCSubtargetInfo &STI, raw_ostream &O) override
Print the specified MCInst to the specified raw_ostream.
void printDelayFlag(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
void printCT(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
void printOMOD(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
Generic base class for all target subtargets.
void printWrite(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
static void printRegOperand(unsigned RegNo, raw_ostream &O, const MCRegisterInfo &MRI)