< prev index next >
src/hotspot/share/code/compiledIC.cpp
Print this page
*** 534,545 ****
// null check on a call when the target isn't loaded).
// This causes problems when verifying the IC because
// it looks vanilla but is optimized. Code in is_call_to_interpreted
// is aware of this and weakens its asserts.
if (is_optimized) {
! entry = method_code->verified_entry_point();
} else {
entry = method_code->entry_point();
}
}
bool far_c2a = entry != NULL && caller_is_nmethod && method_code->is_far_code();
if (entry != NULL && !far_c2a) {
--- 534,546 ----
// null check on a call when the target isn't loaded).
// This causes problems when verifying the IC because
// it looks vanilla but is optimized. Code in is_call_to_interpreted
// is aware of this and weakens its asserts.
if (is_optimized) {
! entry = caller_is_c1 ? method_code->verified_value_entry_point() : method_code->verified_entry_point();
} else {
+ //assert(!(caller_is_c1 && method->has_scalarized_args()), "FIXME - what to do with c1 caller??");
entry = method_code->entry_point();
}
}
bool far_c2a = entry != NULL && caller_is_nmethod && method_code->is_far_code();
if (entry != NULL && !far_c2a) {
*** 557,566 ****
--- 558,568 ----
}
} else {
// Use icholder entry
assert(method_code == NULL || method_code->is_compiled(), "must be compiled");
CompiledICHolder* holder = new CompiledICHolder(method(), receiver_klass);
+ //assert(!(caller_is_c1 && method->has_scalarized_args()), "FIXME - what to do with c1 caller??");
info.set_icholder_entry(method()->get_c2i_unverified_entry(), holder);
}
}
assert(info.is_optimized() == is_optimized, "must agree");
}
*** 668,689 ****
info._to_aot = true;
} else {
info._to_aot = false;
}
info._to_interpreter = false;
! if (caller_nm->is_c1()) {
info._entry = m_code->verified_value_entry_point();
} else {
info._entry = m_code->verified_entry_point();
}
} else {
// Callee is interpreted code. In any case entering the interpreter
// puts a converter-frame on the stack to save arguments.
assert(!m->is_method_handle_intrinsic(), "Compiled code should never call interpreter MH intrinsics");
info._to_interpreter = true;
! if (caller_nm->is_c1()) {
// C1 -> interp: values passed as oops
info._entry = m()->get_c2i_value_entry();
} else {
// C2 -> interp: values passed fields
info._entry = m()->get_c2i_entry();
--- 670,691 ----
info._to_aot = true;
} else {
info._to_aot = false;
}
info._to_interpreter = false;
! if (caller_nm->is_compiled_by_c1()) {
info._entry = m_code->verified_value_entry_point();
} else {
info._entry = m_code->verified_entry_point();
}
} else {
// Callee is interpreted code. In any case entering the interpreter
// puts a converter-frame on the stack to save arguments.
assert(!m->is_method_handle_intrinsic(), "Compiled code should never call interpreter MH intrinsics");
info._to_interpreter = true;
! if (caller_nm->is_compiled_by_c1()) {
// C1 -> interp: values passed as oops
info._entry = m()->get_c2i_value_entry();
} else {
// C2 -> interp: values passed fields
info._entry = m()->get_c2i_entry();
< prev index next >