From 3ed35099c1f7d96f4048a3d899cba8380f29f914 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Sat, 17 Aug 2002 06:54:04 +0000 Subject: [PATCH] * sysdeps/i386/tls.h (TLS_DO_SET_THREAD_AREA): Calculate segment register value from entry number properly. --- linuxthreads/ChangeLog | 3 +++ linuxthreads/sysdeps/i386/tls.h | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog index 9fa83225e6..c2004912b3 100644 --- a/linuxthreads/ChangeLog +++ b/linuxthreads/ChangeLog @@ -1,5 +1,8 @@ 2002-08-16 Roland McGrath + * sysdeps/i386/tls.h (TLS_DO_SET_THREAD_AREA): Calculate segment + register value from entry number properly. + * sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT): Rewrite asm to use %ebx optimally conditional on [__PIC__]. (TLS_DO_SET_THREAD_AREA): New macro, implement inline syscall diff --git a/linuxthreads/sysdeps/i386/tls.h b/linuxthreads/sysdeps/i386/tls.h index efbaebcd85..5de8eca18d 100644 --- a/linuxthreads/sysdeps/i386/tls.h +++ b/linuxthreads/sysdeps/i386/tls.h @@ -130,7 +130,7 @@ typedef struct to let the compiler know that we are accessing LDT_ENTRY \ here. */ \ TLS_EBX_ARG (&ldt_entry), "m" (ldt_entry)); \ - __builtin_expect (result, 0) == 0 ? ldt_entry.entry_number : -1; \ + __builtin_expect (result, 0) == 0 ? ldt_entry.entry_number * 8 + 3 : -1; \ }) # ifdef __ASSUME_SET_THREAD_AREA_SYSCALL -- 2.43.5