comba_square
comba_square
extern void comba_square(big,big);
函数功能:
参数
1. 源码分析
comba_square在模板文件mrcomba.tpl实现。
/* NOTE! z and x must be distinct */
void comba_square(big x,big z)
{ /* super comba squarer */
int i;
mr_small *a,*c;
#ifdef MR_WIN64
mr_small lo,hi,sumlo,sumhi,extra,cy;
#endif
#ifdef MR_ITANIUM
register mr_small lo1,hi1,lo2,hi2,sumlo,sumhi,extra,ma,mb;
#endif
#ifdef MR_NOASM
#ifdef mr_qltype
mr_large pp1;
mr_vlarge sum;
#else
register mr_small extra,s0,s1;
mr_large pp1,pp2,sum;
#endif
#endif
for (i=2*MR_COMBA;i<(int)(z->len&MR_OBITS);i++) z->w[i]=0;
z->len=2*MR_COMBA;
a=x->w; c=z->w;
/*** SQUARE ***/ /* squares a, result in b */
if (z->w[2*MR_COMBA-1]==0) mr_lzero(z);
}