1 #if defined(__x86_64__)
4 .extern OPENSSL_ia32cap_P
5 .hidden OPENSSL_ia32cap_P
9 .type bn_mul_mont,@function
35 leaq (%rsp,%r10,8),%rsp
38 movq %r11,8(%rsp,%r9,8)
68 movq (%rsi,%r15,8),%rax
73 movq %r13,-16(%rsp,%r15,8)
79 movq (%rcx,%r15,8),%rax
93 movq %r13,-16(%rsp,%r15,8)
100 movq %r13,-8(%rsp,%r9,8)
101 movq %rdx,(%rsp,%r9,8)
107 movq (%r12,%r14,8),%rbx
132 movq (%rsi,%r15,8),%rax
135 movq (%rsp,%r15,8),%r10
137 movq %r13,-16(%rsp,%r15,8)
143 movq (%rcx,%r15,8),%rax
158 movq (%rsp,%r15,8),%r10
160 movq %r13,-16(%rsp,%r15,8)
168 movq %r13,-8(%rsp,%r9,8)
169 movq %rdx,(%rsp,%r9,8)
181 .Lsub: sbbq (%rcx,%r14,8),%rax
182 movq %rax,(%rdi,%r14,8)
183 movq 8(%rsi,%r14,8),%rax
193 movq (%rsp,%r14,8),%rsi
194 movq (%rdi,%r14,8),%rcx
198 movq %r14,(%rsp,%r14,8)
199 movq %rsi,(%rdi,%r14,8)
204 movq 8(%rsp,%r9,8),%rsi
215 .size bn_mul_mont,.-bn_mul_mont
216 .type bn_mul4x_mont,@function
231 leaq (%rsp,%r10,8),%rsp
234 movq %r11,8(%rsp,%r9,8)
236 movq %rdi,16(%rsp,%r9,8)
279 movq -16(%rcx,%r15,8),%rax
285 movq -8(%rsi,%r15,8),%rax
289 movq %r13,-24(%rsp,%r15,8)
294 movq -8(%rcx,%r15,8),%rax
300 movq (%rsi,%r15,8),%rax
304 movq %rdi,-16(%rsp,%r15,8)
309 movq (%rcx,%r15,8),%rax
315 movq 8(%rsi,%r15,8),%rax
319 movq %r13,-8(%rsp,%r15,8)
324 movq 8(%rcx,%r15,8),%rax
331 movq -16(%rsi,%r15,8),%rax
335 movq %rdi,-32(%rsp,%r15,8)
342 movq -16(%rcx,%r15,8),%rax
348 movq -8(%rsi,%r15,8),%rax
352 movq %r13,-24(%rsp,%r15,8)
357 movq -8(%rcx,%r15,8),%rax
367 movq %rdi,-16(%rsp,%r15,8)
373 movq %r13,-8(%rsp,%r15,8)
374 movq %rdi,(%rsp,%r15,8)
379 movq (%r12,%r14,8),%rbx
419 movq -16(%rcx,%r15,8),%rax
421 addq -16(%rsp,%r15,8),%r10
427 movq -8(%rsi,%r15,8),%rax
431 movq %r13,-24(%rsp,%r15,8)
436 movq -8(%rcx,%r15,8),%rax
438 addq -8(%rsp,%r15,8),%r11
444 movq (%rsi,%r15,8),%rax
448 movq %rdi,-16(%rsp,%r15,8)
453 movq (%rcx,%r15,8),%rax
455 addq (%rsp,%r15,8),%r10
461 movq 8(%rsi,%r15,8),%rax
465 movq %r13,-8(%rsp,%r15,8)
470 movq 8(%rcx,%r15,8),%rax
472 addq 8(%rsp,%r15,8),%r11
479 movq -16(%rsi,%r15,8),%rax
483 movq %rdi,-32(%rsp,%r15,8)
490 movq -16(%rcx,%r15,8),%rax
492 addq -16(%rsp,%r15,8),%r10
498 movq -8(%rsi,%r15,8),%rax
502 movq %r13,-24(%rsp,%r15,8)
507 movq -8(%rcx,%r15,8),%rax
509 addq -8(%rsp,%r15,8),%r11
520 movq %rdi,-16(%rsp,%r15,8)
526 addq (%rsp,%r9,8),%r13
528 movq %r13,-8(%rsp,%r15,8)
529 movq %rdi,(%rsp,%r15,8)
533 movq 16(%rsp,%r9,8),%rdi
548 movq %rax,0(%rdi,%r14,8)
549 movq %rdx,8(%rdi,%r14,8)
550 sbbq 16(%rcx,%r14,8),%rbx
551 movq 32(%rsi,%r14,8),%rax
552 movq 40(%rsi,%r14,8),%rdx
553 sbbq 24(%rcx,%r14,8),%rbp
554 movq %rbx,16(%rdi,%r14,8)
555 movq %rbp,24(%rdi,%r14,8)
556 sbbq 32(%rcx,%r14,8),%rax
557 movq 48(%rsi,%r14,8),%rbx
558 movq 56(%rsi,%r14,8),%rbp
559 sbbq 40(%rcx,%r14,8),%rdx
564 movq %rax,0(%rdi,%r14,8)
565 movq 32(%rsi,%r14,8),%rax
566 sbbq 16(%rcx,%r14,8),%rbx
567 movq %rdx,8(%rdi,%r14,8)
568 sbbq 24(%rcx,%r14,8),%rbp
569 movq %rbx,16(%rdi,%r14,8)
573 punpcklqdq %xmm0,%xmm0
574 movq %rbp,24(%rdi,%r14,8)
582 movdqu (%rsp,%r14,1),%xmm2
583 movdqu 16(%rsp,%r14,1),%xmm4
584 movdqu (%rdi,%r14,1),%xmm1
585 movdqu 16(%rdi,%r14,1),%xmm3
592 movdqu %xmm2,(%rdi,%r14,1)
593 movdqu %xmm4,16(%rdi,%r14,1)
594 movdqa %xmm5,(%rsp,%r14,1)
595 movdqa %xmm5,16(%rsp,%r14,1)
602 movq 8(%rsp,%r9,8),%rsi
613 .size bn_mul4x_mont,.-bn_mul4x_mont
614 .extern bn_sqr8x_internal
615 .hidden bn_sqr8x_internal
617 .type bn_sqr8x_mont,@function
639 leaq -64(%rsp,%r9,4),%r11
646 leaq -64(%rsp,%r9,4),%rsp
651 leaq 4096-64(,%r9,4),%r10
652 leaq -64(%rsp,%r9,4),%rsp
662 leaq 64(%rsp,%r9,2),%r11
668 .byte 102,73,15,110,211
670 movl OPENSSL_ia32cap_P+8(%rip),%eax
681 movdqa %xmm1,16(%r11)
682 movdqa %xmm3,32(%r11)
683 movdqa %xmm4,48(%r11)
689 .byte 102,72,15,110,207
690 .byte 102,73,15,110,218
691 call bn_sqr8x_internal
695 leaq 64(%rsp,%r9,2),%rdx
703 movdqa %xmm0,16(%rax)
704 movdqa %xmm0,32(%rax)
705 movdqa %xmm0,48(%rax)
708 movdqa %xmm0,16(%rdx)
709 movdqa %xmm0,32(%rdx)
710 movdqa %xmm0,48(%rdx)
725 .size bn_sqr8x_mont,.-bn_sqr8x_mont
726 .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