2 ((4096+(4*(int)((8) * sizeof(fp_digit))))/(int)((8) * sizeof(fp_digit)))
4 typedef unsigned long fp_digit;
11 #define MULADD(i, j) \
13 "movl %6,%%eax \n\t" \
15 "addl %%eax,%0 \n\t" \
16 "adcl %%edx,%1 \n\t" \
18 :"=r"(c0), "=r"(c1), "=r"(c2): "0"(c0), "1"(c1), "2"(c2), "m"(i), "m"(j) :"%eax","%edx","%cc");
20 void fp_mul_comba(fp_int *A, fp_int *B, fp_int *C)
22 int ix, iy, iz, tx, ty, pa;
23 fp_digit c0, c1, c2, *tmpx, *tmpy;
25 for (ix = 0; ix < pa; ix++)
26 for (iz = 0; iz < iy; ++iz)
27 MULADD(*tmpx++, *tmpy--);