LLVM  3.7.0
MipsMCInstLower.h
Go to the documentation of this file.
1 //===-- MipsMCInstLower.h - Lower MachineInstr to MCInst -------*- C++ -*--===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 
10 #ifndef LLVM_LIB_TARGET_MIPS_MIPSMCINSTLOWER_H
11 #define LLVM_LIB_TARGET_MIPS_MIPSMCINSTLOWER_H
13 #include "llvm/ADT/SmallVector.h"
15 #include "llvm/Support/Compiler.h"
16 
17 namespace llvm {
18  class MCContext;
19  class MCInst;
20  class MCOperand;
21  class MachineInstr;
22  class MachineFunction;
23  class MipsAsmPrinter;
24 
25 /// MipsMCInstLower - This class is used to lower an MachineInstr into an
26 // MCInst.
29  MCContext *Ctx;
31 public:
32  MipsMCInstLower(MipsAsmPrinter &asmprinter);
33  void Initialize(MCContext *C);
34  void Lower(const MachineInstr *MI, MCInst &OutMI) const;
35  MCOperand LowerOperand(const MachineOperand& MO, unsigned offset = 0) const;
36 
37 private:
39  MachineOperandType MOTy, unsigned Offset) const;
40  MCOperand createSub(MachineBasicBlock *BB1, MachineBasicBlock *BB2,
42  void lowerLongBranchLUi(const MachineInstr *MI, MCInst &OutMI) const;
43  void lowerLongBranchADDiu(const MachineInstr *MI, MCInst &OutMI,
44  int Opcode,
45  MCSymbolRefExpr::VariantKind Kind) const;
46  bool lowerLongBranch(const MachineInstr *MI, MCInst &OutMI) const;
47 };
48 }
49 
50 #endif
static MCOperand LowerOperand(const MachineInstr *MI, const MachineOperand &MO, AsmPrinter &AP)
MipsMCInstLower - This class is used to lower an MachineInstr into an.
Context object for machine code objects.
Definition: MCContext.h:48
Instances of this class represent a single low-level machine instruction.
Definition: MCInst.h:150
This class is intended to be used as a driving class for all asm writers.
Definition: AsmPrinter.h:66
#define LLVM_LIBRARY_VISIBILITY
LLVM_LIBRARY_VISIBILITY - If a class marked with this attribute is linked into a shared library...
Definition: Compiler.h:110
static MCOperand LowerSymbolOperand(const MachineInstr *MI, const MachineOperand &MO, AsmPrinter &AP)
MachineOperand class - Representation of each machine instruction operand.
Representation of each machine instruction.
Definition: MachineInstr.h:51
const ARM::ArchExtKind Kind
Instances of this class represent operands of the MCInst class.
Definition: MCInst.h:33