Index: src/compiler/instruction-selector.cc |
diff --git a/src/compiler/instruction-selector.cc b/src/compiler/instruction-selector.cc |
index 3e3943f3720fcdf09f135525fbdbd21d2066cb40..733624e86622f16e253309a0b1749fd004efed77 100644 |
--- a/src/compiler/instruction-selector.cc |
+++ b/src/compiler/instruction-selector.cc |
@@ -1082,17 +1082,19 @@ void InstructionSelector::VisitDeoptimize(Node* deopt) { |
DCHECK(deopt->op()->opcode() == IrOpcode::kDeoptimize); |
Node* state = deopt->InputAt(0); |
FrameStateDescriptor* descriptor = GetFrameStateDescriptor(state); |
+ int deoptimization_id = sequence()->AddDeoptimizationEntry(descriptor); |
InstructionOperandVector inputs(zone()); |
- inputs.reserve(descriptor->size()); |
+ inputs.reserve(descriptor->size() + 1); |
+ |
+ OperandGenerator g(this); |
+ inputs.push_back(g.TempImmediate(deoptimization_id)); |
AddFrameStateInputs(state, &inputs, descriptor); |
- DCHECK_EQ(descriptor->size(), inputs.size()); |
+ DCHECK_EQ(descriptor->size() + 1, inputs.size()); |
- int deoptimization_id = sequence()->AddDeoptimizationEntry(descriptor); |
- Emit(kArchDeoptimize | MiscField::encode(deoptimization_id), 0, NULL, |
- inputs.size(), &inputs.front(), 0, NULL); |
+ Emit(kArchDeoptimize, 0, NULL, inputs.size(), &inputs.front(), 0, NULL); |
} |