| Index: src/x64/full-codegen-x64.cc
 | 
| ===================================================================
 | 
| --- src/x64/full-codegen-x64.cc	(revision 6692)
 | 
| +++ src/x64/full-codegen-x64.cc	(working copy)
 | 
| @@ -297,19 +297,22 @@
 | 
|      // patch with the code required by the debugger.
 | 
|      __ movq(rsp, rbp);
 | 
|      __ pop(rbp);
 | 
| -    __ ret((scope()->num_parameters() + 1) * kPointerSize);
 | 
| +
 | 
| +    int arguments_bytes = (scope()->num_parameters() + 1) * kPointerSize;
 | 
| +    __ Ret(arguments_bytes, rcx);
 | 
| +
 | 
|  #ifdef ENABLE_DEBUGGER_SUPPORT
 | 
|      // Add padding that will be overwritten by a debugger breakpoint.  We
 | 
| -    // have just generated "movq rsp, rbp; pop rbp; ret k" with length 7
 | 
| +    // have just generated at least 7 bytes: "movq rsp, rbp; pop rbp; ret k"
 | 
|      // (3 + 1 + 3).
 | 
|      const int kPadding = Assembler::kJSReturnSequenceLength - 7;
 | 
|      for (int i = 0; i < kPadding; ++i) {
 | 
|        masm_->int3();
 | 
|      }
 | 
| -    // Check that the size of the code used for returning matches what is
 | 
| -    // expected by the debugger.
 | 
| -    ASSERT_EQ(Assembler::kJSReturnSequenceLength,
 | 
| -            masm_->SizeOfCodeGeneratedSince(&check_exit_codesize));
 | 
| +    // Check that the size of the code used for returning is large enough
 | 
| +    // for the debugger's requirements.
 | 
| +    ASSERT(Assembler::kJSReturnSequenceLength <=
 | 
| +           masm_->SizeOfCodeGeneratedSince(&check_exit_codesize));
 | 
|  #endif
 | 
|    }
 | 
|  }
 | 
| 
 |