--- old/src/hotspot/share/gc/g1/g1ParScanThreadState.cpp 2018-10-23 12:02:52.301339934 +0200 +++ new/src/hotspot/share/gc/g1/g1ParScanThreadState.cpp 2018-10-23 12:02:51.888327074 +0200 @@ -265,7 +265,7 @@ Prefetch::write(obj_ptr, PrefetchCopyIntervalInBytes); const oop obj = oop(obj_ptr); - const oop forward_ptr = old->forward_to_atomic(obj, memory_order_relaxed); + const oop forward_ptr = old->forward_to_atomic(obj, old_mark, memory_order_relaxed); if (forward_ptr == NULL) { Copy::aligned_disjoint_words((HeapWord*) old, obj_ptr, word_sz); @@ -355,7 +355,7 @@ oop G1ParScanThreadState::handle_evacuation_failure_par(oop old, markOop m) { assert(_g1h->is_in_cset(old), "Object " PTR_FORMAT " should be in the CSet", p2i(old)); - oop forward_ptr = old->forward_to_atomic(old, memory_order_relaxed); + oop forward_ptr = old->forward_to_atomic(old, m, memory_order_relaxed); if (forward_ptr == NULL) { // Forward-to-self succeeded. We are the "owner" of the object. HeapRegion* r = _g1h->heap_region_containing(old);