[foreign-memaccess+abi] RFR: 8302346: Lift upcall sharing mechanism to AbstractLinker
Jorn Vernee
jvernee at openjdk.org
Tue Feb 14 14:56:04 UTC 2023
Lift the upcall sharing mechanism to AbstractLinker, where it can live next to the similar mechanism for down calls. This also allows the fallback linker to use this mechanism.
Instead of an upcall stub, AbstractLinker::arrangeDowncall now return an UpcallStubFactory, which is a callback accepting a target MethodHandle and Arena, which are then used to construct the actual upcall stub.
Perhaps the trickiest part of this patch is that we have to simulate the effects of `SharedUtils::adaptUpcallForIMR` on the target method type. I've added a new method in SharedUtils, called `computeUpcallIMRType` for that, which mimics the shape of the `adaptUpcallForIMR` method.
Since the shape of most of the arrangeUpcall methods was very similar, I factored them out into a helper method in SharedUtils as well.
-------------
Commit messages:
- fix zero
- tweak visibility
- polish3
- polish2
- polish
- Make upcall creation lazy at the AbstractLinker level
Changes: https://git.openjdk.org/panama-foreign/pull/791/files
Webrev: https://webrevs.openjdk.org/?repo=panama-foreign&pr=791&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8302346
Stats: 194 lines in 16 files changed: 77 ins; 55 del; 62 mod
Patch: https://git.openjdk.org/panama-foreign/pull/791.diff
Fetch: git fetch https://git.openjdk.org/panama-foreign pull/791/head:pull/791
PR: https://git.openjdk.org/panama-foreign/pull/791
More information about the panama-dev
mailing list