// Copyright 2010 The Code Cavern

bda_digit bda_rshift_i(bda_ptr x,bda_srcptr y,bda_len n,bda_len c) // (x,n)=(y,n)>>c  ret carry
{bda_len i;bda_digit r,h,l,_t;

l=y[0];r=l>>c;
for(i=1;i<n;i++)
   {h=y[i];
    bda_digit_shrd(_t,l,h,l,c);
    x[i-1]=l;
    l=h;}
x[n-1]=l>>c;
return r;}

bda_digit bda_lshift_d(bda_ptr x,bda_srcptr y,bda_len n,bda_len c) // (x,n)=(y,n)<<c  ret carry
{bda_len i;bda_digit r,h,l,_t;

h=y[n-1];r=h<<c;
for(i=n-2;i>=0;i--)
   {l=y[i];
    bda_digit_shld(h,_t,h,l,c);
    x[i+1]=h;
    h=l;}
l=0;
x[0]=h<<c;
return r;}
