5 .type bn_mul_mont,@function
29 leaq (%rsp,%r10,8),%rsp
32 movq %r11,8(%rsp,%r9,8)
43 movq (%rsp,%r11,1),%r10
76 movq (%rsi,%r15,8),%rax
81 movq %r13,-16(%rsp,%r15,8)
87 movq (%rcx,%r15,8),%rax
101 movq %r13,-16(%rsp,%r15,8)
108 movq %r13,-8(%rsp,%r9,8)
109 movq %rdx,(%rsp,%r9,8)
115 movq (%r12,%r14,8),%rbx
140 movq (%rsi,%r15,8),%rax
143 movq (%rsp,%r15,8),%r10
145 movq %r13,-16(%rsp,%r15,8)
151 movq (%rcx,%r15,8),%rax
166 movq (%rsp,%r15,8),%r10
168 movq %r13,-16(%rsp,%r15,8)
176 movq %r13,-8(%rsp,%r9,8)
177 movq %rdx,(%rsp,%r9,8)
189 .Lsub: sbbq (%rcx,%r14,8),%rax
190 movq %rax,(%rdi,%r14,8)
191 movq 8(%rsi,%r14,8),%rax
206 movq (%rsi,%r14,8),%rax
207 movq %r14,(%rsp,%r14,8)
208 movq %rax,(%rdi,%r14,8)
213 movq 8(%rsp,%r9,8),%rsi
224 .size bn_mul_mont,.-bn_mul_mont
225 .type bn_mul4x_mont,@function
240 leaq (%rsp,%r10,8),%rsp
243 movq %r11,8(%rsp,%r9,8)
248 movq (%rsp,%r11,1),%r10
251 jnc .Lmul4x_page_walk
253 movq %rdi,16(%rsp,%r9,8)
296 movq -16(%rcx,%r15,8),%rax
302 movq -8(%rsi,%r15,8),%rax
306 movq %r13,-24(%rsp,%r15,8)
311 movq -8(%rcx,%r15,8),%rax
317 movq (%rsi,%r15,8),%rax
321 movq %rdi,-16(%rsp,%r15,8)
326 movq (%rcx,%r15,8),%rax
332 movq 8(%rsi,%r15,8),%rax
336 movq %r13,-8(%rsp,%r15,8)
341 movq 8(%rcx,%r15,8),%rax
348 movq -16(%rsi,%r15,8),%rax
352 movq %rdi,-32(%rsp,%r15,8)
359 movq -16(%rcx,%r15,8),%rax
365 movq -8(%rsi,%r15,8),%rax
369 movq %r13,-24(%rsp,%r15,8)
374 movq -8(%rcx,%r15,8),%rax
384 movq %rdi,-16(%rsp,%r15,8)
390 movq %r13,-8(%rsp,%r15,8)
391 movq %rdi,(%rsp,%r15,8)
396 movq (%r12,%r14,8),%rbx
436 movq -16(%rcx,%r15,8),%rax
438 addq -16(%rsp,%r15,8),%r10
444 movq -8(%rsi,%r15,8),%rax
448 movq %r13,-24(%rsp,%r15,8)
453 movq -8(%rcx,%r15,8),%rax
455 addq -8(%rsp,%r15,8),%r11
461 movq (%rsi,%r15,8),%rax
465 movq %rdi,-16(%rsp,%r15,8)
470 movq (%rcx,%r15,8),%rax
472 addq (%rsp,%r15,8),%r10
478 movq 8(%rsi,%r15,8),%rax
482 movq %r13,-8(%rsp,%r15,8)
487 movq 8(%rcx,%r15,8),%rax
489 addq 8(%rsp,%r15,8),%r11
496 movq -16(%rsi,%r15,8),%rax
500 movq %rdi,-32(%rsp,%r15,8)
507 movq -16(%rcx,%r15,8),%rax
509 addq -16(%rsp,%r15,8),%r10
515 movq -8(%rsi,%r15,8),%rax
519 movq %r13,-24(%rsp,%r15,8)
524 movq -8(%rcx,%r15,8),%rax
526 addq -8(%rsp,%r15,8),%r11
537 movq %rdi,-16(%rsp,%r15,8)
543 addq (%rsp,%r9,8),%r13
545 movq %r13,-8(%rsp,%r15,8)
546 movq %rdi,(%rsp,%r15,8)
550 movq 16(%rsp,%r9,8),%rdi
566 movq %rax,0(%rdi,%r14,8)
567 movq %rdx,8(%rdi,%r14,8)
568 sbbq 16(%rcx,%r14,8),%rbx
569 movq 32(%rsi,%r14,8),%rax
570 movq 40(%rsi,%r14,8),%rdx
571 sbbq 24(%rcx,%r14,8),%rbp
572 movq %rbx,16(%rdi,%r14,8)
573 movq %rbp,24(%rdi,%r14,8)
574 sbbq 32(%rcx,%r14,8),%rax
575 movq 48(%rsi,%r14,8),%rbx
576 movq 56(%rsi,%r14,8),%rbp
577 sbbq 40(%rcx,%r14,8),%rdx
582 movq %rax,0(%rdi,%r14,8)
583 movq 32(%rsi,%r14,8),%rax
584 sbbq 16(%rcx,%r14,8),%rbx
585 movq %rdx,8(%rdi,%r14,8)
586 sbbq 24(%rcx,%r14,8),%rbp
587 movq %rbx,16(%rdi,%r14,8)
590 movq %rbp,24(%rdi,%r14,8)
605 movdqu 16(%rsi,%r14,1),%xmm2
606 movdqu 32(%rsi,%r14,1),%xmm1
607 movdqa %xmm0,16(%rsp,%r14,1)
608 movdqu %xmm2,16(%rdi,%r14,1)
609 movdqa %xmm0,32(%rsp,%r14,1)
610 movdqu %xmm1,32(%rdi,%r14,1)
616 movdqu 16(%rsi,%r14,1),%xmm2
617 movdqa %xmm0,16(%rsp,%r14,1)
618 movdqu %xmm2,16(%rdi,%r14,1)
619 movq 8(%rsp,%r9,8),%rsi
630 .size bn_mul4x_mont,.-bn_mul4x_mont
631 .type bn_sqr4x_mont,@function
647 leaq -72(%rsp,%r9,2),%rsp
653 movq (%rsp,%r11,1),%r10
656 jnc .Lsqr4x_page_walk
685 leaq (%rsi,%r9,1),%rsi
690 movq -32(%rsi,%rbp,1),%r14
691 leaq 64(%rsp,%r9,2),%rdi
692 movq -24(%rsi,%rbp,1),%rax
693 leaq -32(%rdi,%rbp,1),%rdi
694 movq -16(%rsi,%rbp,1),%rbx
701 movq %r10,-24(%rdi,%rbp,1)
708 movq %r11,-16(%rdi,%rbp,1)
713 movq 8(%rsi,%rcx,1),%rbx
727 movq %r10,-8(%rdi,%rcx,1)
732 movq (%rsi,%rcx,1),%rbx
746 movq %r11,(%rdi,%rcx,1)
749 movq 8(%rsi,%rcx,1),%rbx
763 movq %r10,8(%rdi,%rcx,1)
765 movq 16(%rsi,%rcx,1),%rbx
779 movq %r11,16(%rdi,%rcx,1)
782 movq 24(%rsi,%rcx,1),%rbx
797 movq %r10,-8(%rdi,%rcx,1)
816 movq -32(%rsi,%rbp,1),%r14
817 leaq 64(%rsp,%r9,2),%rdi
818 movq -24(%rsi,%rbp,1),%rax
819 leaq -32(%rdi,%rbp,1),%rdi
820 movq -16(%rsi,%rbp,1),%rbx
823 movq -24(%rdi,%rbp,1),%r10
829 movq %r10,-24(%rdi,%rbp,1)
832 addq -16(%rdi,%rbp,1),%r11
838 movq %r11,-16(%rdi,%rbp,1)
844 movq 8(%rsi,%rcx,1),%rbx
846 addq 8(%rdi,%rcx,1),%r12
860 movq %r10,8(%rdi,%rcx,1)
867 movq (%rsi,%rcx,1),%rbx
869 addq (%rdi,%rcx,1),%r13
883 movq %r11,(%rdi,%rcx,1)
885 movq 8(%rsi,%rcx,1),%rbx
887 addq 8(%rdi,%rcx,1),%r12
902 movq %r10,-8(%rdi,%rcx,1)
922 leaq 64(%rsp,%r9,2),%rdi
924 leaq -32(%rdi,%rbp,1),%rdi
983 movq -16(%rsi,%rbp,1),%rax
984 leaq 64(%rsp,%r9,2),%rdi
986 movq -24(%rdi,%rbp,2),%r11
988 leaq (%r14,%r10,2),%r12
990 leaq (%rcx,%r11,2),%r13
993 movq -16(%rdi,%rbp,2),%r10
997 movq -8(%rdi,%rbp,2),%r11
999 movq -8(%rsi,%rbp,1),%rax
1000 movq %r12,-32(%rdi,%rbp,2)
1003 leaq (%r14,%r10,2),%rbx
1004 movq %r13,-24(%rdi,%rbp,2)
1007 leaq (%rcx,%r11,2),%r8
1010 movq 0(%rdi,%rbp,2),%r10
1014 movq 8(%rdi,%rbp,2),%r11
1016 movq 0(%rsi,%rbp,1),%rax
1017 movq %rbx,-16(%rdi,%rbp,2)
1020 movq %r8,-40(%rdi,%rbp,2)
1022 jmp .Lsqr4x_shift_n_add
1025 .Lsqr4x_shift_n_add:
1026 leaq (%r14,%r10,2),%r12
1028 leaq (%rcx,%r11,2),%r13
1031 movq -16(%rdi,%rbp,2),%r10
1035 movq -8(%rdi,%rbp,2),%r11
1037 movq -8(%rsi,%rbp,1),%rax
1038 movq %r12,-32(%rdi,%rbp,2)
1041 leaq (%r14,%r10,2),%rbx
1042 movq %r13,-24(%rdi,%rbp,2)
1045 leaq (%rcx,%r11,2),%r8
1048 movq 0(%rdi,%rbp,2),%r10
1052 movq 8(%rdi,%rbp,2),%r11
1054 movq 0(%rsi,%rbp,1),%rax
1055 movq %rbx,-16(%rdi,%rbp,2)
1058 leaq (%r14,%r10,2),%r12
1059 movq %r8,-8(%rdi,%rbp,2)
1062 leaq (%rcx,%r11,2),%r13
1065 movq 16(%rdi,%rbp,2),%r10
1069 movq 24(%rdi,%rbp,2),%r11
1071 movq 8(%rsi,%rbp,1),%rax
1072 movq %r12,0(%rdi,%rbp,2)
1075 leaq (%r14,%r10,2),%rbx
1076 movq %r13,8(%rdi,%rbp,2)
1079 leaq (%rcx,%r11,2),%r8
1082 movq 32(%rdi,%rbp,2),%r10
1086 movq 40(%rdi,%rbp,2),%r11
1088 movq 16(%rsi,%rbp,1),%rax
1089 movq %rbx,16(%rdi,%rbp,2)
1091 movq %r8,24(%rdi,%rbp,2)
1094 jnz .Lsqr4x_shift_n_add
1096 leaq (%r14,%r10,2),%r12
1098 leaq (%rcx,%r11,2),%r13
1111 leaq (%r14,%r10,2),%rbx
1115 leaq (%rcx,%r11,2),%r8
1131 leaq 64(%rsp,%r9,2),%rax
1132 leaq 64(%rsp,%r9,1),%rdi
1134 leaq (%rsi,%r9,1),%rsi
1137 movq 0(%rsi,%rcx,1),%rax
1138 movq 8(%rsi,%rcx,1),%r9
1141 jmp .Lsqr4x_mont_outer
1153 addq 8(%rdi,%rcx,1),%r11
1162 movq 16(%rsi,%rcx,1),%rbx
1170 movq %r12,8(%rdi,%rcx,1)
1173 addq 16(%rdi,%rcx,1),%r10
1180 movq 24(%rsi,%rcx,1),%r9
1188 movq %r13,16(%rdi,%rcx,1)
1191 addq 24(%rdi,%rcx,1),%r11
1198 jmp .Lsqr4x_mont_inner
1202 movq (%rsi,%rcx,1),%rbx
1210 movq %r12,-8(%rdi,%rcx,1)
1213 addq (%rdi,%rcx,1),%r10
1220 movq 8(%rsi,%rcx,1),%r9
1228 movq %r13,(%rdi,%rcx,1)
1231 addq 8(%rdi,%rcx,1),%r11
1239 movq 16(%rsi,%rcx,1),%rbx
1247 movq %r12,8(%rdi,%rcx,1)
1250 addq 16(%rdi,%rcx,1),%r10
1257 movq 24(%rsi,%rcx,1),%r9
1265 movq %r13,16(%rdi,%rcx,1)
1268 addq 24(%rdi,%rcx,1),%r11
1276 jne .Lsqr4x_mont_inner
1293 movq 0(%rsi,%rcx,1),%rbx
1297 imulq 16(%rdi,%rcx,1),%r14
1299 movq 8(%rsi,%rcx,1),%r9
1301 movq 16(%rdi,%rcx,1),%r10
1317 jb .Lsqr4x_mont_outer
1321 movq 64(%rsp,%r9,1),%rax
1322 leaq 64(%rsp,%r9,1),%rbx
1337 movq %rax,0(%rdi,%rbp,8)
1338 movq %rdx,8(%rdi,%rbp,8)
1339 sbbq 16(%rsi,%rbp,8),%r10
1340 movq 32(%rbx,%rbp,8),%rax
1341 movq 40(%rbx,%rbp,8),%rdx
1342 sbbq 24(%rsi,%rbp,8),%r11
1343 movq %r10,16(%rdi,%rbp,8)
1344 movq %r11,24(%rdi,%rbp,8)
1345 sbbq 32(%rsi,%rbp,8),%rax
1346 movq 48(%rbx,%rbp,8),%r10
1347 movq 56(%rbx,%rbp,8),%r11
1348 sbbq 40(%rsi,%rbp,8),%rdx
1353 movq %rax,0(%rdi,%rbp,8)
1354 movq 32(%rbx,%rbp,8),%rax
1355 sbbq 16(%rsi,%rbp,8),%r10
1356 movq %rdx,8(%rdi,%rbp,8)
1357 sbbq 24(%rsi,%rbp,8),%r11
1358 movq %r10,16(%rdi,%rbp,8)
1361 movq %r11,24(%rdi,%rbp,8)
1371 leaq 64(%rsp,%r9,8),%rsi
1373 leaq (%rsi,%r9,8),%rsi
1374 movdqa %xmm0,64(%rsp)
1380 movdqu 16(%rbx,%rbp,1),%xmm2
1381 movdqu 32(%rbx,%rbp,1),%xmm1
1382 movdqa %xmm0,80(%rsp,%rbp,1)
1383 movdqa %xmm0,96(%rsp,%rbp,1)
1384 movdqa %xmm0,16(%rsi,%rbp,1)
1385 movdqa %xmm0,32(%rsi,%rbp,1)
1386 movdqu %xmm2,16(%rdi,%rbp,1)
1387 movdqu %xmm1,32(%rdi,%rbp,1)
1392 movdqu 16(%rbx,%rbp,1),%xmm2
1393 movdqa %xmm0,80(%rsp,%rbp,1)
1394 movdqa %xmm0,16(%rsi,%rbp,1)
1395 movdqu %xmm2,16(%rdi,%rbp,1)
1407 .size bn_sqr4x_mont,.-bn_sqr4x_mont
1408 .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