@@ -124,6 +124,10 @@ mainDef =
124 , ConstantOperand . C.GlobalReference . Name $ "__idris_gmpRealloc"
124 , ConstantOperand . C.GlobalReference . Name $ "__idris_gmpRealloc"
125 , ConstantOperand . C.GlobalReference . Name $ "__idris_gmpFree"
125 , ConstantOperand . C.GlobalReference . Name $ "__idris_gmpFree"
127+ , Do $ Store False (ConstantOperand . C.GlobalReference . Name $ "__idris_argc")
128+ (LocalReference (Name "argc")) Nothing 0 []
129+ , Do $ Store False (ConstantOperand . C.GlobalReference . Name $ "__idris_argv")
130+ (LocalReference (Name "argv")) Nothing 0 []
127 , UnName 1 := idrCall "{runMain0}" [] ]
131 , UnName 1 := idrCall "{runMain0}" [] ]
128 (Do $ Ret (Just (ConstantOperand (C.Int 32 0))) [])
132 (Do $ Ret (Just (ConstantOperand (C.Int 32 0))) [])
@@ -198,6 +202,8 @@ initDefs tgt =
198 , exVar (stdinName tgt) ptrI8
202 , exVar (stdinName tgt) ptrI8
199 , exVar (stdoutName tgt) ptrI8
203 , exVar (stdoutName tgt) ptrI8
200 , exVar (stderrName tgt) ptrI8
204 , exVar (stderrName tgt) ptrI8
205+ , exVar "__idris_argc" (IntegerType 32)
206+ , exVar "__idris_argv" (PointerType ptrI8 (AddrSpace 0))
201 , GlobalDefinition mainDef
207 , GlobalDefinition mainDef
202 ] ++ map mpzBinFun ["add", "sub", "mul", "fdiv_q", "fdiv_r", "and", "ior", "xor"]
208 ] ++ map mpzBinFun ["add", "sub", "mul", "fdiv_q", "fdiv_r", "and", "ior", "xor"]