RFR: 8356159: RISC-V: Add Zabha [v11]

Robbin Ehn rehn at openjdk.org
Fri May 30 09:22:37 UTC 2025


> Hi, please consider.
> 
> This adds the byte and halfword atomic memory operations (Zabha) - https://github.com/riscv/riscv-zabha.
> All amo-instructions, except load-reserve and store-conditional, can also be performed on natural aligned half-words and bytes. (i.e. the extension do not add lr.h/b or sc.h/b) This includes amocas if zacas extension is present.
> 
> The majority of this patch is to support amocas.h/b. We are now starting to really feel the pain of all these extensions, as CAS:ing 16/8-bits can now be done in three different ways:
> - lr.w/sc.w 'narrow' CAS (no extension)
> - amocas.w 'narrow' CAS (Zacas)
> - amocas.h/b (Zacas + Zabha)
> 
> There is no hwprobe support yet.
> 
> Ran t1-3 with Zacas+Zabha and t1 without Zabha in qemu.
> 
> Thanks, Robbin

Robbin Ehn has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 20 additional commits since the last revision:

 - Set ins cost to 2xVOLA for cmpxchg
 - Merge branch 'master' into 8356159
 - Merge branch 'master' into 8356159
 - ins cost fixes, print fixes
 - Merge branch 'master' into 8356159
 - Reg limits fixed
 - Merge branch 'master' into 8356159
 - Fixed reg selection
 - More indention
 - Indention
 - ... and 10 more: https://git.openjdk.org/jdk/compare/f6ef6bec...b496c299

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/25252/files
  - new: https://git.openjdk.org/jdk/pull/25252/files/4e572ee2..b496c299

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=25252&range=10
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=25252&range=09-10

  Stats: 22334 lines in 417 files changed: 18588 ins; 2568 del; 1178 mod
  Patch: https://git.openjdk.org/jdk/pull/25252.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/25252/head:pull/25252

PR: https://git.openjdk.org/jdk/pull/25252


More information about the hotspot-dev mailing list