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

Reply via email to