Add primitives to write/read Integers to/from bytearrays
authorHerbert Valerio Riedel <hvr@gnu.org>
Tue, 5 Nov 2013 11:08:00 +0000 (12:08 +0100)
committerHerbert Valerio Riedel <hvr@gnu.org>
Tue, 5 Nov 2013 12:21:48 +0000 (13:21 +0100)
commite94799c9d5e15fc03bc226197b00b1d4b1189945
treeb068bc13ee9ea7b0a10f1872d436692e30f32fd7
parentd466dfc855542c5ebfff718e9decab3e469ba08a
Add primitives to write/read Integers to/from bytearrays

This adds the following new (internal) primitives

{{{#!hs
sizeInBaseInteger :: Integer -> Int# -> Word#

exportInteger :: Integer -> MutableByteArray# s -> Word# -> Int#
                 -> State# s -> (# State# s, Word# #)

importInteger :: ByteArray# -> Word# -> Word# -> Int# -> Integer
}}}

The import/export primitives support selecting most/least significant
byte first order as well as using an offset into the byte-arrays.

See Haddock comments for more details.

Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
GHC/Integer/GMP/Internals.hs
GHC/Integer/GMP/Prim.hs
GHC/Integer/Type.lhs
cbits/gmp-wrappers.cmm