diff options
Diffstat (limited to 'libxine/files/cpu-1.0.0-rc7.patch')
-rw-r--r-- | libxine/files/cpu-1.0.0-rc7.patch | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/libxine/files/cpu-1.0.0-rc7.patch b/libxine/files/cpu-1.0.0-rc7.patch index e69de29bb2..a7ccdbbfa9 100644 --- a/libxine/files/cpu-1.0.0-rc7.patch +++ b/libxine/files/cpu-1.0.0-rc7.patch @@ -0,0 +1,112 @@ +--- xine-lib-1-rc6a/src/post/goom/xmmx.c.orig 2004-09-16 21:53:34.040049792 -0400 ++++ xine-lib-1-rc6a/src/post/goom/xmmx.c 2004-09-16 21:59:24.407785800 -0400 +@@ -112,23 +112,23 @@ + * 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 @@ + * 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 @@ + /*^*/ "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" + ); + + /* +--- xine-lib-1-rc7/src/post/goom/mmx.h 2004-09-12 05:17:26.000000000 -0700 ++++ xine-lib-1-rc7.new/src/post/goom/mmx.h 2004-11-09 16:08:17.777667856 -0700 +@@ -71,13 +71,15 @@ + */ + register int rval = 0; + ++ /* Maybe if I yell it will help: DON'T CLOBBER EBX! */ ++ + __asm__ __volatile__ ( + /* See if CPUID instruction is supported ... */ + /* ... Get copies of EFLAGS into eax and ecx */ + "pushf\n\t" + "popl %%eax\n\t" + "movl %%eax, %%ecx\n\t" +- ++ + /* ... Toggle the ID bit in one copy and store */ + /* to the EFLAGS reg */ + "xorl $0x200000, %%eax\n\t" +@@ -97,6 +99,8 @@ + /* Get standard CPUID information, and + go to a specific vendor section */ + "movl $0, %%eax\n\t" ++ ++ "pushl %%ebx\n\t" + "cpuid\n\t" + + /* Check for Intel */ +@@ -214,9 +218,10 @@ + "movl $0, %0\n\n\t" + + "Return:\n\t" ++ "popl %%ebx\n\t" + : "=X" (rval) + : /* no input */ +- : "eax", "ebx", "ecx", "edx" ++ : "eax", "ecx", "edx" + ); + + /* Return */ |