< prev index next >

src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp

Print this page
rev 58062 : 8239081: Shenandoah: Consolidate C1 LRB and native barriers

*** 579,589 **** --- 579,593 ---- __ b(*stub->continuation()); __ bind(slow_path); ce->store_parameter(res, 0); ce->store_parameter(addr, 1); + if (stub->is_native()) { + __ far_call(RuntimeAddress(bs->load_reference_barrier_native_rt_code_blob()->code_begin())); + } else { __ far_call(RuntimeAddress(bs->load_reference_barrier_rt_code_blob()->code_begin())); + } __ b(*stub->continuation()); } #undef __
*** 634,651 **** __ bind(done); __ epilogue(); } ! void ShenandoahBarrierSetAssembler::generate_c1_load_reference_barrier_runtime_stub(StubAssembler* sasm) { __ prologue("shenandoah_load_reference_barrier", false); // arg0 : object to be resolved __ push_call_clobbered_registers(); __ load_parameter(0, r0); __ load_parameter(1, r1); ! if (UseCompressedOops) { __ mov(lr, CAST_FROM_FN_PTR(address, ShenandoahRuntime::load_reference_barrier_narrow)); } else { __ mov(lr, CAST_FROM_FN_PTR(address, ShenandoahRuntime::load_reference_barrier)); } __ blr(lr); --- 638,657 ---- __ bind(done); __ epilogue(); } ! void ShenandoahBarrierSetAssembler::generate_c1_load_reference_barrier_runtime_stub(StubAssembler* sasm, bool is_native) { __ prologue("shenandoah_load_reference_barrier", false); // arg0 : object to be resolved __ push_call_clobbered_registers(); __ load_parameter(0, r0); __ load_parameter(1, r1); ! if (is_native) { ! __ mov(lr, CAST_FROM_FN_PTR(address, ShenandoahRuntime::load_reference_barrier_native)); ! } else if (UseCompressedOops) { __ mov(lr, CAST_FROM_FN_PTR(address, ShenandoahRuntime::load_reference_barrier_narrow)); } else { __ mov(lr, CAST_FROM_FN_PTR(address, ShenandoahRuntime::load_reference_barrier)); } __ blr(lr);
< prev index next >