the original code was wrongly based on how it would be done in thumb mode, but that's not needed because musl's asm only targets arm.
@@ -7,9 +7,7 @@ longjmp:
mov ip,r0
movs r0,r1
moveq r0,#1
- ldmia ip!, {v1,v2,v3,v4,v5,v6,sl,fp}
- ldr sp,[ip],#4
- ldr lr,[ip],#4
+ ldmia ip!, {v1,v2,v3,v4,v5,v6,sl,fp,sp,lr}
tst lr,#1
moveq pc,lr
bx lr
@@ -8,9 +8,7 @@ __setjmp:
_setjmp:
setjmp:
- stmia ip!,{v1,v2,v3,v4,v5,v6,sl,fp}
- mov r2,sp
- stmia ip!,{r2,lr}
+ stmia ip!,{v1,v2,v3,v4,v5,v6,sl,fp,sp,lr}
mov r0,#0