Skip to content

Commit b7ffd22

Browse files
committed
8352980: Purge infrastructure for FP-to-bits interpreter intrinsics after 32-bit x86 removal
Reviewed-by: kvn, vlivanov, coleenp
1 parent 9a87e21 commit b7ffd22

11 files changed

+0
-95
lines changed

src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1800,12 +1800,6 @@ address TemplateInterpreterGenerator::generate_currentThread() {
18001800
return entry_point;
18011801
}
18021802

1803-
// Not supported
1804-
address TemplateInterpreterGenerator::generate_Float_intBitsToFloat_entry() { return nullptr; }
1805-
address TemplateInterpreterGenerator::generate_Float_floatToRawIntBits_entry() { return nullptr; }
1806-
address TemplateInterpreterGenerator::generate_Double_longBitsToDouble_entry() { return nullptr; }
1807-
address TemplateInterpreterGenerator::generate_Double_doubleToRawLongBits_entry() { return nullptr; }
1808-
18091803
//-----------------------------------------------------------------------------
18101804
// Exceptions
18111805

src/hotspot/cpu/arm/templateInterpreterGenerator_arm.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -794,10 +794,6 @@ address TemplateInterpreterGenerator::generate_currentThread() { return nullptr;
794794
address TemplateInterpreterGenerator::generate_CRC32_update_entry() { return nullptr; }
795795
address TemplateInterpreterGenerator::generate_CRC32_updateBytes_entry(AbstractInterpreter::MethodKind kind) { return nullptr; }
796796
address TemplateInterpreterGenerator::generate_CRC32C_updateBytes_entry(AbstractInterpreter::MethodKind kind) { return nullptr; }
797-
address TemplateInterpreterGenerator::generate_Float_intBitsToFloat_entry() { return nullptr; }
798-
address TemplateInterpreterGenerator::generate_Float_floatToRawIntBits_entry() { return nullptr; }
799-
address TemplateInterpreterGenerator::generate_Double_longBitsToDouble_entry() { return nullptr; }
800-
address TemplateInterpreterGenerator::generate_Double_doubleToRawLongBits_entry() { return nullptr; }
801797
address TemplateInterpreterGenerator::generate_Float_float16ToFloat_entry() { return nullptr; }
802798
address TemplateInterpreterGenerator::generate_Float_floatToFloat16_entry() { return nullptr; }
803799

src/hotspot/cpu/ppc/templateInterpreterGenerator_ppc.cpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2009,12 +2009,6 @@ address TemplateInterpreterGenerator::generate_currentThread() {
20092009
return entry_point;
20102010
}
20112011

2012-
// Not supported
2013-
address TemplateInterpreterGenerator::generate_Float_intBitsToFloat_entry() { return nullptr; }
2014-
address TemplateInterpreterGenerator::generate_Float_floatToRawIntBits_entry() { return nullptr; }
2015-
address TemplateInterpreterGenerator::generate_Double_longBitsToDouble_entry() { return nullptr; }
2016-
address TemplateInterpreterGenerator::generate_Double_doubleToRawLongBits_entry() { return nullptr; }
2017-
20182012
// =============================================================================
20192013
// Exceptions
20202014

src/hotspot/cpu/riscv/templateInterpreterGenerator_riscv.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -938,10 +938,6 @@ address TemplateInterpreterGenerator::generate_CRC32C_updateBytes_entry(Abstract
938938
}
939939

940940
// Not supported
941-
address TemplateInterpreterGenerator::generate_Float_intBitsToFloat_entry() { return nullptr; }
942-
address TemplateInterpreterGenerator::generate_Float_floatToRawIntBits_entry() { return nullptr; }
943-
address TemplateInterpreterGenerator::generate_Double_longBitsToDouble_entry() { return nullptr; }
944-
address TemplateInterpreterGenerator::generate_Double_doubleToRawLongBits_entry() { return nullptr; }
945941
address TemplateInterpreterGenerator::generate_Float_float16ToFloat_entry() { return nullptr; }
946942
address TemplateInterpreterGenerator::generate_Float_floatToFloat16_entry() { return nullptr; }
947943

src/hotspot/cpu/s390/templateInterpreterGenerator_s390.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2020,10 +2020,6 @@ address TemplateInterpreterGenerator::generate_currentThread() {
20202020
}
20212021

20222022
// Not supported
2023-
address TemplateInterpreterGenerator::generate_Float_intBitsToFloat_entry() { return nullptr; }
2024-
address TemplateInterpreterGenerator::generate_Float_floatToRawIntBits_entry() { return nullptr; }
2025-
address TemplateInterpreterGenerator::generate_Double_longBitsToDouble_entry() { return nullptr; }
2026-
address TemplateInterpreterGenerator::generate_Double_doubleToRawLongBits_entry() { return nullptr; }
20272023
address TemplateInterpreterGenerator::generate_Float_float16ToFloat_entry() { return nullptr; }
20282024
address TemplateInterpreterGenerator::generate_Float_floatToFloat16_entry() { return nullptr; }
20292025

src/hotspot/cpu/x86/templateInterpreterGenerator_x86_64.cpp

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -497,10 +497,3 @@ address TemplateInterpreterGenerator::generate_currentThread() {
497497

498498
return entry_point;
499499
}
500-
501-
// Not supported
502-
address TemplateInterpreterGenerator::generate_Float_intBitsToFloat_entry() { return nullptr; }
503-
address TemplateInterpreterGenerator::generate_Float_floatToRawIntBits_entry() { return nullptr; }
504-
address TemplateInterpreterGenerator::generate_Double_longBitsToDouble_entry() { return nullptr; }
505-
address TemplateInterpreterGenerator::generate_Double_doubleToRawLongBits_entry() { return nullptr; }
506-

src/hotspot/share/compiler/compileBroker.cpp

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1444,30 +1444,6 @@ nmethod* CompileBroker::compile_method(const methodHandle& method, int osr_bci,
14441444
// do the compilation
14451445
if (method->is_native()) {
14461446
if (!PreferInterpreterNativeStubs || method->is_method_handle_intrinsic()) {
1447-
#if defined(IA32) && !defined(ZERO)
1448-
// The following native methods:
1449-
//
1450-
// java.lang.Float.intBitsToFloat
1451-
// java.lang.Float.floatToRawIntBits
1452-
// java.lang.Double.longBitsToDouble
1453-
// java.lang.Double.doubleToRawLongBits
1454-
//
1455-
// are called through the interpreter even if interpreter native stubs
1456-
// are not preferred (i.e., calling through adapter handlers is preferred).
1457-
// The reason is that on x86_32 signaling NaNs (sNaNs) are not preserved
1458-
// if the version of the methods from the native libraries is called.
1459-
// As the interpreter and the C2-intrinsified version of the methods preserves
1460-
// sNaNs, that would result in an inconsistent way of handling of sNaNs.
1461-
if ((UseSSE >= 1 &&
1462-
(method->intrinsic_id() == vmIntrinsics::_intBitsToFloat ||
1463-
method->intrinsic_id() == vmIntrinsics::_floatToRawIntBits)) ||
1464-
(UseSSE >= 2 &&
1465-
(method->intrinsic_id() == vmIntrinsics::_longBitsToDouble ||
1466-
method->intrinsic_id() == vmIntrinsics::_doubleToRawLongBits))) {
1467-
return nullptr;
1468-
}
1469-
#endif // IA32 && !ZERO
1470-
14711447
// To properly handle the appendix argument for out-of-line calls we are using a small trampoline that
14721448
// pops off the appendix argument and jumps to the target (see gen_special_dispatch in SharedRuntime).
14731449
//

src/hotspot/share/interpreter/abstractInterpreter.cpp

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -130,10 +130,6 @@ AbstractInterpreter::MethodKind AbstractInterpreter::method_kind(const methodHan
130130
// Use optimized stub code for CRC32C methods.
131131
case vmIntrinsics::_updateBytesCRC32C: return java_util_zip_CRC32C_updateBytes;
132132
case vmIntrinsics::_updateDirectByteBufferCRC32C: return java_util_zip_CRC32C_updateDirectByteBuffer;
133-
case vmIntrinsics::_intBitsToFloat: return java_lang_Float_intBitsToFloat;
134-
case vmIntrinsics::_floatToRawIntBits: return java_lang_Float_floatToRawIntBits;
135-
case vmIntrinsics::_longBitsToDouble: return java_lang_Double_longBitsToDouble;
136-
case vmIntrinsics::_doubleToRawLongBits: return java_lang_Double_doubleToRawLongBits;
137133
case vmIntrinsics::_float16ToFloat: return java_lang_Float_float16ToFloat;
138134
case vmIntrinsics::_floatToFloat16: return java_lang_Float_floatToFloat16;
139135
case vmIntrinsics::_currentThread: return java_lang_Thread_currentThread;
@@ -224,14 +220,6 @@ vmIntrinsics::ID AbstractInterpreter::method_intrinsic(MethodKind kind) {
224220
: return vmIntrinsics::_updateDirectByteBufferCRC32C;
225221
case java_lang_Thread_currentThread
226222
: return vmIntrinsics::_currentThread;
227-
case java_lang_Float_intBitsToFloat
228-
: return vmIntrinsics::_intBitsToFloat;
229-
case java_lang_Float_floatToRawIntBits
230-
: return vmIntrinsics::_floatToRawIntBits;
231-
case java_lang_Double_longBitsToDouble
232-
: return vmIntrinsics::_longBitsToDouble;
233-
case java_lang_Double_doubleToRawLongBits
234-
: return vmIntrinsics::_doubleToRawLongBits;
235223
case java_lang_Float_float16ToFloat
236224
: return vmIntrinsics::_float16ToFloat;
237225
case java_lang_Float_floatToFloat16
@@ -331,10 +319,6 @@ void AbstractInterpreter::print_method_kind(MethodKind kind) {
331319
case java_util_zip_CRC32C_updateDirectByteBuffer: tty->print("java_util_zip_CRC32C_updateDirectByteByffer"); break;
332320
case java_lang_ref_reference_get : tty->print("java_lang_ref_reference_get"); break;
333321
case java_lang_Thread_currentThread : tty->print("java_lang_Thread_currentThread"); break;
334-
case java_lang_Float_intBitsToFloat : tty->print("java_lang_Float_intBitsToFloat"); break;
335-
case java_lang_Float_floatToRawIntBits : tty->print("java_lang_Float_floatToRawIntBits"); break;
336-
case java_lang_Double_longBitsToDouble : tty->print("java_lang_Double_longBitsToDouble"); break;
337-
case java_lang_Double_doubleToRawLongBits : tty->print("java_lang_Double_doubleToRawLongBits"); break;
338322
case java_lang_Float_float16ToFloat : tty->print("java_lang_Float_float16ToFloat"); break;
339323
case java_lang_Float_floatToFloat16 : tty->print("java_lang_Float_floatToFloat16"); break;
340324
default:

src/hotspot/share/interpreter/abstractInterpreter.hpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,12 +88,8 @@ class AbstractInterpreter: AllStatic {
8888
java_util_zip_CRC32_updateByteBuffer, // implementation of java.util.zip.CRC32.updateByteBuffer()
8989
java_util_zip_CRC32C_updateBytes, // implementation of java.util.zip.CRC32C.updateBytes(crc, b[], off, end)
9090
java_util_zip_CRC32C_updateDirectByteBuffer, // implementation of java.util.zip.CRC32C.updateDirectByteBuffer(crc, address, off, end)
91-
java_lang_Float_intBitsToFloat, // implementation of java.lang.Float.intBitsToFloat()
92-
java_lang_Float_floatToRawIntBits, // implementation of java.lang.Float.floatToRawIntBits()
9391
java_lang_Float_float16ToFloat, // implementation of java.lang.Float.float16ToFloat()
9492
java_lang_Float_floatToFloat16, // implementation of java.lang.Float.floatToFloat16()
95-
java_lang_Double_longBitsToDouble, // implementation of java.lang.Double.longBitsToDouble()
96-
java_lang_Double_doubleToRawLongBits, // implementation of java.lang.Double.doubleToRawLongBits()
9793
java_lang_Thread_currentThread, // implementation of java.lang.Thread.currentThread()
9894
number_of_method_entries,
9995
invalid = -1

src/hotspot/share/interpreter/templateInterpreterGenerator.cpp

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -232,11 +232,6 @@ void TemplateInterpreterGenerator::generate_all() {
232232
native_method_entry(java_util_zip_CRC32_updateBytes)
233233
native_method_entry(java_util_zip_CRC32_updateByteBuffer)
234234

235-
native_method_entry(java_lang_Float_intBitsToFloat)
236-
native_method_entry(java_lang_Float_floatToRawIntBits)
237-
native_method_entry(java_lang_Double_longBitsToDouble)
238-
native_method_entry(java_lang_Double_doubleToRawLongBits)
239-
240235
#undef native_method_entry
241236

242237
// Bytecodes
@@ -487,17 +482,6 @@ address TemplateInterpreterGenerator::generate_intrinsic_entry(AbstractInterpret
487482
: entry_point = generate_Float_float16ToFloat_entry(); break;
488483
case Interpreter::java_lang_Float_floatToFloat16
489484
: entry_point = generate_Float_floatToFloat16_entry(); break;
490-
491-
// On x86_32 platforms, a special entry is generated for the following four methods.
492-
// On other platforms the native entry is used to enter these methods.
493-
case Interpreter::java_lang_Float_intBitsToFloat
494-
: entry_point = generate_Float_intBitsToFloat_entry(); break;
495-
case Interpreter::java_lang_Float_floatToRawIntBits
496-
: entry_point = generate_Float_floatToRawIntBits_entry(); break;
497-
case Interpreter::java_lang_Double_longBitsToDouble
498-
: entry_point = generate_Double_longBitsToDouble_entry(); break;
499-
case Interpreter::java_lang_Double_doubleToRawLongBits
500-
: entry_point = generate_Double_doubleToRawLongBits_entry(); break;
501485
default:
502486
fatal("unexpected intrinsic method kind: %d", kind);
503487
break;

0 commit comments

Comments
 (0)