[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