< prev index next >
src/hotspot/share/opto/doCall.cpp
Print this page
*** 538,548 ****
ciKlass* speculative_receiver_type = NULL;
if (is_virtual_or_interface) {
Node* receiver_node = stack(sp() - nargs);
const TypeOopPtr* receiver_type = NULL;
if (receiver_node->is_ValueType()) {
! receiver_type = TypeInstPtr::make(TypePtr::NotNull, _gvn.type(receiver_node)->is_valuetype()->value_klass());
} else {
receiver_type = _gvn.type(receiver_node)->isa_oopptr();
}
// call_does_dispatch and vtable_index are out-parameters. They might be changed.
// For arrays, klass below is Object. When vtable calls are used,
--- 538,548 ----
ciKlass* speculative_receiver_type = NULL;
if (is_virtual_or_interface) {
Node* receiver_node = stack(sp() - nargs);
const TypeOopPtr* receiver_type = NULL;
if (receiver_node->is_ValueType()) {
! receiver_type = TypeInstPtr::make(TypePtr::NotNull, _gvn.type(receiver_node)->value_klass());
} else {
receiver_type = _gvn.type(receiver_node)->isa_oopptr();
}
// call_does_dispatch and vtable_index are out-parameters. They might be changed.
// For arrays, klass below is Object. When vtable calls are used,
< prev index next >