blob: 9c4355fc29b42fe0dc7d55b040acb5c8e6472315 [file] [log] [blame]
Chris Lattnerfd603822009-10-19 19:56:26 +00001//===-- ARMInstPrinter.h - Convert ARM MCInst to assembly syntax ----------===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
10// This class prints an ARM MCInst to a .s file.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef ARMINSTPRINTER_H
15#define ARMINSTPRINTER_H
16
17#include "llvm/MC/MCInstPrinter.h"
18
19namespace llvm {
20 class MCOperand;
21
22class ARMInstPrinter : public MCInstPrinter {
23public:
24 ARMInstPrinter(raw_ostream &O, const MCAsmInfo &MAI) : MCInstPrinter(O, MAI){}
25
26 virtual void printInst(const MCInst *MI);
27
28 // Autogenerated by tblgen.
29 void printInstruction(const MCInst *MI);
30 static const char *getRegisterName(unsigned RegNo);
31
32
33 void printOperand(const MCInst *MI, unsigned OpNo,
Chris Lattner8bc86cb2009-10-19 20:59:55 +000034 const char *Modifier = 0);
Chris Lattnerfd603822009-10-19 19:56:26 +000035
36 void printSOImmOperand(const MCInst *MI, unsigned OpNum) {}
37 void printSOImm2PartOperand(const MCInst *MI, unsigned OpNum) {}
38 void printSORegOperand(const MCInst *MI, unsigned OpNum) {}
39 void printAddrMode2Operand(const MCInst *MI, unsigned OpNum) {}
40 void printAddrMode2OffsetOperand(const MCInst *MI, unsigned OpNum) {}
41 void printAddrMode3Operand(const MCInst *MI, unsigned OpNum) {}
42 void printAddrMode3OffsetOperand(const MCInst *MI, unsigned OpNum) {}
43 void printAddrMode4Operand(const MCInst *MI, unsigned OpNum,
44 const char *Modifier = 0) {}
45 void printAddrMode5Operand(const MCInst *MI, unsigned OpNum,
46 const char *Modifier = 0) {}
47 void printAddrMode6Operand(const MCInst *MI, unsigned OpNum) {}
48 void printAddrModePCOperand(const MCInst *MI, unsigned OpNum,
49 const char *Modifier = 0) {}
50 void printBitfieldInvMaskImmOperand (const MCInst *MI, unsigned OpNum) {}
51
52 void printThumbITMask(const MCInst *MI, unsigned OpNum) {}
53 void printThumbAddrModeRROperand(const MCInst *MI, unsigned OpNum) {}
54 void printThumbAddrModeRI5Operand(const MCInst *MI, unsigned OpNum,
55 unsigned Scale) {}
56 void printThumbAddrModeS1Operand(const MCInst *MI, unsigned OpNum) {}
57 void printThumbAddrModeS2Operand(const MCInst *MI, unsigned OpNum) {}
58 void printThumbAddrModeS4Operand(const MCInst *MI, unsigned OpNum) {}
59 void printThumbAddrModeSPOperand(const MCInst *MI, unsigned OpNum) {}
60
61 void printT2SOOperand(const MCInst *MI, unsigned OpNum) {}
62 void printT2AddrModeImm12Operand(const MCInst *MI, unsigned OpNum) {}
63 void printT2AddrModeImm8Operand(const MCInst *MI, unsigned OpNum) {}
64 void printT2AddrModeImm8s4Operand(const MCInst *MI, unsigned OpNum) {}
65 void printT2AddrModeImm8OffsetOperand(const MCInst *MI, unsigned OpNum) {}
66 void printT2AddrModeSoRegOperand(const MCInst *MI, unsigned OpNum) {}
67
68 void printPredicateOperand(const MCInst *MI, unsigned OpNum) {}
69 void printSBitModifierOperand(const MCInst *MI, unsigned OpNum) {}
70 void printPCLabel(const MCInst *MI, unsigned OpNum) {}
71 void printRegisterList(const MCInst *MI, unsigned OpNum) {}
72 void printCPInstOperand(const MCInst *MI, unsigned OpNum,
73 const char *Modifier) {}
74 void printJTBlockOperand(const MCInst *MI, unsigned OpNum) {}
75 void printJT2BlockOperand(const MCInst *MI, unsigned OpNum) {}
76 void printTBAddrMode(const MCInst *MI, unsigned OpNum) {}
77 void printNoHashImmediate(const MCInst *MI, unsigned OpNum) {}
78
79
80 // FIXME:
81 void PrintSpecial(const MCInst *MI, const char *Kind) {}
82};
83
84}
85
86#endif