glibc/sysdeps
Adhemerval Zanella c50e1c263e x86: Remove arch-specific low level lock implementation
This patch removes the arch-specific x86 assembly implementation for
low level locking and consolidate both 64 bits and 32 bits in a
single implementation.

Different than other architectures, x86 lll_trylock, lll_lock, and
lll_unlock implements a single-thread optimization to avoid atomic
operation, using cmpxchgl instead.  This patch implements by using
the new single-thread.h definitions in a generic way, although using
the previous semantic.

The lll_cond_trylock, lll_cond_lock, and lll_timedlock just use
atomic operations plus calls to lll_lock_wait*.

For __lll_lock_wait_private and __lll_lock_wait the generic implemtation
there is no indication that assembly implementation is required
performance-wise.

Checked on x86_64-linux-gnu and i686-linux-gnu.

	* sysdeps/nptl/lowlevellock.h (__lll_trylock): New macro.
	(lll_trylock): Call __lll_trylock.
	* sysdeps/unix/sysv/linux/i386/libc-lowlevellock.S: Remove file.
	* sysdeps/unix/sysv/linux/i386/lll_timedlock_wait.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/lowlevellock.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/lll_timedlock_wait.c: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/x86/lowlevellock.h: New file.
	* sysdeps/unix/sysv/linux/x86_64/cancellation.S: Include
	lowlevellock-futex.h.
2019-05-14 08:48:02 -03:00
..
aarch64 aarch64: thunderx2 memmove performance improvements 2019-05-03 11:01:34 -07:00
alpha alpha: Improve sysdeps/alpha/divqu.S and sysdeps/alpha/remqu.S 2019-04-01 16:00:37 +07:00
arm Break further lines before not after operators. 2019-02-26 15:01:50 +00:00
csky C-SKY: mark lr as undefined to stop unwinding 2019-03-11 09:51:14 +08:00
generic Add single-thread.h header 2019-05-14 08:41:15 -03:00
gnu Add UDP_GRO from Linux 5.0 to netinet/udp.h. 2019-03-25 13:16:46 +00:00
hppa Add some spaces before '('. 2019-02-27 13:55:45 +00:00
htl hurd: advertise *_setpshared as not supported 2019-01-02 22:21:34 +01:00
hurd
i386 Add and move fall-through comments in system-specific code. 2019-02-26 02:09:18 +00:00
ia64 Refactor hp-timing rtld usage 2019-03-22 17:30:44 -03:00
ieee754 Fix -O1 compilation errors with `__ddivl' and `__fdivl' [BZ #19444] 2019-04-30 02:24:49 +01:00
init_array
m68k wcsmbs: optimize wcpcpy 2019-02-27 10:00:34 -03:00
mach misc: Add twalk_r function 2019-05-02 11:42:51 +02:00
microblaze Break more lines before not after operators. 2019-02-25 13:19:19 +00:00
mips Add and move fall-through comments in system-specific code. 2019-02-26 02:09:18 +00:00
nios2
nptl x86: Remove arch-specific low level lock implementation 2019-05-14 08:48:02 -03:00
posix resolv: Remove support for RES_USE_INET6 and the inet6 option 2019-04-08 10:56:22 +02:00
powerpc powerpc: trunc/truncf refactor 2019-05-09 09:39:28 -03:00
pthread <semaphore.h>: Add nonnull attributes 2019-04-29 10:11:35 +02:00
riscv riscv: remove DL_RO_DYN_SECTION 2019-04-25 10:53:08 -07:00
s390 S390: Add arch13 memmem ifunc variant. 2019-03-22 11:14:09 +01:00
sh
sparc Refactor hp-timing rtld usage 2019-03-22 17:30:44 -03:00
unix x86: Remove arch-specific low level lock implementation 2019-05-14 08:48:02 -03:00
wordsize-32
wordsize-64
x86 Refactor hp-timing rtld usage 2019-03-22 17:30:44 -03:00
x86_64 wcsmbs: optimize wcscat 2019-02-27 10:00:37 -03:00