Index: src/compiler/instruction-selector.cc |
diff --git a/src/compiler/instruction-selector.cc b/src/compiler/instruction-selector.cc |
index b8d2fca76ce6f2420e3bf9c9af8589a0797aa2a0..70ab5001086dad3d4ca44dd3ac3d8c7756143440 100644 |
--- a/src/compiler/instruction-selector.cc |
+++ b/src/compiler/instruction-selector.cc |
@@ -962,7 +962,7 @@ void InstructionSelector::VisitThrow(Node* value) { |
void InstructionSelector::FillTypeVectorFromStateValues( |
ZoneVector<MachineType>* types, Node* state_values) { |
DCHECK(state_values->opcode() == IrOpcode::kStateValues); |
- int count = OpParameter<int>(state_values); |
+ int count = state_values->InputCount(); |
types->reserve(static_cast<size_t>(count)); |
for (int i = 0; i < count; i++) { |
types->push_back(GetMachineType(state_values->InputAt(i))); |
@@ -974,11 +974,14 @@ FrameStateDescriptor* InstructionSelector::GetFrameStateDescriptor( |
Node* state) { |
DCHECK(state->opcode() == IrOpcode::kFrameState); |
DCHECK_EQ(5, state->InputCount()); |
+ DCHECK_EQ(IrOpcode::kStateValues, state->InputAt(0)->opcode()); |
+ DCHECK_EQ(IrOpcode::kStateValues, state->InputAt(1)->opcode()); |
+ DCHECK_EQ(IrOpcode::kStateValues, state->InputAt(2)->opcode()); |
FrameStateCallInfo state_info = OpParameter<FrameStateCallInfo>(state); |
- int parameters = OpParameter<int>(state->InputAt(0)); |
- int locals = OpParameter<int>(state->InputAt(1)); |
- int stack = OpParameter<int>(state->InputAt(2)); |
+ int parameters = state->InputAt(0)->InputCount(); |
+ int locals = state->InputAt(1)->InputCount(); |
+ int stack = state->InputAt(2)->InputCount(); |
FrameStateDescriptor* outer_state = NULL; |
Node* outer_node = state->InputAt(4); |