summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/CodeGen/MachineInstr.h4
-rw-r--r--lib/CodeGen/MachineInstr.cpp16
2 files changed, 12 insertions, 8 deletions
diff --git a/include/llvm/CodeGen/MachineInstr.h b/include/llvm/CodeGen/MachineInstr.h
index b5bb25a4b3..5c5207fb56 100644
--- a/include/llvm/CodeGen/MachineInstr.h
+++ b/include/llvm/CodeGen/MachineInstr.h
@@ -225,8 +225,8 @@ class MachineInstr : public Annotable, // MachineInstrs are annotable
// OperandComplete - Return true if it's illegal to add a new operand
bool OperandsComplete() const;
public:
- MachineInstr(MachineOpCode Opcode, OpCodeMask OpcodeMask = 0);
- MachineInstr(MachineOpCode Opcode, unsigned numOperands, OpCodeMask Mask = 0);
+ MachineInstr(MachineOpCode Opcode);
+ MachineInstr(MachineOpCode Opcode, unsigned numOperands);
/// MachineInstr ctor - This constructor only does a _reserve_ of the
/// operands, not a resize for them. It is expected that if you use this that
diff --git a/lib/CodeGen/MachineInstr.cpp b/lib/CodeGen/MachineInstr.cpp
index 2a1893cc3d..85d3f1a8f2 100644
--- a/lib/CodeGen/MachineInstr.cpp
+++ b/lib/CodeGen/MachineInstr.cpp
@@ -9,20 +9,24 @@ using std::cerr;
// Constructor for instructions with fixed #operands (nearly all)
-MachineInstr::MachineInstr(MachineOpCode _opCode,
- OpCodeMask _opCodeMask)
- : opCode(_opCode), opCodeMask(_opCodeMask),
+MachineInstr::MachineInstr(MachineOpCode _opCode)
+ : opCode(_opCode), opCodeMask(0),
operands(TargetInstrDescriptors[_opCode].numOperands, MachineOperand()) {
assert(TargetInstrDescriptors[_opCode].numOperands >= 0);
}
// Constructor for instructions with variable #operands
-MachineInstr::MachineInstr(MachineOpCode OpCode, unsigned numOperands,
- OpCodeMask OpCodeMask)
- : opCode(OpCode), opCodeMask(OpCodeMask),
+MachineInstr::MachineInstr(MachineOpCode OpCode, unsigned numOperands/*,
+ OpCodeMask OpCodeMask*/)
+ : opCode(OpCode), opCodeMask(0/*OpCodeMask*/),
operands(numOperands, MachineOperand()) {
}
+MachineInstr::MachineInstr(MachineOpCode Opcode, unsigned numOperands,
+ bool XX, bool YY) : opCode(Opcode), opCodeMask(0) {
+ operands.reserve(numOperands);
+}
+
// OperandComplete - Return true if it's illegal to add a new operand
bool MachineInstr::OperandsComplete() const {
int NumOperands = TargetInstrDescriptors[opCode].numOperands;