Fix 64 bit compilation (hopefully)
authorRoman Leshchinskiy <rl@cse.unsw.edu.au>
Sat, 28 Jan 2012 01:17:59 +0000 (01:17 +0000)
committerRoman Leshchinskiy <rl@cse.unsw.edu.au>
Sat, 28 Jan 2012 01:17:59 +0000 (01:17 +0000)
Data/Primitive/Internal/Operations.hs
Data/Primitive/MachDeps.hs

index 622a3e5..0e53024 100644 (file)
@@ -26,6 +26,7 @@ module Data.Primitive.Internal.Operations (
   setAddrOffAddr#, setFloatOffAddr#, setDoubleOffAddr#, setWideCharOffAddr#
 ) where
 
+import Data.Primitive.MachDeps (Word64_#, Int64_#)
 import GHC.Prim
 
 foreign import ccall unsafe "primitive-memops.h hsprimitive_memset_Word8"
@@ -35,7 +36,7 @@ foreign import ccall unsafe "primitive-memops.h hsprimitive_memset_Word16"
 foreign import ccall unsafe "primitive-memops.h hsprimitive_memset_Word32"
   setWord32Array# :: MutableByteArray# s -> Int# -> Int# -> Word# -> IO ()
 foreign import ccall unsafe "primitive-memops.h hsprimitive_memset_Word64"
-  setWord64Array# :: MutableByteArray# s -> Int# -> Int# -> Word64# -> IO ()
+  setWord64Array# :: MutableByteArray# s -> Int# -> Int# -> Word64_# -> IO ()
 foreign import ccall unsafe "primitive-memops.h hsprimitive_memset_Word"
   setWordArray# :: MutableByteArray# s -> Int# -> Int# -> Word# -> IO ()
 foreign import ccall unsafe "primitive-memops.h hsprimitive_memset_Word8"
@@ -45,7 +46,7 @@ foreign import ccall unsafe "primitive-memops.h hsprimitive_memset_Word16"
 foreign import ccall unsafe "primitive-memops.h hsprimitive_memset_Word32"
   setInt32Array# :: MutableByteArray# s -> Int# -> Int# -> Int# -> IO ()
 foreign import ccall unsafe "primitive-memops.h hsprimitive_memset_Word64"
-  setInt64Array# :: MutableByteArray# s -> Int# -> Int# -> Int64# -> IO ()
+  setInt64Array# :: MutableByteArray# s -> Int# -> Int# -> Int64_# -> IO ()
 foreign import ccall unsafe "primitive-memops.h hsprimitive_memset_Word"
   setIntArray# :: MutableByteArray# s -> Int# -> Int# -> Int# -> IO ()
 foreign import ccall unsafe "primitive-memops.h hsprimitive_memset_Ptr"
@@ -64,7 +65,7 @@ foreign import ccall unsafe "primitive-memops.h hsprimitive_memset_Word16"
 foreign import ccall unsafe "primitive-memops.h hsprimitive_memset_Word32"
   setWord32OffAddr# :: Addr# -> Int# -> Int# -> Word# -> IO ()
 foreign import ccall unsafe "primitive-memops.h hsprimitive_memset_Word64"
-  setWord64OffAddr# :: Addr# -> Int# -> Int# -> Word64# -> IO ()
+  setWord64OffAddr# :: Addr# -> Int# -> Int# -> Word64_# -> IO ()
 foreign import ccall unsafe "primitive-memops.h hsprimitive_memset_Word"
   setWordOffAddr# :: Addr# -> Int# -> Int# -> Word# -> IO ()
 foreign import ccall unsafe "primitive-memops.h hsprimitive_memset_Word8"
@@ -74,7 +75,7 @@ foreign import ccall unsafe "primitive-memops.h hsprimitive_memset_Word16"
 foreign import ccall unsafe "primitive-memops.h hsprimitive_memset_Word32"
   setInt32OffAddr# :: Addr# -> Int# -> Int# -> Int# -> IO ()
 foreign import ccall unsafe "primitive-memops.h hsprimitive_memset_Word64"
-  setInt64OffAddr# :: Addr# -> Int# -> Int# -> Int64# -> IO ()
+  setInt64OffAddr# :: Addr# -> Int# -> Int# -> Int64_# -> IO ()
 foreign import ccall unsafe "primitive-memops.h hsprimitive_memset_Word"
   setIntOffAddr# :: Addr# -> Int# -> Int# -> Int# -> IO ()
 foreign import ccall unsafe "primitive-memops.h hsprimitive_memset_Ptr"
index 326be4a..c35e89c 100644 (file)
@@ -1,3 +1,4 @@
+{-# LANGUAGE MagicHash #-}
 -- |
 -- Module      : Data.Primitive.MachDeps
 -- Copyright   : (c) Roman Leshchinskiy 2009
@@ -13,6 +14,8 @@ module Data.Primitive.MachDeps where
 
 #include "MachDeps.h"
 
+import GHC.Prim
+
 sIZEOF_CHAR,
  aLIGNMENT_CHAR,
 
@@ -110,3 +113,11 @@ aLIGNMENT_INT64 = ALIGNMENT_INT64
 sIZEOF_WORD64 = SIZEOF_WORD64
 aLIGNMENT_WORD64 = ALIGNMENT_WORD64
 
+#if WORD_SIZE_IN_BITS == 32
+type Word64_# = Word64#
+type Int64_# = Int64#
+#else
+type Word64_# = Word#
+type Int64_# = Int#
+#endif
+