diff -r 662d9e1e2a60 -r ff3eab78554f src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.hpp --- a/src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.hpp Mon Oct 21 09:58:32 2019 +0200 +++ b/src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.hpp Mon Oct 21 15:11:42 2019 +0200 @@ -84,10 +84,6 @@ void write_ref_field_work(void* v, oop o, bool release = false); - oop oop_load_from_native_barrier(oop obj, oop* load_addr); - oop oop_load_from_native_barrier(oop obj, narrowOop* load_addr); - - virtual void on_thread_create(Thread* thread); virtual void on_thread_destroy(Thread* thread); virtual void on_thread_attach(Thread* thread); @@ -108,6 +104,9 @@ template oop load_reference_barrier_mutator_work(oop obj, T* load_addr); + oop load_reference_barrier_native(oop obj, oop* load_addr); + oop load_reference_barrier_native(oop obj, narrowOop* load_addr); + void enqueue(oop obj); private: @@ -120,6 +119,9 @@ oop load_reference_barrier_impl(oop obj); + template + oop load_reference_barrier_native_impl(oop obj, T* load_addr); + static void keep_alive_if_weak(DecoratorSet decorators, oop value) { assert((decorators & ON_UNKNOWN_OOP_REF) == 0, "Reference strength must be known"); const bool on_strong_oop_ref = (decorators & ON_STRONG_OOP_REF) != 0;