On 6/25/24 4:06 PM, Patrick O'Neill wrote:
From: Gianluca Guida <gianl...@rivosinc.com>

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/amo-table-a-6-subword-amo-add-1.c: Remove zabha
        to continue to test the lr/sc subword patterns.
        * gcc.target/riscv/amo/amo-table-a-6-subword-amo-add-2.c: Ditto.
        * gcc.target/riscv/amo/amo-table-a-6-subword-amo-add-3.c: Ditto.
        * gcc.target/riscv/amo/amo-table-a-6-subword-amo-add-4.c: Ditto.
        * gcc.target/riscv/amo/amo-table-a-6-subword-amo-add-5.c: Ditto.
        * gcc.target/riscv/amo/amo-table-ztso-subword-amo-add-1.c: Ditto.
        * gcc.target/riscv/amo/amo-table-ztso-subword-amo-add-2.c: Ditto.
        * gcc.target/riscv/amo/amo-table-ztso-subword-amo-add-3.c: Ditto.
        * gcc.target/riscv/amo/amo-table-ztso-subword-amo-add-4.c: Ditto.
        * gcc.target/riscv/amo/amo-table-ztso-subword-amo-add-5.c: Ditto.
        * gcc.target/riscv/amo/inline-atomics-1.c: Ditto.
        * gcc.target/riscv/amo/inline-atomics-2.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.
OK. And Palmer's doc update is also OK. I assume he'll be offline for a while, so if you wanted to commit that for him, it'd be appreciated.

jeff

Reply via email to