From d7b36486690ea0080791204b3999ad0a37ccadb9 Mon Sep 17 00:00:00 2001 From: Luca Barbato Date: Wed, 17 Nov 2004 11:30:04 +0000 Subject: [PATCH] Lots of fixes and assorted workaround --- dev-libs/liboil/ChangeLog | 6 +- dev-libs/liboil/Manifest | 5 +- .../liboil/files/liboil-0.2.0-altivec.patch | 187 ++++++++++++++++++ dev-libs/liboil/liboil-0.2.0.ebuild | 11 +- 4 files changed, 203 insertions(+), 6 deletions(-) create mode 100644 dev-libs/liboil/files/liboil-0.2.0-altivec.patch diff --git a/dev-libs/liboil/ChangeLog b/dev-libs/liboil/ChangeLog index c2d535829ffc..cf0b8b1ae6b6 100644 --- a/dev-libs/liboil/ChangeLog +++ b/dev-libs/liboil/ChangeLog @@ -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 + +files/liboil-0.2.0-altivec.patch, liboil-0.2.0.ebuild: + Fixed for ppc *liboil-0.2.0 (16 Nov 2004) diff --git a/dev-libs/liboil/Manifest b/dev-libs/liboil/Manifest index f621aa055d2f..cde2414b15e1 100644 --- a/dev-libs/liboil/Manifest +++ b/dev-libs/liboil/Manifest @@ -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 index 000000000000..9cb42b3a0361 --- /dev/null +++ b/dev-libs/liboil/files/liboil-0.2.0-altivec.patch @@ -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 + ++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) + { diff --git a/dev-libs/liboil/liboil-0.2.0.ebuild b/dev-libs/liboil/liboil-0.2.0.ebuild index fd4d418c4034..6a347741db9c 100644 --- a/dev-libs/liboil/liboil-0.2.0.ebuild +++ b/dev-libs/liboil/liboil-0.2.0.ebuild @@ -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" -- 2.26.2