about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--arch/powerpc/bits/setjmp.h2
-rw-r--r--src/setjmp/powerpc/longjmp.s18
-rw-r--r--src/setjmp/powerpc/setjmp.s18
3 files changed, 37 insertions, 1 deletions
diff --git a/arch/powerpc/bits/setjmp.h b/arch/powerpc/bits/setjmp.h
index a4baec4c..ab583aba 100644
--- a/arch/powerpc/bits/setjmp.h
+++ b/arch/powerpc/bits/setjmp.h
@@ -1 +1 @@
-typedef unsigned long jmp_buf [64];
+typedef unsigned long long jmp_buf [56];
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