{-# language MagicHash #-} {-# language UnboxedTuples #-} module Data.Primitive.Unaligned.Mach ( indexUnalignedInt64Array# , indexUnalignedWord64Array# , readUnalignedInt64Array# , readUnalignedWord64Array# , writeUnalignedInt64Array# , writeUnalignedWord64Array# ) where import GHC.Exts (Int#,ByteArray#,MutableByteArray#,State#) import GHC.Word (Word64(W64#)) import GHC.Int (Int64(I64#)) import qualified GHC.Exts as E indexUnalignedWord64Array# :: ByteArray# -> Int# -> Word64 indexUnalignedWord64Array# :: ByteArray# -> Int# -> Word64 indexUnalignedWord64Array# a :: ByteArray# a i :: Int# i = Word# -> Word64 W64# (ByteArray# -> Int# -> Word# E.indexWord8ArrayAsWord# ByteArray# a Int# i) indexUnalignedInt64Array# :: ByteArray# -> Int# -> Int64 indexUnalignedInt64Array# :: ByteArray# -> Int# -> Int64 indexUnalignedInt64Array# a :: ByteArray# a i :: Int# i = Int# -> Int64 I64# (ByteArray# -> Int# -> Int# E.indexWord8ArrayAsInt# ByteArray# a Int# i) readUnalignedWord64Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Word64 #) readUnalignedWord64Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Word64 #) readUnalignedWord64Array# a :: MutableByteArray# s a i :: Int# i s0 :: State# s s0 = case MutableByteArray# s -> Int# -> State# s -> (# State# s, Word# #) forall d. MutableByteArray# d -> Int# -> State# d -> (# State# d, Word# #) E.readWord8ArrayAsWord# MutableByteArray# s a Int# i State# s s0 of (# s1 :: State# s s1, r :: Word# r #) -> (# State# s s1, Word# -> Word64 W64# Word# r #) readUnalignedInt64Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Int64 #) readUnalignedInt64Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Int64 #) readUnalignedInt64Array# a :: MutableByteArray# s a i :: Int# i s0 :: State# s s0 = case MutableByteArray# s -> Int# -> State# s -> (# State# s, Int# #) forall d. MutableByteArray# d -> Int# -> State# d -> (# State# d, Int# #) E.readWord8ArrayAsInt# MutableByteArray# s a Int# i State# s s0 of (# s1 :: State# s s1, r :: Int# r #) -> (# State# s s1, Int# -> Int64 I64# Int# r #) writeUnalignedWord64Array# :: MutableByteArray# s -> Int# -> Word64 -> State# s -> State# s writeUnalignedWord64Array# :: MutableByteArray# s -> Int# -> Word64 -> State# s -> State# s writeUnalignedWord64Array# a :: MutableByteArray# s a i :: Int# i (W64# w :: Word# w) = MutableByteArray# s -> Int# -> Word# -> State# s -> State# s forall d. MutableByteArray# d -> Int# -> Word# -> State# d -> State# d E.writeWord8ArrayAsWord# MutableByteArray# s a Int# i Word# w writeUnalignedInt64Array# :: MutableByteArray# s -> Int# -> Int64 -> State# s -> State# s writeUnalignedInt64Array# :: MutableByteArray# s -> Int# -> Int64 -> State# s -> State# s writeUnalignedInt64Array# a :: MutableByteArray# s a i :: Int# i (I64# w :: Int# w) = MutableByteArray# s -> Int# -> Int# -> State# s -> State# s forall d. MutableByteArray# d -> Int# -> Int# -> State# d -> State# d E.writeWord8ArrayAsInt# MutableByteArray# s a Int# i Int# w