< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahRuntime.cpp

Print this page
*** 21,11 ***
   * questions.
   *
   */
  
  #include "gc/shenandoah/shenandoahBarrierSet.inline.hpp"
- #include "gc/shenandoah/shenandoahBarrierSetClone.inline.hpp"
  #include "gc/shenandoah/shenandoahRuntime.hpp"
  #include "gc/shenandoah/shenandoahThreadLocalData.hpp"
  #include "oops/oop.inline.hpp"
  #include "runtime/interfaceSupport.inline.hpp"
  #include "utilities/copy.hpp"
--- 21,10 ---

*** 36,12 ***
  
  JRT_LEAF(void, ShenandoahRuntime::arraycopy_barrier_narrow_oop(narrowOop* src, narrowOop* dst, size_t length))
    ShenandoahBarrierSet::barrier_set()->arraycopy_barrier(src, dst, length);
  JRT_END
  
  JRT_LEAF(void, ShenandoahRuntime::write_barrier_pre(oopDesc* orig))
!   assert(orig != nullptr, "should be optimized out");
    shenandoah_assert_correct(nullptr, orig);
    // Capture the original value that was in the field reference.
    JavaThread* thread = JavaThread::current();
    assert(ShenandoahThreadLocalData::satb_mark_queue(thread).is_active(), "Shouldn't be here otherwise");
    SATBMarkQueue& queue = ShenandoahThreadLocalData::satb_mark_queue(thread);
--- 35,19 ---
  
  JRT_LEAF(void, ShenandoahRuntime::arraycopy_barrier_narrow_oop(narrowOop* src, narrowOop* dst, size_t length))
    ShenandoahBarrierSet::barrier_set()->arraycopy_barrier(src, dst, length);
  JRT_END
  
+ JRT_LEAF(void, ShenandoahRuntime::write_barrier_pre_c2(oopDesc* orig))
+ //log_info(gc)("WB pre C2: " PTR_FORMAT, p2i(orig));
+   write_barrier_pre(orig);
+ JRT_END
+ 
  JRT_LEAF(void, ShenandoahRuntime::write_barrier_pre(oopDesc* orig))
!   if (orig == nullptr) {
+     return ;
+   }
    shenandoah_assert_correct(nullptr, orig);
    // Capture the original value that was in the field reference.
    JavaThread* thread = JavaThread::current();
    assert(ShenandoahThreadLocalData::satb_mark_queue(thread).is_active(), "Shouldn't be here otherwise");
    SATBMarkQueue& queue = ShenandoahThreadLocalData::satb_mark_queue(thread);

*** 70,10 ***
  
  JRT_LEAF(oopDesc*, ShenandoahRuntime::load_reference_barrier_phantom_narrow(oopDesc* src, narrowOop* load_addr))
    return (oopDesc*) ShenandoahBarrierSet::barrier_set()->load_reference_barrier<narrowOop>(ON_PHANTOM_OOP_REF, oop(src), load_addr);
  JRT_END
  
! JRT_LEAF(void, ShenandoahRuntime::clone_barrier(oopDesc* src))
!   oop s = oop(src);
-   shenandoah_assert_correct(nullptr, s);
-   ShenandoahBarrierSet::barrier_set()->clone_barrier(s);
  JRT_END
--- 76,8 ---
  
  JRT_LEAF(oopDesc*, ShenandoahRuntime::load_reference_barrier_phantom_narrow(oopDesc* src, narrowOop* load_addr))
    return (oopDesc*) ShenandoahBarrierSet::barrier_set()->load_reference_barrier<narrowOop>(ON_PHANTOM_OOP_REF, oop(src), load_addr);
  JRT_END
  
! JRT_LEAF(void, ShenandoahRuntime::clone(oopDesc* src, oopDesc* dst, size_t size))
!   HeapAccess<>::clone(src, dst, size);
  JRT_END
< prev index next >