1*349cc55cSDimitry Andric //===-- CSKYMCInstLower.cpp - Convert CSKY MachineInstr to an MCInst --------=//
2*349cc55cSDimitry Andric //
3*349cc55cSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*349cc55cSDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
5*349cc55cSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*349cc55cSDimitry Andric //
7*349cc55cSDimitry Andric //===----------------------------------------------------------------------===//
8*349cc55cSDimitry Andric 
9*349cc55cSDimitry Andric #ifndef LLVM_LIB_TARGET_CSKY_CSKYMCINSTLOWER_H
10*349cc55cSDimitry Andric #define LLVM_LIB_TARGET_CSKY_CSKYMCINSTLOWER_H
11*349cc55cSDimitry Andric 
12*349cc55cSDimitry Andric namespace llvm {
13*349cc55cSDimitry Andric class AsmPrinter;
14*349cc55cSDimitry Andric class MCContext;
15*349cc55cSDimitry Andric class MachineInstr;
16*349cc55cSDimitry Andric class MCInst;
17*349cc55cSDimitry Andric class MachineOperand;
18*349cc55cSDimitry Andric class MCOperand;
19*349cc55cSDimitry Andric class MCSymbol;
20*349cc55cSDimitry Andric 
21*349cc55cSDimitry Andric class CSKYMCInstLower {
22*349cc55cSDimitry Andric   MCContext &Ctx;
23*349cc55cSDimitry Andric   AsmPrinter &Printer;
24*349cc55cSDimitry Andric 
25*349cc55cSDimitry Andric public:
26*349cc55cSDimitry Andric   CSKYMCInstLower(MCContext &Ctx, AsmPrinter &Printer);
27*349cc55cSDimitry Andric 
28*349cc55cSDimitry Andric   void Lower(const MachineInstr *MI, MCInst &OutMI) const;
29*349cc55cSDimitry Andric   bool lowerOperand(const MachineOperand &MO, MCOperand &MCOp) const;
30*349cc55cSDimitry Andric   MCOperand lowerSymbolOperand(const MachineOperand &MO, MCSymbol *Sym) const;
31*349cc55cSDimitry Andric };
32*349cc55cSDimitry Andric 
33*349cc55cSDimitry Andric } // namespace llvm
34*349cc55cSDimitry Andric 
35*349cc55cSDimitry Andric #endif // LLVM_LIB_TARGET_CSKY_CSKYMCINSTLOWER_H
36