I seem to recall a bug where some CPU models don't properly set registers after a CPUID instruction (e.g., http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/sys/arch/i386/i386/locore.s#rev1.150). Is it possible this CPU is one of those? Maybe Go needs similar workarounds?
A way to test that hypothesis would be to add MOVL $0, BX MOVL $0, CX MOVL $0, DX before each of these CPUID instructions: src/cmd/dist/cpuid_386.s:9: CPUID src/runtime/asm_386.s:30: CPUID src/runtime/asm_386.s:47: CPUID On Fri, Aug 7, 2015 at 3:22 PM, Ted Unangst <t...@tedunangst.com> wrote: > Stuart Henderson wrote: >> >> I don't think a flavour is warranted, i386 packages are meant to run >> on all supported CPUs so if the runtime detection is insufficient >> we should just always set this variable. > > talk to upstream? this sounds like a bug if the runtime detection is > insufficient. unconditionally disabling sse would be a pessimization for most > users. >