diff options
-rw-r--r-- | nptl/ChangeLog | 4 | ||||
-rw-r--r-- | nptl/tst-context1.c | 4 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S | 8 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S | 6 |
4 files changed, 13 insertions, 9 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog index f551a54bbf..927bd786a5 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,7 @@ +2004-12-16 Ulrich Drepper <drepper@redhat.com> + + * tst-context1.c (stacks): Use bigger stack size. + 2004-12-16 Jakub Jelinek <jakub@redhat.com> * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: New file. diff --git a/nptl/tst-context1.c b/nptl/tst-context1.c index 1a019ad000..fcbeadeea0 100644 --- a/nptl/tst-context1.c +++ b/nptl/tst-context1.c @@ -37,7 +37,7 @@ typedef struct { unsigned long guard[3]; } tst_context_t; -static char stacks[N][PTHREAD_STACK_MIN]; +static char stacks[N][2 * PTHREAD_STACK_MIN]; static tst_context_t ctx[N][2]; static volatile int failures; @@ -110,7 +110,7 @@ tf (void *arg) printf ("%d: %s: before makecontext\n", n, __FUNCTION__); ctx[n][1].uctx.uc_stack.ss_sp = stacks[n]; - ctx[n][1].uctx.uc_stack.ss_size = PTHREAD_STACK_MIN; + ctx[n][1].uctx.uc_stack.ss_size = sizeof (stacks[n]); ctx[n][1].uctx.uc_link = &ctx[n][0].uctx; makecontext (&ctx[n][1].uctx, (void (*) (void)) fct, 1, (long int) n); diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S index e87f507cae..61e0f8ed11 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S @@ -275,17 +275,17 @@ ENTRY(__getcontext) ld r5,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET(r5) # else ld r5,0(r5) /* Load extern _dl_hwcap. */ -# endif +# endif la r10,(SIGCONTEXT_V_RESERVE+8)(r3) la r9,(SIGCONTEXT_V_RESERVE+24)(r3) - + andis. r5,r5,(PPC_FEATURE_HAS_ALTIVEC >> 16) - + clrrdi r10,r10,4 beq L(has_no_vec) clrrdi r9,r9,4 mr r5,r10 /* Capture *v_regs value in r5. */ - + stvx v0,0,r10 stvx v1,0,r9 addi r10,r10,32 diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S index 00070e5a75..f99df951a2 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S @@ -401,12 +401,12 @@ ENTRY(__swapcontext) #endif la r10,(SIGCONTEXT_V_RESERVE+8)(r3) la r9,(SIGCONTEXT_V_RESERVE+24)(r3) - + andis. r8,r8,(PPC_FEATURE_HAS_ALTIVEC >> 16) clrrdi r10,r10,4 beq L(has_no_vec) - + clrrdi r9,r9,4 mr r8,r10 /* Capture *v_regs value in r5. */ @@ -493,7 +493,7 @@ ENTRY(__swapcontext) mfvscr v0 mfspr r0,VRSAVE stvx v0,0,r10 - stw r0,0(9) + stw r0,0(r9) L(has_no_vec): /* |