LLVM 22.0.0git
llvm::AArch64AppleInstPrinter Class Reference

#include "Target/AArch64/MCTargetDesc/AArch64InstPrinter.h"

Inheritance diagram for llvm::AArch64AppleInstPrinter:
[legend]

Public Member Functions

 AArch64AppleInstPrinter (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.
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, const MCSubtargetInfo &STI, raw_ostream &O) override
bool printAliasInstr (const MCInst *MI, uint64_t Address, const MCSubtargetInfo &STI, raw_ostream &O) override
void printCustomAliasOperand (const MCInst *MI, uint64_t Address, unsigned OpIdx, unsigned PrintMethodIdx, const MCSubtargetInfo &STI, raw_ostream &O) override
StringRef getRegName (MCRegister Reg) const override
Public Member Functions inherited from llvm::AArch64InstPrinter
 AArch64InstPrinter (const MCAsmInfo &MAI, const MCInstrInfo &MII, const MCRegisterInfo &MRI)
bool applyTargetSpecificCLOption (StringRef Opt) override
 Customize the printer according to a command line option.
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 printRegName (raw_ostream &OS, MCRegister Reg) override
 Print the assembler register name.
void printRegName (raw_ostream &OS, MCRegister Reg, unsigned AltIdx)
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).
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.
StringRef getOpcodeName (unsigned Opcode) const
 Return the name of the specified opcode enum (e.g.
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, unsigned AltIdx=AArch64::NoRegAltName)
Static Public Member Functions inherited from llvm::AArch64InstPrinter
static const chargetRegisterName (MCRegister Reg, unsigned AltIdx=AArch64::NoRegAltName)

Additional Inherited Members

Public Types inherited from llvm::MCInstPrinter
enum class  Markup { Immediate , Register , Target , Memory }
Protected Member Functions inherited from llvm::AArch64InstPrinter
bool printSysAlias (const MCInst *MI, const MCSubtargetInfo &STI, raw_ostream &O)
bool printSyspAlias (const MCInst *MI, const MCSubtargetInfo &STI, raw_ostream &O)
bool printRangePrefetchAlias (const MCInst *MI, const MCSubtargetInfo &STI, raw_ostream &O, StringRef Annot)
void printOperand (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
void printImm (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
void printImmHex (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
template<int Size>
void printSImm (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
template<typename T>
void printImmSVE (T Value, raw_ostream &O)
void printPostIncOperand (const MCInst *MI, unsigned OpNo, unsigned Imm, raw_ostream &O)
template<int Amount>
void printPostIncOperand (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
void printVRegOperand (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
void printSysCROperand (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
void printAddSubImm (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
template<typename T>
void printLogicalImm (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printShifter (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printShiftedRegister (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printExtendedRegister (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printArithExtend (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printMemExtendImpl (bool SignExtend, bool DoShift, unsigned Width, char SrcRegKind, raw_ostream &O)
void printMemExtend (const MCInst *MI, unsigned OpNum, raw_ostream &O, char SrcRegKind, unsigned Width)
template<char SrcRegKind, unsigned Width>
void printMemExtend (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
template<bool SignedExtend, int ExtWidth, char SrcRegKind, char Suffix>
void printRegWithShiftExtend (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printCondCode (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printInverseCondCode (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printAlignedLabel (const MCInst *MI, uint64_t Address, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printUImm12Offset (const MCInst *MI, unsigned OpNum, unsigned Scale, raw_ostream &O)
void printAMIndexedWB (const MCInst *MI, unsigned OpNum, unsigned Scale, raw_ostream &O)
template<int Scale>
void printUImm12Offset (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
template<int BitWidth>
void printAMIndexedWB (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printAMNoIndex (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
template<int Scale>
void printImmScale (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
template<int Scale, int Offset>
void printImmRangeScale (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
template<bool IsSVEPrefetch = false>
void printPrefetchOp (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printRPRFMOperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printPSBHintOp (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printBTIHintOp (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printFPImmOperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printVectorList (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O, StringRef LayoutSuffix)
void printMatrixTileList (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printImplicitlyTypedVectorList (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
 Print a list of vector registers where the type suffix is implicit (i.e.
template<unsigned NumLanes, char LaneKind>
void printTypedVectorList (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
template<unsigned Scale = 1>
void printVectorIndex (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
template<unsigned Scale = 1>
void printMatrixIndex (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printAdrAdrpLabel (const MCInst *MI, uint64_t Address, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printBarrierOption (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printBarriernXSOption (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printMSRSystemRegister (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printMRSSystemRegister (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printSystemPStateField (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printSIMDType10Operand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
template<int EltSize>
void printPredicateAsCounter (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
template<int64_t Angle, int64_t Remainder>
void printComplexRotationOp (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
template<unsigned size>
void printGPRSeqPairsClassOperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
template<typename T>
void printImm8OptLsl (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
template<typename T>
void printSVELogicalImm (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printSVEPattern (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printSVEVecLenSpecifier (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
template<bool IsVertical>
void printMatrixTileVector (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printMatrixTile (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
template<int EltSize>
void printMatrix (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printSVCROp (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
template<char = 0>
void printSVERegOp (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printGPR64as32 (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printGPR64x8 (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printSyspXzrPair (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
template<int Width>
void printZPRasFPR (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
template<unsigned ImmIs0, unsigned ImmIs1>
void printExactFPImm (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printPHintOp (const MCInst *MI, unsigned OpNum, 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.
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 244 of file AArch64InstPrinter.h.

Constructor & Destructor Documentation

◆ AArch64AppleInstPrinter()

AArch64AppleInstPrinter::AArch64AppleInstPrinter ( const MCAsmInfo & MAI,
const MCInstrInfo & MII,
const MCRegisterInfo & MRI )

Member Function Documentation

◆ getMnemonic()

std::pair< const char *, uint64_t > llvm::AArch64AppleInstPrinter::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::AArch64AppleInstPrinter::getRegisterName ( MCRegister Reg,
unsigned AltIdx = AArch64::NoRegAltName )
static

References Reg.

Referenced by getRegName().

◆ getRegName()

StringRef AArch64AppleInstPrinter::getRegName ( MCRegister Reg) const
overridevirtual

Reimplemented from llvm::AArch64InstPrinter.

Definition at line 835 of file AArch64InstPrinter.cpp.

References getRegisterName().

◆ printAliasInstr()

bool llvm::AArch64AppleInstPrinter::printAliasInstr ( const MCInst * MI,
uint64_t Address,
const MCSubtargetInfo & STI,
raw_ostream & O )
overridevirtual

Reimplemented from llvm::AArch64InstPrinter.

References llvm::Address, and MI.

◆ printCustomAliasOperand()

void llvm::AArch64AppleInstPrinter::printCustomAliasOperand ( const MCInst * MI,
uint64_t Address,
unsigned OpIdx,
unsigned PrintMethodIdx,
const MCSubtargetInfo & STI,
raw_ostream & O )
overridevirtual

Reimplemented from llvm::AArch64InstPrinter.

References llvm::Address, MI, OpIdx, and Reg.

◆ printInst()

void AArch64AppleInstPrinter::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 776 of file AArch64InstPrinter.cpp.

References llvm::Address, assert(), getLdStNInstrDesc(), llvm::MCInstPrinter::Immediate, isTblTbxInstruction(), llvm::MCInstPrinter::markup(), MI, llvm::MCInstPrinter::printAnnotation(), llvm::AArch64InstPrinter::printInst(), llvm::AArch64InstPrinter::printRegName(), and llvm::AArch64InstPrinter::printVectorList().

◆ printInstruction()

void llvm::AArch64AppleInstPrinter::printInstruction ( const MCInst * MI,
uint64_t Address,
const MCSubtargetInfo & STI,
raw_ostream & O )
overridevirtual

Reimplemented from llvm::AArch64InstPrinter.

References llvm::Address, and MI.


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