The introduction of the optional RCPC3 architectural extension for
Armv8.2-A upwards provides additional support for the release
consistency model, introducing both the Load-Acquire RCpc Pair
Ordered, and Store-Release Pair Ordered operations in the form of
LDIAPP and STILP.

In light of this, continuing on from previously-proposed Libatomic
enablement work [1], this patch series therefore makes the following
changes to Libatomic:

  1. Extend the number of allowed ifunc alternatives to 4.
  2. Add LDIAPP and STILP instructions to 16-byte atomic operations.

[1] https://gcc.gnu.org/pipermail/gcc-patches/2024-January/643841.html

Victor Do Nascimento (2):
  libatomic: Increase max IFUNC_NCOND(N) from 3 to 4.
  libatomic: Add rcpc3 128-bit atomic operations for AArch64

 libatomic/Makefile.am                        |   6 +-
 libatomic/Makefile.in                        |  22 ++--
 libatomic/acinclude.m4                       |  19 ++++
 libatomic/auto-config.h.in                   |   3 +
 libatomic/config/linux/aarch64/atomic_16.S   | 102 ++++++++++++++++++-
 libatomic/config/linux/aarch64/host-config.h |  33 +++++-
 libatomic/configure                          |  59 ++++++++++-
 libatomic/configure.ac                       |   1 +
 libatomic/libatomic_i.h                      |  18 ++++
 9 files changed, 243 insertions(+), 20 deletions(-)

-- 
2.42.0

Reply via email to