From be0675ce672b7788b0f1277704be663f415d6498 Mon Sep 17 00:00:00 2001 From: Sean McGovern <gseanmcg@gmail.com> Date: Wed, 7 Dec 2011 21:51:28 +0000 Subject: [PATCH] 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> --- libavutil/x86/cpu.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libavutil/x86/cpu.c b/libavutil/x86/cpu.c index 3975e685339..2424fe45164 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); -- GitLab