| Index: src/compiler/x87/instruction-selector-x87.cc | 
| diff --git a/src/compiler/x87/instruction-selector-x87.cc b/src/compiler/x87/instruction-selector-x87.cc | 
| index bd8fc61e0bb7295542b471525ff55d3413e5e260..7dda86efdc61150eaa41cae3eebdc88f163cf166 100644 | 
| --- a/src/compiler/x87/instruction-selector-x87.cc | 
| +++ b/src/compiler/x87/instruction-selector-x87.cc | 
| @@ -890,16 +890,13 @@ void InstructionSelector::VisitTailCall(Node* node) { | 
| DCHECK_EQ(0, descriptor->flags() & CallDescriptor::kNeedsNopAfterCall); | 
|  | 
| // TODO(turbofan): Relax restriction for stack parameters. | 
| -  if (descriptor->UsesOnlyRegisters() && | 
| -      descriptor->HasSameReturnLocationsAs( | 
| -          linkage()->GetIncomingDescriptor())) { | 
| + | 
| +  if (linkage()->GetIncomingDescriptor()->CanTailCall(node)) { | 
| CallBuffer buffer(zone(), descriptor, nullptr); | 
|  | 
| // Compute InstructionOperands for inputs and outputs. | 
| InitializeCallBuffer(node, &buffer, true, true); | 
|  | 
| -    DCHECK_EQ(0u, buffer.pushed_nodes.size()); | 
| - | 
| // Select the appropriate opcode based on the call type. | 
| InstructionCode opcode; | 
| switch (descriptor->kind()) { | 
|  |