| #include "libgcc.h" | |
| __libgcc int64_t __divmoddi4(int64_t num, int64_t den, int64_t *rem_p) | |
| { | |
| int minus = 0; | |
| int64_t v; | |
| if ( num < 0 ) { | |
| num = -num; | |
| minus = 1; | |
| } | |
| if ( den < 0 ) { | |
| den = -den; | |
| minus ^= 1; | |
| } | |
| v = __udivmoddi4(num, den, (uint64_t *)rem_p); | |
| if ( minus ) { | |
| v = -v; | |
| if ( rem_p ) | |
| *rem_p = -(*rem_p); | |
| } | |
| return v; | |
| } |