Remove GHC's haskell98 dependency
[ghc-hetmet.git] / compiler / codeGen / CgHpc.hs
index cb9c7ba..c66af03 100644 (file)
@@ -1,10 +1,3 @@
-{-# OPTIONS -w #-}
--- The above warning supression flag is a temporary kludge.
--- While working on this module you are encouraged to remove it and fix
--- any warnings in the module. See
---     http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#Warnings
--- for details
-
 -----------------------------------------------------------------------------
 --
 -- Code generation for coverage
@@ -18,7 +11,6 @@ module CgHpc (cgTickBox, initHpc, hpcTable) where
 import Cmm
 import CLabel
 import Module
-import MachOp
 import CmmUtils
 import CgUtils
 import CgMonad
@@ -27,22 +19,22 @@ import ForeignCall
 import ClosureInfo
 import FastString
 import HscTypes
-import Char
-import StaticFlags
-import PackageConfig 
+import Panic
+import BasicTypes
 
+import Data.Char
 import Data.Word
 
 cgTickBox :: Module -> Int -> Code
 cgTickBox mod n = do
-       let tick_box = (cmmIndex I64
+       let tick_box = (cmmIndex W64
                        (CmmLit $ CmmLabel $ mkHpcTicksLabel $ mod)
                        (fromIntegral n)
                       )
        stmtsC [ CmmStore tick_box
-                         (CmmMachOp (MO_Add I64)
-                                               [ CmmLoad tick_box I64
-                                               , CmmLit (CmmInt 1 I64)
+                         (CmmMachOp (MO_Add W64)
+                                               [ CmmLoad tick_box b64
+                                               , CmmLit (CmmInt 1 W64)
                                                ])
               ] 
 
@@ -56,7 +48,7 @@ hpcTable this_mod (HpcInfo hpc_tickCount _) = do
                                         ]
                         emitData Data $ [ CmmDataLabel (mkHpcTicksLabel this_mod)
                                         ] ++
-                                        [ CmmStaticLit (CmmInt 0 I64)
+                                        [ CmmStaticLit (CmmInt 0 W64)
                                         | _ <- take hpc_tickCount [0::Int ..]
                                         ]
   where
@@ -66,28 +58,29 @@ hpcTable this_mod (HpcInfo hpc_tickCount _) = do
                      else packageIdString (modulePackageId this_mod) ++ "/" ++
                           module_name_str
 
-hpcTable this_mod (NoHpcInfo {}) = error "TODO: impossible"
+hpcTable _ (NoHpcInfo {}) = error "TODO: impossible"
 
 initHpc :: Module -> HpcInfo -> Code
 initHpc this_mod (HpcInfo tickCount hashNo)
-  = do { id <- newNonPtrTemp wordRep -- TODO FIXME NOW
+  = do { id <- newTemp bWord
        ; emitForeignCall'
                PlayRisky
                [CmmHinted id NoHint]
                (CmmCallee
-                 (CmmLit $ CmmLabel $ mkForeignLabel mod_alloc Nothing False)
+                 (CmmLit $ CmmLabel $ mkForeignLabel mod_alloc Nothing False IsFunction)
                   CCallConv
                )
-               [ CmmHinted (mkLblExpr mkHpcModuleNameLabel) PtrHint
+               [ CmmHinted (mkLblExpr mkHpcModuleNameLabel) AddrHint
                , CmmHinted (word32 tickCount) NoHint
                , CmmHinted (word32 hashNo)    NoHint
-               , CmmHinted (CmmLit $ CmmLabel $ mkHpcTicksLabel $ this_mod) PtrHint
+               , CmmHinted (CmmLit $ CmmLabel $ mkHpcTicksLabel $ this_mod) AddrHint
                ]
                (Just [])
                NoC_SRT -- No SRT b/c we PlayRisky
                CmmMayReturn
        }
   where
-       word32 i = CmmLit (CmmInt (fromIntegral (fromIntegral i :: Word32)) I32)
+       word32 i = CmmLit (CmmInt (fromIntegral (fromIntegral i :: Word32)) W32)
        mod_alloc = mkFastString "hs_hpc_module"
+initHpc _ (NoHpcInfo {}) = panic "initHpc: NoHpcInfo"