| Index: src/arm64/macro-assembler-arm64.cc | 
| diff --git a/src/arm64/macro-assembler-arm64.cc b/src/arm64/macro-assembler-arm64.cc | 
| index abbaa32c082c59fa5457b16837d5f42445679437..054b99d0066f3a78231845bba7e5c326b30aca88 100644 | 
| --- a/src/arm64/macro-assembler-arm64.cc | 
| +++ b/src/arm64/macro-assembler-arm64.cc | 
| @@ -1727,20 +1727,17 @@ void MacroAssembler::InvokeBuiltin(int native_context_index, InvokeFlag flag, | 
| } | 
|  | 
|  | 
| -void MacroAssembler::TailCallExternalReference(const ExternalReference& ext, | 
| -                                               int num_arguments) { | 
| -  // TODO(1236192): Most runtime routines don't need the number of | 
| -  // arguments passed in because it is constant. At some point we | 
| -  // should remove this need and make the runtime routine entry code | 
| -  // smarter. | 
| -  Mov(x0, num_arguments); | 
| -  JumpToExternalReference(ext); | 
| -} | 
| - | 
| - | 
| -void MacroAssembler::TailCallRuntime(Runtime::FunctionId fid, | 
| -                                     int num_arguments) { | 
| -  TailCallExternalReference(ExternalReference(fid, isolate()), num_arguments); | 
| +void MacroAssembler::TailCallRuntime(Runtime::FunctionId fid) { | 
| +  const Runtime::Function* function = Runtime::FunctionForId(fid); | 
| +  DCHECK_EQ(1, function->result_size); | 
| +  if (function->nargs >= 0) { | 
| +    // TODO(1236192): Most runtime routines don't need the number of | 
| +    // arguments passed in because it is constant. At some point we | 
| +    // should remove this need and make the runtime routine entry code | 
| +    // smarter. | 
| +    Mov(x0, function->nargs); | 
| +  } | 
| +  JumpToExternalReference(ExternalReference(fid, isolate())); | 
| } | 
|  | 
|  | 
|  |