Blame SOURCES/8185723-pr3553.patch
|
|
43ae3d |
# HG changeset patch
|
|
|
43ae3d |
# User aph
|
|
|
43ae3d |
# Date 1501690960 -3600
|
|
|
43ae3d |
# Wed Aug 02 17:22:40 2017 +0100
|
|
|
43ae3d |
# Node ID 91ab2eac9856ec86c16c0bedd32e0b87974ead6f
|
|
|
43ae3d |
# Parent 4e2adbc3d2b512f6b2bf318d2db60f4d1903f8c7
|
|
|
43ae3d |
8185723, PR3553: Zero: segfaults on Power PC 32-bit
|
|
|
43ae3d |
Reviewed-by: roland
|
|
|
43ae3d |
|
|
|
43ae3d |
diff --git openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
|
|
|
43ae3d |
--- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
|
|
|
43ae3d |
+++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
|
|
|
43ae3d |
@@ -38,10 +38,10 @@
|
|
|
43ae3d |
static void atomic_copy64(volatile void *src, volatile void *dst) {
|
|
|
43ae3d |
#if defined(PPC32)
|
|
|
43ae3d |
double tmp;
|
|
|
43ae3d |
- asm volatile ("lfd %0, 0(%1)\n"
|
|
|
43ae3d |
- "stfd %0, 0(%2)\n"
|
|
|
43ae3d |
- : "=f"(tmp)
|
|
|
43ae3d |
- : "b"(src), "b"(dst));
|
|
|
43ae3d |
+ asm volatile ("lfd %0, %2\n"
|
|
|
43ae3d |
+ "stfd %0, %1\n"
|
|
|
43ae3d |
+ : "=&f"(tmp), "=Q"(*(volatile double*)dst)
|
|
|
43ae3d |
+ : "Q"(*(volatile double*)src));
|
|
|
43ae3d |
#elif defined(S390) && !defined(_LP64)
|
|
|
43ae3d |
double tmp;
|
|
|
43ae3d |
asm volatile ("ld %0, 0(%1)\n"
|