diff options
Diffstat (limited to 'sysdeps/l4')
-rw-r--r-- | sysdeps/l4/hurd/i386/pt-setup.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sysdeps/l4/hurd/i386/pt-setup.c b/sysdeps/l4/hurd/i386/pt-setup.c index fe77d533..6afcd141 100644 --- a/sysdeps/l4/hurd/i386/pt-setup.c +++ b/sysdeps/l4/hurd/i386/pt-setup.c @@ -47,8 +47,10 @@ stack_setup (struct __pthread *thread, if (start_routine) { /* Set up call frame. */ - *--top = (L4_Word_t) arg; /* Argument to START_ROUTINE. */ - *--top = (L4_Word_t) start_routine; + top -= 2*sizeof(L4_Word_t); + top = (unsigned long) top & ~0xf; + top[1] = (L4_Word_t) arg; /* Argument to START_ROUTINE. */ + top[0] = (L4_Word_t) start_routine; *--top = 0; /* Fake return address. */ } |