aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/i386/cputest.c
diff options
context:
space:
mode:
authorAurelien Jacobs <aurel@gnuage.org>2004-10-17 20:27:11 +0000
committerMichael Niedermayer <michaelni@gmx.at>2004-10-17 20:27:11 +0000
commit8b4d077fc9de4d57ee874ca9007ed1553f224853 (patch)
treed86c9aaec490111b54ca33b2503ee4e600c8c511 /libavcodec/i386/cputest.c
parent394c4d77d2f37e373c617f9c90e5c9f6383656c2 (diff)
downloadffmpeg-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.c9
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);