RFR: 8303040: linux PPC64le: Implementation of Foreign Function & Memory API (Preview) [v2]
Maurizio Cimadamore
mcimadamore at openjdk.org
Thu Feb 23 16:51:08 UTC 2023
On Thu, 23 Feb 2023 15:02:48 GMT, Jorn Vernee <jvernee at openjdk.org> wrote:
> > > Correct, `extsw` performs a `I2L` conversion. I had thought about this already, but I think my current implementation is more efficient as it combines register moves with the 64 bit extend. Your proposal would generate separate extend and move instructions, right?
> >
> >
> > Would it be possible to generate a biding cast + move and the recognize the pattern in the HS backend and optimize it away as a `extsw` ?
>
> At the moment, there is a forced indirection between the Java code and downcall stub, so the JIT can not do any optimizations that have to take both sides into account. The downcall stub is opaque to the JIT. (though, perhaps in the long run we can add intrinsification of `linkToNative` that can generate the code in the downcall stub as part of the JIT's own IR, which would solve this)
I meant generating `extsw` when emitting the stub (since when we emit the stub we can see the bindings). But I suppose the problem there is that the VM only sees low level bindings such as moves, it doesn't see bindings such as casts.
-------------
PR: https://git.openjdk.org/jdk/pull/12708
More information about the core-libs-dev
mailing list