RFR: 8317545: AIX PPC64: Implementation of Foreign Function & Memory API [v2]
Martin Doerr
mdoerr at openjdk.org
Fri Oct 13 12:41:01 UTC 2023
On Fri, 13 Oct 2023 10:24:58 GMT, Jorn Vernee <jvernee at openjdk.org> wrote:
>> Martin Doerr has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Improve micro benchmarks and a comment.
>
> src/java.base/share/classes/jdk/internal/foreign/abi/ppc64/aix/AixPPC64Linker.java line 48:
>
>> 46: static {
>> 47: HashMap<String, MemoryLayout> layouts = new HashMap<>();
>> 48: layouts.putAll(SharedUtils.canonicalLayouts(ValueLayout.JAVA_LONG, ValueLayout.JAVA_LONG, ValueLayout.JAVA_INT));
>
> You may also add an extra parameter for the double layout to SharedUtils::canonicalLayouts.
>
> Also, what about `jdouble`? It seems to be defined to a native `double` on AIX as well? (see src/java.base/share/native/include/jni.h)
Not sure how `jdouble` would be used. JNI doesn't support C structures and the double alignment is only an issue in structures. Do we support embedding `jdouble` in structures? I guess changing it would probably be better?
Note that we will need something which maps to the 8-Byte aligned `double`. Otherwise we get an Exception when passing a `JAVA_DOUBLE` as normal argument:
IllegalArgumentException: Unsupported layout: D8
at java.base/jdk.internal.foreign.abi.AbstractLinker.checkSupported(AbstractLinker.java:244)
at java.base/jdk.internal.foreign.abi.AbstractLinker.checkLayoutRecursive(AbstractLinker.java:185)
at java.base/jdk.internal.foreign.abi.AbstractLinker.checkLayout(AbstractLinker.java:179)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at java.base/jdk.internal.foreign.abi.AbstractLinker.checkLayouts(AbstractLinker.java:171)
at java.base/jdk.internal.foreign.abi.AbstractLinker.downcallHandle0(AbstractLinker.java:98)
at java.base/jdk.internal.foreign.abi.AbstractLinker.downcallHandle(AbstractLinker.java:85)
at TestDowncall.<clinit>(TestDowncall.java:127)
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/16179#discussion_r1358201012
More information about the hotspot-compiler-dev
mailing list