brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · efb359c Raw
40 lines · c
1//===-- XCoreMCInstLower.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-exception6//7//===----------------------------------------------------------------------===//8 9#ifndef LLVM_LIB_TARGET_XCORE_XCOREMCINSTLOWER_H10#define LLVM_LIB_TARGET_XCORE_XCOREMCINSTLOWER_H11 12#include "llvm/CodeGen/MachineOperand.h"13#include "llvm/Support/Compiler.h"14 15namespace llvm {16  class MCContext;17  class MCInst;18  class MCOperand;19  class MachineInstr;20  class AsmPrinter;21 22/// This class is used to lower an MachineInstr into an MCInst.23class LLVM_LIBRARY_VISIBILITY XCoreMCInstLower {24  typedef MachineOperand::MachineOperandType MachineOperandType;25  MCContext *Ctx;26  AsmPrinter &Printer;27public:28  XCoreMCInstLower(class AsmPrinter &asmprinter);29  void Initialize(MCContext *C);30  void Lower(const MachineInstr *MI, MCInst &OutMI) const;31  MCOperand LowerOperand(const MachineOperand& MO, unsigned offset = 0) const;32 33private:34  MCOperand LowerSymbolOperand(const MachineOperand &MO,35                               MachineOperandType MOTy, unsigned Offset) const;36};37}38 39#endif40