diff -r c7fdbe297c7c -r 9d7e35a93fad src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp --- a/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp Thu Sep 29 09:54:38 2016 +0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp Sat Oct 08 09:31:28 2016 -0400 @@ -496,6 +496,9 @@ if (beg_region == end_region) { // All in one region. _region_data[beg_region].add_live_obj(len); +#ifdef MIPS64 + if (Use3A2000) OrderAccess::fence(); +#endif return; } @@ -514,6 +517,9 @@ const size_t end_ofs = region_offset(addr + len - 1); _region_data[end_region].set_partial_obj_size(end_ofs + 1); _region_data[end_region].set_partial_obj_addr(addr); +#ifdef MIPS64 + if (Use3A2000) OrderAccess::fence(); +#endif } void