LLVM 22.0.0git
llvm::X86InstPrinterCommon Class Referenceabstract

#include "Target/X86/MCTargetDesc/X86InstPrinterCommon.h"

Inheritance diagram for llvm::X86InstPrinterCommon:
[legend]

Public Member Functions

virtual void printExprOperand (raw_ostream &OS, const MCExpr &E)
virtual void printOperand (const MCInst *MI, unsigned OpNo, raw_ostream &O)=0
void printCondCode (const MCInst *MI, unsigned Op, raw_ostream &OS)
void printCondFlags (const MCInst *MI, unsigned Op, raw_ostream &OS)
void printSSEAVXCC (const MCInst *MI, unsigned Op, raw_ostream &OS)
void printVPCOMMnemonic (const MCInst *MI, raw_ostream &OS)
void printVPCMPMnemonic (const MCInst *MI, raw_ostream &OS)
void printCMPMnemonic (const MCInst *MI, bool IsVCmp, raw_ostream &OS)
void printRoundingControl (const MCInst *MI, unsigned Op, raw_ostream &O)
void printPCRelImm (const MCInst *MI, uint64_t Address, unsigned OpNo, raw_ostream &O)
 value (e.g.
 MCInstPrinter (const MCAsmInfo &mai, const MCInstrInfo &mii, const MCRegisterInfo &mri)
Public Member Functions inherited from llvm::MCInstPrinter
 MCInstPrinter (const MCAsmInfo &mai, const MCInstrInfo &mii, const MCRegisterInfo &mri)
virtual ~MCInstPrinter ()
virtual bool applyTargetSpecificCLOption (StringRef Opt)
 Customize the printer according to a command line option.
void setCommentStream (raw_ostream &OS)
 Specify a stream to emit comments to.
virtual std::pair< const char *, uint64_tgetMnemonic (const MCInst &MI) const =0
 Returns a pair containing the mnemonic for MI and the number of bits left for further processing by printInstruction (generated by tablegen).
virtual void printInst (const MCInst *MI, uint64_t Address, StringRef Annot, const MCSubtargetInfo &STI, raw_ostream &OS)=0
 Print the specified MCInst to the specified raw_ostream.
StringRef getOpcodeName (unsigned Opcode) const
 Return the name of the specified opcode enum (e.g.
virtual void printRegName (raw_ostream &OS, MCRegister Reg)
 Print the assembler register name.
bool getUseMarkup () const
void setUseMarkup (bool Value)
bool getUseColor () const
void setUseColor (bool Value)
WithMarkup markup (raw_ostream &OS, Markup M)
bool getPrintImmHex () const
void setPrintImmHex (bool Value)
void setPrintHexStyle (HexStyle::Style Value)
void setPrintBranchImmAsAddress (bool Value)
void setSymbolizeOperands (bool Value)
void setMCInstrAnalysis (const MCInstrAnalysis *Value)
format_object< int64_t > formatImm (int64_t Value) const
 Utility function to print immediates in decimal or hex.
format_object< int64_t > formatDec (int64_t Value) const
 Utility functions to print decimal/hexadecimal values.
format_object< int64_t > formatHex (int64_t Value) const
format_object< uint64_tformatHex (uint64_t Value) const

Protected Member Functions

void printInstFlags (const MCInst *MI, raw_ostream &O, const MCSubtargetInfo &STI)
void printOptionalSegReg (const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printVKPair (const MCInst *MI, unsigned OpNo, raw_ostream &OS)
void printTILEPair (const MCInst *MI, unsigned OpNo, raw_ostream &OS)
Protected Member Functions inherited from llvm::MCInstPrinter
void printAnnotation (raw_ostream &OS, StringRef Annot)
 Utility function for printing annotations.
const charmatchAliasPatterns (const MCInst *MI, const MCSubtargetInfo *STI, const AliasMatchingData &M)
 Helper for matching MCInsts to alias patterns when printing instructions.

Additional Inherited Members

Public Types inherited from llvm::MCInstPrinter
enum class  Markup { Immediate , Register , Target , Memory }
Protected Attributes inherited from llvm::MCInstPrinter
raw_ostreamCommentStream = nullptr
 A stream that comments can be emitted to if desired.
const MCAsmInfoMAI
const MCInstrInfoMII
const MCRegisterInfoMRI
const MCInstrAnalysisMIA = nullptr
bool UseMarkup = false
 True if we are printing marked up assembly.
bool UseColor = false
 True if we are printing colored assembly.
bool PrintAliases = true
 True if we prefer aliases (e.g. nop) to raw mnemonics.
bool PrintImmHex = false
 True if we are printing immediates as hex.
HexStyle::Style PrintHexStyle = HexStyle::C
 Which style to use for printing hexadecimal values.
bool PrintBranchImmAsAddress = false
 If true, a branch immediate (e.g.
bool SymbolizeOperands = false
 If true, symbolize branch target and memory reference operands.
SmallVector< raw_ostream::Colors, 4 > ColorStack {raw_ostream::Colors::RESET}

Detailed Description

Definition at line 22 of file X86InstPrinterCommon.h.

Member Function Documentation

◆ MCInstPrinter()

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

Definition at line 90 of file MCInstPrinter.h.

◆ printCMPMnemonic()

void X86InstPrinterCommon::printCMPMnemonic ( const MCInst * MI,
bool IsVCmp,
raw_ostream & OS )

◆ printCondCode()

void X86InstPrinterCommon::printCondCode ( const MCInst * MI,
unsigned Op,
raw_ostream & OS )

Definition at line 33 of file X86InstPrinterCommon.cpp.

References llvm_unreachable, MI, and Opc.

◆ printCondFlags()

void X86InstPrinterCommon::printCondFlags ( const MCInst * MI,
unsigned Op,
raw_ostream & OS )

Definition at line 62 of file X86InstPrinterCommon.cpp.

References assert(), MI, and llvm::StringRef::rtrim().

◆ printExprOperand()

void X86InstPrinterCommon::printExprOperand ( raw_ostream & OS,
const MCExpr & E )
virtual

Reimplemented in llvm::X86ATTInstPrinter.

Definition at line 29 of file X86InstPrinterCommon.cpp.

References llvm::MCInstPrinter::MAI.

Referenced by printPCRelImm().

◆ printInstFlags()

◆ printOperand()

virtual void llvm::X86InstPrinterCommon::printOperand ( const MCInst * MI,
unsigned OpNo,
raw_ostream & O )
pure virtual

Implemented in llvm::X86ATTInstPrinter, and llvm::X86IntelInstPrinter.

References llvm::Address, and MI.

Referenced by printOptionalSegReg().

◆ printOptionalSegReg()

◆ printPCRelImm()

void X86InstPrinterCommon::printPCRelImm ( const MCInst * MI,
uint64_t Address,
unsigned OpNo,
raw_ostream & O )

value (e.g.

for jumps and calls). In Intel-style these print slightly differently than normal immediates. For example, a $ is not emitted.

Address The address of the next instruction.

See also
MCInstPrinter::printInst

Definition at line 356 of file X86InstPrinterCommon.cpp.

References llvm::Address, assert(), llvm::dyn_cast(), llvm::MCInstPrinter::formatHex(), llvm::MCInstPrinter::formatImm(), llvm::MCInstPrinter::Immediate, llvm::MCInstPrinter::MAI, llvm::MCInstPrinter::markup(), MI, llvm::MCInstPrinter::PrintBranchImmAsAddress, printExprOperand(), llvm::MCInstPrinter::SymbolizeOperands, and llvm::MCInstPrinter::Target.

Referenced by llvm::X86ATTInstPrinter::printInst().

◆ printRoundingControl()

void X86InstPrinterCommon::printRoundingControl ( const MCInst * MI,
unsigned Op,
raw_ostream & O )

◆ printSSEAVXCC()

void X86InstPrinterCommon::printSSEAVXCC ( const MCInst * MI,
unsigned Op,
raw_ostream & OS )

Definition at line 83 of file X86InstPrinterCommon.cpp.

References llvm_unreachable, and MI.

Referenced by printCMPMnemonic(), and printVPCMPMnemonic().

◆ printTILEPair()

void X86InstPrinterCommon::printTILEPair ( const MCInst * MI,
unsigned OpNo,
raw_ostream & OS )
protected

◆ printVKPair()

void X86InstPrinterCommon::printVKPair ( const MCInst * MI,
unsigned OpNo,
raw_ostream & OS )
protected

◆ printVPCMPMnemonic()

void X86InstPrinterCommon::printVPCMPMnemonic ( const MCInst * MI,
raw_ostream & OS )

◆ printVPCOMMnemonic()

void X86InstPrinterCommon::printVPCOMMnemonic ( const MCInst * MI,
raw_ostream & OS )

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