Mercurial > hg > graal-compiler
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; |