OLD | NEW |
---|---|
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-factory.h" | 9 #include "src/code-factory.h" |
10 #include "src/code-stubs.h" | 10 #include "src/code-stubs.h" |
(...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
444 | 444 |
445 #ifdef DEBUG | 445 #ifdef DEBUG |
446 // Add a label for checking the size of the code used for returning. | 446 // Add a label for checking the size of the code used for returning. |
447 Label check_exit_codesize; | 447 Label check_exit_codesize; |
448 __ bind(&check_exit_codesize); | 448 __ bind(&check_exit_codesize); |
449 #endif | 449 #endif |
450 // Make sure that the constant pool is not emitted inside of the return | 450 // Make sure that the constant pool is not emitted inside of the return |
451 // sequence. | 451 // sequence. |
452 { Assembler::BlockConstPoolScope block_const_pool(masm_); | 452 { Assembler::BlockConstPoolScope block_const_pool(masm_); |
453 int32_t sp_delta = (info_->scope()->num_parameters() + 1) * kPointerSize; | 453 int32_t sp_delta = (info_->scope()->num_parameters() + 1) * kPointerSize; |
454 CodeGenerator::RecordPositions(masm_, function()->end_position() - 1); | 454 if (function()->end_position() != RelocInfo::kNoPosition) { |
arv (Not doing code reviews)
2014/11/07 00:03:04
I'm going to see if I can use the position of the
| |
455 CodeGenerator::RecordPositions(masm_, function()->end_position() - 1); | |
456 } | |
455 // TODO(svenpanne) The code below is sometimes 4 words, sometimes 5! | 457 // TODO(svenpanne) The code below is sometimes 4 words, sometimes 5! |
456 PredictableCodeSizeScope predictable(masm_, -1); | 458 PredictableCodeSizeScope predictable(masm_, -1); |
457 __ RecordJSReturn(); | 459 __ RecordJSReturn(); |
458 int no_frame_start = __ LeaveFrame(StackFrame::JAVA_SCRIPT); | 460 int no_frame_start = __ LeaveFrame(StackFrame::JAVA_SCRIPT); |
459 { ConstantPoolUnavailableScope constant_pool_unavailable(masm_); | 461 { ConstantPoolUnavailableScope constant_pool_unavailable(masm_); |
460 __ add(sp, sp, Operand(sp_delta)); | 462 __ add(sp, sp, Operand(sp_delta)); |
461 __ Jump(lr); | 463 __ Jump(lr); |
462 info_->AddNoFrameRange(no_frame_start, masm_->pc_offset()); | 464 info_->AddNoFrameRange(no_frame_start, masm_->pc_offset()); |
463 } | 465 } |
464 } | 466 } |
(...skipping 4876 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
5341 | 5343 |
5342 DCHECK(interrupt_address == | 5344 DCHECK(interrupt_address == |
5343 isolate->builtins()->OsrAfterStackCheck()->entry()); | 5345 isolate->builtins()->OsrAfterStackCheck()->entry()); |
5344 return OSR_AFTER_STACK_CHECK; | 5346 return OSR_AFTER_STACK_CHECK; |
5345 } | 5347 } |
5346 | 5348 |
5347 | 5349 |
5348 } } // namespace v8::internal | 5350 } } // namespace v8::internal |
5349 | 5351 |
5350 #endif // V8_TARGET_ARCH_ARM | 5352 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |