From: Martin Möhrmann Date: Sat, 24 Oct 2020 03:54:46 +0000 (+0200) Subject: runtime: remove unused cpu architecture feature variables from binaries X-Git-Tag: go1.18beta1~1672 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=c1a14781ec;p=gostls13.git runtime: remove unused cpu architecture feature variables from binaries On amd64 this reduces go binary sizes by 176 bytes due to not referencing internal/cpu.ARM64 and internal/cpu.ARM. Change-Id: I8e4f31e2b1939b05eec2148b44d7cff7e0aeb30e Reviewed-on: https://go-review.googlesource.com/c/go/+/344329 Trust: Martin Möhrmann Run-TryBot: Martin Möhrmann Reviewed-by: Tobias Klauser TryBot-Result: Go Bot --- diff --git a/src/runtime/proc.go b/src/runtime/proc.go index c2e43ef5c3..55023e3f9f 100644 --- a/src/runtime/proc.go +++ b/src/runtime/proc.go @@ -622,13 +622,18 @@ func cpuinit() { // Support cpu feature variables are used in code generated by the compiler // to guard execution of instructions that can not be assumed to be always supported. - x86HasPOPCNT = cpu.X86.HasPOPCNT - x86HasSSE41 = cpu.X86.HasSSE41 - x86HasFMA = cpu.X86.HasFMA + switch GOARCH { + case "386", "AMD64": + x86HasPOPCNT = cpu.X86.HasPOPCNT + x86HasSSE41 = cpu.X86.HasSSE41 + x86HasFMA = cpu.X86.HasFMA - armHasVFPv4 = cpu.ARM.HasVFPv4 + case "arm": + armHasVFPv4 = cpu.ARM.HasVFPv4 - arm64HasATOMICS = cpu.ARM64.HasATOMICS + case "arm64": + arm64HasATOMICS = cpu.ARM64.HasATOMICS + } } // The bootstrap sequence is: