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

Jorn Vernee jorn.vernee at oracle.com
Tue Jan 28 14:07:26 UTC 2020


Thanks - fixed and pushed.

Jorn

On 28/01/2020 14:52, Maurizio Cimadamore wrote:
> 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