Path: blob/main/contrib/llvm-project/llvm/lib/Target/AVR/AVRMCInstLower.h
35268 views
//===-- AVRMCInstLower.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_AVR_MCINST_LOWER_H9#define LLVM_AVR_MCINST_LOWER_H1011#include "AVRSubtarget.h"12#include "llvm/Support/Compiler.h"1314namespace llvm {1516class AsmPrinter;17class MachineInstr;18class MachineOperand;19class MCContext;20class MCInst;21class MCOperand;22class MCSymbol;2324/// Lowers `MachineInstr` objects into `MCInst` objects.25class AVRMCInstLower {26public:27AVRMCInstLower(MCContext &Ctx, AsmPrinter &Printer)28: Ctx(Ctx), Printer(Printer) {}2930/// Lowers a `MachineInstr` into a `MCInst`.31void lowerInstruction(const MachineInstr &MI, MCInst &OutMI) const;32MCOperand lowerSymbolOperand(const MachineOperand &MO, MCSymbol *Sym,33const AVRSubtarget &Subtarget) const;3435private:36MCContext &Ctx;37AsmPrinter &Printer;38};3940} // end namespace llvm4142#endif // LLVM_AVR_MCINST_LOWER_H434445