aboutsummaryrefslogtreecommitdiff
path: root/libgo/go/golang.org/x/sys
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2021-07-30 14:28:58 -0700
committerIan Lance Taylor <iant@golang.org>2021-08-12 20:23:07 -0700
commitc5b21c3f4c17b0649155035d2f9aa97b2da8a813 (patch)
treec6d3a68b503ba5b16182acbb958e3e5dbc95a43b /libgo/go/golang.org/x/sys
parent72be20e20299ec57b4bc9ba03d5b7d6bf10e97cc (diff)
downloadgcc-c5b21c3f4c17b0649155035d2f9aa97b2da8a813.zip
gcc-c5b21c3f4c17b0649155035d2f9aa97b2da8a813.tar.gz
gcc-c5b21c3f4c17b0649155035d2f9aa97b2da8a813.tar.bz2
libgo: update to Go1.17rc2
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/341629
Diffstat (limited to 'libgo/go/golang.org/x/sys')
-rw-r--r--libgo/go/golang.org/x/sys/cpu/cpu.go5
-rw-r--r--libgo/go/golang.org/x/sys/cpu/cpu_aix.go2
-rw-r--r--libgo/go/golang.org/x/sys/cpu/cpu_gc_arm64.go1
-rw-r--r--libgo/go/golang.org/x/sys/cpu/cpu_gc_s390x.go1
-rw-r--r--libgo/go/golang.org/x/sys/cpu/cpu_gc_x86.go5
-rw-r--r--libgo/go/golang.org/x/sys/cpu/cpu_gccgo_arm64.go1
-rw-r--r--libgo/go/golang.org/x/sys/cpu/cpu_gccgo_s390x.go1
-rw-r--r--libgo/go/golang.org/x/sys/cpu/cpu_gccgo_x86.go7
-rw-r--r--libgo/go/golang.org/x/sys/cpu/cpu_linux.go1
-rw-r--r--libgo/go/golang.org/x/sys/cpu/cpu_linux_mips64x.go1
-rw-r--r--libgo/go/golang.org/x/sys/cpu/cpu_linux_noinit.go1
-rw-r--r--libgo/go/golang.org/x/sys/cpu/cpu_linux_ppc64x.go1
-rw-r--r--libgo/go/golang.org/x/sys/cpu/cpu_mips64x.go1
-rw-r--r--libgo/go/golang.org/x/sys/cpu/cpu_mipsx.go1
-rw-r--r--libgo/go/golang.org/x/sys/cpu/cpu_other_arm.go1
-rw-r--r--libgo/go/golang.org/x/sys/cpu/cpu_other_arm64.go4
-rw-r--r--libgo/go/golang.org/x/sys/cpu/cpu_other_mips64x.go1
-rw-r--r--libgo/go/golang.org/x/sys/cpu/cpu_ppc64x.go1
-rw-r--r--libgo/go/golang.org/x/sys/cpu/cpu_riscv64.go1
-rw-r--r--libgo/go/golang.org/x/sys/cpu/cpu_wasm.go1
-rw-r--r--libgo/go/golang.org/x/sys/cpu/cpu_x86.go11
-rw-r--r--libgo/go/golang.org/x/sys/cpu/syscall_aix_gccgo.go4
-rw-r--r--libgo/go/golang.org/x/sys/cpu/syscall_aix_ppc64_gc.go4
23 files changed, 46 insertions, 11 deletions
diff --git a/libgo/go/golang.org/x/sys/cpu/cpu.go b/libgo/go/golang.org/x/sys/cpu/cpu.go
index f77701f..abbec2d 100644
--- a/libgo/go/golang.org/x/sys/cpu/cpu.go
+++ b/libgo/go/golang.org/x/sys/cpu/cpu.go
@@ -154,14 +154,13 @@ var MIPS64X struct {
// For ppc64/ppc64le, it is safe to check only for ISA level starting on ISA v3.00,
// since there are no optional categories. There are some exceptions that also
// require kernel support to work (DARN, SCV), so there are feature bits for
-// those as well. The minimum processor requirement is POWER8 (ISA 2.07).
-// The struct is padded to avoid false sharing.
+// those as well. The struct is padded to avoid false sharing.
var PPC64 struct {
_ CacheLinePad
HasDARN bool // Hardware random number generator (requires kernel enablement)
HasSCV bool // Syscall vectored (requires kernel enablement)
IsPOWER8 bool // ISA v2.07 (POWER8)
- IsPOWER9 bool // ISA v3.00 (POWER9)
+ IsPOWER9 bool // ISA v3.00 (POWER9), implies IsPOWER8
_ CacheLinePad
}
diff --git a/libgo/go/golang.org/x/sys/cpu/cpu_aix.go b/libgo/go/golang.org/x/sys/cpu/cpu_aix.go
index 464a209..8aaeef5 100644
--- a/libgo/go/golang.org/x/sys/cpu/cpu_aix.go
+++ b/libgo/go/golang.org/x/sys/cpu/cpu_aix.go
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build aix
// +build aix
package cpu
@@ -19,6 +20,7 @@ func archInit() {
PPC64.IsPOWER8 = true
}
if impl&_IMPL_POWER9 != 0 {
+ PPC64.IsPOWER8 = true
PPC64.IsPOWER9 = true
}
diff --git a/libgo/go/golang.org/x/sys/cpu/cpu_gc_arm64.go b/libgo/go/golang.org/x/sys/cpu/cpu_gc_arm64.go
index 7f7f272..ccf542a 100644
--- a/libgo/go/golang.org/x/sys/cpu/cpu_gc_arm64.go
+++ b/libgo/go/golang.org/x/sys/cpu/cpu_gc_arm64.go
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build gc
// +build gc
package cpu
diff --git a/libgo/go/golang.org/x/sys/cpu/cpu_gc_s390x.go b/libgo/go/golang.org/x/sys/cpu/cpu_gc_s390x.go
index 75a9556..0af2f24 100644
--- a/libgo/go/golang.org/x/sys/cpu/cpu_gc_s390x.go
+++ b/libgo/go/golang.org/x/sys/cpu/cpu_gc_s390x.go
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build gc
// +build gc
package cpu
diff --git a/libgo/go/golang.org/x/sys/cpu/cpu_gc_x86.go b/libgo/go/golang.org/x/sys/cpu/cpu_gc_x86.go
index 4adb89c..3298a87 100644
--- a/libgo/go/golang.org/x/sys/cpu/cpu_gc_x86.go
+++ b/libgo/go/golang.org/x/sys/cpu/cpu_gc_x86.go
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build (386 || amd64 || amd64p32) && gc
// +build 386 amd64 amd64p32
// +build gc
@@ -14,3 +15,7 @@ func cpuid(eaxArg, ecxArg uint32) (eax, ebx, ecx, edx uint32)
// xgetbv with ecx = 0 is implemented in cpu_x86.s for gc compiler
// and in cpu_gccgo.c for gccgo.
func xgetbv() (eax, edx uint32)
+
+// darwinSupportsAVX512 is implemented in cpu_x86.s for gc compiler
+// and in cpu_gccgo_x86.go for gccgo.
+func darwinSupportsAVX512() bool
diff --git a/libgo/go/golang.org/x/sys/cpu/cpu_gccgo_arm64.go b/libgo/go/golang.org/x/sys/cpu/cpu_gccgo_arm64.go
index 53ca8d6..2aff318 100644
--- a/libgo/go/golang.org/x/sys/cpu/cpu_gccgo_arm64.go
+++ b/libgo/go/golang.org/x/sys/cpu/cpu_gccgo_arm64.go
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build gccgo
// +build gccgo
package cpu
diff --git a/libgo/go/golang.org/x/sys/cpu/cpu_gccgo_s390x.go b/libgo/go/golang.org/x/sys/cpu/cpu_gccgo_s390x.go
index aa986f7..4bfbda6 100644
--- a/libgo/go/golang.org/x/sys/cpu/cpu_gccgo_s390x.go
+++ b/libgo/go/golang.org/x/sys/cpu/cpu_gccgo_s390x.go
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build gccgo
// +build gccgo
package cpu
diff --git a/libgo/go/golang.org/x/sys/cpu/cpu_gccgo_x86.go b/libgo/go/golang.org/x/sys/cpu/cpu_gccgo_x86.go
index ba49b91..863d415 100644
--- a/libgo/go/golang.org/x/sys/cpu/cpu_gccgo_x86.go
+++ b/libgo/go/golang.org/x/sys/cpu/cpu_gccgo_x86.go
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build (386 || amd64 || amd64p32) && gccgo
// +build 386 amd64 amd64p32
// +build gccgo
@@ -24,3 +25,9 @@ func xgetbv() (eax, edx uint32) {
gccgoXgetbv(&a, &d)
return a, d
}
+
+// gccgo doesn't build on Darwin, per:
+// https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/gcc.rb#L76
+func darwinSupportsAVX512() bool {
+ return false
+}
diff --git a/libgo/go/golang.org/x/sys/cpu/cpu_linux.go b/libgo/go/golang.org/x/sys/cpu/cpu_linux.go
index 6fc874f..159a686 100644
--- a/libgo/go/golang.org/x/sys/cpu/cpu_linux.go
+++ b/libgo/go/golang.org/x/sys/cpu/cpu_linux.go
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build !386 && !amd64 && !amd64p32 && !arm64
// +build !386,!amd64,!amd64p32,!arm64
package cpu
diff --git a/libgo/go/golang.org/x/sys/cpu/cpu_linux_mips64x.go b/libgo/go/golang.org/x/sys/cpu/cpu_linux_mips64x.go
index 5a41890..6000db4 100644
--- a/libgo/go/golang.org/x/sys/cpu/cpu_linux_mips64x.go
+++ b/libgo/go/golang.org/x/sys/cpu/cpu_linux_mips64x.go
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build linux && (mips64 || mips64le)
// +build linux
// +build mips64 mips64le
diff --git a/libgo/go/golang.org/x/sys/cpu/cpu_linux_noinit.go b/libgo/go/golang.org/x/sys/cpu/cpu_linux_noinit.go
index 42b5d33..f4992b1 100644
--- a/libgo/go/golang.org/x/sys/cpu/cpu_linux_noinit.go
+++ b/libgo/go/golang.org/x/sys/cpu/cpu_linux_noinit.go
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build linux && !arm && !arm64 && !mips64 && !mips64le && !ppc64 && !ppc64le && !s390x
// +build linux,!arm,!arm64,!mips64,!mips64le,!ppc64,!ppc64le,!s390x
package cpu
diff --git a/libgo/go/golang.org/x/sys/cpu/cpu_linux_ppc64x.go b/libgo/go/golang.org/x/sys/cpu/cpu_linux_ppc64x.go
index 99f8a63..021356d 100644
--- a/libgo/go/golang.org/x/sys/cpu/cpu_linux_ppc64x.go
+++ b/libgo/go/golang.org/x/sys/cpu/cpu_linux_ppc64x.go
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build linux && (ppc64 || ppc64le)
// +build linux
// +build ppc64 ppc64le
diff --git a/libgo/go/golang.org/x/sys/cpu/cpu_mips64x.go b/libgo/go/golang.org/x/sys/cpu/cpu_mips64x.go
index eb4e010..d10b980 100644
--- a/libgo/go/golang.org/x/sys/cpu/cpu_mips64x.go
+++ b/libgo/go/golang.org/x/sys/cpu/cpu_mips64x.go
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build mips64 || mips64le
// +build mips64 mips64le
package cpu
diff --git a/libgo/go/golang.org/x/sys/cpu/cpu_mipsx.go b/libgo/go/golang.org/x/sys/cpu/cpu_mipsx.go
index f6767b7..e67e88f 100644
--- a/libgo/go/golang.org/x/sys/cpu/cpu_mipsx.go
+++ b/libgo/go/golang.org/x/sys/cpu/cpu_mipsx.go
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build mips || mipsle
// +build mips mipsle
package cpu
diff --git a/libgo/go/golang.org/x/sys/cpu/cpu_other_arm.go b/libgo/go/golang.org/x/sys/cpu/cpu_other_arm.go
index b412efc..d7b4fb4 100644
--- a/libgo/go/golang.org/x/sys/cpu/cpu_other_arm.go
+++ b/libgo/go/golang.org/x/sys/cpu/cpu_other_arm.go
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build !linux && arm
// +build !linux,arm
package cpu
diff --git a/libgo/go/golang.org/x/sys/cpu/cpu_other_arm64.go b/libgo/go/golang.org/x/sys/cpu/cpu_other_arm64.go
index 16c1c40..f8c484f 100644
--- a/libgo/go/golang.org/x/sys/cpu/cpu_other_arm64.go
+++ b/libgo/go/golang.org/x/sys/cpu/cpu_other_arm64.go
@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-// +build !linux,!netbsd
-// +build arm64
+//go:build !linux && !netbsd && arm64
+// +build !linux,!netbsd,arm64
package cpu
diff --git a/libgo/go/golang.org/x/sys/cpu/cpu_other_mips64x.go b/libgo/go/golang.org/x/sys/cpu/cpu_other_mips64x.go
index f49fad6..0dafe96 100644
--- a/libgo/go/golang.org/x/sys/cpu/cpu_other_mips64x.go
+++ b/libgo/go/golang.org/x/sys/cpu/cpu_other_mips64x.go
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build !linux && (mips64 || mips64le)
// +build !linux
// +build mips64 mips64le
diff --git a/libgo/go/golang.org/x/sys/cpu/cpu_ppc64x.go b/libgo/go/golang.org/x/sys/cpu/cpu_ppc64x.go
index aedfb17..f2e92c0 100644
--- a/libgo/go/golang.org/x/sys/cpu/cpu_ppc64x.go
+++ b/libgo/go/golang.org/x/sys/cpu/cpu_ppc64x.go
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build ppc64 || ppc64le
// +build ppc64 ppc64le
package cpu
diff --git a/libgo/go/golang.org/x/sys/cpu/cpu_riscv64.go b/libgo/go/golang.org/x/sys/cpu/cpu_riscv64.go
index 2001b99..edfa5b7 100644
--- a/libgo/go/golang.org/x/sys/cpu/cpu_riscv64.go
+++ b/libgo/go/golang.org/x/sys/cpu/cpu_riscv64.go
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build riscv64
// +build riscv64
package cpu
diff --git a/libgo/go/golang.org/x/sys/cpu/cpu_wasm.go b/libgo/go/golang.org/x/sys/cpu/cpu_wasm.go
index 60017a6..8d4e8fb 100644
--- a/libgo/go/golang.org/x/sys/cpu/cpu_wasm.go
+++ b/libgo/go/golang.org/x/sys/cpu/cpu_wasm.go
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build wasm
// +build wasm
package cpu
diff --git a/libgo/go/golang.org/x/sys/cpu/cpu_x86.go b/libgo/go/golang.org/x/sys/cpu/cpu_x86.go
index 8cc67e6..e50ed98 100644
--- a/libgo/go/golang.org/x/sys/cpu/cpu_x86.go
+++ b/libgo/go/golang.org/x/sys/cpu/cpu_x86.go
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build 386 || amd64 || amd64p32
// +build 386 amd64 amd64p32
package cpu
@@ -86,8 +87,14 @@ func archInit() {
// Check if XMM and YMM registers have OS support.
osSupportsAVX = isSet(1, eax) && isSet(2, eax)
- // Check if OPMASK and ZMM registers have OS support.
- osSupportsAVX512 = osSupportsAVX && isSet(5, eax) && isSet(6, eax) && isSet(7, eax)
+ if runtime.GOOS == "darwin" {
+ // Check darwin commpage for AVX512 support. Necessary because:
+ // https://github.com/apple/darwin-xnu/blob/0a798f6738bc1db01281fc08ae024145e84df927/osfmk/i386/fpu.c#L175-L201
+ osSupportsAVX512 = osSupportsAVX && darwinSupportsAVX512()
+ } else {
+ // Check if OPMASK and ZMM registers have OS support.
+ osSupportsAVX512 = osSupportsAVX && isSet(5, eax) && isSet(6, eax) && isSet(7, eax)
+ }
}
X86.HasAVX = isSet(28, ecx1) && osSupportsAVX
diff --git a/libgo/go/golang.org/x/sys/cpu/syscall_aix_gccgo.go b/libgo/go/golang.org/x/sys/cpu/syscall_aix_gccgo.go
index 76fbe40..a864f24 100644
--- a/libgo/go/golang.org/x/sys/cpu/syscall_aix_gccgo.go
+++ b/libgo/go/golang.org/x/sys/cpu/syscall_aix_gccgo.go
@@ -8,8 +8,8 @@
// Morever, this file will be used during the building of
// gccgo's libgo and thus must not used a CGo method.
-// +build aix
-// +build gccgo
+//go:build aix && gccgo
+// +build aix,gccgo
package cpu
diff --git a/libgo/go/golang.org/x/sys/cpu/syscall_aix_ppc64_gc.go b/libgo/go/golang.org/x/sys/cpu/syscall_aix_ppc64_gc.go
index 5b427d6..904be42 100644
--- a/libgo/go/golang.org/x/sys/cpu/syscall_aix_ppc64_gc.go
+++ b/libgo/go/golang.org/x/sys/cpu/syscall_aix_ppc64_gc.go
@@ -6,8 +6,8 @@
// system call on AIX without depending on x/sys/unix.
// (See golang.org/issue/32102)
-// +build aix,ppc64
-// +build gc
+//go:build aix && ppc64 && gc
+// +build aix,ppc64,gc
package cpu