Browse Source

x86 cpuid: set vendor union members separately

Solaris Studio (suncc) has difficulty with filling in
members of a union. Instead, let's retrieve and store the
cpuid() results separately. This is still a compiler bug,
however this fix does not cause a regression on other platforms.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
tags/n0.9
Sean McGovern Janne Grunau 14 years ago
parent
commit
be0675ce67
1 changed files with 4 additions and 1 deletions
  1. +4
    -1
      libavutil/x86/cpu.c

+ 4
- 1
libavutil/x86/cpu.c View File

@@ -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);


Loading…
Cancel
Save