diff options
author | Bryce McKinlay <bryce@gcc.gnu.org> | 2002-03-21 00:26:46 +0000 |
---|---|---|
committer | Bryce McKinlay <bryce@gcc.gnu.org> | 2002-03-21 00:26:46 +0000 |
commit | 1de21d0eac4b279d994709b0cd30bae0c9e711c7 (patch) | |
tree | 9c7009e8040fa889ee77996438bd374542bd3833 /libjava/sysdep | |
parent | e5c4bd1bba2b29800b2316bef7f749994a27c7ef (diff) | |
download | gcc-1de21d0eac4b279d994709b0cd30bae0c9e711c7.zip gcc-1de21d0eac4b279d994709b0cd30bae0c9e711c7.tar.gz gcc-1de21d0eac4b279d994709b0cd30bae0c9e711c7.tar.bz2 |
posix-threads.cc (_Jv_ThreadSelf_out_of_line): Use write_barrier, not release_set.
* posix-threads.cc (_Jv_ThreadSelf_out_of_line): Use write_barrier,
not release_set.
* sysdep/powerpc/locks.h (write_barrier): New function.
* sysdep/i386/locks.h (write_barrier): New function.
From-SVN: r51101
Diffstat (limited to 'libjava/sysdep')
-rw-r--r-- | libjava/sysdep/i386/locks.h | 8 | ||||
-rw-r--r-- | libjava/sysdep/powerpc/locks.h | 8 |
2 files changed, 16 insertions, 0 deletions
diff --git a/libjava/sysdep/i386/locks.h b/libjava/sysdep/i386/locks.h index 0c029ac..a9501ae 100644 --- a/libjava/sysdep/i386/locks.h +++ b/libjava/sysdep/i386/locks.h @@ -62,4 +62,12 @@ read_barrier() { } +// Ensure that prior stores to memory are completed with respect to other +// processors. +inline static void +write_barrier() +{ + // X86 does not reorder writes. We just need to ensure that gcc also doesn't. + __asm__ __volatile__(" " : : : "memory"); +} #endif diff --git a/libjava/sysdep/powerpc/locks.h b/libjava/sysdep/powerpc/locks.h index 414b5dc..4d4532b 100644 --- a/libjava/sysdep/powerpc/locks.h +++ b/libjava/sysdep/powerpc/locks.h @@ -75,4 +75,12 @@ read_barrier() __asm__ __volatile__ ("isync" : : : "memory"); } +// Ensure that prior stores to memory are completed with respect to other +// processors. +inline static void +write_barrier() +{ + __asm__ __volatile__ ("sync" : : : "memory"); +} + #endif |