summary refs log tree commit diff
path: root/nptl
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-04-01 00:53:02 +0000
committerUlrich Drepper <drepper@redhat.com>2003-04-01 00:53:02 +0000
commitf877b33831e78f327d546c0c282b1b150da30f42 (patch)
treec2613933662ec890fa792822bc7927b50d5fd770 /nptl
parent2bf49a0121e7128f8bda0ecebe03d4b1c1594d1d (diff)
downloadglibc-f877b33831e78f327d546c0c282b1b150da30f42.tar.gz
glibc-f877b33831e78f327d546c0c282b1b150da30f42.tar.xz
glibc-f877b33831e78f327d546c0c282b1b150da30f42.zip
(CALL_THREAD_FCT): Align stack of called function correctly.
Diffstat (limited to 'nptl')
-rw-r--r--nptl/sysdeps/i386/tls.h5
1 files changed, 2 insertions, 3 deletions
diff --git a/nptl/sysdeps/i386/tls.h b/nptl/sysdeps/i386/tls.h
index 8a1f547b83..7fe2222c68 100644
--- a/nptl/sysdeps/i386/tls.h
+++ b/nptl/sysdeps/i386/tls.h
@@ -356,10 +356,9 @@ union user_desc_init
 #define CALL_THREAD_FCT(descr) \
   ({ void *__res;							      \
      int __ignore1, __ignore2;						      \
-     asm volatile ("subl $12, %%esp\n\t"				      \
-		   "pushl %%gs:%P4\n\t"					      \
+     asm volatile ("pushl %%gs:%P4\n\t"					      \
 		   "call *%%gs:%P3\n\t"					      \
-		   "addl $16, %%esp"					      \
+		   "addl $4, %%esp"					      \
 		   : "=a" (__res), "=c" (__ignore1), "=d" (__ignore2)	      \
 		   : "i" (offsetof (struct pthread, start_routine)),	      \
 		     "i" (offsetof (struct pthread, arg)));		      \