on master help sign in
Implement putWord64be naively
commitd676204bd439678699d4de7f960a51a031bf8b0c authorLennart Kolmodin <kolmodin@gentoo.org> dateFri 27 Aug 2010, 17:06 (16 years ago) parent4d12f0b
1 file changed+5−1
BitsPut.hs+5−1
BitsPut.hs+5−1
@@ -7,6 +7,7 @@ module BitsPut
77 , putWord8
88 , putWord16be
99 , putWord32be
10+ , putWord64be
1011 )
1112 where
1213
@@ -75,7 +76,10 @@ putWord32be n w
7576
7677putWord64be :: Int -> Word64 -> BitPut ()
7778putWord64be n w
78− | n <= 16 = putWord16be n (fromIntegral w)
79+ | n <= 32 = putWord32be n (fromIntegral w)
80+ | otherwise = do
81+ putWord64be (n-32) (w`shiftR`32)
82+ putWord64be 32 (w .&. 0xffffffff)
7983
8084joinPut :: Put -> BitPut ()
8185joinPut m = BitPut $ \s0 -> PairS () $