1 /* fp_mont_small.i
2 *
3 * Copyright (C) 2006-2021 wolfSSL Inc.
4 *
5 * This file is part of wolfSSL.
6 *
7 * wolfSSL is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * wolfSSL is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
20 */
21
22
23
24 #ifdef TFM_SMALL_MONT_SET
25 /* computes x/R == x (mod N) via Montgomery Reduction */
fp_montgomery_reduce_small(fp_int * a,fp_int * m,fp_digit mp)26 int fp_montgomery_reduce_small(fp_int *a, fp_int *m, fp_digit mp)
27 {
28 #ifndef WOLFSSL_SMALL_STACK
29 fp_digit c[FP_SIZE];
30 #else
31 fp_digit *c;
32 #endif
33 fp_digit *_c, *tmpm, mu, cy;
34 int oldused, x, y, pa;
35
36 #ifdef WOLFSSL_SMALL_STACK
37 /* only allocate space for what's needed for window plus res */
38 c = (fp_digit*)XMALLOC(sizeof(fp_digit)*FP_SIZE, NULL, DYNAMIC_TYPE_TMP_BUFFER);
39 if (c == NULL) {
40 return FP_MEM;
41 }
42 #endif
43
44 /* now zero the buff */
45 XMEMSET(c, 0, sizeof(fp_digit)*(FP_SIZE));
46
47 pa = m->used;
48
49 /* copy the input */
50 oldused = a->used;
51 for (x = 0; x < oldused; x++) {
52 c[x] = a->dp[x];
53 }
54
55 MONT_START;
56
57 switch (pa) {
58 case 1:
59 x = 0; cy = 0;
60 LOOP_START;
61 _c = c + 0;
62 tmpm = m->dp;
63 #ifdef INNERMUL8
64 INNERMUL; ++_c;
65 #else
66 INNERMUL; ++_c;
67 #endif
68 LOOP_END;
69 while (cy) {
70 PROPCARRY;
71 ++_c;
72 }
73 break;
74 case 2:
75 x = 0; cy = 0;
76 LOOP_START;
77 _c = c + 0;
78 tmpm = m->dp;
79 #ifdef INNERMUL8
80 INNERMUL; ++_c;
81 INNERMUL; ++_c;
82 #else
83 INNERMUL; ++_c;
84 INNERMUL; ++_c;
85 #endif
86 LOOP_END;
87 while (cy) {
88 PROPCARRY;
89 ++_c;
90 }
91 x = 1; cy = 0;
92 LOOP_START;
93 _c = c + 1;
94 tmpm = m->dp;
95 #ifdef INNERMUL8
96 INNERMUL; ++_c;
97 INNERMUL; ++_c;
98 #else
99 INNERMUL; ++_c;
100 INNERMUL; ++_c;
101 #endif
102 LOOP_END;
103 while (cy) {
104 PROPCARRY;
105 ++_c;
106 }
107 break;
108 case 3:
109 x = 0; cy = 0;
110 LOOP_START;
111 _c = c + 0;
112 tmpm = m->dp;
113 #ifdef INNERMUL8
114 INNERMUL; ++_c;
115 INNERMUL; ++_c;
116 INNERMUL; ++_c;
117 #else
118 INNERMUL; ++_c;
119 INNERMUL; ++_c;
120 INNERMUL; ++_c;
121 #endif
122 LOOP_END;
123 while (cy) {
124 PROPCARRY;
125 ++_c;
126 }
127 x = 1; cy = 0;
128 LOOP_START;
129 _c = c + 1;
130 tmpm = m->dp;
131 #ifdef INNERMUL8
132 INNERMUL; ++_c;
133 INNERMUL; ++_c;
134 INNERMUL; ++_c;
135 #else
136 INNERMUL; ++_c;
137 INNERMUL; ++_c;
138 INNERMUL; ++_c;
139 #endif
140 LOOP_END;
141 while (cy) {
142 PROPCARRY;
143 ++_c;
144 }
145 x = 2; cy = 0;
146 LOOP_START;
147 _c = c + 2;
148 tmpm = m->dp;
149 #ifdef INNERMUL8
150 INNERMUL; ++_c;
151 INNERMUL; ++_c;
152 INNERMUL; ++_c;
153 #else
154 INNERMUL; ++_c;
155 INNERMUL; ++_c;
156 INNERMUL; ++_c;
157 #endif
158 LOOP_END;
159 while (cy) {
160 PROPCARRY;
161 ++_c;
162 }
163 break;
164 case 4:
165 x = 0; cy = 0;
166 LOOP_START;
167 _c = c + 0;
168 tmpm = m->dp;
169 #ifdef INNERMUL8
170 INNERMUL; ++_c;
171 INNERMUL; ++_c;
172 INNERMUL; ++_c;
173 INNERMUL; ++_c;
174 #else
175 INNERMUL; ++_c;
176 INNERMUL; ++_c;
177 INNERMUL; ++_c;
178 INNERMUL; ++_c;
179 #endif
180 LOOP_END;
181 while (cy) {
182 PROPCARRY;
183 ++_c;
184 }
185 x = 1; cy = 0;
186 LOOP_START;
187 _c = c + 1;
188 tmpm = m->dp;
189 #ifdef INNERMUL8
190 INNERMUL; ++_c;
191 INNERMUL; ++_c;
192 INNERMUL; ++_c;
193 INNERMUL; ++_c;
194 #else
195 INNERMUL; ++_c;
196 INNERMUL; ++_c;
197 INNERMUL; ++_c;
198 INNERMUL; ++_c;
199 #endif
200 LOOP_END;
201 while (cy) {
202 PROPCARRY;
203 ++_c;
204 }
205 x = 2; cy = 0;
206 LOOP_START;
207 _c = c + 2;
208 tmpm = m->dp;
209 #ifdef INNERMUL8
210 INNERMUL; ++_c;
211 INNERMUL; ++_c;
212 INNERMUL; ++_c;
213 INNERMUL; ++_c;
214 #else
215 INNERMUL; ++_c;
216 INNERMUL; ++_c;
217 INNERMUL; ++_c;
218 INNERMUL; ++_c;
219 #endif
220 LOOP_END;
221 while (cy) {
222 PROPCARRY;
223 ++_c;
224 }
225 x = 3; cy = 0;
226 LOOP_START;
227 _c = c + 3;
228 tmpm = m->dp;
229 #ifdef INNERMUL8
230 INNERMUL; ++_c;
231 INNERMUL; ++_c;
232 INNERMUL; ++_c;
233 INNERMUL; ++_c;
234 #else
235 INNERMUL; ++_c;
236 INNERMUL; ++_c;
237 INNERMUL; ++_c;
238 INNERMUL; ++_c;
239 #endif
240 LOOP_END;
241 while (cy) {
242 PROPCARRY;
243 ++_c;
244 }
245 break;
246 case 5:
247 x = 0; cy = 0;
248 LOOP_START;
249 _c = c + 0;
250 tmpm = m->dp;
251 #ifdef INNERMUL8
252 INNERMUL; ++_c;
253 INNERMUL; ++_c;
254 INNERMUL; ++_c;
255 INNERMUL; ++_c;
256 INNERMUL; ++_c;
257 #else
258 INNERMUL; ++_c;
259 INNERMUL; ++_c;
260 INNERMUL; ++_c;
261 INNERMUL; ++_c;
262 INNERMUL; ++_c;
263 #endif
264 LOOP_END;
265 while (cy) {
266 PROPCARRY;
267 ++_c;
268 }
269 x = 1; cy = 0;
270 LOOP_START;
271 _c = c + 1;
272 tmpm = m->dp;
273 #ifdef INNERMUL8
274 INNERMUL; ++_c;
275 INNERMUL; ++_c;
276 INNERMUL; ++_c;
277 INNERMUL; ++_c;
278 INNERMUL; ++_c;
279 #else
280 INNERMUL; ++_c;
281 INNERMUL; ++_c;
282 INNERMUL; ++_c;
283 INNERMUL; ++_c;
284 INNERMUL; ++_c;
285 #endif
286 LOOP_END;
287 while (cy) {
288 PROPCARRY;
289 ++_c;
290 }
291 x = 2; cy = 0;
292 LOOP_START;
293 _c = c + 2;
294 tmpm = m->dp;
295 #ifdef INNERMUL8
296 INNERMUL; ++_c;
297 INNERMUL; ++_c;
298 INNERMUL; ++_c;
299 INNERMUL; ++_c;
300 INNERMUL; ++_c;
301 #else
302 INNERMUL; ++_c;
303 INNERMUL; ++_c;
304 INNERMUL; ++_c;
305 INNERMUL; ++_c;
306 INNERMUL; ++_c;
307 #endif
308 LOOP_END;
309 while (cy) {
310 PROPCARRY;
311 ++_c;
312 }
313 x = 3; cy = 0;
314 LOOP_START;
315 _c = c + 3;
316 tmpm = m->dp;
317 #ifdef INNERMUL8
318 INNERMUL; ++_c;
319 INNERMUL; ++_c;
320 INNERMUL; ++_c;
321 INNERMUL; ++_c;
322 INNERMUL; ++_c;
323 #else
324 INNERMUL; ++_c;
325 INNERMUL; ++_c;
326 INNERMUL; ++_c;
327 INNERMUL; ++_c;
328 INNERMUL; ++_c;
329 #endif
330 LOOP_END;
331 while (cy) {
332 PROPCARRY;
333 ++_c;
334 }
335 x = 4; cy = 0;
336 LOOP_START;
337 _c = c + 4;
338 tmpm = m->dp;
339 #ifdef INNERMUL8
340 INNERMUL; ++_c;
341 INNERMUL; ++_c;
342 INNERMUL; ++_c;
343 INNERMUL; ++_c;
344 INNERMUL; ++_c;
345 #else
346 INNERMUL; ++_c;
347 INNERMUL; ++_c;
348 INNERMUL; ++_c;
349 INNERMUL; ++_c;
350 INNERMUL; ++_c;
351 #endif
352 LOOP_END;
353 while (cy) {
354 PROPCARRY;
355 ++_c;
356 }
357 break;
358 case 6:
359 x = 0; cy = 0;
360 LOOP_START;
361 _c = c + 0;
362 tmpm = m->dp;
363 #ifdef INNERMUL8
364 INNERMUL; ++_c;
365 INNERMUL; ++_c;
366 INNERMUL; ++_c;
367 INNERMUL; ++_c;
368 INNERMUL; ++_c;
369 INNERMUL; ++_c;
370 #else
371 INNERMUL; ++_c;
372 INNERMUL; ++_c;
373 INNERMUL; ++_c;
374 INNERMUL; ++_c;
375 INNERMUL; ++_c;
376 INNERMUL; ++_c;
377 #endif
378 LOOP_END;
379 while (cy) {
380 PROPCARRY;
381 ++_c;
382 }
383 x = 1; cy = 0;
384 LOOP_START;
385 _c = c + 1;
386 tmpm = m->dp;
387 #ifdef INNERMUL8
388 INNERMUL; ++_c;
389 INNERMUL; ++_c;
390 INNERMUL; ++_c;
391 INNERMUL; ++_c;
392 INNERMUL; ++_c;
393 INNERMUL; ++_c;
394 #else
395 INNERMUL; ++_c;
396 INNERMUL; ++_c;
397 INNERMUL; ++_c;
398 INNERMUL; ++_c;
399 INNERMUL; ++_c;
400 INNERMUL; ++_c;
401 #endif
402 LOOP_END;
403 while (cy) {
404 PROPCARRY;
405 ++_c;
406 }
407 x = 2; cy = 0;
408 LOOP_START;
409 _c = c + 2;
410 tmpm = m->dp;
411 #ifdef INNERMUL8
412 INNERMUL; ++_c;
413 INNERMUL; ++_c;
414 INNERMUL; ++_c;
415 INNERMUL; ++_c;
416 INNERMUL; ++_c;
417 INNERMUL; ++_c;
418 #else
419 INNERMUL; ++_c;
420 INNERMUL; ++_c;
421 INNERMUL; ++_c;
422 INNERMUL; ++_c;
423 INNERMUL; ++_c;
424 INNERMUL; ++_c;
425 #endif
426 LOOP_END;
427 while (cy) {
428 PROPCARRY;
429 ++_c;
430 }
431 x = 3; cy = 0;
432 LOOP_START;
433 _c = c + 3;
434 tmpm = m->dp;
435 #ifdef INNERMUL8
436 INNERMUL; ++_c;
437 INNERMUL; ++_c;
438 INNERMUL; ++_c;
439 INNERMUL; ++_c;
440 INNERMUL; ++_c;
441 INNERMUL; ++_c;
442 #else
443 INNERMUL; ++_c;
444 INNERMUL; ++_c;
445 INNERMUL; ++_c;
446 INNERMUL; ++_c;
447 INNERMUL; ++_c;
448 INNERMUL; ++_c;
449 #endif
450 LOOP_END;
451 while (cy) {
452 PROPCARRY;
453 ++_c;
454 }
455 x = 4; cy = 0;
456 LOOP_START;
457 _c = c + 4;
458 tmpm = m->dp;
459 #ifdef INNERMUL8
460 INNERMUL; ++_c;
461 INNERMUL; ++_c;
462 INNERMUL; ++_c;
463 INNERMUL; ++_c;
464 INNERMUL; ++_c;
465 INNERMUL; ++_c;
466 #else
467 INNERMUL; ++_c;
468 INNERMUL; ++_c;
469 INNERMUL; ++_c;
470 INNERMUL; ++_c;
471 INNERMUL; ++_c;
472 INNERMUL; ++_c;
473 #endif
474 LOOP_END;
475 while (cy) {
476 PROPCARRY;
477 ++_c;
478 }
479 x = 5; cy = 0;
480 LOOP_START;
481 _c = c + 5;
482 tmpm = m->dp;
483 #ifdef INNERMUL8
484 INNERMUL; ++_c;
485 INNERMUL; ++_c;
486 INNERMUL; ++_c;
487 INNERMUL; ++_c;
488 INNERMUL; ++_c;
489 INNERMUL; ++_c;
490 #else
491 INNERMUL; ++_c;
492 INNERMUL; ++_c;
493 INNERMUL; ++_c;
494 INNERMUL; ++_c;
495 INNERMUL; ++_c;
496 INNERMUL; ++_c;
497 #endif
498 LOOP_END;
499 while (cy) {
500 PROPCARRY;
501 ++_c;
502 }
503 break;
504 case 7:
505 x = 0; cy = 0;
506 LOOP_START;
507 _c = c + 0;
508 tmpm = m->dp;
509 #ifdef INNERMUL8
510 INNERMUL; ++_c;
511 INNERMUL; ++_c;
512 INNERMUL; ++_c;
513 INNERMUL; ++_c;
514 INNERMUL; ++_c;
515 INNERMUL; ++_c;
516 INNERMUL; ++_c;
517 #else
518 INNERMUL; ++_c;
519 INNERMUL; ++_c;
520 INNERMUL; ++_c;
521 INNERMUL; ++_c;
522 INNERMUL; ++_c;
523 INNERMUL; ++_c;
524 INNERMUL; ++_c;
525 #endif
526 LOOP_END;
527 while (cy) {
528 PROPCARRY;
529 ++_c;
530 }
531 x = 1; cy = 0;
532 LOOP_START;
533 _c = c + 1;
534 tmpm = m->dp;
535 #ifdef INNERMUL8
536 INNERMUL; ++_c;
537 INNERMUL; ++_c;
538 INNERMUL; ++_c;
539 INNERMUL; ++_c;
540 INNERMUL; ++_c;
541 INNERMUL; ++_c;
542 INNERMUL; ++_c;
543 #else
544 INNERMUL; ++_c;
545 INNERMUL; ++_c;
546 INNERMUL; ++_c;
547 INNERMUL; ++_c;
548 INNERMUL; ++_c;
549 INNERMUL; ++_c;
550 INNERMUL; ++_c;
551 #endif
552 LOOP_END;
553 while (cy) {
554 PROPCARRY;
555 ++_c;
556 }
557 x = 2; cy = 0;
558 LOOP_START;
559 _c = c + 2;
560 tmpm = m->dp;
561 #ifdef INNERMUL8
562 INNERMUL; ++_c;
563 INNERMUL; ++_c;
564 INNERMUL; ++_c;
565 INNERMUL; ++_c;
566 INNERMUL; ++_c;
567 INNERMUL; ++_c;
568 INNERMUL; ++_c;
569 #else
570 INNERMUL; ++_c;
571 INNERMUL; ++_c;
572 INNERMUL; ++_c;
573 INNERMUL; ++_c;
574 INNERMUL; ++_c;
575 INNERMUL; ++_c;
576 INNERMUL; ++_c;
577 #endif
578 LOOP_END;
579 while (cy) {
580 PROPCARRY;
581 ++_c;
582 }
583 x = 3; cy = 0;
584 LOOP_START;
585 _c = c + 3;
586 tmpm = m->dp;
587 #ifdef INNERMUL8
588 INNERMUL; ++_c;
589 INNERMUL; ++_c;
590 INNERMUL; ++_c;
591 INNERMUL; ++_c;
592 INNERMUL; ++_c;
593 INNERMUL; ++_c;
594 INNERMUL; ++_c;
595 #else
596 INNERMUL; ++_c;
597 INNERMUL; ++_c;
598 INNERMUL; ++_c;
599 INNERMUL; ++_c;
600 INNERMUL; ++_c;
601 INNERMUL; ++_c;
602 INNERMUL; ++_c;
603 #endif
604 LOOP_END;
605 while (cy) {
606 PROPCARRY;
607 ++_c;
608 }
609 x = 4; cy = 0;
610 LOOP_START;
611 _c = c + 4;
612 tmpm = m->dp;
613 #ifdef INNERMUL8
614 INNERMUL; ++_c;
615 INNERMUL; ++_c;
616 INNERMUL; ++_c;
617 INNERMUL; ++_c;
618 INNERMUL; ++_c;
619 INNERMUL; ++_c;
620 INNERMUL; ++_c;
621 #else
622 INNERMUL; ++_c;
623 INNERMUL; ++_c;
624 INNERMUL; ++_c;
625 INNERMUL; ++_c;
626 INNERMUL; ++_c;
627 INNERMUL; ++_c;
628 INNERMUL; ++_c;
629 #endif
630 LOOP_END;
631 while (cy) {
632 PROPCARRY;
633 ++_c;
634 }
635 x = 5; cy = 0;
636 LOOP_START;
637 _c = c + 5;
638 tmpm = m->dp;
639 #ifdef INNERMUL8
640 INNERMUL; ++_c;
641 INNERMUL; ++_c;
642 INNERMUL; ++_c;
643 INNERMUL; ++_c;
644 INNERMUL; ++_c;
645 INNERMUL; ++_c;
646 INNERMUL; ++_c;
647 #else
648 INNERMUL; ++_c;
649 INNERMUL; ++_c;
650 INNERMUL; ++_c;
651 INNERMUL; ++_c;
652 INNERMUL; ++_c;
653 INNERMUL; ++_c;
654 INNERMUL; ++_c;
655 #endif
656 LOOP_END;
657 while (cy) {
658 PROPCARRY;
659 ++_c;
660 }
661 x = 6; cy = 0;
662 LOOP_START;
663 _c = c + 6;
664 tmpm = m->dp;
665 #ifdef INNERMUL8
666 INNERMUL; ++_c;
667 INNERMUL; ++_c;
668 INNERMUL; ++_c;
669 INNERMUL; ++_c;
670 INNERMUL; ++_c;
671 INNERMUL; ++_c;
672 INNERMUL; ++_c;
673 #else
674 INNERMUL; ++_c;
675 INNERMUL; ++_c;
676 INNERMUL; ++_c;
677 INNERMUL; ++_c;
678 INNERMUL; ++_c;
679 INNERMUL; ++_c;
680 INNERMUL; ++_c;
681 #endif
682 LOOP_END;
683 while (cy) {
684 PROPCARRY;
685 ++_c;
686 }
687 break;
688 case 8:
689 x = 0; cy = 0;
690 LOOP_START;
691 _c = c + 0;
692 tmpm = m->dp;
693 #ifdef INNERMUL8
694 INNERMUL8; _c += 8; tmpm += 8;
695 #else
696 INNERMUL; ++_c;
697 INNERMUL; ++_c;
698 INNERMUL; ++_c;
699 INNERMUL; ++_c;
700 INNERMUL; ++_c;
701 INNERMUL; ++_c;
702 INNERMUL; ++_c;
703 INNERMUL; ++_c;
704 #endif
705 LOOP_END;
706 while (cy) {
707 PROPCARRY;
708 ++_c;
709 }
710 x = 1; cy = 0;
711 LOOP_START;
712 _c = c + 1;
713 tmpm = m->dp;
714 #ifdef INNERMUL8
715 INNERMUL8; _c += 8; tmpm += 8;
716 #else
717 INNERMUL; ++_c;
718 INNERMUL; ++_c;
719 INNERMUL; ++_c;
720 INNERMUL; ++_c;
721 INNERMUL; ++_c;
722 INNERMUL; ++_c;
723 INNERMUL; ++_c;
724 INNERMUL; ++_c;
725 #endif
726 LOOP_END;
727 while (cy) {
728 PROPCARRY;
729 ++_c;
730 }
731 x = 2; cy = 0;
732 LOOP_START;
733 _c = c + 2;
734 tmpm = m->dp;
735 #ifdef INNERMUL8
736 INNERMUL8; _c += 8; tmpm += 8;
737 #else
738 INNERMUL; ++_c;
739 INNERMUL; ++_c;
740 INNERMUL; ++_c;
741 INNERMUL; ++_c;
742 INNERMUL; ++_c;
743 INNERMUL; ++_c;
744 INNERMUL; ++_c;
745 INNERMUL; ++_c;
746 #endif
747 LOOP_END;
748 while (cy) {
749 PROPCARRY;
750 ++_c;
751 }
752 x = 3; cy = 0;
753 LOOP_START;
754 _c = c + 3;
755 tmpm = m->dp;
756 #ifdef INNERMUL8
757 INNERMUL8; _c += 8; tmpm += 8;
758 #else
759 INNERMUL; ++_c;
760 INNERMUL; ++_c;
761 INNERMUL; ++_c;
762 INNERMUL; ++_c;
763 INNERMUL; ++_c;
764 INNERMUL; ++_c;
765 INNERMUL; ++_c;
766 INNERMUL; ++_c;
767 #endif
768 LOOP_END;
769 while (cy) {
770 PROPCARRY;
771 ++_c;
772 }
773 x = 4; cy = 0;
774 LOOP_START;
775 _c = c + 4;
776 tmpm = m->dp;
777 #ifdef INNERMUL8
778 INNERMUL8; _c += 8; tmpm += 8;
779 #else
780 INNERMUL; ++_c;
781 INNERMUL; ++_c;
782 INNERMUL; ++_c;
783 INNERMUL; ++_c;
784 INNERMUL; ++_c;
785 INNERMUL; ++_c;
786 INNERMUL; ++_c;
787 INNERMUL; ++_c;
788 #endif
789 LOOP_END;
790 while (cy) {
791 PROPCARRY;
792 ++_c;
793 }
794 x = 5; cy = 0;
795 LOOP_START;
796 _c = c + 5;
797 tmpm = m->dp;
798 #ifdef INNERMUL8
799 INNERMUL8; _c += 8; tmpm += 8;
800 #else
801 INNERMUL; ++_c;
802 INNERMUL; ++_c;
803 INNERMUL; ++_c;
804 INNERMUL; ++_c;
805 INNERMUL; ++_c;
806 INNERMUL; ++_c;
807 INNERMUL; ++_c;
808 INNERMUL; ++_c;
809 #endif
810 LOOP_END;
811 while (cy) {
812 PROPCARRY;
813 ++_c;
814 }
815 x = 6; cy = 0;
816 LOOP_START;
817 _c = c + 6;
818 tmpm = m->dp;
819 #ifdef INNERMUL8
820 INNERMUL8; _c += 8; tmpm += 8;
821 #else
822 INNERMUL; ++_c;
823 INNERMUL; ++_c;
824 INNERMUL; ++_c;
825 INNERMUL; ++_c;
826 INNERMUL; ++_c;
827 INNERMUL; ++_c;
828 INNERMUL; ++_c;
829 INNERMUL; ++_c;
830 #endif
831 LOOP_END;
832 while (cy) {
833 PROPCARRY;
834 ++_c;
835 }
836 x = 7; cy = 0;
837 LOOP_START;
838 _c = c + 7;
839 tmpm = m->dp;
840 #ifdef INNERMUL8
841 INNERMUL8; _c += 8; tmpm += 8;
842 #else
843 INNERMUL; ++_c;
844 INNERMUL; ++_c;
845 INNERMUL; ++_c;
846 INNERMUL; ++_c;
847 INNERMUL; ++_c;
848 INNERMUL; ++_c;
849 INNERMUL; ++_c;
850 INNERMUL; ++_c;
851 #endif
852 LOOP_END;
853 while (cy) {
854 PROPCARRY;
855 ++_c;
856 }
857 break;
858 case 9:
859 x = 0; cy = 0;
860 LOOP_START;
861 _c = c + 0;
862 tmpm = m->dp;
863 #ifdef INNERMUL8
864 INNERMUL8; _c += 8; tmpm += 8;
865 INNERMUL; ++_c;
866 #else
867 INNERMUL; ++_c;
868 INNERMUL; ++_c;
869 INNERMUL; ++_c;
870 INNERMUL; ++_c;
871 INNERMUL; ++_c;
872 INNERMUL; ++_c;
873 INNERMUL; ++_c;
874 INNERMUL; ++_c;
875 INNERMUL; ++_c;
876 #endif
877 LOOP_END;
878 while (cy) {
879 PROPCARRY;
880 ++_c;
881 }
882 x = 1; cy = 0;
883 LOOP_START;
884 _c = c + 1;
885 tmpm = m->dp;
886 #ifdef INNERMUL8
887 INNERMUL8; _c += 8; tmpm += 8;
888 INNERMUL; ++_c;
889 #else
890 INNERMUL; ++_c;
891 INNERMUL; ++_c;
892 INNERMUL; ++_c;
893 INNERMUL; ++_c;
894 INNERMUL; ++_c;
895 INNERMUL; ++_c;
896 INNERMUL; ++_c;
897 INNERMUL; ++_c;
898 INNERMUL; ++_c;
899 #endif
900 LOOP_END;
901 while (cy) {
902 PROPCARRY;
903 ++_c;
904 }
905 x = 2; cy = 0;
906 LOOP_START;
907 _c = c + 2;
908 tmpm = m->dp;
909 #ifdef INNERMUL8
910 INNERMUL8; _c += 8; tmpm += 8;
911 INNERMUL; ++_c;
912 #else
913 INNERMUL; ++_c;
914 INNERMUL; ++_c;
915 INNERMUL; ++_c;
916 INNERMUL; ++_c;
917 INNERMUL; ++_c;
918 INNERMUL; ++_c;
919 INNERMUL; ++_c;
920 INNERMUL; ++_c;
921 INNERMUL; ++_c;
922 #endif
923 LOOP_END;
924 while (cy) {
925 PROPCARRY;
926 ++_c;
927 }
928 x = 3; cy = 0;
929 LOOP_START;
930 _c = c + 3;
931 tmpm = m->dp;
932 #ifdef INNERMUL8
933 INNERMUL8; _c += 8; tmpm += 8;
934 INNERMUL; ++_c;
935 #else
936 INNERMUL; ++_c;
937 INNERMUL; ++_c;
938 INNERMUL; ++_c;
939 INNERMUL; ++_c;
940 INNERMUL; ++_c;
941 INNERMUL; ++_c;
942 INNERMUL; ++_c;
943 INNERMUL; ++_c;
944 INNERMUL; ++_c;
945 #endif
946 LOOP_END;
947 while (cy) {
948 PROPCARRY;
949 ++_c;
950 }
951 x = 4; cy = 0;
952 LOOP_START;
953 _c = c + 4;
954 tmpm = m->dp;
955 #ifdef INNERMUL8
956 INNERMUL8; _c += 8; tmpm += 8;
957 INNERMUL; ++_c;
958 #else
959 INNERMUL; ++_c;
960 INNERMUL; ++_c;
961 INNERMUL; ++_c;
962 INNERMUL; ++_c;
963 INNERMUL; ++_c;
964 INNERMUL; ++_c;
965 INNERMUL; ++_c;
966 INNERMUL; ++_c;
967 INNERMUL; ++_c;
968 #endif
969 LOOP_END;
970 while (cy) {
971 PROPCARRY;
972 ++_c;
973 }
974 x = 5; cy = 0;
975 LOOP_START;
976 _c = c + 5;
977 tmpm = m->dp;
978 #ifdef INNERMUL8
979 INNERMUL8; _c += 8; tmpm += 8;
980 INNERMUL; ++_c;
981 #else
982 INNERMUL; ++_c;
983 INNERMUL; ++_c;
984 INNERMUL; ++_c;
985 INNERMUL; ++_c;
986 INNERMUL; ++_c;
987 INNERMUL; ++_c;
988 INNERMUL; ++_c;
989 INNERMUL; ++_c;
990 INNERMUL; ++_c;
991 #endif
992 LOOP_END;
993 while (cy) {
994 PROPCARRY;
995 ++_c;
996 }
997 x = 6; cy = 0;
998 LOOP_START;
999 _c = c + 6;
1000 tmpm = m->dp;
1001 #ifdef INNERMUL8
1002 INNERMUL8; _c += 8; tmpm += 8;
1003 INNERMUL; ++_c;
1004 #else
1005 INNERMUL; ++_c;
1006 INNERMUL; ++_c;
1007 INNERMUL; ++_c;
1008 INNERMUL; ++_c;
1009 INNERMUL; ++_c;
1010 INNERMUL; ++_c;
1011 INNERMUL; ++_c;
1012 INNERMUL; ++_c;
1013 INNERMUL; ++_c;
1014 #endif
1015 LOOP_END;
1016 while (cy) {
1017 PROPCARRY;
1018 ++_c;
1019 }
1020 x = 7; cy = 0;
1021 LOOP_START;
1022 _c = c + 7;
1023 tmpm = m->dp;
1024 #ifdef INNERMUL8
1025 INNERMUL8; _c += 8; tmpm += 8;
1026 INNERMUL; ++_c;
1027 #else
1028 INNERMUL; ++_c;
1029 INNERMUL; ++_c;
1030 INNERMUL; ++_c;
1031 INNERMUL; ++_c;
1032 INNERMUL; ++_c;
1033 INNERMUL; ++_c;
1034 INNERMUL; ++_c;
1035 INNERMUL; ++_c;
1036 INNERMUL; ++_c;
1037 #endif
1038 LOOP_END;
1039 while (cy) {
1040 PROPCARRY;
1041 ++_c;
1042 }
1043 x = 8; cy = 0;
1044 LOOP_START;
1045 _c = c + 8;
1046 tmpm = m->dp;
1047 #ifdef INNERMUL8
1048 INNERMUL8; _c += 8; tmpm += 8;
1049 INNERMUL; ++_c;
1050 #else
1051 INNERMUL; ++_c;
1052 INNERMUL; ++_c;
1053 INNERMUL; ++_c;
1054 INNERMUL; ++_c;
1055 INNERMUL; ++_c;
1056 INNERMUL; ++_c;
1057 INNERMUL; ++_c;
1058 INNERMUL; ++_c;
1059 INNERMUL; ++_c;
1060 #endif
1061 LOOP_END;
1062 while (cy) {
1063 PROPCARRY;
1064 ++_c;
1065 }
1066 break;
1067 case 10:
1068 x = 0; cy = 0;
1069 LOOP_START;
1070 _c = c + 0;
1071 tmpm = m->dp;
1072 #ifdef INNERMUL8
1073 INNERMUL8; _c += 8; tmpm += 8;
1074 INNERMUL; ++_c;
1075 INNERMUL; ++_c;
1076 #else
1077 INNERMUL; ++_c;
1078 INNERMUL; ++_c;
1079 INNERMUL; ++_c;
1080 INNERMUL; ++_c;
1081 INNERMUL; ++_c;
1082 INNERMUL; ++_c;
1083 INNERMUL; ++_c;
1084 INNERMUL; ++_c;
1085 INNERMUL; ++_c;
1086 INNERMUL; ++_c;
1087 #endif
1088 LOOP_END;
1089 while (cy) {
1090 PROPCARRY;
1091 ++_c;
1092 }
1093 x = 1; cy = 0;
1094 LOOP_START;
1095 _c = c + 1;
1096 tmpm = m->dp;
1097 #ifdef INNERMUL8
1098 INNERMUL8; _c += 8; tmpm += 8;
1099 INNERMUL; ++_c;
1100 INNERMUL; ++_c;
1101 #else
1102 INNERMUL; ++_c;
1103 INNERMUL; ++_c;
1104 INNERMUL; ++_c;
1105 INNERMUL; ++_c;
1106 INNERMUL; ++_c;
1107 INNERMUL; ++_c;
1108 INNERMUL; ++_c;
1109 INNERMUL; ++_c;
1110 INNERMUL; ++_c;
1111 INNERMUL; ++_c;
1112 #endif
1113 LOOP_END;
1114 while (cy) {
1115 PROPCARRY;
1116 ++_c;
1117 }
1118 x = 2; cy = 0;
1119 LOOP_START;
1120 _c = c + 2;
1121 tmpm = m->dp;
1122 #ifdef INNERMUL8
1123 INNERMUL8; _c += 8; tmpm += 8;
1124 INNERMUL; ++_c;
1125 INNERMUL; ++_c;
1126 #else
1127 INNERMUL; ++_c;
1128 INNERMUL; ++_c;
1129 INNERMUL; ++_c;
1130 INNERMUL; ++_c;
1131 INNERMUL; ++_c;
1132 INNERMUL; ++_c;
1133 INNERMUL; ++_c;
1134 INNERMUL; ++_c;
1135 INNERMUL; ++_c;
1136 INNERMUL; ++_c;
1137 #endif
1138 LOOP_END;
1139 while (cy) {
1140 PROPCARRY;
1141 ++_c;
1142 }
1143 x = 3; cy = 0;
1144 LOOP_START;
1145 _c = c + 3;
1146 tmpm = m->dp;
1147 #ifdef INNERMUL8
1148 INNERMUL8; _c += 8; tmpm += 8;
1149 INNERMUL; ++_c;
1150 INNERMUL; ++_c;
1151 #else
1152 INNERMUL; ++_c;
1153 INNERMUL; ++_c;
1154 INNERMUL; ++_c;
1155 INNERMUL; ++_c;
1156 INNERMUL; ++_c;
1157 INNERMUL; ++_c;
1158 INNERMUL; ++_c;
1159 INNERMUL; ++_c;
1160 INNERMUL; ++_c;
1161 INNERMUL; ++_c;
1162 #endif
1163 LOOP_END;
1164 while (cy) {
1165 PROPCARRY;
1166 ++_c;
1167 }
1168 x = 4; cy = 0;
1169 LOOP_START;
1170 _c = c + 4;
1171 tmpm = m->dp;
1172 #ifdef INNERMUL8
1173 INNERMUL8; _c += 8; tmpm += 8;
1174 INNERMUL; ++_c;
1175 INNERMUL; ++_c;
1176 #else
1177 INNERMUL; ++_c;
1178 INNERMUL; ++_c;
1179 INNERMUL; ++_c;
1180 INNERMUL; ++_c;
1181 INNERMUL; ++_c;
1182 INNERMUL; ++_c;
1183 INNERMUL; ++_c;
1184 INNERMUL; ++_c;
1185 INNERMUL; ++_c;
1186 INNERMUL; ++_c;
1187 #endif
1188 LOOP_END;
1189 while (cy) {
1190 PROPCARRY;
1191 ++_c;
1192 }
1193 x = 5; cy = 0;
1194 LOOP_START;
1195 _c = c + 5;
1196 tmpm = m->dp;
1197 #ifdef INNERMUL8
1198 INNERMUL8; _c += 8; tmpm += 8;
1199 INNERMUL; ++_c;
1200 INNERMUL; ++_c;
1201 #else
1202 INNERMUL; ++_c;
1203 INNERMUL; ++_c;
1204 INNERMUL; ++_c;
1205 INNERMUL; ++_c;
1206 INNERMUL; ++_c;
1207 INNERMUL; ++_c;
1208 INNERMUL; ++_c;
1209 INNERMUL; ++_c;
1210 INNERMUL; ++_c;
1211 INNERMUL; ++_c;
1212 #endif
1213 LOOP_END;
1214 while (cy) {
1215 PROPCARRY;
1216 ++_c;
1217 }
1218 x = 6; cy = 0;
1219 LOOP_START;
1220 _c = c + 6;
1221 tmpm = m->dp;
1222 #ifdef INNERMUL8
1223 INNERMUL8; _c += 8; tmpm += 8;
1224 INNERMUL; ++_c;
1225 INNERMUL; ++_c;
1226 #else
1227 INNERMUL; ++_c;
1228 INNERMUL; ++_c;
1229 INNERMUL; ++_c;
1230 INNERMUL; ++_c;
1231 INNERMUL; ++_c;
1232 INNERMUL; ++_c;
1233 INNERMUL; ++_c;
1234 INNERMUL; ++_c;
1235 INNERMUL; ++_c;
1236 INNERMUL; ++_c;
1237 #endif
1238 LOOP_END;
1239 while (cy) {
1240 PROPCARRY;
1241 ++_c;
1242 }
1243 x = 7; cy = 0;
1244 LOOP_START;
1245 _c = c + 7;
1246 tmpm = m->dp;
1247 #ifdef INNERMUL8
1248 INNERMUL8; _c += 8; tmpm += 8;
1249 INNERMUL; ++_c;
1250 INNERMUL; ++_c;
1251 #else
1252 INNERMUL; ++_c;
1253 INNERMUL; ++_c;
1254 INNERMUL; ++_c;
1255 INNERMUL; ++_c;
1256 INNERMUL; ++_c;
1257 INNERMUL; ++_c;
1258 INNERMUL; ++_c;
1259 INNERMUL; ++_c;
1260 INNERMUL; ++_c;
1261 INNERMUL; ++_c;
1262 #endif
1263 LOOP_END;
1264 while (cy) {
1265 PROPCARRY;
1266 ++_c;
1267 }
1268 x = 8; cy = 0;
1269 LOOP_START;
1270 _c = c + 8;
1271 tmpm = m->dp;
1272 #ifdef INNERMUL8
1273 INNERMUL8; _c += 8; tmpm += 8;
1274 INNERMUL; ++_c;
1275 INNERMUL; ++_c;
1276 #else
1277 INNERMUL; ++_c;
1278 INNERMUL; ++_c;
1279 INNERMUL; ++_c;
1280 INNERMUL; ++_c;
1281 INNERMUL; ++_c;
1282 INNERMUL; ++_c;
1283 INNERMUL; ++_c;
1284 INNERMUL; ++_c;
1285 INNERMUL; ++_c;
1286 INNERMUL; ++_c;
1287 #endif
1288 LOOP_END;
1289 while (cy) {
1290 PROPCARRY;
1291 ++_c;
1292 }
1293 x = 9; cy = 0;
1294 LOOP_START;
1295 _c = c + 9;
1296 tmpm = m->dp;
1297 #ifdef INNERMUL8
1298 INNERMUL8; _c += 8; tmpm += 8;
1299 INNERMUL; ++_c;
1300 INNERMUL; ++_c;
1301 #else
1302 INNERMUL; ++_c;
1303 INNERMUL; ++_c;
1304 INNERMUL; ++_c;
1305 INNERMUL; ++_c;
1306 INNERMUL; ++_c;
1307 INNERMUL; ++_c;
1308 INNERMUL; ++_c;
1309 INNERMUL; ++_c;
1310 INNERMUL; ++_c;
1311 INNERMUL; ++_c;
1312 #endif
1313 LOOP_END;
1314 while (cy) {
1315 PROPCARRY;
1316 ++_c;
1317 }
1318 break;
1319 case 11:
1320 x = 0; cy = 0;
1321 LOOP_START;
1322 _c = c + 0;
1323 tmpm = m->dp;
1324 #ifdef INNERMUL8
1325 INNERMUL8; _c += 8; tmpm += 8;
1326 INNERMUL; ++_c;
1327 INNERMUL; ++_c;
1328 INNERMUL; ++_c;
1329 #else
1330 INNERMUL; ++_c;
1331 INNERMUL; ++_c;
1332 INNERMUL; ++_c;
1333 INNERMUL; ++_c;
1334 INNERMUL; ++_c;
1335 INNERMUL; ++_c;
1336 INNERMUL; ++_c;
1337 INNERMUL; ++_c;
1338 INNERMUL; ++_c;
1339 INNERMUL; ++_c;
1340 INNERMUL; ++_c;
1341 #endif
1342 LOOP_END;
1343 while (cy) {
1344 PROPCARRY;
1345 ++_c;
1346 }
1347 x = 1; cy = 0;
1348 LOOP_START;
1349 _c = c + 1;
1350 tmpm = m->dp;
1351 #ifdef INNERMUL8
1352 INNERMUL8; _c += 8; tmpm += 8;
1353 INNERMUL; ++_c;
1354 INNERMUL; ++_c;
1355 INNERMUL; ++_c;
1356 #else
1357 INNERMUL; ++_c;
1358 INNERMUL; ++_c;
1359 INNERMUL; ++_c;
1360 INNERMUL; ++_c;
1361 INNERMUL; ++_c;
1362 INNERMUL; ++_c;
1363 INNERMUL; ++_c;
1364 INNERMUL; ++_c;
1365 INNERMUL; ++_c;
1366 INNERMUL; ++_c;
1367 INNERMUL; ++_c;
1368 #endif
1369 LOOP_END;
1370 while (cy) {
1371 PROPCARRY;
1372 ++_c;
1373 }
1374 x = 2; cy = 0;
1375 LOOP_START;
1376 _c = c + 2;
1377 tmpm = m->dp;
1378 #ifdef INNERMUL8
1379 INNERMUL8; _c += 8; tmpm += 8;
1380 INNERMUL; ++_c;
1381 INNERMUL; ++_c;
1382 INNERMUL; ++_c;
1383 #else
1384 INNERMUL; ++_c;
1385 INNERMUL; ++_c;
1386 INNERMUL; ++_c;
1387 INNERMUL; ++_c;
1388 INNERMUL; ++_c;
1389 INNERMUL; ++_c;
1390 INNERMUL; ++_c;
1391 INNERMUL; ++_c;
1392 INNERMUL; ++_c;
1393 INNERMUL; ++_c;
1394 INNERMUL; ++_c;
1395 #endif
1396 LOOP_END;
1397 while (cy) {
1398 PROPCARRY;
1399 ++_c;
1400 }
1401 x = 3; cy = 0;
1402 LOOP_START;
1403 _c = c + 3;
1404 tmpm = m->dp;
1405 #ifdef INNERMUL8
1406 INNERMUL8; _c += 8; tmpm += 8;
1407 INNERMUL; ++_c;
1408 INNERMUL; ++_c;
1409 INNERMUL; ++_c;
1410 #else
1411 INNERMUL; ++_c;
1412 INNERMUL; ++_c;
1413 INNERMUL; ++_c;
1414 INNERMUL; ++_c;
1415 INNERMUL; ++_c;
1416 INNERMUL; ++_c;
1417 INNERMUL; ++_c;
1418 INNERMUL; ++_c;
1419 INNERMUL; ++_c;
1420 INNERMUL; ++_c;
1421 INNERMUL; ++_c;
1422 #endif
1423 LOOP_END;
1424 while (cy) {
1425 PROPCARRY;
1426 ++_c;
1427 }
1428 x = 4; cy = 0;
1429 LOOP_START;
1430 _c = c + 4;
1431 tmpm = m->dp;
1432 #ifdef INNERMUL8
1433 INNERMUL8; _c += 8; tmpm += 8;
1434 INNERMUL; ++_c;
1435 INNERMUL; ++_c;
1436 INNERMUL; ++_c;
1437 #else
1438 INNERMUL; ++_c;
1439 INNERMUL; ++_c;
1440 INNERMUL; ++_c;
1441 INNERMUL; ++_c;
1442 INNERMUL; ++_c;
1443 INNERMUL; ++_c;
1444 INNERMUL; ++_c;
1445 INNERMUL; ++_c;
1446 INNERMUL; ++_c;
1447 INNERMUL; ++_c;
1448 INNERMUL; ++_c;
1449 #endif
1450 LOOP_END;
1451 while (cy) {
1452 PROPCARRY;
1453 ++_c;
1454 }
1455 x = 5; cy = 0;
1456 LOOP_START;
1457 _c = c + 5;
1458 tmpm = m->dp;
1459 #ifdef INNERMUL8
1460 INNERMUL8; _c += 8; tmpm += 8;
1461 INNERMUL; ++_c;
1462 INNERMUL; ++_c;
1463 INNERMUL; ++_c;
1464 #else
1465 INNERMUL; ++_c;
1466 INNERMUL; ++_c;
1467 INNERMUL; ++_c;
1468 INNERMUL; ++_c;
1469 INNERMUL; ++_c;
1470 INNERMUL; ++_c;
1471 INNERMUL; ++_c;
1472 INNERMUL; ++_c;
1473 INNERMUL; ++_c;
1474 INNERMUL; ++_c;
1475 INNERMUL; ++_c;
1476 #endif
1477 LOOP_END;
1478 while (cy) {
1479 PROPCARRY;
1480 ++_c;
1481 }
1482 x = 6; cy = 0;
1483 LOOP_START;
1484 _c = c + 6;
1485 tmpm = m->dp;
1486 #ifdef INNERMUL8
1487 INNERMUL8; _c += 8; tmpm += 8;
1488 INNERMUL; ++_c;
1489 INNERMUL; ++_c;
1490 INNERMUL; ++_c;
1491 #else
1492 INNERMUL; ++_c;
1493 INNERMUL; ++_c;
1494 INNERMUL; ++_c;
1495 INNERMUL; ++_c;
1496 INNERMUL; ++_c;
1497 INNERMUL; ++_c;
1498 INNERMUL; ++_c;
1499 INNERMUL; ++_c;
1500 INNERMUL; ++_c;
1501 INNERMUL; ++_c;
1502 INNERMUL; ++_c;
1503 #endif
1504 LOOP_END;
1505 while (cy) {
1506 PROPCARRY;
1507 ++_c;
1508 }
1509 x = 7; cy = 0;
1510 LOOP_START;
1511 _c = c + 7;
1512 tmpm = m->dp;
1513 #ifdef INNERMUL8
1514 INNERMUL8; _c += 8; tmpm += 8;
1515 INNERMUL; ++_c;
1516 INNERMUL; ++_c;
1517 INNERMUL; ++_c;
1518 #else
1519 INNERMUL; ++_c;
1520 INNERMUL; ++_c;
1521 INNERMUL; ++_c;
1522 INNERMUL; ++_c;
1523 INNERMUL; ++_c;
1524 INNERMUL; ++_c;
1525 INNERMUL; ++_c;
1526 INNERMUL; ++_c;
1527 INNERMUL; ++_c;
1528 INNERMUL; ++_c;
1529 INNERMUL; ++_c;
1530 #endif
1531 LOOP_END;
1532 while (cy) {
1533 PROPCARRY;
1534 ++_c;
1535 }
1536 x = 8; cy = 0;
1537 LOOP_START;
1538 _c = c + 8;
1539 tmpm = m->dp;
1540 #ifdef INNERMUL8
1541 INNERMUL8; _c += 8; tmpm += 8;
1542 INNERMUL; ++_c;
1543 INNERMUL; ++_c;
1544 INNERMUL; ++_c;
1545 #else
1546 INNERMUL; ++_c;
1547 INNERMUL; ++_c;
1548 INNERMUL; ++_c;
1549 INNERMUL; ++_c;
1550 INNERMUL; ++_c;
1551 INNERMUL; ++_c;
1552 INNERMUL; ++_c;
1553 INNERMUL; ++_c;
1554 INNERMUL; ++_c;
1555 INNERMUL; ++_c;
1556 INNERMUL; ++_c;
1557 #endif
1558 LOOP_END;
1559 while (cy) {
1560 PROPCARRY;
1561 ++_c;
1562 }
1563 x = 9; cy = 0;
1564 LOOP_START;
1565 _c = c + 9;
1566 tmpm = m->dp;
1567 #ifdef INNERMUL8
1568 INNERMUL8; _c += 8; tmpm += 8;
1569 INNERMUL; ++_c;
1570 INNERMUL; ++_c;
1571 INNERMUL; ++_c;
1572 #else
1573 INNERMUL; ++_c;
1574 INNERMUL; ++_c;
1575 INNERMUL; ++_c;
1576 INNERMUL; ++_c;
1577 INNERMUL; ++_c;
1578 INNERMUL; ++_c;
1579 INNERMUL; ++_c;
1580 INNERMUL; ++_c;
1581 INNERMUL; ++_c;
1582 INNERMUL; ++_c;
1583 INNERMUL; ++_c;
1584 #endif
1585 LOOP_END;
1586 while (cy) {
1587 PROPCARRY;
1588 ++_c;
1589 }
1590 x = 10; cy = 0;
1591 LOOP_START;
1592 _c = c + 10;
1593 tmpm = m->dp;
1594 #ifdef INNERMUL8
1595 INNERMUL8; _c += 8; tmpm += 8;
1596 INNERMUL; ++_c;
1597 INNERMUL; ++_c;
1598 INNERMUL; ++_c;
1599 #else
1600 INNERMUL; ++_c;
1601 INNERMUL; ++_c;
1602 INNERMUL; ++_c;
1603 INNERMUL; ++_c;
1604 INNERMUL; ++_c;
1605 INNERMUL; ++_c;
1606 INNERMUL; ++_c;
1607 INNERMUL; ++_c;
1608 INNERMUL; ++_c;
1609 INNERMUL; ++_c;
1610 INNERMUL; ++_c;
1611 #endif
1612 LOOP_END;
1613 while (cy) {
1614 PROPCARRY;
1615 ++_c;
1616 }
1617 break;
1618 case 12:
1619 x = 0; cy = 0;
1620 LOOP_START;
1621 _c = c + 0;
1622 tmpm = m->dp;
1623 #ifdef INNERMUL8
1624 INNERMUL8; _c += 8; tmpm += 8;
1625 INNERMUL; ++_c;
1626 INNERMUL; ++_c;
1627 INNERMUL; ++_c;
1628 INNERMUL; ++_c;
1629 #else
1630 INNERMUL; ++_c;
1631 INNERMUL; ++_c;
1632 INNERMUL; ++_c;
1633 INNERMUL; ++_c;
1634 INNERMUL; ++_c;
1635 INNERMUL; ++_c;
1636 INNERMUL; ++_c;
1637 INNERMUL; ++_c;
1638 INNERMUL; ++_c;
1639 INNERMUL; ++_c;
1640 INNERMUL; ++_c;
1641 INNERMUL; ++_c;
1642 #endif
1643 LOOP_END;
1644 while (cy) {
1645 PROPCARRY;
1646 ++_c;
1647 }
1648 x = 1; cy = 0;
1649 LOOP_START;
1650 _c = c + 1;
1651 tmpm = m->dp;
1652 #ifdef INNERMUL8
1653 INNERMUL8; _c += 8; tmpm += 8;
1654 INNERMUL; ++_c;
1655 INNERMUL; ++_c;
1656 INNERMUL; ++_c;
1657 INNERMUL; ++_c;
1658 #else
1659 INNERMUL; ++_c;
1660 INNERMUL; ++_c;
1661 INNERMUL; ++_c;
1662 INNERMUL; ++_c;
1663 INNERMUL; ++_c;
1664 INNERMUL; ++_c;
1665 INNERMUL; ++_c;
1666 INNERMUL; ++_c;
1667 INNERMUL; ++_c;
1668 INNERMUL; ++_c;
1669 INNERMUL; ++_c;
1670 INNERMUL; ++_c;
1671 #endif
1672 LOOP_END;
1673 while (cy) {
1674 PROPCARRY;
1675 ++_c;
1676 }
1677 x = 2; cy = 0;
1678 LOOP_START;
1679 _c = c + 2;
1680 tmpm = m->dp;
1681 #ifdef INNERMUL8
1682 INNERMUL8; _c += 8; tmpm += 8;
1683 INNERMUL; ++_c;
1684 INNERMUL; ++_c;
1685 INNERMUL; ++_c;
1686 INNERMUL; ++_c;
1687 #else
1688 INNERMUL; ++_c;
1689 INNERMUL; ++_c;
1690 INNERMUL; ++_c;
1691 INNERMUL; ++_c;
1692 INNERMUL; ++_c;
1693 INNERMUL; ++_c;
1694 INNERMUL; ++_c;
1695 INNERMUL; ++_c;
1696 INNERMUL; ++_c;
1697 INNERMUL; ++_c;
1698 INNERMUL; ++_c;
1699 INNERMUL; ++_c;
1700 #endif
1701 LOOP_END;
1702 while (cy) {
1703 PROPCARRY;
1704 ++_c;
1705 }
1706 x = 3; cy = 0;
1707 LOOP_START;
1708 _c = c + 3;
1709 tmpm = m->dp;
1710 #ifdef INNERMUL8
1711 INNERMUL8; _c += 8; tmpm += 8;
1712 INNERMUL; ++_c;
1713 INNERMUL; ++_c;
1714 INNERMUL; ++_c;
1715 INNERMUL; ++_c;
1716 #else
1717 INNERMUL; ++_c;
1718 INNERMUL; ++_c;
1719 INNERMUL; ++_c;
1720 INNERMUL; ++_c;
1721 INNERMUL; ++_c;
1722 INNERMUL; ++_c;
1723 INNERMUL; ++_c;
1724 INNERMUL; ++_c;
1725 INNERMUL; ++_c;
1726 INNERMUL; ++_c;
1727 INNERMUL; ++_c;
1728 INNERMUL; ++_c;
1729 #endif
1730 LOOP_END;
1731 while (cy) {
1732 PROPCARRY;
1733 ++_c;
1734 }
1735 x = 4; cy = 0;
1736 LOOP_START;
1737 _c = c + 4;
1738 tmpm = m->dp;
1739 #ifdef INNERMUL8
1740 INNERMUL8; _c += 8; tmpm += 8;
1741 INNERMUL; ++_c;
1742 INNERMUL; ++_c;
1743 INNERMUL; ++_c;
1744 INNERMUL; ++_c;
1745 #else
1746 INNERMUL; ++_c;
1747 INNERMUL; ++_c;
1748 INNERMUL; ++_c;
1749 INNERMUL; ++_c;
1750 INNERMUL; ++_c;
1751 INNERMUL; ++_c;
1752 INNERMUL; ++_c;
1753 INNERMUL; ++_c;
1754 INNERMUL; ++_c;
1755 INNERMUL; ++_c;
1756 INNERMUL; ++_c;
1757 INNERMUL; ++_c;
1758 #endif
1759 LOOP_END;
1760 while (cy) {
1761 PROPCARRY;
1762 ++_c;
1763 }
1764 x = 5; cy = 0;
1765 LOOP_START;
1766 _c = c + 5;
1767 tmpm = m->dp;
1768 #ifdef INNERMUL8
1769 INNERMUL8; _c += 8; tmpm += 8;
1770 INNERMUL; ++_c;
1771 INNERMUL; ++_c;
1772 INNERMUL; ++_c;
1773 INNERMUL; ++_c;
1774 #else
1775 INNERMUL; ++_c;
1776 INNERMUL; ++_c;
1777 INNERMUL; ++_c;
1778 INNERMUL; ++_c;
1779 INNERMUL; ++_c;
1780 INNERMUL; ++_c;
1781 INNERMUL; ++_c;
1782 INNERMUL; ++_c;
1783 INNERMUL; ++_c;
1784 INNERMUL; ++_c;
1785 INNERMUL; ++_c;
1786 INNERMUL; ++_c;
1787 #endif
1788 LOOP_END;
1789 while (cy) {
1790 PROPCARRY;
1791 ++_c;
1792 }
1793 x = 6; cy = 0;
1794 LOOP_START;
1795 _c = c + 6;
1796 tmpm = m->dp;
1797 #ifdef INNERMUL8
1798 INNERMUL8; _c += 8; tmpm += 8;
1799 INNERMUL; ++_c;
1800 INNERMUL; ++_c;
1801 INNERMUL; ++_c;
1802 INNERMUL; ++_c;
1803 #else
1804 INNERMUL; ++_c;
1805 INNERMUL; ++_c;
1806 INNERMUL; ++_c;
1807 INNERMUL; ++_c;
1808 INNERMUL; ++_c;
1809 INNERMUL; ++_c;
1810 INNERMUL; ++_c;
1811 INNERMUL; ++_c;
1812 INNERMUL; ++_c;
1813 INNERMUL; ++_c;
1814 INNERMUL; ++_c;
1815 INNERMUL; ++_c;
1816 #endif
1817 LOOP_END;
1818 while (cy) {
1819 PROPCARRY;
1820 ++_c;
1821 }
1822 x = 7; cy = 0;
1823 LOOP_START;
1824 _c = c + 7;
1825 tmpm = m->dp;
1826 #ifdef INNERMUL8
1827 INNERMUL8; _c += 8; tmpm += 8;
1828 INNERMUL; ++_c;
1829 INNERMUL; ++_c;
1830 INNERMUL; ++_c;
1831 INNERMUL; ++_c;
1832 #else
1833 INNERMUL; ++_c;
1834 INNERMUL; ++_c;
1835 INNERMUL; ++_c;
1836 INNERMUL; ++_c;
1837 INNERMUL; ++_c;
1838 INNERMUL; ++_c;
1839 INNERMUL; ++_c;
1840 INNERMUL; ++_c;
1841 INNERMUL; ++_c;
1842 INNERMUL; ++_c;
1843 INNERMUL; ++_c;
1844 INNERMUL; ++_c;
1845 #endif
1846 LOOP_END;
1847 while (cy) {
1848 PROPCARRY;
1849 ++_c;
1850 }
1851 x = 8; cy = 0;
1852 LOOP_START;
1853 _c = c + 8;
1854 tmpm = m->dp;
1855 #ifdef INNERMUL8
1856 INNERMUL8; _c += 8; tmpm += 8;
1857 INNERMUL; ++_c;
1858 INNERMUL; ++_c;
1859 INNERMUL; ++_c;
1860 INNERMUL; ++_c;
1861 #else
1862 INNERMUL; ++_c;
1863 INNERMUL; ++_c;
1864 INNERMUL; ++_c;
1865 INNERMUL; ++_c;
1866 INNERMUL; ++_c;
1867 INNERMUL; ++_c;
1868 INNERMUL; ++_c;
1869 INNERMUL; ++_c;
1870 INNERMUL; ++_c;
1871 INNERMUL; ++_c;
1872 INNERMUL; ++_c;
1873 INNERMUL; ++_c;
1874 #endif
1875 LOOP_END;
1876 while (cy) {
1877 PROPCARRY;
1878 ++_c;
1879 }
1880 x = 9; cy = 0;
1881 LOOP_START;
1882 _c = c + 9;
1883 tmpm = m->dp;
1884 #ifdef INNERMUL8
1885 INNERMUL8; _c += 8; tmpm += 8;
1886 INNERMUL; ++_c;
1887 INNERMUL; ++_c;
1888 INNERMUL; ++_c;
1889 INNERMUL; ++_c;
1890 #else
1891 INNERMUL; ++_c;
1892 INNERMUL; ++_c;
1893 INNERMUL; ++_c;
1894 INNERMUL; ++_c;
1895 INNERMUL; ++_c;
1896 INNERMUL; ++_c;
1897 INNERMUL; ++_c;
1898 INNERMUL; ++_c;
1899 INNERMUL; ++_c;
1900 INNERMUL; ++_c;
1901 INNERMUL; ++_c;
1902 INNERMUL; ++_c;
1903 #endif
1904 LOOP_END;
1905 while (cy) {
1906 PROPCARRY;
1907 ++_c;
1908 }
1909 x = 10; cy = 0;
1910 LOOP_START;
1911 _c = c + 10;
1912 tmpm = m->dp;
1913 #ifdef INNERMUL8
1914 INNERMUL8; _c += 8; tmpm += 8;
1915 INNERMUL; ++_c;
1916 INNERMUL; ++_c;
1917 INNERMUL; ++_c;
1918 INNERMUL; ++_c;
1919 #else
1920 INNERMUL; ++_c;
1921 INNERMUL; ++_c;
1922 INNERMUL; ++_c;
1923 INNERMUL; ++_c;
1924 INNERMUL; ++_c;
1925 INNERMUL; ++_c;
1926 INNERMUL; ++_c;
1927 INNERMUL; ++_c;
1928 INNERMUL; ++_c;
1929 INNERMUL; ++_c;
1930 INNERMUL; ++_c;
1931 INNERMUL; ++_c;
1932 #endif
1933 LOOP_END;
1934 while (cy) {
1935 PROPCARRY;
1936 ++_c;
1937 }
1938 x = 11; cy = 0;
1939 LOOP_START;
1940 _c = c + 11;
1941 tmpm = m->dp;
1942 #ifdef INNERMUL8
1943 INNERMUL8; _c += 8; tmpm += 8;
1944 INNERMUL; ++_c;
1945 INNERMUL; ++_c;
1946 INNERMUL; ++_c;
1947 INNERMUL; ++_c;
1948 #else
1949 INNERMUL; ++_c;
1950 INNERMUL; ++_c;
1951 INNERMUL; ++_c;
1952 INNERMUL; ++_c;
1953 INNERMUL; ++_c;
1954 INNERMUL; ++_c;
1955 INNERMUL; ++_c;
1956 INNERMUL; ++_c;
1957 INNERMUL; ++_c;
1958 INNERMUL; ++_c;
1959 INNERMUL; ++_c;
1960 INNERMUL; ++_c;
1961 #endif
1962 LOOP_END;
1963 while (cy) {
1964 PROPCARRY;
1965 ++_c;
1966 }
1967 break;
1968 case 13:
1969 x = 0; cy = 0;
1970 LOOP_START;
1971 _c = c + 0;
1972 tmpm = m->dp;
1973 #ifdef INNERMUL8
1974 INNERMUL8; _c += 8; tmpm += 8;
1975 INNERMUL; ++_c;
1976 INNERMUL; ++_c;
1977 INNERMUL; ++_c;
1978 INNERMUL; ++_c;
1979 INNERMUL; ++_c;
1980 #else
1981 INNERMUL; ++_c;
1982 INNERMUL; ++_c;
1983 INNERMUL; ++_c;
1984 INNERMUL; ++_c;
1985 INNERMUL; ++_c;
1986 INNERMUL; ++_c;
1987 INNERMUL; ++_c;
1988 INNERMUL; ++_c;
1989 INNERMUL; ++_c;
1990 INNERMUL; ++_c;
1991 INNERMUL; ++_c;
1992 INNERMUL; ++_c;
1993 INNERMUL; ++_c;
1994 #endif
1995 LOOP_END;
1996 while (cy) {
1997 PROPCARRY;
1998 ++_c;
1999 }
2000 x = 1; cy = 0;
2001 LOOP_START;
2002 _c = c + 1;
2003 tmpm = m->dp;
2004 #ifdef INNERMUL8
2005 INNERMUL8; _c += 8; tmpm += 8;
2006 INNERMUL; ++_c;
2007 INNERMUL; ++_c;
2008 INNERMUL; ++_c;
2009 INNERMUL; ++_c;
2010 INNERMUL; ++_c;
2011 #else
2012 INNERMUL; ++_c;
2013 INNERMUL; ++_c;
2014 INNERMUL; ++_c;
2015 INNERMUL; ++_c;
2016 INNERMUL; ++_c;
2017 INNERMUL; ++_c;
2018 INNERMUL; ++_c;
2019 INNERMUL; ++_c;
2020 INNERMUL; ++_c;
2021 INNERMUL; ++_c;
2022 INNERMUL; ++_c;
2023 INNERMUL; ++_c;
2024 INNERMUL; ++_c;
2025 #endif
2026 LOOP_END;
2027 while (cy) {
2028 PROPCARRY;
2029 ++_c;
2030 }
2031 x = 2; cy = 0;
2032 LOOP_START;
2033 _c = c + 2;
2034 tmpm = m->dp;
2035 #ifdef INNERMUL8
2036 INNERMUL8; _c += 8; tmpm += 8;
2037 INNERMUL; ++_c;
2038 INNERMUL; ++_c;
2039 INNERMUL; ++_c;
2040 INNERMUL; ++_c;
2041 INNERMUL; ++_c;
2042 #else
2043 INNERMUL; ++_c;
2044 INNERMUL; ++_c;
2045 INNERMUL; ++_c;
2046 INNERMUL; ++_c;
2047 INNERMUL; ++_c;
2048 INNERMUL; ++_c;
2049 INNERMUL; ++_c;
2050 INNERMUL; ++_c;
2051 INNERMUL; ++_c;
2052 INNERMUL; ++_c;
2053 INNERMUL; ++_c;
2054 INNERMUL; ++_c;
2055 INNERMUL; ++_c;
2056 #endif
2057 LOOP_END;
2058 while (cy) {
2059 PROPCARRY;
2060 ++_c;
2061 }
2062 x = 3; cy = 0;
2063 LOOP_START;
2064 _c = c + 3;
2065 tmpm = m->dp;
2066 #ifdef INNERMUL8
2067 INNERMUL8; _c += 8; tmpm += 8;
2068 INNERMUL; ++_c;
2069 INNERMUL; ++_c;
2070 INNERMUL; ++_c;
2071 INNERMUL; ++_c;
2072 INNERMUL; ++_c;
2073 #else
2074 INNERMUL; ++_c;
2075 INNERMUL; ++_c;
2076 INNERMUL; ++_c;
2077 INNERMUL; ++_c;
2078 INNERMUL; ++_c;
2079 INNERMUL; ++_c;
2080 INNERMUL; ++_c;
2081 INNERMUL; ++_c;
2082 INNERMUL; ++_c;
2083 INNERMUL; ++_c;
2084 INNERMUL; ++_c;
2085 INNERMUL; ++_c;
2086 INNERMUL; ++_c;
2087 #endif
2088 LOOP_END;
2089 while (cy) {
2090 PROPCARRY;
2091 ++_c;
2092 }
2093 x = 4; cy = 0;
2094 LOOP_START;
2095 _c = c + 4;
2096 tmpm = m->dp;
2097 #ifdef INNERMUL8
2098 INNERMUL8; _c += 8; tmpm += 8;
2099 INNERMUL; ++_c;
2100 INNERMUL; ++_c;
2101 INNERMUL; ++_c;
2102 INNERMUL; ++_c;
2103 INNERMUL; ++_c;
2104 #else
2105 INNERMUL; ++_c;
2106 INNERMUL; ++_c;
2107 INNERMUL; ++_c;
2108 INNERMUL; ++_c;
2109 INNERMUL; ++_c;
2110 INNERMUL; ++_c;
2111 INNERMUL; ++_c;
2112 INNERMUL; ++_c;
2113 INNERMUL; ++_c;
2114 INNERMUL; ++_c;
2115 INNERMUL; ++_c;
2116 INNERMUL; ++_c;
2117 INNERMUL; ++_c;
2118 #endif
2119 LOOP_END;
2120 while (cy) {
2121 PROPCARRY;
2122 ++_c;
2123 }
2124 x = 5; cy = 0;
2125 LOOP_START;
2126 _c = c + 5;
2127 tmpm = m->dp;
2128 #ifdef INNERMUL8
2129 INNERMUL8; _c += 8; tmpm += 8;
2130 INNERMUL; ++_c;
2131 INNERMUL; ++_c;
2132 INNERMUL; ++_c;
2133 INNERMUL; ++_c;
2134 INNERMUL; ++_c;
2135 #else
2136 INNERMUL; ++_c;
2137 INNERMUL; ++_c;
2138 INNERMUL; ++_c;
2139 INNERMUL; ++_c;
2140 INNERMUL; ++_c;
2141 INNERMUL; ++_c;
2142 INNERMUL; ++_c;
2143 INNERMUL; ++_c;
2144 INNERMUL; ++_c;
2145 INNERMUL; ++_c;
2146 INNERMUL; ++_c;
2147 INNERMUL; ++_c;
2148 INNERMUL; ++_c;
2149 #endif
2150 LOOP_END;
2151 while (cy) {
2152 PROPCARRY;
2153 ++_c;
2154 }
2155 x = 6; cy = 0;
2156 LOOP_START;
2157 _c = c + 6;
2158 tmpm = m->dp;
2159 #ifdef INNERMUL8
2160 INNERMUL8; _c += 8; tmpm += 8;
2161 INNERMUL; ++_c;
2162 INNERMUL; ++_c;
2163 INNERMUL; ++_c;
2164 INNERMUL; ++_c;
2165 INNERMUL; ++_c;
2166 #else
2167 INNERMUL; ++_c;
2168 INNERMUL; ++_c;
2169 INNERMUL; ++_c;
2170 INNERMUL; ++_c;
2171 INNERMUL; ++_c;
2172 INNERMUL; ++_c;
2173 INNERMUL; ++_c;
2174 INNERMUL; ++_c;
2175 INNERMUL; ++_c;
2176 INNERMUL; ++_c;
2177 INNERMUL; ++_c;
2178 INNERMUL; ++_c;
2179 INNERMUL; ++_c;
2180 #endif
2181 LOOP_END;
2182 while (cy) {
2183 PROPCARRY;
2184 ++_c;
2185 }
2186 x = 7; cy = 0;
2187 LOOP_START;
2188 _c = c + 7;
2189 tmpm = m->dp;
2190 #ifdef INNERMUL8
2191 INNERMUL8; _c += 8; tmpm += 8;
2192 INNERMUL; ++_c;
2193 INNERMUL; ++_c;
2194 INNERMUL; ++_c;
2195 INNERMUL; ++_c;
2196 INNERMUL; ++_c;
2197 #else
2198 INNERMUL; ++_c;
2199 INNERMUL; ++_c;
2200 INNERMUL; ++_c;
2201 INNERMUL; ++_c;
2202 INNERMUL; ++_c;
2203 INNERMUL; ++_c;
2204 INNERMUL; ++_c;
2205 INNERMUL; ++_c;
2206 INNERMUL; ++_c;
2207 INNERMUL; ++_c;
2208 INNERMUL; ++_c;
2209 INNERMUL; ++_c;
2210 INNERMUL; ++_c;
2211 #endif
2212 LOOP_END;
2213 while (cy) {
2214 PROPCARRY;
2215 ++_c;
2216 }
2217 x = 8; cy = 0;
2218 LOOP_START;
2219 _c = c + 8;
2220 tmpm = m->dp;
2221 #ifdef INNERMUL8
2222 INNERMUL8; _c += 8; tmpm += 8;
2223 INNERMUL; ++_c;
2224 INNERMUL; ++_c;
2225 INNERMUL; ++_c;
2226 INNERMUL; ++_c;
2227 INNERMUL; ++_c;
2228 #else
2229 INNERMUL; ++_c;
2230 INNERMUL; ++_c;
2231 INNERMUL; ++_c;
2232 INNERMUL; ++_c;
2233 INNERMUL; ++_c;
2234 INNERMUL; ++_c;
2235 INNERMUL; ++_c;
2236 INNERMUL; ++_c;
2237 INNERMUL; ++_c;
2238 INNERMUL; ++_c;
2239 INNERMUL; ++_c;
2240 INNERMUL; ++_c;
2241 INNERMUL; ++_c;
2242 #endif
2243 LOOP_END;
2244 while (cy) {
2245 PROPCARRY;
2246 ++_c;
2247 }
2248 x = 9; cy = 0;
2249 LOOP_START;
2250 _c = c + 9;
2251 tmpm = m->dp;
2252 #ifdef INNERMUL8
2253 INNERMUL8; _c += 8; tmpm += 8;
2254 INNERMUL; ++_c;
2255 INNERMUL; ++_c;
2256 INNERMUL; ++_c;
2257 INNERMUL; ++_c;
2258 INNERMUL; ++_c;
2259 #else
2260 INNERMUL; ++_c;
2261 INNERMUL; ++_c;
2262 INNERMUL; ++_c;
2263 INNERMUL; ++_c;
2264 INNERMUL; ++_c;
2265 INNERMUL; ++_c;
2266 INNERMUL; ++_c;
2267 INNERMUL; ++_c;
2268 INNERMUL; ++_c;
2269 INNERMUL; ++_c;
2270 INNERMUL; ++_c;
2271 INNERMUL; ++_c;
2272 INNERMUL; ++_c;
2273 #endif
2274 LOOP_END;
2275 while (cy) {
2276 PROPCARRY;
2277 ++_c;
2278 }
2279 x = 10; cy = 0;
2280 LOOP_START;
2281 _c = c + 10;
2282 tmpm = m->dp;
2283 #ifdef INNERMUL8
2284 INNERMUL8; _c += 8; tmpm += 8;
2285 INNERMUL; ++_c;
2286 INNERMUL; ++_c;
2287 INNERMUL; ++_c;
2288 INNERMUL; ++_c;
2289 INNERMUL; ++_c;
2290 #else
2291 INNERMUL; ++_c;
2292 INNERMUL; ++_c;
2293 INNERMUL; ++_c;
2294 INNERMUL; ++_c;
2295 INNERMUL; ++_c;
2296 INNERMUL; ++_c;
2297 INNERMUL; ++_c;
2298 INNERMUL; ++_c;
2299 INNERMUL; ++_c;
2300 INNERMUL; ++_c;
2301 INNERMUL; ++_c;
2302 INNERMUL; ++_c;
2303 INNERMUL; ++_c;
2304 #endif
2305 LOOP_END;
2306 while (cy) {
2307 PROPCARRY;
2308 ++_c;
2309 }
2310 x = 11; cy = 0;
2311 LOOP_START;
2312 _c = c + 11;
2313 tmpm = m->dp;
2314 #ifdef INNERMUL8
2315 INNERMUL8; _c += 8; tmpm += 8;
2316 INNERMUL; ++_c;
2317 INNERMUL; ++_c;
2318 INNERMUL; ++_c;
2319 INNERMUL; ++_c;
2320 INNERMUL; ++_c;
2321 #else
2322 INNERMUL; ++_c;
2323 INNERMUL; ++_c;
2324 INNERMUL; ++_c;
2325 INNERMUL; ++_c;
2326 INNERMUL; ++_c;
2327 INNERMUL; ++_c;
2328 INNERMUL; ++_c;
2329 INNERMUL; ++_c;
2330 INNERMUL; ++_c;
2331 INNERMUL; ++_c;
2332 INNERMUL; ++_c;
2333 INNERMUL; ++_c;
2334 INNERMUL; ++_c;
2335 #endif
2336 LOOP_END;
2337 while (cy) {
2338 PROPCARRY;
2339 ++_c;
2340 }
2341 x = 12; cy = 0;
2342 LOOP_START;
2343 _c = c + 12;
2344 tmpm = m->dp;
2345 #ifdef INNERMUL8
2346 INNERMUL8; _c += 8; tmpm += 8;
2347 INNERMUL; ++_c;
2348 INNERMUL; ++_c;
2349 INNERMUL; ++_c;
2350 INNERMUL; ++_c;
2351 INNERMUL; ++_c;
2352 #else
2353 INNERMUL; ++_c;
2354 INNERMUL; ++_c;
2355 INNERMUL; ++_c;
2356 INNERMUL; ++_c;
2357 INNERMUL; ++_c;
2358 INNERMUL; ++_c;
2359 INNERMUL; ++_c;
2360 INNERMUL; ++_c;
2361 INNERMUL; ++_c;
2362 INNERMUL; ++_c;
2363 INNERMUL; ++_c;
2364 INNERMUL; ++_c;
2365 INNERMUL; ++_c;
2366 #endif
2367 LOOP_END;
2368 while (cy) {
2369 PROPCARRY;
2370 ++_c;
2371 }
2372 break;
2373 case 14:
2374 x = 0; cy = 0;
2375 LOOP_START;
2376 _c = c + 0;
2377 tmpm = m->dp;
2378 #ifdef INNERMUL8
2379 INNERMUL8; _c += 8; tmpm += 8;
2380 INNERMUL; ++_c;
2381 INNERMUL; ++_c;
2382 INNERMUL; ++_c;
2383 INNERMUL; ++_c;
2384 INNERMUL; ++_c;
2385 INNERMUL; ++_c;
2386 #else
2387 INNERMUL; ++_c;
2388 INNERMUL; ++_c;
2389 INNERMUL; ++_c;
2390 INNERMUL; ++_c;
2391 INNERMUL; ++_c;
2392 INNERMUL; ++_c;
2393 INNERMUL; ++_c;
2394 INNERMUL; ++_c;
2395 INNERMUL; ++_c;
2396 INNERMUL; ++_c;
2397 INNERMUL; ++_c;
2398 INNERMUL; ++_c;
2399 INNERMUL; ++_c;
2400 INNERMUL; ++_c;
2401 #endif
2402 LOOP_END;
2403 while (cy) {
2404 PROPCARRY;
2405 ++_c;
2406 }
2407 x = 1; cy = 0;
2408 LOOP_START;
2409 _c = c + 1;
2410 tmpm = m->dp;
2411 #ifdef INNERMUL8
2412 INNERMUL8; _c += 8; tmpm += 8;
2413 INNERMUL; ++_c;
2414 INNERMUL; ++_c;
2415 INNERMUL; ++_c;
2416 INNERMUL; ++_c;
2417 INNERMUL; ++_c;
2418 INNERMUL; ++_c;
2419 #else
2420 INNERMUL; ++_c;
2421 INNERMUL; ++_c;
2422 INNERMUL; ++_c;
2423 INNERMUL; ++_c;
2424 INNERMUL; ++_c;
2425 INNERMUL; ++_c;
2426 INNERMUL; ++_c;
2427 INNERMUL; ++_c;
2428 INNERMUL; ++_c;
2429 INNERMUL; ++_c;
2430 INNERMUL; ++_c;
2431 INNERMUL; ++_c;
2432 INNERMUL; ++_c;
2433 INNERMUL; ++_c;
2434 #endif
2435 LOOP_END;
2436 while (cy) {
2437 PROPCARRY;
2438 ++_c;
2439 }
2440 x = 2; cy = 0;
2441 LOOP_START;
2442 _c = c + 2;
2443 tmpm = m->dp;
2444 #ifdef INNERMUL8
2445 INNERMUL8; _c += 8; tmpm += 8;
2446 INNERMUL; ++_c;
2447 INNERMUL; ++_c;
2448 INNERMUL; ++_c;
2449 INNERMUL; ++_c;
2450 INNERMUL; ++_c;
2451 INNERMUL; ++_c;
2452 #else
2453 INNERMUL; ++_c;
2454 INNERMUL; ++_c;
2455 INNERMUL; ++_c;
2456 INNERMUL; ++_c;
2457 INNERMUL; ++_c;
2458 INNERMUL; ++_c;
2459 INNERMUL; ++_c;
2460 INNERMUL; ++_c;
2461 INNERMUL; ++_c;
2462 INNERMUL; ++_c;
2463 INNERMUL; ++_c;
2464 INNERMUL; ++_c;
2465 INNERMUL; ++_c;
2466 INNERMUL; ++_c;
2467 #endif
2468 LOOP_END;
2469 while (cy) {
2470 PROPCARRY;
2471 ++_c;
2472 }
2473 x = 3; cy = 0;
2474 LOOP_START;
2475 _c = c + 3;
2476 tmpm = m->dp;
2477 #ifdef INNERMUL8
2478 INNERMUL8; _c += 8; tmpm += 8;
2479 INNERMUL; ++_c;
2480 INNERMUL; ++_c;
2481 INNERMUL; ++_c;
2482 INNERMUL; ++_c;
2483 INNERMUL; ++_c;
2484 INNERMUL; ++_c;
2485 #else
2486 INNERMUL; ++_c;
2487 INNERMUL; ++_c;
2488 INNERMUL; ++_c;
2489 INNERMUL; ++_c;
2490 INNERMUL; ++_c;
2491 INNERMUL; ++_c;
2492 INNERMUL; ++_c;
2493 INNERMUL; ++_c;
2494 INNERMUL; ++_c;
2495 INNERMUL; ++_c;
2496 INNERMUL; ++_c;
2497 INNERMUL; ++_c;
2498 INNERMUL; ++_c;
2499 INNERMUL; ++_c;
2500 #endif
2501 LOOP_END;
2502 while (cy) {
2503 PROPCARRY;
2504 ++_c;
2505 }
2506 x = 4; cy = 0;
2507 LOOP_START;
2508 _c = c + 4;
2509 tmpm = m->dp;
2510 #ifdef INNERMUL8
2511 INNERMUL8; _c += 8; tmpm += 8;
2512 INNERMUL; ++_c;
2513 INNERMUL; ++_c;
2514 INNERMUL; ++_c;
2515 INNERMUL; ++_c;
2516 INNERMUL; ++_c;
2517 INNERMUL; ++_c;
2518 #else
2519 INNERMUL; ++_c;
2520 INNERMUL; ++_c;
2521 INNERMUL; ++_c;
2522 INNERMUL; ++_c;
2523 INNERMUL; ++_c;
2524 INNERMUL; ++_c;
2525 INNERMUL; ++_c;
2526 INNERMUL; ++_c;
2527 INNERMUL; ++_c;
2528 INNERMUL; ++_c;
2529 INNERMUL; ++_c;
2530 INNERMUL; ++_c;
2531 INNERMUL; ++_c;
2532 INNERMUL; ++_c;
2533 #endif
2534 LOOP_END;
2535 while (cy) {
2536 PROPCARRY;
2537 ++_c;
2538 }
2539 x = 5; cy = 0;
2540 LOOP_START;
2541 _c = c + 5;
2542 tmpm = m->dp;
2543 #ifdef INNERMUL8
2544 INNERMUL8; _c += 8; tmpm += 8;
2545 INNERMUL; ++_c;
2546 INNERMUL; ++_c;
2547 INNERMUL; ++_c;
2548 INNERMUL; ++_c;
2549 INNERMUL; ++_c;
2550 INNERMUL; ++_c;
2551 #else
2552 INNERMUL; ++_c;
2553 INNERMUL; ++_c;
2554 INNERMUL; ++_c;
2555 INNERMUL; ++_c;
2556 INNERMUL; ++_c;
2557 INNERMUL; ++_c;
2558 INNERMUL; ++_c;
2559 INNERMUL; ++_c;
2560 INNERMUL; ++_c;
2561 INNERMUL; ++_c;
2562 INNERMUL; ++_c;
2563 INNERMUL; ++_c;
2564 INNERMUL; ++_c;
2565 INNERMUL; ++_c;
2566 #endif
2567 LOOP_END;
2568 while (cy) {
2569 PROPCARRY;
2570 ++_c;
2571 }
2572 x = 6; cy = 0;
2573 LOOP_START;
2574 _c = c + 6;
2575 tmpm = m->dp;
2576 #ifdef INNERMUL8
2577 INNERMUL8; _c += 8; tmpm += 8;
2578 INNERMUL; ++_c;
2579 INNERMUL; ++_c;
2580 INNERMUL; ++_c;
2581 INNERMUL; ++_c;
2582 INNERMUL; ++_c;
2583 INNERMUL; ++_c;
2584 #else
2585 INNERMUL; ++_c;
2586 INNERMUL; ++_c;
2587 INNERMUL; ++_c;
2588 INNERMUL; ++_c;
2589 INNERMUL; ++_c;
2590 INNERMUL; ++_c;
2591 INNERMUL; ++_c;
2592 INNERMUL; ++_c;
2593 INNERMUL; ++_c;
2594 INNERMUL; ++_c;
2595 INNERMUL; ++_c;
2596 INNERMUL; ++_c;
2597 INNERMUL; ++_c;
2598 INNERMUL; ++_c;
2599 #endif
2600 LOOP_END;
2601 while (cy) {
2602 PROPCARRY;
2603 ++_c;
2604 }
2605 x = 7; cy = 0;
2606 LOOP_START;
2607 _c = c + 7;
2608 tmpm = m->dp;
2609 #ifdef INNERMUL8
2610 INNERMUL8; _c += 8; tmpm += 8;
2611 INNERMUL; ++_c;
2612 INNERMUL; ++_c;
2613 INNERMUL; ++_c;
2614 INNERMUL; ++_c;
2615 INNERMUL; ++_c;
2616 INNERMUL; ++_c;
2617 #else
2618 INNERMUL; ++_c;
2619 INNERMUL; ++_c;
2620 INNERMUL; ++_c;
2621 INNERMUL; ++_c;
2622 INNERMUL; ++_c;
2623 INNERMUL; ++_c;
2624 INNERMUL; ++_c;
2625 INNERMUL; ++_c;
2626 INNERMUL; ++_c;
2627 INNERMUL; ++_c;
2628 INNERMUL; ++_c;
2629 INNERMUL; ++_c;
2630 INNERMUL; ++_c;
2631 INNERMUL; ++_c;
2632 #endif
2633 LOOP_END;
2634 while (cy) {
2635 PROPCARRY;
2636 ++_c;
2637 }
2638 x = 8; cy = 0;
2639 LOOP_START;
2640 _c = c + 8;
2641 tmpm = m->dp;
2642 #ifdef INNERMUL8
2643 INNERMUL8; _c += 8; tmpm += 8;
2644 INNERMUL; ++_c;
2645 INNERMUL; ++_c;
2646 INNERMUL; ++_c;
2647 INNERMUL; ++_c;
2648 INNERMUL; ++_c;
2649 INNERMUL; ++_c;
2650 #else
2651 INNERMUL; ++_c;
2652 INNERMUL; ++_c;
2653 INNERMUL; ++_c;
2654 INNERMUL; ++_c;
2655 INNERMUL; ++_c;
2656 INNERMUL; ++_c;
2657 INNERMUL; ++_c;
2658 INNERMUL; ++_c;
2659 INNERMUL; ++_c;
2660 INNERMUL; ++_c;
2661 INNERMUL; ++_c;
2662 INNERMUL; ++_c;
2663 INNERMUL; ++_c;
2664 INNERMUL; ++_c;
2665 #endif
2666 LOOP_END;
2667 while (cy) {
2668 PROPCARRY;
2669 ++_c;
2670 }
2671 x = 9; cy = 0;
2672 LOOP_START;
2673 _c = c + 9;
2674 tmpm = m->dp;
2675 #ifdef INNERMUL8
2676 INNERMUL8; _c += 8; tmpm += 8;
2677 INNERMUL; ++_c;
2678 INNERMUL; ++_c;
2679 INNERMUL; ++_c;
2680 INNERMUL; ++_c;
2681 INNERMUL; ++_c;
2682 INNERMUL; ++_c;
2683 #else
2684 INNERMUL; ++_c;
2685 INNERMUL; ++_c;
2686 INNERMUL; ++_c;
2687 INNERMUL; ++_c;
2688 INNERMUL; ++_c;
2689 INNERMUL; ++_c;
2690 INNERMUL; ++_c;
2691 INNERMUL; ++_c;
2692 INNERMUL; ++_c;
2693 INNERMUL; ++_c;
2694 INNERMUL; ++_c;
2695 INNERMUL; ++_c;
2696 INNERMUL; ++_c;
2697 INNERMUL; ++_c;
2698 #endif
2699 LOOP_END;
2700 while (cy) {
2701 PROPCARRY;
2702 ++_c;
2703 }
2704 x = 10; cy = 0;
2705 LOOP_START;
2706 _c = c + 10;
2707 tmpm = m->dp;
2708 #ifdef INNERMUL8
2709 INNERMUL8; _c += 8; tmpm += 8;
2710 INNERMUL; ++_c;
2711 INNERMUL; ++_c;
2712 INNERMUL; ++_c;
2713 INNERMUL; ++_c;
2714 INNERMUL; ++_c;
2715 INNERMUL; ++_c;
2716 #else
2717 INNERMUL; ++_c;
2718 INNERMUL; ++_c;
2719 INNERMUL; ++_c;
2720 INNERMUL; ++_c;
2721 INNERMUL; ++_c;
2722 INNERMUL; ++_c;
2723 INNERMUL; ++_c;
2724 INNERMUL; ++_c;
2725 INNERMUL; ++_c;
2726 INNERMUL; ++_c;
2727 INNERMUL; ++_c;
2728 INNERMUL; ++_c;
2729 INNERMUL; ++_c;
2730 INNERMUL; ++_c;
2731 #endif
2732 LOOP_END;
2733 while (cy) {
2734 PROPCARRY;
2735 ++_c;
2736 }
2737 x = 11; cy = 0;
2738 LOOP_START;
2739 _c = c + 11;
2740 tmpm = m->dp;
2741 #ifdef INNERMUL8
2742 INNERMUL8; _c += 8; tmpm += 8;
2743 INNERMUL; ++_c;
2744 INNERMUL; ++_c;
2745 INNERMUL; ++_c;
2746 INNERMUL; ++_c;
2747 INNERMUL; ++_c;
2748 INNERMUL; ++_c;
2749 #else
2750 INNERMUL; ++_c;
2751 INNERMUL; ++_c;
2752 INNERMUL; ++_c;
2753 INNERMUL; ++_c;
2754 INNERMUL; ++_c;
2755 INNERMUL; ++_c;
2756 INNERMUL; ++_c;
2757 INNERMUL; ++_c;
2758 INNERMUL; ++_c;
2759 INNERMUL; ++_c;
2760 INNERMUL; ++_c;
2761 INNERMUL; ++_c;
2762 INNERMUL; ++_c;
2763 INNERMUL; ++_c;
2764 #endif
2765 LOOP_END;
2766 while (cy) {
2767 PROPCARRY;
2768 ++_c;
2769 }
2770 x = 12; cy = 0;
2771 LOOP_START;
2772 _c = c + 12;
2773 tmpm = m->dp;
2774 #ifdef INNERMUL8
2775 INNERMUL8; _c += 8; tmpm += 8;
2776 INNERMUL; ++_c;
2777 INNERMUL; ++_c;
2778 INNERMUL; ++_c;
2779 INNERMUL; ++_c;
2780 INNERMUL; ++_c;
2781 INNERMUL; ++_c;
2782 #else
2783 INNERMUL; ++_c;
2784 INNERMUL; ++_c;
2785 INNERMUL; ++_c;
2786 INNERMUL; ++_c;
2787 INNERMUL; ++_c;
2788 INNERMUL; ++_c;
2789 INNERMUL; ++_c;
2790 INNERMUL; ++_c;
2791 INNERMUL; ++_c;
2792 INNERMUL; ++_c;
2793 INNERMUL; ++_c;
2794 INNERMUL; ++_c;
2795 INNERMUL; ++_c;
2796 INNERMUL; ++_c;
2797 #endif
2798 LOOP_END;
2799 while (cy) {
2800 PROPCARRY;
2801 ++_c;
2802 }
2803 x = 13; cy = 0;
2804 LOOP_START;
2805 _c = c + 13;
2806 tmpm = m->dp;
2807 #ifdef INNERMUL8
2808 INNERMUL8; _c += 8; tmpm += 8;
2809 INNERMUL; ++_c;
2810 INNERMUL; ++_c;
2811 INNERMUL; ++_c;
2812 INNERMUL; ++_c;
2813 INNERMUL; ++_c;
2814 INNERMUL; ++_c;
2815 #else
2816 INNERMUL; ++_c;
2817 INNERMUL; ++_c;
2818 INNERMUL; ++_c;
2819 INNERMUL; ++_c;
2820 INNERMUL; ++_c;
2821 INNERMUL; ++_c;
2822 INNERMUL; ++_c;
2823 INNERMUL; ++_c;
2824 INNERMUL; ++_c;
2825 INNERMUL; ++_c;
2826 INNERMUL; ++_c;
2827 INNERMUL; ++_c;
2828 INNERMUL; ++_c;
2829 INNERMUL; ++_c;
2830 #endif
2831 LOOP_END;
2832 while (cy) {
2833 PROPCARRY;
2834 ++_c;
2835 }
2836 break;
2837 case 15:
2838 x = 0; cy = 0;
2839 LOOP_START;
2840 _c = c + 0;
2841 tmpm = m->dp;
2842 #ifdef INNERMUL8
2843 INNERMUL8; _c += 8; tmpm += 8;
2844 INNERMUL; ++_c;
2845 INNERMUL; ++_c;
2846 INNERMUL; ++_c;
2847 INNERMUL; ++_c;
2848 INNERMUL; ++_c;
2849 INNERMUL; ++_c;
2850 INNERMUL; ++_c;
2851 #else
2852 INNERMUL; ++_c;
2853 INNERMUL; ++_c;
2854 INNERMUL; ++_c;
2855 INNERMUL; ++_c;
2856 INNERMUL; ++_c;
2857 INNERMUL; ++_c;
2858 INNERMUL; ++_c;
2859 INNERMUL; ++_c;
2860 INNERMUL; ++_c;
2861 INNERMUL; ++_c;
2862 INNERMUL; ++_c;
2863 INNERMUL; ++_c;
2864 INNERMUL; ++_c;
2865 INNERMUL; ++_c;
2866 INNERMUL; ++_c;
2867 #endif
2868 LOOP_END;
2869 while (cy) {
2870 PROPCARRY;
2871 ++_c;
2872 }
2873 x = 1; cy = 0;
2874 LOOP_START;
2875 _c = c + 1;
2876 tmpm = m->dp;
2877 #ifdef INNERMUL8
2878 INNERMUL8; _c += 8; tmpm += 8;
2879 INNERMUL; ++_c;
2880 INNERMUL; ++_c;
2881 INNERMUL; ++_c;
2882 INNERMUL; ++_c;
2883 INNERMUL; ++_c;
2884 INNERMUL; ++_c;
2885 INNERMUL; ++_c;
2886 #else
2887 INNERMUL; ++_c;
2888 INNERMUL; ++_c;
2889 INNERMUL; ++_c;
2890 INNERMUL; ++_c;
2891 INNERMUL; ++_c;
2892 INNERMUL; ++_c;
2893 INNERMUL; ++_c;
2894 INNERMUL; ++_c;
2895 INNERMUL; ++_c;
2896 INNERMUL; ++_c;
2897 INNERMUL; ++_c;
2898 INNERMUL; ++_c;
2899 INNERMUL; ++_c;
2900 INNERMUL; ++_c;
2901 INNERMUL; ++_c;
2902 #endif
2903 LOOP_END;
2904 while (cy) {
2905 PROPCARRY;
2906 ++_c;
2907 }
2908 x = 2; cy = 0;
2909 LOOP_START;
2910 _c = c + 2;
2911 tmpm = m->dp;
2912 #ifdef INNERMUL8
2913 INNERMUL8; _c += 8; tmpm += 8;
2914 INNERMUL; ++_c;
2915 INNERMUL; ++_c;
2916 INNERMUL; ++_c;
2917 INNERMUL; ++_c;
2918 INNERMUL; ++_c;
2919 INNERMUL; ++_c;
2920 INNERMUL; ++_c;
2921 #else
2922 INNERMUL; ++_c;
2923 INNERMUL; ++_c;
2924 INNERMUL; ++_c;
2925 INNERMUL; ++_c;
2926 INNERMUL; ++_c;
2927 INNERMUL; ++_c;
2928 INNERMUL; ++_c;
2929 INNERMUL; ++_c;
2930 INNERMUL; ++_c;
2931 INNERMUL; ++_c;
2932 INNERMUL; ++_c;
2933 INNERMUL; ++_c;
2934 INNERMUL; ++_c;
2935 INNERMUL; ++_c;
2936 INNERMUL; ++_c;
2937 #endif
2938 LOOP_END;
2939 while (cy) {
2940 PROPCARRY;
2941 ++_c;
2942 }
2943 x = 3; cy = 0;
2944 LOOP_START;
2945 _c = c + 3;
2946 tmpm = m->dp;
2947 #ifdef INNERMUL8
2948 INNERMUL8; _c += 8; tmpm += 8;
2949 INNERMUL; ++_c;
2950 INNERMUL; ++_c;
2951 INNERMUL; ++_c;
2952 INNERMUL; ++_c;
2953 INNERMUL; ++_c;
2954 INNERMUL; ++_c;
2955 INNERMUL; ++_c;
2956 #else
2957 INNERMUL; ++_c;
2958 INNERMUL; ++_c;
2959 INNERMUL; ++_c;
2960 INNERMUL; ++_c;
2961 INNERMUL; ++_c;
2962 INNERMUL; ++_c;
2963 INNERMUL; ++_c;
2964 INNERMUL; ++_c;
2965 INNERMUL; ++_c;
2966 INNERMUL; ++_c;
2967 INNERMUL; ++_c;
2968 INNERMUL; ++_c;
2969 INNERMUL; ++_c;
2970 INNERMUL; ++_c;
2971 INNERMUL; ++_c;
2972 #endif
2973 LOOP_END;
2974 while (cy) {
2975 PROPCARRY;
2976 ++_c;
2977 }
2978 x = 4; cy = 0;
2979 LOOP_START;
2980 _c = c + 4;
2981 tmpm = m->dp;
2982 #ifdef INNERMUL8
2983 INNERMUL8; _c += 8; tmpm += 8;
2984 INNERMUL; ++_c;
2985 INNERMUL; ++_c;
2986 INNERMUL; ++_c;
2987 INNERMUL; ++_c;
2988 INNERMUL; ++_c;
2989 INNERMUL; ++_c;
2990 INNERMUL; ++_c;
2991 #else
2992 INNERMUL; ++_c;
2993 INNERMUL; ++_c;
2994 INNERMUL; ++_c;
2995 INNERMUL; ++_c;
2996 INNERMUL; ++_c;
2997 INNERMUL; ++_c;
2998 INNERMUL; ++_c;
2999 INNERMUL; ++_c;
3000 INNERMUL; ++_c;
3001 INNERMUL; ++_c;
3002 INNERMUL; ++_c;
3003 INNERMUL; ++_c;
3004 INNERMUL; ++_c;
3005 INNERMUL; ++_c;
3006 INNERMUL; ++_c;
3007 #endif
3008 LOOP_END;
3009 while (cy) {
3010 PROPCARRY;
3011 ++_c;
3012 }
3013 x = 5; cy = 0;
3014 LOOP_START;
3015 _c = c + 5;
3016 tmpm = m->dp;
3017 #ifdef INNERMUL8
3018 INNERMUL8; _c += 8; tmpm += 8;
3019 INNERMUL; ++_c;
3020 INNERMUL; ++_c;
3021 INNERMUL; ++_c;
3022 INNERMUL; ++_c;
3023 INNERMUL; ++_c;
3024 INNERMUL; ++_c;
3025 INNERMUL; ++_c;
3026 #else
3027 INNERMUL; ++_c;
3028 INNERMUL; ++_c;
3029 INNERMUL; ++_c;
3030 INNERMUL; ++_c;
3031 INNERMUL; ++_c;
3032 INNERMUL; ++_c;
3033 INNERMUL; ++_c;
3034 INNERMUL; ++_c;
3035 INNERMUL; ++_c;
3036 INNERMUL; ++_c;
3037 INNERMUL; ++_c;
3038 INNERMUL; ++_c;
3039 INNERMUL; ++_c;
3040 INNERMUL; ++_c;
3041 INNERMUL; ++_c;
3042 #endif
3043 LOOP_END;
3044 while (cy) {
3045 PROPCARRY;
3046 ++_c;
3047 }
3048 x = 6; cy = 0;
3049 LOOP_START;
3050 _c = c + 6;
3051 tmpm = m->dp;
3052 #ifdef INNERMUL8
3053 INNERMUL8; _c += 8; tmpm += 8;
3054 INNERMUL; ++_c;
3055 INNERMUL; ++_c;
3056 INNERMUL; ++_c;
3057 INNERMUL; ++_c;
3058 INNERMUL; ++_c;
3059 INNERMUL; ++_c;
3060 INNERMUL; ++_c;
3061 #else
3062 INNERMUL; ++_c;
3063 INNERMUL; ++_c;
3064 INNERMUL; ++_c;
3065 INNERMUL; ++_c;
3066 INNERMUL; ++_c;
3067 INNERMUL; ++_c;
3068 INNERMUL; ++_c;
3069 INNERMUL; ++_c;
3070 INNERMUL; ++_c;
3071 INNERMUL; ++_c;
3072 INNERMUL; ++_c;
3073 INNERMUL; ++_c;
3074 INNERMUL; ++_c;
3075 INNERMUL; ++_c;
3076 INNERMUL; ++_c;
3077 #endif
3078 LOOP_END;
3079 while (cy) {
3080 PROPCARRY;
3081 ++_c;
3082 }
3083 x = 7; cy = 0;
3084 LOOP_START;
3085 _c = c + 7;
3086 tmpm = m->dp;
3087 #ifdef INNERMUL8
3088 INNERMUL8; _c += 8; tmpm += 8;
3089 INNERMUL; ++_c;
3090 INNERMUL; ++_c;
3091 INNERMUL; ++_c;
3092 INNERMUL; ++_c;
3093 INNERMUL; ++_c;
3094 INNERMUL; ++_c;
3095 INNERMUL; ++_c;
3096 #else
3097 INNERMUL; ++_c;
3098 INNERMUL; ++_c;
3099 INNERMUL; ++_c;
3100 INNERMUL; ++_c;
3101 INNERMUL; ++_c;
3102 INNERMUL; ++_c;
3103 INNERMUL; ++_c;
3104 INNERMUL; ++_c;
3105 INNERMUL; ++_c;
3106 INNERMUL; ++_c;
3107 INNERMUL; ++_c;
3108 INNERMUL; ++_c;
3109 INNERMUL; ++_c;
3110 INNERMUL; ++_c;
3111 INNERMUL; ++_c;
3112 #endif
3113 LOOP_END;
3114 while (cy) {
3115 PROPCARRY;
3116 ++_c;
3117 }
3118 x = 8; cy = 0;
3119 LOOP_START;
3120 _c = c + 8;
3121 tmpm = m->dp;
3122 #ifdef INNERMUL8
3123 INNERMUL8; _c += 8; tmpm += 8;
3124 INNERMUL; ++_c;
3125 INNERMUL; ++_c;
3126 INNERMUL; ++_c;
3127 INNERMUL; ++_c;
3128 INNERMUL; ++_c;
3129 INNERMUL; ++_c;
3130 INNERMUL; ++_c;
3131 #else
3132 INNERMUL; ++_c;
3133 INNERMUL; ++_c;
3134 INNERMUL; ++_c;
3135 INNERMUL; ++_c;
3136 INNERMUL; ++_c;
3137 INNERMUL; ++_c;
3138 INNERMUL; ++_c;
3139 INNERMUL; ++_c;
3140 INNERMUL; ++_c;
3141 INNERMUL; ++_c;
3142 INNERMUL; ++_c;
3143 INNERMUL; ++_c;
3144 INNERMUL; ++_c;
3145 INNERMUL; ++_c;
3146 INNERMUL; ++_c;
3147 #endif
3148 LOOP_END;
3149 while (cy) {
3150 PROPCARRY;
3151 ++_c;
3152 }
3153 x = 9; cy = 0;
3154 LOOP_START;
3155 _c = c + 9;
3156 tmpm = m->dp;
3157 #ifdef INNERMUL8
3158 INNERMUL8; _c += 8; tmpm += 8;
3159 INNERMUL; ++_c;
3160 INNERMUL; ++_c;
3161 INNERMUL; ++_c;
3162 INNERMUL; ++_c;
3163 INNERMUL; ++_c;
3164 INNERMUL; ++_c;
3165 INNERMUL; ++_c;
3166 #else
3167 INNERMUL; ++_c;
3168 INNERMUL; ++_c;
3169 INNERMUL; ++_c;
3170 INNERMUL; ++_c;
3171 INNERMUL; ++_c;
3172 INNERMUL; ++_c;
3173 INNERMUL; ++_c;
3174 INNERMUL; ++_c;
3175 INNERMUL; ++_c;
3176 INNERMUL; ++_c;
3177 INNERMUL; ++_c;
3178 INNERMUL; ++_c;
3179 INNERMUL; ++_c;
3180 INNERMUL; ++_c;
3181 INNERMUL; ++_c;
3182 #endif
3183 LOOP_END;
3184 while (cy) {
3185 PROPCARRY;
3186 ++_c;
3187 }
3188 x = 10; cy = 0;
3189 LOOP_START;
3190 _c = c + 10;
3191 tmpm = m->dp;
3192 #ifdef INNERMUL8
3193 INNERMUL8; _c += 8; tmpm += 8;
3194 INNERMUL; ++_c;
3195 INNERMUL; ++_c;
3196 INNERMUL; ++_c;
3197 INNERMUL; ++_c;
3198 INNERMUL; ++_c;
3199 INNERMUL; ++_c;
3200 INNERMUL; ++_c;
3201 #else
3202 INNERMUL; ++_c;
3203 INNERMUL; ++_c;
3204 INNERMUL; ++_c;
3205 INNERMUL; ++_c;
3206 INNERMUL; ++_c;
3207 INNERMUL; ++_c;
3208 INNERMUL; ++_c;
3209 INNERMUL; ++_c;
3210 INNERMUL; ++_c;
3211 INNERMUL; ++_c;
3212 INNERMUL; ++_c;
3213 INNERMUL; ++_c;
3214 INNERMUL; ++_c;
3215 INNERMUL; ++_c;
3216 INNERMUL; ++_c;
3217 #endif
3218 LOOP_END;
3219 while (cy) {
3220 PROPCARRY;
3221 ++_c;
3222 }
3223 x = 11; cy = 0;
3224 LOOP_START;
3225 _c = c + 11;
3226 tmpm = m->dp;
3227 #ifdef INNERMUL8
3228 INNERMUL8; _c += 8; tmpm += 8;
3229 INNERMUL; ++_c;
3230 INNERMUL; ++_c;
3231 INNERMUL; ++_c;
3232 INNERMUL; ++_c;
3233 INNERMUL; ++_c;
3234 INNERMUL; ++_c;
3235 INNERMUL; ++_c;
3236 #else
3237 INNERMUL; ++_c;
3238 INNERMUL; ++_c;
3239 INNERMUL; ++_c;
3240 INNERMUL; ++_c;
3241 INNERMUL; ++_c;
3242 INNERMUL; ++_c;
3243 INNERMUL; ++_c;
3244 INNERMUL; ++_c;
3245 INNERMUL; ++_c;
3246 INNERMUL; ++_c;
3247 INNERMUL; ++_c;
3248 INNERMUL; ++_c;
3249 INNERMUL; ++_c;
3250 INNERMUL; ++_c;
3251 INNERMUL; ++_c;
3252 #endif
3253 LOOP_END;
3254 while (cy) {
3255 PROPCARRY;
3256 ++_c;
3257 }
3258 x = 12; cy = 0;
3259 LOOP_START;
3260 _c = c + 12;
3261 tmpm = m->dp;
3262 #ifdef INNERMUL8
3263 INNERMUL8; _c += 8; tmpm += 8;
3264 INNERMUL; ++_c;
3265 INNERMUL; ++_c;
3266 INNERMUL; ++_c;
3267 INNERMUL; ++_c;
3268 INNERMUL; ++_c;
3269 INNERMUL; ++_c;
3270 INNERMUL; ++_c;
3271 #else
3272 INNERMUL; ++_c;
3273 INNERMUL; ++_c;
3274 INNERMUL; ++_c;
3275 INNERMUL; ++_c;
3276 INNERMUL; ++_c;
3277 INNERMUL; ++_c;
3278 INNERMUL; ++_c;
3279 INNERMUL; ++_c;
3280 INNERMUL; ++_c;
3281 INNERMUL; ++_c;
3282 INNERMUL; ++_c;
3283 INNERMUL; ++_c;
3284 INNERMUL; ++_c;
3285 INNERMUL; ++_c;
3286 INNERMUL; ++_c;
3287 #endif
3288 LOOP_END;
3289 while (cy) {
3290 PROPCARRY;
3291 ++_c;
3292 }
3293 x = 13; cy = 0;
3294 LOOP_START;
3295 _c = c + 13;
3296 tmpm = m->dp;
3297 #ifdef INNERMUL8
3298 INNERMUL8; _c += 8; tmpm += 8;
3299 INNERMUL; ++_c;
3300 INNERMUL; ++_c;
3301 INNERMUL; ++_c;
3302 INNERMUL; ++_c;
3303 INNERMUL; ++_c;
3304 INNERMUL; ++_c;
3305 INNERMUL; ++_c;
3306 #else
3307 INNERMUL; ++_c;
3308 INNERMUL; ++_c;
3309 INNERMUL; ++_c;
3310 INNERMUL; ++_c;
3311 INNERMUL; ++_c;
3312 INNERMUL; ++_c;
3313 INNERMUL; ++_c;
3314 INNERMUL; ++_c;
3315 INNERMUL; ++_c;
3316 INNERMUL; ++_c;
3317 INNERMUL; ++_c;
3318 INNERMUL; ++_c;
3319 INNERMUL; ++_c;
3320 INNERMUL; ++_c;
3321 INNERMUL; ++_c;
3322 #endif
3323 LOOP_END;
3324 while (cy) {
3325 PROPCARRY;
3326 ++_c;
3327 }
3328 x = 14; cy = 0;
3329 LOOP_START;
3330 _c = c + 14;
3331 tmpm = m->dp;
3332 #ifdef INNERMUL8
3333 INNERMUL8; _c += 8; tmpm += 8;
3334 INNERMUL; ++_c;
3335 INNERMUL; ++_c;
3336 INNERMUL; ++_c;
3337 INNERMUL; ++_c;
3338 INNERMUL; ++_c;
3339 INNERMUL; ++_c;
3340 INNERMUL; ++_c;
3341 #else
3342 INNERMUL; ++_c;
3343 INNERMUL; ++_c;
3344 INNERMUL; ++_c;
3345 INNERMUL; ++_c;
3346 INNERMUL; ++_c;
3347 INNERMUL; ++_c;
3348 INNERMUL; ++_c;
3349 INNERMUL; ++_c;
3350 INNERMUL; ++_c;
3351 INNERMUL; ++_c;
3352 INNERMUL; ++_c;
3353 INNERMUL; ++_c;
3354 INNERMUL; ++_c;
3355 INNERMUL; ++_c;
3356 INNERMUL; ++_c;
3357 #endif
3358 LOOP_END;
3359 while (cy) {
3360 PROPCARRY;
3361 ++_c;
3362 }
3363 break;
3364 case 16:
3365 x = 0; cy = 0;
3366 LOOP_START;
3367 _c = c + 0;
3368 tmpm = m->dp;
3369 #ifdef INNERMUL8
3370 INNERMUL8; _c += 8; tmpm += 8;
3371 INNERMUL8; _c += 8; tmpm += 8;
3372 #else
3373 INNERMUL; ++_c;
3374 INNERMUL; ++_c;
3375 INNERMUL; ++_c;
3376 INNERMUL; ++_c;
3377 INNERMUL; ++_c;
3378 INNERMUL; ++_c;
3379 INNERMUL; ++_c;
3380 INNERMUL; ++_c;
3381 INNERMUL; ++_c;
3382 INNERMUL; ++_c;
3383 INNERMUL; ++_c;
3384 INNERMUL; ++_c;
3385 INNERMUL; ++_c;
3386 INNERMUL; ++_c;
3387 INNERMUL; ++_c;
3388 INNERMUL; ++_c;
3389 #endif
3390 LOOP_END;
3391 while (cy) {
3392 PROPCARRY;
3393 ++_c;
3394 }
3395 x = 1; cy = 0;
3396 LOOP_START;
3397 _c = c + 1;
3398 tmpm = m->dp;
3399 #ifdef INNERMUL8
3400 INNERMUL8; _c += 8; tmpm += 8;
3401 INNERMUL8; _c += 8; tmpm += 8;
3402 #else
3403 INNERMUL; ++_c;
3404 INNERMUL; ++_c;
3405 INNERMUL; ++_c;
3406 INNERMUL; ++_c;
3407 INNERMUL; ++_c;
3408 INNERMUL; ++_c;
3409 INNERMUL; ++_c;
3410 INNERMUL; ++_c;
3411 INNERMUL; ++_c;
3412 INNERMUL; ++_c;
3413 INNERMUL; ++_c;
3414 INNERMUL; ++_c;
3415 INNERMUL; ++_c;
3416 INNERMUL; ++_c;
3417 INNERMUL; ++_c;
3418 INNERMUL; ++_c;
3419 #endif
3420 LOOP_END;
3421 while (cy) {
3422 PROPCARRY;
3423 ++_c;
3424 }
3425 x = 2; cy = 0;
3426 LOOP_START;
3427 _c = c + 2;
3428 tmpm = m->dp;
3429 #ifdef INNERMUL8
3430 INNERMUL8; _c += 8; tmpm += 8;
3431 INNERMUL8; _c += 8; tmpm += 8;
3432 #else
3433 INNERMUL; ++_c;
3434 INNERMUL; ++_c;
3435 INNERMUL; ++_c;
3436 INNERMUL; ++_c;
3437 INNERMUL; ++_c;
3438 INNERMUL; ++_c;
3439 INNERMUL; ++_c;
3440 INNERMUL; ++_c;
3441 INNERMUL; ++_c;
3442 INNERMUL; ++_c;
3443 INNERMUL; ++_c;
3444 INNERMUL; ++_c;
3445 INNERMUL; ++_c;
3446 INNERMUL; ++_c;
3447 INNERMUL; ++_c;
3448 INNERMUL; ++_c;
3449 #endif
3450 LOOP_END;
3451 while (cy) {
3452 PROPCARRY;
3453 ++_c;
3454 }
3455 x = 3; cy = 0;
3456 LOOP_START;
3457 _c = c + 3;
3458 tmpm = m->dp;
3459 #ifdef INNERMUL8
3460 INNERMUL8; _c += 8; tmpm += 8;
3461 INNERMUL8; _c += 8; tmpm += 8;
3462 #else
3463 INNERMUL; ++_c;
3464 INNERMUL; ++_c;
3465 INNERMUL; ++_c;
3466 INNERMUL; ++_c;
3467 INNERMUL; ++_c;
3468 INNERMUL; ++_c;
3469 INNERMUL; ++_c;
3470 INNERMUL; ++_c;
3471 INNERMUL; ++_c;
3472 INNERMUL; ++_c;
3473 INNERMUL; ++_c;
3474 INNERMUL; ++_c;
3475 INNERMUL; ++_c;
3476 INNERMUL; ++_c;
3477 INNERMUL; ++_c;
3478 INNERMUL; ++_c;
3479 #endif
3480 LOOP_END;
3481 while (cy) {
3482 PROPCARRY;
3483 ++_c;
3484 }
3485 x = 4; cy = 0;
3486 LOOP_START;
3487 _c = c + 4;
3488 tmpm = m->dp;
3489 #ifdef INNERMUL8
3490 INNERMUL8; _c += 8; tmpm += 8;
3491 INNERMUL8; _c += 8; tmpm += 8;
3492 #else
3493 INNERMUL; ++_c;
3494 INNERMUL; ++_c;
3495 INNERMUL; ++_c;
3496 INNERMUL; ++_c;
3497 INNERMUL; ++_c;
3498 INNERMUL; ++_c;
3499 INNERMUL; ++_c;
3500 INNERMUL; ++_c;
3501 INNERMUL; ++_c;
3502 INNERMUL; ++_c;
3503 INNERMUL; ++_c;
3504 INNERMUL; ++_c;
3505 INNERMUL; ++_c;
3506 INNERMUL; ++_c;
3507 INNERMUL; ++_c;
3508 INNERMUL; ++_c;
3509 #endif
3510 LOOP_END;
3511 while (cy) {
3512 PROPCARRY;
3513 ++_c;
3514 }
3515 x = 5; cy = 0;
3516 LOOP_START;
3517 _c = c + 5;
3518 tmpm = m->dp;
3519 #ifdef INNERMUL8
3520 INNERMUL8; _c += 8; tmpm += 8;
3521 INNERMUL8; _c += 8; tmpm += 8;
3522 #else
3523 INNERMUL; ++_c;
3524 INNERMUL; ++_c;
3525 INNERMUL; ++_c;
3526 INNERMUL; ++_c;
3527 INNERMUL; ++_c;
3528 INNERMUL; ++_c;
3529 INNERMUL; ++_c;
3530 INNERMUL; ++_c;
3531 INNERMUL; ++_c;
3532 INNERMUL; ++_c;
3533 INNERMUL; ++_c;
3534 INNERMUL; ++_c;
3535 INNERMUL; ++_c;
3536 INNERMUL; ++_c;
3537 INNERMUL; ++_c;
3538 INNERMUL; ++_c;
3539 #endif
3540 LOOP_END;
3541 while (cy) {
3542 PROPCARRY;
3543 ++_c;
3544 }
3545 x = 6; cy = 0;
3546 LOOP_START;
3547 _c = c + 6;
3548 tmpm = m->dp;
3549 #ifdef INNERMUL8
3550 INNERMUL8; _c += 8; tmpm += 8;
3551 INNERMUL8; _c += 8; tmpm += 8;
3552 #else
3553 INNERMUL; ++_c;
3554 INNERMUL; ++_c;
3555 INNERMUL; ++_c;
3556 INNERMUL; ++_c;
3557 INNERMUL; ++_c;
3558 INNERMUL; ++_c;
3559 INNERMUL; ++_c;
3560 INNERMUL; ++_c;
3561 INNERMUL; ++_c;
3562 INNERMUL; ++_c;
3563 INNERMUL; ++_c;
3564 INNERMUL; ++_c;
3565 INNERMUL; ++_c;
3566 INNERMUL; ++_c;
3567 INNERMUL; ++_c;
3568 INNERMUL; ++_c;
3569 #endif
3570 LOOP_END;
3571 while (cy) {
3572 PROPCARRY;
3573 ++_c;
3574 }
3575 x = 7; cy = 0;
3576 LOOP_START;
3577 _c = c + 7;
3578 tmpm = m->dp;
3579 #ifdef INNERMUL8
3580 INNERMUL8; _c += 8; tmpm += 8;
3581 INNERMUL8; _c += 8; tmpm += 8;
3582 #else
3583 INNERMUL; ++_c;
3584 INNERMUL; ++_c;
3585 INNERMUL; ++_c;
3586 INNERMUL; ++_c;
3587 INNERMUL; ++_c;
3588 INNERMUL; ++_c;
3589 INNERMUL; ++_c;
3590 INNERMUL; ++_c;
3591 INNERMUL; ++_c;
3592 INNERMUL; ++_c;
3593 INNERMUL; ++_c;
3594 INNERMUL; ++_c;
3595 INNERMUL; ++_c;
3596 INNERMUL; ++_c;
3597 INNERMUL; ++_c;
3598 INNERMUL; ++_c;
3599 #endif
3600 LOOP_END;
3601 while (cy) {
3602 PROPCARRY;
3603 ++_c;
3604 }
3605 x = 8; cy = 0;
3606 LOOP_START;
3607 _c = c + 8;
3608 tmpm = m->dp;
3609 #ifdef INNERMUL8
3610 INNERMUL8; _c += 8; tmpm += 8;
3611 INNERMUL8; _c += 8; tmpm += 8;
3612 #else
3613 INNERMUL; ++_c;
3614 INNERMUL; ++_c;
3615 INNERMUL; ++_c;
3616 INNERMUL; ++_c;
3617 INNERMUL; ++_c;
3618 INNERMUL; ++_c;
3619 INNERMUL; ++_c;
3620 INNERMUL; ++_c;
3621 INNERMUL; ++_c;
3622 INNERMUL; ++_c;
3623 INNERMUL; ++_c;
3624 INNERMUL; ++_c;
3625 INNERMUL; ++_c;
3626 INNERMUL; ++_c;
3627 INNERMUL; ++_c;
3628 INNERMUL; ++_c;
3629 #endif
3630 LOOP_END;
3631 while (cy) {
3632 PROPCARRY;
3633 ++_c;
3634 }
3635 x = 9; cy = 0;
3636 LOOP_START;
3637 _c = c + 9;
3638 tmpm = m->dp;
3639 #ifdef INNERMUL8
3640 INNERMUL8; _c += 8; tmpm += 8;
3641 INNERMUL8; _c += 8; tmpm += 8;
3642 #else
3643 INNERMUL; ++_c;
3644 INNERMUL; ++_c;
3645 INNERMUL; ++_c;
3646 INNERMUL; ++_c;
3647 INNERMUL; ++_c;
3648 INNERMUL; ++_c;
3649 INNERMUL; ++_c;
3650 INNERMUL; ++_c;
3651 INNERMUL; ++_c;
3652 INNERMUL; ++_c;
3653 INNERMUL; ++_c;
3654 INNERMUL; ++_c;
3655 INNERMUL; ++_c;
3656 INNERMUL; ++_c;
3657 INNERMUL; ++_c;
3658 INNERMUL; ++_c;
3659 #endif
3660 LOOP_END;
3661 while (cy) {
3662 PROPCARRY;
3663 ++_c;
3664 }
3665 x = 10; cy = 0;
3666 LOOP_START;
3667 _c = c + 10;
3668 tmpm = m->dp;
3669 #ifdef INNERMUL8
3670 INNERMUL8; _c += 8; tmpm += 8;
3671 INNERMUL8; _c += 8; tmpm += 8;
3672 #else
3673 INNERMUL; ++_c;
3674 INNERMUL; ++_c;
3675 INNERMUL; ++_c;
3676 INNERMUL; ++_c;
3677 INNERMUL; ++_c;
3678 INNERMUL; ++_c;
3679 INNERMUL; ++_c;
3680 INNERMUL; ++_c;
3681 INNERMUL; ++_c;
3682 INNERMUL; ++_c;
3683 INNERMUL; ++_c;
3684 INNERMUL; ++_c;
3685 INNERMUL; ++_c;
3686 INNERMUL; ++_c;
3687 INNERMUL; ++_c;
3688 INNERMUL; ++_c;
3689 #endif
3690 LOOP_END;
3691 while (cy) {
3692 PROPCARRY;
3693 ++_c;
3694 }
3695 x = 11; cy = 0;
3696 LOOP_START;
3697 _c = c + 11;
3698 tmpm = m->dp;
3699 #ifdef INNERMUL8
3700 INNERMUL8; _c += 8; tmpm += 8;
3701 INNERMUL8; _c += 8; tmpm += 8;
3702 #else
3703 INNERMUL; ++_c;
3704 INNERMUL; ++_c;
3705 INNERMUL; ++_c;
3706 INNERMUL; ++_c;
3707 INNERMUL; ++_c;
3708 INNERMUL; ++_c;
3709 INNERMUL; ++_c;
3710 INNERMUL; ++_c;
3711 INNERMUL; ++_c;
3712 INNERMUL; ++_c;
3713 INNERMUL; ++_c;
3714 INNERMUL; ++_c;
3715 INNERMUL; ++_c;
3716 INNERMUL; ++_c;
3717 INNERMUL; ++_c;
3718 INNERMUL; ++_c;
3719 #endif
3720 LOOP_END;
3721 while (cy) {
3722 PROPCARRY;
3723 ++_c;
3724 }
3725 x = 12; cy = 0;
3726 LOOP_START;
3727 _c = c + 12;
3728 tmpm = m->dp;
3729 #ifdef INNERMUL8
3730 INNERMUL8; _c += 8; tmpm += 8;
3731 INNERMUL8; _c += 8; tmpm += 8;
3732 #else
3733 INNERMUL; ++_c;
3734 INNERMUL; ++_c;
3735 INNERMUL; ++_c;
3736 INNERMUL; ++_c;
3737 INNERMUL; ++_c;
3738 INNERMUL; ++_c;
3739 INNERMUL; ++_c;
3740 INNERMUL; ++_c;
3741 INNERMUL; ++_c;
3742 INNERMUL; ++_c;
3743 INNERMUL; ++_c;
3744 INNERMUL; ++_c;
3745 INNERMUL; ++_c;
3746 INNERMUL; ++_c;
3747 INNERMUL; ++_c;
3748 INNERMUL; ++_c;
3749 #endif
3750 LOOP_END;
3751 while (cy) {
3752 PROPCARRY;
3753 ++_c;
3754 }
3755 x = 13; cy = 0;
3756 LOOP_START;
3757 _c = c + 13;
3758 tmpm = m->dp;
3759 #ifdef INNERMUL8
3760 INNERMUL8; _c += 8; tmpm += 8;
3761 INNERMUL8; _c += 8; tmpm += 8;
3762 #else
3763 INNERMUL; ++_c;
3764 INNERMUL; ++_c;
3765 INNERMUL; ++_c;
3766 INNERMUL; ++_c;
3767 INNERMUL; ++_c;
3768 INNERMUL; ++_c;
3769 INNERMUL; ++_c;
3770 INNERMUL; ++_c;
3771 INNERMUL; ++_c;
3772 INNERMUL; ++_c;
3773 INNERMUL; ++_c;
3774 INNERMUL; ++_c;
3775 INNERMUL; ++_c;
3776 INNERMUL; ++_c;
3777 INNERMUL; ++_c;
3778 INNERMUL; ++_c;
3779 #endif
3780 LOOP_END;
3781 while (cy) {
3782 PROPCARRY;
3783 ++_c;
3784 }
3785 x = 14; cy = 0;
3786 LOOP_START;
3787 _c = c + 14;
3788 tmpm = m->dp;
3789 #ifdef INNERMUL8
3790 INNERMUL8; _c += 8; tmpm += 8;
3791 INNERMUL8; _c += 8; tmpm += 8;
3792 #else
3793 INNERMUL; ++_c;
3794 INNERMUL; ++_c;
3795 INNERMUL; ++_c;
3796 INNERMUL; ++_c;
3797 INNERMUL; ++_c;
3798 INNERMUL; ++_c;
3799 INNERMUL; ++_c;
3800 INNERMUL; ++_c;
3801 INNERMUL; ++_c;
3802 INNERMUL; ++_c;
3803 INNERMUL; ++_c;
3804 INNERMUL; ++_c;
3805 INNERMUL; ++_c;
3806 INNERMUL; ++_c;
3807 INNERMUL; ++_c;
3808 INNERMUL; ++_c;
3809 #endif
3810 LOOP_END;
3811 while (cy) {
3812 PROPCARRY;
3813 ++_c;
3814 }
3815 x = 15; cy = 0;
3816 LOOP_START;
3817 _c = c + 15;
3818 tmpm = m->dp;
3819 #ifdef INNERMUL8
3820 INNERMUL8; _c += 8; tmpm += 8;
3821 INNERMUL8; _c += 8; tmpm += 8;
3822 #else
3823 INNERMUL; ++_c;
3824 INNERMUL; ++_c;
3825 INNERMUL; ++_c;
3826 INNERMUL; ++_c;
3827 INNERMUL; ++_c;
3828 INNERMUL; ++_c;
3829 INNERMUL; ++_c;
3830 INNERMUL; ++_c;
3831 INNERMUL; ++_c;
3832 INNERMUL; ++_c;
3833 INNERMUL; ++_c;
3834 INNERMUL; ++_c;
3835 INNERMUL; ++_c;
3836 INNERMUL; ++_c;
3837 INNERMUL; ++_c;
3838 INNERMUL; ++_c;
3839 #endif
3840 LOOP_END;
3841 while (cy) {
3842 PROPCARRY;
3843 ++_c;
3844 }
3845 break;
3846 }
3847 /* now copy out */
3848 _c = c + pa;
3849 tmpm = a->dp;
3850 for (x = 0; x < pa+1; x++) {
3851 *tmpm++ = *_c++;
3852 }
3853
3854 for (; x < oldused; x++) {
3855 *tmpm++ = 0;
3856 }
3857
3858 MONT_FINI;
3859
3860 a->used = pa+1;
3861 fp_clamp(a);
3862
3863 /* if A >= m then A = A - m */
3864 if (fp_cmp_mag (a, m) != FP_LT) {
3865 s_fp_sub (a, m, a);
3866 }
3867
3868 #ifdef WOLFSSL_SMALL_STACK
3869 XFREE(c, NULL, DYNAMIC_TYPE_TMP_BUFFER);
3870 #endif
3871 return FP_OKAY;
3872 }
3873
3874 #endif
3875