7 mpleft(mpint *b, int shift, mpint *res)
18 // a zero or negative left shift is a right shift
20 mpright(b, -shift, res);
24 // b and res may be the same so remember the old top
28 mpbits(res, otop*Dbits + shift); // overkill
29 res->top = DIGITS(otop*Dbits + shift);
35 for(i = otop-1; i >= 0; i--)
36 res->p[i+d] = b->p[i];
39 for(i = otop-1; i >= 0; i--) {
41 res->p[i+d+1] = (last<<l) | (this>>r);
46 for(i = 0; i < d; i++)
49 res->flags |= b->flags & MPtimesafe;