/* | |
* arch/i386/libgcc/__divdi3.c | |
*/ | |
#include <stdint.h> | |
#include <stddef.h> | |
extern uint64_t __udivmoddi4(uint64_t num, uint64_t den, uint64_t * rem); | |
int64_t __divdi3(int64_t num, int64_t den) | |
{ | |
int minus = 0; | |
int64_t v; | |
if (num < 0) { | |
num = -num; | |
minus = 1; | |
} | |
if (den < 0) { | |
den = -den; | |
minus ^= 1; | |
} | |
v = __udivmoddi4(num, den, NULL); | |
if (minus) | |
v = -v; | |
return v; | |
} |