diff options
author | Aurelien Jacobs <aurel@gnuage.org> | 2004-10-17 20:27:11 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2004-10-17 20:27:11 +0000 |
commit | 8b4d077fc9de4d57ee874ca9007ed1553f224853 (patch) | |
tree | d86c9aaec490111b54ca33b2503ee4e600c8c511 /libavcodec/i386/cputest.c | |
parent | 394c4d77d2f37e373c617f9c90e5c9f6383656c2 (diff) | |
download | ffmpeg-8b4d077fc9de4d57ee874ca9007ed1553f224853.tar.gz |
gcc 3.4.3 preversions do not appreciate invalid instruction and operand combinations anymore patch by (Aurelien Jacobs <aurel at gnuage dot org>)
Originally committed as revision 3604 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/i386/cputest.c')
-rw-r--r-- | libavcodec/i386/cputest.c | 9 |
1 files 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); |