diff options
Diffstat (limited to 'libraries/ghc-bignum')
-rw-r--r-- | libraries/ghc-bignum/src/GHC/Num/BigNat.hs | 4 | ||||
-rw-r--r-- | libraries/ghc-bignum/src/GHC/Num/Natural.hs | 4 | ||||
-rw-r--r-- | libraries/ghc-bignum/src/GHC/Num/WordArray.hs | 10 |
3 files changed, 10 insertions, 8 deletions
diff --git a/libraries/ghc-bignum/src/GHC/Num/BigNat.hs b/libraries/ghc-bignum/src/GHC/Num/BigNat.hs index 20a227f099..4aeedafc9d 100644 --- a/libraries/ghc-bignum/src/GHC/Num/BigNat.hs +++ b/libraries/ghc-bignum/src/GHC/Num/BigNat.hs @@ -228,8 +228,8 @@ bigNatToWordList bn = go (bigNatSize# bn) -- | Convert two Word# (most-significant first) into a BigNat bigNatFromWord2# :: Word# -> Word# -> BigNat# bigNatFromWord2# 0## 0## = bigNatZero# (# #) -bigNatFromWord2# 0## n = bigNatFromWord# n -bigNatFromWord2# w1 w2 = wordArrayFromWord2# w1 w2 +bigNatFromWord2# 0## l = bigNatFromWord# l +bigNatFromWord2# h l = wordArrayFromWord2# h l -- | Convert a BigNat into a Word# bigNatToWord# :: BigNat# -> Word# diff --git a/libraries/ghc-bignum/src/GHC/Num/Natural.hs b/libraries/ghc-bignum/src/GHC/Num/Natural.hs index ac35b65522..62e9f33e1c 100644 --- a/libraries/ghc-bignum/src/GHC/Num/Natural.hs +++ b/libraries/ghc-bignum/src/GHC/Num/Natural.hs @@ -86,8 +86,8 @@ naturalFromWord# x = NS x -- | Convert two Word# (most-significant first) into a Natural naturalFromWord2# :: Word# -> Word# -> Natural naturalFromWord2# 0## 0## = naturalZero -naturalFromWord2# 0## n = NS n -naturalFromWord2# w1 w2 = NB (bigNatFromWord2# w2 w1) +naturalFromWord2# 0## l = NS l +naturalFromWord2# h l = NB (bigNatFromWord2# h l) -- | Create a Natural from a Word naturalFromWord :: Word -> Natural diff --git a/libraries/ghc-bignum/src/GHC/Num/WordArray.hs b/libraries/ghc-bignum/src/GHC/Num/WordArray.hs index 78c450b55e..9b98f74293 100644 --- a/libraries/ghc-bignum/src/GHC/Num/WordArray.hs +++ b/libraries/ghc-bignum/src/GHC/Num/WordArray.hs @@ -121,12 +121,14 @@ withNewWordArrayTrimedMaybe# sz act = case runRW# io of (# _, a #) -> a -- | Create a WordArray# from two Word# -- --- `byteArrayFromWord2# msw lsw = lsw:msw` +-- `wordArrayFromWord2# h l +-- where h is the most significant word +-- l is the least significant word wordArrayFromWord2# :: Word# -> Word# -> WordArray# -wordArrayFromWord2# msw lsw = +wordArrayFromWord2# h l = withNewWordArray# 2# \mwa s -> - case mwaWrite# mwa 0# lsw s of - s -> mwaWrite# mwa 1# msw s + case mwaWrite# mwa 0# l s of + s -> mwaWrite# mwa 1# h s -- | Create a WordArray# from one Word# wordArrayFromWord# :: Word# -> WordArray# |