12#ifndef LLVM_LIB_TARGET_AMDGPU_MCTARGETDESC_AMDGPUINSTPRINTER_H
13#define LLVM_LIB_TARGET_AMDGPU_MCTARGETDESC_AMDGPUINSTPRINTER_H
27 std::pair<const char *, uint64_t>
42 void printU16ImmOperand(
const MCInst *
MI,
unsigned OpNo,
45 void printU32ImmOperand(
const MCInst *
MI,
unsigned OpNo,
47 void printFP64ImmOperand(
const MCInst *
MI,
unsigned OpNo,
56 void printSMRDOffset8(
const MCInst *
MI,
unsigned OpNo,
58 void printSMEMOffset(
const MCInst *
MI,
unsigned OpNo,
60 void printSMRDLiteralOffset(
const MCInst *
MI,
unsigned OpNo,
62 void printCPol(
const MCInst *
MI,
unsigned OpNo,
70 void printFORMAT(
const MCInst *
MI,
unsigned OpNo,
72 void printSymbolicFormat(
const MCInst *
MI,
80 void printAVLdSt32Align2RegOp(
const MCInst *
MI,
unsigned OpNo,
100 void printRegularOperand(
const MCInst *
MI,
unsigned OpNo,
104 printOperand(
MI, OpNum, STI, O);
106 void printOperandAndFPInputMods(
const MCInst *
MI,
unsigned OpNo,
108 void printOperandAndIntInputMods(
const MCInst *
MI,
unsigned OpNo,
114 void printDppBoundCtrl(
const MCInst *
MI,
unsigned OpNo,
119 void printSDWADstSel(
const MCInst *
MI,
unsigned OpNo,
121 void printSDWASrc0Sel(
const MCInst *
MI,
unsigned OpNo,
123 void printSDWASrc1Sel(
const MCInst *
MI,
unsigned OpNo,
125 void printSDWADstUnused(
const MCInst *
MI,
unsigned OpNo,
129 void printOpSel(
const MCInst *
MI,
unsigned OpNo,
131 void printOpSelHi(
const MCInst *
MI,
unsigned OpNo,
133 void printNegLo(
const MCInst *
MI,
unsigned OpNo,
135 void printNegHi(
const MCInst *
MI,
unsigned OpNo,
137 void printIndexKey8bit(
const MCInst *
MI,
unsigned OpNo,
139 void printIndexKey16bit(
const MCInst *
MI,
unsigned OpNo,
141 void printIndexKey32bit(
const MCInst *
MI,
unsigned OpNo,
143 void printMatrixFMT(
const MCInst *
MI,
unsigned OpNo,
145 void printMatrixAFMT(
const MCInst *
MI,
unsigned OpNo,
147 void printMatrixBFMT(
const MCInst *
MI,
unsigned OpNo,
149 void printMatrixScale(
const MCInst *
MI,
unsigned OpNo,
151 void printMatrixAScale(
const MCInst *
MI,
unsigned OpNo,
153 void printMatrixBScale(
const MCInst *
MI,
unsigned OpNo,
155 void printMatrixScaleFmt(
const MCInst *
MI,
unsigned OpNo,
158 void printMatrixAScaleFmt(
const MCInst *
MI,
unsigned OpNo,
160 void printMatrixBScaleFmt(
const MCInst *
MI,
unsigned OpNo,
162 void printInterpSlot(
const MCInst *
MI,
unsigned OpNo,
164 void printInterpAttr(
const MCInst *
MI,
unsigned OpNo,
166 void printInterpAttrChan(
const MCInst *
MI,
unsigned OpNo,
169 void printGPRIdxMode(
const MCInst *
MI,
unsigned OpNo,
176 void printDefaultVccOperand(
bool FirstOperand,
const MCSubtargetInfo &STI,
181 void printExpSrc0(
const MCInst *
MI,
unsigned OpNo,
183 void printExpSrc1(
const MCInst *
MI,
unsigned OpNo,
185 void printExpSrc2(
const MCInst *
MI,
unsigned OpNo,
187 void printExpSrc3(
const MCInst *
MI,
unsigned OpNo,
189 void printExpTgt(
const MCInst *
MI,
unsigned OpNo,
191 void printNamedInt(
const MCInst *
MI,
unsigned OpNo,
193 StringRef Prefix,
bool PrintInHex,
bool AlwaysPrint);
195 void printScaleSel(
const MCInst *
MI,
unsigned OpNo,
static void printMemOperand(raw_ostream &OS, const MachineMemOperand &MMO, const MachineFunction *MF, const Module *M, const MachineFrameInfo *MFI, const TargetInstrInfo *TII, LLVMContext &Ctx)
void printSwizzle(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 printEndpgm(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
static const char * getRegisterName(MCRegister Reg)
AMDGPUInstPrinter(const MCAsmInfo &MAI, const MCInstrInfo &MII, const MCRegisterInfo &MRI)
std::pair< const char *, uint64_t > getMnemonic(const MCInst &MI) const override
Returns a pair containing the mnemonic for MI and the number of bits left for further processing by p...
static void printIfSet(const MCInst *MI, unsigned OpNo, raw_ostream &O, StringRef Asm, StringRef Default="")
void printBankSwizzle(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 printLiteral(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
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 printKCache(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
void printSendMsg(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
void printUpdateExecMask(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
void printWrite(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
static void printRegOperand(MCRegister Reg, raw_ostream &O, const MCRegisterInfo &MRI)
void printRegName(raw_ostream &OS, MCRegister Reg) override
Print the assembler register name.
void printNeg(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 printClamp(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
void printInstruction(const MCInst *MI, uint64_t Address, const MCSubtargetInfo &STI, raw_ostream &O)
void printUpdatePred(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
void printSWaitCnt(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 printRel(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 printOModSI(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
void printSDelayALU(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
void printOMOD(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...
const MCRegisterInfo & MRI
MCInstPrinter(const MCAsmInfo &mai, const MCInstrInfo &mii, const MCRegisterInfo &mri)
Instances of this class represent a single low-level machine instruction.
Describe properties that are true of each instruction in the target description file.
Interface to description of machine instruction set.
MCRegisterInfo base class - We assume that the target defines a static array of MCRegisterDesc object...
Wrapper class representing physical registers. Should be passed by value.
Generic base class for all target subtargets.
StringRef - Represent a constant reference to a string, i.e.
This class implements an extremely fast bulk output stream that can only output to a stream.
This is an optimization pass for GlobalISel generic memory operations.
@ Mod
The access may modify the value stored in memory.
@ Default
The result values are uniform if and only if all operands are uniform.