changeset 9896:6275d7b41909

PR3559: Use ldrexd for atomic reads on ARMv7. 2012-05-28 Andrew Haley <aph@redhat.com> * os_linux_zero.hpp (atomic_copy64): Use ldrexd for atomic reads on ARMv7.
author aph
date Mon, 28 May 2012 08:01:18 -0400
parents be1379a186ba
children 5460c427c0dc
files src/os_cpu/linux_zero/vm/os_linux_zero.hpp
diffstat 1 files changed, 6 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/os_cpu/linux_zero/vm/os_linux_zero.hpp	Sat Apr 28 05:28:10 2018 +0100
+++ b/src/os_cpu/linux_zero/vm/os_linux_zero.hpp	Mon May 28 08:01:18 2012 -0400
@@ -54,6 +54,12 @@
                   "std %0, 0(%2)\n"
                   : "=r"(tmp)
                   : "a"(src), "a"(dst));
+#elif defined(__ARM_ARCH_7A__)
+    jlong tmp;
+    asm volatile ("ldrexd  %0, [%1]\n"
+                  : "=r"(tmp)
+                  : "r"(src), "m"(src));
+    *(jlong *) dst = tmp;
 #else
     *(jlong *) dst = *(jlong *) src;
 #endif