LLVM 22.0.0git
llvm::BPFInstPrinter Class Reference

#include "Target/BPF/MCTargetDesc/BPFInstPrinter.h"

Inheritance diagram for llvm::BPFInstPrinter:
[legend]

Public Member Functions

 BPFInstPrinter (const MCAsmInfo &MAI, const MCInstrInfo &MII, const MCRegisterInfo &MRI)
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 printOperand (const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printMemOperand (const MCInst *MI, int OpNo, raw_ostream &O)
void printImm64Operand (const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printBrTargetOperand (const MCInst *MI, unsigned OpNo, 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)
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.
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::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 19 of file BPFInstPrinter.h.

Constructor & Destructor Documentation

◆ BPFInstPrinter()

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

Member Function Documentation

◆ getMnemonic()

std::pair< const char *, uint64_t > llvm::BPFInstPrinter::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.

References MI.

◆ getRegisterName()

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

References Reg.

Referenced by printMemOperand(), and printOperand().

◆ printBrTargetOperand()

void BPFInstPrinter::printBrTargetOperand ( const MCInst * MI,
unsigned OpNo,
raw_ostream & O )

Definition at line 79 of file BPFInstPrinter.cpp.

References llvm::MCInstPrinter::formatImm(), llvm::MCInstPrinter::MAI, and MI.

◆ printImm64Operand()

void BPFInstPrinter::printImm64Operand ( const MCInst * MI,
unsigned OpNo,
raw_ostream & O )

Definition at line 68 of file BPFInstPrinter.cpp.

References llvm::MCInstPrinter::formatImm(), llvm::MCInstPrinter::MAI, and MI.

◆ printInst()

void BPFInstPrinter::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 27 of file BPFInstPrinter.cpp.

References llvm::Address, MI, llvm::MCInstPrinter::printAnnotation(), and printInstruction().

◆ printInstruction()

void llvm::BPFInstPrinter::printInstruction ( const MCInst * MI,
uint64_t Address,
raw_ostream & O )

References llvm::Address, and MI.

Referenced by printInst().

◆ printMemOperand()

void BPFInstPrinter::printMemOperand ( const MCInst * MI,
int OpNo,
raw_ostream & O )

◆ printOperand()

void BPFInstPrinter::printOperand ( const MCInst * MI,
unsigned OpNo,
raw_ostream & O )

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