LLVM  14.0.0git
ARMInstPrinter.h
Go to the documentation of this file.
1 //===- ARMInstPrinter.h - Convert ARM MCInst to assembly syntax -*- C++ -*-===//
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 ARM MCInst to a .s file.
10 //
11 //===----------------------------------------------------------------------===//
12 
13 #ifndef LLVM_LIB_TARGET_ARM_MCTARGETDESC_ARMINSTPRINTER_H
14 #define LLVM_LIB_TARGET_ARM_MCTARGETDESC_ARMINSTPRINTER_H
15 
17 #include "llvm/MC/MCInstPrinter.h"
18 
19 namespace llvm {
20 
21 class ARMInstPrinter : public MCInstPrinter {
22 public:
24  const MCRegisterInfo &MRI);
25 
26  bool applyTargetSpecificCLOption(StringRef Opt) override;
27 
28  void printInst(const MCInst *MI, uint64_t Address, StringRef Annot,
29  const MCSubtargetInfo &STI, raw_ostream &O) override;
30  void printRegName(raw_ostream &OS, unsigned RegNo) const override;
31 
32  // Autogenerated by tblgen.
33  std::pair<const char *, uint64_t> getMnemonic(const MCInst *MI) override;
35  const MCSubtargetInfo &STI, raw_ostream &O);
36  virtual bool printAliasInstr(const MCInst *MI, uint64_t Address,
37  const MCSubtargetInfo &STI, raw_ostream &O);
38  virtual void printCustomAliasOperand(const MCInst *MI, uint64_t Address,
39  unsigned OpIdx, unsigned PrintMethodIdx,
40  const MCSubtargetInfo &STI,
41  raw_ostream &O);
42  static const char *getRegisterName(unsigned RegNo,
43  unsigned AltIdx = ARM::NoRegAltName);
44 
45  void printOperand(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI,
46  raw_ostream &O);
47  void printOperand(const MCInst *MI, uint64_t Address, unsigned OpNum,
48  const MCSubtargetInfo &STI, raw_ostream &O);
49 
50  void printSORegRegOperand(const MCInst *MI, unsigned OpNum,
51  const MCSubtargetInfo &STI, raw_ostream &O);
52  void printSORegImmOperand(const MCInst *MI, unsigned OpNum,
53  const MCSubtargetInfo &STI, raw_ostream &O);
54 
55  void printAddrModeTBB(const MCInst *MI, unsigned OpNum,
56  const MCSubtargetInfo &STI, raw_ostream &O);
57  void printAddrModeTBH(const MCInst *MI, unsigned OpNum,
58  const MCSubtargetInfo &STI, raw_ostream &O);
59  void printAddrMode2Operand(const MCInst *MI, unsigned OpNum,
60  const MCSubtargetInfo &STI, raw_ostream &O);
61  void printAM2PostIndexOp(const MCInst *MI, unsigned OpNum,
62  const MCSubtargetInfo &STI, raw_ostream &O);
63  void printAM2PreOrOffsetIndexOp(const MCInst *MI, unsigned OpNum,
64  const MCSubtargetInfo &STI, raw_ostream &O);
65  void printAddrMode2OffsetOperand(const MCInst *MI, unsigned OpNum,
66  const MCSubtargetInfo &STI, raw_ostream &O);
67  template <bool AlwaysPrintImm0>
68  void printAddrMode3Operand(const MCInst *MI, unsigned OpNum,
69  const MCSubtargetInfo &STI, raw_ostream &O);
70  void printAddrMode3OffsetOperand(const MCInst *MI, unsigned OpNum,
71  const MCSubtargetInfo &STI, raw_ostream &O);
72  void printAM3PreOrOffsetIndexOp(const MCInst *MI, unsigned Op, raw_ostream &O,
73  bool AlwaysPrintImm0);
74  void printPostIdxImm8Operand(const MCInst *MI, unsigned OpNum,
75  const MCSubtargetInfo &STI, raw_ostream &O);
76  void printPostIdxRegOperand(const MCInst *MI, unsigned OpNum,
77  const MCSubtargetInfo &STI, raw_ostream &O);
78  void printPostIdxImm8s4Operand(const MCInst *MI, unsigned OpNum,
79  const MCSubtargetInfo &STI, raw_ostream &O);
80 
81  void printLdStmModeOperand(const MCInst *MI, unsigned OpNum,
82  const MCSubtargetInfo &STI, raw_ostream &O);
83  template <bool AlwaysPrintImm0>
84  void printAddrMode5Operand(const MCInst *MI, unsigned OpNum,
85  const MCSubtargetInfo &STI, raw_ostream &O);
86  template <bool AlwaysPrintImm0>
87  void printAddrMode5FP16Operand(const MCInst *MI, unsigned OpNum,
88  const MCSubtargetInfo &STI, raw_ostream &O);
89  void printAddrMode6Operand(const MCInst *MI, unsigned OpNum,
90  const MCSubtargetInfo &STI, raw_ostream &O);
91  void printAddrMode7Operand(const MCInst *MI, unsigned OpNum,
92  const MCSubtargetInfo &STI, raw_ostream &O);
93  void printAddrMode6OffsetOperand(const MCInst *MI, unsigned OpNum,
94  const MCSubtargetInfo &STI, raw_ostream &O);
95 
96  void printBitfieldInvMaskImmOperand(const MCInst *MI, unsigned OpNum,
97  const MCSubtargetInfo &STI,
98  raw_ostream &O);
99  void printMemBOption(const MCInst *MI, unsigned OpNum,
100  const MCSubtargetInfo &STI, raw_ostream &O);
101  void printInstSyncBOption(const MCInst *MI, unsigned OpNum,
102  const MCSubtargetInfo &STI, raw_ostream &O);
103  void printTraceSyncBOption(const MCInst *MI, unsigned OpNum,
104  const MCSubtargetInfo &STI, raw_ostream &O);
105  void printShiftImmOperand(const MCInst *MI, unsigned OpNum,
106  const MCSubtargetInfo &STI, raw_ostream &O);
107  void printPKHLSLShiftImm(const MCInst *MI, unsigned OpNum,
108  const MCSubtargetInfo &STI, raw_ostream &O);
109  void printPKHASRShiftImm(const MCInst *MI, unsigned OpNum,
110  const MCSubtargetInfo &STI, raw_ostream &O);
111 
112  template <unsigned scale>
113  void printAdrLabelOperand(const MCInst *MI, unsigned OpNum,
114  const MCSubtargetInfo &STI, raw_ostream &O);
115  template <unsigned scale>
116  void printAdrLabelOperand(const MCInst *MI, uint64_t /*Address*/,
117  unsigned OpNum, const MCSubtargetInfo &STI,
118  raw_ostream &O) {
119  printAdrLabelOperand<scale>(MI, OpNum, STI, O);
120  }
121  void printThumbS4ImmOperand(const MCInst *MI, unsigned OpNum,
122  const MCSubtargetInfo &STI, raw_ostream &O);
123  void printThumbSRImm(const MCInst *MI, unsigned OpNum,
124  const MCSubtargetInfo &STI, raw_ostream &O);
125  void printThumbITMask(const MCInst *MI, unsigned OpNum,
126  const MCSubtargetInfo &STI, raw_ostream &O);
127  void printThumbAddrModeRROperand(const MCInst *MI, unsigned OpNum,
128  const MCSubtargetInfo &STI, raw_ostream &O);
129  void printThumbAddrModeImm5SOperand(const MCInst *MI, unsigned OpNum,
130  const MCSubtargetInfo &STI,
131  raw_ostream &O, unsigned Scale);
132  void printThumbAddrModeImm5S1Operand(const MCInst *MI, unsigned OpNum,
133  const MCSubtargetInfo &STI,
134  raw_ostream &O);
135  void printThumbAddrModeImm5S2Operand(const MCInst *MI, unsigned OpNum,
136  const MCSubtargetInfo &STI,
137  raw_ostream &O);
138  void printThumbAddrModeImm5S4Operand(const MCInst *MI, unsigned OpNum,
139  const MCSubtargetInfo &STI,
140  raw_ostream &O);
141  void printThumbAddrModeSPOperand(const MCInst *MI, unsigned OpNum,
142  const MCSubtargetInfo &STI, raw_ostream &O);
143 
144  void printT2SOOperand(const MCInst *MI, unsigned OpNum,
145  const MCSubtargetInfo &STI, raw_ostream &O);
146  template <bool AlwaysPrintImm0>
147  void printAddrModeImm12Operand(const MCInst *MI, unsigned OpNum,
148  const MCSubtargetInfo &STI, raw_ostream &O);
149  template <bool AlwaysPrintImm0>
150  void printT2AddrModeImm8Operand(const MCInst *MI, unsigned OpNum,
151  const MCSubtargetInfo &STI, raw_ostream &O);
152  template <bool AlwaysPrintImm0>
153  void printT2AddrModeImm8s4Operand(const MCInst *MI, unsigned OpNum,
154  const MCSubtargetInfo &STI, raw_ostream &O);
155  void printT2AddrModeImm0_1020s4Operand(const MCInst *MI, unsigned OpNum,
156  const MCSubtargetInfo &STI,
157  raw_ostream &O);
158  void printT2AddrModeImm8OffsetOperand(const MCInst *MI, unsigned OpNum,
159  const MCSubtargetInfo &STI,
160  raw_ostream &O);
161  void printT2AddrModeImm8s4OffsetOperand(const MCInst *MI, unsigned OpNum,
162  const MCSubtargetInfo &STI,
163  raw_ostream &O);
164  void printT2AddrModeSoRegOperand(const MCInst *MI, unsigned OpNum,
165  const MCSubtargetInfo &STI, raw_ostream &O);
166 
167  void printSetendOperand(const MCInst *MI, unsigned OpNum,
168  const MCSubtargetInfo &STI, raw_ostream &O);
169  void printCPSIMod(const MCInst *MI, unsigned OpNum,
170  const MCSubtargetInfo &STI, raw_ostream &O);
171  void printCPSIFlag(const MCInst *MI, unsigned OpNum,
172  const MCSubtargetInfo &STI, raw_ostream &O);
173  void printMSRMaskOperand(const MCInst *MI, unsigned OpNum,
174  const MCSubtargetInfo &STI, raw_ostream &O);
175  void printBankedRegOperand(const MCInst *MI, unsigned OpNum,
176  const MCSubtargetInfo &STI, raw_ostream &O);
177  void printPredicateOperand(const MCInst *MI, unsigned OpNum,
178  const MCSubtargetInfo &STI, raw_ostream &O);
179  void printMandatoryPredicateOperand(const MCInst *MI, unsigned OpNum,
180  const MCSubtargetInfo &STI,
181  raw_ostream &O);
183  unsigned OpNum,
184  const MCSubtargetInfo &STI,
185  raw_ostream &O);
186  void printMandatoryInvertedPredicateOperand(const MCInst *MI, unsigned OpNum,
187  const MCSubtargetInfo &STI,
188  raw_ostream &O);
189  void printSBitModifierOperand(const MCInst *MI, unsigned OpNum,
190  const MCSubtargetInfo &STI, raw_ostream &O);
191  void printRegisterList(const MCInst *MI, unsigned OpNum,
192  const MCSubtargetInfo &STI, raw_ostream &O);
193  void printNoHashImmediate(const MCInst *MI, unsigned OpNum,
194  const MCSubtargetInfo &STI, raw_ostream &O);
195  void printPImmediate(const MCInst *MI, unsigned OpNum,
196  const MCSubtargetInfo &STI, raw_ostream &O);
197  void printCImmediate(const MCInst *MI, unsigned OpNum,
198  const MCSubtargetInfo &STI, raw_ostream &O);
199  void printCoprocOptionImm(const MCInst *MI, unsigned OpNum,
200  const MCSubtargetInfo &STI, raw_ostream &O);
201  void printFPImmOperand(const MCInst *MI, unsigned OpNum,
202  const MCSubtargetInfo &STI, raw_ostream &O);
203  void printVMOVModImmOperand(const MCInst *MI, unsigned OpNum,
204  const MCSubtargetInfo &STI, raw_ostream &O);
205  void printImmPlusOneOperand(const MCInst *MI, unsigned OpNum,
206  const MCSubtargetInfo &STI, raw_ostream &O);
207  void printRotImmOperand(const MCInst *MI, unsigned OpNum,
208  const MCSubtargetInfo &STI, raw_ostream &O);
209  void printModImmOperand(const MCInst *MI, unsigned OpNum,
210  const MCSubtargetInfo &STI, raw_ostream &O);
211  void printGPRPairOperand(const MCInst *MI, unsigned OpNum,
212  const MCSubtargetInfo &STI, raw_ostream &O);
213 
214  void printPCLabel(const MCInst *MI, unsigned OpNum,
215  const MCSubtargetInfo &STI, raw_ostream &O);
216  void printThumbLdrLabelOperand(const MCInst *MI, unsigned OpNum,
217  const MCSubtargetInfo &STI, raw_ostream &O);
218  void printThumbLdrLabelOperand(const MCInst *MI, uint64_t /*Address*/,
219  unsigned OpNum, const MCSubtargetInfo &STI,
220  raw_ostream &O) {
221  printThumbLdrLabelOperand(MI, OpNum, STI, O);
222  }
223  void printFBits16(const MCInst *MI, unsigned OpNum,
224  const MCSubtargetInfo &STI, raw_ostream &O);
225  void printFBits32(const MCInst *MI, unsigned OpNum,
226  const MCSubtargetInfo &STI, raw_ostream &O);
227  void printVectorIndex(const MCInst *MI, unsigned OpNum,
228  const MCSubtargetInfo &STI, raw_ostream &O);
229  void printVectorListOne(const MCInst *MI, unsigned OpNum,
230  const MCSubtargetInfo &STI, raw_ostream &O);
231  void printVectorListTwo(const MCInst *MI, unsigned OpNum,
232  const MCSubtargetInfo &STI, raw_ostream &O);
233  void printVectorListTwoSpaced(const MCInst *MI, unsigned OpNum,
234  const MCSubtargetInfo &STI, raw_ostream &O);
235  void printVectorListThree(const MCInst *MI, unsigned OpNum,
236  const MCSubtargetInfo &STI, raw_ostream &O);
237  void printVectorListFour(const MCInst *MI, unsigned OpNum,
238  const MCSubtargetInfo &STI, raw_ostream &O);
239  void printVectorListOneAllLanes(const MCInst *MI, unsigned OpNum,
240  const MCSubtargetInfo &STI, raw_ostream &O);
241  void printVectorListTwoAllLanes(const MCInst *MI, unsigned OpNum,
242  const MCSubtargetInfo &STI, raw_ostream &O);
243  void printVectorListThreeAllLanes(const MCInst *MI, unsigned OpNum,
244  const MCSubtargetInfo &STI, raw_ostream &O);
245  void printVectorListFourAllLanes(const MCInst *MI, unsigned OpNum,
246  const MCSubtargetInfo &STI, raw_ostream &O);
247  void printVectorListTwoSpacedAllLanes(const MCInst *MI, unsigned OpNum,
248  const MCSubtargetInfo &STI,
249  raw_ostream &O);
250  void printVectorListThreeSpacedAllLanes(const MCInst *MI, unsigned OpNum,
251  const MCSubtargetInfo &STI,
252  raw_ostream &O);
253  void printVectorListFourSpacedAllLanes(const MCInst *MI, unsigned OpNum,
254  const MCSubtargetInfo &STI,
255  raw_ostream &O);
256  void printVectorListThreeSpaced(const MCInst *MI, unsigned OpNum,
257  const MCSubtargetInfo &STI, raw_ostream &O);
258  void printVectorListFourSpaced(const MCInst *MI, unsigned OpNum,
259  const MCSubtargetInfo &STI, raw_ostream &O);
260  template<unsigned NumRegs>
261  void printMVEVectorList(const MCInst *MI, unsigned OpNum,
262  const MCSubtargetInfo &STI, raw_ostream &O);
263  template<int64_t Angle, int64_t Remainder>
264  void printComplexRotationOp(const MCInst *MI, unsigned OpNum,
265  const MCSubtargetInfo &STI, raw_ostream &O);
266  // MVE
267  void printVPTPredicateOperand(const MCInst *MI, unsigned OpNum,
268  const MCSubtargetInfo &STI,
269  raw_ostream &O);
270  void printVPTMask(const MCInst *MI, unsigned OpNum,
271  const MCSubtargetInfo &STI, raw_ostream &O);
272  template<int shift>
273  void printMveAddrModeRQOperand(const MCInst *MI, unsigned OpNum,
274  const MCSubtargetInfo &STI, raw_ostream &O);
275  void printMveSaturateOp(const MCInst *MI, unsigned OpNum,
276  const MCSubtargetInfo &STI, raw_ostream &O);
277 private:
278  unsigned DefaultAltIdx = ARM::NoRegAltName;
279 };
280 
281 } // end namespace llvm
282 
283 #endif // LLVM_LIB_TARGET_ARM_MCTARGETDESC_ARMINSTPRINTER_H
llvm::ARMInstPrinter::printFBits16
void printFBits16(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1406
llvm::ARMInstPrinter::printT2AddrModeImm8s4Operand
void printT2AddrModeImm8s4Operand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1227
llvm::ARMInstPrinter::printImmPlusOneOperand
void printImmPlusOneOperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1348
llvm::ARMInstPrinter::printThumbAddrModeSPOperand
void printThumbAddrModeSPOperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1149
llvm::ARMInstPrinter::printThumbAddrModeRROperand
void printThumbAddrModeRROperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1086
llvm::ARMInstPrinter::printVectorListTwo
void printVectorListTwo(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1432
llvm::ARMInstPrinter::printAdrLabelOperand
void printAdrLabelOperand(const MCInst *MI, uint64_t, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.h:116
llvm::ARMInstPrinter::printCImmediate
void printCImmediate(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1016
llvm::ARMInstPrinter::printT2SOOperand
void printT2SOOperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1159
llvm::MCInstPrinter::MII
const MCInstrInfo & MII
Definition: MCInstPrinter.h:50
MI
IRTranslator LLVM IR MI
Definition: IRTranslator.cpp:105
llvm::ARMInstPrinter::printInstSyncBOption
void printInstSyncBOption(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:756
llvm
This file implements support for optimizing divisions by a constant.
Definition: AllocatorList.h:23
llvm::ARMInstPrinter::printThumbSRImm
void printThumbSRImm(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1063
llvm::ARMInstPrinter::printCustomAliasOperand
virtual void printCustomAliasOperand(const MCInst *MI, uint64_t Address, unsigned OpIdx, unsigned PrintMethodIdx, const MCSubtargetInfo &STI, raw_ostream &O)
ARMMCTargetDesc.h
llvm::ARMInstPrinter::printCoprocOptionImm
void printCoprocOptionImm(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1022
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::ARMInstPrinter::printAddrMode2OffsetOperand
void printAddrMode2OffsetOperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:505
llvm::ARMInstPrinter::applyTargetSpecificCLOption
bool applyTargetSpecificCLOption(StringRef Opt) override
Customize the printer according to a command line option.
Definition: ARMInstPrinter.cpp:76
llvm::ARMInstPrinter::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: ARMInstPrinter.cpp:92
llvm::ARMInstPrinter::printMveSaturateOp
void printMveSaturateOp(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1671
llvm::ARMInstPrinter::printThumbITMask
void printThumbITMask(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1071
llvm::ARMInstPrinter::getRegisterName
static const char * getRegisterName(unsigned RegNo, unsigned AltIdx=ARM::NoRegAltName)
llvm::ARMInstPrinter::printVectorListThreeSpacedAllLanes
void printVectorListThreeSpacedAllLanes(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1560
llvm::ARMInstPrinter::printBankedRegOperand
void printBankedRegOperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:944
llvm::ARMInstPrinter::printVectorListTwoAllLanes
void printVectorListTwoAllLanes(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1499
llvm::ARMInstPrinter::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::ARMInstPrinter::printVectorIndex
void printVectorIndex(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1418
llvm::ARMInstPrinter::printVectorListFourSpacedAllLanes
void printVectorListFourSpacedAllLanes(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1575
llvm::ARMInstPrinter::printAdrLabelOperand
void printAdrLabelOperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1034
llvm::ARMInstPrinter::printT2AddrModeImm8s4OffsetOperand
void printT2AddrModeImm8s4OffsetOperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1288
llvm::ARMInstPrinter::printMSRMaskOperand
void printMSRMaskOperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:862
llvm::ARMInstPrinter::printVectorListThree
void printVectorListThree(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1458
llvm::ARMInstPrinter::printModImmOperand
void printModImmOperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1365
llvm::ARMInstPrinter::printGPRPairOperand
void printGPRPairOperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:825
llvm::ARMInstPrinter::printThumbAddrModeImm5S4Operand
void printThumbAddrModeImm5S4Operand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1142
llvm::MCInst
Instances of this class represent a single low-level machine instruction.
Definition: MCInst.h:184
llvm::ARMInstPrinter::printAliasInstr
virtual bool printAliasInstr(const MCInst *MI, uint64_t Address, const MCSubtargetInfo &STI, raw_ostream &O)
llvm::ARMInstPrinter::printRegName
void printRegName(raw_ostream &OS, unsigned RegNo) const override
Print the assembler register name.
Definition: ARMInstPrinter.cpp:88
llvm::ARMInstPrinter::printAddrMode7Operand
void printAddrMode7Operand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:714
llvm::ARMInstPrinter::printCPSIMod
void printCPSIMod(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:844
llvm::ARMInstPrinter::printThumbS4ImmOperand
void printThumbS4ImmOperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1056
llvm::ARMInstPrinter::printPostIdxImm8s4Operand
void printPostIdxImm8s4Operand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:613
llvm::ARMInstPrinter::printNoHashImmediate
void printNoHashImmediate(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1004
llvm::ARMInstPrinter::printVPTPredicateOperand
void printVPTPredicateOperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1647
llvm::ARMInstPrinter::printVectorListThreeAllLanes
void printVectorListThreeAllLanes(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1513
llvm::ARMInstPrinter::printAddrMode3Operand
void printAddrMode3Operand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:560
llvm::MCInstPrinter::MRI
const MCRegisterInfo & MRI
Definition: MCInstPrinter.h:51
llvm::ARMInstPrinter::printAddrMode6Operand
void printAddrMode6Operand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:700
llvm::ARMInstPrinter::printAddrModeTBH
void printAddrModeTBH(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:474
llvm::ARMInstPrinter::printVectorListFourSpaced
void printVectorListFourSpaced(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1608
llvm::ARMInstPrinter::printPKHLSLShiftImm
void printPKHLSLShiftImm(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:784
llvm::ARMInstPrinter::printAM2PostIndexOp
void printAM2PostIndexOp(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
llvm::ARMInstPrinter::printSetendOperand
void printSetendOperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:834
llvm::ARMInstPrinter::printMveAddrModeRQOperand
void printMveAddrModeRQOperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:623
llvm::ARMInstPrinter::printMandatoryPredicateOperand
void printMandatoryPredicateOperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:978
llvm::ARMInstPrinter::printT2AddrModeSoRegOperand
void printT2AddrModeSoRegOperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1306
llvm::raw_ostream
This class implements an extremely fast bulk output stream that can only output to a stream.
Definition: raw_ostream.h:53
llvm::ARMInstPrinter::printVectorListTwoSpacedAllLanes
void printVectorListTwoSpacedAllLanes(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1547
llvm::ARMInstPrinter::printMVEVectorList
void printMVEVectorList(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1626
llvm::ARMInstPrinter::printPostIdxRegOperand
void printPostIdxRegOperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:603
llvm::ARMInstPrinter::printFBits32
void printFBits32(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1412
llvm::ARMInstPrinter::printVMOVModImmOperand
void printVMOVModImmOperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1337
MCInstPrinter.h
llvm::ARMInstPrinter::printSORegImmOperand
void printSORegImmOperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:416
llvm::ARMInstPrinter::printCPSIFlag
void printCPSIFlag(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:850
llvm::ARMInstPrinter::printAddrMode5Operand
void printAddrMode5Operand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:649
llvm::ARMInstPrinter::printFPImmOperand
void printFPImmOperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1329
llvm::ARMInstPrinter::printTraceSyncBOption
void printTraceSyncBOption(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:763
llvm::ARMInstPrinter::printAddrModeImm12Operand
void printAddrModeImm12Operand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1175
llvm::ARMInstPrinter::printVectorListTwoSpaced
void printVectorListTwoSpaced(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1445
llvm::ARMInstPrinter::printAddrMode6OffsetOperand
void printAddrMode6OffsetOperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:723
llvm::RISCVFenceField::O
@ O
Definition: RISCVBaseInfo.h:197
llvm::ARMInstPrinter::printThumbLdrLabelOperand
void printThumbLdrLabelOperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:366
llvm::ARMInstPrinter::printLdStmModeOperand
void printLdStmModeOperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:640
llvm::ARMInstPrinter::printMandatoryRestrictedPredicateOperand
void printMandatoryRestrictedPredicateOperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:969
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::ARMInstPrinter::printPostIdxImm8Operand
void printPostIdxImm8Operand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:594
llvm::ARMInstPrinter::printVectorListOne
void printVectorListOne(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1424
llvm::ARMInstPrinter::printPKHASRShiftImm
void printPKHASRShiftImm(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:794
llvm::ARMInstPrinter::printRotImmOperand
void printRotImmOperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1355
llvm::HighlightColor::Address
@ Address
llvm::ARMInstPrinter::printInstruction
void printInstruction(const MCInst *MI, uint64_t Address, const MCSubtargetInfo &STI, raw_ostream &O)
llvm::ARMInstPrinter::printT2AddrModeImm8Operand
void printT2AddrModeImm8Operand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1203
llvm::ARMInstPrinter::printSBitModifierOperand
void printSBitModifierOperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:994
llvm::ARMInstPrinter::printAddrModeTBB
void printAddrModeTBB(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:462
llvm::StringRef
StringRef - Represent a constant reference to a string, i.e.
Definition: StringRef.h:58
llvm::ARMInstPrinter::printOperand
void printOperand(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:312
llvm::ARMInstPrinter::printAddrMode2Operand
void printAddrMode2Operand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:486
llvm::ARMInstPrinter::printPImmediate
void printPImmediate(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1010
llvm::ARMInstPrinter::printPredicateOperand
void printPredicateOperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:958
llvm::MCRegisterInfo
MCRegisterInfo base class - We assume that the target defines a static array of MCRegisterDesc object...
Definition: MCRegisterInfo.h:135
llvm::ARMInstPrinter::printRegisterList
void printRegisterList(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:805
llvm::ARMInstPrinter::printVPTMask
void printVPTMask(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1655
llvm::ARMInstPrinter::printMemBOption
void printMemBOption(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:749
llvm::MCInstrInfo
Interface to description of machine instruction set.
Definition: MCInstrInfo.h:25
llvm::ARMInstPrinter::printPCLabel
void printPCLabel(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1028
llvm::ARMInstPrinter::printSORegRegOperand
void printSORegRegOperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:396
llvm::ARMInstPrinter::printMandatoryInvertedPredicateOperand
void printMandatoryInvertedPredicateOperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:986
llvm::AMDGPU::SendMsg::Op
Op
Definition: SIDefines.h:324
llvm::ARMInstPrinter
Definition: ARMInstPrinter.h:21
llvm::ARMInstPrinter::printThumbAddrModeImm5SOperand
void printThumbAddrModeImm5SOperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O, unsigned Scale)
Definition: ARMInstPrinter.cpp:1106
llvm::ARMInstPrinter::printT2AddrModeImm8OffsetOperand
void printT2AddrModeImm8OffsetOperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1273
llvm::ARMInstPrinter::ARMInstPrinter
ARMInstPrinter(const MCAsmInfo &MAI, const MCInstrInfo &MII, const MCRegisterInfo &MRI)
Definition: ARMInstPrinter.cpp:72
llvm::ARMInstPrinter::printThumbAddrModeImm5S1Operand
void printThumbAddrModeImm5S1Operand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1128
llvm::MCInstPrinter::MAI
const MCAsmInfo & MAI
Definition: MCInstPrinter.h:49
llvm::ARMInstPrinter::printThumbAddrModeImm5S2Operand
void printThumbAddrModeImm5S2Operand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1135
llvm::ARMInstPrinter::printThumbLdrLabelOperand
void printThumbLdrLabelOperand(const MCInst *MI, uint64_t, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.h:218
llvm::ARMInstPrinter::printAddrMode5FP16Operand
void printAddrMode5FP16Operand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:673
llvm::ARMInstPrinter::printAM3PreOrOffsetIndexOp
void printAM3PreOrOffsetIndexOp(const MCInst *MI, unsigned Op, raw_ostream &O, bool AlwaysPrintImm0)
Definition: ARMInstPrinter.cpp:531
llvm::ARMInstPrinter::printVectorListFourAllLanes
void printVectorListFourAllLanes(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1529
llvm::ARMInstPrinter::printT2AddrModeImm0_1020s4Operand
void printT2AddrModeImm0_1020s4Operand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1258
llvm::ARMInstPrinter::printAM2PreOrOffsetIndexOp
void printAM2PreOrOffsetIndexOp(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:433
llvm::MCSubtargetInfo
Generic base class for all target subtargets.
Definition: MCSubtargetInfo.h:75
llvm::ARMInstPrinter::printBitfieldInvMaskImmOperand
void printBitfieldInvMaskImmOperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:736
llvm::ARMInstPrinter::printVectorListOneAllLanes
void printVectorListOneAllLanes(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1490
llvm::ARMInstPrinter::printVectorListThreeSpaced
void printVectorListThreeSpaced(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1592
llvm::ARMInstPrinter::printVectorListFour
void printVectorListFour(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1473
llvm::ARMInstPrinter::printShiftImmOperand
void printShiftImmOperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:770
llvm::ARMInstPrinter::printComplexRotationOp
void printComplexRotationOp(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:1640
llvm::ARMInstPrinter::printAddrMode3OffsetOperand
void printAddrMode3OffsetOperand(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O)
Definition: ARMInstPrinter.cpp:575