src/hotspot/cpu/ppc/templateInterpreterGenerator_ppc.cpp
changeset 52460 f1bb77833b59
parent 50162 f9fe56417050
child 53281 672b629e1f72
equal deleted inserted replaced
52459:cbe83e9c2100 52460:f1bb77833b59
  1484   // we don't want the current thread to continue until all our prior memory
  1484   // we don't want the current thread to continue until all our prior memory
  1485   // accesses (including the new thread state) are visible to other threads.
  1485   // accesses (including the new thread state) are visible to other threads.
  1486   __ li(R0/*thread_state*/, _thread_in_native_trans);
  1486   __ li(R0/*thread_state*/, _thread_in_native_trans);
  1487   __ release();
  1487   __ release();
  1488   __ stw(R0/*thread_state*/, thread_(thread_state));
  1488   __ stw(R0/*thread_state*/, thread_(thread_state));
  1489   if (UseMembar) {
  1489   __ fence();
  1490     __ fence();
       
  1491   }
       
  1492   // Write serialization page so that the VM thread can do a pseudo remote
       
  1493   // membar. We use the current thread pointer to calculate a thread
       
  1494   // specific offset to write to within the page. This minimizes bus
       
  1495   // traffic due to cache line collision.
       
  1496   else {
       
  1497     __ serialize_memory(R16_thread, R11_scratch1, R12_scratch2);
       
  1498   }
       
  1499 
  1490 
  1500   // Now before we return to java we must look for a current safepoint
  1491   // Now before we return to java we must look for a current safepoint
  1501   // (a new safepoint can not start since we entered native_trans).
  1492   // (a new safepoint can not start since we entered native_trans).
  1502   // We must check here because a current safepoint could be modifying
  1493   // We must check here because a current safepoint could be modifying
  1503   // the callers registers right this moment.
  1494   // the callers registers right this moment.