| Index: third_party/boringssl/linux-x86/crypto/chacha/chacha-x86.S
|
| diff --git a/third_party/boringssl/linux-x86/crypto/chacha/chacha-x86.S b/third_party/boringssl/linux-x86/crypto/chacha/chacha-x86.S
|
| index f28459e93402c80d72c593266d154de9a9d4fc8c..d3c39ace9b2aebf5dbfc913cfe7f213e38fb08c1 100644
|
| --- a/third_party/boringssl/linux-x86/crypto/chacha/chacha-x86.S
|
| +++ b/third_party/boringssl/linux-x86/crypto/chacha/chacha-x86.S
|
| @@ -261,13 +261,11 @@ ChaCha20_ctr32:
|
| xorl 36(%ebx),%esi
|
| xorl 48(%ebx),%edx
|
| xorl 56(%ebx),%edi
|
| - movl %ebp,16(%esp)
|
| - movl (%esp),%ebp
|
| - movl %ecx,32(%esp)
|
| - movl %esi,36(%esp)
|
| - movl %edx,48(%esp)
|
| - movl %edi,56(%esp)
|
| - movl %ebp,(%eax)
|
| + movl %ebp,16(%eax)
|
| + movl %ecx,32(%eax)
|
| + movl %esi,36(%eax)
|
| + movl %edx,48(%eax)
|
| + movl %edi,56(%eax)
|
| movl 4(%esp),%ebp
|
| movl 8(%esp),%ecx
|
| movl 12(%esp),%esi
|
| @@ -284,42 +282,34 @@ ChaCha20_ctr32:
|
| xorl 20(%ebx),%edx
|
| xorl 24(%ebx),%edi
|
| movl %ebp,4(%eax)
|
| - movl 16(%esp),%ebp
|
| movl %ecx,8(%eax)
|
| movl %esi,12(%eax)
|
| - movl %ebp,16(%eax)
|
| movl %edx,20(%eax)
|
| movl %edi,24(%eax)
|
| - movl 28(%esp),%ecx
|
| - movl 32(%esp),%edx
|
| - movl 36(%esp),%edi
|
| - addl 92(%esp),%ecx
|
| - movl 40(%esp),%ebp
|
| - xorl 28(%ebx),%ecx
|
| + movl 28(%esp),%ebp
|
| + movl 40(%esp),%ecx
|
| movl 44(%esp),%esi
|
| - movl %ecx,28(%eax)
|
| - movl %edx,32(%eax)
|
| - movl %edi,36(%eax)
|
| - addl 104(%esp),%ebp
|
| - addl 108(%esp),%esi
|
| - xorl 40(%ebx),%ebp
|
| - xorl 44(%ebx),%esi
|
| - movl %ebp,40(%eax)
|
| - movl %esi,44(%eax)
|
| - movl 48(%esp),%ecx
|
| - movl 56(%esp),%esi
|
| movl 52(%esp),%edx
|
| movl 60(%esp),%edi
|
| + addl 92(%esp),%ebp
|
| + addl 104(%esp),%ecx
|
| + addl 108(%esp),%esi
|
| addl 116(%esp),%edx
|
| addl 124(%esp),%edi
|
| + xorl 28(%ebx),%ebp
|
| + xorl 40(%ebx),%ecx
|
| + xorl 44(%ebx),%esi
|
| xorl 52(%ebx),%edx
|
| xorl 60(%ebx),%edi
|
| leal 64(%ebx),%ebx
|
| - movl %ecx,48(%eax)
|
| + movl %ebp,28(%eax)
|
| + movl (%esp),%ebp
|
| + movl %ecx,40(%eax)
|
| movl 160(%esp),%ecx
|
| + movl %esi,44(%eax)
|
| movl %edx,52(%eax)
|
| - movl %esi,56(%eax)
|
| movl %edi,60(%eax)
|
| + movl %ebp,(%eax)
|
| leal 64(%eax),%eax
|
| subl $64,%ecx
|
| jnz .L003outer_loop
|
| @@ -715,14 +705,24 @@ ChaCha20_ssse3:
|
| punpcklqdq %xmm7,%xmm6
|
| punpckhqdq %xmm2,%xmm1
|
| punpckhqdq %xmm7,%xmm3
|
| - movdqa %xmm0,-128(%ebx)
|
| + movdqu -128(%esi),%xmm4
|
| + movdqu -64(%esi),%xmm5
|
| + movdqu (%esi),%xmm2
|
| + movdqu 64(%esi),%xmm7
|
| + leal 16(%esi),%esi
|
| + pxor %xmm0,%xmm4
|
| movdqa -64(%ebx),%xmm0
|
| - movdqa %xmm1,-112(%ebx)
|
| - movdqa %xmm6,-96(%ebx)
|
| - movdqa %xmm3,-80(%ebx)
|
| + pxor %xmm1,%xmm5
|
| movdqa -48(%ebx),%xmm1
|
| + pxor %xmm2,%xmm6
|
| movdqa -32(%ebx),%xmm2
|
| + pxor %xmm3,%xmm7
|
| movdqa -16(%ebx),%xmm3
|
| + movdqu %xmm4,-128(%edi)
|
| + movdqu %xmm5,-64(%edi)
|
| + movdqu %xmm6,(%edi)
|
| + movdqu %xmm7,64(%edi)
|
| + leal 16(%edi),%edi
|
| paddd -64(%ebp),%xmm0
|
| paddd -48(%ebp),%xmm1
|
| paddd -32(%ebp),%xmm2
|
| @@ -739,14 +739,24 @@ ChaCha20_ssse3:
|
| punpcklqdq %xmm7,%xmm6
|
| punpckhqdq %xmm2,%xmm1
|
| punpckhqdq %xmm7,%xmm3
|
| - movdqa %xmm0,-64(%ebx)
|
| + movdqu -128(%esi),%xmm4
|
| + movdqu -64(%esi),%xmm5
|
| + movdqu (%esi),%xmm2
|
| + movdqu 64(%esi),%xmm7
|
| + leal 16(%esi),%esi
|
| + pxor %xmm0,%xmm4
|
| movdqa (%ebx),%xmm0
|
| - movdqa %xmm1,-48(%ebx)
|
| - movdqa %xmm6,-32(%ebx)
|
| - movdqa %xmm3,-16(%ebx)
|
| + pxor %xmm1,%xmm5
|
| movdqa 16(%ebx),%xmm1
|
| + pxor %xmm2,%xmm6
|
| movdqa 32(%ebx),%xmm2
|
| + pxor %xmm3,%xmm7
|
| movdqa 48(%ebx),%xmm3
|
| + movdqu %xmm4,-128(%edi)
|
| + movdqu %xmm5,-64(%edi)
|
| + movdqu %xmm6,(%edi)
|
| + movdqu %xmm7,64(%edi)
|
| + leal 16(%edi),%edi
|
| paddd (%ebp),%xmm0
|
| paddd 16(%ebp),%xmm1
|
| paddd 32(%ebp),%xmm2
|
| @@ -763,14 +773,24 @@ ChaCha20_ssse3:
|
| punpcklqdq %xmm7,%xmm6
|
| punpckhqdq %xmm2,%xmm1
|
| punpckhqdq %xmm7,%xmm3
|
| - movdqa %xmm0,(%ebx)
|
| + movdqu -128(%esi),%xmm4
|
| + movdqu -64(%esi),%xmm5
|
| + movdqu (%esi),%xmm2
|
| + movdqu 64(%esi),%xmm7
|
| + leal 16(%esi),%esi
|
| + pxor %xmm0,%xmm4
|
| movdqa 64(%ebx),%xmm0
|
| - movdqa %xmm1,16(%ebx)
|
| - movdqa %xmm6,32(%ebx)
|
| - movdqa %xmm3,48(%ebx)
|
| + pxor %xmm1,%xmm5
|
| movdqa 80(%ebx),%xmm1
|
| + pxor %xmm2,%xmm6
|
| movdqa 96(%ebx),%xmm2
|
| + pxor %xmm3,%xmm7
|
| movdqa 112(%ebx),%xmm3
|
| + movdqu %xmm4,-128(%edi)
|
| + movdqu %xmm5,-64(%edi)
|
| + movdqu %xmm6,(%edi)
|
| + movdqu %xmm7,64(%edi)
|
| + leal 16(%edi),%edi
|
| paddd 64(%ebp),%xmm0
|
| paddd 80(%ebp),%xmm1
|
| paddd 96(%ebp),%xmm2
|
| @@ -787,60 +807,20 @@ ChaCha20_ssse3:
|
| punpcklqdq %xmm7,%xmm6
|
| punpckhqdq %xmm2,%xmm1
|
| punpckhqdq %xmm7,%xmm3
|
| - movdqa %xmm0,64(%ebx)
|
| - movdqa %xmm1,80(%ebx)
|
| - movdqa %xmm6,96(%ebx)
|
| - movdqa %xmm3,112(%ebx)
|
| - movdqu -128(%esi),%xmm0
|
| - movdqu -112(%esi),%xmm1
|
| - movdqu -96(%esi),%xmm2
|
| - movdqu -80(%esi),%xmm3
|
| - pxor -128(%ebx),%xmm0
|
| - pxor -64(%ebx),%xmm1
|
| - pxor (%ebx),%xmm2
|
| - pxor 64(%ebx),%xmm3
|
| - movdqu %xmm0,-128(%edi)
|
| - movdqu %xmm1,-112(%edi)
|
| - movdqu %xmm2,-96(%edi)
|
| - movdqu %xmm3,-80(%edi)
|
| - movdqu -64(%esi),%xmm0
|
| - movdqu -48(%esi),%xmm1
|
| - movdqu -32(%esi),%xmm2
|
| - movdqu -16(%esi),%xmm3
|
| - pxor -112(%ebx),%xmm0
|
| - pxor -48(%ebx),%xmm1
|
| - pxor 16(%ebx),%xmm2
|
| - pxor 80(%ebx),%xmm3
|
| - movdqu %xmm0,-64(%edi)
|
| - movdqu %xmm1,-48(%edi)
|
| - movdqu %xmm2,-32(%edi)
|
| - movdqu %xmm3,-16(%edi)
|
| - movdqu (%esi),%xmm0
|
| - movdqu 16(%esi),%xmm1
|
| - movdqu 32(%esi),%xmm2
|
| - movdqu 48(%esi),%xmm3
|
| - pxor -96(%ebx),%xmm0
|
| - pxor -32(%ebx),%xmm1
|
| - pxor 32(%ebx),%xmm2
|
| - pxor 96(%ebx),%xmm3
|
| - movdqu %xmm0,(%edi)
|
| - movdqu %xmm1,16(%edi)
|
| - movdqu %xmm2,32(%edi)
|
| - movdqu %xmm3,48(%edi)
|
| - movdqu 64(%esi),%xmm0
|
| - movdqu 80(%esi),%xmm1
|
| - movdqu 96(%esi),%xmm2
|
| - movdqu 112(%esi),%xmm3
|
| - pxor -80(%ebx),%xmm0
|
| - pxor -16(%ebx),%xmm1
|
| - pxor 48(%ebx),%xmm2
|
| - pxor 112(%ebx),%xmm3
|
| - movdqu %xmm0,64(%edi)
|
| - movdqu %xmm1,80(%edi)
|
| - movdqu %xmm2,96(%edi)
|
| - movdqu %xmm3,112(%edi)
|
| - leal 256(%esi),%esi
|
| - leal 256(%edi),%edi
|
| + movdqu -128(%esi),%xmm4
|
| + movdqu -64(%esi),%xmm5
|
| + movdqu (%esi),%xmm2
|
| + movdqu 64(%esi),%xmm7
|
| + leal 208(%esi),%esi
|
| + pxor %xmm0,%xmm4
|
| + pxor %xmm1,%xmm5
|
| + pxor %xmm2,%xmm6
|
| + pxor %xmm3,%xmm7
|
| + movdqu %xmm4,-128(%edi)
|
| + movdqu %xmm5,-64(%edi)
|
| + movdqu %xmm6,(%edi)
|
| + movdqu %xmm7,64(%edi)
|
| + leal 208(%edi),%edi
|
| subl $256,%ecx
|
| jnc .L009outer_loop
|
| addl $256,%ecx
|
|
|