summaryrefslogtreecommitdiff
path: root/sysdeps/mach
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2008-02-29 09:53:35 +0000
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2008-02-29 09:53:35 +0000
commitafd495357942d9cd5aaee27b1185cf9a4d4f81fe (patch)
tree70b9e796ccff820b93fc709577726036b660aea5 /sysdeps/mach
parenta831c87b798b78c22ef496de6ddb2e6e447aabad (diff)
2008-02-29 Samuel Thibault <samuel.thibault@ens-lyon.org
* sysdeps/l4/hurd/i386/pt-setup.c (stack_setup): Align stack on 0x10 for MMX operations. * sysdeps/mach/hurd/i386/pt-setup.c (stack_setup): Likewise.
Diffstat (limited to 'sysdeps/mach')
-rw-r--r--sysdeps/mach/hurd/i386/pt-setup.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sysdeps/mach/hurd/i386/pt-setup.c b/sysdeps/mach/hurd/i386/pt-setup.c
index 32ace6a..71f60e2 100644
--- a/sysdeps/mach/hurd/i386/pt-setup.c
+++ b/sysdeps/mach/hurd/i386/pt-setup.c
@@ -63,8 +63,10 @@ stack_setup (struct __pthread *thread,
if (start_routine)
{
/* And then the call frame. */
- *--top = (uintptr_t) arg; /* Argument to START_ROUTINE. */
- *--top = (uintptr_t) start_routine;
+ top -= 2*sizeof(uintptr_t);
+ top = (uintptr_t) top & ~0xf;
+ top[1] = (uintptr_t) arg; /* Argument to START_ROUTINE. */
+ top[0] = (uintptr_t) start_routine;
*--top = 0; /* Fake return address. */
}