--- a/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp Fri Aug 04 14:28:57 2017 +0200
+++ b/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp Wed Aug 02 17:22:40 2017 +0100
@@ -38,10 +38,10 @@
static void atomic_copy64(const volatile void *src, volatile void *dst) {
#if defined(PPC32)
double tmp;
- asm volatile ("lfd %0, 0(%1)\n"
- "stfd %0, 0(%2)\n"
- : "=f"(tmp)
- : "b"(src), "b"(dst));
+ asm volatile ("lfd %0, %2\n"
+ "stfd %0, %1\n"
+ : "=&f"(tmp), "=Q"(*(volatile double*)dst)
+ : "Q"(*(volatile double*)src));
#elif defined(S390) && !defined(_LP64)
double tmp;
asm volatile ("ld %0, 0(%1)\n"