diff options
Diffstat (limited to 'dev-libs/libatomic_ops/files/libatomic_ops-1.2-ppc64-load_acquire.patch')
-rw-r--r-- | dev-libs/libatomic_ops/files/libatomic_ops-1.2-ppc64-load_acquire.patch | 46 |
1 files changed, 0 insertions, 46 deletions
diff --git a/dev-libs/libatomic_ops/files/libatomic_ops-1.2-ppc64-load_acquire.patch b/dev-libs/libatomic_ops/files/libatomic_ops-1.2-ppc64-load_acquire.patch deleted file mode 100644 index 9b6baa1..0000000 --- a/dev-libs/libatomic_ops/files/libatomic_ops-1.2-ppc64-load_acquire.patch +++ /dev/null @@ -1,46 +0,0 @@ ---- src/atomic_ops/sysdeps/gcc/powerpc.h.orig 2006-03-28 22:49:14.000000000 +0000 -+++ src/atomic_ops/sysdeps/gcc/powerpc.h 2007-06-08 23:10:07.000000000 +0000 -@@ -63,6 +63,8 @@ - /* seems to be that a data dependent branch followed by an isync is */ - /* cheaper. And the documentation is fairly explicit that this also */ - /* has acquire semantics. */ -+/* ppc64 uses ld not lwz */ -+#if defined(__powerpc64__) || defined(__ppc64__) || defined(__64BIT__) - AO_INLINE AO_t - AO_load_acquire(volatile AO_t *addr) - { -@@ -72,7 +74,7 @@ - /* registers. I always got "impossible constraint" when I */ - /* tried the "y" constraint. */ - __asm__ __volatile__ ( -- "lwz %0,%1\n" -+ "ld %0,%1\n" - "cmpw cr7,%0,%0\n" - "bne- cr7,1f\n" - "1: isync\n" -@@ -80,7 +82,25 @@ - : "m"(*addr) : "memory", "cc"); - return result; - } -+#else -+AO_INLINE AO_t -+AO_load_acquire(volatile AO_t *addr) -+{ -+ AO_t result; - -+ /* FIXME: We should get gcc to allocate one of the condition */ -+ /* registers. I always got "impossible constraint" when I */ -+ /* tried the "y" constraint. */ -+ __asm__ __volatile__ ( -+ "lwz %0,%1\n" -+ "cmpw cr7,%0,%0\n" -+ "bne- cr7,1f\n" -+ "1: isync\n" -+ : "=r" (result) -+ : "m"(*addr) : "memory", "cc"); -+ return result; -+} -+#endif - #define AO_HAVE_load_acquire - - /* We explicitly specify store_release, since it relies */ |