]> git.pld-linux.org Git - packages/glibc.git/commitdiff
- BZ#357 patch to test
authorJakub Bogusz <qboosh@pld-linux.org>
Tue, 31 Aug 2004 16:26:57 +0000 (16:26 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    glibc-ppc-getcontext.patch -> 1.1

glibc-ppc-getcontext.patch [new file with mode: 0644]

diff --git a/glibc-ppc-getcontext.patch b/glibc-ppc-getcontext.patch
new file mode 100644 (file)
index 0000000..ac5fea6
--- /dev/null
@@ -0,0 +1,80 @@
+diff -urN libc23-cvstip-20040812/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S libc23/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S
+--- libc23-cvstip-20040812/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S      2004-06-15 15:02:20.000000000 -0500
++++ libc23/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S      2004-08-30 18:22:17.372265184 -0500
+@@ -27,13 +27,12 @@
+       .machine        "altivec"
+ ENTRY(__getcontext)
++      stwu    r1,-16(r1)
+       stw     r3,_FRAME_PARM_SAVE1(r1)
+       addi    r3,r3,_UC_REG_SPACE+12
+       clrrwi  r3,r3,4
+       stw     r0,_UC_GREGS+(PT_R0*4)(r3)
+       mflr    r0
+-      stw     r1,_UC_GREGS+(PT_R1*4)(r3)
+-      stwu    r1,-16(r1)
+       stw     r0,_UC_GREGS+(PT_LNK*4)(r3)
+       stw     r0,_UC_GREGS+(PT_NIP*4)(r3)
+       stw     r0,_FRAME_LR_SAVE+16(r1)
+@@ -73,6 +72,11 @@
+       mfcr    r0
+       stw     r0,_UC_GREGS+(PT_CCR*4)(r3)
++      /* Save the value of R1.  We had to push the stack before we
++         had the address of uc_reg_space.  So compute the address of
++         the callers stack pointer and save it as R1.  */
++      addi    r0,r1,16
++      stw     r0,_UC_GREGS+(PT_R1*4)(r3)
+       /* Set the return value of getcontext to "success".  R3 is the only
+          register whose value is not preserved in the saved context.  */
+       li      r0,0
+@@ -229,7 +233,7 @@
+ L(no_vec):
+ /* Restore ucontext (parm1) from stack.  */
+-      lwz     r12,_FRAME_PARM_SAVE1+16(r1)
++      lwz     r12,_FRAME_PARM_SAVE1(r1)
+       li      r4,0
+       stw     r3,_UC_REGS_PTR(r12)
+       addi    r5,r12,_UC_SIGMASK
+diff -urN libc23-cvstip-20040812/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S libc23/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S
+--- libc23-cvstip-20040812/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S     2004-06-15 15:02:20.000000000 -0500
++++ libc23/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S     2004-08-30 18:22:36.391165968 -0500
+@@ -27,14 +27,13 @@
+       .machine        "altivec"
+ ENTRY(__swapcontext)
++      stwu    r1,-16(r1)
+       /* Save the current context */
+       stw     r3,_FRAME_PARM_SAVE1(r1)
+       addi    r3,r3,_UC_REG_SPACE+12
+       clrrwi  r3,r3,4
+       stw     r0,_UC_GREGS+(PT_R0*4)(r3)
+-      stw     r1,_UC_GREGS+(PT_R1*4)(r3)
+       mflr    r0
+-      stwu    r1,-16(r1)
+       stw     r0,20(r1)
+       stw     r31,12(r1)
+       stw     r31,_UC_GREGS+(PT_R31*4)(r3)
+@@ -76,6 +75,12 @@
+       mfcr    r0
+       stw     r0,_UC_GREGS+(PT_CCR*4)(r3)
++      /* Save the value of R1.  We had to push the stack before we
++         had the address of uc_reg_space.  So compute the address of
++         the callers stack pointer and save it as R1.  */
++      addi    r0,r1,16
++      stw     r0,_UC_GREGS+(PT_R1*4)(r3)
++
+       /* Set the return value of swapcontext to "success".  R3 is the only
+          register whose value is not preserved in the saved context.  */
+       li      r0,0
+@@ -231,7 +236,7 @@
+ L(no_vec):
+ /* Restore ucontext (parm1) from stack.  */
+-      lwz     r12,_FRAME_PARM_SAVE1+16(r1)
++      lwz     r12,_FRAME_PARM_SAVE1(r1)
+       li      r4,0
+       stw     r3,_UC_REGS_PTR(r12)
+       addi    r5,r12,_UC_SIGMASK
This page took 0.052722 seconds and 4 git commands to generate.