Fix chacha20 AVX1 assembly to not use register RBX

This commit is contained in:
Sean Parkinson 2019-07-18 09:42:52 +10:00
parent 0555668f2c
commit 7fe4521083

View File

@ -975,24 +975,24 @@ L_chacha20_avx1_partial_crypt_start:
vmovdqu %xmm3, 48(%r10)
addl $0x01, 48(%rdi)
movl %ecx, %r8d
xorq %rbx, %rbx
xorq %r11, %r11
andl $7, %r8d
jz L_chacha20_avx1_partial_start64
L_chacha20_avx1_partial_start8:
movzbl (%r10,%rbx,1), %eax
xorb (%rsi,%rbx,1), %al
movb %al, (%rdx,%rbx,1)
incl %ebx
cmpl %r8d, %ebx
movzbl (%r10,%r11,1), %eax
xorb (%rsi,%r11,1), %al
movb %al, (%rdx,%r11,1)
incl %r11d
cmpl %r8d, %r11d
jne L_chacha20_avx1_partial_start8
je L_chacha20_avx1_partial_end64
L_chacha20_avx1_partial_start64:
movq (%r10,%rbx,1), %rax
xorq (%rsi,%rbx,1), %rax
movq %rax, (%rdx,%rbx,1)
addl $8, %ebx
movq (%r10,%r11,1), %rax
xorq (%rsi,%r11,1), %rax
movq %rax, (%rdx,%r11,1)
addl $8, %r11d
L_chacha20_avx1_partial_end64:
cmpl %ecx, %ebx
cmpl %ecx, %r11d
jne L_chacha20_avx1_partial_start64
L_chacha20_avx1_partial_done:
addq $0x190, %rsp