[Scummvm-cvs-logs] CVS: scummvm/sound/softsynth/mt32 i386.cpp,1.3,1.3.2.1
Eugene Sandulenko
sev at users.sourceforge.net
Mon Oct 17 21:29:29 CEST 2005
Update of /cvsroot/scummvm/scummvm/sound/softsynth/mt32
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24844/sound/softsynth/mt32
Modified Files:
Tag: branch-0-8-0
i386.cpp
Log Message:
Backport fix for bug #1221549 "MT32emu: doesn't compile under gcc 3.4.2 / i386"
Index: i386.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sound/softsynth/mt32/i386.cpp,v
retrieving revision 1.3
retrieving revision 1.3.2.1
diff -u -d -r1.3 -r1.3.2.1
--- i386.cpp 19 Jul 2005 17:30:49 -0000 1.3
+++ i386.cpp 18 Oct 2005 04:28:58 -0000 1.3.2.1
@@ -55,10 +55,12 @@
/* check cpuid */
__asm__ __volatile__(
+ "pushl %%ebx \n" \
"movl $1, %%eax \n" \
"cpuid \n" \
"movl %%edx, %0 \n" \
- : "=r"(result) : : "eax", "ebx", "ecx", "edx");
+ "popl %%ebx \n" \
+ : "=r"(result) : : "eax", "ecx", "edx");
if (result & (1 << 25))
return true;
@@ -74,10 +76,12 @@
// get cpuid
__asm__ __volatile__(
+ "pushl %%ebx \n" \
"movl $0x80000001, %%eax \n" \
"cpuid \n" \
"movl %%edx, %0 \n" \
- : "=r"(result) : : "eax", "ebx", "ecx", "edx");
+ "popl %%ebx \n" \
+ : "=r"(result) : : "eax", "ecx", "edx");
if (result & 0x80000000)
return true;
@@ -154,8 +158,8 @@
__asm__ __volatile__ (
"movq %0, %%mm1 \n" \
" \n" \
- "movl %1, %%ebx \n" \
- "movq 0(%%ebx), %%mm2 \n" \
+ "movl %1, %%edi \n" \
+ "movq 0(%%edi), %%mm2 \n" \
" \n" \
"movl %2, %%eax; \n" \
"movq 0(%%eax), %%mm3 \n" \
@@ -168,8 +172,8 @@
" \n" \
"movd %%mm1, %3 \n" \
" \n" \
- "addl $8, %%ebx \n" \
- "movq 0(%%ebx), %%mm2 \n" \
+ "addl $8, %%edi \n" \
+ "movq 0(%%edi), %%mm2 \n" \
"movq 0(%%eax), %%mm3 \n" \
" \n" \
"pfmul %%mm3, %%mm2 \n" \
@@ -183,10 +187,10 @@
" \n" \
"movd %%mm3, 4(%%eax) \n" \
" \n" \
- "addl $8, %%ebx \n" \
+ "addl $8, %%edi \n" \
"addl $8, %%eax \n" \
" \n" \
- "movq 0(%%ebx), %%mm2 \n" \
+ "movq 0(%%edi), %%mm2 \n" \
"movq 0(%%eax), %%mm3 \n" \
" \n" \
"pfmul %%mm3, %%mm2 \n" \
@@ -197,8 +201,8 @@
" \n" \
"movd %%mm1, %3 \n" \
" \n" \
- "addl $8, %%ebx \n" \
- "movq 0(%%ebx), %%mm2 \n" \
+ "addl $8, %%edi \n" \
+ "movq 0(%%edi), %%mm2 \n" \
"movq 0(%%eax), %%mm3 \n" \
" \n" \
"pfmul %%mm3, %%mm2 \n" \
@@ -214,7 +218,7 @@
"movd %%mm1, %0 \n" \
"femms \n" \
: "=m"(output) : "g"(coef_ptr), "g"(hist1_ptr), "m"(tmp)
- : "eax", "ebx", "memory"
+ : "eax", "edi", "memory"
#ifdef __MMX__
, "mm1", "mm2", "mm3"
#endif
@@ -383,6 +387,7 @@
"por %%mm2, %%mm1 \n" \
"movl %3, %%edi \n" \
"movl %4, %%esi \n" \
+ "pushl %%ebx \n" \
"1: \n" \
"movw 0(%%esi), %%bx \n" \
"addl $2, %%esi \n" \
@@ -408,8 +413,9 @@
"cmpl $0, %%ecx \n" \
"jg 1b \n" \
"emms \n" \
+ "popl %%ebx \n" \
: : "g"(quadlen), "g"(leftvol), "g"(rightvol), "g"(partialBuf), "g"(p1buf)
- : "eax", "ebx", "ecx", "edx", "edi", "esi", "memory"
+ : "eax", "ecx", "edx", "edi", "esi", "memory"
#ifdef __MMX__
, "mm1", "mm2", "mm3"
#endif
More information about the Scummvm-git-logs
mailing list