diff options
Diffstat (limited to 'sysdeps/i386/tls-macros.h')
-rw-r--r-- | sysdeps/i386/tls-macros.h | 37 |
1 files changed, 3 insertions, 34 deletions
diff --git a/sysdeps/i386/tls-macros.h b/sysdeps/i386/tls-macros.h index 053cba0..9c1303d 100644 --- a/sysdeps/i386/tls-macros.h +++ b/sysdeps/i386/tls-macros.h @@ -1,5 +1,3 @@ -#include <features.h> /* For __GNUC_PREREQ. */ - #define TLS_LE(x) \ ({ int *__l; \ asm ("movl %%gs:0,%0\n\t" \ @@ -7,15 +5,7 @@ : "=r" (__l)); \ __l; }) -#if defined PIC && !__GNUC_PREREQ (5,0) -# define TLS_IE(x) \ - ({ int *__l; \ - asm ("movl %%gs:0,%0\n\t" \ - "subl " #x "@gottpoff(%%ebx),%0" \ - : "=r" (__l)); \ - __l; }) -#else -# define TLS_IE(x) \ +#define TLS_IE(x) \ ({ int *__l, __b; \ asm ("call 1f\n\t" \ ".subsection 1\n" \ @@ -27,18 +17,8 @@ "subl " #x "@gottpoff(%%ebx),%0" \ : "=r" (__l), "=&b" (__b)); \ __l; }) -#endif -#if defined PIC && !__GNUC_PREREQ (5,0) -# define TLS_LD(x) \ - ({ int *__l, __c, __d; \ - asm ("leal " #x "@tlsldm(%%ebx),%%eax\n\t" \ - "call ___tls_get_addr@plt\n\t" \ - "leal " #x "@dtpoff(%%eax), %%eax" \ - : "=a" (__l), "=&c" (__c), "=&d" (__d)); \ - __l; }) -#else -# define TLS_LD(x) \ +#define TLS_LD(x) \ ({ int *__l, __b, __c, __d; \ asm ("call 1f\n\t" \ ".subsection 1\n" \ @@ -51,18 +31,8 @@ "leal " #x "@dtpoff(%%eax), %%eax" \ : "=a" (__l), "=&b" (__b), "=&c" (__c), "=&d" (__d)); \ __l; }) -#endif -#if defined PIC && !__GNUC_PREREQ (5,0) -# define TLS_GD(x) \ - ({ int *__l, __c, __d; \ - asm ("leal " #x "@tlsgd(%%ebx),%%eax\n\t" \ - "call ___tls_get_addr@plt\n\t" \ - "nop" \ - : "=a" (__l), "=&c" (__c), "=&d" (__d)); \ - __l; }) -#else -# define TLS_GD(x) \ +#define TLS_GD(x) \ ({ int *__l, __b, __c, __d; \ asm ("call 1f\n\t" \ ".subsection 1\n" \ @@ -75,4 +45,3 @@ "nop" \ : "=a" (__l), "=&b" (__b), "=&c" (__c), "=&d" (__d)); \ __l; }) -#endif |