Lots of fixes and assorted workaround
authorLuca Barbato <lu_zero@gentoo.org>
Wed, 17 Nov 2004 11:30:04 +0000 (11:30 +0000)
committerLuca Barbato <lu_zero@gentoo.org>
Wed, 17 Nov 2004 11:30:04 +0000 (11:30 +0000)
dev-libs/liboil/ChangeLog
dev-libs/liboil/Manifest
dev-libs/liboil/files/liboil-0.2.0-altivec.patch [new file with mode: 0644]
dev-libs/liboil/liboil-0.2.0.ebuild

index c2d535829ffc662bee78d7b1f99ce00658f2c95e..cf0b8b1ae6b67eebf25248dab395fd82bbdbb949 100644 (file)
@@ -1,6 +1,10 @@
 # ChangeLog for dev-libs/liboil
 # Copyright 1999-2004 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-libs/liboil/ChangeLog,v 1.1 2004/11/16 20:28:27 rizzo Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/liboil/ChangeLog,v 1.2 2004/11/17 11:30:04 lu_zero Exp $
+
+  17 Nov 2004; Luca Barbato <lu_zero@gentoo.org>
+  +files/liboil-0.2.0-altivec.patch, liboil-0.2.0.ebuild:
+  Fixed for ppc
 
 *liboil-0.2.0 (16 Nov 2004)
 
index f621aa055d2f1deb680ce3fa09c9eeb084de273a..cde2414b15e1dc5439008b528dad1a5495932a9f 100644 (file)
@@ -1,4 +1,5 @@
-MD5 d34761a39d8425b74d21cdff83a7d3e6 liboil-0.2.0.ebuild 725
+MD5 2c4a09b17f081c637130bbc4be52eb01 ChangeLog 477
 MD5 daa5b5804d181bac157ac3a6939bb152 metadata.xml 221
-MD5 6c9a939b0a0351e2feb5265018661270 ChangeLog 351
+MD5 a456e6cad065b2c0ca510fd77734e6b5 liboil-0.2.0.ebuild 806
 MD5 9224d2f16c82093310f3ec19f52c3ef3 files/digest-liboil-0.2.0 64
+MD5 5d5ac560f35118a370bed2a7a948341c files/liboil-0.2.0-altivec.patch 4732
diff --git a/dev-libs/liboil/files/liboil-0.2.0-altivec.patch b/dev-libs/liboil/files/liboil-0.2.0-altivec.patch
new file mode 100644 (file)
index 0000000..9cb42b3
--- /dev/null
@@ -0,0 +1,187 @@
+diff -ruN liboil-0.2.0.orig/liboil/simdpack/abs_u16_s16.c liboil-0.2.0/liboil/simdpack/abs_u16_s16.c
+--- liboil-0.2.0.orig/liboil/simdpack/abs_u16_s16.c    2004-09-08 06:18:51.000000000 +0200
++++ liboil-0.2.0/liboil/simdpack/abs_u16_s16.c 2004-11-17 01:09:54.395284136 +0100
+@@ -349,7 +349,7 @@
+ 
+ #ifdef HAVE_CPU_POWERPC
+ static void
+-abs_u16_s16_a16_altivec (uint16_t * dest, int dstr, int16_t * src, int sstr,
++abs_u16_s16_altivec (uint16_t * dest, int dstr, int16_t * src, int sstr,
+     int n)
+ {
+   int i;
+diff -ruN liboil-0.2.0.orig/liboil/simdpack/clip_ref.c liboil-0.2.0/liboil/simdpack/clip_ref.c
+--- liboil-0.2.0.orig/liboil/simdpack/clip_ref.c       2004-09-08 06:18:51.000000000 +0200
++++ liboil-0.2.0/liboil/simdpack/clip_ref.c    2004-11-17 11:19:29.352045552 +0100
+@@ -22,6 +22,9 @@
+ 
+ #include <liboil/liboilfunction.h>
+ 
++typedef float f32;
++typedef double f64;
++
+ #define CLIP_DEFINE_REF(type) \
+ static void clip_ ## type ## _ref ( \
+     type_ ## type *dest, \
+diff -ruN liboil-0.2.0.orig/liboil/simdpack/sad8x8.c liboil-0.2.0/liboil/simdpack/sad8x8.c
+--- liboil-0.2.0.orig/liboil/simdpack/sad8x8.c 2004-09-08 06:18:51.000000000 +0200
++++ liboil-0.2.0/liboil/simdpack/sad8x8.c      2004-11-17 11:12:43.265780048 +0100
+@@ -70,158 +70,6 @@
+ 
+ OIL_DEFINE_IMPL_REF(sad8x8_s16_ref, sad8x8_s16);
+ 
+-#ifdef HAVE_CPU_POWERPC
+-static void
+-sad8x8_s16_a16_altivec (uint32_t *dest, int16_t *src1, int16_t *src2, int s1str, int s2str)
+-{
+-      static uint32_t x[4] __attribute__ ((__aligned__ (16)));
+-
+-      sl_altivec_load8_0(src1, s1str);
+-      sl_altivec_load8_8(src2, s2str);
+-
+-      __asm__ __volatile__(
+-              "\n"
+-              "\tvspltisw 19, 0\n"
+-              "\tvspltisw 22, 0\n"
+-
+-              "\tvminsh 16, 0, 8\n"
+-              "\tvmaxsh 17, 0, 8\n"
+-              "\tvsubuhm 18, 17, 16\n"
+-              "\tvmrghh 20, 19, 18\n"
+-              "\tvmrglh 21, 19, 18\n"
+-              "\tvsumsws 22, 20, 22\n"
+-              "\tvsumsws 22, 21, 22\n"
+-
+-              "\tvminsh 16, 1, 9\n"
+-              "\tvmaxsh 17, 1, 9\n"
+-              "\tvsubuhm 18, 17, 16\n"
+-              "\tvmrghh 20, 19, 18\n"
+-              "\tvmrglh 21, 19, 18\n"
+-              "\tvsumsws 22, 20, 22\n"
+-              "\tvsumsws 22, 21, 22\n"
+-
+-              "\tvminsh 16, 2, 10\n"
+-              "\tvmaxsh 17, 2, 10\n"
+-              "\tvsubuhm 18, 17, 16\n"
+-              "\tvmrghh 20, 19, 18\n"
+-              "\tvmrglh 21, 19, 18\n"
+-              "\tvsumsws 22, 20, 22\n"
+-              "\tvsumsws 22, 21, 22\n"
+-
+-              "\tvminsh 16, 3, 11\n"
+-              "\tvmaxsh 17, 3, 11\n"
+-              "\tvsubuhm 18, 17, 16\n"
+-              "\tvmrghh 20, 19, 18\n"
+-              "\tvmrglh 21, 19, 18\n"
+-              "\tvsumsws 22, 20, 22\n"
+-              "\tvsumsws 22, 21, 22\n"
+-
+-              "\tvminsh 16, 4, 12\n"
+-              "\tvmaxsh 17, 4, 12\n"
+-              "\tvsubuhm 18, 17, 16\n"
+-              "\tvmrghh 20, 19, 18\n"
+-              "\tvmrglh 21, 19, 18\n"
+-              "\tvsumsws 22, 20, 22\n"
+-              "\tvsumsws 22, 21, 22\n"
+-
+-              "\tvminsh 16, 5, 13\n"
+-              "\tvmaxsh 17, 5, 13\n"
+-              "\tvsubuhm 18, 17, 16\n"
+-              "\tvmrghh 20, 19, 18\n"
+-              "\tvmrglh 21, 19, 18\n"
+-              "\tvsumsws 22, 20, 22\n"
+-              "\tvsumsws 22, 21, 22\n"
+-
+-              "\tvminsh 16, 6, 14\n"
+-              "\tvmaxsh 17, 6, 14\n"
+-              "\tvsubuhm 18, 17, 16\n"
+-              "\tvmrghh 20, 19, 18\n"
+-              "\tvmrglh 21, 19, 18\n"
+-              "\tvsumsws 22, 20, 22\n"
+-              "\tvsumsws 22, 21, 22\n"
+-
+-              "\tvminsh 16, 7, 15\n"
+-              "\tvmaxsh 17, 7, 15\n"
+-              "\tvsubuhm 18, 17, 16\n"
+-              "\tvmrghh 20, 19, 18\n"
+-              "\tvmrglh 21, 19, 18\n"
+-              "\tvsumsws 22, 20, 22\n"
+-              "\tvsumsws 22, 21, 22\n"
+-
+-              "\tli 0, 0\n"
+-              "\tstvx 22, %0, 0\n"
+-      :
+-      : "r" (x)
+-      );
+-      *dest = x[3];
+-}
+-
+-/* IMPL sad8x8_s16_l15_a16_altivec defined(SIMDPACK_USE_ALTIVEC) */
+-SL_sad8x8_s16_storage
+-void sad8x8_s16_l15_a16_altivec(uint32_t *dest, int16_t *src1, int16_t *src2, int s1str, int s2str)
+-{
+-      static uint32_t x[4] __attribute__ ((__aligned__ (16)));
+-
+-      sl_altivec_load8_0(src1, s1str);
+-      sl_altivec_load8_8(src2, s2str);
+-
+-      __asm__ __volatile__(
+-              "\n"
+-              "\tvspltisw 19, 0\n"
+-              "\tvspltisw 22, 0\n"
+-
+-              "\tvminsh 16, 0, 8\n"
+-              "\tvmaxsh 17, 0, 8\n"
+-              "\tvsubuhm 18, 17, 16\n"
+-              "\tvsum4shs 22, 18, 22\n"
+-
+-              "\tvminsh 16, 1, 9\n"
+-              "\tvmaxsh 17, 1, 9\n"
+-              "\tvsubuhm 18, 17, 16\n"
+-              "\tvsum4shs 22, 18, 22\n"
+-
+-              "\tvminsh 16, 2, 10\n"
+-              "\tvmaxsh 17, 2, 10\n"
+-              "\tvsubuhm 18, 17, 16\n"
+-              "\tvsum4shs 22, 18, 22\n"
+-
+-              "\tvminsh 16, 3, 11\n"
+-              "\tvmaxsh 17, 3, 11\n"
+-              "\tvsubuhm 18, 17, 16\n"
+-              "\tvsum4shs 22, 18, 22\n"
+-
+-              "\tvminsh 16, 4, 12\n"
+-              "\tvmaxsh 17, 4, 12\n"
+-              "\tvsubuhm 18, 17, 16\n"
+-              "\tvsum4shs 22, 18, 22\n"
+-
+-              "\tvminsh 16, 5, 13\n"
+-              "\tvmaxsh 17, 5, 13\n"
+-              "\tvsubuhm 18, 17, 16\n"
+-              "\tvsum4shs 22, 18, 22\n"
+-
+-              "\tvminsh 16, 6, 14\n"
+-              "\tvmaxsh 17, 6, 14\n"
+-              "\tvsubuhm 18, 17, 16\n"
+-              "\tvsum4shs 22, 18, 22\n"
+-
+-              "\tvminsh 16, 7, 15\n"
+-              "\tvmaxsh 17, 7, 15\n"
+-              "\tvsubuhm 18, 17, 16\n"
+-              "\tvsum4shs 22, 18, 22\n"
+-
+-              "\tvsumsws 22, 22, 19\n"
+-
+-              "\tli 0, 0\n"
+-              "\tstvx 22, %0, 0\n"
+-      :
+-      : "r" (x)
+-      );
+-      *dest = x[3];
+-}
+-#endif
+-
+-
+ #ifdef TEST_sad8x8_s16
+ int TEST_sad8x8_s16(void)
+ {
index fd4d418c40344ffd6df992d3b55e771155ac7b9d..6a347741db9c7d65145737d2edac6b097b323afc 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2004 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-libs/liboil/liboil-0.2.0.ebuild,v 1.1 2004/11/16 20:28:27 rizzo Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/liboil/liboil-0.2.0.ebuild,v 1.2 2004/11/17 11:30:04 lu_zero Exp $
 
 inherit eutils
 DESCRIPTION="Liboil is a library of simple functions that are optimized for various CPUs."
@@ -9,13 +9,18 @@ SRC_URI="http://www.schleef.org/${PN}/download/${P}.tar.gz"
 
 LICENSE="LGPL-2"
 SLOT="0"
-KEYWORDS="~x86"
+KEYWORDS="~x86 ~ppc"
 IUSE=""
 #RESTRICT="nostrip"
-DEPEND="dev-libs/glib"
+DEPEND="=dev-libs/glib-2*"
 #RDEPEND=""
 #S=${WORKDIR}/${P}
 
+src_unpack() {
+       unpack ${A}
+       epatch ${FILESDIR}/${P}-altivec.patch
+}
+
 src_compile() {
        econf || die "econf failed"
        MAKEOPTS="${MAKEOPTS} -j1" emake || die "emake failed"