2 # Do not modify. This file is auto-generated from x86_64-mont5.pl.
5 .globl bn_mul_mont_gather5
6 .type bn_mul_mont_gather5,@function
31 leaq -264(%rsp,%r11,8),%rsp
34 movq %rax,8(%rsp,%r9,8)
45 movq (%rsp,%rax,1),%r11
53 leaq 24-112(%rsp,%r9,8),%r10
65 movdqa %xmm0,112(%r10)
70 movdqa %xmm1,128(%r10)
75 movdqa %xmm2,144(%r10)
80 movdqa %xmm3,160(%r10)
84 movdqa %xmm0,176(%r10)
89 movdqa %xmm1,192(%r10)
94 movdqa %xmm2,208(%r10)
99 movdqa %xmm3,224(%r10)
103 movdqa %xmm0,240(%r10)
108 movdqa %xmm1,256(%r10)
113 movdqa %xmm2,272(%r10)
118 movdqa %xmm3,288(%r10)
122 movdqa %xmm0,304(%r10)
127 movdqa %xmm1,320(%r10)
130 movdqa %xmm2,336(%r10)
135 movdqa %xmm3,352(%r10)
139 movdqa -128(%r12),%xmm4
140 movdqa -112(%r12),%xmm5
141 movdqa -96(%r12),%xmm2
143 movdqa -80(%r12),%xmm3
151 movdqa -64(%r12),%xmm4
152 movdqa -48(%r12),%xmm5
153 movdqa -32(%r12),%xmm2
155 movdqa -16(%r12),%xmm3
164 movdqa 16(%r12),%xmm5
165 movdqa 32(%r12),%xmm2
167 movdqa 48(%r12),%xmm3
176 pshufd $78,%xmm0,%xmm1
179 .byte 102,72,15,126,195
207 movq (%rsi,%r15,8),%rax
212 movq %r13,-16(%rsp,%r15,8)
218 movq (%rcx,%r15,8),%rax
232 movq %r13,-16(%rsp,%r15,8)
239 movq %r13,-8(%rsp,%r9,8)
240 movq %rdx,(%rsp,%r9,8)
246 leaq 24+128(%rsp,%r9,8),%rdx
250 movdqa -128(%r12),%xmm0
251 movdqa -112(%r12),%xmm1
252 movdqa -96(%r12),%xmm2
253 movdqa -80(%r12),%xmm3
254 pand -128(%rdx),%xmm0
255 pand -112(%rdx),%xmm1
262 movdqa -64(%r12),%xmm0
263 movdqa -48(%r12),%xmm1
264 movdqa -32(%r12),%xmm2
265 movdqa -16(%r12),%xmm3
275 movdqa 16(%r12),%xmm1
276 movdqa 32(%r12),%xmm2
277 movdqa 48(%r12),%xmm3
286 movdqa 64(%r12),%xmm0
287 movdqa 80(%r12),%xmm1
288 movdqa 96(%r12),%xmm2
289 movdqa 112(%r12),%xmm3
299 pshufd $78,%xmm4,%xmm0
302 .byte 102,72,15,126,195
329 movq (%rsi,%r15,8),%rax
332 movq (%rsp,%r15,8),%r10
334 movq %r13,-16(%rsp,%r15,8)
340 movq (%rcx,%r15,8),%rax
355 movq (%rsp,%r15,8),%r10
357 movq %r13,-16(%rsp,%r15,8)
365 movq %r13,-8(%rsp,%r9,8)
366 movq %rdx,(%rsp,%r9,8)
378 .Lsub: sbbq (%rcx,%r14,8),%rax
379 movq %rax,(%rdi,%r14,8)
380 movq 8(%rsi,%r14,8),%rax
395 movq (%rsi,%r14,8),%rax
396 movq %r14,(%rsp,%r14,8)
397 movq %rax,(%rdi,%r14,8)
402 movq 8(%rsp,%r9,8),%rsi
414 .size bn_mul_mont_gather5,.-bn_mul_mont_gather5
415 .type bn_mul4x_mont_gather5,@function
417 bn_mul4x_mont_gather5:
421 leaq .Linc(%rip),%r10
433 leaq -256(%rsp,%r11,8),%rsp
436 movq %rax,8(%rsp,%r9,8)
441 movq (%rsp,%rax,1),%r11
444 jnc .Lmul4x_page_walk
446 movq %rdi,16(%rsp,%r9,8)
449 movdqa 16(%r10),%xmm1
450 leaq 32-112(%rsp,%r9,8),%r10
452 pshufd $0,%xmm5,%xmm5
462 movdqa %xmm0,112(%r10)
467 movdqa %xmm1,128(%r10)
472 movdqa %xmm2,144(%r10)
477 movdqa %xmm3,160(%r10)
481 movdqa %xmm0,176(%r10)
486 movdqa %xmm1,192(%r10)
491 movdqa %xmm2,208(%r10)
496 movdqa %xmm3,224(%r10)
500 movdqa %xmm0,240(%r10)
505 movdqa %xmm1,256(%r10)
510 movdqa %xmm2,272(%r10)
515 movdqa %xmm3,288(%r10)
519 movdqa %xmm0,304(%r10)
524 movdqa %xmm1,320(%r10)
527 movdqa %xmm2,336(%r10)
532 movdqa %xmm3,352(%r10)
536 movdqa -128(%r12),%xmm4
537 movdqa -112(%r12),%xmm5
538 movdqa -96(%r12),%xmm2
540 movdqa -80(%r12),%xmm3
548 movdqa -64(%r12),%xmm4
549 movdqa -48(%r12),%xmm5
550 movdqa -32(%r12),%xmm2
552 movdqa -16(%r12),%xmm3
561 movdqa 16(%r12),%xmm5
562 movdqa 32(%r12),%xmm2
564 movdqa 48(%r12),%xmm3
573 pshufd $78,%xmm0,%xmm1
576 .byte 102,72,15,126,195
618 movq -16(%rcx,%r15,8),%rax
624 movq -8(%rsi,%r15,8),%rax
628 movq %r13,-24(%rsp,%r15,8)
633 movq -8(%rcx,%r15,8),%rax
639 movq (%rsi,%r15,8),%rax
643 movq %rdi,-16(%rsp,%r15,8)
648 movq (%rcx,%r15,8),%rax
654 movq 8(%rsi,%r15,8),%rax
658 movq %r13,-8(%rsp,%r15,8)
663 movq 8(%rcx,%r15,8),%rax
670 movq -16(%rsi,%r15,8),%rax
674 movq %rdi,-32(%rsp,%r15,8)
681 movq -16(%rcx,%r15,8),%rax
687 movq -8(%rsi,%r15,8),%rax
691 movq %r13,-24(%rsp,%r15,8)
696 movq -8(%rcx,%r15,8),%rax
706 movq %rdi,-16(%rsp,%r15,8)
712 movq %r13,-8(%rsp,%r15,8)
713 movq %rdi,(%rsp,%r15,8)
718 leaq 32+128(%rsp,%r9,8),%rdx
721 movdqa -128(%r12),%xmm0
722 movdqa -112(%r12),%xmm1
723 movdqa -96(%r12),%xmm2
724 movdqa -80(%r12),%xmm3
725 pand -128(%rdx),%xmm0
726 pand -112(%rdx),%xmm1
733 movdqa -64(%r12),%xmm0
734 movdqa -48(%r12),%xmm1
735 movdqa -32(%r12),%xmm2
736 movdqa -16(%r12),%xmm3
746 movdqa 16(%r12),%xmm1
747 movdqa 32(%r12),%xmm2
748 movdqa 48(%r12),%xmm3
757 movdqa 64(%r12),%xmm0
758 movdqa 80(%r12),%xmm1
759 movdqa 96(%r12),%xmm2
760 movdqa 112(%r12),%xmm3
770 pshufd $78,%xmm4,%xmm0
773 .byte 102,72,15,126,195
814 movq -16(%rcx,%r15,8),%rax
816 addq -16(%rsp,%r15,8),%r10
822 movq -8(%rsi,%r15,8),%rax
826 movq %rdi,-32(%rsp,%r15,8)
831 movq -8(%rcx,%r15,8),%rax
833 addq -8(%rsp,%r15,8),%r11
839 movq (%rsi,%r15,8),%rax
843 movq %r13,-24(%rsp,%r15,8)
848 movq (%rcx,%r15,8),%rax
850 addq (%rsp,%r15,8),%r10
856 movq 8(%rsi,%r15,8),%rax
860 movq %rdi,-16(%rsp,%r15,8)
865 movq 8(%rcx,%r15,8),%rax
867 addq 8(%rsp,%r15,8),%r11
874 movq -16(%rsi,%r15,8),%rax
878 movq %r13,-40(%rsp,%r15,8)
885 movq -16(%rcx,%r15,8),%rax
887 addq -16(%rsp,%r15,8),%r10
893 movq -8(%rsi,%r15,8),%rax
897 movq %rdi,-32(%rsp,%r15,8)
902 movq -8(%rcx,%r15,8),%rax
904 addq -8(%rsp,%r15,8),%r11
915 movq %r13,-24(%rsp,%r15,8)
918 movq %rdi,-16(%rsp,%r15,8)
923 addq (%rsp,%r9,8),%r13
925 movq %r13,-8(%rsp,%r15,8)
926 movq %rdi,(%rsp,%r15,8)
930 movq 16(%rsp,%r9,8),%rdi
946 movq %rax,0(%rdi,%r14,8)
947 movq %rdx,8(%rdi,%r14,8)
948 sbbq 16(%rcx,%r14,8),%rbx
949 movq 32(%rsi,%r14,8),%rax
950 movq 40(%rsi,%r14,8),%rdx
951 sbbq 24(%rcx,%r14,8),%rbp
952 movq %rbx,16(%rdi,%r14,8)
953 movq %rbp,24(%rdi,%r14,8)
954 sbbq 32(%rcx,%r14,8),%rax
955 movq 48(%rsi,%r14,8),%rbx
956 movq 56(%rsi,%r14,8),%rbp
957 sbbq 40(%rcx,%r14,8),%rdx
962 movq %rax,0(%rdi,%r14,8)
963 movq 32(%rsi,%r14,8),%rax
964 sbbq 16(%rcx,%r14,8),%rbx
965 movq %rdx,8(%rdi,%r14,8)
966 sbbq 24(%rcx,%r14,8),%rbp
967 movq %rbx,16(%rdi,%r14,8)
970 movq %rbp,24(%rdi,%r14,8)
985 movdqu 16(%rsi,%r14,1),%xmm2
986 movdqu 32(%rsi,%r14,1),%xmm1
987 movdqa %xmm0,16(%rsp,%r14,1)
988 movdqu %xmm2,16(%rdi,%r14,1)
989 movdqa %xmm0,32(%rsp,%r14,1)
990 movdqu %xmm1,32(%rdi,%r14,1)
996 movdqu 16(%rsi,%r14,1),%xmm2
997 movdqa %xmm0,16(%rsp,%r14,1)
998 movdqu %xmm2,16(%rdi,%r14,1)
999 movq 8(%rsp,%r9,8),%rsi
1011 .size bn_mul4x_mont_gather5,.-bn_mul4x_mont_gather5
1013 .type bn_scatter5,@function
1017 jz .Lscatter_epilogue
1018 leaq (%rdx,%rcx,8),%rdx
1028 .size bn_scatter5,.-bn_scatter5
1031 .type bn_gather5,@function
1034 .LSEH_begin_bn_gather5:
1036 .byte 0x4c,0x8d,0x14,0x24
1037 .byte 0x48,0x81,0xec,0x08,0x01,0x00,0x00
1038 leaq .Linc(%rip),%rax
1042 movdqa 0(%rax),%xmm0
1043 movdqa 16(%rax),%xmm1
1047 pshufd $0,%xmm5,%xmm5
1056 movdqa %xmm0,-128(%rax)
1061 movdqa %xmm1,-112(%rax)
1066 movdqa %xmm2,-96(%rax)
1070 movdqa %xmm3,-80(%rax)
1075 movdqa %xmm0,-64(%rax)
1080 movdqa %xmm1,-48(%rax)
1085 movdqa %xmm2,-32(%rax)
1089 movdqa %xmm3,-16(%rax)
1094 movdqa %xmm0,0(%rax)
1099 movdqa %xmm1,16(%rax)
1104 movdqa %xmm2,32(%rax)
1108 movdqa %xmm3,48(%rax)
1113 movdqa %xmm0,64(%rax)
1118 movdqa %xmm1,80(%rax)
1123 movdqa %xmm2,96(%rax)
1125 movdqa %xmm3,112(%rax)
1132 movdqa -128(%r11),%xmm0
1133 movdqa -112(%r11),%xmm1
1134 movdqa -96(%r11),%xmm2
1135 pand -128(%rax),%xmm0
1136 movdqa -80(%r11),%xmm3
1137 pand -112(%rax),%xmm1
1139 pand -96(%rax),%xmm2
1141 pand -80(%rax),%xmm3
1144 movdqa -64(%r11),%xmm0
1145 movdqa -48(%r11),%xmm1
1146 movdqa -32(%r11),%xmm2
1147 pand -64(%rax),%xmm0
1148 movdqa -16(%r11),%xmm3
1149 pand -48(%rax),%xmm1
1151 pand -32(%rax),%xmm2
1153 pand -16(%rax),%xmm3
1156 movdqa 0(%r11),%xmm0
1157 movdqa 16(%r11),%xmm1
1158 movdqa 32(%r11),%xmm2
1160 movdqa 48(%r11),%xmm3
1168 movdqa 64(%r11),%xmm0
1169 movdqa 80(%r11),%xmm1
1170 movdqa 96(%r11),%xmm2
1172 movdqa 112(%r11),%xmm3
1177 pand 112(%rax),%xmm3
1182 pshufd $78,%xmm4,%xmm0
1191 .LSEH_end_bn_gather5:
1192 .size bn_gather5,.-bn_gather5
1197 .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