< prev index next >

src/hotspot/cpu/s390/sharedRuntime_s390.cpp

Print this page

        

*** 2153,2174 **** { Label no_block, sync; save_native_result(masm, ret_type, workspace_slot_offset); // Make Z_R2 available as work reg. - if (os::is_MP()) { if (UseMembar) { // Force this write out before the read below. __ z_fence(); } else { // Write serialization page so VM thread can do a pseudo remote membar. // We use the current thread pointer to calculate a thread specific // offset to write to within the page. This minimizes bus traffic // due to cache line collision. __ serialize_memory(Z_thread, Z_R1, Z_R2); } ! } __ safepoint_poll(sync, Z_R1); __ load_and_test_int(Z_R0, Address(Z_thread, JavaThread::suspend_flags_offset())); __ z_bre(no_block); --- 2153,2173 ---- { Label no_block, sync; save_native_result(masm, ret_type, workspace_slot_offset); // Make Z_R2 available as work reg. if (UseMembar) { // Force this write out before the read below. __ z_fence(); } else { // Write serialization page so VM thread can do a pseudo remote membar. // We use the current thread pointer to calculate a thread specific // offset to write to within the page. This minimizes bus traffic // due to cache line collision. __ serialize_memory(Z_thread, Z_R1, Z_R2); } ! __ safepoint_poll(sync, Z_R1); __ load_and_test_int(Z_R0, Address(Z_thread, JavaThread::suspend_flags_offset())); __ z_bre(no_block);
< prev index next >