From 093c642facbc0e772c9811bb3d66a04880e684a5 Mon Sep 17 00:00:00 2001 From: mrg Date: Mon, 22 Mar 2010 01:39:11 +0000 Subject: [PATCH] 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 dennis.c.ferguson@gmail.com in PR#43009. --- lib/libc/arch/powerpc64/gen/__sigsetjmp14.S | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/libc/arch/powerpc64/gen/__sigsetjmp14.S b/lib/libc/arch/powerpc64/gen/__sigsetjmp14.S index f3373bd22688..cb6d9743cc59 100644 --- a/lib/libc/arch/powerpc64/gen/__sigsetjmp14.S +++ b/lib/libc/arch/powerpc64/gen/__sigsetjmp14.S @@ -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 #include #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 @@ ENTRY(__sigsetjmp14) 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