diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2017-04-04 16:00:27 -0300 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2017-04-04 18:03:35 -0300 |
commit | a358c805300e358e30d4788a6f19c69988623a5c (patch) | |
tree | 2912f769cfa07fd499d70d28f5ffc220407a303f /sysdeps/i386 | |
parent | 2e4cf778972573221e9b87fd992844ea9b67b9bf (diff) | |
download | glibc-a358c805300e358e30d4788a6f19c69988623a5c.tar glibc-a358c805300e358e30d4788a6f19c69988623a5c.tar.gz glibc-a358c805300e358e30d4788a6f19c69988623a5c.tar.bz2 glibc-a358c805300e358e30d4788a6f19c69988623a5c.zip |
Remove CALL_THREAD_FCT macro
This patch removes CALL_THREAD_FCT macro usage and its defition for
x86. For 32 bits it usage is only for force 16 stack alignment,
however stack is already explicit aligned in clone syscall. For
64 bits and x32 it just a function call and there is no need to
code it with inline assembly.
Checked on i686-linux-gnu, x86_64-linux-gnu, and x86_64-linux-gnu-x32.
* nptl/pthread_create.c (START_THREAD_DEFN): Remove
CALL_THREAD_FCT macro usage.
* sysdeps/i386/nptl/tls.h (CALL_THREAD_FCT): Remove definition.
* sysdeps/x86_64/nptl/tls.h (CALL_THREAD_FCT): Likewise.
* sysdeps/x86_64/32/nptl/tls.h: Remove file.
Diffstat (limited to 'sysdeps/i386')
-rw-r--r-- | sysdeps/i386/nptl/tls.h | 16 |
1 files changed, 0 insertions, 16 deletions
diff --git a/sysdeps/i386/nptl/tls.h b/sysdeps/i386/nptl/tls.h index 04dc6aef91..f9a6b11ecf 100644 --- a/sysdeps/i386/nptl/tls.h +++ b/sysdeps/i386/nptl/tls.h @@ -394,22 +394,6 @@ tls_fill_user_desc (union user_desc_init *desc, abort (); }) -/* Call the user-provided thread function. */ -#define CALL_THREAD_FCT(descr) \ - ({ void *__res; \ - int __ignore1, __ignore2; \ - 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 $16, %%esp" \ - : "=a" (__res), "=c" (__ignore1), "=d" (__ignore2) \ - : "i" (offsetof (struct pthread, start_routine)), \ - "i" (offsetof (struct pthread, arg))); \ - __res; }) - - /* Set the stack guard field in TCB head. */ #define THREAD_SET_STACK_GUARD(value) \ THREAD_SETMEM (THREAD_SELF, header.stack_guard, value) |