@@ -7,6 +7,7 @@ module BitsPut
8 , putWord16be
8 , putWord16be
9 , putWord32be
9 , putWord32be
@@ -75,7 +76,10 @@ putWord32be n w
76putWord64be :: Int -> Word64 -> BitPut ()
77putWord64be :: Int -> Word64 -> BitPut ()
77putWord64be n w
78putWord64be n w
78− | n <= 16 = putWord16be n (fromIntegral w)
79+ | n <= 32 = putWord32be n (fromIntegral w)
81+ putWord64be (n-32) (w`shiftR`32)
82+ putWord64be 32 (w .&. 0xffffffff)
80joinPut :: Put -> BitPut ()
84joinPut :: Put -> BitPut ()
81joinPut m = BitPut $ \s0 -> PairS () $
85joinPut m = BitPut $ \s0 -> PairS () $