RFR: 8296477: Foreign linker implementation update following JEP 434

Jorn Vernee jvernee at openjdk.org
Tue Nov 8 18:47:52 UTC 2022


Pull in linker implementation changes, that include non-trivial changes to VM code, from the panama-foreign repo into the main JDK.

This is split off from the main JEP integration to make reviewing easier.

This includes the following patches:

1. https://github.com/openjdk/panama-foreign/pull/698
2. https://github.com/openjdk/panama-foreign/pull/699
3. (part of) https://github.com/openjdk/panama-foreign/pull/731
4. https://github.com/openjdk/panama-foreign/pull/740
5. https://github.com/openjdk/panama-foreign/pull/746
6. https://github.com/openjdk/panama-foreign/pull/742
7. https://github.com/openjdk/panama-foreign/pull/743

Probably the biggest change to the code comes from replacing `VMReg` - which can not represent offsets into the stack that are not a multiple of the VM's stack slot size (32-bits) - with the new `VMStorage` class, which can describe byte offsets into the stack, as well as having a register mask to indicate only certain register segments.

The only part of 3. that is in this PR is the part that turns the `VMStorage` class in Java into a record.

Please refer to the PR of each individual patch for a more detailed description.

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

Depends on: https://git.openjdk.org/jdk/pull/10872

Commit messages:
 - Rename CAPTURED_STATE_MASK stub location to CAPTURED_STATE_BUFFER
 - fix TestCaptureCallState
 - add stubs
 - 8295353: Mark Register v24 as Volatile in Foreign Function & Memory C ABI Definition
 - 8294970: Add linker option for saving thread-locals that the VM can overwrite
 - 8275584: Incorrect stack spilling in CallArranger on MacOS/AArch64
 - 8295265: Refactor handling of special values passed to stubs
 - VMStorage to record
 - 8275644: Replace VMReg in shuffling code with something more fine grained.
 - 8291913: Remove the TraceOptimizedUpcallStubs flag

Changes: https://git.openjdk.org/jdk/pull/11019/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=11019&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8296477
  Stats: 2766 lines in 67 files changed: 1861 ins; 315 del; 590 mod
  Patch: https://git.openjdk.org/jdk/pull/11019.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/11019/head:pull/11019

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


More information about the hotspot-dev mailing list