src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp
changeset 51996 84743156e780
parent 51866 703813b05838
child 52460 f1bb77833b59
equal deleted inserted replaced
51995:f7babf9d1592 51996:84743156e780
  1392   // change thread state
  1392   // change thread state
  1393   __ mov(rscratch1, _thread_in_native_trans);
  1393   __ mov(rscratch1, _thread_in_native_trans);
  1394   __ lea(rscratch2, Address(rthread, JavaThread::thread_state_offset()));
  1394   __ lea(rscratch2, Address(rthread, JavaThread::thread_state_offset()));
  1395   __ stlrw(rscratch1, rscratch2);
  1395   __ stlrw(rscratch1, rscratch2);
  1396 
  1396 
  1397   if (os::is_MP()) {
  1397   if (UseMembar) {
  1398     if (UseMembar) {
  1398     // Force this write out before the read below
  1399       // Force this write out before the read below
  1399     __ dmb(Assembler::ISH);
  1400       __ dmb(Assembler::ISH);
  1400   } else {
  1401     } else {
  1401     // Write serialization page so VM thread can do a pseudo remote membar.
  1402       // Write serialization page so VM thread can do a pseudo remote membar.
  1402     // We use the current thread pointer to calculate a thread specific
  1403       // We use the current thread pointer to calculate a thread specific
  1403     // offset to write to within the page. This minimizes bus traffic
  1404       // offset to write to within the page. This minimizes bus traffic
  1404     // due to cache line collision.
  1405       // due to cache line collision.
  1405     __ serialize_memory(rthread, rscratch2);
  1406       __ serialize_memory(rthread, rscratch2);
       
  1407     }
       
  1408   }
  1406   }
  1409 
  1407 
  1410   // check for safepoint operation in progress and/or pending suspend requests
  1408   // check for safepoint operation in progress and/or pending suspend requests
  1411   {
  1409   {
  1412     Label L, Continue;
  1410     Label L, Continue;