#define LLVM_MC_MCINSTBUILDER_H
#include "llvm/MC/MCInst.h"
-#include "llvm/MC/MCStreamer.h"
namespace llvm {
/// \brief Add a new register operand.
MCInstBuilder &addReg(unsigned Reg) {
- Inst.addOperand(MCOperand::CreateReg(Reg));
+ Inst.addOperand(MCOperand::createReg(Reg));
return *this;
}
/// \brief Add a new integer immediate operand.
MCInstBuilder &addImm(int64_t Val) {
- Inst.addOperand(MCOperand::CreateImm(Val));
+ Inst.addOperand(MCOperand::createImm(Val));
return *this;
}
/// \brief Add a new floating point immediate operand.
MCInstBuilder &addFPImm(double Val) {
- Inst.addOperand(MCOperand::CreateFPImm(Val));
+ Inst.addOperand(MCOperand::createFPImm(Val));
return *this;
}
/// \brief Add a new MCExpr operand.
MCInstBuilder &addExpr(const MCExpr *Val) {
- Inst.addOperand(MCOperand::CreateExpr(Val));
+ Inst.addOperand(MCOperand::createExpr(Val));
return *this;
}
/// \brief Add a new MCInst operand.
MCInstBuilder &addInst(const MCInst *Val) {
- Inst.addOperand(MCOperand::CreateInst(Val));
+ Inst.addOperand(MCOperand::createInst(Val));
return *this;
}
- /// \brief Emit the built instruction to an MCStreamer.
- void emit(MCStreamer &OutStreamer) {
- OutStreamer.EmitInstruction(Inst);
+ /// \brief Add an operand.
+ MCInstBuilder &addOperand(const MCOperand &Op) {
+ Inst.addOperand(Op);
+ return *this;
+ }
+
+ operator MCInst&() {
+ return Inst;
}
};