about summary refs log tree commit diff
path: root/sysdeps/i386
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2017-04-04 16:00:27 -0300
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2017-04-04 18:03:35 -0300
commita358c805300e358e30d4788a6f19c69988623a5c (patch)
tree2912f769cfa07fd499d70d28f5ffc220407a303f /sysdeps/i386
parent2e4cf778972573221e9b87fd992844ea9b67b9bf (diff)
downloadglibc-a358c805300e358e30d4788a6f19c69988623a5c.tar.gz
glibc-a358c805300e358e30d4788a6f19c69988623a5c.tar.xz
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.h16
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)