[foreign-abi] RFR 8237358: Split the DEREFERENCE binding operator into a load/store + move
Jorn Vernee
jorn.vernee at oracle.com
Tue Jan 28 13:35:30 UTC 2020
Hi,
Please review the following patch which splits the DEREFERENCE binding
operator into a load/store + move. This simplifies what the binding
operator does itself, but surfaces the need for a stack of values in the
binding interpreter rather than a single object. We also need a DUP
operator now, for instance in the case where a struct is being passed to
an upcall, we get ALLOC_BUFFER, DUP, MOVE, DEREFERENCE where the buffer
is left as last value on the stack to be passed to the target method.
However, we've found that splitting DEREFERENCE makes later
intrinsification much simpler.
Bug: https://bugs.openjdk.java.net/browse/JDK-8237358
Webrev:
http://cr.openjdk.java.net/~jvernee/panama/webrevs/8237358/webrev.00/
I've tested this on Windows and Linux (WSL). I also have a binding
recipe verifier which I ran this through. Will submit that in the next
patch. (But, I thought it would be best to get this API change out of
the way before adding more tests, to avoid having to update them).
Thanks,
Jorn
More information about the panama-dev
mailing list