...
Source file src/pkg/internal/cpu/cpu_ppc64x.go
1
2
3
4
5
6
7 package cpu
8
9 const CacheLinePadSize = 128
10
11
12
13
14
15 var HWCap uint
16 var HWCap2 uint
17
18
19 const (
20
21 PPC_FEATURE2_ARCH_2_07 = 0x80000000
22 PPC_FEATURE2_ARCH_3_00 = 0x00800000
23
24
25 PPC_FEATURE2_DARN = 0x00200000
26 PPC_FEATURE2_SCV = 0x00100000
27 )
28
29 func doinit() {
30 options = []option{
31 {Name: "darn", Feature: &PPC64.HasDARN},
32 {Name: "scv", Feature: &PPC64.HasSCV},
33 {Name: "power9", Feature: &PPC64.IsPOWER9},
34
35
36 {Name: "power8", Feature: &PPC64.IsPOWER8, Required: true},
37 }
38
39
40 PPC64.IsPOWER8 = isSet(HWCap2, PPC_FEATURE2_ARCH_2_07)
41 PPC64.IsPOWER9 = isSet(HWCap2, PPC_FEATURE2_ARCH_3_00)
42 PPC64.HasDARN = isSet(HWCap2, PPC_FEATURE2_DARN)
43 PPC64.HasSCV = isSet(HWCap2, PPC_FEATURE2_SCV)
44 }
45
46 func isSet(hwc uint, value uint) bool {
47 return hwc&value != 0
48 }
49
View as plain text