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 #include "src/v8.h" | 7 #include "src/v8.h" |
8 | 8 |
9 #if V8_TARGET_ARCH_ARM | 9 #if V8_TARGET_ARCH_ARM |
10 | 10 |
(...skipping 1686 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1697 b(ne, miss); | 1697 b(ne, miss); |
1698 } | 1698 } |
1699 } | 1699 } |
1700 | 1700 |
1701 bind(&done); | 1701 bind(&done); |
1702 // Check that the value is a field property. | 1702 // Check that the value is a field property. |
1703 // t2: elements + (index * kPointerSize) | 1703 // t2: elements + (index * kPointerSize) |
1704 const int kDetailsOffset = | 1704 const int kDetailsOffset = |
1705 SeededNumberDictionary::kElementsStartOffset + 2 * kPointerSize; | 1705 SeededNumberDictionary::kElementsStartOffset + 2 * kPointerSize; |
1706 ldr(t1, FieldMemOperand(t2, kDetailsOffset)); | 1706 ldr(t1, FieldMemOperand(t2, kDetailsOffset)); |
1707 DCHECK_EQ(FIELD, 0); | 1707 DCHECK_EQ(DATA, 0); |
1708 tst(t1, Operand(Smi::FromInt(PropertyDetails::TypeField::kMask))); | 1708 tst(t1, Operand(Smi::FromInt(PropertyDetails::TypeField::kMask))); |
1709 b(ne, miss); | 1709 b(ne, miss); |
1710 | 1710 |
1711 // Get the value at the masked, scaled index and return. | 1711 // Get the value at the masked, scaled index and return. |
1712 const int kValueOffset = | 1712 const int kValueOffset = |
1713 SeededNumberDictionary::kElementsStartOffset + kPointerSize; | 1713 SeededNumberDictionary::kElementsStartOffset + kPointerSize; |
1714 ldr(result, FieldMemOperand(t2, kValueOffset)); | 1714 ldr(result, FieldMemOperand(t2, kValueOffset)); |
1715 } | 1715 } |
1716 | 1716 |
1717 | 1717 |
(...skipping 2368 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4086 } | 4086 } |
4087 } | 4087 } |
4088 if (mag.shift > 0) mov(result, Operand(result, ASR, mag.shift)); | 4088 if (mag.shift > 0) mov(result, Operand(result, ASR, mag.shift)); |
4089 add(result, result, Operand(dividend, LSR, 31)); | 4089 add(result, result, Operand(dividend, LSR, 31)); |
4090 } | 4090 } |
4091 | 4091 |
4092 } // namespace internal | 4092 } // namespace internal |
4093 } // namespace v8 | 4093 } // namespace v8 |
4094 | 4094 |
4095 #endif // V8_TARGET_ARCH_ARM | 4095 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |