src/hotspot/cpu/s390/templateInterpreterGenerator_s390.cpp
changeset 52460 f1bb77833b59
parent 51571 126951ca1462
child 55342 596ae6c3ef6f
equal deleted inserted replaced
52459:cbe83e9c2100 52460:f1bb77833b59
  1596   // suspends threads for GC. Thread A is resumed to finish this
  1596   // suspends threads for GC. Thread A is resumed to finish this
  1597   // native method, but doesn't block here since it didn't see any
  1597   // native method, but doesn't block here since it didn't see any
  1598   // synchronization is progress, and escapes.
  1598   // synchronization is progress, and escapes.
  1599 
  1599 
  1600   __ set_thread_state(_thread_in_native_trans);
  1600   __ set_thread_state(_thread_in_native_trans);
  1601   if (UseMembar) {
  1601   __ z_fence();
  1602     __ z_fence();
  1602 
  1603   } else {
       
  1604     // Write serialization page so VM thread can do a pseudo remote
       
  1605     // membar. We use the current thread pointer to calculate a thread
       
  1606     // specific offset to write to within the page. This minimizes bus
       
  1607     // traffic due to cache line collision.
       
  1608     __ serialize_memory(Z_thread, Z_R1, Z_R0);
       
  1609   }
       
  1610   // Now before we return to java we must look for a current safepoint
  1603   // Now before we return to java we must look for a current safepoint
  1611   // (a new safepoint can not start since we entered native_trans).
  1604   // (a new safepoint can not start since we entered native_trans).
  1612   // We must check here because a current safepoint could be modifying
  1605   // We must check here because a current safepoint could be modifying
  1613   // the callers registers right this moment.
  1606   // the callers registers right this moment.
  1614 
  1607