diff options
| author | Fangming.Fang <fangming.fang@arm.com> | 2017-11-08 02:17:51 +0000 |
|---|---|---|
| committer | Brad Fitzpatrick <bradfitz@golang.org> | 2017-11-14 19:07:15 +0000 |
| commit | 66bfbd9ad7a93ea85175bf1db663ca5f440666e3 (patch) | |
| tree | 7ada947a495b21f1520f1534a287ef9dcc398b0e /src/internal/cpu/cpu.go | |
| parent | b3ee6f0c2e8be8701ec15f3fb91397e086f106ae (diff) | |
| download | go-66bfbd9ad7a93ea85175bf1db663ca5f440666e3.tar.xz | |
internal/cpu: detect cpu features in internal/cpu package
change hash/crc32 package to use cpu package instead of using
runtime internal variables to check crc32 instruction
Change-Id: I8f88d2351bde8ed4e256f9adf822a08b9a00f532
Reviewed-on: https://go-review.googlesource.com/76490
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
Diffstat (limited to 'src/internal/cpu/cpu.go')
| -rw-r--r-- | src/internal/cpu/cpu.go | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/internal/cpu/cpu.go b/src/internal/cpu/cpu.go index 38fedc4e2b..22fc561002 100644 --- a/src/internal/cpu/cpu.go +++ b/src/internal/cpu/cpu.go @@ -57,3 +57,21 @@ type ppc64 struct { IsPOWER9 bool // ISA v3.00 (POWER9) _ [CacheLineSize]byte } + +var ARM64 arm64 + +// The booleans in arm64 contain the correspondingly named cpu feature bit. +// The struct is padded to avoid false sharing. +type arm64 struct { + _ [CacheLineSize]byte + HasFP bool + HasASIMD bool + HasEVTSTRM bool + HasAES bool + HasPMULL bool + HasSHA1 bool + HasSHA2 bool + HasCRC32 bool + HasATOMICS bool + _ [CacheLineSize]byte +} |
