summaryrefslogtreecommitdiffstats
path: root/arch/arm/lib32
diff options
context:
space:
mode:
authorAhmad Fatoum <a.fatoum@pengutronix.de>2021-03-10 09:47:47 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2021-03-17 11:55:30 +0100
commit01064a3c91492e09c13c2d158f1d2fa63cb90468 (patch)
tree8a126419118c27fdb3bc3772887fa202c52d02df /arch/arm/lib32
parenta6caadd10fb290556b6cc6a32d60c929dba79f3c (diff)
downloadbarebox-01064a3c91492e09c13c2d158f1d2fa63cb90468.tar.gz
barebox-01064a3c91492e09c13c2d158f1d2fa63cb90468.tar.xz
ARM: asm: setjmp: implement coroutine dependency initjmp()
Implement initjmp() for use with the incoming bthread support. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/lib32')
-rw-r--r--arch/arm/lib32/setjmp.S8
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/arm/lib32/setjmp.S b/arch/arm/lib32/setjmp.S
index f0606a7f66..626d915da1 100644
--- a/arch/arm/lib32/setjmp.S
+++ b/arch/arm/lib32/setjmp.S
@@ -33,4 +33,12 @@ ENTRY(longjmp)
1:
bx lr
ENDPROC(longjmp)
+
+.pushsection .text.initjmp, "ax"
+ENTRY(initjmp)
+ str a3, [a1, #32] /* stack pointer */
+ str a2, [a1, #36] /* return address */
+ mov a1, #0
+ bx lr
+ENDPROC(initjmp)
.popsection