RFR: 8300197: Freeze/thaw an interpreter frame using a single copy_to_chunk() call
Fredrik Bredberg
duke at openjdk.org
Fri Apr 14 13:52:29 UTC 2023
On certain architectures (like AARCH64) padding may be inserted between the locals and the rest of the stack frame in order to keep the frame pointer 16-byte-aligned.
This padding is currently not freezed, instead freezing of a single interpreter stack frame is done using two separate copy_to_chunk() calls (see recurse_freeze_interpreted_frame). Likewise, thawing is done using two separate copy_from_chunk() calls.
This poses a bit of a problem when trying to relativize stack addresses in interpreter frames ([JDK-8289296](https://bugs.openjdk.org/browse/JDK-8289296)). Since relative offsets may need to be changed during freezing and thawing.
By both freezing and thawing the padding we remove the need to change any relative offsets in runtime.
Tested tier1-tier8 on supported platforms, found no new issues. PowerPC and RISC-V was sanity tested using Qemu.
-------------
Commit messages:
- 8300197: Freeze/thaw an interpreter frame using a single copy_to_chunk() call
Changes: https://git.openjdk.org/jdk/pull/13477/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=13477&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8300197
Stats: 63 lines in 5 files changed: 4 ins; 24 del; 35 mod
Patch: https://git.openjdk.org/jdk/pull/13477.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/13477/head:pull/13477
PR: https://git.openjdk.org/jdk/pull/13477
More information about the hotspot-dev
mailing list