LLVM 20.0.0git
Public Member Functions | Static Public Member Functions | List of all members
llvm::X86IntelInstPrinter Class Referencefinal

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

Inheritance diagram for llvm::X86IntelInstPrinter:
Inheritance graph
[legend]

Public Member Functions

 X86IntelInstPrinter (const MCAsmInfo &MAI, const MCInstrInfo &MII, const MCRegisterInfo &MRI)
 
void printRegName (raw_ostream &OS, MCRegister Reg) override
 Print the assembler register name.
 
void printInst (const MCInst *MI, uint64_t Address, StringRef Annot, const MCSubtargetInfo &STI, raw_ostream &OS) override
 Print the specified MCInst to the specified raw_ostream.
 
bool printVecCompareInstr (const MCInst *MI, raw_ostream &OS)
 
bool printAliasInstr (const MCInst *MI, uint64_t Address, raw_ostream &OS)
 
void printCustomAliasOperand (const MCInst *MI, uint64_t Address, unsigned OpIdx, unsigned PrintMethodIdx, raw_ostream &O)
 
std::pair< const char *, uint64_tgetMnemonic (const MCInst &MI) const override
 Returns a pair containing the mnemonic for MI and the number of bits left for further processing by printInstruction (generated by tablegen).
 
void printInstruction (const MCInst *MI, uint64_t Address, raw_ostream &O)
 
void printOperand (const MCInst *MI, unsigned OpNo, raw_ostream &O) override
 
void printMemReference (const MCInst *MI, unsigned Op, raw_ostream &O)
 
void printMemOffset (const MCInst *MI, unsigned OpNo, raw_ostream &O)
 
void printSrcIdx (const MCInst *MI, unsigned OpNo, raw_ostream &O)
 
void printDstIdx (const MCInst *MI, unsigned OpNo, raw_ostream &O)
 
void printU8Imm (const MCInst *MI, unsigned Op, raw_ostream &O)
 
void printSTiRegOperand (const MCInst *MI, unsigned OpNo, raw_ostream &OS)
 
void printbytemem (const MCInst *MI, unsigned OpNo, raw_ostream &O)
 
void printwordmem (const MCInst *MI, unsigned OpNo, raw_ostream &O)
 
void printdwordmem (const MCInst *MI, unsigned OpNo, raw_ostream &O)
 
void printqwordmem (const MCInst *MI, unsigned OpNo, raw_ostream &O)
 
void printxmmwordmem (const MCInst *MI, unsigned OpNo, raw_ostream &O)
 
void printymmwordmem (const MCInst *MI, unsigned OpNo, raw_ostream &O)
 
void printzmmwordmem (const MCInst *MI, unsigned OpNo, raw_ostream &O)
 
void printtbytemem (const MCInst *MI, unsigned OpNo, raw_ostream &O)
 
void printSrcIdx8 (const MCInst *MI, unsigned OpNo, raw_ostream &O)
 
void printSrcIdx16 (const MCInst *MI, unsigned OpNo, raw_ostream &O)
 
void printSrcIdx32 (const MCInst *MI, unsigned OpNo, raw_ostream &O)
 
void printSrcIdx64 (const MCInst *MI, unsigned OpNo, raw_ostream &O)
 
void printDstIdx8 (const MCInst *MI, unsigned OpNo, raw_ostream &O)
 
void printDstIdx16 (const MCInst *MI, unsigned OpNo, raw_ostream &O)
 
void printDstIdx32 (const MCInst *MI, unsigned OpNo, raw_ostream &O)
 
void printDstIdx64 (const MCInst *MI, unsigned OpNo, raw_ostream &O)
 
void printMemOffs8 (const MCInst *MI, unsigned OpNo, raw_ostream &O)
 
void printMemOffs16 (const MCInst *MI, unsigned OpNo, raw_ostream &O)
 
void printMemOffs32 (const MCInst *MI, unsigned OpNo, raw_ostream &O)
 
void printMemOffs64 (const MCInst *MI, unsigned OpNo, raw_ostream &O)
 
- Public Member Functions inherited from llvm::X86InstPrinterCommon
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
 

Static Public Member Functions

static const chargetRegisterName (MCRegister Reg)
 

Additional Inherited Members

- Public Types inherited from llvm::MCInstPrinter
enum class  Markup { Immediate , Register , Target , Memory }
 
- Protected Member Functions inherited from llvm::X86InstPrinterCommon
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.
 
- 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 21 of file X86IntelInstPrinter.h.

Constructor & Destructor Documentation

◆ X86IntelInstPrinter()

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

Definition at line 23 of file X86IntelInstPrinter.h.

Member Function Documentation

◆ getMnemonic()

std::pair< const char *, uint64_t > llvm::X86IntelInstPrinter::getMnemonic ( const MCInst MI) const
overridevirtual

Returns a pair containing the mnemonic for MI and the number of bits left for further processing by printInstruction (generated by tablegen).

Implements llvm::MCInstPrinter.

◆ getRegisterName()

static const char * llvm::X86IntelInstPrinter::getRegisterName ( MCRegister  Reg)
static

◆ printAliasInstr()

bool llvm::X86IntelInstPrinter::printAliasInstr ( const MCInst MI,
uint64_t  Address,
raw_ostream OS 
)

Referenced by printInst().

◆ printbytemem()

void llvm::X86IntelInstPrinter::printbytemem ( const MCInst MI,
unsigned  OpNo,
raw_ostream O 
)
inline

Definition at line 53 of file X86IntelInstPrinter.h.

References MI, and printMemReference().

◆ printCustomAliasOperand()

void llvm::X86IntelInstPrinter::printCustomAliasOperand ( const MCInst MI,
uint64_t  Address,
unsigned  OpIdx,
unsigned  PrintMethodIdx,
raw_ostream O 
)

◆ printDstIdx()

void X86IntelInstPrinter::printDstIdx ( const MCInst MI,
unsigned  OpNo,
raw_ostream O 
)

◆ printDstIdx16()

void llvm::X86IntelInstPrinter::printDstIdx16 ( const MCInst MI,
unsigned  OpNo,
raw_ostream O 
)
inline

Definition at line 107 of file X86IntelInstPrinter.h.

References MI, and printDstIdx().

◆ printDstIdx32()

void llvm::X86IntelInstPrinter::printDstIdx32 ( const MCInst MI,
unsigned  OpNo,
raw_ostream O 
)
inline

Definition at line 111 of file X86IntelInstPrinter.h.

References MI, and printDstIdx().

◆ printDstIdx64()

void llvm::X86IntelInstPrinter::printDstIdx64 ( const MCInst MI,
unsigned  OpNo,
raw_ostream O 
)
inline

Definition at line 115 of file X86IntelInstPrinter.h.

References MI, and printDstIdx().

◆ printDstIdx8()

void llvm::X86IntelInstPrinter::printDstIdx8 ( const MCInst MI,
unsigned  OpNo,
raw_ostream O 
)
inline

Definition at line 103 of file X86IntelInstPrinter.h.

References MI, and printDstIdx().

◆ printdwordmem()

void llvm::X86IntelInstPrinter::printdwordmem ( const MCInst MI,
unsigned  OpNo,
raw_ostream O 
)
inline

Definition at line 61 of file X86IntelInstPrinter.h.

References MI, and printMemReference().

Referenced by printVecCompareInstr().

◆ printInst()

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

Print the specified MCInst to the specified raw_ostream.

Address the address of current instruction on most targets, used to print a PC relative immediate as the target address. On targets where a PC relative immediate is relative to the next instruction and the length of a MCInst is difficult to measure (e.g. x86), this is the address of the next instruction. If Address is 0, the immediate will be printed.

Implements llvm::MCInstPrinter.

Definition at line 39 of file X86IntelInstPrinter.cpp.

References llvm::Address, llvm::MCInstPrinter::CommentStream, llvm::EmitAnyX86InstComments(), llvm::MCSubtargetInfo::hasFeature(), MI, llvm::MCInstPrinter::MII, OS, printAliasInstr(), llvm::MCInstPrinter::printAnnotation(), llvm::X86InstPrinterCommon::printInstFlags(), printInstruction(), and printVecCompareInstr().

◆ printInstruction()

void llvm::X86IntelInstPrinter::printInstruction ( const MCInst MI,
uint64_t  Address,
raw_ostream O 
)

Referenced by printInst().

◆ printMemOffs16()

void llvm::X86IntelInstPrinter::printMemOffs16 ( const MCInst MI,
unsigned  OpNo,
raw_ostream O 
)
inline

Definition at line 123 of file X86IntelInstPrinter.h.

References MI, and printMemOffset().

◆ printMemOffs32()

void llvm::X86IntelInstPrinter::printMemOffs32 ( const MCInst MI,
unsigned  OpNo,
raw_ostream O 
)
inline

Definition at line 127 of file X86IntelInstPrinter.h.

References MI, and printMemOffset().

◆ printMemOffs64()

void llvm::X86IntelInstPrinter::printMemOffs64 ( const MCInst MI,
unsigned  OpNo,
raw_ostream O 
)
inline

Definition at line 131 of file X86IntelInstPrinter.h.

References MI, and printMemOffset().

◆ printMemOffs8()

void llvm::X86IntelInstPrinter::printMemOffs8 ( const MCInst MI,
unsigned  OpNo,
raw_ostream O 
)
inline

Definition at line 119 of file X86IntelInstPrinter.h.

References MI, and printMemOffset().

◆ printMemOffset()

void X86IntelInstPrinter::printMemOffset ( const MCInst MI,
unsigned  OpNo,
raw_ostream O 
)

◆ printMemReference()

void X86IntelInstPrinter::printMemReference ( const MCInst MI,
unsigned  Op,
raw_ostream O 
)

◆ printOperand()

void X86IntelInstPrinter::printOperand ( const MCInst MI,
unsigned  OpNo,
raw_ostream O 
)
overridevirtual

◆ printqwordmem()

void llvm::X86IntelInstPrinter::printqwordmem ( const MCInst MI,
unsigned  OpNo,
raw_ostream O 
)
inline

Definition at line 65 of file X86IntelInstPrinter.h.

References MI, and printMemReference().

Referenced by printVecCompareInstr().

◆ printRegName()

void X86IntelInstPrinter::printRegName ( raw_ostream OS,
MCRegister  Reg 
)
overridevirtual

Print the assembler register name.

Reimplemented from llvm::MCInstPrinter.

Definition at line 35 of file X86IntelInstPrinter.cpp.

References getRegisterName(), llvm::MCInstPrinter::markup(), OS, and llvm::MCInstPrinter::Register.

Referenced by printOperand(), and printSTiRegOperand().

◆ printSrcIdx()

void X86IntelInstPrinter::printSrcIdx ( const MCInst MI,
unsigned  OpNo,
raw_ostream O 
)

◆ printSrcIdx16()

void llvm::X86IntelInstPrinter::printSrcIdx16 ( const MCInst MI,
unsigned  OpNo,
raw_ostream O 
)
inline

Definition at line 91 of file X86IntelInstPrinter.h.

References MI, and printSrcIdx().

◆ printSrcIdx32()

void llvm::X86IntelInstPrinter::printSrcIdx32 ( const MCInst MI,
unsigned  OpNo,
raw_ostream O 
)
inline

Definition at line 95 of file X86IntelInstPrinter.h.

References MI, and printSrcIdx().

◆ printSrcIdx64()

void llvm::X86IntelInstPrinter::printSrcIdx64 ( const MCInst MI,
unsigned  OpNo,
raw_ostream O 
)
inline

Definition at line 99 of file X86IntelInstPrinter.h.

References MI, and printSrcIdx().

◆ printSrcIdx8()

void llvm::X86IntelInstPrinter::printSrcIdx8 ( const MCInst MI,
unsigned  OpNo,
raw_ostream O 
)
inline

Definition at line 87 of file X86IntelInstPrinter.h.

References MI, and printSrcIdx().

◆ printSTiRegOperand()

void X86IntelInstPrinter::printSTiRegOperand ( const MCInst MI,
unsigned  OpNo,
raw_ostream OS 
)

Definition at line 487 of file X86IntelInstPrinter.cpp.

References MI, OS, and printRegName().

◆ printtbytemem()

void llvm::X86IntelInstPrinter::printtbytemem ( const MCInst MI,
unsigned  OpNo,
raw_ostream O 
)
inline

Definition at line 81 of file X86IntelInstPrinter.h.

References MI, and printMemReference().

◆ printU8Imm()

void X86IntelInstPrinter::printU8Imm ( const MCInst MI,
unsigned  Op,
raw_ostream O 
)

◆ printVecCompareInstr()

bool X86IntelInstPrinter::printVecCompareInstr ( const MCInst MI,
raw_ostream OS 
)

◆ printwordmem()

void llvm::X86IntelInstPrinter::printwordmem ( const MCInst MI,
unsigned  OpNo,
raw_ostream O 
)
inline

Definition at line 57 of file X86IntelInstPrinter.h.

References MI, and printMemReference().

Referenced by printVecCompareInstr().

◆ printxmmwordmem()

void llvm::X86IntelInstPrinter::printxmmwordmem ( const MCInst MI,
unsigned  OpNo,
raw_ostream O 
)
inline

Definition at line 69 of file X86IntelInstPrinter.h.

References MI, and printMemReference().

Referenced by printVecCompareInstr().

◆ printymmwordmem()

void llvm::X86IntelInstPrinter::printymmwordmem ( const MCInst MI,
unsigned  OpNo,
raw_ostream O 
)
inline

Definition at line 73 of file X86IntelInstPrinter.h.

References MI, and printMemReference().

Referenced by printVecCompareInstr().

◆ printzmmwordmem()

void llvm::X86IntelInstPrinter::printzmmwordmem ( const MCInst MI,
unsigned  OpNo,
raw_ostream O 
)
inline

Definition at line 77 of file X86IntelInstPrinter.h.

References MI, and printMemReference().

Referenced by printVecCompareInstr().


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