LLVM  8.0.1
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
llvm::MCInstPrinter Class Referenceabstract

This is an instance of a target assembly language printer that converts an MCInst to valid target assembly syntax. More...

#include "llvm/MC/MCInstPrinter.h"

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

Public Member Functions

 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...
 
virtual void printInst (const MCInst *MI, raw_ostream &OS, StringRef Annot, const MCSubtargetInfo &STI)=0
 Print the specified MCInst to the specified raw_ostream. 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
 

Protected Member Functions

void printAnnotation (raw_ostream &OS, StringRef Annot)
 Utility function for printing annotations. More...
 

Protected Attributes

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

This is an instance of a target assembly language printer that converts an MCInst to valid target assembly syntax.

Definition at line 40 of file MCInstPrinter.h.

Constructor & Destructor Documentation

◆ MCInstPrinter()

llvm::MCInstPrinter::MCInstPrinter ( const MCAsmInfo mai,
const MCInstrInfo mii,
const MCRegisterInfo mri 
)
inline

Definition at line 63 of file MCInstPrinter.h.

◆ ~MCInstPrinter()

MCInstPrinter::~MCInstPrinter ( )
virtualdefault

Referenced by llvm::dumpBytes().

Member Function Documentation

◆ formatDec()

format_object< int64_t > MCInstPrinter::formatDec ( int64_t  Value) const

Utility functions to print decimal/hexadecimal values.

Definition at line 84 of file MCInstPrinter.cpp.

References llvm::format().

Referenced by llvm::AArch64InstPrinter::printImmSVE().

◆ formatHex() [1/2]

format_object< int64_t > MCInstPrinter::formatHex ( int64_t  Value) const

◆ formatHex() [2/2]

format_object< uint64_t > MCInstPrinter::formatHex ( uint64_t  Value) const

◆ formatImm()

format_object<int64_t> llvm::MCInstPrinter::formatImm ( int64_t  Value) const
inline

Utility function to print immediates in decimal or hex.

Definition at line 96 of file MCInstPrinter.h.

Referenced by llvm::ARMInstPrinter::printAddrModeImm12Operand(), llvm::AArch64InstPrinter::printAddSubImm(), llvm::AArch64InstPrinter::printAdrpLabel(), llvm::AArch64InstPrinter::printAlignedLabel(), llvm::AArch64InstPrinter::printAMIndexedWB(), llvm::BPFInstPrinter::printBrTargetOperand(), llvm::AArch64InstPrinter::printBTIHintOp(), llvm::AArch64InstPrinter::printImm(), llvm::BPFInstPrinter::printImm64Operand(), llvm::AArch64InstPrinter::printImm8OptLsl(), llvm::ARMInstPrinter::printImmPlusOneOperand(), llvm::AArch64InstPrinter::printImmScale(), llvm::AArch64InstPrinter::printInst(), llvm::MipsInstPrinter::printInst(), llvm::X86IntelInstPrinter::printMemOffset(), llvm::X86ATTInstPrinter::printMemOffset(), llvm::BPFInstPrinter::printMemOperand(), llvm::X86IntelInstPrinter::printMemReference(), llvm::X86ATTInstPrinter::printMemReference(), llvm::BPFInstPrinter::printOperand(), llvm::X86IntelInstPrinter::printOperand(), llvm::NVPTXInstPrinter::printOperand(), llvm::HexagonInstPrinter::printOperand(), llvm::ARMInstPrinter::printOperand(), llvm::X86ATTInstPrinter::printOperand(), llvm::X86InstPrinterCommon::printPCRelImm(), llvm::AArch64InstPrinter::printPrefetchOp(), llvm::AArch64InstPrinter::printPSBHintOp(), llvm::AArch64InstPrinter::printSVEPattern(), llvm::AArch64InstPrinter::printSystemPStateField(), llvm::ARMInstPrinter::printT2AddrModeImm0_1020s4Operand(), llvm::ARMInstPrinter::printThumbAddrModeImm5SOperand(), llvm::ARMInstPrinter::printThumbLdrLabelOperand(), llvm::ARMInstPrinter::printThumbS4ImmOperand(), llvm::ARMInstPrinter::printThumbSRImm(), llvm::X86IntelInstPrinter::printU8Imm(), llvm::X86ATTInstPrinter::printU8Imm(), and llvm::AArch64InstPrinter::printUImm12Offset().

◆ getOpcodeName()

StringRef MCInstPrinter::getOpcodeName ( unsigned  Opcode) const

Return the name of the specified opcode enum (e.g.

getOpcodeName - Return the name of the specified opcode enum (e.g.

"MOV32ri") or empty if we can't resolve it.

Definition at line 36 of file MCInstPrinter.cpp.

References llvm::MCInstrInfo::getName(), and MII.

Referenced by llvm::MCInst::dump_pretty().

◆ getPrintHexStyle()

HexStyle::Style llvm::MCInstPrinter::getPrintHexStyle ( ) const
inline

Definition at line 92 of file MCInstPrinter.h.

◆ getPrintImmHex()

bool llvm::MCInstPrinter::getPrintImmHex ( ) const
inline

Definition at line 89 of file MCInstPrinter.h.

Referenced by llvm::AArch64InstPrinter::printImmSVE().

◆ getUseMarkup()

bool llvm::MCInstPrinter::getUseMarkup ( ) const
inline

Definition at line 82 of file MCInstPrinter.h.

Referenced by markup().

◆ markup() [1/2]

StringRef MCInstPrinter::markup ( StringRef  s) const

Utility functions to make adding mark ups simpler.

Definition at line 58 of file MCInstPrinter.cpp.

References getUseMarkup().

Referenced by llvm::ARMInstPrinter::printAddrMode2OffsetOperand(), llvm::ARMInstPrinter::printAddrMode3OffsetOperand(), llvm::ARMInstPrinter::printAddrMode5FP16Operand(), llvm::ARMInstPrinter::printAddrMode5Operand(), llvm::ARMInstPrinter::printAddrMode6Operand(), llvm::ARMInstPrinter::printAddrMode7Operand(), llvm::ARMInstPrinter::printAddrModeImm12Operand(), llvm::ARMInstPrinter::printAddrModeTBB(), llvm::ARMInstPrinter::printAddrModeTBH(), llvm::ARMInstPrinter::printAdrLabelOperand(), llvm::ARMInstPrinter::printAM2PreOrOffsetIndexOp(), llvm::ARMInstPrinter::printAM3PreOrOffsetIndexOp(), llvm::ARMInstPrinter::printBitfieldInvMaskImmOperand(), llvm::X86ATTInstPrinter::printDstIdx(), llvm::ARMInstPrinter::printFBits16(), llvm::ARMInstPrinter::printFBits32(), llvm::ARMInstPrinter::printFPImmOperand(), llvm::ARMInstPrinter::printImmPlusOneOperand(), llvm::ARMInstPrinter::printInst(), llvm::X86ATTInstPrinter::printMemOffset(), llvm::X86ATTInstPrinter::printMemReference(), llvm::ARMInstPrinter::printModImmOperand(), llvm::ARMInstPrinter::printNEONModImmOperand(), llvm::NVPTXInstPrinter::printOperand(), llvm::X86ATTInstPrinter::printOperand(), llvm::ARMInstPrinter::printOperand(), llvm::ARMInstPrinter::printPKHASRShiftImm(), llvm::ARMInstPrinter::printPKHLSLShiftImm(), llvm::ARMInstPrinter::printPostIdxImm8Operand(), llvm::ARMInstPrinter::printPostIdxImm8s4Operand(), llvm::X86ATTInstPrinter::printRegName(), llvm::ARMInstPrinter::printRegName(), llvm::ARMInstPrinter::printRotImmOperand(), llvm::ARMInstPrinter::printShiftImmOperand(), llvm::X86ATTInstPrinter::printSrcIdx(), llvm::X86ATTInstPrinter::printSTiRegOperand(), llvm::ARMInstPrinter::printT2AddrModeImm0_1020s4Operand(), llvm::ARMInstPrinter::printT2AddrModeImm8OffsetOperand(), llvm::ARMInstPrinter::printT2AddrModeImm8Operand(), llvm::ARMInstPrinter::printT2AddrModeImm8s4OffsetOperand(), llvm::ARMInstPrinter::printT2AddrModeImm8s4Operand(), llvm::ARMInstPrinter::printT2AddrModeSoRegOperand(), llvm::ARMInstPrinter::printThumbAddrModeImm5SOperand(), llvm::ARMInstPrinter::printThumbAddrModeRROperand(), llvm::ARMInstPrinter::printThumbLdrLabelOperand(), llvm::ARMInstPrinter::printThumbS4ImmOperand(), llvm::ARMInstPrinter::printThumbSRImm(), and llvm::X86ATTInstPrinter::printU8Imm().

◆ markup() [2/2]

StringRef MCInstPrinter::markup ( StringRef  a,
StringRef  b 
) const

Definition at line 64 of file MCInstPrinter.cpp.

References getUseMarkup().

◆ printAnnotation()

void MCInstPrinter::printAnnotation ( raw_ostream OS,
StringRef  Annot 
)
protected

◆ printInst()

virtual void llvm::MCInstPrinter::printInst ( const MCInst MI,
raw_ostream OS,
StringRef  Annot,
const MCSubtargetInfo STI 
)
pure virtual

◆ printRegName()

void MCInstPrinter::printRegName ( raw_ostream OS,
unsigned  RegNo 
) const
virtual

◆ setCommentStream()

void llvm::MCInstPrinter::setCommentStream ( raw_ostream OS)
inline

Specify a stream to emit comments to.

Definition at line 69 of file MCInstPrinter.h.

References MI.

Referenced by LLVMSetDisasmOptions().

◆ setPrintHexStyle()

void llvm::MCInstPrinter::setPrintHexStyle ( HexStyle::Style  Value)
inline

Definition at line 93 of file MCInstPrinter.h.

◆ setPrintImmHex()

void llvm::MCInstPrinter::setPrintImmHex ( bool  Value)
inline

Definition at line 90 of file MCInstPrinter.h.

Referenced by LLVMSetDisasmOptions().

◆ setUseMarkup()

void llvm::MCInstPrinter::setUseMarkup ( bool  Value)
inline

Definition at line 83 of file MCInstPrinter.h.

Referenced by LLVMSetDisasmOptions().

Member Data Documentation

◆ CommentStream

raw_ostream* llvm::MCInstPrinter::CommentStream = nullptr
protected

A stream that comments can be emitted to if desired.

Each comment must end with a newline. This will be null if verbose assembly emission is disabled.

Definition at line 45 of file MCInstPrinter.h.

Referenced by llvm::AArch64InstPrinter::printAddSubImm(), printAnnotation(), llvm::AArch64InstPrinter::printImmSVE(), llvm::X86ATTInstPrinter::printInst(), llvm::X86IntelInstPrinter::printInst(), llvm::WebAssemblyInstPrinter::printInst(), and llvm::X86ATTInstPrinter::printOperand().

◆ MAI

const MCAsmInfo& llvm::MCInstPrinter::MAI
protected

Definition at line 46 of file MCInstPrinter.h.

Referenced by llvm::HexagonInstPrinter::getMAI(), llvm::AArch64InstPrinter::printAddSubImm(), llvm::ARMInstPrinter::printAdrLabelOperand(), llvm::AArch64InstPrinter::printAdrpLabel(), llvm::AArch64InstPrinter::printAlignedLabel(), llvm::AArch64InstPrinter::printAMIndexedWB(), printAnnotation(), printExpr(), llvm::LanaiInstPrinter::printHi16AndImmOperand(), llvm::LanaiInstPrinter::printHi16ImmOperand(), llvm::MSP430InstPrinter::printInst(), llvm::AArch64InstPrinter::printInst(), llvm::MipsInstPrinter::printInst(), llvm::LanaiInstPrinter::printLo16AndImmOperand(), llvm::LanaiInstPrinter::printMemImmOperand(), llvm::X86IntelInstPrinter::printMemOffset(), llvm::X86ATTInstPrinter::printMemOffset(), llvm::X86IntelInstPrinter::printMemReference(), llvm::X86ATTInstPrinter::printMemReference(), llvm::LanaiInstPrinter::printMemRiOperand(), llvm::LanaiInstPrinter::printMemSplsOperand(), llvm::LanaiInstPrinter::printOperand(), llvm::RISCVInstPrinter::printOperand(), llvm::X86IntelInstPrinter::printOperand(), llvm::NVPTXInstPrinter::printOperand(), llvm::X86ATTInstPrinter::printOperand(), llvm::ARMInstPrinter::printOperand(), llvm::WebAssemblyInstPrinter::printOperand(), llvm::PPCInstPrinter::printOperand(), llvm::AArch64InstPrinter::printOperand(), llvm::X86InstPrinterCommon::printPCRelImm(), printSImmOperand(), llvm::ARMInstPrinter::printThumbLdrLabelOperand(), llvm::X86IntelInstPrinter::printU8Imm(), llvm::AArch64InstPrinter::printUImm12Offset(), and llvm::SystemZInstPrinter::SystemZInstPrinter().

◆ MII

const MCInstrInfo& llvm::MCInstPrinter::MII
protected

◆ MRI

const MCRegisterInfo& llvm::MCInstPrinter::MRI
protected

◆ PrintHexStyle

HexStyle::Style llvm::MCInstPrinter::PrintHexStyle = HexStyle::C
protected

Which style to use for printing hexadecimal values.

Definition at line 57 of file MCInstPrinter.h.

Referenced by formatHex().

◆ PrintImmHex

bool llvm::MCInstPrinter::PrintImmHex = false
protected

True if we are printing immediates as hex.

Definition at line 54 of file MCInstPrinter.h.

◆ UseMarkup

bool llvm::MCInstPrinter::UseMarkup = false
protected

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