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 1541 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1552 // hash = hash + (hash << 2); | 1552 // hash = hash + (hash << 2); |
1553 add(t0, t0, Operand(t0, LSL, 2)); | 1553 add(t0, t0, Operand(t0, LSL, 2)); |
1554 // hash = hash ^ (hash >> 4); | 1554 // hash = hash ^ (hash >> 4); |
1555 eor(t0, t0, Operand(t0, LSR, 4)); | 1555 eor(t0, t0, Operand(t0, LSR, 4)); |
1556 // hash = hash * 2057; | 1556 // hash = hash * 2057; |
1557 mov(scratch, Operand(t0, LSL, 11)); | 1557 mov(scratch, Operand(t0, LSL, 11)); |
1558 add(t0, t0, Operand(t0, LSL, 3)); | 1558 add(t0, t0, Operand(t0, LSL, 3)); |
1559 add(t0, t0, scratch); | 1559 add(t0, t0, scratch); |
1560 // hash = hash ^ (hash >> 16); | 1560 // hash = hash ^ (hash >> 16); |
1561 eor(t0, t0, Operand(t0, LSR, 16)); | 1561 eor(t0, t0, Operand(t0, LSR, 16)); |
| 1562 bic(t0, t0, Operand(0xc0000000u)); |
1562 } | 1563 } |
1563 | 1564 |
1564 | 1565 |
1565 void MacroAssembler::LoadFromNumberDictionary(Label* miss, | 1566 void MacroAssembler::LoadFromNumberDictionary(Label* miss, |
1566 Register elements, | 1567 Register elements, |
1567 Register key, | 1568 Register key, |
1568 Register result, | 1569 Register result, |
1569 Register t0, | 1570 Register t0, |
1570 Register t1, | 1571 Register t1, |
1571 Register t2) { | 1572 Register t2) { |
(...skipping 2336 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3908 } | 3909 } |
3909 } | 3910 } |
3910 if (mag.shift > 0) mov(result, Operand(result, ASR, mag.shift)); | 3911 if (mag.shift > 0) mov(result, Operand(result, ASR, mag.shift)); |
3911 add(result, result, Operand(dividend, LSR, 31)); | 3912 add(result, result, Operand(dividend, LSR, 31)); |
3912 } | 3913 } |
3913 | 3914 |
3914 } // namespace internal | 3915 } // namespace internal |
3915 } // namespace v8 | 3916 } // namespace v8 |
3916 | 3917 |
3917 #endif // V8_TARGET_ARCH_ARM | 3918 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |