2 # Do not modify. This file is auto-generated from x86_64-mont.pl.
6 .type bn_mul_mont,@function
30 leaq (%rsp,%r10,8),%rsp
33 movq %r11,8(%rsp,%r9,8)
44 movq (%rsp,%r11,1),%r10
77 movq (%rsi,%r15,8),%rax
82 movq %r13,-16(%rsp,%r15,8)
88 movq (%rcx,%r15,8),%rax
102 movq %r13,-16(%rsp,%r15,8)
109 movq %r13,-8(%rsp,%r9,8)
110 movq %rdx,(%rsp,%r9,8)
116 movq (%r12,%r14,8),%rbx
141 movq (%rsi,%r15,8),%rax
144 movq (%rsp,%r15,8),%r10
146 movq %r13,-16(%rsp,%r15,8)
152 movq (%rcx,%r15,8),%rax
167 movq (%rsp,%r15,8),%r10
169 movq %r13,-16(%rsp,%r15,8)
177 movq %r13,-8(%rsp,%r9,8)
178 movq %rdx,(%rsp,%r9,8)
190 .Lsub: sbbq (%rcx,%r14,8),%rax
191 movq %rax,(%rdi,%r14,8)
192 movq 8(%rsi,%r14,8),%rax
207 movq (%rsi,%r14,8),%rax
208 movq %r14,(%rsp,%r14,8)
209 movq %rax,(%rdi,%r14,8)
214 movq 8(%rsp,%r9,8),%rsi
225 .size bn_mul_mont,.-bn_mul_mont
226 .type bn_mul4x_mont,@function
241 leaq (%rsp,%r10,8),%rsp
244 movq %r11,8(%rsp,%r9,8)
249 movq (%rsp,%r11,1),%r10
252 jnc .Lmul4x_page_walk
254 movq %rdi,16(%rsp,%r9,8)
297 movq -16(%rcx,%r15,8),%rax
303 movq -8(%rsi,%r15,8),%rax
307 movq %r13,-24(%rsp,%r15,8)
312 movq -8(%rcx,%r15,8),%rax
318 movq (%rsi,%r15,8),%rax
322 movq %rdi,-16(%rsp,%r15,8)
327 movq (%rcx,%r15,8),%rax
333 movq 8(%rsi,%r15,8),%rax
337 movq %r13,-8(%rsp,%r15,8)
342 movq 8(%rcx,%r15,8),%rax
349 movq -16(%rsi,%r15,8),%rax
353 movq %rdi,-32(%rsp,%r15,8)
360 movq -16(%rcx,%r15,8),%rax
366 movq -8(%rsi,%r15,8),%rax
370 movq %r13,-24(%rsp,%r15,8)
375 movq -8(%rcx,%r15,8),%rax
385 movq %rdi,-16(%rsp,%r15,8)
391 movq %r13,-8(%rsp,%r15,8)
392 movq %rdi,(%rsp,%r15,8)
397 movq (%r12,%r14,8),%rbx
437 movq -16(%rcx,%r15,8),%rax
439 addq -16(%rsp,%r15,8),%r10
445 movq -8(%rsi,%r15,8),%rax
449 movq %r13,-24(%rsp,%r15,8)
454 movq -8(%rcx,%r15,8),%rax
456 addq -8(%rsp,%r15,8),%r11
462 movq (%rsi,%r15,8),%rax
466 movq %rdi,-16(%rsp,%r15,8)
471 movq (%rcx,%r15,8),%rax
473 addq (%rsp,%r15,8),%r10
479 movq 8(%rsi,%r15,8),%rax
483 movq %r13,-8(%rsp,%r15,8)
488 movq 8(%rcx,%r15,8),%rax
490 addq 8(%rsp,%r15,8),%r11
497 movq -16(%rsi,%r15,8),%rax
501 movq %rdi,-32(%rsp,%r15,8)
508 movq -16(%rcx,%r15,8),%rax
510 addq -16(%rsp,%r15,8),%r10
516 movq -8(%rsi,%r15,8),%rax
520 movq %r13,-24(%rsp,%r15,8)
525 movq -8(%rcx,%r15,8),%rax
527 addq -8(%rsp,%r15,8),%r11
538 movq %rdi,-16(%rsp,%r15,8)
544 addq (%rsp,%r9,8),%r13
546 movq %r13,-8(%rsp,%r15,8)
547 movq %rdi,(%rsp,%r15,8)
551 movq 16(%rsp,%r9,8),%rdi
567 movq %rax,0(%rdi,%r14,8)
568 movq %rdx,8(%rdi,%r14,8)
569 sbbq 16(%rcx,%r14,8),%rbx
570 movq 32(%rsi,%r14,8),%rax
571 movq 40(%rsi,%r14,8),%rdx
572 sbbq 24(%rcx,%r14,8),%rbp
573 movq %rbx,16(%rdi,%r14,8)
574 movq %rbp,24(%rdi,%r14,8)
575 sbbq 32(%rcx,%r14,8),%rax
576 movq 48(%rsi,%r14,8),%rbx
577 movq 56(%rsi,%r14,8),%rbp
578 sbbq 40(%rcx,%r14,8),%rdx
583 movq %rax,0(%rdi,%r14,8)
584 movq 32(%rsi,%r14,8),%rax
585 sbbq 16(%rcx,%r14,8),%rbx
586 movq %rdx,8(%rdi,%r14,8)
587 sbbq 24(%rcx,%r14,8),%rbp
588 movq %rbx,16(%rdi,%r14,8)
591 movq %rbp,24(%rdi,%r14,8)
606 movdqu 16(%rsi,%r14,1),%xmm2
607 movdqu 32(%rsi,%r14,1),%xmm1
608 movdqa %xmm0,16(%rsp,%r14,1)
609 movdqu %xmm2,16(%rdi,%r14,1)
610 movdqa %xmm0,32(%rsp,%r14,1)
611 movdqu %xmm1,32(%rdi,%r14,1)
617 movdqu 16(%rsi,%r14,1),%xmm2
618 movdqa %xmm0,16(%rsp,%r14,1)
619 movdqu %xmm2,16(%rdi,%r14,1)
620 movq 8(%rsp,%r9,8),%rsi
631 .size bn_mul4x_mont,.-bn_mul4x_mont
632 .type bn_sqr4x_mont,@function
648 leaq -72(%rsp,%r9,2),%rsp
654 movq (%rsp,%r11,1),%r10
657 jnc .Lsqr4x_page_walk
686 leaq (%rsi,%r9,1),%rsi
691 movq -32(%rsi,%rbp,1),%r14
692 leaq 64(%rsp,%r9,2),%rdi
693 movq -24(%rsi,%rbp,1),%rax
694 leaq -32(%rdi,%rbp,1),%rdi
695 movq -16(%rsi,%rbp,1),%rbx
702 movq %r10,-24(%rdi,%rbp,1)
709 movq %r11,-16(%rdi,%rbp,1)
714 movq 8(%rsi,%rcx,1),%rbx
728 movq %r10,-8(%rdi,%rcx,1)
733 movq (%rsi,%rcx,1),%rbx
747 movq %r11,(%rdi,%rcx,1)
750 movq 8(%rsi,%rcx,1),%rbx
764 movq %r10,8(%rdi,%rcx,1)
766 movq 16(%rsi,%rcx,1),%rbx
780 movq %r11,16(%rdi,%rcx,1)
783 movq 24(%rsi,%rcx,1),%rbx
798 movq %r10,-8(%rdi,%rcx,1)
817 movq -32(%rsi,%rbp,1),%r14
818 leaq 64(%rsp,%r9,2),%rdi
819 movq -24(%rsi,%rbp,1),%rax
820 leaq -32(%rdi,%rbp,1),%rdi
821 movq -16(%rsi,%rbp,1),%rbx
824 movq -24(%rdi,%rbp,1),%r10
830 movq %r10,-24(%rdi,%rbp,1)
833 addq -16(%rdi,%rbp,1),%r11
839 movq %r11,-16(%rdi,%rbp,1)
845 movq 8(%rsi,%rcx,1),%rbx
847 addq 8(%rdi,%rcx,1),%r12
861 movq %r10,8(%rdi,%rcx,1)
868 movq (%rsi,%rcx,1),%rbx
870 addq (%rdi,%rcx,1),%r13
884 movq %r11,(%rdi,%rcx,1)
886 movq 8(%rsi,%rcx,1),%rbx
888 addq 8(%rdi,%rcx,1),%r12
903 movq %r10,-8(%rdi,%rcx,1)
923 leaq 64(%rsp,%r9,2),%rdi
925 leaq -32(%rdi,%rbp,1),%rdi
984 movq -16(%rsi,%rbp,1),%rax
985 leaq 64(%rsp,%r9,2),%rdi
987 movq -24(%rdi,%rbp,2),%r11
989 leaq (%r14,%r10,2),%r12
991 leaq (%rcx,%r11,2),%r13
994 movq -16(%rdi,%rbp,2),%r10
998 movq -8(%rdi,%rbp,2),%r11
1000 movq -8(%rsi,%rbp,1),%rax
1001 movq %r12,-32(%rdi,%rbp,2)
1004 leaq (%r14,%r10,2),%rbx
1005 movq %r13,-24(%rdi,%rbp,2)
1008 leaq (%rcx,%r11,2),%r8
1011 movq 0(%rdi,%rbp,2),%r10
1015 movq 8(%rdi,%rbp,2),%r11
1017 movq 0(%rsi,%rbp,1),%rax
1018 movq %rbx,-16(%rdi,%rbp,2)
1021 movq %r8,-40(%rdi,%rbp,2)
1023 jmp .Lsqr4x_shift_n_add
1026 .Lsqr4x_shift_n_add:
1027 leaq (%r14,%r10,2),%r12
1029 leaq (%rcx,%r11,2),%r13
1032 movq -16(%rdi,%rbp,2),%r10
1036 movq -8(%rdi,%rbp,2),%r11
1038 movq -8(%rsi,%rbp,1),%rax
1039 movq %r12,-32(%rdi,%rbp,2)
1042 leaq (%r14,%r10,2),%rbx
1043 movq %r13,-24(%rdi,%rbp,2)
1046 leaq (%rcx,%r11,2),%r8
1049 movq 0(%rdi,%rbp,2),%r10
1053 movq 8(%rdi,%rbp,2),%r11
1055 movq 0(%rsi,%rbp,1),%rax
1056 movq %rbx,-16(%rdi,%rbp,2)
1059 leaq (%r14,%r10,2),%r12
1060 movq %r8,-8(%rdi,%rbp,2)
1063 leaq (%rcx,%r11,2),%r13
1066 movq 16(%rdi,%rbp,2),%r10
1070 movq 24(%rdi,%rbp,2),%r11
1072 movq 8(%rsi,%rbp,1),%rax
1073 movq %r12,0(%rdi,%rbp,2)
1076 leaq (%r14,%r10,2),%rbx
1077 movq %r13,8(%rdi,%rbp,2)
1080 leaq (%rcx,%r11,2),%r8
1083 movq 32(%rdi,%rbp,2),%r10
1087 movq 40(%rdi,%rbp,2),%r11
1089 movq 16(%rsi,%rbp,1),%rax
1090 movq %rbx,16(%rdi,%rbp,2)
1092 movq %r8,24(%rdi,%rbp,2)
1095 jnz .Lsqr4x_shift_n_add
1097 leaq (%r14,%r10,2),%r12
1099 leaq (%rcx,%r11,2),%r13
1112 leaq (%r14,%r10,2),%rbx
1116 leaq (%rcx,%r11,2),%r8
1132 leaq 64(%rsp,%r9,2),%rax
1133 leaq 64(%rsp,%r9,1),%rdi
1135 leaq (%rsi,%r9,1),%rsi
1138 movq 0(%rsi,%rcx,1),%rax
1139 movq 8(%rsi,%rcx,1),%r9
1142 jmp .Lsqr4x_mont_outer
1154 addq 8(%rdi,%rcx,1),%r11
1163 movq 16(%rsi,%rcx,1),%rbx
1171 movq %r12,8(%rdi,%rcx,1)
1174 addq 16(%rdi,%rcx,1),%r10
1181 movq 24(%rsi,%rcx,1),%r9
1189 movq %r13,16(%rdi,%rcx,1)
1192 addq 24(%rdi,%rcx,1),%r11
1199 jmp .Lsqr4x_mont_inner
1203 movq (%rsi,%rcx,1),%rbx
1211 movq %r12,-8(%rdi,%rcx,1)
1214 addq (%rdi,%rcx,1),%r10
1221 movq 8(%rsi,%rcx,1),%r9
1229 movq %r13,(%rdi,%rcx,1)
1232 addq 8(%rdi,%rcx,1),%r11
1240 movq 16(%rsi,%rcx,1),%rbx
1248 movq %r12,8(%rdi,%rcx,1)
1251 addq 16(%rdi,%rcx,1),%r10
1258 movq 24(%rsi,%rcx,1),%r9
1266 movq %r13,16(%rdi,%rcx,1)
1269 addq 24(%rdi,%rcx,1),%r11
1277 jne .Lsqr4x_mont_inner
1294 movq 0(%rsi,%rcx,1),%rbx
1298 imulq 16(%rdi,%rcx,1),%r14
1300 movq 8(%rsi,%rcx,1),%r9
1302 movq 16(%rdi,%rcx,1),%r10
1318 jb .Lsqr4x_mont_outer
1322 movq 64(%rsp,%r9,1),%rax
1323 leaq 64(%rsp,%r9,1),%rbx
1338 movq %rax,0(%rdi,%rbp,8)
1339 movq %rdx,8(%rdi,%rbp,8)
1340 sbbq 16(%rsi,%rbp,8),%r10
1341 movq 32(%rbx,%rbp,8),%rax
1342 movq 40(%rbx,%rbp,8),%rdx
1343 sbbq 24(%rsi,%rbp,8),%r11
1344 movq %r10,16(%rdi,%rbp,8)
1345 movq %r11,24(%rdi,%rbp,8)
1346 sbbq 32(%rsi,%rbp,8),%rax
1347 movq 48(%rbx,%rbp,8),%r10
1348 movq 56(%rbx,%rbp,8),%r11
1349 sbbq 40(%rsi,%rbp,8),%rdx
1354 movq %rax,0(%rdi,%rbp,8)
1355 movq 32(%rbx,%rbp,8),%rax
1356 sbbq 16(%rsi,%rbp,8),%r10
1357 movq %rdx,8(%rdi,%rbp,8)
1358 sbbq 24(%rsi,%rbp,8),%r11
1359 movq %r10,16(%rdi,%rbp,8)
1362 movq %r11,24(%rdi,%rbp,8)
1372 leaq 64(%rsp,%r9,8),%rsi
1374 leaq (%rsi,%r9,8),%rsi
1375 movdqa %xmm0,64(%rsp)
1381 movdqu 16(%rbx,%rbp,1),%xmm2
1382 movdqu 32(%rbx,%rbp,1),%xmm1
1383 movdqa %xmm0,80(%rsp,%rbp,1)
1384 movdqa %xmm0,96(%rsp,%rbp,1)
1385 movdqa %xmm0,16(%rsi,%rbp,1)
1386 movdqa %xmm0,32(%rsi,%rbp,1)
1387 movdqu %xmm2,16(%rdi,%rbp,1)
1388 movdqu %xmm1,32(%rdi,%rbp,1)
1393 movdqu 16(%rbx,%rbp,1),%xmm2
1394 movdqa %xmm0,80(%rsp,%rbp,1)
1395 movdqa %xmm0,16(%rsi,%rbp,1)
1396 movdqu %xmm2,16(%rdi,%rbp,1)
1408 .size bn_sqr4x_mont,.-bn_sqr4x_mont
1409 .byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0