RFR : JDK-8067744 : XMM/SSE float register values corrupted by JNI_CreateVM call in JRE 8 (Windows)

Dmitry Chuyko dmitry.chuyko at oracle.com
Thu Oct 27 11:11:57 UTC 2016


Now generate_get_cpu_info() preserves full xmm7,8,31 in AVX512 case and 
lower xmm7,8,15 in non-512 case (touched ones).

Webrev: http://cr.openjdk.java.net/~vlivanov/dchuyko/8067744/webrev.01/

General testing done, and new test passes with the patch on the machine 
where the bug is reproducible.

Also thanks to Vladimir Ivanov for initial test draft and help with webrev.

-Dmitry

On 10/20/2016 08:25 PM, Vladimir Kozlov wrote:
> Hi Dmitry,
>
> New code does not restore whole 64-bit of xmm7,8,15 in AVX512 case. I 
> think you can totally separate save/restore for these cases.
>
> thanks,
> Vladimir
>
> On 10/19/16 4:49 AM, Dmitry Chuyko wrote:
>> Summary: Few xmm registers saved on stack and restored in
>> generate_get_cpu_info on Windows, a bit different on 2 detection paths.
>> New test calls native executable that loads jvm shared library and
>> checks if some double values are corrupted. The test reproduced the
>> problem on my machine with current devkit but not on Aurora.
>>
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8067744
>>
>> Webrev: http://javaweb.us.oracle.com/~dchuyko/webrevs/8067744/webrev.00/
>>
>> ...............
>>



More information about the hotspot-compiler-dev mailing list