From 4f94897f180ea9aeef5457cc81fc5e1f42058c94 Mon Sep 17 00:00:00 2001 From: Darren Salt Date: Mon, 2 May 2005 21:13:42 +0000 Subject: **BUGFIX** Support --enable-fpic with recent versions of gcc. (The original version of this patch was supplied by Nix .) CVS patchset: 7513 CVS date: 2005/05/02 21:13:42 --- src/post/goom/mmx.h | 4 +++- src/post/goom/xmmx.c | 28 ++++++++++++++-------------- 2 files changed, 17 insertions(+), 15 deletions(-) (limited to 'src') 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" ); /* -- cgit v1.2.3