1327 |
1327 |
1328 inline bool PSParallelCompact::mark_obj(oop obj) { |
1328 inline bool PSParallelCompact::mark_obj(oop obj) { |
1329 const int obj_size = obj->size(); |
1329 const int obj_size = obj->size(); |
1330 if (mark_bitmap()->mark_obj(obj, obj_size)) { |
1330 if (mark_bitmap()->mark_obj(obj, obj_size)) { |
1331 _summary_data.add_obj(obj, obj_size); |
1331 _summary_data.add_obj(obj, obj_size); |
1332 #ifdef MIPS |
1332 #if defined MIPS && !defined ZERO |
1333 if (UseSyncLevel >= 2000) OrderAccess::fence(); |
1333 if (UseSyncLevel >= 2000) OrderAccess::fence(); |
1334 #endif |
1334 #endif |
1335 return true; |
1335 return true; |
1336 } else { |
1336 } else { |
1337 return false; |
1337 return false; |
1364 T heap_oop = oopDesc::load_heap_oop(p); |
1364 T heap_oop = oopDesc::load_heap_oop(p); |
1365 if (!oopDesc::is_null(heap_oop)) { |
1365 if (!oopDesc::is_null(heap_oop)) { |
1366 oop obj = oopDesc::decode_heap_oop_not_null(heap_oop); |
1366 oop obj = oopDesc::decode_heap_oop_not_null(heap_oop); |
1367 if (mark_bitmap()->is_unmarked(obj) && mark_obj(obj)) { |
1367 if (mark_bitmap()->is_unmarked(obj) && mark_obj(obj)) { |
1368 cm->push(obj); |
1368 cm->push(obj); |
1369 #ifdef MIPS |
1369 #if defined MIPS && !defined ZERO |
1370 if (UseSyncLevel >= 2000) OrderAccess::fence(); |
1370 if (UseSyncLevel >= 2000) OrderAccess::fence(); |
1371 #endif |
1371 #endif |
1372 } |
1372 } |
1373 } |
1373 } |
1374 } |
1374 } |