1234567891011121314151617181920212223242526 |
- /* Public domain. */
- extern int __mulhi3 (int, int);
- int
- __mulhi3 (int x, int y)
- {
- char bit;
- int neg = 0;
- int rv = 0;
- if (y < 0)
- {
- y = - y;
- neg = 1;
- }
- for (bit = 0; y && bit < sizeof (y) * 8; bit ++)
- {
- if (y & 1)
- rv += x;
- x <<= 1;
- y >>= 1;
- }
- return neg ? - rv : rv;
- }
|