src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp

changeset 34
76df293e57aa
parent 25
873fd82b133d
child 106
ebe1a38c3e4f
equal deleted inserted replaced
33:52672a450193 34:76df293e57aa
3231 while (beg_bit < range_end) { 3231 while (beg_bit < range_end) {
3232 const size_t new_block = beg_bit >> Log2BitsPerBlock; 3232 const size_t new_block = beg_bit >> Log2BitsPerBlock;
3233 if (new_block != cur_block) { 3233 if (new_block != cur_block) {
3234 cur_block = new_block; 3234 cur_block = new_block;
3235 sd.block(cur_block)->set_offset(bitmap->bits_to_words(live_bits)); 3235 sd.block(cur_block)->set_offset(bitmap->bits_to_words(live_bits));
3236
3237 #ifdef MIPS64
3238 /* 2016/5/4 Jin: On 3A2000-B, when multiple threads write to
3239 the same memory location without explict synchronization,
3240 sync is required for access correctness. */
3241 OrderAccess::fence();
3242 #endif
3236 } 3243 }
3237 3244
3238 const size_t end_bit = bitmap->find_obj_end(beg_bit, range_end); 3245 const size_t end_bit = bitmap->find_obj_end(beg_bit, range_end);
3239 if (end_bit < range_end - 1) { 3246 if (end_bit < range_end - 1) {
3240 live_bits += end_bit - beg_bit + 1; 3247 live_bits += end_bit - beg_bit + 1;

mercurial