< prev index next >
src/hotspot/share/c1/c1_GraphBuilder.cpp
Print this page
*** 604,614 ****
Value load(LoadField* load) {
if (!EliminateFieldAccess) {
return load;
}
! if (RoundFPResults && UseSSE < 2 && load->type()->is_float_kind()) {
// can't skip load since value might get rounded as a side effect
return load;
}
ciField* field = load->field();
--- 604,614 ----
Value load(LoadField* load) {
if (!EliminateFieldAccess) {
return load;
}
! if (RoundFPResults X86_ONLY(&& UseSSE < 2) && load->type()->is_float_kind()) {
// can't skip load since value might get rounded as a side effect
return load;
}
ciField* field = load->field();
*** 2263,2273 ****
}
Value GraphBuilder::round_fp(Value fp_value) {
// no rounding needed if SSE2 is used
! if (RoundFPResults && UseSSE < 2) {
// Must currently insert rounding node for doubleword values that
// are results of expressions (i.e., not loads from memory or
// constants)
if (fp_value->type()->tag() == doubleTag &&
fp_value->as_Constant() == NULL &&
--- 2263,2273 ----
}
Value GraphBuilder::round_fp(Value fp_value) {
// no rounding needed if SSE2 is used
! if (RoundFPResults X86_ONLY(&& UseSSE < 2)) {
// Must currently insert rounding node for doubleword values that
// are results of expressions (i.e., not loads from memory or
// constants)
if (fp_value->type()->tag() == doubleTag &&
fp_value->as_Constant() == NULL &&
*** 3762,3772 ****
if (callee->has_jsrs() ) INLINE_BAILOUT("jsrs not handled properly by inliner yet");
// When SSE2 is used on intel, then no special handling is needed
// for strictfp because the enum-constant is fixed at compile time,
// the check for UseSSE2 is needed here
! if (strict_fp_requires_explicit_rounding && UseSSE < 2 && method()->is_strict() != callee->is_strict()) {
INLINE_BAILOUT("caller and callee have different strict fp requirements");
}
if (is_profiling() && !callee->ensure_method_data()) {
INLINE_BAILOUT("mdo allocation failed");
--- 3762,3772 ----
if (callee->has_jsrs() ) INLINE_BAILOUT("jsrs not handled properly by inliner yet");
// When SSE2 is used on intel, then no special handling is needed
// for strictfp because the enum-constant is fixed at compile time,
// the check for UseSSE2 is needed here
! if (strict_fp_requires_explicit_rounding X86_ONLY(&& UseSSE < 2) && method()->is_strict() != callee->is_strict()) {
INLINE_BAILOUT("caller and callee have different strict fp requirements");
}
if (is_profiling() && !callee->ensure_method_data()) {
INLINE_BAILOUT("mdo allocation failed");
< prev index next >