[15] RFR (L): 7175279: Don't use x87 FPU on x86-64

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Tue Dec 17 15:02:38 UTC 2019


Hi Jesper,

> This is a fairly large (wide spread) change. Is there any risk for conflicts with remaining work in JDK 14?
> In the interest of keeping forwardports as conflict free as possible, would it make sense to hold this change until the number of changes in 14 has dropped?

I consider the risk of merge conflicts as low, since the bulk of changes 
touch C1 (and it isn't usually changed much).

But I'm fine with waiting until the rate of fixes in JDK 14 drops (after 
RDP2?).

Best regards,
Vladimir Ivanov

>> On 17 Dec 2019, at 13:50, Vladimir Ivanov <vladimir.x.ivanov at oracle.com> wrote:
>>
>> http://cr.openjdk.java.net/~vlivanov/7175279/webrev.00/
>> https://bugs.openjdk.java.net/browse/JDK-7175279
>>
>> There was a major rewrite of math intrinsics which in 9 time frame which almost completely eliminated x87 code in x86-64 code base.
>>
>> Proposed patch removes the rest and makes x86-64 code x87-free.
>>
>> The main motivation for the patch is to completely eliminate non-strictfp behaving code in order to prepare the JVM for JEP 306 [1] and related enhancements [2].
>>
>> Most of the changes are in C1, but there is one case in template interpreter (java_lang_math_abs) which now uses StubRoutines::x86::double_sign_mask(). It forces its initialization to be moved to StubRoutines::initialize1().
>>
>> x87 instructions are made available only on x86-32.
>>
>> C1 changes involve removing FPU support on x86-64 and effectively make x86-specific support in linear scan allocator [2] x86-32-only.
>>
>> Testing: tier1-6, build on x86-23, linux-aarch64, linux-arm32.
>>
>> Best regards,
>> Vladimir Ivanov
>>
>> [1] https://bugs.openjdk.java.net/browse/JDK-8175916
>>
>> [2] https://bugs.openjdk.java.net/browse/JDK-8136414
>>
>> [3] http://hg.openjdk.java.net/jdk/jdk/file/ff7cd49f2aef/src/hotspot/cpu/x86/c1_LinearScan_x86.cpp
> 


More information about the hotspot-runtime-dev mailing list