LLVM API Documentation
00001 //===-- MSP430MCInstLower.h - Lower MachineInstr to MCInst ------*- C++ -*-===// 00002 // 00003 // The LLVM Compiler Infrastructure 00004 // 00005 // This file is distributed under the University of Illinois Open Source 00006 // License. See LICENSE.TXT for details. 00007 // 00008 //===----------------------------------------------------------------------===// 00009 00010 #ifndef LLVM_LIB_TARGET_MSP430_MSP430MCINSTLOWER_H 00011 #define LLVM_LIB_TARGET_MSP430_MSP430MCINSTLOWER_H 00012 00013 #include "llvm/Support/Compiler.h" 00014 00015 namespace llvm { 00016 class AsmPrinter; 00017 class MCContext; 00018 class MCInst; 00019 class MCOperand; 00020 class MCSymbol; 00021 class MachineInstr; 00022 class MachineModuleInfoMachO; 00023 class MachineOperand; 00024 00025 /// MSP430MCInstLower - This class is used to lower an MachineInstr 00026 /// into an MCInst. 00027 class LLVM_LIBRARY_VISIBILITY MSP430MCInstLower { 00028 MCContext &Ctx; 00029 00030 AsmPrinter &Printer; 00031 public: 00032 MSP430MCInstLower(MCContext &ctx, AsmPrinter &printer) 00033 : Ctx(ctx), Printer(printer) {} 00034 void Lower(const MachineInstr *MI, MCInst &OutMI) const; 00035 00036 MCOperand LowerSymbolOperand(const MachineOperand &MO, MCSymbol *Sym) const; 00037 00038 MCSymbol *GetGlobalAddressSymbol(const MachineOperand &MO) const; 00039 MCSymbol *GetExternalSymbolSymbol(const MachineOperand &MO) const; 00040 MCSymbol *GetJumpTableSymbol(const MachineOperand &MO) const; 00041 MCSymbol *GetConstantPoolIndexSymbol(const MachineOperand &MO) const; 00042 MCSymbol *GetBlockAddressSymbol(const MachineOperand &MO) const; 00043 }; 00044 00045 } 00046 00047 #endif