MipsMCInstLower.h revision 226633
1169695Skan//===-- MipsMCInstLower.h - Lower MachineInstr to MCInst -------------------==// 2169695Skan// 3169695Skan// The LLVM Compiler Infrastructure 4169695Skan// 5169695Skan// This file is distributed under the University of Illinois Open Source 6169695Skan// License. See LICENSE.TXT for details. 7169695Skan// 8169695Skan//===----------------------------------------------------------------------===// 9169695Skan 10169695Skan#ifndef MIPSMCINSTLOWER_H 11169695Skan#define MIPSMCINSTLOWER_H 12169695Skan#include "llvm/CodeGen/MachineOperand.h" 13169695Skan#include "llvm/Support/Compiler.h" 14169695Skan 15169695Skannamespace llvm { 16169695Skan class MCAsmInfo; 17169695Skan class MCContext; 18169695Skan class MCInst; 19169695Skan class MCOperand; 20169695Skan class MCSymbol; 21169695Skan class MachineInstr; 22169695Skan class MachineFunction; 23169695Skan class Mangler; 24169695Skan class MipsAsmPrinter; 25169695Skan 26169695Skan/// MipsMCInstLower - This class is used to lower an MachineInstr into an 27169695Skan// MCInst. 28169695Skanclass LLVM_LIBRARY_VISIBILITY MipsMCInstLower { 29169695Skan typedef MachineOperand::MachineOperandType MachineOperandType; 30169695Skan MCContext &Ctx; 31169695Skan Mangler *Mang; 32169695Skan MipsAsmPrinter &AsmPrinter; 33169695Skanpublic: 34169695Skan MipsMCInstLower(Mangler *mang, const MachineFunction &MF, 35169695Skan MipsAsmPrinter &asmprinter); 36169695Skan void Lower(const MachineInstr *MI, MCInst &OutMI) const; 37169695Skanprivate: 38169695Skan MCOperand LowerSymbolOperand(const MachineOperand &MO, 39169695Skan MachineOperandType MOTy, unsigned Offset) const; 40169695Skan MCOperand LowerOperand(const MachineOperand& MO) const; 41169695Skan}; 42169695Skan} 43169695Skan 44169695Skan#endif 45169695Skan