From 8b4d077fc9de4d57ee874ca9007ed1553f224853 Mon Sep 17 00:00:00 2001 From: Aurelien Jacobs Date: Sun, 17 Oct 2004 20:27:11 +0000 Subject: [PATCH] gcc 3.4.3 preversions do not appreciate invalid instruction and operand combinations anymore patch by (Aurelien Jacobs ) Originally committed as revision 3604 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/i386/cputest.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/libavcodec/i386/cputest.c b/libavcodec/i386/cputest.c index 9b2e6a2ce9..d2a3851911 100644 --- a/libavcodec/i386/cputest.c +++ b/libavcodec/i386/cputest.c @@ -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);