MipsMCInstLower.h revision 224133
1224133Sdim//===-- MipsMCInstLower.h - Lower MachineInstr to MCInst -------------------===// 2224133Sdim// 3224133Sdim// The LLVM Compiler Infrastructure 4224133Sdim// 5224133Sdim// This file is distributed under the University of Illinois Open Source 6224133Sdim// License. See LICENSE.TXT for details. 7224133Sdim// 8224133Sdim//===----------------------------------------------------------------------===// 9224133Sdim 10224133Sdim#ifndef MIPSMCINSTLOWER_H 11224133Sdim#define MIPSMCINSTLOWER_H 12224133Sdim#include "llvm/CodeGen/MachineOperand.h" 13224133Sdim#include "llvm/Support/Compiler.h" 14224133Sdim 15224133Sdimnamespace llvm { 16224133Sdim class MCAsmInfo; 17224133Sdim class MCContext; 18224133Sdim class MCInst; 19224133Sdim class MCOperand; 20224133Sdim class MCSymbol; 21224133Sdim class MachineInstr; 22224133Sdim class MachineFunction; 23224133Sdim class Mangler; 24224133Sdim class MipsAsmPrinter; 25224133Sdim 26224133Sdim/// MipsMCInstLower - This class is used to lower an MachineInstr into an 27224133Sdim// MCInst. 28224133Sdimclass LLVM_LIBRARY_VISIBILITY MipsMCInstLower { 29224133Sdim typedef MachineOperand::MachineOperandType MachineOperandType; 30224133Sdim MCContext &Ctx; 31224133Sdim Mangler *Mang; 32224133Sdim MipsAsmPrinter &AsmPrinter; 33224133Sdimpublic: 34224133Sdim MipsMCInstLower(Mangler *mang, const MachineFunction &MF, 35224133Sdim MipsAsmPrinter &asmprinter); 36224133Sdim void Lower(const MachineInstr *MI, MCInst &OutMI) const; 37224133Sdimprivate: 38224133Sdim MCOperand LowerSymbolOperand(const MachineOperand &MO, 39224133Sdim MachineOperandType MOTy) const; 40224133Sdim}; 41224133Sdim} 42224133Sdim 43224133Sdim#endif 44