Mercurial > hg > truffle
comparison src/share/vm/memory/generation.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 | a61af66fc99e |
children | d1605aabd0a1 12eea04c8b06 |
comparison
equal
deleted
inserted
replaced
110:a49a647afe9a | 113:ba764ed4b6f2 |
---|---|
169 } | 169 } |
170 return max_contiguous_available() >= promotion_in_bytes; | 170 return max_contiguous_available() >= promotion_in_bytes; |
171 } | 171 } |
172 | 172 |
173 // Ignores "ref" and calls allocate(). | 173 // Ignores "ref" and calls allocate(). |
174 oop Generation::promote(oop obj, size_t obj_size, oop* ref) { | 174 oop Generation::promote(oop obj, size_t obj_size) { |
175 assert(obj_size == (size_t)obj->size(), "bad obj_size passed in"); | 175 assert(obj_size == (size_t)obj->size(), "bad obj_size passed in"); |
176 | 176 |
177 #ifndef PRODUCT | 177 #ifndef PRODUCT |
178 if (Universe::heap()->promotion_should_fail()) { | 178 if (Universe::heap()->promotion_should_fail()) { |
179 return NULL; | 179 return NULL; |
184 if (result != NULL) { | 184 if (result != NULL) { |
185 Copy::aligned_disjoint_words((HeapWord*)obj, result, obj_size); | 185 Copy::aligned_disjoint_words((HeapWord*)obj, result, obj_size); |
186 return oop(result); | 186 return oop(result); |
187 } else { | 187 } else { |
188 GenCollectedHeap* gch = GenCollectedHeap::heap(); | 188 GenCollectedHeap* gch = GenCollectedHeap::heap(); |
189 return gch->handle_failed_promotion(this, obj, obj_size, ref); | 189 return gch->handle_failed_promotion(this, obj, obj_size); |
190 } | 190 } |
191 } | 191 } |
192 | 192 |
193 oop Generation::par_promote(int thread_num, | 193 oop Generation::par_promote(int thread_num, |
194 oop obj, markOop m, size_t word_sz) { | 194 oop obj, markOop m, size_t word_sz) { |