diff --git a/include/llvm/CodeGen/MachineInstr.h b/include/llvm/CodeGen/MachineInstr.h index b5bb25a4b3a..5c5207fb56d 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 2a1893cc3d0..85d3f1a8f26 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;