Re: [PATCH 04/13] x86/crypto/aesni-intel_avx: Standardize stack alignment prologue

From: Peter Zijlstra
Date: Thu Feb 25 2021 - 04:43:44 EST


On Wed, Feb 24, 2021 at 10:29:17AM -0600, Josh Poimboeuf wrote:
> Use RBP instead of R14 for saving the old stack pointer before
> realignment. This resembles what compilers normally do.
>
> This enables ORC unwinding by allowing objtool to understand the stack
> realignment.
>
> Signed-off-by: Josh Poimboeuf <jpoimboe@xxxxxxxxxx>
> ---
> arch/x86/crypto/aesni-intel_avx-x86_64.S | 10 ++++------
> 1 file changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/arch/x86/crypto/aesni-intel_avx-x86_64.S b/arch/x86/crypto/aesni-intel_avx-x86_64.S
> index 188f1848a730..98e3552b6e03 100644
> --- a/arch/x86/crypto/aesni-intel_avx-x86_64.S
> +++ b/arch/x86/crypto/aesni-intel_avx-x86_64.S
> @@ -251,22 +251,20 @@ VARIABLE_OFFSET = 16*8
> .macro FUNC_SAVE
> push %r12
> push %r13
> - push %r14
> push %r15
>
> - mov %rsp, %r14
> -
> -
> + push %rbp
> + mov %rsp, %rbp
>
> sub $VARIABLE_OFFSET, %rsp
> and $~63, %rsp # align rsp to 64 bytes
> .endm
>
> .macro FUNC_RESTORE
> - mov %r14, %rsp
> + mov %rbp, %rsp
> + pop %rbp
>
> pop %r15
> - pop %r14
> pop %r13
> pop %r12
> .endm

Urgh, I was about to say your patch is whitespace damaged, but it's the
original file :-/