5 .globl sha256_block_data_order
6 .type sha256_block_data_order,@function
8 sha256_block_data_order:
9 leaq OPENSSL_ia32cap_P(%rip),%r11
13 testl $536870912,%r11d
26 leaq (%rsi,%rdx,4),%rdx
1670 movq 64+0(%rsp),%rdi
1683 cmpq 64+16(%rsp),%rsi
1695 movq 64+24(%rsp),%rsi
1705 .size sha256_block_data_order,.-sha256_block_data_order
1709 .long 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
1710 .long 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
1711 .long 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
1712 .long 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
1713 .long 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
1714 .long 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
1715 .long 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
1716 .long 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
1717 .long 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
1718 .long 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
1719 .long 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
1720 .long 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
1721 .long 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
1722 .long 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
1723 .long 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
1724 .long 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
1725 .long 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
1726 .long 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
1727 .long 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
1728 .long 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
1729 .long 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
1730 .long 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
1731 .long 0xd192e819,0xd6990624,0xf40e3585,0x106aa070
1732 .long 0xd192e819,0xd6990624,0xf40e3585,0x106aa070
1733 .long 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
1734 .long 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
1735 .long 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
1736 .long 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
1737 .long 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
1738 .long 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
1739 .long 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
1740 .long 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
1742 .long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
1743 .long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
1744 .long 0x03020100,0x0b0a0908,0xffffffff,0xffffffff
1745 .long 0x03020100,0x0b0a0908,0xffffffff,0xffffffff
1746 .long 0xffffffff,0xffffffff,0x03020100,0x0b0a0908
1747 .long 0xffffffff,0xffffffff,0x03020100,0x0b0a0908
1748 .byte 83,72,65,50,53,54,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
1749 .type sha256_block_data_order_shaext,@function
1751 sha256_block_data_order_shaext:
1753 leaq K256+128(%rip),%rcx
1755 movdqu 16(%rdi),%xmm2
1756 movdqa 512-128(%rcx),%xmm7
1758 pshufd $0x1b,%xmm1,%xmm0
1759 pshufd $0xb1,%xmm1,%xmm1
1760 pshufd $0x1b,%xmm2,%xmm2
1762 .byte 102,15,58,15,202,8
1763 punpcklqdq %xmm0,%xmm2
1769 movdqu 16(%rsi),%xmm4
1770 movdqu 32(%rsi),%xmm5
1771 .byte 102,15,56,0,223
1772 movdqu 48(%rsi),%xmm6
1774 movdqa 0-128(%rcx),%xmm0
1776 .byte 102,15,56,0,231
1779 pshufd $0x0e,%xmm0,%xmm0
1784 movdqa 32-128(%rcx),%xmm0
1786 .byte 102,15,56,0,239
1788 pshufd $0x0e,%xmm0,%xmm0
1793 movdqa 64-128(%rcx),%xmm0
1795 .byte 102,15,56,0,247
1797 pshufd $0x0e,%xmm0,%xmm0
1799 .byte 102,15,58,15,253,4
1805 movdqa 96-128(%rcx),%xmm0
1809 pshufd $0x0e,%xmm0,%xmm0
1811 .byte 102,15,58,15,254,4
1816 movdqa 128-128(%rcx),%xmm0
1820 pshufd $0x0e,%xmm0,%xmm0
1822 .byte 102,15,58,15,251,4
1827 movdqa 160-128(%rcx),%xmm0
1831 pshufd $0x0e,%xmm0,%xmm0
1833 .byte 102,15,58,15,252,4
1838 movdqa 192-128(%rcx),%xmm0
1842 pshufd $0x0e,%xmm0,%xmm0
1844 .byte 102,15,58,15,253,4
1849 movdqa 224-128(%rcx),%xmm0
1853 pshufd $0x0e,%xmm0,%xmm0
1855 .byte 102,15,58,15,254,4
1860 movdqa 256-128(%rcx),%xmm0
1864 pshufd $0x0e,%xmm0,%xmm0
1866 .byte 102,15,58,15,251,4
1871 movdqa 288-128(%rcx),%xmm0
1875 pshufd $0x0e,%xmm0,%xmm0
1877 .byte 102,15,58,15,252,4
1882 movdqa 320-128(%rcx),%xmm0
1886 pshufd $0x0e,%xmm0,%xmm0
1888 .byte 102,15,58,15,253,4
1893 movdqa 352-128(%rcx),%xmm0
1897 pshufd $0x0e,%xmm0,%xmm0
1899 .byte 102,15,58,15,254,4
1904 movdqa 384-128(%rcx),%xmm0
1908 pshufd $0x0e,%xmm0,%xmm0
1910 .byte 102,15,58,15,251,4
1915 movdqa 416-128(%rcx),%xmm0
1919 pshufd $0x0e,%xmm0,%xmm0
1921 .byte 102,15,58,15,252,4
1925 movdqa 448-128(%rcx),%xmm0
1928 pshufd $0x0e,%xmm0,%xmm0
1933 movdqa 480-128(%rcx),%xmm0
1937 pshufd $0x0e,%xmm0,%xmm0
1946 pshufd $0xb1,%xmm2,%xmm2
1947 pshufd $0x1b,%xmm1,%xmm7
1948 pshufd $0xb1,%xmm1,%xmm1
1949 punpckhqdq %xmm2,%xmm1
1950 .byte 102,15,58,15,215,8
1953 movdqu %xmm2,16(%rdi)
1955 .size sha256_block_data_order_shaext,.-sha256_block_data_order_shaext
1956 .type sha256_block_data_order_ssse3,@function
1958 sha256_block_data_order_ssse3:
1969 leaq (%rsi,%rdx,4),%rdx
1971 movq %rdi,64+0(%rsp)
1972 movq %rsi,64+8(%rsp)
1973 movq %rdx,64+16(%rsp)
1974 movq %r11,64+24(%rsp)
1990 movdqa K256+512(%rip),%xmm7
1991 movdqu 0(%rsi),%xmm0
1992 movdqu 16(%rsi),%xmm1
1993 movdqu 32(%rsi),%xmm2
1994 .byte 102,15,56,0,199
1995 movdqu 48(%rsi),%xmm3
1996 leaq K256(%rip),%rbp
1997 .byte 102,15,56,0,207
1998 movdqa 0(%rbp),%xmm4
1999 movdqa 32(%rbp),%xmm5
2000 .byte 102,15,56,0,215
2002 movdqa 64(%rbp),%xmm6
2003 .byte 102,15,56,0,223
2004 movdqa 96(%rbp),%xmm7
2008 movdqa %xmm4,0(%rsp)
2010 movdqa %xmm5,16(%rsp)
2012 movdqa %xmm6,32(%rsp)
2014 movdqa %xmm7,48(%rsp)
2031 .byte 102,15,58,15,224,4
2034 .byte 102,15,58,15,250,4
2055 pshufd $250,%xmm3,%xmm7
2106 pshufd $128,%xmm7,%xmm7
2120 pshufd $80,%xmm0,%xmm7
2147 pshufd $8,%xmm7,%xmm7
2150 movdqa 0(%rbp),%xmm6
2164 movdqa %xmm6,0(%rsp)
2175 .byte 102,15,58,15,225,4
2178 .byte 102,15,58,15,251,4
2199 pshufd $250,%xmm0,%xmm7
2250 pshufd $128,%xmm7,%xmm7
2264 pshufd $80,%xmm1,%xmm7
2291 pshufd $8,%xmm7,%xmm7
2294 movdqa 32(%rbp),%xmm6
2308 movdqa %xmm6,16(%rsp)
2319 .byte 102,15,58,15,226,4
2322 .byte 102,15,58,15,248,4
2343 pshufd $250,%xmm1,%xmm7
2394 pshufd $128,%xmm7,%xmm7
2408 pshufd $80,%xmm2,%xmm7
2435 pshufd $8,%xmm7,%xmm7
2438 movdqa 64(%rbp),%xmm6
2452 movdqa %xmm6,32(%rsp)
2463 .byte 102,15,58,15,227,4
2466 .byte 102,15,58,15,249,4
2487 pshufd $250,%xmm2,%xmm7
2538 pshufd $128,%xmm7,%xmm7
2552 pshufd $80,%xmm3,%xmm7
2579 pshufd $8,%xmm7,%xmm7
2582 movdqa 96(%rbp),%xmm6
2596 movdqa %xmm6,48(%rsp)
3015 movq 64+0(%rsp),%rdi
3028 cmpq 64+16(%rsp),%rsi
3040 movq 64+24(%rsp),%rsi
3050 .size sha256_block_data_order_ssse3,.-sha256_block_data_order_ssse3