Chromium Code Reviews| 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 |