< prev index next >

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

Print this page
rev 56398 : 8231410: Shenandoah: clone barrier should use base pointer
Reviewed-by: XXX

*** 73,89 **** return ShenandoahBarrierSet::barrier_set()->load_reference_barrier_mutator(src, load_addr); JRT_END // Shenandoah clone barrier: makes sure that references point to to-space // in cloned objects. ! JRT_LEAF(void, ShenandoahRuntime::shenandoah_clone_barrier(oopDesc* s, oopDesc* d, size_t length)) ! oop src = oop(s); ! oop dst = oop(d); ! shenandoah_assert_correct(NULL, src); ! shenandoah_assert_correct(NULL, dst); ! ShenandoahBarrierSet::barrier_set()->clone_barrier(src); ! RawAccessBarrier<IS_NOT_NULL>::clone(src, dst, length); JRT_END JRT_LEAF(oopDesc*, ShenandoahRuntime::load_reference_barrier_native(oopDesc * src)) return (oopDesc*) ShenandoahBarrierSet::barrier_set()->oop_load_from_native_barrier(oop(src)); JRT_END --- 73,89 ---- return ShenandoahBarrierSet::barrier_set()->load_reference_barrier_mutator(src, load_addr); JRT_END // Shenandoah clone barrier: makes sure that references point to to-space // in cloned objects. ! JRT_LEAF(void, ShenandoahRuntime::shenandoah_clone_barrier(oopDesc* src, jlong* src_ptr, jlong* dst_ptr, size_t length)) ! oop s = oop(src); ! shenandoah_assert_correct(NULL, s); ! ShenandoahBarrierSet::barrier_set()->clone_barrier(s); ! tty->print_cr("obj size: " SIZE_FORMAT, src->size()); ! tty->print_cr("cpy size: " SIZE_FORMAT, length); ! Copy::conjoint_jlongs_atomic(src_ptr, dst_ptr, length); JRT_END JRT_LEAF(oopDesc*, ShenandoahRuntime::load_reference_barrier_native(oopDesc * src)) return (oopDesc*) ShenandoahBarrierSet::barrier_set()->oop_load_from_native_barrier(oop(src)); JRT_END
< prev index next >