comparison src/share/vm/opto/parse3.cpp @ 113:ba764ed4b6f2

6420645: Create a vm that uses compressed oops for up to 32gb heapsizes Summary: Compressed oops in instances, arrays, and headers. Code contributors are coleenp, phh, never, swamyv Reviewed-by: jmasa, kamg, acorn, tbell, kvn, rasbold
author coleenp
date Sun, 13 Apr 2008 17:43:42 -0400
parents c9314fa4f757
children d1605aabd0a1
comparison
equal deleted inserted replaced
110:a49a647afe9a 113:ba764ed4b6f2
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;