projects
/
oweals
/
u-boot.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
sunxi: Use BROM stored boot_media value to determine our boot-source
[oweals/u-boot.git]
/
arch
/
arm
/
include
/
asm
/
setjmp.h
diff --git
a/arch/arm/include/asm/setjmp.h
b/arch/arm/include/asm/setjmp.h
index b8b85b79dd41f2673dc744c740be950f9a6c5142..f7b97efc59d6284281a5ecc2ff19489817395757 100644
(file)
--- a/
arch/arm/include/asm/setjmp.h
+++ b/
arch/arm/include/asm/setjmp.h
@@
-43,15
+43,18
@@
static inline int setjmp(jmp_buf jmp)
#else
asm volatile(
#ifdef CONFIG_SYS_THUMB_BUILD
#else
asm volatile(
#ifdef CONFIG_SYS_THUMB_BUILD
- "adr r0, jmp_target + 1\n"
+ ".align 2\n"
+ "adr r0, jmp_target\n"
+ "add r0, r0, $1\n"
#else
"adr r0, jmp_target\n"
#endif
"mov r1, %1\n"
"mov r2, sp\n"
#else
"adr r0, jmp_target\n"
#endif
"mov r1, %1\n"
"mov r2, sp\n"
- "stm r1, {r0, r2, r4, r5, r6, r7}\n"
+ "stm r1
!
, {r0, r2, r4, r5, r6, r7}\n"
"b 2f\n"
"b 2f\n"
- "jmp_target: "
+ ".align 2\n"
+ "jmp_target: \n"
"mov %0, #1\n"
"2:\n"
: "+l" (r)
"mov %0, #1\n"
"2:\n"
: "+l" (r)
@@
-61,8
+64,6
@@
static inline int setjmp(jmp_buf jmp)
"cc", "memory");
#endif
"cc", "memory");
#endif
-printf("%s:%d target=%#lx\n", __func__, __LINE__, jmp->target);
-
return r;
}
return r;
}
@@
-84,7
+85,7
@@
static inline __noreturn void longjmp(jmp_buf jmp)
#else
asm volatile(
"mov r1, %0\n"
#else
asm volatile(
"mov r1, %0\n"
- "ldm r1, {r0, r2, r4, r5, r6, r7}\n"
+ "ldm r1
!
, {r0, r2, r4, r5, r6, r7}\n"
"mov sp, r2\n"
"bx r0\n"
:
"mov sp, r2\n"
"bx r0\n"
: