From 482d023e516bc88a10d8ab31f389f2b47b1a71d1 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Wed, 5 Jul 2017 22:49:41 +0200 Subject: Remove CALL_THREAD_FCT macro Following glibc commit a358c805300e358e30d4788a6f19c69988623a5c --- libpthread/nptl/pthread_create.c | 4 ---- libpthread/nptl/sysdeps/i386/tls.h | 16 ---------------- libpthread/nptl/sysdeps/x86_64/tls.h | 12 ------------ 3 files changed, 32 deletions(-) diff --git a/libpthread/nptl/pthread_create.c b/libpthread/nptl/pthread_create.c index b11265f7c..3064b40dd 100644 --- a/libpthread/nptl/pthread_create.c +++ b/libpthread/nptl/pthread_create.c @@ -282,11 +282,7 @@ start_thread (void *arg) } /* Run the code the user provided. */ -#ifdef CALL_THREAD_FCT - THREAD_SETMEM (pd, result, CALL_THREAD_FCT (pd)); -#else THREAD_SETMEM (pd, result, pd->start_routine (pd->arg)); -#endif } /* Run the destructor for the thread-local data. */ diff --git a/libpthread/nptl/sysdeps/i386/tls.h b/libpthread/nptl/sysdeps/i386/tls.h index f283a40f0..17c80e5fc 100644 --- a/libpthread/nptl/sysdeps/i386/tls.h +++ b/libpthread/nptl/sysdeps/i386/tls.h @@ -422,22 +422,6 @@ union user_desc_init 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) diff --git a/libpthread/nptl/sysdeps/x86_64/tls.h b/libpthread/nptl/sysdeps/x86_64/tls.h index b450c1745..d8b82ede9 100644 --- a/libpthread/nptl/sysdeps/x86_64/tls.h +++ b/libpthread/nptl/sysdeps/x86_64/tls.h @@ -349,18 +349,6 @@ typedef struct abort (); }) -# define CALL_THREAD_FCT(descr) \ - ({ void *__res; \ - __asm__ __volatile__ ("movq %%fs:%P2, %%rdi\n\t" \ - "callq *%%fs:%P1" \ - : "=a" (__res) \ - : "i" (offsetof (struct pthread, start_routine)), \ - "i" (offsetof (struct pthread, arg)) \ - : "di", "si", "cx", "dx", "r8", "r9", "r10", "r11", \ - "memory", "cc"); \ - __res; }) - - /* Set the stack guard field in TCB head. */ # define THREAD_SET_STACK_GUARD(value) \ THREAD_SETMEM (THREAD_SELF, header.stack_guard, value) -- cgit v1.2.3