[foreign-memaccess+abi] RFR: 8275644: Replace VMReg in shuffling code with something more fine grained. [v2]

Jorn Vernee jvernee at openjdk.org
Wed Aug 10 12:51:29 UTC 2022


> This patch replaces `VMReg` with a new `VMStorage` class in the C++ code, which can be used to represent stack arguments of different sizes, as well as allowing finer grained stack addressing.
> 
> The old masm code that used `VMReg` for moving values is also replaced with new code that uses `VMStorage`. And `VMReg` is changed to `VMStorage` everywhere.
> 
> The `vmstorageBase` class was added in C++ to mirror the `jdk.internal.foreign.VMStorage`. That class now also has an additional field to encode the size of a stack argument, or a register mask, which can also be used to encode the size of a register argument. This also leads to some stubs needing to be updated on unsupported platforms.
> 
> Lastly, instead of encoding stack indexes as 64-bit slots as we did before, they are now encoded as byte offsets, which allows finer grained stack addressing. (this leads to a bunch of values being multiplied by 8 in the Java code as well).
> 
> ---
> 
> This change is needed to address https://bugs.openjdk.org/browse/JDK-8275584 as well as adding support for `long double` as well as more exotic ABIs that take arguments as vectors.

Jorn Vernee has updated the pull request incrementally with one additional commit since the last revision:

  rename index -> indexOrOffset

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

Changes:
  - all: https://git.openjdk.org/panama-foreign/pull/699/files
  - new: https://git.openjdk.org/panama-foreign/pull/699/files/513ccc02..6f997ab3

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=panama-foreign&pr=699&range=01
 - incr: https://webrevs.openjdk.org/?repo=panama-foreign&pr=699&range=00-01

  Stats: 82 lines in 9 files changed: 19 ins; 11 del; 52 mod
  Patch: https://git.openjdk.org/panama-foreign/pull/699.diff
  Fetch: git fetch https://git.openjdk.org/panama-foreign pull/699/head:pull/699

PR: https://git.openjdk.org/panama-foreign/pull/699


More information about the panama-dev mailing list