[foreign-memaccess+abi] RFR: 8275644: Replace VMReg in shuffling code with something more fine grained.
Jorn Vernee
jvernee at openjdk.org
Tue Aug 9 12:05:36 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).
-------------
Commit messages:
- revert spurious merge change
- Fix stack arg allocation
- Relax stack storage checking
- Polish
- Uncouple VMStorage from current Architecture
- Merge branch 'VMStorage2' of https://github.com/JornVernee/panama-foreign into VMStorage2
- Stubs2
- Stubs
- Linux fixes
- Clean up JavaCallingConvention
- ... and 9 more: https://git.openjdk.org/panama-foreign/compare/218a003c...513ccc02
Changes: https://git.openjdk.org/panama-foreign/pull/699/files
Webrev: https://webrevs.openjdk.org/?repo=panama-foreign&pr=699&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8275644
Stats: 1400 lines in 46 files changed: 792 ins; 130 del; 478 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