| // Copyright 2018 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 | |
| const cacheLineSize = 32 | |
| // HWCAP/HWCAP2 bits. | |
| // These are specific to Linux. | |
| const ( | |
| hwcap_SWP = 1 << 0 | |
| hwcap_HALF = 1 << 1 | |
| hwcap_THUMB = 1 << 2 | |
| hwcap_26BIT = 1 << 3 | |
| hwcap_FAST_MULT = 1 << 4 | |
| hwcap_FPA = 1 << 5 | |
| hwcap_VFP = 1 << 6 | |
| hwcap_EDSP = 1 << 7 | |
| hwcap_JAVA = 1 << 8 | |
| hwcap_IWMMXT = 1 << 9 | |
| hwcap_CRUNCH = 1 << 10 | |
| hwcap_THUMBEE = 1 << 11 | |
| hwcap_NEON = 1 << 12 | |
| hwcap_VFPv3 = 1 << 13 | |
| hwcap_VFPv3D16 = 1 << 14 | |
| hwcap_TLS = 1 << 15 | |
| hwcap_VFPv4 = 1 << 16 | |
| hwcap_IDIVA = 1 << 17 | |
| hwcap_IDIVT = 1 << 18 | |
| hwcap_VFPD32 = 1 << 19 | |
| hwcap_LPAE = 1 << 20 | |
| hwcap_EVTSTRM = 1 << 21 | |
| hwcap2_AES = 1 << 0 | |
| hwcap2_PMULL = 1 << 1 | |
| hwcap2_SHA1 = 1 << 2 | |
| hwcap2_SHA2 = 1 << 3 | |
| hwcap2_CRC32 = 1 << 4 | |
| ) | |
| func initOptions() { | |
| options = []option{ | |
| {Name: "pmull", Feature: &ARM.HasPMULL}, | |
| {Name: "sha1", Feature: &ARM.HasSHA1}, | |
| {Name: "sha2", Feature: &ARM.HasSHA2}, | |
| {Name: "swp", Feature: &ARM.HasSWP}, | |
| {Name: "thumb", Feature: &ARM.HasTHUMB}, | |
| {Name: "thumbee", Feature: &ARM.HasTHUMBEE}, | |
| {Name: "tls", Feature: &ARM.HasTLS}, | |
| {Name: "vfp", Feature: &ARM.HasVFP}, | |
| {Name: "vfpd32", Feature: &ARM.HasVFPD32}, | |
| {Name: "vfpv3", Feature: &ARM.HasVFPv3}, | |
| {Name: "vfpv3d16", Feature: &ARM.HasVFPv3D16}, | |
| {Name: "vfpv4", Feature: &ARM.HasVFPv4}, | |
| {Name: "half", Feature: &ARM.HasHALF}, | |
| {Name: "26bit", Feature: &ARM.Has26BIT}, | |
| {Name: "fastmul", Feature: &ARM.HasFASTMUL}, | |
| {Name: "fpa", Feature: &ARM.HasFPA}, | |
| {Name: "edsp", Feature: &ARM.HasEDSP}, | |
| {Name: "java", Feature: &ARM.HasJAVA}, | |
| {Name: "iwmmxt", Feature: &ARM.HasIWMMXT}, | |
| {Name: "crunch", Feature: &ARM.HasCRUNCH}, | |
| {Name: "neon", Feature: &ARM.HasNEON}, | |
| {Name: "idivt", Feature: &ARM.HasIDIVT}, | |
| {Name: "idiva", Feature: &ARM.HasIDIVA}, | |
| {Name: "lpae", Feature: &ARM.HasLPAE}, | |
| {Name: "evtstrm", Feature: &ARM.HasEVTSTRM}, | |
| {Name: "aes", Feature: &ARM.HasAES}, | |
| {Name: "crc32", Feature: &ARM.HasCRC32}, | |
| } | |
| } |