On 4/10/25 3:48 PM, Edwin Lu wrote:
[1] https://github.com/riscv/riscv-zalasr

Add minimal support for the zalasr (load-acquire/store-release)
extension

Currently there is no toggle to opt into the abi-breaking note 3
mappings in the PSABI doc so support for that has been omitted from this
patch.

gcc/ChangeLog:

        * common/config/riscv/riscv-common.cc: Recognize zalasr.
        * config/riscv/riscv.opt: Ditto.
        * config/riscv/sync-rvwmo.md: Add check for zalasr.
        * config/riscv/sync-ztso.md: Ditto

gcc/testsuite/ChangeLog:

        * gcc.target/riscv/amo/a-rvwmo-fence.c: Disable zalasr from
          march if exists.
        * gcc.target/riscv/amo/a-rvwmo-load-acquire.c: Ditto.
        * gcc.target/riscv/amo/a-rvwmo-load-relaxed.c: Ditto.
        * gcc.target/riscv/amo/a-rvwmo-load-seq-cst.c: Ditto.
        * gcc.target/riscv/amo/a-rvwmo-store-compat-seq-cst.c: Ditto.
        * gcc.target/riscv/amo/a-rvwmo-store-relaxed.c: Ditto.
        * gcc.target/riscv/amo/a-rvwmo-store-release.c: Ditto.
        * gcc.target/riscv/amo/a-ztso-fence.c: Ditto.
        * gcc.target/riscv/amo/a-ztso-load-acquire.c:
        * gcc.target/riscv/amo/a-ztso-load-relaxed.c: Ditto.
        * gcc.target/riscv/amo/a-ztso-load-seq-cst.c: Ditto.
        * gcc.target/riscv/amo/a-ztso-store-compat-seq-cst.c: Ditto.
        * gcc.target/riscv/amo/a-ztso-store-relaxed.c: Ditto.
        * gcc.target/riscv/amo/a-ztso-store-release.c: Ditto.
        * gcc.target/riscv/amo/zaamo-ztso-amo-add-int.c: Ditto.
        * gcc.target/riscv/amo/zabha-ztso-amo-add-char.c: Ditto.
        * gcc.target/riscv/amo/zabha-ztso-amo-add-short.c: Ditto.
        * gcc.target/riscv/amo/zacas-ztso-compare-exchange-char-seq-cst.c: 
Ditto.
        * gcc.target/riscv/amo/zacas-ztso-compare-exchange-char.c:
          Ditto.
        * 
gcc.target/riscv/amo/zacas-ztso-compare-exchange-compatability-mapping-no-fence.c:
 Ditto.
        * 
gcc.target/riscv/amo/zacas-ztso-compare-exchange-compatability-mapping.cc: 
Ditto.
        * gcc.target/riscv/amo/zacas-ztso-compare-exchange-int-seq-cst.c: Ditto.
        * gcc.target/riscv/amo/zacas-ztso-compare-exchange-int.c: Ditto.
        * gcc.target/riscv/amo/zacas-ztso-compare-exchange-short-seq-cst.c: 
Ditto.
        * gcc.target/riscv/amo/zacas-ztso-compare-exchange-short.c:
          Ditto.
        * gcc.target/riscv/amo/zalrsc-ztso-amo-add-int.c: Ditto.
        * 
gcc.target/riscv/amo/zalrsc-ztso-compare-exchange-int-acquire-release.c: Ditto.
        * gcc.target/riscv/amo/zalrsc-ztso-compare-exchange-int-acquire.c: 
Ditto.
        * gcc.target/riscv/amo/zalrsc-ztso-compare-exchange-int-consume.c: 
Ditto.
        * gcc.target/riscv/amo/zalrsc-ztso-compare-exchange-int-relaxed.c: 
Ditto.
        * gcc.target/riscv/amo/zalrsc-ztso-compare-exchange-int-release.c: 
Ditto.
        * 
gcc.target/riscv/amo/zalrsc-ztso-compare-exchange-int-seq-cst-relaxed.c: Ditto.
        * gcc.target/riscv/amo/zalrsc-ztso-compare-exchange-int-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.
        * lib/target-supports.exp: Add zalasr checks.
        * gcc.target/riscv/amo/zalasr-rvwmo-load-acquire.c: New test.
        * gcc.target/riscv/amo/zalasr-rvwmo-load-relaxed.c: New test.
        * gcc.target/riscv/amo/zalasr-rvwmo-load-seq-cst.c: New test.
        * gcc.target/riscv/amo/zalasr-rvwmo-store-compat-seq-cst.c: New test.
        * gcc.target/riscv/amo/zalasr-rvwmo-store-relaxed.c: New test.
        * gcc.target/riscv/amo/zalasr-rvwmo-store-release.c: New test.
        * gcc.target/riscv/amo/zalasr-ztso-load-acquire.c: New test.
        * gcc.target/riscv/amo/zalasr-ztso-load-relaxed.c: New test.
        * gcc.target/riscv/amo/zalasr-ztso-load-seq-cst.c: New test.
        * gcc.target/riscv/amo/zalasr-ztso-store-compat-seq-cst.c: New test.
        * gcc.target/riscv/amo/zalasr-ztso-store-relaxed.c: New test.
        * gcc.target/riscv/amo/zalasr-ztso-store-release.c: New test.
OK
jeff

Reply via email to