On Thu, Apr 10, 2025 at 02:48:36PM -0700, 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.
> 
> Signed-off-by: Edwin Lu <e...@rivosinc.com>
> ---
> v2: fix ztso mappings
>     - Removed .aq annotation on load acquire
>     - Removed .rl annotation on store release

LGTM,

Reviewed-by: Andrea Parri <and...@rivosinc.com>

  Andrea

Reply via email to