LLVM  8.0.1
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
llvm::AMDGPUInstPrinter Class Reference

#include "Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.h"

Inheritance diagram for llvm::AMDGPUInstPrinter:
Inheritance graph
[legend]
Collaboration diagram for llvm::AMDGPUInstPrinter:
Collaboration graph
[legend]

Public Member Functions

 AMDGPUInstPrinter (const MCAsmInfo &MAI, const MCInstrInfo &MII, const MCRegisterInfo &MRI)
 
void printInstruction (const MCInst *MI, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printInst (const MCInst *MI, raw_ostream &O, StringRef Annot, const MCSubtargetInfo &STI) override
 Print the specified MCInst to the specified raw_ostream. More...
 
- Public Member Functions inherited from llvm::MCInstPrinter
 MCInstPrinter (const MCAsmInfo &mai, const MCInstrInfo &mii, const MCRegisterInfo &mri)
 
virtual ~MCInstPrinter ()
 
void setCommentStream (raw_ostream &OS)
 Specify a stream to emit comments to. More...
 
StringRef getOpcodeName (unsigned Opcode) const
 Return the name of the specified opcode enum (e.g. More...
 
virtual void printRegName (raw_ostream &OS, unsigned RegNo) const
 Print the assembler register name. More...
 
bool getUseMarkup () const
 
void setUseMarkup (bool Value)
 
StringRef markup (StringRef s) const
 Utility functions to make adding mark ups simpler. More...
 
StringRef markup (StringRef a, StringRef b) const
 
bool getPrintImmHex () const
 
void setPrintImmHex (bool Value)
 
HexStyle::Style getPrintHexStyle () const
 
void setPrintHexStyle (HexStyle::Style Value)
 
format_object< int64_t > formatImm (int64_t Value) const
 Utility function to print immediates in decimal or hex. More...
 
format_object< int64_t > formatDec (int64_t Value) const
 Utility functions to print decimal/hexadecimal values. More...
 
format_object< int64_t > formatHex (int64_t Value) const
 
format_object< uint64_t > formatHex (uint64_t Value) const
 

Static Public Member Functions

static const chargetRegisterName (unsigned RegNo)
 
static void printRegOperand (unsigned RegNo, raw_ostream &O, const MCRegisterInfo &MRI)
 
static void printIfSet (const MCInst *MI, unsigned OpNo, raw_ostream &O, StringRef Asm, StringRef Default="")
 
static void printIfSet (const MCInst *MI, unsigned OpNo, raw_ostream &O, char Asm)
 

Protected Member Functions

void printAbs (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printHigh (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printClamp (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printClampSI (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)
 
void printLast (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printNeg (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printOMOD (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 printUpdateExecMask (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printUpdatePred (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printWrite (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printBankSwizzle (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 printCT (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 printSwizzle (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printWaitFlag (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printHwreg (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
 
- Protected Member Functions inherited from llvm::MCInstPrinter
void printAnnotation (raw_ostream &OS, StringRef Annot)
 Utility function for printing annotations. More...
 

Additional Inherited Members

- Protected Attributes inherited from llvm::MCInstPrinter
raw_ostreamCommentStream = nullptr
 A stream that comments can be emitted to if desired. More...
 
const MCAsmInfoMAI
 
const MCInstrInfoMII
 
const MCRegisterInfoMRI
 
bool UseMarkup = false
 True if we are printing marked up assembly. More...
 
bool PrintImmHex = false
 True if we are printing immediates as hex. More...
 
HexStyle::Style PrintHexStyle = HexStyle::C
 Which style to use for printing hexadecimal values. More...
 

Detailed Description

Definition at line 20 of file AMDGPUInstPrinter.h.

Constructor & Destructor Documentation

◆ AMDGPUInstPrinter()

llvm::AMDGPUInstPrinter::AMDGPUInstPrinter ( const MCAsmInfo MAI,
const MCInstrInfo MII,
const MCRegisterInfo MRI 
)
inline

Member Function Documentation

◆ getRegisterName()

static const char* llvm::AMDGPUInstPrinter::getRegisterName ( unsigned  RegNo)
static

◆ printAbs()

void llvm::AMDGPUInstPrinter::printAbs ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printBankSwizzle()

void llvm::AMDGPUInstPrinter::printBankSwizzle ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printClamp()

void llvm::AMDGPUInstPrinter::printClamp ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printClampSI()

void AMDGPUInstPrinter::printClampSI ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

Definition at line 989 of file AMDGPUInstPrinter.cpp.

References llvm::MCOperand::getImm(), and llvm::MCInst::getOperand().

Referenced by AMDGPUInstPrinter().

◆ printCT()

void llvm::AMDGPUInstPrinter::printCT ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printHigh()

void AMDGPUInstPrinter::printHigh ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

Definition at line 982 of file AMDGPUInstPrinter.cpp.

References llvm::MCOperand::getImm(), and llvm::MCInst::getOperand().

Referenced by AMDGPUInstPrinter().

◆ printHwreg()

void AMDGPUInstPrinter::printHwreg ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printIfSet() [1/2]

void AMDGPUInstPrinter::printIfSet ( const MCInst MI,
unsigned  OpNo,
raw_ostream O,
StringRef  Asm,
StringRef  Default = "" 
)
static

◆ printIfSet() [2/2]

void AMDGPUInstPrinter::printIfSet ( const MCInst MI,
unsigned  OpNo,
raw_ostream O,
char  Asm 
)
static

◆ printInst()

void AMDGPUInstPrinter::printInst ( const MCInst MI,
raw_ostream OS,
StringRef  Annot,
const MCSubtargetInfo STI 
)
overridevirtual

◆ printInstruction()

void llvm::AMDGPUInstPrinter::printInstruction ( const MCInst MI,
const MCSubtargetInfo STI,
raw_ostream O 
)

◆ printKCache()

void llvm::AMDGPUInstPrinter::printKCache ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printLast()

void llvm::AMDGPUInstPrinter::printLast ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printLiteral()

void llvm::AMDGPUInstPrinter::printLiteral ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printNeg()

void llvm::AMDGPUInstPrinter::printNeg ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printOMOD()

void llvm::AMDGPUInstPrinter::printOMOD ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printOModSI()

void AMDGPUInstPrinter::printOModSI ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printRegOperand()

void AMDGPUInstPrinter::printRegOperand ( unsigned  RegNo,
raw_ostream O,
const MCRegisterInfo MRI 
)
static

Definition at line 251 of file AMDGPUInstPrinter.cpp.

References llvm::SISrcMods::ABS, assert(), llvm::AMDGPU::DPP::BCAST15, llvm::AMDGPU::DPP::BCAST31, llvm::AMDGPU::SDWA::BYTE_0, llvm::AMDGPU::SDWA::BYTE_1, llvm::AMDGPU::SDWA::BYTE_2, llvm::AMDGPU::SDWA::BYTE_3, llvm::MCRegisterClass::contains(), llvm::DoubleToBits(), llvm::SIInstrFlags::DPP, llvm::AMDGPU::SDWA::DWORD, llvm::FloatToBits(), llvm::MCRegisterInfo::getEncodingValue(), llvm::MCOperand::getExpr(), llvm::MCSubtargetInfo::getFeatureBits(), llvm::MCOperand::getFPImm(), llvm::MCOperand::getImm(), llvm::AMDGPU::getNamedOperandIdx(), llvm::MCInst::getNumOperands(), llvm::MCInst::getOpcode(), llvm::MCInst::getOperand(), llvm::MCOperand::getReg(), llvm::AMDGPU::getRegBitWidth(), llvm::MCRegisterInfo::getRegClass(), getRegisterName(), llvm::AMDGPU::isCI(), llvm::MCOperand::isExpr(), llvm::MCOperand::isFPImm(), llvm::MCOperand::isImm(), llvm::MCOperand::isReg(), llvm::AMDGPU::isSI(), llvm::isUInt< 32 >(), llvm_unreachable, MI, MRI, N, llvm::SISrcMods::NEG, llvm::RISCVFenceField::O, llvm::MCOI::OPERAND_IMMEDIATE, llvm::MCOI::OPERAND_PCREL, llvm::AMDGPU::OPERAND_REG_IMM_FP16, llvm::AMDGPU::OPERAND_REG_IMM_FP32, llvm::AMDGPU::OPERAND_REG_IMM_FP64, llvm::AMDGPU::OPERAND_REG_IMM_INT16, llvm::AMDGPU::OPERAND_REG_IMM_INT32, llvm::AMDGPU::OPERAND_REG_IMM_INT64, llvm::AMDGPU::OPERAND_REG_INLINE_C_FP16, llvm::AMDGPU::OPERAND_REG_INLINE_C_FP32, llvm::AMDGPU::OPERAND_REG_INLINE_C_FP64, llvm::AMDGPU::OPERAND_REG_INLINE_C_INT16, llvm::AMDGPU::OPERAND_REG_INLINE_C_INT32, llvm::AMDGPU::OPERAND_REG_INLINE_C_INT64, llvm::AMDGPU::OPERAND_REG_INLINE_C_V2FP16, llvm::AMDGPU::OPERAND_REG_INLINE_C_V2INT16, llvm::MCOI::OPERAND_REGISTER, llvm::MCOI::OPERAND_UNKNOWN, llvm::MCOperandInfo::OperandType, llvm::MCInstrDesc::OpInfo, llvm::MCExpr::print(), printOperand(), llvm::AMDGPU::DPP::QUAD_PERM_LAST, llvm::MCOperandInfo::RegClass, llvm::AMDGPU::DPP::ROW_HALF_MIRROR, llvm::AMDGPU::DPP::ROW_MIRROR, llvm::AMDGPU::DPP::ROW_ROR_FIRST, llvm::AMDGPU::DPP::ROW_ROR_LAST, llvm::AMDGPU::DPP::ROW_SHL_FIRST, llvm::AMDGPU::DPP::ROW_SHL_LAST, llvm::AMDGPU::DPP::ROW_SHR_FIRST, llvm::AMDGPU::DPP::ROW_SHR_LAST, llvm::SIInstrFlags::SDWA, llvm::SISrcMods::SEXT, llvm::AMDGPU::SDWA::UNUSED_PAD, llvm::AMDGPU::SDWA::UNUSED_PRESERVE, llvm::AMDGPU::SDWA::UNUSED_SEXT, llvm::SIInstrFlags::VOP3, llvm::AMDGPU::DPP::WAVE_ROL1, llvm::AMDGPU::DPP::WAVE_ROR1, llvm::AMDGPU::DPP::WAVE_SHL1, llvm::AMDGPU::DPP::WAVE_SHR1, llvm::AMDGPU::SDWA::WORD_0, and llvm::AMDGPU::SDWA::WORD_1.

Referenced by AMDGPUInstPrinter(), and llvm::AMDGPUAsmPrinter::PrintAsmOperand().

◆ printRel()

void llvm::AMDGPUInstPrinter::printRel ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printRSel()

void llvm::AMDGPUInstPrinter::printRSel ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printSendMsg()

void AMDGPUInstPrinter::printSendMsg ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printSwizzle()

void AMDGPUInstPrinter::printSwizzle ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printUpdateExecMask()

void llvm::AMDGPUInstPrinter::printUpdateExecMask ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printUpdatePred()

void llvm::AMDGPUInstPrinter::printUpdatePred ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printWaitFlag()

void AMDGPUInstPrinter::printWaitFlag ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printWrite()

void llvm::AMDGPUInstPrinter::printWrite ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

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