]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: remove unused cpu architecture feature variables from binaries
authorMartin Möhrmann <martin@golang.org>
Sat, 24 Oct 2020 03:54:46 +0000 (05:54 +0200)
committerMartin Möhrmann <martin@golang.org>
Mon, 23 Aug 2021 11:23:58 +0000 (11:23 +0000)
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 <martin@golang.org>
Run-TryBot: Martin Möhrmann <martin@golang.org>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Go Bot <gobot@golang.org>

src/runtime/proc.go

index c2e43ef5c3748eb9657d844bd5d3492ed0992aec..55023e3f9f0bb6acb74b353350bf3f6792b5cf8b 100644 (file)
@@ -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: