diff options
Diffstat (limited to 'lib/CodeGen/MachineInstr.cpp')
-rw-r--r-- | lib/CodeGen/MachineInstr.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/CodeGen/MachineInstr.cpp b/lib/CodeGen/MachineInstr.cpp index e12922e4c8..02c25fdd7f 100644 --- a/lib/CodeGen/MachineInstr.cpp +++ b/lib/CodeGen/MachineInstr.cpp @@ -27,6 +27,22 @@ MachineInstr::MachineInstr(MachineOpCode _opCode, { } +// +// Support for replacing opcode and operands of a MachineInstr in place. +// This only resets the size of the operand vector and initializes it. +// The new operands must be set explicitly later. +// +void +MachineInstr::replace(MachineOpCode _opCode, + unsigned numOperands, + OpCodeMask _opCodeMask) +{ + opCode = _opCode; + opCodeMask = _opCodeMask; + operands.clear(); + operands.resize(numOperands); +} + void MachineInstr::SetMachineOperandVal(unsigned int i, MachineOperand::MachineOperandType opType, |