RFR: 8253795: Implementation of JEP 391: macOS/AArch64 Port [v8]

Vladimir Kempik vkempik at openjdk.java.net
Tue Feb 16 06:26:46 UTC 2021

On Mon, 15 Feb 2021 19:07:40 GMT, Andrew Haley <aph at openjdk.org> wrote:

>> Hello, we have updated PR, now this bailout is used only by the code which can handle it (native wrapper generator), for the rest it will cause guarantee failed if this bailout is triggered
> This is when passing a float, yes? In the case where we have more float arguments than n_float_register_parameters_c.
> I don't understand why you think it's acceptable to bail in this case. Can you explain, please?

it's for everything that uses less than 8 bytes on a stack( ints ( 4), shorts(2), bytes(1), floats(4)).
currently native wrapper generation does not support such cases at all, it needs refactoring before this can be implemented.
So when a method has more argument than can be placed in registers, we may have issues. 

So we just bailing out to interpreter in case when a smaller (<=4 b) type is going to be passed thru the stack.

There was attempt to implement handling such cases but currently it requires some hacks (like using some vectors for non-specific task) - https://github.com/openjdk/aarch64-port/pull/3


PR: https://git.openjdk.java.net/jdk/pull/2200

More information about the security-dev mailing list