OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 part of fixnum; | 5 part of fixnum; |
6 | 6 |
7 /** | 7 /** |
8 * An immutable 64-bit signed integer, in the range [-2^63, 2^63 - 1]. | 8 * An immutable 64-bit signed integer, in the range [-2^63, 2^63 - 1]. |
9 * Arithmetic operations may overflow in order to maintain this range. | 9 * Arithmetic operations may overflow in order to maintain this range. |
10 */ | 10 */ |
(...skipping 607 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
618 | 618 |
619 zeros = int32._numberOfTrailingZeros(_h); | 619 zeros = int32._numberOfTrailingZeros(_h); |
620 if (zeros < 32) { | 620 if (zeros < 32) { |
621 return _BITS01 + zeros; | 621 return _BITS01 + zeros; |
622 } | 622 } |
623 // All zeros | 623 // All zeros |
624 return 64; | 624 return 64; |
625 } | 625 } |
626 | 626 |
627 List<int> toBytes() { | 627 List<int> toBytes() { |
628 List<int> result = new List<int>.fixedLength(8); | 628 List<int> result = new List<int>(8); |
629 result[0] = _l & 0xff; | 629 result[0] = _l & 0xff; |
630 result[1] = (_l >> 8) & 0xff; | 630 result[1] = (_l >> 8) & 0xff; |
631 result[2] = ((_m << 6) & 0xfc) | ((_l >> 16) & 0x3f); | 631 result[2] = ((_m << 6) & 0xfc) | ((_l >> 16) & 0x3f); |
632 result[3] = (_m >> 2) & 0xff; | 632 result[3] = (_m >> 2) & 0xff; |
633 result[4] = (_m >> 10) & 0xff; | 633 result[4] = (_m >> 10) & 0xff; |
634 result[5] = ((_h << 4) & 0xf0) | ((_m >> 18) & 0xf); | 634 result[5] = ((_h << 4) & 0xf0) | ((_m >> 18) & 0xf); |
635 result[6] = (_h >> 4) & 0xff; | 635 result[6] = (_h >> 4) & 0xff; |
636 result[7] = (_h >> 12) & 0xff; | 636 result[7] = (_h >> 12) & 0xff; |
637 return result; | 637 return result; |
638 } | 638 } |
(...skipping 449 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1088 } | 1088 } |
1089 } | 1089 } |
1090 return ZERO; | 1090 return ZERO; |
1091 } | 1091 } |
1092 | 1092 |
1093 // Generate the quotient using bit-at-a-time long division. | 1093 // Generate the quotient using bit-at-a-time long division. |
1094 return _divModHelper(aIsCopy ? a : new int64._copy(a), b, negative, | 1094 return _divModHelper(aIsCopy ? a : new int64._copy(a), b, negative, |
1095 aIsNegative, aIsMinValue, computeRemainder); | 1095 aIsNegative, aIsMinValue, computeRemainder); |
1096 } | 1096 } |
1097 } | 1097 } |
OLD | NEW |