LLVM 17.0.0git
Public Member Functions | Static Public Member Functions | List of all members
llvm::AArch64AppleInstPrinter Class Reference

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

Inheritance diagram for llvm::AArch64AppleInstPrinter:
Inheritance graph
[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) 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) const override
 Print the assembler register name.
 
void printRegName (raw_ostream &OS, MCRegister Reg, unsigned AltIdx) const
 
std::pair< const char *, uint64_tgetMnemonic (const MCInst *MI) override
 Returns a pair containing the mnemonic for MI and the number of bits left for further processing by printInstruction (generated by tablegen).
 
virtual void printInstruction (const MCInst *MI, uint64_t Address, const MCSubtargetInfo &STI, raw_ostream &O)
 
virtual bool printAliasInstr (const MCInst *MI, uint64_t Address, const MCSubtargetInfo &STI, raw_ostream &O)
 
virtual void printCustomAliasOperand (const MCInst *MI, uint64_t Address, unsigned OpIdx, unsigned PrintMethodIdx, const MCSubtargetInfo &STI, raw_ostream &O)
 
virtual StringRef getRegName (MCRegister Reg) const
 
- 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)=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) const
 Print the assembler register name.
 
bool getUseMarkup () const
 
void setUseMarkup (bool Value)
 
StringRef markup (StringRef s) const
 Utility functions to make adding mark ups simpler.
 
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

- 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 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)
 
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)
 
- 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 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.
 

Detailed Description

Definition at line 240 of file AArch64InstPrinter.h.

Constructor & Destructor Documentation

◆ AArch64AppleInstPrinter()

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

Definition at line 49 of file AArch64InstPrinter.cpp.

Member Function Documentation

◆ getMnemonic()

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

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

Reimplemented from llvm::AArch64InstPrinter.

◆ getRegisterName()

static const char * llvm::AArch64AppleInstPrinter::getRegisterName ( MCRegister  Reg,
unsigned  AltIdx = AArch64::NoRegAltName 
)
static

Referenced by getRegName().

◆ getRegName()

StringRef AArch64AppleInstPrinter::getRegName ( MCRegister  Reg) const
overridevirtual

Reimplemented from llvm::AArch64InstPrinter.

Definition at line 828 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.

◆ 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.

◆ 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.

Reimplemented from llvm::AArch64InstPrinter.

Definition at line 769 of file AArch64InstPrinter.cpp.

References llvm::Address, assert(), getLdStNInstrDesc(), 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.


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