From 0154658d3db3ac2880c44bcc85c6fe47f4bdbb7c Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 30 May 2007 04:08:13 +0000 Subject: [PATCH] * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Checking whether there are more than one thread makes no sense here since we only call the slow path if the locks are taken. * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Likewise. --- nptl/ChangeLog | 5 +++++ .../unix/sysv/linux/i386/i486/libc-lowlevellock.S | 10 ---------- nptl/sysdeps/unix/sysv/linux/internaltypes.h | 2 +- .../sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S | 10 ---------- 4 files changed, 6 insertions(+), 21 deletions(-) diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 9d71dccd1b..b757f48df5 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,5 +1,10 @@ 2007-05-29 Ulrich Drepper + * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Checking + whether there are more than one thread makes no sense here since + we only call the slow path if the locks are taken. + * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Likewise. + * sysdeps/unix/sysv/linux/internaltypes.h: Introduce COND_NWAITERS_SHIFT. * pthread_cond_destroy.c: Use COND_NWAITERS_SHIFT instead of diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S index f246711489..830f628578 100644 --- a/nptl/sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S +++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S @@ -19,16 +19,6 @@ #include -/* In libc.so we do not unconditionally use the lock prefix. Only if - the application is using threads. */ -#ifndef UP -# define LOCK \ - cmpl $0, %gs:MULTIPLE_THREADS_OFFSET; \ - je 0f; \ - lock; \ -0: -#endif - /* All locks in libc are private. Use the kernel feature if possible. */ #define FUTEX_PRIVATE_FLAG 128 #ifdef __ASSUME_PRIVATE_FUTEX diff --git a/nptl/sysdeps/unix/sysv/linux/internaltypes.h b/nptl/sysdeps/unix/sysv/linux/internaltypes.h index dfd53a02b6..add20b6f72 100644 --- a/nptl/sysdeps/unix/sysv/linux/internaltypes.h +++ b/nptl/sysdeps/unix/sysv/linux/internaltypes.h @@ -80,7 +80,7 @@ struct pthread_condattr of bits needed to represent the ID of the clock. COND_NWAITERS_SHIFT is the number of bits reserved for other purposes like the clock. */ #define COND_CLOCK_BITS 1 -#define COND_NWAITERS_SHIFT 8 +#define COND_NWAITERS_SHIFT 1 /* Read-write lock variable attribute data structure. */ diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S b/nptl/sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S index 21bf58cbbd..3265eee0ed 100644 --- a/nptl/sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S +++ b/nptl/sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S @@ -19,16 +19,6 @@ #include -/* In libc.so we do not unconditionally use the lock prefix. Only if - the application is using threads. */ -#ifndef UP -# define LOCK \ - cmpl $0, __libc_multiple_threads(%rip); \ - je 0f; \ - lock; \ -0: -#endif - /* All locks in libc are private. Use the kernel feature if possible. */ #define FUTEX_PRIVATE_FLAG 128 #ifdef __ASSUME_PRIVATE_FUTEX