--- old/src/cpu/aarch64/vm/templateInterpreter_aarch64.cpp 2015-01-21 10:23:25.353443272 -0500 +++ new/src/cpu/aarch64/vm/templateInterpreter_aarch64.cpp 2015-01-21 10:23:25.123463641 -0500 @@ -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);