On Mon, 27 Feb 2023 17:04:28 GMT, Saint Wesonga <d...@openjdk.org> wrote:

> There are 2 primary differences between the Windows ARM64 ABI and the 
> macOS/Linux ARM64 ABI: variadic floating point arguments are passed in 
> general purpose registers on Windows (instead of the vector registers). In 
> addition to this, up to 64 bytes of a struct being passed to a variadic 
> function can be placed in general purpose registers. This happens regardless 
> of the type of struct (HFA or other generic struct). This means that a struct 
> can be split across registers and the stack when invoking a variadic 
> function. The Windows ARM64 ABI conventions are documented at 
> https://learn.microsoft.com/en-us/cpp/build/arm64-windows-abi-conventions
> 
> For details about the Foreign Function & Memory API, see JEP 434 at 
> https://openjdk.org/jeps/434
> 
> This change is a cherry pick of 
> https://github.com/openjdk/panama-foreign/commit/d379ca1c and 
> https://github.com/openjdk/panama-foreign/commit/08225e4f from 
> https://github.com/openjdk/panama-foreign/pull/754 and includes an additional 
> commit that introduces a VaList implementation for Windows on AArch64.

All still looks good (including the VaList impl, though that is less important 
now since we plan to remove VaList in 21)

I'm running tier 1-4 before giving a checkmark.

Tests came back green

@swesonga I've filed a new issue here: 
https://bugs.openjdk.org/browse/JDK-8303409

Please use that issue number in the PR title (the name should already be 
correct).

-------------

PR: https://git.openjdk.org/jdk/pull/12773Marked as reviewed by jvernee 
(Reviewer).

Reply via email to