about summary refs log tree commit diff
path: root/src/setjmp/powerpc
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2012-11-23 14:30:58 -0500
committerRich Felker <dalias@aerifal.cx>2012-11-23 14:30:58 -0500
commita50136dfe186a3ea3d78a4264187915ad16ab861 (patch)
treebdee28a332ff45d9598ad317476f265ac55b481d /src/setjmp/powerpc
parent0375c68fe7ed39b1173b62574936152645624078 (diff)
downloadmusl-a50136dfe186a3ea3d78a4264187915ad16ab861.tar.gz
musl-a50136dfe186a3ea3d78a4264187915ad16ab861.tar.xz
musl-a50136dfe186a3ea3d78a4264187915ad16ab861.zip
fix powerpc setjmp/longjmp to save/restore float regs; enlarge/align jmp_buf
Diffstat (limited to 'src/setjmp/powerpc')
-rw-r--r--src/setjmp/powerpc/longjmp.s18
-rw-r--r--src/setjmp/powerpc/setjmp.s18
2 files changed, 36 insertions, 0 deletions
diff --git a/src/setjmp/powerpc/longjmp.s b/src/setjmp/powerpc/longjmp.s
index fd61ae7b..bab17511 100644
--- a/src/setjmp/powerpc/longjmp.s
+++ b/src/setjmp/powerpc/longjmp.s
@@ -35,6 +35,24 @@ longjmp:
 	lwz 29, 72(3)
 	lwz 30, 76(3)
 	lwz 31, 80(3)
+	lfd 14,88(3)
+	lfd 15,96(3)
+	lfd 16,104(3)
+	lfd 17,112(3)
+	lfd 18,120(3)
+	lfd 19,128(3)
+	lfd 20,136(3)
+	lfd 21,144(3)
+	lfd 22,152(3)
+	lfd 23,160(3)
+	lfd 24,168(3)
+	lfd 25,176(3)
+	lfd 26,184(3)
+	lfd 27,192(3)
+	lfd 28,200(3)
+	lfd 29,208(3)
+	lfd 30,216(3)
+	lfd 31,224(3)
 	#5) put val into return reg r3
 	mr 3, 4
 
diff --git a/src/setjmp/powerpc/setjmp.s b/src/setjmp/powerpc/setjmp.s
index eaf7b684..e39687aa 100644
--- a/src/setjmp/powerpc/setjmp.s
+++ b/src/setjmp/powerpc/setjmp.s
@@ -34,6 +34,24 @@ setjmp:
 	stw 29, 72(3)
 	stw 30, 76(3)
 	stw 31, 80(3)
+	stfd 14,88(3)
+	stfd 15,96(3)
+	stfd 16,104(3)
+	stfd 17,112(3)
+	stfd 18,120(3)
+	stfd 19,128(3)
+	stfd 20,136(3)
+	stfd 21,144(3)
+	stfd 22,152(3)
+	stfd 23,160(3)
+	stfd 24,168(3)
+	stfd 25,176(3)
+	stfd 26,184(3)
+	stfd 27,192(3)
+	stfd 28,200(3)
+	stfd 29,208(3)
+	stfd 30,216(3)
+	stfd 31,224(3)
 	# 4) set return value to 0
 	li 3, 0
 	# 5) return