LLVM 20.0.0git
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
llvm::AArch64InstPrinter Class Reference

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

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

Public Member Functions

 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).
 
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) 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, unsigned AltIdx=AArch64::NoRegAltName)
 

Protected Member Functions

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.
 

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 23 of file AArch64InstPrinter.h.

Constructor & Destructor Documentation

◆ AArch64InstPrinter()

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

Definition at line 43 of file AArch64InstPrinter.cpp.

Member Function Documentation

◆ applyTargetSpecificCLOption()

bool AArch64InstPrinter::applyTargetSpecificCLOption ( StringRef  Opt)
overridevirtual

Customize the printer according to a command line option.

Returns
true if the option is recognized and applied.

Reimplemented from llvm::MCInstPrinter.

Definition at line 53 of file AArch64InstPrinter.cpp.

References llvm::MCInstPrinter::PrintAliases.

◆ getMnemonic()

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

Reimplemented in llvm::AArch64AppleInstPrinter.

◆ getRegisterName()

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

◆ getRegName()

StringRef AArch64InstPrinter::getRegName ( MCRegister  Reg) const
virtual

Reimplemented in llvm::AArch64AppleInstPrinter.

Definition at line 70 of file AArch64InstPrinter.cpp.

References getRegisterName().

◆ printAddSubImm()

void AArch64InstPrinter::printAddSubImm ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printAdrAdrpLabel()

void AArch64InstPrinter::printAdrAdrpLabel ( const MCInst MI,
uint64_t  Address,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printAliasInstr()

virtual bool llvm::AArch64InstPrinter::printAliasInstr ( const MCInst MI,
uint64_t  Address,
const MCSubtargetInfo STI,
raw_ostream O 
)
virtual

Reimplemented in llvm::AArch64AppleInstPrinter.

Referenced by printInst().

◆ printAlignedLabel()

void AArch64InstPrinter::printAlignedLabel ( const MCInst MI,
uint64_t  Address,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printAMIndexedWB() [1/2]

template<int BitWidth>
void llvm::AArch64InstPrinter::printAMIndexedWB ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
inlineprotected

Definition at line 125 of file AArch64InstPrinter.h.

References llvm::BitWidth, MI, and printAMIndexedWB().

◆ printAMIndexedWB() [2/2]

void AArch64InstPrinter::printAMIndexedWB ( const MCInst MI,
unsigned  OpNum,
unsigned  Scale,
raw_ostream O 
)
protected

◆ printAMNoIndex()

void AArch64InstPrinter::printAMNoIndex ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

Definition at line 1402 of file AArch64InstPrinter.cpp.

References MI, and printRegName().

◆ printArithExtend()

void AArch64InstPrinter::printArithExtend ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printBarriernXSOption()

void AArch64InstPrinter::printBarriernXSOption ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printBarrierOption()

void AArch64InstPrinter::printBarrierOption ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printBTIHintOp()

void AArch64InstPrinter::printBTIHintOp ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printComplexRotationOp()

template<int64_t Angle, int64_t Remainder>
void AArch64InstPrinter::printComplexRotationOp ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printCondCode()

void AArch64InstPrinter::printCondCode ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

Definition at line 1388 of file AArch64InstPrinter.cpp.

References CC, llvm::AArch64CC::getCondCodeName(), and MI.

◆ printCustomAliasOperand()

virtual void llvm::AArch64InstPrinter::printCustomAliasOperand ( const MCInst MI,
uint64_t  Address,
unsigned  OpIdx,
unsigned  PrintMethodIdx,
const MCSubtargetInfo STI,
raw_ostream O 
)
virtual

Reimplemented in llvm::AArch64AppleInstPrinter.

◆ printExactFPImm()

template<unsigned ImmIs0, unsigned ImmIs1>
void AArch64InstPrinter::printExactFPImm ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printExtendedRegister()

void AArch64InstPrinter::printExtendedRegister ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

Definition at line 1278 of file AArch64InstPrinter.cpp.

References MI, printArithExtend(), and printRegName().

◆ printFPImmOperand()

void AArch64InstPrinter::printFPImmOperand ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printGPR64as32()

void AArch64InstPrinter::printGPR64as32 ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

Definition at line 2121 of file AArch64InstPrinter.cpp.

References llvm::getWRegFromXReg(), MI, and printRegName().

◆ printGPR64x8()

void AArch64InstPrinter::printGPR64x8 ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printGPRSeqPairsClassOperand()

template<unsigned size>
void AArch64InstPrinter::printGPRSeqPairsClassOperand ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printImm()

void AArch64InstPrinter::printImm ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printImm8OptLsl()

template<typename T >
void AArch64InstPrinter::printImm8OptLsl ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printImmHex()

void AArch64InstPrinter::printImmHex ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printImmRangeScale()

template<int Scale, int Offset>
void AArch64InstPrinter::printImmRangeScale ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

Definition at line 1419 of file AArch64InstPrinter.cpp.

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

◆ printImmScale()

template<int Scale>
void AArch64InstPrinter::printImmScale ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printImmSVE()

template<typename T >
void AArch64InstPrinter::printImmSVE ( T  Value,
raw_ostream O 
)
protected

◆ printImplicitlyTypedVectorList()

void AArch64InstPrinter::printImplicitlyTypedVectorList ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

Print a list of vector registers where the type suffix is implicit (i.e.

attached to the instruction rather than the registers).

Definition at line 1745 of file AArch64InstPrinter.cpp.

References MI, and printVectorList().

◆ printInst()

void AArch64InstPrinter::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.

Reimplemented in llvm::AArch64AppleInstPrinter.

Definition at line 74 of file AArch64InstPrinter.cpp.

References llvm::Address, llvm::atomicBarrierDroppedOnZero(), llvm::BitWidth, llvm::MCInstPrinter::CommentStream, llvm::AArch64_AM::decodeLogicalImmediate(), llvm::MCInstPrinter::formatDec(), llvm::MCInstPrinter::formatHex(), llvm::MCInstPrinter::formatImm(), llvm::MCAsmInfo::getCommentString(), llvm::MCOperand::getImm(), llvm::MCInstPrinter::getPrintImmHex(), llvm::MCOperand::getReg(), llvm::getWRegFromXReg(), llvm::MCSubtargetInfo::hasFeature(), llvm::MCInstPrinter::Immediate, llvm::AArch64_AM::isAnyMOVWMovAlias(), llvm::MCOperand::isImm(), llvm::AArch64_AM::isMOVNMovAlias(), llvm::AArch64_AM::isMOVZMovAlias(), llvm::MCInstPrinter::MAI, llvm::MCInstPrinter::markup(), MI, llvm::Pass::print(), llvm::MCInstPrinter::PrintAliases, printAliasInstr(), llvm::MCInstPrinter::printAnnotation(), printInstruction(), printRangePrefetchAlias(), printRegName(), printSysAlias(), printSyspAlias(), and llvm::SignExtend64().

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

◆ printInstruction()

virtual void llvm::AArch64InstPrinter::printInstruction ( const MCInst MI,
uint64_t  Address,
const MCSubtargetInfo STI,
raw_ostream O 
)
virtual

Reimplemented in llvm::AArch64AppleInstPrinter.

Referenced by printInst().

◆ printInverseCondCode()

void AArch64InstPrinter::printInverseCondCode ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printLogicalImm()

template<typename T >
void AArch64InstPrinter::printLogicalImm ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printMatrix()

template<int EltSize>
void AArch64InstPrinter::printMatrix ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printMatrixIndex()

template<unsigned Scale>
void AArch64InstPrinter::printMatrixIndex ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

Definition at line 1777 of file AArch64InstPrinter.cpp.

References MI.

◆ printMatrixTile()

void AArch64InstPrinter::printMatrixTile ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printMatrixTileList()

void AArch64InstPrinter::printMatrixTileList ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

Definition at line 1636 of file AArch64InstPrinter.cpp.

References I, MI, and printRegName().

◆ printMatrixTileVector()

template<bool IsVertical>
void AArch64InstPrinter::printMatrixTileVector ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printMemExtend() [1/2]

template<char SrcRegKind, unsigned Width>
void llvm::AArch64InstPrinter::printMemExtend ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
inlineprotected

Definition at line 100 of file AArch64InstPrinter.h.

References MI, and printMemExtend().

◆ printMemExtend() [2/2]

void AArch64InstPrinter::printMemExtend ( const MCInst MI,
unsigned  OpNum,
raw_ostream O,
char  SrcRegKind,
unsigned  Width 
)
protected

Definition at line 1332 of file AArch64InstPrinter.cpp.

References MI, and printMemExtendImpl().

Referenced by printMemExtend().

◆ printMemExtendImpl()

void AArch64InstPrinter::printMemExtendImpl ( bool  SignExtend,
bool  DoShift,
unsigned  Width,
char  SrcRegKind,
raw_ostream O 
)
protected

◆ printMRSSystemRegister()

void AArch64InstPrinter::printMRSSystemRegister ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printMSRSystemRegister()

void AArch64InstPrinter::printMSRSystemRegister ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printOperand()

void AArch64InstPrinter::printOperand ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printPHintOp()

void AArch64InstPrinter::printPHintOp ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printPostIncOperand() [1/2]

template<int Amount>
void llvm::AArch64InstPrinter::printPostIncOperand ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)
inlineprotected

Definition at line 73 of file AArch64InstPrinter.h.

References MI, and printPostIncOperand().

◆ printPostIncOperand() [2/2]

void AArch64InstPrinter::printPostIncOperand ( const MCInst MI,
unsigned  OpNo,
unsigned  Imm,
raw_ostream O 
)
protected

◆ printPredicateAsCounter()

template<int EltSize>
void AArch64InstPrinter::printPredicateAsCounter ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

Definition at line 1359 of file AArch64InstPrinter.cpp.

References llvm_unreachable, and MI.

◆ printPrefetchOp()

template<bool IsSVEPrefetch>
void AArch64InstPrinter::printPrefetchOp ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printPSBHintOp()

void AArch64InstPrinter::printPSBHintOp ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printRangePrefetchAlias()

bool AArch64InstPrinter::printRangePrefetchAlias ( const MCInst MI,
const MCSubtargetInfo STI,
raw_ostream O,
StringRef  Annot 
)
protected

◆ printRegName() [1/2]

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

◆ printRegName() [2/2]

void AArch64InstPrinter::printRegName ( raw_ostream OS,
MCRegister  Reg,
unsigned  AltIdx 
)

◆ printRegWithShiftExtend()

template<bool SignExtend, int ExtWidth, char SrcRegKind, char Suffix>
void AArch64InstPrinter::printRegWithShiftExtend ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

Definition at line 1341 of file AArch64InstPrinter.cpp.

References assert(), MI, printMemExtendImpl(), and printOperand().

◆ printRPRFMOperand()

void AArch64InstPrinter::printRPRFMOperand ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

Definition at line 1454 of file AArch64InstPrinter.cpp.

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

◆ printShiftedRegister()

void AArch64InstPrinter::printShiftedRegister ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

Definition at line 1271 of file AArch64InstPrinter.cpp.

References MI, printRegName(), and printShifter().

◆ printShifter()

void AArch64InstPrinter::printShifter ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printSIMDType10Operand()

void AArch64InstPrinter::printSIMDType10Operand ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printSImm()

template<int Size>
void AArch64InstPrinter::printSImm ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printSVCROp()

void AArch64InstPrinter::printSVCROp ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printSVELogicalImm()

template<typename T >
void AArch64InstPrinter::printSVELogicalImm ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printSVEPattern()

void AArch64InstPrinter::printSVEPattern ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printSVERegOp()

template<char suffix>
void AArch64InstPrinter::printSVERegOp ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

Definition at line 2010 of file AArch64InstPrinter.cpp.

References llvm_unreachable, MI, and printRegName().

◆ printSVEVecLenSpecifier()

void AArch64InstPrinter::printSVEVecLenSpecifier ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

Definition at line 1994 of file AArch64InstPrinter.cpp.

References llvm_unreachable, and MI.

◆ printSysAlias()

bool AArch64InstPrinter::printSysAlias ( const MCInst MI,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printSysCROperand()

void AArch64InstPrinter::printSysCROperand ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

Definition at line 1218 of file AArch64InstPrinter.cpp.

References assert(), and MI.

◆ printSyspAlias()

bool AArch64InstPrinter::printSyspAlias ( const MCInst MI,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printSyspXzrPair()

void AArch64InstPrinter::printSyspXzrPair ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

Definition at line 2135 of file AArch64InstPrinter.cpp.

References assert(), getRegisterName(), and MI.

Referenced by printSyspAlias().

◆ printSystemPStateField()

void AArch64InstPrinter::printSystemPStateField ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

◆ printTypedVectorList()

template<unsigned NumLanes, char LaneKind>
void AArch64InstPrinter::printTypedVectorList ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

Definition at line 1753 of file AArch64InstPrinter.cpp.

References MI, and printVectorList().

◆ printUImm12Offset() [1/2]

template<int Scale>
void llvm::AArch64InstPrinter::printUImm12Offset ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
inlineprotected

Definition at line 119 of file AArch64InstPrinter.h.

References MI, and printUImm12Offset().

◆ printUImm12Offset() [2/2]

void AArch64InstPrinter::printUImm12Offset ( const MCInst MI,
unsigned  OpNum,
unsigned  Scale,
raw_ostream O 
)
protected

◆ printVectorIndex()

template<unsigned Scale>
void AArch64InstPrinter::printVectorIndex ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

Definition at line 1770 of file AArch64InstPrinter.cpp.

References MI.

◆ printVectorList()

void AArch64InstPrinter::printVectorList ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O,
StringRef  LayoutSuffix 
)
protected

◆ printVRegOperand()

void AArch64InstPrinter::printVRegOperand ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

Definition at line 1210 of file AArch64InstPrinter.cpp.

References assert(), MI, and printRegName().

◆ printZPRasFPR()

template<int Width>
void AArch64InstPrinter::printZPRasFPR ( const MCInst MI,
unsigned  OpNum,
const MCSubtargetInfo STI,
raw_ostream O 
)
protected

Definition at line 2093 of file AArch64InstPrinter.cpp.

References llvm::sampleprof::Base, llvm_unreachable, MI, and printRegName().


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