5399 lines
98 KiB
ArmAsm
5399 lines
98 KiB
ArmAsm
/* $FreeBSD$ */
|
|
/* Do not modify. This file is auto-generated from sha1-x86_64.pl. */
|
|
.text
|
|
|
|
|
|
.globl sha1_block_data_order
|
|
.type sha1_block_data_order,@function
|
|
.align 16
|
|
sha1_block_data_order:
|
|
movl OPENSSL_ia32cap_P+0(%rip),%r9d
|
|
movl OPENSSL_ia32cap_P+4(%rip),%r8d
|
|
movl OPENSSL_ia32cap_P+8(%rip),%r10d
|
|
testl $512,%r8d
|
|
jz .Lialu
|
|
testl $536870912,%r10d
|
|
jnz _shaext_shortcut
|
|
andl $296,%r10d
|
|
cmpl $296,%r10d
|
|
je _avx2_shortcut
|
|
andl $268435456,%r8d
|
|
andl $1073741824,%r9d
|
|
orl %r9d,%r8d
|
|
cmpl $1342177280,%r8d
|
|
je _avx_shortcut
|
|
jmp _ssse3_shortcut
|
|
|
|
.align 16
|
|
.Lialu:
|
|
movq %rsp,%rax
|
|
pushq %rbx
|
|
pushq %rbp
|
|
pushq %r12
|
|
pushq %r13
|
|
pushq %r14
|
|
movq %rdi,%r8
|
|
subq $72,%rsp
|
|
movq %rsi,%r9
|
|
andq $-64,%rsp
|
|
movq %rdx,%r10
|
|
movq %rax,64(%rsp)
|
|
.Lprologue:
|
|
|
|
movl 0(%r8),%esi
|
|
movl 4(%r8),%edi
|
|
movl 8(%r8),%r11d
|
|
movl 12(%r8),%r12d
|
|
movl 16(%r8),%r13d
|
|
jmp .Lloop
|
|
|
|
.align 16
|
|
.Lloop:
|
|
movl 0(%r9),%edx
|
|
bswapl %edx
|
|
movl 4(%r9),%ebp
|
|
movl %r12d,%eax
|
|
movl %edx,0(%rsp)
|
|
movl %esi,%ecx
|
|
bswapl %ebp
|
|
xorl %r11d,%eax
|
|
roll $5,%ecx
|
|
andl %edi,%eax
|
|
leal 1518500249(%rdx,%r13,1),%r13d
|
|
addl %ecx,%r13d
|
|
xorl %r12d,%eax
|
|
roll $30,%edi
|
|
addl %eax,%r13d
|
|
movl 8(%r9),%r14d
|
|
movl %r11d,%eax
|
|
movl %ebp,4(%rsp)
|
|
movl %r13d,%ecx
|
|
bswapl %r14d
|
|
xorl %edi,%eax
|
|
roll $5,%ecx
|
|
andl %esi,%eax
|
|
leal 1518500249(%rbp,%r12,1),%r12d
|
|
addl %ecx,%r12d
|
|
xorl %r11d,%eax
|
|
roll $30,%esi
|
|
addl %eax,%r12d
|
|
movl 12(%r9),%edx
|
|
movl %edi,%eax
|
|
movl %r14d,8(%rsp)
|
|
movl %r12d,%ecx
|
|
bswapl %edx
|
|
xorl %esi,%eax
|
|
roll $5,%ecx
|
|
andl %r13d,%eax
|
|
leal 1518500249(%r14,%r11,1),%r11d
|
|
addl %ecx,%r11d
|
|
xorl %edi,%eax
|
|
roll $30,%r13d
|
|
addl %eax,%r11d
|
|
movl 16(%r9),%ebp
|
|
movl %esi,%eax
|
|
movl %edx,12(%rsp)
|
|
movl %r11d,%ecx
|
|
bswapl %ebp
|
|
xorl %r13d,%eax
|
|
roll $5,%ecx
|
|
andl %r12d,%eax
|
|
leal 1518500249(%rdx,%rdi,1),%edi
|
|
addl %ecx,%edi
|
|
xorl %esi,%eax
|
|
roll $30,%r12d
|
|
addl %eax,%edi
|
|
movl 20(%r9),%r14d
|
|
movl %r13d,%eax
|
|
movl %ebp,16(%rsp)
|
|
movl %edi,%ecx
|
|
bswapl %r14d
|
|
xorl %r12d,%eax
|
|
roll $5,%ecx
|
|
andl %r11d,%eax
|
|
leal 1518500249(%rbp,%rsi,1),%esi
|
|
addl %ecx,%esi
|
|
xorl %r13d,%eax
|
|
roll $30,%r11d
|
|
addl %eax,%esi
|
|
movl 24(%r9),%edx
|
|
movl %r12d,%eax
|
|
movl %r14d,20(%rsp)
|
|
movl %esi,%ecx
|
|
bswapl %edx
|
|
xorl %r11d,%eax
|
|
roll $5,%ecx
|
|
andl %edi,%eax
|
|
leal 1518500249(%r14,%r13,1),%r13d
|
|
addl %ecx,%r13d
|
|
xorl %r12d,%eax
|
|
roll $30,%edi
|
|
addl %eax,%r13d
|
|
movl 28(%r9),%ebp
|
|
movl %r11d,%eax
|
|
movl %edx,24(%rsp)
|
|
movl %r13d,%ecx
|
|
bswapl %ebp
|
|
xorl %edi,%eax
|
|
roll $5,%ecx
|
|
andl %esi,%eax
|
|
leal 1518500249(%rdx,%r12,1),%r12d
|
|
addl %ecx,%r12d
|
|
xorl %r11d,%eax
|
|
roll $30,%esi
|
|
addl %eax,%r12d
|
|
movl 32(%r9),%r14d
|
|
movl %edi,%eax
|
|
movl %ebp,28(%rsp)
|
|
movl %r12d,%ecx
|
|
bswapl %r14d
|
|
xorl %esi,%eax
|
|
roll $5,%ecx
|
|
andl %r13d,%eax
|
|
leal 1518500249(%rbp,%r11,1),%r11d
|
|
addl %ecx,%r11d
|
|
xorl %edi,%eax
|
|
roll $30,%r13d
|
|
addl %eax,%r11d
|
|
movl 36(%r9),%edx
|
|
movl %esi,%eax
|
|
movl %r14d,32(%rsp)
|
|
movl %r11d,%ecx
|
|
bswapl %edx
|
|
xorl %r13d,%eax
|
|
roll $5,%ecx
|
|
andl %r12d,%eax
|
|
leal 1518500249(%r14,%rdi,1),%edi
|
|
addl %ecx,%edi
|
|
xorl %esi,%eax
|
|
roll $30,%r12d
|
|
addl %eax,%edi
|
|
movl 40(%r9),%ebp
|
|
movl %r13d,%eax
|
|
movl %edx,36(%rsp)
|
|
movl %edi,%ecx
|
|
bswapl %ebp
|
|
xorl %r12d,%eax
|
|
roll $5,%ecx
|
|
andl %r11d,%eax
|
|
leal 1518500249(%rdx,%rsi,1),%esi
|
|
addl %ecx,%esi
|
|
xorl %r13d,%eax
|
|
roll $30,%r11d
|
|
addl %eax,%esi
|
|
movl 44(%r9),%r14d
|
|
movl %r12d,%eax
|
|
movl %ebp,40(%rsp)
|
|
movl %esi,%ecx
|
|
bswapl %r14d
|
|
xorl %r11d,%eax
|
|
roll $5,%ecx
|
|
andl %edi,%eax
|
|
leal 1518500249(%rbp,%r13,1),%r13d
|
|
addl %ecx,%r13d
|
|
xorl %r12d,%eax
|
|
roll $30,%edi
|
|
addl %eax,%r13d
|
|
movl 48(%r9),%edx
|
|
movl %r11d,%eax
|
|
movl %r14d,44(%rsp)
|
|
movl %r13d,%ecx
|
|
bswapl %edx
|
|
xorl %edi,%eax
|
|
roll $5,%ecx
|
|
andl %esi,%eax
|
|
leal 1518500249(%r14,%r12,1),%r12d
|
|
addl %ecx,%r12d
|
|
xorl %r11d,%eax
|
|
roll $30,%esi
|
|
addl %eax,%r12d
|
|
movl 52(%r9),%ebp
|
|
movl %edi,%eax
|
|
movl %edx,48(%rsp)
|
|
movl %r12d,%ecx
|
|
bswapl %ebp
|
|
xorl %esi,%eax
|
|
roll $5,%ecx
|
|
andl %r13d,%eax
|
|
leal 1518500249(%rdx,%r11,1),%r11d
|
|
addl %ecx,%r11d
|
|
xorl %edi,%eax
|
|
roll $30,%r13d
|
|
addl %eax,%r11d
|
|
movl 56(%r9),%r14d
|
|
movl %esi,%eax
|
|
movl %ebp,52(%rsp)
|
|
movl %r11d,%ecx
|
|
bswapl %r14d
|
|
xorl %r13d,%eax
|
|
roll $5,%ecx
|
|
andl %r12d,%eax
|
|
leal 1518500249(%rbp,%rdi,1),%edi
|
|
addl %ecx,%edi
|
|
xorl %esi,%eax
|
|
roll $30,%r12d
|
|
addl %eax,%edi
|
|
movl 60(%r9),%edx
|
|
movl %r13d,%eax
|
|
movl %r14d,56(%rsp)
|
|
movl %edi,%ecx
|
|
bswapl %edx
|
|
xorl %r12d,%eax
|
|
roll $5,%ecx
|
|
andl %r11d,%eax
|
|
leal 1518500249(%r14,%rsi,1),%esi
|
|
addl %ecx,%esi
|
|
xorl %r13d,%eax
|
|
roll $30,%r11d
|
|
addl %eax,%esi
|
|
xorl 0(%rsp),%ebp
|
|
movl %r12d,%eax
|
|
movl %edx,60(%rsp)
|
|
movl %esi,%ecx
|
|
xorl 8(%rsp),%ebp
|
|
xorl %r11d,%eax
|
|
roll $5,%ecx
|
|
xorl 32(%rsp),%ebp
|
|
andl %edi,%eax
|
|
leal 1518500249(%rdx,%r13,1),%r13d
|
|
roll $30,%edi
|
|
xorl %r12d,%eax
|
|
addl %ecx,%r13d
|
|
roll $1,%ebp
|
|
addl %eax,%r13d
|
|
xorl 4(%rsp),%r14d
|
|
movl %r11d,%eax
|
|
movl %ebp,0(%rsp)
|
|
movl %r13d,%ecx
|
|
xorl 12(%rsp),%r14d
|
|
xorl %edi,%eax
|
|
roll $5,%ecx
|
|
xorl 36(%rsp),%r14d
|
|
andl %esi,%eax
|
|
leal 1518500249(%rbp,%r12,1),%r12d
|
|
roll $30,%esi
|
|
xorl %r11d,%eax
|
|
addl %ecx,%r12d
|
|
roll $1,%r14d
|
|
addl %eax,%r12d
|
|
xorl 8(%rsp),%edx
|
|
movl %edi,%eax
|
|
movl %r14d,4(%rsp)
|
|
movl %r12d,%ecx
|
|
xorl 16(%rsp),%edx
|
|
xorl %esi,%eax
|
|
roll $5,%ecx
|
|
xorl 40(%rsp),%edx
|
|
andl %r13d,%eax
|
|
leal 1518500249(%r14,%r11,1),%r11d
|
|
roll $30,%r13d
|
|
xorl %edi,%eax
|
|
addl %ecx,%r11d
|
|
roll $1,%edx
|
|
addl %eax,%r11d
|
|
xorl 12(%rsp),%ebp
|
|
movl %esi,%eax
|
|
movl %edx,8(%rsp)
|
|
movl %r11d,%ecx
|
|
xorl 20(%rsp),%ebp
|
|
xorl %r13d,%eax
|
|
roll $5,%ecx
|
|
xorl 44(%rsp),%ebp
|
|
andl %r12d,%eax
|
|
leal 1518500249(%rdx,%rdi,1),%edi
|
|
roll $30,%r12d
|
|
xorl %esi,%eax
|
|
addl %ecx,%edi
|
|
roll $1,%ebp
|
|
addl %eax,%edi
|
|
xorl 16(%rsp),%r14d
|
|
movl %r13d,%eax
|
|
movl %ebp,12(%rsp)
|
|
movl %edi,%ecx
|
|
xorl 24(%rsp),%r14d
|
|
xorl %r12d,%eax
|
|
roll $5,%ecx
|
|
xorl 48(%rsp),%r14d
|
|
andl %r11d,%eax
|
|
leal 1518500249(%rbp,%rsi,1),%esi
|
|
roll $30,%r11d
|
|
xorl %r13d,%eax
|
|
addl %ecx,%esi
|
|
roll $1,%r14d
|
|
addl %eax,%esi
|
|
xorl 20(%rsp),%edx
|
|
movl %edi,%eax
|
|
movl %r14d,16(%rsp)
|
|
movl %esi,%ecx
|
|
xorl 28(%rsp),%edx
|
|
xorl %r12d,%eax
|
|
roll $5,%ecx
|
|
xorl 52(%rsp),%edx
|
|
leal 1859775393(%r14,%r13,1),%r13d
|
|
xorl %r11d,%eax
|
|
addl %ecx,%r13d
|
|
roll $30,%edi
|
|
addl %eax,%r13d
|
|
roll $1,%edx
|
|
xorl 24(%rsp),%ebp
|
|
movl %esi,%eax
|
|
movl %edx,20(%rsp)
|
|
movl %r13d,%ecx
|
|
xorl 32(%rsp),%ebp
|
|
xorl %r11d,%eax
|
|
roll $5,%ecx
|
|
xorl 56(%rsp),%ebp
|
|
leal 1859775393(%rdx,%r12,1),%r12d
|
|
xorl %edi,%eax
|
|
addl %ecx,%r12d
|
|
roll $30,%esi
|
|
addl %eax,%r12d
|
|
roll $1,%ebp
|
|
xorl 28(%rsp),%r14d
|
|
movl %r13d,%eax
|
|
movl %ebp,24(%rsp)
|
|
movl %r12d,%ecx
|
|
xorl 36(%rsp),%r14d
|
|
xorl %edi,%eax
|
|
roll $5,%ecx
|
|
xorl 60(%rsp),%r14d
|
|
leal 1859775393(%rbp,%r11,1),%r11d
|
|
xorl %esi,%eax
|
|
addl %ecx,%r11d
|
|
roll $30,%r13d
|
|
addl %eax,%r11d
|
|
roll $1,%r14d
|
|
xorl 32(%rsp),%edx
|
|
movl %r12d,%eax
|
|
movl %r14d,28(%rsp)
|
|
movl %r11d,%ecx
|
|
xorl 40(%rsp),%edx
|
|
xorl %esi,%eax
|
|
roll $5,%ecx
|
|
xorl 0(%rsp),%edx
|
|
leal 1859775393(%r14,%rdi,1),%edi
|
|
xorl %r13d,%eax
|
|
addl %ecx,%edi
|
|
roll $30,%r12d
|
|
addl %eax,%edi
|
|
roll $1,%edx
|
|
xorl 36(%rsp),%ebp
|
|
movl %r11d,%eax
|
|
movl %edx,32(%rsp)
|
|
movl %edi,%ecx
|
|
xorl 44(%rsp),%ebp
|
|
xorl %r13d,%eax
|
|
roll $5,%ecx
|
|
xorl 4(%rsp),%ebp
|
|
leal 1859775393(%rdx,%rsi,1),%esi
|
|
xorl %r12d,%eax
|
|
addl %ecx,%esi
|
|
roll $30,%r11d
|
|
addl %eax,%esi
|
|
roll $1,%ebp
|
|
xorl 40(%rsp),%r14d
|
|
movl %edi,%eax
|
|
movl %ebp,36(%rsp)
|
|
movl %esi,%ecx
|
|
xorl 48(%rsp),%r14d
|
|
xorl %r12d,%eax
|
|
roll $5,%ecx
|
|
xorl 8(%rsp),%r14d
|
|
leal 1859775393(%rbp,%r13,1),%r13d
|
|
xorl %r11d,%eax
|
|
addl %ecx,%r13d
|
|
roll $30,%edi
|
|
addl %eax,%r13d
|
|
roll $1,%r14d
|
|
xorl 44(%rsp),%edx
|
|
movl %esi,%eax
|
|
movl %r14d,40(%rsp)
|
|
movl %r13d,%ecx
|
|
xorl 52(%rsp),%edx
|
|
xorl %r11d,%eax
|
|
roll $5,%ecx
|
|
xorl 12(%rsp),%edx
|
|
leal 1859775393(%r14,%r12,1),%r12d
|
|
xorl %edi,%eax
|
|
addl %ecx,%r12d
|
|
roll $30,%esi
|
|
addl %eax,%r12d
|
|
roll $1,%edx
|
|
xorl 48(%rsp),%ebp
|
|
movl %r13d,%eax
|
|
movl %edx,44(%rsp)
|
|
movl %r12d,%ecx
|
|
xorl 56(%rsp),%ebp
|
|
xorl %edi,%eax
|
|
roll $5,%ecx
|
|
xorl 16(%rsp),%ebp
|
|
leal 1859775393(%rdx,%r11,1),%r11d
|
|
xorl %esi,%eax
|
|
addl %ecx,%r11d
|
|
roll $30,%r13d
|
|
addl %eax,%r11d
|
|
roll $1,%ebp
|
|
xorl 52(%rsp),%r14d
|
|
movl %r12d,%eax
|
|
movl %ebp,48(%rsp)
|
|
movl %r11d,%ecx
|
|
xorl 60(%rsp),%r14d
|
|
xorl %esi,%eax
|
|
roll $5,%ecx
|
|
xorl 20(%rsp),%r14d
|
|
leal 1859775393(%rbp,%rdi,1),%edi
|
|
xorl %r13d,%eax
|
|
addl %ecx,%edi
|
|
roll $30,%r12d
|
|
addl %eax,%edi
|
|
roll $1,%r14d
|
|
xorl 56(%rsp),%edx
|
|
movl %r11d,%eax
|
|
movl %r14d,52(%rsp)
|
|
movl %edi,%ecx
|
|
xorl 0(%rsp),%edx
|
|
xorl %r13d,%eax
|
|
roll $5,%ecx
|
|
xorl 24(%rsp),%edx
|
|
leal 1859775393(%r14,%rsi,1),%esi
|
|
xorl %r12d,%eax
|
|
addl %ecx,%esi
|
|
roll $30,%r11d
|
|
addl %eax,%esi
|
|
roll $1,%edx
|
|
xorl 60(%rsp),%ebp
|
|
movl %edi,%eax
|
|
movl %edx,56(%rsp)
|
|
movl %esi,%ecx
|
|
xorl 4(%rsp),%ebp
|
|
xorl %r12d,%eax
|
|
roll $5,%ecx
|
|
xorl 28(%rsp),%ebp
|
|
leal 1859775393(%rdx,%r13,1),%r13d
|
|
xorl %r11d,%eax
|
|
addl %ecx,%r13d
|
|
roll $30,%edi
|
|
addl %eax,%r13d
|
|
roll $1,%ebp
|
|
xorl 0(%rsp),%r14d
|
|
movl %esi,%eax
|
|
movl %ebp,60(%rsp)
|
|
movl %r13d,%ecx
|
|
xorl 8(%rsp),%r14d
|
|
xorl %r11d,%eax
|
|
roll $5,%ecx
|
|
xorl 32(%rsp),%r14d
|
|
leal 1859775393(%rbp,%r12,1),%r12d
|
|
xorl %edi,%eax
|
|
addl %ecx,%r12d
|
|
roll $30,%esi
|
|
addl %eax,%r12d
|
|
roll $1,%r14d
|
|
xorl 4(%rsp),%edx
|
|
movl %r13d,%eax
|
|
movl %r14d,0(%rsp)
|
|
movl %r12d,%ecx
|
|
xorl 12(%rsp),%edx
|
|
xorl %edi,%eax
|
|
roll $5,%ecx
|
|
xorl 36(%rsp),%edx
|
|
leal 1859775393(%r14,%r11,1),%r11d
|
|
xorl %esi,%eax
|
|
addl %ecx,%r11d
|
|
roll $30,%r13d
|
|
addl %eax,%r11d
|
|
roll $1,%edx
|
|
xorl 8(%rsp),%ebp
|
|
movl %r12d,%eax
|
|
movl %edx,4(%rsp)
|
|
movl %r11d,%ecx
|
|
xorl 16(%rsp),%ebp
|
|
xorl %esi,%eax
|
|
roll $5,%ecx
|
|
xorl 40(%rsp),%ebp
|
|
leal 1859775393(%rdx,%rdi,1),%edi
|
|
xorl %r13d,%eax
|
|
addl %ecx,%edi
|
|
roll $30,%r12d
|
|
addl %eax,%edi
|
|
roll $1,%ebp
|
|
xorl 12(%rsp),%r14d
|
|
movl %r11d,%eax
|
|
movl %ebp,8(%rsp)
|
|
movl %edi,%ecx
|
|
xorl 20(%rsp),%r14d
|
|
xorl %r13d,%eax
|
|
roll $5,%ecx
|
|
xorl 44(%rsp),%r14d
|
|
leal 1859775393(%rbp,%rsi,1),%esi
|
|
xorl %r12d,%eax
|
|
addl %ecx,%esi
|
|
roll $30,%r11d
|
|
addl %eax,%esi
|
|
roll $1,%r14d
|
|
xorl 16(%rsp),%edx
|
|
movl %edi,%eax
|
|
movl %r14d,12(%rsp)
|
|
movl %esi,%ecx
|
|
xorl 24(%rsp),%edx
|
|
xorl %r12d,%eax
|
|
roll $5,%ecx
|
|
xorl 48(%rsp),%edx
|
|
leal 1859775393(%r14,%r13,1),%r13d
|
|
xorl %r11d,%eax
|
|
addl %ecx,%r13d
|
|
roll $30,%edi
|
|
addl %eax,%r13d
|
|
roll $1,%edx
|
|
xorl 20(%rsp),%ebp
|
|
movl %esi,%eax
|
|
movl %edx,16(%rsp)
|
|
movl %r13d,%ecx
|
|
xorl 28(%rsp),%ebp
|
|
xorl %r11d,%eax
|
|
roll $5,%ecx
|
|
xorl 52(%rsp),%ebp
|
|
leal 1859775393(%rdx,%r12,1),%r12d
|
|
xorl %edi,%eax
|
|
addl %ecx,%r12d
|
|
roll $30,%esi
|
|
addl %eax,%r12d
|
|
roll $1,%ebp
|
|
xorl 24(%rsp),%r14d
|
|
movl %r13d,%eax
|
|
movl %ebp,20(%rsp)
|
|
movl %r12d,%ecx
|
|
xorl 32(%rsp),%r14d
|
|
xorl %edi,%eax
|
|
roll $5,%ecx
|
|
xorl 56(%rsp),%r14d
|
|
leal 1859775393(%rbp,%r11,1),%r11d
|
|
xorl %esi,%eax
|
|
addl %ecx,%r11d
|
|
roll $30,%r13d
|
|
addl %eax,%r11d
|
|
roll $1,%r14d
|
|
xorl 28(%rsp),%edx
|
|
movl %r12d,%eax
|
|
movl %r14d,24(%rsp)
|
|
movl %r11d,%ecx
|
|
xorl 36(%rsp),%edx
|
|
xorl %esi,%eax
|
|
roll $5,%ecx
|
|
xorl 60(%rsp),%edx
|
|
leal 1859775393(%r14,%rdi,1),%edi
|
|
xorl %r13d,%eax
|
|
addl %ecx,%edi
|
|
roll $30,%r12d
|
|
addl %eax,%edi
|
|
roll $1,%edx
|
|
xorl 32(%rsp),%ebp
|
|
movl %r11d,%eax
|
|
movl %edx,28(%rsp)
|
|
movl %edi,%ecx
|
|
xorl 40(%rsp),%ebp
|
|
xorl %r13d,%eax
|
|
roll $5,%ecx
|
|
xorl 0(%rsp),%ebp
|
|
leal 1859775393(%rdx,%rsi,1),%esi
|
|
xorl %r12d,%eax
|
|
addl %ecx,%esi
|
|
roll $30,%r11d
|
|
addl %eax,%esi
|
|
roll $1,%ebp
|
|
xorl 36(%rsp),%r14d
|
|
movl %r12d,%eax
|
|
movl %ebp,32(%rsp)
|
|
movl %r12d,%ebx
|
|
xorl 44(%rsp),%r14d
|
|
andl %r11d,%eax
|
|
movl %esi,%ecx
|
|
xorl 4(%rsp),%r14d
|
|
leal -1894007588(%rbp,%r13,1),%r13d
|
|
xorl %r11d,%ebx
|
|
roll $5,%ecx
|
|
addl %eax,%r13d
|
|
roll $1,%r14d
|
|
andl %edi,%ebx
|
|
addl %ecx,%r13d
|
|
roll $30,%edi
|
|
addl %ebx,%r13d
|
|
xorl 40(%rsp),%edx
|
|
movl %r11d,%eax
|
|
movl %r14d,36(%rsp)
|
|
movl %r11d,%ebx
|
|
xorl 48(%rsp),%edx
|
|
andl %edi,%eax
|
|
movl %r13d,%ecx
|
|
xorl 8(%rsp),%edx
|
|
leal -1894007588(%r14,%r12,1),%r12d
|
|
xorl %edi,%ebx
|
|
roll $5,%ecx
|
|
addl %eax,%r12d
|
|
roll $1,%edx
|
|
andl %esi,%ebx
|
|
addl %ecx,%r12d
|
|
roll $30,%esi
|
|
addl %ebx,%r12d
|
|
xorl 44(%rsp),%ebp
|
|
movl %edi,%eax
|
|
movl %edx,40(%rsp)
|
|
movl %edi,%ebx
|
|
xorl 52(%rsp),%ebp
|
|
andl %esi,%eax
|
|
movl %r12d,%ecx
|
|
xorl 12(%rsp),%ebp
|
|
leal -1894007588(%rdx,%r11,1),%r11d
|
|
xorl %esi,%ebx
|
|
roll $5,%ecx
|
|
addl %eax,%r11d
|
|
roll $1,%ebp
|
|
andl %r13d,%ebx
|
|
addl %ecx,%r11d
|
|
roll $30,%r13d
|
|
addl %ebx,%r11d
|
|
xorl 48(%rsp),%r14d
|
|
movl %esi,%eax
|
|
movl %ebp,44(%rsp)
|
|
movl %esi,%ebx
|
|
xorl 56(%rsp),%r14d
|
|
andl %r13d,%eax
|
|
movl %r11d,%ecx
|
|
xorl 16(%rsp),%r14d
|
|
leal -1894007588(%rbp,%rdi,1),%edi
|
|
xorl %r13d,%ebx
|
|
roll $5,%ecx
|
|
addl %eax,%edi
|
|
roll $1,%r14d
|
|
andl %r12d,%ebx
|
|
addl %ecx,%edi
|
|
roll $30,%r12d
|
|
addl %ebx,%edi
|
|
xorl 52(%rsp),%edx
|
|
movl %r13d,%eax
|
|
movl %r14d,48(%rsp)
|
|
movl %r13d,%ebx
|
|
xorl 60(%rsp),%edx
|
|
andl %r12d,%eax
|
|
movl %edi,%ecx
|
|
xorl 20(%rsp),%edx
|
|
leal -1894007588(%r14,%rsi,1),%esi
|
|
xorl %r12d,%ebx
|
|
roll $5,%ecx
|
|
addl %eax,%esi
|
|
roll $1,%edx
|
|
andl %r11d,%ebx
|
|
addl %ecx,%esi
|
|
roll $30,%r11d
|
|
addl %ebx,%esi
|
|
xorl 56(%rsp),%ebp
|
|
movl %r12d,%eax
|
|
movl %edx,52(%rsp)
|
|
movl %r12d,%ebx
|
|
xorl 0(%rsp),%ebp
|
|
andl %r11d,%eax
|
|
movl %esi,%ecx
|
|
xorl 24(%rsp),%ebp
|
|
leal -1894007588(%rdx,%r13,1),%r13d
|
|
xorl %r11d,%ebx
|
|
roll $5,%ecx
|
|
addl %eax,%r13d
|
|
roll $1,%ebp
|
|
andl %edi,%ebx
|
|
addl %ecx,%r13d
|
|
roll $30,%edi
|
|
addl %ebx,%r13d
|
|
xorl 60(%rsp),%r14d
|
|
movl %r11d,%eax
|
|
movl %ebp,56(%rsp)
|
|
movl %r11d,%ebx
|
|
xorl 4(%rsp),%r14d
|
|
andl %edi,%eax
|
|
movl %r13d,%ecx
|
|
xorl 28(%rsp),%r14d
|
|
leal -1894007588(%rbp,%r12,1),%r12d
|
|
xorl %edi,%ebx
|
|
roll $5,%ecx
|
|
addl %eax,%r12d
|
|
roll $1,%r14d
|
|
andl %esi,%ebx
|
|
addl %ecx,%r12d
|
|
roll $30,%esi
|
|
addl %ebx,%r12d
|
|
xorl 0(%rsp),%edx
|
|
movl %edi,%eax
|
|
movl %r14d,60(%rsp)
|
|
movl %edi,%ebx
|
|
xorl 8(%rsp),%edx
|
|
andl %esi,%eax
|
|
movl %r12d,%ecx
|
|
xorl 32(%rsp),%edx
|
|
leal -1894007588(%r14,%r11,1),%r11d
|
|
xorl %esi,%ebx
|
|
roll $5,%ecx
|
|
addl %eax,%r11d
|
|
roll $1,%edx
|
|
andl %r13d,%ebx
|
|
addl %ecx,%r11d
|
|
roll $30,%r13d
|
|
addl %ebx,%r11d
|
|
xorl 4(%rsp),%ebp
|
|
movl %esi,%eax
|
|
movl %edx,0(%rsp)
|
|
movl %esi,%ebx
|
|
xorl 12(%rsp),%ebp
|
|
andl %r13d,%eax
|
|
movl %r11d,%ecx
|
|
xorl 36(%rsp),%ebp
|
|
leal -1894007588(%rdx,%rdi,1),%edi
|
|
xorl %r13d,%ebx
|
|
roll $5,%ecx
|
|
addl %eax,%edi
|
|
roll $1,%ebp
|
|
andl %r12d,%ebx
|
|
addl %ecx,%edi
|
|
roll $30,%r12d
|
|
addl %ebx,%edi
|
|
xorl 8(%rsp),%r14d
|
|
movl %r13d,%eax
|
|
movl %ebp,4(%rsp)
|
|
movl %r13d,%ebx
|
|
xorl 16(%rsp),%r14d
|
|
andl %r12d,%eax
|
|
movl %edi,%ecx
|
|
xorl 40(%rsp),%r14d
|
|
leal -1894007588(%rbp,%rsi,1),%esi
|
|
xorl %r12d,%ebx
|
|
roll $5,%ecx
|
|
addl %eax,%esi
|
|
roll $1,%r14d
|
|
andl %r11d,%ebx
|
|
addl %ecx,%esi
|
|
roll $30,%r11d
|
|
addl %ebx,%esi
|
|
xorl 12(%rsp),%edx
|
|
movl %r12d,%eax
|
|
movl %r14d,8(%rsp)
|
|
movl %r12d,%ebx
|
|
xorl 20(%rsp),%edx
|
|
andl %r11d,%eax
|
|
movl %esi,%ecx
|
|
xorl 44(%rsp),%edx
|
|
leal -1894007588(%r14,%r13,1),%r13d
|
|
xorl %r11d,%ebx
|
|
roll $5,%ecx
|
|
addl %eax,%r13d
|
|
roll $1,%edx
|
|
andl %edi,%ebx
|
|
addl %ecx,%r13d
|
|
roll $30,%edi
|
|
addl %ebx,%r13d
|
|
xorl 16(%rsp),%ebp
|
|
movl %r11d,%eax
|
|
movl %edx,12(%rsp)
|
|
movl %r11d,%ebx
|
|
xorl 24(%rsp),%ebp
|
|
andl %edi,%eax
|
|
movl %r13d,%ecx
|
|
xorl 48(%rsp),%ebp
|
|
leal -1894007588(%rdx,%r12,1),%r12d
|
|
xorl %edi,%ebx
|
|
roll $5,%ecx
|
|
addl %eax,%r12d
|
|
roll $1,%ebp
|
|
andl %esi,%ebx
|
|
addl %ecx,%r12d
|
|
roll $30,%esi
|
|
addl %ebx,%r12d
|
|
xorl 20(%rsp),%r14d
|
|
movl %edi,%eax
|
|
movl %ebp,16(%rsp)
|
|
movl %edi,%ebx
|
|
xorl 28(%rsp),%r14d
|
|
andl %esi,%eax
|
|
movl %r12d,%ecx
|
|
xorl 52(%rsp),%r14d
|
|
leal -1894007588(%rbp,%r11,1),%r11d
|
|
xorl %esi,%ebx
|
|
roll $5,%ecx
|
|
addl %eax,%r11d
|
|
roll $1,%r14d
|
|
andl %r13d,%ebx
|
|
addl %ecx,%r11d
|
|
roll $30,%r13d
|
|
addl %ebx,%r11d
|
|
xorl 24(%rsp),%edx
|
|
movl %esi,%eax
|
|
movl %r14d,20(%rsp)
|
|
movl %esi,%ebx
|
|
xorl 32(%rsp),%edx
|
|
andl %r13d,%eax
|
|
movl %r11d,%ecx
|
|
xorl 56(%rsp),%edx
|
|
leal -1894007588(%r14,%rdi,1),%edi
|
|
xorl %r13d,%ebx
|
|
roll $5,%ecx
|
|
addl %eax,%edi
|
|
roll $1,%edx
|
|
andl %r12d,%ebx
|
|
addl %ecx,%edi
|
|
roll $30,%r12d
|
|
addl %ebx,%edi
|
|
xorl 28(%rsp),%ebp
|
|
movl %r13d,%eax
|
|
movl %edx,24(%rsp)
|
|
movl %r13d,%ebx
|
|
xorl 36(%rsp),%ebp
|
|
andl %r12d,%eax
|
|
movl %edi,%ecx
|
|
xorl 60(%rsp),%ebp
|
|
leal -1894007588(%rdx,%rsi,1),%esi
|
|
xorl %r12d,%ebx
|
|
roll $5,%ecx
|
|
addl %eax,%esi
|
|
roll $1,%ebp
|
|
andl %r11d,%ebx
|
|
addl %ecx,%esi
|
|
roll $30,%r11d
|
|
addl %ebx,%esi
|
|
xorl 32(%rsp),%r14d
|
|
movl %r12d,%eax
|
|
movl %ebp,28(%rsp)
|
|
movl %r12d,%ebx
|
|
xorl 40(%rsp),%r14d
|
|
andl %r11d,%eax
|
|
movl %esi,%ecx
|
|
xorl 0(%rsp),%r14d
|
|
leal -1894007588(%rbp,%r13,1),%r13d
|
|
xorl %r11d,%ebx
|
|
roll $5,%ecx
|
|
addl %eax,%r13d
|
|
roll $1,%r14d
|
|
andl %edi,%ebx
|
|
addl %ecx,%r13d
|
|
roll $30,%edi
|
|
addl %ebx,%r13d
|
|
xorl 36(%rsp),%edx
|
|
movl %r11d,%eax
|
|
movl %r14d,32(%rsp)
|
|
movl %r11d,%ebx
|
|
xorl 44(%rsp),%edx
|
|
andl %edi,%eax
|
|
movl %r13d,%ecx
|
|
xorl 4(%rsp),%edx
|
|
leal -1894007588(%r14,%r12,1),%r12d
|
|
xorl %edi,%ebx
|
|
roll $5,%ecx
|
|
addl %eax,%r12d
|
|
roll $1,%edx
|
|
andl %esi,%ebx
|
|
addl %ecx,%r12d
|
|
roll $30,%esi
|
|
addl %ebx,%r12d
|
|
xorl 40(%rsp),%ebp
|
|
movl %edi,%eax
|
|
movl %edx,36(%rsp)
|
|
movl %edi,%ebx
|
|
xorl 48(%rsp),%ebp
|
|
andl %esi,%eax
|
|
movl %r12d,%ecx
|
|
xorl 8(%rsp),%ebp
|
|
leal -1894007588(%rdx,%r11,1),%r11d
|
|
xorl %esi,%ebx
|
|
roll $5,%ecx
|
|
addl %eax,%r11d
|
|
roll $1,%ebp
|
|
andl %r13d,%ebx
|
|
addl %ecx,%r11d
|
|
roll $30,%r13d
|
|
addl %ebx,%r11d
|
|
xorl 44(%rsp),%r14d
|
|
movl %esi,%eax
|
|
movl %ebp,40(%rsp)
|
|
movl %esi,%ebx
|
|
xorl 52(%rsp),%r14d
|
|
andl %r13d,%eax
|
|
movl %r11d,%ecx
|
|
xorl 12(%rsp),%r14d
|
|
leal -1894007588(%rbp,%rdi,1),%edi
|
|
xorl %r13d,%ebx
|
|
roll $5,%ecx
|
|
addl %eax,%edi
|
|
roll $1,%r14d
|
|
andl %r12d,%ebx
|
|
addl %ecx,%edi
|
|
roll $30,%r12d
|
|
addl %ebx,%edi
|
|
xorl 48(%rsp),%edx
|
|
movl %r13d,%eax
|
|
movl %r14d,44(%rsp)
|
|
movl %r13d,%ebx
|
|
xorl 56(%rsp),%edx
|
|
andl %r12d,%eax
|
|
movl %edi,%ecx
|
|
xorl 16(%rsp),%edx
|
|
leal -1894007588(%r14,%rsi,1),%esi
|
|
xorl %r12d,%ebx
|
|
roll $5,%ecx
|
|
addl %eax,%esi
|
|
roll $1,%edx
|
|
andl %r11d,%ebx
|
|
addl %ecx,%esi
|
|
roll $30,%r11d
|
|
addl %ebx,%esi
|
|
xorl 52(%rsp),%ebp
|
|
movl %edi,%eax
|
|
movl %edx,48(%rsp)
|
|
movl %esi,%ecx
|
|
xorl 60(%rsp),%ebp
|
|
xorl %r12d,%eax
|
|
roll $5,%ecx
|
|
xorl 20(%rsp),%ebp
|
|
leal -899497514(%rdx,%r13,1),%r13d
|
|
xorl %r11d,%eax
|
|
addl %ecx,%r13d
|
|
roll $30,%edi
|
|
addl %eax,%r13d
|
|
roll $1,%ebp
|
|
xorl 56(%rsp),%r14d
|
|
movl %esi,%eax
|
|
movl %ebp,52(%rsp)
|
|
movl %r13d,%ecx
|
|
xorl 0(%rsp),%r14d
|
|
xorl %r11d,%eax
|
|
roll $5,%ecx
|
|
xorl 24(%rsp),%r14d
|
|
leal -899497514(%rbp,%r12,1),%r12d
|
|
xorl %edi,%eax
|
|
addl %ecx,%r12d
|
|
roll $30,%esi
|
|
addl %eax,%r12d
|
|
roll $1,%r14d
|
|
xorl 60(%rsp),%edx
|
|
movl %r13d,%eax
|
|
movl %r14d,56(%rsp)
|
|
movl %r12d,%ecx
|
|
xorl 4(%rsp),%edx
|
|
xorl %edi,%eax
|
|
roll $5,%ecx
|
|
xorl 28(%rsp),%edx
|
|
leal -899497514(%r14,%r11,1),%r11d
|
|
xorl %esi,%eax
|
|
addl %ecx,%r11d
|
|
roll $30,%r13d
|
|
addl %eax,%r11d
|
|
roll $1,%edx
|
|
xorl 0(%rsp),%ebp
|
|
movl %r12d,%eax
|
|
movl %edx,60(%rsp)
|
|
movl %r11d,%ecx
|
|
xorl 8(%rsp),%ebp
|
|
xorl %esi,%eax
|
|
roll $5,%ecx
|
|
xorl 32(%rsp),%ebp
|
|
leal -899497514(%rdx,%rdi,1),%edi
|
|
xorl %r13d,%eax
|
|
addl %ecx,%edi
|
|
roll $30,%r12d
|
|
addl %eax,%edi
|
|
roll $1,%ebp
|
|
xorl 4(%rsp),%r14d
|
|
movl %r11d,%eax
|
|
movl %ebp,0(%rsp)
|
|
movl %edi,%ecx
|
|
xorl 12(%rsp),%r14d
|
|
xorl %r13d,%eax
|
|
roll $5,%ecx
|
|
xorl 36(%rsp),%r14d
|
|
leal -899497514(%rbp,%rsi,1),%esi
|
|
xorl %r12d,%eax
|
|
addl %ecx,%esi
|
|
roll $30,%r11d
|
|
addl %eax,%esi
|
|
roll $1,%r14d
|
|
xorl 8(%rsp),%edx
|
|
movl %edi,%eax
|
|
movl %r14d,4(%rsp)
|
|
movl %esi,%ecx
|
|
xorl 16(%rsp),%edx
|
|
xorl %r12d,%eax
|
|
roll $5,%ecx
|
|
xorl 40(%rsp),%edx
|
|
leal -899497514(%r14,%r13,1),%r13d
|
|
xorl %r11d,%eax
|
|
addl %ecx,%r13d
|
|
roll $30,%edi
|
|
addl %eax,%r13d
|
|
roll $1,%edx
|
|
xorl 12(%rsp),%ebp
|
|
movl %esi,%eax
|
|
movl %edx,8(%rsp)
|
|
movl %r13d,%ecx
|
|
xorl 20(%rsp),%ebp
|
|
xorl %r11d,%eax
|
|
roll $5,%ecx
|
|
xorl 44(%rsp),%ebp
|
|
leal -899497514(%rdx,%r12,1),%r12d
|
|
xorl %edi,%eax
|
|
addl %ecx,%r12d
|
|
roll $30,%esi
|
|
addl %eax,%r12d
|
|
roll $1,%ebp
|
|
xorl 16(%rsp),%r14d
|
|
movl %r13d,%eax
|
|
movl %ebp,12(%rsp)
|
|
movl %r12d,%ecx
|
|
xorl 24(%rsp),%r14d
|
|
xorl %edi,%eax
|
|
roll $5,%ecx
|
|
xorl 48(%rsp),%r14d
|
|
leal -899497514(%rbp,%r11,1),%r11d
|
|
xorl %esi,%eax
|
|
addl %ecx,%r11d
|
|
roll $30,%r13d
|
|
addl %eax,%r11d
|
|
roll $1,%r14d
|
|
xorl 20(%rsp),%edx
|
|
movl %r12d,%eax
|
|
movl %r14d,16(%rsp)
|
|
movl %r11d,%ecx
|
|
xorl 28(%rsp),%edx
|
|
xorl %esi,%eax
|
|
roll $5,%ecx
|
|
xorl 52(%rsp),%edx
|
|
leal -899497514(%r14,%rdi,1),%edi
|
|
xorl %r13d,%eax
|
|
addl %ecx,%edi
|
|
roll $30,%r12d
|
|
addl %eax,%edi
|
|
roll $1,%edx
|
|
xorl 24(%rsp),%ebp
|
|
movl %r11d,%eax
|
|
movl %edx,20(%rsp)
|
|
movl %edi,%ecx
|
|
xorl 32(%rsp),%ebp
|
|
xorl %r13d,%eax
|
|
roll $5,%ecx
|
|
xorl 56(%rsp),%ebp
|
|
leal -899497514(%rdx,%rsi,1),%esi
|
|
xorl %r12d,%eax
|
|
addl %ecx,%esi
|
|
roll $30,%r11d
|
|
addl %eax,%esi
|
|
roll $1,%ebp
|
|
xorl 28(%rsp),%r14d
|
|
movl %edi,%eax
|
|
movl %ebp,24(%rsp)
|
|
movl %esi,%ecx
|
|
xorl 36(%rsp),%r14d
|
|
xorl %r12d,%eax
|
|
roll $5,%ecx
|
|
xorl 60(%rsp),%r14d
|
|
leal -899497514(%rbp,%r13,1),%r13d
|
|
xorl %r11d,%eax
|
|
addl %ecx,%r13d
|
|
roll $30,%edi
|
|
addl %eax,%r13d
|
|
roll $1,%r14d
|
|
xorl 32(%rsp),%edx
|
|
movl %esi,%eax
|
|
movl %r14d,28(%rsp)
|
|
movl %r13d,%ecx
|
|
xorl 40(%rsp),%edx
|
|
xorl %r11d,%eax
|
|
roll $5,%ecx
|
|
xorl 0(%rsp),%edx
|
|
leal -899497514(%r14,%r12,1),%r12d
|
|
xorl %edi,%eax
|
|
addl %ecx,%r12d
|
|
roll $30,%esi
|
|
addl %eax,%r12d
|
|
roll $1,%edx
|
|
xorl 36(%rsp),%ebp
|
|
movl %r13d,%eax
|
|
|
|
movl %r12d,%ecx
|
|
xorl 44(%rsp),%ebp
|
|
xorl %edi,%eax
|
|
roll $5,%ecx
|
|
xorl 4(%rsp),%ebp
|
|
leal -899497514(%rdx,%r11,1),%r11d
|
|
xorl %esi,%eax
|
|
addl %ecx,%r11d
|
|
roll $30,%r13d
|
|
addl %eax,%r11d
|
|
roll $1,%ebp
|
|
xorl 40(%rsp),%r14d
|
|
movl %r12d,%eax
|
|
|
|
movl %r11d,%ecx
|
|
xorl 48(%rsp),%r14d
|
|
xorl %esi,%eax
|
|
roll $5,%ecx
|
|
xorl 8(%rsp),%r14d
|
|
leal -899497514(%rbp,%rdi,1),%edi
|
|
xorl %r13d,%eax
|
|
addl %ecx,%edi
|
|
roll $30,%r12d
|
|
addl %eax,%edi
|
|
roll $1,%r14d
|
|
xorl 44(%rsp),%edx
|
|
movl %r11d,%eax
|
|
|
|
movl %edi,%ecx
|
|
xorl 52(%rsp),%edx
|
|
xorl %r13d,%eax
|
|
roll $5,%ecx
|
|
xorl 12(%rsp),%edx
|
|
leal -899497514(%r14,%rsi,1),%esi
|
|
xorl %r12d,%eax
|
|
addl %ecx,%esi
|
|
roll $30,%r11d
|
|
addl %eax,%esi
|
|
roll $1,%edx
|
|
xorl 48(%rsp),%ebp
|
|
movl %edi,%eax
|
|
|
|
movl %esi,%ecx
|
|
xorl 56(%rsp),%ebp
|
|
xorl %r12d,%eax
|
|
roll $5,%ecx
|
|
xorl 16(%rsp),%ebp
|
|
leal -899497514(%rdx,%r13,1),%r13d
|
|
xorl %r11d,%eax
|
|
addl %ecx,%r13d
|
|
roll $30,%edi
|
|
addl %eax,%r13d
|
|
roll $1,%ebp
|
|
xorl 52(%rsp),%r14d
|
|
movl %esi,%eax
|
|
|
|
movl %r13d,%ecx
|
|
xorl 60(%rsp),%r14d
|
|
xorl %r11d,%eax
|
|
roll $5,%ecx
|
|
xorl 20(%rsp),%r14d
|
|
leal -899497514(%rbp,%r12,1),%r12d
|
|
xorl %edi,%eax
|
|
addl %ecx,%r12d
|
|
roll $30,%esi
|
|
addl %eax,%r12d
|
|
roll $1,%r14d
|
|
xorl 56(%rsp),%edx
|
|
movl %r13d,%eax
|
|
|
|
movl %r12d,%ecx
|
|
xorl 0(%rsp),%edx
|
|
xorl %edi,%eax
|
|
roll $5,%ecx
|
|
xorl 24(%rsp),%edx
|
|
leal -899497514(%r14,%r11,1),%r11d
|
|
xorl %esi,%eax
|
|
addl %ecx,%r11d
|
|
roll $30,%r13d
|
|
addl %eax,%r11d
|
|
roll $1,%edx
|
|
xorl 60(%rsp),%ebp
|
|
movl %r12d,%eax
|
|
|
|
movl %r11d,%ecx
|
|
xorl 4(%rsp),%ebp
|
|
xorl %esi,%eax
|
|
roll $5,%ecx
|
|
xorl 28(%rsp),%ebp
|
|
leal -899497514(%rdx,%rdi,1),%edi
|
|
xorl %r13d,%eax
|
|
addl %ecx,%edi
|
|
roll $30,%r12d
|
|
addl %eax,%edi
|
|
roll $1,%ebp
|
|
movl %r11d,%eax
|
|
movl %edi,%ecx
|
|
xorl %r13d,%eax
|
|
leal -899497514(%rbp,%rsi,1),%esi
|
|
roll $5,%ecx
|
|
xorl %r12d,%eax
|
|
addl %ecx,%esi
|
|
roll $30,%r11d
|
|
addl %eax,%esi
|
|
addl 0(%r8),%esi
|
|
addl 4(%r8),%edi
|
|
addl 8(%r8),%r11d
|
|
addl 12(%r8),%r12d
|
|
addl 16(%r8),%r13d
|
|
movl %esi,0(%r8)
|
|
movl %edi,4(%r8)
|
|
movl %r11d,8(%r8)
|
|
movl %r12d,12(%r8)
|
|
movl %r13d,16(%r8)
|
|
|
|
subq $1,%r10
|
|
leaq 64(%r9),%r9
|
|
jnz .Lloop
|
|
|
|
movq 64(%rsp),%rsi
|
|
movq -40(%rsi),%r14
|
|
movq -32(%rsi),%r13
|
|
movq -24(%rsi),%r12
|
|
movq -16(%rsi),%rbp
|
|
movq -8(%rsi),%rbx
|
|
leaq (%rsi),%rsp
|
|
.Lepilogue:
|
|
.byte 0xf3,0xc3
|
|
.size sha1_block_data_order,.-sha1_block_data_order
|
|
.type sha1_block_data_order_shaext,@function
|
|
.align 32
|
|
sha1_block_data_order_shaext:
|
|
_shaext_shortcut:
|
|
movdqu (%rdi),%xmm0
|
|
movd 16(%rdi),%xmm1
|
|
movdqa K_XX_XX+160(%rip),%xmm3
|
|
|
|
movdqu (%rsi),%xmm4
|
|
pshufd $27,%xmm0,%xmm0
|
|
movdqu 16(%rsi),%xmm5
|
|
pshufd $27,%xmm1,%xmm1
|
|
movdqu 32(%rsi),%xmm6
|
|
.byte 102,15,56,0,227
|
|
movdqu 48(%rsi),%xmm7
|
|
.byte 102,15,56,0,235
|
|
.byte 102,15,56,0,243
|
|
movdqa %xmm1,%xmm9
|
|
.byte 102,15,56,0,251
|
|
jmp .Loop_shaext
|
|
|
|
.align 16
|
|
.Loop_shaext:
|
|
decq %rdx
|
|
leaq 64(%rsi),%r8
|
|
paddd %xmm4,%xmm1
|
|
cmovneq %r8,%rsi
|
|
movdqa %xmm0,%xmm8
|
|
.byte 15,56,201,229
|
|
movdqa %xmm0,%xmm2
|
|
.byte 15,58,204,193,0
|
|
.byte 15,56,200,213
|
|
pxor %xmm6,%xmm4
|
|
.byte 15,56,201,238
|
|
.byte 15,56,202,231
|
|
|
|
movdqa %xmm0,%xmm1
|
|
.byte 15,58,204,194,0
|
|
.byte 15,56,200,206
|
|
pxor %xmm7,%xmm5
|
|
.byte 15,56,202,236
|
|
.byte 15,56,201,247
|
|
movdqa %xmm0,%xmm2
|
|
.byte 15,58,204,193,0
|
|
.byte 15,56,200,215
|
|
pxor %xmm4,%xmm6
|
|
.byte 15,56,201,252
|
|
.byte 15,56,202,245
|
|
|
|
movdqa %xmm0,%xmm1
|
|
.byte 15,58,204,194,0
|
|
.byte 15,56,200,204
|
|
pxor %xmm5,%xmm7
|
|
.byte 15,56,202,254
|
|
.byte 15,56,201,229
|
|
movdqa %xmm0,%xmm2
|
|
.byte 15,58,204,193,0
|
|
.byte 15,56,200,213
|
|
pxor %xmm6,%xmm4
|
|
.byte 15,56,201,238
|
|
.byte 15,56,202,231
|
|
|
|
movdqa %xmm0,%xmm1
|
|
.byte 15,58,204,194,1
|
|
.byte 15,56,200,206
|
|
pxor %xmm7,%xmm5
|
|
.byte 15,56,202,236
|
|
.byte 15,56,201,247
|
|
movdqa %xmm0,%xmm2
|
|
.byte 15,58,204,193,1
|
|
.byte 15,56,200,215
|
|
pxor %xmm4,%xmm6
|
|
.byte 15,56,201,252
|
|
.byte 15,56,202,245
|
|
|
|
movdqa %xmm0,%xmm1
|
|
.byte 15,58,204,194,1
|
|
.byte 15,56,200,204
|
|
pxor %xmm5,%xmm7
|
|
.byte 15,56,202,254
|
|
.byte 15,56,201,229
|
|
movdqa %xmm0,%xmm2
|
|
.byte 15,58,204,193,1
|
|
.byte 15,56,200,213
|
|
pxor %xmm6,%xmm4
|
|
.byte 15,56,201,238
|
|
.byte 15,56,202,231
|
|
|
|
movdqa %xmm0,%xmm1
|
|
.byte 15,58,204,194,1
|
|
.byte 15,56,200,206
|
|
pxor %xmm7,%xmm5
|
|
.byte 15,56,202,236
|
|
.byte 15,56,201,247
|
|
movdqa %xmm0,%xmm2
|
|
.byte 15,58,204,193,2
|
|
.byte 15,56,200,215
|
|
pxor %xmm4,%xmm6
|
|
.byte 15,56,201,252
|
|
.byte 15,56,202,245
|
|
|
|
movdqa %xmm0,%xmm1
|
|
.byte 15,58,204,194,2
|
|
.byte 15,56,200,204
|
|
pxor %xmm5,%xmm7
|
|
.byte 15,56,202,254
|
|
.byte 15,56,201,229
|
|
movdqa %xmm0,%xmm2
|
|
.byte 15,58,204,193,2
|
|
.byte 15,56,200,213
|
|
pxor %xmm6,%xmm4
|
|
.byte 15,56,201,238
|
|
.byte 15,56,202,231
|
|
|
|
movdqa %xmm0,%xmm1
|
|
.byte 15,58,204,194,2
|
|
.byte 15,56,200,206
|
|
pxor %xmm7,%xmm5
|
|
.byte 15,56,202,236
|
|
.byte 15,56,201,247
|
|
movdqa %xmm0,%xmm2
|
|
.byte 15,58,204,193,2
|
|
.byte 15,56,200,215
|
|
pxor %xmm4,%xmm6
|
|
.byte 15,56,201,252
|
|
.byte 15,56,202,245
|
|
|
|
movdqa %xmm0,%xmm1
|
|
.byte 15,58,204,194,3
|
|
.byte 15,56,200,204
|
|
pxor %xmm5,%xmm7
|
|
.byte 15,56,202,254
|
|
movdqu (%rsi),%xmm4
|
|
movdqa %xmm0,%xmm2
|
|
.byte 15,58,204,193,3
|
|
.byte 15,56,200,213
|
|
movdqu 16(%rsi),%xmm5
|
|
.byte 102,15,56,0,227
|
|
|
|
movdqa %xmm0,%xmm1
|
|
.byte 15,58,204,194,3
|
|
.byte 15,56,200,206
|
|
movdqu 32(%rsi),%xmm6
|
|
.byte 102,15,56,0,235
|
|
|
|
movdqa %xmm0,%xmm2
|
|
.byte 15,58,204,193,3
|
|
.byte 15,56,200,215
|
|
movdqu 48(%rsi),%xmm7
|
|
.byte 102,15,56,0,243
|
|
|
|
movdqa %xmm0,%xmm1
|
|
.byte 15,58,204,194,3
|
|
.byte 65,15,56,200,201
|
|
.byte 102,15,56,0,251
|
|
|
|
paddd %xmm8,%xmm0
|
|
movdqa %xmm1,%xmm9
|
|
|
|
jnz .Loop_shaext
|
|
|
|
pshufd $27,%xmm0,%xmm0
|
|
pshufd $27,%xmm1,%xmm1
|
|
movdqu %xmm0,(%rdi)
|
|
movd %xmm1,16(%rdi)
|
|
.byte 0xf3,0xc3
|
|
.size sha1_block_data_order_shaext,.-sha1_block_data_order_shaext
|
|
.type sha1_block_data_order_ssse3,@function
|
|
.align 16
|
|
sha1_block_data_order_ssse3:
|
|
_ssse3_shortcut:
|
|
movq %rsp,%rax
|
|
pushq %rbx
|
|
pushq %rbp
|
|
pushq %r12
|
|
pushq %r13
|
|
pushq %r14
|
|
leaq -64(%rsp),%rsp
|
|
movq %rax,%r14
|
|
andq $-64,%rsp
|
|
movq %rdi,%r8
|
|
movq %rsi,%r9
|
|
movq %rdx,%r10
|
|
|
|
shlq $6,%r10
|
|
addq %r9,%r10
|
|
leaq K_XX_XX+64(%rip),%r11
|
|
|
|
movl 0(%r8),%eax
|
|
movl 4(%r8),%ebx
|
|
movl 8(%r8),%ecx
|
|
movl 12(%r8),%edx
|
|
movl %ebx,%esi
|
|
movl 16(%r8),%ebp
|
|
movl %ecx,%edi
|
|
xorl %edx,%edi
|
|
andl %edi,%esi
|
|
|
|
movdqa 64(%r11),%xmm6
|
|
movdqa -64(%r11),%xmm9
|
|
movdqu 0(%r9),%xmm0
|
|
movdqu 16(%r9),%xmm1
|
|
movdqu 32(%r9),%xmm2
|
|
movdqu 48(%r9),%xmm3
|
|
.byte 102,15,56,0,198
|
|
.byte 102,15,56,0,206
|
|
.byte 102,15,56,0,214
|
|
addq $64,%r9
|
|
paddd %xmm9,%xmm0
|
|
.byte 102,15,56,0,222
|
|
paddd %xmm9,%xmm1
|
|
paddd %xmm9,%xmm2
|
|
movdqa %xmm0,0(%rsp)
|
|
psubd %xmm9,%xmm0
|
|
movdqa %xmm1,16(%rsp)
|
|
psubd %xmm9,%xmm1
|
|
movdqa %xmm2,32(%rsp)
|
|
psubd %xmm9,%xmm2
|
|
jmp .Loop_ssse3
|
|
.align 16
|
|
.Loop_ssse3:
|
|
rorl $2,%ebx
|
|
pshufd $238,%xmm0,%xmm4
|
|
xorl %edx,%esi
|
|
movdqa %xmm3,%xmm8
|
|
paddd %xmm3,%xmm9
|
|
movl %eax,%edi
|
|
addl 0(%rsp),%ebp
|
|
punpcklqdq %xmm1,%xmm4
|
|
xorl %ecx,%ebx
|
|
roll $5,%eax
|
|
addl %esi,%ebp
|
|
psrldq $4,%xmm8
|
|
andl %ebx,%edi
|
|
xorl %ecx,%ebx
|
|
pxor %xmm0,%xmm4
|
|
addl %eax,%ebp
|
|
rorl $7,%eax
|
|
pxor %xmm2,%xmm8
|
|
xorl %ecx,%edi
|
|
movl %ebp,%esi
|
|
addl 4(%rsp),%edx
|
|
pxor %xmm8,%xmm4
|
|
xorl %ebx,%eax
|
|
roll $5,%ebp
|
|
movdqa %xmm9,48(%rsp)
|
|
addl %edi,%edx
|
|
andl %eax,%esi
|
|
movdqa %xmm4,%xmm10
|
|
xorl %ebx,%eax
|
|
addl %ebp,%edx
|
|
rorl $7,%ebp
|
|
movdqa %xmm4,%xmm8
|
|
xorl %ebx,%esi
|
|
pslldq $12,%xmm10
|
|
paddd %xmm4,%xmm4
|
|
movl %edx,%edi
|
|
addl 8(%rsp),%ecx
|
|
psrld $31,%xmm8
|
|
xorl %eax,%ebp
|
|
roll $5,%edx
|
|
addl %esi,%ecx
|
|
movdqa %xmm10,%xmm9
|
|
andl %ebp,%edi
|
|
xorl %eax,%ebp
|
|
psrld $30,%xmm10
|
|
addl %edx,%ecx
|
|
rorl $7,%edx
|
|
por %xmm8,%xmm4
|
|
xorl %eax,%edi
|
|
movl %ecx,%esi
|
|
addl 12(%rsp),%ebx
|
|
pslld $2,%xmm9
|
|
pxor %xmm10,%xmm4
|
|
xorl %ebp,%edx
|
|
movdqa -64(%r11),%xmm10
|
|
roll $5,%ecx
|
|
addl %edi,%ebx
|
|
andl %edx,%esi
|
|
pxor %xmm9,%xmm4
|
|
xorl %ebp,%edx
|
|
addl %ecx,%ebx
|
|
rorl $7,%ecx
|
|
pshufd $238,%xmm1,%xmm5
|
|
xorl %ebp,%esi
|
|
movdqa %xmm4,%xmm9
|
|
paddd %xmm4,%xmm10
|
|
movl %ebx,%edi
|
|
addl 16(%rsp),%eax
|
|
punpcklqdq %xmm2,%xmm5
|
|
xorl %edx,%ecx
|
|
roll $5,%ebx
|
|
addl %esi,%eax
|
|
psrldq $4,%xmm9
|
|
andl %ecx,%edi
|
|
xorl %edx,%ecx
|
|
pxor %xmm1,%xmm5
|
|
addl %ebx,%eax
|
|
rorl $7,%ebx
|
|
pxor %xmm3,%xmm9
|
|
xorl %edx,%edi
|
|
movl %eax,%esi
|
|
addl 20(%rsp),%ebp
|
|
pxor %xmm9,%xmm5
|
|
xorl %ecx,%ebx
|
|
roll $5,%eax
|
|
movdqa %xmm10,0(%rsp)
|
|
addl %edi,%ebp
|
|
andl %ebx,%esi
|
|
movdqa %xmm5,%xmm8
|
|
xorl %ecx,%ebx
|
|
addl %eax,%ebp
|
|
rorl $7,%eax
|
|
movdqa %xmm5,%xmm9
|
|
xorl %ecx,%esi
|
|
pslldq $12,%xmm8
|
|
paddd %xmm5,%xmm5
|
|
movl %ebp,%edi
|
|
addl 24(%rsp),%edx
|
|
psrld $31,%xmm9
|
|
xorl %ebx,%eax
|
|
roll $5,%ebp
|
|
addl %esi,%edx
|
|
movdqa %xmm8,%xmm10
|
|
andl %eax,%edi
|
|
xorl %ebx,%eax
|
|
psrld $30,%xmm8
|
|
addl %ebp,%edx
|
|
rorl $7,%ebp
|
|
por %xmm9,%xmm5
|
|
xorl %ebx,%edi
|
|
movl %edx,%esi
|
|
addl 28(%rsp),%ecx
|
|
pslld $2,%xmm10
|
|
pxor %xmm8,%xmm5
|
|
xorl %eax,%ebp
|
|
movdqa -32(%r11),%xmm8
|
|
roll $5,%edx
|
|
addl %edi,%ecx
|
|
andl %ebp,%esi
|
|
pxor %xmm10,%xmm5
|
|
xorl %eax,%ebp
|
|
addl %edx,%ecx
|
|
rorl $7,%edx
|
|
pshufd $238,%xmm2,%xmm6
|
|
xorl %eax,%esi
|
|
movdqa %xmm5,%xmm10
|
|
paddd %xmm5,%xmm8
|
|
movl %ecx,%edi
|
|
addl 32(%rsp),%ebx
|
|
punpcklqdq %xmm3,%xmm6
|
|
xorl %ebp,%edx
|
|
roll $5,%ecx
|
|
addl %esi,%ebx
|
|
psrldq $4,%xmm10
|
|
andl %edx,%edi
|
|
xorl %ebp,%edx
|
|
pxor %xmm2,%xmm6
|
|
addl %ecx,%ebx
|
|
rorl $7,%ecx
|
|
pxor %xmm4,%xmm10
|
|
xorl %ebp,%edi
|
|
movl %ebx,%esi
|
|
addl 36(%rsp),%eax
|
|
pxor %xmm10,%xmm6
|
|
xorl %edx,%ecx
|
|
roll $5,%ebx
|
|
movdqa %xmm8,16(%rsp)
|
|
addl %edi,%eax
|
|
andl %ecx,%esi
|
|
movdqa %xmm6,%xmm9
|
|
xorl %edx,%ecx
|
|
addl %ebx,%eax
|
|
rorl $7,%ebx
|
|
movdqa %xmm6,%xmm10
|
|
xorl %edx,%esi
|
|
pslldq $12,%xmm9
|
|
paddd %xmm6,%xmm6
|
|
movl %eax,%edi
|
|
addl 40(%rsp),%ebp
|
|
psrld $31,%xmm10
|
|
xorl %ecx,%ebx
|
|
roll $5,%eax
|
|
addl %esi,%ebp
|
|
movdqa %xmm9,%xmm8
|
|
andl %ebx,%edi
|
|
xorl %ecx,%ebx
|
|
psrld $30,%xmm9
|
|
addl %eax,%ebp
|
|
rorl $7,%eax
|
|
por %xmm10,%xmm6
|
|
xorl %ecx,%edi
|
|
movl %ebp,%esi
|
|
addl 44(%rsp),%edx
|
|
pslld $2,%xmm8
|
|
pxor %xmm9,%xmm6
|
|
xorl %ebx,%eax
|
|
movdqa -32(%r11),%xmm9
|
|
roll $5,%ebp
|
|
addl %edi,%edx
|
|
andl %eax,%esi
|
|
pxor %xmm8,%xmm6
|
|
xorl %ebx,%eax
|
|
addl %ebp,%edx
|
|
rorl $7,%ebp
|
|
pshufd $238,%xmm3,%xmm7
|
|
xorl %ebx,%esi
|
|
movdqa %xmm6,%xmm8
|
|
paddd %xmm6,%xmm9
|
|
movl %edx,%edi
|
|
addl 48(%rsp),%ecx
|
|
punpcklqdq %xmm4,%xmm7
|
|
xorl %eax,%ebp
|
|
roll $5,%edx
|
|
addl %esi,%ecx
|
|
psrldq $4,%xmm8
|
|
andl %ebp,%edi
|
|
xorl %eax,%ebp
|
|
pxor %xmm3,%xmm7
|
|
addl %edx,%ecx
|
|
rorl $7,%edx
|
|
pxor %xmm5,%xmm8
|
|
xorl %eax,%edi
|
|
movl %ecx,%esi
|
|
addl 52(%rsp),%ebx
|
|
pxor %xmm8,%xmm7
|
|
xorl %ebp,%edx
|
|
roll $5,%ecx
|
|
movdqa %xmm9,32(%rsp)
|
|
addl %edi,%ebx
|
|
andl %edx,%esi
|
|
movdqa %xmm7,%xmm10
|
|
xorl %ebp,%edx
|
|
addl %ecx,%ebx
|
|
rorl $7,%ecx
|
|
movdqa %xmm7,%xmm8
|
|
xorl %ebp,%esi
|
|
pslldq $12,%xmm10
|
|
paddd %xmm7,%xmm7
|
|
movl %ebx,%edi
|
|
addl 56(%rsp),%eax
|
|
psrld $31,%xmm8
|
|
xorl %edx,%ecx
|
|
roll $5,%ebx
|
|
addl %esi,%eax
|
|
movdqa %xmm10,%xmm9
|
|
andl %ecx,%edi
|
|
xorl %edx,%ecx
|
|
psrld $30,%xmm10
|
|
addl %ebx,%eax
|
|
rorl $7,%ebx
|
|
por %xmm8,%xmm7
|
|
xorl %edx,%edi
|
|
movl %eax,%esi
|
|
addl 60(%rsp),%ebp
|
|
pslld $2,%xmm9
|
|
pxor %xmm10,%xmm7
|
|
xorl %ecx,%ebx
|
|
movdqa -32(%r11),%xmm10
|
|
roll $5,%eax
|
|
addl %edi,%ebp
|
|
andl %ebx,%esi
|
|
pxor %xmm9,%xmm7
|
|
pshufd $238,%xmm6,%xmm9
|
|
xorl %ecx,%ebx
|
|
addl %eax,%ebp
|
|
rorl $7,%eax
|
|
pxor %xmm4,%xmm0
|
|
xorl %ecx,%esi
|
|
movl %ebp,%edi
|
|
addl 0(%rsp),%edx
|
|
punpcklqdq %xmm7,%xmm9
|
|
xorl %ebx,%eax
|
|
roll $5,%ebp
|
|
pxor %xmm1,%xmm0
|
|
addl %esi,%edx
|
|
andl %eax,%edi
|
|
movdqa %xmm10,%xmm8
|
|
xorl %ebx,%eax
|
|
paddd %xmm7,%xmm10
|
|
addl %ebp,%edx
|
|
pxor %xmm9,%xmm0
|
|
rorl $7,%ebp
|
|
xorl %ebx,%edi
|
|
movl %edx,%esi
|
|
addl 4(%rsp),%ecx
|
|
movdqa %xmm0,%xmm9
|
|
xorl %eax,%ebp
|
|
roll $5,%edx
|
|
movdqa %xmm10,48(%rsp)
|
|
addl %edi,%ecx
|
|
andl %ebp,%esi
|
|
xorl %eax,%ebp
|
|
pslld $2,%xmm0
|
|
addl %edx,%ecx
|
|
rorl $7,%edx
|
|
psrld $30,%xmm9
|
|
xorl %eax,%esi
|
|
movl %ecx,%edi
|
|
addl 8(%rsp),%ebx
|
|
por %xmm9,%xmm0
|
|
xorl %ebp,%edx
|
|
roll $5,%ecx
|
|
pshufd $238,%xmm7,%xmm10
|
|
addl %esi,%ebx
|
|
andl %edx,%edi
|
|
xorl %ebp,%edx
|
|
addl %ecx,%ebx
|
|
addl 12(%rsp),%eax
|
|
xorl %ebp,%edi
|
|
movl %ebx,%esi
|
|
roll $5,%ebx
|
|
addl %edi,%eax
|
|
xorl %edx,%esi
|
|
rorl $7,%ecx
|
|
addl %ebx,%eax
|
|
pxor %xmm5,%xmm1
|
|
addl 16(%rsp),%ebp
|
|
xorl %ecx,%esi
|
|
punpcklqdq %xmm0,%xmm10
|
|
movl %eax,%edi
|
|
roll $5,%eax
|
|
pxor %xmm2,%xmm1
|
|
addl %esi,%ebp
|
|
xorl %ecx,%edi
|
|
movdqa %xmm8,%xmm9
|
|
rorl $7,%ebx
|
|
paddd %xmm0,%xmm8
|
|
addl %eax,%ebp
|
|
pxor %xmm10,%xmm1
|
|
addl 20(%rsp),%edx
|
|
xorl %ebx,%edi
|
|
movl %ebp,%esi
|
|
roll $5,%ebp
|
|
movdqa %xmm1,%xmm10
|
|
addl %edi,%edx
|
|
xorl %ebx,%esi
|
|
movdqa %xmm8,0(%rsp)
|
|
rorl $7,%eax
|
|
addl %ebp,%edx
|
|
addl 24(%rsp),%ecx
|
|
pslld $2,%xmm1
|
|
xorl %eax,%esi
|
|
movl %edx,%edi
|
|
psrld $30,%xmm10
|
|
roll $5,%edx
|
|
addl %esi,%ecx
|
|
xorl %eax,%edi
|
|
rorl $7,%ebp
|
|
por %xmm10,%xmm1
|
|
addl %edx,%ecx
|
|
addl 28(%rsp),%ebx
|
|
pshufd $238,%xmm0,%xmm8
|
|
xorl %ebp,%edi
|
|
movl %ecx,%esi
|
|
roll $5,%ecx
|
|
addl %edi,%ebx
|
|
xorl %ebp,%esi
|
|
rorl $7,%edx
|
|
addl %ecx,%ebx
|
|
pxor %xmm6,%xmm2
|
|
addl 32(%rsp),%eax
|
|
xorl %edx,%esi
|
|
punpcklqdq %xmm1,%xmm8
|
|
movl %ebx,%edi
|
|
roll $5,%ebx
|
|
pxor %xmm3,%xmm2
|
|
addl %esi,%eax
|
|
xorl %edx,%edi
|
|
movdqa 0(%r11),%xmm10
|
|
rorl $7,%ecx
|
|
paddd %xmm1,%xmm9
|
|
addl %ebx,%eax
|
|
pxor %xmm8,%xmm2
|
|
addl 36(%rsp),%ebp
|
|
xorl %ecx,%edi
|
|
movl %eax,%esi
|
|
roll $5,%eax
|
|
movdqa %xmm2,%xmm8
|
|
addl %edi,%ebp
|
|
xorl %ecx,%esi
|
|
movdqa %xmm9,16(%rsp)
|
|
rorl $7,%ebx
|
|
addl %eax,%ebp
|
|
addl 40(%rsp),%edx
|
|
pslld $2,%xmm2
|
|
xorl %ebx,%esi
|
|
movl %ebp,%edi
|
|
psrld $30,%xmm8
|
|
roll $5,%ebp
|
|
addl %esi,%edx
|
|
xorl %ebx,%edi
|
|
rorl $7,%eax
|
|
por %xmm8,%xmm2
|
|
addl %ebp,%edx
|
|
addl 44(%rsp),%ecx
|
|
pshufd $238,%xmm1,%xmm9
|
|
xorl %eax,%edi
|
|
movl %edx,%esi
|
|
roll $5,%edx
|
|
addl %edi,%ecx
|
|
xorl %eax,%esi
|
|
rorl $7,%ebp
|
|
addl %edx,%ecx
|
|
pxor %xmm7,%xmm3
|
|
addl 48(%rsp),%ebx
|
|
xorl %ebp,%esi
|
|
punpcklqdq %xmm2,%xmm9
|
|
movl %ecx,%edi
|
|
roll $5,%ecx
|
|
pxor %xmm4,%xmm3
|
|
addl %esi,%ebx
|
|
xorl %ebp,%edi
|
|
movdqa %xmm10,%xmm8
|
|
rorl $7,%edx
|
|
paddd %xmm2,%xmm10
|
|
addl %ecx,%ebx
|
|
pxor %xmm9,%xmm3
|
|
addl 52(%rsp),%eax
|
|
xorl %edx,%edi
|
|
movl %ebx,%esi
|
|
roll $5,%ebx
|
|
movdqa %xmm3,%xmm9
|
|
addl %edi,%eax
|
|
xorl %edx,%esi
|
|
movdqa %xmm10,32(%rsp)
|
|
rorl $7,%ecx
|
|
addl %ebx,%eax
|
|
addl 56(%rsp),%ebp
|
|
pslld $2,%xmm3
|
|
xorl %ecx,%esi
|
|
movl %eax,%edi
|
|
psrld $30,%xmm9
|
|
roll $5,%eax
|
|
addl %esi,%ebp
|
|
xorl %ecx,%edi
|
|
rorl $7,%ebx
|
|
por %xmm9,%xmm3
|
|
addl %eax,%ebp
|
|
addl 60(%rsp),%edx
|
|
pshufd $238,%xmm2,%xmm10
|
|
xorl %ebx,%edi
|
|
movl %ebp,%esi
|
|
roll $5,%ebp
|
|
addl %edi,%edx
|
|
xorl %ebx,%esi
|
|
rorl $7,%eax
|
|
addl %ebp,%edx
|
|
pxor %xmm0,%xmm4
|
|
addl 0(%rsp),%ecx
|
|
xorl %eax,%esi
|
|
punpcklqdq %xmm3,%xmm10
|
|
movl %edx,%edi
|
|
roll $5,%edx
|
|
pxor %xmm5,%xmm4
|
|
addl %esi,%ecx
|
|
xorl %eax,%edi
|
|
movdqa %xmm8,%xmm9
|
|
rorl $7,%ebp
|
|
paddd %xmm3,%xmm8
|
|
addl %edx,%ecx
|
|
pxor %xmm10,%xmm4
|
|
addl 4(%rsp),%ebx
|
|
xorl %ebp,%edi
|
|
movl %ecx,%esi
|
|
roll $5,%ecx
|
|
movdqa %xmm4,%xmm10
|
|
addl %edi,%ebx
|
|
xorl %ebp,%esi
|
|
movdqa %xmm8,48(%rsp)
|
|
rorl $7,%edx
|
|
addl %ecx,%ebx
|
|
addl 8(%rsp),%eax
|
|
pslld $2,%xmm4
|
|
xorl %edx,%esi
|
|
movl %ebx,%edi
|
|
psrld $30,%xmm10
|
|
roll $5,%ebx
|
|
addl %esi,%eax
|
|
xorl %edx,%edi
|
|
rorl $7,%ecx
|
|
por %xmm10,%xmm4
|
|
addl %ebx,%eax
|
|
addl 12(%rsp),%ebp
|
|
pshufd $238,%xmm3,%xmm8
|
|
xorl %ecx,%edi
|
|
movl %eax,%esi
|
|
roll $5,%eax
|
|
addl %edi,%ebp
|
|
xorl %ecx,%esi
|
|
rorl $7,%ebx
|
|
addl %eax,%ebp
|
|
pxor %xmm1,%xmm5
|
|
addl 16(%rsp),%edx
|
|
xorl %ebx,%esi
|
|
punpcklqdq %xmm4,%xmm8
|
|
movl %ebp,%edi
|
|
roll $5,%ebp
|
|
pxor %xmm6,%xmm5
|
|
addl %esi,%edx
|
|
xorl %ebx,%edi
|
|
movdqa %xmm9,%xmm10
|
|
rorl $7,%eax
|
|
paddd %xmm4,%xmm9
|
|
addl %ebp,%edx
|
|
pxor %xmm8,%xmm5
|
|
addl 20(%rsp),%ecx
|
|
xorl %eax,%edi
|
|
movl %edx,%esi
|
|
roll $5,%edx
|
|
movdqa %xmm5,%xmm8
|
|
addl %edi,%ecx
|
|
xorl %eax,%esi
|
|
movdqa %xmm9,0(%rsp)
|
|
rorl $7,%ebp
|
|
addl %edx,%ecx
|
|
addl 24(%rsp),%ebx
|
|
pslld $2,%xmm5
|
|
xorl %ebp,%esi
|
|
movl %ecx,%edi
|
|
psrld $30,%xmm8
|
|
roll $5,%ecx
|
|
addl %esi,%ebx
|
|
xorl %ebp,%edi
|
|
rorl $7,%edx
|
|
por %xmm8,%xmm5
|
|
addl %ecx,%ebx
|
|
addl 28(%rsp),%eax
|
|
pshufd $238,%xmm4,%xmm9
|
|
rorl $7,%ecx
|
|
movl %ebx,%esi
|
|
xorl %edx,%edi
|
|
roll $5,%ebx
|
|
addl %edi,%eax
|
|
xorl %ecx,%esi
|
|
xorl %edx,%ecx
|
|
addl %ebx,%eax
|
|
pxor %xmm2,%xmm6
|
|
addl 32(%rsp),%ebp
|
|
andl %ecx,%esi
|
|
xorl %edx,%ecx
|
|
rorl $7,%ebx
|
|
punpcklqdq %xmm5,%xmm9
|
|
movl %eax,%edi
|
|
xorl %ecx,%esi
|
|
pxor %xmm7,%xmm6
|
|
roll $5,%eax
|
|
addl %esi,%ebp
|
|
movdqa %xmm10,%xmm8
|
|
xorl %ebx,%edi
|
|
paddd %xmm5,%xmm10
|
|
xorl %ecx,%ebx
|
|
pxor %xmm9,%xmm6
|
|
addl %eax,%ebp
|
|
addl 36(%rsp),%edx
|
|
andl %ebx,%edi
|
|
xorl %ecx,%ebx
|
|
rorl $7,%eax
|
|
movdqa %xmm6,%xmm9
|
|
movl %ebp,%esi
|
|
xorl %ebx,%edi
|
|
movdqa %xmm10,16(%rsp)
|
|
roll $5,%ebp
|
|
addl %edi,%edx
|
|
xorl %eax,%esi
|
|
pslld $2,%xmm6
|
|
xorl %ebx,%eax
|
|
addl %ebp,%edx
|
|
psrld $30,%xmm9
|
|
addl 40(%rsp),%ecx
|
|
andl %eax,%esi
|
|
xorl %ebx,%eax
|
|
por %xmm9,%xmm6
|
|
rorl $7,%ebp
|
|
movl %edx,%edi
|
|
xorl %eax,%esi
|
|
roll $5,%edx
|
|
pshufd $238,%xmm5,%xmm10
|
|
addl %esi,%ecx
|
|
xorl %ebp,%edi
|
|
xorl %eax,%ebp
|
|
addl %edx,%ecx
|
|
addl 44(%rsp),%ebx
|
|
andl %ebp,%edi
|
|
xorl %eax,%ebp
|
|
rorl $7,%edx
|
|
movl %ecx,%esi
|
|
xorl %ebp,%edi
|
|
roll $5,%ecx
|
|
addl %edi,%ebx
|
|
xorl %edx,%esi
|
|
xorl %ebp,%edx
|
|
addl %ecx,%ebx
|
|
pxor %xmm3,%xmm7
|
|
addl 48(%rsp),%eax
|
|
andl %edx,%esi
|
|
xorl %ebp,%edx
|
|
rorl $7,%ecx
|
|
punpcklqdq %xmm6,%xmm10
|
|
movl %ebx,%edi
|
|
xorl %edx,%esi
|
|
pxor %xmm0,%xmm7
|
|
roll $5,%ebx
|
|
addl %esi,%eax
|
|
movdqa 32(%r11),%xmm9
|
|
xorl %ecx,%edi
|
|
paddd %xmm6,%xmm8
|
|
xorl %edx,%ecx
|
|
pxor %xmm10,%xmm7
|
|
addl %ebx,%eax
|
|
addl 52(%rsp),%ebp
|
|
andl %ecx,%edi
|
|
xorl %edx,%ecx
|
|
rorl $7,%ebx
|
|
movdqa %xmm7,%xmm10
|
|
movl %eax,%esi
|
|
xorl %ecx,%edi
|
|
movdqa %xmm8,32(%rsp)
|
|
roll $5,%eax
|
|
addl %edi,%ebp
|
|
xorl %ebx,%esi
|
|
pslld $2,%xmm7
|
|
xorl %ecx,%ebx
|
|
addl %eax,%ebp
|
|
psrld $30,%xmm10
|
|
addl 56(%rsp),%edx
|
|
andl %ebx,%esi
|
|
xorl %ecx,%ebx
|
|
por %xmm10,%xmm7
|
|
rorl $7,%eax
|
|
movl %ebp,%edi
|
|
xorl %ebx,%esi
|
|
roll $5,%ebp
|
|
pshufd $238,%xmm6,%xmm8
|
|
addl %esi,%edx
|
|
xorl %eax,%edi
|
|
xorl %ebx,%eax
|
|
addl %ebp,%edx
|
|
addl 60(%rsp),%ecx
|
|
andl %eax,%edi
|
|
xorl %ebx,%eax
|
|
rorl $7,%ebp
|
|
movl %edx,%esi
|
|
xorl %eax,%edi
|
|
roll $5,%edx
|
|
addl %edi,%ecx
|
|
xorl %ebp,%esi
|
|
xorl %eax,%ebp
|
|
addl %edx,%ecx
|
|
pxor %xmm4,%xmm0
|
|
addl 0(%rsp),%ebx
|
|
andl %ebp,%esi
|
|
xorl %eax,%ebp
|
|
rorl $7,%edx
|
|
punpcklqdq %xmm7,%xmm8
|
|
movl %ecx,%edi
|
|
xorl %ebp,%esi
|
|
pxor %xmm1,%xmm0
|
|
roll $5,%ecx
|
|
addl %esi,%ebx
|
|
movdqa %xmm9,%xmm10
|
|
xorl %edx,%edi
|
|
paddd %xmm7,%xmm9
|
|
xorl %ebp,%edx
|
|
pxor %xmm8,%xmm0
|
|
addl %ecx,%ebx
|
|
addl 4(%rsp),%eax
|
|
andl %edx,%edi
|
|
xorl %ebp,%edx
|
|
rorl $7,%ecx
|
|
movdqa %xmm0,%xmm8
|
|
movl %ebx,%esi
|
|
xorl %edx,%edi
|
|
movdqa %xmm9,48(%rsp)
|
|
roll $5,%ebx
|
|
addl %edi,%eax
|
|
xorl %ecx,%esi
|
|
pslld $2,%xmm0
|
|
xorl %edx,%ecx
|
|
addl %ebx,%eax
|
|
psrld $30,%xmm8
|
|
addl 8(%rsp),%ebp
|
|
andl %ecx,%esi
|
|
xorl %edx,%ecx
|
|
por %xmm8,%xmm0
|
|
rorl $7,%ebx
|
|
movl %eax,%edi
|
|
xorl %ecx,%esi
|
|
roll $5,%eax
|
|
pshufd $238,%xmm7,%xmm9
|
|
addl %esi,%ebp
|
|
xorl %ebx,%edi
|
|
xorl %ecx,%ebx
|
|
addl %eax,%ebp
|
|
addl 12(%rsp),%edx
|
|
andl %ebx,%edi
|
|
xorl %ecx,%ebx
|
|
rorl $7,%eax
|
|
movl %ebp,%esi
|
|
xorl %ebx,%edi
|
|
roll $5,%ebp
|
|
addl %edi,%edx
|
|
xorl %eax,%esi
|
|
xorl %ebx,%eax
|
|
addl %ebp,%edx
|
|
pxor %xmm5,%xmm1
|
|
addl 16(%rsp),%ecx
|
|
andl %eax,%esi
|
|
xorl %ebx,%eax
|
|
rorl $7,%ebp
|
|
punpcklqdq %xmm0,%xmm9
|
|
movl %edx,%edi
|
|
xorl %eax,%esi
|
|
pxor %xmm2,%xmm1
|
|
roll $5,%edx
|
|
addl %esi,%ecx
|
|
movdqa %xmm10,%xmm8
|
|
xorl %ebp,%edi
|
|
paddd %xmm0,%xmm10
|
|
xorl %eax,%ebp
|
|
pxor %xmm9,%xmm1
|
|
addl %edx,%ecx
|
|
addl 20(%rsp),%ebx
|
|
andl %ebp,%edi
|
|
xorl %eax,%ebp
|
|
rorl $7,%edx
|
|
movdqa %xmm1,%xmm9
|
|
movl %ecx,%esi
|
|
xorl %ebp,%edi
|
|
movdqa %xmm10,0(%rsp)
|
|
roll $5,%ecx
|
|
addl %edi,%ebx
|
|
xorl %edx,%esi
|
|
pslld $2,%xmm1
|
|
xorl %ebp,%edx
|
|
addl %ecx,%ebx
|
|
psrld $30,%xmm9
|
|
addl 24(%rsp),%eax
|
|
andl %edx,%esi
|
|
xorl %ebp,%edx
|
|
por %xmm9,%xmm1
|
|
rorl $7,%ecx
|
|
movl %ebx,%edi
|
|
xorl %edx,%esi
|
|
roll $5,%ebx
|
|
pshufd $238,%xmm0,%xmm10
|
|
addl %esi,%eax
|
|
xorl %ecx,%edi
|
|
xorl %edx,%ecx
|
|
addl %ebx,%eax
|
|
addl 28(%rsp),%ebp
|
|
andl %ecx,%edi
|
|
xorl %edx,%ecx
|
|
rorl $7,%ebx
|
|
movl %eax,%esi
|
|
xorl %ecx,%edi
|
|
roll $5,%eax
|
|
addl %edi,%ebp
|
|
xorl %ebx,%esi
|
|
xorl %ecx,%ebx
|
|
addl %eax,%ebp
|
|
pxor %xmm6,%xmm2
|
|
addl 32(%rsp),%edx
|
|
andl %ebx,%esi
|
|
xorl %ecx,%ebx
|
|
rorl $7,%eax
|
|
punpcklqdq %xmm1,%xmm10
|
|
movl %ebp,%edi
|
|
xorl %ebx,%esi
|
|
pxor %xmm3,%xmm2
|
|
roll $5,%ebp
|
|
addl %esi,%edx
|
|
movdqa %xmm8,%xmm9
|
|
xorl %eax,%edi
|
|
paddd %xmm1,%xmm8
|
|
xorl %ebx,%eax
|
|
pxor %xmm10,%xmm2
|
|
addl %ebp,%edx
|
|
addl 36(%rsp),%ecx
|
|
andl %eax,%edi
|
|
xorl %ebx,%eax
|
|
rorl $7,%ebp
|
|
movdqa %xmm2,%xmm10
|
|
movl %edx,%esi
|
|
xorl %eax,%edi
|
|
movdqa %xmm8,16(%rsp)
|
|
roll $5,%edx
|
|
addl %edi,%ecx
|
|
xorl %ebp,%esi
|
|
pslld $2,%xmm2
|
|
xorl %eax,%ebp
|
|
addl %edx,%ecx
|
|
psrld $30,%xmm10
|
|
addl 40(%rsp),%ebx
|
|
andl %ebp,%esi
|
|
xorl %eax,%ebp
|
|
por %xmm10,%xmm2
|
|
rorl $7,%edx
|
|
movl %ecx,%edi
|
|
xorl %ebp,%esi
|
|
roll $5,%ecx
|
|
pshufd $238,%xmm1,%xmm8
|
|
addl %esi,%ebx
|
|
xorl %edx,%edi
|
|
xorl %ebp,%edx
|
|
addl %ecx,%ebx
|
|
addl 44(%rsp),%eax
|
|
andl %edx,%edi
|
|
xorl %ebp,%edx
|
|
rorl $7,%ecx
|
|
movl %ebx,%esi
|
|
xorl %edx,%edi
|
|
roll $5,%ebx
|
|
addl %edi,%eax
|
|
xorl %edx,%esi
|
|
addl %ebx,%eax
|
|
pxor %xmm7,%xmm3
|
|
addl 48(%rsp),%ebp
|
|
xorl %ecx,%esi
|
|
punpcklqdq %xmm2,%xmm8
|
|
movl %eax,%edi
|
|
roll $5,%eax
|
|
pxor %xmm4,%xmm3
|
|
addl %esi,%ebp
|
|
xorl %ecx,%edi
|
|
movdqa %xmm9,%xmm10
|
|
rorl $7,%ebx
|
|
paddd %xmm2,%xmm9
|
|
addl %eax,%ebp
|
|
pxor %xmm8,%xmm3
|
|
addl 52(%rsp),%edx
|
|
xorl %ebx,%edi
|
|
movl %ebp,%esi
|
|
roll $5,%ebp
|
|
movdqa %xmm3,%xmm8
|
|
addl %edi,%edx
|
|
xorl %ebx,%esi
|
|
movdqa %xmm9,32(%rsp)
|
|
rorl $7,%eax
|
|
addl %ebp,%edx
|
|
addl 56(%rsp),%ecx
|
|
pslld $2,%xmm3
|
|
xorl %eax,%esi
|
|
movl %edx,%edi
|
|
psrld $30,%xmm8
|
|
roll $5,%edx
|
|
addl %esi,%ecx
|
|
xorl %eax,%edi
|
|
rorl $7,%ebp
|
|
por %xmm8,%xmm3
|
|
addl %edx,%ecx
|
|
addl 60(%rsp),%ebx
|
|
xorl %ebp,%edi
|
|
movl %ecx,%esi
|
|
roll $5,%ecx
|
|
addl %edi,%ebx
|
|
xorl %ebp,%esi
|
|
rorl $7,%edx
|
|
addl %ecx,%ebx
|
|
addl 0(%rsp),%eax
|
|
xorl %edx,%esi
|
|
movl %ebx,%edi
|
|
roll $5,%ebx
|
|
paddd %xmm3,%xmm10
|
|
addl %esi,%eax
|
|
xorl %edx,%edi
|
|
movdqa %xmm10,48(%rsp)
|
|
rorl $7,%ecx
|
|
addl %ebx,%eax
|
|
addl 4(%rsp),%ebp
|
|
xorl %ecx,%edi
|
|
movl %eax,%esi
|
|
roll $5,%eax
|
|
addl %edi,%ebp
|
|
xorl %ecx,%esi
|
|
rorl $7,%ebx
|
|
addl %eax,%ebp
|
|
addl 8(%rsp),%edx
|
|
xorl %ebx,%esi
|
|
movl %ebp,%edi
|
|
roll $5,%ebp
|
|
addl %esi,%edx
|
|
xorl %ebx,%edi
|
|
rorl $7,%eax
|
|
addl %ebp,%edx
|
|
addl 12(%rsp),%ecx
|
|
xorl %eax,%edi
|
|
movl %edx,%esi
|
|
roll $5,%edx
|
|
addl %edi,%ecx
|
|
xorl %eax,%esi
|
|
rorl $7,%ebp
|
|
addl %edx,%ecx
|
|
cmpq %r10,%r9
|
|
je .Ldone_ssse3
|
|
movdqa 64(%r11),%xmm6
|
|
movdqa -64(%r11),%xmm9
|
|
movdqu 0(%r9),%xmm0
|
|
movdqu 16(%r9),%xmm1
|
|
movdqu 32(%r9),%xmm2
|
|
movdqu 48(%r9),%xmm3
|
|
.byte 102,15,56,0,198
|
|
addq $64,%r9
|
|
addl 16(%rsp),%ebx
|
|
xorl %ebp,%esi
|
|
movl %ecx,%edi
|
|
.byte 102,15,56,0,206
|
|
roll $5,%ecx
|
|
addl %esi,%ebx
|
|
xorl %ebp,%edi
|
|
rorl $7,%edx
|
|
paddd %xmm9,%xmm0
|
|
addl %ecx,%ebx
|
|
addl 20(%rsp),%eax
|
|
xorl %edx,%edi
|
|
movl %ebx,%esi
|
|
movdqa %xmm0,0(%rsp)
|
|
roll $5,%ebx
|
|
addl %edi,%eax
|
|
xorl %edx,%esi
|
|
rorl $7,%ecx
|
|
psubd %xmm9,%xmm0
|
|
addl %ebx,%eax
|
|
addl 24(%rsp),%ebp
|
|
xorl %ecx,%esi
|
|
movl %eax,%edi
|
|
roll $5,%eax
|
|
addl %esi,%ebp
|
|
xorl %ecx,%edi
|
|
rorl $7,%ebx
|
|
addl %eax,%ebp
|
|
addl 28(%rsp),%edx
|
|
xorl %ebx,%edi
|
|
movl %ebp,%esi
|
|
roll $5,%ebp
|
|
addl %edi,%edx
|
|
xorl %ebx,%esi
|
|
rorl $7,%eax
|
|
addl %ebp,%edx
|
|
addl 32(%rsp),%ecx
|
|
xorl %eax,%esi
|
|
movl %edx,%edi
|
|
.byte 102,15,56,0,214
|
|
roll $5,%edx
|
|
addl %esi,%ecx
|
|
xorl %eax,%edi
|
|
rorl $7,%ebp
|
|
paddd %xmm9,%xmm1
|
|
addl %edx,%ecx
|
|
addl 36(%rsp),%ebx
|
|
xorl %ebp,%edi
|
|
movl %ecx,%esi
|
|
movdqa %xmm1,16(%rsp)
|
|
roll $5,%ecx
|
|
addl %edi,%ebx
|
|
xorl %ebp,%esi
|
|
rorl $7,%edx
|
|
psubd %xmm9,%xmm1
|
|
addl %ecx,%ebx
|
|
addl 40(%rsp),%eax
|
|
xorl %edx,%esi
|
|
movl %ebx,%edi
|
|
roll $5,%ebx
|
|
addl %esi,%eax
|
|
xorl %edx,%edi
|
|
rorl $7,%ecx
|
|
addl %ebx,%eax
|
|
addl 44(%rsp),%ebp
|
|
xorl %ecx,%edi
|
|
movl %eax,%esi
|
|
roll $5,%eax
|
|
addl %edi,%ebp
|
|
xorl %ecx,%esi
|
|
rorl $7,%ebx
|
|
addl %eax,%ebp
|
|
addl 48(%rsp),%edx
|
|
xorl %ebx,%esi
|
|
movl %ebp,%edi
|
|
.byte 102,15,56,0,222
|
|
roll $5,%ebp
|
|
addl %esi,%edx
|
|
xorl %ebx,%edi
|
|
rorl $7,%eax
|
|
paddd %xmm9,%xmm2
|
|
addl %ebp,%edx
|
|
addl 52(%rsp),%ecx
|
|
xorl %eax,%edi
|
|
movl %edx,%esi
|
|
movdqa %xmm2,32(%rsp)
|
|
roll $5,%edx
|
|
addl %edi,%ecx
|
|
xorl %eax,%esi
|
|
rorl $7,%ebp
|
|
psubd %xmm9,%xmm2
|
|
addl %edx,%ecx
|
|
addl 56(%rsp),%ebx
|
|
xorl %ebp,%esi
|
|
movl %ecx,%edi
|
|
roll $5,%ecx
|
|
addl %esi,%ebx
|
|
xorl %ebp,%edi
|
|
rorl $7,%edx
|
|
addl %ecx,%ebx
|
|
addl 60(%rsp),%eax
|
|
xorl %edx,%edi
|
|
movl %ebx,%esi
|
|
roll $5,%ebx
|
|
addl %edi,%eax
|
|
rorl $7,%ecx
|
|
addl %ebx,%eax
|
|
addl 0(%r8),%eax
|
|
addl 4(%r8),%esi
|
|
addl 8(%r8),%ecx
|
|
addl 12(%r8),%edx
|
|
movl %eax,0(%r8)
|
|
addl 16(%r8),%ebp
|
|
movl %esi,4(%r8)
|
|
movl %esi,%ebx
|
|
movl %ecx,8(%r8)
|
|
movl %ecx,%edi
|
|
movl %edx,12(%r8)
|
|
xorl %edx,%edi
|
|
movl %ebp,16(%r8)
|
|
andl %edi,%esi
|
|
jmp .Loop_ssse3
|
|
|
|
.align 16
|
|
.Ldone_ssse3:
|
|
addl 16(%rsp),%ebx
|
|
xorl %ebp,%esi
|
|
movl %ecx,%edi
|
|
roll $5,%ecx
|
|
addl %esi,%ebx
|
|
xorl %ebp,%edi
|
|
rorl $7,%edx
|
|
addl %ecx,%ebx
|
|
addl 20(%rsp),%eax
|
|
xorl %edx,%edi
|
|
movl %ebx,%esi
|
|
roll $5,%ebx
|
|
addl %edi,%eax
|
|
xorl %edx,%esi
|
|
rorl $7,%ecx
|
|
addl %ebx,%eax
|
|
addl 24(%rsp),%ebp
|
|
xorl %ecx,%esi
|
|
movl %eax,%edi
|
|
roll $5,%eax
|
|
addl %esi,%ebp
|
|
xorl %ecx,%edi
|
|
rorl $7,%ebx
|
|
addl %eax,%ebp
|
|
addl 28(%rsp),%edx
|
|
xorl %ebx,%edi
|
|
movl %ebp,%esi
|
|
roll $5,%ebp
|
|
addl %edi,%edx
|
|
xorl %ebx,%esi
|
|
rorl $7,%eax
|
|
addl %ebp,%edx
|
|
addl 32(%rsp),%ecx
|
|
xorl %eax,%esi
|
|
movl %edx,%edi
|
|
roll $5,%edx
|
|
addl %esi,%ecx
|
|
xorl %eax,%edi
|
|
rorl $7,%ebp
|
|
addl %edx,%ecx
|
|
addl 36(%rsp),%ebx
|
|
xorl %ebp,%edi
|
|
movl %ecx,%esi
|
|
roll $5,%ecx
|
|
addl %edi,%ebx
|
|
xorl %ebp,%esi
|
|
rorl $7,%edx
|
|
addl %ecx,%ebx
|
|
addl 40(%rsp),%eax
|
|
xorl %edx,%esi
|
|
movl %ebx,%edi
|
|
roll $5,%ebx
|
|
addl %esi,%eax
|
|
xorl %edx,%edi
|
|
rorl $7,%ecx
|
|
addl %ebx,%eax
|
|
addl 44(%rsp),%ebp
|
|
xorl %ecx,%edi
|
|
movl %eax,%esi
|
|
roll $5,%eax
|
|
addl %edi,%ebp
|
|
xorl %ecx,%esi
|
|
rorl $7,%ebx
|
|
addl %eax,%ebp
|
|
addl 48(%rsp),%edx
|
|
xorl %ebx,%esi
|
|
movl %ebp,%edi
|
|
roll $5,%ebp
|
|
addl %esi,%edx
|
|
xorl %ebx,%edi
|
|
rorl $7,%eax
|
|
addl %ebp,%edx
|
|
addl 52(%rsp),%ecx
|
|
xorl %eax,%edi
|
|
movl %edx,%esi
|
|
roll $5,%edx
|
|
addl %edi,%ecx
|
|
xorl %eax,%esi
|
|
rorl $7,%ebp
|
|
addl %edx,%ecx
|
|
addl 56(%rsp),%ebx
|
|
xorl %ebp,%esi
|
|
movl %ecx,%edi
|
|
roll $5,%ecx
|
|
addl %esi,%ebx
|
|
xorl %ebp,%edi
|
|
rorl $7,%edx
|
|
addl %ecx,%ebx
|
|
addl 60(%rsp),%eax
|
|
xorl %edx,%edi
|
|
movl %ebx,%esi
|
|
roll $5,%ebx
|
|
addl %edi,%eax
|
|
rorl $7,%ecx
|
|
addl %ebx,%eax
|
|
addl 0(%r8),%eax
|
|
addl 4(%r8),%esi
|
|
addl 8(%r8),%ecx
|
|
movl %eax,0(%r8)
|
|
addl 12(%r8),%edx
|
|
movl %esi,4(%r8)
|
|
addl 16(%r8),%ebp
|
|
movl %ecx,8(%r8)
|
|
movl %edx,12(%r8)
|
|
movl %ebp,16(%r8)
|
|
leaq (%r14),%rsi
|
|
movq -40(%rsi),%r14
|
|
movq -32(%rsi),%r13
|
|
movq -24(%rsi),%r12
|
|
movq -16(%rsi),%rbp
|
|
movq -8(%rsi),%rbx
|
|
leaq (%rsi),%rsp
|
|
.Lepilogue_ssse3:
|
|
.byte 0xf3,0xc3
|
|
.size sha1_block_data_order_ssse3,.-sha1_block_data_order_ssse3
|
|
.type sha1_block_data_order_avx,@function
|
|
.align 16
|
|
sha1_block_data_order_avx:
|
|
_avx_shortcut:
|
|
movq %rsp,%rax
|
|
pushq %rbx
|
|
pushq %rbp
|
|
pushq %r12
|
|
pushq %r13
|
|
pushq %r14
|
|
leaq -64(%rsp),%rsp
|
|
vzeroupper
|
|
movq %rax,%r14
|
|
andq $-64,%rsp
|
|
movq %rdi,%r8
|
|
movq %rsi,%r9
|
|
movq %rdx,%r10
|
|
|
|
shlq $6,%r10
|
|
addq %r9,%r10
|
|
leaq K_XX_XX+64(%rip),%r11
|
|
|
|
movl 0(%r8),%eax
|
|
movl 4(%r8),%ebx
|
|
movl 8(%r8),%ecx
|
|
movl 12(%r8),%edx
|
|
movl %ebx,%esi
|
|
movl 16(%r8),%ebp
|
|
movl %ecx,%edi
|
|
xorl %edx,%edi
|
|
andl %edi,%esi
|
|
|
|
vmovdqa 64(%r11),%xmm6
|
|
vmovdqa -64(%r11),%xmm11
|
|
vmovdqu 0(%r9),%xmm0
|
|
vmovdqu 16(%r9),%xmm1
|
|
vmovdqu 32(%r9),%xmm2
|
|
vmovdqu 48(%r9),%xmm3
|
|
vpshufb %xmm6,%xmm0,%xmm0
|
|
addq $64,%r9
|
|
vpshufb %xmm6,%xmm1,%xmm1
|
|
vpshufb %xmm6,%xmm2,%xmm2
|
|
vpshufb %xmm6,%xmm3,%xmm3
|
|
vpaddd %xmm11,%xmm0,%xmm4
|
|
vpaddd %xmm11,%xmm1,%xmm5
|
|
vpaddd %xmm11,%xmm2,%xmm6
|
|
vmovdqa %xmm4,0(%rsp)
|
|
vmovdqa %xmm5,16(%rsp)
|
|
vmovdqa %xmm6,32(%rsp)
|
|
jmp .Loop_avx
|
|
.align 16
|
|
.Loop_avx:
|
|
shrdl $2,%ebx,%ebx
|
|
xorl %edx,%esi
|
|
vpalignr $8,%xmm0,%xmm1,%xmm4
|
|
movl %eax,%edi
|
|
addl 0(%rsp),%ebp
|
|
vpaddd %xmm3,%xmm11,%xmm9
|
|
xorl %ecx,%ebx
|
|
shldl $5,%eax,%eax
|
|
vpsrldq $4,%xmm3,%xmm8
|
|
addl %esi,%ebp
|
|
andl %ebx,%edi
|
|
vpxor %xmm0,%xmm4,%xmm4
|
|
xorl %ecx,%ebx
|
|
addl %eax,%ebp
|
|
vpxor %xmm2,%xmm8,%xmm8
|
|
shrdl $7,%eax,%eax
|
|
xorl %ecx,%edi
|
|
movl %ebp,%esi
|
|
addl 4(%rsp),%edx
|
|
vpxor %xmm8,%xmm4,%xmm4
|
|
xorl %ebx,%eax
|
|
shldl $5,%ebp,%ebp
|
|
vmovdqa %xmm9,48(%rsp)
|
|
addl %edi,%edx
|
|
andl %eax,%esi
|
|
vpsrld $31,%xmm4,%xmm8
|
|
xorl %ebx,%eax
|
|
addl %ebp,%edx
|
|
shrdl $7,%ebp,%ebp
|
|
xorl %ebx,%esi
|
|
vpslldq $12,%xmm4,%xmm10
|
|
vpaddd %xmm4,%xmm4,%xmm4
|
|
movl %edx,%edi
|
|
addl 8(%rsp),%ecx
|
|
xorl %eax,%ebp
|
|
shldl $5,%edx,%edx
|
|
vpsrld $30,%xmm10,%xmm9
|
|
vpor %xmm8,%xmm4,%xmm4
|
|
addl %esi,%ecx
|
|
andl %ebp,%edi
|
|
xorl %eax,%ebp
|
|
addl %edx,%ecx
|
|
vpslld $2,%xmm10,%xmm10
|
|
vpxor %xmm9,%xmm4,%xmm4
|
|
shrdl $7,%edx,%edx
|
|
xorl %eax,%edi
|
|
movl %ecx,%esi
|
|
addl 12(%rsp),%ebx
|
|
vpxor %xmm10,%xmm4,%xmm4
|
|
xorl %ebp,%edx
|
|
shldl $5,%ecx,%ecx
|
|
addl %edi,%ebx
|
|
andl %edx,%esi
|
|
xorl %ebp,%edx
|
|
addl %ecx,%ebx
|
|
shrdl $7,%ecx,%ecx
|
|
xorl %ebp,%esi
|
|
vpalignr $8,%xmm1,%xmm2,%xmm5
|
|
movl %ebx,%edi
|
|
addl 16(%rsp),%eax
|
|
vpaddd %xmm4,%xmm11,%xmm9
|
|
xorl %edx,%ecx
|
|
shldl $5,%ebx,%ebx
|
|
vpsrldq $4,%xmm4,%xmm8
|
|
addl %esi,%eax
|
|
andl %ecx,%edi
|
|
vpxor %xmm1,%xmm5,%xmm5
|
|
xorl %edx,%ecx
|
|
addl %ebx,%eax
|
|
vpxor %xmm3,%xmm8,%xmm8
|
|
shrdl $7,%ebx,%ebx
|
|
xorl %edx,%edi
|
|
movl %eax,%esi
|
|
addl 20(%rsp),%ebp
|
|
vpxor %xmm8,%xmm5,%xmm5
|
|
xorl %ecx,%ebx
|
|
shldl $5,%eax,%eax
|
|
vmovdqa %xmm9,0(%rsp)
|
|
addl %edi,%ebp
|
|
andl %ebx,%esi
|
|
vpsrld $31,%xmm5,%xmm8
|
|
xorl %ecx,%ebx
|
|
addl %eax,%ebp
|
|
shrdl $7,%eax,%eax
|
|
xorl %ecx,%esi
|
|
vpslldq $12,%xmm5,%xmm10
|
|
vpaddd %xmm5,%xmm5,%xmm5
|
|
movl %ebp,%edi
|
|
addl 24(%rsp),%edx
|
|
xorl %ebx,%eax
|
|
shldl $5,%ebp,%ebp
|
|
vpsrld $30,%xmm10,%xmm9
|
|
vpor %xmm8,%xmm5,%xmm5
|
|
addl %esi,%edx
|
|
andl %eax,%edi
|
|
xorl %ebx,%eax
|
|
addl %ebp,%edx
|
|
vpslld $2,%xmm10,%xmm10
|
|
vpxor %xmm9,%xmm5,%xmm5
|
|
shrdl $7,%ebp,%ebp
|
|
xorl %ebx,%edi
|
|
movl %edx,%esi
|
|
addl 28(%rsp),%ecx
|
|
vpxor %xmm10,%xmm5,%xmm5
|
|
xorl %eax,%ebp
|
|
shldl $5,%edx,%edx
|
|
vmovdqa -32(%r11),%xmm11
|
|
addl %edi,%ecx
|
|
andl %ebp,%esi
|
|
xorl %eax,%ebp
|
|
addl %edx,%ecx
|
|
shrdl $7,%edx,%edx
|
|
xorl %eax,%esi
|
|
vpalignr $8,%xmm2,%xmm3,%xmm6
|
|
movl %ecx,%edi
|
|
addl 32(%rsp),%ebx
|
|
vpaddd %xmm5,%xmm11,%xmm9
|
|
xorl %ebp,%edx
|
|
shldl $5,%ecx,%ecx
|
|
vpsrldq $4,%xmm5,%xmm8
|
|
addl %esi,%ebx
|
|
andl %edx,%edi
|
|
vpxor %xmm2,%xmm6,%xmm6
|
|
xorl %ebp,%edx
|
|
addl %ecx,%ebx
|
|
vpxor %xmm4,%xmm8,%xmm8
|
|
shrdl $7,%ecx,%ecx
|
|
xorl %ebp,%edi
|
|
movl %ebx,%esi
|
|
addl 36(%rsp),%eax
|
|
vpxor %xmm8,%xmm6,%xmm6
|
|
xorl %edx,%ecx
|
|
shldl $5,%ebx,%ebx
|
|
vmovdqa %xmm9,16(%rsp)
|
|
addl %edi,%eax
|
|
andl %ecx,%esi
|
|
vpsrld $31,%xmm6,%xmm8
|
|
xorl %edx,%ecx
|
|
addl %ebx,%eax
|
|
shrdl $7,%ebx,%ebx
|
|
xorl %edx,%esi
|
|
vpslldq $12,%xmm6,%xmm10
|
|
vpaddd %xmm6,%xmm6,%xmm6
|
|
movl %eax,%edi
|
|
addl 40(%rsp),%ebp
|
|
xorl %ecx,%ebx
|
|
shldl $5,%eax,%eax
|
|
vpsrld $30,%xmm10,%xmm9
|
|
vpor %xmm8,%xmm6,%xmm6
|
|
addl %esi,%ebp
|
|
andl %ebx,%edi
|
|
xorl %ecx,%ebx
|
|
addl %eax,%ebp
|
|
vpslld $2,%xmm10,%xmm10
|
|
vpxor %xmm9,%xmm6,%xmm6
|
|
shrdl $7,%eax,%eax
|
|
xorl %ecx,%edi
|
|
movl %ebp,%esi
|
|
addl 44(%rsp),%edx
|
|
vpxor %xmm10,%xmm6,%xmm6
|
|
xorl %ebx,%eax
|
|
shldl $5,%ebp,%ebp
|
|
addl %edi,%edx
|
|
andl %eax,%esi
|
|
xorl %ebx,%eax
|
|
addl %ebp,%edx
|
|
shrdl $7,%ebp,%ebp
|
|
xorl %ebx,%esi
|
|
vpalignr $8,%xmm3,%xmm4,%xmm7
|
|
movl %edx,%edi
|
|
addl 48(%rsp),%ecx
|
|
vpaddd %xmm6,%xmm11,%xmm9
|
|
xorl %eax,%ebp
|
|
shldl $5,%edx,%edx
|
|
vpsrldq $4,%xmm6,%xmm8
|
|
addl %esi,%ecx
|
|
andl %ebp,%edi
|
|
vpxor %xmm3,%xmm7,%xmm7
|
|
xorl %eax,%ebp
|
|
addl %edx,%ecx
|
|
vpxor %xmm5,%xmm8,%xmm8
|
|
shrdl $7,%edx,%edx
|
|
xorl %eax,%edi
|
|
movl %ecx,%esi
|
|
addl 52(%rsp),%ebx
|
|
vpxor %xmm8,%xmm7,%xmm7
|
|
xorl %ebp,%edx
|
|
shldl $5,%ecx,%ecx
|
|
vmovdqa %xmm9,32(%rsp)
|
|
addl %edi,%ebx
|
|
andl %edx,%esi
|
|
vpsrld $31,%xmm7,%xmm8
|
|
xorl %ebp,%edx
|
|
addl %ecx,%ebx
|
|
shrdl $7,%ecx,%ecx
|
|
xorl %ebp,%esi
|
|
vpslldq $12,%xmm7,%xmm10
|
|
vpaddd %xmm7,%xmm7,%xmm7
|
|
movl %ebx,%edi
|
|
addl 56(%rsp),%eax
|
|
xorl %edx,%ecx
|
|
shldl $5,%ebx,%ebx
|
|
vpsrld $30,%xmm10,%xmm9
|
|
vpor %xmm8,%xmm7,%xmm7
|
|
addl %esi,%eax
|
|
andl %ecx,%edi
|
|
xorl %edx,%ecx
|
|
addl %ebx,%eax
|
|
vpslld $2,%xmm10,%xmm10
|
|
vpxor %xmm9,%xmm7,%xmm7
|
|
shrdl $7,%ebx,%ebx
|
|
xorl %edx,%edi
|
|
movl %eax,%esi
|
|
addl 60(%rsp),%ebp
|
|
vpxor %xmm10,%xmm7,%xmm7
|
|
xorl %ecx,%ebx
|
|
shldl $5,%eax,%eax
|
|
addl %edi,%ebp
|
|
andl %ebx,%esi
|
|
xorl %ecx,%ebx
|
|
addl %eax,%ebp
|
|
vpalignr $8,%xmm6,%xmm7,%xmm8
|
|
vpxor %xmm4,%xmm0,%xmm0
|
|
shrdl $7,%eax,%eax
|
|
xorl %ecx,%esi
|
|
movl %ebp,%edi
|
|
addl 0(%rsp),%edx
|
|
vpxor %xmm1,%xmm0,%xmm0
|
|
xorl %ebx,%eax
|
|
shldl $5,%ebp,%ebp
|
|
vpaddd %xmm7,%xmm11,%xmm9
|
|
addl %esi,%edx
|
|
andl %eax,%edi
|
|
vpxor %xmm8,%xmm0,%xmm0
|
|
xorl %ebx,%eax
|
|
addl %ebp,%edx
|
|
shrdl $7,%ebp,%ebp
|
|
xorl %ebx,%edi
|
|
vpsrld $30,%xmm0,%xmm8
|
|
vmovdqa %xmm9,48(%rsp)
|
|
movl %edx,%esi
|
|
addl 4(%rsp),%ecx
|
|
xorl %eax,%ebp
|
|
shldl $5,%edx,%edx
|
|
vpslld $2,%xmm0,%xmm0
|
|
addl %edi,%ecx
|
|
andl %ebp,%esi
|
|
xorl %eax,%ebp
|
|
addl %edx,%ecx
|
|
shrdl $7,%edx,%edx
|
|
xorl %eax,%esi
|
|
movl %ecx,%edi
|
|
addl 8(%rsp),%ebx
|
|
vpor %xmm8,%xmm0,%xmm0
|
|
xorl %ebp,%edx
|
|
shldl $5,%ecx,%ecx
|
|
addl %esi,%ebx
|
|
andl %edx,%edi
|
|
xorl %ebp,%edx
|
|
addl %ecx,%ebx
|
|
addl 12(%rsp),%eax
|
|
xorl %ebp,%edi
|
|
movl %ebx,%esi
|
|
shldl $5,%ebx,%ebx
|
|
addl %edi,%eax
|
|
xorl %edx,%esi
|
|
shrdl $7,%ecx,%ecx
|
|
addl %ebx,%eax
|
|
vpalignr $8,%xmm7,%xmm0,%xmm8
|
|
vpxor %xmm5,%xmm1,%xmm1
|
|
addl 16(%rsp),%ebp
|
|
xorl %ecx,%esi
|
|
movl %eax,%edi
|
|
shldl $5,%eax,%eax
|
|
vpxor %xmm2,%xmm1,%xmm1
|
|
addl %esi,%ebp
|
|
xorl %ecx,%edi
|
|
vpaddd %xmm0,%xmm11,%xmm9
|
|
shrdl $7,%ebx,%ebx
|
|
addl %eax,%ebp
|
|
vpxor %xmm8,%xmm1,%xmm1
|
|
addl 20(%rsp),%edx
|
|
xorl %ebx,%edi
|
|
movl %ebp,%esi
|
|
shldl $5,%ebp,%ebp
|
|
vpsrld $30,%xmm1,%xmm8
|
|
vmovdqa %xmm9,0(%rsp)
|
|
addl %edi,%edx
|
|
xorl %ebx,%esi
|
|
shrdl $7,%eax,%eax
|
|
addl %ebp,%edx
|
|
vpslld $2,%xmm1,%xmm1
|
|
addl 24(%rsp),%ecx
|
|
xorl %eax,%esi
|
|
movl %edx,%edi
|
|
shldl $5,%edx,%edx
|
|
addl %esi,%ecx
|
|
xorl %eax,%edi
|
|
shrdl $7,%ebp,%ebp
|
|
addl %edx,%ecx
|
|
vpor %xmm8,%xmm1,%xmm1
|
|
addl 28(%rsp),%ebx
|
|
xorl %ebp,%edi
|
|
movl %ecx,%esi
|
|
shldl $5,%ecx,%ecx
|
|
addl %edi,%ebx
|
|
xorl %ebp,%esi
|
|
shrdl $7,%edx,%edx
|
|
addl %ecx,%ebx
|
|
vpalignr $8,%xmm0,%xmm1,%xmm8
|
|
vpxor %xmm6,%xmm2,%xmm2
|
|
addl 32(%rsp),%eax
|
|
xorl %edx,%esi
|
|
movl %ebx,%edi
|
|
shldl $5,%ebx,%ebx
|
|
vpxor %xmm3,%xmm2,%xmm2
|
|
addl %esi,%eax
|
|
xorl %edx,%edi
|
|
vpaddd %xmm1,%xmm11,%xmm9
|
|
vmovdqa 0(%r11),%xmm11
|
|
shrdl $7,%ecx,%ecx
|
|
addl %ebx,%eax
|
|
vpxor %xmm8,%xmm2,%xmm2
|
|
addl 36(%rsp),%ebp
|
|
xorl %ecx,%edi
|
|
movl %eax,%esi
|
|
shldl $5,%eax,%eax
|
|
vpsrld $30,%xmm2,%xmm8
|
|
vmovdqa %xmm9,16(%rsp)
|
|
addl %edi,%ebp
|
|
xorl %ecx,%esi
|
|
shrdl $7,%ebx,%ebx
|
|
addl %eax,%ebp
|
|
vpslld $2,%xmm2,%xmm2
|
|
addl 40(%rsp),%edx
|
|
xorl %ebx,%esi
|
|
movl %ebp,%edi
|
|
shldl $5,%ebp,%ebp
|
|
addl %esi,%edx
|
|
xorl %ebx,%edi
|
|
shrdl $7,%eax,%eax
|
|
addl %ebp,%edx
|
|
vpor %xmm8,%xmm2,%xmm2
|
|
addl 44(%rsp),%ecx
|
|
xorl %eax,%edi
|
|
movl %edx,%esi
|
|
shldl $5,%edx,%edx
|
|
addl %edi,%ecx
|
|
xorl %eax,%esi
|
|
shrdl $7,%ebp,%ebp
|
|
addl %edx,%ecx
|
|
vpalignr $8,%xmm1,%xmm2,%xmm8
|
|
vpxor %xmm7,%xmm3,%xmm3
|
|
addl 48(%rsp),%ebx
|
|
xorl %ebp,%esi
|
|
movl %ecx,%edi
|
|
shldl $5,%ecx,%ecx
|
|
vpxor %xmm4,%xmm3,%xmm3
|
|
addl %esi,%ebx
|
|
xorl %ebp,%edi
|
|
vpaddd %xmm2,%xmm11,%xmm9
|
|
shrdl $7,%edx,%edx
|
|
addl %ecx,%ebx
|
|
vpxor %xmm8,%xmm3,%xmm3
|
|
addl 52(%rsp),%eax
|
|
xorl %edx,%edi
|
|
movl %ebx,%esi
|
|
shldl $5,%ebx,%ebx
|
|
vpsrld $30,%xmm3,%xmm8
|
|
vmovdqa %xmm9,32(%rsp)
|
|
addl %edi,%eax
|
|
xorl %edx,%esi
|
|
shrdl $7,%ecx,%ecx
|
|
addl %ebx,%eax
|
|
vpslld $2,%xmm3,%xmm3
|
|
addl 56(%rsp),%ebp
|
|
xorl %ecx,%esi
|
|
movl %eax,%edi
|
|
shldl $5,%eax,%eax
|
|
addl %esi,%ebp
|
|
xorl %ecx,%edi
|
|
shrdl $7,%ebx,%ebx
|
|
addl %eax,%ebp
|
|
vpor %xmm8,%xmm3,%xmm3
|
|
addl 60(%rsp),%edx
|
|
xorl %ebx,%edi
|
|
movl %ebp,%esi
|
|
shldl $5,%ebp,%ebp
|
|
addl %edi,%edx
|
|
xorl %ebx,%esi
|
|
shrdl $7,%eax,%eax
|
|
addl %ebp,%edx
|
|
vpalignr $8,%xmm2,%xmm3,%xmm8
|
|
vpxor %xmm0,%xmm4,%xmm4
|
|
addl 0(%rsp),%ecx
|
|
xorl %eax,%esi
|
|
movl %edx,%edi
|
|
shldl $5,%edx,%edx
|
|
vpxor %xmm5,%xmm4,%xmm4
|
|
addl %esi,%ecx
|
|
xorl %eax,%edi
|
|
vpaddd %xmm3,%xmm11,%xmm9
|
|
shrdl $7,%ebp,%ebp
|
|
addl %edx,%ecx
|
|
vpxor %xmm8,%xmm4,%xmm4
|
|
addl 4(%rsp),%ebx
|
|
xorl %ebp,%edi
|
|
movl %ecx,%esi
|
|
shldl $5,%ecx,%ecx
|
|
vpsrld $30,%xmm4,%xmm8
|
|
vmovdqa %xmm9,48(%rsp)
|
|
addl %edi,%ebx
|
|
xorl %ebp,%esi
|
|
shrdl $7,%edx,%edx
|
|
addl %ecx,%ebx
|
|
vpslld $2,%xmm4,%xmm4
|
|
addl 8(%rsp),%eax
|
|
xorl %edx,%esi
|
|
movl %ebx,%edi
|
|
shldl $5,%ebx,%ebx
|
|
addl %esi,%eax
|
|
xorl %edx,%edi
|
|
shrdl $7,%ecx,%ecx
|
|
addl %ebx,%eax
|
|
vpor %xmm8,%xmm4,%xmm4
|
|
addl 12(%rsp),%ebp
|
|
xorl %ecx,%edi
|
|
movl %eax,%esi
|
|
shldl $5,%eax,%eax
|
|
addl %edi,%ebp
|
|
xorl %ecx,%esi
|
|
shrdl $7,%ebx,%ebx
|
|
addl %eax,%ebp
|
|
vpalignr $8,%xmm3,%xmm4,%xmm8
|
|
vpxor %xmm1,%xmm5,%xmm5
|
|
addl 16(%rsp),%edx
|
|
xorl %ebx,%esi
|
|
movl %ebp,%edi
|
|
shldl $5,%ebp,%ebp
|
|
vpxor %xmm6,%xmm5,%xmm5
|
|
addl %esi,%edx
|
|
xorl %ebx,%edi
|
|
vpaddd %xmm4,%xmm11,%xmm9
|
|
shrdl $7,%eax,%eax
|
|
addl %ebp,%edx
|
|
vpxor %xmm8,%xmm5,%xmm5
|
|
addl 20(%rsp),%ecx
|
|
xorl %eax,%edi
|
|
movl %edx,%esi
|
|
shldl $5,%edx,%edx
|
|
vpsrld $30,%xmm5,%xmm8
|
|
vmovdqa %xmm9,0(%rsp)
|
|
addl %edi,%ecx
|
|
xorl %eax,%esi
|
|
shrdl $7,%ebp,%ebp
|
|
addl %edx,%ecx
|
|
vpslld $2,%xmm5,%xmm5
|
|
addl 24(%rsp),%ebx
|
|
xorl %ebp,%esi
|
|
movl %ecx,%edi
|
|
shldl $5,%ecx,%ecx
|
|
addl %esi,%ebx
|
|
xorl %ebp,%edi
|
|
shrdl $7,%edx,%edx
|
|
addl %ecx,%ebx
|
|
vpor %xmm8,%xmm5,%xmm5
|
|
addl 28(%rsp),%eax
|
|
shrdl $7,%ecx,%ecx
|
|
movl %ebx,%esi
|
|
xorl %edx,%edi
|
|
shldl $5,%ebx,%ebx
|
|
addl %edi,%eax
|
|
xorl %ecx,%esi
|
|
xorl %edx,%ecx
|
|
addl %ebx,%eax
|
|
vpalignr $8,%xmm4,%xmm5,%xmm8
|
|
vpxor %xmm2,%xmm6,%xmm6
|
|
addl 32(%rsp),%ebp
|
|
andl %ecx,%esi
|
|
xorl %edx,%ecx
|
|
shrdl $7,%ebx,%ebx
|
|
vpxor %xmm7,%xmm6,%xmm6
|
|
movl %eax,%edi
|
|
xorl %ecx,%esi
|
|
vpaddd %xmm5,%xmm11,%xmm9
|
|
shldl $5,%eax,%eax
|
|
addl %esi,%ebp
|
|
vpxor %xmm8,%xmm6,%xmm6
|
|
xorl %ebx,%edi
|
|
xorl %ecx,%ebx
|
|
addl %eax,%ebp
|
|
addl 36(%rsp),%edx
|
|
vpsrld $30,%xmm6,%xmm8
|
|
vmovdqa %xmm9,16(%rsp)
|
|
andl %ebx,%edi
|
|
xorl %ecx,%ebx
|
|
shrdl $7,%eax,%eax
|
|
movl %ebp,%esi
|
|
vpslld $2,%xmm6,%xmm6
|
|
xorl %ebx,%edi
|
|
shldl $5,%ebp,%ebp
|
|
addl %edi,%edx
|
|
xorl %eax,%esi
|
|
xorl %ebx,%eax
|
|
addl %ebp,%edx
|
|
addl 40(%rsp),%ecx
|
|
andl %eax,%esi
|
|
vpor %xmm8,%xmm6,%xmm6
|
|
xorl %ebx,%eax
|
|
shrdl $7,%ebp,%ebp
|
|
movl %edx,%edi
|
|
xorl %eax,%esi
|
|
shldl $5,%edx,%edx
|
|
addl %esi,%ecx
|
|
xorl %ebp,%edi
|
|
xorl %eax,%ebp
|
|
addl %edx,%ecx
|
|
addl 44(%rsp),%ebx
|
|
andl %ebp,%edi
|
|
xorl %eax,%ebp
|
|
shrdl $7,%edx,%edx
|
|
movl %ecx,%esi
|
|
xorl %ebp,%edi
|
|
shldl $5,%ecx,%ecx
|
|
addl %edi,%ebx
|
|
xorl %edx,%esi
|
|
xorl %ebp,%edx
|
|
addl %ecx,%ebx
|
|
vpalignr $8,%xmm5,%xmm6,%xmm8
|
|
vpxor %xmm3,%xmm7,%xmm7
|
|
addl 48(%rsp),%eax
|
|
andl %edx,%esi
|
|
xorl %ebp,%edx
|
|
shrdl $7,%ecx,%ecx
|
|
vpxor %xmm0,%xmm7,%xmm7
|
|
movl %ebx,%edi
|
|
xorl %edx,%esi
|
|
vpaddd %xmm6,%xmm11,%xmm9
|
|
vmovdqa 32(%r11),%xmm11
|
|
shldl $5,%ebx,%ebx
|
|
addl %esi,%eax
|
|
vpxor %xmm8,%xmm7,%xmm7
|
|
xorl %ecx,%edi
|
|
xorl %edx,%ecx
|
|
addl %ebx,%eax
|
|
addl 52(%rsp),%ebp
|
|
vpsrld $30,%xmm7,%xmm8
|
|
vmovdqa %xmm9,32(%rsp)
|
|
andl %ecx,%edi
|
|
xorl %edx,%ecx
|
|
shrdl $7,%ebx,%ebx
|
|
movl %eax,%esi
|
|
vpslld $2,%xmm7,%xmm7
|
|
xorl %ecx,%edi
|
|
shldl $5,%eax,%eax
|
|
addl %edi,%ebp
|
|
xorl %ebx,%esi
|
|
xorl %ecx,%ebx
|
|
addl %eax,%ebp
|
|
addl 56(%rsp),%edx
|
|
andl %ebx,%esi
|
|
vpor %xmm8,%xmm7,%xmm7
|
|
xorl %ecx,%ebx
|
|
shrdl $7,%eax,%eax
|
|
movl %ebp,%edi
|
|
xorl %ebx,%esi
|
|
shldl $5,%ebp,%ebp
|
|
addl %esi,%edx
|
|
xorl %eax,%edi
|
|
xorl %ebx,%eax
|
|
addl %ebp,%edx
|
|
addl 60(%rsp),%ecx
|
|
andl %eax,%edi
|
|
xorl %ebx,%eax
|
|
shrdl $7,%ebp,%ebp
|
|
movl %edx,%esi
|
|
xorl %eax,%edi
|
|
shldl $5,%edx,%edx
|
|
addl %edi,%ecx
|
|
xorl %ebp,%esi
|
|
xorl %eax,%ebp
|
|
addl %edx,%ecx
|
|
vpalignr $8,%xmm6,%xmm7,%xmm8
|
|
vpxor %xmm4,%xmm0,%xmm0
|
|
addl 0(%rsp),%ebx
|
|
andl %ebp,%esi
|
|
xorl %eax,%ebp
|
|
shrdl $7,%edx,%edx
|
|
vpxor %xmm1,%xmm0,%xmm0
|
|
movl %ecx,%edi
|
|
xorl %ebp,%esi
|
|
vpaddd %xmm7,%xmm11,%xmm9
|
|
shldl $5,%ecx,%ecx
|
|
addl %esi,%ebx
|
|
vpxor %xmm8,%xmm0,%xmm0
|
|
xorl %edx,%edi
|
|
xorl %ebp,%edx
|
|
addl %ecx,%ebx
|
|
addl 4(%rsp),%eax
|
|
vpsrld $30,%xmm0,%xmm8
|
|
vmovdqa %xmm9,48(%rsp)
|
|
andl %edx,%edi
|
|
xorl %ebp,%edx
|
|
shrdl $7,%ecx,%ecx
|
|
movl %ebx,%esi
|
|
vpslld $2,%xmm0,%xmm0
|
|
xorl %edx,%edi
|
|
shldl $5,%ebx,%ebx
|
|
addl %edi,%eax
|
|
xorl %ecx,%esi
|
|
xorl %edx,%ecx
|
|
addl %ebx,%eax
|
|
addl 8(%rsp),%ebp
|
|
andl %ecx,%esi
|
|
vpor %xmm8,%xmm0,%xmm0
|
|
xorl %edx,%ecx
|
|
shrdl $7,%ebx,%ebx
|
|
movl %eax,%edi
|
|
xorl %ecx,%esi
|
|
shldl $5,%eax,%eax
|
|
addl %esi,%ebp
|
|
xorl %ebx,%edi
|
|
xorl %ecx,%ebx
|
|
addl %eax,%ebp
|
|
addl 12(%rsp),%edx
|
|
andl %ebx,%edi
|
|
xorl %ecx,%ebx
|
|
shrdl $7,%eax,%eax
|
|
movl %ebp,%esi
|
|
xorl %ebx,%edi
|
|
shldl $5,%ebp,%ebp
|
|
addl %edi,%edx
|
|
xorl %eax,%esi
|
|
xorl %ebx,%eax
|
|
addl %ebp,%edx
|
|
vpalignr $8,%xmm7,%xmm0,%xmm8
|
|
vpxor %xmm5,%xmm1,%xmm1
|
|
addl 16(%rsp),%ecx
|
|
andl %eax,%esi
|
|
xorl %ebx,%eax
|
|
shrdl $7,%ebp,%ebp
|
|
vpxor %xmm2,%xmm1,%xmm1
|
|
movl %edx,%edi
|
|
xorl %eax,%esi
|
|
vpaddd %xmm0,%xmm11,%xmm9
|
|
shldl $5,%edx,%edx
|
|
addl %esi,%ecx
|
|
vpxor %xmm8,%xmm1,%xmm1
|
|
xorl %ebp,%edi
|
|
xorl %eax,%ebp
|
|
addl %edx,%ecx
|
|
addl 20(%rsp),%ebx
|
|
vpsrld $30,%xmm1,%xmm8
|
|
vmovdqa %xmm9,0(%rsp)
|
|
andl %ebp,%edi
|
|
xorl %eax,%ebp
|
|
shrdl $7,%edx,%edx
|
|
movl %ecx,%esi
|
|
vpslld $2,%xmm1,%xmm1
|
|
xorl %ebp,%edi
|
|
shldl $5,%ecx,%ecx
|
|
addl %edi,%ebx
|
|
xorl %edx,%esi
|
|
xorl %ebp,%edx
|
|
addl %ecx,%ebx
|
|
addl 24(%rsp),%eax
|
|
andl %edx,%esi
|
|
vpor %xmm8,%xmm1,%xmm1
|
|
xorl %ebp,%edx
|
|
shrdl $7,%ecx,%ecx
|
|
movl %ebx,%edi
|
|
xorl %edx,%esi
|
|
shldl $5,%ebx,%ebx
|
|
addl %esi,%eax
|
|
xorl %ecx,%edi
|
|
xorl %edx,%ecx
|
|
addl %ebx,%eax
|
|
addl 28(%rsp),%ebp
|
|
andl %ecx,%edi
|
|
xorl %edx,%ecx
|
|
shrdl $7,%ebx,%ebx
|
|
movl %eax,%esi
|
|
xorl %ecx,%edi
|
|
shldl $5,%eax,%eax
|
|
addl %edi,%ebp
|
|
xorl %ebx,%esi
|
|
xorl %ecx,%ebx
|
|
addl %eax,%ebp
|
|
vpalignr $8,%xmm0,%xmm1,%xmm8
|
|
vpxor %xmm6,%xmm2,%xmm2
|
|
addl 32(%rsp),%edx
|
|
andl %ebx,%esi
|
|
xorl %ecx,%ebx
|
|
shrdl $7,%eax,%eax
|
|
vpxor %xmm3,%xmm2,%xmm2
|
|
movl %ebp,%edi
|
|
xorl %ebx,%esi
|
|
vpaddd %xmm1,%xmm11,%xmm9
|
|
shldl $5,%ebp,%ebp
|
|
addl %esi,%edx
|
|
vpxor %xmm8,%xmm2,%xmm2
|
|
xorl %eax,%edi
|
|
xorl %ebx,%eax
|
|
addl %ebp,%edx
|
|
addl 36(%rsp),%ecx
|
|
vpsrld $30,%xmm2,%xmm8
|
|
vmovdqa %xmm9,16(%rsp)
|
|
andl %eax,%edi
|
|
xorl %ebx,%eax
|
|
shrdl $7,%ebp,%ebp
|
|
movl %edx,%esi
|
|
vpslld $2,%xmm2,%xmm2
|
|
xorl %eax,%edi
|
|
shldl $5,%edx,%edx
|
|
addl %edi,%ecx
|
|
xorl %ebp,%esi
|
|
xorl %eax,%ebp
|
|
addl %edx,%ecx
|
|
addl 40(%rsp),%ebx
|
|
andl %ebp,%esi
|
|
vpor %xmm8,%xmm2,%xmm2
|
|
xorl %eax,%ebp
|
|
shrdl $7,%edx,%edx
|
|
movl %ecx,%edi
|
|
xorl %ebp,%esi
|
|
shldl $5,%ecx,%ecx
|
|
addl %esi,%ebx
|
|
xorl %edx,%edi
|
|
xorl %ebp,%edx
|
|
addl %ecx,%ebx
|
|
addl 44(%rsp),%eax
|
|
andl %edx,%edi
|
|
xorl %ebp,%edx
|
|
shrdl $7,%ecx,%ecx
|
|
movl %ebx,%esi
|
|
xorl %edx,%edi
|
|
shldl $5,%ebx,%ebx
|
|
addl %edi,%eax
|
|
xorl %edx,%esi
|
|
addl %ebx,%eax
|
|
vpalignr $8,%xmm1,%xmm2,%xmm8
|
|
vpxor %xmm7,%xmm3,%xmm3
|
|
addl 48(%rsp),%ebp
|
|
xorl %ecx,%esi
|
|
movl %eax,%edi
|
|
shldl $5,%eax,%eax
|
|
vpxor %xmm4,%xmm3,%xmm3
|
|
addl %esi,%ebp
|
|
xorl %ecx,%edi
|
|
vpaddd %xmm2,%xmm11,%xmm9
|
|
shrdl $7,%ebx,%ebx
|
|
addl %eax,%ebp
|
|
vpxor %xmm8,%xmm3,%xmm3
|
|
addl 52(%rsp),%edx
|
|
xorl %ebx,%edi
|
|
movl %ebp,%esi
|
|
shldl $5,%ebp,%ebp
|
|
vpsrld $30,%xmm3,%xmm8
|
|
vmovdqa %xmm9,32(%rsp)
|
|
addl %edi,%edx
|
|
xorl %ebx,%esi
|
|
shrdl $7,%eax,%eax
|
|
addl %ebp,%edx
|
|
vpslld $2,%xmm3,%xmm3
|
|
addl 56(%rsp),%ecx
|
|
xorl %eax,%esi
|
|
movl %edx,%edi
|
|
shldl $5,%edx,%edx
|
|
addl %esi,%ecx
|
|
xorl %eax,%edi
|
|
shrdl $7,%ebp,%ebp
|
|
addl %edx,%ecx
|
|
vpor %xmm8,%xmm3,%xmm3
|
|
addl 60(%rsp),%ebx
|
|
xorl %ebp,%edi
|
|
movl %ecx,%esi
|
|
shldl $5,%ecx,%ecx
|
|
addl %edi,%ebx
|
|
xorl %ebp,%esi
|
|
shrdl $7,%edx,%edx
|
|
addl %ecx,%ebx
|
|
addl 0(%rsp),%eax
|
|
vpaddd %xmm3,%xmm11,%xmm9
|
|
xorl %edx,%esi
|
|
movl %ebx,%edi
|
|
shldl $5,%ebx,%ebx
|
|
addl %esi,%eax
|
|
vmovdqa %xmm9,48(%rsp)
|
|
xorl %edx,%edi
|
|
shrdl $7,%ecx,%ecx
|
|
addl %ebx,%eax
|
|
addl 4(%rsp),%ebp
|
|
xorl %ecx,%edi
|
|
movl %eax,%esi
|
|
shldl $5,%eax,%eax
|
|
addl %edi,%ebp
|
|
xorl %ecx,%esi
|
|
shrdl $7,%ebx,%ebx
|
|
addl %eax,%ebp
|
|
addl 8(%rsp),%edx
|
|
xorl %ebx,%esi
|
|
movl %ebp,%edi
|
|
shldl $5,%ebp,%ebp
|
|
addl %esi,%edx
|
|
xorl %ebx,%edi
|
|
shrdl $7,%eax,%eax
|
|
addl %ebp,%edx
|
|
addl 12(%rsp),%ecx
|
|
xorl %eax,%edi
|
|
movl %edx,%esi
|
|
shldl $5,%edx,%edx
|
|
addl %edi,%ecx
|
|
xorl %eax,%esi
|
|
shrdl $7,%ebp,%ebp
|
|
addl %edx,%ecx
|
|
cmpq %r10,%r9
|
|
je .Ldone_avx
|
|
vmovdqa 64(%r11),%xmm6
|
|
vmovdqa -64(%r11),%xmm11
|
|
vmovdqu 0(%r9),%xmm0
|
|
vmovdqu 16(%r9),%xmm1
|
|
vmovdqu 32(%r9),%xmm2
|
|
vmovdqu 48(%r9),%xmm3
|
|
vpshufb %xmm6,%xmm0,%xmm0
|
|
addq $64,%r9
|
|
addl 16(%rsp),%ebx
|
|
xorl %ebp,%esi
|
|
vpshufb %xmm6,%xmm1,%xmm1
|
|
movl %ecx,%edi
|
|
shldl $5,%ecx,%ecx
|
|
vpaddd %xmm11,%xmm0,%xmm4
|
|
addl %esi,%ebx
|
|
xorl %ebp,%edi
|
|
shrdl $7,%edx,%edx
|
|
addl %ecx,%ebx
|
|
vmovdqa %xmm4,0(%rsp)
|
|
addl 20(%rsp),%eax
|
|
xorl %edx,%edi
|
|
movl %ebx,%esi
|
|
shldl $5,%ebx,%ebx
|
|
addl %edi,%eax
|
|
xorl %edx,%esi
|
|
shrdl $7,%ecx,%ecx
|
|
addl %ebx,%eax
|
|
addl 24(%rsp),%ebp
|
|
xorl %ecx,%esi
|
|
movl %eax,%edi
|
|
shldl $5,%eax,%eax
|
|
addl %esi,%ebp
|
|
xorl %ecx,%edi
|
|
shrdl $7,%ebx,%ebx
|
|
addl %eax,%ebp
|
|
addl 28(%rsp),%edx
|
|
xorl %ebx,%edi
|
|
movl %ebp,%esi
|
|
shldl $5,%ebp,%ebp
|
|
addl %edi,%edx
|
|
xorl %ebx,%esi
|
|
shrdl $7,%eax,%eax
|
|
addl %ebp,%edx
|
|
addl 32(%rsp),%ecx
|
|
xorl %eax,%esi
|
|
vpshufb %xmm6,%xmm2,%xmm2
|
|
movl %edx,%edi
|
|
shldl $5,%edx,%edx
|
|
vpaddd %xmm11,%xmm1,%xmm5
|
|
addl %esi,%ecx
|
|
xorl %eax,%edi
|
|
shrdl $7,%ebp,%ebp
|
|
addl %edx,%ecx
|
|
vmovdqa %xmm5,16(%rsp)
|
|
addl 36(%rsp),%ebx
|
|
xorl %ebp,%edi
|
|
movl %ecx,%esi
|
|
shldl $5,%ecx,%ecx
|
|
addl %edi,%ebx
|
|
xorl %ebp,%esi
|
|
shrdl $7,%edx,%edx
|
|
addl %ecx,%ebx
|
|
addl 40(%rsp),%eax
|
|
xorl %edx,%esi
|
|
movl %ebx,%edi
|
|
shldl $5,%ebx,%ebx
|
|
addl %esi,%eax
|
|
xorl %edx,%edi
|
|
shrdl $7,%ecx,%ecx
|
|
addl %ebx,%eax
|
|
addl 44(%rsp),%ebp
|
|
xorl %ecx,%edi
|
|
movl %eax,%esi
|
|
shldl $5,%eax,%eax
|
|
addl %edi,%ebp
|
|
xorl %ecx,%esi
|
|
shrdl $7,%ebx,%ebx
|
|
addl %eax,%ebp
|
|
addl 48(%rsp),%edx
|
|
xorl %ebx,%esi
|
|
vpshufb %xmm6,%xmm3,%xmm3
|
|
movl %ebp,%edi
|
|
shldl $5,%ebp,%ebp
|
|
vpaddd %xmm11,%xmm2,%xmm6
|
|
addl %esi,%edx
|
|
xorl %ebx,%edi
|
|
shrdl $7,%eax,%eax
|
|
addl %ebp,%edx
|
|
vmovdqa %xmm6,32(%rsp)
|
|
addl 52(%rsp),%ecx
|
|
xorl %eax,%edi
|
|
movl %edx,%esi
|
|
shldl $5,%edx,%edx
|
|
addl %edi,%ecx
|
|
xorl %eax,%esi
|
|
shrdl $7,%ebp,%ebp
|
|
addl %edx,%ecx
|
|
addl 56(%rsp),%ebx
|
|
xorl %ebp,%esi
|
|
movl %ecx,%edi
|
|
shldl $5,%ecx,%ecx
|
|
addl %esi,%ebx
|
|
xorl %ebp,%edi
|
|
shrdl $7,%edx,%edx
|
|
addl %ecx,%ebx
|
|
addl 60(%rsp),%eax
|
|
xorl %edx,%edi
|
|
movl %ebx,%esi
|
|
shldl $5,%ebx,%ebx
|
|
addl %edi,%eax
|
|
shrdl $7,%ecx,%ecx
|
|
addl %ebx,%eax
|
|
addl 0(%r8),%eax
|
|
addl 4(%r8),%esi
|
|
addl 8(%r8),%ecx
|
|
addl 12(%r8),%edx
|
|
movl %eax,0(%r8)
|
|
addl 16(%r8),%ebp
|
|
movl %esi,4(%r8)
|
|
movl %esi,%ebx
|
|
movl %ecx,8(%r8)
|
|
movl %ecx,%edi
|
|
movl %edx,12(%r8)
|
|
xorl %edx,%edi
|
|
movl %ebp,16(%r8)
|
|
andl %edi,%esi
|
|
jmp .Loop_avx
|
|
|
|
.align 16
|
|
.Ldone_avx:
|
|
addl 16(%rsp),%ebx
|
|
xorl %ebp,%esi
|
|
movl %ecx,%edi
|
|
shldl $5,%ecx,%ecx
|
|
addl %esi,%ebx
|
|
xorl %ebp,%edi
|
|
shrdl $7,%edx,%edx
|
|
addl %ecx,%ebx
|
|
addl 20(%rsp),%eax
|
|
xorl %edx,%edi
|
|
movl %ebx,%esi
|
|
shldl $5,%ebx,%ebx
|
|
addl %edi,%eax
|
|
xorl %edx,%esi
|
|
shrdl $7,%ecx,%ecx
|
|
addl %ebx,%eax
|
|
addl 24(%rsp),%ebp
|
|
xorl %ecx,%esi
|
|
movl %eax,%edi
|
|
shldl $5,%eax,%eax
|
|
addl %esi,%ebp
|
|
xorl %ecx,%edi
|
|
shrdl $7,%ebx,%ebx
|
|
addl %eax,%ebp
|
|
addl 28(%rsp),%edx
|
|
xorl %ebx,%edi
|
|
movl %ebp,%esi
|
|
shldl $5,%ebp,%ebp
|
|
addl %edi,%edx
|
|
xorl %ebx,%esi
|
|
shrdl $7,%eax,%eax
|
|
addl %ebp,%edx
|
|
addl 32(%rsp),%ecx
|
|
xorl %eax,%esi
|
|
movl %edx,%edi
|
|
shldl $5,%edx,%edx
|
|
addl %esi,%ecx
|
|
xorl %eax,%edi
|
|
shrdl $7,%ebp,%ebp
|
|
addl %edx,%ecx
|
|
addl 36(%rsp),%ebx
|
|
xorl %ebp,%edi
|
|
movl %ecx,%esi
|
|
shldl $5,%ecx,%ecx
|
|
addl %edi,%ebx
|
|
xorl %ebp,%esi
|
|
shrdl $7,%edx,%edx
|
|
addl %ecx,%ebx
|
|
addl 40(%rsp),%eax
|
|
xorl %edx,%esi
|
|
movl %ebx,%edi
|
|
shldl $5,%ebx,%ebx
|
|
addl %esi,%eax
|
|
xorl %edx,%edi
|
|
shrdl $7,%ecx,%ecx
|
|
addl %ebx,%eax
|
|
addl 44(%rsp),%ebp
|
|
xorl %ecx,%edi
|
|
movl %eax,%esi
|
|
shldl $5,%eax,%eax
|
|
addl %edi,%ebp
|
|
xorl %ecx,%esi
|
|
shrdl $7,%ebx,%ebx
|
|
addl %eax,%ebp
|
|
addl 48(%rsp),%edx
|
|
xorl %ebx,%esi
|
|
movl %ebp,%edi
|
|
shldl $5,%ebp,%ebp
|
|
addl %esi,%edx
|
|
xorl %ebx,%edi
|
|
shrdl $7,%eax,%eax
|
|
addl %ebp,%edx
|
|
addl 52(%rsp),%ecx
|
|
xorl %eax,%edi
|
|
movl %edx,%esi
|
|
shldl $5,%edx,%edx
|
|
addl %edi,%ecx
|
|
xorl %eax,%esi
|
|
shrdl $7,%ebp,%ebp
|
|
addl %edx,%ecx
|
|
addl 56(%rsp),%ebx
|
|
xorl %ebp,%esi
|
|
movl %ecx,%edi
|
|
shldl $5,%ecx,%ecx
|
|
addl %esi,%ebx
|
|
xorl %ebp,%edi
|
|
shrdl $7,%edx,%edx
|
|
addl %ecx,%ebx
|
|
addl 60(%rsp),%eax
|
|
xorl %edx,%edi
|
|
movl %ebx,%esi
|
|
shldl $5,%ebx,%ebx
|
|
addl %edi,%eax
|
|
shrdl $7,%ecx,%ecx
|
|
addl %ebx,%eax
|
|
vzeroupper
|
|
|
|
addl 0(%r8),%eax
|
|
addl 4(%r8),%esi
|
|
addl 8(%r8),%ecx
|
|
movl %eax,0(%r8)
|
|
addl 12(%r8),%edx
|
|
movl %esi,4(%r8)
|
|
addl 16(%r8),%ebp
|
|
movl %ecx,8(%r8)
|
|
movl %edx,12(%r8)
|
|
movl %ebp,16(%r8)
|
|
leaq (%r14),%rsi
|
|
movq -40(%rsi),%r14
|
|
movq -32(%rsi),%r13
|
|
movq -24(%rsi),%r12
|
|
movq -16(%rsi),%rbp
|
|
movq -8(%rsi),%rbx
|
|
leaq (%rsi),%rsp
|
|
.Lepilogue_avx:
|
|
.byte 0xf3,0xc3
|
|
.size sha1_block_data_order_avx,.-sha1_block_data_order_avx
|
|
.type sha1_block_data_order_avx2,@function
|
|
.align 16
|
|
sha1_block_data_order_avx2:
|
|
_avx2_shortcut:
|
|
movq %rsp,%rax
|
|
pushq %rbx
|
|
pushq %rbp
|
|
pushq %r12
|
|
pushq %r13
|
|
pushq %r14
|
|
vzeroupper
|
|
movq %rax,%r14
|
|
movq %rdi,%r8
|
|
movq %rsi,%r9
|
|
movq %rdx,%r10
|
|
|
|
leaq -640(%rsp),%rsp
|
|
shlq $6,%r10
|
|
leaq 64(%r9),%r13
|
|
andq $-128,%rsp
|
|
addq %r9,%r10
|
|
leaq K_XX_XX+64(%rip),%r11
|
|
|
|
movl 0(%r8),%eax
|
|
cmpq %r10,%r13
|
|
cmovaeq %r9,%r13
|
|
movl 4(%r8),%ebp
|
|
movl 8(%r8),%ecx
|
|
movl 12(%r8),%edx
|
|
movl 16(%r8),%esi
|
|
vmovdqu 64(%r11),%ymm6
|
|
|
|
vmovdqu (%r9),%xmm0
|
|
vmovdqu 16(%r9),%xmm1
|
|
vmovdqu 32(%r9),%xmm2
|
|
vmovdqu 48(%r9),%xmm3
|
|
leaq 64(%r9),%r9
|
|
vinserti128 $1,(%r13),%ymm0,%ymm0
|
|
vinserti128 $1,16(%r13),%ymm1,%ymm1
|
|
vpshufb %ymm6,%ymm0,%ymm0
|
|
vinserti128 $1,32(%r13),%ymm2,%ymm2
|
|
vpshufb %ymm6,%ymm1,%ymm1
|
|
vinserti128 $1,48(%r13),%ymm3,%ymm3
|
|
vpshufb %ymm6,%ymm2,%ymm2
|
|
vmovdqu -64(%r11),%ymm11
|
|
vpshufb %ymm6,%ymm3,%ymm3
|
|
|
|
vpaddd %ymm11,%ymm0,%ymm4
|
|
vpaddd %ymm11,%ymm1,%ymm5
|
|
vmovdqu %ymm4,0(%rsp)
|
|
vpaddd %ymm11,%ymm2,%ymm6
|
|
vmovdqu %ymm5,32(%rsp)
|
|
vpaddd %ymm11,%ymm3,%ymm7
|
|
vmovdqu %ymm6,64(%rsp)
|
|
vmovdqu %ymm7,96(%rsp)
|
|
vpalignr $8,%ymm0,%ymm1,%ymm4
|
|
vpsrldq $4,%ymm3,%ymm8
|
|
vpxor %ymm0,%ymm4,%ymm4
|
|
vpxor %ymm2,%ymm8,%ymm8
|
|
vpxor %ymm8,%ymm4,%ymm4
|
|
vpsrld $31,%ymm4,%ymm8
|
|
vpslldq $12,%ymm4,%ymm10
|
|
vpaddd %ymm4,%ymm4,%ymm4
|
|
vpsrld $30,%ymm10,%ymm9
|
|
vpor %ymm8,%ymm4,%ymm4
|
|
vpslld $2,%ymm10,%ymm10
|
|
vpxor %ymm9,%ymm4,%ymm4
|
|
vpxor %ymm10,%ymm4,%ymm4
|
|
vpaddd %ymm11,%ymm4,%ymm9
|
|
vmovdqu %ymm9,128(%rsp)
|
|
vpalignr $8,%ymm1,%ymm2,%ymm5
|
|
vpsrldq $4,%ymm4,%ymm8
|
|
vpxor %ymm1,%ymm5,%ymm5
|
|
vpxor %ymm3,%ymm8,%ymm8
|
|
vpxor %ymm8,%ymm5,%ymm5
|
|
vpsrld $31,%ymm5,%ymm8
|
|
vmovdqu -32(%r11),%ymm11
|
|
vpslldq $12,%ymm5,%ymm10
|
|
vpaddd %ymm5,%ymm5,%ymm5
|
|
vpsrld $30,%ymm10,%ymm9
|
|
vpor %ymm8,%ymm5,%ymm5
|
|
vpslld $2,%ymm10,%ymm10
|
|
vpxor %ymm9,%ymm5,%ymm5
|
|
vpxor %ymm10,%ymm5,%ymm5
|
|
vpaddd %ymm11,%ymm5,%ymm9
|
|
vmovdqu %ymm9,160(%rsp)
|
|
vpalignr $8,%ymm2,%ymm3,%ymm6
|
|
vpsrldq $4,%ymm5,%ymm8
|
|
vpxor %ymm2,%ymm6,%ymm6
|
|
vpxor %ymm4,%ymm8,%ymm8
|
|
vpxor %ymm8,%ymm6,%ymm6
|
|
vpsrld $31,%ymm6,%ymm8
|
|
vpslldq $12,%ymm6,%ymm10
|
|
vpaddd %ymm6,%ymm6,%ymm6
|
|
vpsrld $30,%ymm10,%ymm9
|
|
vpor %ymm8,%ymm6,%ymm6
|
|
vpslld $2,%ymm10,%ymm10
|
|
vpxor %ymm9,%ymm6,%ymm6
|
|
vpxor %ymm10,%ymm6,%ymm6
|
|
vpaddd %ymm11,%ymm6,%ymm9
|
|
vmovdqu %ymm9,192(%rsp)
|
|
vpalignr $8,%ymm3,%ymm4,%ymm7
|
|
vpsrldq $4,%ymm6,%ymm8
|
|
vpxor %ymm3,%ymm7,%ymm7
|
|
vpxor %ymm5,%ymm8,%ymm8
|
|
vpxor %ymm8,%ymm7,%ymm7
|
|
vpsrld $31,%ymm7,%ymm8
|
|
vpslldq $12,%ymm7,%ymm10
|
|
vpaddd %ymm7,%ymm7,%ymm7
|
|
vpsrld $30,%ymm10,%ymm9
|
|
vpor %ymm8,%ymm7,%ymm7
|
|
vpslld $2,%ymm10,%ymm10
|
|
vpxor %ymm9,%ymm7,%ymm7
|
|
vpxor %ymm10,%ymm7,%ymm7
|
|
vpaddd %ymm11,%ymm7,%ymm9
|
|
vmovdqu %ymm9,224(%rsp)
|
|
leaq 128(%rsp),%r13
|
|
jmp .Loop_avx2
|
|
.align 32
|
|
.Loop_avx2:
|
|
rorxl $2,%ebp,%ebx
|
|
andnl %edx,%ebp,%edi
|
|
andl %ecx,%ebp
|
|
xorl %edi,%ebp
|
|
jmp .Lalign32_1
|
|
.align 32
|
|
.Lalign32_1:
|
|
vpalignr $8,%ymm6,%ymm7,%ymm8
|
|
vpxor %ymm4,%ymm0,%ymm0
|
|
addl -128(%r13),%esi
|
|
andnl %ecx,%eax,%edi
|
|
vpxor %ymm1,%ymm0,%ymm0
|
|
addl %ebp,%esi
|
|
rorxl $27,%eax,%r12d
|
|
rorxl $2,%eax,%ebp
|
|
vpxor %ymm8,%ymm0,%ymm0
|
|
andl %ebx,%eax
|
|
addl %r12d,%esi
|
|
xorl %edi,%eax
|
|
vpsrld $30,%ymm0,%ymm8
|
|
vpslld $2,%ymm0,%ymm0
|
|
addl -124(%r13),%edx
|
|
andnl %ebx,%esi,%edi
|
|
addl %eax,%edx
|
|
rorxl $27,%esi,%r12d
|
|
rorxl $2,%esi,%eax
|
|
andl %ebp,%esi
|
|
vpor %ymm8,%ymm0,%ymm0
|
|
addl %r12d,%edx
|
|
xorl %edi,%esi
|
|
addl -120(%r13),%ecx
|
|
andnl %ebp,%edx,%edi
|
|
vpaddd %ymm11,%ymm0,%ymm9
|
|
addl %esi,%ecx
|
|
rorxl $27,%edx,%r12d
|
|
rorxl $2,%edx,%esi
|
|
andl %eax,%edx
|
|
vmovdqu %ymm9,256(%rsp)
|
|
addl %r12d,%ecx
|
|
xorl %edi,%edx
|
|
addl -116(%r13),%ebx
|
|
andnl %eax,%ecx,%edi
|
|
addl %edx,%ebx
|
|
rorxl $27,%ecx,%r12d
|
|
rorxl $2,%ecx,%edx
|
|
andl %esi,%ecx
|
|
addl %r12d,%ebx
|
|
xorl %edi,%ecx
|
|
addl -96(%r13),%ebp
|
|
andnl %esi,%ebx,%edi
|
|
addl %ecx,%ebp
|
|
rorxl $27,%ebx,%r12d
|
|
rorxl $2,%ebx,%ecx
|
|
andl %edx,%ebx
|
|
addl %r12d,%ebp
|
|
xorl %edi,%ebx
|
|
vpalignr $8,%ymm7,%ymm0,%ymm8
|
|
vpxor %ymm5,%ymm1,%ymm1
|
|
addl -92(%r13),%eax
|
|
andnl %edx,%ebp,%edi
|
|
vpxor %ymm2,%ymm1,%ymm1
|
|
addl %ebx,%eax
|
|
rorxl $27,%ebp,%r12d
|
|
rorxl $2,%ebp,%ebx
|
|
vpxor %ymm8,%ymm1,%ymm1
|
|
andl %ecx,%ebp
|
|
addl %r12d,%eax
|
|
xorl %edi,%ebp
|
|
vpsrld $30,%ymm1,%ymm8
|
|
vpslld $2,%ymm1,%ymm1
|
|
addl -88(%r13),%esi
|
|
andnl %ecx,%eax,%edi
|
|
addl %ebp,%esi
|
|
rorxl $27,%eax,%r12d
|
|
rorxl $2,%eax,%ebp
|
|
andl %ebx,%eax
|
|
vpor %ymm8,%ymm1,%ymm1
|
|
addl %r12d,%esi
|
|
xorl %edi,%eax
|
|
addl -84(%r13),%edx
|
|
andnl %ebx,%esi,%edi
|
|
vpaddd %ymm11,%ymm1,%ymm9
|
|
addl %eax,%edx
|
|
rorxl $27,%esi,%r12d
|
|
rorxl $2,%esi,%eax
|
|
andl %ebp,%esi
|
|
vmovdqu %ymm9,288(%rsp)
|
|
addl %r12d,%edx
|
|
xorl %edi,%esi
|
|
addl -64(%r13),%ecx
|
|
andnl %ebp,%edx,%edi
|
|
addl %esi,%ecx
|
|
rorxl $27,%edx,%r12d
|
|
rorxl $2,%edx,%esi
|
|
andl %eax,%edx
|
|
addl %r12d,%ecx
|
|
xorl %edi,%edx
|
|
addl -60(%r13),%ebx
|
|
andnl %eax,%ecx,%edi
|
|
addl %edx,%ebx
|
|
rorxl $27,%ecx,%r12d
|
|
rorxl $2,%ecx,%edx
|
|
andl %esi,%ecx
|
|
addl %r12d,%ebx
|
|
xorl %edi,%ecx
|
|
vpalignr $8,%ymm0,%ymm1,%ymm8
|
|
vpxor %ymm6,%ymm2,%ymm2
|
|
addl -56(%r13),%ebp
|
|
andnl %esi,%ebx,%edi
|
|
vpxor %ymm3,%ymm2,%ymm2
|
|
vmovdqu 0(%r11),%ymm11
|
|
addl %ecx,%ebp
|
|
rorxl $27,%ebx,%r12d
|
|
rorxl $2,%ebx,%ecx
|
|
vpxor %ymm8,%ymm2,%ymm2
|
|
andl %edx,%ebx
|
|
addl %r12d,%ebp
|
|
xorl %edi,%ebx
|
|
vpsrld $30,%ymm2,%ymm8
|
|
vpslld $2,%ymm2,%ymm2
|
|
addl -52(%r13),%eax
|
|
andnl %edx,%ebp,%edi
|
|
addl %ebx,%eax
|
|
rorxl $27,%ebp,%r12d
|
|
rorxl $2,%ebp,%ebx
|
|
andl %ecx,%ebp
|
|
vpor %ymm8,%ymm2,%ymm2
|
|
addl %r12d,%eax
|
|
xorl %edi,%ebp
|
|
addl -32(%r13),%esi
|
|
andnl %ecx,%eax,%edi
|
|
vpaddd %ymm11,%ymm2,%ymm9
|
|
addl %ebp,%esi
|
|
rorxl $27,%eax,%r12d
|
|
rorxl $2,%eax,%ebp
|
|
andl %ebx,%eax
|
|
vmovdqu %ymm9,320(%rsp)
|
|
addl %r12d,%esi
|
|
xorl %edi,%eax
|
|
addl -28(%r13),%edx
|
|
andnl %ebx,%esi,%edi
|
|
addl %eax,%edx
|
|
rorxl $27,%esi,%r12d
|
|
rorxl $2,%esi,%eax
|
|
andl %ebp,%esi
|
|
addl %r12d,%edx
|
|
xorl %edi,%esi
|
|
addl -24(%r13),%ecx
|
|
andnl %ebp,%edx,%edi
|
|
addl %esi,%ecx
|
|
rorxl $27,%edx,%r12d
|
|
rorxl $2,%edx,%esi
|
|
andl %eax,%edx
|
|
addl %r12d,%ecx
|
|
xorl %edi,%edx
|
|
vpalignr $8,%ymm1,%ymm2,%ymm8
|
|
vpxor %ymm7,%ymm3,%ymm3
|
|
addl -20(%r13),%ebx
|
|
andnl %eax,%ecx,%edi
|
|
vpxor %ymm4,%ymm3,%ymm3
|
|
addl %edx,%ebx
|
|
rorxl $27,%ecx,%r12d
|
|
rorxl $2,%ecx,%edx
|
|
vpxor %ymm8,%ymm3,%ymm3
|
|
andl %esi,%ecx
|
|
addl %r12d,%ebx
|
|
xorl %edi,%ecx
|
|
vpsrld $30,%ymm3,%ymm8
|
|
vpslld $2,%ymm3,%ymm3
|
|
addl 0(%r13),%ebp
|
|
andnl %esi,%ebx,%edi
|
|
addl %ecx,%ebp
|
|
rorxl $27,%ebx,%r12d
|
|
rorxl $2,%ebx,%ecx
|
|
andl %edx,%ebx
|
|
vpor %ymm8,%ymm3,%ymm3
|
|
addl %r12d,%ebp
|
|
xorl %edi,%ebx
|
|
addl 4(%r13),%eax
|
|
andnl %edx,%ebp,%edi
|
|
vpaddd %ymm11,%ymm3,%ymm9
|
|
addl %ebx,%eax
|
|
rorxl $27,%ebp,%r12d
|
|
rorxl $2,%ebp,%ebx
|
|
andl %ecx,%ebp
|
|
vmovdqu %ymm9,352(%rsp)
|
|
addl %r12d,%eax
|
|
xorl %edi,%ebp
|
|
addl 8(%r13),%esi
|
|
andnl %ecx,%eax,%edi
|
|
addl %ebp,%esi
|
|
rorxl $27,%eax,%r12d
|
|
rorxl $2,%eax,%ebp
|
|
andl %ebx,%eax
|
|
addl %r12d,%esi
|
|
xorl %edi,%eax
|
|
addl 12(%r13),%edx
|
|
leal (%rdx,%rax,1),%edx
|
|
rorxl $27,%esi,%r12d
|
|
rorxl $2,%esi,%eax
|
|
xorl %ebp,%esi
|
|
addl %r12d,%edx
|
|
xorl %ebx,%esi
|
|
vpalignr $8,%ymm2,%ymm3,%ymm8
|
|
vpxor %ymm0,%ymm4,%ymm4
|
|
addl 32(%r13),%ecx
|
|
leal (%rcx,%rsi,1),%ecx
|
|
vpxor %ymm5,%ymm4,%ymm4
|
|
rorxl $27,%edx,%r12d
|
|
rorxl $2,%edx,%esi
|
|
xorl %eax,%edx
|
|
vpxor %ymm8,%ymm4,%ymm4
|
|
addl %r12d,%ecx
|
|
xorl %ebp,%edx
|
|
addl 36(%r13),%ebx
|
|
vpsrld $30,%ymm4,%ymm8
|
|
vpslld $2,%ymm4,%ymm4
|
|
leal (%rbx,%rdx,1),%ebx
|
|
rorxl $27,%ecx,%r12d
|
|
rorxl $2,%ecx,%edx
|
|
xorl %esi,%ecx
|
|
addl %r12d,%ebx
|
|
xorl %eax,%ecx
|
|
vpor %ymm8,%ymm4,%ymm4
|
|
addl 40(%r13),%ebp
|
|
leal (%rcx,%rbp,1),%ebp
|
|
rorxl $27,%ebx,%r12d
|
|
rorxl $2,%ebx,%ecx
|
|
vpaddd %ymm11,%ymm4,%ymm9
|
|
xorl %edx,%ebx
|
|
addl %r12d,%ebp
|
|
xorl %esi,%ebx
|
|
addl 44(%r13),%eax
|
|
vmovdqu %ymm9,384(%rsp)
|
|
leal (%rax,%rbx,1),%eax
|
|
rorxl $27,%ebp,%r12d
|
|
rorxl $2,%ebp,%ebx
|
|
xorl %ecx,%ebp
|
|
addl %r12d,%eax
|
|
xorl %edx,%ebp
|
|
addl 64(%r13),%esi
|
|
leal (%rsi,%rbp,1),%esi
|
|
rorxl $27,%eax,%r12d
|
|
rorxl $2,%eax,%ebp
|
|
xorl %ebx,%eax
|
|
addl %r12d,%esi
|
|
xorl %ecx,%eax
|
|
vpalignr $8,%ymm3,%ymm4,%ymm8
|
|
vpxor %ymm1,%ymm5,%ymm5
|
|
addl 68(%r13),%edx
|
|
leal (%rdx,%rax,1),%edx
|
|
vpxor %ymm6,%ymm5,%ymm5
|
|
rorxl $27,%esi,%r12d
|
|
rorxl $2,%esi,%eax
|
|
xorl %ebp,%esi
|
|
vpxor %ymm8,%ymm5,%ymm5
|
|
addl %r12d,%edx
|
|
xorl %ebx,%esi
|
|
addl 72(%r13),%ecx
|
|
vpsrld $30,%ymm5,%ymm8
|
|
vpslld $2,%ymm5,%ymm5
|
|
leal (%rcx,%rsi,1),%ecx
|
|
rorxl $27,%edx,%r12d
|
|
rorxl $2,%edx,%esi
|
|
xorl %eax,%edx
|
|
addl %r12d,%ecx
|
|
xorl %ebp,%edx
|
|
vpor %ymm8,%ymm5,%ymm5
|
|
addl 76(%r13),%ebx
|
|
leal (%rbx,%rdx,1),%ebx
|
|
rorxl $27,%ecx,%r12d
|
|
rorxl $2,%ecx,%edx
|
|
vpaddd %ymm11,%ymm5,%ymm9
|
|
xorl %esi,%ecx
|
|
addl %r12d,%ebx
|
|
xorl %eax,%ecx
|
|
addl 96(%r13),%ebp
|
|
vmovdqu %ymm9,416(%rsp)
|
|
leal (%rcx,%rbp,1),%ebp
|
|
rorxl $27,%ebx,%r12d
|
|
rorxl $2,%ebx,%ecx
|
|
xorl %edx,%ebx
|
|
addl %r12d,%ebp
|
|
xorl %esi,%ebx
|
|
addl 100(%r13),%eax
|
|
leal (%rax,%rbx,1),%eax
|
|
rorxl $27,%ebp,%r12d
|
|
rorxl $2,%ebp,%ebx
|
|
xorl %ecx,%ebp
|
|
addl %r12d,%eax
|
|
xorl %edx,%ebp
|
|
vpalignr $8,%ymm4,%ymm5,%ymm8
|
|
vpxor %ymm2,%ymm6,%ymm6
|
|
addl 104(%r13),%esi
|
|
leal (%rsi,%rbp,1),%esi
|
|
vpxor %ymm7,%ymm6,%ymm6
|
|
rorxl $27,%eax,%r12d
|
|
rorxl $2,%eax,%ebp
|
|
xorl %ebx,%eax
|
|
vpxor %ymm8,%ymm6,%ymm6
|
|
addl %r12d,%esi
|
|
xorl %ecx,%eax
|
|
addl 108(%r13),%edx
|
|
leaq 256(%r13),%r13
|
|
vpsrld $30,%ymm6,%ymm8
|
|
vpslld $2,%ymm6,%ymm6
|
|
leal (%rdx,%rax,1),%edx
|
|
rorxl $27,%esi,%r12d
|
|
rorxl $2,%esi,%eax
|
|
xorl %ebp,%esi
|
|
addl %r12d,%edx
|
|
xorl %ebx,%esi
|
|
vpor %ymm8,%ymm6,%ymm6
|
|
addl -128(%r13),%ecx
|
|
leal (%rcx,%rsi,1),%ecx
|
|
rorxl $27,%edx,%r12d
|
|
rorxl $2,%edx,%esi
|
|
vpaddd %ymm11,%ymm6,%ymm9
|
|
xorl %eax,%edx
|
|
addl %r12d,%ecx
|
|
xorl %ebp,%edx
|
|
addl -124(%r13),%ebx
|
|
vmovdqu %ymm9,448(%rsp)
|
|
leal (%rbx,%rdx,1),%ebx
|
|
rorxl $27,%ecx,%r12d
|
|
rorxl $2,%ecx,%edx
|
|
xorl %esi,%ecx
|
|
addl %r12d,%ebx
|
|
xorl %eax,%ecx
|
|
addl -120(%r13),%ebp
|
|
leal (%rcx,%rbp,1),%ebp
|
|
rorxl $27,%ebx,%r12d
|
|
rorxl $2,%ebx,%ecx
|
|
xorl %edx,%ebx
|
|
addl %r12d,%ebp
|
|
xorl %esi,%ebx
|
|
vpalignr $8,%ymm5,%ymm6,%ymm8
|
|
vpxor %ymm3,%ymm7,%ymm7
|
|
addl -116(%r13),%eax
|
|
leal (%rax,%rbx,1),%eax
|
|
vpxor %ymm0,%ymm7,%ymm7
|
|
vmovdqu 32(%r11),%ymm11
|
|
rorxl $27,%ebp,%r12d
|
|
rorxl $2,%ebp,%ebx
|
|
xorl %ecx,%ebp
|
|
vpxor %ymm8,%ymm7,%ymm7
|
|
addl %r12d,%eax
|
|
xorl %edx,%ebp
|
|
addl -96(%r13),%esi
|
|
vpsrld $30,%ymm7,%ymm8
|
|
vpslld $2,%ymm7,%ymm7
|
|
leal (%rsi,%rbp,1),%esi
|
|
rorxl $27,%eax,%r12d
|
|
rorxl $2,%eax,%ebp
|
|
xorl %ebx,%eax
|
|
addl %r12d,%esi
|
|
xorl %ecx,%eax
|
|
vpor %ymm8,%ymm7,%ymm7
|
|
addl -92(%r13),%edx
|
|
leal (%rdx,%rax,1),%edx
|
|
rorxl $27,%esi,%r12d
|
|
rorxl $2,%esi,%eax
|
|
vpaddd %ymm11,%ymm7,%ymm9
|
|
xorl %ebp,%esi
|
|
addl %r12d,%edx
|
|
xorl %ebx,%esi
|
|
addl -88(%r13),%ecx
|
|
vmovdqu %ymm9,480(%rsp)
|
|
leal (%rcx,%rsi,1),%ecx
|
|
rorxl $27,%edx,%r12d
|
|
rorxl $2,%edx,%esi
|
|
xorl %eax,%edx
|
|
addl %r12d,%ecx
|
|
xorl %ebp,%edx
|
|
addl -84(%r13),%ebx
|
|
movl %esi,%edi
|
|
xorl %eax,%edi
|
|
leal (%rbx,%rdx,1),%ebx
|
|
rorxl $27,%ecx,%r12d
|
|
rorxl $2,%ecx,%edx
|
|
xorl %esi,%ecx
|
|
addl %r12d,%ebx
|
|
andl %edi,%ecx
|
|
jmp .Lalign32_2
|
|
.align 32
|
|
.Lalign32_2:
|
|
vpalignr $8,%ymm6,%ymm7,%ymm8
|
|
vpxor %ymm4,%ymm0,%ymm0
|
|
addl -64(%r13),%ebp
|
|
xorl %esi,%ecx
|
|
vpxor %ymm1,%ymm0,%ymm0
|
|
movl %edx,%edi
|
|
xorl %esi,%edi
|
|
leal (%rcx,%rbp,1),%ebp
|
|
vpxor %ymm8,%ymm0,%ymm0
|
|
rorxl $27,%ebx,%r12d
|
|
rorxl $2,%ebx,%ecx
|
|
xorl %edx,%ebx
|
|
vpsrld $30,%ymm0,%ymm8
|
|
vpslld $2,%ymm0,%ymm0
|
|
addl %r12d,%ebp
|
|
andl %edi,%ebx
|
|
addl -60(%r13),%eax
|
|
xorl %edx,%ebx
|
|
movl %ecx,%edi
|
|
xorl %edx,%edi
|
|
vpor %ymm8,%ymm0,%ymm0
|
|
leal (%rax,%rbx,1),%eax
|
|
rorxl $27,%ebp,%r12d
|
|
rorxl $2,%ebp,%ebx
|
|
xorl %ecx,%ebp
|
|
vpaddd %ymm11,%ymm0,%ymm9
|
|
addl %r12d,%eax
|
|
andl %edi,%ebp
|
|
addl -56(%r13),%esi
|
|
xorl %ecx,%ebp
|
|
vmovdqu %ymm9,512(%rsp)
|
|
movl %ebx,%edi
|
|
xorl %ecx,%edi
|
|
leal (%rsi,%rbp,1),%esi
|
|
rorxl $27,%eax,%r12d
|
|
rorxl $2,%eax,%ebp
|
|
xorl %ebx,%eax
|
|
addl %r12d,%esi
|
|
andl %edi,%eax
|
|
addl -52(%r13),%edx
|
|
xorl %ebx,%eax
|
|
movl %ebp,%edi
|
|
xorl %ebx,%edi
|
|
leal (%rdx,%rax,1),%edx
|
|
rorxl $27,%esi,%r12d
|
|
rorxl $2,%esi,%eax
|
|
xorl %ebp,%esi
|
|
addl %r12d,%edx
|
|
andl %edi,%esi
|
|
addl -32(%r13),%ecx
|
|
xorl %ebp,%esi
|
|
movl %eax,%edi
|
|
xorl %ebp,%edi
|
|
leal (%rcx,%rsi,1),%ecx
|
|
rorxl $27,%edx,%r12d
|
|
rorxl $2,%edx,%esi
|
|
xorl %eax,%edx
|
|
addl %r12d,%ecx
|
|
andl %edi,%edx
|
|
vpalignr $8,%ymm7,%ymm0,%ymm8
|
|
vpxor %ymm5,%ymm1,%ymm1
|
|
addl -28(%r13),%ebx
|
|
xorl %eax,%edx
|
|
vpxor %ymm2,%ymm1,%ymm1
|
|
movl %esi,%edi
|
|
xorl %eax,%edi
|
|
leal (%rbx,%rdx,1),%ebx
|
|
vpxor %ymm8,%ymm1,%ymm1
|
|
rorxl $27,%ecx,%r12d
|
|
rorxl $2,%ecx,%edx
|
|
xorl %esi,%ecx
|
|
vpsrld $30,%ymm1,%ymm8
|
|
vpslld $2,%ymm1,%ymm1
|
|
addl %r12d,%ebx
|
|
andl %edi,%ecx
|
|
addl -24(%r13),%ebp
|
|
xorl %esi,%ecx
|
|
movl %edx,%edi
|
|
xorl %esi,%edi
|
|
vpor %ymm8,%ymm1,%ymm1
|
|
leal (%rcx,%rbp,1),%ebp
|
|
rorxl $27,%ebx,%r12d
|
|
rorxl $2,%ebx,%ecx
|
|
xorl %edx,%ebx
|
|
vpaddd %ymm11,%ymm1,%ymm9
|
|
addl %r12d,%ebp
|
|
andl %edi,%ebx
|
|
addl -20(%r13),%eax
|
|
xorl %edx,%ebx
|
|
vmovdqu %ymm9,544(%rsp)
|
|
movl %ecx,%edi
|
|
xorl %edx,%edi
|
|
leal (%rax,%rbx,1),%eax
|
|
rorxl $27,%ebp,%r12d
|
|
rorxl $2,%ebp,%ebx
|
|
xorl %ecx,%ebp
|
|
addl %r12d,%eax
|
|
andl %edi,%ebp
|
|
addl 0(%r13),%esi
|
|
xorl %ecx,%ebp
|
|
movl %ebx,%edi
|
|
xorl %ecx,%edi
|
|
leal (%rsi,%rbp,1),%esi
|
|
rorxl $27,%eax,%r12d
|
|
rorxl $2,%eax,%ebp
|
|
xorl %ebx,%eax
|
|
addl %r12d,%esi
|
|
andl %edi,%eax
|
|
addl 4(%r13),%edx
|
|
xorl %ebx,%eax
|
|
movl %ebp,%edi
|
|
xorl %ebx,%edi
|
|
leal (%rdx,%rax,1),%edx
|
|
rorxl $27,%esi,%r12d
|
|
rorxl $2,%esi,%eax
|
|
xorl %ebp,%esi
|
|
addl %r12d,%edx
|
|
andl %edi,%esi
|
|
vpalignr $8,%ymm0,%ymm1,%ymm8
|
|
vpxor %ymm6,%ymm2,%ymm2
|
|
addl 8(%r13),%ecx
|
|
xorl %ebp,%esi
|
|
vpxor %ymm3,%ymm2,%ymm2
|
|
movl %eax,%edi
|
|
xorl %ebp,%edi
|
|
leal (%rcx,%rsi,1),%ecx
|
|
vpxor %ymm8,%ymm2,%ymm2
|
|
rorxl $27,%edx,%r12d
|
|
rorxl $2,%edx,%esi
|
|
xorl %eax,%edx
|
|
vpsrld $30,%ymm2,%ymm8
|
|
vpslld $2,%ymm2,%ymm2
|
|
addl %r12d,%ecx
|
|
andl %edi,%edx
|
|
addl 12(%r13),%ebx
|
|
xorl %eax,%edx
|
|
movl %esi,%edi
|
|
xorl %eax,%edi
|
|
vpor %ymm8,%ymm2,%ymm2
|
|
leal (%rbx,%rdx,1),%ebx
|
|
rorxl $27,%ecx,%r12d
|
|
rorxl $2,%ecx,%edx
|
|
xorl %esi,%ecx
|
|
vpaddd %ymm11,%ymm2,%ymm9
|
|
addl %r12d,%ebx
|
|
andl %edi,%ecx
|
|
addl 32(%r13),%ebp
|
|
xorl %esi,%ecx
|
|
vmovdqu %ymm9,576(%rsp)
|
|
movl %edx,%edi
|
|
xorl %esi,%edi
|
|
leal (%rcx,%rbp,1),%ebp
|
|
rorxl $27,%ebx,%r12d
|
|
rorxl $2,%ebx,%ecx
|
|
xorl %edx,%ebx
|
|
addl %r12d,%ebp
|
|
andl %edi,%ebx
|
|
addl 36(%r13),%eax
|
|
xorl %edx,%ebx
|
|
movl %ecx,%edi
|
|
xorl %edx,%edi
|
|
leal (%rax,%rbx,1),%eax
|
|
rorxl $27,%ebp,%r12d
|
|
rorxl $2,%ebp,%ebx
|
|
xorl %ecx,%ebp
|
|
addl %r12d,%eax
|
|
andl %edi,%ebp
|
|
addl 40(%r13),%esi
|
|
xorl %ecx,%ebp
|
|
movl %ebx,%edi
|
|
xorl %ecx,%edi
|
|
leal (%rsi,%rbp,1),%esi
|
|
rorxl $27,%eax,%r12d
|
|
rorxl $2,%eax,%ebp
|
|
xorl %ebx,%eax
|
|
addl %r12d,%esi
|
|
andl %edi,%eax
|
|
vpalignr $8,%ymm1,%ymm2,%ymm8
|
|
vpxor %ymm7,%ymm3,%ymm3
|
|
addl 44(%r13),%edx
|
|
xorl %ebx,%eax
|
|
vpxor %ymm4,%ymm3,%ymm3
|
|
movl %ebp,%edi
|
|
xorl %ebx,%edi
|
|
leal (%rdx,%rax,1),%edx
|
|
vpxor %ymm8,%ymm3,%ymm3
|
|
rorxl $27,%esi,%r12d
|
|
rorxl $2,%esi,%eax
|
|
xorl %ebp,%esi
|
|
vpsrld $30,%ymm3,%ymm8
|
|
vpslld $2,%ymm3,%ymm3
|
|
addl %r12d,%edx
|
|
andl %edi,%esi
|
|
addl 64(%r13),%ecx
|
|
xorl %ebp,%esi
|
|
movl %eax,%edi
|
|
xorl %ebp,%edi
|
|
vpor %ymm8,%ymm3,%ymm3
|
|
leal (%rcx,%rsi,1),%ecx
|
|
rorxl $27,%edx,%r12d
|
|
rorxl $2,%edx,%esi
|
|
xorl %eax,%edx
|
|
vpaddd %ymm11,%ymm3,%ymm9
|
|
addl %r12d,%ecx
|
|
andl %edi,%edx
|
|
addl 68(%r13),%ebx
|
|
xorl %eax,%edx
|
|
vmovdqu %ymm9,608(%rsp)
|
|
movl %esi,%edi
|
|
xorl %eax,%edi
|
|
leal (%rbx,%rdx,1),%ebx
|
|
rorxl $27,%ecx,%r12d
|
|
rorxl $2,%ecx,%edx
|
|
xorl %esi,%ecx
|
|
addl %r12d,%ebx
|
|
andl %edi,%ecx
|
|
addl 72(%r13),%ebp
|
|
xorl %esi,%ecx
|
|
movl %edx,%edi
|
|
xorl %esi,%edi
|
|
leal (%rcx,%rbp,1),%ebp
|
|
rorxl $27,%ebx,%r12d
|
|
rorxl $2,%ebx,%ecx
|
|
xorl %edx,%ebx
|
|
addl %r12d,%ebp
|
|
andl %edi,%ebx
|
|
addl 76(%r13),%eax
|
|
xorl %edx,%ebx
|
|
leal (%rax,%rbx,1),%eax
|
|
rorxl $27,%ebp,%r12d
|
|
rorxl $2,%ebp,%ebx
|
|
xorl %ecx,%ebp
|
|
addl %r12d,%eax
|
|
xorl %edx,%ebp
|
|
addl 96(%r13),%esi
|
|
leal (%rsi,%rbp,1),%esi
|
|
rorxl $27,%eax,%r12d
|
|
rorxl $2,%eax,%ebp
|
|
xorl %ebx,%eax
|
|
addl %r12d,%esi
|
|
xorl %ecx,%eax
|
|
addl 100(%r13),%edx
|
|
leal (%rdx,%rax,1),%edx
|
|
rorxl $27,%esi,%r12d
|
|
rorxl $2,%esi,%eax
|
|
xorl %ebp,%esi
|
|
addl %r12d,%edx
|
|
xorl %ebx,%esi
|
|
addl 104(%r13),%ecx
|
|
leal (%rcx,%rsi,1),%ecx
|
|
rorxl $27,%edx,%r12d
|
|
rorxl $2,%edx,%esi
|
|
xorl %eax,%edx
|
|
addl %r12d,%ecx
|
|
xorl %ebp,%edx
|
|
addl 108(%r13),%ebx
|
|
leaq 256(%r13),%r13
|
|
leal (%rbx,%rdx,1),%ebx
|
|
rorxl $27,%ecx,%r12d
|
|
rorxl $2,%ecx,%edx
|
|
xorl %esi,%ecx
|
|
addl %r12d,%ebx
|
|
xorl %eax,%ecx
|
|
addl -128(%r13),%ebp
|
|
leal (%rcx,%rbp,1),%ebp
|
|
rorxl $27,%ebx,%r12d
|
|
rorxl $2,%ebx,%ecx
|
|
xorl %edx,%ebx
|
|
addl %r12d,%ebp
|
|
xorl %esi,%ebx
|
|
addl -124(%r13),%eax
|
|
leal (%rax,%rbx,1),%eax
|
|
rorxl $27,%ebp,%r12d
|
|
rorxl $2,%ebp,%ebx
|
|
xorl %ecx,%ebp
|
|
addl %r12d,%eax
|
|
xorl %edx,%ebp
|
|
addl -120(%r13),%esi
|
|
leal (%rsi,%rbp,1),%esi
|
|
rorxl $27,%eax,%r12d
|
|
rorxl $2,%eax,%ebp
|
|
xorl %ebx,%eax
|
|
addl %r12d,%esi
|
|
xorl %ecx,%eax
|
|
addl -116(%r13),%edx
|
|
leal (%rdx,%rax,1),%edx
|
|
rorxl $27,%esi,%r12d
|
|
rorxl $2,%esi,%eax
|
|
xorl %ebp,%esi
|
|
addl %r12d,%edx
|
|
xorl %ebx,%esi
|
|
addl -96(%r13),%ecx
|
|
leal (%rcx,%rsi,1),%ecx
|
|
rorxl $27,%edx,%r12d
|
|
rorxl $2,%edx,%esi
|
|
xorl %eax,%edx
|
|
addl %r12d,%ecx
|
|
xorl %ebp,%edx
|
|
addl -92(%r13),%ebx
|
|
leal (%rbx,%rdx,1),%ebx
|
|
rorxl $27,%ecx,%r12d
|
|
rorxl $2,%ecx,%edx
|
|
xorl %esi,%ecx
|
|
addl %r12d,%ebx
|
|
xorl %eax,%ecx
|
|
addl -88(%r13),%ebp
|
|
leal (%rcx,%rbp,1),%ebp
|
|
rorxl $27,%ebx,%r12d
|
|
rorxl $2,%ebx,%ecx
|
|
xorl %edx,%ebx
|
|
addl %r12d,%ebp
|
|
xorl %esi,%ebx
|
|
addl -84(%r13),%eax
|
|
leal (%rax,%rbx,1),%eax
|
|
rorxl $27,%ebp,%r12d
|
|
rorxl $2,%ebp,%ebx
|
|
xorl %ecx,%ebp
|
|
addl %r12d,%eax
|
|
xorl %edx,%ebp
|
|
addl -64(%r13),%esi
|
|
leal (%rsi,%rbp,1),%esi
|
|
rorxl $27,%eax,%r12d
|
|
rorxl $2,%eax,%ebp
|
|
xorl %ebx,%eax
|
|
addl %r12d,%esi
|
|
xorl %ecx,%eax
|
|
addl -60(%r13),%edx
|
|
leal (%rdx,%rax,1),%edx
|
|
rorxl $27,%esi,%r12d
|
|
rorxl $2,%esi,%eax
|
|
xorl %ebp,%esi
|
|
addl %r12d,%edx
|
|
xorl %ebx,%esi
|
|
addl -56(%r13),%ecx
|
|
leal (%rcx,%rsi,1),%ecx
|
|
rorxl $27,%edx,%r12d
|
|
rorxl $2,%edx,%esi
|
|
xorl %eax,%edx
|
|
addl %r12d,%ecx
|
|
xorl %ebp,%edx
|
|
addl -52(%r13),%ebx
|
|
leal (%rbx,%rdx,1),%ebx
|
|
rorxl $27,%ecx,%r12d
|
|
rorxl $2,%ecx,%edx
|
|
xorl %esi,%ecx
|
|
addl %r12d,%ebx
|
|
xorl %eax,%ecx
|
|
addl -32(%r13),%ebp
|
|
leal (%rcx,%rbp,1),%ebp
|
|
rorxl $27,%ebx,%r12d
|
|
rorxl $2,%ebx,%ecx
|
|
xorl %edx,%ebx
|
|
addl %r12d,%ebp
|
|
xorl %esi,%ebx
|
|
addl -28(%r13),%eax
|
|
leal (%rax,%rbx,1),%eax
|
|
rorxl $27,%ebp,%r12d
|
|
rorxl $2,%ebp,%ebx
|
|
xorl %ecx,%ebp
|
|
addl %r12d,%eax
|
|
xorl %edx,%ebp
|
|
addl -24(%r13),%esi
|
|
leal (%rsi,%rbp,1),%esi
|
|
rorxl $27,%eax,%r12d
|
|
rorxl $2,%eax,%ebp
|
|
xorl %ebx,%eax
|
|
addl %r12d,%esi
|
|
xorl %ecx,%eax
|
|
addl -20(%r13),%edx
|
|
leal (%rdx,%rax,1),%edx
|
|
rorxl $27,%esi,%r12d
|
|
addl %r12d,%edx
|
|
leaq 128(%r9),%r13
|
|
leaq 128(%r9),%rdi
|
|
cmpq %r10,%r13
|
|
cmovaeq %r9,%r13
|
|
|
|
|
|
addl 0(%r8),%edx
|
|
addl 4(%r8),%esi
|
|
addl 8(%r8),%ebp
|
|
movl %edx,0(%r8)
|
|
addl 12(%r8),%ebx
|
|
movl %esi,4(%r8)
|
|
movl %edx,%eax
|
|
addl 16(%r8),%ecx
|
|
movl %ebp,%r12d
|
|
movl %ebp,8(%r8)
|
|
movl %ebx,%edx
|
|
|
|
movl %ebx,12(%r8)
|
|
movl %esi,%ebp
|
|
movl %ecx,16(%r8)
|
|
|
|
movl %ecx,%esi
|
|
movl %r12d,%ecx
|
|
|
|
|
|
cmpq %r10,%r9
|
|
je .Ldone_avx2
|
|
vmovdqu 64(%r11),%ymm6
|
|
cmpq %r10,%rdi
|
|
ja .Last_avx2
|
|
|
|
vmovdqu -64(%rdi),%xmm0
|
|
vmovdqu -48(%rdi),%xmm1
|
|
vmovdqu -32(%rdi),%xmm2
|
|
vmovdqu -16(%rdi),%xmm3
|
|
vinserti128 $1,0(%r13),%ymm0,%ymm0
|
|
vinserti128 $1,16(%r13),%ymm1,%ymm1
|
|
vinserti128 $1,32(%r13),%ymm2,%ymm2
|
|
vinserti128 $1,48(%r13),%ymm3,%ymm3
|
|
jmp .Last_avx2
|
|
|
|
.align 32
|
|
.Last_avx2:
|
|
leaq 128+16(%rsp),%r13
|
|
rorxl $2,%ebp,%ebx
|
|
andnl %edx,%ebp,%edi
|
|
andl %ecx,%ebp
|
|
xorl %edi,%ebp
|
|
subq $-128,%r9
|
|
addl -128(%r13),%esi
|
|
andnl %ecx,%eax,%edi
|
|
addl %ebp,%esi
|
|
rorxl $27,%eax,%r12d
|
|
rorxl $2,%eax,%ebp
|
|
andl %ebx,%eax
|
|
addl %r12d,%esi
|
|
xorl %edi,%eax
|
|
addl -124(%r13),%edx
|
|
andnl %ebx,%esi,%edi
|
|
addl %eax,%edx
|
|
rorxl $27,%esi,%r12d
|
|
rorxl $2,%esi,%eax
|
|
andl %ebp,%esi
|
|
addl %r12d,%edx
|
|
xorl %edi,%esi
|
|
addl -120(%r13),%ecx
|
|
andnl %ebp,%edx,%edi
|
|
addl %esi,%ecx
|
|
rorxl $27,%edx,%r12d
|
|
rorxl $2,%edx,%esi
|
|
andl %eax,%edx
|
|
addl %r12d,%ecx
|
|
xorl %edi,%edx
|
|
addl -116(%r13),%ebx
|
|
andnl %eax,%ecx,%edi
|
|
addl %edx,%ebx
|
|
rorxl $27,%ecx,%r12d
|
|
rorxl $2,%ecx,%edx
|
|
andl %esi,%ecx
|
|
addl %r12d,%ebx
|
|
xorl %edi,%ecx
|
|
addl -96(%r13),%ebp
|
|
andnl %esi,%ebx,%edi
|
|
addl %ecx,%ebp
|
|
rorxl $27,%ebx,%r12d
|
|
rorxl $2,%ebx,%ecx
|
|
andl %edx,%ebx
|
|
addl %r12d,%ebp
|
|
xorl %edi,%ebx
|
|
addl -92(%r13),%eax
|
|
andnl %edx,%ebp,%edi
|
|
addl %ebx,%eax
|
|
rorxl $27,%ebp,%r12d
|
|
rorxl $2,%ebp,%ebx
|
|
andl %ecx,%ebp
|
|
addl %r12d,%eax
|
|
xorl %edi,%ebp
|
|
addl -88(%r13),%esi
|
|
andnl %ecx,%eax,%edi
|
|
addl %ebp,%esi
|
|
rorxl $27,%eax,%r12d
|
|
rorxl $2,%eax,%ebp
|
|
andl %ebx,%eax
|
|
addl %r12d,%esi
|
|
xorl %edi,%eax
|
|
addl -84(%r13),%edx
|
|
andnl %ebx,%esi,%edi
|
|
addl %eax,%edx
|
|
rorxl $27,%esi,%r12d
|
|
rorxl $2,%esi,%eax
|
|
andl %ebp,%esi
|
|
addl %r12d,%edx
|
|
xorl %edi,%esi
|
|
addl -64(%r13),%ecx
|
|
andnl %ebp,%edx,%edi
|
|
addl %esi,%ecx
|
|
rorxl $27,%edx,%r12d
|
|
rorxl $2,%edx,%esi
|
|
andl %eax,%edx
|
|
addl %r12d,%ecx
|
|
xorl %edi,%edx
|
|
addl -60(%r13),%ebx
|
|
andnl %eax,%ecx,%edi
|
|
addl %edx,%ebx
|
|
rorxl $27,%ecx,%r12d
|
|
rorxl $2,%ecx,%edx
|
|
andl %esi,%ecx
|
|
addl %r12d,%ebx
|
|
xorl %edi,%ecx
|
|
addl -56(%r13),%ebp
|
|
andnl %esi,%ebx,%edi
|
|
addl %ecx,%ebp
|
|
rorxl $27,%ebx,%r12d
|
|
rorxl $2,%ebx,%ecx
|
|
andl %edx,%ebx
|
|
addl %r12d,%ebp
|
|
xorl %edi,%ebx
|
|
addl -52(%r13),%eax
|
|
andnl %edx,%ebp,%edi
|
|
addl %ebx,%eax
|
|
rorxl $27,%ebp,%r12d
|
|
rorxl $2,%ebp,%ebx
|
|
andl %ecx,%ebp
|
|
addl %r12d,%eax
|
|
xorl %edi,%ebp
|
|
addl -32(%r13),%esi
|
|
andnl %ecx,%eax,%edi
|
|
addl %ebp,%esi
|
|
rorxl $27,%eax,%r12d
|
|
rorxl $2,%eax,%ebp
|
|
andl %ebx,%eax
|
|
addl %r12d,%esi
|
|
xorl %edi,%eax
|
|
addl -28(%r13),%edx
|
|
andnl %ebx,%esi,%edi
|
|
addl %eax,%edx
|
|
rorxl $27,%esi,%r12d
|
|
rorxl $2,%esi,%eax
|
|
andl %ebp,%esi
|
|
addl %r12d,%edx
|
|
xorl %edi,%esi
|
|
addl -24(%r13),%ecx
|
|
andnl %ebp,%edx,%edi
|
|
addl %esi,%ecx
|
|
rorxl $27,%edx,%r12d
|
|
rorxl $2,%edx,%esi
|
|
andl %eax,%edx
|
|
addl %r12d,%ecx
|
|
xorl %edi,%edx
|
|
addl -20(%r13),%ebx
|
|
andnl %eax,%ecx,%edi
|
|
addl %edx,%ebx
|
|
rorxl $27,%ecx,%r12d
|
|
rorxl $2,%ecx,%edx
|
|
andl %esi,%ecx
|
|
addl %r12d,%ebx
|
|
xorl %edi,%ecx
|
|
addl 0(%r13),%ebp
|
|
andnl %esi,%ebx,%edi
|
|
addl %ecx,%ebp
|
|
rorxl $27,%ebx,%r12d
|
|
rorxl $2,%ebx,%ecx
|
|
andl %edx,%ebx
|
|
addl %r12d,%ebp
|
|
xorl %edi,%ebx
|
|
addl 4(%r13),%eax
|
|
andnl %edx,%ebp,%edi
|
|
addl %ebx,%eax
|
|
rorxl $27,%ebp,%r12d
|
|
rorxl $2,%ebp,%ebx
|
|
andl %ecx,%ebp
|
|
addl %r12d,%eax
|
|
xorl %edi,%ebp
|
|
addl 8(%r13),%esi
|
|
andnl %ecx,%eax,%edi
|
|
addl %ebp,%esi
|
|
rorxl $27,%eax,%r12d
|
|
rorxl $2,%eax,%ebp
|
|
andl %ebx,%eax
|
|
addl %r12d,%esi
|
|
xorl %edi,%eax
|
|
addl 12(%r13),%edx
|
|
leal (%rdx,%rax,1),%edx
|
|
rorxl $27,%esi,%r12d
|
|
rorxl $2,%esi,%eax
|
|
xorl %ebp,%esi
|
|
addl %r12d,%edx
|
|
xorl %ebx,%esi
|
|
addl 32(%r13),%ecx
|
|
leal (%rcx,%rsi,1),%ecx
|
|
rorxl $27,%edx,%r12d
|
|
rorxl $2,%edx,%esi
|
|
xorl %eax,%edx
|
|
addl %r12d,%ecx
|
|
xorl %ebp,%edx
|
|
addl 36(%r13),%ebx
|
|
leal (%rbx,%rdx,1),%ebx
|
|
rorxl $27,%ecx,%r12d
|
|
rorxl $2,%ecx,%edx
|
|
xorl %esi,%ecx
|
|
addl %r12d,%ebx
|
|
xorl %eax,%ecx
|
|
addl 40(%r13),%ebp
|
|
leal (%rcx,%rbp,1),%ebp
|
|
rorxl $27,%ebx,%r12d
|
|
rorxl $2,%ebx,%ecx
|
|
xorl %edx,%ebx
|
|
addl %r12d,%ebp
|
|
xorl %esi,%ebx
|
|
addl 44(%r13),%eax
|
|
leal (%rax,%rbx,1),%eax
|
|
rorxl $27,%ebp,%r12d
|
|
rorxl $2,%ebp,%ebx
|
|
xorl %ecx,%ebp
|
|
addl %r12d,%eax
|
|
xorl %edx,%ebp
|
|
addl 64(%r13),%esi
|
|
leal (%rsi,%rbp,1),%esi
|
|
rorxl $27,%eax,%r12d
|
|
rorxl $2,%eax,%ebp
|
|
xorl %ebx,%eax
|
|
addl %r12d,%esi
|
|
xorl %ecx,%eax
|
|
vmovdqu -64(%r11),%ymm11
|
|
vpshufb %ymm6,%ymm0,%ymm0
|
|
addl 68(%r13),%edx
|
|
leal (%rdx,%rax,1),%edx
|
|
rorxl $27,%esi,%r12d
|
|
rorxl $2,%esi,%eax
|
|
xorl %ebp,%esi
|
|
addl %r12d,%edx
|
|
xorl %ebx,%esi
|
|
addl 72(%r13),%ecx
|
|
leal (%rcx,%rsi,1),%ecx
|
|
rorxl $27,%edx,%r12d
|
|
rorxl $2,%edx,%esi
|
|
xorl %eax,%edx
|
|
addl %r12d,%ecx
|
|
xorl %ebp,%edx
|
|
addl 76(%r13),%ebx
|
|
leal (%rbx,%rdx,1),%ebx
|
|
rorxl $27,%ecx,%r12d
|
|
rorxl $2,%ecx,%edx
|
|
xorl %esi,%ecx
|
|
addl %r12d,%ebx
|
|
xorl %eax,%ecx
|
|
addl 96(%r13),%ebp
|
|
leal (%rcx,%rbp,1),%ebp
|
|
rorxl $27,%ebx,%r12d
|
|
rorxl $2,%ebx,%ecx
|
|
xorl %edx,%ebx
|
|
addl %r12d,%ebp
|
|
xorl %esi,%ebx
|
|
addl 100(%r13),%eax
|
|
leal (%rax,%rbx,1),%eax
|
|
rorxl $27,%ebp,%r12d
|
|
rorxl $2,%ebp,%ebx
|
|
xorl %ecx,%ebp
|
|
addl %r12d,%eax
|
|
xorl %edx,%ebp
|
|
vpshufb %ymm6,%ymm1,%ymm1
|
|
vpaddd %ymm11,%ymm0,%ymm8
|
|
addl 104(%r13),%esi
|
|
leal (%rsi,%rbp,1),%esi
|
|
rorxl $27,%eax,%r12d
|
|
rorxl $2,%eax,%ebp
|
|
xorl %ebx,%eax
|
|
addl %r12d,%esi
|
|
xorl %ecx,%eax
|
|
addl 108(%r13),%edx
|
|
leaq 256(%r13),%r13
|
|
leal (%rdx,%rax,1),%edx
|
|
rorxl $27,%esi,%r12d
|
|
rorxl $2,%esi,%eax
|
|
xorl %ebp,%esi
|
|
addl %r12d,%edx
|
|
xorl %ebx,%esi
|
|
addl -128(%r13),%ecx
|
|
leal (%rcx,%rsi,1),%ecx
|
|
rorxl $27,%edx,%r12d
|
|
rorxl $2,%edx,%esi
|
|
xorl %eax,%edx
|
|
addl %r12d,%ecx
|
|
xorl %ebp,%edx
|
|
addl -124(%r13),%ebx
|
|
leal (%rbx,%rdx,1),%ebx
|
|
rorxl $27,%ecx,%r12d
|
|
rorxl $2,%ecx,%edx
|
|
xorl %esi,%ecx
|
|
addl %r12d,%ebx
|
|
xorl %eax,%ecx
|
|
addl -120(%r13),%ebp
|
|
leal (%rcx,%rbp,1),%ebp
|
|
rorxl $27,%ebx,%r12d
|
|
rorxl $2,%ebx,%ecx
|
|
xorl %edx,%ebx
|
|
addl %r12d,%ebp
|
|
xorl %esi,%ebx
|
|
vmovdqu %ymm8,0(%rsp)
|
|
vpshufb %ymm6,%ymm2,%ymm2
|
|
vpaddd %ymm11,%ymm1,%ymm9
|
|
addl -116(%r13),%eax
|
|
leal (%rax,%rbx,1),%eax
|
|
rorxl $27,%ebp,%r12d
|
|
rorxl $2,%ebp,%ebx
|
|
xorl %ecx,%ebp
|
|
addl %r12d,%eax
|
|
xorl %edx,%ebp
|
|
addl -96(%r13),%esi
|
|
leal (%rsi,%rbp,1),%esi
|
|
rorxl $27,%eax,%r12d
|
|
rorxl $2,%eax,%ebp
|
|
xorl %ebx,%eax
|
|
addl %r12d,%esi
|
|
xorl %ecx,%eax
|
|
addl -92(%r13),%edx
|
|
leal (%rdx,%rax,1),%edx
|
|
rorxl $27,%esi,%r12d
|
|
rorxl $2,%esi,%eax
|
|
xorl %ebp,%esi
|
|
addl %r12d,%edx
|
|
xorl %ebx,%esi
|
|
addl -88(%r13),%ecx
|
|
leal (%rcx,%rsi,1),%ecx
|
|
rorxl $27,%edx,%r12d
|
|
rorxl $2,%edx,%esi
|
|
xorl %eax,%edx
|
|
addl %r12d,%ecx
|
|
xorl %ebp,%edx
|
|
addl -84(%r13),%ebx
|
|
movl %esi,%edi
|
|
xorl %eax,%edi
|
|
leal (%rbx,%rdx,1),%ebx
|
|
rorxl $27,%ecx,%r12d
|
|
rorxl $2,%ecx,%edx
|
|
xorl %esi,%ecx
|
|
addl %r12d,%ebx
|
|
andl %edi,%ecx
|
|
vmovdqu %ymm9,32(%rsp)
|
|
vpshufb %ymm6,%ymm3,%ymm3
|
|
vpaddd %ymm11,%ymm2,%ymm6
|
|
addl -64(%r13),%ebp
|
|
xorl %esi,%ecx
|
|
movl %edx,%edi
|
|
xorl %esi,%edi
|
|
leal (%rcx,%rbp,1),%ebp
|
|
rorxl $27,%ebx,%r12d
|
|
rorxl $2,%ebx,%ecx
|
|
xorl %edx,%ebx
|
|
addl %r12d,%ebp
|
|
andl %edi,%ebx
|
|
addl -60(%r13),%eax
|
|
xorl %edx,%ebx
|
|
movl %ecx,%edi
|
|
xorl %edx,%edi
|
|
leal (%rax,%rbx,1),%eax
|
|
rorxl $27,%ebp,%r12d
|
|
rorxl $2,%ebp,%ebx
|
|
xorl %ecx,%ebp
|
|
addl %r12d,%eax
|
|
andl %edi,%ebp
|
|
addl -56(%r13),%esi
|
|
xorl %ecx,%ebp
|
|
movl %ebx,%edi
|
|
xorl %ecx,%edi
|
|
leal (%rsi,%rbp,1),%esi
|
|
rorxl $27,%eax,%r12d
|
|
rorxl $2,%eax,%ebp
|
|
xorl %ebx,%eax
|
|
addl %r12d,%esi
|
|
andl %edi,%eax
|
|
addl -52(%r13),%edx
|
|
xorl %ebx,%eax
|
|
movl %ebp,%edi
|
|
xorl %ebx,%edi
|
|
leal (%rdx,%rax,1),%edx
|
|
rorxl $27,%esi,%r12d
|
|
rorxl $2,%esi,%eax
|
|
xorl %ebp,%esi
|
|
addl %r12d,%edx
|
|
andl %edi,%esi
|
|
addl -32(%r13),%ecx
|
|
xorl %ebp,%esi
|
|
movl %eax,%edi
|
|
xorl %ebp,%edi
|
|
leal (%rcx,%rsi,1),%ecx
|
|
rorxl $27,%edx,%r12d
|
|
rorxl $2,%edx,%esi
|
|
xorl %eax,%edx
|
|
addl %r12d,%ecx
|
|
andl %edi,%edx
|
|
jmp .Lalign32_3
|
|
.align 32
|
|
.Lalign32_3:
|
|
vmovdqu %ymm6,64(%rsp)
|
|
vpaddd %ymm11,%ymm3,%ymm7
|
|
addl -28(%r13),%ebx
|
|
xorl %eax,%edx
|
|
movl %esi,%edi
|
|
xorl %eax,%edi
|
|
leal (%rbx,%rdx,1),%ebx
|
|
rorxl $27,%ecx,%r12d
|
|
rorxl $2,%ecx,%edx
|
|
xorl %esi,%ecx
|
|
addl %r12d,%ebx
|
|
andl %edi,%ecx
|
|
addl -24(%r13),%ebp
|
|
xorl %esi,%ecx
|
|
movl %edx,%edi
|
|
xorl %esi,%edi
|
|
leal (%rcx,%rbp,1),%ebp
|
|
rorxl $27,%ebx,%r12d
|
|
rorxl $2,%ebx,%ecx
|
|
xorl %edx,%ebx
|
|
addl %r12d,%ebp
|
|
andl %edi,%ebx
|
|
addl -20(%r13),%eax
|
|
xorl %edx,%ebx
|
|
movl %ecx,%edi
|
|
xorl %edx,%edi
|
|
leal (%rax,%rbx,1),%eax
|
|
rorxl $27,%ebp,%r12d
|
|
rorxl $2,%ebp,%ebx
|
|
xorl %ecx,%ebp
|
|
addl %r12d,%eax
|
|
andl %edi,%ebp
|
|
addl 0(%r13),%esi
|
|
xorl %ecx,%ebp
|
|
movl %ebx,%edi
|
|
xorl %ecx,%edi
|
|
leal (%rsi,%rbp,1),%esi
|
|
rorxl $27,%eax,%r12d
|
|
rorxl $2,%eax,%ebp
|
|
xorl %ebx,%eax
|
|
addl %r12d,%esi
|
|
andl %edi,%eax
|
|
addl 4(%r13),%edx
|
|
xorl %ebx,%eax
|
|
movl %ebp,%edi
|
|
xorl %ebx,%edi
|
|
leal (%rdx,%rax,1),%edx
|
|
rorxl $27,%esi,%r12d
|
|
rorxl $2,%esi,%eax
|
|
xorl %ebp,%esi
|
|
addl %r12d,%edx
|
|
andl %edi,%esi
|
|
vmovdqu %ymm7,96(%rsp)
|
|
addl 8(%r13),%ecx
|
|
xorl %ebp,%esi
|
|
movl %eax,%edi
|
|
xorl %ebp,%edi
|
|
leal (%rcx,%rsi,1),%ecx
|
|
rorxl $27,%edx,%r12d
|
|
rorxl $2,%edx,%esi
|
|
xorl %eax,%edx
|
|
addl %r12d,%ecx
|
|
andl %edi,%edx
|
|
addl 12(%r13),%ebx
|
|
xorl %eax,%edx
|
|
movl %esi,%edi
|
|
xorl %eax,%edi
|
|
leal (%rbx,%rdx,1),%ebx
|
|
rorxl $27,%ecx,%r12d
|
|
rorxl $2,%ecx,%edx
|
|
xorl %esi,%ecx
|
|
addl %r12d,%ebx
|
|
andl %edi,%ecx
|
|
addl 32(%r13),%ebp
|
|
xorl %esi,%ecx
|
|
movl %edx,%edi
|
|
xorl %esi,%edi
|
|
leal (%rcx,%rbp,1),%ebp
|
|
rorxl $27,%ebx,%r12d
|
|
rorxl $2,%ebx,%ecx
|
|
xorl %edx,%ebx
|
|
addl %r12d,%ebp
|
|
andl %edi,%ebx
|
|
addl 36(%r13),%eax
|
|
xorl %edx,%ebx
|
|
movl %ecx,%edi
|
|
xorl %edx,%edi
|
|
leal (%rax,%rbx,1),%eax
|
|
rorxl $27,%ebp,%r12d
|
|
rorxl $2,%ebp,%ebx
|
|
xorl %ecx,%ebp
|
|
addl %r12d,%eax
|
|
andl %edi,%ebp
|
|
addl 40(%r13),%esi
|
|
xorl %ecx,%ebp
|
|
movl %ebx,%edi
|
|
xorl %ecx,%edi
|
|
leal (%rsi,%rbp,1),%esi
|
|
rorxl $27,%eax,%r12d
|
|
rorxl $2,%eax,%ebp
|
|
xorl %ebx,%eax
|
|
addl %r12d,%esi
|
|
andl %edi,%eax
|
|
vpalignr $8,%ymm0,%ymm1,%ymm4
|
|
addl 44(%r13),%edx
|
|
xorl %ebx,%eax
|
|
movl %ebp,%edi
|
|
xorl %ebx,%edi
|
|
vpsrldq $4,%ymm3,%ymm8
|
|
leal (%rdx,%rax,1),%edx
|
|
rorxl $27,%esi,%r12d
|
|
rorxl $2,%esi,%eax
|
|
vpxor %ymm0,%ymm4,%ymm4
|
|
vpxor %ymm2,%ymm8,%ymm8
|
|
xorl %ebp,%esi
|
|
addl %r12d,%edx
|
|
vpxor %ymm8,%ymm4,%ymm4
|
|
andl %edi,%esi
|
|
addl 64(%r13),%ecx
|
|
xorl %ebp,%esi
|
|
movl %eax,%edi
|
|
vpsrld $31,%ymm4,%ymm8
|
|
xorl %ebp,%edi
|
|
leal (%rcx,%rsi,1),%ecx
|
|
rorxl $27,%edx,%r12d
|
|
vpslldq $12,%ymm4,%ymm10
|
|
vpaddd %ymm4,%ymm4,%ymm4
|
|
rorxl $2,%edx,%esi
|
|
xorl %eax,%edx
|
|
vpsrld $30,%ymm10,%ymm9
|
|
vpor %ymm8,%ymm4,%ymm4
|
|
addl %r12d,%ecx
|
|
andl %edi,%edx
|
|
vpslld $2,%ymm10,%ymm10
|
|
vpxor %ymm9,%ymm4,%ymm4
|
|
addl 68(%r13),%ebx
|
|
xorl %eax,%edx
|
|
vpxor %ymm10,%ymm4,%ymm4
|
|
movl %esi,%edi
|
|
xorl %eax,%edi
|
|
leal (%rbx,%rdx,1),%ebx
|
|
vpaddd %ymm11,%ymm4,%ymm9
|
|
rorxl $27,%ecx,%r12d
|
|
rorxl $2,%ecx,%edx
|
|
xorl %esi,%ecx
|
|
vmovdqu %ymm9,128(%rsp)
|
|
addl %r12d,%ebx
|
|
andl %edi,%ecx
|
|
addl 72(%r13),%ebp
|
|
xorl %esi,%ecx
|
|
movl %edx,%edi
|
|
xorl %esi,%edi
|
|
leal (%rcx,%rbp,1),%ebp
|
|
rorxl $27,%ebx,%r12d
|
|
rorxl $2,%ebx,%ecx
|
|
xorl %edx,%ebx
|
|
addl %r12d,%ebp
|
|
andl %edi,%ebx
|
|
addl 76(%r13),%eax
|
|
xorl %edx,%ebx
|
|
leal (%rax,%rbx,1),%eax
|
|
rorxl $27,%ebp,%r12d
|
|
rorxl $2,%ebp,%ebx
|
|
xorl %ecx,%ebp
|
|
addl %r12d,%eax
|
|
xorl %edx,%ebp
|
|
vpalignr $8,%ymm1,%ymm2,%ymm5
|
|
addl 96(%r13),%esi
|
|
leal (%rsi,%rbp,1),%esi
|
|
rorxl $27,%eax,%r12d
|
|
rorxl $2,%eax,%ebp
|
|
vpsrldq $4,%ymm4,%ymm8
|
|
xorl %ebx,%eax
|
|
addl %r12d,%esi
|
|
xorl %ecx,%eax
|
|
vpxor %ymm1,%ymm5,%ymm5
|
|
vpxor %ymm3,%ymm8,%ymm8
|
|
addl 100(%r13),%edx
|
|
leal (%rdx,%rax,1),%edx
|
|
vpxor %ymm8,%ymm5,%ymm5
|
|
rorxl $27,%esi,%r12d
|
|
rorxl $2,%esi,%eax
|
|
xorl %ebp,%esi
|
|
addl %r12d,%edx
|
|
vpsrld $31,%ymm5,%ymm8
|
|
vmovdqu -32(%r11),%ymm11
|
|
xorl %ebx,%esi
|
|
addl 104(%r13),%ecx
|
|
leal (%rcx,%rsi,1),%ecx
|
|
vpslldq $12,%ymm5,%ymm10
|
|
vpaddd %ymm5,%ymm5,%ymm5
|
|
rorxl $27,%edx,%r12d
|
|
rorxl $2,%edx,%esi
|
|
vpsrld $30,%ymm10,%ymm9
|
|
vpor %ymm8,%ymm5,%ymm5
|
|
xorl %eax,%edx
|
|
addl %r12d,%ecx
|
|
vpslld $2,%ymm10,%ymm10
|
|
vpxor %ymm9,%ymm5,%ymm5
|
|
xorl %ebp,%edx
|
|
addl 108(%r13),%ebx
|
|
leaq 256(%r13),%r13
|
|
vpxor %ymm10,%ymm5,%ymm5
|
|
leal (%rbx,%rdx,1),%ebx
|
|
rorxl $27,%ecx,%r12d
|
|
rorxl $2,%ecx,%edx
|
|
vpaddd %ymm11,%ymm5,%ymm9
|
|
xorl %esi,%ecx
|
|
addl %r12d,%ebx
|
|
xorl %eax,%ecx
|
|
vmovdqu %ymm9,160(%rsp)
|
|
addl -128(%r13),%ebp
|
|
leal (%rcx,%rbp,1),%ebp
|
|
rorxl $27,%ebx,%r12d
|
|
rorxl $2,%ebx,%ecx
|
|
xorl %edx,%ebx
|
|
addl %r12d,%ebp
|
|
xorl %esi,%ebx
|
|
vpalignr $8,%ymm2,%ymm3,%ymm6
|
|
addl -124(%r13),%eax
|
|
leal (%rax,%rbx,1),%eax
|
|
rorxl $27,%ebp,%r12d
|
|
rorxl $2,%ebp,%ebx
|
|
vpsrldq $4,%ymm5,%ymm8
|
|
xorl %ecx,%ebp
|
|
addl %r12d,%eax
|
|
xorl %edx,%ebp
|
|
vpxor %ymm2,%ymm6,%ymm6
|
|
vpxor %ymm4,%ymm8,%ymm8
|
|
addl -120(%r13),%esi
|
|
leal (%rsi,%rbp,1),%esi
|
|
vpxor %ymm8,%ymm6,%ymm6
|
|
rorxl $27,%eax,%r12d
|
|
rorxl $2,%eax,%ebp
|
|
xorl %ebx,%eax
|
|
addl %r12d,%esi
|
|
vpsrld $31,%ymm6,%ymm8
|
|
xorl %ecx,%eax
|
|
addl -116(%r13),%edx
|
|
leal (%rdx,%rax,1),%edx
|
|
vpslldq $12,%ymm6,%ymm10
|
|
vpaddd %ymm6,%ymm6,%ymm6
|
|
rorxl $27,%esi,%r12d
|
|
rorxl $2,%esi,%eax
|
|
vpsrld $30,%ymm10,%ymm9
|
|
vpor %ymm8,%ymm6,%ymm6
|
|
xorl %ebp,%esi
|
|
addl %r12d,%edx
|
|
vpslld $2,%ymm10,%ymm10
|
|
vpxor %ymm9,%ymm6,%ymm6
|
|
xorl %ebx,%esi
|
|
addl -96(%r13),%ecx
|
|
vpxor %ymm10,%ymm6,%ymm6
|
|
leal (%rcx,%rsi,1),%ecx
|
|
rorxl $27,%edx,%r12d
|
|
rorxl $2,%edx,%esi
|
|
vpaddd %ymm11,%ymm6,%ymm9
|
|
xorl %eax,%edx
|
|
addl %r12d,%ecx
|
|
xorl %ebp,%edx
|
|
vmovdqu %ymm9,192(%rsp)
|
|
addl -92(%r13),%ebx
|
|
leal (%rbx,%rdx,1),%ebx
|
|
rorxl $27,%ecx,%r12d
|
|
rorxl $2,%ecx,%edx
|
|
xorl %esi,%ecx
|
|
addl %r12d,%ebx
|
|
xorl %eax,%ecx
|
|
vpalignr $8,%ymm3,%ymm4,%ymm7
|
|
addl -88(%r13),%ebp
|
|
leal (%rcx,%rbp,1),%ebp
|
|
rorxl $27,%ebx,%r12d
|
|
rorxl $2,%ebx,%ecx
|
|
vpsrldq $4,%ymm6,%ymm8
|
|
xorl %edx,%ebx
|
|
addl %r12d,%ebp
|
|
xorl %esi,%ebx
|
|
vpxor %ymm3,%ymm7,%ymm7
|
|
vpxor %ymm5,%ymm8,%ymm8
|
|
addl -84(%r13),%eax
|
|
leal (%rax,%rbx,1),%eax
|
|
vpxor %ymm8,%ymm7,%ymm7
|
|
rorxl $27,%ebp,%r12d
|
|
rorxl $2,%ebp,%ebx
|
|
xorl %ecx,%ebp
|
|
addl %r12d,%eax
|
|
vpsrld $31,%ymm7,%ymm8
|
|
xorl %edx,%ebp
|
|
addl -64(%r13),%esi
|
|
leal (%rsi,%rbp,1),%esi
|
|
vpslldq $12,%ymm7,%ymm10
|
|
vpaddd %ymm7,%ymm7,%ymm7
|
|
rorxl $27,%eax,%r12d
|
|
rorxl $2,%eax,%ebp
|
|
vpsrld $30,%ymm10,%ymm9
|
|
vpor %ymm8,%ymm7,%ymm7
|
|
xorl %ebx,%eax
|
|
addl %r12d,%esi
|
|
vpslld $2,%ymm10,%ymm10
|
|
vpxor %ymm9,%ymm7,%ymm7
|
|
xorl %ecx,%eax
|
|
addl -60(%r13),%edx
|
|
vpxor %ymm10,%ymm7,%ymm7
|
|
leal (%rdx,%rax,1),%edx
|
|
rorxl $27,%esi,%r12d
|
|
rorxl $2,%esi,%eax
|
|
vpaddd %ymm11,%ymm7,%ymm9
|
|
xorl %ebp,%esi
|
|
addl %r12d,%edx
|
|
xorl %ebx,%esi
|
|
vmovdqu %ymm9,224(%rsp)
|
|
addl -56(%r13),%ecx
|
|
leal (%rcx,%rsi,1),%ecx
|
|
rorxl $27,%edx,%r12d
|
|
rorxl $2,%edx,%esi
|
|
xorl %eax,%edx
|
|
addl %r12d,%ecx
|
|
xorl %ebp,%edx
|
|
addl -52(%r13),%ebx
|
|
leal (%rbx,%rdx,1),%ebx
|
|
rorxl $27,%ecx,%r12d
|
|
rorxl $2,%ecx,%edx
|
|
xorl %esi,%ecx
|
|
addl %r12d,%ebx
|
|
xorl %eax,%ecx
|
|
addl -32(%r13),%ebp
|
|
leal (%rcx,%rbp,1),%ebp
|
|
rorxl $27,%ebx,%r12d
|
|
rorxl $2,%ebx,%ecx
|
|
xorl %edx,%ebx
|
|
addl %r12d,%ebp
|
|
xorl %esi,%ebx
|
|
addl -28(%r13),%eax
|
|
leal (%rax,%rbx,1),%eax
|
|
rorxl $27,%ebp,%r12d
|
|
rorxl $2,%ebp,%ebx
|
|
xorl %ecx,%ebp
|
|
addl %r12d,%eax
|
|
xorl %edx,%ebp
|
|
addl -24(%r13),%esi
|
|
leal (%rsi,%rbp,1),%esi
|
|
rorxl $27,%eax,%r12d
|
|
rorxl $2,%eax,%ebp
|
|
xorl %ebx,%eax
|
|
addl %r12d,%esi
|
|
xorl %ecx,%eax
|
|
addl -20(%r13),%edx
|
|
leal (%rdx,%rax,1),%edx
|
|
rorxl $27,%esi,%r12d
|
|
addl %r12d,%edx
|
|
leaq 128(%rsp),%r13
|
|
|
|
|
|
addl 0(%r8),%edx
|
|
addl 4(%r8),%esi
|
|
addl 8(%r8),%ebp
|
|
movl %edx,0(%r8)
|
|
addl 12(%r8),%ebx
|
|
movl %esi,4(%r8)
|
|
movl %edx,%eax
|
|
addl 16(%r8),%ecx
|
|
movl %ebp,%r12d
|
|
movl %ebp,8(%r8)
|
|
movl %ebx,%edx
|
|
|
|
movl %ebx,12(%r8)
|
|
movl %esi,%ebp
|
|
movl %ecx,16(%r8)
|
|
|
|
movl %ecx,%esi
|
|
movl %r12d,%ecx
|
|
|
|
|
|
cmpq %r10,%r9
|
|
jbe .Loop_avx2
|
|
|
|
.Ldone_avx2:
|
|
vzeroupper
|
|
leaq (%r14),%rsi
|
|
movq -40(%rsi),%r14
|
|
movq -32(%rsi),%r13
|
|
movq -24(%rsi),%r12
|
|
movq -16(%rsi),%rbp
|
|
movq -8(%rsi),%rbx
|
|
leaq (%rsi),%rsp
|
|
.Lepilogue_avx2:
|
|
.byte 0xf3,0xc3
|
|
.size sha1_block_data_order_avx2,.-sha1_block_data_order_avx2
|
|
.align 64
|
|
K_XX_XX:
|
|
.long 0x5a827999,0x5a827999,0x5a827999,0x5a827999
|
|
.long 0x5a827999,0x5a827999,0x5a827999,0x5a827999
|
|
.long 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
|
|
.long 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
|
|
.long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
|
|
.long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
|
|
.long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
|
|
.long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
|
|
.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
|
|
.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
|
|
.byte 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0
|
|
.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
|
|
.align 64
|