Module Name:    src
Committed By:   mrg
Date:           Mon Mar 22 01:39:11 UTC 2010

Modified Files:
        src/lib/libc/arch/powerpc64/gen: __sigsetjmp14.S

Log Message:
replace kernel-only 'stmd' and 'lmd' operations in userland with equivalent
sequences of code, as done in eg, powerpc64/gen/_setjmp.S rev 1.2.

from [email protected] in PR#43009.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/lib/libc/arch/powerpc64/gen/__sigsetjmp14.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/arch/powerpc64/gen/__sigsetjmp14.S
diff -u src/lib/libc/arch/powerpc64/gen/__sigsetjmp14.S:1.1 src/lib/libc/arch/powerpc64/gen/__sigsetjmp14.S:1.2
--- src/lib/libc/arch/powerpc64/gen/__sigsetjmp14.S:1.1	Fri Jul  7 21:07:35 2006
+++ src/lib/libc/arch/powerpc64/gen/__sigsetjmp14.S	Mon Mar 22 01:39:11 2010
@@ -1,11 +1,11 @@
-/*	$NetBSD: __sigsetjmp14.S,v 1.1 2006/07/07 21:07:35 ross Exp $	*/
+/*	$NetBSD: __sigsetjmp14.S,v 1.2 2010/03/22 01:39:11 mrg Exp $	*/
 
 #include <sys/syscall.h>
 #include <machine/asm.h>
 
 #if defined(LIBC_SCCS)
 	.text
-	.asciz "$NetBSD: __sigsetjmp14.S,v 1.1 2006/07/07 21:07:35 ross Exp $"
+	.asciz "$NetBSD: __sigsetjmp14.S,v 1.2 2010/03/22 01:39:11 mrg Exp $"
 #endif
 
 ENTRY(__sigsetjmp14)
@@ -22,12 +22,20 @@
 	mfcr	%r12
 	mr	%r10,%r1
 	mr	%r9,%r2
-	stmd	7, 0(%r6)		# save r7-r31
+	i = 0
+	.rept	32-7
+	std	7+i,i*8(%r6)		# save r7-r31
+	i = i + 1
+	.endr
 	li	%r3,0
 	blr
 
 ENTRY(__siglongjmp14)
-	lmd	7,0(%r3)		# load r7-r31
+	i = 0
+	.rept	32-7
+	ld	7+i,i*8(%r3)		# load r7-r31
+	i = i + 1
+	.endr
 	mr	%r6,%r4
 	mtlr	%r11
 	mtcr	%r12

Reply via email to