diff options
author | Gianluca Guida <gianluca@rivosinc.com> | 2024-07-02 18:05:14 -0700 |
---|---|---|
committer | Patrick O'Neill <patrick@rivosinc.com> | 2024-07-03 09:24:51 -0700 |
commit | 7b2b2e3d660edc8ef3a8cfbdfc2b0fd499459601 (patch) | |
tree | f5b13e3af93ab4f0f4c14caafa107cd8fcc3a1b5 /gcc/doc | |
parent | c41eb4c702ed04993a475d5910c190af1ff66720 (diff) | |
download | gcc-7b2b2e3d660edc8ef3a8cfbdfc2b0fd499459601.zip gcc-7b2b2e3d660edc8ef3a8cfbdfc2b0fd499459601.tar.gz gcc-7b2b2e3d660edc8ef3a8cfbdfc2b0fd499459601.tar.bz2 |
RISC-V: Add support for Zabha extension
The Zabha extension adds support for subword Zaamo ops.
Extension: https://github.com/riscv/riscv-zabha.git
Ratification: https://jira.riscv.org/browse/RVS-1685
gcc/ChangeLog:
* common/config/riscv/riscv-common.cc
(riscv_subset_list::to_string): Skip zabha when not supported by
the assembler.
* config.in: Regenerate.
* config/riscv/arch-canonicalize: Make zabha imply zaamo.
* config/riscv/iterators.md (amobh): Add iterator for amo
byte/halfword.
* config/riscv/riscv.opt: Add zabha.
* config/riscv/sync.md (atomic_<atomic_optab><mode>): Add
subword atomic op pattern.
(zabha_atomic_fetch_<atomic_optab><mode>): Add subword
atomic_fetch op pattern.
(lrsc_atomic_fetch_<atomic_optab><mode>): Prefer zabha over lrsc
for subword atomic ops.
(zabha_atomic_exchange<mode>): Add subword atomic exchange
pattern.
(lrsc_atomic_exchange<mode>): Prefer zabha over lrsc for subword
atomic exchange ops.
* configure: Regenerate.
* configure.ac: Add zabha assembler check.
* doc/sourcebuild.texi: Add zabha documentation.
gcc/testsuite/ChangeLog:
* lib/target-supports.exp: Add zabha testsuite infra support.
* gcc.target/riscv/amo/inline-atomics-1.c: Remove zabha to continue to
test the lr/sc subword patterns.
* gcc.target/riscv/amo/inline-atomics-2.c: Ditto.
* gcc.target/riscv/amo/zalrsc-rvwmo-subword-amo-add-char-acq-rel.c: Ditto.
* gcc.target/riscv/amo/zalrsc-rvwmo-subword-amo-add-char-acquire.c: Ditto.
* gcc.target/riscv/amo/zalrsc-rvwmo-subword-amo-add-char-relaxed.c: Ditto.
* gcc.target/riscv/amo/zalrsc-rvwmo-subword-amo-add-char-release.c: Ditto.
* gcc.target/riscv/amo/zalrsc-rvwmo-subword-amo-add-char-seq-cst.c: Ditto.
* gcc.target/riscv/amo/zalrsc-ztso-subword-amo-add-char-acq-rel.c: Ditto.
* gcc.target/riscv/amo/zalrsc-ztso-subword-amo-add-char-acquire.c: Ditto.
* gcc.target/riscv/amo/zalrsc-ztso-subword-amo-add-char-relaxed.c: Ditto.
* gcc.target/riscv/amo/zalrsc-ztso-subword-amo-add-char-release.c: Ditto.
* gcc.target/riscv/amo/zalrsc-ztso-subword-amo-add-char-seq-cst.c: Ditto.
* gcc.target/riscv/amo/zabha-all-amo-ops-char-run.c: New test.
* gcc.target/riscv/amo/zabha-all-amo-ops-short-run.c: New test.
* gcc.target/riscv/amo/zabha-rvwmo-all-amo-ops-char.c: New test.
* gcc.target/riscv/amo/zabha-rvwmo-all-amo-ops-short.c: New test.
* gcc.target/riscv/amo/zabha-rvwmo-amo-add-char.c: New test.
* gcc.target/riscv/amo/zabha-rvwmo-amo-add-short.c: New test.
* gcc.target/riscv/amo/zabha-ztso-amo-add-char.c: New test.
* gcc.target/riscv/amo/zabha-ztso-amo-add-short.c: New test.
Co-Authored-By: Patrick O'Neill <patrick@rivosinc.com>
Signed-Off-By: Gianluca Guida <gianluca@rivosinc.com>
Tested-by: Andrea Parri <andrea@rivosinc.com>
Diffstat (limited to 'gcc/doc')
-rw-r--r-- | gcc/doc/sourcebuild.texi | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi index c6bb41d..66c4206 100644 --- a/gcc/doc/sourcebuild.texi +++ b/gcc/doc/sourcebuild.texi @@ -2527,7 +2527,10 @@ Test target architecture has support for the A extension. @item riscv_zaamo Test target architecture has support for the zaamo extension. -@item riscv_zlrsc +@item riscv_zabha +Test target architecture has support for the zabha extension. + +@item riscv_zalrsc Test target architecture has support for the zalrsc extension. @item riscv_ztso @@ -3292,6 +3295,9 @@ Add the 'A' extension to the -march string on RISC-V targets. @item riscv_zaamo Add the zaamo extension to the -march string on RISC-V targets. +@item riscv_zabha +Add the zabha extension to the -march string on RISC-V targets. + @item riscv_zalrsc Add the zalrsc extension to the -march string on RISC-V targets. @@ -3335,6 +3341,10 @@ RISC-V targets. Remove the zaamo extension from the -march string on RISC-V. If the 'A' extension is present downgrade it to zalrsc. +@item riscv_zabha +Remove the zabha extension and implied zaamo extension from the -march string +on RISC-V. + @item riscv_zalrsc Remove the zalrsc extension from the -march string on RISC-V. If the 'A' extension is present downgrade it to zaamo. |