Skip to content

Commit

Permalink
crypto: x86/chacha20 - satisfy stack validation 2.0
Browse files Browse the repository at this point in the history
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: Jason A. Donenfeld <Jason@zx2c4.com>
Fixes: baa4146 ("objtool: Implement stack validation 2.0")
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
  • Loading branch information
Jason A. Donenfeld authored and Herbert Xu committed Oct 12, 2017
1 parent b61907b commit 4635742
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 4 deletions.
4 changes: 2 additions & 2 deletions arch/x86/crypto/chacha20-avx2-x86_64.S
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ ENTRY(chacha20_8block_xor_avx2)

vzeroupper
# 4 * 32 byte stack, 32-byte aligned
mov %rsp, %r8
lea 8(%rsp),%r10
and $~31, %rsp
sub $0x80, %rsp

Expand Down Expand Up @@ -443,6 +443,6 @@ ENTRY(chacha20_8block_xor_avx2)
vmovdqu %ymm15,0x01e0(%rsi)

vzeroupper
mov %r8,%rsp
lea -8(%r10),%rsp
ret
ENDPROC(chacha20_8block_xor_avx2)
4 changes: 2 additions & 2 deletions arch/x86/crypto/chacha20-ssse3-x86_64.S
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ ENTRY(chacha20_4block_xor_ssse3)
# done with the slightly better performing SSSE3 byte shuffling,
# 7/12-bit word rotation uses traditional shift+OR.

mov %rsp,%r11
lea 8(%rsp),%r10
sub $0x80,%rsp
and $~63,%rsp

Expand Down Expand Up @@ -625,6 +625,6 @@ ENTRY(chacha20_4block_xor_ssse3)
pxor %xmm1,%xmm15
movdqu %xmm15,0xf0(%rsi)

mov %r11,%rsp
lea -8(%r10),%rsp
ret
ENDPROC(chacha20_4block_xor_ssse3)

0 comments on commit 4635742

Please sign in to comment.