ソースを参照

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.
Rich Felker 12 年 前
コミット
5aac5e2189
2 ファイル変更2 行追加6 行削除
  1. 1 3
      src/setjmp/arm/longjmp.s
  2. 1 3
      src/setjmp/arm/setjmp.s

+ 1 - 3
src/setjmp/arm/longjmp.s

@@ -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

+ 1 - 3
src/setjmp/arm/setjmp.s

@@ -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