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