Hi, please consider. This provides the necessary JVM changes (interpreter, c1 and c2) for a specification-compliant Valhalla port on linux-riscv64 platform. Major change is made in the riscv CPU part. We need a very small change to hotspot c1 shared code. The reason is that there doesn't exist a real flag register for the riscv64 ISA. So we have to pass the result in a temp register. That's a major difference from other ISAs like aarch64 & amd64.
Calling convention flattening feature has not been implemented for this platform. If either `-InlineTypePassFieldsAsArgs` or `-XX:-InlineTypeReturnedAsFields` is specified on the command line, JVM will issue a warning and continue with these two options disabled. This helps enable most of Valhalla tests on this platform so that we could have a better test coverage. Testing on linux-riscv64: - [x] GHA - [x] `make test TEST="hotspot_valhalla jdk_valhalla valhalla_adopted"` (release & fastdebug) - [x] `make test TEST="tier1 tier2 tier3 tier4"` (release) - [x] `make test TEST="hotspot:tier1 hotspot:tier2 hotspot:tier3 hotspot:tier4"` (fastdebug) --------- - [x] I confirm that I make this contribution in accordance with the [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai). ------------- Commit messages: - Header Cleanup - Small Refactor - Add handling for Metaspace OOME in ciObjArrayKlass::make_impl - Code Comment - Merge remote-tracking branch 'upstream/lworld' into JDK-8386240 - More code cleanup - Fix typo - Merge remote-tracking branch 'upstream/lworld' into JDK-8386240 - Some code cleanup - Merge remote-tracking branch 'upstream/lworld' into JDK-8386240 - ... and 4 more: https://git.openjdk.org/valhalla/compare/abebcaa0...d1e15117 Changes: https://git.openjdk.org/valhalla/pull/2531/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=2531&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8386240 Stats: 2445 lines in 61 files changed: 1785 ins; 292 del; 368 mod Patch: https://git.openjdk.org/valhalla/pull/2531.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/2531/head:pull/2531 PR: https://git.openjdk.org/valhalla/pull/2531
