Re: RFR: 8317545: AIX PPC64: Implementation of Foreign Function & Memory API [v5]

2023-11-02 Thread Martin Doerr
On Tue, 17 Oct 2023 14:17:20 GMT, Martin Doerr wrote: >> The AIX linker has a few minor diffs to the linux ABIv1 linker. In addition, >> double values have only 4 Byte alignment within structures. This PR is based >> on JDK22 version of the FFI. > > Martin Doerr has updated the pull request inc

Re: RFR: 8317545: AIX PPC64: Implementation of Foreign Function & Memory API [v5]

2023-11-02 Thread Jorn Vernee
On Wed, 1 Nov 2023 18:43:24 GMT, Martin Doerr wrote: >> Martin Doerr has updated the pull request incrementally with two additional >> commits since the last revision: >> >> - Improve handling of layouts in NativeType.java >> - Check byte order of 4-byte aligned double. > > Thanks for testing

Re: RFR: 8317545: AIX PPC64: Implementation of Foreign Function & Memory API [v5]

2023-11-02 Thread null
On Tue, 17 Oct 2023 14:17:20 GMT, Martin Doerr wrote: >> The AIX linker has a few minor diffs to the linux ABIv1 linker. In addition, >> double values have only 4 Byte alignment within structures. This PR is based >> on JDK22 version of the FFI. > > Martin Doerr has updated the pull request inc

Re: RFR: 8317545: AIX PPC64: Implementation of Foreign Function & Memory API [v5]

2023-11-01 Thread Martin Doerr
On Tue, 17 Oct 2023 14:17:20 GMT, Martin Doerr wrote: >> The AIX linker has a few minor diffs to the linux ABIv1 linker. In addition, >> double values have only 4 Byte alignment within structures. This PR is based >> on JDK22 version of the FFI. > > Martin Doerr has updated the pull request inc

Re: RFR: 8317545: AIX PPC64: Implementation of Foreign Function & Memory API [v5]

2023-11-01 Thread null
On Tue, 17 Oct 2023 14:17:20 GMT, Martin Doerr wrote: >> The AIX linker has a few minor diffs to the linux ABIv1 linker. In addition, >> double values have only 4 Byte alignment within structures. This PR is based >> on JDK22 version of the FFI. > > Martin Doerr has updated the pull request inc

Re: RFR: 8317545: AIX PPC64: Implementation of Foreign Function & Memory API [v5]

2023-10-17 Thread Martin Doerr
> The AIX linker has a few minor diffs to the linux ABIv1 linker. In addition, > double values have only 4 Byte alignment within structures. This PR is based > on JDK22 version of the FFI. Martin Doerr has updated the pull request incrementally with two additional commits since the last revisio

Re: RFR: 8317545: AIX PPC64: Implementation of Foreign Function & Memory API [v4]

2023-10-17 Thread Martin Doerr
On Mon, 16 Oct 2023 22:56:42 GMT, Jorn Vernee wrote: >> Martin Doerr has updated the pull request incrementally with one additional >> commit since the last revision: >> >> Revert changes to PlatformLayouts.java > > src/java.base/share/classes/jdk/internal/foreign/abi/ppc64/aix/AixPPC64Linker

Re: RFR: 8317545: AIX PPC64: Implementation of Foreign Function & Memory API [v5]

2023-10-17 Thread Jorn Vernee
On Tue, 17 Oct 2023 14:12:27 GMT, Martin Doerr wrote: >> The AIX linker has a few minor diffs to the linux ABIv1 linker. In addition, >> double values have only 4 Byte alignment within structures. This PR is based >> on JDK22 version of the FFI. > > Martin Doerr has updated the pull request inc

Re: RFR: 8317545: AIX PPC64: Implementation of Foreign Function & Memory API [v4]

2023-10-16 Thread Jorn Vernee
On Mon, 16 Oct 2023 16:20:49 GMT, Martin Doerr wrote: >> The AIX linker has a few minor diffs to the linux ABIv1 linker. In addition, >> double values have only 4 Byte alignment within structures. This PR is based >> on JDK22 version of the FFI. > > Martin Doerr has updated the pull request inc

Re: RFR: 8317545: AIX PPC64: Implementation of Foreign Function & Memory API [v3]

2023-10-16 Thread Martin Doerr
On Mon, 16 Oct 2023 19:24:51 GMT, Jorn Vernee wrote: > Ok. I'm assuming there are currently some failing tests due to the mismatch > in ABI? (assuming the test libraries are compiled for the packed ABI) We should be careful with the names: - "#pragma align (power)" is the default which is curr

Re: RFR: 8317545: AIX PPC64: Implementation of Foreign Function & Memory API [v3]

2023-10-16 Thread Jorn Vernee
On Mon, 16 Oct 2023 15:54:12 GMT, Martin Doerr wrote: > I have filed a subtask to handle the tests: > https://bugs.openjdk.org/browse/JDK-8318175 This PR is now compatible with > "#pragma align (natural)", but permits layouts according to the default > setting. This allows writing Java code wh

Re: RFR: 8317545: AIX PPC64: Implementation of Foreign Function & Memory API [v4]

2023-10-16 Thread Martin Doerr
On Mon, 16 Oct 2023 14:41:40 GMT, Maurizio Cimadamore wrote: >> Please take a look at commit number 4. I think we need to support both, >> 4-byte and 8-byte aligned doubles in structures. IBM recommends to use >> "#pragma align (natural)": "The power suboption is the default to ensure >> comp

Re: RFR: 8317545: AIX PPC64: Implementation of Foreign Function & Memory API [v3]

2023-10-16 Thread Martin Doerr
On Mon, 16 Oct 2023 14:06:09 GMT, Martin Doerr wrote: >> The AIX linker has a few minor diffs to the linux ABIv1 linker. In addition, >> double values have only 4 Byte alignment within structures. This PR is based >> on JDK22 version of the FFI. > > Martin Doerr has updated the pull request inc

Re: RFR: 8317545: AIX PPC64: Implementation of Foreign Function & Memory API [v4]

2023-10-16 Thread Martin Doerr
> The AIX linker has a few minor diffs to the linux ABIv1 linker. In addition, > double values have only 4 Byte alignment within structures. This PR is based > on JDK22 version of the FFI. Martin Doerr has updated the pull request incrementally with one additional commit since the last revision

Re: RFR: 8317545: AIX PPC64: Implementation of Foreign Function & Memory API [v3]

2023-10-16 Thread Maurizio Cimadamore
On Mon, 16 Oct 2023 13:57:11 GMT, Martin Doerr wrote: >> Err, actually using `member.equals(C_DOUBLE)` in the above doesn't work >> since it still checks alignment. What you have with checking for >> `ValueLayout` and `carrier() == double.class` is better, but the byte order >> should also be

Re: RFR: 8317545: AIX PPC64: Implementation of Foreign Function & Memory API [v3]

2023-10-16 Thread Martin Doerr
> The AIX linker has a few minor diffs to the linux ABIv1 linker. In addition, > double values have only 4 Byte alignment within structures. This PR is based > on JDK22 version of the FFI. Martin Doerr has updated the pull request incrementally with one additional commit since the last revision

Re: RFR: 8317545: AIX PPC64: Implementation of Foreign Function & Memory API [v3]

2023-10-16 Thread Martin Doerr
On Sat, 14 Oct 2023 18:01:00 GMT, Jorn Vernee wrote: >> I was thinking something like this: >> >> >> diff --git >> a/src/java.base/share/classes/jdk/internal/foreign/abi/AbstractLinker.java >> b/src/java.base/share/classes/jdk/internal/foreign/abi/AbstractLinker.java >> index dbd9a3f67a4..10b

Re: RFR: 8317545: AIX PPC64: Implementation of Foreign Function & Memory API [v2]

2023-10-14 Thread Jorn Vernee
On Sat, 14 Oct 2023 16:56:50 GMT, Jorn Vernee wrote: >> So, your proposal should look like this? >> >> diff --git >> a/src/java.base/share/classes/jdk/internal/foreign/abi/AbstractLinker.java >> b/src/java.base/share/classes/jdk/internal/foreign/abi/AbstractLinker.java >> index dbd9a3f67a4..ec

Re: RFR: 8317545: AIX PPC64: Implementation of Foreign Function & Memory API [v2]

2023-10-14 Thread Jorn Vernee
On Sat, 14 Oct 2023 13:54:28 GMT, Martin Doerr wrote: >> Thanks for your outstanding support! I'm awaiting feedback from IBM and a >> solution for the subtask https://bugs.openjdk.org/browse/JDK-8317799. There >> shouldn't be much work to be done after that, I guess. > > So, your proposal shoul

Re: RFR: 8317545: AIX PPC64: Implementation of Foreign Function & Memory API [v2]

2023-10-14 Thread Martin Doerr
On Fri, 13 Oct 2023 14:48:51 GMT, Martin Doerr wrote: >> Discussed this a bit with Maurizio. There are a few things to consider: >> >> - `cannonicalLayouts` allows for just a single mapping from type name to >> layout. I think `double` should map to the 8-byte aligned layout. (the same >> alig

Re: RFR: 8317545: AIX PPC64: Implementation of Foreign Function & Memory API [v2]

2023-10-13 Thread Martin Doerr
On Fri, 13 Oct 2023 14:28:58 GMT, Jorn Vernee wrote: >>> Just to clarify, is the ABI equal to what is described in this table: >>> https://www.ibm.com/docs/en/xl-c-and-cpp-aix/16.1?topic=data-using-alignment-modes >>> ? >>> >>> This shows `double` having 8-byte alignment, but being 4-byte alig

Re: RFR: 8317545: AIX PPC64: Implementation of Foreign Function & Memory API [v2]

2023-10-13 Thread Martin Doerr
On Fri, 13 Oct 2023 13:39:11 GMT, Martin Doerr wrote: >> Just to clarify, is the ABI equal to what is described in this table: >> https://www.ibm.com/docs/en/xl-c-and-cpp-aix/16.1?topic=data-using-alignment-modes >> ? >> >> This shows `double` having 8-byte alignment, but being 4-byte aligned

Re: RFR: 8317545: AIX PPC64: Implementation of Foreign Function & Memory API [v2]

2023-10-13 Thread Jorn Vernee
On Fri, 13 Oct 2023 14:03:34 GMT, Martin Doerr wrote: >>> Okay, so it sounds like Java double on AIX is still 8-byte aligned, but the >>> native double is 4-byte aligned? >> >> Correct within structures. I believe they are always 8-byte aligned except >> in structures which are packed more den

Re: RFR: 8317545: AIX PPC64: Implementation of Foreign Function & Memory API [v2]

2023-10-13 Thread Martin Doerr
On Fri, 13 Oct 2023 13:37:10 GMT, Jorn Vernee wrote: >>> I guess changing it would probably be better? >> >> Yeah, I think so. >> >>> 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. >> >

Re: RFR: 8317545: AIX PPC64: Implementation of Foreign Function & Memory API [v2]

2023-10-13 Thread Jorn Vernee
On Fri, 13 Oct 2023 13:02:24 GMT, Jorn Vernee wrote: >> 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 th

Re: RFR: 8317545: AIX PPC64: Implementation of Foreign Function & Memory API [v2]

2023-10-13 Thread Jorn Vernee
On Fri, 13 Oct 2023 12:34:53 GMT, Martin Doerr wrote: > I guess changing it would probably be better? Yeah, I think so. > 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. Okay, so it sounds

Re: RFR: 8317545: AIX PPC64: Implementation of Foreign Function & Memory API [v2]

2023-10-13 Thread Martin Doerr
On Fri, 13 Oct 2023 10:24:58 GMT, Jorn Vernee 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/AixPPC64Linke

Re: RFR: 8317545: AIX PPC64: Implementation of Foreign Function & Memory API [v2]

2023-10-13 Thread Martin Doerr
On Fri, 13 Oct 2023 10:21:06 GMT, Jorn Vernee wrote: >> Martin Doerr has updated the pull request incrementally with one additional >> commit since the last revision: >> >> Improve micro benchmarks and a comment. > > test/micro/org/openjdk/bench/java/lang/foreign/CLayouts.java line 68: > >>

Re: RFR: 8317545: AIX PPC64: Implementation of Foreign Function & Memory API [v2]

2023-10-13 Thread Martin Doerr
> The AIX linker has a few minor diffs to the linux ABIv1 linker. In addition, > double values have only 4 Byte alignment. This PR is based on JDK22 version > of the FFI. Martin Doerr has updated the pull request incrementally with one additional commit since the last revision: Improve micro

RFR: 8317545: AIX PPC64: Implementation of Foreign Function & Memory API

2023-10-13 Thread Martin Doerr
The AIX linker has a few minor diffs to the linux ABIv1 linker. In addition, double values have only 4 Byte alignment. - Commit messages: - Change double alignment to 4 in tests. - 8317545: AIX PPC64: Implementation of Foreign Function & Memory API Changes: https://git.openjdk.org

Re: RFR: 8317545: AIX PPC64: Implementation of Foreign Function & Memory API

2023-10-13 Thread Jorn Vernee
On Fri, 13 Oct 2023 10:12:24 GMT, Martin Doerr wrote: > The AIX linker has a few minor diffs to the linux ABIv1 linker. In addition, > double values have only 4 Byte alignment. This PR is based on JDK22 version > of the FFI. src/java.base/share/classes/jdk/internal/foreign/abi/ppc64/aix/AixPPC