RFR: 8306667: RISC-V: Fix storeImmN0 matching rule by using zr register

Xiaolin Zheng xlinzheng at openjdk.org
Thu May 11 23:16:45 UTC 2023


The `storeImmN0` in the RISC-V backend missed a `CompressedOops::base() == NULL` predication. Under non-zero-based compressed oops mode, the `xheapbase` can be a non-zero value and crashes the VM.

Reproduced by `<JDK>/bin/java -Xcomp -XX:HeapBaseMinAddress=72030M -version` simply. A hs_err file is attached in the JBS issue.

x86 uses `r12` as a zero register in `storeImmN0`, but RISC-V has a zero register so we can use it to implement the matching rule.

Testing in progress.

Thanks,
Xiaolin

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

Commit messages:
 - Merge branch 'master' into heapbase-crash
 - Merge branch 'master' into heapbase-crash
 - A simple fix

Changes: https://git.openjdk.org/jdk/pull/13577/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=13577&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8306667
  Stats: 3 lines in 1 file changed: 0 ins; 0 del; 3 mod
  Patch: https://git.openjdk.org/jdk/pull/13577.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/13577/head:pull/13577

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


More information about the hotspot-compiler-dev mailing list