Home | History | Annotate | Line # | Download | only in MSP430
      1 //===-- MSP430MCInstLower.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_LIB_TARGET_MSP430_MSP430MCINSTLOWER_H
     10 #define LLVM_LIB_TARGET_MSP430_MSP430MCINSTLOWER_H
     11 
     12 #include "llvm/Support/Compiler.h"
     13 
     14 namespace llvm {
     15   class AsmPrinter;
     16   class MCContext;
     17   class MCInst;
     18   class MCOperand;
     19   class MCSymbol;
     20   class MachineInstr;
     21   class MachineOperand;
     22 
     23   /// MSP430MCInstLower - This class is used to lower an MachineInstr
     24   /// into an MCInst.
     25 class LLVM_LIBRARY_VISIBILITY MSP430MCInstLower {
     26   MCContext &Ctx;
     27 
     28   AsmPrinter &Printer;
     29 public:
     30   MSP430MCInstLower(MCContext &ctx, AsmPrinter &printer)
     31     : Ctx(ctx), Printer(printer) {}
     32   void Lower(const MachineInstr *MI, MCInst &OutMI) const;
     33 
     34   MCOperand LowerSymbolOperand(const MachineOperand &MO, MCSymbol *Sym) const;
     35 
     36   MCSymbol *GetGlobalAddressSymbol(const MachineOperand &MO) const;
     37   MCSymbol *GetExternalSymbolSymbol(const MachineOperand &MO) const;
     38   MCSymbol *GetJumpTableSymbol(const MachineOperand &MO) const;
     39   MCSymbol *GetConstantPoolIndexSymbol(const MachineOperand &MO) const;
     40   MCSymbol *GetBlockAddressSymbol(const MachineOperand &MO) const;
     41 };
     42 
     43 }
     44 
     45 #endif
     46