< prev index next >
src/hotspot/share/opto/library_call.cpp
Print this page
@@ -549,11 +549,13 @@
case vmIntrinsics::_datan2:
case vmIntrinsics::_dsqrt:
case vmIntrinsics::_dexp:
case vmIntrinsics::_dlog:
case vmIntrinsics::_dlog10:
- case vmIntrinsics::_dpow: return inline_math_native(intrinsic_id());
+ case vmIntrinsics::_dpow:
+ case vmIntrinsics::_dsignum:
+ case vmIntrinsics::_fsignum: return inline_math_native(intrinsic_id());
case vmIntrinsics::_min:
case vmIntrinsics::_max: return inline_min_max(intrinsic_id());
case vmIntrinsics::_notify:
@@ -1813,10 +1815,11 @@
case vmIntrinsics::_dabs: n = new AbsDNode( arg); break;
case vmIntrinsics::_dsqrt: n = new SqrtDNode(C, control(), arg); break;
case vmIntrinsics::_ceil: n = RoundDoubleModeNode::make(_gvn, arg, RoundDoubleModeNode::rmode_ceil); break;
case vmIntrinsics::_floor: n = RoundDoubleModeNode::make(_gvn, arg, RoundDoubleModeNode::rmode_floor); break;
case vmIntrinsics::_rint: n = RoundDoubleModeNode::make(_gvn, arg, RoundDoubleModeNode::rmode_rint); break;
+ case vmIntrinsics::_dsignum: n = new SignumDNode(arg); break;
default: fatal_unexpected_iid(id); break;
}
set_result(_gvn.transform(n));
return true;
}
@@ -1830,10 +1833,11 @@
Node* n = NULL;
switch (id) {
case vmIntrinsics::_fabs: n = new AbsFNode( arg); break;
case vmIntrinsics::_iabs: n = new AbsINode( arg); break;
case vmIntrinsics::_labs: n = new AbsLNode( arg); break;
+ case vmIntrinsics::_fsignum: n = new SignumFNode(arg); break;
default: fatal_unexpected_iid(id); break;
}
set_result(_gvn.transform(n));
return true;
}
@@ -1914,10 +1918,13 @@
runtime_math(OptoRuntime::Math_DD_D_Type(), StubRoutines::dpow(), "dpow") :
runtime_math(OptoRuntime::Math_DD_D_Type(), FN_PTR(SharedRuntime::dpow), "POW");
}
#undef FN_PTR
+ case vmIntrinsics::_dsignum: return inline_double_math(id);
+ case vmIntrinsics::_fsignum: return inline_math(id);
+
// These intrinsics are not yet correctly implemented
case vmIntrinsics::_datan2:
return false;
default:
< prev index next >