diff -r e6aa4a8c1b46 -r 7ae4e26cb1e0 src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp Mon Mar 16 11:49:32 2015 -0700 +++ b/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp Thu Oct 12 21:27:07 2017 +0800 @@ -1326,6 +1326,9 @@ const int obj_size = obj->size(); if (mark_bitmap()->mark_obj(obj, obj_size)) { _summary_data.add_obj(obj, obj_size); +#ifdef MIPS64 + if (Use3A2000) OrderAccess::fence(); +#endif return true; } else { return false; @@ -1360,6 +1363,9 @@ oop obj = oopDesc::decode_heap_oop_not_null(heap_oop); if (mark_bitmap()->is_unmarked(obj) && mark_obj(obj)) { cm->push(obj); +#ifdef MIPS64 + if (Use3A2000) OrderAccess::fence(); +#endif } } }