Commit 4635742d authored by Jason A. Donenfeld's avatar Jason A. Donenfeld Committed by Herbert Xu

crypto: x86/chacha20 - satisfy stack validation 2.0

The new stack validator in objdump doesn't like directly assigning r11
to rsp, warning with something like:

warning: objtool: chacha20_4block_xor_ssse3()+0xa: unsupported stack pointer realignment
warning: objtool: chacha20_8block_xor_avx2()+0x6: unsupported stack pointer realignment

This fixes things up to use code similar to gcc's DRAP register, so that
objdump remains happy.
Signed-off-by: default avatarJason A. Donenfeld <Jason@zx2c4.com>
Fixes: baa41469 ("objtool: Implement stack validation 2.0")
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent b61907bb
...@@ -45,7 +45,7 @@ ENTRY(chacha20_8block_xor_avx2) ...@@ -45,7 +45,7 @@ ENTRY(chacha20_8block_xor_avx2)
vzeroupper vzeroupper
# 4 * 32 byte stack, 32-byte aligned # 4 * 32 byte stack, 32-byte aligned
mov %rsp, %r8 lea 8(%rsp),%r10
and $~31, %rsp and $~31, %rsp
sub $0x80, %rsp sub $0x80, %rsp
...@@ -443,6 +443,6 @@ ENTRY(chacha20_8block_xor_avx2) ...@@ -443,6 +443,6 @@ ENTRY(chacha20_8block_xor_avx2)
vmovdqu %ymm15,0x01e0(%rsi) vmovdqu %ymm15,0x01e0(%rsi)
vzeroupper vzeroupper
mov %r8,%rsp lea -8(%r10),%rsp
ret ret
ENDPROC(chacha20_8block_xor_avx2) ENDPROC(chacha20_8block_xor_avx2)
...@@ -160,7 +160,7 @@ ENTRY(chacha20_4block_xor_ssse3) ...@@ -160,7 +160,7 @@ ENTRY(chacha20_4block_xor_ssse3)
# done with the slightly better performing SSSE3 byte shuffling, # done with the slightly better performing SSSE3 byte shuffling,
# 7/12-bit word rotation uses traditional shift+OR. # 7/12-bit word rotation uses traditional shift+OR.
mov %rsp,%r11 lea 8(%rsp),%r10
sub $0x80,%rsp sub $0x80,%rsp
and $~63,%rsp and $~63,%rsp
...@@ -625,6 +625,6 @@ ENTRY(chacha20_4block_xor_ssse3) ...@@ -625,6 +625,6 @@ ENTRY(chacha20_4block_xor_ssse3)
pxor %xmm1,%xmm15 pxor %xmm1,%xmm15
movdqu %xmm15,0xf0(%rsi) movdqu %xmm15,0xf0(%rsi)
mov %r11,%rsp lea -8(%r10),%rsp
ret ret
ENDPROC(chacha20_4block_xor_ssse3) ENDPROC(chacha20_4block_xor_ssse3)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment