From 9f19140a4737c920478ee0c2198799a0855f2812 Mon Sep 17 00:00:00 2001 From: Andreas Jaeger Date: Mon, 10 May 2004 14:42:28 +0000 Subject: (__makecontext): Correctly compute alignment. --- sysdeps/unix/sysv/linux/x86_64/makecontext.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'sysdeps/unix') diff --git a/sysdeps/unix/sysv/linux/x86_64/makecontext.c b/sysdeps/unix/sysv/linux/x86_64/makecontext.c index f859160a20..b1129943ab 100644 --- a/sysdeps/unix/sysv/linux/x86_64/makecontext.c +++ b/sysdeps/unix/sysv/linux/x86_64/makecontext.c @@ -1,5 +1,5 @@ /* Create new context. - Copyright (C) 2002 Free Software Foundation, Inc. + Copyright (C) 2002, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Andreas Jaeger , 2002. @@ -59,10 +59,8 @@ __makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...) /* Generate room on stack for parameter if needed and uc_link. */ sp = (long *) ((long) ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size); sp -= (argc > 6 ? argc : 0) + 1; - /* Align stack. */ - sp = (long *) (((long) sp) & -16L); - /* Make space for trampoline address. */ - sp -= 8; + /* Align stack and make space for trampoline address. */ + sp = (long *) ((((long) sp) & -16L) - 8); idx_uc_link = (argc > 6 ? argc : 0) + 1; -- cgit 1.4.1