diff -r c7fdbe297c7c -r 9d7e35a93fad src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.inline.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.inline.hpp Thu Sep 29 09:54:38 2016 +0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.inline.hpp Sat Oct 08 09:31:28 2016 -0400 @@ -33,6 +33,9 @@ ObjArrayTask task(obj, index); assert(task.is_valid(), "bad ObjArrayTask"); _objarray_stack.push(task); +#ifdef MIPS64 + if (Use3A2000) OrderAccess::fence(); +#endif } void ParCompactionManager::push_region(size_t index) @@ -44,6 +47,9 @@ assert(region_ptr->_pushed++ == 0, "should only be pushed once"); #endif region_stack()->push(index); +#ifdef MIPS64 + if (Use3A2000) OrderAccess::fence(); +#endif } #endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSCOMPACTIONMANAGER_INLINE_HPP