summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDarren Salt <linux@youmustbejoking.demon.co.uk>2005-05-02 21:13:42 +0000
committerDarren Salt <linux@youmustbejoking.demon.co.uk>2005-05-02 21:13:42 +0000
commit4f94897f180ea9aeef5457cc81fc5e1f42058c94 (patch)
treee2e5c1658b01bd6b145a88c5472c1700889734d1 /src
parentd53774bcbda5319e132566e7bf42243946b6d3b1 (diff)
downloadxine-lib-4f94897f180ea9aeef5457cc81fc5e1f42058c94.tar.gz
xine-lib-4f94897f180ea9aeef5457cc81fc5e1f42058c94.tar.bz2
**BUGFIX**
Support --enable-fpic with recent versions of gcc. (The original version of this patch was supplied by Nix <nix@esperi.org.uk>.) CVS patchset: 7513 CVS date: 2005/05/02 21:13:42
Diffstat (limited to 'src')
-rwxr-xr-xsrc/post/goom/mmx.h4
-rw-r--r--src/post/goom/xmmx.c28
2 files changed, 17 insertions, 15 deletions
diff --git a/src/post/goom/mmx.h b/src/post/goom/mmx.h
index ab9d57d49..e43a1987c 100755
--- a/src/post/goom/mmx.h
+++ b/src/post/goom/mmx.h
@@ -72,6 +72,7 @@ mm_support(void)
register int rval = 0;
__asm__ __volatile__ (
+ "push %%ebx\n\t"
/* See if CPUID instruction is supported ... */
/* ... Get copies of EFLAGS into eax and ecx */
"pushf\n\t"
@@ -214,9 +215,10 @@ mm_support(void)
"movl $0, %0\n\n\t"
"Return:\n\t"
+ "pop %%ebx\n\t"
: "=X" (rval)
: /* no input */
- : "eax", "ebx", "ecx", "edx"
+ : "eax", "ecx", "edx"
);
/* Return */
diff --git a/src/post/goom/xmmx.c b/src/post/goom/xmmx.c
index ada41066d..d9fead3fb 100644
--- a/src/post/goom/xmmx.c
+++ b/src/post/goom/xmmx.c
@@ -112,23 +112,23 @@ void zoom_filter_xmmx (int prevX, int prevY,
* post : mm3 & mm4 : coefs for this position
* mm1 : X vector [0|X]
*
- * modif : eax,ebx
+ * modif : eax,ecx
*/
__asm__ __volatile__ (
- "movd %%mm0,%%ebx\n"
+ "movd %%mm0,%%ecx\n"
"movq %%mm0,%%mm1\n"
- "andl $15,%%ebx\n"
+ "andl $15,%%ecx\n"
"psrlq $32,%%mm1\n"
- "shll $6,%%ebx\n"
+ "shll $6,%%ecx\n"
"movd %%mm1,%%eax\n"
- "addl %0,%%ebx\n"
+ "addl %0,%%ecx\n"
"andl $15,%%eax\n"
- "movd (%%ebx,%%eax,4),%%mm3\n"
- ::"g"(precalCoef):"eax","ebx");
+ "movd (%%ecx,%%eax,4),%%mm3\n"
+ ::"g"(precalCoef):"eax","ecx");
/*
* extraction des coefficients...
@@ -158,7 +158,7 @@ void zoom_filter_xmmx (int prevX, int prevY,
* post : mm0 : expix1[position]
* mm2 : expix1[position+largeur]
*
- * modif : eax,ebx
+ * modif : eax,ecx
*/
psrld_i2r (PERTEDEC,mm0);
psrld_i2r (PERTEDEC,mm1);
@@ -167,23 +167,23 @@ void zoom_filter_xmmx (int prevX, int prevY,
/*^*/ "movq %%mm3,%%mm5\n" /*^*/
"mull %1\n"
- "movd %%mm0,%%ebx\n"
+ "movd %%mm0,%%ecx\n"
/*^*/ "punpcklbw %%mm5, %%mm3\n" /*^*/
- "addl %%ebx,%%eax\n"
+ "addl %%ecx,%%eax\n"
/*^*/ "movq %%mm3,%%mm4\n" /*^*/
/*^*/ "movq %%mm3,%%mm5\n" /*^*/
- "movl %0,%%ebx\n"
+ "movl %0,%%ecx\n"
/*^*/ "punpcklbw %%mm5,%%mm3\n" /*^*/
- "movq (%%ebx,%%eax,4),%%mm0\n"
+ "movq (%%ecx,%%eax,4),%%mm0\n"
/*^*/ "punpckhbw %%mm5,%%mm4\n" /*^*/
"addl %1,%%eax\n"
- "movq (%%ebx,%%eax,4),%%mm2\n"
+ "movq (%%ecx,%%eax,4),%%mm2\n"
- : : "X"(expix1), "X"(prevX):"eax","ebx"
+ : : "X"(expix1), "X"(prevX):"eax","ecx"
);
/*