< prev index next >

src/hotspot/cpu/aarch64/gc/g1/g1BarrierSetAssembler_aarch64.cpp

Move G1 runtime barrier entries

*** 27,36 **** --- 27,37 ---- #include "c1/c1_LIRAssembler.hpp" #include "c1/c1_MacroAssembler.hpp" #include "gc/g1/c1/g1BarrierSetC1.hpp" #include "gc/g1/g1BarrierSet.hpp" #include "gc/g1/g1BarrierSetAssembler.hpp" + #include "gc/g1/g1BarrierSetRuntime.hpp" #include "gc/g1/g1CardTable.hpp" #include "gc/g1/g1ThreadLocalData.hpp" #include "gc/g1/heapRegion.hpp" #include "gc/shared/collectedHeap.hpp" #include "runtime/sharedRuntime.hpp" ***************
*** 58,70 **** } else { __ mov(c_rarg0, addr); __ mov(c_rarg1, count); } if (UseCompressedOops) { ! __ call_VM_leaf(CAST_FROM_FN_PTR(address, G1BarrierSet::write_ref_array_pre_narrow_oop_entry), 2); } else { ! __ call_VM_leaf(CAST_FROM_FN_PTR(address, G1BarrierSet::write_ref_array_pre_oop_entry), 2); } __ pop(saved_regs, sp); } } --- 59,71 ---- } else { __ mov(c_rarg0, addr); __ mov(c_rarg1, count); } if (UseCompressedOops) { ! __ call_VM_leaf(CAST_FROM_FN_PTR(address, G1BarrierSetRuntime::write_ref_array_pre_narrow_oop_entry), 2); } else { ! __ call_VM_leaf(CAST_FROM_FN_PTR(address, G1BarrierSetRuntime::write_ref_array_pre_oop_entry), 2); } __ pop(saved_regs, sp); } } ***************
*** 76,86 **** __ lea(scratch, Address(end, BytesPerHeapOop)); __ sub(scratch, scratch, start); // subtract start to get #bytes __ lsr(scratch, scratch, LogBytesPerHeapOop); // convert to element count __ mov(c_rarg0, start); __ mov(c_rarg1, scratch); ! __ call_VM_leaf(CAST_FROM_FN_PTR(address, G1BarrierSet::write_ref_array_post_entry), 2); __ pop(saved_regs, sp); } void G1BarrierSetAssembler::g1_write_barrier_pre(MacroAssembler* masm, Register obj, --- 77,87 ---- __ lea(scratch, Address(end, BytesPerHeapOop)); __ sub(scratch, scratch, start); // subtract start to get #bytes __ lsr(scratch, scratch, LogBytesPerHeapOop); // convert to element count __ mov(c_rarg0, start); __ mov(c_rarg1, scratch); ! __ call_VM_leaf(CAST_FROM_FN_PTR(address, G1BarrierSetRuntime::write_ref_array_post_entry), 2); __ pop(saved_regs, sp); } void G1BarrierSetAssembler::g1_write_barrier_pre(MacroAssembler* masm, Register obj, ***************
*** 159,171 **** // So when we do not have have a full interpreter frame on the stack // expand_call should be passed true. if (expand_call) { assert(pre_val != c_rarg1, "smashed arg"); ! __ super_call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::g1_wb_pre), pre_val, thread); } else { ! __ call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::g1_wb_pre), pre_val, thread); } __ pop(saved, sp); __ bind(done); --- 160,172 ---- // So when we do not have have a full interpreter frame on the stack // expand_call should be passed true. if (expand_call) { assert(pre_val != c_rarg1, "smashed arg"); ! __ super_call_VM_leaf(CAST_FROM_FN_PTR(address, G1BarrierSetRuntime::write_ref_field_pre_entry), pre_val, thread); } else { ! __ call_VM_leaf(CAST_FROM_FN_PTR(address, G1BarrierSetRuntime::write_ref_field_pre_entry), pre_val, thread); } __ pop(saved, sp); __ bind(done); ***************
*** 243,253 **** __ bind(runtime); // save the live input values RegSet saved = RegSet::of(store_addr, new_val); __ push(saved, sp); ! __ call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::g1_wb_post), card_addr, thread); __ pop(saved, sp); __ bind(done); } --- 244,254 ---- __ bind(runtime); // save the live input values RegSet saved = RegSet::of(store_addr, new_val); __ push(saved, sp); ! __ call_VM_leaf(CAST_FROM_FN_PTR(address, G1BarrierSetRuntime::write_ref_field_post_entry), card_addr, thread); __ pop(saved, sp); __ bind(done); } ***************
*** 396,406 **** __ b(done); __ bind(runtime); __ push_call_clobbered_registers(); __ load_parameter(0, pre_val); ! __ call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::g1_wb_pre), pre_val, thread); __ pop_call_clobbered_registers(); __ bind(done); __ epilogue(); } --- 397,407 ---- __ b(done); __ bind(runtime); __ push_call_clobbered_registers(); __ load_parameter(0, pre_val); ! __ call_VM_leaf(CAST_FROM_FN_PTR(address, G1BarrierSetRuntime::write_ref_field_pre_entry), pre_val, thread); __ pop_call_clobbered_registers(); __ bind(done); __ epilogue(); } ***************
*** 466,476 **** __ str(card_addr, Address(buffer_addr, rscratch1)); __ b(done); __ bind(runtime); __ push_call_clobbered_registers(); ! __ call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::g1_wb_post), card_addr, thread); __ pop_call_clobbered_registers(); __ bind(done); __ epilogue(); } --- 467,477 ---- __ str(card_addr, Address(buffer_addr, rscratch1)); __ b(done); __ bind(runtime); __ push_call_clobbered_registers(); ! __ call_VM_leaf(CAST_FROM_FN_PTR(address, G1BarrierSetRuntime::write_ref_field_post_entry), card_addr, thread); __ pop_call_clobbered_registers(); __ bind(done); __ epilogue(); }
< prev index next >