RFR: 8290280: riscv: Clean up stack and register handling in interpreter
Feilong Jiang
fjiang at openjdk.org
Thu Jul 14 07:53:44 UTC 2022
As [JDK-8288971](https://bugs.openjdk.org/browse/JDK-8288971) described, we have the same issue on riscv backend:
1. We use x30 to pass the caller's SP to a callee through adapters. x30 is not a callee-saved register in native ABI [1], we choose x19 for this patch.
2. We frequently recalculate the location where the native SP needs to go. We have a spare slot in the interpreter frame, so we should calculate it once, when the frame is created, and use it.
3. Relate to 1, we should clearly label all the places where the caller's SP is passed to a callee.
[1]. https://github.com/riscv-non-isa/riscv-elf-psabi-doc/blob/master/riscv-cc.adoc
Additional tests:
- hotspot/jdk tier1 on QEMU with Release JDK
- hotspot tier1 on HiFive Unmatched board with Release JDK
- hotspot tier1 on QEMU with Fastdebug JDK
-------------
Commit messages:
- riscv: Clean up stack and register handling in interpreter
Changes: https://git.openjdk.org/jdk/pull/9487/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=9487&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8290280
Stats: 145 lines in 11 files changed: 69 ins; 34 del; 42 mod
Patch: https://git.openjdk.org/jdk/pull/9487.diff
Fetch: git fetch https://git.openjdk.org/jdk pull/9487/head:pull/9487
PR: https://git.openjdk.org/jdk/pull/9487
More information about the hotspot-dev
mailing list