Index: src/compiler/instruction-selector.cc |
diff --git a/src/compiler/instruction-selector.cc b/src/compiler/instruction-selector.cc |
index 91af86bb20a7e2156fbb8eb922fbbd1014f1d650..4186844c57d63c37f491962093e8130f3c555706 100644 |
--- a/src/compiler/instruction-selector.cc |
+++ b/src/compiler/instruction-selector.cc |
@@ -1754,11 +1754,10 @@ void InstructionSelector::VisitTailCall(Node* node) { |
CallDescriptor const* descriptor = CallDescriptorOf(node->op()); |
DCHECK_NE(0, descriptor->flags() & CallDescriptor::kSupportsTailCalls); |
- // TODO(turbofan): Relax restriction for stack parameters. |
- |
- int stack_param_delta = 0; |
- if (linkage()->GetIncomingDescriptor()->CanTailCall(node, |
- &stack_param_delta)) { |
+ CallDescriptor* caller = linkage()->GetIncomingDescriptor(); |
+ if (caller->CanTailCall(node)) { |
+ const CallDescriptor* callee = CallDescriptorOf(node->op()); |
+ int stack_param_delta = callee->GetStackParameterDelta(caller); |
CallBuffer buffer(zone(), descriptor, nullptr); |
// Compute InstructionOperands for inputs and outputs. |