< 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 >