OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 #if V8_TARGET_ARCH_ARM64 | 5 #if V8_TARGET_ARCH_ARM64 |
6 | 6 |
7 #include "src/base/bits.h" | 7 #include "src/base/bits.h" |
8 #include "src/base/division-by-constant.h" | 8 #include "src/base/division-by-constant.h" |
9 #include "src/bootstrapper.h" | 9 #include "src/bootstrapper.h" |
10 #include "src/codegen.h" | 10 #include "src/codegen.h" |
(...skipping 2474 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2485 } | 2485 } |
2486 } | 2486 } |
2487 Bind(®ular_invoke); | 2487 Bind(®ular_invoke); |
2488 } | 2488 } |
2489 | 2489 |
2490 | 2490 |
2491 void MacroAssembler::FloodFunctionIfStepping(Register fun, Register new_target, | 2491 void MacroAssembler::FloodFunctionIfStepping(Register fun, Register new_target, |
2492 const ParameterCount& expected, | 2492 const ParameterCount& expected, |
2493 const ParameterCount& actual) { | 2493 const ParameterCount& actual) { |
2494 Label skip_flooding; | 2494 Label skip_flooding; |
2495 ExternalReference step_in_enabled = | 2495 ExternalReference last_step_action = |
2496 ExternalReference::debug_step_in_enabled_address(isolate()); | 2496 ExternalReference::debug_last_step_action_address(isolate()); |
2497 Mov(x4, Operand(step_in_enabled)); | 2497 STATIC_ASSERT(StepFrame > StepIn); |
2498 ldrb(x4, MemOperand(x4)); | 2498 Mov(x4, Operand(last_step_action)); |
2499 CompareAndBranch(x4, Operand(0), eq, &skip_flooding); | 2499 Ldrsb(x4, MemOperand(x4)); |
| 2500 CompareAndBranch(x4, Operand(StepIn), lt, &skip_flooding); |
2500 { | 2501 { |
2501 FrameScope frame(this, | 2502 FrameScope frame(this, |
2502 has_frame() ? StackFrame::NONE : StackFrame::INTERNAL); | 2503 has_frame() ? StackFrame::NONE : StackFrame::INTERNAL); |
2503 if (expected.is_reg()) { | 2504 if (expected.is_reg()) { |
2504 SmiTag(expected.reg()); | 2505 SmiTag(expected.reg()); |
2505 Push(expected.reg()); | 2506 Push(expected.reg()); |
2506 } | 2507 } |
2507 if (actual.is_reg()) { | 2508 if (actual.is_reg()) { |
2508 SmiTag(actual.reg()); | 2509 SmiTag(actual.reg()); |
2509 Push(actual.reg()); | 2510 Push(actual.reg()); |
(...skipping 2634 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5144 } | 5145 } |
5145 | 5146 |
5146 | 5147 |
5147 #undef __ | 5148 #undef __ |
5148 | 5149 |
5149 | 5150 |
5150 } // namespace internal | 5151 } // namespace internal |
5151 } // namespace v8 | 5152 } // namespace v8 |
5152 | 5153 |
5153 #endif // V8_TARGET_ARCH_ARM64 | 5154 #endif // V8_TARGET_ARCH_ARM64 |
OLD | NEW |