LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MCInstBuilder.h
Go to the documentation of this file.
1 //===-- llvm/MC/MCInstBuilder.h - Simplify creation of MCInsts --*- 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 // This file contains the MCInstBuilder class for convenient creation of
11 // MCInsts.
12 //
13 //===----------------------------------------------------------------------===//
14 
15 #ifndef LLVM_MC_MCINSTBUILDER_H
16 #define LLVM_MC_MCINSTBUILDER_H
17 
18 #include "llvm/MC/MCInst.h"
19 
20 namespace llvm {
21 
23  MCInst Inst;
24 
25 public:
26  /// \brief Create a new MCInstBuilder for an MCInst with a specific opcode.
27  MCInstBuilder(unsigned Opcode) {
28  Inst.setOpcode(Opcode);
29  }
30 
31  /// \brief Add a new register operand.
32  MCInstBuilder &addReg(unsigned Reg) {
34  return *this;
35  }
36 
37  /// \brief Add a new integer immediate operand.
38  MCInstBuilder &addImm(int64_t Val) {
40  return *this;
41  }
42 
43  /// \brief Add a new floating point immediate operand.
44  MCInstBuilder &addFPImm(double Val) {
46  return *this;
47  }
48 
49  /// \brief Add a new MCExpr operand.
50  MCInstBuilder &addExpr(const MCExpr *Val) {
52  return *this;
53  }
54 
55  /// \brief Add a new MCInst operand.
56  MCInstBuilder &addInst(const MCInst *Val) {
58  return *this;
59  }
60 
61  operator MCInst&() {
62  return Inst;
63  }
64 };
65 
66 } // end namespace llvm
67 
68 #endif
MCInstBuilder & addInst(const MCInst *Val)
Add a new MCInst operand.
Definition: MCInstBuilder.h:56
static MCOperand CreateReg(unsigned Reg)
Definition: MCInst.h:111
static MCOperand CreateExpr(const MCExpr *Val)
Definition: MCInst.h:129
MCInstBuilder & addFPImm(double Val)
Add a new floating point immediate operand.
Definition: MCInstBuilder.h:44
MCInstBuilder(unsigned Opcode)
Create a new MCInstBuilder for an MCInst with a specific opcode.
Definition: MCInstBuilder.h:27
MCInstBuilder & addExpr(const MCExpr *Val)
Add a new MCExpr operand.
Definition: MCInstBuilder.h:50
MCInstBuilder & addReg(unsigned Reg)
Add a new register operand.
Definition: MCInstBuilder.h:32
MCInstBuilder & addImm(int64_t Val)
Add a new integer immediate operand.
Definition: MCInstBuilder.h:38
void setOpcode(unsigned Op)
Definition: MCInst.h:157
static MCOperand CreateImm(int64_t Val)
Definition: MCInst.h:117
static MCOperand CreateFPImm(double Val)
Definition: MCInst.h:123
void addOperand(const MCOperand &Op)
Definition: MCInst.h:167
static MCOperand CreateInst(const MCInst *Val)
Definition: MCInst.h:135