Annotation of qemu/roms/openbios/libgcc/__udivmoddi4.c, revision 1.1.1.1

1.1       root        1: #include "libgcc.h"
                      2: 
                      3: uint64_t __udivmoddi4(uint64_t num, uint64_t den, uint64_t *rem_p)
                      4: {
                      5:   uint64_t quot = 0, qbit = 1;
                      6: 
                      7:   if ( den == 0 ) {
                      8:     __divide_error();
                      9:     return 0;                  /* If trap returns... */
                     10:   }
                     11: 
                     12:   /* Left-justify denominator and count shift */
                     13:   while ( (int64_t)den >= 0 ) {
                     14:     den <<= 1;
                     15:     qbit <<= 1;
                     16:   }
                     17: 
                     18:   while ( qbit ) {
                     19:     if ( den <= num ) {
                     20:       num -= den;
                     21:       quot += qbit;
                     22:     }
                     23:     den >>= 1;
                     24:     qbit >>= 1;
                     25:   }
                     26: 
                     27:   if ( rem_p )
                     28:     *rem_p = num;
                     29: 
                     30:   return quot;
                     31: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.