提交 5aac5e21 编写于 作者: R Rich Felker

optimize arm setjmp/longjmp register saving/loading

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.
上级 e1b9c1b0
......@@ -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:
mov ip,r0
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
tst lr,#1
moveq pc,lr
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册