Despite the make_env, the go binary still has a ton of SSE2 code using XMM registers: objdump -d /usr/obj/ports/go-1.4.1/fake-i386/usr/local/bin/go | grep xmm 808a559: f2 0f 10 05 e8 3e 45 movsd 0x8453ee8,%xmm0 808a561: f2 0f 11 44 24 38 movsd %xmm0,0x38(%esp) 808a61a: f2 0f 10 44 24 60 movsd 0x60(%esp),%xmm0 808a620: f2 0f 11 44 24 60 movsd %xmm0,0x60(%esp) 808a62e: f2 0f 10 44 24 58 movsd 0x58(%esp),%xmm0 808a634: f2 0f 11 44 24 58 movsd %xmm0,0x58(%esp) 808a63a: f2 0f 10 44 24 58 movsd 0x58(%esp),%xmm0 808a640: f2 0f 59 05 00 3f 45 mulsd 0x8453f00,%xmm0 808a648: f2 0f 11 44 24 58 movsd %xmm0,0x58(%esp) 808a64e: f2 0f 10 44 24 58 movsd 0x58(%esp),%xmm0 808a654: f2 0f 10 4c 24 60 movsd 0x60(%esp),%xmm1 808a65a: f2 0f 58 c8 addsd %xmm0,%xmm1 ...
I'll try to build go "manually" as per [1] now, just to compare its binary output with the package build process, and see if GO386=387 has an effect. [1] https://golang.org/doc/install/source
