RFR: 8296477: Foreign linker implementation update following JEP 434 [v9]

Jorn Vernee jvernee at openjdk.org
Mon Nov 28 12:14:50 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.

Jorn Vernee has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 23 additional commits since the last revision:

 - use Arena in example
 - Merge branch 'PR_20' into VM_Changes
 - drop .inline from vmstorage header names
 - 8296973: saving errno on a value-returning function crashes the JVM
   
   Reviewed-by: mcimadamore
 - fix stubs
 - constexpr some functions
 - Review pt1
 - Tweak copyright headers
 - Use @requires to disable some tests on x86
 - Use AssertionError for internal exceptions
 - ... and 13 more: https://git.openjdk.org/jdk/compare/bbde3878...75917216

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/11019/files
  - new: https://git.openjdk.org/jdk/pull/11019/files/03be64c9..75917216

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=11019&range=08
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=11019&range=07-08

  Stats: 16892 lines in 695 files changed: 7158 ins; 6214 del; 3520 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 core-libs-dev mailing list