On Tue, 9 Feb 2021, Peter Zijlstra wrote:

> Hi!
> 
> Implement objtool support for the x86_64 stack swizzle pattern.
> 
> This means we can use the minial stack swizzle:
> 
>   mov %rsp, (%[tos])
>   mov %[tos], %rsp
>   ...
>   pop %rsp
> 
> from inline asm, with arbitrary stack setup. The ORC data for the Top-of-Stack
> will use the SP_INDIRECT CFA base. In order for this to work, SP_INDIRECT 
> needs
> to first dereference and then add the offset to find the next frame.
> 
> Therefore we need to change SP_INDIRECT (which is currently unused) to mean:
> (%rsp) + offset.
> 
> Changes since v1 include:
> 
>  - removed the !callee saved reg restriction by using the vals[] array
>    over the regs[] array.
> 
>  - per the above, removed the patches creating the regs[] scratch space.
> 
>  - more comments.
> 
>  - rebased to tip/objtool/core

I haven't tested it, but it all looks good to me.

Reviewed-by: Miroslav Benes <mbe...@suse.cz>

M

Reply via email to