summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPieter van den Abeele <pvdabeel@gentoo.org>2003-03-30 10:01:26 +0000
committerPieter van den Abeele <pvdabeel@gentoo.org>2003-03-30 10:01:26 +0000
commit1946dbe139dc6fab903c429cb5edccd8c3203a87 (patch)
treed4b937948e2ae64671781b872e7009aaeab4292f /media-libs
parentblockage (diff)
downloadhistorical-1946dbe139dc6fab903c429cb5edccd8c3203a87.tar.gz
historical-1946dbe139dc6fab903c429cb5edccd8c3203a87.tar.bz2
historical-1946dbe139dc6fab903c429cb5edccd8c3203a87.zip
Fix broken ppc asm by using slightly slower but working code
Diffstat (limited to 'media-libs')
-rw-r--r--media-libs/gst-plugins/files/noppcasm.patch65
-rw-r--r--media-libs/gst-plugins/gst-plugins-0.6.0-r4.ebuild6
2 files changed, 70 insertions, 1 deletions
diff --git a/media-libs/gst-plugins/files/noppcasm.patch b/media-libs/gst-plugins/files/noppcasm.patch
new file mode 100644
index 000000000000..9a7fceeab1c3
--- /dev/null
+++ b/media-libs/gst-plugins/files/noppcasm.patch
@@ -0,0 +1,65 @@
+diff -urN ori/gst-libs/gst/resample/dtos.c gst-plugins-0.6.0/gst-libs/gst/resample/dtos.c
+--- ori/gst-libs/gst/resample/dtos.c 2002-09-15 23:39:54.000000000 +0200
++++ gst-plugins-0.6.0/gst-libs/gst/resample/dtos.c 2003-03-30 11:14:29.000000000 +0200
+@@ -101,28 +101,7 @@
+
+ void conv_double_short_altivec(double *dest, short *src, int n)
+ {
+- int i;
+-
+- for(i=0;i<n;i+=4){
+- av_tmp.i[0] = src[0];
+- av_tmp.i[1] = src[1];
+- av_tmp.i[2] = src[2];
+- av_tmp.i[3] = src[3];
+-
+- asm(
+- " lvx 0,0,%0\n"
+- " vcfsx 1,0,0\n"
+- " stvx 1,0,%0\n"
+- : : "r" (&av_tmp)
+- );
+-
+- dest[0]=av_tmp.f[0];
+- dest[1]=av_tmp.f[1];
+- dest[2]=av_tmp.f[2];
+- dest[3]=av_tmp.f[3];
+- src += 4;
+- dest += 4;
+- }
++ conv_short_double_ref(dest,src,n);
+ }
+ #endif
+ #endif
+@@ -147,30 +126,7 @@
+ #ifdef HAVE_CPU_PPC
+ void conv_short_double_ppcasm(short *dest, double *src, int n)
+ {
+- int tmp[2];
+- double min = -32768.0;
+- double max = 32767.0;
+- double ftmp0, ftmp1;
+-
+- asm __volatile__(
+- "\taddic. %3,%3,-8\n"
+- "\taddic. %6,%6,-2\n"
+- "loop:\n"
+- "\tlfdu %0,8(%3)\n"
+- "\tfsub %1,%0,%4\n"
+- "\tfsel %0,%1,%0,%4\n"
+- "\tfsub %1,%0,%5\n"
+- "\tfsel %0,%1,%5,%0\n"
+- "\tfctiw %1,%0\n"
+- "\taddic. 5,5,-1\n"
+- "\tstfd %1,0(%2)\n"
+- "\tlhz 9,6(%2)\n"
+- "\tsthu 9,2(%6)\n"
+- "\tbne loop\n"
+- : "=&f" (ftmp0), "=&f" (ftmp1)
+- : "b" (tmp), "r" (src), "f" (min), "f" (max), "r" (dest)
+- : "r9", "r5" );
+-
++ conv_short_double_ref(dest,src,n);
+ }
+ #endif
+
diff --git a/media-libs/gst-plugins/gst-plugins-0.6.0-r4.ebuild b/media-libs/gst-plugins/gst-plugins-0.6.0-r4.ebuild
index 8f423a3d47d7..051112ef8f16 100644
--- a/media-libs/gst-plugins/gst-plugins-0.6.0-r4.ebuild
+++ b/media-libs/gst-plugins/gst-plugins-0.6.0-r4.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2003 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License, v2 or later
-# $Header: /var/cvsroot/gentoo-x86/media-libs/gst-plugins/gst-plugins-0.6.0-r4.ebuild,v 1.2 2003/03/04 22:27:21 foser Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-libs/gst-plugins/gst-plugins-0.6.0-r4.ebuild,v 1.3 2003/03/30 10:01:20 pvdabeel Exp $
inherit eutils libtool gnome2 flag-o-matic
@@ -60,6 +60,10 @@ DEPEND="${RDEPEND}
src_unpack() {
unpack ${A}
+ cd ${S}
+ # ppc asm included in the resample plugin seems to be broken,
+ # using a slower but working version for now
+ epatch ${FILESDIR}/noppcasm.patch
# ffmpeg libs fix
use oggvorbis && epatch ${FILESDIR}/${PN}-${PV_MAJ_MIN}-ffmpeg_ldflags.patch