Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/llvm-project/llvm/lib/Target/AVR/AVRMCInstLower.h
35268 views
1
//===-- AVRMCInstLower.h - Lower MachineInstr to MCInst ---------*- C++ -*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
9
#ifndef LLVM_AVR_MCINST_LOWER_H
10
#define LLVM_AVR_MCINST_LOWER_H
11
12
#include "AVRSubtarget.h"
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
: 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,
34
const AVRSubtarget &Subtarget) const;
35
36
private:
37
MCContext &Ctx;
38
AsmPrinter &Printer;
39
};
40
41
} // end namespace llvm
42
43
#endif // LLVM_AVR_MCINST_LOWER_H
44
45