summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/ARMMCInstLower.h
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-07-19 23:44:46 +0000
committerChris Lattner <sabre@nondot.org>2010-07-19 23:44:46 +0000
commitb792b463afd6884554b9397bdf54743099dea7c5 (patch)
treed6158cfa1c28b0426412f5ae1ddbeb0e9af13e27 /llvm/lib/Target/ARM/ARMMCInstLower.h
parent64fffadad3cfec0fa529f591ccfd9dfeb8bdeb31 (diff)
downloadbcm5719-llvm-b792b463afd6884554b9397bdf54743099dea7c5.tar.gz
bcm5719-llvm-b792b463afd6884554b9397bdf54743099dea7c5.zip
sink the arm implementations of ASmPrinter and MCInstLower
out of the AsmPrinter directory into libarm. Now the ARM InstPrinters depend jsut on the MC stuff, not on vmcore or codegen. llvm-svn: 108783
Diffstat (limited to 'llvm/lib/Target/ARM/ARMMCInstLower.h')
-rw-r--r--llvm/lib/Target/ARM/ARMMCInstLower.h56
1 files changed, 56 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMMCInstLower.h b/llvm/lib/Target/ARM/ARMMCInstLower.h
new file mode 100644
index 00000000000..b81a30690ce
--- /dev/null
+++ b/llvm/lib/Target/ARM/ARMMCInstLower.h
@@ -0,0 +1,56 @@
+//===-- ARMMCInstLower.h - Lower MachineInstr to MCInst -------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef ARM_MCINSTLOWER_H
+#define ARM_MCINSTLOWER_H
+
+#include "llvm/Support/Compiler.h"
+
+namespace llvm {
+ class AsmPrinter;
+ class MCAsmInfo;
+ class MCContext;
+ class MCInst;
+ class MCOperand;
+ class MCSymbol;
+ class MachineInstr;
+ class MachineModuleInfoMachO;
+ class MachineOperand;
+ class Mangler;
+ //class ARMSubtarget;
+
+/// ARMMCInstLower - This class is used to lower an MachineInstr into an MCInst.
+class LLVM_LIBRARY_VISIBILITY ARMMCInstLower {
+ MCContext &Ctx;
+ Mangler &Mang;
+ AsmPrinter &Printer;
+
+ //const ARMSubtarget &getSubtarget() const;
+public:
+ ARMMCInstLower(MCContext &ctx, Mangler &mang, AsmPrinter &printer)
+ : Ctx(ctx), Mang(mang), Printer(printer) {}
+
+ void Lower(const MachineInstr *MI, MCInst &OutMI) const;
+
+ //MCSymbol *GetPICBaseSymbol() const;
+ MCSymbol *GetGlobalAddressSymbol(const MachineOperand &MO) const;
+ MCSymbol *GetExternalSymbolSymbol(const MachineOperand &MO) const;
+ MCSymbol *GetJumpTableSymbol(const MachineOperand &MO) const;
+ MCSymbol *GetConstantPoolIndexSymbol(const MachineOperand &MO) const;
+ MCOperand LowerSymbolOperand(const MachineOperand &MO, MCSymbol *Sym) const;
+
+/*
+private:
+ MachineModuleInfoMachO &getMachOMMI() const;
+ */
+};
+
+}
+
+#endif
OpenPOWER on IntegriCloud