< prev index next > src/hotspot/share/interpreter/abstractInterpreter.cpp
Print this page
if (m->is_continuation_native_intrinsic()) {
// This entry will never be called. The real entry gets generated later, like for MH intrinsics.
return abstract;
}
assert(!m->is_method_handle_intrinsic(), "overlapping bits here, watch out");
- return m->is_synchronized() ? native_synchronized : native;
+ if (m->is_synchronized()) {
+ return m->has_upcall_on_method_entry() ? native_synchronized_upcalls : native_synchronized;
+ }
+ return m->has_upcall_on_method_entry() ? native_upcalls : native;
}
// Synchronized?
if (m->is_synchronized()) {
- return zerolocals_synchronized;
+ return m->has_upcall_on_method_entry() ? zerolocals_synchronized_upcalls : zerolocals_synchronized;
}
// Empty method?
if (m->is_empty_method()) {
- return empty;
+ return m->has_upcall_on_method_entry() ? empty_upcalls : empty;
}
// Getter method?
if (m->is_getter()) {
return getter;
if (m->is_setter()) {
return setter;
}
// Note: for now: zero locals for all non-empty methods
- return zerolocals;
+ return m->has_upcall_on_method_entry() ? zerolocals_upcalls : zerolocals;
}
vmIntrinsics::ID AbstractInterpreter::method_intrinsic(MethodKind kind) {
switch (kind) {
case java_lang_math_sin : return vmIntrinsics::_dsin;
< prev index next >