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

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

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

Public Member Functions

 AArch64InstPrinter (const MCAsmInfo &MAI, const MCInstrInfo &MII, const MCRegisterInfo &MRI)
 
void printInst (const MCInst *MI, raw_ostream &O, StringRef Annot, const MCSubtargetInfo &STI) override
 Print the specified MCInst to the specified raw_ostream. More...
 
void printRegName (raw_ostream &OS, unsigned RegNo) const override
 Print the assembler register name. More...
 
virtual void printInstruction (const MCInst *MI, const MCSubtargetInfo &STI, raw_ostream &O)
 
virtual bool printAliasInstr (const MCInst *MI, const MCSubtargetInfo &STI, raw_ostream &O)
 
virtual void printCustomAliasOperand (const MCInst *MI, unsigned OpIdx, unsigned PrintMethodIdx, const MCSubtargetInfo &STI, raw_ostream &O)
 
virtual StringRef getRegName (unsigned RegNo) const
 
- 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. More...
 
StringRef getOpcodeName (unsigned Opcode) const
 Return the name of the specified opcode enum (e.g. More...
 
bool getUseMarkup () const
 
void setUseMarkup (bool Value)
 
StringRef markup (StringRef s) const
 Utility functions to make adding mark ups simpler. More...
 
StringRef markup (StringRef a, StringRef b) const
 
bool getPrintImmHex () const
 
void setPrintImmHex (bool Value)
 
HexStyle::Style getPrintHexStyle () const
 
void setPrintHexStyle (HexStyle::Style Value)
 
format_object< int64_t > formatImm (int64_t Value) const
 Utility function to print immediates in decimal or hex. More...
 
format_object< int64_t > formatDec (int64_t Value) const
 Utility functions to print decimal/hexadecimal values. More...
 
format_object< int64_t > formatHex (int64_t Value) const
 
format_object< uint64_t > formatHex (uint64_t Value) const
 

Static Public Member Functions

static const chargetRegisterName (unsigned RegNo, unsigned AltIdx=AArch64::NoRegAltName)
 

Protected Member Functions

bool printSysAlias (const MCInst *MI, const MCSubtargetInfo &STI, raw_ostream &O)
 
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<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, 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<bool IsSVEPrefetch = false>
void printPrefetchOp (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 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. More...
 
template<unsigned NumLanes, char LaneKind>
void printTypedVectorList (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printVectorIndex (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printAdrpLabel (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printBarrierOption (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<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)
 
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)
 
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. More...
 

Additional Inherited Members

- Protected Attributes inherited from llvm::MCInstPrinter
raw_ostreamCommentStream = nullptr
 A stream that comments can be emitted to if desired. More...
 
const MCAsmInfoMAI
 
const MCInstrInfoMII
 
const MCRegisterInfoMRI
 
bool UseMarkup = false
 True if we are printing marked up assembly. More...
 
bool PrintImmHex = false
 True if we are printing immediates as hex. More...
 
HexStyle::Style PrintHexStyle = HexStyle::C
 Which style to use for printing hexadecimal values. More...
 

Detailed Description

Definition at line 24 of file AArch64InstPrinter.h.

Constructor & Destructor Documentation

◆ AArch64InstPrinter()

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

Definition at line 45 of file AArch64InstPrinter.cpp.

Member Function Documentation

◆ getRegisterName()

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

◆ getRegName()

virtual StringRef llvm::AArch64InstPrinter::getRegName ( unsigned  RegNo) const
inlinevirtual

◆ printAddSubImm()

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

◆ printAdrpLabel()

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

◆ printAliasInstr()

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

Reimplemented in llvm::AArch64AppleInstPrinter.

◆ printAlignedLabel()

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

◆ printAMIndexedWB() [1/2]

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

◆ printAMIndexedWB() [2/2]

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

◆ printAMNoIndex()

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

◆ printArithExtend()

void AArch64InstPrinter::printArithExtend ( 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

Definition at line 1449 of file AArch64InstPrinter.cpp.

References llvm::MCOperand::getImm(), and llvm::MCInst::getOperand().

Referenced by printAMIndexedWB().

◆ printCondCode()

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

◆ printCustomAliasOperand()

virtual void llvm::AArch64InstPrinter::printCustomAliasOperand ( const MCInst MI,
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

Definition at line 1568 of file AArch64InstPrinter.cpp.

References llvm::MCOperand::getImm(), and llvm::MCInst::getOperand().

Referenced by printAMIndexedWB().

◆ printExtendedRegister()

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

◆ 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

◆ 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

Definition at line 883 of file AArch64InstPrinter.cpp.

References llvm::format(), llvm::MCOperand::getImm(), and llvm::MCInst::getOperand().

Referenced by getRegName().

◆ 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 1298 of file AArch64InstPrinter.cpp.

References printVectorList().

Referenced by printAMIndexedWB().

◆ printInst()

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

◆ printInstruction()

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

Reimplemented in llvm::AArch64AppleInstPrinter.

◆ 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

◆ printMemExtend() [1/2]

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

◆ printMemExtend() [2/2]

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

◆ 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

◆ printPostIncOperand() [1/2]

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

◆ printPostIncOperand() [2/2]

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

◆ 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

◆ printRegName()

void AArch64InstPrinter::printRegName ( raw_ostream OS,
unsigned  RegNo 
) const
overridevirtual

Print the assembler register name.

Reimplemented from llvm::MCInstPrinter.

Definition at line 55 of file AArch64InstPrinter.cpp.

References llvm::AArch64AppleInstPrinter::getRegisterName().

◆ 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 1027 of file AArch64InstPrinter.cpp.

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

Referenced by printMemExtend().

◆ printShiftedRegister()

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

◆ 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

◆ 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

◆ 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

◆ 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 1306 of file AArch64InstPrinter.cpp.

References llvm::itostr(), and printVectorList().

Referenced by printAMIndexedWB().

◆ printUImm12Offset() [1/2]

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

◆ printUImm12Offset() [2/2]

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

Definition at line 109 of file AArch64InstPrinter.h.

References printUImm12Offset().

◆ printVectorIndex()

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

Definition at line 1318 of file AArch64InstPrinter.cpp.

References llvm::MCOperand::getImm(), and llvm::MCInst::getOperand().

Referenced by printAMIndexedWB().

◆ 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

◆ printZPRasFPR()

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

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