hotspot/src/cpu/aarch64/vm/templateInterpreter_aarch64.cpp
changeset 29186 d5e61d9743aa
parent 29183 0cc8699f7372
child 29195 7d6208ea1775
--- a/hotspot/src/cpu/aarch64/vm/templateInterpreter_aarch64.cpp	Tue Jan 20 15:24:58 2015 -0800
+++ b/hotspot/src/cpu/aarch64/vm/templateInterpreter_aarch64.cpp	Wed Jan 21 14:38:48 2015 -0800
@@ -1097,7 +1097,8 @@
 
   // Change state to native
   __ mov(rscratch1, _thread_in_native);
-  __ strw(rscratch1, Address(rthread, JavaThread::thread_state_offset()));
+  __ lea(rscratch2, Address(rthread, JavaThread::thread_state_offset()));
+  __ stlrw(rscratch1, rscratch2);
 
   // Call the native method.
   __ blrt(r10, rscratch1);
@@ -1118,7 +1119,8 @@
 
   // change thread state
   __ mov(rscratch1, _thread_in_native_trans);
-  __ strw(rscratch1, Address(rthread, JavaThread::thread_state_offset()));
+  __ lea(rscratch2, Address(rthread, JavaThread::thread_state_offset()));
+  __ stlrw(rscratch1, rscratch2);
 
   if (os::is_MP()) {
     if (UseMembar) {
@@ -1165,7 +1167,8 @@
 
   // change thread state
   __ mov(rscratch1, _thread_in_Java);
-  __ strw(rscratch1, Address(rthread, JavaThread::thread_state_offset()));
+  __ lea(rscratch2, Address(rthread, JavaThread::thread_state_offset()));
+  __ stlrw(rscratch1, rscratch2);
 
   // reset_last_Java_frame
   __ reset_last_Java_frame(true, true);