diff --git a/src/libultra/libc/ldiv.c b/src/libultra/libc/ldiv.c index a9f3099e..899d716f 100644 --- a/src/libultra/libc/ldiv.c +++ b/src/libultra/libc/ldiv.c @@ -1,5 +1,17 @@ -#include "common.h" +#include "global.h" +#include "libc/stdlib.h" #pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/libc/ldiv/lldiv.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/libc/ldiv/ldiv.s") +ldiv_t ldiv(long numer, long denom) { + ldiv_t val; + + val.quot = numer / denom; + val.rem = numer - denom * val.quot; + if ((val.quot < 0) && (val.rem > 0)) { + val.quot++; + val.rem -= denom; + } + + return val; +}