mirror of
https://github.com/golang/sys.git
synced 2026-01-29 07:02:06 +03:00
This adds feature detection that works on the s390x running zos. There are some differences with Linux (no hwcap, facilities vector available in-memory). These changes should not affect other platforms. Fixes golang/go#41984. Change-Id: Ieabbfafd07367a346a4d279dde0f00aa3fc4321b Reviewed-on: https://go-review.googlesource.com/c/sys/+/262477 Run-TryBot: Emmanuel Odeke <emmanuel@orijtech.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com> Reviewed-by: Martin Möhrmann <moehrmann@google.com> Trust: Martin Möhrmann <moehrmann@google.com> Trust: Emmanuel Odeke <emmanuel@orijtech.com>
26 lines
643 B
Go
26 lines
643 B
Go
// Copyright 2020 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
|
|
|
|
func initS390Xbase() {
|
|
// get the facilities list
|
|
facilities := stfle()
|
|
|
|
// mandatory
|
|
S390X.HasZARCH = facilities.Has(zarch)
|
|
S390X.HasSTFLE = facilities.Has(stflef)
|
|
S390X.HasLDISP = facilities.Has(ldisp)
|
|
S390X.HasEIMM = facilities.Has(eimm)
|
|
|
|
// optional
|
|
S390X.HasETF3EH = facilities.Has(etf3eh)
|
|
S390X.HasDFP = facilities.Has(dfp)
|
|
S390X.HasMSA = facilities.Has(msa)
|
|
S390X.HasVX = facilities.Has(vx)
|
|
if S390X.HasVX {
|
|
S390X.HasVXE = facilities.Has(vxe)
|
|
}
|
|
}
|