1168406Spjd//===-- MSP430MCInstLower.h - Lower MachineInstr to MCInst ------*- C++ -*-===// 2168406Spjd// 3168406Spjd// The LLVM Compiler Infrastructure 4168406Spjd// 5219089Spjd// This file is distributed under the University of Illinois Open Source 6168406Spjd// License. See LICENSE.TXT for details. 7262059Savg// 8262059Savg//===----------------------------------------------------------------------===// 9262059Savg 10262059Savg#ifndef MSP430_MCINSTLOWER_H 11262059Savg#define MSP430_MCINSTLOWER_H 12262059Savg 13177674Sjb#include "llvm/Support/Compiler.h" 14176952Sobrien 15176952Sobriennamespace llvm { 16168406Spjd class AsmPrinter; 17176952Sobrien class MCContext; 18168406Spjd class MCInst; 19176952Sobrien class MCOperand; 20168406Spjd class MCSymbol; 21219089Spjd class MachineInstr; 22243674Smm class MachineModuleInfoMachO; 23185029Spjd class MachineOperand; 24185029Spjd 25168406Spjd /// MSP430MCInstLower - This class is used to lower an MachineInstr 26177674Sjb /// into an MCInst. 27192800Straszclass LLVM_LIBRARY_VISIBILITY MSP430MCInstLower { 28168406Spjd MCContext &Ctx; 29168406Spjd 30185029Spjd AsmPrinter &Printer; 31168406Spjdpublic: 32168406Spjd MSP430MCInstLower(MCContext &ctx, AsmPrinter &printer) 33219089Spjd : Ctx(ctx), Printer(printer) {} 34196295Spjd void Lower(const MachineInstr *MI, MCInst &OutMI) const; 35209962Smm 36168406Spjd MCOperand LowerSymbolOperand(const MachineOperand &MO, MCSymbol *Sym) const; 37168406Spjd 38168406Spjd MCSymbol *GetGlobalAddressSymbol(const MachineOperand &MO) const; 39212543Simp MCSymbol *GetExternalSymbolSymbol(const MachineOperand &MO) const; 40212543Simp MCSymbol *GetJumpTableSymbol(const MachineOperand &MO) const; 41212543Simp MCSymbol *GetConstantPoolIndexSymbol(const MachineOperand &MO) const; 42212543Simp MCSymbol *GetBlockAddressSymbol(const MachineOperand &MO) const; 43212543Simp}; 44212543Simp 45212543Simp} 46170431Spjd 47212543Simp#endif 48170431Spjd