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.
This commit is contained in:
mrg 2010-03-22 01:39:11 +00:00
parent 4e60bef737
commit 093c642fac
1 changed files with 12 additions and 4 deletions

View File

@ -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 @@ 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