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