import StaticFlags
import PackageConfig
+import Data.Word
+
cgTickBox :: Module -> Int -> Code
cgTickBox mod n = do
let tick_box = (cmmIndex I64
CCallConv
)
[ (mkLblExpr mkHpcModuleNameLabel,PtrHint)
- , (CmmLit $ mkIntCLit tickCount,NoHint)
- , (CmmLit $ mkIntCLit hashNo,NoHint)
+ , (word32 tickCount, NoHint)
+ , (word32 hashNo, NoHint)
, (CmmLit $ CmmLabel $ mkHpcTicksLabel $ this_mod,PtrHint)
]
(Just [])
CmmMayReturn
}
where
+ word32 i = CmmLit (CmmInt (fromIntegral (fromIntegral i :: Word32)) I32)
mod_alloc = mkFastString "hs_hpc_module"
extern void freeHaskellFunctionPtr(void* ptr);
/* Hpc stuff */
-extern int hs_hpc_module(char *modName,unsigned int modCount,unsigned int modHashNo,StgWord64 *tixArr);
+extern int hs_hpc_module(char *modName, StgWord32 modCount, StgWord32 modHashNo,StgWord64 *tixArr);
// Simple linked list of modules
typedef struct _HpcModuleInfo {
char *modName; // name of module
- unsigned int tickCount; // number of ticks
- unsigned int tickOffset; // offset into a single large .tix Array
- unsigned int hashNo; // Hash number for this module's mix info
+ StgWord32 tickCount; // number of ticks
+ StgWord32 tickOffset; // offset into a single large .tix Array
+ StgWord32 hashNo; // Hash number for this module's mix info
StgWord64 *tixArr; // tix Array; local for this module
struct _HpcModuleInfo *next;
} HpcModuleInfo;