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

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Tue Dec 17 12:50:13 UTC 2019


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