Path: blob/main/contrib/llvm-project/llvm/lib/Target/ARC/ARCMCInstLower.h
35267 views
//===- ARCMCInstLower.h - Lower MachineInstr to MCInst ----------*- C++ -*-===//1//2// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.3// See https://llvm.org/LICENSE.txt for license information.4// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception5//6//===----------------------------------------------------------------------===//78#ifndef LLVM_LIB_TARGET_ARC_ARCMCINSTLOWER_H9#define LLVM_LIB_TARGET_ARC_ARCMCINSTLOWER_H1011#include "llvm/CodeGen/MachineOperand.h"12#include "llvm/Support/Compiler.h"1314namespace llvm {1516class MCContext;17class MCInst;18class MCOperand;19class MachineInstr;20class MachineFunction;21class Mangler;22class AsmPrinter;2324/// This class is used to lower an MachineInstr into an MCInst.25class LLVM_LIBRARY_VISIBILITY ARCMCInstLower {26using MachineOperandType = MachineOperand::MachineOperandType;27MCContext *Ctx;28AsmPrinter &Printer;2930public:31ARCMCInstLower(MCContext *C, AsmPrinter &asmprinter);32void Lower(const MachineInstr *MI, MCInst &OutMI) const;33MCOperand LowerOperand(const MachineOperand &MO, unsigned offset = 0) const;3435private:36MCOperand LowerSymbolOperand(const MachineOperand &MO,37MachineOperandType MOTy, unsigned Offset) const;38};3940} // end namespace llvm4142#endif // LLVM_LIB_TARGET_ARC_ARCMCINSTLOWER_H434445