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 <limits.h> // For LONG_MIN, LONG_MAX. | 5 #include <limits.h> // For LONG_MIN, LONG_MAX. |
6 | 6 |
7 #if V8_TARGET_ARCH_ARM | 7 #if V8_TARGET_ARCH_ARM |
8 | 8 |
9 #include "src/base/bits.h" | 9 #include "src/base/bits.h" |
10 #include "src/base/division-by-constant.h" | 10 #include "src/base/division-by-constant.h" |
(...skipping 1561 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1572 } | 1572 } |
1573 bind(®ular_invoke); | 1573 bind(®ular_invoke); |
1574 } | 1574 } |
1575 } | 1575 } |
1576 | 1576 |
1577 | 1577 |
1578 void MacroAssembler::FloodFunctionIfStepping(Register fun, Register new_target, | 1578 void MacroAssembler::FloodFunctionIfStepping(Register fun, Register new_target, |
1579 const ParameterCount& expected, | 1579 const ParameterCount& expected, |
1580 const ParameterCount& actual) { | 1580 const ParameterCount& actual) { |
1581 Label skip_flooding; | 1581 Label skip_flooding; |
1582 ExternalReference step_in_enabled = | 1582 ExternalReference last_step_action = |
1583 ExternalReference::debug_step_in_enabled_address(isolate()); | 1583 ExternalReference::debug_last_step_action_address(isolate()); |
1584 mov(r4, Operand(step_in_enabled)); | 1584 STATIC_ASSERT(StepFrame > StepIn); |
1585 ldrb(r4, MemOperand(r4)); | 1585 mov(r4, Operand(last_step_action)); |
1586 cmp(r4, Operand(0)); | 1586 ldrsb(r4, MemOperand(r4)); |
1587 b(eq, &skip_flooding); | 1587 cmp(r4, Operand(StepIn)); |
| 1588 b(lt, &skip_flooding); |
1588 { | 1589 { |
1589 FrameScope frame(this, | 1590 FrameScope frame(this, |
1590 has_frame() ? StackFrame::NONE : StackFrame::INTERNAL); | 1591 has_frame() ? StackFrame::NONE : StackFrame::INTERNAL); |
1591 if (expected.is_reg()) { | 1592 if (expected.is_reg()) { |
1592 SmiTag(expected.reg()); | 1593 SmiTag(expected.reg()); |
1593 Push(expected.reg()); | 1594 Push(expected.reg()); |
1594 } | 1595 } |
1595 if (actual.is_reg()) { | 1596 if (actual.is_reg()) { |
1596 SmiTag(actual.reg()); | 1597 SmiTag(actual.reg()); |
1597 Push(actual.reg()); | 1598 Push(actual.reg()); |
(...skipping 2439 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4037 } | 4038 } |
4038 } | 4039 } |
4039 if (mag.shift > 0) mov(result, Operand(result, ASR, mag.shift)); | 4040 if (mag.shift > 0) mov(result, Operand(result, ASR, mag.shift)); |
4040 add(result, result, Operand(dividend, LSR, 31)); | 4041 add(result, result, Operand(dividend, LSR, 31)); |
4041 } | 4042 } |
4042 | 4043 |
4043 } // namespace internal | 4044 } // namespace internal |
4044 } // namespace v8 | 4045 } // namespace v8 |
4045 | 4046 |
4046 #endif // V8_TARGET_ARCH_ARM | 4047 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |