summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2004-12-17 05:16:26 +0000
committerUlrich Drepper <drepper@redhat.com>2004-12-17 05:16:26 +0000
commitfb9d5c7388cad80712efccff2612f39874ecec20 (patch)
treef4aef01a123fbe0bbf2b32784b246c4795dabf44
parent9aa191b86c70d82f59f67b31a6e025ab60e0100a (diff)
Update.
2004-12-16 Ulrich Drepper <drepper@redhat.com> * tst-context1.c (stacks): Use bigger stack size.
-rw-r--r--nptl/ChangeLog4
-rw-r--r--nptl/tst-context1.c4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S8
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S6
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):
/*