* elf/tst-tls8.c (do_test): Use $ORIGIN in module names.
authorUlrich Drepper <drepper@redhat.com>
Sat, 7 Jan 2006 03:58:05 +0000 (03:58 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sat, 7 Jan 2006 03:58:05 +0000 (03:58 +0000)
2006-01-03  Steven Munroe  <sjmunroe@us.ibm.com>

* sysdeps/generic/sysdep.h (cfi_same_value): Define macro.

* sysdeps/powerpc/powerpc32/dl-trampoline.S (_dl_runtime_resolve,
_dl_profile_resolve): Add CFI directives for stack and LR save.
Save LR in LRSAVE of previous frame per ABI.
* sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S: Add CFI directives
for LR save.
* sysdeps/powerpc/powerpc32/lshift.S: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S
(__makecontext, __novec_makecontext): Likewise.
* sysdeps/powerpc/powerpc32/fpu/s_ceil.S: Add CFI directive
for LR save to register.
* sysdeps/powerpc/powerpc32/fpu/s_ceilf.S: Likewise.
* sysdeps/powerpc/powerpc32/fpu/s_floor.S: Likewise.
* sysdeps/powerpc/powerpc32/fpu/s_floorf.S: Likewise.
* sysdeps/powerpc/powerpc32/fpu/s_rint.S: Likewise.
* sysdeps/powerpc/powerpc32/fpu/s_rintf.S: Likewise.
* sysdeps/powerpc/powerpc32/fpu/s_round.S: Likewise.
* sysdeps/powerpc/powerpc32/fpu/s_roundf.S: Likewise.
* sysdeps/powerpc/powerpc32/fpu/s_trunc.S: Likewise.
* sysdeps/powerpc/powerpc32/fpu/s_truncf.S: Likewise.
* sysdeps/powerpc/powerpc32/fpu/setjmp-common.S: Likewise.
* sysdeps/powerpc/powerpc32/fpu/s_copysign.S: Add CFI directive
for stack.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: Likewise.
* sysdeps/powerpc/powerpc32/ppc-mcount.S: Add CFI directives for stack
and LR save.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S:
Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S:
Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S:
Likewise.
* sysdeps/powerpc/powerpc32/fpu/s_lround.S:  Likewise.  Don't use
negative stack addressing.

* sysdeps/powerpc/powerpc64/dl-trampoline.S (_dl_runtime_resolve,
_dl_profile_resolve): Add CFI directives for stack and LR save.
* sysdeps/powerpc/powerpc64/fpu/s_copysign.S: Add CFI directives
for stack.
* sysdeps/powerpc/powerpc64/ppc-mcount.S (_mcount): Add CFI
directives for stack and LR save.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S (__brk): Add CFI
directives for stack.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S (__clone): Add CFI
directives for stack.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S
(__getcontext, __novec_getcontext): Add CFI directives for stack
and LR save.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S
(__makecontext): Add CFI directives for stack and LR save.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S
(__setcontext, __novec_setcontext): Add CFI directives for stack
and LR save.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S
(__swapcontext, __novec_swapcontext):  Add CFI directives for stack
and LR save.

35 files changed:
ChangeLog
elf/tst-tls8.c
sysdeps/generic/sysdep.h
sysdeps/powerpc/powerpc32/dl-trampoline.S
sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S
sysdeps/powerpc/powerpc32/fpu/s_ceil.S
sysdeps/powerpc/powerpc32/fpu/s_ceilf.S
sysdeps/powerpc/powerpc32/fpu/s_copysign.S
sysdeps/powerpc/powerpc32/fpu/s_floor.S
sysdeps/powerpc/powerpc32/fpu/s_floorf.S
sysdeps/powerpc/powerpc32/fpu/s_lround.S
sysdeps/powerpc/powerpc32/fpu/s_rint.S
sysdeps/powerpc/powerpc32/fpu/s_rintf.S
sysdeps/powerpc/powerpc32/fpu/s_round.S
sysdeps/powerpc/powerpc32/fpu/s_roundf.S
sysdeps/powerpc/powerpc32/fpu/s_trunc.S
sysdeps/powerpc/powerpc32/fpu/s_truncf.S
sysdeps/powerpc/powerpc32/fpu/setjmp-common.S
sysdeps/powerpc/powerpc32/lshift.S
sysdeps/powerpc/powerpc32/ppc-mcount.S
sysdeps/powerpc/powerpc64/dl-trampoline.S
sysdeps/powerpc/powerpc64/fpu/s_copysign.S
sysdeps/powerpc/powerpc64/ppc-mcount.S
sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S
sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S
sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S
sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S
sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S
sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S
sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S
sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S
sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S
sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S
sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S
sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S

index ad42854..7d51ce7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,68 @@
+2006-01-06  Ulrich Drepper  <drepper@redhat.com>
+
+       * elf/tst-tls8.c (do_test): Use $ORIGIN in module names.
+
+2006-01-03  Steven Munroe  <sjmunroe@us.ibm.com>
+
+       * sysdeps/generic/sysdep.h (cfi_same_value): Define macro.
+
+       * sysdeps/powerpc/powerpc32/dl-trampoline.S (_dl_runtime_resolve,
+       _dl_profile_resolve): Add CFI directives for stack and LR save.
+       Save LR in LRSAVE of previous frame per ABI.
+       * sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S: Add CFI directives
+       for LR save.
+       * sysdeps/powerpc/powerpc32/lshift.S: Likewise.
+       * sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S
+       (__makecontext, __novec_makecontext): Likewise.
+       * sysdeps/powerpc/powerpc32/fpu/s_ceil.S: Add CFI directive
+       for LR save to register.
+       * sysdeps/powerpc/powerpc32/fpu/s_ceilf.S: Likewise.
+       * sysdeps/powerpc/powerpc32/fpu/s_floor.S: Likewise.
+       * sysdeps/powerpc/powerpc32/fpu/s_floorf.S: Likewise.
+       * sysdeps/powerpc/powerpc32/fpu/s_rint.S: Likewise.
+       * sysdeps/powerpc/powerpc32/fpu/s_rintf.S: Likewise.
+       * sysdeps/powerpc/powerpc32/fpu/s_round.S: Likewise.
+       * sysdeps/powerpc/powerpc32/fpu/s_roundf.S: Likewise.
+       * sysdeps/powerpc/powerpc32/fpu/s_trunc.S: Likewise.
+       * sysdeps/powerpc/powerpc32/fpu/s_truncf.S: Likewise.
+       * sysdeps/powerpc/powerpc32/fpu/setjmp-common.S: Likewise.
+       * sysdeps/powerpc/powerpc32/fpu/s_copysign.S: Add CFI directive
+       for stack.
+       * sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: Likewise.
+       * sysdeps/powerpc/powerpc32/ppc-mcount.S: Add CFI directives for stack
+       and LR save.
+       * sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S: Likewise.
+       * sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S:
+       Likewise.
+       * sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S:
+       Likewise.
+       * sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S:
+       Likewise.
+       * sysdeps/powerpc/powerpc32/fpu/s_lround.S:  Likewise.  Don't use
+       negative stack addressing.
+
+       * sysdeps/powerpc/powerpc64/dl-trampoline.S (_dl_runtime_resolve,
+       _dl_profile_resolve): Add CFI directives for stack and LR save.
+       * sysdeps/powerpc/powerpc64/fpu/s_copysign.S: Add CFI directives
+       for stack.
+       * sysdeps/powerpc/powerpc64/ppc-mcount.S (_mcount): Add CFI
+       directives for stack and LR save.
+       * sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S (__brk): Add CFI
+       directives for stack.
+       * sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S (__clone): Add CFI
+       directives for stack.
+       * sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S
+       (__getcontext, __novec_getcontext): Add CFI directives for stack
+       and LR save.
+       * sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S
+       (__makecontext): Add CFI directives for stack and LR save.
+       * sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S
+       (__setcontext, __novec_setcontext): Add CFI directives for stack
+       and LR save.
+       * sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S
+       (__swapcontext, __novec_swapcontext):  Add CFI directives for stack
+       and LR save.
+
 2006-01-06  Jakub Jelinek  <jakub@redhat.com>
 
        * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Include tls.h.
index dd896c4..ccc4e9f 100644 (file)
@@ -11,8 +11,8 @@ static int
 do_test (void)
 {
 #ifdef USE_TLS
-  static const char modname1[] = "tst-tlsmod3.so";
-  static const char modname2[] = "tst-tlsmod4.so";
+  static const char modname1[] = "$ORIGIN/tst-tlsmod3.so";
+  static const char modname2[] = "$ORIGIN/tst-tlsmod4.so";
   int result = 0;
   int (*fp1) (void);
   int (*fp2) (int, int *);
index 58c7928..15d951c 100644 (file)
@@ -60,6 +60,7 @@
 #  define cfi_register(r1, r2)         .cfi_register r1, r2
 #  define cfi_return_column(reg)       .cfi_return_column reg
 #  define cfi_restore(reg)             .cfi_restore reg
+#  define cfi_same_value(reg)          .cfi_same_value reg
 #  define cfi_undefined(reg)           .cfi_undefined reg
 #  define cfi_remember_state           .cfi_remember_state
 #  define cfi_restore_state            .cfi_restore_state
@@ -76,6 +77,7 @@
 #  define cfi_register(r1, r2)
 #  define cfi_return_column(reg)
 #  define cfi_restore(reg)
+#  define cfi_same_value(reg)
 #  define cfi_undefined(reg)
 #  define cfi_remember_state
 #  define cfi_restore_state
index 506e802..392c109 100644 (file)
@@ -1,5 +1,5 @@
 /* PLT trampolines.  PPC32 version.
-   Copyright (C) 2005 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2006 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
@@ -14,8 +14,8 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA
+   02110-1301 USA.  */
 
 #include <sysdep.h>
 
        .globl _dl_runtime_resolve
        .type _dl_runtime_resolve,@function
 _dl_runtime_resolve:
+       cfi_startproc
  # We need to save the registers used to pass parameters, and register 0,
  # which is used by _mcount; the registers are saved in a stack frame.
        stwu r1,-64(r1)
+       cfi_adjust_cfa_offset (64)
        stw r0,12(r1)
        stw r3,16(r1)
        stw r4,20(r1)
@@ -38,7 +40,8 @@ _dl_runtime_resolve:
        mflr r0
  # We also need to save some of the condition register fields
        stw r7,32(r1)
-       stw r0,48(r1)
+       stw r0,68(r1)
+       cfi_offset (lr, 4)
        stw r8,36(r1)
        mfcr r0
        stw r9,40(r1)
@@ -48,7 +51,7 @@ _dl_runtime_resolve:
  # 'fixup' returns the address we want to branch to.
        mtctr r3
  # Put the registers back...
-       lwz r0,48(r1)
+       lwz r0,68(r1)
        lwz r10,44(r1)
        lwz r9,40(r1)
        mtlr r0
@@ -64,6 +67,7 @@ _dl_runtime_resolve:
  # ...unwind the stack frame, and jump to the PLT entry we updated.
        addi r1,r1,64
        bctr
+       cfi_endproc
        .size    _dl_runtime_resolve,.-_dl_runtime_resolve
 
 #ifndef PROF
@@ -71,9 +75,11 @@ _dl_runtime_resolve:
        .globl _dl_prof_resolve
        .type _dl_prof_resolve,@function
 _dl_prof_resolve:
+       cfi_startproc
  # We need to save the registers used to pass parameters, and register 0,
  # which is used by _mcount; the registers are saved in a stack frame.
        stwu r1,-320(r1)
+       cfi_adjust_cfa_offset (320)
        /* Stack layout:
 
          +312   stackframe
@@ -122,7 +128,8 @@ _dl_prof_resolve:
        mflr r5
  # We also need to save some of the condition register fields.
        stw r7,32(r1)
-       stw r5,308(r1)
+       stw r5,324(r1)
+       cfi_offset (lr, 4)
        stw r8,36(r1)
        mfcr r0
        stw r9,40(r1)
@@ -147,7 +154,7 @@ _dl_prof_resolve:
  # 'fixup' returns the address we want to branch to.
        mtctr r3
  # Put the registers back...
-       lwz r0,308(r1)
+       lwz r0,324(r1)
        lwz r10,44(r1)
        lwz r9,40(r1)
        mtlr r0
@@ -172,5 +179,6 @@ _dl_prof_resolve:
  # ...unwind the stack frame, and jump to the PLT entry we updated.
        addi r1,r1,320
        bctr
+       cfi_endproc
        .size    _dl_prof_resolve,.-_dl_prof_resolve
 #endif
index 022d7eb..644e626 100644 (file)
@@ -1,5 +1,5 @@
 /* longjmp for PowerPC.
-   Copyright (C) 1995-99, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+   Copyright (C) 1995-99, 2000, 2003-2005, 2006 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
@@ -14,8 +14,8 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   Software Foundation, Inc., 1 Franklin Street, Fifth Floor, Boston MA
+   02110-1301 USA.  */
 
 #include <sysdep.h>
 #define _ASM
@@ -34,6 +34,7 @@ ENTRY (BP_SYM (__longjmp))
 #ifndef __NO_VMX__
 # ifdef PIC
        mflr    r6
+       cfi_register (lr,r6)
 #  ifdef HAVE_ASM_PPC_REL16
        bcl     20,31,1f
 1:     mflr    r5
@@ -46,10 +47,12 @@ ENTRY (BP_SYM (__longjmp))
 #  ifdef SHARED
        lwz     r5,_rtld_global_ro@got(r5)
        mtlr    r6
+       cfi_same_value (lr)
        lwz     r5,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET(r5)
 #  else
        lwz     r5,_dl_hwcap@got(r5)
        mtlr    r6
+       cfi_same_value (lr)
        lwz     r5,0(r5)
 #  endif
 # else
index 13afba8..2e0e6a8 100644 (file)
@@ -1,5 +1,5 @@
 /* ceil function.  PowerPC32 version.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2006 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
@@ -14,8 +14,8 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   Software Foundation, Inc., 1 Franklin Street, Fifth Floor, Boston MA
+   02110-1301 USA.  */
 
 #include <sysdep.h>
 
@@ -29,19 +29,20 @@ ENTRY (__ceil)
        mffs    fp11            /* Save current FPU rounding mode.  */
 #ifdef SHARED
        mflr    r11
+       cfi_register(lr,r11)
 # ifdef HAVE_ASM_PPC_REL16
        bcl     20,31,1f
 1:     mflr    r9
        addis   r9,r9,.LC0-1b@ha
-       mtlr    r11
        lfs     fp13,.LC0-1b@l(r9)
 # else
        bl      _GLOBAL_OFFSET_TABLE_@local-4
        mflr    r10
        lwz     r9,.LC0@got(10)
-       mtlr    r11
        lfs     fp13,0(r9)
 # endif
+       mtlr    r11
+       cfi_same_value (lr)
 #else
        lis     r9,.LC0@ha
        lfs     fp13,.LC0@l(r9)
index f8ca1de..47a75ec 100644 (file)
@@ -1,5 +1,5 @@
 /* float ceil function.  PowerPC32 version.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2006 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
@@ -14,8 +14,8 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   Software Foundation, Inc., 1 Franklin Street, Fifth Floor, Boston MA
+   02110-1301 USA.  */
 
 #include <sysdep.h>
 
@@ -29,19 +29,20 @@ ENTRY (__ceilf)
        mffs    fp11            /* Save current FPU rounding mode.  */
 #ifdef SHARED
        mflr    r11
+       cfi_register(lr,r11)
 # ifdef HAVE_ASM_PPC_REL16
        bcl     20,31,1f
 1:     mflr    r9
        addis   r9,r9,.LC0-1b@ha
-       mtlr    r11
        lfs     fp13,.LC0-1b@l(r9)
 # else
        bl      _GLOBAL_OFFSET_TABLE_@local-4
        mflr    r10
        lwz     r9,.LC0@got(10)
-       mtlr    r11
        lfs     fp13,0(r9)
 # endif
+       mtlr    r11
+       cfi_same_value (lr)
 #else
        lis     r9,.LC0@ha
        lfs     fp13,.LC0@l(r9)
index ee2c09c..39d7d1c 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy a sign bit between floating-point values.
-   Copyright (C) 1997, 1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1999, 2000, 2006 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
@@ -14,8 +14,8 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   Software Foundation, Inc., 1 Franklin Street, Fifth Floor, Boston MA
+   02110-1301 USA.  */
 
 /* This has been coded in assembler because GCC makes such a mess of it
    when it's coded in C.  */
@@ -27,6 +27,7 @@ ENTRY(__copysign)
    copysign(x,y) returns a value with the magnitude of x and
    with the sign bit of y.  */
        stwu    r1,-16(r1)
+       cfi_adjust_cfa_offset (16)
        stfd    fp2,8(r1)
        lwz     r3,8(r1)
        cmpwi   r3,0
index 5dfe8f2..5942d09 100644 (file)
@@ -1,5 +1,5 @@
 /* Floor function.  PowerPC32 version.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2006 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
@@ -14,8 +14,8 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   Software Foundation, Inc., 1 Franklin Street, Fifth Floor, Boston MA
+   02110-1301 USA.  */
 
 #include <sysdep.h>
 
@@ -29,19 +29,20 @@ ENTRY (__floor)
        mffs    fp11            /* Save current FPU rounding mode.  */
 #ifdef SHARED
        mflr    r11
+       cfi_register(lr,r11)
 # ifdef HAVE_ASM_PPC_REL16
        bcl     20,31,1f
 1:     mflr    r9
        addis   r9,r9,.LC0-1b@ha
-       mtlr    r11
        lfs     fp13,.LC0-1b@l(r9)
 # else
        bl      _GLOBAL_OFFSET_TABLE_@local-4
        mflr    r10
        lwz     r9,.LC0@got(10)
-       mtlr    r11
        lfs     fp13,0(r9)
 # endif
+       mtlr    r11
+       cfi_same_value (lr)
 #else
        lis     r9,.LC0@ha
        lfs     fp13,.LC0@l(r9)
index 31b71ad..99fbdc5 100644 (file)
@@ -1,5 +1,5 @@
 /* float Floor function.  PowerPC32 version.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2006 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
@@ -14,8 +14,8 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA
+   02110-1301 USA.  */
 
 #include <sysdep.h>
 
@@ -29,19 +29,20 @@ ENTRY (__floorf)
        mffs    fp11            /* Save current FPU rounding mode.  */
 #ifdef SHARED
        mflr    r11
+       cfi_register(lr,r11)
 # ifdef HAVE_ASM_PPC_REL16
        bcl     20,31,1f
 1:     mflr    r9
        addis   r9,r9,.LC0-1b@ha
-       mtlr    r11
        lfs     fp13,.LC0-1b@l(r9)
 # else
        bl      _GLOBAL_OFFSET_TABLE_@local-4
        mflr    r10
        lwz     r9,.LC0@got(10)
-       mtlr    r11
        lfs     fp13,0(r9)
 # endif
+       mtlr    r11
+       cfi_same_value (lr)
 #else
        lis     r9,.LC0@ha
        lfs     fp13,.LC0@l(r9)
index 4f543eb..67e5884 100644 (file)
@@ -1,5 +1,5 @@
 /* lround function.  PowerPC32 version.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2006 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
@@ -14,8 +14,8 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   Software Foundation, Inc., 1 Franklin Street, Fifth Floor, Boston MA
+   02110-1301 USA.  */
 
 #include <sysdep.h>
 
    to the integer value.  */
 
 ENTRY (__lround)
+       stwu    r1,-16(r1)
+       cfi_adjust_cfa_offset (16)
 #ifdef SHARED
        mflr    r11
+       cfi_register(lr,r11)
 # ifdef HAVE_ASM_PPC_REL16
        bcl     20,31,1f
 1:     mflr    r9
@@ -52,6 +55,7 @@ ENTRY (__lround)
        lwz     r9,.LC0@got(10)
 # endif
        mtlr    r11
+       cfi_same_value (lr)
        lfs     fp12,0(r9)
 #else
        lis     r9,.LC0@ha
@@ -68,11 +72,12 @@ ENTRY (__lround)
        fadd    fp1,fp1,fp10    /* x+= 0.5;  */
 .L9:
        fctiwz  fp2,fp1         /* Convert To Integer DW lround toward 0.  */
-       stfd    fp2,-8(r1)
+       stfd    fp2,8(r1)
        nop     /* Ensure the following load is in a different dispatch  */
        nop     /* group to avoid pipe stall on POWER4&5.  */
        nop
-       lwz     r3,-4(r1)
+       lwz     r3,12(r1)
+       addi    r1,r1,16
        blr
 .L4:
        fsub    fp1,fp1,fp10    /* x-= 0.5;  */
index 1cfcd78..041cb58 100644 (file)
@@ -1,5 +1,5 @@
 /* Round to int floating-point values.  PowerPC32 version.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2006 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
@@ -14,8 +14,8 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   Software Foundation, Inc., 1 Franklin Street, Fifth Floor, Boston MA
+   02110-1301 USA.  */
 
 /* This has been coded in assembler because GCC makes such a mess of it
    when it's coded in C.  */
 ENTRY (__rint)
 #ifdef SHARED
        mflr    r11
+       cfi_register(lr,r11)
 # ifdef HAVE_ASM_PPC_REL16
        bcl     20,31,1f
 1:     mflr    r9
        addis   r9,r9,.LC0-1b@ha
-       mtlr    r11
        lfs     fp13,.LC0-1b@l(r9)
 # else
        bl      _GLOBAL_OFFSET_TABLE_@local-4
        mflr    r10
        lwz     r9,.LC0@got(10)
-       mtlr    r11
        lfs     fp13,0(r9)
 # endif
+       mtlr    r11
+       cfi_same_value (lr)
 #else
        lis     r9,.LC0@ha
        lfs     fp13,.LC0@l(r9)
index 93c0266..7771cb2 100644 (file)
@@ -1,5 +1,5 @@
 /* Round float to int floating-point values.  PowerPC32 version.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2006 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
@@ -14,8 +14,8 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   Software Foundation, Inc., 1 Franklin Street, Fifth Floor, Boston MA
+   02110-1301 USA.  */
 
 #include <sysdep.h>
 
 ENTRY (__rintf)
 #ifdef SHARED
        mflr    r11
+       cfi_register(lr,r11)
 # ifdef HAVE_ASM_PPC_REL16
        bcl     20,31,1f
 1:     mflr    r9
        addis   r9,r9,.LC0-1b@ha
-       mtlr    r11
        lfs     fp13,.LC0-1b@l(r9)
 # else
        bl      _GLOBAL_OFFSET_TABLE_@local-4
        mflr    r10
        lwz     r9,.LC0@got(10)
-       mtlr    r11
        lfs     fp13,0(r9)
 # endif
+       mtlr    r11
+       cfi_same_value (lr)
 #else
        lis     r9,.LC0@ha
        lfs     fp13,.LC0@l(r9)
index 53b4591..04ba942 100644 (file)
@@ -1,5 +1,5 @@
 /* round function.  PowerPC32 version.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2006 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
@@ -14,8 +14,8 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   Software Foundation, Inc., 1 Franklin Street, Fifth Floor, Boston MA
+   02110-1301 USA.  */
 
 #include <sysdep.h>
 
@@ -41,6 +41,7 @@ ENTRY (__round)
        mffs    fp11            /* Save current FPU rounding mode.  */
 #ifdef SHARED
        mflr    r11
+       cfi_register(lr,r11)
 # ifdef HAVE_ASM_PPC_REL16
        bcl     20,31,1f
 1:     mflr    r9
@@ -52,6 +53,7 @@ ENTRY (__round)
        lwz     r9,.LC0@got(10)
 # endif
        mtlr    r11
+       cfi_same_value (lr)
        lfs     fp13,0(r9)
 #else
        lis     r9,.LC0@ha
index 39ba086..7e99bca 100644 (file)
@@ -1,5 +1,5 @@
 /* roundf  function.  PowerPC32 version.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2006 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
@@ -14,8 +14,8 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   Software Foundation, Inc., 1 Franklin Street, Fifth Floor, Boston MA
+   02110-1301 USA.  */
 
 #include <sysdep.h>
 
@@ -41,6 +41,7 @@ ENTRY (__roundf )
        mffs    fp11            /* Save current FPU rounding mode.  */
 #ifdef SHARED
        mflr    r11
+       cfi_register(lr,r11)
 # ifdef HAVE_ASM_PPC_REL16
        bcl     20,31,1f
 1:     mflr    r9
@@ -52,6 +53,7 @@ ENTRY (__roundf )
        lwz     r9,.LC0@got(10)
 # endif
        mtlr    r11
+       cfi_same_value (lr)
        lfs     fp13,0(r9)
 #else
        lis     r9,.LC0@ha
index 827e8cb..4ea4e07 100644 (file)
@@ -1,5 +1,5 @@
 /* trunc function.  PowerPC32 version.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2006 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
@@ -14,8 +14,8 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   Software Foundation, Inc., 1 Franklin Street, Fifth Floor, Boston MA
+   02110-1301 USA.  */
 
 #include <sysdep.h>
 
@@ -36,19 +36,20 @@ ENTRY (__trunc)
        mffs    fp11            /* Save current FPU rounding mode.  */
 #ifdef SHARED
        mflr    r11
+       cfi_register(lr,r11)
 # ifdef HAVE_ASM_PPC_REL16
        bcl     20,31,1f
 1:     mflr    r9
        addis   r9,r9,.LC0-1b@ha
-       mtlr    r11
        lfs     fp13,.LC0-1b@l(r9)
 # else
        bl      _GLOBAL_OFFSET_TABLE_@local-4
        mflr    r10
        lwz     r9,.LC0@got(10)
-       mtlr    r11
        lfs     fp13,0(r9)
 # endif
+       mtlr    r11
+       cfi_same_value (lr)
 #else
        lis     r9,.LC0@ha
        lfs     fp13,.LC0@l(r9)
index 55e7a74..0005d50 100644 (file)
@@ -1,5 +1,5 @@
 /* truncf function.  PowerPC32 version.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2006 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
@@ -14,8 +14,8 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   Software Foundation, Inc., 1 Franklin Street, Fifth Floor, Boston MA
+   02110-1301 USA.  */
 
 #include <sysdep.h>
 
@@ -36,19 +36,20 @@ ENTRY (__truncf)
        mffs    fp11            /* Save current FPU rounding mode.  */
 #ifdef SHARED
        mflr    r11
+       cfi_register(lr,r11)
 # ifdef HAVE_ASM_PPC_REL16
        bcl     20,31,1f
 1:     mflr    r9
        addis   r9,r9,.LC0-1b@ha
-       mtlr    r11
        lfs     fp13,.LC0-1b@l(r9)
 # else
        bl      _GLOBAL_OFFSET_TABLE_@local-4
        mflr    r10
        lwz     r9,.LC0@got(10)
-       mtlr    r11
        lfs     fp13,0(r9)
 # endif
+       mtlr    r11
+       cfi_same_value (lr)
 #else
        lis     r9,.LC0@ha
        lfs     fp13,.LC0@l(r9)
index 3afcf66..e38c7b8 100644 (file)
@@ -1,5 +1,5 @@
 /* setjmp for PowerPC.
-   Copyright (C) 1995-2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+   Copyright (C) 1995-2000, 2003-2005, 2006 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
@@ -14,8 +14,8 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   Software Foundation, Inc., 1 Franklin Street, Fifth Floor, Boston MA
+   02110-1301 USA.  */
 
 #include <sysdep.h>
 #define _ASM
@@ -85,6 +85,7 @@ ENTRY (BP_SYM (__sigsetjmp))
 #ifndef __NO_VMX__
 # ifdef PIC
        mflr    r6
+       cfi_register(lr,r6)
 #  ifdef HAVE_ASM_PPC_REL16
        bcl     20,31,1f
 1:     mflr    r5
@@ -94,13 +95,13 @@ ENTRY (BP_SYM (__sigsetjmp))
        bl      _GLOBAL_OFFSET_TABLE_@local-4
        mflr    r5
 #  endif
+       mtlr    r6
+       cfi_same_value (lr)
 #  ifdef SHARED
        lwz     r5,_rtld_global_ro@got(r5)
-       mtlr    r6
        lwz     r5,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET(r5)
 #  else
        lwz     r5,_dl_hwcap@got(r5)
-       mtlr    r6
        lwz     r5,0(r5)
 #  endif
 # else
index 9f5870d..65054f2 100644 (file)
@@ -1,5 +1,5 @@
 /* Shift a limb left, low level routine.
-   Copyright (C) 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 1999, 2000, 2006 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
@@ -14,8 +14,8 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA
+   02110-1301 USA.  */
 
 #include <sysdep.h>
 #include <bp-sym.h>
@@ -67,6 +67,7 @@ L(boom): tweq    r0,r0
 /* We imitate a case statement, by using (yuk!) fixed-length code chunks,
    of size 4*12 bytes.  We have to do this (or something) to make this PIC.  */
 L(big):        mflr    r9
+       cfi_register(lr,r9)
        bltl-   cr0,L(boom)     # Never taken, only used to set LR.
        slwi    r10,r6,4
        mflr    r12
@@ -75,7 +76,8 @@ L(big):       mflr    r9
        add     r10,r8,r10
        mtctr   r10
        addi    r5,r5,-1
-       mtlr    r9
+       mtlr    r9
+       cfi_same_value (lr)
        bctr
 
 L(end2):slw    r0,r10,r6
index c1a08d3..7e39acb 100644 (file)
@@ -1,5 +1,5 @@
 /* PowerPC-specific implementation of profiling support.
-   Copyright (C) 1997, 1999, 2005 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1999, 2005, 2006 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
@@ -14,8 +14,8 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA
+   02110-1301 USA.  */
 
 /* This would be bad.  */
 #ifdef PROF
@@ -42,6 +42,7 @@
 
 ENTRY(_mcount)
        stwu    r1,-48(r1)
+       cfi_adjust_cfa_offset (48)
 /* We need to save the parameter-passing registers.  */
        stw     r3, 12(r1)
        stw     r4, 16(r1)
@@ -55,6 +56,7 @@ ENTRY(_mcount)
        stw     r9, 36(r1)
        stw     r10,40(r1)
        stw     r4, 44(r1)
+       cfi_offset (lr, -4)
        stw     r5,  8(r1)
        bl      __mcount_internal@local
        nop
index c90f961..c5afe5a 100644 (file)
@@ -1,5 +1,5 @@
 /* PLT trampolines.  PPC64 version.
-   Copyright (C) 2005 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2006 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
@@ -14,8 +14,8 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA
+   02110-1301 USA.  */
 
 #include <sysdep.h>
 #include <rtld-global-offsets.h>
@@ -31,6 +31,7 @@ EALIGN(_dl_runtime_resolve, 4, 0)
 /* We need to save the registers used to pass parameters, ie. r3 thru
    r10; the registers are saved in a stack frame.  */
        stdu    r1,-128(r1)
+       cfi_adjust_cfa_offset (128)
        std     r3,48(r1)
        mr      r3,r11
        std     r4,56(r1)
@@ -44,6 +45,7 @@ EALIGN(_dl_runtime_resolve, 4, 0)
        std     r8,88(r1)
 /* Store the LR in the LR Save area of the previous frame.  */
        std     r0,128+16(r1)
+       cfi_offset (lr, 16)
        mfcr    r0
        std     r9,96(r1)
        std     r10,104(r1)
@@ -178,6 +180,7 @@ EALIGN(_dl_profile_resolve, 4, 0)
 /* We need to save the registers used to pass parameters, ie. r3 thru
    r10; the registers are saved in a stack frame.  */
        stdu    r1,-FRAME_SIZE(r1)
+       cfi_adjust_cfa_offset (FRAME_SIZE)
        std     r3,INT_PARMS+0(r1)
        mr      r3,r11
        std     r4,INT_PARMS+8(r1)
@@ -193,6 +196,7 @@ EALIGN(_dl_profile_resolve, 4, 0)
 /* XXX Do we have to do this?  */
        la      r8,FRAME_SIZE(r1)
        std     r5,FRAME_SIZE+16(r1)
+       cfi_offset (lr, 16)
        std     r5,CALLING_LR(r1)
        mfcr    r0
        std     r9,INT_PARMS+48(r1)
index f083d2b..c0fdf41 100644 (file)
@@ -28,7 +28,11 @@ ENTRY(__copysign)
    copysign(x,y) returns a value with the magnitude of x and
    with the sign bit of y.  */
        stdu    r1,-48(r1)
+       cfi_adjust_cfa_offset (48)
        stfd    fp2,24(r1)
+       nop
+       nop
+       nop
        ld      r3,24(r1)
        cmpdi   r3,0
        addi    r1,r1,48
index 46cb9fd..5df9650 100644 (file)
@@ -1,5 +1,5 @@
 /* PowerPC64-specific implementation of profiling support.
-   Copyright (C) 1997, 1999, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1999, 2002, 2006 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
@@ -14,8 +14,8 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA
+   02110-1301 USA.  */
 
 #include <sysdep.h>
 /* We don't need to save the parameter-passing registers as gcc takes
@@ -26,7 +26,9 @@ ENTRY(_mcount)
        mflr             r4
        ld               r11, 0(r1)
        stdu             r1,-112(r1)
+       cfi_adjust_cfa_offset (112)
        std              r4, 128(r1)
+       cfi_offset (lr, 16)
        ld               r3, 16(r11)
        bl               JUMPTARGET(__mcount_internal)
        nop
index 21ad98e..e945834 100644 (file)
@@ -1,5 +1,5 @@
 /* brk system call for Linux/ppc.
-   Copyright (C) 1995, 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1995-97, 1999, 2000, 2006 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
@@ -14,8 +14,8 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA
+   02110-1301 USA.  */
 
 #include <sysdep.h>
 #define _ERRNO_H       1
        .section ".text"
 ENTRY (BP_SYM (__brk))
        DISCARD_BOUNDS (r3)     /* the bounds are meaningless, so toss 'em */
-
+       mflr    r0
        stwu    r1,-16(r1)
+       cfi_adjust_cfa_offset (16)
        stw     r3,8(r1)
+       stw     r0,20(r1)
+       cfi_offset (lr, 4)
        DO_CALL(SYS_ify(brk))
        lwz     r6,8(r1)
 #ifdef PIC
-       mflr    r4
 # ifdef HAVE_ASM_PPC_REL16
        bcl     20,31,1f
 1:     mflr    r5
        addis   r5,r5,__curbrk-1b@ha
-       mtlr    r4
        stw     r3,__curbrk-1b@l(r5)
 # else
        bl      _GLOBAL_OFFSET_TABLE_@local-4
        mflr    r5
        lwz     r5,__curbrk@got(r5)
-       mtlr    r4
        stw     r3,0(r5)
 # endif
 #else
        lis     r4,__curbrk@ha
        stw     r3,__curbrk@l(r4)
 #endif
+       lwz     r0,20(r1)
        cmplw   r6,r3
        addi    r1,r1,16
+       mtlr    r0
        li      r3,0
        blelr+
        li      r3,ENOMEM
index 43d44ea..f4c92ad 100644 (file)
@@ -1,5 +1,5 @@
 /* Wrapper around clone system call.
-   Copyright (C) 1997,98,99,2000,02,2004 Free Software Foundation, Inc.
+   Copyright (C) 1997,98,99,2000,02,04,2006 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
@@ -14,8 +14,8 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA
+   02110-1301 USA.  */
 
 #include <sysdep.h>
 #define _ERRNO_H       1
@@ -49,6 +49,7 @@ ENTRY (BP_SYM (__clone))
 
        /* Set up stack frame for parent.  */
        stwu    r1,-32(r1)
+       cfi_adjust_cfa_offset (32)
 #ifdef RESET_PID
        stmw    r28,16(r1)
 #else
index 0e04e4b..c28c346 100644 (file)
@@ -1,5 +1,5 @@
 /* Save current context, powerpc32 common.
-   Copyright (C) 2005 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2006 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
@@ -40,6 +40,7 @@
 #endif
 ENTRY(__CONTEXT_FUNC_NAME)
        stwu    r1,-16(r1)
+       cfi_adjust_cfa_offset (16)
 /* Insure that the _UC_REGS start on a quadword boundary.  */
        stw     r3,_FRAME_PARM_SAVE1(r1)
        addi    r3,r3,_UC_REG_SPACE+12
@@ -55,6 +56,7 @@ ENTRY(__CONTEXT_FUNC_NAME)
        stw     r0,_UC_GREGS+(PT_LNK*4)(r3)
        stw     r0,_UC_GREGS+(PT_NIP*4)(r3)
        stw     r0,_FRAME_LR_SAVE+16(r1)
+       cfi_offset (lr, _FRAME_LR_SAVE)
        stw     r5,_UC_GREGS+(PT_R5*4)(r3)
        stw     r6,_UC_GREGS+(PT_R6*4)(r3)
        stw     r7,_UC_GREGS+(PT_R7*4)(r3)
index b220f63..208a375 100644 (file)
@@ -1,5 +1,5 @@
 /* Set up a context to call a function.
-   Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2004, 2006 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
@@ -14,8 +14,8 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA
+   02110-1301 USA.  */
 
 #include <sysdep.h>
 #include <shlib-compat.h>
@@ -49,10 +49,12 @@ ENTRY(__makecontext)
        /* Set the function's LR to point to the exitcode below. */
 #ifdef PIC
        mflr    r0
+       cfi_register(lr,r0)
        bl      1f
 1:     mflr    r6
        addi    r6,r6,L(exitcode)-1b
        mtlr    r0
+       cfi_same_value (lr)
 #else
        lis     r6,L(exitcode)@ha
        addi    r6,r6,L(exitcode)@l
@@ -136,10 +138,12 @@ ENTRY(__novec_makecontext)
        /* Set the function's LR to point to the exitcode below. */
 #ifdef PIC
        mflr    r0
+       cfi_register(lr,r0)
        bl      1f
 1:     mflr    r6
        addi    r6,r6,L(novec_exitcode)-1b
        mtlr    r0
+       cfi_same_value (lr)
 #else
        lis     r6,L(novec_exitcode)@ha
        addi    r6,r6,L(novec_exitcode)@l
index c71fcd7..1a5251d 100644 (file)
@@ -1,5 +1,5 @@
 /* Jump to a new context powerpc32 common.
-   Copyright (C) 2005 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2006 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
@@ -41,7 +41,9 @@
 ENTRY(__CONTEXT_FUNC_NAME)
        mflr    r0
        stwu    r1,-16(r1)
+       cfi_adjust_cfa_offset (16)
        stw     r0,20(r1)
+       cfi_offset (lr, _FRAME_LR_SAVE)
        stw     r31,12(r1)
        lwz     r31,_UC_REGS_PTR(r3)
 
index 8b2998b..0c7b945 100644 (file)
@@ -1,5 +1,5 @@
 /* Save current context and jump to a new context.
-   Copyright (C) 2005 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2006 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
@@ -40,6 +40,7 @@
 #endif
 ENTRY(__CONTEXT_FUNC_NAME)
        stwu    r1,-16(r1)
+       cfi_adjust_cfa_offset (16)
 /* Insure that the _UC_REGS start on a quadword boundary.  */
        stw     r3,_FRAME_PARM_SAVE1(r1)
        addi    r3,r3,_UC_REG_SPACE+12
@@ -56,6 +57,7 @@ ENTRY(__CONTEXT_FUNC_NAME)
        stw     r0,_UC_GREGS+(PT_LNK*4)(r3)
        stw     r0,_UC_GREGS+(PT_NIP*4)(r3)
        stw     r0,_FRAME_LR_SAVE+16(r1)
+       cfi_offset (lr, _FRAME_LR_SAVE)
        stw     r5,_UC_GREGS+(PT_R5*4)(r3)
        stw     r6,_UC_GREGS+(PT_R6*4)(r3)
        stw     r7,_UC_GREGS+(PT_R7*4)(r3)
@@ -309,13 +311,12 @@ ENTRY(__CONTEXT_FUNC_NAME)
        bl      _GLOBAL_OFFSET_TABLE_@local-4
        mflr    r7
 #   endif
+       mtlr    r8
 #   ifdef SHARED
        lwz     r7,_rtld_global_ro@got(r7)
-       mtlr    r8
        lwz     r7,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET(r7)
 #   else
        lwz     r7,_dl_hwcap@got(r7)
-       mtlr    r8
        lwz     r7,0(r7)
 #   endif
 #  else
@@ -467,7 +468,6 @@ ENTRY(__CONTEXT_FUNC_NAME)
        mtcr    r5
 
        /* Restore the general registers */
-       lwz     r1,_UC_GREGS+(PT_R1*4)(r31)
        lwz     r3,_UC_GREGS+(PT_R3*4)(r31)
        lwz     r4,_UC_GREGS+(PT_R4*4)(r31)
        lwz     r5,_UC_GREGS+(PT_R5*4)(r31)
@@ -496,6 +496,7 @@ ENTRY(__CONTEXT_FUNC_NAME)
        lwz     r28,_UC_GREGS+(PT_R28*4)(r31)
        lwz     r29,_UC_GREGS+(PT_R29*4)(r31)
        lwz     r30,_UC_GREGS+(PT_R30*4)(r31)
+       lwz     r1,_UC_GREGS+(PT_R1*4)(r31)
        lwz     r31,_UC_GREGS+(PT_R31*4)(r31)
 
        bctr
index 3f74f55..f2ac00d 100644 (file)
@@ -1,5 +1,5 @@
 /* brk system call for Linux.  PowerPC64 version.
-   Copyright (C) 1995,96,97,99, 2000, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1995,96,97,99, 2000,02, 2006 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
@@ -14,8 +14,8 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA
+   02110-1301 USA.  */
 
 #include <sysdep.h>
 #define _ERRNO_H       1
@@ -33,6 +33,7 @@ ENTRY (BP_SYM (__brk))
        DISCARD_BOUNDS (r3)     /* the bounds are meaningless, so toss 'em.  */
 
        stdu    r1,-64(r1)
+       cfi_adjust_cfa_offset (64)
        std     r3,48(r1)
        DO_CALL(SYS_ify(brk))
        ld     r6,48(r1)
index 287597c..a0f018b 100644 (file)
@@ -1,5 +1,5 @@
 /* Wrapper around clone system call.  PowerPC64 version.
-   Copyright (C) 1997,98,99,2000,02, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1997,98,99,2000,02,04, 2006 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
@@ -14,8 +14,8 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA
+   02110-1301 USA.  */
 
 #include <sysdep.h>
 #define _ERRNO_H       1
@@ -48,6 +48,7 @@ ENTRY (BP_SYM (__clone))
 
        /* Set up stack frame for parent.  */
        stdu    r1,-80(r1)
+       cfi_adjust_cfa_offset (80)
        std     r29,56(r1)
        std     r30,64(r1)
        std     r31,72(r1)
index 61e0f8e..a4a295a 100644 (file)
@@ -1,5 +1,5 @@
 /* Save current context.
-   Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2004, 2006 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
@@ -14,8 +14,8 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA
+   02110-1301 USA.  */
 
 #include <sysdep.h>
 #include <rtld-global-offsets.h>
@@ -37,9 +37,11 @@ ENTRY(__novec_getcontext)
   mflr  r0
   std  r2,(SIGCONTEXT_GP_REGS+(PT_R2*8))(r3)
   std  r0,FRAME_LR_SAVE(r1)
+  cfi_offset (lr, FRAME_LR_SAVE)
   std  r0,(SIGCONTEXT_GP_REGS+(PT_LNK*8))(r3)
   std  r0,(SIGCONTEXT_GP_REGS+(PT_NIP*8))(r3)
   stdu  r1,-128(r1)
+  cfi_adjust_cfa_offset (128)
   std  r4,(SIGCONTEXT_GP_REGS+(PT_R4*8))(r3)
   std  r5,(SIGCONTEXT_GP_REGS+(PT_R5*8))(r3)
   std  r6,(SIGCONTEXT_GP_REGS+(PT_R6*8))(r3)
@@ -140,6 +142,7 @@ ENTRY(__novec_getcontext)
   /* If the kernel is not at least 2.4.21 then generate a ENOSYS stub.  */
   mflr r0
   std  r0,FRAME_LR_SAVE(r1)
+  cfi_offset (lr, FRAME_LR_SAVE)
   stdu r1,-128(r1)
   li   r3,ENOSYS
   bl   JUMPTARGET(__syscall_error)
@@ -175,9 +178,11 @@ ENTRY(__getcontext)
   mflr  r0
   std  r2,(SIGCONTEXT_GP_REGS+(PT_R2*8))(r3)
   std  r0,FRAME_LR_SAVE(r1)
+  cfi_offset (lr, FRAME_LR_SAVE)
   std  r0,(SIGCONTEXT_GP_REGS+(PT_LNK*8))(r3)
   std  r0,(SIGCONTEXT_GP_REGS+(PT_NIP*8))(r3)
   stdu  r1,-128(r1)
+  cfi_adjust_cfa_offset (128)
   std  r4,(SIGCONTEXT_GP_REGS+(PT_R4*8))(r3)
   std  r5,(SIGCONTEXT_GP_REGS+(PT_R5*8))(r3)
   std  r6,(SIGCONTEXT_GP_REGS+(PT_R6*8))(r3)
@@ -387,7 +392,9 @@ L(has_no_vec):
   /* If the kernel is not at least 2.4.21 then generate a ENOSYS stub.  */
   mflr r0
   std  r0,FRAME_LR_SAVE(r1)
+  cfi_offset (lr, FRAME_LR_SAVE)
   stdu r1,-128(r1)
+  cfi_adjust_cfa_offset (128)
   li   r3,ENOSYS
   bl   JUMPTARGET(__syscall_error)
   nop
index cf71a6d..9436862 100644 (file)
@@ -1,5 +1,5 @@
 /* Create new context.
-   Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2004, 2006 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
@@ -14,8 +14,8 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA
+   02110-1301 USA.  */
 
 #include <sysdep.h>
 #include "kernel-features.h"
@@ -41,7 +41,9 @@ ENTRY(__makecontext)
   /* Get the address of the target functions first parameter.  */
   addi  r6,r1,FRAME_PARM4_SAVE
   std   r0,FRAME_LR_SAVE(r1)
+  cfi_offset (lr, FRAME_LR_SAVE)
   stdu  r1,-128(r1)
+  cfi_adjust_cfa_offset (128)
 
   /* Get the ucontexts stack pointer and size.  Compute the top of stack
      and round down to a quadword boundary.  Then stack a dummy frame
@@ -168,7 +170,9 @@ L(gotexitcodeaddr):
   /* If the kernel is not at least 2.4.21 then generate a ENOSYS stub.  */
   mflr r0
   std  r0,FRAME_LR_SAVE(r1)
+  cfi_offset (lr, FRAME_LR_SAVE)
   stdu r1,-128(r1)
+  cfi_adjust_cfa_offset (128)
   li   r3,ENOSYS
   bl   JUMPTARGET(__syscall_error)
   nop
index 7eaaad2..cc89451 100644 (file)
@@ -1,5 +1,5 @@
 /* Switch to context.
-   Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2004, 2005, 2006 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
@@ -14,8 +14,8 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA
+   02110-1301 USA.  */
 
 #include <sysdep.h>
 #include <rtld-global-offsets.h>
@@ -34,7 +34,9 @@ ENTRY(__novec_setcontext)
   mflr  r0
   std   r31,-8(1)
   std   r0,FRAME_LR_SAVE(r1)
+  cfi_offset (lr, FRAME_LR_SAVE)
   stdu  r1,-128(r1)
+  cfi_adjust_cfa_offset (128)
   mr    r31,r3
 
 /*
@@ -200,7 +202,9 @@ ENTRY(__setcontext)
   mflr  r0
   std   r31,-8(1)
   std   r0,FRAME_LR_SAVE(r1)
+  cfi_offset (lr, FRAME_LR_SAVE)
   stdu  r1,-128(r1)
+  cfi_adjust_cfa_offset (128)
   mr    r31,r3
 
 /*
@@ -443,7 +447,9 @@ L(do_sigret):
   /* If the kernel is not at least 2.4.21 then generate a ENOSYS stub.  */
   mflr r0
   std  r0,FRAME_LR_SAVE(r1)
+  cfi_offset (lr, FRAME_LR_SAVE)
   stdu r1,-128(r1)
+  cfi_adjust_cfa_offset (128)
   li   r3,ENOSYS
   bl   JUMPTARGET(__syscall_error)
   nop
index 772adac..e45da55 100644 (file)
@@ -1,5 +1,5 @@
 /* Save current context and install the given one.
-   Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2004, 2005, 2006 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
@@ -14,8 +14,8 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA
+   02110-1301 USA.  */
 
 #include <sysdep.h>
 #include <rtld-global-offsets.h>
@@ -37,9 +37,11 @@ ENTRY(__novec_swapcontext)
   std   r31,-8(1)
   std  r2,(SIGCONTEXT_GP_REGS+(PT_R2*8))(r3)
   std  r0,FRAME_LR_SAVE(r1)
+  cfi_offset (lr, FRAME_LR_SAVE)
   std  r0,(SIGCONTEXT_GP_REGS+(PT_LNK*8))(r3)
   std  r0,(SIGCONTEXT_GP_REGS+(PT_NIP*8))(r3)
   stdu  r1,-128(r1)
+  cfi_adjust_cfa_offset (128)
   std  r4,(SIGCONTEXT_GP_REGS+(PT_R4*8))(r3)
   std  r5,(SIGCONTEXT_GP_REGS+(PT_R5*8))(r3)
   std  r6,(SIGCONTEXT_GP_REGS+(PT_R6*8))(r3)
@@ -744,7 +746,9 @@ L(do_sigret):
   /* If the kernel is not at least 2.4.21 then generate a ENOSYS stub.  */
   mflr r0
   std  r0,FRAME_LR_SAVE(r1)
+  cfi_offset (lr, FRAME_LR_SAVE)
   stdu r1,-128(r1)
+  cfi_adjust_cfa_offset (128)
   li   r3,ENOSYS
   bl   JUMPTARGET(__syscall_error)
   nop