< prev index next >
src/share/vm/opto/parse2.cpp
Print this page
*** 60,70 ****
Node* ary = pop(); // in case of exception
//dec_sp(2); // Pop array and index
const TypeAryPtr* arytype = _gvn.type(ary)->is_aryptr();
if (arytype->klass()->is_value_array_klass()) {
ciValueArrayKlass* vak = arytype->klass()->as_value_array_klass();
! Node* vt = ValueTypeNode::make(gvn(), vak->element_klass()->as_value_klass(), map()->memory(), ary, adr);
push(vt);
return;
}
const TypeAryPtr* adr_type = TypeAryPtr::get_array_body_type(elem_type);
Node* ld = make_load(control(), adr, elem, elem_type, adr_type, MemNode::unordered);
--- 60,70 ----
Node* ary = pop(); // in case of exception
//dec_sp(2); // Pop array and index
const TypeAryPtr* arytype = _gvn.type(ary)->is_aryptr();
if (arytype->klass()->is_value_array_klass()) {
ciValueArrayKlass* vak = arytype->klass()->as_value_array_klass();
! Node* vt = ValueTypeNode::make(this, vak->element_klass()->as_value_klass(), ary, adr);
push(vt);
return;
}
const TypeAryPtr* adr_type = TypeAryPtr::get_array_body_type(elem_type);
Node* ld = make_load(control(), adr, elem, elem_type, adr_type, MemNode::unordered);
*** 1759,1769 ****
c->as_ValueType()->store_flattened(this, a, d);
break;
}
const TypeAryPtr* adr_type = TypeAryPtr::OOPS;
! Node* oop = c->as_ValueType()->allocate(this);
Node* store = store_oop_to_array(control(), a, d, adr_type, oop, elemtype->make_oopptr(), T_OBJECT,
StoreNode::release_if_reference(T_OBJECT));
break;
}
case Bytecodes::_aastore: {
--- 1759,1769 ----
c->as_ValueType()->store_flattened(this, a, d);
break;
}
const TypeAryPtr* adr_type = TypeAryPtr::OOPS;
! Node* oop = c->as_ValueType()->allocate(this)->get_oop();
Node* store = store_oop_to_array(control(), a, d, adr_type, oop, elemtype->make_oopptr(), T_OBJECT,
StoreNode::release_if_reference(T_OBJECT));
break;
}
case Bytecodes::_aastore: {
< prev index next >