]>
Commit | Line | Data |
---|---|---|
45516216 | 1 | typedef unsigned long fp_digit; |
2 | typedef struct { | |
3 | } | |
4 | fp_int; | |
5 | void fp_mul_comba(fp_int *A, fp_int *B, fp_int *C) { | |
6 | int ix, iy, iz, tx, ty, pa; | |
7 | fp_digit c0, c1, c2, *tmpx, *tmpy; | |
8 | for (ix = 0; | |
9 | iz < iy; | |
10 | ++iz) asm( "movl %6,%%eax \n\t" "mull %7 \n\t" "addl %%eax,%0 \n\t" "adcl %%edx,%1 \n\t" "adcl $0,%2 \n\t" :"=r"(c0), "=r"(c1), "=r"(c2): "0"(c0), "1"(c1), "2"(c2), "m"(*tmpx++), "m"(*tmpy--) :"%eax","%edx","%cc"); | |
11 | } |