Repository : ssh://darcs.haskell.org//srv/darcs/ghc On branch : master
http://hackage.haskell.org/trac/ghc/changeset/20670cc63395397cf2b9d80d9da27c77c1ebb8da >--------------------------------------------------------------- commit 20670cc63395397cf2b9d80d9da27c77c1ebb8da Author: Ian Lynagh <[email protected]> Date: Wed Sep 19 14:49:27 2012 +0100 Make the StgWord/StgHalfWord types more similar Also added a couple of comments. >--------------------------------------------------------------- compiler/cmm/SMRep.lhs | 13 ++++++++----- 1 files changed, 8 insertions(+), 5 deletions(-) diff --git a/compiler/cmm/SMRep.lhs b/compiler/cmm/SMRep.lhs index 53110cf..d964448 100644 --- a/compiler/cmm/SMRep.lhs +++ b/compiler/cmm/SMRep.lhs @@ -76,6 +76,7 @@ roundUpToWords dflags n = (n + (wORD_SIZE dflags - 1)) .&. (complement (wORD_SIZ StgWord is a type representing an StgWord on the target platform. \begin{code} +-- A Word64 is large enough to hold a Word for either a 32bit or 64bit platform newtype StgWord = StgWord Word64 deriving (Eq, #if __GLASGOW_HASKELL__ < 706 @@ -100,23 +101,25 @@ instance Outputable StgWord where -- -newtype StgHalfWord = StgHalfWord Integer +-- A Word32 is large enough to hold half a Word for either a 32bit or +-- 64bit platform +newtype StgHalfWord = StgHalfWord Word32 deriving Eq fromStgHalfWord :: StgHalfWord -> Integer -fromStgHalfWord (StgHalfWord i) = i +fromStgHalfWord (StgHalfWord w) = toInteger w toStgHalfWord :: DynFlags -> Integer -> StgHalfWord toStgHalfWord dflags i = case platformWordSize (targetPlatform dflags) of -- These conversions mean that things like toStgHalfWord (-1) -- do the right thing - 4 -> StgHalfWord (toInteger (fromInteger i :: Word16)) - 8 -> StgHalfWord (toInteger (fromInteger i :: Word32)) + 4 -> StgHalfWord (fromIntegral (fromInteger i :: Word16)) + 8 -> StgHalfWord (fromInteger i :: Word32) w -> panic ("toStgHalfWord: Unknown platformWordSize: " ++ show w) instance Outputable StgHalfWord where - ppr (StgHalfWord i) = integer i + ppr (StgHalfWord w) = integer (toInteger w) hALF_WORD_SIZE :: DynFlags -> ByteOff hALF_WORD_SIZE dflags = platformWordSize (targetPlatform dflags) `shiftR` 1 _______________________________________________ Cvs-ghc mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-ghc
