1 #if defined(__x86_64__)
3 .extern OPENSSL_ia32cap_P
4 .hidden OPENSSL_ia32cap_P
6 .globl sha1_block_data_order
7 .hidden sha1_block_data_order
8 .type sha1_block_data_order,@function
10 sha1_block_data_order:
11 movl OPENSSL_ia32cap_P+0(%rip),%r9d
12 movl OPENSSL_ia32cap_P+4(%rip),%r8d
13 movl OPENSSL_ia32cap_P+8(%rip),%r10d
53 leal 1518500249(%rdx,%r13,1),%r13d
66 leal 1518500249(%rbp,%r12,1),%r12d
79 leal 1518500249(%r14,%r11,1),%r11d
92 leal 1518500249(%rdx,%rdi,1),%edi
105 leal 1518500249(%rbp,%rsi,1),%esi
118 leal 1518500249(%r14,%r13,1),%r13d
131 leal 1518500249(%rdx,%r12,1),%r12d
144 leal 1518500249(%rbp,%r11,1),%r11d
157 leal 1518500249(%r14,%rdi,1),%edi
170 leal 1518500249(%rdx,%rsi,1),%esi
183 leal 1518500249(%rbp,%r13,1),%r13d
196 leal 1518500249(%r14,%r12,1),%r12d
209 leal 1518500249(%rdx,%r11,1),%r11d
222 leal 1518500249(%rbp,%rdi,1),%edi
235 leal 1518500249(%r14,%rsi,1),%esi
249 leal 1518500249(%rdx,%r13,1),%r13d
264 leal 1518500249(%rbp,%r12,1),%r12d
279 leal 1518500249(%r14,%r11,1),%r11d
294 leal 1518500249(%rdx,%rdi,1),%edi
309 leal 1518500249(%rbp,%rsi,1),%esi
323 leal 1859775393(%r14,%r13,1),%r13d
337 leal 1859775393(%rdx,%r12,1),%r12d
351 leal 1859775393(%rbp,%r11,1),%r11d
365 leal 1859775393(%r14,%rdi,1),%edi
379 leal 1859775393(%rdx,%rsi,1),%esi
393 leal 1859775393(%rbp,%r13,1),%r13d
407 leal 1859775393(%r14,%r12,1),%r12d
421 leal 1859775393(%rdx,%r11,1),%r11d
435 leal 1859775393(%rbp,%rdi,1),%edi
449 leal 1859775393(%r14,%rsi,1),%esi
463 leal 1859775393(%rdx,%r13,1),%r13d
477 leal 1859775393(%rbp,%r12,1),%r12d
491 leal 1859775393(%r14,%r11,1),%r11d
505 leal 1859775393(%rdx,%rdi,1),%edi
519 leal 1859775393(%rbp,%rsi,1),%esi
533 leal 1859775393(%r14,%r13,1),%r13d
547 leal 1859775393(%rdx,%r12,1),%r12d
561 leal 1859775393(%rbp,%r11,1),%r11d
575 leal 1859775393(%r14,%rdi,1),%edi
589 leal 1859775393(%rdx,%rsi,1),%esi
603 leal -1894007588(%rbp,%r13,1),%r13d
620 leal -1894007588(%r14,%r12,1),%r12d
637 leal -1894007588(%rdx,%r11,1),%r11d
654 leal -1894007588(%rbp,%rdi,1),%edi
671 leal -1894007588(%r14,%rsi,1),%esi
688 leal -1894007588(%rdx,%r13,1),%r13d
705 leal -1894007588(%rbp,%r12,1),%r12d
722 leal -1894007588(%r14,%r11,1),%r11d
739 leal -1894007588(%rdx,%rdi,1),%edi
756 leal -1894007588(%rbp,%rsi,1),%esi
773 leal -1894007588(%r14,%r13,1),%r13d
790 leal -1894007588(%rdx,%r12,1),%r12d
807 leal -1894007588(%rbp,%r11,1),%r11d
824 leal -1894007588(%r14,%rdi,1),%edi
841 leal -1894007588(%rdx,%rsi,1),%esi
858 leal -1894007588(%rbp,%r13,1),%r13d
875 leal -1894007588(%r14,%r12,1),%r12d
892 leal -1894007588(%rdx,%r11,1),%r11d
909 leal -1894007588(%rbp,%rdi,1),%edi
926 leal -1894007588(%r14,%rsi,1),%esi
943 leal -899497514(%rdx,%r13,1),%r13d
957 leal -899497514(%rbp,%r12,1),%r12d
971 leal -899497514(%r14,%r11,1),%r11d
985 leal -899497514(%rdx,%rdi,1),%edi
999 leal -899497514(%rbp,%rsi,1),%esi
1013 leal -899497514(%r14,%r13,1),%r13d
1027 leal -899497514(%rdx,%r12,1),%r12d
1041 leal -899497514(%rbp,%r11,1),%r11d
1055 leal -899497514(%r14,%rdi,1),%edi
1069 leal -899497514(%rdx,%rsi,1),%esi
1083 leal -899497514(%rbp,%r13,1),%r13d
1097 leal -899497514(%r14,%r12,1),%r12d
1111 leal -899497514(%rdx,%r11,1),%r11d
1125 leal -899497514(%rbp,%rdi,1),%edi
1139 leal -899497514(%r14,%rsi,1),%esi
1153 leal -899497514(%rdx,%r13,1),%r13d
1167 leal -899497514(%rbp,%r12,1),%r12d
1181 leal -899497514(%r14,%r11,1),%r11d
1195 leal -899497514(%rdx,%rdi,1),%edi
1204 leal -899497514(%rbp,%rsi,1),%esi
1234 .size sha1_block_data_order,.-sha1_block_data_order
1235 .type sha1_block_data_order_ssse3,@function
1237 sha1_block_data_order_ssse3:
1254 leaq K_XX_XX+64(%rip),%r11
1266 movdqa 64(%r11),%xmm6
1267 movdqa -64(%r11),%xmm9
1269 movdqu 16(%r9),%xmm1
1270 movdqu 32(%r9),%xmm2
1271 movdqu 48(%r9),%xmm3
1272 .byte 102,15,56,0,198
1273 .byte 102,15,56,0,206
1274 .byte 102,15,56,0,214
1277 .byte 102,15,56,0,222
1280 movdqa %xmm0,0(%rsp)
1282 movdqa %xmm1,16(%rsp)
1284 movdqa %xmm2,32(%rsp)
1290 pshufd $238,%xmm0,%xmm4
1296 punpcklqdq %xmm1,%xmm4
1313 movdqa %xmm9,48(%rsp)
1343 movdqa -64(%r11),%xmm10
1351 pshufd $238,%xmm1,%xmm5
1357 punpcklqdq %xmm2,%xmm5
1374 movdqa %xmm10,0(%rsp)
1404 movdqa -32(%r11),%xmm8
1412 pshufd $238,%xmm2,%xmm6
1418 punpcklqdq %xmm3,%xmm6
1435 movdqa %xmm8,16(%rsp)
1465 movdqa -32(%r11),%xmm9
1473 pshufd $238,%xmm3,%xmm7
1479 punpcklqdq %xmm4,%xmm7
1496 movdqa %xmm9,32(%rsp)
1526 movdqa -32(%r11),%xmm10
1531 pshufd $238,%xmm6,%xmm9
1539 punpcklqdq %xmm7,%xmm9
1557 movdqa %xmm10,48(%rsp)
1571 pshufd $238,%xmm7,%xmm10
1587 punpcklqdq %xmm0,%xmm10
1605 movdqa %xmm8,0(%rsp)
1620 pshufd $238,%xmm0,%xmm8
1631 punpcklqdq %xmm1,%xmm8
1637 movdqa 0(%r11),%xmm10
1649 movdqa %xmm9,16(%rsp)
1664 pshufd $238,%xmm1,%xmm9
1675 punpcklqdq %xmm2,%xmm9
1693 movdqa %xmm10,32(%rsp)
1708 pshufd $238,%xmm2,%xmm10
1719 punpcklqdq %xmm3,%xmm10
1737 movdqa %xmm8,48(%rsp)
1752 pshufd $238,%xmm3,%xmm8
1763 punpcklqdq %xmm4,%xmm8
1781 movdqa %xmm9,0(%rsp)
1796 pshufd $238,%xmm4,%xmm9
1810 punpcklqdq %xmm5,%xmm9
1829 movdqa %xmm10,16(%rsp)
1845 pshufd $238,%xmm5,%xmm10
1866 punpcklqdq %xmm6,%xmm10
1872 movdqa 32(%r11),%xmm9
1885 movdqa %xmm8,32(%rsp)
1901 pshufd $238,%xmm6,%xmm8
1922 punpcklqdq %xmm7,%xmm8
1941 movdqa %xmm9,48(%rsp)
1957 pshufd $238,%xmm7,%xmm9
1978 punpcklqdq %xmm0,%xmm9
1997 movdqa %xmm10,0(%rsp)
2013 pshufd $238,%xmm0,%xmm10
2034 punpcklqdq %xmm1,%xmm10
2053 movdqa %xmm8,16(%rsp)
2069 pshufd $238,%xmm1,%xmm8
2087 punpcklqdq %xmm2,%xmm8
2105 movdqa %xmm9,32(%rsp)
2134 movdqa %xmm10,48(%rsp)
2163 movdqa 64(%r11),%xmm6
2164 movdqa -64(%r11),%xmm9
2166 movdqu 16(%r9),%xmm1
2167 movdqu 32(%r9),%xmm2
2168 movdqu 48(%r9),%xmm3
2169 .byte 102,15,56,0,198
2174 .byte 102,15,56,0,206
2184 movdqa %xmm0,0(%rsp)
2210 .byte 102,15,56,0,214
2220 movdqa %xmm1,16(%rsp)
2246 .byte 102,15,56,0,222
2256 movdqa %xmm2,32(%rsp)
2410 .size sha1_block_data_order_ssse3,.-sha1_block_data_order_ssse3
2413 .long 0x5a827999,0x5a827999,0x5a827999,0x5a827999
2414 .long 0x5a827999,0x5a827999,0x5a827999,0x5a827999
2415 .long 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
2416 .long 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
2417 .long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
2418 .long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
2419 .long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
2420 .long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
2421 .long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
2422 .long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
2423 .byte 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0
2424 .byte 83,72,65,49,32,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