2 /* Do not modify. This file is auto-generated from x86_64-mont.pl. */
8 .type bn_mul_mont,@function
17 movl OPENSSL_ia32cap_P+8(%rip),%r11d
35 leaq -16(%rsp,%r9,8),%r10
47 leaq (%r10,%r11,1),%rsp
51 jmp .Lmul_page_walk_done
61 movq %rax,8(%rsp,%r9,8)
91 movq (%rsi,%r15,8),%rax
96 movq %r13,-16(%rsp,%r15,8)
102 movq (%rcx,%r15,8),%rax
116 movq %r13,-16(%rsp,%r15,8)
123 movq %r13,-8(%rsp,%r9,8)
124 movq %rdx,(%rsp,%r9,8)
130 movq (%r12,%r14,8),%rbx
155 movq (%rsi,%r15,8),%rax
158 movq (%rsp,%r15,8),%r10
160 movq %r13,-16(%rsp,%r15,8)
166 movq (%rcx,%r15,8),%rax
181 movq (%rsp,%r15,8),%r10
183 movq %r13,-16(%rsp,%r15,8)
191 movq %r13,-8(%rsp,%r9,8)
192 movq %rdx,(%rsp,%r9,8)
203 .Lsub: sbbq (%rcx,%r14,8),%rax
204 movq %rax,(%rdi,%r14,8)
205 movq 8(%rsp,%r14,8),%rax
217 movq (%rdi,%r14,8),%rcx
218 movq (%rsp,%r14,8),%rdx
221 movq %r9,(%rsp,%r14,8)
223 movq %rdx,(%rdi,%r14,8)
228 movq 8(%rsp,%r9,8),%rsi
239 .size bn_mul_mont,.-bn_mul_mont
240 .type bn_mul4x_mont,@function
258 leaq -32(%rsp,%r9,8),%r10
264 leaq (%r10,%r11,1),%rsp
268 jmp .Lmul4x_page_walk_done
271 leaq -4096(%rsp),%rsp
275 .Lmul4x_page_walk_done:
277 movq %rax,8(%rsp,%r9,8)
279 movq %rdi,16(%rsp,%r9,8)
322 movq -16(%rcx,%r15,8),%rax
328 movq -8(%rsi,%r15,8),%rax
332 movq %r13,-24(%rsp,%r15,8)
337 movq -8(%rcx,%r15,8),%rax
343 movq (%rsi,%r15,8),%rax
347 movq %rdi,-16(%rsp,%r15,8)
352 movq (%rcx,%r15,8),%rax
358 movq 8(%rsi,%r15,8),%rax
362 movq %r13,-8(%rsp,%r15,8)
367 movq 8(%rcx,%r15,8),%rax
374 movq -16(%rsi,%r15,8),%rax
378 movq %rdi,-32(%rsp,%r15,8)
385 movq -16(%rcx,%r15,8),%rax
391 movq -8(%rsi,%r15,8),%rax
395 movq %r13,-24(%rsp,%r15,8)
400 movq -8(%rcx,%r15,8),%rax
410 movq %rdi,-16(%rsp,%r15,8)
416 movq %r13,-8(%rsp,%r15,8)
417 movq %rdi,(%rsp,%r15,8)
422 movq (%r12,%r14,8),%rbx
462 movq -16(%rcx,%r15,8),%rax
464 addq -16(%rsp,%r15,8),%r10
470 movq -8(%rsi,%r15,8),%rax
474 movq %r13,-24(%rsp,%r15,8)
479 movq -8(%rcx,%r15,8),%rax
481 addq -8(%rsp,%r15,8),%r11
487 movq (%rsi,%r15,8),%rax
491 movq %rdi,-16(%rsp,%r15,8)
496 movq (%rcx,%r15,8),%rax
498 addq (%rsp,%r15,8),%r10
504 movq 8(%rsi,%r15,8),%rax
508 movq %r13,-8(%rsp,%r15,8)
513 movq 8(%rcx,%r15,8),%rax
515 addq 8(%rsp,%r15,8),%r11
522 movq -16(%rsi,%r15,8),%rax
526 movq %rdi,-32(%rsp,%r15,8)
533 movq -16(%rcx,%r15,8),%rax
535 addq -16(%rsp,%r15,8),%r10
541 movq -8(%rsi,%r15,8),%rax
545 movq %r13,-24(%rsp,%r15,8)
550 movq -8(%rcx,%r15,8),%rax
552 addq -8(%rsp,%r15,8),%r11
563 movq %rdi,-16(%rsp,%r15,8)
569 addq (%rsp,%r9,8),%r13
571 movq %r13,-8(%rsp,%r15,8)
572 movq %rdi,(%rsp,%r15,8)
576 movq 16(%rsp,%r9,8),%rdi
590 movq %rax,0(%rdi,%r14,8)
591 movq %rdx,8(%rdi,%r14,8)
592 sbbq 16(%rcx,%r14,8),%rbx
593 movq 32(%rsi,%r14,8),%rax
594 movq 40(%rsi,%r14,8),%rdx
595 sbbq 24(%rcx,%r14,8),%rbp
596 movq %rbx,16(%rdi,%r14,8)
597 movq %rbp,24(%rdi,%r14,8)
598 sbbq 32(%rcx,%r14,8),%rax
599 movq 48(%rsi,%r14,8),%rbx
600 movq 56(%rsi,%r14,8),%rbp
601 sbbq 40(%rcx,%r14,8),%rdx
606 movq %rax,0(%rdi,%r14,8)
607 movq 32(%rsi,%r14,8),%rax
608 sbbq 16(%rcx,%r14,8),%rbx
609 movq %rdx,8(%rdi,%r14,8)
610 sbbq 24(%rcx,%r14,8),%rbp
611 movq %rbx,16(%rdi,%r14,8)
614 movq %rbp,24(%rdi,%r14,8)
616 .byte 102,72,15,110,224
618 pshufd $0,%xmm4,%xmm4
627 movdqa (%rsp,%rax,1),%xmm1
628 movdqu (%rdi,%rax,1),%xmm2
631 movdqa 16(%rsp,%rax,1),%xmm3
632 movdqa %xmm0,(%rsp,%rax,1)
634 movdqu 16(%rdi,%rax,1),%xmm2
635 movdqu %xmm1,(%rdi,%rax,1)
638 movdqa %xmm0,16(%rsp,%rax,1)
640 movdqu %xmm3,16(%rdi,%rax,1)
644 movq 8(%rsp,%r9,8),%rsi
655 .size bn_mul4x_mont,.-bn_mul4x_mont
659 .type bn_sqr8x_mont,@function
682 leaq -64(%rsp,%r9,2),%r11
690 leaq -64(%rbp,%r9,2),%rbp
695 leaq 4096-64(,%r9,2),%r10
696 leaq -64(%rbp,%r9,2),%rbp
706 leaq (%r11,%rbp,1),%rsp
710 jmp .Lsqr8x_page_walk_done
714 leaq -4096(%rsp),%rsp
718 .Lsqr8x_page_walk_done:
727 .byte 102,72,15,110,209
729 .byte 102,72,15,110,207
730 .byte 102,73,15,110,218
731 movl OPENSSL_ia32cap_P+8(%rip),%eax
736 call bn_sqrx8x_internal
741 leaq (%r8,%rcx,1),%rbx
744 .byte 102,72,15,126,207
750 call bn_sqr8x_internal
755 leaq (%rdi,%r9,1),%rbx
758 .byte 102,72,15,126,207
783 leaq (%rbx,%r9,1),%rbx
784 leaq (%rdi,%r9,1),%rdi
786 .byte 102,72,15,110,200
788 pshufd $0,%xmm1,%xmm1
790 jmp .Lsqr8x_cond_copy
795 movdqa 16(%rbx),%xmm3
798 movdqu 16(%rdi),%xmm5
800 movdqa %xmm0,-32(%rbx)
801 movdqa %xmm0,-16(%rbx)
802 movdqa %xmm0,-32(%rbx,%rdx,1)
803 movdqa %xmm0,-16(%rbx,%rdx,1)
812 movdqu %xmm4,-32(%rdi)
813 movdqu %xmm5,-16(%rdi)
815 jnz .Lsqr8x_cond_copy
827 .size bn_sqr8x_mont,.-bn_sqr8x_mont
828 .type bn_mulx4x_mont,@function
845 leaq -72(%rsp,%r10,1),%rbp
850 leaq (%r11,%rbp,1),%rsp
853 ja .Lmulx4x_page_walk
854 jmp .Lmulx4x_page_walk_done
858 leaq -4096(%rsp),%rsp
861 ja .Lmulx4x_page_walk
862 .Lmulx4x_page_walk_done:
864 leaq (%rdx,%r9,1),%r10
891 leaq 64+32(%rsp),%rbx
894 mulxq 0(%rsi),%r8,%rax
895 mulxq 8(%rsi),%r11,%r14
898 mulxq 16(%rsi),%r12,%r13
906 mulxq 24(%rsi),%rax,%r14
912 mulxq 0(%rcx),%rax,%r10
915 mulxq 8(%rcx),%rax,%r11
918 .byte 0xc4,0x62,0xfb,0xf6,0xa1,0x10,0x00,0x00,0x00
923 mulxq 24(%rcx),%rax,%r15
936 mulxq 0(%rsi),%r10,%rax
938 mulxq 8(%rsi),%r11,%r14
940 mulxq 16(%rsi),%r12,%rax
942 mulxq 24(%rsi),%r13,%r14
951 mulxq 0(%rcx),%rax,%r15
954 mulxq 8(%rcx),%rax,%r15
957 mulxq 16(%rcx),%rax,%r15
962 mulxq 24(%rcx),%rax,%r15
987 leaq 64+32(%rsp),%rbx
990 mulxq 0(%rsi),%r8,%r11
993 mulxq 8(%rsi),%r14,%r12
996 mulxq 16(%rsi),%r15,%r13
1008 mulxq 24(%rsi),%rax,%r14
1016 mulxq 0(%rcx),%rax,%r10
1019 mulxq 8(%rcx),%rax,%r11
1022 mulxq 16(%rcx),%rax,%r12
1026 mulxq 24(%rcx),%rax,%r15
1039 mulxq 0(%rsi),%r10,%rax
1042 mulxq 8(%rsi),%r11,%r14
1045 mulxq 16(%rsi),%r12,%rax
1048 mulxq 24(%rsi),%r13,%r14
1059 mulxq 0(%rcx),%rax,%r15
1062 mulxq 8(%rcx),%rax,%r15
1065 mulxq 16(%rcx),%rax,%r15
1069 mulxq 24(%rcx),%rax,%r15
1124 .byte 102,73,15,110,207
1126 pshufd $0,%xmm1,%xmm1
1128 jmp .Lmulx4x_cond_copy
1132 movdqa 0(%rbx),%xmm2
1133 movdqa 16(%rbx),%xmm3
1135 movdqu 0(%rdi),%xmm4
1136 movdqu 16(%rdi),%xmm5
1138 movdqa %xmm0,-32(%rbx)
1139 movdqa %xmm0,-16(%rbx)
1148 movdqu %xmm4,-32(%rdi)
1149 movdqu %xmm5,-16(%rdi)
1151 jnz .Lmulx4x_cond_copy
1165 .size bn_mulx4x_mont,.-bn_mulx4x_mont
1166 .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