// Copyright 2016 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 runtime import ( "runtime/internal/sys" ) const ( // bit masks taken from bits/hwcap.h _HWCAP_S390_VX = 2048 // vector facility ) // facilities is padded to avoid false sharing. type facilities struct { _ [sys.CacheLineSize]byte hasVX bool // vector facility _ [sys.CacheLineSize]byte } // cpu indicates the availability of s390x facilities that can be used in // Go assembly but are optional on models supported by Go. var cpu facilities func archauxv(tag, val uintptr) { switch tag { case _AT_HWCAP: // CPU capability bit flags cpu.hasVX = val&_HWCAP_S390_VX != 0 } }