forked from wolfSSL/wolfssl
Merge pull request #2362 from SparkiDev/chacha20_asm_fix
Fix chacha20 AVX1 assembly to not use register RBX
This commit is contained in:
@@ -975,24 +975,24 @@ L_chacha20_avx1_partial_crypt_start:
|
|||||||
vmovdqu %xmm3, 48(%r10)
|
vmovdqu %xmm3, 48(%r10)
|
||||||
addl $0x01, 48(%rdi)
|
addl $0x01, 48(%rdi)
|
||||||
movl %ecx, %r8d
|
movl %ecx, %r8d
|
||||||
xorq %rbx, %rbx
|
xorq %r11, %r11
|
||||||
andl $7, %r8d
|
andl $7, %r8d
|
||||||
jz L_chacha20_avx1_partial_start64
|
jz L_chacha20_avx1_partial_start64
|
||||||
L_chacha20_avx1_partial_start8:
|
L_chacha20_avx1_partial_start8:
|
||||||
movzbl (%r10,%rbx,1), %eax
|
movzbl (%r10,%r11,1), %eax
|
||||||
xorb (%rsi,%rbx,1), %al
|
xorb (%rsi,%r11,1), %al
|
||||||
movb %al, (%rdx,%rbx,1)
|
movb %al, (%rdx,%r11,1)
|
||||||
incl %ebx
|
incl %r11d
|
||||||
cmpl %r8d, %ebx
|
cmpl %r8d, %r11d
|
||||||
jne L_chacha20_avx1_partial_start8
|
jne L_chacha20_avx1_partial_start8
|
||||||
je L_chacha20_avx1_partial_end64
|
je L_chacha20_avx1_partial_end64
|
||||||
L_chacha20_avx1_partial_start64:
|
L_chacha20_avx1_partial_start64:
|
||||||
movq (%r10,%rbx,1), %rax
|
movq (%r10,%r11,1), %rax
|
||||||
xorq (%rsi,%rbx,1), %rax
|
xorq (%rsi,%r11,1), %rax
|
||||||
movq %rax, (%rdx,%rbx,1)
|
movq %rax, (%rdx,%r11,1)
|
||||||
addl $8, %ebx
|
addl $8, %r11d
|
||||||
L_chacha20_avx1_partial_end64:
|
L_chacha20_avx1_partial_end64:
|
||||||
cmpl %ecx, %ebx
|
cmpl %ecx, %r11d
|
||||||
jne L_chacha20_avx1_partial_start64
|
jne L_chacha20_avx1_partial_start64
|
||||||
L_chacha20_avx1_partial_done:
|
L_chacha20_avx1_partial_done:
|
||||||
addq $0x190, %rsp
|
addq $0x190, %rsp
|
||||||
|
Reference in New Issue
Block a user