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

Reply via email to