src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.inline.hpp
changeset 55681 7b671e6b0d5b
parent 55654 92ab031d6540
child 58177 4932dce35882
equal deleted inserted replaced
55680:cd48f8f260c8 55681:7b671e6b0d5b
    23 
    23 
    24 #ifndef SHARE_GC_SHENANDOAH_SHENANDOAHBARRIERSET_INLINE_HPP
    24 #ifndef SHARE_GC_SHENANDOAH_SHENANDOAHBARRIERSET_INLINE_HPP
    25 #define SHARE_GC_SHENANDOAH_SHENANDOAHBARRIERSET_INLINE_HPP
    25 #define SHARE_GC_SHENANDOAH_SHENANDOAHBARRIERSET_INLINE_HPP
    26 
    26 
    27 #include "gc/shared/barrierSet.hpp"
    27 #include "gc/shared/barrierSet.hpp"
       
    28 #include "gc/shenandoah/shenandoahAsserts.hpp"
    28 #include "gc/shenandoah/shenandoahBarrierSet.hpp"
    29 #include "gc/shenandoah/shenandoahBarrierSet.hpp"
    29 #include "gc/shenandoah/shenandoahForwarding.inline.hpp"
    30 #include "gc/shenandoah/shenandoahForwarding.inline.hpp"
    30 #include "gc/shenandoah/shenandoahHeap.inline.hpp"
    31 #include "gc/shenandoah/shenandoahHeap.inline.hpp"
    31 #include "gc/shenandoah/shenandoahHeapRegion.hpp"
    32 #include "gc/shenandoah/shenandoahHeapRegion.hpp"
    32 #include "gc/shenandoah/shenandoahMarkingContext.inline.hpp"
    33 #include "gc/shenandoah/shenandoahMarkingContext.inline.hpp"
    82 }
    83 }
    83 
    84 
    84 template <DecoratorSet decorators, typename BarrierSetT>
    85 template <DecoratorSet decorators, typename BarrierSetT>
    85 inline void ShenandoahBarrierSet::AccessBarrier<decorators, BarrierSetT>::oop_store_in_heap_at(oop base, ptrdiff_t offset, oop value) {
    86 inline void ShenandoahBarrierSet::AccessBarrier<decorators, BarrierSetT>::oop_store_in_heap_at(oop base, ptrdiff_t offset, oop value) {
    86   oop_store_in_heap(AccessInternal::oop_field_addr<decorators>(base, offset), value);
    87   oop_store_in_heap(AccessInternal::oop_field_addr<decorators>(base, offset), value);
       
    88 }
       
    89 
       
    90 template <DecoratorSet decorators, typename BarrierSetT>
       
    91 template <typename T>
       
    92 inline void ShenandoahBarrierSet::AccessBarrier<decorators, BarrierSetT>::oop_store_not_in_heap(T* addr, oop value) {
       
    93   shenandoah_assert_marked_if(NULL, value, !CompressedOops::is_null(value) && ShenandoahHeap::heap()->is_evacuation_in_progress());
       
    94   Raw::oop_store(addr, value);
    87 }
    95 }
    88 
    96 
    89 template <DecoratorSet decorators, typename BarrierSetT>
    97 template <DecoratorSet decorators, typename BarrierSetT>
    90 template <typename T>
    98 template <typename T>
    91 inline oop ShenandoahBarrierSet::AccessBarrier<decorators, BarrierSetT>::oop_atomic_cmpxchg_not_in_heap(oop new_value, T* addr, oop compare_value) {
    99 inline oop ShenandoahBarrierSet::AccessBarrier<decorators, BarrierSetT>::oop_atomic_cmpxchg_not_in_heap(oop new_value, T* addr, oop compare_value) {