139 |
139 |
140 template <typename T, bool CHECKCAST, bool SATB, ShenandoahBarrierSet::ArrayCopyStoreValMode STOREVAL_MODE> |
140 template <typename T, bool CHECKCAST, bool SATB, ShenandoahBarrierSet::ArrayCopyStoreValMode STOREVAL_MODE> |
141 bool arraycopy_loop(T* src, T* dst, size_t length, Klass* bound, bool disjoint); |
141 bool arraycopy_loop(T* src, T* dst, size_t length, Klass* bound, bool disjoint); |
142 |
142 |
143 template <typename T, bool CHECKCAST, bool SATB, ShenandoahBarrierSet::ArrayCopyStoreValMode STOREVAL_MODE> |
143 template <typename T, bool CHECKCAST, bool SATB, ShenandoahBarrierSet::ArrayCopyStoreValMode STOREVAL_MODE> |
144 bool arraycopy_element(T* cur_src, T* cur_dst, Klass* bound, Thread* thread); |
144 bool arraycopy_element(T* cur_src, T* cur_dst, Klass* bound, Thread* const thread, ShenandoahMarkingContext* const ctx); |
145 |
145 |
146 public: |
146 public: |
147 // Callbacks for runtime accesses. |
147 // Callbacks for runtime accesses. |
148 template <DecoratorSet decorators, typename BarrierSetT = ShenandoahBarrierSet> |
148 template <DecoratorSet decorators, typename BarrierSetT = ShenandoahBarrierSet> |
149 class AccessBarrier: public BarrierSet::AccessBarrier<decorators, BarrierSetT> { |
149 class AccessBarrier: public BarrierSet::AccessBarrier<decorators, BarrierSetT> { |