MSP430MCInstLower.h revision 218885
1//===-- MSP430MCInstLower.h - Lower MachineInstr to MCInst ----------------===// 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#ifndef MSP430_MCINSTLOWER_H 11#define MSP430_MCINSTLOWER_H 12 13#include "llvm/Support/Compiler.h" 14 15namespace llvm { 16 class AsmPrinter; 17 class MCAsmInfo; 18 class MCContext; 19 class MCInst; 20 class MCOperand; 21 class MCSymbol; 22 class MachineInstr; 23 class MachineModuleInfoMachO; 24 class MachineOperand; 25 class Mangler; 26 27 /// MSP430MCInstLower - This class is used to lower an MachineInstr 28 /// into an MCInst. 29class LLVM_LIBRARY_VISIBILITY MSP430MCInstLower { 30 MCContext &Ctx; 31 Mangler &Mang; 32 33 AsmPrinter &Printer; 34public: 35 MSP430MCInstLower(MCContext &ctx, Mangler &mang, AsmPrinter &printer) 36 : Ctx(ctx), Mang(mang), Printer(printer) {} 37 void Lower(const MachineInstr *MI, MCInst &OutMI) const; 38 39 MCOperand LowerSymbolOperand(const MachineOperand &MO, MCSymbol *Sym) const; 40 41 MCSymbol *GetGlobalAddressSymbol(const MachineOperand &MO) const; 42 MCSymbol *GetExternalSymbolSymbol(const MachineOperand &MO) const; 43 MCSymbol *GetJumpTableSymbol(const MachineOperand &MO) const; 44 MCSymbol *GetConstantPoolIndexSymbol(const MachineOperand &MO) const; 45 MCSymbol *GetBlockAddressSymbol(const MachineOperand &MO) const; 46}; 47 48} 49 50#endif 51