1 --- xine-lib-1-rc6a/src/post/goom/xmmx.c.orig 2004-09-16 21:53:34.040049792 -0400
2 +++ xine-lib-1-rc6a/src/post/goom/xmmx.c 2004-09-16 21:59:24.407785800 -0400
4 * post : mm3 & mm4 : coefs for this position
10 __asm__ __volatile__ (
11 - "movd %%mm0,%%ebx\n"
12 + "movd %%mm0,%%ecx\n"
27 - "movd (%%ebx,%%eax,4),%%mm3\n"
28 - ::"g"(precalCoef):"eax","ebx");
29 + "movd (%%ecx,%%eax,4),%%mm3\n"
30 + ::"g"(precalCoef):"eax","ecx");
33 * extraction des coefficients...
35 * post : mm0 : expix1[position]
36 * mm2 : expix1[position+largeur]
41 psrld_i2r (PERTEDEC,mm0);
42 psrld_i2r (PERTEDEC,mm1);
44 /*^*/ "movq %%mm3,%%mm5\n" /*^*/
47 - "movd %%mm0,%%ebx\n"
48 + "movd %%mm0,%%ecx\n"
49 /*^*/ "punpcklbw %%mm5, %%mm3\n" /*^*/
51 - "addl %%ebx,%%eax\n"
52 + "addl %%ecx,%%eax\n"
53 /*^*/ "movq %%mm3,%%mm4\n" /*^*/
54 /*^*/ "movq %%mm3,%%mm5\n" /*^*/
58 /*^*/ "punpcklbw %%mm5,%%mm3\n" /*^*/
60 - "movq (%%ebx,%%eax,4),%%mm0\n"
61 + "movq (%%ecx,%%eax,4),%%mm0\n"
62 /*^*/ "punpckhbw %%mm5,%%mm4\n" /*^*/
65 - "movq (%%ebx,%%eax,4),%%mm2\n"
66 + "movq (%%ecx,%%eax,4),%%mm2\n"
68 - : : "X"(expix1), "X"(prevX):"eax","ebx"
69 + : : "X"(expix1), "X"(prevX):"eax","ecx"
73 --- xine-lib-1-rc7/src/post/goom/mmx.h 2004-09-12 05:17:26.000000000 -0700
74 +++ xine-lib-1-rc7.new/src/post/goom/mmx.h 2004-11-09 16:08:17.777667856 -0700
77 register int rval = 0;
79 + /* Maybe if I yell it will help: DON'T CLOBBER EBX! */
81 __asm__ __volatile__ (
82 /* See if CPUID instruction is supported ... */
83 /* ... Get copies of EFLAGS into eax and ecx */
86 "movl %%eax, %%ecx\n\t"
89 /* ... Toggle the ID bit in one copy and store */
90 /* to the EFLAGS reg */
91 "xorl $0x200000, %%eax\n\t"
93 /* Get standard CPUID information, and
94 go to a specific vendor section */
100 /* Check for Intel */
108 - : "eax", "ebx", "ecx", "edx"
109 + : "eax", "ecx", "edx"