summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/AsmPrinter/ARMInstPrinter.h
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Target/ARM/AsmPrinter/ARMInstPrinter.h')
-rw-r--r--llvm/lib/Target/ARM/AsmPrinter/ARMInstPrinter.h86
1 files changed, 86 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/AsmPrinter/ARMInstPrinter.h b/llvm/lib/Target/ARM/AsmPrinter/ARMInstPrinter.h
new file mode 100644
index 00000000000..15ce3b9bc30
--- /dev/null
+++ b/llvm/lib/Target/ARM/AsmPrinter/ARMInstPrinter.h
@@ -0,0 +1,86 @@
+//===-- ARMInstPrinter.h - Convert ARM MCInst to assembly syntax ----------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This class prints an ARM MCInst to a .s file.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef ARMINSTPRINTER_H
+#define ARMINSTPRINTER_H
+
+#include "llvm/MC/MCInstPrinter.h"
+
+namespace llvm {
+ class MCOperand;
+
+class ARMInstPrinter : public MCInstPrinter {
+public:
+ ARMInstPrinter(raw_ostream &O, const MCAsmInfo &MAI) : MCInstPrinter(O, MAI){}
+
+ virtual void printInst(const MCInst *MI);
+
+ // Autogenerated by tblgen.
+ void printInstruction(const MCInst *MI);
+ static const char *getRegisterName(unsigned RegNo);
+
+
+ void printOperand(const MCInst *MI, unsigned OpNo,
+ const char *Modifier = 0) {}
+
+ void printSOImmOperand(const MCInst *MI, unsigned OpNum) {}
+ void printSOImm2PartOperand(const MCInst *MI, unsigned OpNum) {}
+ void printSORegOperand(const MCInst *MI, unsigned OpNum) {}
+ void printAddrMode2Operand(const MCInst *MI, unsigned OpNum) {}
+ void printAddrMode2OffsetOperand(const MCInst *MI, unsigned OpNum) {}
+ void printAddrMode3Operand(const MCInst *MI, unsigned OpNum) {}
+ void printAddrMode3OffsetOperand(const MCInst *MI, unsigned OpNum) {}
+ void printAddrMode4Operand(const MCInst *MI, unsigned OpNum,
+ const char *Modifier = 0) {}
+ void printAddrMode5Operand(const MCInst *MI, unsigned OpNum,
+ const char *Modifier = 0) {}
+ void printAddrMode6Operand(const MCInst *MI, unsigned OpNum) {}
+ void printAddrModePCOperand(const MCInst *MI, unsigned OpNum,
+ const char *Modifier = 0) {}
+ void printBitfieldInvMaskImmOperand (const MCInst *MI, unsigned OpNum) {}
+
+ void printThumbITMask(const MCInst *MI, unsigned OpNum) {}
+ void printThumbAddrModeRROperand(const MCInst *MI, unsigned OpNum) {}
+ void printThumbAddrModeRI5Operand(const MCInst *MI, unsigned OpNum,
+ unsigned Scale) {}
+ void printThumbAddrModeS1Operand(const MCInst *MI, unsigned OpNum) {}
+ void printThumbAddrModeS2Operand(const MCInst *MI, unsigned OpNum) {}
+ void printThumbAddrModeS4Operand(const MCInst *MI, unsigned OpNum) {}
+ void printThumbAddrModeSPOperand(const MCInst *MI, unsigned OpNum) {}
+
+ void printT2SOOperand(const MCInst *MI, unsigned OpNum) {}
+ void printT2AddrModeImm12Operand(const MCInst *MI, unsigned OpNum) {}
+ void printT2AddrModeImm8Operand(const MCInst *MI, unsigned OpNum) {}
+ void printT2AddrModeImm8s4Operand(const MCInst *MI, unsigned OpNum) {}
+ void printT2AddrModeImm8OffsetOperand(const MCInst *MI, unsigned OpNum) {}
+ void printT2AddrModeSoRegOperand(const MCInst *MI, unsigned OpNum) {}
+
+ void printPredicateOperand(const MCInst *MI, unsigned OpNum) {}
+ void printSBitModifierOperand(const MCInst *MI, unsigned OpNum) {}
+ void printPCLabel(const MCInst *MI, unsigned OpNum) {}
+ void printRegisterList(const MCInst *MI, unsigned OpNum) {}
+ void printCPInstOperand(const MCInst *MI, unsigned OpNum,
+ const char *Modifier) {}
+ void printJTBlockOperand(const MCInst *MI, unsigned OpNum) {}
+ void printJT2BlockOperand(const MCInst *MI, unsigned OpNum) {}
+ void printTBAddrMode(const MCInst *MI, unsigned OpNum) {}
+ void printNoHashImmediate(const MCInst *MI, unsigned OpNum) {}
+
+
+ // FIXME:
+ void PrintSpecial(const MCInst *MI, const char *Kind) {}
+};
+
+}
+
+#endif
OpenPOWER on IntegriCloud