1251607Sdim//===-- SystemZMCInstLower.h - Lower MachineInstr to MCInst ----*- C++ -*--===// 2251607Sdim// 3251607Sdim// The LLVM Compiler Infrastructure 4251607Sdim// 5251607Sdim// This file is distributed under the University of Illinois Open Source 6251607Sdim// License. See LICENSE.TXT for details. 7251607Sdim// 8251607Sdim//===----------------------------------------------------------------------===// 9251607Sdim 10251607Sdim#ifndef LLVM_SYSTEMZMCINSTLOWER_H 11251607Sdim#define LLVM_SYSTEMZMCINSTLOWER_H 12251607Sdim 13251607Sdim#include "llvm/Support/DataTypes.h" 14251607Sdim#include "llvm/Support/Compiler.h" 15251607Sdim 16251607Sdimnamespace llvm { 17251607Sdimclass MCContext; 18251607Sdimclass MCInst; 19251607Sdimclass MCOperand; 20251607Sdimclass MCSymbol; 21251607Sdimclass MachineInstr; 22251607Sdimclass MachineOperand; 23251607Sdimclass Mangler; 24251607Sdimclass SystemZAsmPrinter; 25251607Sdim 26251607Sdimclass LLVM_LIBRARY_VISIBILITY SystemZMCInstLower { 27251607Sdim Mangler *Mang; 28251607Sdim MCContext &Ctx; 29251607Sdim SystemZAsmPrinter &AsmPrinter; 30251607Sdim 31251607Sdimpublic: 32251607Sdim SystemZMCInstLower(Mangler *mang, MCContext &ctx, 33251607Sdim SystemZAsmPrinter &asmPrinter); 34251607Sdim 35251607Sdim // Lower MachineInstr MI to MCInst OutMI. 36251607Sdim void lower(const MachineInstr *MI, MCInst &OutMI) const; 37251607Sdim 38251607Sdim // Return an MCOperand for MO. Return an empty operand if MO is implicit. 39251607Sdim MCOperand lowerOperand(const MachineOperand& MO) const; 40251607Sdim 41251607Sdim // Return an MCOperand for MO, given that it equals Symbol + Offset. 42251607Sdim MCOperand lowerSymbolOperand(const MachineOperand &MO, 43251607Sdim const MCSymbol *Symbol, int64_t Offset) const; 44251607Sdim}; 45251607Sdim} // end namespace llvm 46251607Sdim 47251607Sdim#endif 48