< prev index next >
src/hotspot/share/opto/graphKit.cpp
Print this page
*** 2303,2329 ****
}
// rounding for strict float precision conformance
Node* GraphKit::precision_rounding(Node* n) {
return UseStrictFP && _method->flags().is_strict()
! && UseSSE == 0 && Matcher::strict_fp_requires_explicit_rounding
? _gvn.transform( new RoundFloatNode(0, n) )
: n;
}
// rounding for strict double precision conformance
Node* GraphKit::dprecision_rounding(Node *n) {
return UseStrictFP && _method->flags().is_strict()
! && UseSSE <= 1 && Matcher::strict_fp_requires_explicit_rounding
? _gvn.transform( new RoundDoubleNode(0, n) )
: n;
}
// rounding for non-strict double stores
Node* GraphKit::dstore_rounding(Node* n) {
return Matcher::strict_fp_requires_explicit_rounding
! && UseSSE <= 1
? _gvn.transform( new RoundDoubleNode(0, n) )
: n;
}
//=============================================================================
--- 2303,2329 ----
}
// rounding for strict float precision conformance
Node* GraphKit::precision_rounding(Node* n) {
return UseStrictFP && _method->flags().is_strict()
! X86_ONLY(&& UseSSE == 0) && Matcher::strict_fp_requires_explicit_rounding
? _gvn.transform( new RoundFloatNode(0, n) )
: n;
}
// rounding for strict double precision conformance
Node* GraphKit::dprecision_rounding(Node *n) {
return UseStrictFP && _method->flags().is_strict()
! X86_ONLY(&& UseSSE <= 1) && Matcher::strict_fp_requires_explicit_rounding
? _gvn.transform( new RoundDoubleNode(0, n) )
: n;
}
// rounding for non-strict double stores
Node* GraphKit::dstore_rounding(Node* n) {
return Matcher::strict_fp_requires_explicit_rounding
! X86_ONLY(&& UseSSE <= 1)
? _gvn.transform( new RoundDoubleNode(0, n) )
: n;
}
//=============================================================================
< prev index next >