gcc 3.4.3 preversions do not appreciate invalid instruction and operand combinations...
authorAurelien Jacobs <aurel@gnuage.org>
Sun, 17 Oct 2004 20:27:11 +0000 (20:27 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 17 Oct 2004 20:27:11 +0000 (20:27 +0000)
Originally committed as revision 3604 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/i386/cputest.c

index 9b2e6a2..d2a3851 100644 (file)
@@ -27,29 +27,30 @@ int mm_support(void)
 {
     int rval;
     int eax, ebx, ecx, edx;
+    long a, c;
     
     __asm__ __volatile__ (
                           /* See if CPUID instruction is supported ... */
                           /* ... Get copies of EFLAGS into eax and ecx */
                           "pushf\n\t"
                           "pop %0\n\t"
-                          "movl %0, %1\n\t"
+                          "mov %0, %1\n\t"
                           
                           /* ... Toggle the ID bit in one copy and store */
                           /*     to the EFLAGS reg */
-                          "xorl $0x200000, %0\n\t"
+                          "xor $0x200000, %0\n\t"
                           "push %0\n\t"
                           "popf\n\t"
                           
                           /* ... Get the (hopefully modified) EFLAGS */
                           "pushf\n\t"
                           "pop %0\n\t"
-                          : "=a" (eax), "=c" (ecx)
+                          : "=a" (a), "=c" (c)
                           :
                           : "cc" 
                           );
     
-    if (eax == ecx)
+    if (a == c)
         return 0; /* CPUID not supported */
     
     cpuid(0, eax, ebx, ecx, edx);