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