]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S
2.5-18.1
[thirdparty/glibc.git] / sysdeps / unix / sysv / linux / powerpc / powerpc32 / makecontext.S
index 5615718e11c063fee4ab3f512350d19eb0c95478..9451f9eb36feb80ed6cfad8f3e8f29ad5e81dba2 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>
@@ -26,9 +26,7 @@
 
 ENTRY(__makecontext)
        /* Set up the first 7 args to the function in its registers */
-       addi    r11,r3,_UC_REG_SPACE+12
-       clrrwi  r11,r11,4
-       stw     r11,_UC_REGS_PTR(r3)
+       lwz     r11,_UC_REGS_PTR(r3)
        stw     r6,_UC_GREGS+(PT_R3*4)(r11)
        stw     r7,_UC_GREGS+(PT_R4*4)(r11)
        stw     r8,_UC_GREGS+(PT_R5*4)(r11)
@@ -49,10 +47,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
@@ -101,7 +101,7 @@ ENTRY(__makecontext)
 L(exitcode):
        mr.     r3,r31
        beq     4f
-       bl      JUMPTARGET(__setcontext)
+       bl      __setcontext@local
 4:     bl      HIDDEN_JUMPTARGET(exit)
        b       4b
 
@@ -136,10 +136,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
@@ -188,7 +190,7 @@ ENTRY(__novec_makecontext)
 L(novec_exitcode):
        mr.     r3,r31
        beq     4f
-       bl      JUMPTARGET(__novec_setcontext)
+       bl      __novec_setcontext@local
 4:     bl      HIDDEN_JUMPTARGET(exit)
        b       4b
 
@@ -206,7 +208,7 @@ compat_symbol (libc, __novec_makecontext, makecontext, GLIBC_2_3_3)
        compat_text_section
 ENTRY (__makecontext_stub)
        li      r3,ENOSYS
-       b       JUMPTARGET(__syscall_error)
+       b       __syscall_error@local
 END (__makecontext_stub)
        .previous