| // Copyright 2019 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| package cpu |
| |
| func doinit() { |
| ARM.HasSWP = isSet(hwCap, hwcap_SWP) |
| ARM.HasHALF = isSet(hwCap, hwcap_HALF) |
| ARM.HasTHUMB = isSet(hwCap, hwcap_THUMB) |
| ARM.Has26BIT = isSet(hwCap, hwcap_26BIT) |
| ARM.HasFASTMUL = isSet(hwCap, hwcap_FAST_MULT) |
| ARM.HasFPA = isSet(hwCap, hwcap_FPA) |
| ARM.HasVFP = isSet(hwCap, hwcap_VFP) |
| ARM.HasEDSP = isSet(hwCap, hwcap_EDSP) |
| ARM.HasJAVA = isSet(hwCap, hwcap_JAVA) |
| ARM.HasIWMMXT = isSet(hwCap, hwcap_IWMMXT) |
| ARM.HasCRUNCH = isSet(hwCap, hwcap_CRUNCH) |
| ARM.HasTHUMBEE = isSet(hwCap, hwcap_THUMBEE) |
| ARM.HasNEON = isSet(hwCap, hwcap_NEON) |
| ARM.HasVFPv3 = isSet(hwCap, hwcap_VFPv3) |
| ARM.HasVFPv3D16 = isSet(hwCap, hwcap_VFPv3D16) |
| ARM.HasTLS = isSet(hwCap, hwcap_TLS) |
| ARM.HasVFPv4 = isSet(hwCap, hwcap_VFPv4) |
| ARM.HasIDIVA = isSet(hwCap, hwcap_IDIVA) |
| ARM.HasIDIVT = isSet(hwCap, hwcap_IDIVT) |
| ARM.HasVFPD32 = isSet(hwCap, hwcap_VFPD32) |
| ARM.HasLPAE = isSet(hwCap, hwcap_LPAE) |
| ARM.HasEVTSTRM = isSet(hwCap, hwcap_EVTSTRM) |
| ARM.HasAES = isSet(hwCap2, hwcap2_AES) |
| ARM.HasPMULL = isSet(hwCap2, hwcap2_PMULL) |
| ARM.HasSHA1 = isSet(hwCap2, hwcap2_SHA1) |
| ARM.HasSHA2 = isSet(hwCap2, hwcap2_SHA2) |
| ARM.HasCRC32 = isSet(hwCap2, hwcap2_CRC32) |
| } |
| |
| func isSet(hwc uint, value uint) bool { |
| return hwc&value != 0 |
| } |