Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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

@@ -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)
+2 −2
Original line number Diff line number Diff line
@@ -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

@@ -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)