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