Line data Source code
1 : //===-- AVRMCInstLower.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_AVR_MCINST_LOWER_H
11 : #define LLVM_AVR_MCINST_LOWER_H
12 :
13 : #include "llvm/Support/Compiler.h"
14 :
15 : namespace llvm {
16 :
17 : class AsmPrinter;
18 : class MachineInstr;
19 : class MachineOperand;
20 : class MCContext;
21 : class MCInst;
22 : class MCOperand;
23 : class MCSymbol;
24 :
25 : /// Lowers `MachineInstr` objects into `MCInst` objects.
26 : class AVRMCInstLower {
27 : public:
28 : AVRMCInstLower(MCContext &Ctx, AsmPrinter &Printer)
29 5239 : : Ctx(Ctx), Printer(Printer) {}
30 :
31 : /// Lowers a `MachineInstr` into a `MCInst`.
32 : void lowerInstruction(const MachineInstr &MI, MCInst &OutMI) const;
33 : MCOperand lowerSymbolOperand(const MachineOperand &MO, MCSymbol *Sym) const;
34 :
35 : private:
36 : MCContext &Ctx;
37 : AsmPrinter &Printer;
38 : };
39 :
40 : } // end namespace llvm
41 :
42 : #endif // LLVM_AVR_MCINST_LOWER_H
43 :
|