diff options
author | Ulrich Drepper <drepper@redhat.com> | 2004-12-22 20:09:42 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2004-12-22 20:09:42 +0000 |
commit | 7d58530341304d403a6626d7f7a1913165fe2f32 (patch) | |
tree | 471ef022d415c89ff4b5544a5e0239a9ac45d841 /nptl/sysdeps/i386 | |
parent | ec8c29dc013a5e0ca3330ce5e4ae989e811491e6 (diff) | |
download | glibc-7d58530341304d403a6626d7f7a1913165fe2f32.tar.gz glibc-7d58530341304d403a6626d7f7a1913165fe2f32.tar.xz glibc-7d58530341304d403a6626d7f7a1913165fe2f32.zip |
Test for stack alignment.
Diffstat (limited to 'nptl/sysdeps/i386')
-rw-r--r-- | nptl/sysdeps/i386/Makefile | 2 | ||||
-rw-r--r-- | nptl/sysdeps/i386/tls.h | 7 |
2 files changed, 7 insertions, 2 deletions
diff --git a/nptl/sysdeps/i386/Makefile b/nptl/sysdeps/i386/Makefile index 693fb0569f..2f0d88f303 100644 --- a/nptl/sysdeps/i386/Makefile +++ b/nptl/sysdeps/i386/Makefile @@ -22,4 +22,6 @@ endif ifeq ($(subdir),nptl) CFLAGS-pthread_create.c += -mpreferred-stack-boundary=4 +CFLAGS-tst-align.c += -mpreferred-stack-boundary=4 +CFLAGS-tst-align2.c += -mpreferred-stack-boundary=4 endif diff --git a/nptl/sysdeps/i386/tls.h b/nptl/sysdeps/i386/tls.h index 18b038f93e..945a4c71d6 100644 --- a/nptl/sysdeps/i386/tls.h +++ b/nptl/sysdeps/i386/tls.h @@ -397,9 +397,12 @@ union user_desc_init #define CALL_THREAD_FCT(descr) \ ({ void *__res; \ int __ignore1, __ignore2; \ - asm volatile ("pushl %%gs:%P4\n\t" \ + asm volatile ("pushl %%eax\n\t" \ + "pushl %%eax\n\t" \ + "pushl %%eax\n\t" \ + "pushl %%gs:%P4\n\t" \ "call *%%gs:%P3\n\t" \ - "addl $4, %%esp" \ + "addl $16, %%esp" \ : "=a" (__res), "=c" (__ignore1), "=d" (__ignore2) \ : "i" (offsetof (struct pthread, start_routine)), \ "i" (offsetof (struct pthread, arg))); \ |