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 2073 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2084 | 2084 |
2085 | 2085 |
2086 void MacroAssembler::StoreNumberToDoubleElements( | 2086 void MacroAssembler::StoreNumberToDoubleElements( |
2087 Register value_reg, | 2087 Register value_reg, |
2088 Register key_reg, | 2088 Register key_reg, |
2089 Register elements_reg, | 2089 Register elements_reg, |
2090 Register scratch1, | 2090 Register scratch1, |
2091 LowDwVfpRegister double_scratch, | 2091 LowDwVfpRegister double_scratch, |
2092 Label* fail, | 2092 Label* fail, |
2093 int elements_offset) { | 2093 int elements_offset) { |
| 2094 DCHECK(!AreAliased(value_reg, key_reg, elements_reg, scratch1)); |
2094 Label smi_value, store; | 2095 Label smi_value, store; |
2095 | 2096 |
2096 // Handle smi values specially. | 2097 // Handle smi values specially. |
2097 JumpIfSmi(value_reg, &smi_value); | 2098 JumpIfSmi(value_reg, &smi_value); |
2098 | 2099 |
2099 // Ensure that the object is a heap number | 2100 // Ensure that the object is a heap number |
2100 CheckMap(value_reg, | 2101 CheckMap(value_reg, |
2101 scratch1, | 2102 scratch1, |
2102 isolate()->factory()->heap_number_map(), | 2103 isolate()->factory()->heap_number_map(), |
2103 fail, | 2104 fail, |
(...skipping 1578 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3682 } | 3683 } |
3683 } | 3684 } |
3684 if (mag.shift > 0) mov(result, Operand(result, ASR, mag.shift)); | 3685 if (mag.shift > 0) mov(result, Operand(result, ASR, mag.shift)); |
3685 add(result, result, Operand(dividend, LSR, 31)); | 3686 add(result, result, Operand(dividend, LSR, 31)); |
3686 } | 3687 } |
3687 | 3688 |
3688 } // namespace internal | 3689 } // namespace internal |
3689 } // namespace v8 | 3690 } // namespace v8 |
3690 | 3691 |
3691 #endif // V8_TARGET_ARCH_ARM | 3692 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |