Mercurial > hg > graal-jvmci-8
comparison src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.hpp @ 342:37f87013dfd8
6711316: Open source the Garbage-First garbage collector
Summary: First mercurial integration of the code for the Garbage-First garbage collector.
Reviewed-by: apetrusenko, iveresov, jmasa, sgoldman, tonyp, ysr
author | ysr |
---|---|
date | Thu, 05 Jun 2008 15:57:56 -0700 |
parents | a61af66fc99e |
children | 353ba4575581 |
comparison
equal
deleted
inserted
replaced
189:0b27f3512f9e | 342:37f87013dfd8 |
---|---|
190 size_t _cas_by_another; | 190 size_t _cas_by_another; |
191 #endif // #ifndef PRODUCT | 191 #endif // #ifndef PRODUCT |
192 }; | 192 }; |
193 | 193 |
194 inline ParMarkBitMap::ParMarkBitMap(): | 194 inline ParMarkBitMap::ParMarkBitMap(): |
195 _beg_bits(NULL, 0), | 195 _beg_bits(), |
196 _end_bits(NULL, 0) | 196 _end_bits() |
197 { | 197 { |
198 _region_start = 0; | 198 _region_start = 0; |
199 _virtual_space = 0; | 199 _virtual_space = 0; |
200 } | 200 } |
201 | 201 |
202 inline ParMarkBitMap::ParMarkBitMap(MemRegion covered_region): | 202 inline ParMarkBitMap::ParMarkBitMap(MemRegion covered_region): |
203 _beg_bits(NULL, 0), | 203 _beg_bits(), |
204 _end_bits(NULL, 0) | 204 _end_bits() |
205 { | 205 { |
206 initialize(covered_region); | 206 initialize(covered_region); |
207 } | 207 } |
208 | 208 |
209 inline void ParMarkBitMap::clear_range(idx_t beg, idx_t end) | 209 inline void ParMarkBitMap::clear_range(idx_t beg, idx_t end) |
323 return pointer_delta(end_addr, beg_addr) + obj_granularity(); | 323 return pointer_delta(end_addr, beg_addr) + obj_granularity(); |
324 } | 324 } |
325 | 325 |
326 inline size_t ParMarkBitMap::obj_size(idx_t beg_bit) const | 326 inline size_t ParMarkBitMap::obj_size(idx_t beg_bit) const |
327 { | 327 { |
328 const idx_t end_bit = _end_bits.find_next_one_bit(beg_bit, size()); | 328 const idx_t end_bit = _end_bits.get_next_one_offset_inline(beg_bit, size()); |
329 assert(is_marked(beg_bit), "obj not marked"); | 329 assert(is_marked(beg_bit), "obj not marked"); |
330 assert(end_bit < size(), "end bit missing"); | 330 assert(end_bit < size(), "end bit missing"); |
331 return obj_size(beg_bit, end_bit); | 331 return obj_size(beg_bit, end_bit); |
332 } | 332 } |
333 | 333 |
382 } | 382 } |
383 | 383 |
384 inline ParMarkBitMap::idx_t | 384 inline ParMarkBitMap::idx_t |
385 ParMarkBitMap::find_obj_beg(idx_t beg, idx_t end) const | 385 ParMarkBitMap::find_obj_beg(idx_t beg, idx_t end) const |
386 { | 386 { |
387 return _beg_bits.find_next_one_bit(beg, end); | 387 return _beg_bits.get_next_one_offset_inline_aligned_right(beg, end); |
388 } | 388 } |
389 | 389 |
390 inline ParMarkBitMap::idx_t | 390 inline ParMarkBitMap::idx_t |
391 ParMarkBitMap::find_obj_end(idx_t beg, idx_t end) const | 391 ParMarkBitMap::find_obj_end(idx_t beg, idx_t end) const |
392 { | 392 { |
393 return _end_bits.find_next_one_bit(beg, end); | 393 return _end_bits.get_next_one_offset_inline_aligned_right(beg, end); |
394 } | 394 } |
395 | 395 |
396 inline HeapWord* | 396 inline HeapWord* |
397 ParMarkBitMap::find_obj_beg(HeapWord* beg, HeapWord* end) const | 397 ParMarkBitMap::find_obj_beg(HeapWord* beg, HeapWord* end) const |
398 { | 398 { |