[foreign-abi] RFR 8237358: Split the DEREFERENCE binding operator into a load/store + move

Maurizio Cimadamore maurizio.cimadamore at oracle.com
Tue Jan 28 13:52:45 UTC 2020


Looks good. The comment on Binding::dereference is probably out of date now?

Also I've only really looked at SyyV and Windows CallArrangers - which 
look good.

Maurizio


On 28/01/2020 13:35, Jorn Vernee wrote:
> 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