2 /* Do not modify. This file is auto-generated from sha1-mb-x86_64.pl. */
7 .globl sha1_multi_block
8 .type sha1_multi_block,@function
12 movq OPENSSL_ia32cap_P+4(%rip),%rcx
16 .cfi_def_cfa_register %rax
24 .cfi_escape 0x0f,0x06,0x77,0x90,0x02,0x06,0x23,0x08
26 leaq K_XX_XX(%rip),%rbp
65 movdqu 32(%rdi),%xmm11
66 movdqu 64(%rdi),%xmm12
67 movdqu 96(%rdi),%xmm13
68 movdqu 128(%rdi),%xmm14
70 movdqa -32(%rbp),%xmm15
100 punpckldq %xmm9,%xmm1
103 movdqa %xmm0,0-128(%rax)
117 .byte 102,15,56,0,205
121 punpckldq %xmm8,%xmm2
124 punpckldq %xmm7,%xmm9
130 punpckldq %xmm9,%xmm2
133 movdqa %xmm1,16-128(%rax)
147 .byte 102,15,56,0,213
151 punpckldq %xmm8,%xmm3
154 punpckldq %xmm7,%xmm9
160 punpckldq %xmm9,%xmm3
163 movdqa %xmm2,32-128(%rax)
177 .byte 102,15,56,0,221
181 punpckldq %xmm8,%xmm4
184 punpckldq %xmm7,%xmm9
190 punpckldq %xmm9,%xmm4
193 movdqa %xmm3,48-128(%rax)
207 .byte 102,15,56,0,229
211 punpckldq %xmm8,%xmm0
214 punpckldq %xmm7,%xmm9
220 punpckldq %xmm9,%xmm0
223 movdqa %xmm4,64-128(%rax)
237 .byte 102,15,56,0,197
241 punpckldq %xmm8,%xmm1
244 punpckldq %xmm7,%xmm9
250 punpckldq %xmm9,%xmm1
253 movdqa %xmm0,80-128(%rax)
267 .byte 102,15,56,0,205
271 punpckldq %xmm8,%xmm2
274 punpckldq %xmm7,%xmm9
280 punpckldq %xmm9,%xmm2
283 movdqa %xmm1,96-128(%rax)
297 .byte 102,15,56,0,213
301 punpckldq %xmm8,%xmm3
304 punpckldq %xmm7,%xmm9
310 punpckldq %xmm9,%xmm3
313 movdqa %xmm2,112-128(%rax)
327 .byte 102,15,56,0,221
331 punpckldq %xmm8,%xmm4
334 punpckldq %xmm7,%xmm9
340 punpckldq %xmm9,%xmm4
343 movdqa %xmm3,128-128(%rax)
357 .byte 102,15,56,0,229
361 punpckldq %xmm8,%xmm0
364 punpckldq %xmm7,%xmm9
370 punpckldq %xmm9,%xmm0
373 movdqa %xmm4,144-128(%rax)
387 .byte 102,15,56,0,197
391 punpckldq %xmm8,%xmm1
394 punpckldq %xmm7,%xmm9
400 punpckldq %xmm9,%xmm1
403 movdqa %xmm0,160-128(%rax)
417 .byte 102,15,56,0,205
421 punpckldq %xmm8,%xmm2
424 punpckldq %xmm7,%xmm9
430 punpckldq %xmm9,%xmm2
433 movdqa %xmm1,176-128(%rax)
447 .byte 102,15,56,0,213
451 punpckldq %xmm8,%xmm3
454 punpckldq %xmm7,%xmm9
460 punpckldq %xmm9,%xmm3
463 movdqa %xmm2,192-128(%rax)
477 .byte 102,15,56,0,221
481 punpckldq %xmm8,%xmm4
484 punpckldq %xmm7,%xmm9
490 punpckldq %xmm9,%xmm4
493 movdqa %xmm3,208-128(%rax)
507 .byte 102,15,56,0,229
510 movdqa 0-128(%rax),%xmm1
512 punpckldq %xmm8,%xmm0
515 punpckldq %xmm7,%xmm9
522 punpckldq %xmm9,%xmm0
525 movdqa %xmm4,224-128(%rax)
539 .byte 102,15,56,0,197
542 movdqa 16-128(%rax),%xmm2
544 movdqa 32-128(%rax),%xmm3
547 pxor 128-128(%rax),%xmm1
560 movdqa %xmm0,240-128(%rax)
575 movdqa 48-128(%rax),%xmm4
578 pxor 144-128(%rax),%xmm2
591 movdqa %xmm1,0-128(%rax)
606 movdqa 64-128(%rax),%xmm0
609 pxor 160-128(%rax),%xmm3
622 movdqa %xmm2,16-128(%rax)
637 movdqa 80-128(%rax),%xmm1
640 pxor 176-128(%rax),%xmm4
653 movdqa %xmm3,32-128(%rax)
668 movdqa 96-128(%rax),%xmm2
671 pxor 192-128(%rax),%xmm0
684 movdqa %xmm4,48-128(%rax)
698 movdqa 0(%rbp),%xmm15
700 movdqa 112-128(%rax),%xmm3
704 pxor 208-128(%rax),%xmm1
710 movdqa %xmm0,64-128(%rax)
729 movdqa 128-128(%rax),%xmm4
733 pxor 224-128(%rax),%xmm2
739 movdqa %xmm1,80-128(%rax)
758 movdqa 144-128(%rax),%xmm0
762 pxor 240-128(%rax),%xmm3
768 movdqa %xmm2,96-128(%rax)
787 movdqa 160-128(%rax),%xmm1
791 pxor 0-128(%rax),%xmm4
797 movdqa %xmm3,112-128(%rax)
816 movdqa 176-128(%rax),%xmm2
820 pxor 16-128(%rax),%xmm0
826 movdqa %xmm4,128-128(%rax)
845 movdqa 192-128(%rax),%xmm3
849 pxor 32-128(%rax),%xmm1
855 movdqa %xmm0,144-128(%rax)
874 movdqa 208-128(%rax),%xmm4
878 pxor 48-128(%rax),%xmm2
884 movdqa %xmm1,160-128(%rax)
903 movdqa 224-128(%rax),%xmm0
907 pxor 64-128(%rax),%xmm3
913 movdqa %xmm2,176-128(%rax)
932 movdqa 240-128(%rax),%xmm1
936 pxor 80-128(%rax),%xmm4
942 movdqa %xmm3,192-128(%rax)
961 movdqa 0-128(%rax),%xmm2
965 pxor 96-128(%rax),%xmm0
971 movdqa %xmm4,208-128(%rax)
990 movdqa 16-128(%rax),%xmm3
994 pxor 112-128(%rax),%xmm1
1000 movdqa %xmm0,224-128(%rax)
1019 movdqa 32-128(%rax),%xmm4
1023 pxor 128-128(%rax),%xmm2
1029 movdqa %xmm1,240-128(%rax)
1048 movdqa 48-128(%rax),%xmm0
1052 pxor 144-128(%rax),%xmm3
1058 movdqa %xmm2,0-128(%rax)
1077 movdqa 64-128(%rax),%xmm1
1081 pxor 160-128(%rax),%xmm4
1087 movdqa %xmm3,16-128(%rax)
1106 movdqa 80-128(%rax),%xmm2
1110 pxor 176-128(%rax),%xmm0
1116 movdqa %xmm4,32-128(%rax)
1135 movdqa 96-128(%rax),%xmm3
1139 pxor 192-128(%rax),%xmm1
1145 movdqa %xmm0,48-128(%rax)
1164 movdqa 112-128(%rax),%xmm4
1168 pxor 208-128(%rax),%xmm2
1174 movdqa %xmm1,64-128(%rax)
1193 movdqa 128-128(%rax),%xmm0
1197 pxor 224-128(%rax),%xmm3
1203 movdqa %xmm2,80-128(%rax)
1222 movdqa 144-128(%rax),%xmm1
1226 pxor 240-128(%rax),%xmm4
1232 movdqa %xmm3,96-128(%rax)
1251 movdqa 160-128(%rax),%xmm2
1255 pxor 0-128(%rax),%xmm0
1261 movdqa %xmm4,112-128(%rax)
1279 movdqa 32(%rbp),%xmm15
1281 movdqa 176-128(%rax),%xmm3
1285 pxor 16-128(%rax),%xmm1
1298 movdqa %xmm0,128-128(%rax)
1314 movdqa 192-128(%rax),%xmm4
1318 pxor 32-128(%rax),%xmm2
1331 movdqa %xmm1,144-128(%rax)
1347 movdqa 208-128(%rax),%xmm0
1351 pxor 48-128(%rax),%xmm3
1364 movdqa %xmm2,160-128(%rax)
1380 movdqa 224-128(%rax),%xmm1
1384 pxor 64-128(%rax),%xmm4
1397 movdqa %xmm3,176-128(%rax)
1413 movdqa 240-128(%rax),%xmm2
1417 pxor 80-128(%rax),%xmm0
1430 movdqa %xmm4,192-128(%rax)
1446 movdqa 0-128(%rax),%xmm3
1450 pxor 96-128(%rax),%xmm1
1463 movdqa %xmm0,208-128(%rax)
1479 movdqa 16-128(%rax),%xmm4
1483 pxor 112-128(%rax),%xmm2
1496 movdqa %xmm1,224-128(%rax)
1512 movdqa 32-128(%rax),%xmm0
1516 pxor 128-128(%rax),%xmm3
1529 movdqa %xmm2,240-128(%rax)
1545 movdqa 48-128(%rax),%xmm1
1549 pxor 144-128(%rax),%xmm4
1562 movdqa %xmm3,0-128(%rax)
1578 movdqa 64-128(%rax),%xmm2
1582 pxor 160-128(%rax),%xmm0
1595 movdqa %xmm4,16-128(%rax)
1611 movdqa 80-128(%rax),%xmm3
1615 pxor 176-128(%rax),%xmm1
1628 movdqa %xmm0,32-128(%rax)
1644 movdqa 96-128(%rax),%xmm4
1648 pxor 192-128(%rax),%xmm2
1661 movdqa %xmm1,48-128(%rax)
1677 movdqa 112-128(%rax),%xmm0
1681 pxor 208-128(%rax),%xmm3
1694 movdqa %xmm2,64-128(%rax)
1710 movdqa 128-128(%rax),%xmm1
1714 pxor 224-128(%rax),%xmm4
1727 movdqa %xmm3,80-128(%rax)
1743 movdqa 144-128(%rax),%xmm2
1747 pxor 240-128(%rax),%xmm0
1760 movdqa %xmm4,96-128(%rax)
1776 movdqa 160-128(%rax),%xmm3
1780 pxor 0-128(%rax),%xmm1
1793 movdqa %xmm0,112-128(%rax)
1809 movdqa 176-128(%rax),%xmm4
1813 pxor 16-128(%rax),%xmm2
1826 movdqa %xmm1,128-128(%rax)
1842 movdqa 192-128(%rax),%xmm0
1846 pxor 32-128(%rax),%xmm3
1859 movdqa %xmm2,144-128(%rax)
1875 movdqa 208-128(%rax),%xmm1
1879 pxor 48-128(%rax),%xmm4
1892 movdqa %xmm3,160-128(%rax)
1908 movdqa 224-128(%rax),%xmm2
1912 pxor 64-128(%rax),%xmm0
1925 movdqa %xmm4,176-128(%rax)
1940 movdqa 64(%rbp),%xmm15
1942 movdqa 240-128(%rax),%xmm3
1946 pxor 80-128(%rax),%xmm1
1952 movdqa %xmm0,192-128(%rax)
1971 movdqa 0-128(%rax),%xmm4
1975 pxor 96-128(%rax),%xmm2
1981 movdqa %xmm1,208-128(%rax)
2000 movdqa 16-128(%rax),%xmm0
2004 pxor 112-128(%rax),%xmm3
2010 movdqa %xmm2,224-128(%rax)
2029 movdqa 32-128(%rax),%xmm1
2033 pxor 128-128(%rax),%xmm4
2039 movdqa %xmm3,240-128(%rax)
2058 movdqa 48-128(%rax),%xmm2
2062 pxor 144-128(%rax),%xmm0
2068 movdqa %xmm4,0-128(%rax)
2087 movdqa 64-128(%rax),%xmm3
2091 pxor 160-128(%rax),%xmm1
2097 movdqa %xmm0,16-128(%rax)
2116 movdqa 80-128(%rax),%xmm4
2120 pxor 176-128(%rax),%xmm2
2126 movdqa %xmm1,32-128(%rax)
2145 movdqa 96-128(%rax),%xmm0
2149 pxor 192-128(%rax),%xmm3
2155 movdqa %xmm2,48-128(%rax)
2174 movdqa 112-128(%rax),%xmm1
2178 pxor 208-128(%rax),%xmm4
2184 movdqa %xmm3,64-128(%rax)
2203 movdqa 128-128(%rax),%xmm2
2207 pxor 224-128(%rax),%xmm0
2213 movdqa %xmm4,80-128(%rax)
2232 movdqa 144-128(%rax),%xmm3
2236 pxor 240-128(%rax),%xmm1
2242 movdqa %xmm0,96-128(%rax)
2261 movdqa 160-128(%rax),%xmm4
2265 pxor 0-128(%rax),%xmm2
2271 movdqa %xmm1,112-128(%rax)
2290 movdqa 176-128(%rax),%xmm0
2294 pxor 16-128(%rax),%xmm3
2318 movdqa 192-128(%rax),%xmm1
2322 pxor 32-128(%rax),%xmm4
2346 movdqa 208-128(%rax),%xmm2
2350 pxor 48-128(%rax),%xmm0
2374 movdqa 224-128(%rax),%xmm3
2378 pxor 64-128(%rax),%xmm1
2402 movdqa 240-128(%rax),%xmm4
2406 pxor 80-128(%rax),%xmm2
2430 movdqa 0-128(%rax),%xmm0
2434 pxor 96-128(%rax),%xmm3
2458 movdqa 16-128(%rax),%xmm1
2462 pxor 112-128(%rax),%xmm4
2519 movdqu 0(%rdi),%xmm6
2521 movdqu 32(%rdi),%xmm7
2524 movdqu 64(%rdi),%xmm8
2527 movdqu 96(%rdi),%xmm9
2530 movdqu 128(%rdi),%xmm5
2532 movdqu %xmm10,0(%rdi)
2534 movdqu %xmm11,32(%rdi)
2536 movdqu %xmm12,64(%rdi)
2537 movdqu %xmm13,96(%rdi)
2538 movdqu %xmm14,128(%rdi)
2541 movdqa 96(%rbp),%xmm5
2542 movdqa -32(%rbp),%xmm15
2560 .cfi_def_cfa_register %rsp
2564 .size sha1_multi_block,.-sha1_multi_block
2565 .type sha1_multi_block_shaext,@function
2567 sha1_multi_block_shaext:
2571 .cfi_def_cfa_register %rax
2573 .cfi_offset %rbx,-16
2575 .cfi_offset %rbp,-24
2583 movdqa K_XX_XX+128(%rip),%xmm3
2585 .Loop_grande_shaext:
2605 movq 0-64(%rdi),%xmm0
2606 movq 32-64(%rdi),%xmm4
2607 movq 64-64(%rdi),%xmm5
2608 movq 96-64(%rdi),%xmm6
2609 movq 128-64(%rdi),%xmm7
2611 punpckldq %xmm4,%xmm0
2612 punpckldq %xmm6,%xmm5
2615 punpcklqdq %xmm5,%xmm0
2616 punpckhqdq %xmm5,%xmm8
2618 pshufd $63,%xmm7,%xmm1
2619 pshufd $127,%xmm7,%xmm9
2620 pshufd $27,%xmm0,%xmm0
2621 pshufd $27,%xmm8,%xmm8
2627 movdqu 0(%r9),%xmm11
2628 movdqu 16(%r8),%xmm5
2629 movdqu 16(%r9),%xmm12
2630 movdqu 32(%r8),%xmm6
2631 .byte 102,15,56,0,227
2632 movdqu 32(%r9),%xmm13
2633 .byte 102,68,15,56,0,219
2634 movdqu 48(%r8),%xmm7
2636 .byte 102,15,56,0,235
2637 movdqu 48(%r9),%xmm14
2639 .byte 102,68,15,56,0,227
2641 movdqa %xmm1,80(%rsp)
2643 movdqa %xmm9,112(%rsp)
2645 movdqa %xmm0,64(%rsp)
2647 movdqa %xmm8,96(%rsp)
2649 .byte 15,58,204,193,0
2651 .byte 69,15,58,204,193,0
2652 .byte 69,15,56,200,212
2653 .byte 102,15,56,0,243
2656 .byte 102,68,15,56,0,235
2658 .byte 69,15,56,201,220
2660 .byte 102,15,56,0,251
2662 .byte 102,68,15,56,0,243
2664 .byte 15,58,204,194,0
2666 .byte 69,15,58,204,194,0
2667 .byte 69,15,56,200,205
2671 .byte 69,15,56,201,229
2674 .byte 15,58,204,193,0
2676 .byte 69,15,58,204,193,0
2677 .byte 69,15,56,200,214
2679 .byte 69,15,56,202,222
2683 .byte 69,15,56,201,238
2686 .byte 15,58,204,194,0
2688 .byte 69,15,58,204,194,0
2689 .byte 69,15,56,200,203
2691 .byte 69,15,56,202,227
2695 .byte 69,15,56,201,243
2698 .byte 15,58,204,193,0
2700 .byte 69,15,58,204,193,0
2701 .byte 69,15,56,200,212
2703 .byte 69,15,56,202,236
2707 .byte 69,15,56,201,220
2710 .byte 15,58,204,194,1
2712 .byte 69,15,58,204,194,1
2713 .byte 69,15,56,200,205
2715 .byte 69,15,56,202,245
2719 .byte 69,15,56,201,229
2722 .byte 15,58,204,193,1
2724 .byte 69,15,58,204,193,1
2725 .byte 69,15,56,200,214
2727 .byte 69,15,56,202,222
2731 .byte 69,15,56,201,238
2734 .byte 15,58,204,194,1
2736 .byte 69,15,58,204,194,1
2737 .byte 69,15,56,200,203
2739 .byte 69,15,56,202,227
2743 .byte 69,15,56,201,243
2746 .byte 15,58,204,193,1
2748 .byte 69,15,58,204,193,1
2749 .byte 69,15,56,200,212
2751 .byte 69,15,56,202,236
2755 .byte 69,15,56,201,220
2758 .byte 15,58,204,194,1
2760 .byte 69,15,58,204,194,1
2761 .byte 69,15,56,200,205
2763 .byte 69,15,56,202,245
2767 .byte 69,15,56,201,229
2770 .byte 15,58,204,193,2
2772 .byte 69,15,58,204,193,2
2773 .byte 69,15,56,200,214
2775 .byte 69,15,56,202,222
2779 .byte 69,15,56,201,238
2782 .byte 15,58,204,194,2
2784 .byte 69,15,58,204,194,2
2785 .byte 69,15,56,200,203
2787 .byte 69,15,56,202,227
2791 .byte 69,15,56,201,243
2794 .byte 15,58,204,193,2
2796 .byte 69,15,58,204,193,2
2797 .byte 69,15,56,200,212
2799 .byte 69,15,56,202,236
2803 .byte 69,15,56,201,220
2806 .byte 15,58,204,194,2
2808 .byte 69,15,58,204,194,2
2809 .byte 69,15,56,200,205
2811 .byte 69,15,56,202,245
2815 .byte 69,15,56,201,229
2818 .byte 15,58,204,193,2
2820 .byte 69,15,58,204,193,2
2821 .byte 69,15,56,200,214
2823 .byte 69,15,56,202,222
2827 .byte 69,15,56,201,238
2830 .byte 15,58,204,194,3
2832 .byte 69,15,58,204,194,3
2833 .byte 69,15,56,200,203
2835 .byte 69,15,56,202,227
2839 .byte 69,15,56,201,243
2842 .byte 15,58,204,193,3
2844 .byte 69,15,58,204,193,3
2845 .byte 69,15,56,200,212
2847 .byte 69,15,56,202,236
2858 .byte 15,58,204,194,3
2860 .byte 69,15,58,204,194,3
2861 .byte 69,15,56,200,205
2863 .byte 69,15,56,202,245
2871 .byte 15,58,204,193,3
2873 .byte 69,15,58,204,193,3
2874 .byte 69,15,56,200,214
2876 pshufd $0x00,%xmm6,%xmm11
2877 pshufd $0x55,%xmm6,%xmm12
2879 pcmpgtd %xmm4,%xmm11
2880 pcmpgtd %xmm4,%xmm12
2884 .byte 15,58,204,194,3
2886 .byte 69,15,58,204,194,3
2887 .byte 68,15,56,200,204
2896 paddd 64(%rsp),%xmm0
2897 paddd 80(%rsp),%xmm1
2898 paddd 96(%rsp),%xmm8
2899 paddd 112(%rsp),%xmm9
2907 pshufd $27,%xmm0,%xmm0
2908 pshufd $27,%xmm8,%xmm8
2911 punpckldq %xmm8,%xmm0
2912 punpckhdq %xmm8,%xmm6
2913 punpckhdq %xmm9,%xmm1
2914 movq %xmm0,0-64(%rdi)
2916 movq %xmm6,64-64(%rdi)
2918 movq %xmm0,32-64(%rdi)
2920 movq %xmm6,96-64(%rdi)
2921 movq %xmm1,128-64(%rdi)
2926 jnz .Loop_grande_shaext
2935 .cfi_def_cfa_register %rsp
2939 .size sha1_multi_block_shaext,.-sha1_multi_block_shaext
2942 .long 0x5a827999,0x5a827999,0x5a827999,0x5a827999
2943 .long 0x5a827999,0x5a827999,0x5a827999,0x5a827999
2945 .long 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
2946 .long 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
2947 .long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
2948 .long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
2949 .long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
2950 .long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
2951 .long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
2952 .long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
2953 .byte 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0
2954 .byte 83,72,65,49,32,109,117,108,116,105,45,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,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