< prev index next >
src/hotspot/share/opto/parse2.cpp
Print this page
*** 228,238 ****
}
cast_val->as_ValueType()->store_flattened(this, ary, adr);
return;
} else if (elemptr->is_valuetypeptr() && !elemptr->maybe_null()) {
// Store to non-flattened but flattenable value type array (elements can never be null)
! if (!cast_val->is_ValueType()) {
inc_sp(3);
cast_val = null_check(cast_val);
if (stopped()) return;
dec_sp(3);
}
--- 228,238 ----
}
cast_val->as_ValueType()->store_flattened(this, ary, adr);
return;
} else if (elemptr->is_valuetypeptr() && !elemptr->maybe_null()) {
// Store to non-flattened but flattenable value type array (elements can never be null)
! if (!cast_val->is_ValueType() && val_t->maybe_null()) {
inc_sp(3);
cast_val = null_check(cast_val);
if (stopped()) return;
dec_sp(3);
}
*** 263,273 ****
ideal.sync_kit(this);
}
ideal.else_();
{
// flattened
! if (!cast_val->is_ValueType() && TypePtr::NULL_PTR->higher_equal(val_t)) {
// Add null check
sync_kit(ideal);
Node* null_ctl = top();
cast_val = null_check_oop(cast_val, &null_ctl);
if (null_ctl != top()) {
--- 263,273 ----
ideal.sync_kit(this);
}
ideal.else_();
{
// flattened
! if (!cast_val->is_ValueType() && val_t->maybe_null()) {
// Add null check
sync_kit(ideal);
Node* null_ctl = top();
cast_val = null_check_oop(cast_val, &null_ctl);
if (null_ctl != top()) {
< prev index next >