[aarch64-port-dev ] AArch64 needs fences when changing thread state.

Andrew Haley aph at redhat.com
Wed Oct 1 18:17:02 UTC 2014


I noticed this.  If PPC needs it, we need it too.

Andrew.


# HG changeset patch
# User aph
# Date 1412182026 14400
#      Wed Oct 01 12:47:06 2014 -0400
# Node ID a451588d3506f985bd2e83748c33331d8d6cb391
# Parent  95c8ad3592470f3e77cc032fb716c580944fccc1
AArch64 needs fences when changing thread state.

diff -r 95c8ad359247 -r a451588d3506 src/share/vm/runtime/thread.hpp
--- a/src/share/vm/runtime/thread.hpp	Wed Oct 01 12:44:00 2014 -0400
+++ b/src/share/vm/runtime/thread.hpp	Wed Oct 01 12:47:06 2014 -0400
@@ -1006,7 +1006,7 @@
   address last_Java_pc(void)                     { return _anchor.last_Java_pc(); }

   // Safepoint support
-#ifndef PPC64
+#if (! (defined(PPC64) || defined(AARCH64)))
   JavaThreadState thread_state() const           { return _thread_state; }
   void set_thread_state(JavaThreadState s)       { _thread_state = s;    }
 #else
diff -r 95c8ad359247 -r a451588d3506 src/share/vm/runtime/thread.inline.hpp
--- a/src/share/vm/runtime/thread.inline.hpp	Wed Oct 01 12:44:00 2014 -0400
+++ b/src/share/vm/runtime/thread.inline.hpp	Wed Oct 01 12:47:06 2014 -0400
@@ -122,7 +122,7 @@
   set_has_async_exception();
 }

-#ifdef PPC64
+#if (defined(PPC64) || defined(AARCH64))
 inline JavaThreadState JavaThread::thread_state() const    {
   return (JavaThreadState) OrderAccess::load_acquire((volatile jint*)&_thread_state);
 }


More information about the aarch64-port-dev mailing list