Skip to content
Snippets Groups Projects
Commit 0de02de7 authored by Alexander Graf's avatar Alexander Graf Committed by Tom Rini
Browse files

arm: Fix setjmp (again)


Commit e6777248 (arm: Fix setjmp) added code to fix compilation of the setjmp
code path with thumv1. Unfortunately it missed a constraint that the adr
instruction can only refer to 4 byte aligned offsets.

So this patch adds the required alignment hooks to make compilation
work again even when setjmp doesn't happen to be 4 byte aligned.

Signed-off-by: default avatarAlexander Graf <agraf@suse.de>
Tested-by: default avatarTom Rini <trini@konsulko.com>
parent 59d07ee0
No related merge requests found
......@@ -43,6 +43,7 @@ static inline int setjmp(jmp_buf jmp)
#else
asm volatile(
#ifdef CONFIG_SYS_THUMB_BUILD
".align 2\n"
"adr r0, jmp_target\n"
"add r0, r0, $1\n"
#else
......@@ -52,7 +53,8 @@ static inline int setjmp(jmp_buf jmp)
"mov r2, sp\n"
"stm r1!, {r0, r2, r4, r5, r6, r7}\n"
"b 2f\n"
"jmp_target: "
".align 2\n"
"jmp_target: \n"
"mov %0, #1\n"
"2:\n"
: "+l" (r)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment