3237 the same memory location without explict synchronization, |
3237 the same memory location without explict synchronization, |
3238 sync is required for access correctness. */ |
3238 sync is required for access correctness. */ |
3239 OrderAccess::fence(); |
3239 OrderAccess::fence(); |
3240 #endif |
3240 #endif |
3241 sd.block(cur_block)->set_offset(bitmap->bits_to_words(live_bits)); |
3241 sd.block(cur_block)->set_offset(bitmap->bits_to_words(live_bits)); |
|
3242 #ifdef MIPS64 |
|
3243 OrderAccess::fence(); |
|
3244 #endif |
3242 } |
3245 } |
3243 |
3246 |
3244 const size_t end_bit = bitmap->find_obj_end(beg_bit, range_end); |
3247 const size_t end_bit = bitmap->find_obj_end(beg_bit, range_end); |
3245 if (end_bit < range_end - 1) { |
3248 if (end_bit < range_end - 1) { |
3246 live_bits += end_bit - beg_bit + 1; |
3249 live_bits += end_bit - beg_bit + 1; |