gcc/libatomic/config
Wilco Dijkstra d1288d8509 libatomic: Add support for LSE and LSE2
Add support for AArch64 LSE and LSE2 to libatomic.  Disable outline atomics,
and use LSE ifuncs for 1-8 byte atomics and LSE2 ifuncs for 16-byte atomics.
On Neoverse V1, 16-byte atomics are ~4x faster due to avoiding locks.

Note this is safe since we swap all 16-byte atomics using the same ifunc,
so they either use locks or LSE2 atomics, but never a mix. This also improves
ABI compatibility with LLVM: its inlined 16-byte atomics are compatible with
the new libatomic if LSE2 is supported.

libatomic/
	* Makefile.in: Regenerated with automake 1.15.1.
	* Makefile.am: Add atomic_16.S for AArch64.
	* configure.tgt: Disable outline atomics in AArch64 build.
	* config/linux/aarch64/atomic_16.S: New file - implementation of
	ifuncs for 16-byte atomics.
	* config/linux/aarch64/host-config.h: Enable ifuncs, use LSE
	(HWCAP_ATOMICS) for 1-8-byte atomics and LSE2 (HWCAP_USCAT) for
	16-byte atomics.
2022-11-15 15:08:33 +00:00
..
aarch64
arm AArch32: Fix 128-bit sequential consistency atomic operations. 2022-08-08 14:37:42 +01:00
ia64
linux libatomic: Add support for LSE and LSE2 2022-11-15 15:08:33 +00:00
mingw
nvptx
posix
powerpc
rtems
s390
x86 libatomic: Handle AVX+CX16 AMD like Intel for 16b atomics [PR104688] 2022-11-15 08:14:45 +01:00
t-aix