4 .globl bn_mul_mont_gather5
5 .type bn_mul_mont_gather5,@function
30 leaq -264(%rsp,%r11,8),%rsp
33 movq %rax,8(%rsp,%r9,8)
44 movq (%rsp,%rax,1),%r11
52 leaq 24-112(%rsp,%r9,8),%r10
64 movdqa %xmm0,112(%r10)
69 movdqa %xmm1,128(%r10)
74 movdqa %xmm2,144(%r10)
79 movdqa %xmm3,160(%r10)
83 movdqa %xmm0,176(%r10)
88 movdqa %xmm1,192(%r10)
93 movdqa %xmm2,208(%r10)
98 movdqa %xmm3,224(%r10)
102 movdqa %xmm0,240(%r10)
107 movdqa %xmm1,256(%r10)
112 movdqa %xmm2,272(%r10)
117 movdqa %xmm3,288(%r10)
121 movdqa %xmm0,304(%r10)
126 movdqa %xmm1,320(%r10)
129 movdqa %xmm2,336(%r10)
134 movdqa %xmm3,352(%r10)
138 movdqa -128(%r12),%xmm4
139 movdqa -112(%r12),%xmm5
140 movdqa -96(%r12),%xmm2
142 movdqa -80(%r12),%xmm3
150 movdqa -64(%r12),%xmm4
151 movdqa -48(%r12),%xmm5
152 movdqa -32(%r12),%xmm2
154 movdqa -16(%r12),%xmm3
163 movdqa 16(%r12),%xmm5
164 movdqa 32(%r12),%xmm2
166 movdqa 48(%r12),%xmm3
175 pshufd $78,%xmm0,%xmm1
178 .byte 102,72,15,126,195
206 movq (%rsi,%r15,8),%rax
211 movq %r13,-16(%rsp,%r15,8)
217 movq (%rcx,%r15,8),%rax
231 movq %r13,-16(%rsp,%r15,8)
238 movq %r13,-8(%rsp,%r9,8)
239 movq %rdx,(%rsp,%r9,8)
245 leaq 24+128(%rsp,%r9,8),%rdx
249 movdqa -128(%r12),%xmm0
250 movdqa -112(%r12),%xmm1
251 movdqa -96(%r12),%xmm2
252 movdqa -80(%r12),%xmm3
253 pand -128(%rdx),%xmm0
254 pand -112(%rdx),%xmm1
261 movdqa -64(%r12),%xmm0
262 movdqa -48(%r12),%xmm1
263 movdqa -32(%r12),%xmm2
264 movdqa -16(%r12),%xmm3
274 movdqa 16(%r12),%xmm1
275 movdqa 32(%r12),%xmm2
276 movdqa 48(%r12),%xmm3
285 movdqa 64(%r12),%xmm0
286 movdqa 80(%r12),%xmm1
287 movdqa 96(%r12),%xmm2
288 movdqa 112(%r12),%xmm3
298 pshufd $78,%xmm4,%xmm0
301 .byte 102,72,15,126,195
328 movq (%rsi,%r15,8),%rax
331 movq (%rsp,%r15,8),%r10
333 movq %r13,-16(%rsp,%r15,8)
339 movq (%rcx,%r15,8),%rax
354 movq (%rsp,%r15,8),%r10
356 movq %r13,-16(%rsp,%r15,8)
364 movq %r13,-8(%rsp,%r9,8)
365 movq %rdx,(%rsp,%r9,8)
377 .Lsub: sbbq (%rcx,%r14,8),%rax
378 movq %rax,(%rdi,%r14,8)
379 movq 8(%rsi,%r14,8),%rax
394 movq (%rsi,%r14,8),%rax
395 movq %r14,(%rsp,%r14,8)
396 movq %rax,(%rdi,%r14,8)
401 movq 8(%rsp,%r9,8),%rsi
413 .size bn_mul_mont_gather5,.-bn_mul_mont_gather5
414 .type bn_mul4x_mont_gather5,@function
416 bn_mul4x_mont_gather5:
420 leaq .Linc(%rip),%r10
432 leaq -256(%rsp,%r11,8),%rsp
435 movq %rax,8(%rsp,%r9,8)
440 movq (%rsp,%rax,1),%r11
443 jnc .Lmul4x_page_walk
445 movq %rdi,16(%rsp,%r9,8)
448 movdqa 16(%r10),%xmm1
449 leaq 32-112(%rsp,%r9,8),%r10
451 pshufd $0,%xmm5,%xmm5
461 movdqa %xmm0,112(%r10)
466 movdqa %xmm1,128(%r10)
471 movdqa %xmm2,144(%r10)
476 movdqa %xmm3,160(%r10)
480 movdqa %xmm0,176(%r10)
485 movdqa %xmm1,192(%r10)
490 movdqa %xmm2,208(%r10)
495 movdqa %xmm3,224(%r10)
499 movdqa %xmm0,240(%r10)
504 movdqa %xmm1,256(%r10)
509 movdqa %xmm2,272(%r10)
514 movdqa %xmm3,288(%r10)
518 movdqa %xmm0,304(%r10)
523 movdqa %xmm1,320(%r10)
526 movdqa %xmm2,336(%r10)
531 movdqa %xmm3,352(%r10)
535 movdqa -128(%r12),%xmm4
536 movdqa -112(%r12),%xmm5
537 movdqa -96(%r12),%xmm2
539 movdqa -80(%r12),%xmm3
547 movdqa -64(%r12),%xmm4
548 movdqa -48(%r12),%xmm5
549 movdqa -32(%r12),%xmm2
551 movdqa -16(%r12),%xmm3
560 movdqa 16(%r12),%xmm5
561 movdqa 32(%r12),%xmm2
563 movdqa 48(%r12),%xmm3
572 pshufd $78,%xmm0,%xmm1
575 .byte 102,72,15,126,195
617 movq -16(%rcx,%r15,8),%rax
623 movq -8(%rsi,%r15,8),%rax
627 movq %r13,-24(%rsp,%r15,8)
632 movq -8(%rcx,%r15,8),%rax
638 movq (%rsi,%r15,8),%rax
642 movq %rdi,-16(%rsp,%r15,8)
647 movq (%rcx,%r15,8),%rax
653 movq 8(%rsi,%r15,8),%rax
657 movq %r13,-8(%rsp,%r15,8)
662 movq 8(%rcx,%r15,8),%rax
669 movq -16(%rsi,%r15,8),%rax
673 movq %rdi,-32(%rsp,%r15,8)
680 movq -16(%rcx,%r15,8),%rax
686 movq -8(%rsi,%r15,8),%rax
690 movq %r13,-24(%rsp,%r15,8)
695 movq -8(%rcx,%r15,8),%rax
705 movq %rdi,-16(%rsp,%r15,8)
711 movq %r13,-8(%rsp,%r15,8)
712 movq %rdi,(%rsp,%r15,8)
717 leaq 32+128(%rsp,%r9,8),%rdx
720 movdqa -128(%r12),%xmm0
721 movdqa -112(%r12),%xmm1
722 movdqa -96(%r12),%xmm2
723 movdqa -80(%r12),%xmm3
724 pand -128(%rdx),%xmm0
725 pand -112(%rdx),%xmm1
732 movdqa -64(%r12),%xmm0
733 movdqa -48(%r12),%xmm1
734 movdqa -32(%r12),%xmm2
735 movdqa -16(%r12),%xmm3
745 movdqa 16(%r12),%xmm1
746 movdqa 32(%r12),%xmm2
747 movdqa 48(%r12),%xmm3
756 movdqa 64(%r12),%xmm0
757 movdqa 80(%r12),%xmm1
758 movdqa 96(%r12),%xmm2
759 movdqa 112(%r12),%xmm3
769 pshufd $78,%xmm4,%xmm0
772 .byte 102,72,15,126,195
813 movq -16(%rcx,%r15,8),%rax
815 addq -16(%rsp,%r15,8),%r10
821 movq -8(%rsi,%r15,8),%rax
825 movq %rdi,-32(%rsp,%r15,8)
830 movq -8(%rcx,%r15,8),%rax
832 addq -8(%rsp,%r15,8),%r11
838 movq (%rsi,%r15,8),%rax
842 movq %r13,-24(%rsp,%r15,8)
847 movq (%rcx,%r15,8),%rax
849 addq (%rsp,%r15,8),%r10
855 movq 8(%rsi,%r15,8),%rax
859 movq %rdi,-16(%rsp,%r15,8)
864 movq 8(%rcx,%r15,8),%rax
866 addq 8(%rsp,%r15,8),%r11
873 movq -16(%rsi,%r15,8),%rax
877 movq %r13,-40(%rsp,%r15,8)
884 movq -16(%rcx,%r15,8),%rax
886 addq -16(%rsp,%r15,8),%r10
892 movq -8(%rsi,%r15,8),%rax
896 movq %rdi,-32(%rsp,%r15,8)
901 movq -8(%rcx,%r15,8),%rax
903 addq -8(%rsp,%r15,8),%r11
914 movq %r13,-24(%rsp,%r15,8)
917 movq %rdi,-16(%rsp,%r15,8)
922 addq (%rsp,%r9,8),%r13
924 movq %r13,-8(%rsp,%r15,8)
925 movq %rdi,(%rsp,%r15,8)
929 movq 16(%rsp,%r9,8),%rdi
945 movq %rax,0(%rdi,%r14,8)
946 movq %rdx,8(%rdi,%r14,8)
947 sbbq 16(%rcx,%r14,8),%rbx
948 movq 32(%rsi,%r14,8),%rax
949 movq 40(%rsi,%r14,8),%rdx
950 sbbq 24(%rcx,%r14,8),%rbp
951 movq %rbx,16(%rdi,%r14,8)
952 movq %rbp,24(%rdi,%r14,8)
953 sbbq 32(%rcx,%r14,8),%rax
954 movq 48(%rsi,%r14,8),%rbx
955 movq 56(%rsi,%r14,8),%rbp
956 sbbq 40(%rcx,%r14,8),%rdx
961 movq %rax,0(%rdi,%r14,8)
962 movq 32(%rsi,%r14,8),%rax
963 sbbq 16(%rcx,%r14,8),%rbx
964 movq %rdx,8(%rdi,%r14,8)
965 sbbq 24(%rcx,%r14,8),%rbp
966 movq %rbx,16(%rdi,%r14,8)
969 movq %rbp,24(%rdi,%r14,8)
984 movdqu 16(%rsi,%r14,1),%xmm2
985 movdqu 32(%rsi,%r14,1),%xmm1
986 movdqa %xmm0,16(%rsp,%r14,1)
987 movdqu %xmm2,16(%rdi,%r14,1)
988 movdqa %xmm0,32(%rsp,%r14,1)
989 movdqu %xmm1,32(%rdi,%r14,1)
995 movdqu 16(%rsi,%r14,1),%xmm2
996 movdqa %xmm0,16(%rsp,%r14,1)
997 movdqu %xmm2,16(%rdi,%r14,1)
998 movq 8(%rsp,%r9,8),%rsi
1010 .size bn_mul4x_mont_gather5,.-bn_mul4x_mont_gather5
1012 .type bn_scatter5,@function
1016 jz .Lscatter_epilogue
1017 leaq (%rdx,%rcx,8),%rdx
1027 .size bn_scatter5,.-bn_scatter5
1030 .type bn_gather5,@function
1033 .LSEH_begin_bn_gather5:
1035 .byte 0x4c,0x8d,0x14,0x24
1036 .byte 0x48,0x81,0xec,0x08,0x01,0x00,0x00
1037 leaq .Linc(%rip),%rax
1041 movdqa 0(%rax),%xmm0
1042 movdqa 16(%rax),%xmm1
1046 pshufd $0,%xmm5,%xmm5
1055 movdqa %xmm0,-128(%rax)
1060 movdqa %xmm1,-112(%rax)
1065 movdqa %xmm2,-96(%rax)
1069 movdqa %xmm3,-80(%rax)
1074 movdqa %xmm0,-64(%rax)
1079 movdqa %xmm1,-48(%rax)
1084 movdqa %xmm2,-32(%rax)
1088 movdqa %xmm3,-16(%rax)
1093 movdqa %xmm0,0(%rax)
1098 movdqa %xmm1,16(%rax)
1103 movdqa %xmm2,32(%rax)
1107 movdqa %xmm3,48(%rax)
1112 movdqa %xmm0,64(%rax)
1117 movdqa %xmm1,80(%rax)
1122 movdqa %xmm2,96(%rax)
1124 movdqa %xmm3,112(%rax)
1131 movdqa -128(%r11),%xmm0
1132 movdqa -112(%r11),%xmm1
1133 movdqa -96(%r11),%xmm2
1134 pand -128(%rax),%xmm0
1135 movdqa -80(%r11),%xmm3
1136 pand -112(%rax),%xmm1
1138 pand -96(%rax),%xmm2
1140 pand -80(%rax),%xmm3
1143 movdqa -64(%r11),%xmm0
1144 movdqa -48(%r11),%xmm1
1145 movdqa -32(%r11),%xmm2
1146 pand -64(%rax),%xmm0
1147 movdqa -16(%r11),%xmm3
1148 pand -48(%rax),%xmm1
1150 pand -32(%rax),%xmm2
1152 pand -16(%rax),%xmm3
1155 movdqa 0(%r11),%xmm0
1156 movdqa 16(%r11),%xmm1
1157 movdqa 32(%r11),%xmm2
1159 movdqa 48(%r11),%xmm3
1167 movdqa 64(%r11),%xmm0
1168 movdqa 80(%r11),%xmm1
1169 movdqa 96(%r11),%xmm2
1171 movdqa 112(%r11),%xmm3
1176 pand 112(%rax),%xmm3
1181 pshufd $78,%xmm4,%xmm0
1190 .LSEH_end_bn_gather5:
1191 .size bn_gather5,.-bn_gather5
1196 .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,119,105,116,104,32,115,99,97,116,116,101,114,47,103,97,116,104,101,114,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