Index: src/compiler/instruction-selector.cc |
diff --git a/src/compiler/instruction-selector.cc b/src/compiler/instruction-selector.cc |
index 0efdd065551fefc346ebaf3240852de82fbf97cb..55afeb5c10d63609d84cb812718659a1e515e3d7 100644 |
--- a/src/compiler/instruction-selector.cc |
+++ b/src/compiler/instruction-selector.cc |
@@ -281,7 +281,8 @@ void InstructionSelector::InitializeCallBuffer(Node* call, CallBuffer* buffer, |
static_cast<int>(buffer->descriptor->ReturnCount())); |
DCHECK_EQ( |
call->op()->ValueInputCount(), |
- static_cast<int>(buffer->input_count() + buffer->frame_state_count())); |
+ static_cast<int>(buffer->input_count() + buffer->frame_state_count() + |
+ buffer->non_argument_input_count())); |
if (buffer->descriptor->ReturnCount() > 0) { |
// Collect the projections that represent multiple outputs from this call. |
@@ -423,7 +424,8 @@ void InstructionSelector::VisitBlock(BasicBlock* block) { |
SourcePosition source_position = source_positions_->GetSourcePosition(node); |
if (source_position.IsKnown() && |
(source_position_mode_ == kAllSourcePositions || |
- node->opcode() == IrOpcode::kCall)) { |
+ node->opcode() == IrOpcode::kCall || |
+ node->opcode() == IrOpcode::kCallVarArgs)) { |
sequence()->SetSourcePosition(instructions_[current_node_end], |
source_position); |
} |
@@ -583,6 +585,8 @@ void InstructionSelector::VisitNode(Node* node) { |
} |
case IrOpcode::kCall: |
return VisitCall(node); |
+ case IrOpcode::kCallVarArgs: |
+ return VisitCallVarArgs(node); |
case IrOpcode::kFrameState: |
case IrOpcode::kStateValues: |
return; |