Home | History | Annotate | Download | only in dos
      1 /*
      2  * arch/i386/libgcc/__divdi3.c
      3  */
      4 
      5 #include <stdint.h>
      6 #include <stddef.h>
      7 
      8 extern uint64_t __udivmoddi4(uint64_t num, uint64_t den, uint64_t * rem);
      9 
     10 int64_t __divdi3(int64_t num, int64_t den)
     11 {
     12     int minus = 0;
     13     int64_t v;
     14 
     15     if (num < 0) {
     16 	num = -num;
     17 	minus = 1;
     18     }
     19     if (den < 0) {
     20 	den = -den;
     21 	minus ^= 1;
     22     }
     23 
     24     v = __udivmoddi4(num, den, NULL);
     25     if (minus)
     26 	v = -v;
     27 
     28     return v;
     29 }
     30