- (v,s) <- doExpr (pLower $ getVarType r) $ Load r
- return (v, unitOL s)
- loads <- mapM (loadExpr . lmGlobalRegVar) activeStgRegs
+ let reg = lmGlobalRegVar r
+ let arg = lmGlobalRegArg r
+ (v,s) <- doExpr (pLower $ getVarType reg) $ Load reg
+ case (isPointer . getVarType) arg of
+ True -> do
+ (v2, s2) <- doExpr llvmWordPtr $ Cast LM_Inttoptr v llvmWordPtr
+ return (v2, unitOL s `snocOL` s2)
+ False -> return (v, unitOL s)
+ loads <- mapM loadExpr activeStgRegs