Mercurial > hg > release > icedtea7-forest-2.1 > hotspot
changeset 2950:f293db049783
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 | 73a07d24174e |
children | 5b6a9a63a280 |
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 Thu May 17 13:45:50 2012 -0400 +++ b/src/os_cpu/linux_zero/vm/os_linux_zero.hpp Mon May 28 08:01:18 2012 -0400 @@ -48,6 +48,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