aarch64: Enable the use of LDAPR for load-acquire semantics
authorAndre Vieira <andre.simoesdiasvieira@arm.com>
Tue, 15 Nov 2022 09:50:39 +0000 (09:50 +0000)
committerAndre Vieira <andre.simoesdiasvieira@arm.com>
Tue, 15 Nov 2022 09:50:39 +0000 (09:50 +0000)
commit0431e8ae5bdb854bda5f9005e41c8c4d03f6d74e
treeb65df33fbe1c4b36a63276d5e48037ac3c25fa78
parent9a4129f5c5a697ad7726687d5932eef90feec53b
aarch64: Enable the use of LDAPR for load-acquire semantics

This patch enables the use of LDAPR for load-acquire semantics.

2022-11-15  Andre Vieira  <andre.simoesdiasvieira@arm.com>
    Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

gcc/ChangeLog:

* config/aarch64/aarch64.h (AARCH64_ISA_RCPC): New Macro.
(TARGET_RCPC): New Macro.
* config/aarch64/atomics.md (atomic_load<mode>): Change into an expand.
(aarch64_atomic_load<mode>_rcpc): New define_insn for ldapr.
(aarch64_atomic_load<mode>): Rename of old define_insn for ldar.
* config/aarch64/iterators.md (UNSPEC_LDAP): New unspec enum value.
* doc/invoke.texi (rcpc): Ammend documentation to mention the effects
on code generation.

gcc/testsuite/ChangeLog:

* gcc.target/aarch64/ldapr.c: New test.
gcc/config/aarch64/aarch64.h
gcc/config/aarch64/atomics.md
gcc/config/aarch64/iterators.md
gcc/doc/invoke.texi
gcc/testsuite/gcc.target/aarch64/ldapr.c [new file with mode: 0644]