RFR [11] 8207838: AArch64: Float registers incorrectly resture in JNI call

Andrew Haley aph at redhat.com
Tue Aug 14 15:05:32 UTC 2018

On 08/14/2018 02:32 PM, Aleksey Shipilev wrote:
> On 08/14/2018 02:47 PM, Andrew Haley wrote:
>> When we make a JNI call with several floating-point args they are
>> pushed and then popped in the reverse order.  The fix it trivial and
>> obvious and affects AArch64 only.
>> The patch also affects non-AArch64 targets only in that it adds a test
>> for this case.
>> OK for 11?
>> https://bugs.openjdk.java.net/browse/JDK-8207838
>> http://cr.openjdk.java.net/~fyang/8207838/webrev.00/
> Whoops. The fix looks good for 11, but I am not the actual approver :)
> In the test, why do we need to call the test in separate threads? AFAIU, throwing Error from those
> threads would print them out to stderr, but it would not have other effects, e.g. changing the exit
> code of the test itself, so failures may go unnoticed. Might be better to use ExecutorService, get
> the Future<?>-s, and rethrow ExecutionExceptions.

Because the bad push/pop is only on the slow path when a lock has to
be inflated.  That's why we never noticed it before.

Andrew Haley
Java Platform Lead Engineer
Red Hat UK Ltd. <https://www.redhat.com>
EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671

More information about the hotspot-runtime-dev mailing list