< prev index next >
src/share/vm/code/compiledIC.cpp
Print this page
*** 455,465 ****
// static_bound: The call can be static bound. If it isn't also optimized, the property
// wasn't provable at time of compilation. An optimized call will have any necessary
// null check, while a static_bound won't. A static_bound (but not optimized) must
// therefore use the unverified entry point.
void CompiledIC::compute_monomorphic_entry(const methodHandle& method,
! KlassHandle receiver_klass,
bool is_optimized,
bool static_bound,
bool caller_is_nmethod,
CompiledICInfo& info,
TRAPS) {
--- 455,465 ----
// static_bound: The call can be static bound. If it isn't also optimized, the property
// wasn't provable at time of compilation. An optimized call will have any necessary
// null check, while a static_bound won't. A static_bound (but not optimized) must
// therefore use the unverified entry point.
void CompiledIC::compute_monomorphic_entry(const methodHandle& method,
! Klass* receiver_klass,
bool is_optimized,
bool static_bound,
bool caller_is_nmethod,
CompiledICInfo& info,
TRAPS) {
*** 492,502 ****
}
}
bool far_c2a = entry != NULL && caller_is_nmethod && method_code->is_far_code();
if (entry != NULL && !far_c2a) {
// Call to near compiled code (nmethod or aot).
! info.set_compiled_entry(entry, (static_bound || is_optimized) ? NULL : receiver_klass(), is_optimized);
} else {
if (is_optimized) {
if (far_c2a) {
// Call to aot code from nmethod.
info.set_aot_entry(entry, method());
--- 492,502 ----
}
}
bool far_c2a = entry != NULL && caller_is_nmethod && method_code->is_far_code();
if (entry != NULL && !far_c2a) {
// Call to near compiled code (nmethod or aot).
! info.set_compiled_entry(entry, (static_bound || is_optimized) ? NULL : receiver_klass, is_optimized);
} else {
if (is_optimized) {
if (far_c2a) {
// Call to aot code from nmethod.
info.set_aot_entry(entry, method());
*** 505,515 ****
info.set_interpreter_entry(method()->get_c2i_entry(), method());
}
} else {
// Use icholder entry
assert(method_code == NULL || method_code->is_compiled(), "must be compiled");
! CompiledICHolder* holder = new CompiledICHolder(method(), receiver_klass());
info.set_icholder_entry(method()->get_c2i_unverified_entry(), holder);
}
}
assert(info.is_optimized() == is_optimized, "must agree");
}
--- 505,515 ----
info.set_interpreter_entry(method()->get_c2i_entry(), method());
}
} else {
// Use icholder entry
assert(method_code == NULL || method_code->is_compiled(), "must be compiled");
! CompiledICHolder* holder = new CompiledICHolder(method(), receiver_klass);
info.set_icholder_entry(method()->get_c2i_unverified_entry(), holder);
}
}
assert(info.is_optimized() == is_optimized, "must agree");
}
< prev index next >