* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h [ASSEMBLER]:
authorUlrich Drepper <drepper@redhat.com>
Thu, 29 Dec 2005 22:03:36 +0000 (22:03 +0000)
committerUlrich Drepper <drepper@redhat.com>
Thu, 29 Dec 2005 22:03:36 +0000 (22:03 +0000)
Define PTR_DEMANGLE2.
* sysdeps/powerpc/powerpc32/setjmp-common.S [PTR_MANGLE]: Also
mangle r1.
* sysdeps/powerpc/powerpc32/__longjmp-common.S [PTR_DEMANGLE]: Also
demangle r1.
* sysdeps/powerpc/powerpc32/fpu/setjmp-common.S [PTR_MANGLE]: Mangle
r0 and r1.
* sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S [PTR_DEMANGLE]:
Demangle r0 and r1.

ChangeLog
sysdeps/powerpc/powerpc32/__longjmp-common.S
sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S
sysdeps/powerpc/powerpc32/fpu/setjmp-common.S
sysdeps/powerpc/powerpc32/setjmp-common.S
sysdeps/powerpc/powerpc64/setjmp-common.S
sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h

index 9d9b3ae..5201d34 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,16 @@
 2005-12-29  Ulrich Drepper  <drepper@redhat.com>
 
+       * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h [ASSEMBLER]:
+       Define PTR_DEMANGLE2.
+       * sysdeps/powerpc/powerpc32/setjmp-common.S [PTR_MANGLE]: Also
+       mangle r1.
+       * sysdeps/powerpc/powerpc32/__longjmp-common.S [PTR_DEMANGLE]: Also
+       demangle r1.
+       * sysdeps/powerpc/powerpc32/fpu/setjmp-common.S [PTR_MANGLE]: Mangle
+       r0 and r1.
+       * sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S [PTR_DEMANGLE]:
+       Demangle r0 and r1.
+
        * sysdeps/powerpc/powerpc64/setjmp-common.S [PTR_MANGLE]: Also
        mangle r1.
        * sysdeps/powerpc/powerpc64/__longjmp-common.S [PTR_DEMANGLE]: Also
index 80f5905..d3f5545 100644 (file)
@@ -43,6 +43,7 @@ ENTRY (BP_SYM (__longjmp))
        lwz r20,((JB_GPRS+6)*4)(r3)
 #ifdef PTR_DEMANGLE
        PTR_DEMANGLE (r0, r25)
+       PTR_DEMANGLE2 (r1, r25)
 #endif
        mtlr r0
        lwz r21,((JB_GPRS+7)*4)(r3)
index 73cc818..022d7eb 100644 (file)
@@ -1,5 +1,5 @@
 /* longjmp for PowerPC.
-   Copyright (C) 1995-99, 2000, 2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1995-99, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -128,6 +128,10 @@ L(no_vmx):
        lfd fp19,((JB_FPRS+5*2)*4)(r3)
        lwz r20,((JB_GPRS+6)*4)(r3)
        lfd fp20,((JB_FPRS+6*2)*4)(r3)
+#ifdef PTR_DEMANGLE
+       PTR_DEMANGLE (r0, r25)
+       PTR_DEMANGLE2 (r1, r25)
+#endif
        mtlr r0
        lwz r21,((JB_GPRS+7)*4)(r3)
        lfd fp21,((JB_FPRS+7*2)*4)(r3)
index cf3f215..dae7904 100644 (file)
 ENTRY (BP_SYM (__sigsetjmp))
        CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE)
 
+#ifdef PTR_MANGLE
+       mr   r5,r1
+       PTR_MANGLE(r5, r10)
+       stw  r5,(JB_GPR1*4)(3)
+#else
        stw  r1,(JB_GPR1*4)(3)
+#endif
        mflr r0
        stw  r14,((JB_GPRS+0)*4)(3)
        stfd fp14,((JB_FPRS+0*2)*4)(3)
+#ifdef PTR_MANGLE
+       PTR_MANGLE (r0, r10)
+#endif
        stw  r0,(JB_LR*4)(3)
        stw  r15,((JB_GPRS+1)*4)(3)
        stfd fp15,((JB_FPRS+1*2)*4)(3)
index 7500754..3574092 100644 (file)
 ENTRY (BP_SYM (__sigsetjmp))
        CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE)
 
+#ifdef PTR_MANGLE
+       mr   r5,r1
+       PTR_MANGLE(r5, r10)
+       stw  r5,(JB_GPR1*4)(3)
+#else
        stw  r1,(JB_GPR1*4)(3)
+#endif
        mflr r0
        stw  r14,((JB_GPRS+0)*4)(3)
 #ifdef PTR_MANGLE
index 4098fd6..9660302 100644 (file)
@@ -46,7 +46,13 @@ ENTRY (BP_SYM (__sigsetjmp))
        .hidden JUMPTARGET(GLUE(__sigsetjmp,_ent))
 JUMPTARGET(GLUE(__sigsetjmp,_ent)):
        CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE)
+#ifdef PTR_MANGLE
+       mr   r5, r1
+       PTR_MANGLE (r5, r10)
+       std  r5,(JB_GPR1*8)(3)
+#else
        std  r1,(JB_GPR1*8)(3)
+#endif
        mflr r0
 #if defined SHARED && !defined IS_IN_rtld
        ld   r5,40(r1)  /* Retrieve the callers TOC.  */
index d3cd45c..cf49d0a 100644 (file)
        lwz     tmpreg,POINTER_GUARD(r2); \
        xor     reg,tmpreg,reg
 #  define PTR_DEMANGLE(reg, tmpreg) PTR_MANGLE (reg, tmpreg)
+#  define PTR_DEMANGLE2(reg, tmpreg) \
+       xor     reg,tmpreg,reg
 # else
 #  define PTR_MANGLE(var) \
   (var) = (__typeof (var)) ((uintptr_t) (var) ^ THREAD_GET_POINTER_GUARD ())