Index: src/arm64/full-codegen-arm64.cc |
diff --git a/src/arm64/full-codegen-arm64.cc b/src/arm64/full-codegen-arm64.cc |
index 7dad7d918ffade7bb84f1f84c4e7a6f218516caa..e723123630a1bf51e1d7f665a2e9c3e55ea4a7b2 100644 |
--- a/src/arm64/full-codegen-arm64.cc |
+++ b/src/arm64/full-codegen-arm64.cc |
@@ -492,34 +492,23 @@ void FullCodeGenerator::EmitReturnSequence() { |
EmitProfilingCounterReset(); |
__ Bind(&ok); |
- // Make sure that the constant pool is not emitted inside of the return |
- // sequence. This sequence can get patched when the debugger is used. See |
- // debug-arm64.cc:BreakLocation::SetDebugBreakAtReturn(). |
- { |
- InstructionAccurateScope scope(masm_, |
- Assembler::kJSReturnSequenceInstructions); |
- SetReturnPosition(function()); |
- __ RecordJSReturn(); |
- // This code is generated using Assembler methods rather than Macro |
- // Assembler methods because it will be patched later on, and so the size |
- // of the generated code must be consistent. |
- const Register& current_sp = __ StackPointer(); |
- // Nothing ensures 16 bytes alignment here. |
- DCHECK(!current_sp.Is(csp)); |
- __ mov(current_sp, fp); |
- int no_frame_start = masm_->pc_offset(); |
- __ ldp(fp, lr, MemOperand(current_sp, 2 * kXRegSize, PostIndex)); |
- // Drop the arguments and receiver and return. |
- // TODO(all): This implementation is overkill as it supports 2**31+1 |
- // arguments, consider how to improve it without creating a security |
- // hole. |
- __ ldr_pcrel(ip0, (3 * kInstructionSize) >> kLoadLiteralScaleLog2); |
- __ add(current_sp, current_sp, ip0); |
- __ ret(); |
- int32_t arg_count = info_->scope()->num_parameters() + 1; |
- __ dc64(kXRegSize * arg_count); |
- info_->AddNoFrameRange(no_frame_start, masm_->pc_offset()); |
- } |
+ SetReturnPosition(function()); |
+ const Register& current_sp = __ StackPointer(); |
+ // Nothing ensures 16 bytes alignment here. |
+ DCHECK(!current_sp.Is(csp)); |
+ __ Mov(current_sp, fp); |
+ int no_frame_start = masm_->pc_offset(); |
+ __ Ldp(fp, lr, MemOperand(current_sp, 2 * kXRegSize, PostIndex)); |
+ // Drop the arguments and receiver and return. |
+ // TODO(all): This implementation is overkill as it supports 2**31+1 |
+ // arguments, consider how to improve it without creating a security |
+ // hole. |
+ __ ldr_pcrel(ip0, (3 * kInstructionSize) >> kLoadLiteralScaleLog2); |
+ __ Add(current_sp, current_sp, ip0); |
+ __ Ret(); |
+ int32_t arg_count = info_->scope()->num_parameters() + 1; |
+ __ dc64(kXRegSize * arg_count); |
+ info_->AddNoFrameRange(no_frame_start, masm_->pc_offset()); |
} |
} |