| Index: src/arm64/lithium-arm64.cc | 
| diff --git a/src/arm64/lithium-arm64.cc b/src/arm64/lithium-arm64.cc | 
| index d6b4176e9f7a82e20e741b4ae7ccb20da04890a7..50e0f44cfefac8cdd185a552dfc5e8f5711bf2cd 100644 | 
| --- a/src/arm64/lithium-arm64.cc | 
| +++ b/src/arm64/lithium-arm64.cc | 
| @@ -1995,9 +1995,21 @@ LInstruction* LChunkBuilder::DoPower(HPower* instr) { | 
| } | 
|  | 
|  | 
| -LInstruction* LChunkBuilder::DoPushArgument(HPushArgument* instr) { | 
| -  LOperand* argument = UseRegister(instr->argument()); | 
| -  return new(zone()) LPushArgument(argument); | 
| +LInstruction* LChunkBuilder::DoPushArguments(HPushArguments* instr) { | 
| +  int argc = instr->OperandCount(); | 
| +  AddInstruction(new(zone()) LPreparePushArguments(argc), instr); | 
| + | 
| +  LPushArguments* push_args = new(zone()) LPushArguments(zone()); | 
| + | 
| +  for (int i = 0; i < argc; ++i) { | 
| +    if (push_args->ShouldSplitPush()) { | 
| +      AddInstruction(push_args, instr); | 
| +      push_args = new(zone()) LPushArguments(zone()); | 
| +    } | 
| +    push_args->AddArgument(UseRegister(instr->argument(i))); | 
| +  } | 
| + | 
| +  return push_args; | 
| } | 
|  | 
|  | 
|  |