| Index: src/x64/builtins-x64.cc | 
| diff --git a/src/x64/builtins-x64.cc b/src/x64/builtins-x64.cc | 
| index 19e7b533c9d425ed5062526818ae7f86e679db8d..a07473d989d15caf51ee13b31aaa9a05aed35e20 100644 | 
| --- a/src/x64/builtins-x64.cc | 
| +++ b/src/x64/builtins-x64.cc | 
| @@ -749,7 +749,7 @@ static void Generate_NotifyStubFailureHelper(MacroAssembler* masm, | 
| // Tear down internal frame. | 
| } | 
|  | 
| -  __ Pop(MemOperand(rsp, 0));  // Ignore state offset | 
| +  __ DropUnderReturnAddress(1);  // Ignore state offset | 
| __ ret(0);  // Return to IC Miss stub, continuation still on stack. | 
| } | 
|  | 
| @@ -926,12 +926,13 @@ void Builtins::Generate_FunctionCall(MacroAssembler* masm) { | 
| __ bind(&shift_arguments); | 
| { Label loop; | 
| __ movp(rcx, rax); | 
| +    StackArgumentsAccessor args(rsp, rcx); | 
| __ bind(&loop); | 
| -    __ movp(rbx, Operand(rsp, rcx, times_pointer_size, 0)); | 
| -    __ movp(Operand(rsp, rcx, times_pointer_size, 1 * kPointerSize), rbx); | 
| +    __ movp(rbx, args.GetArgumentOperand(1)); | 
| +    __ movp(args.GetArgumentOperand(0), rbx); | 
| __ decp(rcx); | 
| -    __ j(not_sign, &loop);  // While non-negative (to copy return address). | 
| -    __ popq(rbx);  // Discard copy of return address. | 
| +    __ j(not_zero, &loop);  // While non-zero. | 
| +    __ DropUnderReturnAddress(1, rbx);  // Drop one slot under return address. | 
| __ decp(rax);  // One fewer argument (first argument is new receiver). | 
| } | 
|  | 
|  |