< prev index next >

src/hotspot/cpu/x86/gc/g1/g1BarrierSetAssembler_x86.cpp

Move G1 runtime barrier entries

*** 24,33 **** --- 24,34 ---- #include "precompiled.hpp" #include "asm/macroAssembler.inline.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 "interpreter/interp_masm.hpp" #include "runtime/sharedRuntime.hpp" ***************
*** 78,93 **** } else { __ movptr(c_rarg0, addr); __ movptr(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); } #else ! __ call_VM_leaf(CAST_FROM_FN_PTR(address, G1BarrierSet::write_ref_array_pre_oop_entry), addr, count); #endif __ popa(); __ bind(filtered); --- 79,94 ---- } else { __ movptr(c_rarg0, addr); __ movptr(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); } #else ! __ call_VM_leaf(CAST_FROM_FN_PTR(address, G1BarrierSetRuntime::write_ref_array_pre_oop_entry), addr, count); #endif __ popa(); __ bind(filtered); ***************
*** 105,117 **** } else { assert_different_registers(c_rarg0, count); __ mov(c_rarg0, addr); __ mov(c_rarg1, count); } ! __ call_VM_leaf(CAST_FROM_FN_PTR(address, G1BarrierSet::write_ref_array_post_entry), 2); #else ! __ call_VM_leaf(CAST_FROM_FN_PTR(address, G1BarrierSet::write_ref_array_post_entry), addr, count); #endif __ popa(); } --- 106,118 ---- } else { assert_different_registers(c_rarg0, count); __ mov(c_rarg0, addr); __ mov(c_rarg1, count); } ! __ call_VM_leaf(CAST_FROM_FN_PTR(address, G1BarrierSetRuntime::write_ref_array_post_entry), 2); #else ! __ call_VM_leaf(CAST_FROM_FN_PTR(address, G1BarrierSetRuntime::write_ref_array_post_entry), addr, count); #endif __ popa(); } ***************
*** 236,248 **** } #else __ push(thread); __ push(pre_val); #endif ! __ MacroAssembler::call_VM_leaf_base(CAST_FROM_FN_PTR(address, SharedRuntime::g1_wb_pre), 2); } else { ! __ call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::g1_wb_pre), pre_val, thread); } NOT_LP64( __ pop(thread); ) // save the live input values --- 237,249 ---- } #else __ push(thread); __ push(pre_val); #endif ! __ MacroAssembler::call_VM_leaf_base(CAST_FROM_FN_PTR(address, G1BarrierSetRuntime::write_ref_field_pre_entry), 2); } else { ! __ call_VM_leaf(CAST_FROM_FN_PTR(address, G1BarrierSetRuntime::write_ref_field_pre_entry), pre_val, thread); } NOT_LP64( __ pop(thread); ) // save the live input values ***************
*** 331,344 **** __ bind(runtime); // save the live input values __ push(store_addr); __ push(new_val); #ifdef _LP64 ! __ call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::g1_wb_post), card_addr, r15_thread); #else __ push(thread); ! __ call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::g1_wb_post), card_addr, thread); __ pop(thread); #endif __ pop(new_val); __ pop(store_addr); --- 332,345 ---- __ bind(runtime); // save the live input values __ push(store_addr); __ push(new_val); #ifdef _LP64 ! __ call_VM_leaf(CAST_FROM_FN_PTR(address, G1BarrierSetRuntime::write_ref_field_post_entry), card_addr, r15_thread); #else __ push(thread); ! __ call_VM_leaf(CAST_FROM_FN_PTR(address, G1BarrierSetRuntime::write_ref_field_post_entry), card_addr, thread); __ pop(thread); #endif __ pop(new_val); __ pop(store_addr); ***************
*** 498,508 **** __ save_live_registers_no_oop_map(true); // load the pre-value __ load_parameter(0, rcx); ! __ call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::g1_wb_pre), rcx, thread); __ restore_live_registers(true); __ bind(done); --- 499,509 ---- __ save_live_registers_no_oop_map(true); // load the pre-value __ load_parameter(0, rcx); ! __ call_VM_leaf(CAST_FROM_FN_PTR(address, G1BarrierSetRuntime::write_ref_field_pre_entry), rcx, thread); __ restore_live_registers(true); __ bind(done); ***************
*** 575,585 **** __ bind(runtime); __ save_live_registers_no_oop_map(true); ! __ call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::g1_wb_post), card_addr, thread); __ restore_live_registers(true); __ bind(enqueued); __ pop(rdx); --- 576,586 ---- __ bind(runtime); __ save_live_registers_no_oop_map(true); ! __ call_VM_leaf(CAST_FROM_FN_PTR(address, G1BarrierSetRuntime::write_ref_field_post_entry), card_addr, thread); __ restore_live_registers(true); __ bind(enqueued); __ pop(rdx);
< prev index next >