about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2023-02-11 09:43:29 -0500
committerRich Felker <dalias@aerifal.cx>2023-02-11 10:00:31 -0500
commit115149c023485a69f5bff05efd5339c0c5f77798 (patch)
treed1d52c502c7696fc68c8e5a6cfb9817b2ec10dec
parent5763f003a53ddaa63655058f19d9fe662751592d (diff)
downloadmusl-115149c023485a69f5bff05efd5339c0c5f77798.tar.gz
musl-115149c023485a69f5bff05efd5339c0c5f77798.tar.xz
musl-115149c023485a69f5bff05efd5339c0c5f77798.zip
powerpc-sf longjmp clobbering of val argument
the logic to check hwcap for SPE register file inadvertently clobbered
the val argument before use. switch to a different work register so
this doesn't happen.
-rw-r--r--src/setjmp/powerpc/longjmp.S8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/setjmp/powerpc/longjmp.S b/src/setjmp/powerpc/longjmp.S
index 611389fe..465e4cd7 100644
--- a/src/setjmp/powerpc/longjmp.S
+++ b/src/setjmp/powerpc/longjmp.S
@@ -42,10 +42,10 @@ longjmp:
 	bl 1f
 	.hidden __hwcap
 	.long __hwcap-.
-1:	mflr 4
-	lwz 5, 0(4)
-	lwzx 4, 4, 5
-	andis. 4, 4, 0x80
+1:	mflr 6
+	lwz 5, 0(6)
+	lwzx 6, 6, 5
+	andis. 6, 6, 0x80
 	beq 1f
 	.long 0x11c35b01 /* evldd 14,88(3) */
 	.long 0x11e36301 /* ... */