Annotation of qemu/roms/openbios/libgcc/__udivmodti4.c, revision 1.1

1.1     ! root        1: #include "libgcc.h"
        !             2: 
        !             3: __uint128_t __udivmodti4(__uint128_t num, __uint128_t den, __uint128_t *rem_p)
        !             4: {
        !             5:   __uint128_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 ( (__int128_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.