< prev index next >
src/hotspot/share/opto/parse1.cpp
Print this page
*** 611,631 ****
for (uint i = 0; i < (uint)arg_size_sig; i++) {
Node* parm = map()->in(i);
const Type* t = _gvn.type(parm);
if (t->is_valuetypeptr()) {
// Create ValueTypeNode from the oop and replace the parameter
! Node* null_ctl = top();
! Node* not_null_obj = null_check_common(parm, T_VALUETYPE, false, &null_ctl, false);
! if (null_ctl != top()) {
! // TODO For now, we just deoptimize if value type is NULL
! PreserveJVMState pjvms(this);
! set_control(null_ctl);
! replace_in_map(parm, null());
! uncommon_trap(Deoptimization::Reason_null_check, Deoptimization::Action_none);
! }
! // Value type oop may point to the TLVB
! Node* vt = ValueTypeNode::make_from_oop(this, not_null_obj, t->value_klass(), /* null_check */ false, /* buffer_check */ true);
map()->replace_edge(parm, vt);
}
}
entry_map = map(); // capture any changes performed by method setup code
--- 611,621 ----
for (uint i = 0; i < (uint)arg_size_sig; i++) {
Node* parm = map()->in(i);
const Type* t = _gvn.type(parm);
if (t->is_valuetypeptr()) {
// Create ValueTypeNode from the oop and replace the parameter
! Node* vt = ValueTypeNode::make_from_oop(this, parm, t->value_klass(), /* null_check */ false, /* buffer_check */ true);
map()->replace_edge(parm, vt);
}
}
entry_map = map(); // capture any changes performed by method setup code
< prev index next >