Janne Grunau <[email protected]> writes:

> On 2011-07-25 19:57:38 -0400, Sean McGovern wrote:
>> non-GNU compilers may have difficulty with the cpuid() macro, so
>> get the results and then store each member separately.
>> ---
>>  libavutil/x86/cpu.c |    5 ++++-
>>  1 files changed, 4 insertions(+), 1 deletions(-)
>> 
>> diff --git a/libavutil/x86/cpu.c b/libavutil/x86/cpu.c
>> index 78aeadf..618d2c2 100644
>> --- a/libavutil/x86/cpu.c
>> +++ b/libavutil/x86/cpu.c
>> @@ -74,7 +74,10 @@ int ff_get_cpu_flags_x86(void)
>>          return 0; /* CPUID not supported */
>>  #endif
>>  
>> -    cpuid(0, max_std_level, vendor.i[0], vendor.i[2], vendor.i[1]);
>> +    cpuid(0, max_std_level, ebx, ecx, edx);
>> +    vendor.i[0] = ebx;
>> +    vendor.i[1] = edx;
>> +    vendor.i[2] = ecx;
>>  
>>      if(max_std_level >= 1){
>>          cpuid(1, eax, ebx, ecx, std_caps);
>
> should be ok

I don't mind the patch, but it is a compiler bug.

-- 
Måns Rullgård
[email protected]
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to