Commit 3050a630 authored by Ian Lynagh's avatar Ian Lynagh
Browse files

Add more bang patterns, needed to fix the 32bit build

parent 3a8892cf
......@@ -634,7 +634,7 @@ x# `modInt64#` y#
= if r# `neInt64#` intToInt64# 0# then r# `plusInt64#` y# else intToInt64# 0#
| otherwise = r#
where
r# = x# `remInt64#` y#
!r# = x# `remInt64#` y#
instance Read Int64 where
readsPrec p s = [(fromInteger x, r) | (x, r) <- readsPrec p s]
......@@ -656,8 +656,8 @@ instance Bits Int64 where
= I64# (word64ToInt64# ((x'# `uncheckedShiftL64#` i'#) `or64#`
(x'# `uncheckedShiftRL64#` (64# -# i'#))))
where
x'# = int64ToWord64# x#
i'# = word2Int# (int2Word# i# `and#` int2Word# 63#)
!x'# = int64ToWord64# x#
!i'# = word2Int# (int2Word# i# `and#` int2Word# 63#)
bitSize _ = 64
isSigned _ = True
......
......@@ -579,7 +579,7 @@ instance Integral Word32 where
| i# >=# 0# = smallInteger i#
| otherwise = wordToInteger x#
where
i# = word2Int# x#
!i# = word2Int# x#
#else
= smallInteger (word2Int# x#)
#endif
......@@ -730,7 +730,7 @@ instance Bits Word64 where
| otherwise = W64# ((x# `uncheckedShiftL64#` i'#) `or64#`
(x# `uncheckedShiftRL64#` (64# -# i'#)))
where
i'# = word2Int# (int2Word# i# `and#` int2Word# 63#)
!i'# = word2Int# (int2Word# i# `and#` int2Word# 63#)
bitSize _ = 64
isSigned _ = False
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment