1 //===-- ARMInstPrinter.h - Convert ARM MCInst to assembly syntax ----------===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This class prints an ARM MCInst to a .s file.
12 //===----------------------------------------------------------------------===//
14 #ifndef ARMINSTPRINTER_H
15 #define ARMINSTPRINTER_H
17 #include "llvm/MC/MCInstPrinter.h"
22 class ARMInstPrinter : public MCInstPrinter {
25 ARMInstPrinter(raw_ostream &O, const MCAsmInfo &MAI, bool verboseAsm)
26 : MCInstPrinter(O, MAI), VerboseAsm(verboseAsm) {}
28 virtual void printInst(const MCInst *MI);
30 // Autogenerated by tblgen.
31 void printInstruction(const MCInst *MI);
32 static const char *getRegisterName(unsigned RegNo);
35 void printOperand(const MCInst *MI, unsigned OpNo,
36 const char *Modifier = 0);
38 void printSOImmOperand(const MCInst *MI, unsigned OpNum);
41 void printSOImm2PartOperand(const MCInst *MI, unsigned OpNum) {}
42 void printSORegOperand(const MCInst *MI, unsigned OpNum) {}
43 void printAddrMode2Operand(const MCInst *MI, unsigned OpNum) {}
44 void printAddrMode2OffsetOperand(const MCInst *MI, unsigned OpNum) {}
45 void printAddrMode3Operand(const MCInst *MI, unsigned OpNum) {}
46 void printAddrMode3OffsetOperand(const MCInst *MI, unsigned OpNum) {}
47 void printAddrMode4Operand(const MCInst *MI, unsigned OpNum,
48 const char *Modifier = 0) {}
49 void printAddrMode5Operand(const MCInst *MI, unsigned OpNum,
50 const char *Modifier = 0) {}
51 void printAddrMode6Operand(const MCInst *MI, unsigned OpNum) {}
52 void printAddrModePCOperand(const MCInst *MI, unsigned OpNum,
53 const char *Modifier = 0) {}
54 void printBitfieldInvMaskImmOperand (const MCInst *MI, unsigned OpNum) {}
56 void printThumbITMask(const MCInst *MI, unsigned OpNum) {}
57 void printThumbAddrModeRROperand(const MCInst *MI, unsigned OpNum) {}
58 void printThumbAddrModeRI5Operand(const MCInst *MI, unsigned OpNum,
60 void printThumbAddrModeS1Operand(const MCInst *MI, unsigned OpNum) {}
61 void printThumbAddrModeS2Operand(const MCInst *MI, unsigned OpNum) {}
62 void printThumbAddrModeS4Operand(const MCInst *MI, unsigned OpNum) {}
63 void printThumbAddrModeSPOperand(const MCInst *MI, unsigned OpNum) {}
65 void printT2SOOperand(const MCInst *MI, unsigned OpNum) {}
66 void printT2AddrModeImm12Operand(const MCInst *MI, unsigned OpNum) {}
67 void printT2AddrModeImm8Operand(const MCInst *MI, unsigned OpNum) {}
68 void printT2AddrModeImm8s4Operand(const MCInst *MI, unsigned OpNum) {}
69 void printT2AddrModeImm8OffsetOperand(const MCInst *MI, unsigned OpNum) {}
70 void printT2AddrModeSoRegOperand(const MCInst *MI, unsigned OpNum) {}
72 void printPredicateOperand(const MCInst *MI, unsigned OpNum) {}
73 void printSBitModifierOperand(const MCInst *MI, unsigned OpNum) {}
74 void printPCLabel(const MCInst *MI, unsigned OpNum) {}
75 void printRegisterList(const MCInst *MI, unsigned OpNum) {}
76 void printCPInstOperand(const MCInst *MI, unsigned OpNum,
77 const char *Modifier) {}
78 void printJTBlockOperand(const MCInst *MI, unsigned OpNum) {}
79 void printJT2BlockOperand(const MCInst *MI, unsigned OpNum) {}
80 void printTBAddrMode(const MCInst *MI, unsigned OpNum) {}
81 void printNoHashImmediate(const MCInst *MI, unsigned OpNum) {}
85 void PrintSpecial(const MCInst *MI, const char *Kind) {}