1
2
3
4
5 package cpu
6
7 const cacheLineSize = 32
8
9
10
11 const (
12 hwcap_SWP = 1 << 0
13 hwcap_HALF = 1 << 1
14 hwcap_THUMB = 1 << 2
15 hwcap_26BIT = 1 << 3
16 hwcap_FAST_MULT = 1 << 4
17 hwcap_FPA = 1 << 5
18 hwcap_VFP = 1 << 6
19 hwcap_EDSP = 1 << 7
20 hwcap_JAVA = 1 << 8
21 hwcap_IWMMXT = 1 << 9
22 hwcap_CRUNCH = 1 << 10
23 hwcap_THUMBEE = 1 << 11
24 hwcap_NEON = 1 << 12
25 hwcap_VFPv3 = 1 << 13
26 hwcap_VFPv3D16 = 1 << 14
27 hwcap_TLS = 1 << 15
28 hwcap_VFPv4 = 1 << 16
29 hwcap_IDIVA = 1 << 17
30 hwcap_IDIVT = 1 << 18
31 hwcap_VFPD32 = 1 << 19
32 hwcap_LPAE = 1 << 20
33 hwcap_EVTSTRM = 1 << 21
34
35 hwcap2_AES = 1 << 0
36 hwcap2_PMULL = 1 << 1
37 hwcap2_SHA1 = 1 << 2
38 hwcap2_SHA2 = 1 << 3
39 hwcap2_CRC32 = 1 << 4
40 )
41
42 func initOptions() {
43 options = []option{
44 {Name: "pmull", Feature: &ARM.HasPMULL},
45 {Name: "sha1", Feature: &ARM.HasSHA1},
46 {Name: "sha2", Feature: &ARM.HasSHA2},
47 {Name: "swp", Feature: &ARM.HasSWP},
48 {Name: "thumb", Feature: &ARM.HasTHUMB},
49 {Name: "thumbee", Feature: &ARM.HasTHUMBEE},
50 {Name: "tls", Feature: &ARM.HasTLS},
51 {Name: "vfp", Feature: &ARM.HasVFP},
52 {Name: "vfpd32", Feature: &ARM.HasVFPD32},
53 {Name: "vfpv3", Feature: &ARM.HasVFPv3},
54 {Name: "vfpv3d16", Feature: &ARM.HasVFPv3D16},
55 {Name: "vfpv4", Feature: &ARM.HasVFPv4},
56 {Name: "half", Feature: &ARM.HasHALF},
57 {Name: "26bit", Feature: &ARM.Has26BIT},
58 {Name: "fastmul", Feature: &ARM.HasFASTMUL},
59 {Name: "fpa", Feature: &ARM.HasFPA},
60 {Name: "edsp", Feature: &ARM.HasEDSP},
61 {Name: "java", Feature: &ARM.HasJAVA},
62 {Name: "iwmmxt", Feature: &ARM.HasIWMMXT},
63 {Name: "crunch", Feature: &ARM.HasCRUNCH},
64 {Name: "neon", Feature: &ARM.HasNEON},
65 {Name: "idivt", Feature: &ARM.HasIDIVT},
66 {Name: "idiva", Feature: &ARM.HasIDIVA},
67 {Name: "lpae", Feature: &ARM.HasLPAE},
68 {Name: "evtstrm", Feature: &ARM.HasEVTSTRM},
69 {Name: "aes", Feature: &ARM.HasAES},
70 {Name: "crc32", Feature: &ARM.HasCRC32},
71 }
72
73 }
74
View as plain text