summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Fischer <vlooe@web.de>2009-06-20 23:21:47 +0200
committerFlorian Fischer <vlooe@web.de>2009-06-20 23:21:47 +0200
commit11751056ae91a3a7060c8483012bcf0f848bf592 (patch)
tree16809904dea47c6988fcaa42eaccf85078216b21 /dev-libs
parentadded dev-libs/libatomic_ops (diff)
downloadmultilib-portage-11751056ae91a3a7060c8483012bcf0f848bf592.tar.gz
multilib-portage-11751056ae91a3a7060c8483012bcf0f848bf592.tar.bz2
multilib-portage-11751056ae91a3a7060c8483012bcf0f848bf592.zip
added missing patch of dev-libs/libatomic_ops
Diffstat (limited to 'dev-libs')
-rw-r--r--dev-libs/libatomic_ops/Manifest2
-rw-r--r--dev-libs/libatomic_ops/files/libatomic_ops-1.2-ppc-asm.patch11
-rw-r--r--dev-libs/libatomic_ops/files/libatomic_ops-1.2-ppc64-load_acquire.patch46
3 files changed, 59 insertions, 0 deletions
diff --git a/dev-libs/libatomic_ops/Manifest b/dev-libs/libatomic_ops/Manifest
index 709b8650f..82072f92e 100644
--- a/dev-libs/libatomic_ops/Manifest
+++ b/dev-libs/libatomic_ops/Manifest
@@ -1,2 +1,4 @@
+AUX libatomic_ops-1.2-ppc-asm.patch 427 RMD160 89773869a9336ff64aeac2b34091f3f93abd7817 SHA1 22b5a82efaa3e59d3f2372be51894201747d21e9 SHA256 a8cdb35c08084878a10c72ddfa318586135142dbbbb346e0d727e9d170eb28bb
+AUX libatomic_ops-1.2-ppc64-load_acquire.patch 1383 RMD160 d3d368915d613b8a8f4af4806ede9e9f53d3eadc SHA1 6ca477928f48f7cc1f2515eb3d8f99af7d118807 SHA256 f061cdf1e70448a193abe316d9c4b4f6b924132a99abcea9753b1440274304f1
DIST libatomic_ops-1.2.tar.gz 183780 RMD160 8c548b32033c954a61e740f9a0e76ca8f005c4f6 SHA1 8bf4134d614acb1a6234b3102e67a847ae9369b0 SHA256 a3d8768aa8fd2f6ae79be2d756b3a6b48816b3889ae906be3d5ffb2de5a5c781
EBUILD libatomic_ops-1.2-r1.ebuild 842 RMD160 cb2f7f2c5dacc4b157bc879f25f07627ff79ae94 SHA1 930611fa5038a500cf6bea613b0034fdeb4abdfd SHA256 576f22b0af62d35aaa8096f41a55e0245e20d36bd0ecbf0281e5db9a3816e08a
diff --git a/dev-libs/libatomic_ops/files/libatomic_ops-1.2-ppc-asm.patch b/dev-libs/libatomic_ops/files/libatomic_ops-1.2-ppc-asm.patch
new file mode 100644
index 000000000..f98f83fde
--- /dev/null
+++ b/dev-libs/libatomic_ops/files/libatomic_ops-1.2-ppc-asm.patch
@@ -0,0 +1,11 @@
+--- ../libatomic-ops-1.2/src/atomic_ops/sysdeps/gcc/powerpc.h 2006-03-29 09:49:14.000000000 +1100
++++ src/atomic_ops/sysdeps/gcc/powerpc.h 2007-08-27 10:51:00.000000000 +1000
+@@ -72,7 +72,7 @@
+ /* registers. I always got "impossible constraint" when I */
+ /* tried the "y" constraint. */
+ __asm__ __volatile__ (
+- "lwz %0,%1\n"
++ "lwz%X1 %0,%1\n"
+ "cmpw cr7,%0,%0\n"
+ "bne- cr7,1f\n"
+ "1: isync\n"
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
new file mode 100644
index 000000000..9b6baa188
--- /dev/null
+++ b/dev-libs/libatomic_ops/files/libatomic_ops-1.2-ppc64-load_acquire.patch
@@ -0,0 +1,46 @@
+--- 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 */