home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / bsd_srcs / usr.bin / gcc / gnulib / longlong / udivdi3.c < prev    next >
Encoding:
C/C++ Source or Header  |  1991-01-21  |  447 b   |  29 lines

  1. #include "longlong.h"
  2.  
  3. extern void __bdiv ();
  4.  
  5. long long 
  6. __udivdi3 (u, v)
  7.      long long u, v;
  8. {
  9.   unsigned long a[2][2], b[2], q[2], r[2];
  10.   long_long w;
  11.   long_long uu, vv;
  12.  
  13.   uu.ll = u;
  14.   vv.ll = v;
  15.  
  16.   a[HIGH][HIGH] = 0;
  17.   a[HIGH][LOW] = 0;
  18.   a[LOW][HIGH] = uu.s.high;
  19.   a[LOW][LOW] = uu.s.low;
  20.   b[HIGH] = vv.s.high;
  21.   b[LOW] = vv.s.low;
  22.  
  23.   __bdiv (a, b, q, r, sizeof a, sizeof b);
  24.  
  25.   w.s.high = q[HIGH];
  26.   w.s.low = q[LOW];
  27.   return w.ll;
  28. }
  29.