/* * arch/i386/libgcc/__moddi3.c */ #include #include extern uint64_t __udivmoddi4(uint64_t num, uint64_t den, uint64_t *rem); int64_t __moddi3(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; } (void) __udivmoddi4(num, den, (uint64_t *)&v); if ( minus ) v = -v; return v; }