aboutsummaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2007-02-09 12:40:56 -0800
committerRichard Henderson <rth@gcc.gnu.org>2007-02-09 12:40:56 -0800
commit507a4fd4a0cdaf34dfe391b6b1f2423e0716a682 (patch)
tree6fd9de8c6d16c00cb6faaa80e80f6cf3b2af51fa /libjava
parent999ffb1a4b306ac65f47444ba5e2e63fb897c6c1 (diff)
downloadgcc-507a4fd4a0cdaf34dfe391b6b1f2423e0716a682.zip
gcc-507a4fd4a0cdaf34dfe391b6b1f2423e0716a682.tar.gz
gcc-507a4fd4a0cdaf34dfe391b6b1f2423e0716a682.tar.bz2
* sysdep/alpha/locks.h (read_barrier): New.
From-SVN: r121774
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog4
-rw-r--r--libjava/sysdep/alpha/locks.h8
2 files changed, 12 insertions, 0 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 7f38c88..49b0567 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,7 @@
+2007-02-09 Richard Henderson <rth@redhat.com>
+
+ * sysdep/alpha/locks.h (read_barrier): New.
+
2007-02-09 Keith Seitz <keiths@redhat.com>
* gnu/classpath/jdwp/VMVirtualMachine.java
diff --git a/libjava/sysdep/alpha/locks.h b/libjava/sysdep/alpha/locks.h
index c5f7f49..a6b4394 100644
--- a/libjava/sysdep/alpha/locks.h
+++ b/libjava/sysdep/alpha/locks.h
@@ -50,6 +50,14 @@ compare_and_swap_release(volatile obj_addr_t *addr,
return compare_and_swap(addr, old, new_val);
}
+// Ensure that subsequent instructions do not execute on stale
+// data that was loaded from memory before the barrier.
+inline static void
+read_barrier()
+{
+ __asm__ __volatile__("mb" : : : "memory");
+}
+
// Ensure that prior stores to memory are completed with respect to other
// processors.
inline static void