mc-sema/tests/sailboat_run.c
// these are needed since we don't have libgcc
these are needed since we don't have libgcc
these are needed since we don ' t have libgcc
uint64_t __udivmoddi4(uint64_t num, uint64_t den, uint64_t *rem_p)
{
  uint64_t quot = 0, qbit = 1;
  if ( den == 0 ) {
    return 1/((unsigned)den); 
  }
  while ( (int64_t)den >= 0 ) {
    den <<= 1;
    qbit <<= 1;
  }
  while ( qbit ) {
    if ( den <= num ) {
      num -= den;
      quot += qbit;
    }
    den >>= 1;
    qbit >>= 1;
  }
  if ( rem_p )
    *rem_p = num;
  return quot;
}
uint64_t __udivmoddi4 ( uint64_t num , uint64_t den , uint64_t * rem_p ) { uint64_t quot = 0 , qbit = 1 ; if ( den == 0 ) { return 1 / ( ( unsigned ) den ) ; } while ( ( int64_t ) den >= 0 ) { den <<= 1 ; qbit <<= 1 ; } while ( qbit ) { if ( den <= num ) { num -= den ; quot += qbit ; } den >>= 1 ; qbit >>= 1 ; } if ( rem_p ) * rem_p = num ; return quot ; }
these are needed since we don't have libgcc
these are needed since we don ' t have libgcc
/* Intentional divide by zero, without
                                 triggering a compiler warning which
                                 would abort the build */ /* Left-justify denominator and count shift */