diff options
author | Ahmad Fatoum <a.fatoum@pengutronix.de> | 2021-11-08 08:52:05 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2021-11-08 09:15:23 +0100 |
commit | 6b2c6c9a4afb3d2c082d07f5019e82cb2ed0c0f3 (patch) | |
tree | 3e7b8fc3e0178907fd654374cdec3c48b07bc652 /arch/arm | |
parent | 0b0ef6d8e8344c283f5de77e033f1801346f9a0d (diff) | |
download | barebox-6b2c6c9a4afb3d2c082d07f5019e82cb2ed0c0f3.tar.gz barebox-6b2c6c9a4afb3d2c082d07f5019e82cb2ed0c0f3.tar.xz |
ARM64: <asm/barebox-arm-head.h>: mark prologue location
Unlike with ARM32, barebox prologue on ARM64 starts with the function
prologue, because of the absence of the naked attribute. The code is
written with that in mind (6 branches instead of 8 to account for the
two instructions inserted by the compiler), but it's still suprising.
Add a hint about that in the code.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Link: https://lore.barebox.org/20211108075209.2366770-5-a.fatoum@pengutronix.de
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/include/asm/barebox-arm-head.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/arm/include/asm/barebox-arm-head.h b/arch/arm/include/asm/barebox-arm-head.h index 8409a77d2e..187d12c9fc 100644 --- a/arch/arm/include/asm/barebox-arm-head.h +++ b/arch/arm/include/asm/barebox-arm-head.h @@ -44,6 +44,8 @@ static inline void __barebox_arm_head(void) "1: b 1b\n" #endif #else + /* two instruction long function prologue */ + /* only use if stack is initialized! */ "b 2f\n" "nop\n" "nop\n" |