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)
38 leaq 24-112(%rsp,%r9,8),%r10
50 movdqa %xmm0,112(%r10)
55 movdqa %xmm1,128(%r10)
60 movdqa %xmm2,144(%r10)
65 movdqa %xmm3,160(%r10)
69 movdqa %xmm0,176(%r10)
74 movdqa %xmm1,192(%r10)
79 movdqa %xmm2,208(%r10)
84 movdqa %xmm3,224(%r10)
88 movdqa %xmm0,240(%r10)
93 movdqa %xmm1,256(%r10)
98 movdqa %xmm2,272(%r10)
103 movdqa %xmm3,288(%r10)
107 movdqa %xmm0,304(%r10)
112 movdqa %xmm1,320(%r10)
115 movdqa %xmm2,336(%r10)
120 movdqa %xmm3,352(%r10)
124 movdqa -128(%r12),%xmm4
125 movdqa -112(%r12),%xmm5
126 movdqa -96(%r12),%xmm2
128 movdqa -80(%r12),%xmm3
136 movdqa -64(%r12),%xmm4
137 movdqa -48(%r12),%xmm5
138 movdqa -32(%r12),%xmm2
140 movdqa -16(%r12),%xmm3
149 movdqa 16(%r12),%xmm5
150 movdqa 32(%r12),%xmm2
152 movdqa 48(%r12),%xmm3
161 pshufd $78,%xmm0,%xmm1
164 .byte 102,72,15,126,195
192 movq (%rsi,%r15,8),%rax
197 movq %r13,-16(%rsp,%r15,8)
203 movq (%rcx,%r15,8),%rax
217 movq %r13,-16(%rsp,%r15,8)
224 movq %r13,-8(%rsp,%r9,8)
225 movq %rdx,(%rsp,%r9,8)
231 leaq 24+128(%rsp,%r9,8),%rdx
235 movdqa -128(%r12),%xmm0
236 movdqa -112(%r12),%xmm1
237 movdqa -96(%r12),%xmm2
238 movdqa -80(%r12),%xmm3
239 pand -128(%rdx),%xmm0
240 pand -112(%rdx),%xmm1
247 movdqa -64(%r12),%xmm0
248 movdqa -48(%r12),%xmm1
249 movdqa -32(%r12),%xmm2
250 movdqa -16(%r12),%xmm3
260 movdqa 16(%r12),%xmm1
261 movdqa 32(%r12),%xmm2
262 movdqa 48(%r12),%xmm3
271 movdqa 64(%r12),%xmm0
272 movdqa 80(%r12),%xmm1
273 movdqa 96(%r12),%xmm2
274 movdqa 112(%r12),%xmm3
284 pshufd $78,%xmm4,%xmm0
287 .byte 102,72,15,126,195
314 movq (%rsi,%r15,8),%rax
317 movq (%rsp,%r15,8),%r10
319 movq %r13,-16(%rsp,%r15,8)
325 movq (%rcx,%r15,8),%rax
340 movq (%rsp,%r15,8),%r10
342 movq %r13,-16(%rsp,%r15,8)
350 movq %r13,-8(%rsp,%r9,8)
351 movq %rdx,(%rsp,%r9,8)
363 .Lsub: sbbq (%rcx,%r14,8),%rax
364 movq %rax,(%rdi,%r14,8)
365 movq 8(%rsi,%r14,8),%rax
380 movq (%rsi,%r14,8),%rax
381 movq %r14,(%rsp,%r14,8)
382 movq %rax,(%rdi,%r14,8)
387 movq 8(%rsp,%r9,8),%rsi
399 .size bn_mul_mont_gather5,.-bn_mul_mont_gather5
400 .type bn_mul4x_mont_gather5,@function
402 bn_mul4x_mont_gather5:
406 leaq .Linc(%rip),%r10
418 leaq -256(%rsp,%r11,8),%rsp
421 movq %rax,8(%rsp,%r9,8)
423 movq %rdi,16(%rsp,%r9,8)
426 movdqa 16(%r10),%xmm1
427 leaq 32-112(%rsp,%r9,8),%r10
429 pshufd $0,%xmm5,%xmm5
439 movdqa %xmm0,112(%r10)
444 movdqa %xmm1,128(%r10)
449 movdqa %xmm2,144(%r10)
454 movdqa %xmm3,160(%r10)
458 movdqa %xmm0,176(%r10)
463 movdqa %xmm1,192(%r10)
468 movdqa %xmm2,208(%r10)
473 movdqa %xmm3,224(%r10)
477 movdqa %xmm0,240(%r10)
482 movdqa %xmm1,256(%r10)
487 movdqa %xmm2,272(%r10)
492 movdqa %xmm3,288(%r10)
496 movdqa %xmm0,304(%r10)
501 movdqa %xmm1,320(%r10)
504 movdqa %xmm2,336(%r10)
509 movdqa %xmm3,352(%r10)
513 movdqa -128(%r12),%xmm4
514 movdqa -112(%r12),%xmm5
515 movdqa -96(%r12),%xmm2
517 movdqa -80(%r12),%xmm3
525 movdqa -64(%r12),%xmm4
526 movdqa -48(%r12),%xmm5
527 movdqa -32(%r12),%xmm2
529 movdqa -16(%r12),%xmm3
538 movdqa 16(%r12),%xmm5
539 movdqa 32(%r12),%xmm2
541 movdqa 48(%r12),%xmm3
550 pshufd $78,%xmm0,%xmm1
553 .byte 102,72,15,126,195
595 movq -16(%rcx,%r15,8),%rax
601 movq -8(%rsi,%r15,8),%rax
605 movq %r13,-24(%rsp,%r15,8)
610 movq -8(%rcx,%r15,8),%rax
616 movq (%rsi,%r15,8),%rax
620 movq %rdi,-16(%rsp,%r15,8)
625 movq (%rcx,%r15,8),%rax
631 movq 8(%rsi,%r15,8),%rax
635 movq %r13,-8(%rsp,%r15,8)
640 movq 8(%rcx,%r15,8),%rax
647 movq -16(%rsi,%r15,8),%rax
651 movq %rdi,-32(%rsp,%r15,8)
658 movq -16(%rcx,%r15,8),%rax
664 movq -8(%rsi,%r15,8),%rax
668 movq %r13,-24(%rsp,%r15,8)
673 movq -8(%rcx,%r15,8),%rax
683 movq %rdi,-16(%rsp,%r15,8)
689 movq %r13,-8(%rsp,%r15,8)
690 movq %rdi,(%rsp,%r15,8)
695 leaq 32+128(%rsp,%r9,8),%rdx
698 movdqa -128(%r12),%xmm0
699 movdqa -112(%r12),%xmm1
700 movdqa -96(%r12),%xmm2
701 movdqa -80(%r12),%xmm3
702 pand -128(%rdx),%xmm0
703 pand -112(%rdx),%xmm1
710 movdqa -64(%r12),%xmm0
711 movdqa -48(%r12),%xmm1
712 movdqa -32(%r12),%xmm2
713 movdqa -16(%r12),%xmm3
723 movdqa 16(%r12),%xmm1
724 movdqa 32(%r12),%xmm2
725 movdqa 48(%r12),%xmm3
734 movdqa 64(%r12),%xmm0
735 movdqa 80(%r12),%xmm1
736 movdqa 96(%r12),%xmm2
737 movdqa 112(%r12),%xmm3
747 pshufd $78,%xmm4,%xmm0
750 .byte 102,72,15,126,195
791 movq -16(%rcx,%r15,8),%rax
793 addq -16(%rsp,%r15,8),%r10
799 movq -8(%rsi,%r15,8),%rax
803 movq %rdi,-32(%rsp,%r15,8)
808 movq -8(%rcx,%r15,8),%rax
810 addq -8(%rsp,%r15,8),%r11
816 movq (%rsi,%r15,8),%rax
820 movq %r13,-24(%rsp,%r15,8)
825 movq (%rcx,%r15,8),%rax
827 addq (%rsp,%r15,8),%r10
833 movq 8(%rsi,%r15,8),%rax
837 movq %rdi,-16(%rsp,%r15,8)
842 movq 8(%rcx,%r15,8),%rax
844 addq 8(%rsp,%r15,8),%r11
851 movq -16(%rsi,%r15,8),%rax
855 movq %r13,-40(%rsp,%r15,8)
862 movq -16(%rcx,%r15,8),%rax
864 addq -16(%rsp,%r15,8),%r10
870 movq -8(%rsi,%r15,8),%rax
874 movq %rdi,-32(%rsp,%r15,8)
879 movq -8(%rcx,%r15,8),%rax
881 addq -8(%rsp,%r15,8),%r11
892 movq %r13,-24(%rsp,%r15,8)
895 movq %rdi,-16(%rsp,%r15,8)
900 addq (%rsp,%r9,8),%r13
902 movq %r13,-8(%rsp,%r15,8)
903 movq %rdi,(%rsp,%r15,8)
907 movq 16(%rsp,%r9,8),%rdi
923 movq %rax,0(%rdi,%r14,8)
924 movq %rdx,8(%rdi,%r14,8)
925 sbbq 16(%rcx,%r14,8),%rbx
926 movq 32(%rsi,%r14,8),%rax
927 movq 40(%rsi,%r14,8),%rdx
928 sbbq 24(%rcx,%r14,8),%rbp
929 movq %rbx,16(%rdi,%r14,8)
930 movq %rbp,24(%rdi,%r14,8)
931 sbbq 32(%rcx,%r14,8),%rax
932 movq 48(%rsi,%r14,8),%rbx
933 movq 56(%rsi,%r14,8),%rbp
934 sbbq 40(%rcx,%r14,8),%rdx
939 movq %rax,0(%rdi,%r14,8)
940 movq 32(%rsi,%r14,8),%rax
941 sbbq 16(%rcx,%r14,8),%rbx
942 movq %rdx,8(%rdi,%r14,8)
943 sbbq 24(%rcx,%r14,8),%rbp
944 movq %rbx,16(%rdi,%r14,8)
947 movq %rbp,24(%rdi,%r14,8)
962 movdqu 16(%rsi,%r14,1),%xmm2
963 movdqu 32(%rsi,%r14,1),%xmm1
964 movdqa %xmm0,16(%rsp,%r14,1)
965 movdqu %xmm2,16(%rdi,%r14,1)
966 movdqa %xmm0,32(%rsp,%r14,1)
967 movdqu %xmm1,32(%rdi,%r14,1)
973 movdqu 16(%rsi,%r14,1),%xmm2
974 movdqa %xmm0,16(%rsp,%r14,1)
975 movdqu %xmm2,16(%rdi,%r14,1)
976 movq 8(%rsp,%r9,8),%rsi
988 .size bn_mul4x_mont_gather5,.-bn_mul4x_mont_gather5
990 .type bn_scatter5,@function
994 jz .Lscatter_epilogue
995 leaq (%rdx,%rcx,8),%rdx
1005 .size bn_scatter5,.-bn_scatter5
1008 .type bn_gather5,@function
1011 .LSEH_begin_bn_gather5:
1013 .byte 0x4c,0x8d,0x14,0x24
1014 .byte 0x48,0x81,0xec,0x08,0x01,0x00,0x00
1015 leaq .Linc(%rip),%rax
1019 movdqa 0(%rax),%xmm0
1020 movdqa 16(%rax),%xmm1
1024 pshufd $0,%xmm5,%xmm5
1033 movdqa %xmm0,-128(%rax)
1038 movdqa %xmm1,-112(%rax)
1043 movdqa %xmm2,-96(%rax)
1047 movdqa %xmm3,-80(%rax)
1052 movdqa %xmm0,-64(%rax)
1057 movdqa %xmm1,-48(%rax)
1062 movdqa %xmm2,-32(%rax)
1066 movdqa %xmm3,-16(%rax)
1071 movdqa %xmm0,0(%rax)
1076 movdqa %xmm1,16(%rax)
1081 movdqa %xmm2,32(%rax)
1085 movdqa %xmm3,48(%rax)
1090 movdqa %xmm0,64(%rax)
1095 movdqa %xmm1,80(%rax)
1100 movdqa %xmm2,96(%rax)
1102 movdqa %xmm3,112(%rax)
1109 movdqa -128(%r11),%xmm0
1110 movdqa -112(%r11),%xmm1
1111 movdqa -96(%r11),%xmm2
1112 pand -128(%rax),%xmm0
1113 movdqa -80(%r11),%xmm3
1114 pand -112(%rax),%xmm1
1116 pand -96(%rax),%xmm2
1118 pand -80(%rax),%xmm3
1121 movdqa -64(%r11),%xmm0
1122 movdqa -48(%r11),%xmm1
1123 movdqa -32(%r11),%xmm2
1124 pand -64(%rax),%xmm0
1125 movdqa -16(%r11),%xmm3
1126 pand -48(%rax),%xmm1
1128 pand -32(%rax),%xmm2
1130 pand -16(%rax),%xmm3
1133 movdqa 0(%r11),%xmm0
1134 movdqa 16(%r11),%xmm1
1135 movdqa 32(%r11),%xmm2
1137 movdqa 48(%r11),%xmm3
1145 movdqa 64(%r11),%xmm0
1146 movdqa 80(%r11),%xmm1
1147 movdqa 96(%r11),%xmm2
1149 movdqa 112(%r11),%xmm3
1154 pand 112(%rax),%xmm3
1159 pshufd $78,%xmm4,%xmm0
1168 .LSEH_end_bn_gather5:
1169 .size bn_gather5,.-bn_gather5
1174 .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