LLVM  16.0.0git
AArch64InstPrinter.h
Go to the documentation of this file.
1 //===-- AArch64InstPrinter.h - Convert AArch64 MCInst to assembly syntax --===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 //
9 // This class prints an AArch64 MCInst to a .s file.
10 //
11 //===----------------------------------------------------------------------===//
12 
13 #ifndef LLVM_LIB_TARGET_AARCH64_MCTARGETDESC_AARCH64INSTPRINTER_H
14 #define LLVM_LIB_TARGET_AARCH64_MCTARGETDESC_AARCH64INSTPRINTER_H
15 
17 #include "llvm/ADT/StringRef.h"
18 #include "llvm/MC/MCInstPrinter.h"
19 #include "../Utils/AArch64BaseInfo.h"
20 
21 namespace llvm {
22 
24 public:
26  const MCRegisterInfo &MRI);
27 
28  bool applyTargetSpecificCLOption(StringRef Opt) override;
29 
30  void printInst(const MCInst *MI, uint64_t Address, StringRef Annot,
31  const MCSubtargetInfo &STI, raw_ostream &O) override;
32  void printRegName(raw_ostream &OS, unsigned RegNo) const override;
33  void printRegName(raw_ostream &OS, unsigned RegNo, unsigned AltIdx) const;
34 
35  // Autogenerated by tblgen.
36  std::pair<const char *, uint64_t> getMnemonic(const MCInst *MI) override;
37  virtual void printInstruction(const MCInst *MI, uint64_t Address,
38  const MCSubtargetInfo &STI, raw_ostream &O);
39  virtual bool printAliasInstr(const MCInst *MI, uint64_t Address,
40  const MCSubtargetInfo &STI, raw_ostream &O);
41  virtual void printCustomAliasOperand(const MCInst *MI, uint64_t Address,
42  unsigned OpIdx, unsigned PrintMethodIdx,
43  const MCSubtargetInfo &STI,
44  raw_ostream &O);
45 
46  virtual StringRef getRegName(unsigned RegNo) const {
47  return getRegisterName(RegNo);
48  }
49 
50  static const char *getRegisterName(unsigned RegNo,
51  unsigned AltIdx = AArch64::NoRegAltName);
52 
53 protected:
54  bool printSysAlias(const MCInst *MI, const MCSubtargetInfo &STI,
55  raw_ostream &O);
56  // Operand printers
57  void printOperand(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI,
58  raw_ostream &O);
59  void printImm(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI,
60  raw_ostream &O);
61  void printImmHex(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI,
62  raw_ostream &O);
63  template <int Size>
64  void printSImm(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI,
65  raw_ostream &O);
66  template <typename T> void printImmSVE(T Value, raw_ostream &O);
67  void printPostIncOperand(const MCInst *MI, unsigned OpNo, unsigned Imm,
68  raw_ostream &O);
69  template <int Amount>
70  void printPostIncOperand(const MCInst *MI, unsigned OpNo,
71  const MCSubtargetInfo &STI, raw_ostream &O) {
72  printPostIncOperand(MI, OpNo, Amount, O);
73  }
74 
75  void printVRegOperand(const MCInst *MI, unsigned OpNo,
76  const MCSubtargetInfo &STI, raw_ostream &O);
77  void printSysCROperand(const MCInst *MI, unsigned OpNo,
78  const MCSubtargetInfo &STI, raw_ostream &O);
79  void printAddSubImm(const MCInst *MI, unsigned OpNum,
80  const MCSubtargetInfo &STI, raw_ostream &O);
81  template <typename T>
82  void printLogicalImm(const MCInst *MI, unsigned OpNum,
83  const MCSubtargetInfo &STI, raw_ostream &O);
84  void printShifter(const MCInst *MI, unsigned OpNum,
85  const MCSubtargetInfo &STI, raw_ostream &O);
86  void printShiftedRegister(const MCInst *MI, unsigned OpNum,
87  const MCSubtargetInfo &STI, raw_ostream &O);
88  void printExtendedRegister(const MCInst *MI, unsigned OpNum,
89  const MCSubtargetInfo &STI, raw_ostream &O);
90  void printArithExtend(const MCInst *MI, unsigned OpNum,
91  const MCSubtargetInfo &STI, raw_ostream &O);
92 
93  void printMemExtend(const MCInst *MI, unsigned OpNum, raw_ostream &O,
94  char SrcRegKind, unsigned Width);
95  template <char SrcRegKind, unsigned Width>
96  void printMemExtend(const MCInst *MI, unsigned OpNum,
97  const MCSubtargetInfo &STI, raw_ostream &O) {
98  printMemExtend(MI, OpNum, O, SrcRegKind, Width);
99  }
100  template <bool SignedExtend, int ExtWidth, char SrcRegKind, char Suffix>
101  void printRegWithShiftExtend(const MCInst *MI, unsigned OpNum,
102  const MCSubtargetInfo &STI, raw_ostream &O);
103  void printCondCode(const MCInst *MI, unsigned OpNum,
104  const MCSubtargetInfo &STI, raw_ostream &O);
105  void printInverseCondCode(const MCInst *MI, unsigned OpNum,
106  const MCSubtargetInfo &STI, raw_ostream &O);
107  void printAlignedLabel(const MCInst *MI, uint64_t Address, unsigned OpNum,
108  const MCSubtargetInfo &STI, raw_ostream &O);
109  void printUImm12Offset(const MCInst *MI, unsigned OpNum, unsigned Scale,
110  raw_ostream &O);
111  void printAMIndexedWB(const MCInst *MI, unsigned OpNum, unsigned Scale,
112  raw_ostream &O);
113 
114  template <int Scale>
115  void printUImm12Offset(const MCInst *MI, unsigned OpNum,
116  const MCSubtargetInfo &STI, raw_ostream &O) {
117  printUImm12Offset(MI, OpNum, Scale, O);
118  }
119 
120  template <int BitWidth>
121  void printAMIndexedWB(const MCInst *MI, unsigned OpNum,
122  const MCSubtargetInfo &STI, raw_ostream &O) {
123  printAMIndexedWB(MI, OpNum, BitWidth / 8, O);
124  }
125 
126  void printAMNoIndex(const MCInst *MI, unsigned OpNum,
127  const MCSubtargetInfo &STI, raw_ostream &O);
128 
129  template <int Scale>
130  void printImmScale(const MCInst *MI, unsigned OpNum,
131  const MCSubtargetInfo &STI, raw_ostream &O);
132 
133  template <bool IsSVEPrefetch = false>
134  void printPrefetchOp(const MCInst *MI, unsigned OpNum,
135  const MCSubtargetInfo &STI, raw_ostream &O);
136 
137  void printPSBHintOp(const MCInst *MI, unsigned OpNum,
138  const MCSubtargetInfo &STI, raw_ostream &O);
139 
140  void printBTIHintOp(const MCInst *MI, unsigned OpNum,
141  const MCSubtargetInfo &STI, raw_ostream &O);
142 
143  void printFPImmOperand(const MCInst *MI, unsigned OpNum,
144  const MCSubtargetInfo &STI, raw_ostream &O);
145 
146  void printVectorList(const MCInst *MI, unsigned OpNum,
147  const MCSubtargetInfo &STI, raw_ostream &O,
148  StringRef LayoutSuffix);
149 
150  void printMatrixTileList(const MCInst *MI, unsigned OpNum,
151  const MCSubtargetInfo &STI, raw_ostream &O);
152 
153  /// Print a list of vector registers where the type suffix is implicit
154  /// (i.e. attached to the instruction rather than the registers).
155  void printImplicitlyTypedVectorList(const MCInst *MI, unsigned OpNum,
156  const MCSubtargetInfo &STI,
157  raw_ostream &O);
158 
159  template <unsigned NumLanes, char LaneKind>
160  void printTypedVectorList(const MCInst *MI, unsigned OpNum,
161  const MCSubtargetInfo &STI, raw_ostream &O);
162 
163  void printVectorIndex(const MCInst *MI, unsigned OpNum,
164  const MCSubtargetInfo &STI, raw_ostream &O);
165  void printMatrixIndex(const MCInst *MI, unsigned OpNum,
166  const MCSubtargetInfo &STI, raw_ostream &O);
167  void printAdrpLabel(const MCInst *MI, uint64_t Address, unsigned OpNum,
168  const MCSubtargetInfo &STI, raw_ostream &O);
169  void printBarrierOption(const MCInst *MI, unsigned OpNum,
170  const MCSubtargetInfo &STI, raw_ostream &O);
171  void printBarriernXSOption(const MCInst *MI, unsigned OpNum,
172  const MCSubtargetInfo &STI, raw_ostream &O);
173  void printMSRSystemRegister(const MCInst *MI, unsigned OpNum,
174  const MCSubtargetInfo &STI, raw_ostream &O);
175  void printMRSSystemRegister(const MCInst *MI, unsigned OpNum,
176  const MCSubtargetInfo &STI, raw_ostream &O);
177  void printSystemPStateField(const MCInst *MI, unsigned OpNum,
178  const MCSubtargetInfo &STI, raw_ostream &O);
179  void printSIMDType10Operand(const MCInst *MI, unsigned OpNum,
180  const MCSubtargetInfo &STI, raw_ostream &O);
181  template<int64_t Angle, int64_t Remainder>
182  void printComplexRotationOp(const MCInst *MI, unsigned OpNo,
183  const MCSubtargetInfo &STI, raw_ostream &O);
184  template<unsigned size>
185  void printGPRSeqPairsClassOperand(const MCInst *MI, unsigned OpNum,
186  const MCSubtargetInfo &STI,
187  raw_ostream &O);
188  template <typename T>
189  void printImm8OptLsl(const MCInst *MI, unsigned OpNum,
190  const MCSubtargetInfo &STI, raw_ostream &O);
191  template <typename T>
192  void printSVELogicalImm(const MCInst *MI, unsigned OpNum,
193  const MCSubtargetInfo &STI, raw_ostream &O);
194  void printSVEPattern(const MCInst *MI, unsigned OpNum,
195  const MCSubtargetInfo &STI, raw_ostream &O);
196 
197  template <bool IsVertical>
198  void printMatrixTileVector(const MCInst *MI, unsigned OpNum,
199  const MCSubtargetInfo &STI, raw_ostream &O);
200  void printMatrixTile(const MCInst *MI, unsigned OpNum,
201  const MCSubtargetInfo &STI, raw_ostream &O);
202  template <int EltSize>
203  void printMatrix(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI,
204  raw_ostream &O);
205  void printSVCROp(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI,
206  raw_ostream &O);
207  template <char = 0>
208  void printSVERegOp(const MCInst *MI, unsigned OpNum,
209  const MCSubtargetInfo &STI, raw_ostream &O);
210  void printGPR64as32(const MCInst *MI, unsigned OpNum,
211  const MCSubtargetInfo &STI, raw_ostream &O);
212  void printGPR64x8(const MCInst *MI, unsigned OpNum,
213  const MCSubtargetInfo &STI, raw_ostream &O);
214  template <int Width>
215  void printZPRasFPR(const MCInst *MI, unsigned OpNum,
216  const MCSubtargetInfo &STI, raw_ostream &O);
217  template <unsigned ImmIs0, unsigned ImmIs1>
218  void printExactFPImm(const MCInst *MI, unsigned OpNum,
219  const MCSubtargetInfo &STI, raw_ostream &O);
220 };
221 
223 public:
225  const MCRegisterInfo &MRI);
226 
227  void printInst(const MCInst *MI, uint64_t Address, StringRef Annot,
228  const MCSubtargetInfo &STI, raw_ostream &O) override;
229 
230  std::pair<const char *, uint64_t> getMnemonic(const MCInst *MI) override;
231  void printInstruction(const MCInst *MI, uint64_t Address,
232  const MCSubtargetInfo &STI, raw_ostream &O) override;
233  bool printAliasInstr(const MCInst *MI, uint64_t Address,
234  const MCSubtargetInfo &STI, raw_ostream &O) override;
235  void printCustomAliasOperand(const MCInst *MI, uint64_t Address,
236  unsigned OpIdx, unsigned PrintMethodIdx,
237  const MCSubtargetInfo &STI,
238  raw_ostream &O) override;
239 
240  StringRef getRegName(unsigned RegNo) const override {
241  return getRegisterName(RegNo);
242  }
243 
244  static const char *getRegisterName(unsigned RegNo,
245  unsigned AltIdx = AArch64::NoRegAltName);
246 };
247 
248 } // end namespace llvm
249 
250 #endif // LLVM_LIB_TARGET_AARCH64_MCTARGETDESC_AARCH64INSTPRINTER_H
llvm::AArch64InstPrinter::getMnemonic
std::pair< const char *, uint64_t > getMnemonic(const MCInst *MI) override
Returns a pair containing the mnemonic for MI and the number of bits left for further processing by p...
llvm::AArch64InstPrinter::printMRSSystemRegister
void printMRSSystemRegister(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1631
llvm::AArch64InstPrinter::printSysCROperand
void printSysCROperand(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1056
llvm::AArch64InstPrinter::printAlignedLabel
void printAlignedLabel(const MCInst *MI, uint64_t Address, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1516
llvm::AArch64InstPrinter::printSImm
void printSImm(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1020
llvm::AArch64InstPrinter::printUImm12Offset
void printUImm12Offset(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.h:115
llvm::AArch64InstPrinter::printMatrix
void printMatrix(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:927
llvm::MCInstPrinter::MII
const MCInstrInfo & MII
Definition: MCInstPrinter.h:50
MI
IRTranslator LLVM IR MI
Definition: IRTranslator.cpp:108
llvm::AArch64InstPrinter::printSystemPStateField
void printSystemPStateField(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1685
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
llvm::AArch64InstPrinter::printZPRasFPR
void printZPRasFPR(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1807
llvm::AArch64InstPrinter::printImplicitlyTypedVectorList
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.
Definition: AArch64InstPrinter.cpp:1484
llvm::AArch64InstPrinter::printSIMDType10Operand
void printSIMDType10Operand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1697
llvm::AArch64InstPrinter::printSVEPattern
void printSVEPattern(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1713
StringRef.h
llvm::MCAsmInfo
This class is intended to be used as a base class for asm properties and features specific to the tar...
Definition: MCAsmInfo.h:56
llvm::AArch64AppleInstPrinter::printInst
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.
Definition: AArch64InstPrinter.cpp:752
llvm::AArch64InstPrinter::printArithExtend
void printArithExtend(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1123
llvm::AArch64InstPrinter::getRegisterName
static const char * getRegisterName(unsigned RegNo, unsigned AltIdx=AArch64::NoRegAltName)
llvm::AArch64InstPrinter::printMatrixTileList
void printMatrixTileList(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1404
llvm::AArch64InstPrinter::printPostIncOperand
void printPostIncOperand(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.h:70
llvm::MCInst
Instances of this class represent a single low-level machine instruction.
Definition: MCInst.h:184
llvm::AArch64InstPrinter::printPrefetchOp
void printPrefetchOp(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1255
llvm::AArch64InstPrinter::printAddSubImm
void printAddSubImm(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1064
llvm::AArch64InstPrinter::printImm8OptLsl
void printImm8OptLsl(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1763
llvm::AArch64InstPrinter::printShifter
void printShifter(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1096
llvm::MCInstPrinter::MRI
const MCRegisterInfo & MRI
Definition: MCInstPrinter.h:51
llvm::AArch64AppleInstPrinter::printInstruction
void printInstruction(const MCInst *MI, uint64_t Address, const MCSubtargetInfo &STI, raw_ostream &O) override
llvm::AArch64InstPrinter::printGPR64as32
void printGPR64as32(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1835
llvm::AArch64InstPrinter::printBarriernXSOption
void printBarriernXSOption(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1593
llvm::AArch64InstPrinter::printMemExtend
void printMemExtend(const MCInst *MI, unsigned OpNum, raw_ostream &O, char SrcRegKind, unsigned Width)
Definition: AArch64InstPrinter.cpp:1170
llvm::AArch64InstPrinter::printAliasInstr
virtual bool printAliasInstr(const MCInst *MI, uint64_t Address, const MCSubtargetInfo &STI, raw_ostream &O)
llvm::AArch64InstPrinter::printCondCode
void printCondCode(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1196
llvm::AArch64InstPrinter::printUImm12Offset
void printUImm12Offset(const MCInst *MI, unsigned OpNum, unsigned Scale, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1226
llvm::AArch64InstPrinter::printMatrixTileVector
void printMatrixTileVector(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:958
llvm::raw_ostream
This class implements an extremely fast bulk output stream that can only output to a stream.
Definition: raw_ostream.h:52
llvm::AArch64InstPrinter::printFPImmOperand
void printFPImmOperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1294
llvm::AArch64InstPrinter::printMatrixTile
void printMatrixTile(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:971
MCInstPrinter.h
llvm::AArch64InstPrinter::printExtendedRegister
void printExtendedRegister(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1116
llvm::AArch64InstPrinter::AArch64InstPrinter
AArch64InstPrinter(const MCAsmInfo &MAI, const MCInstrInfo &MII, const MCRegisterInfo &MRI)
Definition: AArch64InstPrinter.cpp:44
llvm::AArch64AppleInstPrinter::getRegisterName
static const char * getRegisterName(unsigned RegNo, unsigned AltIdx=AArch64::NoRegAltName)
llvm::AArch64InstPrinter::printRegName
void printRegName(raw_ostream &OS, unsigned RegNo) const override
Print the assembler register name.
Definition: AArch64InstPrinter.cpp:62
llvm::AArch64InstPrinter::printComplexRotationOp
void printComplexRotationOp(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1706
llvm::AArch64InstPrinter::printSVELogicalImm
void printSVELogicalImm(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1788
llvm::AArch64AppleInstPrinter
Definition: AArch64InstPrinter.h:222
llvm::AArch64InstPrinter::printAMNoIndex
void printAMNoIndex(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1210
llvm::AArch64InstPrinter::printBarrierOption
void printBarrierOption(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1570
llvm::RISCVFenceField::O
@ O
Definition: RISCVBaseInfo.h:264
llvm::AArch64InstPrinter::printPSBHintOp
void printPSBHintOp(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1272
llvm::AArch64InstPrinter::printAMIndexedWB
void printAMIndexedWB(const MCInst *MI, unsigned OpNum, unsigned Scale, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1238
llvm::AArch64InstPrinter::printTypedVectorList
void printTypedVectorList(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1492
llvm::AArch64InstPrinter::printOperand
void printOperand(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:990
uint64_t
llvm::MCInstPrinter
This is an instance of a target assembly language printer that converts an MCInst to valid target ass...
Definition: MCInstPrinter.h:43
llvm::AArch64InstPrinter::printVectorList
void printVectorList(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O, StringRef LayoutSuffix)
Definition: AArch64InstPrinter.cpp:1429
llvm::AArch64AppleInstPrinter::AArch64AppleInstPrinter
AArch64AppleInstPrinter(const MCAsmInfo &MAI, const MCInstrInfo &MII, const MCRegisterInfo &MRI)
Definition: AArch64InstPrinter.cpp:49
llvm::AArch64InstPrinter::printSysAlias
bool printSysAlias(const MCInst *MI, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:811
llvm::AArch64InstPrinter::printAdrpLabel
void printAdrpLabel(const MCInst *MI, uint64_t Address, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1547
llvm::AArch64InstPrinter::printAMIndexedWB
void printAMIndexedWB(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.h:121
llvm::AArch64AppleInstPrinter::getMnemonic
std::pair< const char *, uint64_t > getMnemonic(const MCInst *MI) override
Returns a pair containing the mnemonic for MI and the number of bits left for further processing by p...
llvm::AArch64InstPrinter::printRegWithShiftExtend
void printRegWithShiftExtend(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1179
llvm::AArch64InstPrinter::printImmSVE
void printImmSVE(T Value, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1745
llvm::AArch64InstPrinter::printSVERegOp
void printSVERegOp(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1724
llvm::AArch64InstPrinter::printPostIncOperand
void printPostIncOperand(const MCInst *MI, unsigned OpNo, unsigned Imm, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1034
llvm::AArch64InstPrinter::printImm
void printImm(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1005
llvm::AArch64InstPrinter::printLogicalImm
void printLogicalImm(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1087
llvm::AArch64InstPrinter::printMatrixIndex
void printMatrixIndex(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1510
llvm::AArch64InstPrinter::printShiftedRegister
void printShiftedRegister(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1109
llvm::AArch64InstPrinter
Definition: AArch64InstPrinter.h:23
llvm::StringRef
StringRef - Represent a constant reference to a string, i.e.
Definition: StringRef.h:50
llvm::AArch64InstPrinter::printVRegOperand
void printVRegOperand(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1047
llvm::MCRegisterInfo
MCRegisterInfo base class - We assume that the target defines a static array of MCRegisterDesc object...
Definition: MCRegisterInfo.h:135
llvm::AArch64InstPrinter::printSVCROp
void printSVCROp(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:979
llvm::AArch64AppleInstPrinter::getRegName
StringRef getRegName(unsigned RegNo) const override
Definition: AArch64InstPrinter.h:240
llvm::AArch64InstPrinter::printInverseCondCode
void printInverseCondCode(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1203
llvm::AArch64AppleInstPrinter::printCustomAliasOperand
void printCustomAliasOperand(const MCInst *MI, uint64_t Address, unsigned OpIdx, unsigned PrintMethodIdx, const MCSubtargetInfo &STI, raw_ostream &O) override
llvm::MCInstrInfo
Interface to description of machine instruction set.
Definition: MCInstrInfo.h:26
llvm::AArch64InstPrinter::printMSRSystemRegister
void printMSRSystemRegister(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1658
llvm::AArch64InstPrinter::printCustomAliasOperand
virtual void printCustomAliasOperand(const MCInst *MI, uint64_t Address, unsigned OpIdx, unsigned PrintMethodIdx, const MCSubtargetInfo &STI, raw_ostream &O)
llvm::AArch64InstPrinter::printExactFPImm
void printExactFPImm(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1825
llvm::BitWidth
constexpr unsigned BitWidth
Definition: BitmaskEnum.h:147
AArch64MCTargetDesc.h
llvm::AArch64InstPrinter::printMemExtend
void printMemExtend(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.h:96
llvm::AArch64InstPrinter::printVectorIndex
void printVectorIndex(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1504
llvm::AArch64InstPrinter::printImmScale
void printImmScale(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1219
llvm::AMDGPU::Hwreg::Width
Width
Definition: SIDefines.h:439
llvm::RISCVMatInt::Imm
@ Imm
Definition: RISCVMatInt.h:23
llvm::AArch64InstPrinter::printInst
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.
Definition: AArch64InstPrinter.cpp:71
llvm::AArch64InstPrinter::printInstruction
virtual void printInstruction(const MCInst *MI, uint64_t Address, const MCSubtargetInfo &STI, raw_ostream &O)
llvm::MCInstPrinter::MAI
const MCAsmInfo & MAI
Definition: MCInstPrinter.h:49
llvm::AArch64InstPrinter::applyTargetSpecificCLOption
bool applyTargetSpecificCLOption(StringRef Opt) override
Customize the printer according to a command line option.
Definition: AArch64InstPrinter.cpp:54
llvm::AArch64InstPrinter::printGPRSeqPairsClassOperand
void printGPRSeqPairsClassOperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1386
llvm::AArch64InstPrinter::getRegName
virtual StringRef getRegName(unsigned RegNo) const
Definition: AArch64InstPrinter.h:46
llvm::AArch64AppleInstPrinter::printAliasInstr
bool printAliasInstr(const MCInst *MI, uint64_t Address, const MCSubtargetInfo &STI, raw_ostream &O) override
llvm::AArch64InstPrinter::printBTIHintOp
void printBTIHintOp(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1283
llvm::AArch64InstPrinter::printGPR64x8
void printGPR64x8(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1842
llvm::AArch64InstPrinter::printImmHex
void printImmHex(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: AArch64InstPrinter.cpp:1012
llvm::MCSubtargetInfo
Generic base class for all target subtargets.
Definition: MCSubtargetInfo.h:76
llvm::Value
LLVM Value Representation.
Definition: Value.h:74