x86/asm: Differentiate between code and function alignment
Create SYM_F_ALIGN to differentiate alignment requirements between SYM_CODE and SYM_FUNC. This distinction is useful later when adding padding in front of functions; IOW this allows following the compiler's patchable-function-entry option. [peterz: Changelog] Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://lore.kernel.org/r/20220915111143.824822743@infradead.org
This commit is contained in:
parent
d49a062621
commit
8eb5d34e77
@ -12,11 +12,15 @@
|
||||
#define asmlinkage CPP_ASMLINKAGE __attribute__((regparm(0)))
|
||||
#endif /* CONFIG_X86_32 */
|
||||
|
||||
#ifdef __ASSEMBLY__
|
||||
|
||||
#define __ALIGN .balign CONFIG_FUNCTION_ALIGNMENT, 0x90;
|
||||
#define __ALIGN_STR __stringify(__ALIGN)
|
||||
|
||||
#define ASM_FUNC_ALIGN __ALIGN_STR
|
||||
#define __FUNC_ALIGN __ALIGN
|
||||
#define SYM_F_ALIGN __FUNC_ALIGN
|
||||
|
||||
#ifdef __ASSEMBLY__
|
||||
|
||||
#if defined(CONFIG_RETHUNK) && !defined(__DISABLE_EXPORTS) && !defined(BUILD_VDSO)
|
||||
#define RET jmp __x86_return_thunk
|
||||
#else /* CONFIG_RETPOLINE */
|
||||
@ -55,7 +59,7 @@
|
||||
|
||||
/* SYM_FUNC_START -- use for global functions */
|
||||
#define SYM_FUNC_START(name) \
|
||||
SYM_START(name, SYM_L_GLOBAL, SYM_A_ALIGN) \
|
||||
SYM_START(name, SYM_L_GLOBAL, SYM_F_ALIGN) \
|
||||
ENDBR
|
||||
|
||||
/* SYM_FUNC_START_NOALIGN -- use for global functions, w/o alignment */
|
||||
@ -65,7 +69,7 @@
|
||||
|
||||
/* SYM_FUNC_START_LOCAL -- use for local functions */
|
||||
#define SYM_FUNC_START_LOCAL(name) \
|
||||
SYM_START(name, SYM_L_LOCAL, SYM_A_ALIGN) \
|
||||
SYM_START(name, SYM_L_LOCAL, SYM_F_ALIGN) \
|
||||
ENDBR
|
||||
|
||||
/* SYM_FUNC_START_LOCAL_NOALIGN -- use for local functions, w/o alignment */
|
||||
@ -75,7 +79,7 @@
|
||||
|
||||
/* SYM_FUNC_START_WEAK -- use for weak functions */
|
||||
#define SYM_FUNC_START_WEAK(name) \
|
||||
SYM_START(name, SYM_L_WEAK, SYM_A_ALIGN) \
|
||||
SYM_START(name, SYM_L_WEAK, SYM_F_ALIGN) \
|
||||
ENDBR
|
||||
|
||||
/* SYM_FUNC_START_WEAK_NOALIGN -- use for weak functions, w/o alignment */
|
||||
|
Loading…
Reference in New Issue
Block a user