1234353Sdim//===-- MBlazeMCInstLower.h - Lower MachineInstr to MCInst ------*- C++ -*-===// 2218885Sdim// 3218885Sdim// The LLVM Compiler Infrastructure 4218885Sdim// 5218885Sdim// This file is distributed under the University of Illinois Open Source 6218885Sdim// License. See LICENSE.TXT for details. 7218885Sdim// 8218885Sdim//===----------------------------------------------------------------------===// 9218885Sdim 10218885Sdim#ifndef MBLAZE_MCINSTLOWER_H 11218885Sdim#define MBLAZE_MCINSTLOWER_H 12218885Sdim 13218885Sdim#include "llvm/Support/Compiler.h" 14218885Sdim 15218885Sdimnamespace llvm { 16218885Sdim class AsmPrinter; 17218885Sdim class MCContext; 18218885Sdim class MCInst; 19218885Sdim class MCOperand; 20218885Sdim class MCSymbol; 21218885Sdim class MachineInstr; 22218885Sdim class MachineModuleInfoMachO; 23218885Sdim class MachineOperand; 24218885Sdim 25218885Sdim /// MBlazeMCInstLower - This class is used to lower an MachineInstr 26218885Sdim /// into an MCInst. 27218885Sdimclass LLVM_LIBRARY_VISIBILITY MBlazeMCInstLower { 28218885Sdim MCContext &Ctx; 29218885Sdim 30218885Sdim AsmPrinter &Printer; 31218885Sdimpublic: 32239462Sdim MBlazeMCInstLower(MCContext &ctx, AsmPrinter &printer) 33239462Sdim : Ctx(ctx), Printer(printer) {} 34218885Sdim void Lower(const MachineInstr *MI, MCInst &OutMI) const; 35218885Sdim 36218885Sdim MCOperand LowerSymbolOperand(const MachineOperand &MO, MCSymbol *Sym) const; 37218885Sdim 38218885Sdim MCSymbol *GetGlobalAddressSymbol(const MachineOperand &MO) const; 39218885Sdim MCSymbol *GetExternalSymbolSymbol(const MachineOperand &MO) const; 40218885Sdim MCSymbol *GetJumpTableSymbol(const MachineOperand &MO) const; 41218885Sdim MCSymbol *GetConstantPoolIndexSymbol(const MachineOperand &MO) const; 42218885Sdim MCSymbol *GetBlockAddressSymbol(const MachineOperand &MO) const; 43218885Sdim}; 44218885Sdim 45218885Sdim} 46218885Sdim 47218885Sdim#endif 48