1//===-- BPFMCInstLower.h - Lower MachineInstr to MCInst ---------*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10#ifndef LLVM_LIB_TARGET_BPF_BPFMCINSTLOWER_H 11#define LLVM_LIB_TARGET_BPF_BPFMCINSTLOWER_H 12 13#include "llvm/Support/Compiler.h" 14 15namespace llvm { 16class AsmPrinter; 17class MCContext; 18class MCInst; 19class MCOperand; 20class MCSymbol; 21class MachineInstr; 22class MachineModuleInfoMachO; 23class MachineOperand; 24class Mangler; 25 26// BPFMCInstLower - This class is used to lower an MachineInstr into an MCInst. 27class LLVM_LIBRARY_VISIBILITY BPFMCInstLower { 28 MCContext &Ctx; 29 30 AsmPrinter &Printer; 31 32public: 33 BPFMCInstLower(MCContext &ctx, AsmPrinter &printer) 34 : Ctx(ctx), Printer(printer) {} 35 void Lower(const MachineInstr *MI, MCInst &OutMI) const; 36 37 MCOperand LowerSymbolOperand(const MachineOperand &MO, MCSymbol *Sym) const; 38 39 MCSymbol *GetGlobalAddressSymbol(const MachineOperand &MO) const; 40}; 41} 42 43#endif 44