[foreign-abi] On invokers

Jorn Vernee jorn.vernee at oracle.com
Mon Oct 28 14:41:11 UTC 2019


Hi Maurizio,

Thanks for doing the SysV implementation!

Some comments on CallArranger:
- You are still using the WinABI layout constants in places; e.g. 
`MemoryLayouts.WinABI.C_POINTER` when generating in memory return bindings.
- For upcalls with in memory returns there is a return binding for the 
buffer address, but this is only needed on Windows, so it can be removed 
for SysV.

I didn't review the layout classification, as I'm not familiar with that 
code (I assume it's still the same any ways?)

Thanks,
Jorn

On 26/10/2019 01:55, Maurizio Cimadamore wrote:
> Sorry for the delay.
>
> Here's a port of SysV of the programmable invoker. The code can be 
> improved, but passes all tests (I fixed one test in 
> TestUpcall/Downcall which was actually causing certain checks to be 
> skipped, resulting in spurious passes, so I recommend that other 
> patches are re-tested also). I also tried the support with a libclang 
> port I have on top of the foreign-abi support, and everything worked 
> reliably.
>
> Patch here:
>
> http://cr.openjdk.java.net/~mcimadamore/panama/programmableInvoker-sysv/
>
> Cheers
> Maurizio
>
> On 24/09/2019 10:42, Jorn Vernee wrote:
>> If you want to do a SysV port that would be much appreciated :). In 
>> principle everything in the `programmable` package, except for 
>> CallArranger is a part of the API, though there should be no need to 
>> interact directly with BindingInterpreter and BufferLayout. So, if 
>> you want to do a port the only thing you should have to do is add a 
>> SysV version of CallArranger, (which I based on 
>> CallingSequenceBuilderImpl, so that's probably a good place to start) 
>> and then call that from SysVx64ABI.


More information about the panama-dev mailing list