[PATCH v3 02/16] powerpc: Override __ALIGN and __ALIGN_STR macros

Peter Zijlstra peterz at infradead.org
Tue Sep 13 22:03:54 AEST 2022


On Mon, Sep 12, 2022 at 01:50:06PM +0530, Sathvika Vasireddy wrote:
> In a subsequent patch, we would want to annotate powerpc assembly functions
> with SYM_FUNC_START_LOCAL macro. This macro depends on __ALIGN macro.
> 
> The default expansion of __ALIGN macro is:
>         #define __ALIGN      .align 4,0x90
> 
> So, override __ALIGN and __ALIGN_STR macros to use the same alignment as
> that of the existing _GLOBAL macro. Also, do not pad with 0x90, because
> repeated 0x90s are not a nop or trap on powerpc.
> 
> Signed-off-by: Sathvika Vasireddy <sv at linux.ibm.com>
> ---
>  arch/powerpc/include/asm/linkage.h | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/arch/powerpc/include/asm/linkage.h b/arch/powerpc/include/asm/linkage.h
> index b71b9582e754..b88d1d2cf304 100644
> --- a/arch/powerpc/include/asm/linkage.h
> +++ b/arch/powerpc/include/asm/linkage.h
> @@ -4,6 +4,9 @@
>  
>  #include <asm/types.h>
>  
> +#define __ALIGN		.align 2
> +#define __ALIGN_STR	".align 2"

Like mentioned last time; I'm fixing this (but you're right to not wait
on that), that said, would it make sense to write it like:

#define __ALIGN		.balign 4
#define __ALIGN_STR	__stringify(__ALIGN)

That said; with power instructions being 4 bytes, the above alignment is
basically no-alignment, right?




More information about the Linuxppc-dev mailing list