Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(684)

Side by Side Diff: src/arm/full-codegen-arm.cc

Issue 494733002: Add missing ConstantPoolUnavailableScopes on JS return. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | src/arm/lithium-codegen-arm.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/v8.h" 5 #include "src/v8.h"
6 6
7 #if V8_TARGET_ARCH_ARM 7 #if V8_TARGET_ARCH_ARM
8 8
9 #include "src/code-stubs.h" 9 #include "src/code-stubs.h"
10 #include "src/codegen.h" 10 #include "src/codegen.h"
(...skipping 430 matching lines...) Expand 10 before | Expand all | Expand 10 after
441 #endif 441 #endif
442 // Make sure that the constant pool is not emitted inside of the return 442 // Make sure that the constant pool is not emitted inside of the return
443 // sequence. 443 // sequence.
444 { Assembler::BlockConstPoolScope block_const_pool(masm_); 444 { Assembler::BlockConstPoolScope block_const_pool(masm_);
445 int32_t sp_delta = (info_->scope()->num_parameters() + 1) * kPointerSize; 445 int32_t sp_delta = (info_->scope()->num_parameters() + 1) * kPointerSize;
446 CodeGenerator::RecordPositions(masm_, function()->end_position() - 1); 446 CodeGenerator::RecordPositions(masm_, function()->end_position() - 1);
447 // TODO(svenpanne) The code below is sometimes 4 words, sometimes 5! 447 // TODO(svenpanne) The code below is sometimes 4 words, sometimes 5!
448 PredictableCodeSizeScope predictable(masm_, -1); 448 PredictableCodeSizeScope predictable(masm_, -1);
449 __ RecordJSReturn(); 449 __ RecordJSReturn();
450 int no_frame_start = __ LeaveFrame(StackFrame::JAVA_SCRIPT); 450 int no_frame_start = __ LeaveFrame(StackFrame::JAVA_SCRIPT);
451 __ add(sp, sp, Operand(sp_delta)); 451 { ConstantPoolUnavailableScope constant_pool_unavailable(masm_);
452 __ Jump(lr); 452 __ add(sp, sp, Operand(sp_delta));
453 info_->AddNoFrameRange(no_frame_start, masm_->pc_offset()); 453 __ Jump(lr);
454 info_->AddNoFrameRange(no_frame_start, masm_->pc_offset());
455 }
454 } 456 }
455 457
456 #ifdef DEBUG 458 #ifdef DEBUG
457 // Check that the size of the code used for returning is large enough 459 // Check that the size of the code used for returning is large enough
458 // for the debugger's requirements. 460 // for the debugger's requirements.
459 DCHECK(Assembler::kJSReturnSequenceInstructions <= 461 DCHECK(Assembler::kJSReturnSequenceInstructions <=
460 masm_->InstructionsGeneratedSince(&check_exit_codesize)); 462 masm_->InstructionsGeneratedSince(&check_exit_codesize));
461 #endif 463 #endif
462 } 464 }
463 } 465 }
(...skipping 4417 matching lines...) Expand 10 before | Expand all | Expand 10 after
4881 4883
4882 DCHECK(interrupt_address == 4884 DCHECK(interrupt_address ==
4883 isolate->builtins()->OsrAfterStackCheck()->entry()); 4885 isolate->builtins()->OsrAfterStackCheck()->entry());
4884 return OSR_AFTER_STACK_CHECK; 4886 return OSR_AFTER_STACK_CHECK;
4885 } 4887 }
4886 4888
4887 4889
4888 } } // namespace v8::internal 4890 } } // namespace v8::internal
4889 4891
4890 #endif // V8_TARGET_ARCH_ARM 4892 #endif // V8_TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « no previous file | src/arm/lithium-codegen-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698