hotspot/src/share/vm/opto/parse3.cpp
changeset 360 21d113ecbf6a
parent 353 346ac690301f
child 670 ddf3e9583f2f
equal deleted inserted replaced
357:f4edb0d9f109 360:21d113ecbf6a
   363     const TypePtr* adr_type = TypeAryPtr::OOPS;
   363     const TypePtr* adr_type = TypeAryPtr::OOPS;
   364     const Type*    elemtype = _gvn.type(array)->is_aryptr()->elem();
   364     const Type*    elemtype = _gvn.type(array)->is_aryptr()->elem();
   365     const intptr_t header   = arrayOopDesc::base_offset_in_bytes(T_OBJECT);
   365     const intptr_t header   = arrayOopDesc::base_offset_in_bytes(T_OBJECT);
   366     for (jint i = 0; i < length_con; i++) {
   366     for (jint i = 0; i < length_con; i++) {
   367       Node*    elem   = expand_multianewarray(array_klass_1, &lengths[1], ndimensions-1);
   367       Node*    elem   = expand_multianewarray(array_klass_1, &lengths[1], ndimensions-1);
   368       intptr_t offset = header + ((intptr_t)i << LogBytesPerWord);
   368       intptr_t offset = header + ((intptr_t)i << LogBytesPerHeapOop);
   369       Node*    eaddr  = basic_plus_adr(array, offset);
   369       Node*    eaddr  = basic_plus_adr(array, offset);
   370       store_oop_to_array(control(), array, eaddr, adr_type, elem, elemtype, T_OBJECT);
   370       store_oop_to_array(control(), array, eaddr, adr_type, elem, elemtype, T_OBJECT);
   371     }
   371     }
   372   }
   372   }
   373   return array;
   373   return array;