2 * The below file is derived from TFM v0.03.
3 * It contains code from fp_mul_comba.c and
4 * fp_sqr_comba.c, which contained the following license.
6 * Right now, the assembly in this file limits
9 * This file is public domain.
12 /* TomsFastMath, a fast ISO C bignum library.
14 * This project is meant to fill in where LibTomMath
15 * falls short. That is speed ;-)
17 * This project is public domain and free for all purposes.
19 * Tom St Denis, tomstdenis@iahu.ca
28 #define mp_clamp(a) { while ((a)->used && (a)->dp[(a)->used-1] == 0) --((a)->used); (a)->sign = (a)->used ? (a)->sign : ZPOS; }
30 /* anything you need at the start */
33 /* clear the chaining variables */
37 /* forward the carry to the next digit */
38 #define COMBA_FORWARD \
39 do { c0 = c1; c1 = c2; c2 = 0; } while (0);
41 /* anything you need at the end */
44 /* this should multiply i and j */
45 #define MULADD(i, j) \
47 "movq %6,%%rax \n\t" \
49 "addq %%rax,%0 \n\t" \
50 "adcq %%rdx,%1 \n\t" \
52 :"=r"(c0), "=r"(c1), "=r"(c2): "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) :"%rax","%rdx","%cc");
61 #define COMBA_STORE(x) \
64 #define COMBA_STORE2(x) \
67 #define CARRY_FORWARD \
68 do { c0 = c1; c1 = c2; c2 = 0; } while (0);
72 #define SQRADD(i, j) \
74 "movq %6,%%rax \n\t" \
76 "addq %%rax,%0 \n\t" \
77 "adcq %%rdx,%1 \n\t" \
79 :"=r"(c0), "=r"(c1), "=r"(c2): "0"(c0), "1"(c1), "2"(c2), "g"(i) :"%rax","%rdx","%cc");
81 #define SQRADD2(i, j) \
83 "movq %6,%%rax \n\t" \
85 "addq %%rax,%0 \n\t" \
86 "adcq %%rdx,%1 \n\t" \
88 "addq %%rax,%0 \n\t" \
89 "adcq %%rdx,%1 \n\t" \
91 :"=r"(c0), "=r"(c1), "=r"(c2): "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) :"%rax","%rdx","%cc");
93 #define SQRADDSC(i, j) \
95 "movq %3,%%rax \n\t" \
97 "movq %%rax,%0 \n\t" \
98 "movq %%rdx,%1 \n\t" \
100 :"=r"(sc0), "=r"(sc1), "=r"(sc2): "g"(i), "g"(j) :"%rax","%rdx","%cc");
102 #define SQRADDAC(i, j) \
104 "movq %6,%%rax \n\t" \
106 "addq %%rax,%0 \n\t" \
107 "adcq %%rdx,%1 \n\t" \
109 :"=r"(sc0), "=r"(sc1), "=r"(sc2): "0"(sc0), "1"(sc1), "2"(sc2), "g"(i), "g"(j) :"%rax","%rdx","%cc");
119 :"=&r"(c0), "=&r"(c1), "=&r"(c2) : "0"(c0), "1"(c1), "2"(c2), "r"(sc0), "r"(sc1), "r"(sc2) : "%cc");
125 void s_mp_mul_comba_4(const mp_int
*A
, const mp_int
*B
, mp_int
*C
)
127 mp_digit c0
, c1
, c2
, at
[8];
129 memcpy(at
, A
->dp
, 4 * sizeof(mp_digit
));
130 memcpy(at
+4, B
->dp
, 4 * sizeof(mp_digit
));
135 MULADD(at
[0], at
[4]);
136 COMBA_STORE(C
->dp
[0]);
139 MULADD(at
[0], at
[5]); MULADD(at
[1], at
[4]);
140 COMBA_STORE(C
->dp
[1]);
143 MULADD(at
[0], at
[6]); MULADD(at
[1], at
[5]); MULADD(at
[2], at
[4]);
144 COMBA_STORE(C
->dp
[2]);
147 MULADD(at
[0], at
[7]); MULADD(at
[1], at
[6]); MULADD(at
[2], at
[5]); MULADD(at
[3], at
[4]);
148 COMBA_STORE(C
->dp
[3]);
151 MULADD(at
[1], at
[7]); MULADD(at
[2], at
[6]); MULADD(at
[3], at
[5]);
152 COMBA_STORE(C
->dp
[4]);
155 MULADD(at
[2], at
[7]); MULADD(at
[3], at
[6]);
156 COMBA_STORE(C
->dp
[5]);
159 MULADD(at
[3], at
[7]);
160 COMBA_STORE(C
->dp
[6]);
161 COMBA_STORE2(C
->dp
[7]);
163 C
->sign
= A
->sign
^ B
->sign
;
168 void s_mp_mul_comba_8(const mp_int
*A
, const mp_int
*B
, mp_int
*C
)
170 mp_digit c0
, c1
, c2
, at
[16];
172 memcpy(at
, A
->dp
, 8 * sizeof(mp_digit
));
173 memcpy(at
+8, B
->dp
, 8 * sizeof(mp_digit
));
178 MULADD(at
[0], at
[8]);
179 COMBA_STORE(C
->dp
[0]);
182 MULADD(at
[0], at
[9]); MULADD(at
[1], at
[8]);
183 COMBA_STORE(C
->dp
[1]);
186 MULADD(at
[0], at
[10]); MULADD(at
[1], at
[9]); MULADD(at
[2], at
[8]);
187 COMBA_STORE(C
->dp
[2]);
190 MULADD(at
[0], at
[11]); MULADD(at
[1], at
[10]); MULADD(at
[2], at
[9]); MULADD(at
[3], at
[8]);
191 COMBA_STORE(C
->dp
[3]);
194 MULADD(at
[0], at
[12]); MULADD(at
[1], at
[11]); MULADD(at
[2], at
[10]); MULADD(at
[3], at
[9]); MULADD(at
[4], at
[8]);
195 COMBA_STORE(C
->dp
[4]);
198 MULADD(at
[0], at
[13]); MULADD(at
[1], at
[12]); MULADD(at
[2], at
[11]); MULADD(at
[3], at
[10]); MULADD(at
[4], at
[9]); MULADD(at
[5], at
[8]);
199 COMBA_STORE(C
->dp
[5]);
202 MULADD(at
[0], at
[14]); MULADD(at
[1], at
[13]); MULADD(at
[2], at
[12]); MULADD(at
[3], at
[11]); MULADD(at
[4], at
[10]); MULADD(at
[5], at
[9]); MULADD(at
[6], at
[8]);
203 COMBA_STORE(C
->dp
[6]);
206 MULADD(at
[0], at
[15]); MULADD(at
[1], at
[14]); MULADD(at
[2], at
[13]); MULADD(at
[3], at
[12]); MULADD(at
[4], at
[11]); MULADD(at
[5], at
[10]); MULADD(at
[6], at
[9]); MULADD(at
[7], at
[8]);
207 COMBA_STORE(C
->dp
[7]);
210 MULADD(at
[1], at
[15]); MULADD(at
[2], at
[14]); MULADD(at
[3], at
[13]); MULADD(at
[4], at
[12]); MULADD(at
[5], at
[11]); MULADD(at
[6], at
[10]); MULADD(at
[7], at
[9]);
211 COMBA_STORE(C
->dp
[8]);
214 MULADD(at
[2], at
[15]); MULADD(at
[3], at
[14]); MULADD(at
[4], at
[13]); MULADD(at
[5], at
[12]); MULADD(at
[6], at
[11]); MULADD(at
[7], at
[10]);
215 COMBA_STORE(C
->dp
[9]);
218 MULADD(at
[3], at
[15]); MULADD(at
[4], at
[14]); MULADD(at
[5], at
[13]); MULADD(at
[6], at
[12]); MULADD(at
[7], at
[11]);
219 COMBA_STORE(C
->dp
[10]);
222 MULADD(at
[4], at
[15]); MULADD(at
[5], at
[14]); MULADD(at
[6], at
[13]); MULADD(at
[7], at
[12]);
223 COMBA_STORE(C
->dp
[11]);
226 MULADD(at
[5], at
[15]); MULADD(at
[6], at
[14]); MULADD(at
[7], at
[13]);
227 COMBA_STORE(C
->dp
[12]);
230 MULADD(at
[6], at
[15]); MULADD(at
[7], at
[14]);
231 COMBA_STORE(C
->dp
[13]);
234 MULADD(at
[7], at
[15]);
235 COMBA_STORE(C
->dp
[14]);
236 COMBA_STORE2(C
->dp
[15]);
238 C
->sign
= A
->sign
^ B
->sign
;
243 void s_mp_mul_comba_16(const mp_int
*A
, const mp_int
*B
, mp_int
*C
)
245 mp_digit c0
, c1
, c2
, at
[32];
247 memcpy(at
, A
->dp
, 16 * sizeof(mp_digit
));
248 memcpy(at
+16, B
->dp
, 16 * sizeof(mp_digit
));
253 MULADD(at
[0], at
[16]);
254 COMBA_STORE(C
->dp
[0]);
257 MULADD(at
[0], at
[17]); MULADD(at
[1], at
[16]);
258 COMBA_STORE(C
->dp
[1]);
261 MULADD(at
[0], at
[18]); MULADD(at
[1], at
[17]); MULADD(at
[2], at
[16]);
262 COMBA_STORE(C
->dp
[2]);
265 MULADD(at
[0], at
[19]); MULADD(at
[1], at
[18]); MULADD(at
[2], at
[17]); MULADD(at
[3], at
[16]);
266 COMBA_STORE(C
->dp
[3]);
269 MULADD(at
[0], at
[20]); MULADD(at
[1], at
[19]); MULADD(at
[2], at
[18]); MULADD(at
[3], at
[17]); MULADD(at
[4], at
[16]);
270 COMBA_STORE(C
->dp
[4]);
273 MULADD(at
[0], at
[21]); MULADD(at
[1], at
[20]); MULADD(at
[2], at
[19]); MULADD(at
[3], at
[18]); MULADD(at
[4], at
[17]); MULADD(at
[5], at
[16]);
274 COMBA_STORE(C
->dp
[5]);
277 MULADD(at
[0], at
[22]); MULADD(at
[1], at
[21]); MULADD(at
[2], at
[20]); MULADD(at
[3], at
[19]); MULADD(at
[4], at
[18]); MULADD(at
[5], at
[17]); MULADD(at
[6], at
[16]);
278 COMBA_STORE(C
->dp
[6]);
281 MULADD(at
[0], at
[23]); MULADD(at
[1], at
[22]); MULADD(at
[2], at
[21]); MULADD(at
[3], at
[20]); MULADD(at
[4], at
[19]); MULADD(at
[5], at
[18]); MULADD(at
[6], at
[17]); MULADD(at
[7], at
[16]);
282 COMBA_STORE(C
->dp
[7]);
285 MULADD(at
[0], at
[24]); MULADD(at
[1], at
[23]); MULADD(at
[2], at
[22]); MULADD(at
[3], at
[21]); MULADD(at
[4], at
[20]); MULADD(at
[5], at
[19]); MULADD(at
[6], at
[18]); MULADD(at
[7], at
[17]); MULADD(at
[8], at
[16]);
286 COMBA_STORE(C
->dp
[8]);
289 MULADD(at
[0], at
[25]); MULADD(at
[1], at
[24]); MULADD(at
[2], at
[23]); MULADD(at
[3], at
[22]); MULADD(at
[4], at
[21]); MULADD(at
[5], at
[20]); MULADD(at
[6], at
[19]); MULADD(at
[7], at
[18]); MULADD(at
[8], at
[17]); MULADD(at
[9], at
[16]);
290 COMBA_STORE(C
->dp
[9]);
293 MULADD(at
[0], at
[26]); MULADD(at
[1], at
[25]); MULADD(at
[2], at
[24]); MULADD(at
[3], at
[23]); MULADD(at
[4], at
[22]); MULADD(at
[5], at
[21]); MULADD(at
[6], at
[20]); MULADD(at
[7], at
[19]); MULADD(at
[8], at
[18]); MULADD(at
[9], at
[17]); MULADD(at
[10], at
[16]);
294 COMBA_STORE(C
->dp
[10]);
297 MULADD(at
[0], at
[27]); MULADD(at
[1], at
[26]); MULADD(at
[2], at
[25]); MULADD(at
[3], at
[24]); MULADD(at
[4], at
[23]); MULADD(at
[5], at
[22]); MULADD(at
[6], at
[21]); MULADD(at
[7], at
[20]); MULADD(at
[8], at
[19]); MULADD(at
[9], at
[18]); MULADD(at
[10], at
[17]); MULADD(at
[11], at
[16]);
298 COMBA_STORE(C
->dp
[11]);
301 MULADD(at
[0], at
[28]); MULADD(at
[1], at
[27]); MULADD(at
[2], at
[26]); MULADD(at
[3], at
[25]); MULADD(at
[4], at
[24]); MULADD(at
[5], at
[23]); MULADD(at
[6], at
[22]); MULADD(at
[7], at
[21]); MULADD(at
[8], at
[20]); MULADD(at
[9], at
[19]); MULADD(at
[10], at
[18]); MULADD(at
[11], at
[17]); MULADD(at
[12], at
[16]);
302 COMBA_STORE(C
->dp
[12]);
305 MULADD(at
[0], at
[29]); MULADD(at
[1], at
[28]); MULADD(at
[2], at
[27]); MULADD(at
[3], at
[26]); MULADD(at
[4], at
[25]); MULADD(at
[5], at
[24]); MULADD(at
[6], at
[23]); MULADD(at
[7], at
[22]); MULADD(at
[8], at
[21]); MULADD(at
[9], at
[20]); MULADD(at
[10], at
[19]); MULADD(at
[11], at
[18]); MULADD(at
[12], at
[17]); MULADD(at
[13], at
[16]);
306 COMBA_STORE(C
->dp
[13]);
309 MULADD(at
[0], at
[30]); MULADD(at
[1], at
[29]); MULADD(at
[2], at
[28]); MULADD(at
[3], at
[27]); MULADD(at
[4], at
[26]); MULADD(at
[5], at
[25]); MULADD(at
[6], at
[24]); MULADD(at
[7], at
[23]); MULADD(at
[8], at
[22]); MULADD(at
[9], at
[21]); MULADD(at
[10], at
[20]); MULADD(at
[11], at
[19]); MULADD(at
[12], at
[18]); MULADD(at
[13], at
[17]); MULADD(at
[14], at
[16]);
310 COMBA_STORE(C
->dp
[14]);
313 MULADD(at
[0], at
[31]); MULADD(at
[1], at
[30]); MULADD(at
[2], at
[29]); MULADD(at
[3], at
[28]); MULADD(at
[4], at
[27]); MULADD(at
[5], at
[26]); MULADD(at
[6], at
[25]); MULADD(at
[7], at
[24]); MULADD(at
[8], at
[23]); MULADD(at
[9], at
[22]); MULADD(at
[10], at
[21]); MULADD(at
[11], at
[20]); MULADD(at
[12], at
[19]); MULADD(at
[13], at
[18]); MULADD(at
[14], at
[17]); MULADD(at
[15], at
[16]);
314 COMBA_STORE(C
->dp
[15]);
317 MULADD(at
[1], at
[31]); MULADD(at
[2], at
[30]); MULADD(at
[3], at
[29]); MULADD(at
[4], at
[28]); MULADD(at
[5], at
[27]); MULADD(at
[6], at
[26]); MULADD(at
[7], at
[25]); MULADD(at
[8], at
[24]); MULADD(at
[9], at
[23]); MULADD(at
[10], at
[22]); MULADD(at
[11], at
[21]); MULADD(at
[12], at
[20]); MULADD(at
[13], at
[19]); MULADD(at
[14], at
[18]); MULADD(at
[15], at
[17]);
318 COMBA_STORE(C
->dp
[16]);
321 MULADD(at
[2], at
[31]); MULADD(at
[3], at
[30]); MULADD(at
[4], at
[29]); MULADD(at
[5], at
[28]); MULADD(at
[6], at
[27]); MULADD(at
[7], at
[26]); MULADD(at
[8], at
[25]); MULADD(at
[9], at
[24]); MULADD(at
[10], at
[23]); MULADD(at
[11], at
[22]); MULADD(at
[12], at
[21]); MULADD(at
[13], at
[20]); MULADD(at
[14], at
[19]); MULADD(at
[15], at
[18]);
322 COMBA_STORE(C
->dp
[17]);
325 MULADD(at
[3], at
[31]); MULADD(at
[4], at
[30]); MULADD(at
[5], at
[29]); MULADD(at
[6], at
[28]); MULADD(at
[7], at
[27]); MULADD(at
[8], at
[26]); MULADD(at
[9], at
[25]); MULADD(at
[10], at
[24]); MULADD(at
[11], at
[23]); MULADD(at
[12], at
[22]); MULADD(at
[13], at
[21]); MULADD(at
[14], at
[20]); MULADD(at
[15], at
[19]);
326 COMBA_STORE(C
->dp
[18]);
329 MULADD(at
[4], at
[31]); MULADD(at
[5], at
[30]); MULADD(at
[6], at
[29]); MULADD(at
[7], at
[28]); MULADD(at
[8], at
[27]); MULADD(at
[9], at
[26]); MULADD(at
[10], at
[25]); MULADD(at
[11], at
[24]); MULADD(at
[12], at
[23]); MULADD(at
[13], at
[22]); MULADD(at
[14], at
[21]); MULADD(at
[15], at
[20]);
330 COMBA_STORE(C
->dp
[19]);
333 MULADD(at
[5], at
[31]); MULADD(at
[6], at
[30]); MULADD(at
[7], at
[29]); MULADD(at
[8], at
[28]); MULADD(at
[9], at
[27]); MULADD(at
[10], at
[26]); MULADD(at
[11], at
[25]); MULADD(at
[12], at
[24]); MULADD(at
[13], at
[23]); MULADD(at
[14], at
[22]); MULADD(at
[15], at
[21]);
334 COMBA_STORE(C
->dp
[20]);
337 MULADD(at
[6], at
[31]); MULADD(at
[7], at
[30]); MULADD(at
[8], at
[29]); MULADD(at
[9], at
[28]); MULADD(at
[10], at
[27]); MULADD(at
[11], at
[26]); MULADD(at
[12], at
[25]); MULADD(at
[13], at
[24]); MULADD(at
[14], at
[23]); MULADD(at
[15], at
[22]);
338 COMBA_STORE(C
->dp
[21]);
341 MULADD(at
[7], at
[31]); MULADD(at
[8], at
[30]); MULADD(at
[9], at
[29]); MULADD(at
[10], at
[28]); MULADD(at
[11], at
[27]); MULADD(at
[12], at
[26]); MULADD(at
[13], at
[25]); MULADD(at
[14], at
[24]); MULADD(at
[15], at
[23]);
342 COMBA_STORE(C
->dp
[22]);
345 MULADD(at
[8], at
[31]); MULADD(at
[9], at
[30]); MULADD(at
[10], at
[29]); MULADD(at
[11], at
[28]); MULADD(at
[12], at
[27]); MULADD(at
[13], at
[26]); MULADD(at
[14], at
[25]); MULADD(at
[15], at
[24]);
346 COMBA_STORE(C
->dp
[23]);
349 MULADD(at
[9], at
[31]); MULADD(at
[10], at
[30]); MULADD(at
[11], at
[29]); MULADD(at
[12], at
[28]); MULADD(at
[13], at
[27]); MULADD(at
[14], at
[26]); MULADD(at
[15], at
[25]);
350 COMBA_STORE(C
->dp
[24]);
353 MULADD(at
[10], at
[31]); MULADD(at
[11], at
[30]); MULADD(at
[12], at
[29]); MULADD(at
[13], at
[28]); MULADD(at
[14], at
[27]); MULADD(at
[15], at
[26]);
354 COMBA_STORE(C
->dp
[25]);
357 MULADD(at
[11], at
[31]); MULADD(at
[12], at
[30]); MULADD(at
[13], at
[29]); MULADD(at
[14], at
[28]); MULADD(at
[15], at
[27]);
358 COMBA_STORE(C
->dp
[26]);
361 MULADD(at
[12], at
[31]); MULADD(at
[13], at
[30]); MULADD(at
[14], at
[29]); MULADD(at
[15], at
[28]);
362 COMBA_STORE(C
->dp
[27]);
365 MULADD(at
[13], at
[31]); MULADD(at
[14], at
[30]); MULADD(at
[15], at
[29]);
366 COMBA_STORE(C
->dp
[28]);
369 MULADD(at
[14], at
[31]); MULADD(at
[15], at
[30]);
370 COMBA_STORE(C
->dp
[29]);
373 MULADD(at
[15], at
[31]);
374 COMBA_STORE(C
->dp
[30]);
375 COMBA_STORE2(C
->dp
[31]);
377 C
->sign
= A
->sign
^ B
->sign
;
382 void s_mp_mul_comba_32(const mp_int
*A
, const mp_int
*B
, mp_int
*C
)
384 mp_digit c0
, c1
, c2
, at
[64];
386 memcpy(at
, A
->dp
, 32 * sizeof(mp_digit
));
387 memcpy(at
+32, B
->dp
, 32 * sizeof(mp_digit
));
392 MULADD(at
[0], at
[32]);
393 COMBA_STORE(C
->dp
[0]);
396 MULADD(at
[0], at
[33]); MULADD(at
[1], at
[32]);
397 COMBA_STORE(C
->dp
[1]);
400 MULADD(at
[0], at
[34]); MULADD(at
[1], at
[33]); MULADD(at
[2], at
[32]);
401 COMBA_STORE(C
->dp
[2]);
404 MULADD(at
[0], at
[35]); MULADD(at
[1], at
[34]); MULADD(at
[2], at
[33]); MULADD(at
[3], at
[32]);
405 COMBA_STORE(C
->dp
[3]);
408 MULADD(at
[0], at
[36]); MULADD(at
[1], at
[35]); MULADD(at
[2], at
[34]); MULADD(at
[3], at
[33]); MULADD(at
[4], at
[32]);
409 COMBA_STORE(C
->dp
[4]);
412 MULADD(at
[0], at
[37]); MULADD(at
[1], at
[36]); MULADD(at
[2], at
[35]); MULADD(at
[3], at
[34]); MULADD(at
[4], at
[33]); MULADD(at
[5], at
[32]);
413 COMBA_STORE(C
->dp
[5]);
416 MULADD(at
[0], at
[38]); MULADD(at
[1], at
[37]); MULADD(at
[2], at
[36]); MULADD(at
[3], at
[35]); MULADD(at
[4], at
[34]); MULADD(at
[5], at
[33]); MULADD(at
[6], at
[32]);
417 COMBA_STORE(C
->dp
[6]);
420 MULADD(at
[0], at
[39]); MULADD(at
[1], at
[38]); MULADD(at
[2], at
[37]); MULADD(at
[3], at
[36]); MULADD(at
[4], at
[35]); MULADD(at
[5], at
[34]); MULADD(at
[6], at
[33]); MULADD(at
[7], at
[32]);
421 COMBA_STORE(C
->dp
[7]);
424 MULADD(at
[0], at
[40]); MULADD(at
[1], at
[39]); MULADD(at
[2], at
[38]); MULADD(at
[3], at
[37]); MULADD(at
[4], at
[36]); MULADD(at
[5], at
[35]); MULADD(at
[6], at
[34]); MULADD(at
[7], at
[33]); MULADD(at
[8], at
[32]);
425 COMBA_STORE(C
->dp
[8]);
428 MULADD(at
[0], at
[41]); MULADD(at
[1], at
[40]); MULADD(at
[2], at
[39]); MULADD(at
[3], at
[38]); MULADD(at
[4], at
[37]); MULADD(at
[5], at
[36]); MULADD(at
[6], at
[35]); MULADD(at
[7], at
[34]); MULADD(at
[8], at
[33]); MULADD(at
[9], at
[32]);
429 COMBA_STORE(C
->dp
[9]);
432 MULADD(at
[0], at
[42]); MULADD(at
[1], at
[41]); MULADD(at
[2], at
[40]); MULADD(at
[3], at
[39]); MULADD(at
[4], at
[38]); MULADD(at
[5], at
[37]); MULADD(at
[6], at
[36]); MULADD(at
[7], at
[35]); MULADD(at
[8], at
[34]); MULADD(at
[9], at
[33]); MULADD(at
[10], at
[32]);
433 COMBA_STORE(C
->dp
[10]);
436 MULADD(at
[0], at
[43]); MULADD(at
[1], at
[42]); MULADD(at
[2], at
[41]); MULADD(at
[3], at
[40]); MULADD(at
[4], at
[39]); MULADD(at
[5], at
[38]); MULADD(at
[6], at
[37]); MULADD(at
[7], at
[36]); MULADD(at
[8], at
[35]); MULADD(at
[9], at
[34]); MULADD(at
[10], at
[33]); MULADD(at
[11], at
[32]);
437 COMBA_STORE(C
->dp
[11]);
440 MULADD(at
[0], at
[44]); MULADD(at
[1], at
[43]); MULADD(at
[2], at
[42]); MULADD(at
[3], at
[41]); MULADD(at
[4], at
[40]); MULADD(at
[5], at
[39]); MULADD(at
[6], at
[38]); MULADD(at
[7], at
[37]); MULADD(at
[8], at
[36]); MULADD(at
[9], at
[35]); MULADD(at
[10], at
[34]); MULADD(at
[11], at
[33]); MULADD(at
[12], at
[32]);
441 COMBA_STORE(C
->dp
[12]);
444 MULADD(at
[0], at
[45]); MULADD(at
[1], at
[44]); MULADD(at
[2], at
[43]); MULADD(at
[3], at
[42]); MULADD(at
[4], at
[41]); MULADD(at
[5], at
[40]); MULADD(at
[6], at
[39]); MULADD(at
[7], at
[38]); MULADD(at
[8], at
[37]); MULADD(at
[9], at
[36]); MULADD(at
[10], at
[35]); MULADD(at
[11], at
[34]); MULADD(at
[12], at
[33]); MULADD(at
[13], at
[32]);
445 COMBA_STORE(C
->dp
[13]);
448 MULADD(at
[0], at
[46]); MULADD(at
[1], at
[45]); MULADD(at
[2], at
[44]); MULADD(at
[3], at
[43]); MULADD(at
[4], at
[42]); MULADD(at
[5], at
[41]); MULADD(at
[6], at
[40]); MULADD(at
[7], at
[39]); MULADD(at
[8], at
[38]); MULADD(at
[9], at
[37]); MULADD(at
[10], at
[36]); MULADD(at
[11], at
[35]); MULADD(at
[12], at
[34]); MULADD(at
[13], at
[33]); MULADD(at
[14], at
[32]);
449 COMBA_STORE(C
->dp
[14]);
452 MULADD(at
[0], at
[47]); MULADD(at
[1], at
[46]); MULADD(at
[2], at
[45]); MULADD(at
[3], at
[44]); MULADD(at
[4], at
[43]); MULADD(at
[5], at
[42]); MULADD(at
[6], at
[41]); MULADD(at
[7], at
[40]); MULADD(at
[8], at
[39]); MULADD(at
[9], at
[38]); MULADD(at
[10], at
[37]); MULADD(at
[11], at
[36]); MULADD(at
[12], at
[35]); MULADD(at
[13], at
[34]); MULADD(at
[14], at
[33]); MULADD(at
[15], at
[32]);
453 COMBA_STORE(C
->dp
[15]);
456 MULADD(at
[0], at
[48]); MULADD(at
[1], at
[47]); MULADD(at
[2], at
[46]); MULADD(at
[3], at
[45]); MULADD(at
[4], at
[44]); MULADD(at
[5], at
[43]); MULADD(at
[6], at
[42]); MULADD(at
[7], at
[41]); MULADD(at
[8], at
[40]); MULADD(at
[9], at
[39]); MULADD(at
[10], at
[38]); MULADD(at
[11], at
[37]); MULADD(at
[12], at
[36]); MULADD(at
[13], at
[35]); MULADD(at
[14], at
[34]); MULADD(at
[15], at
[33]); MULADD(at
[16], at
[32]);
457 COMBA_STORE(C
->dp
[16]);
460 MULADD(at
[0], at
[49]); MULADD(at
[1], at
[48]); MULADD(at
[2], at
[47]); MULADD(at
[3], at
[46]); MULADD(at
[4], at
[45]); MULADD(at
[5], at
[44]); MULADD(at
[6], at
[43]); MULADD(at
[7], at
[42]); MULADD(at
[8], at
[41]); MULADD(at
[9], at
[40]); MULADD(at
[10], at
[39]); MULADD(at
[11], at
[38]); MULADD(at
[12], at
[37]); MULADD(at
[13], at
[36]); MULADD(at
[14], at
[35]); MULADD(at
[15], at
[34]); MULADD(at
[16], at
[33]); MULADD(at
[17], at
[32]);
461 COMBA_STORE(C
->dp
[17]);
464 MULADD(at
[0], at
[50]); MULADD(at
[1], at
[49]); MULADD(at
[2], at
[48]); MULADD(at
[3], at
[47]); MULADD(at
[4], at
[46]); MULADD(at
[5], at
[45]); MULADD(at
[6], at
[44]); MULADD(at
[7], at
[43]); MULADD(at
[8], at
[42]); MULADD(at
[9], at
[41]); MULADD(at
[10], at
[40]); MULADD(at
[11], at
[39]); MULADD(at
[12], at
[38]); MULADD(at
[13], at
[37]); MULADD(at
[14], at
[36]); MULADD(at
[15], at
[35]); MULADD(at
[16], at
[34]); MULADD(at
[17], at
[33]); MULADD(at
[18], at
[32]);
465 COMBA_STORE(C
->dp
[18]);
468 MULADD(at
[0], at
[51]); MULADD(at
[1], at
[50]); MULADD(at
[2], at
[49]); MULADD(at
[3], at
[48]); MULADD(at
[4], at
[47]); MULADD(at
[5], at
[46]); MULADD(at
[6], at
[45]); MULADD(at
[7], at
[44]); MULADD(at
[8], at
[43]); MULADD(at
[9], at
[42]); MULADD(at
[10], at
[41]); MULADD(at
[11], at
[40]); MULADD(at
[12], at
[39]); MULADD(at
[13], at
[38]); MULADD(at
[14], at
[37]); MULADD(at
[15], at
[36]); MULADD(at
[16], at
[35]); MULADD(at
[17], at
[34]); MULADD(at
[18], at
[33]); MULADD(at
[19], at
[32]);
469 COMBA_STORE(C
->dp
[19]);
472 MULADD(at
[0], at
[52]); MULADD(at
[1], at
[51]); MULADD(at
[2], at
[50]); MULADD(at
[3], at
[49]); MULADD(at
[4], at
[48]); MULADD(at
[5], at
[47]); MULADD(at
[6], at
[46]); MULADD(at
[7], at
[45]); MULADD(at
[8], at
[44]); MULADD(at
[9], at
[43]); MULADD(at
[10], at
[42]); MULADD(at
[11], at
[41]); MULADD(at
[12], at
[40]); MULADD(at
[13], at
[39]); MULADD(at
[14], at
[38]); MULADD(at
[15], at
[37]); MULADD(at
[16], at
[36]); MULADD(at
[17], at
[35]); MULADD(at
[18], at
[34]); MULADD(at
[19], at
[33]); MULADD(at
[20], at
[32]);
473 COMBA_STORE(C
->dp
[20]);
476 MULADD(at
[0], at
[53]); MULADD(at
[1], at
[52]); MULADD(at
[2], at
[51]); MULADD(at
[3], at
[50]); MULADD(at
[4], at
[49]); MULADD(at
[5], at
[48]); MULADD(at
[6], at
[47]); MULADD(at
[7], at
[46]); MULADD(at
[8], at
[45]); MULADD(at
[9], at
[44]); MULADD(at
[10], at
[43]); MULADD(at
[11], at
[42]); MULADD(at
[12], at
[41]); MULADD(at
[13], at
[40]); MULADD(at
[14], at
[39]); MULADD(at
[15], at
[38]); MULADD(at
[16], at
[37]); MULADD(at
[17], at
[36]); MULADD(at
[18], at
[35]); MULADD(at
[19], at
[34]); MULADD(at
[20], at
[33]); MULADD(at
[21], at
[32]);
477 COMBA_STORE(C
->dp
[21]);
480 MULADD(at
[0], at
[54]); MULADD(at
[1], at
[53]); MULADD(at
[2], at
[52]); MULADD(at
[3], at
[51]); MULADD(at
[4], at
[50]); MULADD(at
[5], at
[49]); MULADD(at
[6], at
[48]); MULADD(at
[7], at
[47]); MULADD(at
[8], at
[46]); MULADD(at
[9], at
[45]); MULADD(at
[10], at
[44]); MULADD(at
[11], at
[43]); MULADD(at
[12], at
[42]); MULADD(at
[13], at
[41]); MULADD(at
[14], at
[40]); MULADD(at
[15], at
[39]); MULADD(at
[16], at
[38]); MULADD(at
[17], at
[37]); MULADD(at
[18], at
[36]); MULADD(at
[19], at
[35]); MULADD(at
[20], at
[34]); MULADD(at
[21], at
[33]); MULADD(at
[22], at
[32]);
481 COMBA_STORE(C
->dp
[22]);
484 MULADD(at
[0], at
[55]); MULADD(at
[1], at
[54]); MULADD(at
[2], at
[53]); MULADD(at
[3], at
[52]); MULADD(at
[4], at
[51]); MULADD(at
[5], at
[50]); MULADD(at
[6], at
[49]); MULADD(at
[7], at
[48]); MULADD(at
[8], at
[47]); MULADD(at
[9], at
[46]); MULADD(at
[10], at
[45]); MULADD(at
[11], at
[44]); MULADD(at
[12], at
[43]); MULADD(at
[13], at
[42]); MULADD(at
[14], at
[41]); MULADD(at
[15], at
[40]); MULADD(at
[16], at
[39]); MULADD(at
[17], at
[38]); MULADD(at
[18], at
[37]); MULADD(at
[19], at
[36]); MULADD(at
[20], at
[35]); MULADD(at
[21], at
[34]); MULADD(at
[22], at
[33]); MULADD(at
[23], at
[32]);
485 COMBA_STORE(C
->dp
[23]);
488 MULADD(at
[0], at
[56]); MULADD(at
[1], at
[55]); MULADD(at
[2], at
[54]); MULADD(at
[3], at
[53]); MULADD(at
[4], at
[52]); MULADD(at
[5], at
[51]); MULADD(at
[6], at
[50]); MULADD(at
[7], at
[49]); MULADD(at
[8], at
[48]); MULADD(at
[9], at
[47]); MULADD(at
[10], at
[46]); MULADD(at
[11], at
[45]); MULADD(at
[12], at
[44]); MULADD(at
[13], at
[43]); MULADD(at
[14], at
[42]); MULADD(at
[15], at
[41]); MULADD(at
[16], at
[40]); MULADD(at
[17], at
[39]); MULADD(at
[18], at
[38]); MULADD(at
[19], at
[37]); MULADD(at
[20], at
[36]); MULADD(at
[21], at
[35]); MULADD(at
[22], at
[34]); MULADD(at
[23], at
[33]); MULADD(at
[24], at
[32]);
489 COMBA_STORE(C
->dp
[24]);
492 MULADD(at
[0], at
[57]); MULADD(at
[1], at
[56]); MULADD(at
[2], at
[55]); MULADD(at
[3], at
[54]); MULADD(at
[4], at
[53]); MULADD(at
[5], at
[52]); MULADD(at
[6], at
[51]); MULADD(at
[7], at
[50]); MULADD(at
[8], at
[49]); MULADD(at
[9], at
[48]); MULADD(at
[10], at
[47]); MULADD(at
[11], at
[46]); MULADD(at
[12], at
[45]); MULADD(at
[13], at
[44]); MULADD(at
[14], at
[43]); MULADD(at
[15], at
[42]); MULADD(at
[16], at
[41]); MULADD(at
[17], at
[40]); MULADD(at
[18], at
[39]); MULADD(at
[19], at
[38]); MULADD(at
[20], at
[37]); MULADD(at
[21], at
[36]); MULADD(at
[22], at
[35]); MULADD(at
[23], at
[34]); MULADD(at
[24], at
[33]); MULADD(at
[25], at
[32]);
493 COMBA_STORE(C
->dp
[25]);
496 MULADD(at
[0], at
[58]); MULADD(at
[1], at
[57]); MULADD(at
[2], at
[56]); MULADD(at
[3], at
[55]); MULADD(at
[4], at
[54]); MULADD(at
[5], at
[53]); MULADD(at
[6], at
[52]); MULADD(at
[7], at
[51]); MULADD(at
[8], at
[50]); MULADD(at
[9], at
[49]); MULADD(at
[10], at
[48]); MULADD(at
[11], at
[47]); MULADD(at
[12], at
[46]); MULADD(at
[13], at
[45]); MULADD(at
[14], at
[44]); MULADD(at
[15], at
[43]); MULADD(at
[16], at
[42]); MULADD(at
[17], at
[41]); MULADD(at
[18], at
[40]); MULADD(at
[19], at
[39]); MULADD(at
[20], at
[38]); MULADD(at
[21], at
[37]); MULADD(at
[22], at
[36]); MULADD(at
[23], at
[35]); MULADD(at
[24], at
[34]); MULADD(at
[25], at
[33]); MULADD(at
[26], at
[32]);
497 COMBA_STORE(C
->dp
[26]);
500 MULADD(at
[0], at
[59]); MULADD(at
[1], at
[58]); MULADD(at
[2], at
[57]); MULADD(at
[3], at
[56]); MULADD(at
[4], at
[55]); MULADD(at
[5], at
[54]); MULADD(at
[6], at
[53]); MULADD(at
[7], at
[52]); MULADD(at
[8], at
[51]); MULADD(at
[9], at
[50]); MULADD(at
[10], at
[49]); MULADD(at
[11], at
[48]); MULADD(at
[12], at
[47]); MULADD(at
[13], at
[46]); MULADD(at
[14], at
[45]); MULADD(at
[15], at
[44]); MULADD(at
[16], at
[43]); MULADD(at
[17], at
[42]); MULADD(at
[18], at
[41]); MULADD(at
[19], at
[40]); MULADD(at
[20], at
[39]); MULADD(at
[21], at
[38]); MULADD(at
[22], at
[37]); MULADD(at
[23], at
[36]); MULADD(at
[24], at
[35]); MULADD(at
[25], at
[34]); MULADD(at
[26], at
[33]); MULADD(at
[27], at
[32]);
501 COMBA_STORE(C
->dp
[27]);
504 MULADD(at
[0], at
[60]); MULADD(at
[1], at
[59]); MULADD(at
[2], at
[58]); MULADD(at
[3], at
[57]); MULADD(at
[4], at
[56]); MULADD(at
[5], at
[55]); MULADD(at
[6], at
[54]); MULADD(at
[7], at
[53]); MULADD(at
[8], at
[52]); MULADD(at
[9], at
[51]); MULADD(at
[10], at
[50]); MULADD(at
[11], at
[49]); MULADD(at
[12], at
[48]); MULADD(at
[13], at
[47]); MULADD(at
[14], at
[46]); MULADD(at
[15], at
[45]); MULADD(at
[16], at
[44]); MULADD(at
[17], at
[43]); MULADD(at
[18], at
[42]); MULADD(at
[19], at
[41]); MULADD(at
[20], at
[40]); MULADD(at
[21], at
[39]); MULADD(at
[22], at
[38]); MULADD(at
[23], at
[37]); MULADD(at
[24], at
[36]); MULADD(at
[25], at
[35]); MULADD(at
[26], at
[34]); MULADD(at
[27], at
[33]); MULADD(at
[28], at
[32]);
505 COMBA_STORE(C
->dp
[28]);
508 MULADD(at
[0], at
[61]); MULADD(at
[1], at
[60]); MULADD(at
[2], at
[59]); MULADD(at
[3], at
[58]); MULADD(at
[4], at
[57]); MULADD(at
[5], at
[56]); MULADD(at
[6], at
[55]); MULADD(at
[7], at
[54]); MULADD(at
[8], at
[53]); MULADD(at
[9], at
[52]); MULADD(at
[10], at
[51]); MULADD(at
[11], at
[50]); MULADD(at
[12], at
[49]); MULADD(at
[13], at
[48]); MULADD(at
[14], at
[47]); MULADD(at
[15], at
[46]); MULADD(at
[16], at
[45]); MULADD(at
[17], at
[44]); MULADD(at
[18], at
[43]); MULADD(at
[19], at
[42]); MULADD(at
[20], at
[41]); MULADD(at
[21], at
[40]); MULADD(at
[22], at
[39]); MULADD(at
[23], at
[38]); MULADD(at
[24], at
[37]); MULADD(at
[25], at
[36]); MULADD(at
[26], at
[35]); MULADD(at
[27], at
[34]); MULADD(at
[28], at
[33]); MULADD(at
[29], at
[32]);
509 COMBA_STORE(C
->dp
[29]);
512 MULADD(at
[0], at
[62]); MULADD(at
[1], at
[61]); MULADD(at
[2], at
[60]); MULADD(at
[3], at
[59]); MULADD(at
[4], at
[58]); MULADD(at
[5], at
[57]); MULADD(at
[6], at
[56]); MULADD(at
[7], at
[55]); MULADD(at
[8], at
[54]); MULADD(at
[9], at
[53]); MULADD(at
[10], at
[52]); MULADD(at
[11], at
[51]); MULADD(at
[12], at
[50]); MULADD(at
[13], at
[49]); MULADD(at
[14], at
[48]); MULADD(at
[15], at
[47]); MULADD(at
[16], at
[46]); MULADD(at
[17], at
[45]); MULADD(at
[18], at
[44]); MULADD(at
[19], at
[43]); MULADD(at
[20], at
[42]); MULADD(at
[21], at
[41]); MULADD(at
[22], at
[40]); MULADD(at
[23], at
[39]); MULADD(at
[24], at
[38]); MULADD(at
[25], at
[37]); MULADD(at
[26], at
[36]); MULADD(at
[27], at
[35]); MULADD(at
[28], at
[34]); MULADD(at
[29], at
[33]); MULADD(at
[30], at
[32]);
513 COMBA_STORE(C
->dp
[30]);
516 MULADD(at
[0], at
[63]); MULADD(at
[1], at
[62]); MULADD(at
[2], at
[61]); MULADD(at
[3], at
[60]); MULADD(at
[4], at
[59]); MULADD(at
[5], at
[58]); MULADD(at
[6], at
[57]); MULADD(at
[7], at
[56]); MULADD(at
[8], at
[55]); MULADD(at
[9], at
[54]); MULADD(at
[10], at
[53]); MULADD(at
[11], at
[52]); MULADD(at
[12], at
[51]); MULADD(at
[13], at
[50]); MULADD(at
[14], at
[49]); MULADD(at
[15], at
[48]); MULADD(at
[16], at
[47]); MULADD(at
[17], at
[46]); MULADD(at
[18], at
[45]); MULADD(at
[19], at
[44]); MULADD(at
[20], at
[43]); MULADD(at
[21], at
[42]); MULADD(at
[22], at
[41]); MULADD(at
[23], at
[40]); MULADD(at
[24], at
[39]); MULADD(at
[25], at
[38]); MULADD(at
[26], at
[37]); MULADD(at
[27], at
[36]); MULADD(at
[28], at
[35]); MULADD(at
[29], at
[34]); MULADD(at
[30], at
[33]); MULADD(at
[31], at
[32]);
517 COMBA_STORE(C
->dp
[31]);
520 MULADD(at
[1], at
[63]); MULADD(at
[2], at
[62]); MULADD(at
[3], at
[61]); MULADD(at
[4], at
[60]); MULADD(at
[5], at
[59]); MULADD(at
[6], at
[58]); MULADD(at
[7], at
[57]); MULADD(at
[8], at
[56]); MULADD(at
[9], at
[55]); MULADD(at
[10], at
[54]); MULADD(at
[11], at
[53]); MULADD(at
[12], at
[52]); MULADD(at
[13], at
[51]); MULADD(at
[14], at
[50]); MULADD(at
[15], at
[49]); MULADD(at
[16], at
[48]); MULADD(at
[17], at
[47]); MULADD(at
[18], at
[46]); MULADD(at
[19], at
[45]); MULADD(at
[20], at
[44]); MULADD(at
[21], at
[43]); MULADD(at
[22], at
[42]); MULADD(at
[23], at
[41]); MULADD(at
[24], at
[40]); MULADD(at
[25], at
[39]); MULADD(at
[26], at
[38]); MULADD(at
[27], at
[37]); MULADD(at
[28], at
[36]); MULADD(at
[29], at
[35]); MULADD(at
[30], at
[34]); MULADD(at
[31], at
[33]);
521 COMBA_STORE(C
->dp
[32]);
524 MULADD(at
[2], at
[63]); MULADD(at
[3], at
[62]); MULADD(at
[4], at
[61]); MULADD(at
[5], at
[60]); MULADD(at
[6], at
[59]); MULADD(at
[7], at
[58]); MULADD(at
[8], at
[57]); MULADD(at
[9], at
[56]); MULADD(at
[10], at
[55]); MULADD(at
[11], at
[54]); MULADD(at
[12], at
[53]); MULADD(at
[13], at
[52]); MULADD(at
[14], at
[51]); MULADD(at
[15], at
[50]); MULADD(at
[16], at
[49]); MULADD(at
[17], at
[48]); MULADD(at
[18], at
[47]); MULADD(at
[19], at
[46]); MULADD(at
[20], at
[45]); MULADD(at
[21], at
[44]); MULADD(at
[22], at
[43]); MULADD(at
[23], at
[42]); MULADD(at
[24], at
[41]); MULADD(at
[25], at
[40]); MULADD(at
[26], at
[39]); MULADD(at
[27], at
[38]); MULADD(at
[28], at
[37]); MULADD(at
[29], at
[36]); MULADD(at
[30], at
[35]); MULADD(at
[31], at
[34]);
525 COMBA_STORE(C
->dp
[33]);
528 MULADD(at
[3], at
[63]); MULADD(at
[4], at
[62]); MULADD(at
[5], at
[61]); MULADD(at
[6], at
[60]); MULADD(at
[7], at
[59]); MULADD(at
[8], at
[58]); MULADD(at
[9], at
[57]); MULADD(at
[10], at
[56]); MULADD(at
[11], at
[55]); MULADD(at
[12], at
[54]); MULADD(at
[13], at
[53]); MULADD(at
[14], at
[52]); MULADD(at
[15], at
[51]); MULADD(at
[16], at
[50]); MULADD(at
[17], at
[49]); MULADD(at
[18], at
[48]); MULADD(at
[19], at
[47]); MULADD(at
[20], at
[46]); MULADD(at
[21], at
[45]); MULADD(at
[22], at
[44]); MULADD(at
[23], at
[43]); MULADD(at
[24], at
[42]); MULADD(at
[25], at
[41]); MULADD(at
[26], at
[40]); MULADD(at
[27], at
[39]); MULADD(at
[28], at
[38]); MULADD(at
[29], at
[37]); MULADD(at
[30], at
[36]); MULADD(at
[31], at
[35]);
529 COMBA_STORE(C
->dp
[34]);
532 MULADD(at
[4], at
[63]); MULADD(at
[5], at
[62]); MULADD(at
[6], at
[61]); MULADD(at
[7], at
[60]); MULADD(at
[8], at
[59]); MULADD(at
[9], at
[58]); MULADD(at
[10], at
[57]); MULADD(at
[11], at
[56]); MULADD(at
[12], at
[55]); MULADD(at
[13], at
[54]); MULADD(at
[14], at
[53]); MULADD(at
[15], at
[52]); MULADD(at
[16], at
[51]); MULADD(at
[17], at
[50]); MULADD(at
[18], at
[49]); MULADD(at
[19], at
[48]); MULADD(at
[20], at
[47]); MULADD(at
[21], at
[46]); MULADD(at
[22], at
[45]); MULADD(at
[23], at
[44]); MULADD(at
[24], at
[43]); MULADD(at
[25], at
[42]); MULADD(at
[26], at
[41]); MULADD(at
[27], at
[40]); MULADD(at
[28], at
[39]); MULADD(at
[29], at
[38]); MULADD(at
[30], at
[37]); MULADD(at
[31], at
[36]);
533 COMBA_STORE(C
->dp
[35]);
536 MULADD(at
[5], at
[63]); MULADD(at
[6], at
[62]); MULADD(at
[7], at
[61]); MULADD(at
[8], at
[60]); MULADD(at
[9], at
[59]); MULADD(at
[10], at
[58]); MULADD(at
[11], at
[57]); MULADD(at
[12], at
[56]); MULADD(at
[13], at
[55]); MULADD(at
[14], at
[54]); MULADD(at
[15], at
[53]); MULADD(at
[16], at
[52]); MULADD(at
[17], at
[51]); MULADD(at
[18], at
[50]); MULADD(at
[19], at
[49]); MULADD(at
[20], at
[48]); MULADD(at
[21], at
[47]); MULADD(at
[22], at
[46]); MULADD(at
[23], at
[45]); MULADD(at
[24], at
[44]); MULADD(at
[25], at
[43]); MULADD(at
[26], at
[42]); MULADD(at
[27], at
[41]); MULADD(at
[28], at
[40]); MULADD(at
[29], at
[39]); MULADD(at
[30], at
[38]); MULADD(at
[31], at
[37]);
537 COMBA_STORE(C
->dp
[36]);
540 MULADD(at
[6], at
[63]); MULADD(at
[7], at
[62]); MULADD(at
[8], at
[61]); MULADD(at
[9], at
[60]); MULADD(at
[10], at
[59]); MULADD(at
[11], at
[58]); MULADD(at
[12], at
[57]); MULADD(at
[13], at
[56]); MULADD(at
[14], at
[55]); MULADD(at
[15], at
[54]); MULADD(at
[16], at
[53]); MULADD(at
[17], at
[52]); MULADD(at
[18], at
[51]); MULADD(at
[19], at
[50]); MULADD(at
[20], at
[49]); MULADD(at
[21], at
[48]); MULADD(at
[22], at
[47]); MULADD(at
[23], at
[46]); MULADD(at
[24], at
[45]); MULADD(at
[25], at
[44]); MULADD(at
[26], at
[43]); MULADD(at
[27], at
[42]); MULADD(at
[28], at
[41]); MULADD(at
[29], at
[40]); MULADD(at
[30], at
[39]); MULADD(at
[31], at
[38]);
541 COMBA_STORE(C
->dp
[37]);
544 MULADD(at
[7], at
[63]); MULADD(at
[8], at
[62]); MULADD(at
[9], at
[61]); MULADD(at
[10], at
[60]); MULADD(at
[11], at
[59]); MULADD(at
[12], at
[58]); MULADD(at
[13], at
[57]); MULADD(at
[14], at
[56]); MULADD(at
[15], at
[55]); MULADD(at
[16], at
[54]); MULADD(at
[17], at
[53]); MULADD(at
[18], at
[52]); MULADD(at
[19], at
[51]); MULADD(at
[20], at
[50]); MULADD(at
[21], at
[49]); MULADD(at
[22], at
[48]); MULADD(at
[23], at
[47]); MULADD(at
[24], at
[46]); MULADD(at
[25], at
[45]); MULADD(at
[26], at
[44]); MULADD(at
[27], at
[43]); MULADD(at
[28], at
[42]); MULADD(at
[29], at
[41]); MULADD(at
[30], at
[40]); MULADD(at
[31], at
[39]);
545 COMBA_STORE(C
->dp
[38]);
548 MULADD(at
[8], at
[63]); MULADD(at
[9], at
[62]); MULADD(at
[10], at
[61]); MULADD(at
[11], at
[60]); MULADD(at
[12], at
[59]); MULADD(at
[13], at
[58]); MULADD(at
[14], at
[57]); MULADD(at
[15], at
[56]); MULADD(at
[16], at
[55]); MULADD(at
[17], at
[54]); MULADD(at
[18], at
[53]); MULADD(at
[19], at
[52]); MULADD(at
[20], at
[51]); MULADD(at
[21], at
[50]); MULADD(at
[22], at
[49]); MULADD(at
[23], at
[48]); MULADD(at
[24], at
[47]); MULADD(at
[25], at
[46]); MULADD(at
[26], at
[45]); MULADD(at
[27], at
[44]); MULADD(at
[28], at
[43]); MULADD(at
[29], at
[42]); MULADD(at
[30], at
[41]); MULADD(at
[31], at
[40]);
549 COMBA_STORE(C
->dp
[39]);
552 MULADD(at
[9], at
[63]); MULADD(at
[10], at
[62]); MULADD(at
[11], at
[61]); MULADD(at
[12], at
[60]); MULADD(at
[13], at
[59]); MULADD(at
[14], at
[58]); MULADD(at
[15], at
[57]); MULADD(at
[16], at
[56]); MULADD(at
[17], at
[55]); MULADD(at
[18], at
[54]); MULADD(at
[19], at
[53]); MULADD(at
[20], at
[52]); MULADD(at
[21], at
[51]); MULADD(at
[22], at
[50]); MULADD(at
[23], at
[49]); MULADD(at
[24], at
[48]); MULADD(at
[25], at
[47]); MULADD(at
[26], at
[46]); MULADD(at
[27], at
[45]); MULADD(at
[28], at
[44]); MULADD(at
[29], at
[43]); MULADD(at
[30], at
[42]); MULADD(at
[31], at
[41]);
553 COMBA_STORE(C
->dp
[40]);
556 MULADD(at
[10], at
[63]); MULADD(at
[11], at
[62]); MULADD(at
[12], at
[61]); MULADD(at
[13], at
[60]); MULADD(at
[14], at
[59]); MULADD(at
[15], at
[58]); MULADD(at
[16], at
[57]); MULADD(at
[17], at
[56]); MULADD(at
[18], at
[55]); MULADD(at
[19], at
[54]); MULADD(at
[20], at
[53]); MULADD(at
[21], at
[52]); MULADD(at
[22], at
[51]); MULADD(at
[23], at
[50]); MULADD(at
[24], at
[49]); MULADD(at
[25], at
[48]); MULADD(at
[26], at
[47]); MULADD(at
[27], at
[46]); MULADD(at
[28], at
[45]); MULADD(at
[29], at
[44]); MULADD(at
[30], at
[43]); MULADD(at
[31], at
[42]);
557 COMBA_STORE(C
->dp
[41]);
560 MULADD(at
[11], at
[63]); MULADD(at
[12], at
[62]); MULADD(at
[13], at
[61]); MULADD(at
[14], at
[60]); MULADD(at
[15], at
[59]); MULADD(at
[16], at
[58]); MULADD(at
[17], at
[57]); MULADD(at
[18], at
[56]); MULADD(at
[19], at
[55]); MULADD(at
[20], at
[54]); MULADD(at
[21], at
[53]); MULADD(at
[22], at
[52]); MULADD(at
[23], at
[51]); MULADD(at
[24], at
[50]); MULADD(at
[25], at
[49]); MULADD(at
[26], at
[48]); MULADD(at
[27], at
[47]); MULADD(at
[28], at
[46]); MULADD(at
[29], at
[45]); MULADD(at
[30], at
[44]); MULADD(at
[31], at
[43]);
561 COMBA_STORE(C
->dp
[42]);
564 MULADD(at
[12], at
[63]); MULADD(at
[13], at
[62]); MULADD(at
[14], at
[61]); MULADD(at
[15], at
[60]); MULADD(at
[16], at
[59]); MULADD(at
[17], at
[58]); MULADD(at
[18], at
[57]); MULADD(at
[19], at
[56]); MULADD(at
[20], at
[55]); MULADD(at
[21], at
[54]); MULADD(at
[22], at
[53]); MULADD(at
[23], at
[52]); MULADD(at
[24], at
[51]); MULADD(at
[25], at
[50]); MULADD(at
[26], at
[49]); MULADD(at
[27], at
[48]); MULADD(at
[28], at
[47]); MULADD(at
[29], at
[46]); MULADD(at
[30], at
[45]); MULADD(at
[31], at
[44]);
565 COMBA_STORE(C
->dp
[43]);
568 MULADD(at
[13], at
[63]); MULADD(at
[14], at
[62]); MULADD(at
[15], at
[61]); MULADD(at
[16], at
[60]); MULADD(at
[17], at
[59]); MULADD(at
[18], at
[58]); MULADD(at
[19], at
[57]); MULADD(at
[20], at
[56]); MULADD(at
[21], at
[55]); MULADD(at
[22], at
[54]); MULADD(at
[23], at
[53]); MULADD(at
[24], at
[52]); MULADD(at
[25], at
[51]); MULADD(at
[26], at
[50]); MULADD(at
[27], at
[49]); MULADD(at
[28], at
[48]); MULADD(at
[29], at
[47]); MULADD(at
[30], at
[46]); MULADD(at
[31], at
[45]);
569 COMBA_STORE(C
->dp
[44]);
572 MULADD(at
[14], at
[63]); MULADD(at
[15], at
[62]); MULADD(at
[16], at
[61]); MULADD(at
[17], at
[60]); MULADD(at
[18], at
[59]); MULADD(at
[19], at
[58]); MULADD(at
[20], at
[57]); MULADD(at
[21], at
[56]); MULADD(at
[22], at
[55]); MULADD(at
[23], at
[54]); MULADD(at
[24], at
[53]); MULADD(at
[25], at
[52]); MULADD(at
[26], at
[51]); MULADD(at
[27], at
[50]); MULADD(at
[28], at
[49]); MULADD(at
[29], at
[48]); MULADD(at
[30], at
[47]); MULADD(at
[31], at
[46]);
573 COMBA_STORE(C
->dp
[45]);
576 MULADD(at
[15], at
[63]); MULADD(at
[16], at
[62]); MULADD(at
[17], at
[61]); MULADD(at
[18], at
[60]); MULADD(at
[19], at
[59]); MULADD(at
[20], at
[58]); MULADD(at
[21], at
[57]); MULADD(at
[22], at
[56]); MULADD(at
[23], at
[55]); MULADD(at
[24], at
[54]); MULADD(at
[25], at
[53]); MULADD(at
[26], at
[52]); MULADD(at
[27], at
[51]); MULADD(at
[28], at
[50]); MULADD(at
[29], at
[49]); MULADD(at
[30], at
[48]); MULADD(at
[31], at
[47]);
577 COMBA_STORE(C
->dp
[46]);
580 MULADD(at
[16], at
[63]); MULADD(at
[17], at
[62]); MULADD(at
[18], at
[61]); MULADD(at
[19], at
[60]); MULADD(at
[20], at
[59]); MULADD(at
[21], at
[58]); MULADD(at
[22], at
[57]); MULADD(at
[23], at
[56]); MULADD(at
[24], at
[55]); MULADD(at
[25], at
[54]); MULADD(at
[26], at
[53]); MULADD(at
[27], at
[52]); MULADD(at
[28], at
[51]); MULADD(at
[29], at
[50]); MULADD(at
[30], at
[49]); MULADD(at
[31], at
[48]);
581 COMBA_STORE(C
->dp
[47]);
584 MULADD(at
[17], at
[63]); MULADD(at
[18], at
[62]); MULADD(at
[19], at
[61]); MULADD(at
[20], at
[60]); MULADD(at
[21], at
[59]); MULADD(at
[22], at
[58]); MULADD(at
[23], at
[57]); MULADD(at
[24], at
[56]); MULADD(at
[25], at
[55]); MULADD(at
[26], at
[54]); MULADD(at
[27], at
[53]); MULADD(at
[28], at
[52]); MULADD(at
[29], at
[51]); MULADD(at
[30], at
[50]); MULADD(at
[31], at
[49]);
585 COMBA_STORE(C
->dp
[48]);
588 MULADD(at
[18], at
[63]); MULADD(at
[19], at
[62]); MULADD(at
[20], at
[61]); MULADD(at
[21], at
[60]); MULADD(at
[22], at
[59]); MULADD(at
[23], at
[58]); MULADD(at
[24], at
[57]); MULADD(at
[25], at
[56]); MULADD(at
[26], at
[55]); MULADD(at
[27], at
[54]); MULADD(at
[28], at
[53]); MULADD(at
[29], at
[52]); MULADD(at
[30], at
[51]); MULADD(at
[31], at
[50]);
589 COMBA_STORE(C
->dp
[49]);
592 MULADD(at
[19], at
[63]); MULADD(at
[20], at
[62]); MULADD(at
[21], at
[61]); MULADD(at
[22], at
[60]); MULADD(at
[23], at
[59]); MULADD(at
[24], at
[58]); MULADD(at
[25], at
[57]); MULADD(at
[26], at
[56]); MULADD(at
[27], at
[55]); MULADD(at
[28], at
[54]); MULADD(at
[29], at
[53]); MULADD(at
[30], at
[52]); MULADD(at
[31], at
[51]);
593 COMBA_STORE(C
->dp
[50]);
596 MULADD(at
[20], at
[63]); MULADD(at
[21], at
[62]); MULADD(at
[22], at
[61]); MULADD(at
[23], at
[60]); MULADD(at
[24], at
[59]); MULADD(at
[25], at
[58]); MULADD(at
[26], at
[57]); MULADD(at
[27], at
[56]); MULADD(at
[28], at
[55]); MULADD(at
[29], at
[54]); MULADD(at
[30], at
[53]); MULADD(at
[31], at
[52]);
597 COMBA_STORE(C
->dp
[51]);
600 MULADD(at
[21], at
[63]); MULADD(at
[22], at
[62]); MULADD(at
[23], at
[61]); MULADD(at
[24], at
[60]); MULADD(at
[25], at
[59]); MULADD(at
[26], at
[58]); MULADD(at
[27], at
[57]); MULADD(at
[28], at
[56]); MULADD(at
[29], at
[55]); MULADD(at
[30], at
[54]); MULADD(at
[31], at
[53]);
601 COMBA_STORE(C
->dp
[52]);
604 MULADD(at
[22], at
[63]); MULADD(at
[23], at
[62]); MULADD(at
[24], at
[61]); MULADD(at
[25], at
[60]); MULADD(at
[26], at
[59]); MULADD(at
[27], at
[58]); MULADD(at
[28], at
[57]); MULADD(at
[29], at
[56]); MULADD(at
[30], at
[55]); MULADD(at
[31], at
[54]);
605 COMBA_STORE(C
->dp
[53]);
608 MULADD(at
[23], at
[63]); MULADD(at
[24], at
[62]); MULADD(at
[25], at
[61]); MULADD(at
[26], at
[60]); MULADD(at
[27], at
[59]); MULADD(at
[28], at
[58]); MULADD(at
[29], at
[57]); MULADD(at
[30], at
[56]); MULADD(at
[31], at
[55]);
609 COMBA_STORE(C
->dp
[54]);
612 MULADD(at
[24], at
[63]); MULADD(at
[25], at
[62]); MULADD(at
[26], at
[61]); MULADD(at
[27], at
[60]); MULADD(at
[28], at
[59]); MULADD(at
[29], at
[58]); MULADD(at
[30], at
[57]); MULADD(at
[31], at
[56]);
613 COMBA_STORE(C
->dp
[55]);
616 MULADD(at
[25], at
[63]); MULADD(at
[26], at
[62]); MULADD(at
[27], at
[61]); MULADD(at
[28], at
[60]); MULADD(at
[29], at
[59]); MULADD(at
[30], at
[58]); MULADD(at
[31], at
[57]);
617 COMBA_STORE(C
->dp
[56]);
620 MULADD(at
[26], at
[63]); MULADD(at
[27], at
[62]); MULADD(at
[28], at
[61]); MULADD(at
[29], at
[60]); MULADD(at
[30], at
[59]); MULADD(at
[31], at
[58]);
621 COMBA_STORE(C
->dp
[57]);
624 MULADD(at
[27], at
[63]); MULADD(at
[28], at
[62]); MULADD(at
[29], at
[61]); MULADD(at
[30], at
[60]); MULADD(at
[31], at
[59]);
625 COMBA_STORE(C
->dp
[58]);
628 MULADD(at
[28], at
[63]); MULADD(at
[29], at
[62]); MULADD(at
[30], at
[61]); MULADD(at
[31], at
[60]);
629 COMBA_STORE(C
->dp
[59]);
632 MULADD(at
[29], at
[63]); MULADD(at
[30], at
[62]); MULADD(at
[31], at
[61]);
633 COMBA_STORE(C
->dp
[60]);
636 MULADD(at
[30], at
[63]); MULADD(at
[31], at
[62]);
637 COMBA_STORE(C
->dp
[61]);
640 MULADD(at
[31], at
[63]);
641 COMBA_STORE(C
->dp
[62]);
642 COMBA_STORE2(C
->dp
[63]);
644 C
->sign
= A
->sign
^ B
->sign
;
651 void s_mp_sqr_comba_4(const mp_int
*A
, mp_int
*B
)
653 mp_digit
*a
, b
[8], c0
, c1
, c2
;
672 SQRADD2(a
[0], a
[2]); SQRADD(a
[1], a
[1]);
677 SQRADD2(a
[0], a
[3]); SQRADD2(a
[1], a
[2]);
682 SQRADD2(a
[1], a
[3]); SQRADD(a
[2], a
[2]);
699 memcpy(B
->dp
, b
, 8 * sizeof(mp_digit
));
703 void s_mp_sqr_comba_8(const mp_int
*A
, mp_int
*B
)
705 mp_digit
*a
, b
[16], c0
, c1
, c2
, sc0
, sc1
, sc2
;
724 SQRADD2(a
[0], a
[2]); SQRADD(a
[1], a
[1]);
729 SQRADD2(a
[0], a
[3]); SQRADD2(a
[1], a
[2]);
734 SQRADD2(a
[0], a
[4]); SQRADD2(a
[1], a
[3]); SQRADD(a
[2], a
[2]);
739 SQRADDSC(a
[0], a
[5]); SQRADDAC(a
[1], a
[4]); SQRADDAC(a
[2], a
[3]); SQRADDDB
;
744 SQRADDSC(a
[0], a
[6]); SQRADDAC(a
[1], a
[5]); SQRADDAC(a
[2], a
[4]); SQRADDDB
; SQRADD(a
[3], a
[3]);
749 SQRADDSC(a
[0], a
[7]); SQRADDAC(a
[1], a
[6]); SQRADDAC(a
[2], a
[5]); SQRADDAC(a
[3], a
[4]); SQRADDDB
;
754 SQRADDSC(a
[1], a
[7]); SQRADDAC(a
[2], a
[6]); SQRADDAC(a
[3], a
[5]); SQRADDDB
; SQRADD(a
[4], a
[4]);
759 SQRADDSC(a
[2], a
[7]); SQRADDAC(a
[3], a
[6]); SQRADDAC(a
[4], a
[5]); SQRADDDB
;
764 SQRADD2(a
[3], a
[7]); SQRADD2(a
[4], a
[6]); SQRADD(a
[5], a
[5]);
769 SQRADD2(a
[4], a
[7]); SQRADD2(a
[5], a
[6]);
774 SQRADD2(a
[5], a
[7]); SQRADD(a
[6], a
[6]);
791 memcpy(B
->dp
, b
, 16 * sizeof(mp_digit
));
795 void s_mp_sqr_comba_16(const mp_int
*A
, mp_int
*B
)
797 mp_digit
*a
, b
[32], c0
, c1
, c2
, sc0
, sc1
, sc2
;
816 SQRADD2(a
[0], a
[2]); SQRADD(a
[1], a
[1]);
821 SQRADD2(a
[0], a
[3]); SQRADD2(a
[1], a
[2]);
826 SQRADD2(a
[0], a
[4]); SQRADD2(a
[1], a
[3]); SQRADD(a
[2], a
[2]);
831 SQRADDSC(a
[0], a
[5]); SQRADDAC(a
[1], a
[4]); SQRADDAC(a
[2], a
[3]); SQRADDDB
;
836 SQRADDSC(a
[0], a
[6]); SQRADDAC(a
[1], a
[5]); SQRADDAC(a
[2], a
[4]); SQRADDDB
; SQRADD(a
[3], a
[3]);
841 SQRADDSC(a
[0], a
[7]); SQRADDAC(a
[1], a
[6]); SQRADDAC(a
[2], a
[5]); SQRADDAC(a
[3], a
[4]); SQRADDDB
;
846 SQRADDSC(a
[0], a
[8]); SQRADDAC(a
[1], a
[7]); SQRADDAC(a
[2], a
[6]); SQRADDAC(a
[3], a
[5]); SQRADDDB
; SQRADD(a
[4], a
[4]);
851 SQRADDSC(a
[0], a
[9]); SQRADDAC(a
[1], a
[8]); SQRADDAC(a
[2], a
[7]); SQRADDAC(a
[3], a
[6]); SQRADDAC(a
[4], a
[5]); SQRADDDB
;
856 SQRADDSC(a
[0], a
[10]); SQRADDAC(a
[1], a
[9]); SQRADDAC(a
[2], a
[8]); SQRADDAC(a
[3], a
[7]); SQRADDAC(a
[4], a
[6]); SQRADDDB
; SQRADD(a
[5], a
[5]);
861 SQRADDSC(a
[0], a
[11]); SQRADDAC(a
[1], a
[10]); SQRADDAC(a
[2], a
[9]); SQRADDAC(a
[3], a
[8]); SQRADDAC(a
[4], a
[7]); SQRADDAC(a
[5], a
[6]); SQRADDDB
;
866 SQRADDSC(a
[0], a
[12]); SQRADDAC(a
[1], a
[11]); SQRADDAC(a
[2], a
[10]); SQRADDAC(a
[3], a
[9]); SQRADDAC(a
[4], a
[8]); SQRADDAC(a
[5], a
[7]); SQRADDDB
; SQRADD(a
[6], a
[6]);
871 SQRADDSC(a
[0], a
[13]); SQRADDAC(a
[1], a
[12]); SQRADDAC(a
[2], a
[11]); SQRADDAC(a
[3], a
[10]); SQRADDAC(a
[4], a
[9]); SQRADDAC(a
[5], a
[8]); SQRADDAC(a
[6], a
[7]); SQRADDDB
;
876 SQRADDSC(a
[0], a
[14]); SQRADDAC(a
[1], a
[13]); SQRADDAC(a
[2], a
[12]); SQRADDAC(a
[3], a
[11]); SQRADDAC(a
[4], a
[10]); SQRADDAC(a
[5], a
[9]); SQRADDAC(a
[6], a
[8]); SQRADDDB
; SQRADD(a
[7], a
[7]);
881 SQRADDSC(a
[0], a
[15]); SQRADDAC(a
[1], a
[14]); SQRADDAC(a
[2], a
[13]); SQRADDAC(a
[3], a
[12]); SQRADDAC(a
[4], a
[11]); SQRADDAC(a
[5], a
[10]); SQRADDAC(a
[6], a
[9]); SQRADDAC(a
[7], a
[8]); SQRADDDB
;
886 SQRADDSC(a
[1], a
[15]); SQRADDAC(a
[2], a
[14]); SQRADDAC(a
[3], a
[13]); SQRADDAC(a
[4], a
[12]); SQRADDAC(a
[5], a
[11]); SQRADDAC(a
[6], a
[10]); SQRADDAC(a
[7], a
[9]); SQRADDDB
; SQRADD(a
[8], a
[8]);
891 SQRADDSC(a
[2], a
[15]); SQRADDAC(a
[3], a
[14]); SQRADDAC(a
[4], a
[13]); SQRADDAC(a
[5], a
[12]); SQRADDAC(a
[6], a
[11]); SQRADDAC(a
[7], a
[10]); SQRADDAC(a
[8], a
[9]); SQRADDDB
;
896 SQRADDSC(a
[3], a
[15]); SQRADDAC(a
[4], a
[14]); SQRADDAC(a
[5], a
[13]); SQRADDAC(a
[6], a
[12]); SQRADDAC(a
[7], a
[11]); SQRADDAC(a
[8], a
[10]); SQRADDDB
; SQRADD(a
[9], a
[9]);
901 SQRADDSC(a
[4], a
[15]); SQRADDAC(a
[5], a
[14]); SQRADDAC(a
[6], a
[13]); SQRADDAC(a
[7], a
[12]); SQRADDAC(a
[8], a
[11]); SQRADDAC(a
[9], a
[10]); SQRADDDB
;
906 SQRADDSC(a
[5], a
[15]); SQRADDAC(a
[6], a
[14]); SQRADDAC(a
[7], a
[13]); SQRADDAC(a
[8], a
[12]); SQRADDAC(a
[9], a
[11]); SQRADDDB
; SQRADD(a
[10], a
[10]);
911 SQRADDSC(a
[6], a
[15]); SQRADDAC(a
[7], a
[14]); SQRADDAC(a
[8], a
[13]); SQRADDAC(a
[9], a
[12]); SQRADDAC(a
[10], a
[11]); SQRADDDB
;
916 SQRADDSC(a
[7], a
[15]); SQRADDAC(a
[8], a
[14]); SQRADDAC(a
[9], a
[13]); SQRADDAC(a
[10], a
[12]); SQRADDDB
; SQRADD(a
[11], a
[11]);
921 SQRADDSC(a
[8], a
[15]); SQRADDAC(a
[9], a
[14]); SQRADDAC(a
[10], a
[13]); SQRADDAC(a
[11], a
[12]); SQRADDDB
;
926 SQRADDSC(a
[9], a
[15]); SQRADDAC(a
[10], a
[14]); SQRADDAC(a
[11], a
[13]); SQRADDDB
; SQRADD(a
[12], a
[12]);
931 SQRADDSC(a
[10], a
[15]); SQRADDAC(a
[11], a
[14]); SQRADDAC(a
[12], a
[13]); SQRADDDB
;
936 SQRADD2(a
[11], a
[15]); SQRADD2(a
[12], a
[14]); SQRADD(a
[13], a
[13]);
941 SQRADD2(a
[12], a
[15]); SQRADD2(a
[13], a
[14]);
946 SQRADD2(a
[13], a
[15]); SQRADD(a
[14], a
[14]);
951 SQRADD2(a
[14], a
[15]);
956 SQRADD(a
[15], a
[15]);
963 memcpy(B
->dp
, b
, 32 * sizeof(mp_digit
));
968 void s_mp_sqr_comba_32(const mp_int
*A
, mp_int
*B
)
970 mp_digit
*a
, b
[64], c0
, c1
, c2
, sc0
, sc1
, sc2
;
989 SQRADD2(a
[0], a
[2]); SQRADD(a
[1], a
[1]);
994 SQRADD2(a
[0], a
[3]); SQRADD2(a
[1], a
[2]);
999 SQRADD2(a
[0], a
[4]); SQRADD2(a
[1], a
[3]); SQRADD(a
[2], a
[2]);
1004 SQRADDSC(a
[0], a
[5]); SQRADDAC(a
[1], a
[4]); SQRADDAC(a
[2], a
[3]); SQRADDDB
;
1009 SQRADDSC(a
[0], a
[6]); SQRADDAC(a
[1], a
[5]); SQRADDAC(a
[2], a
[4]); SQRADDDB
; SQRADD(a
[3], a
[3]);
1014 SQRADDSC(a
[0], a
[7]); SQRADDAC(a
[1], a
[6]); SQRADDAC(a
[2], a
[5]); SQRADDAC(a
[3], a
[4]); SQRADDDB
;
1019 SQRADDSC(a
[0], a
[8]); SQRADDAC(a
[1], a
[7]); SQRADDAC(a
[2], a
[6]); SQRADDAC(a
[3], a
[5]); SQRADDDB
; SQRADD(a
[4], a
[4]);
1024 SQRADDSC(a
[0], a
[9]); SQRADDAC(a
[1], a
[8]); SQRADDAC(a
[2], a
[7]); SQRADDAC(a
[3], a
[6]); SQRADDAC(a
[4], a
[5]); SQRADDDB
;
1029 SQRADDSC(a
[0], a
[10]); SQRADDAC(a
[1], a
[9]); SQRADDAC(a
[2], a
[8]); SQRADDAC(a
[3], a
[7]); SQRADDAC(a
[4], a
[6]); SQRADDDB
; SQRADD(a
[5], a
[5]);
1034 SQRADDSC(a
[0], a
[11]); SQRADDAC(a
[1], a
[10]); SQRADDAC(a
[2], a
[9]); SQRADDAC(a
[3], a
[8]); SQRADDAC(a
[4], a
[7]); SQRADDAC(a
[5], a
[6]); SQRADDDB
;
1039 SQRADDSC(a
[0], a
[12]); SQRADDAC(a
[1], a
[11]); SQRADDAC(a
[2], a
[10]); SQRADDAC(a
[3], a
[9]); SQRADDAC(a
[4], a
[8]); SQRADDAC(a
[5], a
[7]); SQRADDDB
; SQRADD(a
[6], a
[6]);
1044 SQRADDSC(a
[0], a
[13]); SQRADDAC(a
[1], a
[12]); SQRADDAC(a
[2], a
[11]); SQRADDAC(a
[3], a
[10]); SQRADDAC(a
[4], a
[9]); SQRADDAC(a
[5], a
[8]); SQRADDAC(a
[6], a
[7]); SQRADDDB
;
1049 SQRADDSC(a
[0], a
[14]); SQRADDAC(a
[1], a
[13]); SQRADDAC(a
[2], a
[12]); SQRADDAC(a
[3], a
[11]); SQRADDAC(a
[4], a
[10]); SQRADDAC(a
[5], a
[9]); SQRADDAC(a
[6], a
[8]); SQRADDDB
; SQRADD(a
[7], a
[7]);
1054 SQRADDSC(a
[0], a
[15]); SQRADDAC(a
[1], a
[14]); SQRADDAC(a
[2], a
[13]); SQRADDAC(a
[3], a
[12]); SQRADDAC(a
[4], a
[11]); SQRADDAC(a
[5], a
[10]); SQRADDAC(a
[6], a
[9]); SQRADDAC(a
[7], a
[8]); SQRADDDB
;
1059 SQRADDSC(a
[0], a
[16]); SQRADDAC(a
[1], a
[15]); SQRADDAC(a
[2], a
[14]); SQRADDAC(a
[3], a
[13]); SQRADDAC(a
[4], a
[12]); SQRADDAC(a
[5], a
[11]); SQRADDAC(a
[6], a
[10]); SQRADDAC(a
[7], a
[9]); SQRADDDB
; SQRADD(a
[8], a
[8]);
1064 SQRADDSC(a
[0], a
[17]); SQRADDAC(a
[1], a
[16]); SQRADDAC(a
[2], a
[15]); SQRADDAC(a
[3], a
[14]); SQRADDAC(a
[4], a
[13]); SQRADDAC(a
[5], a
[12]); SQRADDAC(a
[6], a
[11]); SQRADDAC(a
[7], a
[10]); SQRADDAC(a
[8], a
[9]); SQRADDDB
;
1069 SQRADDSC(a
[0], a
[18]); SQRADDAC(a
[1], a
[17]); SQRADDAC(a
[2], a
[16]); SQRADDAC(a
[3], a
[15]); SQRADDAC(a
[4], a
[14]); SQRADDAC(a
[5], a
[13]); SQRADDAC(a
[6], a
[12]); SQRADDAC(a
[7], a
[11]); SQRADDAC(a
[8], a
[10]); SQRADDDB
; SQRADD(a
[9], a
[9]);
1074 SQRADDSC(a
[0], a
[19]); SQRADDAC(a
[1], a
[18]); SQRADDAC(a
[2], a
[17]); SQRADDAC(a
[3], a
[16]); SQRADDAC(a
[4], a
[15]); SQRADDAC(a
[5], a
[14]); SQRADDAC(a
[6], a
[13]); SQRADDAC(a
[7], a
[12]); SQRADDAC(a
[8], a
[11]); SQRADDAC(a
[9], a
[10]); SQRADDDB
;
1079 SQRADDSC(a
[0], a
[20]); SQRADDAC(a
[1], a
[19]); SQRADDAC(a
[2], a
[18]); SQRADDAC(a
[3], a
[17]); SQRADDAC(a
[4], a
[16]); SQRADDAC(a
[5], a
[15]); SQRADDAC(a
[6], a
[14]); SQRADDAC(a
[7], a
[13]); SQRADDAC(a
[8], a
[12]); SQRADDAC(a
[9], a
[11]); SQRADDDB
; SQRADD(a
[10], a
[10]);
1084 SQRADDSC(a
[0], a
[21]); SQRADDAC(a
[1], a
[20]); SQRADDAC(a
[2], a
[19]); SQRADDAC(a
[3], a
[18]); SQRADDAC(a
[4], a
[17]); SQRADDAC(a
[5], a
[16]); SQRADDAC(a
[6], a
[15]); SQRADDAC(a
[7], a
[14]); SQRADDAC(a
[8], a
[13]); SQRADDAC(a
[9], a
[12]); SQRADDAC(a
[10], a
[11]); SQRADDDB
;
1089 SQRADDSC(a
[0], a
[22]); SQRADDAC(a
[1], a
[21]); SQRADDAC(a
[2], a
[20]); SQRADDAC(a
[3], a
[19]); SQRADDAC(a
[4], a
[18]); SQRADDAC(a
[5], a
[17]); SQRADDAC(a
[6], a
[16]); SQRADDAC(a
[7], a
[15]); SQRADDAC(a
[8], a
[14]); SQRADDAC(a
[9], a
[13]); SQRADDAC(a
[10], a
[12]); SQRADDDB
; SQRADD(a
[11], a
[11]);
1094 SQRADDSC(a
[0], a
[23]); SQRADDAC(a
[1], a
[22]); SQRADDAC(a
[2], a
[21]); SQRADDAC(a
[3], a
[20]); SQRADDAC(a
[4], a
[19]); SQRADDAC(a
[5], a
[18]); SQRADDAC(a
[6], a
[17]); SQRADDAC(a
[7], a
[16]); SQRADDAC(a
[8], a
[15]); SQRADDAC(a
[9], a
[14]); SQRADDAC(a
[10], a
[13]); SQRADDAC(a
[11], a
[12]); SQRADDDB
;
1099 SQRADDSC(a
[0], a
[24]); SQRADDAC(a
[1], a
[23]); SQRADDAC(a
[2], a
[22]); SQRADDAC(a
[3], a
[21]); SQRADDAC(a
[4], a
[20]); SQRADDAC(a
[5], a
[19]); SQRADDAC(a
[6], a
[18]); SQRADDAC(a
[7], a
[17]); SQRADDAC(a
[8], a
[16]); SQRADDAC(a
[9], a
[15]); SQRADDAC(a
[10], a
[14]); SQRADDAC(a
[11], a
[13]); SQRADDDB
; SQRADD(a
[12], a
[12]);
1104 SQRADDSC(a
[0], a
[25]); SQRADDAC(a
[1], a
[24]); SQRADDAC(a
[2], a
[23]); SQRADDAC(a
[3], a
[22]); SQRADDAC(a
[4], a
[21]); SQRADDAC(a
[5], a
[20]); SQRADDAC(a
[6], a
[19]); SQRADDAC(a
[7], a
[18]); SQRADDAC(a
[8], a
[17]); SQRADDAC(a
[9], a
[16]); SQRADDAC(a
[10], a
[15]); SQRADDAC(a
[11], a
[14]); SQRADDAC(a
[12], a
[13]); SQRADDDB
;
1109 SQRADDSC(a
[0], a
[26]); SQRADDAC(a
[1], a
[25]); SQRADDAC(a
[2], a
[24]); SQRADDAC(a
[3], a
[23]); SQRADDAC(a
[4], a
[22]); SQRADDAC(a
[5], a
[21]); SQRADDAC(a
[6], a
[20]); SQRADDAC(a
[7], a
[19]); SQRADDAC(a
[8], a
[18]); SQRADDAC(a
[9], a
[17]); SQRADDAC(a
[10], a
[16]); SQRADDAC(a
[11], a
[15]); SQRADDAC(a
[12], a
[14]); SQRADDDB
; SQRADD(a
[13], a
[13]);
1114 SQRADDSC(a
[0], a
[27]); SQRADDAC(a
[1], a
[26]); SQRADDAC(a
[2], a
[25]); SQRADDAC(a
[3], a
[24]); SQRADDAC(a
[4], a
[23]); SQRADDAC(a
[5], a
[22]); SQRADDAC(a
[6], a
[21]); SQRADDAC(a
[7], a
[20]); SQRADDAC(a
[8], a
[19]); SQRADDAC(a
[9], a
[18]); SQRADDAC(a
[10], a
[17]); SQRADDAC(a
[11], a
[16]); SQRADDAC(a
[12], a
[15]); SQRADDAC(a
[13], a
[14]); SQRADDDB
;
1119 SQRADDSC(a
[0], a
[28]); SQRADDAC(a
[1], a
[27]); SQRADDAC(a
[2], a
[26]); SQRADDAC(a
[3], a
[25]); SQRADDAC(a
[4], a
[24]); SQRADDAC(a
[5], a
[23]); SQRADDAC(a
[6], a
[22]); SQRADDAC(a
[7], a
[21]); SQRADDAC(a
[8], a
[20]); SQRADDAC(a
[9], a
[19]); SQRADDAC(a
[10], a
[18]); SQRADDAC(a
[11], a
[17]); SQRADDAC(a
[12], a
[16]); SQRADDAC(a
[13], a
[15]); SQRADDDB
; SQRADD(a
[14], a
[14]);
1124 SQRADDSC(a
[0], a
[29]); SQRADDAC(a
[1], a
[28]); SQRADDAC(a
[2], a
[27]); SQRADDAC(a
[3], a
[26]); SQRADDAC(a
[4], a
[25]); SQRADDAC(a
[5], a
[24]); SQRADDAC(a
[6], a
[23]); SQRADDAC(a
[7], a
[22]); SQRADDAC(a
[8], a
[21]); SQRADDAC(a
[9], a
[20]); SQRADDAC(a
[10], a
[19]); SQRADDAC(a
[11], a
[18]); SQRADDAC(a
[12], a
[17]); SQRADDAC(a
[13], a
[16]); SQRADDAC(a
[14], a
[15]); SQRADDDB
;
1129 SQRADDSC(a
[0], a
[30]); SQRADDAC(a
[1], a
[29]); SQRADDAC(a
[2], a
[28]); SQRADDAC(a
[3], a
[27]); SQRADDAC(a
[4], a
[26]); SQRADDAC(a
[5], a
[25]); SQRADDAC(a
[6], a
[24]); SQRADDAC(a
[7], a
[23]); SQRADDAC(a
[8], a
[22]); SQRADDAC(a
[9], a
[21]); SQRADDAC(a
[10], a
[20]); SQRADDAC(a
[11], a
[19]); SQRADDAC(a
[12], a
[18]); SQRADDAC(a
[13], a
[17]); SQRADDAC(a
[14], a
[16]); SQRADDDB
; SQRADD(a
[15], a
[15]);
1134 SQRADDSC(a
[0], a
[31]); SQRADDAC(a
[1], a
[30]); SQRADDAC(a
[2], a
[29]); SQRADDAC(a
[3], a
[28]); SQRADDAC(a
[4], a
[27]); SQRADDAC(a
[5], a
[26]); SQRADDAC(a
[6], a
[25]); SQRADDAC(a
[7], a
[24]); SQRADDAC(a
[8], a
[23]); SQRADDAC(a
[9], a
[22]); SQRADDAC(a
[10], a
[21]); SQRADDAC(a
[11], a
[20]); SQRADDAC(a
[12], a
[19]); SQRADDAC(a
[13], a
[18]); SQRADDAC(a
[14], a
[17]); SQRADDAC(a
[15], a
[16]); SQRADDDB
;
1139 SQRADDSC(a
[1], a
[31]); SQRADDAC(a
[2], a
[30]); SQRADDAC(a
[3], a
[29]); SQRADDAC(a
[4], a
[28]); SQRADDAC(a
[5], a
[27]); SQRADDAC(a
[6], a
[26]); SQRADDAC(a
[7], a
[25]); SQRADDAC(a
[8], a
[24]); SQRADDAC(a
[9], a
[23]); SQRADDAC(a
[10], a
[22]); SQRADDAC(a
[11], a
[21]); SQRADDAC(a
[12], a
[20]); SQRADDAC(a
[13], a
[19]); SQRADDAC(a
[14], a
[18]); SQRADDAC(a
[15], a
[17]); SQRADDDB
; SQRADD(a
[16], a
[16]);
1144 SQRADDSC(a
[2], a
[31]); SQRADDAC(a
[3], a
[30]); SQRADDAC(a
[4], a
[29]); SQRADDAC(a
[5], a
[28]); SQRADDAC(a
[6], a
[27]); SQRADDAC(a
[7], a
[26]); SQRADDAC(a
[8], a
[25]); SQRADDAC(a
[9], a
[24]); SQRADDAC(a
[10], a
[23]); SQRADDAC(a
[11], a
[22]); SQRADDAC(a
[12], a
[21]); SQRADDAC(a
[13], a
[20]); SQRADDAC(a
[14], a
[19]); SQRADDAC(a
[15], a
[18]); SQRADDAC(a
[16], a
[17]); SQRADDDB
;
1149 SQRADDSC(a
[3], a
[31]); SQRADDAC(a
[4], a
[30]); SQRADDAC(a
[5], a
[29]); SQRADDAC(a
[6], a
[28]); SQRADDAC(a
[7], a
[27]); SQRADDAC(a
[8], a
[26]); SQRADDAC(a
[9], a
[25]); SQRADDAC(a
[10], a
[24]); SQRADDAC(a
[11], a
[23]); SQRADDAC(a
[12], a
[22]); SQRADDAC(a
[13], a
[21]); SQRADDAC(a
[14], a
[20]); SQRADDAC(a
[15], a
[19]); SQRADDAC(a
[16], a
[18]); SQRADDDB
; SQRADD(a
[17], a
[17]);
1154 SQRADDSC(a
[4], a
[31]); SQRADDAC(a
[5], a
[30]); SQRADDAC(a
[6], a
[29]); SQRADDAC(a
[7], a
[28]); SQRADDAC(a
[8], a
[27]); SQRADDAC(a
[9], a
[26]); SQRADDAC(a
[10], a
[25]); SQRADDAC(a
[11], a
[24]); SQRADDAC(a
[12], a
[23]); SQRADDAC(a
[13], a
[22]); SQRADDAC(a
[14], a
[21]); SQRADDAC(a
[15], a
[20]); SQRADDAC(a
[16], a
[19]); SQRADDAC(a
[17], a
[18]); SQRADDDB
;
1159 SQRADDSC(a
[5], a
[31]); SQRADDAC(a
[6], a
[30]); SQRADDAC(a
[7], a
[29]); SQRADDAC(a
[8], a
[28]); SQRADDAC(a
[9], a
[27]); SQRADDAC(a
[10], a
[26]); SQRADDAC(a
[11], a
[25]); SQRADDAC(a
[12], a
[24]); SQRADDAC(a
[13], a
[23]); SQRADDAC(a
[14], a
[22]); SQRADDAC(a
[15], a
[21]); SQRADDAC(a
[16], a
[20]); SQRADDAC(a
[17], a
[19]); SQRADDDB
; SQRADD(a
[18], a
[18]);
1164 SQRADDSC(a
[6], a
[31]); SQRADDAC(a
[7], a
[30]); SQRADDAC(a
[8], a
[29]); SQRADDAC(a
[9], a
[28]); SQRADDAC(a
[10], a
[27]); SQRADDAC(a
[11], a
[26]); SQRADDAC(a
[12], a
[25]); SQRADDAC(a
[13], a
[24]); SQRADDAC(a
[14], a
[23]); SQRADDAC(a
[15], a
[22]); SQRADDAC(a
[16], a
[21]); SQRADDAC(a
[17], a
[20]); SQRADDAC(a
[18], a
[19]); SQRADDDB
;
1169 SQRADDSC(a
[7], a
[31]); SQRADDAC(a
[8], a
[30]); SQRADDAC(a
[9], a
[29]); SQRADDAC(a
[10], a
[28]); SQRADDAC(a
[11], a
[27]); SQRADDAC(a
[12], a
[26]); SQRADDAC(a
[13], a
[25]); SQRADDAC(a
[14], a
[24]); SQRADDAC(a
[15], a
[23]); SQRADDAC(a
[16], a
[22]); SQRADDAC(a
[17], a
[21]); SQRADDAC(a
[18], a
[20]); SQRADDDB
; SQRADD(a
[19], a
[19]);
1174 SQRADDSC(a
[8], a
[31]); SQRADDAC(a
[9], a
[30]); SQRADDAC(a
[10], a
[29]); SQRADDAC(a
[11], a
[28]); SQRADDAC(a
[12], a
[27]); SQRADDAC(a
[13], a
[26]); SQRADDAC(a
[14], a
[25]); SQRADDAC(a
[15], a
[24]); SQRADDAC(a
[16], a
[23]); SQRADDAC(a
[17], a
[22]); SQRADDAC(a
[18], a
[21]); SQRADDAC(a
[19], a
[20]); SQRADDDB
;
1179 SQRADDSC(a
[9], a
[31]); SQRADDAC(a
[10], a
[30]); SQRADDAC(a
[11], a
[29]); SQRADDAC(a
[12], a
[28]); SQRADDAC(a
[13], a
[27]); SQRADDAC(a
[14], a
[26]); SQRADDAC(a
[15], a
[25]); SQRADDAC(a
[16], a
[24]); SQRADDAC(a
[17], a
[23]); SQRADDAC(a
[18], a
[22]); SQRADDAC(a
[19], a
[21]); SQRADDDB
; SQRADD(a
[20], a
[20]);
1184 SQRADDSC(a
[10], a
[31]); SQRADDAC(a
[11], a
[30]); SQRADDAC(a
[12], a
[29]); SQRADDAC(a
[13], a
[28]); SQRADDAC(a
[14], a
[27]); SQRADDAC(a
[15], a
[26]); SQRADDAC(a
[16], a
[25]); SQRADDAC(a
[17], a
[24]); SQRADDAC(a
[18], a
[23]); SQRADDAC(a
[19], a
[22]); SQRADDAC(a
[20], a
[21]); SQRADDDB
;
1189 SQRADDSC(a
[11], a
[31]); SQRADDAC(a
[12], a
[30]); SQRADDAC(a
[13], a
[29]); SQRADDAC(a
[14], a
[28]); SQRADDAC(a
[15], a
[27]); SQRADDAC(a
[16], a
[26]); SQRADDAC(a
[17], a
[25]); SQRADDAC(a
[18], a
[24]); SQRADDAC(a
[19], a
[23]); SQRADDAC(a
[20], a
[22]); SQRADDDB
; SQRADD(a
[21], a
[21]);
1194 SQRADDSC(a
[12], a
[31]); SQRADDAC(a
[13], a
[30]); SQRADDAC(a
[14], a
[29]); SQRADDAC(a
[15], a
[28]); SQRADDAC(a
[16], a
[27]); SQRADDAC(a
[17], a
[26]); SQRADDAC(a
[18], a
[25]); SQRADDAC(a
[19], a
[24]); SQRADDAC(a
[20], a
[23]); SQRADDAC(a
[21], a
[22]); SQRADDDB
;
1199 SQRADDSC(a
[13], a
[31]); SQRADDAC(a
[14], a
[30]); SQRADDAC(a
[15], a
[29]); SQRADDAC(a
[16], a
[28]); SQRADDAC(a
[17], a
[27]); SQRADDAC(a
[18], a
[26]); SQRADDAC(a
[19], a
[25]); SQRADDAC(a
[20], a
[24]); SQRADDAC(a
[21], a
[23]); SQRADDDB
; SQRADD(a
[22], a
[22]);
1204 SQRADDSC(a
[14], a
[31]); SQRADDAC(a
[15], a
[30]); SQRADDAC(a
[16], a
[29]); SQRADDAC(a
[17], a
[28]); SQRADDAC(a
[18], a
[27]); SQRADDAC(a
[19], a
[26]); SQRADDAC(a
[20], a
[25]); SQRADDAC(a
[21], a
[24]); SQRADDAC(a
[22], a
[23]); SQRADDDB
;
1209 SQRADDSC(a
[15], a
[31]); SQRADDAC(a
[16], a
[30]); SQRADDAC(a
[17], a
[29]); SQRADDAC(a
[18], a
[28]); SQRADDAC(a
[19], a
[27]); SQRADDAC(a
[20], a
[26]); SQRADDAC(a
[21], a
[25]); SQRADDAC(a
[22], a
[24]); SQRADDDB
; SQRADD(a
[23], a
[23]);
1214 SQRADDSC(a
[16], a
[31]); SQRADDAC(a
[17], a
[30]); SQRADDAC(a
[18], a
[29]); SQRADDAC(a
[19], a
[28]); SQRADDAC(a
[20], a
[27]); SQRADDAC(a
[21], a
[26]); SQRADDAC(a
[22], a
[25]); SQRADDAC(a
[23], a
[24]); SQRADDDB
;
1219 SQRADDSC(a
[17], a
[31]); SQRADDAC(a
[18], a
[30]); SQRADDAC(a
[19], a
[29]); SQRADDAC(a
[20], a
[28]); SQRADDAC(a
[21], a
[27]); SQRADDAC(a
[22], a
[26]); SQRADDAC(a
[23], a
[25]); SQRADDDB
; SQRADD(a
[24], a
[24]);
1224 SQRADDSC(a
[18], a
[31]); SQRADDAC(a
[19], a
[30]); SQRADDAC(a
[20], a
[29]); SQRADDAC(a
[21], a
[28]); SQRADDAC(a
[22], a
[27]); SQRADDAC(a
[23], a
[26]); SQRADDAC(a
[24], a
[25]); SQRADDDB
;
1229 SQRADDSC(a
[19], a
[31]); SQRADDAC(a
[20], a
[30]); SQRADDAC(a
[21], a
[29]); SQRADDAC(a
[22], a
[28]); SQRADDAC(a
[23], a
[27]); SQRADDAC(a
[24], a
[26]); SQRADDDB
; SQRADD(a
[25], a
[25]);
1234 SQRADDSC(a
[20], a
[31]); SQRADDAC(a
[21], a
[30]); SQRADDAC(a
[22], a
[29]); SQRADDAC(a
[23], a
[28]); SQRADDAC(a
[24], a
[27]); SQRADDAC(a
[25], a
[26]); SQRADDDB
;
1239 SQRADDSC(a
[21], a
[31]); SQRADDAC(a
[22], a
[30]); SQRADDAC(a
[23], a
[29]); SQRADDAC(a
[24], a
[28]); SQRADDAC(a
[25], a
[27]); SQRADDDB
; SQRADD(a
[26], a
[26]);
1244 SQRADDSC(a
[22], a
[31]); SQRADDAC(a
[23], a
[30]); SQRADDAC(a
[24], a
[29]); SQRADDAC(a
[25], a
[28]); SQRADDAC(a
[26], a
[27]); SQRADDDB
;
1249 SQRADDSC(a
[23], a
[31]); SQRADDAC(a
[24], a
[30]); SQRADDAC(a
[25], a
[29]); SQRADDAC(a
[26], a
[28]); SQRADDDB
; SQRADD(a
[27], a
[27]);
1254 SQRADDSC(a
[24], a
[31]); SQRADDAC(a
[25], a
[30]); SQRADDAC(a
[26], a
[29]); SQRADDAC(a
[27], a
[28]); SQRADDDB
;
1259 SQRADDSC(a
[25], a
[31]); SQRADDAC(a
[26], a
[30]); SQRADDAC(a
[27], a
[29]); SQRADDDB
; SQRADD(a
[28], a
[28]);
1264 SQRADDSC(a
[26], a
[31]); SQRADDAC(a
[27], a
[30]); SQRADDAC(a
[28], a
[29]); SQRADDDB
;
1269 SQRADD2(a
[27], a
[31]); SQRADD2(a
[28], a
[30]); SQRADD(a
[29], a
[29]);
1274 SQRADD2(a
[28], a
[31]); SQRADD2(a
[29], a
[30]);
1279 SQRADD2(a
[29], a
[31]); SQRADD(a
[30], a
[30]);
1284 SQRADD2(a
[30], a
[31]);
1289 SQRADD(a
[31], a
[31]);
1291 COMBA_STORE2(b
[63]);
1296 memcpy(B
->dp
, b
, 64 * sizeof(mp_digit
));