1 #include <machine/asm.h>
4 .globl bn_mul_mont_gather5
5 .type bn_mul_mont_gather5,@function
27 leaq (%rsp,%r11,8),%rsp
30 movq %rax,8(%rsp,%r9,8)
37 leaq .Lmagic_masks(%rip),%rax
39 leaq 96(%r12,%r11,8),%r12
40 movq 0(%rax,%r10,8),%xmm4
41 movq 8(%rax,%r10,8),%xmm5
42 movq 16(%rax,%r10,8),%xmm6
43 movq 24(%rax,%r10,8),%xmm7
58 .byte 102,72,15,126,195
101 movq (%rsi,%r15,8),%rax
106 movq %r13,-16(%rsp,%r15,8)
112 movq (%rcx,%r15,8),%rax
121 .byte 102,72,15,126,195
128 movq %r13,-16(%rsp,%r15,8)
135 movq %r13,-8(%rsp,%r9,8)
136 movq %rdx,(%rsp,%r9,8)
182 movq (%rsi,%r15,8),%rax
185 movq (%rsp,%r15,8),%r10
187 movq %r13,-16(%rsp,%r15,8)
193 movq (%rcx,%r15,8),%rax
204 .byte 102,72,15,126,195
210 movq (%rsp,%r15,8),%r10
212 movq %r13,-16(%rsp,%r15,8)
220 movq %r13,-8(%rsp,%r9,8)
221 movq %rdx,(%rsp,%r9,8)
233 .Lsub: sbbq (%rcx,%r14,8),%rax
234 movq %rax,(%rdi,%r14,8)
235 movq 8(%rsi,%r14,8),%rax
250 movq (%rsi,%r14,8),%rax
251 movq %r14,(%rsp,%r14,8)
252 movq %rax,(%rdi,%r14,8)
257 movq 8(%rsp,%r9,8),%rsi
268 .size bn_mul_mont_gather5,.-bn_mul_mont_gather5
269 .type bn_mul4x_mont_gather5,@function
271 bn_mul4x_mont_gather5:
284 leaq (%rsp,%r11,8),%rsp
287 movq %rax,8(%rsp,%r9,8)
289 movq %rdi,16(%rsp,%r9,8)
295 leaq .Lmagic_masks(%rip),%rax
297 leaq 96(%r12,%r11,8),%r12
298 movq 0(%rax,%r10,8),%xmm4
299 movq 8(%rax,%r10,8),%xmm5
300 movq 16(%rax,%r10,8),%xmm6
301 movq 24(%rax,%r10,8),%xmm7
316 .byte 102,72,15,126,195
372 movq -16(%rcx,%r15,8),%rax
378 movq -8(%rsi,%r15,8),%rax
382 movq %r13,-24(%rsp,%r15,8)
387 movq -8(%rcx,%r15,8),%rax
393 movq (%rsi,%r15,8),%rax
397 movq %rdi,-16(%rsp,%r15,8)
402 movq (%rcx,%r15,8),%rax
408 movq 8(%rsi,%r15,8),%rax
412 movq %r13,-8(%rsp,%r15,8)
417 movq 8(%rcx,%r15,8),%rax
424 movq -16(%rsi,%r15,8),%rax
428 movq %rdi,-32(%rsp,%r15,8)
435 movq -16(%rcx,%r15,8),%rax
441 movq -8(%rsi,%r15,8),%rax
445 movq %r13,-24(%rsp,%r15,8)
450 movq -8(%rcx,%r15,8),%rax
460 movq %rdi,-16(%rsp,%r15,8)
463 .byte 102,72,15,126,195
468 movq %r13,-8(%rsp,%r15,8)
469 movq %rdi,(%rsp,%r15,8)
527 movq -16(%rcx,%r15,8),%rax
529 addq -16(%rsp,%r15,8),%r10
535 movq -8(%rsi,%r15,8),%rax
539 movq %rdi,-32(%rsp,%r15,8)
544 movq -8(%rcx,%r15,8),%rax
546 addq -8(%rsp,%r15,8),%r11
552 movq (%rsi,%r15,8),%rax
556 movq %r13,-24(%rsp,%r15,8)
561 movq (%rcx,%r15,8),%rax
563 addq (%rsp,%r15,8),%r10
569 movq 8(%rsi,%r15,8),%rax
573 movq %rdi,-16(%rsp,%r15,8)
578 movq 8(%rcx,%r15,8),%rax
580 addq 8(%rsp,%r15,8),%r11
587 movq -16(%rsi,%r15,8),%rax
591 movq %r13,-40(%rsp,%r15,8)
598 movq -16(%rcx,%r15,8),%rax
600 addq -16(%rsp,%r15,8),%r10
606 movq -8(%rsi,%r15,8),%rax
610 movq %rdi,-32(%rsp,%r15,8)
615 movq -8(%rcx,%r15,8),%rax
617 addq -8(%rsp,%r15,8),%r11
628 movq %r13,-24(%rsp,%r15,8)
631 .byte 102,72,15,126,195
632 movq %rdi,-16(%rsp,%r15,8)
637 addq (%rsp,%r9,8),%r13
639 movq %r13,-8(%rsp,%r15,8)
640 movq %rdi,(%rsp,%r15,8)
644 movq 16(%rsp,%r9,8),%rdi
660 movq %rax,0(%rdi,%r14,8)
661 movq %rdx,8(%rdi,%r14,8)
662 sbbq 16(%rcx,%r14,8),%rbx
663 movq 32(%rsi,%r14,8),%rax
664 movq 40(%rsi,%r14,8),%rdx
665 sbbq 24(%rcx,%r14,8),%rbp
666 movq %rbx,16(%rdi,%r14,8)
667 movq %rbp,24(%rdi,%r14,8)
668 sbbq 32(%rcx,%r14,8),%rax
669 movq 48(%rsi,%r14,8),%rbx
670 movq 56(%rsi,%r14,8),%rbp
671 sbbq 40(%rcx,%r14,8),%rdx
676 movq %rax,0(%rdi,%r14,8)
677 movq 32(%rsi,%r14,8),%rax
678 sbbq 16(%rcx,%r14,8),%rbx
679 movq %rdx,8(%rdi,%r14,8)
680 sbbq 24(%rcx,%r14,8),%rbp
681 movq %rbx,16(%rdi,%r14,8)
684 movq %rbp,24(%rdi,%r14,8)
699 movdqu 16(%rsi,%r14,1),%xmm2
700 movdqu 32(%rsi,%r14,1),%xmm1
701 movdqa %xmm0,16(%rsp,%r14,1)
702 movdqu %xmm2,16(%rdi,%r14,1)
703 movdqa %xmm0,32(%rsp,%r14,1)
704 movdqu %xmm1,32(%rdi,%r14,1)
710 movdqu 16(%rsi,%r14,1),%xmm2
711 movdqa %xmm0,16(%rsp,%r14,1)
712 movdqu %xmm2,16(%rdi,%r14,1)
713 movq 8(%rsp,%r9,8),%rsi
724 .size bn_mul4x_mont_gather5,.-bn_mul4x_mont_gather5
726 .type bn_scatter5,@function
730 jz .Lscatter_epilogue
731 leaq (%rdx,%rcx,8),%rdx
741 .size bn_scatter5,.-bn_scatter5
744 .type bn_gather5,@function
751 leaq .Lmagic_masks(%rip),%rax
753 leaq 96(%rdx,%r11,8),%rdx
754 movq 0(%rax,%rcx,8),%xmm4
755 movq 8(%rax,%rcx,8),%xmm5
756 movq 16(%rax,%rcx,8),%xmm6
757 movq 24(%rax,%rcx,8),%xmm7
779 .LSEH_end_bn_gather5:
780 .size bn_gather5,.-bn_gather5
783 .long 0,0, 0,0, 0,0, -1,-1
784 .long 0,0, 0,0, 0,0, 0,0
785 .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