--- 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 <class T>
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 <class T>
+ 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;