Hi, please condiser.
SA currently computes continuation entry frame pointers using the raw 
sizeof(ContinuationEntry), whereas HotSpot uses that size rounded up to two 
machine words.
With the current 64-bit layout, the raw size is 56 bytes and the aligned size 
is 64 bytes. Consequently, SA computes frame pointers eight bytes too low on 
x86-64, AArch64, and RISC-V64.

This change:
- Aligns the size in the shared SA implementation, matching 
ContinuationEntry::size().
- Preserves RISC-V’s additional two-word FP adjustment.
- Adds a cross-platform jtreg test that checks FP offsets using the attached 
JVM’s type metadata and a synthetic entry address, without depending on 
stack-walking behavior or virtual-thread timing.

Testing: github ci

---------
- [x] I confirm that I make this contribution in accordance with the [OpenJDK 
Interim AI Policy](https://openjdk.org/legal/ai).

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

Commit messages:
 - 8396520: SA: Align continuation entry size when computing frame pointers

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

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

Reply via email to