494 DEBUG_ONLY(Atomic::add_ptr(len, &add_obj_size);) |
494 DEBUG_ONLY(Atomic::add_ptr(len, &add_obj_size);) |
495 |
495 |
496 if (beg_region == end_region) { |
496 if (beg_region == end_region) { |
497 // All in one region. |
497 // All in one region. |
498 _region_data[beg_region].add_live_obj(len); |
498 _region_data[beg_region].add_live_obj(len); |
499 #ifdef MIPS |
499 #if defined MIPS && !defined ZERO |
500 if (UseSyncLevel >= 2000) OrderAccess::fence(); |
500 if (UseSyncLevel >= 2000) OrderAccess::fence(); |
501 #endif |
501 #endif |
502 return; |
502 return; |
503 } |
503 } |
504 |
504 |
515 |
515 |
516 // Last region. |
516 // Last region. |
517 const size_t end_ofs = region_offset(addr + len - 1); |
517 const size_t end_ofs = region_offset(addr + len - 1); |
518 _region_data[end_region].set_partial_obj_size(end_ofs + 1); |
518 _region_data[end_region].set_partial_obj_size(end_ofs + 1); |
519 _region_data[end_region].set_partial_obj_addr(addr); |
519 _region_data[end_region].set_partial_obj_addr(addr); |
520 #ifdef MIPS |
520 #if defined MIPS && !defined ZERO |
521 if (UseSyncLevel >= 2000) OrderAccess::fence(); |
521 if (UseSyncLevel >= 2000) OrderAccess::fence(); |
522 #endif |
522 #endif |
523 } |
523 } |
524 |
524 |
525 void |
525 void |
3236 while (beg_bit < range_end) { |
3236 while (beg_bit < range_end) { |
3237 const size_t new_block = beg_bit >> Log2BitsPerBlock; |
3237 const size_t new_block = beg_bit >> Log2BitsPerBlock; |
3238 if (new_block != cur_block) { |
3238 if (new_block != cur_block) { |
3239 cur_block = new_block; |
3239 cur_block = new_block; |
3240 sd.block(cur_block)->set_offset(bitmap->bits_to_words(live_bits)); |
3240 sd.block(cur_block)->set_offset(bitmap->bits_to_words(live_bits)); |
3241 #ifdef MIPS |
3241 #if defined MIPS && !defined ZERO |
3242 if (UseSyncLevel >= 2000) OrderAccess::fence(); |
3242 if (UseSyncLevel >= 2000) OrderAccess::fence(); |
3243 #endif |
3243 #endif |
3244 } |
3244 } |
3245 |
3245 |
3246 const size_t end_bit = bitmap->find_obj_end(beg_bit, range_end); |
3246 const size_t end_bit = bitmap->find_obj_end(beg_bit, range_end); |