1 %ifidn __OUTPUT_FORMAT__
,obj
2 section code use32 class
=code
align=64
3 %elifidn __OUTPUT_FORMAT__
,win32
4 %ifdef __YASM_VERSION_ID__
5 %if __YASM_VERSION_ID__
< 01010000h
6 %error yasm version
1.1.0 or later needed.
8 ; Yasm automatically includes .00 and complains about redefining it.
9 ; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
13 section .text code
align=64
20 L$
_bn_mul_comba8_begin:
22 mov esi,DWORD [12+esp]
24 mov edi,DWORD [20+esp]
31 ; ################## Calculate word 0
36 mov eax,DWORD [20+esp]
43 ; ################## Calculate word 1
55 mov eax,DWORD [20+esp]
62 ; ################## Calculate word 2
81 mov eax,DWORD [20+esp]
86 mov eax,DWORD [12+esi]
88 ; ################## Calculate word 3
100 mov eax,DWORD [4+esi]
102 mov edx,DWORD [8+edi]
109 mov edx,DWORD [12+edi]
114 mov eax,DWORD [20+esp]
118 mov DWORD [12+eax],ebx
119 mov eax,DWORD [16+esi]
121 ; ################## Calculate word 4
126 mov eax,DWORD [12+esi]
128 mov edx,DWORD [4+edi]
133 mov eax,DWORD [8+esi]
135 mov edx,DWORD [8+edi]
140 mov eax,DWORD [4+esi]
142 mov edx,DWORD [12+edi]
149 mov edx,DWORD [16+edi]
154 mov eax,DWORD [20+esp]
158 mov DWORD [16+eax],ecx
159 mov eax,DWORD [20+esi]
161 ; ################## Calculate word 5
166 mov eax,DWORD [16+esi]
168 mov edx,DWORD [4+edi]
173 mov eax,DWORD [12+esi]
175 mov edx,DWORD [8+edi]
180 mov eax,DWORD [8+esi]
182 mov edx,DWORD [12+edi]
187 mov eax,DWORD [4+esi]
189 mov edx,DWORD [16+edi]
196 mov edx,DWORD [20+edi]
201 mov eax,DWORD [20+esp]
205 mov DWORD [20+eax],ebp
206 mov eax,DWORD [24+esi]
208 ; ################## Calculate word 6
213 mov eax,DWORD [20+esi]
215 mov edx,DWORD [4+edi]
220 mov eax,DWORD [16+esi]
222 mov edx,DWORD [8+edi]
227 mov eax,DWORD [12+esi]
229 mov edx,DWORD [12+edi]
234 mov eax,DWORD [8+esi]
236 mov edx,DWORD [16+edi]
241 mov eax,DWORD [4+esi]
243 mov edx,DWORD [20+edi]
250 mov edx,DWORD [24+edi]
255 mov eax,DWORD [20+esp]
259 mov DWORD [24+eax],ebx
260 mov eax,DWORD [28+esi]
262 ; ################## Calculate word 7
267 mov eax,DWORD [24+esi]
269 mov edx,DWORD [4+edi]
274 mov eax,DWORD [20+esi]
276 mov edx,DWORD [8+edi]
281 mov eax,DWORD [16+esi]
283 mov edx,DWORD [12+edi]
288 mov eax,DWORD [12+esi]
290 mov edx,DWORD [16+edi]
295 mov eax,DWORD [8+esi]
297 mov edx,DWORD [20+edi]
302 mov eax,DWORD [4+esi]
304 mov edx,DWORD [24+edi]
311 mov edx,DWORD [28+edi]
316 mov eax,DWORD [20+esp]
318 mov edx,DWORD [4+edi]
320 mov DWORD [28+eax],ecx
321 mov eax,DWORD [28+esi]
323 ; ################## Calculate word 8
328 mov eax,DWORD [24+esi]
330 mov edx,DWORD [8+edi]
335 mov eax,DWORD [20+esi]
337 mov edx,DWORD [12+edi]
342 mov eax,DWORD [16+esi]
344 mov edx,DWORD [16+edi]
349 mov eax,DWORD [12+esi]
351 mov edx,DWORD [20+edi]
356 mov eax,DWORD [8+esi]
358 mov edx,DWORD [24+edi]
363 mov eax,DWORD [4+esi]
365 mov edx,DWORD [28+edi]
370 mov eax,DWORD [20+esp]
372 mov edx,DWORD [8+edi]
374 mov DWORD [32+eax],ebp
375 mov eax,DWORD [28+esi]
377 ; ################## Calculate word 9
382 mov eax,DWORD [24+esi]
384 mov edx,DWORD [12+edi]
389 mov eax,DWORD [20+esi]
391 mov edx,DWORD [16+edi]
396 mov eax,DWORD [16+esi]
398 mov edx,DWORD [20+edi]
403 mov eax,DWORD [12+esi]
405 mov edx,DWORD [24+edi]
410 mov eax,DWORD [8+esi]
412 mov edx,DWORD [28+edi]
417 mov eax,DWORD [20+esp]
419 mov edx,DWORD [12+edi]
421 mov DWORD [36+eax],ebx
422 mov eax,DWORD [28+esi]
424 ; ################## Calculate word 10
429 mov eax,DWORD [24+esi]
431 mov edx,DWORD [16+edi]
436 mov eax,DWORD [20+esi]
438 mov edx,DWORD [20+edi]
443 mov eax,DWORD [16+esi]
445 mov edx,DWORD [24+edi]
450 mov eax,DWORD [12+esi]
452 mov edx,DWORD [28+edi]
457 mov eax,DWORD [20+esp]
459 mov edx,DWORD [16+edi]
461 mov DWORD [40+eax],ecx
462 mov eax,DWORD [28+esi]
464 ; ################## Calculate word 11
469 mov eax,DWORD [24+esi]
471 mov edx,DWORD [20+edi]
476 mov eax,DWORD [20+esi]
478 mov edx,DWORD [24+edi]
483 mov eax,DWORD [16+esi]
485 mov edx,DWORD [28+edi]
490 mov eax,DWORD [20+esp]
492 mov edx,DWORD [20+edi]
494 mov DWORD [44+eax],ebp
495 mov eax,DWORD [28+esi]
497 ; ################## Calculate word 12
502 mov eax,DWORD [24+esi]
504 mov edx,DWORD [24+edi]
509 mov eax,DWORD [20+esi]
511 mov edx,DWORD [28+edi]
516 mov eax,DWORD [20+esp]
518 mov edx,DWORD [24+edi]
520 mov DWORD [48+eax],ebx
521 mov eax,DWORD [28+esi]
523 ; ################## Calculate word 13
528 mov eax,DWORD [24+esi]
530 mov edx,DWORD [28+edi]
535 mov eax,DWORD [20+esp]
537 mov edx,DWORD [28+edi]
539 mov DWORD [52+eax],ecx
540 mov eax,DWORD [28+esi]
542 ; ################## Calculate word 14
547 mov eax,DWORD [20+esp]
550 mov DWORD [56+eax],ebp
553 mov DWORD [60+eax],ebx
559 global _bn_mul_comba4
562 L$
_bn_mul_comba4_begin:
564 mov esi,DWORD [12+esp]
566 mov edi,DWORD [20+esp]
573 ; ################## Calculate word 0
578 mov eax,DWORD [20+esp]
583 mov eax,DWORD [4+esi]
585 ; ################## Calculate word 1
592 mov edx,DWORD [4+edi]
597 mov eax,DWORD [20+esp]
601 mov DWORD [4+eax],ecx
602 mov eax,DWORD [8+esi]
604 ; ################## Calculate word 2
609 mov eax,DWORD [4+esi]
611 mov edx,DWORD [4+edi]
618 mov edx,DWORD [8+edi]
623 mov eax,DWORD [20+esp]
627 mov DWORD [8+eax],ebp
628 mov eax,DWORD [12+esi]
630 ; ################## Calculate word 3
635 mov eax,DWORD [8+esi]
637 mov edx,DWORD [4+edi]
642 mov eax,DWORD [4+esi]
644 mov edx,DWORD [8+edi]
651 mov edx,DWORD [12+edi]
656 mov eax,DWORD [20+esp]
658 mov edx,DWORD [4+edi]
660 mov DWORD [12+eax],ebx
661 mov eax,DWORD [12+esi]
663 ; ################## Calculate word 4
668 mov eax,DWORD [8+esi]
670 mov edx,DWORD [8+edi]
675 mov eax,DWORD [4+esi]
677 mov edx,DWORD [12+edi]
682 mov eax,DWORD [20+esp]
684 mov edx,DWORD [8+edi]
686 mov DWORD [16+eax],ecx
687 mov eax,DWORD [12+esi]
689 ; ################## Calculate word 5
694 mov eax,DWORD [8+esi]
696 mov edx,DWORD [12+edi]
701 mov eax,DWORD [20+esp]
703 mov edx,DWORD [12+edi]
705 mov DWORD [20+eax],ebp
706 mov eax,DWORD [12+esi]
708 ; ################## Calculate word 6
713 mov eax,DWORD [20+esp]
716 mov DWORD [24+eax],ebx
719 mov DWORD [28+eax],ecx
725 global _bn_sqr_comba8
728 L$
_bn_sqr_comba8_begin:
733 mov edi,DWORD [20+esp]
734 mov esi,DWORD [24+esp]
738 ; ############### Calculate word 0
747 mov eax,DWORD [4+esi]
749 ; ############### Calculate word 1
758 mov eax,DWORD [8+esi]
760 mov DWORD [4+edi],ecx
763 ; ############### Calculate word 2
772 mov eax,DWORD [4+esi]
780 mov DWORD [8+edi],ebp
781 mov eax,DWORD [12+esi]
783 ; ############### Calculate word 3
792 mov eax,DWORD [8+esi]
794 mov edx,DWORD [4+esi]
802 mov eax,DWORD [16+esi]
804 mov DWORD [12+edi],ebx
807 ; ############### Calculate word 4
816 mov eax,DWORD [12+esi]
818 mov edx,DWORD [4+esi]
826 mov eax,DWORD [8+esi]
834 mov DWORD [16+edi],ecx
835 mov eax,DWORD [20+esi]
837 ; ############### Calculate word 5
846 mov eax,DWORD [16+esi]
848 mov edx,DWORD [4+esi]
856 mov eax,DWORD [12+esi]
858 mov edx,DWORD [8+esi]
866 mov eax,DWORD [24+esi]
868 mov DWORD [20+edi],ebp
871 ; ############### Calculate word 6
880 mov eax,DWORD [20+esi]
882 mov edx,DWORD [4+esi]
890 mov eax,DWORD [16+esi]
892 mov edx,DWORD [8+esi]
900 mov eax,DWORD [12+esi]
908 mov DWORD [24+edi],ebx
909 mov eax,DWORD [28+esi]
911 ; ############### Calculate word 7
920 mov eax,DWORD [24+esi]
922 mov edx,DWORD [4+esi]
930 mov eax,DWORD [20+esi]
932 mov edx,DWORD [8+esi]
940 mov eax,DWORD [16+esi]
942 mov edx,DWORD [12+esi]
950 mov eax,DWORD [28+esi]
952 mov DWORD [28+edi],ecx
953 mov edx,DWORD [4+esi]
955 ; ############### Calculate word 8
964 mov eax,DWORD [24+esi]
966 mov edx,DWORD [8+esi]
974 mov eax,DWORD [20+esi]
976 mov edx,DWORD [12+esi]
984 mov eax,DWORD [16+esi]
990 mov edx,DWORD [8+esi]
992 mov DWORD [32+edi],ebp
993 mov eax,DWORD [28+esi]
995 ; ############### Calculate word 9
1004 mov eax,DWORD [24+esi]
1006 mov edx,DWORD [12+esi]
1014 mov eax,DWORD [20+esi]
1016 mov edx,DWORD [16+esi]
1024 mov eax,DWORD [28+esi]
1026 mov DWORD [36+edi],ebx
1027 mov edx,DWORD [12+esi]
1029 ; ############### Calculate word 10
1038 mov eax,DWORD [24+esi]
1040 mov edx,DWORD [16+esi]
1048 mov eax,DWORD [20+esi]
1054 mov edx,DWORD [16+esi]
1056 mov DWORD [40+edi],ecx
1057 mov eax,DWORD [28+esi]
1059 ; ############### Calculate word 11
1068 mov eax,DWORD [24+esi]
1070 mov edx,DWORD [20+esi]
1078 mov eax,DWORD [28+esi]
1080 mov DWORD [44+edi],ebp
1081 mov edx,DWORD [20+esi]
1083 ; ############### Calculate word 12
1092 mov eax,DWORD [24+esi]
1098 mov edx,DWORD [24+esi]
1100 mov DWORD [48+edi],ebx
1101 mov eax,DWORD [28+esi]
1103 ; ############### Calculate word 13
1112 mov eax,DWORD [28+esi]
1114 mov DWORD [52+edi],ecx
1116 ; ############### Calculate word 14
1123 mov DWORD [56+edi],ebp
1125 mov DWORD [60+edi],ebx
1131 global _bn_sqr_comba4
1134 L$
_bn_sqr_comba4_begin:
1139 mov edi,DWORD [20+esp]
1140 mov esi,DWORD [24+esp]
1144 ; ############### Calculate word 0
1153 mov eax,DWORD [4+esi]
1155 ; ############### Calculate word 1
1164 mov eax,DWORD [8+esi]
1166 mov DWORD [4+edi],ecx
1169 ; ############### Calculate word 2
1178 mov eax,DWORD [4+esi]
1186 mov DWORD [8+edi],ebp
1187 mov eax,DWORD [12+esi]
1189 ; ############### Calculate word 3
1198 mov eax,DWORD [8+esi]
1200 mov edx,DWORD [4+esi]
1208 mov eax,DWORD [12+esi]
1210 mov DWORD [12+edi],ebx
1211 mov edx,DWORD [4+esi]
1213 ; ############### Calculate word 4
1222 mov eax,DWORD [8+esi]
1228 mov edx,DWORD [8+esi]
1230 mov DWORD [16+edi],ecx
1231 mov eax,DWORD [12+esi]
1233 ; ############### Calculate word 5
1242 mov eax,DWORD [12+esi]
1244 mov DWORD [20+edi],ebp
1246 ; ############### Calculate word 6
1253 mov DWORD [24+edi],ebx
1255 mov DWORD [28+edi],ecx