[Scummvm-cvs-logs] CVS: scummvm/sound/softsynth/mt32 i386.cpp,1.2,1.3

Torbjörn Andersson eriktorbjorn at users.sourceforge.net
Tue Jul 19 10:34:59 CEST 2005


Update of /cvsroot/scummvm/scummvm/sound/softsynth/mt32
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28103

Modified Files:
	i386.cpp 
Log Message:
I believe this fixes a GCC 4 compile error, but I can't run the MT-32
emulator (my computer is too slow, and anyway I don't have the necessary
data files) so I haven't tested it other than by compiling it.

See bug #1224138 for details.


Index: i386.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sound/softsynth/mt32/i386.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- i386.cpp	20 Mar 2005 16:24:55 -0000	1.2
+++ i386.cpp	19 Jul 2005 17:30:49 -0000	1.3
@@ -139,7 +139,11 @@
 		"popl %2                        \n" \
 		"popl %1                        \n" \
 		: : "r"(output), "r"(coef_ptr), "r"(hist1_ptr)
-		: "xmm1", "xmm2", "xmm3", "memory");
+		: "memory"
+#ifdef __SSE__
+		, "xmm1", "xmm2", "xmm3"
+#endif
+		);
 
 	return *output;
 }
@@ -210,7 +214,11 @@
 		"movd %%mm1, %0       \n" \
 		"femms                \n" \
 		: "=m"(output) : "g"(coef_ptr), "g"(hist1_ptr), "m"(tmp)
-		: "eax", "ebx", "mm1", "mm2", "mm3", "memory");
+		: "eax", "ebx", "memory"
+#ifdef __MMX__
+		, "mm1", "mm2", "mm3"
+#endif
+		);
 
 	return output;
 }
@@ -242,7 +250,11 @@
 		"jg   1b              \n" \
 		"emms                 \n" \
 		: : "g"(tmplen), "g"(myvolume), "g"(useBuf), "g"(snd)
-		: "eax", "ecx", "edi", "esi", "mm1", "mm2", "mm3", "memory");
+		: "eax", "ecx", "edi", "esi", "memory"
+#ifdef __MMX__
+		, "mm1", "mm2", "mm3"
+#endif
+		);
 }
 
 static inline void atti386_produceOutput2(Bit32u len, Bit16s *snd, float *sndbufl, float *sndbufr, float *multFactor) {
@@ -302,7 +314,11 @@
 		"jg   1b              \n" \
 		"emms                 \n" \
 		: : "g"(len), "g"(buf1), "g"(buf2)
-		: "ecx", "edi", "esi", "mm1", "mm2", "memory");
+		: "ecx", "edi", "esi", "memory"
+#ifdef __MMX__
+		, "mm1", "mm2"
+#endif
+		);
 }
 
 static inline void atti386_mixBuffersRingMix(Bit16s * buf1, Bit16s *buf2, int len) {
@@ -324,7 +340,11 @@
 		"jg   1b              \n" \
 		"emms                 \n" \
 		: : "g"(len), "g"(buf1), "g"(buf2)
-		: "ecx", "edi", "esi", "mm1", "mm2", "mm3", "memory");
+		: "ecx", "edi", "esi", "memory"
+#ifdef __MMX__
+		, "mm1", "mm2", "mm3"
+#endif
+		);
 }
 
 static inline void atti386_mixBuffersRing(Bit16s * buf1, Bit16s *buf2, int len) {
@@ -344,7 +364,11 @@
 		"jg   1b              \n" \
 		"emms                 \n" \
 		: : "g"(len), "g"(buf1), "g"(buf2)
-		: "ecx", "edi", "esi", "mm1", "mm2", "memory");
+		: "ecx", "edi", "esi", "memory"
+#ifdef __MMX__
+		, "mm1", "mm2"
+#endif
+		);
 }
 
 static inline void atti386_partialProductOutput(int quadlen, Bit16s leftvol, Bit16s rightvol, Bit16s *partialBuf, Bit16s *p1buf) {
@@ -385,7 +409,11 @@
 		"jg 1b                \n" \
 		"emms                 \n"  \
 		: : "g"(quadlen), "g"(leftvol), "g"(rightvol), "g"(partialBuf), "g"(p1buf)
-		: "eax", "ebx", "ecx", "edx", "edi", "esi", "mm1", "mm2", "mm3", "memory");
+		: "eax", "ebx", "ecx", "edx", "edi", "esi", "memory"
+#ifdef __MMX__
+		, "mm1", "mm2", "mm3"
+#endif
+		);
 }
 
 #endif





More information about the Scummvm-git-logs mailing list