Skip to content

Commit ef4cbec

Browse files
missa-primeSandhya Viswanathan
authored andcommitted
8358556: Assert when running with -XX:-UseLibmIntrinsic
Reviewed-by: sviswanathan, kvn
1 parent e9216ef commit ef4cbec

File tree

2 files changed

+17
-6
lines changed

2 files changed

+17
-6
lines changed

src/hotspot/cpu/x86/templateInterpreterGenerator_x86_64.cpp

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -465,13 +465,19 @@ address TemplateInterpreterGenerator::generate_math_entry(AbstractInterpreter::M
465465
__ call_VM_leaf0(CAST_FROM_FN_PTR(address, SharedRuntime::dtan));
466466
}
467467
} else if (kind == Interpreter::java_lang_math_tanh) {
468-
assert(StubRoutines::dtanh() != nullptr, "not initialized");
468+
if (StubRoutines::dtanh() != nullptr) {
469469
__ movdbl(xmm0, Address(rsp, wordSize));
470470
__ call(RuntimeAddress(CAST_FROM_FN_PTR(address, StubRoutines::dtanh())));
471+
} else {
472+
return nullptr; // Fallback to default implementation
473+
}
471474
} else if (kind == Interpreter::java_lang_math_cbrt) {
472-
assert(StubRoutines::dcbrt() != nullptr, "not initialized");
473-
__ movdbl(xmm0, Address(rsp, wordSize));
474-
__ call(RuntimeAddress(CAST_FROM_FN_PTR(address, StubRoutines::dcbrt())));
475+
if (StubRoutines::dcbrt() != nullptr) {
476+
__ movdbl(xmm0, Address(rsp, wordSize));
477+
__ call(RuntimeAddress(CAST_FROM_FN_PTR(address, StubRoutines::dcbrt())));
478+
} else {
479+
return nullptr; // Fallback to default implementation
480+
}
475481
} else if (kind == Interpreter::java_lang_math_abs) {
476482
assert(StubRoutines::x86::double_sign_mask() != nullptr, "not initialized");
477483
__ movdbl(xmm0, Address(rsp, wordSize));

src/hotspot/share/classfile/vmIntrinsics.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -289,8 +289,6 @@ bool vmIntrinsics::disabled_by_jvm_flags(vmIntrinsics::ID id) {
289289
case vmIntrinsics::_dsin:
290290
case vmIntrinsics::_dcos:
291291
case vmIntrinsics::_dtan:
292-
case vmIntrinsics::_dtanh:
293-
case vmIntrinsics::_dcbrt:
294292
case vmIntrinsics::_dlog:
295293
case vmIntrinsics::_dexp:
296294
case vmIntrinsics::_dpow:
@@ -316,6 +314,13 @@ bool vmIntrinsics::disabled_by_jvm_flags(vmIntrinsics::ID id) {
316314
case vmIntrinsics::_fmaF:
317315
if (!InlineMathNatives || !UseFMA) return true;
318316
break;
317+
case vmIntrinsics::_dtanh:
318+
case vmIntrinsics::_dcbrt:
319+
if (!InlineMathNatives || !InlineIntrinsics) return true;
320+
#if defined(AMD64) && (defined(COMPILER1) || defined(COMPILER2))
321+
if (!UseLibmIntrinsic) return true;
322+
#endif
323+
break;
319324
case vmIntrinsics::_floatToFloat16:
320325
case vmIntrinsics::_float16ToFloat:
321326
if (!InlineIntrinsics) return true;

0 commit comments

Comments
 (0)