< prev index next >
src/cpu/ppc/vm/abstractInterpreter_ppc.cpp
Print this page
rev 12409 : 8171244: PPC64: Make interpreter's math entries consistent with C1 and C2 and support FMA
Reviewed-by: kvn, goetz
*** 49,71 ****
}
assert(0 <= i && i < AbstractInterpreter::number_of_result_handlers, "index out of bounds");
return i;
}
- // Support abs and sqrt like in compiler.
- // For others we can use a normal (native) entry.
- bool AbstractInterpreter::math_entry_available(AbstractInterpreter::MethodKind kind) {
- if (!InlineIntrinsics) return false;
-
- return ((kind==Interpreter::java_lang_math_sqrt && VM_Version::has_fsqrt()) ||
- (kind==Interpreter::java_lang_math_abs));
- }
-
// These should never be compiled since the interpreter will prefer
// the compiled version to the intrinsic version.
bool AbstractInterpreter::can_be_compiled(methodHandle m) {
! return !math_entry_available(method_kind(m));
}
// How much stack a method activation needs in stack slots.
// We must calc this exactly like in generate_fixed_frame.
// Note: This returns the conservative size assuming maximum alignment.
--- 49,77 ----
}
assert(0 <= i && i < AbstractInterpreter::number_of_result_handlers, "index out of bounds");
return i;
}
// These should never be compiled since the interpreter will prefer
// the compiled version to the intrinsic version.
bool AbstractInterpreter::can_be_compiled(methodHandle m) {
! switch (method_kind(m)) {
! case Interpreter::java_lang_math_sin : // fall thru
! case Interpreter::java_lang_math_cos : // fall thru
! case Interpreter::java_lang_math_tan : // fall thru
! case Interpreter::java_lang_math_abs : // fall thru
! case Interpreter::java_lang_math_log : // fall thru
! case Interpreter::java_lang_math_log10 : // fall thru
! case Interpreter::java_lang_math_sqrt : // fall thru
! case Interpreter::java_lang_math_pow : // fall thru
! case Interpreter::java_lang_math_exp : // fall thru
! case Interpreter::java_lang_math_fmaD : // fall thru
! case Interpreter::java_lang_math_fmaF :
! return false;
! default:
! return true;
! }
}
// How much stack a method activation needs in stack slots.
// We must calc this exactly like in generate_fixed_frame.
// Note: This returns the conservative size assuming maximum alignment.
< prev index next >