Import various libgcc functions from syslinux.
[people/indolent/gpxe.git/.git] / src / libgcc / __divdi3.c
1 /*
2  * arch/i386/libgcc/__divdi3.c
3  */
4
5 #include "libgcc.h"
6
7 LIBGCC int64_t __divdi3(int64_t num, int64_t den)
8 {
9   int minus = 0;
10   int64_t v;
11
12   if ( num < 0 ) {
13     num = -num;
14     minus = 1;
15   }
16   if ( den < 0 ) {
17     den = -den;
18     minus ^= 1;
19   }
20
21   v = __udivmoddi4(num, den, NULL);
22   if ( minus )
23     v = -v;
24
25   return v;
26 }