--- old/src/hotspot/share/gc/z/zBarrier.inline.hpp 2020-05-18 21:33:45.440213587 +0200 +++ new/src/hotspot/share/gc/z/zBarrier.inline.hpp 2020-05-18 21:33:45.185205304 +0200 @@ -228,7 +228,7 @@ } inline oop ZBarrier::load_barrier_on_oop_field(volatile oop* p) { - const oop o = *p; + const oop o = Atomic::load(p); return load_barrier_on_oop_field_preloaded(p, o); } @@ -282,7 +282,7 @@ // inline oop ZBarrier::weak_load_barrier_on_oop_field(volatile oop* p) { assert(!ZResurrection::is_blocked(), "Should not be called during resurrection blocked phase"); - const oop o = *p; + const oop o = Atomic::load(p); return weak_load_barrier_on_oop_field_preloaded(p, o); } @@ -295,7 +295,7 @@ } inline oop ZBarrier::weak_load_barrier_on_weak_oop_field(volatile oop* p) { - const oop o = *p; + const oop o = Atomic::load(p); return weak_load_barrier_on_weak_oop_field_preloaded(p, o); } @@ -314,7 +314,7 @@ } inline oop ZBarrier::weak_load_barrier_on_phantom_oop_field(volatile oop* p) { - const oop o = *p; + const oop o = Atomic::load(p); return weak_load_barrier_on_phantom_oop_field_preloaded(p, o); } @@ -349,14 +349,14 @@ inline void ZBarrier::keep_alive_barrier_on_weak_oop_field(volatile oop* p) { // This operation is only valid when resurrection is blocked. assert(ZResurrection::is_blocked(), "Invalid phase"); - const oop o = *p; + const oop o = Atomic::load(p); barrier(p, o); } inline void ZBarrier::keep_alive_barrier_on_phantom_oop_field(volatile oop* p) { // This operation is only valid when resurrection is blocked. assert(ZResurrection::is_blocked(), "Invalid phase"); - const oop o = *p; + const oop o = Atomic::load(p); barrier(p, o); } @@ -380,7 +380,7 @@ // Mark barrier // inline void ZBarrier::mark_barrier_on_oop_field(volatile oop* p, bool finalizable) { - const oop o = *p; + const oop o = Atomic::load(p); if (finalizable) { barrier(p, o); --- old/src/hotspot/share/gc/z/zReferenceProcessor.cpp 2020-05-18 21:33:45.927229405 +0200 +++ new/src/hotspot/share/gc/z/zReferenceProcessor.cpp 2020-05-18 21:33:45.605218946 +0200 @@ -70,7 +70,7 @@ } static oop reference_referent(oop reference) { - return *reference_referent_addr(reference); + return Atomic::load(reference_referent_addr(reference)); } static void reference_set_referent(oop reference, oop referent) {