LLVM 22.0.0git
llvm::ARMInstPrinter Class Reference

#include "Target/ARM/MCTargetDesc/ARMInstPrinter.h"

Inheritance diagram for llvm::ARMInstPrinter:
[legend]

Public Member Functions

 ARMInstPrinter (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.
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)
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)
void printOperand (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
void printOperand (const MCInst *MI, uint64_t Address, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printSORegRegOperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printSORegImmOperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printAddrModeTBB (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printAddrModeTBH (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printAddrMode2Operand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printAM2PostIndexOp (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printAM2PreOrOffsetIndexOp (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printAddrMode2OffsetOperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
template<bool AlwaysPrintImm0>
void printAddrMode3Operand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printAddrMode3OffsetOperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printAM3PreOrOffsetIndexOp (const MCInst *MI, unsigned Op, raw_ostream &O, bool AlwaysPrintImm0)
void printPostIdxImm8Operand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printPostIdxRegOperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printPostIdxImm8s4Operand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printLdStmModeOperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
template<bool AlwaysPrintImm0>
void printAddrMode5Operand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
template<bool AlwaysPrintImm0>
void printAddrMode5FP16Operand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printAddrMode6Operand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printAddrMode7Operand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printAddrMode6OffsetOperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printBitfieldInvMaskImmOperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printMemBOption (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printInstSyncBOption (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printTraceSyncBOption (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printShiftImmOperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printPKHLSLShiftImm (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printPKHASRShiftImm (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
template<unsigned scale>
void printAdrLabelOperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
template<unsigned scale>
void printAdrLabelOperand (const MCInst *MI, uint64_t, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printThumbS4ImmOperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printThumbSRImm (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printThumbITMask (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printThumbAddrModeRROperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printThumbAddrModeImm5SOperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O, unsigned Scale)
void printThumbAddrModeImm5S1Operand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printThumbAddrModeImm5S2Operand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printThumbAddrModeImm5S4Operand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printThumbAddrModeSPOperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printT2SOOperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
template<bool AlwaysPrintImm0>
void printAddrModeImm12Operand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
template<bool AlwaysPrintImm0>
void printT2AddrModeImm8Operand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
template<bool AlwaysPrintImm0>
void printT2AddrModeImm8s4Operand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printT2AddrModeImm0_1020s4Operand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printT2AddrModeImm8OffsetOperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printT2AddrModeImm8s4OffsetOperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printT2AddrModeSoRegOperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printSetendOperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printCPSIMod (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printCPSIFlag (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printMSRMaskOperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printBankedRegOperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printPredicateOperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printMandatoryPredicateOperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printMandatoryRestrictedPredicateOperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printMandatoryInvertedPredicateOperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printSBitModifierOperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printRegisterList (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printNoHashImmediate (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printPImmediate (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printCImmediate (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printCoprocOptionImm (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 printVMOVModImmOperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printImmPlusOneOperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printRotImmOperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printModImmOperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printGPRPairOperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printPCLabel (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printThumbLdrLabelOperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printThumbLdrLabelOperand (const MCInst *MI, uint64_t, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printFBits16 (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printFBits32 (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 printVectorListOne (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printVectorListTwo (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printVectorListTwoSpaced (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printVectorListThree (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printVectorListFour (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printVectorListOneAllLanes (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printVectorListTwoAllLanes (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printVectorListThreeAllLanes (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printVectorListFourAllLanes (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printVectorListTwoSpacedAllLanes (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printVectorListThreeSpacedAllLanes (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printVectorListFourSpacedAllLanes (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printVectorListThreeSpaced (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printVectorListFourSpaced (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
template<unsigned NumRegs>
void printMVEVectorList (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
template<int64_t Angle, int64_t Remainder>
void printComplexRotationOp (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printVPTPredicateOperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printVPTMask (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
template<int shift>
void printMveAddrModeRQOperand (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
void printMveSaturateOp (const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
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=ARM::NoRegAltName)

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 21 of file ARMInstPrinter.h.

Constructor & Destructor Documentation

◆ ARMInstPrinter()

Member Function Documentation

◆ applyTargetSpecificCLOption()

bool ARMInstPrinter::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 70 of file ARMInstPrinter.cpp.

◆ getMnemonic()

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

◆ printAddrMode2OffsetOperand()

◆ printAddrMode2Operand()

◆ printAddrMode3OffsetOperand()

◆ printAddrMode3Operand()

template<bool AlwaysPrintImm0>
void ARMInstPrinter::printAddrMode3Operand ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

◆ printAddrMode5FP16Operand()

◆ printAddrMode5Operand()

◆ printAddrMode6OffsetOperand()

void ARMInstPrinter::printAddrMode6OffsetOperand ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 763 of file ARMInstPrinter.cpp.

References llvm::MCOperand::getReg(), MI, and printRegName().

◆ printAddrMode6Operand()

void ARMInstPrinter::printAddrMode6Operand ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

◆ printAddrMode7Operand()

void ARMInstPrinter::printAddrMode7Operand ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

◆ printAddrModeImm12Operand()

◆ printAddrModeTBB()

void ARMInstPrinter::printAddrModeTBB ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

◆ printAddrModeTBH()

◆ printAdrLabelOperand() [1/2]

template<unsigned scale>
void llvm::ARMInstPrinter::printAdrLabelOperand ( const MCInst * MI,
uint64_t ,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )
inline

Definition at line 117 of file ARMInstPrinter.h.

References MI, and printAdrLabelOperand().

◆ printAdrLabelOperand() [2/2]

◆ printAliasInstr()

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

References llvm::Address, and MI.

Referenced by printInst().

◆ printAM2PostIndexOp()

void llvm::ARMInstPrinter::printAM2PostIndexOp ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

References MI.

◆ printAM2PreOrOffsetIndexOp()

◆ printAM3PreOrOffsetIndexOp()

◆ printBankedRegOperand()

void ARMInstPrinter::printBankedRegOperand ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 988 of file ARMInstPrinter.cpp.

References assert(), and MI.

◆ printBitfieldInvMaskImmOperand()

void ARMInstPrinter::printBitfieldInvMaskImmOperand ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

◆ printCImmediate()

void ARMInstPrinter::printCImmediate ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 1060 of file ARMInstPrinter.cpp.

References MI.

◆ printComplexRotationOp()

template<int64_t Angle, int64_t Remainder>
void ARMInstPrinter::printComplexRotationOp ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 1696 of file ARMInstPrinter.cpp.

References MI.

◆ printCoprocOptionImm()

void ARMInstPrinter::printCoprocOptionImm ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 1066 of file ARMInstPrinter.cpp.

References MI.

◆ printCPSIFlag()

void ARMInstPrinter::printCPSIFlag ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 894 of file ARMInstPrinter.cpp.

References llvm::ARM_PROC::IFlagsToString(), and MI.

◆ printCPSIMod()

void ARMInstPrinter::printCPSIMod ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 888 of file ARMInstPrinter.cpp.

References llvm::ARM_PROC::IModToString(), and MI.

◆ printCustomAliasOperand()

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

References llvm::Address, MI, and OpIdx.

◆ printFBits16()

void ARMInstPrinter::printFBits16 ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

◆ printFBits32()

void ARMInstPrinter::printFBits32 ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

◆ printFPImmOperand()

void ARMInstPrinter::printFPImmOperand ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

◆ printGPRPairOperand()

void ARMInstPrinter::printGPRPairOperand ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 869 of file ARMInstPrinter.cpp.

References MI, llvm::MCInstPrinter::MRI, and printRegName().

◆ printImmPlusOneOperand()

void ARMInstPrinter::printImmPlusOneOperand ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

◆ printInst()

void ARMInstPrinter::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 86 of file ARMInstPrinter.cpp.

References llvm::MCInst::addOperand(), llvm::Address, assert(), llvm::MCRegisterClass::contains(), llvm::MCOperand::createReg(), llvm::MCOperand::getImm(), llvm::MCOperand::getReg(), llvm::ARM_AM::getShiftOpcStr(), llvm::ARM_AM::getSORegOffset(), llvm::ARM_AM::getSORegShOp(), llvm::MCInstPrinter::Immediate, isStore(), llvm::MCInstPrinter::markup(), MI, llvm::MCInstPrinter::MRI, printAliasInstr(), llvm::MCInstPrinter::printAnnotation(), printInstruction(), printPredicateOperand(), printRegisterList(), printRegName(), printSBitModifierOperand(), llvm::ARM_AM::rrx, llvm::MCInst::setOpcode(), and translateShiftImm().

◆ printInstruction()

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

References llvm::Address, and MI.

Referenced by printInst().

◆ printInstSyncBOption()

void ARMInstPrinter::printInstSyncBOption ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 797 of file ARMInstPrinter.cpp.

References llvm::ARM_ISB::InstSyncBOptToString(), and MI.

◆ printLdStmModeOperand()

void ARMInstPrinter::printLdStmModeOperand ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

◆ printMandatoryInvertedPredicateOperand()

void ARMInstPrinter::printMandatoryInvertedPredicateOperand ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

◆ printMandatoryPredicateOperand()

void ARMInstPrinter::printMandatoryPredicateOperand ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 1022 of file ARMInstPrinter.cpp.

References llvm::ARMCondCodeToString(), and MI.

Referenced by printMandatoryRestrictedPredicateOperand().

◆ printMandatoryRestrictedPredicateOperand()

void ARMInstPrinter::printMandatoryRestrictedPredicateOperand ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 1013 of file ARMInstPrinter.cpp.

References llvm::ARMCC::HS, MI, and printMandatoryPredicateOperand().

◆ printMemBOption()

void ARMInstPrinter::printMemBOption ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

◆ printModImmOperand()

void ARMInstPrinter::printModImmOperand ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

◆ printMSRMaskOperand()

◆ printMveAddrModeRQOperand()

template<int shift>
void ARMInstPrinter::printMveAddrModeRQOperand ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

◆ printMveSaturateOp()

void ARMInstPrinter::printMveSaturateOp ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 1727 of file ARMInstPrinter.cpp.

References assert(), and MI.

◆ printMVEVectorList()

template<unsigned NumRegs>
void ARMInstPrinter::printMVEVectorList ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 1682 of file ARMInstPrinter.cpp.

References MI, llvm::MCInstPrinter::MRI, and printRegName().

◆ printNoHashImmediate()

void ARMInstPrinter::printNoHashImmediate ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 1048 of file ARMInstPrinter.cpp.

References MI.

◆ printOperand() [1/2]

◆ printOperand() [2/2]

◆ printPCLabel()

void ARMInstPrinter::printPCLabel ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 1072 of file ARMInstPrinter.cpp.

References llvm_unreachable, and MI.

◆ printPImmediate()

void ARMInstPrinter::printPImmediate ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 1054 of file ARMInstPrinter.cpp.

References MI.

◆ printPKHASRShiftImm()

void ARMInstPrinter::printPKHASRShiftImm ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

◆ printPKHLSLShiftImm()

void ARMInstPrinter::printPKHLSLShiftImm ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

◆ printPostIdxImm8Operand()

void ARMInstPrinter::printPostIdxImm8Operand ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

◆ printPostIdxImm8s4Operand()

void ARMInstPrinter::printPostIdxImm8s4Operand ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

◆ printPostIdxRegOperand()

void ARMInstPrinter::printPostIdxRegOperand ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

◆ printPredicateOperand()

void ARMInstPrinter::printPredicateOperand ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 1002 of file ARMInstPrinter.cpp.

References llvm::ARMCC::AL, llvm::ARMCondCodeToString(), and MI.

Referenced by printInst().

◆ printRegisterList()

void ARMInstPrinter::printRegisterList ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

◆ printRegName()

◆ printRotImmOperand()

void ARMInstPrinter::printRotImmOperand ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

◆ printSBitModifierOperand()

void ARMInstPrinter::printSBitModifierOperand ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 1038 of file ARMInstPrinter.cpp.

References assert(), and MI.

Referenced by printInst().

◆ printSetendOperand()

void ARMInstPrinter::printSetendOperand ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 878 of file ARMInstPrinter.cpp.

References MI.

◆ printShiftImmOperand()

void ARMInstPrinter::printShiftImmOperand ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

◆ printSORegImmOperand()

◆ printSORegRegOperand()

◆ printT2AddrModeImm0_1020s4Operand()

◆ printT2AddrModeImm8OffsetOperand()

void ARMInstPrinter::printT2AddrModeImm8OffsetOperand ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

◆ printT2AddrModeImm8Operand()

template<bool AlwaysPrintImm0>
void ARMInstPrinter::printT2AddrModeImm8Operand ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

◆ printT2AddrModeImm8s4OffsetOperand()

void ARMInstPrinter::printT2AddrModeImm8s4OffsetOperand ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

◆ printT2AddrModeImm8s4Operand()

◆ printT2AddrModeSoRegOperand()

◆ printT2SOOperand()

◆ printThumbAddrModeImm5S1Operand()

void ARMInstPrinter::printThumbAddrModeImm5S1Operand ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 1172 of file ARMInstPrinter.cpp.

References MI, and printThumbAddrModeImm5SOperand().

◆ printThumbAddrModeImm5S2Operand()

void ARMInstPrinter::printThumbAddrModeImm5S2Operand ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 1179 of file ARMInstPrinter.cpp.

References MI, and printThumbAddrModeImm5SOperand().

◆ printThumbAddrModeImm5S4Operand()

void ARMInstPrinter::printThumbAddrModeImm5S4Operand ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 1186 of file ARMInstPrinter.cpp.

References MI, and printThumbAddrModeImm5SOperand().

◆ printThumbAddrModeImm5SOperand()

◆ printThumbAddrModeRROperand()

void ARMInstPrinter::printThumbAddrModeRROperand ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

◆ printThumbAddrModeSPOperand()

void ARMInstPrinter::printThumbAddrModeSPOperand ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 1193 of file ARMInstPrinter.cpp.

References MI, and printThumbAddrModeImm5SOperand().

◆ printThumbITMask()

void ARMInstPrinter::printThumbITMask ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 1113 of file ARMInstPrinter.cpp.

References assert(), llvm::countr_zero(), and MI.

◆ printThumbLdrLabelOperand() [1/2]

void llvm::ARMInstPrinter::printThumbLdrLabelOperand ( const MCInst * MI,
uint64_t ,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )
inline

Definition at line 219 of file ARMInstPrinter.h.

References MI, and printThumbLdrLabelOperand().

◆ printThumbLdrLabelOperand() [2/2]

◆ printThumbS4ImmOperand()

void ARMInstPrinter::printThumbS4ImmOperand ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

◆ printThumbSRImm()

void ARMInstPrinter::printThumbSRImm ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

◆ printTraceSyncBOption()

void ARMInstPrinter::printTraceSyncBOption ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 804 of file ARMInstPrinter.cpp.

References MI, and llvm::ARM_TSB::TraceSyncBOptToString().

◆ printVectorIndex()

void ARMInstPrinter::printVectorIndex ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 1474 of file ARMInstPrinter.cpp.

References MI.

◆ printVectorListFour()

void ARMInstPrinter::printVectorListFour ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 1529 of file ARMInstPrinter.cpp.

References MI, and printRegName().

◆ printVectorListFourAllLanes()

void ARMInstPrinter::printVectorListFourAllLanes ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 1585 of file ARMInstPrinter.cpp.

References MI, and printRegName().

◆ printVectorListFourSpaced()

void ARMInstPrinter::printVectorListFourSpaced ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 1664 of file ARMInstPrinter.cpp.

References MI, and printRegName().

◆ printVectorListFourSpacedAllLanes()

void ARMInstPrinter::printVectorListFourSpacedAllLanes ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 1631 of file ARMInstPrinter.cpp.

References MI, and printRegName().

◆ printVectorListOne()

void ARMInstPrinter::printVectorListOne ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 1480 of file ARMInstPrinter.cpp.

References MI, and printRegName().

◆ printVectorListOneAllLanes()

void ARMInstPrinter::printVectorListOneAllLanes ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 1546 of file ARMInstPrinter.cpp.

References MI, and printRegName().

◆ printVectorListThree()

void ARMInstPrinter::printVectorListThree ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 1514 of file ARMInstPrinter.cpp.

References MI, and printRegName().

◆ printVectorListThreeAllLanes()

void ARMInstPrinter::printVectorListThreeAllLanes ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 1569 of file ARMInstPrinter.cpp.

References MI, and printRegName().

◆ printVectorListThreeSpaced()

void ARMInstPrinter::printVectorListThreeSpaced ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 1648 of file ARMInstPrinter.cpp.

References MI, and printRegName().

◆ printVectorListThreeSpacedAllLanes()

void ARMInstPrinter::printVectorListThreeSpacedAllLanes ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 1616 of file ARMInstPrinter.cpp.

References MI, and printRegName().

◆ printVectorListTwo()

void ARMInstPrinter::printVectorListTwo ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 1488 of file ARMInstPrinter.cpp.

References MI, llvm::MCInstPrinter::MRI, and printRegName().

◆ printVectorListTwoAllLanes()

void ARMInstPrinter::printVectorListTwoAllLanes ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 1555 of file ARMInstPrinter.cpp.

References MI, llvm::MCInstPrinter::MRI, and printRegName().

◆ printVectorListTwoSpaced()

void ARMInstPrinter::printVectorListTwoSpaced ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 1501 of file ARMInstPrinter.cpp.

References MI, llvm::MCInstPrinter::MRI, and printRegName().

◆ printVectorListTwoSpacedAllLanes()

void ARMInstPrinter::printVectorListTwoSpacedAllLanes ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 1603 of file ARMInstPrinter.cpp.

References MI, llvm::MCInstPrinter::MRI, and printRegName().

◆ printVMOVModImmOperand()

void ARMInstPrinter::printVMOVModImmOperand ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

◆ printVPTMask()

void ARMInstPrinter::printVPTMask ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 1711 of file ARMInstPrinter.cpp.

References assert(), llvm::countr_zero(), MI, and T.

◆ printVPTPredicateOperand()

void ARMInstPrinter::printVPTPredicateOperand ( const MCInst * MI,
unsigned OpNum,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 1703 of file ARMInstPrinter.cpp.

References llvm::ARMVPTPredToString(), MI, and llvm::ARMVCC::None.


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