Example #1
0
/*
 * 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);
}
Example #2
0
MASKED32(unsigned32 word,
	 unsigned start,
	 unsigned stop)
{
  return (word & MASK32(start, stop));
}