@@ -231,12 +231,6 @@ import qualified Data.ByteString.Lazy.Internal as L
231231import Data.Binary.Get.Internal hiding ( Decoder (.. ), runGetIncremental )
232232import qualified Data.Binary.Get.Internal as I
233233
234- #if defined(__GLASGOW_HASKELL__) && !defined(__HADDOCK__)
235- -- needed for (# unboxing #) with magic hash
236- import GHC.Base
237- import GHC.Word
238- #endif
239-
240234-- needed for casting words to float/double
241235import Data.Binary.FloatCast (wordToFloat , wordToDouble )
242236
@@ -463,7 +457,7 @@ getWord16be = readN 2 word16be
463457
464458word16be :: B. ByteString -> Word16
465459word16be = \ s ->
466- (fromIntegral (s `B.unsafeIndex` 0 ) `shiftl_w16 ` 8 ) .|.
460+ (fromIntegral (s `B.unsafeIndex` 0 ) `unsafeShiftL ` 8 ) .|.
467461 (fromIntegral (s `B.unsafeIndex` 1 ))
468462{-# INLINE [2] getWord16be #-}
469463{-# INLINE word16be #-}
@@ -474,7 +468,7 @@ getWord16le = readN 2 word16le
474468
475469word16le :: B. ByteString -> Word16
476470word16le = \ s ->
477- (fromIntegral (s `B.unsafeIndex` 1 ) `shiftl_w16 ` 8 ) .|.
471+ (fromIntegral (s `B.unsafeIndex` 1 ) `unsafeShiftL ` 8 ) .|.
478472 (fromIntegral (s `B.unsafeIndex` 0 ) )
479473{-# INLINE [2] getWord16le #-}
480474{-# INLINE word16le #-}
@@ -485,9 +479,9 @@ getWord32be = readN 4 word32be
485479
486480word32be :: B. ByteString -> Word32
487481word32be = \ s ->
488- (fromIntegral (s `B.unsafeIndex` 0 ) `shiftl_w32 ` 24 ) .|.
489- (fromIntegral (s `B.unsafeIndex` 1 ) `shiftl_w32 ` 16 ) .|.
490- (fromIntegral (s `B.unsafeIndex` 2 ) `shiftl_w32 ` 8 ) .|.
482+ (fromIntegral (s `B.unsafeIndex` 0 ) `unsafeShiftL ` 24 ) .|.
483+ (fromIntegral (s `B.unsafeIndex` 1 ) `unsafeShiftL ` 16 ) .|.
484+ (fromIntegral (s `B.unsafeIndex` 2 ) `unsafeShiftL ` 8 ) .|.
491485 (fromIntegral (s `B.unsafeIndex` 3 ) )
492486{-# INLINE [2] getWord32be #-}
493487{-# INLINE word32be #-}
@@ -498,9 +492,9 @@ getWord32le = readN 4 word32le
498492
499493word32le :: B. ByteString -> Word32
500494word32le = \ s ->
501- (fromIntegral (s `B.unsafeIndex` 3 ) `shiftl_w32 ` 24 ) .|.
502- (fromIntegral (s `B.unsafeIndex` 2 ) `shiftl_w32 ` 16 ) .|.
503- (fromIntegral (s `B.unsafeIndex` 1 ) `shiftl_w32 ` 8 ) .|.
495+ (fromIntegral (s `B.unsafeIndex` 3 ) `unsafeShiftL ` 24 ) .|.
496+ (fromIntegral (s `B.unsafeIndex` 2 ) `unsafeShiftL ` 16 ) .|.
497+ (fromIntegral (s `B.unsafeIndex` 1 ) `unsafeShiftL ` 8 ) .|.
504498 (fromIntegral (s `B.unsafeIndex` 0 ) )
505499{-# INLINE [2] getWord32le #-}
506500{-# INLINE word32le #-}
@@ -511,13 +505,13 @@ getWord64be = readN 8 word64be
511505
512506word64be :: B. ByteString -> Word64
513507word64be = \ s ->
514- (fromIntegral (s `B.unsafeIndex` 0 ) `shiftl_w64 ` 56 ) .|.
515- (fromIntegral (s `B.unsafeIndex` 1 ) `shiftl_w64 ` 48 ) .|.
516- (fromIntegral (s `B.unsafeIndex` 2 ) `shiftl_w64 ` 40 ) .|.
517- (fromIntegral (s `B.unsafeIndex` 3 ) `shiftl_w64 ` 32 ) .|.
518- (fromIntegral (s `B.unsafeIndex` 4 ) `shiftl_w64 ` 24 ) .|.
519- (fromIntegral (s `B.unsafeIndex` 5 ) `shiftl_w64 ` 16 ) .|.
520- (fromIntegral (s `B.unsafeIndex` 6 ) `shiftl_w64 ` 8 ) .|.
508+ (fromIntegral (s `B.unsafeIndex` 0 ) `unsafeShiftL ` 56 ) .|.
509+ (fromIntegral (s `B.unsafeIndex` 1 ) `unsafeShiftL ` 48 ) .|.
510+ (fromIntegral (s `B.unsafeIndex` 2 ) `unsafeShiftL ` 40 ) .|.
511+ (fromIntegral (s `B.unsafeIndex` 3 ) `unsafeShiftL ` 32 ) .|.
512+ (fromIntegral (s `B.unsafeIndex` 4 ) `unsafeShiftL ` 24 ) .|.
513+ (fromIntegral (s `B.unsafeIndex` 5 ) `unsafeShiftL ` 16 ) .|.
514+ (fromIntegral (s `B.unsafeIndex` 6 ) `unsafeShiftL ` 8 ) .|.
521515 (fromIntegral (s `B.unsafeIndex` 7 ) )
522516{-# INLINE [2] getWord64be #-}
523517{-# INLINE word64be #-}
@@ -528,13 +522,13 @@ getWord64le = readN 8 word64le
528522
529523word64le :: B. ByteString -> Word64
530524word64le = \ s ->
531- (fromIntegral (s `B.unsafeIndex` 7 ) `shiftl_w64 ` 56 ) .|.
532- (fromIntegral (s `B.unsafeIndex` 6 ) `shiftl_w64 ` 48 ) .|.
533- (fromIntegral (s `B.unsafeIndex` 5 ) `shiftl_w64 ` 40 ) .|.
534- (fromIntegral (s `B.unsafeIndex` 4 ) `shiftl_w64 ` 32 ) .|.
535- (fromIntegral (s `B.unsafeIndex` 3 ) `shiftl_w64 ` 24 ) .|.
536- (fromIntegral (s `B.unsafeIndex` 2 ) `shiftl_w64 ` 16 ) .|.
537- (fromIntegral (s `B.unsafeIndex` 1 ) `shiftl_w64 ` 8 ) .|.
525+ (fromIntegral (s `B.unsafeIndex` 7 ) `unsafeShiftL ` 56 ) .|.
526+ (fromIntegral (s `B.unsafeIndex` 6 ) `unsafeShiftL ` 48 ) .|.
527+ (fromIntegral (s `B.unsafeIndex` 5 ) `unsafeShiftL ` 40 ) .|.
528+ (fromIntegral (s `B.unsafeIndex` 4 ) `unsafeShiftL ` 32 ) .|.
529+ (fromIntegral (s `B.unsafeIndex` 3 ) `unsafeShiftL ` 24 ) .|.
530+ (fromIntegral (s `B.unsafeIndex` 2 ) `unsafeShiftL ` 16 ) .|.
531+ (fromIntegral (s `B.unsafeIndex` 1 ) `unsafeShiftL ` 8 ) .|.
538532 (fromIntegral (s `B.unsafeIndex` 0 ) )
539533{-# INLINE [2] getWord64le #-}
540534{-# INLINE word64le #-}
@@ -651,27 +645,3 @@ getDoublele = wordToDouble <$> getWord64le
651645getDoublehost :: Get Double
652646getDoublehost = wordToDouble <$> getWord64host
653647{-# INLINE getDoublehost #-}
654-
655- ------------------------------------------------------------------------
656- -- Unchecked shifts
657-
658- shiftl_w16 :: Word16 -> Int -> Word16
659- shiftl_w32 :: Word32 -> Int -> Word32
660- shiftl_w64 :: Word64 -> Int -> Word64
661-
662- #if defined(__GLASGOW_HASKELL__) && !defined(__HADDOCK__)
663- shiftl_w16 (W16 # w) (I # i) = W16 # (w `uncheckedShiftL# ` i)
664- shiftl_w32 (W32 # w) (I # i) = W32 # (w `uncheckedShiftL# ` i)
665-
666- #if WORD_SIZE_IN_BITS < 64
667- shiftl_w64 (W64 # w) (I # i) = W64 # (w `uncheckedShiftL64# ` i)
668-
669- #else
670- shiftl_w64 (W64 # w) (I # i) = W64 # (w `uncheckedShiftL# ` i)
671- #endif
672-
673- #else
674- shiftl_w16 = shiftL
675- shiftl_w32 = shiftL
676- shiftl_w64 = shiftL
677- #endif
0 commit comments