< 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 >