| Index: src/x64/codegen-x64.cc
|
| ===================================================================
|
| --- src/x64/codegen-x64.cc (revision 2419)
|
| +++ src/x64/codegen-x64.cc (working copy)
|
| @@ -355,14 +355,19 @@
|
| // receiver.
|
| frame_->Exit();
|
| masm_->ret((scope_->num_parameters() + 1) * kPointerSize);
|
| + // Add padding that will be overwritten by a debugger breakpoint.
|
| + // frame_->Exit() generates "movq rsp, rbp; pop rbp" length 5.
|
| + // "ret k" has length 2.
|
| + const int kPadding = kX64JSReturnSequenceLength - 5 - 2;
|
| + for (int i = 0; i < kPadding; ++i) {
|
| + masm_->int3();
|
| + }
|
| DeleteFrame();
|
|
|
| - // TODO(x64): introduce kX64JSReturnSequenceLength and enable assert.
|
| -
|
| // Check that the size of the code used for returning matches what is
|
| // expected by the debugger.
|
| - // ASSERT_EQ(Debug::kIa32JSReturnSequenceLength,
|
| - // masm_->SizeOfCodeGeneratedSince(&check_exit_codesize));
|
| + ASSERT_EQ(Debug::kX64JSReturnSequenceLength,
|
| + masm_->SizeOfCodeGeneratedSince(&check_exit_codesize));
|
| }
|
|
|
|
|
|
|