Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/lib/libc/arch/sparc64/gen Call PIC_PROLOGUE only once.



details:   https://anonhg.NetBSD.org/src/rev/e52832049a2e
branches:  trunk
changeset: 559776:e52832049a2e
user:      pk <pk%NetBSD.org@localhost>
date:      Tue Mar 23 19:07:40 2004 +0000

description:
Call PIC_PROLOGUE only once.

diffstat:

 lib/libc/arch/sparc64/gen/__setjmp14.S |  22 ++++++++++++----------
 1 files changed, 12 insertions(+), 10 deletions(-)

diffs (63 lines):

diff -r 1bcb29364e3b -r e52832049a2e lib/libc/arch/sparc64/gen/__setjmp14.S
--- a/lib/libc/arch/sparc64/gen/__setjmp14.S    Tue Mar 23 19:00:03 2004 +0000
+++ b/lib/libc/arch/sparc64/gen/__setjmp14.S    Tue Mar 23 19:07:40 2004 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: __setjmp14.S,v 1.7 2004/03/23 18:54:03 pk Exp $        */
+/*     $NetBSD: __setjmp14.S,v 1.8 2004/03/23 19:07:40 pk Exp $        */
 
 /*
  * Copyright (c) 1992, 1993
@@ -42,7 +42,7 @@
 #if 0
        .asciz "@(#)setjmp.s    8.1 (Berkeley) 6/4/93"
 #else
-       RCSID("$NetBSD: __setjmp14.S,v 1.7 2004/03/23 18:54:03 pk Exp $")
+       RCSID("$NetBSD: __setjmp14.S,v 1.8 2004/03/23 19:07:40 pk Exp $")
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -75,19 +75,22 @@
        mov     %g6, %l6
        mov     %g7, %l7
 
+#ifdef PIC
+       PIC_PROLOGUE(%i1, %o4)
+#endif
+
        /* now get sigmask and onstack flag */
        add     %i0, 0x38, %o2          /* build sigcontext in [%o2]->sc.sc_mask */
        mov     1, %o0                  /* SIG_BLOCK */
                                        /* sigprocmask(SIG_BLOCK, (sigset_t *)NULL, (sigset_t *)a) */
 #ifdef PIC
-       PIC_PROLOGUE(%g1, %o4)
 #ifdef BIGPIC
        set     _C_LABEL(__sigprocmask14), %o4
-       ldx     [%g1 + %o4], %g1
+       ldx     [%i1 + %o4], %g2
 #else
-       ldx     [%g1 + _C_LABEL(__sigprocmask14)], %g1
+       ldx     [%i1 + _C_LABEL(__sigprocmask14)], %g2
 #endif
-       call    %g1
+       call    %g2
 #else
        call    _C_LABEL(__sigprocmask14)
 #endif
@@ -95,14 +98,13 @@
 
        clr     %o0                     /* sigstack(NULL, &foo) */
 #ifdef PIC
-       PIC_PROLOGUE(%g1, %o4)
 #ifdef BIGPIC
        set     _C_LABEL(__sigaltstack14), %o4
-       ldx     [%g1 + %o4], %g1
+       ldx     [%i1 + %o4], %g2
 #else
-       ldx     [%g1 + _C_LABEL(__sigaltstack14)], %g1
+       ldx     [%i1 + _C_LABEL(__sigaltstack14)], %g2
 #endif
-       call    %g1
+       call    %g2
 #else
        call    _C_LABEL(__sigaltstack14)
 #endif



Home | Main Index | Thread Index | Old Index