equal
deleted
inserted
replaced
82 void write_ref_field_pre_work(narrowOop* field, oop new_val); |
82 void write_ref_field_pre_work(narrowOop* field, oop new_val); |
83 void write_ref_field_pre_work(void* field, oop new_val); |
83 void write_ref_field_pre_work(void* field, oop new_val); |
84 |
84 |
85 void write_ref_field_work(void* v, oop o, bool release = false); |
85 void write_ref_field_work(void* v, oop o, bool release = false); |
86 |
86 |
87 oop oop_load_from_native_barrier(oop obj, oop* load_addr); |
|
88 oop oop_load_from_native_barrier(oop obj, narrowOop* load_addr); |
|
89 |
|
90 |
|
91 virtual void on_thread_create(Thread* thread); |
87 virtual void on_thread_create(Thread* thread); |
92 virtual void on_thread_destroy(Thread* thread); |
88 virtual void on_thread_destroy(Thread* thread); |
93 virtual void on_thread_attach(Thread* thread); |
89 virtual void on_thread_attach(Thread* thread); |
94 virtual void on_thread_detach(Thread* thread); |
90 virtual void on_thread_detach(Thread* thread); |
95 |
91 |
106 oop load_reference_barrier_mutator(oop obj, narrowOop* load_addr); |
102 oop load_reference_barrier_mutator(oop obj, narrowOop* load_addr); |
107 |
103 |
108 template <class T> |
104 template <class T> |
109 oop load_reference_barrier_mutator_work(oop obj, T* load_addr); |
105 oop load_reference_barrier_mutator_work(oop obj, T* load_addr); |
110 |
106 |
|
107 oop load_reference_barrier_native(oop obj, oop* load_addr); |
|
108 oop load_reference_barrier_native(oop obj, narrowOop* load_addr); |
|
109 |
111 void enqueue(oop obj); |
110 void enqueue(oop obj); |
112 |
111 |
113 private: |
112 private: |
114 template <class T> |
113 template <class T> |
115 inline void arraycopy_pre_work(T* src, T* dst, size_t count); |
114 inline void arraycopy_pre_work(T* src, T* dst, size_t count); |
117 inline void arraycopy_work(T* src, size_t count); |
116 inline void arraycopy_work(T* src, size_t count); |
118 template <class T> |
117 template <class T> |
119 inline void arraycopy_update_impl(T* src, size_t count); |
118 inline void arraycopy_update_impl(T* src, size_t count); |
120 |
119 |
121 oop load_reference_barrier_impl(oop obj); |
120 oop load_reference_barrier_impl(oop obj); |
|
121 |
|
122 template <class T> |
|
123 oop load_reference_barrier_native_impl(oop obj, T* load_addr); |
122 |
124 |
123 static void keep_alive_if_weak(DecoratorSet decorators, oop value) { |
125 static void keep_alive_if_weak(DecoratorSet decorators, oop value) { |
124 assert((decorators & ON_UNKNOWN_OOP_REF) == 0, "Reference strength must be known"); |
126 assert((decorators & ON_UNKNOWN_OOP_REF) == 0, "Reference strength must be known"); |
125 const bool on_strong_oop_ref = (decorators & ON_STRONG_OOP_REF) != 0; |
127 const bool on_strong_oop_ref = (decorators & ON_STRONG_OOP_REF) != 0; |
126 const bool peek = (decorators & AS_NO_KEEPALIVE) != 0; |
128 const bool peek = (decorators & AS_NO_KEEPALIVE) != 0; |