Repository : ssh://darcs.haskell.org//srv/darcs/ghc On branch : master
http://hackage.haskell.org/trac/ghc/changeset/94dbd655faefdcb4f49785a93b5c1af1c3529d30 >--------------------------------------------------------------- commit 94dbd655faefdcb4f49785a93b5c1af1c3529d30 Author: Ian Lynagh <[email protected]> Date: Mon Sep 10 17:04:41 2012 +0100 Pass Platform down to halfWordMask >--------------------------------------------------------------- compiler/cmm/CmmType.hs | 9 +++++---- compiler/codeGen/CgPrimOp.hs | 4 ++-- compiler/codeGen/StgCmmPrim.hs | 4 ++-- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/compiler/cmm/CmmType.hs b/compiler/cmm/CmmType.hs index d108e85..63b42f8 100644 --- a/compiler/cmm/CmmType.hs +++ b/compiler/cmm/CmmType.hs @@ -171,10 +171,11 @@ halfWordWidth _ | wORD_SIZE == 8 = W32 | otherwise = panic "MachOp.halfWordRep: Unknown word size" -halfWordMask :: Integer -halfWordMask | wORD_SIZE == 4 = 0xFFFF - | wORD_SIZE == 8 = 0xFFFFFFFF - | otherwise = panic "MachOp.halfWordMask: Unknown word size" +halfWordMask :: Platform -> Integer +halfWordMask _ + | wORD_SIZE == 4 = 0xFFFF + | wORD_SIZE == 8 = 0xFFFFFFFF + | otherwise = panic "MachOp.halfWordMask: Unknown word size" -- cIntRep is the Width for a C-language 'int' cIntWidth, cLongWidth :: Width diff --git a/compiler/codeGen/CgPrimOp.hs b/compiler/codeGen/CgPrimOp.hs index 1f572bf..c2b7a11 100644 --- a/compiler/codeGen/CgPrimOp.hs +++ b/compiler/codeGen/CgPrimOp.hs @@ -568,7 +568,7 @@ emitPrimOp [res_h, res_l] WordAdd2Op [arg_x, arg_y] _ or x y = CmmMachOp (MO_Or wordWidth) [x, y] hww = CmmLit (CmmInt (fromIntegral (widthInBits (halfWordWidth platform))) wordWidth) - hwm = CmmLit (CmmInt halfWordMask wordWidth) + hwm = CmmLit (CmmInt (halfWordMask platform) wordWidth) stmt = CmmCall (CmmPrim (MO_Add2 wordWidth) (Just genericImpl)) [CmmHinted res_h NoHint, CmmHinted res_l NoHint] @@ -614,7 +614,7 @@ emitPrimOp [res_h, res_l] WordMul2Op [arg_x, arg_y] _ or x y = CmmMachOp (MO_Or wordWidth) [x, y] hww = CmmLit (CmmInt (fromIntegral (widthInBits (halfWordWidth platform))) wordWidth) - hwm = CmmLit (CmmInt halfWordMask wordWidth) + hwm = CmmLit (CmmInt (halfWordMask platform) wordWidth) stmt = CmmCall (CmmPrim (MO_U_Mul2 wordWidth) (Just genericImpl)) [CmmHinted res_h NoHint, CmmHinted res_l NoHint] diff --git a/compiler/codeGen/StgCmmPrim.hs b/compiler/codeGen/StgCmmPrim.hs index 07b8ddf..29d9994 100644 --- a/compiler/codeGen/StgCmmPrim.hs +++ b/compiler/codeGen/StgCmmPrim.hs @@ -641,7 +641,7 @@ genericWordAdd2Op [res_h, res_l] [arg_x, arg_y] or x y = CmmMachOp (MO_Or wordWidth) [x, y] hww = CmmLit (CmmInt (fromIntegral (widthInBits (halfWordWidth platform))) wordWidth) - hwm = CmmLit (CmmInt halfWordMask wordWidth) + hwm = CmmLit (CmmInt (halfWordMask platform) wordWidth) emit $ catAGraphs [mkAssign (CmmLocal r1) (add (bottomHalf arg_x) (bottomHalf arg_y)), @@ -675,7 +675,7 @@ genericWordMul2Op [res_h, res_l] [arg_x, arg_y] or x y = CmmMachOp (MO_Or wordWidth) [x, y] hww = CmmLit (CmmInt (fromIntegral (widthInBits (halfWordWidth platform))) wordWidth) - hwm = CmmLit (CmmInt halfWordMask wordWidth) + hwm = CmmLit (CmmInt (halfWordMask platform) wordWidth) emit $ catAGraphs [mkAssign xlyl (mul (bottomHalf arg_x) (bottomHalf arg_y)), _______________________________________________ Cvs-ghc mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-ghc
