5 #define VLDIGITS (sizeof(vlong)/sizeof(mpdigit))
8 * this code assumes that a vlong is an integral number of
12 vtomp(vlong v, mpint *b)
18 b = mpnew(VLDIGITS*sizeof(mpdigit));
20 mpbits(b, VLDIGITS*sizeof(mpdigit));
29 for(s = 0; s < VLDIGITS && uv != 0; s++){
31 /* !@*$&!@$ gcc gives warnings about the >> here
32 * when running on 64-bit machines, even though
33 * it's in dead code. fake it out with two shifts.
34 if(sizeof(mpdigit) == sizeof(uvlong))
37 uv >>= sizeof(mpdigit)*8;
39 uv >>= sizeof(mpdigit)*4;
40 uv >>= sizeof(mpdigit)*4;
56 if(b->top > VLDIGITS){
58 return (vlong)MAXVLONG;
60 return (vlong)MINVLONG;
64 for(s = 0; s < b->top; s++)
65 v |= b->p[s]<<(s*sizeof(mpdigit)*8);