< prev index next > src/hotspot/share/gc/shenandoah/shenandoahRuntime.cpp
Print this page
* 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"
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);
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);
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
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 >