Skip to content

Commit 771b9fb

Browse files
Cleanup code to be idiomatic Go
1 parent b001441 commit 771b9fb

16 files changed

+2525
-2381
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
*.test

.travis.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@ os:
77

88
go:
99
- tip
10-
- 1.11
11-
- 1.10
10+
- 1.11.x
1211

1312
env:
1413
- ARCH=x86_64

cpuid.go

Lines changed: 62 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -17,65 +17,65 @@ package sha256
1717

1818
// True when SIMD instructions are available.
1919
var avx512 bool
20-
var avx2 bool
21-
var avx bool
22-
var sse bool
23-
var sse2 bool
24-
var sse3 bool
25-
var ssse3 bool
26-
var sse41 bool
27-
var sse42 bool
20+
var avx2 bool
21+
var avx bool
22+
var sse bool
23+
var sse2 bool
24+
var sse3 bool
25+
var ssse3 bool
26+
var sse41 bool
27+
var sse42 bool
2828
var popcnt bool
29-
var sha bool
30-
var armSha bool = haveArmSha()
29+
var sha bool
30+
var armSha = haveArmSha()
3131

3232
func init() {
33-
var _xsave bool
34-
var _osxsave bool
35-
var _avx bool
36-
var _avx2 bool
37-
var _avx512f bool
38-
var _avx512dq bool
39-
// var _avx512pf bool
40-
// var _avx512er bool
41-
// var _avx512cd bool
42-
var _avx512bw bool
43-
var _avx512vl bool
44-
var _sse_state bool
45-
var _avx_state bool
46-
var _opmask_state bool
47-
var _zmm_hi256_state bool
48-
var _hi16_zmm_state bool
33+
var _xsave bool
34+
var _osxsave bool
35+
var _avx bool
36+
var _avx2 bool
37+
var _avx512f bool
38+
var _avx512dq bool
39+
// var _avx512pf bool
40+
// var _avx512er bool
41+
// var _avx512cd bool
42+
var _avx512bw bool
43+
var _avx512vl bool
44+
var _sseState bool
45+
var _avxState bool
46+
var _opmaskState bool
47+
var _zmmHI256State bool
48+
var _hi16ZmmState bool
4949

5050
mfi, _, _, _ := cpuid(0)
5151

5252
if mfi >= 1 {
5353
_, _, c, d := cpuid(1)
5454

55-
sse = (d & (1 << 25)) != 0
56-
sse2 = (d & (1 << 26)) != 0
57-
sse3 = (c & (1 << 0)) != 0
58-
ssse3 = (c & (1 << 9)) != 0
59-
sse41 = (c & (1 << 19)) != 0
60-
sse42 = (c & (1 << 20)) != 0
61-
popcnt = (c & (1 << 23)) != 0
62-
_xsave = (c & (1 << 26)) != 0
55+
sse = (d & (1 << 25)) != 0
56+
sse2 = (d & (1 << 26)) != 0
57+
sse3 = (c & (1 << 0)) != 0
58+
ssse3 = (c & (1 << 9)) != 0
59+
sse41 = (c & (1 << 19)) != 0
60+
sse42 = (c & (1 << 20)) != 0
61+
popcnt = (c & (1 << 23)) != 0
62+
_xsave = (c & (1 << 26)) != 0
6363
_osxsave = (c & (1 << 27)) != 0
64-
_avx = (c & (1 << 28)) != 0
64+
_avx = (c & (1 << 28)) != 0
6565
}
6666

6767
if mfi >= 7 {
6868
_, b, _, _ := cpuid(7)
6969

70-
_avx2 = (b & (1 << 5)) != 0
71-
_avx512f = (b & (1 << 16)) != 0
70+
_avx2 = (b & (1 << 5)) != 0
71+
_avx512f = (b & (1 << 16)) != 0
7272
_avx512dq = (b & (1 << 17)) != 0
73-
// _avx512pf = (b & (1 << 26)) != 0
74-
// _avx512er = (b & (1 << 27)) != 0
75-
// _avx512cd = (b & (1 << 28)) != 0
73+
// _avx512pf = (b & (1 << 26)) != 0
74+
// _avx512er = (b & (1 << 27)) != 0
75+
// _avx512cd = (b & (1 << 28)) != 0
7676
_avx512bw = (b & (1 << 30)) != 0
7777
_avx512vl = (b & (1 << 31)) != 0
78-
sha = (b & (1 << 29)) != 0
78+
sha = (b & (1 << 29)) != 0
7979
}
8080

8181
// Stop here if XSAVE unsupported or not enabled
@@ -86,34 +86,34 @@ func init() {
8686
if _xsave && _osxsave {
8787
a, _ := xgetbv(0)
8888

89-
_sse_state = (a & (1 << 1)) != 0
90-
_avx_state = (a & (1 << 2)) != 0
91-
_opmask_state = (a & (1 << 5)) != 0
92-
_zmm_hi256_state = (a & (1 << 6)) != 0
93-
_hi16_zmm_state = (a & (1 << 7)) != 0
89+
_sseState = (a & (1 << 1)) != 0
90+
_avxState = (a & (1 << 2)) != 0
91+
_opmaskState = (a & (1 << 5)) != 0
92+
_zmmHI256State = (a & (1 << 6)) != 0
93+
_hi16ZmmState = (a & (1 << 7)) != 0
9494
} else {
95-
_sse_state = true
95+
_sseState = true
9696
}
9797

9898
// Very unlikely that OS would enable XSAVE and then disable SSE
99-
if !_sse_state {
100-
sse = false
101-
sse2 = false
102-
sse3 = false
103-
ssse3 = false
104-
sse41 = false
105-
sse42 = false
99+
if !_sseState {
100+
sse = false
101+
sse2 = false
102+
sse3 = false
103+
ssse3 = false
104+
sse41 = false
105+
sse42 = false
106106
}
107107

108-
if _avx_state {
109-
avx = _avx
110-
avx2 = _avx2
108+
if _avxState {
109+
avx = _avx
110+
avx2 = _avx2
111111
}
112112

113-
if _opmask_state && _zmm_hi256_state && _hi16_zmm_state {
114-
avx512 = (_avx512f &&
115-
_avx512dq &&
116-
_avx512bw &&
117-
_avx512vl)
113+
if _opmaskState && _zmmHI256State && _hi16ZmmState {
114+
avx512 = (_avx512f &&
115+
_avx512dq &&
116+
_avx512bw &&
117+
_avx512vl)
118118
}
119119
}

cpuid_386.s

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -24,30 +24,30 @@
2424

2525
// func cpuid(op uint32) (eax, ebx, ecx, edx uint32)
2626
TEXT ·cpuid(SB), 7, $0
27-
XORL CX, CX
28-
MOVL op+0(FP), AX
29-
CPUID
30-
MOVL AX, eax+4(FP)
31-
MOVL BX, ebx+8(FP)
32-
MOVL CX, ecx+12(FP)
33-
MOVL DX, edx+16(FP)
34-
RET
27+
XORL CX, CX
28+
MOVL op+0(FP), AX
29+
CPUID
30+
MOVL AX, eax+4(FP)
31+
MOVL BX, ebx+8(FP)
32+
MOVL CX, ecx+12(FP)
33+
MOVL DX, edx+16(FP)
34+
RET
3535

3636
// func cpuidex(op, op2 uint32) (eax, ebx, ecx, edx uint32)
3737
TEXT ·cpuidex(SB), 7, $0
38-
MOVL op+0(FP), AX
39-
MOVL op2+4(FP), CX
40-
CPUID
41-
MOVL AX, eax+8(FP)
42-
MOVL BX, ebx+12(FP)
43-
MOVL CX, ecx+16(FP)
44-
MOVL DX, edx+20(FP)
45-
RET
38+
MOVL op+0(FP), AX
39+
MOVL op2+4(FP), CX
40+
CPUID
41+
MOVL AX, eax+8(FP)
42+
MOVL BX, ebx+12(FP)
43+
MOVL CX, ecx+16(FP)
44+
MOVL DX, edx+20(FP)
45+
RET
4646

4747
// func xgetbv(index uint32) (eax, edx uint32)
4848
TEXT ·xgetbv(SB), 7, $0
49-
MOVL index+0(FP), CX
50-
BYTE $0x0f; BYTE $0x01; BYTE $0xd0 // XGETBV
51-
MOVL AX, eax+4(FP)
52-
MOVL DX, edx+8(FP)
53-
RET
49+
MOVL index+0(FP), CX
50+
BYTE $0x0f; BYTE $0x01; BYTE $0xd0 // XGETBV
51+
MOVL AX, eax+4(FP)
52+
MOVL DX, edx+8(FP)
53+
RET

cpuid_amd64.s

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -24,31 +24,30 @@
2424

2525
// func cpuid(op uint32) (eax, ebx, ecx, edx uint32)
2626
TEXT ·cpuid(SB), 7, $0
27-
XORQ CX, CX
28-
MOVL op+0(FP), AX
29-
CPUID
30-
MOVL AX, eax+8(FP)
31-
MOVL BX, ebx+12(FP)
32-
MOVL CX, ecx+16(FP)
33-
MOVL DX, edx+20(FP)
34-
RET
35-
27+
XORQ CX, CX
28+
MOVL op+0(FP), AX
29+
CPUID
30+
MOVL AX, eax+8(FP)
31+
MOVL BX, ebx+12(FP)
32+
MOVL CX, ecx+16(FP)
33+
MOVL DX, edx+20(FP)
34+
RET
3635

3736
// func cpuidex(op, op2 uint32) (eax, ebx, ecx, edx uint32)
3837
TEXT ·cpuidex(SB), 7, $0
39-
MOVL op+0(FP), AX
40-
MOVL op2+4(FP), CX
41-
CPUID
42-
MOVL AX, eax+8(FP)
43-
MOVL BX, ebx+12(FP)
44-
MOVL CX, ecx+16(FP)
45-
MOVL DX, edx+20(FP)
46-
RET
38+
MOVL op+0(FP), AX
39+
MOVL op2+4(FP), CX
40+
CPUID
41+
MOVL AX, eax+8(FP)
42+
MOVL BX, ebx+12(FP)
43+
MOVL CX, ecx+16(FP)
44+
MOVL DX, edx+20(FP)
45+
RET
4746

4847
// func xgetbv(index uint32) (eax, edx uint32)
4948
TEXT ·xgetbv(SB), 7, $0
50-
MOVL index+0(FP), CX
51-
BYTE $0x0f; BYTE $0x01; BYTE $0xd0 // XGETBV
52-
MOVL AX, eax+8(FP)
53-
MOVL DX, edx+12(FP)
54-
RET
49+
MOVL index+0(FP), CX
50+
BYTE $0x0f; BYTE $0x01; BYTE $0xd0 // XGETBV
51+
MOVL AX, eax+8(FP)
52+
MOVL DX, edx+12(FP)
53+
RET

0 commit comments

Comments
 (0)