/* * Function: BWLNum64Mult * * Description: * Multiplication. Allows overflow. * * In Args: * * Out Args: * * Scope: * Returns: * Side Effect: */ BWLNum64 BWLNum64Mult( BWLNum64 x, BWLNum64 y ) { uint64_t xlo, xhi, ylo, yhi; xlo = MASK32(x); xhi = MASK32(x>>32); ylo = MASK32(y); yhi = MASK32(y>>32); return ((xlo*ylo)>>32) + (xhi*ylo) + (xlo*yhi) + ((xhi*yhi)<<32); }
MASKED32(unsigned32 word, unsigned start, unsigned stop) { return (word & MASK32(start, stop)); }