]> Cypherpunks repositories - gostls13.git/commitdiff
all: use internal/cpu feature variables directly
authorMartin Möhrmann <moehrmann@google.com>
Sat, 28 Jul 2018 07:08:09 +0000 (09:08 +0200)
committerMartin Möhrmann <moehrmann@google.com>
Mon, 20 Aug 2018 14:47:07 +0000 (14:47 +0000)
Avoid using package specific variables when there is a one to one
correspondance to cpu feature support exported by internal/cpu.

This makes it clearer which cpu feature is referenced.
Another advantage is that internal/cpu variables are padded to avoid
false sharing and memory and cache usage is shared by multiple packages.

Change-Id: If18fb448a95207cfa6a3376f3b2ddc4b230dd138
Reviewed-on: https://go-review.googlesource.com/126596
Run-TryBot: Martin Möhrmann <moehrmann@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/crypto/sha1/sha1block_arm64.go
src/crypto/sha256/sha256block_arm64.go
src/hash/crc32/crc32_arm64.go

index 173c40fec81c70e8f75f7270e98db410374d40b9..08d3df0000e686157952b2ffe20b2e3e87432a4f 100644 (file)
@@ -13,13 +13,11 @@ var k = []uint32{
        0xCA62C1D6,
 }
 
-var hasSHA1 = cpu.ARM64.HasSHA1
-
 //go:noescape
 func sha1block(h []uint32, p []byte, k []uint32)
 
 func block(dig *digest, p []byte) {
-       if !hasSHA1 {
+       if !cpu.ARM64.HasSHA1 {
                blockGeneric(dig, p)
        } else {
                h := dig.h[:]
index 75bbcbe0eb7e8191ef37c64c7a09b780287b33df..e5da5663631556e8cc36c2adb024c406705d40d4 100644 (file)
@@ -8,13 +8,11 @@ import "internal/cpu"
 
 var k = _K
 
-var hasSHA2 = cpu.ARM64.HasSHA2
-
 //go:noescape
 func sha256block(h []uint32, p []byte, k []uint32)
 
 func block(dig *digest, p []byte) {
-       if !hasSHA2 {
+       if !cpu.ARM64.HasSHA2 {
                blockGeneric(dig, p)
        } else {
                h := dig.h[:]
index 1f8779d506fc6bd55ca6ebbee49ce7228f92831a..0242d1d8a774a9f9944b245fac9f5cb00e79a8e3 100644 (file)
@@ -13,20 +13,18 @@ import "internal/cpu"
 func castagnoliUpdate(crc uint32, p []byte) uint32
 func ieeeUpdate(crc uint32, p []byte) uint32
 
-var hasCRC32 = cpu.ARM64.HasCRC32
-
 func archAvailableCastagnoli() bool {
-       return hasCRC32
+       return cpu.ARM64.HasCRC32
 }
 
 func archInitCastagnoli() {
-       if !hasCRC32 {
+       if !cpu.ARM64.HasCRC32 {
                panic("arch-specific crc32 instruction for Catagnoli not available")
        }
 }
 
 func archUpdateCastagnoli(crc uint32, p []byte) uint32 {
-       if !hasCRC32 {
+       if !cpu.ARM64.HasCRC32 {
                panic("arch-specific crc32 instruction for Castagnoli not available")
        }
 
@@ -34,17 +32,17 @@ func archUpdateCastagnoli(crc uint32, p []byte) uint32 {
 }
 
 func archAvailableIEEE() bool {
-       return hasCRC32
+       return cpu.ARM64.HasCRC32
 }
 
 func archInitIEEE() {
-       if !hasCRC32 {
+       if !cpu.ARM64.HasCRC32 {
                panic("arch-specific crc32 instruction for IEEE not available")
        }
 }
 
 func archUpdateIEEE(crc uint32, p []byte) uint32 {
-       if !hasCRC32 {
+       if !cpu.ARM64.HasCRC32 {
                panic("arch-specific crc32 instruction for IEEE not available")
        }