@@ -459,6 +459,8 @@ const int32_t kMaxInt32 = 0x7FFFFFFF;
459459const uint32_t kMaxUint32 = 0xFFFFFFFF ;
460460const int64_t kMinInt64 = DART_INT64_C(0x8000000000000000 );
461461const int64_t kMaxInt64 = DART_INT64_C(0x7FFFFFFFFFFFFFFF );
462+ const int64_t kMinInt64RepresentableAsDouble = kMinInt64 ;
463+ const int64_t kMaxInt64RepresentableAsDouble = DART_INT64_C(0x7FFFFFFFFFFFFC00 );
462464const uint64_t kMaxUint64 = DART_2PART_UINT64_C(0xFFFFFFFF , FFFFFFFF);
463465const int64_t kSignBitDouble = DART_INT64_C(0x8000000000000000 );
464466
@@ -636,36 +638,6 @@ inline D bit_copy(const S& source) {
636638 return destination;
637639}
638640
639- #if defined(HOST_ARCH_ARM) || defined(HOST_ARCH_ARM64)
640- // Similar to bit_copy and bit_cast, but does take the type from the argument.
641- template <typename T>
642- static inline T ReadUnaligned (const T* ptr) {
643- T value;
644- memcpy (reinterpret_cast <void *>(&value), reinterpret_cast <const void *>(ptr),
645- sizeof (value));
646- return value;
647- }
648-
649- // Similar to bit_copy and bit_cast, but does take the type from the argument.
650- template <typename T>
651- static inline void StoreUnaligned (T* ptr, T value) {
652- memcpy (reinterpret_cast <void *>(ptr), reinterpret_cast <const void *>(&value),
653- sizeof (value));
654- }
655- #else // !(HOST_ARCH_ARM || HOST_ARCH_ARM64)
656- // Similar to bit_copy and bit_cast, but does take the type from the argument.
657- template <typename T>
658- static inline T ReadUnaligned (const T* ptr) {
659- return *ptr;
660- }
661-
662- // Similar to bit_copy and bit_cast, but does take the type from the argument.
663- template <typename T>
664- static inline void StoreUnaligned (T* ptr, T value) {
665- *ptr = value;
666- }
667- #endif // !(HOST_ARCH_ARM || HOST_ARCH_ARM64)
668-
669641// On Windows the reentrent version of strtok is called
670642// strtok_s. Unify on the posix name strtok_r.
671643#if defined(HOST_OS_WINDOWS)
0 commit comments