freebsd-dev/secure/lib/libcrypto/amd64/aesni-sha1-x86_64.S
Jung-uk Kim 1f13597d10 Merge OpenSSL 1.0.1c.
Approved by:	benl (maintainer)
2012-07-12 19:30:53 +00:00

1398 lines
25 KiB
ArmAsm

# $FreeBSD$
.text
.globl aesni_cbc_sha1_enc
.type aesni_cbc_sha1_enc,@function
.align 16
aesni_cbc_sha1_enc:
movl OPENSSL_ia32cap_P+0(%rip),%r10d
movl OPENSSL_ia32cap_P+4(%rip),%r11d
jmp aesni_cbc_sha1_enc_ssse3
.byte 0xf3,0xc3
.size aesni_cbc_sha1_enc,.-aesni_cbc_sha1_enc
.type aesni_cbc_sha1_enc_ssse3,@function
.align 16
aesni_cbc_sha1_enc_ssse3:
movq 8(%rsp),%r10
pushq %rbx
pushq %rbp
pushq %r12
pushq %r13
pushq %r14
pushq %r15
leaq -104(%rsp),%rsp
movq %rdi,%r12
movq %rsi,%r13
movq %rdx,%r14
movq %rcx,%r15
movdqu (%r8),%xmm11
movq %r8,88(%rsp)
shlq $6,%r14
subq %r12,%r13
movl 240(%r15),%r8d
addq %r10,%r14
leaq K_XX_XX(%rip),%r11
movl 0(%r9),%eax
movl 4(%r9),%ebx
movl 8(%r9),%ecx
movl 12(%r9),%edx
movl %ebx,%esi
movl 16(%r9),%ebp
movdqa 64(%r11),%xmm6
movdqa 0(%r11),%xmm9
movdqu 0(%r10),%xmm0
movdqu 16(%r10),%xmm1
movdqu 32(%r10),%xmm2
movdqu 48(%r10),%xmm3
.byte 102,15,56,0,198
addq $64,%r10
.byte 102,15,56,0,206
.byte 102,15,56,0,214
.byte 102,15,56,0,222
paddd %xmm9,%xmm0
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
movups (%r15),%xmm13
movups 16(%r15),%xmm14
jmp .Loop_ssse3
.align 16
.Loop_ssse3:
movdqa %xmm1,%xmm4
addl 0(%rsp),%ebp
movups 0(%r12),%xmm12
xorps %xmm13,%xmm12
xorps %xmm12,%xmm11
.byte 102,69,15,56,220,222
movups 32(%r15),%xmm15
xorl %edx,%ecx
movdqa %xmm3,%xmm8
.byte 102,15,58,15,224,8
movl %eax,%edi
roll $5,%eax
paddd %xmm3,%xmm9
andl %ecx,%esi
xorl %edx,%ecx
psrldq $4,%xmm8
xorl %edx,%esi
addl %eax,%ebp
pxor %xmm0,%xmm4
rorl $2,%ebx
addl %esi,%ebp
pxor %xmm2,%xmm8
addl 4(%rsp),%edx
xorl %ecx,%ebx
movl %ebp,%esi
roll $5,%ebp
pxor %xmm8,%xmm4
andl %ebx,%edi
xorl %ecx,%ebx
movdqa %xmm9,48(%rsp)
xorl %ecx,%edi
.byte 102,69,15,56,220,223
movups 48(%r15),%xmm14
addl %ebp,%edx
movdqa %xmm4,%xmm10
movdqa %xmm4,%xmm8
rorl $7,%eax
addl %edi,%edx
addl 8(%rsp),%ecx
xorl %ebx,%eax
pslldq $12,%xmm10
paddd %xmm4,%xmm4
movl %edx,%edi
roll $5,%edx
andl %eax,%esi
xorl %ebx,%eax
psrld $31,%xmm8
xorl %ebx,%esi
addl %edx,%ecx
movdqa %xmm10,%xmm9
rorl $7,%ebp
addl %esi,%ecx
psrld $30,%xmm10
por %xmm8,%xmm4
addl 12(%rsp),%ebx
xorl %eax,%ebp
movl %ecx,%esi
roll $5,%ecx
.byte 102,69,15,56,220,222
movups 64(%r15),%xmm15
pslld $2,%xmm9
pxor %xmm10,%xmm4
andl %ebp,%edi
xorl %eax,%ebp
movdqa 0(%r11),%xmm10
xorl %eax,%edi
addl %ecx,%ebx
pxor %xmm9,%xmm4
rorl $7,%edx
addl %edi,%ebx
movdqa %xmm2,%xmm5
addl 16(%rsp),%eax
xorl %ebp,%edx
movdqa %xmm4,%xmm9
.byte 102,15,58,15,233,8
movl %ebx,%edi
roll $5,%ebx
paddd %xmm4,%xmm10
andl %edx,%esi
xorl %ebp,%edx
psrldq $4,%xmm9
xorl %ebp,%esi
addl %ebx,%eax
pxor %xmm1,%xmm5
rorl $7,%ecx
addl %esi,%eax
pxor %xmm3,%xmm9
addl 20(%rsp),%ebp
.byte 102,69,15,56,220,223
movups 80(%r15),%xmm14
xorl %edx,%ecx
movl %eax,%esi
roll $5,%eax
pxor %xmm9,%xmm5
andl %ecx,%edi
xorl %edx,%ecx
movdqa %xmm10,0(%rsp)
xorl %edx,%edi
addl %eax,%ebp
movdqa %xmm5,%xmm8
movdqa %xmm5,%xmm9
rorl $7,%ebx
addl %edi,%ebp
addl 24(%rsp),%edx
xorl %ecx,%ebx
pslldq $12,%xmm8
paddd %xmm5,%xmm5
movl %ebp,%edi
roll $5,%ebp
andl %ebx,%esi
xorl %ecx,%ebx
psrld $31,%xmm9
xorl %ecx,%esi
.byte 102,69,15,56,220,222
movups 96(%r15),%xmm15
addl %ebp,%edx
movdqa %xmm8,%xmm10
rorl $7,%eax
addl %esi,%edx
psrld $30,%xmm8
por %xmm9,%xmm5
addl 28(%rsp),%ecx
xorl %ebx,%eax
movl %edx,%esi
roll $5,%edx
pslld $2,%xmm10
pxor %xmm8,%xmm5
andl %eax,%edi
xorl %ebx,%eax
movdqa 16(%r11),%xmm8
xorl %ebx,%edi
addl %edx,%ecx
pxor %xmm10,%xmm5
rorl $7,%ebp
addl %edi,%ecx
movdqa %xmm3,%xmm6
addl 32(%rsp),%ebx
xorl %eax,%ebp
movdqa %xmm5,%xmm10
.byte 102,15,58,15,242,8
movl %ecx,%edi
roll $5,%ecx
.byte 102,69,15,56,220,223
movups 112(%r15),%xmm14
paddd %xmm5,%xmm8
andl %ebp,%esi
xorl %eax,%ebp
psrldq $4,%xmm10
xorl %eax,%esi
addl %ecx,%ebx
pxor %xmm2,%xmm6
rorl $7,%edx
addl %esi,%ebx
pxor %xmm4,%xmm10
addl 36(%rsp),%eax
xorl %ebp,%edx
movl %ebx,%esi
roll $5,%ebx
pxor %xmm10,%xmm6
andl %edx,%edi
xorl %ebp,%edx
movdqa %xmm8,16(%rsp)
xorl %ebp,%edi
addl %ebx,%eax
movdqa %xmm6,%xmm9
movdqa %xmm6,%xmm10
rorl $7,%ecx
addl %edi,%eax
addl 40(%rsp),%ebp
.byte 102,69,15,56,220,222
movups 128(%r15),%xmm15
xorl %edx,%ecx
pslldq $12,%xmm9
paddd %xmm6,%xmm6
movl %eax,%edi
roll $5,%eax
andl %ecx,%esi
xorl %edx,%ecx
psrld $31,%xmm10
xorl %edx,%esi
addl %eax,%ebp
movdqa %xmm9,%xmm8
rorl $7,%ebx
addl %esi,%ebp
psrld $30,%xmm9
por %xmm10,%xmm6
addl 44(%rsp),%edx
xorl %ecx,%ebx
movl %ebp,%esi
roll $5,%ebp
pslld $2,%xmm8
pxor %xmm9,%xmm6
andl %ebx,%edi
xorl %ecx,%ebx
movdqa 16(%r11),%xmm9
xorl %ecx,%edi
.byte 102,69,15,56,220,223
movups 144(%r15),%xmm14
addl %ebp,%edx
pxor %xmm8,%xmm6
rorl $7,%eax
addl %edi,%edx
movdqa %xmm4,%xmm7
addl 48(%rsp),%ecx
xorl %ebx,%eax
movdqa %xmm6,%xmm8
.byte 102,15,58,15,251,8
movl %edx,%edi
roll $5,%edx
paddd %xmm6,%xmm9
andl %eax,%esi
xorl %ebx,%eax
psrldq $4,%xmm8
xorl %ebx,%esi
addl %edx,%ecx
pxor %xmm3,%xmm7
rorl $7,%ebp
addl %esi,%ecx
pxor %xmm5,%xmm8
addl 52(%rsp),%ebx
xorl %eax,%ebp
movl %ecx,%esi
roll $5,%ecx
.byte 102,69,15,56,220,222
movups 160(%r15),%xmm15
pxor %xmm8,%xmm7
andl %ebp,%edi
xorl %eax,%ebp
movdqa %xmm9,32(%rsp)
xorl %eax,%edi
addl %ecx,%ebx
movdqa %xmm7,%xmm10
movdqa %xmm7,%xmm8
rorl $7,%edx
addl %edi,%ebx
addl 56(%rsp),%eax
xorl %ebp,%edx
pslldq $12,%xmm10
paddd %xmm7,%xmm7
movl %ebx,%edi
roll $5,%ebx
andl %edx,%esi
xorl %ebp,%edx
psrld $31,%xmm8
xorl %ebp,%esi
addl %ebx,%eax
movdqa %xmm10,%xmm9
rorl $7,%ecx
addl %esi,%eax
psrld $30,%xmm10
por %xmm8,%xmm7
addl 60(%rsp),%ebp
cmpl $11,%r8d
jb .Laesenclast1
movups 176(%r15),%xmm14
.byte 102,69,15,56,220,223
movups 192(%r15),%xmm15
.byte 102,69,15,56,220,222
je .Laesenclast1
movups 208(%r15),%xmm14
.byte 102,69,15,56,220,223
movups 224(%r15),%xmm15
.byte 102,69,15,56,220,222
.Laesenclast1:
.byte 102,69,15,56,221,223
movups 16(%r15),%xmm14
xorl %edx,%ecx
movl %eax,%esi
roll $5,%eax
pslld $2,%xmm9
pxor %xmm10,%xmm7
andl %ecx,%edi
xorl %edx,%ecx
movdqa 16(%r11),%xmm10
xorl %edx,%edi
addl %eax,%ebp
pxor %xmm9,%xmm7
rorl $7,%ebx
addl %edi,%ebp
movdqa %xmm7,%xmm9
addl 0(%rsp),%edx
pxor %xmm4,%xmm0
.byte 102,68,15,58,15,206,8
xorl %ecx,%ebx
movl %ebp,%edi
roll $5,%ebp
pxor %xmm1,%xmm0
andl %ebx,%esi
xorl %ecx,%ebx
movdqa %xmm10,%xmm8
paddd %xmm7,%xmm10
xorl %ecx,%esi
movups 16(%r12),%xmm12
xorps %xmm13,%xmm12
movups %xmm11,0(%r13,%r12,1)
xorps %xmm12,%xmm11
.byte 102,69,15,56,220,222
movups 32(%r15),%xmm15
addl %ebp,%edx
pxor %xmm9,%xmm0
rorl $7,%eax
addl %esi,%edx
addl 4(%rsp),%ecx
xorl %ebx,%eax
movdqa %xmm0,%xmm9
movdqa %xmm10,48(%rsp)
movl %edx,%esi
roll $5,%edx
andl %eax,%edi
xorl %ebx,%eax
pslld $2,%xmm0
xorl %ebx,%edi
addl %edx,%ecx
psrld $30,%xmm9
rorl $7,%ebp
addl %edi,%ecx
addl 8(%rsp),%ebx
xorl %eax,%ebp
movl %ecx,%edi
roll $5,%ecx
.byte 102,69,15,56,220,223
movups 48(%r15),%xmm14
por %xmm9,%xmm0
andl %ebp,%esi
xorl %eax,%ebp
movdqa %xmm0,%xmm10
xorl %eax,%esi
addl %ecx,%ebx
rorl $7,%edx
addl %esi,%ebx
addl 12(%rsp),%eax
xorl %ebp,%edx
movl %ebx,%esi
roll $5,%ebx
andl %edx,%edi
xorl %ebp,%edx
xorl %ebp,%edi
addl %ebx,%eax
rorl $7,%ecx
addl %edi,%eax
addl 16(%rsp),%ebp
.byte 102,69,15,56,220,222
movups 64(%r15),%xmm15
pxor %xmm5,%xmm1
.byte 102,68,15,58,15,215,8
xorl %edx,%esi
movl %eax,%edi
roll $5,%eax
pxor %xmm2,%xmm1
xorl %ecx,%esi
addl %eax,%ebp
movdqa %xmm8,%xmm9
paddd %xmm0,%xmm8
rorl $7,%ebx
addl %esi,%ebp
pxor %xmm10,%xmm1
addl 20(%rsp),%edx
xorl %ecx,%edi
movl %ebp,%esi
roll $5,%ebp
movdqa %xmm1,%xmm10
movdqa %xmm8,0(%rsp)
xorl %ebx,%edi
addl %ebp,%edx
rorl $7,%eax
addl %edi,%edx
pslld $2,%xmm1
addl 24(%rsp),%ecx
xorl %ebx,%esi
psrld $30,%xmm10
movl %edx,%edi
roll $5,%edx
xorl %eax,%esi
.byte 102,69,15,56,220,223
movups 80(%r15),%xmm14
addl %edx,%ecx
rorl $7,%ebp
addl %esi,%ecx
por %xmm10,%xmm1
addl 28(%rsp),%ebx
xorl %eax,%edi
movdqa %xmm1,%xmm8
movl %ecx,%esi
roll $5,%ecx
xorl %ebp,%edi
addl %ecx,%ebx
rorl $7,%edx
addl %edi,%ebx
addl 32(%rsp),%eax
pxor %xmm6,%xmm2
.byte 102,68,15,58,15,192,8
xorl %ebp,%esi
movl %ebx,%edi
roll $5,%ebx
pxor %xmm3,%xmm2
xorl %edx,%esi
addl %ebx,%eax
movdqa 32(%r11),%xmm10
paddd %xmm1,%xmm9
rorl $7,%ecx
addl %esi,%eax
pxor %xmm8,%xmm2
addl 36(%rsp),%ebp
.byte 102,69,15,56,220,222
movups 96(%r15),%xmm15
xorl %edx,%edi
movl %eax,%esi
roll $5,%eax
movdqa %xmm2,%xmm8
movdqa %xmm9,16(%rsp)
xorl %ecx,%edi
addl %eax,%ebp
rorl $7,%ebx
addl %edi,%ebp
pslld $2,%xmm2
addl 40(%rsp),%edx
xorl %ecx,%esi
psrld $30,%xmm8
movl %ebp,%edi
roll $5,%ebp
xorl %ebx,%esi
addl %ebp,%edx
rorl $7,%eax
addl %esi,%edx
por %xmm8,%xmm2
addl 44(%rsp),%ecx
xorl %ebx,%edi
movdqa %xmm2,%xmm9
movl %edx,%esi
roll $5,%edx
xorl %eax,%edi
.byte 102,69,15,56,220,223
movups 112(%r15),%xmm14
addl %edx,%ecx
rorl $7,%ebp
addl %edi,%ecx
addl 48(%rsp),%ebx
pxor %xmm7,%xmm3
.byte 102,68,15,58,15,201,8
xorl %eax,%esi
movl %ecx,%edi
roll $5,%ecx
pxor %xmm4,%xmm3
xorl %ebp,%esi
addl %ecx,%ebx
movdqa %xmm10,%xmm8
paddd %xmm2,%xmm10
rorl $7,%edx
addl %esi,%ebx
pxor %xmm9,%xmm3
addl 52(%rsp),%eax
xorl %ebp,%edi
movl %ebx,%esi
roll $5,%ebx
movdqa %xmm3,%xmm9
movdqa %xmm10,32(%rsp)
xorl %edx,%edi
addl %ebx,%eax
rorl $7,%ecx
addl %edi,%eax
pslld $2,%xmm3
addl 56(%rsp),%ebp
.byte 102,69,15,56,220,222
movups 128(%r15),%xmm15
xorl %edx,%esi
psrld $30,%xmm9
movl %eax,%edi
roll $5,%eax
xorl %ecx,%esi
addl %eax,%ebp
rorl $7,%ebx
addl %esi,%ebp
por %xmm9,%xmm3
addl 60(%rsp),%edx
xorl %ecx,%edi
movdqa %xmm3,%xmm10
movl %ebp,%esi
roll $5,%ebp
xorl %ebx,%edi
addl %ebp,%edx
rorl $7,%eax
addl %edi,%edx
addl 0(%rsp),%ecx
pxor %xmm0,%xmm4
.byte 102,68,15,58,15,210,8
xorl %ebx,%esi
movl %edx,%edi
roll $5,%edx
pxor %xmm5,%xmm4
xorl %eax,%esi
.byte 102,69,15,56,220,223
movups 144(%r15),%xmm14
addl %edx,%ecx
movdqa %xmm8,%xmm9
paddd %xmm3,%xmm8
rorl $7,%ebp
addl %esi,%ecx
pxor %xmm10,%xmm4
addl 4(%rsp),%ebx
xorl %eax,%edi
movl %ecx,%esi
roll $5,%ecx
movdqa %xmm4,%xmm10
movdqa %xmm8,48(%rsp)
xorl %ebp,%edi
addl %ecx,%ebx
rorl $7,%edx
addl %edi,%ebx
pslld $2,%xmm4
addl 8(%rsp),%eax
xorl %ebp,%esi
psrld $30,%xmm10
movl %ebx,%edi
roll $5,%ebx
xorl %edx,%esi
addl %ebx,%eax
rorl $7,%ecx
addl %esi,%eax
por %xmm10,%xmm4
addl 12(%rsp),%ebp
.byte 102,69,15,56,220,222
movups 160(%r15),%xmm15
xorl %edx,%edi
movdqa %xmm4,%xmm8
movl %eax,%esi
roll $5,%eax
xorl %ecx,%edi
addl %eax,%ebp
rorl $7,%ebx
addl %edi,%ebp
addl 16(%rsp),%edx
pxor %xmm1,%xmm5
.byte 102,68,15,58,15,195,8
xorl %ecx,%esi
movl %ebp,%edi
roll $5,%ebp
pxor %xmm6,%xmm5
xorl %ebx,%esi
addl %ebp,%edx
movdqa %xmm9,%xmm10
paddd %xmm4,%xmm9
rorl $7,%eax
addl %esi,%edx
pxor %xmm8,%xmm5
addl 20(%rsp),%ecx
xorl %ebx,%edi
movl %edx,%esi
roll $5,%edx
movdqa %xmm5,%xmm8
movdqa %xmm9,0(%rsp)
xorl %eax,%edi
cmpl $11,%r8d
jb .Laesenclast2
movups 176(%r15),%xmm14
.byte 102,69,15,56,220,223
movups 192(%r15),%xmm15
.byte 102,69,15,56,220,222
je .Laesenclast2
movups 208(%r15),%xmm14
.byte 102,69,15,56,220,223
movups 224(%r15),%xmm15
.byte 102,69,15,56,220,222
.Laesenclast2:
.byte 102,69,15,56,221,223
movups 16(%r15),%xmm14
addl %edx,%ecx
rorl $7,%ebp
addl %edi,%ecx
pslld $2,%xmm5
addl 24(%rsp),%ebx
xorl %eax,%esi
psrld $30,%xmm8
movl %ecx,%edi
roll $5,%ecx
xorl %ebp,%esi
addl %ecx,%ebx
rorl $7,%edx
addl %esi,%ebx
por %xmm8,%xmm5
addl 28(%rsp),%eax
xorl %ebp,%edi
movdqa %xmm5,%xmm9
movl %ebx,%esi
roll $5,%ebx
xorl %edx,%edi
addl %ebx,%eax
rorl $7,%ecx
addl %edi,%eax
movl %ecx,%edi
movups 32(%r12),%xmm12
xorps %xmm13,%xmm12
movups %xmm11,16(%r13,%r12,1)
xorps %xmm12,%xmm11
.byte 102,69,15,56,220,222
movups 32(%r15),%xmm15
pxor %xmm2,%xmm6
.byte 102,68,15,58,15,204,8
xorl %edx,%ecx
addl 32(%rsp),%ebp
andl %edx,%edi
pxor %xmm7,%xmm6
andl %ecx,%esi
rorl $7,%ebx
movdqa %xmm10,%xmm8
paddd %xmm5,%xmm10
addl %edi,%ebp
movl %eax,%edi
pxor %xmm9,%xmm6
roll $5,%eax
addl %esi,%ebp
xorl %edx,%ecx
addl %eax,%ebp
movdqa %xmm6,%xmm9
movdqa %xmm10,16(%rsp)
movl %ebx,%esi
xorl %ecx,%ebx
addl 36(%rsp),%edx
andl %ecx,%esi
pslld $2,%xmm6
andl %ebx,%edi
rorl $7,%eax
psrld $30,%xmm9
addl %esi,%edx
movl %ebp,%esi
roll $5,%ebp
.byte 102,69,15,56,220,223
movups 48(%r15),%xmm14
addl %edi,%edx
xorl %ecx,%ebx
addl %ebp,%edx
por %xmm9,%xmm6
movl %eax,%edi
xorl %ebx,%eax
movdqa %xmm6,%xmm10
addl 40(%rsp),%ecx
andl %ebx,%edi
andl %eax,%esi
rorl $7,%ebp
addl %edi,%ecx
movl %edx,%edi
roll $5,%edx
addl %esi,%ecx
xorl %ebx,%eax
addl %edx,%ecx
movl %ebp,%esi
xorl %eax,%ebp
addl 44(%rsp),%ebx
andl %eax,%esi
andl %ebp,%edi
.byte 102,69,15,56,220,222
movups 64(%r15),%xmm15
rorl $7,%edx
addl %esi,%ebx
movl %ecx,%esi
roll $5,%ecx
addl %edi,%ebx
xorl %eax,%ebp
addl %ecx,%ebx
movl %edx,%edi
pxor %xmm3,%xmm7
.byte 102,68,15,58,15,213,8
xorl %ebp,%edx
addl 48(%rsp),%eax
andl %ebp,%edi
pxor %xmm0,%xmm7
andl %edx,%esi
rorl $7,%ecx
movdqa 48(%r11),%xmm9
paddd %xmm6,%xmm8
addl %edi,%eax
movl %ebx,%edi
pxor %xmm10,%xmm7
roll $5,%ebx
addl %esi,%eax
xorl %ebp,%edx
addl %ebx,%eax
movdqa %xmm7,%xmm10
movdqa %xmm8,32(%rsp)
movl %ecx,%esi
.byte 102,69,15,56,220,223
movups 80(%r15),%xmm14
xorl %edx,%ecx
addl 52(%rsp),%ebp
andl %edx,%esi
pslld $2,%xmm7
andl %ecx,%edi
rorl $7,%ebx
psrld $30,%xmm10
addl %esi,%ebp
movl %eax,%esi
roll $5,%eax
addl %edi,%ebp
xorl %edx,%ecx
addl %eax,%ebp
por %xmm10,%xmm7
movl %ebx,%edi
xorl %ecx,%ebx
movdqa %xmm7,%xmm8
addl 56(%rsp),%edx
andl %ecx,%edi
andl %ebx,%esi
rorl $7,%eax
addl %edi,%edx
movl %ebp,%edi
roll $5,%ebp
.byte 102,69,15,56,220,222
movups 96(%r15),%xmm15
addl %esi,%edx
xorl %ecx,%ebx
addl %ebp,%edx
movl %eax,%esi
xorl %ebx,%eax
addl 60(%rsp),%ecx
andl %ebx,%esi
andl %eax,%edi
rorl $7,%ebp
addl %esi,%ecx
movl %edx,%esi
roll $5,%edx
addl %edi,%ecx
xorl %ebx,%eax
addl %edx,%ecx
movl %ebp,%edi
pxor %xmm4,%xmm0
.byte 102,68,15,58,15,198,8
xorl %eax,%ebp
addl 0(%rsp),%ebx
andl %eax,%edi
pxor %xmm1,%xmm0
andl %ebp,%esi
.byte 102,69,15,56,220,223
movups 112(%r15),%xmm14
rorl $7,%edx
movdqa %xmm9,%xmm10
paddd %xmm7,%xmm9
addl %edi,%ebx
movl %ecx,%edi
pxor %xmm8,%xmm0
roll $5,%ecx
addl %esi,%ebx
xorl %eax,%ebp
addl %ecx,%ebx
movdqa %xmm0,%xmm8
movdqa %xmm9,48(%rsp)
movl %edx,%esi
xorl %ebp,%edx
addl 4(%rsp),%eax
andl %ebp,%esi
pslld $2,%xmm0
andl %edx,%edi
rorl $7,%ecx
psrld $30,%xmm8
addl %esi,%eax
movl %ebx,%esi
roll $5,%ebx
addl %edi,%eax
xorl %ebp,%edx
addl %ebx,%eax
por %xmm8,%xmm0
movl %ecx,%edi
.byte 102,69,15,56,220,222
movups 128(%r15),%xmm15
xorl %edx,%ecx
movdqa %xmm0,%xmm9
addl 8(%rsp),%ebp
andl %edx,%edi
andl %ecx,%esi
rorl $7,%ebx
addl %edi,%ebp
movl %eax,%edi
roll $5,%eax
addl %esi,%ebp
xorl %edx,%ecx
addl %eax,%ebp
movl %ebx,%esi
xorl %ecx,%ebx
addl 12(%rsp),%edx
andl %ecx,%esi
andl %ebx,%edi
rorl $7,%eax
addl %esi,%edx
movl %ebp,%esi
roll $5,%ebp
.byte 102,69,15,56,220,223
movups 144(%r15),%xmm14
addl %edi,%edx
xorl %ecx,%ebx
addl %ebp,%edx
movl %eax,%edi
pxor %xmm5,%xmm1
.byte 102,68,15,58,15,207,8
xorl %ebx,%eax
addl 16(%rsp),%ecx
andl %ebx,%edi
pxor %xmm2,%xmm1
andl %eax,%esi
rorl $7,%ebp
movdqa %xmm10,%xmm8
paddd %xmm0,%xmm10
addl %edi,%ecx
movl %edx,%edi
pxor %xmm9,%xmm1
roll $5,%edx
addl %esi,%ecx
xorl %ebx,%eax
addl %edx,%ecx
movdqa %xmm1,%xmm9
movdqa %xmm10,0(%rsp)
movl %ebp,%esi
xorl %eax,%ebp
addl 20(%rsp),%ebx
andl %eax,%esi
pslld $2,%xmm1
andl %ebp,%edi
.byte 102,69,15,56,220,222
movups 160(%r15),%xmm15
rorl $7,%edx
psrld $30,%xmm9
addl %esi,%ebx
movl %ecx,%esi
roll $5,%ecx
addl %edi,%ebx
xorl %eax,%ebp
addl %ecx,%ebx
por %xmm9,%xmm1
movl %edx,%edi
xorl %ebp,%edx
movdqa %xmm1,%xmm10
addl 24(%rsp),%eax
andl %ebp,%edi
andl %edx,%esi
rorl $7,%ecx
addl %edi,%eax
movl %ebx,%edi
roll $5,%ebx
addl %esi,%eax
xorl %ebp,%edx
addl %ebx,%eax
movl %ecx,%esi
cmpl $11,%r8d
jb .Laesenclast3
movups 176(%r15),%xmm14
.byte 102,69,15,56,220,223
movups 192(%r15),%xmm15
.byte 102,69,15,56,220,222
je .Laesenclast3
movups 208(%r15),%xmm14
.byte 102,69,15,56,220,223
movups 224(%r15),%xmm15
.byte 102,69,15,56,220,222
.Laesenclast3:
.byte 102,69,15,56,221,223
movups 16(%r15),%xmm14
xorl %edx,%ecx
addl 28(%rsp),%ebp
andl %edx,%esi
andl %ecx,%edi
rorl $7,%ebx
addl %esi,%ebp
movl %eax,%esi
roll $5,%eax
addl %edi,%ebp
xorl %edx,%ecx
addl %eax,%ebp
movl %ebx,%edi
pxor %xmm6,%xmm2
.byte 102,68,15,58,15,208,8
xorl %ecx,%ebx
addl 32(%rsp),%edx
andl %ecx,%edi
pxor %xmm3,%xmm2
andl %ebx,%esi
rorl $7,%eax
movdqa %xmm8,%xmm9
paddd %xmm1,%xmm8
addl %edi,%edx
movl %ebp,%edi
pxor %xmm10,%xmm2
roll $5,%ebp
movups 48(%r12),%xmm12
xorps %xmm13,%xmm12
movups %xmm11,32(%r13,%r12,1)
xorps %xmm12,%xmm11
.byte 102,69,15,56,220,222
movups 32(%r15),%xmm15
addl %esi,%edx
xorl %ecx,%ebx
addl %ebp,%edx
movdqa %xmm2,%xmm10
movdqa %xmm8,16(%rsp)
movl %eax,%esi
xorl %ebx,%eax
addl 36(%rsp),%ecx
andl %ebx,%esi
pslld $2,%xmm2
andl %eax,%edi
rorl $7,%ebp
psrld $30,%xmm10
addl %esi,%ecx
movl %edx,%esi
roll $5,%edx
addl %edi,%ecx
xorl %ebx,%eax
addl %edx,%ecx
por %xmm10,%xmm2
movl %ebp,%edi
xorl %eax,%ebp
movdqa %xmm2,%xmm8
addl 40(%rsp),%ebx
andl %eax,%edi
andl %ebp,%esi
.byte 102,69,15,56,220,223
movups 48(%r15),%xmm14
rorl $7,%edx
addl %edi,%ebx
movl %ecx,%edi
roll $5,%ecx
addl %esi,%ebx
xorl %eax,%ebp
addl %ecx,%ebx
movl %edx,%esi
xorl %ebp,%edx
addl 44(%rsp),%eax
andl %ebp,%esi
andl %edx,%edi
rorl $7,%ecx
addl %esi,%eax
movl %ebx,%esi
roll $5,%ebx
addl %edi,%eax
xorl %ebp,%edx
addl %ebx,%eax
addl 48(%rsp),%ebp
.byte 102,69,15,56,220,222
movups 64(%r15),%xmm15
pxor %xmm7,%xmm3
.byte 102,68,15,58,15,193,8
xorl %edx,%esi
movl %eax,%edi
roll $5,%eax
pxor %xmm4,%xmm3
xorl %ecx,%esi
addl %eax,%ebp
movdqa %xmm9,%xmm10
paddd %xmm2,%xmm9
rorl $7,%ebx
addl %esi,%ebp
pxor %xmm8,%xmm3
addl 52(%rsp),%edx
xorl %ecx,%edi
movl %ebp,%esi
roll $5,%ebp
movdqa %xmm3,%xmm8
movdqa %xmm9,32(%rsp)
xorl %ebx,%edi
addl %ebp,%edx
rorl $7,%eax
addl %edi,%edx
pslld $2,%xmm3
addl 56(%rsp),%ecx
xorl %ebx,%esi
psrld $30,%xmm8
movl %edx,%edi
roll $5,%edx
xorl %eax,%esi
.byte 102,69,15,56,220,223
movups 80(%r15),%xmm14
addl %edx,%ecx
rorl $7,%ebp
addl %esi,%ecx
por %xmm8,%xmm3
addl 60(%rsp),%ebx
xorl %eax,%edi
movl %ecx,%esi
roll $5,%ecx
xorl %ebp,%edi
addl %ecx,%ebx
rorl $7,%edx
addl %edi,%ebx
addl 0(%rsp),%eax
paddd %xmm3,%xmm10
xorl %ebp,%esi
movl %ebx,%edi
roll $5,%ebx
xorl %edx,%esi
movdqa %xmm10,48(%rsp)
addl %ebx,%eax
rorl $7,%ecx
addl %esi,%eax
addl 4(%rsp),%ebp
.byte 102,69,15,56,220,222
movups 96(%r15),%xmm15
xorl %edx,%edi
movl %eax,%esi
roll $5,%eax
xorl %ecx,%edi
addl %eax,%ebp
rorl $7,%ebx
addl %edi,%ebp
addl 8(%rsp),%edx
xorl %ecx,%esi
movl %ebp,%edi
roll $5,%ebp
xorl %ebx,%esi
addl %ebp,%edx
rorl $7,%eax
addl %esi,%edx
addl 12(%rsp),%ecx
xorl %ebx,%edi
movl %edx,%esi
roll $5,%edx
xorl %eax,%edi
.byte 102,69,15,56,220,223
movups 112(%r15),%xmm14
addl %edx,%ecx
rorl $7,%ebp
addl %edi,%ecx
cmpq %r14,%r10
je .Ldone_ssse3
movdqa 64(%r11),%xmm6
movdqa 0(%r11),%xmm9
movdqu 0(%r10),%xmm0
movdqu 16(%r10),%xmm1
movdqu 32(%r10),%xmm2
movdqu 48(%r10),%xmm3
.byte 102,15,56,0,198
addq $64,%r10
addl 16(%rsp),%ebx
xorl %eax,%esi
.byte 102,15,56,0,206
movl %ecx,%edi
roll $5,%ecx
paddd %xmm9,%xmm0
xorl %ebp,%esi
addl %ecx,%ebx
rorl $7,%edx
addl %esi,%ebx
movdqa %xmm0,0(%rsp)
addl 20(%rsp),%eax
xorl %ebp,%edi
psubd %xmm9,%xmm0
movl %ebx,%esi
roll $5,%ebx
xorl %edx,%edi
addl %ebx,%eax
rorl $7,%ecx
addl %edi,%eax
addl 24(%rsp),%ebp
.byte 102,69,15,56,220,222
movups 128(%r15),%xmm15
xorl %edx,%esi
movl %eax,%edi
roll $5,%eax
xorl %ecx,%esi
addl %eax,%ebp
rorl $7,%ebx
addl %esi,%ebp
addl 28(%rsp),%edx
xorl %ecx,%edi
movl %ebp,%esi
roll $5,%ebp
xorl %ebx,%edi
addl %ebp,%edx
rorl $7,%eax
addl %edi,%edx
addl 32(%rsp),%ecx
xorl %ebx,%esi
.byte 102,15,56,0,214
movl %edx,%edi
roll $5,%edx
paddd %xmm9,%xmm1
xorl %eax,%esi
.byte 102,69,15,56,220,223
movups 144(%r15),%xmm14
addl %edx,%ecx
rorl $7,%ebp
addl %esi,%ecx
movdqa %xmm1,16(%rsp)
addl 36(%rsp),%ebx
xorl %eax,%edi
psubd %xmm9,%xmm1
movl %ecx,%esi
roll $5,%ecx
xorl %ebp,%edi
addl %ecx,%ebx
rorl $7,%edx
addl %edi,%ebx
addl 40(%rsp),%eax
xorl %ebp,%esi
movl %ebx,%edi
roll $5,%ebx
xorl %edx,%esi
addl %ebx,%eax
rorl $7,%ecx
addl %esi,%eax
addl 44(%rsp),%ebp
.byte 102,69,15,56,220,222
movups 160(%r15),%xmm15
xorl %edx,%edi
movl %eax,%esi
roll $5,%eax
xorl %ecx,%edi
addl %eax,%ebp
rorl $7,%ebx
addl %edi,%ebp
addl 48(%rsp),%edx
xorl %ecx,%esi
.byte 102,15,56,0,222
movl %ebp,%edi
roll $5,%ebp
paddd %xmm9,%xmm2
xorl %ebx,%esi
addl %ebp,%edx
rorl $7,%eax
addl %esi,%edx
movdqa %xmm2,32(%rsp)
addl 52(%rsp),%ecx
xorl %ebx,%edi
psubd %xmm9,%xmm2
movl %edx,%esi
roll $5,%edx
xorl %eax,%edi
cmpl $11,%r8d
jb .Laesenclast4
movups 176(%r15),%xmm14
.byte 102,69,15,56,220,223
movups 192(%r15),%xmm15
.byte 102,69,15,56,220,222
je .Laesenclast4
movups 208(%r15),%xmm14
.byte 102,69,15,56,220,223
movups 224(%r15),%xmm15
.byte 102,69,15,56,220,222
.Laesenclast4:
.byte 102,69,15,56,221,223
movups 16(%r15),%xmm14
addl %edx,%ecx
rorl $7,%ebp
addl %edi,%ecx
addl 56(%rsp),%ebx
xorl %eax,%esi
movl %ecx,%edi
roll $5,%ecx
xorl %ebp,%esi
addl %ecx,%ebx
rorl $7,%edx
addl %esi,%ebx
addl 60(%rsp),%eax
xorl %ebp,%edi
movl %ebx,%esi
roll $5,%ebx
xorl %edx,%edi
addl %ebx,%eax
rorl $7,%ecx
addl %edi,%eax
movups %xmm11,48(%r13,%r12,1)
leaq 64(%r12),%r12
addl 0(%r9),%eax
addl 4(%r9),%esi
addl 8(%r9),%ecx
addl 12(%r9),%edx
movl %eax,0(%r9)
addl 16(%r9),%ebp
movl %esi,4(%r9)
movl %esi,%ebx
movl %ecx,8(%r9)
movl %edx,12(%r9)
movl %ebp,16(%r9)
jmp .Loop_ssse3
.align 16
.Ldone_ssse3:
addl 16(%rsp),%ebx
xorl %eax,%esi
movl %ecx,%edi
roll $5,%ecx
xorl %ebp,%esi
addl %ecx,%ebx
rorl $7,%edx
addl %esi,%ebx
addl 20(%rsp),%eax
xorl %ebp,%edi
movl %ebx,%esi
roll $5,%ebx
xorl %edx,%edi
addl %ebx,%eax
rorl $7,%ecx
addl %edi,%eax
addl 24(%rsp),%ebp
.byte 102,69,15,56,220,222
movups 128(%r15),%xmm15
xorl %edx,%esi
movl %eax,%edi
roll $5,%eax
xorl %ecx,%esi
addl %eax,%ebp
rorl $7,%ebx
addl %esi,%ebp
addl 28(%rsp),%edx
xorl %ecx,%edi
movl %ebp,%esi
roll $5,%ebp
xorl %ebx,%edi
addl %ebp,%edx
rorl $7,%eax
addl %edi,%edx
addl 32(%rsp),%ecx
xorl %ebx,%esi
movl %edx,%edi
roll $5,%edx
xorl %eax,%esi
.byte 102,69,15,56,220,223
movups 144(%r15),%xmm14
addl %edx,%ecx
rorl $7,%ebp
addl %esi,%ecx
addl 36(%rsp),%ebx
xorl %eax,%edi
movl %ecx,%esi
roll $5,%ecx
xorl %ebp,%edi
addl %ecx,%ebx
rorl $7,%edx
addl %edi,%ebx
addl 40(%rsp),%eax
xorl %ebp,%esi
movl %ebx,%edi
roll $5,%ebx
xorl %edx,%esi
addl %ebx,%eax
rorl $7,%ecx
addl %esi,%eax
addl 44(%rsp),%ebp
.byte 102,69,15,56,220,222
movups 160(%r15),%xmm15
xorl %edx,%edi
movl %eax,%esi
roll $5,%eax
xorl %ecx,%edi
addl %eax,%ebp
rorl $7,%ebx
addl %edi,%ebp
addl 48(%rsp),%edx
xorl %ecx,%esi
movl %ebp,%edi
roll $5,%ebp
xorl %ebx,%esi
addl %ebp,%edx
rorl $7,%eax
addl %esi,%edx
addl 52(%rsp),%ecx
xorl %ebx,%edi
movl %edx,%esi
roll $5,%edx
xorl %eax,%edi
cmpl $11,%r8d
jb .Laesenclast5
movups 176(%r15),%xmm14
.byte 102,69,15,56,220,223
movups 192(%r15),%xmm15
.byte 102,69,15,56,220,222
je .Laesenclast5
movups 208(%r15),%xmm14
.byte 102,69,15,56,220,223
movups 224(%r15),%xmm15
.byte 102,69,15,56,220,222
.Laesenclast5:
.byte 102,69,15,56,221,223
movups 16(%r15),%xmm14
addl %edx,%ecx
rorl $7,%ebp
addl %edi,%ecx
addl 56(%rsp),%ebx
xorl %eax,%esi
movl %ecx,%edi
roll $5,%ecx
xorl %ebp,%esi
addl %ecx,%ebx
rorl $7,%edx
addl %esi,%ebx
addl 60(%rsp),%eax
xorl %ebp,%edi
movl %ebx,%esi
roll $5,%ebx
xorl %edx,%edi
addl %ebx,%eax
rorl $7,%ecx
addl %edi,%eax
movups %xmm11,48(%r13,%r12,1)
movq 88(%rsp),%r8
addl 0(%r9),%eax
addl 4(%r9),%esi
addl 8(%r9),%ecx
movl %eax,0(%r9)
addl 12(%r9),%edx
movl %esi,4(%r9)
addl 16(%r9),%ebp
movl %ecx,8(%r9)
movl %edx,12(%r9)
movl %ebp,16(%r9)
movups %xmm11,(%r8)
leaq 104(%rsp),%rsi
movq 0(%rsi),%r15
movq 8(%rsi),%r14
movq 16(%rsi),%r13
movq 24(%rsi),%r12
movq 32(%rsi),%rbp
movq 40(%rsi),%rbx
leaq 48(%rsi),%rsp
.Lepilogue_ssse3:
.byte 0xf3,0xc3
.size aesni_cbc_sha1_enc_ssse3,.-aesni_cbc_sha1_enc_ssse3
.align 64
K_XX_XX:
.long 0x5a827999,0x5a827999,0x5a827999,0x5a827999
.long 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
.long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
.long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
.byte 65,69,83,78,73,45,67,66,67,43,83,72,65,49,32,115,116,105,116,99,104,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