Explorar o código

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 %!s(int64=12) %!d(string=hai) anos
pai
achega
5aac5e2189
Modificáronse 2 ficheiros con 2 adicións e 6 borrados
  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