diff options
| author | Rutger Broekhoff | 2024-01-02 18:56:31 +0100 |
|---|---|---|
| committer | Rutger Broekhoff | 2024-01-02 18:56:31 +0100 |
| commit | 8db41da676ac8368ef7c2549d56239a5ff5eedde (patch) | |
| tree | 09c427fd66de2ec1ebffc8342f5fdbb84b0701b5 /vendor/golang.org/x/sys/cpu | |
| parent | d4f75fb6db22e57577867445a022227e70958931 (diff) | |
| download | gitolfs3-8db41da676ac8368ef7c2549d56239a5ff5eedde.tar.gz gitolfs3-8db41da676ac8368ef7c2549d56239a5ff5eedde.zip | |
Delete vendor directory
Diffstat (limited to 'vendor/golang.org/x/sys/cpu')
50 files changed, 0 insertions, 2202 deletions
diff --git a/vendor/golang.org/x/sys/cpu/asm_aix_ppc64.s b/vendor/golang.org/x/sys/cpu/asm_aix_ppc64.s deleted file mode 100644 index 269e173..0000000 --- a/vendor/golang.org/x/sys/cpu/asm_aix_ppc64.s +++ /dev/null | |||
| @@ -1,17 +0,0 @@ | |||
| 1 | // Copyright 2018 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | //go:build gc | ||
| 6 | |||
| 7 | #include "textflag.h" | ||
| 8 | |||
| 9 | // | ||
| 10 | // System calls for ppc64, AIX are implemented in runtime/syscall_aix.go | ||
| 11 | // | ||
| 12 | |||
| 13 | TEXT ·syscall6(SB),NOSPLIT,$0-88 | ||
| 14 | JMP syscall·syscall6(SB) | ||
| 15 | |||
| 16 | TEXT ·rawSyscall6(SB),NOSPLIT,$0-88 | ||
| 17 | JMP syscall·rawSyscall6(SB) | ||
diff --git a/vendor/golang.org/x/sys/cpu/byteorder.go b/vendor/golang.org/x/sys/cpu/byteorder.go deleted file mode 100644 index 271055b..0000000 --- a/vendor/golang.org/x/sys/cpu/byteorder.go +++ /dev/null | |||
| @@ -1,66 +0,0 @@ | |||
| 1 | // Copyright 2019 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | package cpu | ||
| 6 | |||
| 7 | import ( | ||
| 8 | "runtime" | ||
| 9 | ) | ||
| 10 | |||
| 11 | // byteOrder is a subset of encoding/binary.ByteOrder. | ||
| 12 | type byteOrder interface { | ||
| 13 | Uint32([]byte) uint32 | ||
| 14 | Uint64([]byte) uint64 | ||
| 15 | } | ||
| 16 | |||
| 17 | type littleEndian struct{} | ||
| 18 | type bigEndian struct{} | ||
| 19 | |||
| 20 | func (littleEndian) Uint32(b []byte) uint32 { | ||
| 21 | _ = b[3] // bounds check hint to compiler; see golang.org/issue/14808 | ||
| 22 | return uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 | ||
| 23 | } | ||
| 24 | |||
| 25 | func (littleEndian) Uint64(b []byte) uint64 { | ||
| 26 | _ = b[7] // bounds check hint to compiler; see golang.org/issue/14808 | ||
| 27 | return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | | ||
| 28 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 | ||
| 29 | } | ||
| 30 | |||
| 31 | func (bigEndian) Uint32(b []byte) uint32 { | ||
| 32 | _ = b[3] // bounds check hint to compiler; see golang.org/issue/14808 | ||
| 33 | return uint32(b[3]) | uint32(b[2])<<8 | uint32(b[1])<<16 | uint32(b[0])<<24 | ||
| 34 | } | ||
| 35 | |||
| 36 | func (bigEndian) Uint64(b []byte) uint64 { | ||
| 37 | _ = b[7] // bounds check hint to compiler; see golang.org/issue/14808 | ||
| 38 | return uint64(b[7]) | uint64(b[6])<<8 | uint64(b[5])<<16 | uint64(b[4])<<24 | | ||
| 39 | uint64(b[3])<<32 | uint64(b[2])<<40 | uint64(b[1])<<48 | uint64(b[0])<<56 | ||
| 40 | } | ||
| 41 | |||
| 42 | // hostByteOrder returns littleEndian on little-endian machines and | ||
| 43 | // bigEndian on big-endian machines. | ||
| 44 | func hostByteOrder() byteOrder { | ||
| 45 | switch runtime.GOARCH { | ||
| 46 | case "386", "amd64", "amd64p32", | ||
| 47 | "alpha", | ||
| 48 | "arm", "arm64", | ||
| 49 | "loong64", | ||
| 50 | "mipsle", "mips64le", "mips64p32le", | ||
| 51 | "nios2", | ||
| 52 | "ppc64le", | ||
| 53 | "riscv", "riscv64", | ||
| 54 | "sh": | ||
| 55 | return littleEndian{} | ||
| 56 | case "armbe", "arm64be", | ||
| 57 | "m68k", | ||
| 58 | "mips", "mips64", "mips64p32", | ||
| 59 | "ppc", "ppc64", | ||
| 60 | "s390", "s390x", | ||
| 61 | "shbe", | ||
| 62 | "sparc", "sparc64": | ||
| 63 | return bigEndian{} | ||
| 64 | } | ||
| 65 | panic("unknown architecture") | ||
| 66 | } | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu.go b/vendor/golang.org/x/sys/cpu/cpu.go deleted file mode 100644 index 4756ad5..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu.go +++ /dev/null | |||
| @@ -1,290 +0,0 @@ | |||
| 1 | // Copyright 2018 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | // Package cpu implements processor feature detection for | ||
| 6 | // various CPU architectures. | ||
| 7 | package cpu | ||
| 8 | |||
| 9 | import ( | ||
| 10 | "os" | ||
| 11 | "strings" | ||
| 12 | ) | ||
| 13 | |||
| 14 | // Initialized reports whether the CPU features were initialized. | ||
| 15 | // | ||
| 16 | // For some GOOS/GOARCH combinations initialization of the CPU features depends | ||
| 17 | // on reading an operating specific file, e.g. /proc/self/auxv on linux/arm | ||
| 18 | // Initialized will report false if reading the file fails. | ||
| 19 | var Initialized bool | ||
| 20 | |||
| 21 | // CacheLinePad is used to pad structs to avoid false sharing. | ||
| 22 | type CacheLinePad struct{ _ [cacheLineSize]byte } | ||
| 23 | |||
| 24 | // X86 contains the supported CPU features of the | ||
| 25 | // current X86/AMD64 platform. If the current platform | ||
| 26 | // is not X86/AMD64 then all feature flags are false. | ||
| 27 | // | ||
| 28 | // X86 is padded to avoid false sharing. Further the HasAVX | ||
| 29 | // and HasAVX2 are only set if the OS supports XMM and YMM | ||
| 30 | // registers in addition to the CPUID feature bit being set. | ||
| 31 | var X86 struct { | ||
| 32 | _ CacheLinePad | ||
| 33 | HasAES bool // AES hardware implementation (AES NI) | ||
| 34 | HasADX bool // Multi-precision add-carry instruction extensions | ||
| 35 | HasAVX bool // Advanced vector extension | ||
| 36 | HasAVX2 bool // Advanced vector extension 2 | ||
| 37 | HasAVX512 bool // Advanced vector extension 512 | ||
| 38 | HasAVX512F bool // Advanced vector extension 512 Foundation Instructions | ||
| 39 | HasAVX512CD bool // Advanced vector extension 512 Conflict Detection Instructions | ||
| 40 | HasAVX512ER bool // Advanced vector extension 512 Exponential and Reciprocal Instructions | ||
| 41 | HasAVX512PF bool // Advanced vector extension 512 Prefetch Instructions | ||
| 42 | HasAVX512VL bool // Advanced vector extension 512 Vector Length Extensions | ||
| 43 | HasAVX512BW bool // Advanced vector extension 512 Byte and Word Instructions | ||
| 44 | HasAVX512DQ bool // Advanced vector extension 512 Doubleword and Quadword Instructions | ||
| 45 | HasAVX512IFMA bool // Advanced vector extension 512 Integer Fused Multiply Add | ||
| 46 | HasAVX512VBMI bool // Advanced vector extension 512 Vector Byte Manipulation Instructions | ||
| 47 | HasAVX5124VNNIW bool // Advanced vector extension 512 Vector Neural Network Instructions Word variable precision | ||
| 48 | HasAVX5124FMAPS bool // Advanced vector extension 512 Fused Multiply Accumulation Packed Single precision | ||
| 49 | HasAVX512VPOPCNTDQ bool // Advanced vector extension 512 Double and quad word population count instructions | ||
| 50 | HasAVX512VPCLMULQDQ bool // Advanced vector extension 512 Vector carry-less multiply operations | ||
| 51 | HasAVX512VNNI bool // Advanced vector extension 512 Vector Neural Network Instructions | ||
| 52 | HasAVX512GFNI bool // Advanced vector extension 512 Galois field New Instructions | ||
| 53 | HasAVX512VAES bool // Advanced vector extension 512 Vector AES instructions | ||
| 54 | HasAVX512VBMI2 bool // Advanced vector extension 512 Vector Byte Manipulation Instructions 2 | ||
| 55 | HasAVX512BITALG bool // Advanced vector extension 512 Bit Algorithms | ||
| 56 | HasAVX512BF16 bool // Advanced vector extension 512 BFloat16 Instructions | ||
| 57 | HasAMXTile bool // Advanced Matrix Extension Tile instructions | ||
| 58 | HasAMXInt8 bool // Advanced Matrix Extension Int8 instructions | ||
| 59 | HasAMXBF16 bool // Advanced Matrix Extension BFloat16 instructions | ||
| 60 | HasBMI1 bool // Bit manipulation instruction set 1 | ||
| 61 | HasBMI2 bool // Bit manipulation instruction set 2 | ||
| 62 | HasCX16 bool // Compare and exchange 16 Bytes | ||
| 63 | HasERMS bool // Enhanced REP for MOVSB and STOSB | ||
| 64 | HasFMA bool // Fused-multiply-add instructions | ||
| 65 | HasOSXSAVE bool // OS supports XSAVE/XRESTOR for saving/restoring XMM registers. | ||
| 66 | HasPCLMULQDQ bool // PCLMULQDQ instruction - most often used for AES-GCM | ||
| 67 | HasPOPCNT bool // Hamming weight instruction POPCNT. | ||
| 68 | HasRDRAND bool // RDRAND instruction (on-chip random number generator) | ||
| 69 | HasRDSEED bool // RDSEED instruction (on-chip random number generator) | ||
| 70 | HasSSE2 bool // Streaming SIMD extension 2 (always available on amd64) | ||
| 71 | HasSSE3 bool // Streaming SIMD extension 3 | ||
| 72 | HasSSSE3 bool // Supplemental streaming SIMD extension 3 | ||
| 73 | HasSSE41 bool // Streaming SIMD extension 4 and 4.1 | ||
| 74 | HasSSE42 bool // Streaming SIMD extension 4 and 4.2 | ||
| 75 | _ CacheLinePad | ||
| 76 | } | ||
| 77 | |||
| 78 | // ARM64 contains the supported CPU features of the | ||
| 79 | // current ARMv8(aarch64) platform. If the current platform | ||
| 80 | // is not arm64 then all feature flags are false. | ||
| 81 | var ARM64 struct { | ||
| 82 | _ CacheLinePad | ||
| 83 | HasFP bool // Floating-point instruction set (always available) | ||
| 84 | HasASIMD bool // Advanced SIMD (always available) | ||
| 85 | HasEVTSTRM bool // Event stream support | ||
| 86 | HasAES bool // AES hardware implementation | ||
| 87 | HasPMULL bool // Polynomial multiplication instruction set | ||
| 88 | HasSHA1 bool // SHA1 hardware implementation | ||
| 89 | HasSHA2 bool // SHA2 hardware implementation | ||
| 90 | HasCRC32 bool // CRC32 hardware implementation | ||
| 91 | HasATOMICS bool // Atomic memory operation instruction set | ||
| 92 | HasFPHP bool // Half precision floating-point instruction set | ||
| 93 | HasASIMDHP bool // Advanced SIMD half precision instruction set | ||
| 94 | HasCPUID bool // CPUID identification scheme registers | ||
| 95 | HasASIMDRDM bool // Rounding double multiply add/subtract instruction set | ||
| 96 | HasJSCVT bool // Javascript conversion from floating-point to integer | ||
| 97 | HasFCMA bool // Floating-point multiplication and addition of complex numbers | ||
| 98 | HasLRCPC bool // Release Consistent processor consistent support | ||
| 99 | HasDCPOP bool // Persistent memory support | ||
| 100 | HasSHA3 bool // SHA3 hardware implementation | ||
| 101 | HasSM3 bool // SM3 hardware implementation | ||
| 102 | HasSM4 bool // SM4 hardware implementation | ||
| 103 | HasASIMDDP bool // Advanced SIMD double precision instruction set | ||
| 104 | HasSHA512 bool // SHA512 hardware implementation | ||
| 105 | HasSVE bool // Scalable Vector Extensions | ||
| 106 | HasASIMDFHM bool // Advanced SIMD multiplication FP16 to FP32 | ||
| 107 | _ CacheLinePad | ||
| 108 | } | ||
| 109 | |||
| 110 | // ARM contains the supported CPU features of the current ARM (32-bit) platform. | ||
| 111 | // All feature flags are false if: | ||
| 112 | // 1. the current platform is not arm, or | ||
| 113 | // 2. the current operating system is not Linux. | ||
| 114 | var ARM struct { | ||
| 115 | _ CacheLinePad | ||
| 116 | HasSWP bool // SWP instruction support | ||
| 117 | HasHALF bool // Half-word load and store support | ||
| 118 | HasTHUMB bool // ARM Thumb instruction set | ||
| 119 | Has26BIT bool // Address space limited to 26-bits | ||
| 120 | HasFASTMUL bool // 32-bit operand, 64-bit result multiplication support | ||
| 121 | HasFPA bool // Floating point arithmetic support | ||
| 122 | HasVFP bool // Vector floating point support | ||
| 123 | HasEDSP bool // DSP Extensions support | ||
| 124 | HasJAVA bool // Java instruction set | ||
| 125 | HasIWMMXT bool // Intel Wireless MMX technology support | ||
| 126 | HasCRUNCH bool // MaverickCrunch context switching and handling | ||
| 127 | HasTHUMBEE bool // Thumb EE instruction set | ||
| 128 | HasNEON bool // NEON instruction set | ||
| 129 | HasVFPv3 bool // Vector floating point version 3 support | ||
| 130 | HasVFPv3D16 bool // Vector floating point version 3 D8-D15 | ||
| 131 | HasTLS bool // Thread local storage support | ||
| 132 | HasVFPv4 bool // Vector floating point version 4 support | ||
| 133 | HasIDIVA bool // Integer divide instruction support in ARM mode | ||
| 134 | HasIDIVT bool // Integer divide instruction support in Thumb mode | ||
| 135 | HasVFPD32 bool // Vector floating point version 3 D15-D31 | ||
| 136 | HasLPAE bool // Large Physical Address Extensions | ||
| 137 | HasEVTSTRM bool // Event stream support | ||
| 138 | HasAES bool // AES hardware implementation | ||
| 139 | HasPMULL bool // Polynomial multiplication instruction set | ||
| 140 | HasSHA1 bool // SHA1 hardware implementation | ||
| 141 | HasSHA2 bool // SHA2 hardware implementation | ||
| 142 | HasCRC32 bool // CRC32 hardware implementation | ||
| 143 | _ CacheLinePad | ||
| 144 | } | ||
| 145 | |||
| 146 | // MIPS64X contains the supported CPU features of the current mips64/mips64le | ||
| 147 | // platforms. If the current platform is not mips64/mips64le or the current | ||
| 148 | // operating system is not Linux then all feature flags are false. | ||
| 149 | var MIPS64X struct { | ||
| 150 | _ CacheLinePad | ||
| 151 | HasMSA bool // MIPS SIMD architecture | ||
| 152 | _ CacheLinePad | ||
| 153 | } | ||
| 154 | |||
| 155 | // PPC64 contains the supported CPU features of the current ppc64/ppc64le platforms. | ||
| 156 | // If the current platform is not ppc64/ppc64le then all feature flags are false. | ||
| 157 | // | ||
| 158 | // For ppc64/ppc64le, it is safe to check only for ISA level starting on ISA v3.00, | ||
| 159 | // since there are no optional categories. There are some exceptions that also | ||
| 160 | // require kernel support to work (DARN, SCV), so there are feature bits for | ||
| 161 | // those as well. The struct is padded to avoid false sharing. | ||
| 162 | var PPC64 struct { | ||
| 163 | _ CacheLinePad | ||
| 164 | HasDARN bool // Hardware random number generator (requires kernel enablement) | ||
| 165 | HasSCV bool // Syscall vectored (requires kernel enablement) | ||
| 166 | IsPOWER8 bool // ISA v2.07 (POWER8) | ||
| 167 | IsPOWER9 bool // ISA v3.00 (POWER9), implies IsPOWER8 | ||
| 168 | _ CacheLinePad | ||
| 169 | } | ||
| 170 | |||
| 171 | // S390X contains the supported CPU features of the current IBM Z | ||
| 172 | // (s390x) platform. If the current platform is not IBM Z then all | ||
| 173 | // feature flags are false. | ||
| 174 | // | ||
| 175 | // S390X is padded to avoid false sharing. Further HasVX is only set | ||
| 176 | // if the OS supports vector registers in addition to the STFLE | ||
| 177 | // feature bit being set. | ||
| 178 | var S390X struct { | ||
| 179 | _ CacheLinePad | ||
| 180 | HasZARCH bool // z/Architecture mode is active [mandatory] | ||
| 181 | HasSTFLE bool // store facility list extended | ||
| 182 | HasLDISP bool // long (20-bit) displacements | ||
| 183 | HasEIMM bool // 32-bit immediates | ||
| 184 | HasDFP bool // decimal floating point | ||
| 185 | HasETF3EH bool // ETF-3 enhanced | ||
| 186 | HasMSA bool // message security assist (CPACF) | ||
| 187 | HasAES bool // KM-AES{128,192,256} functions | ||
| 188 | HasAESCBC bool // KMC-AES{128,192,256} functions | ||
| 189 | HasAESCTR bool // KMCTR-AES{128,192,256} functions | ||
| 190 | HasAESGCM bool // KMA-GCM-AES{128,192,256} functions | ||
| 191 | HasGHASH bool // KIMD-GHASH function | ||
| 192 | HasSHA1 bool // K{I,L}MD-SHA-1 functions | ||
| 193 | HasSHA256 bool // K{I,L}MD-SHA-256 functions | ||
| 194 | HasSHA512 bool // K{I,L}MD-SHA-512 functions | ||
| 195 | HasSHA3 bool // K{I,L}MD-SHA3-{224,256,384,512} and K{I,L}MD-SHAKE-{128,256} functions | ||
| 196 | HasVX bool // vector facility | ||
| 197 | HasVXE bool // vector-enhancements facility 1 | ||
| 198 | _ CacheLinePad | ||
| 199 | } | ||
| 200 | |||
| 201 | func init() { | ||
| 202 | archInit() | ||
| 203 | initOptions() | ||
| 204 | processOptions() | ||
| 205 | } | ||
| 206 | |||
| 207 | // options contains the cpu debug options that can be used in GODEBUG. | ||
| 208 | // Options are arch dependent and are added by the arch specific initOptions functions. | ||
| 209 | // Features that are mandatory for the specific GOARCH should have the Required field set | ||
| 210 | // (e.g. SSE2 on amd64). | ||
| 211 | var options []option | ||
| 212 | |||
| 213 | // Option names should be lower case. e.g. avx instead of AVX. | ||
| 214 | type option struct { | ||
| 215 | Name string | ||
| 216 | Feature *bool | ||
| 217 | Specified bool // whether feature value was specified in GODEBUG | ||
| 218 | Enable bool // whether feature should be enabled | ||
| 219 | Required bool // whether feature is mandatory and can not be disabled | ||
| 220 | } | ||
| 221 | |||
| 222 | func processOptions() { | ||
| 223 | env := os.Getenv("GODEBUG") | ||
| 224 | field: | ||
| 225 | for env != "" { | ||
| 226 | field := "" | ||
| 227 | i := strings.IndexByte(env, ',') | ||
| 228 | if i < 0 { | ||
| 229 | field, env = env, "" | ||
| 230 | } else { | ||
| 231 | field, env = env[:i], env[i+1:] | ||
| 232 | } | ||
| 233 | if len(field) < 4 || field[:4] != "cpu." { | ||
| 234 | continue | ||
| 235 | } | ||
| 236 | i = strings.IndexByte(field, '=') | ||
| 237 | if i < 0 { | ||
| 238 | print("GODEBUG sys/cpu: no value specified for \"", field, "\"\n") | ||
| 239 | continue | ||
| 240 | } | ||
| 241 | key, value := field[4:i], field[i+1:] // e.g. "SSE2", "on" | ||
| 242 | |||
| 243 | var enable bool | ||
| 244 | switch value { | ||
| 245 | case "on": | ||
| 246 | enable = true | ||
| 247 | case "off": | ||
| 248 | enable = false | ||
| 249 | default: | ||
| 250 | print("GODEBUG sys/cpu: value \"", value, "\" not supported for cpu option \"", key, "\"\n") | ||
| 251 | continue field | ||
| 252 | } | ||
| 253 | |||
| 254 | if key == "all" { | ||
| 255 | for i := range options { | ||
| 256 | options[i].Specified = true | ||
| 257 | options[i].Enable = enable || options[i].Required | ||
| 258 | } | ||
| 259 | continue field | ||
| 260 | } | ||
| 261 | |||
| 262 | for i := range options { | ||
| 263 | if options[i].Name == key { | ||
| 264 | options[i].Specified = true | ||
| 265 | options[i].Enable = enable | ||
| 266 | continue field | ||
| 267 | } | ||
| 268 | } | ||
| 269 | |||
| 270 | print("GODEBUG sys/cpu: unknown cpu feature \"", key, "\"\n") | ||
| 271 | } | ||
| 272 | |||
| 273 | for _, o := range options { | ||
| 274 | if !o.Specified { | ||
| 275 | continue | ||
| 276 | } | ||
| 277 | |||
| 278 | if o.Enable && !*o.Feature { | ||
| 279 | print("GODEBUG sys/cpu: can not enable \"", o.Name, "\", missing CPU support\n") | ||
| 280 | continue | ||
| 281 | } | ||
| 282 | |||
| 283 | if !o.Enable && o.Required { | ||
| 284 | print("GODEBUG sys/cpu: can not disable \"", o.Name, "\", required CPU feature\n") | ||
| 285 | continue | ||
| 286 | } | ||
| 287 | |||
| 288 | *o.Feature = o.Enable | ||
| 289 | } | ||
| 290 | } | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_aix.go b/vendor/golang.org/x/sys/cpu/cpu_aix.go deleted file mode 100644 index 9bf0c32..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_aix.go +++ /dev/null | |||
| @@ -1,33 +0,0 @@ | |||
| 1 | // Copyright 2019 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | //go:build aix | ||
| 6 | |||
| 7 | package cpu | ||
| 8 | |||
| 9 | const ( | ||
| 10 | // getsystemcfg constants | ||
| 11 | _SC_IMPL = 2 | ||
| 12 | _IMPL_POWER8 = 0x10000 | ||
| 13 | _IMPL_POWER9 = 0x20000 | ||
| 14 | ) | ||
| 15 | |||
| 16 | func archInit() { | ||
| 17 | impl := getsystemcfg(_SC_IMPL) | ||
| 18 | if impl&_IMPL_POWER8 != 0 { | ||
| 19 | PPC64.IsPOWER8 = true | ||
| 20 | } | ||
| 21 | if impl&_IMPL_POWER9 != 0 { | ||
| 22 | PPC64.IsPOWER8 = true | ||
| 23 | PPC64.IsPOWER9 = true | ||
| 24 | } | ||
| 25 | |||
| 26 | Initialized = true | ||
| 27 | } | ||
| 28 | |||
| 29 | func getsystemcfg(label int) (n uint64) { | ||
| 30 | r0, _ := callgetsystemcfg(label) | ||
| 31 | n = uint64(r0) | ||
| 32 | return | ||
| 33 | } | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_arm.go b/vendor/golang.org/x/sys/cpu/cpu_arm.go deleted file mode 100644 index 301b752..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_arm.go +++ /dev/null | |||
| @@ -1,73 +0,0 @@ | |||
| 1 | // Copyright 2018 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | package cpu | ||
| 6 | |||
| 7 | const cacheLineSize = 32 | ||
| 8 | |||
| 9 | // HWCAP/HWCAP2 bits. | ||
| 10 | // These are specific to Linux. | ||
| 11 | const ( | ||
| 12 | hwcap_SWP = 1 << 0 | ||
| 13 | hwcap_HALF = 1 << 1 | ||
| 14 | hwcap_THUMB = 1 << 2 | ||
| 15 | hwcap_26BIT = 1 << 3 | ||
| 16 | hwcap_FAST_MULT = 1 << 4 | ||
| 17 | hwcap_FPA = 1 << 5 | ||
| 18 | hwcap_VFP = 1 << 6 | ||
| 19 | hwcap_EDSP = 1 << 7 | ||
| 20 | hwcap_JAVA = 1 << 8 | ||
| 21 | hwcap_IWMMXT = 1 << 9 | ||
| 22 | hwcap_CRUNCH = 1 << 10 | ||
| 23 | hwcap_THUMBEE = 1 << 11 | ||
| 24 | hwcap_NEON = 1 << 12 | ||
| 25 | hwcap_VFPv3 = 1 << 13 | ||
| 26 | hwcap_VFPv3D16 = 1 << 14 | ||
| 27 | hwcap_TLS = 1 << 15 | ||
| 28 | hwcap_VFPv4 = 1 << 16 | ||
| 29 | hwcap_IDIVA = 1 << 17 | ||
| 30 | hwcap_IDIVT = 1 << 18 | ||
| 31 | hwcap_VFPD32 = 1 << 19 | ||
| 32 | hwcap_LPAE = 1 << 20 | ||
| 33 | hwcap_EVTSTRM = 1 << 21 | ||
| 34 | |||
| 35 | hwcap2_AES = 1 << 0 | ||
| 36 | hwcap2_PMULL = 1 << 1 | ||
| 37 | hwcap2_SHA1 = 1 << 2 | ||
| 38 | hwcap2_SHA2 = 1 << 3 | ||
| 39 | hwcap2_CRC32 = 1 << 4 | ||
| 40 | ) | ||
| 41 | |||
| 42 | func initOptions() { | ||
| 43 | options = []option{ | ||
| 44 | {Name: "pmull", Feature: &ARM.HasPMULL}, | ||
| 45 | {Name: "sha1", Feature: &ARM.HasSHA1}, | ||
| 46 | {Name: "sha2", Feature: &ARM.HasSHA2}, | ||
| 47 | {Name: "swp", Feature: &ARM.HasSWP}, | ||
| 48 | {Name: "thumb", Feature: &ARM.HasTHUMB}, | ||
| 49 | {Name: "thumbee", Feature: &ARM.HasTHUMBEE}, | ||
| 50 | {Name: "tls", Feature: &ARM.HasTLS}, | ||
| 51 | {Name: "vfp", Feature: &ARM.HasVFP}, | ||
| 52 | {Name: "vfpd32", Feature: &ARM.HasVFPD32}, | ||
| 53 | {Name: "vfpv3", Feature: &ARM.HasVFPv3}, | ||
| 54 | {Name: "vfpv3d16", Feature: &ARM.HasVFPv3D16}, | ||
| 55 | {Name: "vfpv4", Feature: &ARM.HasVFPv4}, | ||
| 56 | {Name: "half", Feature: &ARM.HasHALF}, | ||
| 57 | {Name: "26bit", Feature: &ARM.Has26BIT}, | ||
| 58 | {Name: "fastmul", Feature: &ARM.HasFASTMUL}, | ||
| 59 | {Name: "fpa", Feature: &ARM.HasFPA}, | ||
| 60 | {Name: "edsp", Feature: &ARM.HasEDSP}, | ||
| 61 | {Name: "java", Feature: &ARM.HasJAVA}, | ||
| 62 | {Name: "iwmmxt", Feature: &ARM.HasIWMMXT}, | ||
| 63 | {Name: "crunch", Feature: &ARM.HasCRUNCH}, | ||
| 64 | {Name: "neon", Feature: &ARM.HasNEON}, | ||
| 65 | {Name: "idivt", Feature: &ARM.HasIDIVT}, | ||
| 66 | {Name: "idiva", Feature: &ARM.HasIDIVA}, | ||
| 67 | {Name: "lpae", Feature: &ARM.HasLPAE}, | ||
| 68 | {Name: "evtstrm", Feature: &ARM.HasEVTSTRM}, | ||
| 69 | {Name: "aes", Feature: &ARM.HasAES}, | ||
| 70 | {Name: "crc32", Feature: &ARM.HasCRC32}, | ||
| 71 | } | ||
| 72 | |||
| 73 | } | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_arm64.go deleted file mode 100644 index f3eb993..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_arm64.go +++ /dev/null | |||
| @@ -1,172 +0,0 @@ | |||
| 1 | // Copyright 2019 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | package cpu | ||
| 6 | |||
| 7 | import "runtime" | ||
| 8 | |||
| 9 | // cacheLineSize is used to prevent false sharing of cache lines. | ||
| 10 | // We choose 128 because Apple Silicon, a.k.a. M1, has 128-byte cache line size. | ||
| 11 | // It doesn't cost much and is much more future-proof. | ||
| 12 | const cacheLineSize = 128 | ||
| 13 | |||
| 14 | func initOptions() { | ||
| 15 | options = []option{ | ||
| 16 | {Name: "fp", Feature: &ARM64.HasFP}, | ||
| 17 | {Name: "asimd", Feature: &ARM64.HasASIMD}, | ||
| 18 | {Name: "evstrm", Feature: &ARM64.HasEVTSTRM}, | ||
| 19 | {Name: "aes", Feature: &ARM64.HasAES}, | ||
| 20 | {Name: "fphp", Feature: &ARM64.HasFPHP}, | ||
| 21 | {Name: "jscvt", Feature: &ARM64.HasJSCVT}, | ||
| 22 | {Name: "lrcpc", Feature: &ARM64.HasLRCPC}, | ||
| 23 | {Name: "pmull", Feature: &ARM64.HasPMULL}, | ||
| 24 | {Name: "sha1", Feature: &ARM64.HasSHA1}, | ||
| 25 | {Name: "sha2", Feature: &ARM64.HasSHA2}, | ||
| 26 | {Name: "sha3", Feature: &ARM64.HasSHA3}, | ||
| 27 | {Name: "sha512", Feature: &ARM64.HasSHA512}, | ||
| 28 | {Name: "sm3", Feature: &ARM64.HasSM3}, | ||
| 29 | {Name: "sm4", Feature: &ARM64.HasSM4}, | ||
| 30 | {Name: "sve", Feature: &ARM64.HasSVE}, | ||
| 31 | {Name: "crc32", Feature: &ARM64.HasCRC32}, | ||
| 32 | {Name: "atomics", Feature: &ARM64.HasATOMICS}, | ||
| 33 | {Name: "asimdhp", Feature: &ARM64.HasASIMDHP}, | ||
| 34 | {Name: "cpuid", Feature: &ARM64.HasCPUID}, | ||
| 35 | {Name: "asimrdm", Feature: &ARM64.HasASIMDRDM}, | ||
| 36 | {Name: "fcma", Feature: &ARM64.HasFCMA}, | ||
| 37 | {Name: "dcpop", Feature: &ARM64.HasDCPOP}, | ||
| 38 | {Name: "asimddp", Feature: &ARM64.HasASIMDDP}, | ||
| 39 | {Name: "asimdfhm", Feature: &ARM64.HasASIMDFHM}, | ||
| 40 | } | ||
| 41 | } | ||
| 42 | |||
| 43 | func archInit() { | ||
| 44 | switch runtime.GOOS { | ||
| 45 | case "freebsd": | ||
| 46 | readARM64Registers() | ||
| 47 | case "linux", "netbsd", "openbsd": | ||
| 48 | doinit() | ||
| 49 | default: | ||
| 50 | // Many platforms don't seem to allow reading these registers. | ||
| 51 | setMinimalFeatures() | ||
| 52 | } | ||
| 53 | } | ||
| 54 | |||
| 55 | // setMinimalFeatures fakes the minimal ARM64 features expected by | ||
| 56 | // TestARM64minimalFeatures. | ||
| 57 | func setMinimalFeatures() { | ||
| 58 | ARM64.HasASIMD = true | ||
| 59 | ARM64.HasFP = true | ||
| 60 | } | ||
| 61 | |||
| 62 | func readARM64Registers() { | ||
| 63 | Initialized = true | ||
| 64 | |||
| 65 | parseARM64SystemRegisters(getisar0(), getisar1(), getpfr0()) | ||
| 66 | } | ||
| 67 | |||
| 68 | func parseARM64SystemRegisters(isar0, isar1, pfr0 uint64) { | ||
| 69 | // ID_AA64ISAR0_EL1 | ||
| 70 | switch extractBits(isar0, 4, 7) { | ||
| 71 | case 1: | ||
| 72 | ARM64.HasAES = true | ||
| 73 | case 2: | ||
| 74 | ARM64.HasAES = true | ||
| 75 | ARM64.HasPMULL = true | ||
| 76 | } | ||
| 77 | |||
| 78 | switch extractBits(isar0, 8, 11) { | ||
| 79 | case 1: | ||
| 80 | ARM64.HasSHA1 = true | ||
| 81 | } | ||
| 82 | |||
| 83 | switch extractBits(isar0, 12, 15) { | ||
| 84 | case 1: | ||
| 85 | ARM64.HasSHA2 = true | ||
| 86 | case 2: | ||
| 87 | ARM64.HasSHA2 = true | ||
| 88 | ARM64.HasSHA512 = true | ||
| 89 | } | ||
| 90 | |||
| 91 | switch extractBits(isar0, 16, 19) { | ||
| 92 | case 1: | ||
| 93 | ARM64.HasCRC32 = true | ||
| 94 | } | ||
| 95 | |||
| 96 | switch extractBits(isar0, 20, 23) { | ||
| 97 | case 2: | ||
| 98 | ARM64.HasATOMICS = true | ||
| 99 | } | ||
| 100 | |||
| 101 | switch extractBits(isar0, 28, 31) { | ||
| 102 | case 1: | ||
| 103 | ARM64.HasASIMDRDM = true | ||
| 104 | } | ||
| 105 | |||
| 106 | switch extractBits(isar0, 32, 35) { | ||
| 107 | case 1: | ||
| 108 | ARM64.HasSHA3 = true | ||
| 109 | } | ||
| 110 | |||
| 111 | switch extractBits(isar0, 36, 39) { | ||
| 112 | case 1: | ||
| 113 | ARM64.HasSM3 = true | ||
| 114 | } | ||
| 115 | |||
| 116 | switch extractBits(isar0, 40, 43) { | ||
| 117 | case 1: | ||
| 118 | ARM64.HasSM4 = true | ||
| 119 | } | ||
| 120 | |||
| 121 | switch extractBits(isar0, 44, 47) { | ||
| 122 | case 1: | ||
| 123 | ARM64.HasASIMDDP = true | ||
| 124 | } | ||
| 125 | |||
| 126 | // ID_AA64ISAR1_EL1 | ||
| 127 | switch extractBits(isar1, 0, 3) { | ||
| 128 | case 1: | ||
| 129 | ARM64.HasDCPOP = true | ||
| 130 | } | ||
| 131 | |||
| 132 | switch extractBits(isar1, 12, 15) { | ||
| 133 | case 1: | ||
| 134 | ARM64.HasJSCVT = true | ||
| 135 | } | ||
| 136 | |||
| 137 | switch extractBits(isar1, 16, 19) { | ||
| 138 | case 1: | ||
| 139 | ARM64.HasFCMA = true | ||
| 140 | } | ||
| 141 | |||
| 142 | switch extractBits(isar1, 20, 23) { | ||
| 143 | case 1: | ||
| 144 | ARM64.HasLRCPC = true | ||
| 145 | } | ||
| 146 | |||
| 147 | // ID_AA64PFR0_EL1 | ||
| 148 | switch extractBits(pfr0, 16, 19) { | ||
| 149 | case 0: | ||
| 150 | ARM64.HasFP = true | ||
| 151 | case 1: | ||
| 152 | ARM64.HasFP = true | ||
| 153 | ARM64.HasFPHP = true | ||
| 154 | } | ||
| 155 | |||
| 156 | switch extractBits(pfr0, 20, 23) { | ||
| 157 | case 0: | ||
| 158 | ARM64.HasASIMD = true | ||
| 159 | case 1: | ||
| 160 | ARM64.HasASIMD = true | ||
| 161 | ARM64.HasASIMDHP = true | ||
| 162 | } | ||
| 163 | |||
| 164 | switch extractBits(pfr0, 32, 35) { | ||
| 165 | case 1: | ||
| 166 | ARM64.HasSVE = true | ||
| 167 | } | ||
| 168 | } | ||
| 169 | |||
| 170 | func extractBits(data uint64, start, end uint) uint { | ||
| 171 | return (uint)(data>>start) & ((1 << (end - start + 1)) - 1) | ||
| 172 | } | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_arm64.s b/vendor/golang.org/x/sys/cpu/cpu_arm64.s deleted file mode 100644 index fcb9a38..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_arm64.s +++ /dev/null | |||
| @@ -1,31 +0,0 @@ | |||
| 1 | // Copyright 2019 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | //go:build gc | ||
| 6 | |||
| 7 | #include "textflag.h" | ||
| 8 | |||
| 9 | // func getisar0() uint64 | ||
| 10 | TEXT ·getisar0(SB),NOSPLIT,$0-8 | ||
| 11 | // get Instruction Set Attributes 0 into x0 | ||
| 12 | // mrs x0, ID_AA64ISAR0_EL1 = d5380600 | ||
| 13 | WORD $0xd5380600 | ||
| 14 | MOVD R0, ret+0(FP) | ||
| 15 | RET | ||
| 16 | |||
| 17 | // func getisar1() uint64 | ||
| 18 | TEXT ·getisar1(SB),NOSPLIT,$0-8 | ||
| 19 | // get Instruction Set Attributes 1 into x0 | ||
| 20 | // mrs x0, ID_AA64ISAR1_EL1 = d5380620 | ||
| 21 | WORD $0xd5380620 | ||
| 22 | MOVD R0, ret+0(FP) | ||
| 23 | RET | ||
| 24 | |||
| 25 | // func getpfr0() uint64 | ||
| 26 | TEXT ·getpfr0(SB),NOSPLIT,$0-8 | ||
| 27 | // get Processor Feature Register 0 into x0 | ||
| 28 | // mrs x0, ID_AA64PFR0_EL1 = d5380400 | ||
| 29 | WORD $0xd5380400 | ||
| 30 | MOVD R0, ret+0(FP) | ||
| 31 | RET | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go deleted file mode 100644 index a8acd3e..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go +++ /dev/null | |||
| @@ -1,11 +0,0 @@ | |||
| 1 | // Copyright 2019 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | //go:build gc | ||
| 6 | |||
| 7 | package cpu | ||
| 8 | |||
| 9 | func getisar0() uint64 | ||
| 10 | func getisar1() uint64 | ||
| 11 | func getpfr0() uint64 | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_gc_s390x.go b/vendor/golang.org/x/sys/cpu/cpu_gc_s390x.go deleted file mode 100644 index c8ae6dd..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_gc_s390x.go +++ /dev/null | |||
| @@ -1,21 +0,0 @@ | |||
| 1 | // Copyright 2019 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | //go:build gc | ||
| 6 | |||
| 7 | package cpu | ||
| 8 | |||
| 9 | // haveAsmFunctions reports whether the other functions in this file can | ||
| 10 | // be safely called. | ||
| 11 | func haveAsmFunctions() bool { return true } | ||
| 12 | |||
| 13 | // The following feature detection functions are defined in cpu_s390x.s. | ||
| 14 | // They are likely to be expensive to call so the results should be cached. | ||
| 15 | func stfle() facilityList | ||
| 16 | func kmQuery() queryResult | ||
| 17 | func kmcQuery() queryResult | ||
| 18 | func kmctrQuery() queryResult | ||
| 19 | func kmaQuery() queryResult | ||
| 20 | func kimdQuery() queryResult | ||
| 21 | func klmdQuery() queryResult | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_gc_x86.go b/vendor/golang.org/x/sys/cpu/cpu_gc_x86.go deleted file mode 100644 index 910728f..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_gc_x86.go +++ /dev/null | |||
| @@ -1,15 +0,0 @@ | |||
| 1 | // Copyright 2018 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | //go:build (386 || amd64 || amd64p32) && gc | ||
| 6 | |||
| 7 | package cpu | ||
| 8 | |||
| 9 | // cpuid is implemented in cpu_x86.s for gc compiler | ||
| 10 | // and in cpu_gccgo.c for gccgo. | ||
| 11 | func cpuid(eaxArg, ecxArg uint32) (eax, ebx, ecx, edx uint32) | ||
| 12 | |||
| 13 | // xgetbv with ecx = 0 is implemented in cpu_x86.s for gc compiler | ||
| 14 | // and in cpu_gccgo.c for gccgo. | ||
| 15 | func xgetbv() (eax, edx uint32) | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_gccgo_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_gccgo_arm64.go deleted file mode 100644 index 7f19467..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_gccgo_arm64.go +++ /dev/null | |||
| @@ -1,11 +0,0 @@ | |||
| 1 | // Copyright 2019 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | //go:build gccgo | ||
| 6 | |||
| 7 | package cpu | ||
| 8 | |||
| 9 | func getisar0() uint64 { return 0 } | ||
| 10 | func getisar1() uint64 { return 0 } | ||
| 11 | func getpfr0() uint64 { return 0 } | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_gccgo_s390x.go b/vendor/golang.org/x/sys/cpu/cpu_gccgo_s390x.go deleted file mode 100644 index 9526d2c..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_gccgo_s390x.go +++ /dev/null | |||
| @@ -1,22 +0,0 @@ | |||
| 1 | // Copyright 2019 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | //go:build gccgo | ||
| 6 | |||
| 7 | package cpu | ||
| 8 | |||
| 9 | // haveAsmFunctions reports whether the other functions in this file can | ||
| 10 | // be safely called. | ||
| 11 | func haveAsmFunctions() bool { return false } | ||
| 12 | |||
| 13 | // TODO(mundaym): the following feature detection functions are currently | ||
| 14 | // stubs. See https://golang.org/cl/162887 for how to fix this. | ||
| 15 | // They are likely to be expensive to call so the results should be cached. | ||
| 16 | func stfle() facilityList { panic("not implemented for gccgo") } | ||
| 17 | func kmQuery() queryResult { panic("not implemented for gccgo") } | ||
| 18 | func kmcQuery() queryResult { panic("not implemented for gccgo") } | ||
| 19 | func kmctrQuery() queryResult { panic("not implemented for gccgo") } | ||
| 20 | func kmaQuery() queryResult { panic("not implemented for gccgo") } | ||
| 21 | func kimdQuery() queryResult { panic("not implemented for gccgo") } | ||
| 22 | func klmdQuery() queryResult { panic("not implemented for gccgo") } | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_gccgo_x86.c b/vendor/golang.org/x/sys/cpu/cpu_gccgo_x86.c deleted file mode 100644 index 3f73a05..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_gccgo_x86.c +++ /dev/null | |||
| @@ -1,37 +0,0 @@ | |||
| 1 | // Copyright 2018 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | //go:build (386 || amd64 || amd64p32) && gccgo | ||
| 6 | |||
| 7 | #include <cpuid.h> | ||
| 8 | #include <stdint.h> | ||
| 9 | #include <x86intrin.h> | ||
| 10 | |||
| 11 | // Need to wrap __get_cpuid_count because it's declared as static. | ||
| 12 | int | ||
| 13 | gccgoGetCpuidCount(uint32_t leaf, uint32_t subleaf, | ||
| 14 | uint32_t *eax, uint32_t *ebx, | ||
| 15 | uint32_t *ecx, uint32_t *edx) | ||
| 16 | { | ||
| 17 | return __get_cpuid_count(leaf, subleaf, eax, ebx, ecx, edx); | ||
| 18 | } | ||
| 19 | |||
| 20 | #pragma GCC diagnostic ignored "-Wunknown-pragmas" | ||
| 21 | #pragma GCC push_options | ||
| 22 | #pragma GCC target("xsave") | ||
| 23 | #pragma clang attribute push (__attribute__((target("xsave"))), apply_to=function) | ||
| 24 | |||
| 25 | // xgetbv reads the contents of an XCR (Extended Control Register) | ||
| 26 | // specified in the ECX register into registers EDX:EAX. | ||
| 27 | // Currently, the only supported value for XCR is 0. | ||
| 28 | void | ||
| 29 | gccgoXgetbv(uint32_t *eax, uint32_t *edx) | ||
| 30 | { | ||
| 31 | uint64_t v = _xgetbv(0); | ||
| 32 | *eax = v & 0xffffffff; | ||
| 33 | *edx = v >> 32; | ||
| 34 | } | ||
| 35 | |||
| 36 | #pragma clang attribute pop | ||
| 37 | #pragma GCC pop_options | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_gccgo_x86.go b/vendor/golang.org/x/sys/cpu/cpu_gccgo_x86.go deleted file mode 100644 index 99c60fe..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_gccgo_x86.go +++ /dev/null | |||
| @@ -1,31 +0,0 @@ | |||
| 1 | // Copyright 2018 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | //go:build (386 || amd64 || amd64p32) && gccgo | ||
| 6 | |||
| 7 | package cpu | ||
| 8 | |||
| 9 | //extern gccgoGetCpuidCount | ||
| 10 | func gccgoGetCpuidCount(eaxArg, ecxArg uint32, eax, ebx, ecx, edx *uint32) | ||
| 11 | |||
| 12 | func cpuid(eaxArg, ecxArg uint32) (eax, ebx, ecx, edx uint32) { | ||
| 13 | var a, b, c, d uint32 | ||
| 14 | gccgoGetCpuidCount(eaxArg, ecxArg, &a, &b, &c, &d) | ||
| 15 | return a, b, c, d | ||
| 16 | } | ||
| 17 | |||
| 18 | //extern gccgoXgetbv | ||
| 19 | func gccgoXgetbv(eax, edx *uint32) | ||
| 20 | |||
| 21 | func xgetbv() (eax, edx uint32) { | ||
| 22 | var a, d uint32 | ||
| 23 | gccgoXgetbv(&a, &d) | ||
| 24 | return a, d | ||
| 25 | } | ||
| 26 | |||
| 27 | // gccgo doesn't build on Darwin, per: | ||
| 28 | // https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/gcc.rb#L76 | ||
| 29 | func darwinSupportsAVX512() bool { | ||
| 30 | return false | ||
| 31 | } | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux.go b/vendor/golang.org/x/sys/cpu/cpu_linux.go deleted file mode 100644 index 743eb54..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_linux.go +++ /dev/null | |||
| @@ -1,15 +0,0 @@ | |||
| 1 | // Copyright 2018 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | //go:build !386 && !amd64 && !amd64p32 && !arm64 | ||
| 6 | |||
| 7 | package cpu | ||
| 8 | |||
| 9 | func archInit() { | ||
| 10 | if err := readHWCAP(); err != nil { | ||
| 11 | return | ||
| 12 | } | ||
| 13 | doinit() | ||
| 14 | Initialized = true | ||
| 15 | } | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux_arm.go b/vendor/golang.org/x/sys/cpu/cpu_linux_arm.go deleted file mode 100644 index 2057006..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_linux_arm.go +++ /dev/null | |||
| @@ -1,39 +0,0 @@ | |||
| 1 | // Copyright 2019 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | package cpu | ||
| 6 | |||
| 7 | func doinit() { | ||
| 8 | ARM.HasSWP = isSet(hwCap, hwcap_SWP) | ||
| 9 | ARM.HasHALF = isSet(hwCap, hwcap_HALF) | ||
| 10 | ARM.HasTHUMB = isSet(hwCap, hwcap_THUMB) | ||
| 11 | ARM.Has26BIT = isSet(hwCap, hwcap_26BIT) | ||
| 12 | ARM.HasFASTMUL = isSet(hwCap, hwcap_FAST_MULT) | ||
| 13 | ARM.HasFPA = isSet(hwCap, hwcap_FPA) | ||
| 14 | ARM.HasVFP = isSet(hwCap, hwcap_VFP) | ||
| 15 | ARM.HasEDSP = isSet(hwCap, hwcap_EDSP) | ||
| 16 | ARM.HasJAVA = isSet(hwCap, hwcap_JAVA) | ||
| 17 | ARM.HasIWMMXT = isSet(hwCap, hwcap_IWMMXT) | ||
| 18 | ARM.HasCRUNCH = isSet(hwCap, hwcap_CRUNCH) | ||
| 19 | ARM.HasTHUMBEE = isSet(hwCap, hwcap_THUMBEE) | ||
| 20 | ARM.HasNEON = isSet(hwCap, hwcap_NEON) | ||
| 21 | ARM.HasVFPv3 = isSet(hwCap, hwcap_VFPv3) | ||
| 22 | ARM.HasVFPv3D16 = isSet(hwCap, hwcap_VFPv3D16) | ||
| 23 | ARM.HasTLS = isSet(hwCap, hwcap_TLS) | ||
| 24 | ARM.HasVFPv4 = isSet(hwCap, hwcap_VFPv4) | ||
| 25 | ARM.HasIDIVA = isSet(hwCap, hwcap_IDIVA) | ||
| 26 | ARM.HasIDIVT = isSet(hwCap, hwcap_IDIVT) | ||
| 27 | ARM.HasVFPD32 = isSet(hwCap, hwcap_VFPD32) | ||
| 28 | ARM.HasLPAE = isSet(hwCap, hwcap_LPAE) | ||
| 29 | ARM.HasEVTSTRM = isSet(hwCap, hwcap_EVTSTRM) | ||
| 30 | ARM.HasAES = isSet(hwCap2, hwcap2_AES) | ||
| 31 | ARM.HasPMULL = isSet(hwCap2, hwcap2_PMULL) | ||
| 32 | ARM.HasSHA1 = isSet(hwCap2, hwcap2_SHA1) | ||
| 33 | ARM.HasSHA2 = isSet(hwCap2, hwcap2_SHA2) | ||
| 34 | ARM.HasCRC32 = isSet(hwCap2, hwcap2_CRC32) | ||
| 35 | } | ||
| 36 | |||
| 37 | func isSet(hwc uint, value uint) bool { | ||
| 38 | return hwc&value != 0 | ||
| 39 | } | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_linux_arm64.go deleted file mode 100644 index a968b80..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_linux_arm64.go +++ /dev/null | |||
| @@ -1,111 +0,0 @@ | |||
| 1 | // Copyright 2018 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | package cpu | ||
| 6 | |||
| 7 | import ( | ||
| 8 | "strings" | ||
| 9 | "syscall" | ||
| 10 | ) | ||
| 11 | |||
| 12 | // HWCAP/HWCAP2 bits. These are exposed by Linux. | ||
| 13 | const ( | ||
| 14 | hwcap_FP = 1 << 0 | ||
| 15 | hwcap_ASIMD = 1 << 1 | ||
| 16 | hwcap_EVTSTRM = 1 << 2 | ||
| 17 | hwcap_AES = 1 << 3 | ||
| 18 | hwcap_PMULL = 1 << 4 | ||
| 19 | hwcap_SHA1 = 1 << 5 | ||
| 20 | hwcap_SHA2 = 1 << 6 | ||
| 21 | hwcap_CRC32 = 1 << 7 | ||
| 22 | hwcap_ATOMICS = 1 << 8 | ||
| 23 | hwcap_FPHP = 1 << 9 | ||
| 24 | hwcap_ASIMDHP = 1 << 10 | ||
| 25 | hwcap_CPUID = 1 << 11 | ||
| 26 | hwcap_ASIMDRDM = 1 << 12 | ||
| 27 | hwcap_JSCVT = 1 << 13 | ||
| 28 | hwcap_FCMA = 1 << 14 | ||
| 29 | hwcap_LRCPC = 1 << 15 | ||
| 30 | hwcap_DCPOP = 1 << 16 | ||
| 31 | hwcap_SHA3 = 1 << 17 | ||
| 32 | hwcap_SM3 = 1 << 18 | ||
| 33 | hwcap_SM4 = 1 << 19 | ||
| 34 | hwcap_ASIMDDP = 1 << 20 | ||
| 35 | hwcap_SHA512 = 1 << 21 | ||
| 36 | hwcap_SVE = 1 << 22 | ||
| 37 | hwcap_ASIMDFHM = 1 << 23 | ||
| 38 | ) | ||
| 39 | |||
| 40 | // linuxKernelCanEmulateCPUID reports whether we're running | ||
| 41 | // on Linux 4.11+. Ideally we'd like to ask the question about | ||
| 42 | // whether the current kernel contains | ||
| 43 | // https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=77c97b4ee21290f5f083173d957843b615abbff2 | ||
| 44 | // but the version number will have to do. | ||
| 45 | func linuxKernelCanEmulateCPUID() bool { | ||
| 46 | var un syscall.Utsname | ||
| 47 | syscall.Uname(&un) | ||
| 48 | var sb strings.Builder | ||
| 49 | for _, b := range un.Release[:] { | ||
| 50 | if b == 0 { | ||
| 51 | break | ||
| 52 | } | ||
| 53 | sb.WriteByte(byte(b)) | ||
| 54 | } | ||
| 55 | major, minor, _, ok := parseRelease(sb.String()) | ||
| 56 | return ok && (major > 4 || major == 4 && minor >= 11) | ||
| 57 | } | ||
| 58 | |||
| 59 | func doinit() { | ||
| 60 | if err := readHWCAP(); err != nil { | ||
| 61 | // We failed to read /proc/self/auxv. This can happen if the binary has | ||
| 62 | // been given extra capabilities(7) with /bin/setcap. | ||
| 63 | // | ||
| 64 | // When this happens, we have two options. If the Linux kernel is new | ||
| 65 | // enough (4.11+), we can read the arm64 registers directly which'll | ||
| 66 | // trap into the kernel and then return back to userspace. | ||
| 67 | // | ||
| 68 | // But on older kernels, such as Linux 4.4.180 as used on many Synology | ||
| 69 | // devices, calling readARM64Registers (specifically getisar0) will | ||
| 70 | // cause a SIGILL and we'll die. So for older kernels, parse /proc/cpuinfo | ||
| 71 | // instead. | ||
| 72 | // | ||
| 73 | // See golang/go#57336. | ||
| 74 | if linuxKernelCanEmulateCPUID() { | ||
| 75 | readARM64Registers() | ||
| 76 | } else { | ||
| 77 | readLinuxProcCPUInfo() | ||
| 78 | } | ||
| 79 | return | ||
| 80 | } | ||
| 81 | |||
| 82 | // HWCAP feature bits | ||
| 83 | ARM64.HasFP = isSet(hwCap, hwcap_FP) | ||
| 84 | ARM64.HasASIMD = isSet(hwCap, hwcap_ASIMD) | ||
| 85 | ARM64.HasEVTSTRM = isSet(hwCap, hwcap_EVTSTRM) | ||
| 86 | ARM64.HasAES = isSet(hwCap, hwcap_AES) | ||
| 87 | ARM64.HasPMULL = isSet(hwCap, hwcap_PMULL) | ||
| 88 | ARM64.HasSHA1 = isSet(hwCap, hwcap_SHA1) | ||
| 89 | ARM64.HasSHA2 = isSet(hwCap, hwcap_SHA2) | ||
| 90 | ARM64.HasCRC32 = isSet(hwCap, hwcap_CRC32) | ||
| 91 | ARM64.HasATOMICS = isSet(hwCap, hwcap_ATOMICS) | ||
| 92 | ARM64.HasFPHP = isSet(hwCap, hwcap_FPHP) | ||
| 93 | ARM64.HasASIMDHP = isSet(hwCap, hwcap_ASIMDHP) | ||
| 94 | ARM64.HasCPUID = isSet(hwCap, hwcap_CPUID) | ||
| 95 | ARM64.HasASIMDRDM = isSet(hwCap, hwcap_ASIMDRDM) | ||
| 96 | ARM64.HasJSCVT = isSet(hwCap, hwcap_JSCVT) | ||
| 97 | ARM64.HasFCMA = isSet(hwCap, hwcap_FCMA) | ||
| 98 | ARM64.HasLRCPC = isSet(hwCap, hwcap_LRCPC) | ||
| 99 | ARM64.HasDCPOP = isSet(hwCap, hwcap_DCPOP) | ||
| 100 | ARM64.HasSHA3 = isSet(hwCap, hwcap_SHA3) | ||
| 101 | ARM64.HasSM3 = isSet(hwCap, hwcap_SM3) | ||
| 102 | ARM64.HasSM4 = isSet(hwCap, hwcap_SM4) | ||
| 103 | ARM64.HasASIMDDP = isSet(hwCap, hwcap_ASIMDDP) | ||
| 104 | ARM64.HasSHA512 = isSet(hwCap, hwcap_SHA512) | ||
| 105 | ARM64.HasSVE = isSet(hwCap, hwcap_SVE) | ||
| 106 | ARM64.HasASIMDFHM = isSet(hwCap, hwcap_ASIMDFHM) | ||
| 107 | } | ||
| 108 | |||
| 109 | func isSet(hwc uint, value uint) bool { | ||
| 110 | return hwc&value != 0 | ||
| 111 | } | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux_mips64x.go b/vendor/golang.org/x/sys/cpu/cpu_linux_mips64x.go deleted file mode 100644 index 4686c1d..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_linux_mips64x.go +++ /dev/null | |||
| @@ -1,22 +0,0 @@ | |||
| 1 | // Copyright 2020 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | //go:build linux && (mips64 || mips64le) | ||
| 6 | |||
| 7 | package cpu | ||
| 8 | |||
| 9 | // HWCAP bits. These are exposed by the Linux kernel 5.4. | ||
| 10 | const ( | ||
| 11 | // CPU features | ||
| 12 | hwcap_MIPS_MSA = 1 << 1 | ||
| 13 | ) | ||
| 14 | |||
| 15 | func doinit() { | ||
| 16 | // HWCAP feature bits | ||
| 17 | MIPS64X.HasMSA = isSet(hwCap, hwcap_MIPS_MSA) | ||
| 18 | } | ||
| 19 | |||
| 20 | func isSet(hwc uint, value uint) bool { | ||
| 21 | return hwc&value != 0 | ||
| 22 | } | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux_noinit.go b/vendor/golang.org/x/sys/cpu/cpu_linux_noinit.go deleted file mode 100644 index cd63e73..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_linux_noinit.go +++ /dev/null | |||
| @@ -1,9 +0,0 @@ | |||
| 1 | // Copyright 2019 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | //go:build linux && !arm && !arm64 && !mips64 && !mips64le && !ppc64 && !ppc64le && !s390x | ||
| 6 | |||
| 7 | package cpu | ||
| 8 | |||
| 9 | func doinit() {} | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux_ppc64x.go b/vendor/golang.org/x/sys/cpu/cpu_linux_ppc64x.go deleted file mode 100644 index 197188e..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_linux_ppc64x.go +++ /dev/null | |||
| @@ -1,30 +0,0 @@ | |||
| 1 | // Copyright 2018 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | //go:build linux && (ppc64 || ppc64le) | ||
| 6 | |||
| 7 | package cpu | ||
| 8 | |||
| 9 | // HWCAP/HWCAP2 bits. These are exposed by the kernel. | ||
| 10 | const ( | ||
| 11 | // ISA Level | ||
| 12 | _PPC_FEATURE2_ARCH_2_07 = 0x80000000 | ||
| 13 | _PPC_FEATURE2_ARCH_3_00 = 0x00800000 | ||
| 14 | |||
| 15 | // CPU features | ||
| 16 | _PPC_FEATURE2_DARN = 0x00200000 | ||
| 17 | _PPC_FEATURE2_SCV = 0x00100000 | ||
| 18 | ) | ||
| 19 | |||
| 20 | func doinit() { | ||
| 21 | // HWCAP2 feature bits | ||
| 22 | PPC64.IsPOWER8 = isSet(hwCap2, _PPC_FEATURE2_ARCH_2_07) | ||
| 23 | PPC64.IsPOWER9 = isSet(hwCap2, _PPC_FEATURE2_ARCH_3_00) | ||
| 24 | PPC64.HasDARN = isSet(hwCap2, _PPC_FEATURE2_DARN) | ||
| 25 | PPC64.HasSCV = isSet(hwCap2, _PPC_FEATURE2_SCV) | ||
| 26 | } | ||
| 27 | |||
| 28 | func isSet(hwc uint, value uint) bool { | ||
| 29 | return hwc&value != 0 | ||
| 30 | } | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux_s390x.go b/vendor/golang.org/x/sys/cpu/cpu_linux_s390x.go deleted file mode 100644 index 1517ac6..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_linux_s390x.go +++ /dev/null | |||
| @@ -1,40 +0,0 @@ | |||
| 1 | // Copyright 2019 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | package cpu | ||
| 6 | |||
| 7 | const ( | ||
| 8 | // bit mask values from /usr/include/bits/hwcap.h | ||
| 9 | hwcap_ZARCH = 2 | ||
| 10 | hwcap_STFLE = 4 | ||
| 11 | hwcap_MSA = 8 | ||
| 12 | hwcap_LDISP = 16 | ||
| 13 | hwcap_EIMM = 32 | ||
| 14 | hwcap_DFP = 64 | ||
| 15 | hwcap_ETF3EH = 256 | ||
| 16 | hwcap_VX = 2048 | ||
| 17 | hwcap_VXE = 8192 | ||
| 18 | ) | ||
| 19 | |||
| 20 | func initS390Xbase() { | ||
| 21 | // test HWCAP bit vector | ||
| 22 | has := func(featureMask uint) bool { | ||
| 23 | return hwCap&featureMask == featureMask | ||
| 24 | } | ||
| 25 | |||
| 26 | // mandatory | ||
| 27 | S390X.HasZARCH = has(hwcap_ZARCH) | ||
| 28 | |||
| 29 | // optional | ||
| 30 | S390X.HasSTFLE = has(hwcap_STFLE) | ||
| 31 | S390X.HasLDISP = has(hwcap_LDISP) | ||
| 32 | S390X.HasEIMM = has(hwcap_EIMM) | ||
| 33 | S390X.HasETF3EH = has(hwcap_ETF3EH) | ||
| 34 | S390X.HasDFP = has(hwcap_DFP) | ||
| 35 | S390X.HasMSA = has(hwcap_MSA) | ||
| 36 | S390X.HasVX = has(hwcap_VX) | ||
| 37 | if S390X.HasVX { | ||
| 38 | S390X.HasVXE = has(hwcap_VXE) | ||
| 39 | } | ||
| 40 | } | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_loong64.go b/vendor/golang.org/x/sys/cpu/cpu_loong64.go deleted file mode 100644 index 5586358..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_loong64.go +++ /dev/null | |||
| @@ -1,12 +0,0 @@ | |||
| 1 | // Copyright 2022 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | //go:build loong64 | ||
| 6 | |||
| 7 | package cpu | ||
| 8 | |||
| 9 | const cacheLineSize = 64 | ||
| 10 | |||
| 11 | func initOptions() { | ||
| 12 | } | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_mips64x.go b/vendor/golang.org/x/sys/cpu/cpu_mips64x.go deleted file mode 100644 index fedb00c..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_mips64x.go +++ /dev/null | |||
| @@ -1,15 +0,0 @@ | |||
| 1 | // Copyright 2018 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | //go:build mips64 || mips64le | ||
| 6 | |||
| 7 | package cpu | ||
| 8 | |||
| 9 | const cacheLineSize = 32 | ||
| 10 | |||
| 11 | func initOptions() { | ||
| 12 | options = []option{ | ||
| 13 | {Name: "msa", Feature: &MIPS64X.HasMSA}, | ||
| 14 | } | ||
| 15 | } | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_mipsx.go b/vendor/golang.org/x/sys/cpu/cpu_mipsx.go deleted file mode 100644 index ffb4ec7..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_mipsx.go +++ /dev/null | |||
| @@ -1,11 +0,0 @@ | |||
| 1 | // Copyright 2018 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | //go:build mips || mipsle | ||
| 6 | |||
| 7 | package cpu | ||
| 8 | |||
| 9 | const cacheLineSize = 32 | ||
| 10 | |||
| 11 | func initOptions() {} | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_netbsd_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_netbsd_arm64.go deleted file mode 100644 index ebfb3fc..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_netbsd_arm64.go +++ /dev/null | |||
| @@ -1,173 +0,0 @@ | |||
| 1 | // Copyright 2020 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | package cpu | ||
| 6 | |||
| 7 | import ( | ||
| 8 | "syscall" | ||
| 9 | "unsafe" | ||
| 10 | ) | ||
| 11 | |||
| 12 | // Minimal copy of functionality from x/sys/unix so the cpu package can call | ||
| 13 | // sysctl without depending on x/sys/unix. | ||
| 14 | |||
| 15 | const ( | ||
| 16 | _CTL_QUERY = -2 | ||
| 17 | |||
| 18 | _SYSCTL_VERS_1 = 0x1000000 | ||
| 19 | ) | ||
| 20 | |||
| 21 | var _zero uintptr | ||
| 22 | |||
| 23 | func sysctl(mib []int32, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { | ||
| 24 | var _p0 unsafe.Pointer | ||
| 25 | if len(mib) > 0 { | ||
| 26 | _p0 = unsafe.Pointer(&mib[0]) | ||
| 27 | } else { | ||
| 28 | _p0 = unsafe.Pointer(&_zero) | ||
| 29 | } | ||
| 30 | _, _, errno := syscall.Syscall6( | ||
| 31 | syscall.SYS___SYSCTL, | ||
| 32 | uintptr(_p0), | ||
| 33 | uintptr(len(mib)), | ||
| 34 | uintptr(unsafe.Pointer(old)), | ||
| 35 | uintptr(unsafe.Pointer(oldlen)), | ||
| 36 | uintptr(unsafe.Pointer(new)), | ||
| 37 | uintptr(newlen)) | ||
| 38 | if errno != 0 { | ||
| 39 | return errno | ||
| 40 | } | ||
| 41 | return nil | ||
| 42 | } | ||
| 43 | |||
| 44 | type sysctlNode struct { | ||
| 45 | Flags uint32 | ||
| 46 | Num int32 | ||
| 47 | Name [32]int8 | ||
| 48 | Ver uint32 | ||
| 49 | __rsvd uint32 | ||
| 50 | Un [16]byte | ||
| 51 | _sysctl_size [8]byte | ||
| 52 | _sysctl_func [8]byte | ||
| 53 | _sysctl_parent [8]byte | ||
| 54 | _sysctl_desc [8]byte | ||
| 55 | } | ||
| 56 | |||
| 57 | func sysctlNodes(mib []int32) ([]sysctlNode, error) { | ||
| 58 | var olen uintptr | ||
| 59 | |||
| 60 | // Get a list of all sysctl nodes below the given MIB by performing | ||
| 61 | // a sysctl for the given MIB with CTL_QUERY appended. | ||
| 62 | mib = append(mib, _CTL_QUERY) | ||
| 63 | qnode := sysctlNode{Flags: _SYSCTL_VERS_1} | ||
| 64 | qp := (*byte)(unsafe.Pointer(&qnode)) | ||
| 65 | sz := unsafe.Sizeof(qnode) | ||
| 66 | if err := sysctl(mib, nil, &olen, qp, sz); err != nil { | ||
| 67 | return nil, err | ||
| 68 | } | ||
| 69 | |||
| 70 | // Now that we know the size, get the actual nodes. | ||
| 71 | nodes := make([]sysctlNode, olen/sz) | ||
| 72 | np := (*byte)(unsafe.Pointer(&nodes[0])) | ||
| 73 | if err := sysctl(mib, np, &olen, qp, sz); err != nil { | ||
| 74 | return nil, err | ||
| 75 | } | ||
| 76 | |||
| 77 | return nodes, nil | ||
| 78 | } | ||
| 79 | |||
| 80 | func nametomib(name string) ([]int32, error) { | ||
| 81 | // Split name into components. | ||
| 82 | var parts []string | ||
| 83 | last := 0 | ||
| 84 | for i := 0; i < len(name); i++ { | ||
| 85 | if name[i] == '.' { | ||
| 86 | parts = append(parts, name[last:i]) | ||
| 87 | last = i + 1 | ||
| 88 | } | ||
| 89 | } | ||
| 90 | parts = append(parts, name[last:]) | ||
| 91 | |||
| 92 | mib := []int32{} | ||
| 93 | // Discover the nodes and construct the MIB OID. | ||
| 94 | for partno, part := range parts { | ||
| 95 | nodes, err := sysctlNodes(mib) | ||
| 96 | if err != nil { | ||
| 97 | return nil, err | ||
| 98 | } | ||
| 99 | for _, node := range nodes { | ||
| 100 | n := make([]byte, 0) | ||
| 101 | for i := range node.Name { | ||
| 102 | if node.Name[i] != 0 { | ||
| 103 | n = append(n, byte(node.Name[i])) | ||
| 104 | } | ||
| 105 | } | ||
| 106 | if string(n) == part { | ||
| 107 | mib = append(mib, int32(node.Num)) | ||
| 108 | break | ||
| 109 | } | ||
| 110 | } | ||
| 111 | if len(mib) != partno+1 { | ||
| 112 | return nil, err | ||
| 113 | } | ||
| 114 | } | ||
| 115 | |||
| 116 | return mib, nil | ||
| 117 | } | ||
| 118 | |||
| 119 | // aarch64SysctlCPUID is struct aarch64_sysctl_cpu_id from NetBSD's <aarch64/armreg.h> | ||
| 120 | type aarch64SysctlCPUID struct { | ||
| 121 | midr uint64 /* Main ID Register */ | ||
| 122 | revidr uint64 /* Revision ID Register */ | ||
| 123 | mpidr uint64 /* Multiprocessor Affinity Register */ | ||
| 124 | aa64dfr0 uint64 /* A64 Debug Feature Register 0 */ | ||
| 125 | aa64dfr1 uint64 /* A64 Debug Feature Register 1 */ | ||
| 126 | aa64isar0 uint64 /* A64 Instruction Set Attribute Register 0 */ | ||
| 127 | aa64isar1 uint64 /* A64 Instruction Set Attribute Register 1 */ | ||
| 128 | aa64mmfr0 uint64 /* A64 Memory Model Feature Register 0 */ | ||
| 129 | aa64mmfr1 uint64 /* A64 Memory Model Feature Register 1 */ | ||
| 130 | aa64mmfr2 uint64 /* A64 Memory Model Feature Register 2 */ | ||
| 131 | aa64pfr0 uint64 /* A64 Processor Feature Register 0 */ | ||
| 132 | aa64pfr1 uint64 /* A64 Processor Feature Register 1 */ | ||
| 133 | aa64zfr0 uint64 /* A64 SVE Feature ID Register 0 */ | ||
| 134 | mvfr0 uint32 /* Media and VFP Feature Register 0 */ | ||
| 135 | mvfr1 uint32 /* Media and VFP Feature Register 1 */ | ||
| 136 | mvfr2 uint32 /* Media and VFP Feature Register 2 */ | ||
| 137 | pad uint32 | ||
| 138 | clidr uint64 /* Cache Level ID Register */ | ||
| 139 | ctr uint64 /* Cache Type Register */ | ||
| 140 | } | ||
| 141 | |||
| 142 | func sysctlCPUID(name string) (*aarch64SysctlCPUID, error) { | ||
| 143 | mib, err := nametomib(name) | ||
| 144 | if err != nil { | ||
| 145 | return nil, err | ||
| 146 | } | ||
| 147 | |||
| 148 | out := aarch64SysctlCPUID{} | ||
| 149 | n := unsafe.Sizeof(out) | ||
| 150 | _, _, errno := syscall.Syscall6( | ||
| 151 | syscall.SYS___SYSCTL, | ||
| 152 | uintptr(unsafe.Pointer(&mib[0])), | ||
| 153 | uintptr(len(mib)), | ||
| 154 | uintptr(unsafe.Pointer(&out)), | ||
| 155 | uintptr(unsafe.Pointer(&n)), | ||
| 156 | uintptr(0), | ||
| 157 | uintptr(0)) | ||
| 158 | if errno != 0 { | ||
| 159 | return nil, errno | ||
| 160 | } | ||
| 161 | return &out, nil | ||
| 162 | } | ||
| 163 | |||
| 164 | func doinit() { | ||
| 165 | cpuid, err := sysctlCPUID("machdep.cpu0.cpu_id") | ||
| 166 | if err != nil { | ||
| 167 | setMinimalFeatures() | ||
| 168 | return | ||
| 169 | } | ||
| 170 | parseARM64SystemRegisters(cpuid.aa64isar0, cpuid.aa64isar1, cpuid.aa64pfr0) | ||
| 171 | |||
| 172 | Initialized = true | ||
| 173 | } | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.go deleted file mode 100644 index 85b64d5..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.go +++ /dev/null | |||
| @@ -1,65 +0,0 @@ | |||
| 1 | // Copyright 2022 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | package cpu | ||
| 6 | |||
| 7 | import ( | ||
| 8 | "syscall" | ||
| 9 | "unsafe" | ||
| 10 | ) | ||
| 11 | |||
| 12 | // Minimal copy of functionality from x/sys/unix so the cpu package can call | ||
| 13 | // sysctl without depending on x/sys/unix. | ||
| 14 | |||
| 15 | const ( | ||
| 16 | // From OpenBSD's sys/sysctl.h. | ||
| 17 | _CTL_MACHDEP = 7 | ||
| 18 | |||
| 19 | // From OpenBSD's machine/cpu.h. | ||
| 20 | _CPU_ID_AA64ISAR0 = 2 | ||
| 21 | _CPU_ID_AA64ISAR1 = 3 | ||
| 22 | ) | ||
| 23 | |||
| 24 | // Implemented in the runtime package (runtime/sys_openbsd3.go) | ||
| 25 | func syscall_syscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) | ||
| 26 | |||
| 27 | //go:linkname syscall_syscall6 syscall.syscall6 | ||
| 28 | |||
| 29 | func sysctl(mib []uint32, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { | ||
| 30 | _, _, errno := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(unsafe.Pointer(&mib[0])), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) | ||
| 31 | if errno != 0 { | ||
| 32 | return errno | ||
| 33 | } | ||
| 34 | return nil | ||
| 35 | } | ||
| 36 | |||
| 37 | var libc_sysctl_trampoline_addr uintptr | ||
| 38 | |||
| 39 | //go:cgo_import_dynamic libc_sysctl sysctl "libc.so" | ||
| 40 | |||
| 41 | func sysctlUint64(mib []uint32) (uint64, bool) { | ||
| 42 | var out uint64 | ||
| 43 | nout := unsafe.Sizeof(out) | ||
| 44 | if err := sysctl(mib, (*byte)(unsafe.Pointer(&out)), &nout, nil, 0); err != nil { | ||
| 45 | return 0, false | ||
| 46 | } | ||
| 47 | return out, true | ||
| 48 | } | ||
| 49 | |||
| 50 | func doinit() { | ||
| 51 | setMinimalFeatures() | ||
| 52 | |||
| 53 | // Get ID_AA64ISAR0 and ID_AA64ISAR1 from sysctl. | ||
| 54 | isar0, ok := sysctlUint64([]uint32{_CTL_MACHDEP, _CPU_ID_AA64ISAR0}) | ||
| 55 | if !ok { | ||
| 56 | return | ||
| 57 | } | ||
| 58 | isar1, ok := sysctlUint64([]uint32{_CTL_MACHDEP, _CPU_ID_AA64ISAR1}) | ||
| 59 | if !ok { | ||
| 60 | return | ||
| 61 | } | ||
| 62 | parseARM64SystemRegisters(isar0, isar1, 0) | ||
| 63 | |||
| 64 | Initialized = true | ||
| 65 | } | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.s b/vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.s deleted file mode 100644 index 054ba05..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.s +++ /dev/null | |||
| @@ -1,11 +0,0 @@ | |||
| 1 | // Copyright 2022 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | #include "textflag.h" | ||
| 6 | |||
| 7 | TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 | ||
| 8 | JMP libc_sysctl(SB) | ||
| 9 | |||
| 10 | GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 | ||
| 11 | DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_other_arm.go b/vendor/golang.org/x/sys/cpu/cpu_other_arm.go deleted file mode 100644 index e9ecf2a..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_other_arm.go +++ /dev/null | |||
| @@ -1,9 +0,0 @@ | |||
| 1 | // Copyright 2020 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | //go:build !linux && arm | ||
| 6 | |||
| 7 | package cpu | ||
| 8 | |||
| 9 | func archInit() {} | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_other_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_other_arm64.go deleted file mode 100644 index 5341e7f..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_other_arm64.go +++ /dev/null | |||
| @@ -1,9 +0,0 @@ | |||
| 1 | // Copyright 2019 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | //go:build !linux && !netbsd && !openbsd && arm64 | ||
| 6 | |||
| 7 | package cpu | ||
| 8 | |||
| 9 | func doinit() {} | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_other_mips64x.go b/vendor/golang.org/x/sys/cpu/cpu_other_mips64x.go deleted file mode 100644 index 5f8f241..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_other_mips64x.go +++ /dev/null | |||
| @@ -1,11 +0,0 @@ | |||
| 1 | // Copyright 2020 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | //go:build !linux && (mips64 || mips64le) | ||
| 6 | |||
| 7 | package cpu | ||
| 8 | |||
| 9 | func archInit() { | ||
| 10 | Initialized = true | ||
| 11 | } | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_other_ppc64x.go b/vendor/golang.org/x/sys/cpu/cpu_other_ppc64x.go deleted file mode 100644 index 89608fb..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_other_ppc64x.go +++ /dev/null | |||
| @@ -1,12 +0,0 @@ | |||
| 1 | // Copyright 2022 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | //go:build !aix && !linux && (ppc64 || ppc64le) | ||
| 6 | |||
| 7 | package cpu | ||
| 8 | |||
| 9 | func archInit() { | ||
| 10 | PPC64.IsPOWER8 = true | ||
| 11 | Initialized = true | ||
| 12 | } | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_other_riscv64.go b/vendor/golang.org/x/sys/cpu/cpu_other_riscv64.go deleted file mode 100644 index 5ab8780..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_other_riscv64.go +++ /dev/null | |||
| @@ -1,11 +0,0 @@ | |||
| 1 | // Copyright 2022 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | //go:build !linux && riscv64 | ||
| 6 | |||
| 7 | package cpu | ||
| 8 | |||
| 9 | func archInit() { | ||
| 10 | Initialized = true | ||
| 11 | } | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_ppc64x.go b/vendor/golang.org/x/sys/cpu/cpu_ppc64x.go deleted file mode 100644 index c14f12b..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_ppc64x.go +++ /dev/null | |||
| @@ -1,16 +0,0 @@ | |||
| 1 | // Copyright 2020 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | //go:build ppc64 || ppc64le | ||
| 6 | |||
| 7 | package cpu | ||
| 8 | |||
| 9 | const cacheLineSize = 128 | ||
| 10 | |||
| 11 | func initOptions() { | ||
| 12 | options = []option{ | ||
| 13 | {Name: "darn", Feature: &PPC64.HasDARN}, | ||
| 14 | {Name: "scv", Feature: &PPC64.HasSCV}, | ||
| 15 | } | ||
| 16 | } | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_riscv64.go b/vendor/golang.org/x/sys/cpu/cpu_riscv64.go deleted file mode 100644 index 7f0c79c..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_riscv64.go +++ /dev/null | |||
| @@ -1,11 +0,0 @@ | |||
| 1 | // Copyright 2019 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | //go:build riscv64 | ||
| 6 | |||
| 7 | package cpu | ||
| 8 | |||
| 9 | const cacheLineSize = 64 | ||
| 10 | |||
| 11 | func initOptions() {} | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_s390x.go b/vendor/golang.org/x/sys/cpu/cpu_s390x.go deleted file mode 100644 index 5881b88..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_s390x.go +++ /dev/null | |||
| @@ -1,172 +0,0 @@ | |||
| 1 | // Copyright 2020 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | package cpu | ||
| 6 | |||
| 7 | const cacheLineSize = 256 | ||
| 8 | |||
| 9 | func initOptions() { | ||
| 10 | options = []option{ | ||
| 11 | {Name: "zarch", Feature: &S390X.HasZARCH, Required: true}, | ||
| 12 | {Name: "stfle", Feature: &S390X.HasSTFLE, Required: true}, | ||
| 13 | {Name: "ldisp", Feature: &S390X.HasLDISP, Required: true}, | ||
| 14 | {Name: "eimm", Feature: &S390X.HasEIMM, Required: true}, | ||
| 15 | {Name: "dfp", Feature: &S390X.HasDFP}, | ||
| 16 | {Name: "etf3eh", Feature: &S390X.HasETF3EH}, | ||
| 17 | {Name: "msa", Feature: &S390X.HasMSA}, | ||
| 18 | {Name: "aes", Feature: &S390X.HasAES}, | ||
| 19 | {Name: "aescbc", Feature: &S390X.HasAESCBC}, | ||
| 20 | {Name: "aesctr", Feature: &S390X.HasAESCTR}, | ||
| 21 | {Name: "aesgcm", Feature: &S390X.HasAESGCM}, | ||
| 22 | {Name: "ghash", Feature: &S390X.HasGHASH}, | ||
| 23 | {Name: "sha1", Feature: &S390X.HasSHA1}, | ||
| 24 | {Name: "sha256", Feature: &S390X.HasSHA256}, | ||
| 25 | {Name: "sha3", Feature: &S390X.HasSHA3}, | ||
| 26 | {Name: "sha512", Feature: &S390X.HasSHA512}, | ||
| 27 | {Name: "vx", Feature: &S390X.HasVX}, | ||
| 28 | {Name: "vxe", Feature: &S390X.HasVXE}, | ||
| 29 | } | ||
| 30 | } | ||
| 31 | |||
| 32 | // bitIsSet reports whether the bit at index is set. The bit index | ||
| 33 | // is in big endian order, so bit index 0 is the leftmost bit. | ||
| 34 | func bitIsSet(bits []uint64, index uint) bool { | ||
| 35 | return bits[index/64]&((1<<63)>>(index%64)) != 0 | ||
| 36 | } | ||
| 37 | |||
| 38 | // facility is a bit index for the named facility. | ||
| 39 | type facility uint8 | ||
| 40 | |||
| 41 | const ( | ||
| 42 | // mandatory facilities | ||
| 43 | zarch facility = 1 // z architecture mode is active | ||
| 44 | stflef facility = 7 // store-facility-list-extended | ||
| 45 | ldisp facility = 18 // long-displacement | ||
| 46 | eimm facility = 21 // extended-immediate | ||
| 47 | |||
| 48 | // miscellaneous facilities | ||
| 49 | dfp facility = 42 // decimal-floating-point | ||
| 50 | etf3eh facility = 30 // extended-translation 3 enhancement | ||
| 51 | |||
| 52 | // cryptography facilities | ||
| 53 | msa facility = 17 // message-security-assist | ||
| 54 | msa3 facility = 76 // message-security-assist extension 3 | ||
| 55 | msa4 facility = 77 // message-security-assist extension 4 | ||
| 56 | msa5 facility = 57 // message-security-assist extension 5 | ||
| 57 | msa8 facility = 146 // message-security-assist extension 8 | ||
| 58 | msa9 facility = 155 // message-security-assist extension 9 | ||
| 59 | |||
| 60 | // vector facilities | ||
| 61 | vx facility = 129 // vector facility | ||
| 62 | vxe facility = 135 // vector-enhancements 1 | ||
| 63 | vxe2 facility = 148 // vector-enhancements 2 | ||
| 64 | ) | ||
| 65 | |||
| 66 | // facilityList contains the result of an STFLE call. | ||
| 67 | // Bits are numbered in big endian order so the | ||
| 68 | // leftmost bit (the MSB) is at index 0. | ||
| 69 | type facilityList struct { | ||
| 70 | bits [4]uint64 | ||
| 71 | } | ||
| 72 | |||
| 73 | // Has reports whether the given facilities are present. | ||
| 74 | func (s *facilityList) Has(fs ...facility) bool { | ||
| 75 | if len(fs) == 0 { | ||
| 76 | panic("no facility bits provided") | ||
| 77 | } | ||
| 78 | for _, f := range fs { | ||
| 79 | if !bitIsSet(s.bits[:], uint(f)) { | ||
| 80 | return false | ||
| 81 | } | ||
| 82 | } | ||
| 83 | return true | ||
| 84 | } | ||
| 85 | |||
| 86 | // function is the code for the named cryptographic function. | ||
| 87 | type function uint8 | ||
| 88 | |||
| 89 | const ( | ||
| 90 | // KM{,A,C,CTR} function codes | ||
| 91 | aes128 function = 18 // AES-128 | ||
| 92 | aes192 function = 19 // AES-192 | ||
| 93 | aes256 function = 20 // AES-256 | ||
| 94 | |||
| 95 | // K{I,L}MD function codes | ||
| 96 | sha1 function = 1 // SHA-1 | ||
| 97 | sha256 function = 2 // SHA-256 | ||
| 98 | sha512 function = 3 // SHA-512 | ||
| 99 | sha3_224 function = 32 // SHA3-224 | ||
| 100 | sha3_256 function = 33 // SHA3-256 | ||
| 101 | sha3_384 function = 34 // SHA3-384 | ||
| 102 | sha3_512 function = 35 // SHA3-512 | ||
| 103 | shake128 function = 36 // SHAKE-128 | ||
| 104 | shake256 function = 37 // SHAKE-256 | ||
| 105 | |||
| 106 | // KLMD function codes | ||
| 107 | ghash function = 65 // GHASH | ||
| 108 | ) | ||
| 109 | |||
| 110 | // queryResult contains the result of a Query function | ||
| 111 | // call. Bits are numbered in big endian order so the | ||
| 112 | // leftmost bit (the MSB) is at index 0. | ||
| 113 | type queryResult struct { | ||
| 114 | bits [2]uint64 | ||
| 115 | } | ||
| 116 | |||
| 117 | // Has reports whether the given functions are present. | ||
| 118 | func (q *queryResult) Has(fns ...function) bool { | ||
| 119 | if len(fns) == 0 { | ||
| 120 | panic("no function codes provided") | ||
| 121 | } | ||
| 122 | for _, f := range fns { | ||
| 123 | if !bitIsSet(q.bits[:], uint(f)) { | ||
| 124 | return false | ||
| 125 | } | ||
| 126 | } | ||
| 127 | return true | ||
| 128 | } | ||
| 129 | |||
| 130 | func doinit() { | ||
| 131 | initS390Xbase() | ||
| 132 | |||
| 133 | // We need implementations of stfle, km and so on | ||
| 134 | // to detect cryptographic features. | ||
| 135 | if !haveAsmFunctions() { | ||
| 136 | return | ||
| 137 | } | ||
| 138 | |||
| 139 | // optional cryptographic functions | ||
| 140 | if S390X.HasMSA { | ||
| 141 | aes := []function{aes128, aes192, aes256} | ||
| 142 | |||
| 143 | // cipher message | ||
| 144 | km, kmc := kmQuery(), kmcQuery() | ||
| 145 | S390X.HasAES = km.Has(aes...) | ||
| 146 | S390X.HasAESCBC = kmc.Has(aes...) | ||
| 147 | if S390X.HasSTFLE { | ||
| 148 | facilities := stfle() | ||
| 149 | if facilities.Has(msa4) { | ||
| 150 | kmctr := kmctrQuery() | ||
| 151 | S390X.HasAESCTR = kmctr.Has(aes...) | ||
| 152 | } | ||
| 153 | if facilities.Has(msa8) { | ||
| 154 | kma := kmaQuery() | ||
| 155 | S390X.HasAESGCM = kma.Has(aes...) | ||
| 156 | } | ||
| 157 | } | ||
| 158 | |||
| 159 | // compute message digest | ||
| 160 | kimd := kimdQuery() // intermediate (no padding) | ||
| 161 | klmd := klmdQuery() // last (padding) | ||
| 162 | S390X.HasSHA1 = kimd.Has(sha1) && klmd.Has(sha1) | ||
| 163 | S390X.HasSHA256 = kimd.Has(sha256) && klmd.Has(sha256) | ||
| 164 | S390X.HasSHA512 = kimd.Has(sha512) && klmd.Has(sha512) | ||
| 165 | S390X.HasGHASH = kimd.Has(ghash) // KLMD-GHASH does not exist | ||
| 166 | sha3 := []function{ | ||
| 167 | sha3_224, sha3_256, sha3_384, sha3_512, | ||
| 168 | shake128, shake256, | ||
| 169 | } | ||
| 170 | S390X.HasSHA3 = kimd.Has(sha3...) && klmd.Has(sha3...) | ||
| 171 | } | ||
| 172 | } | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_s390x.s b/vendor/golang.org/x/sys/cpu/cpu_s390x.s deleted file mode 100644 index 1fb4b70..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_s390x.s +++ /dev/null | |||
| @@ -1,57 +0,0 @@ | |||
| 1 | // Copyright 2019 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | //go:build gc | ||
| 6 | |||
| 7 | #include "textflag.h" | ||
| 8 | |||
| 9 | // func stfle() facilityList | ||
| 10 | TEXT ·stfle(SB), NOSPLIT|NOFRAME, $0-32 | ||
| 11 | MOVD $ret+0(FP), R1 | ||
| 12 | MOVD $3, R0 // last doubleword index to store | ||
| 13 | XC $32, (R1), (R1) // clear 4 doublewords (32 bytes) | ||
| 14 | WORD $0xb2b01000 // store facility list extended (STFLE) | ||
| 15 | RET | ||
| 16 | |||
| 17 | // func kmQuery() queryResult | ||
| 18 | TEXT ·kmQuery(SB), NOSPLIT|NOFRAME, $0-16 | ||
| 19 | MOVD $0, R0 // set function code to 0 (KM-Query) | ||
| 20 | MOVD $ret+0(FP), R1 // address of 16-byte return value | ||
| 21 | WORD $0xB92E0024 // cipher message (KM) | ||
| 22 | RET | ||
| 23 | |||
| 24 | // func kmcQuery() queryResult | ||
| 25 | TEXT ·kmcQuery(SB), NOSPLIT|NOFRAME, $0-16 | ||
| 26 | MOVD $0, R0 // set function code to 0 (KMC-Query) | ||
| 27 | MOVD $ret+0(FP), R1 // address of 16-byte return value | ||
| 28 | WORD $0xB92F0024 // cipher message with chaining (KMC) | ||
| 29 | RET | ||
| 30 | |||
| 31 | // func kmctrQuery() queryResult | ||
| 32 | TEXT ·kmctrQuery(SB), NOSPLIT|NOFRAME, $0-16 | ||
| 33 | MOVD $0, R0 // set function code to 0 (KMCTR-Query) | ||
| 34 | MOVD $ret+0(FP), R1 // address of 16-byte return value | ||
| 35 | WORD $0xB92D4024 // cipher message with counter (KMCTR) | ||
| 36 | RET | ||
| 37 | |||
| 38 | // func kmaQuery() queryResult | ||
| 39 | TEXT ·kmaQuery(SB), NOSPLIT|NOFRAME, $0-16 | ||
| 40 | MOVD $0, R0 // set function code to 0 (KMA-Query) | ||
| 41 | MOVD $ret+0(FP), R1 // address of 16-byte return value | ||
| 42 | WORD $0xb9296024 // cipher message with authentication (KMA) | ||
| 43 | RET | ||
| 44 | |||
| 45 | // func kimdQuery() queryResult | ||
| 46 | TEXT ·kimdQuery(SB), NOSPLIT|NOFRAME, $0-16 | ||
| 47 | MOVD $0, R0 // set function code to 0 (KIMD-Query) | ||
| 48 | MOVD $ret+0(FP), R1 // address of 16-byte return value | ||
| 49 | WORD $0xB93E0024 // compute intermediate message digest (KIMD) | ||
| 50 | RET | ||
| 51 | |||
| 52 | // func klmdQuery() queryResult | ||
| 53 | TEXT ·klmdQuery(SB), NOSPLIT|NOFRAME, $0-16 | ||
| 54 | MOVD $0, R0 // set function code to 0 (KLMD-Query) | ||
| 55 | MOVD $ret+0(FP), R1 // address of 16-byte return value | ||
| 56 | WORD $0xB93F0024 // compute last message digest (KLMD) | ||
| 57 | RET | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_wasm.go b/vendor/golang.org/x/sys/cpu/cpu_wasm.go deleted file mode 100644 index 384787e..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_wasm.go +++ /dev/null | |||
| @@ -1,17 +0,0 @@ | |||
| 1 | // Copyright 2019 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | //go:build wasm | ||
| 6 | |||
| 7 | package cpu | ||
| 8 | |||
| 9 | // We're compiling the cpu package for an unknown (software-abstracted) CPU. | ||
| 10 | // Make CacheLinePad an empty struct and hope that the usual struct alignment | ||
| 11 | // rules are good enough. | ||
| 12 | |||
| 13 | const cacheLineSize = 0 | ||
| 14 | |||
| 15 | func initOptions() {} | ||
| 16 | |||
| 17 | func archInit() {} | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_x86.go b/vendor/golang.org/x/sys/cpu/cpu_x86.go deleted file mode 100644 index c29f5e4..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_x86.go +++ /dev/null | |||
| @@ -1,151 +0,0 @@ | |||
| 1 | // Copyright 2018 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | //go:build 386 || amd64 || amd64p32 | ||
| 6 | |||
| 7 | package cpu | ||
| 8 | |||
| 9 | import "runtime" | ||
| 10 | |||
| 11 | const cacheLineSize = 64 | ||
| 12 | |||
| 13 | func initOptions() { | ||
| 14 | options = []option{ | ||
| 15 | {Name: "adx", Feature: &X86.HasADX}, | ||
| 16 | {Name: "aes", Feature: &X86.HasAES}, | ||
| 17 | {Name: "avx", Feature: &X86.HasAVX}, | ||
| 18 | {Name: "avx2", Feature: &X86.HasAVX2}, | ||
| 19 | {Name: "avx512", Feature: &X86.HasAVX512}, | ||
| 20 | {Name: "avx512f", Feature: &X86.HasAVX512F}, | ||
| 21 | {Name: "avx512cd", Feature: &X86.HasAVX512CD}, | ||
| 22 | {Name: "avx512er", Feature: &X86.HasAVX512ER}, | ||
| 23 | {Name: "avx512pf", Feature: &X86.HasAVX512PF}, | ||
| 24 | {Name: "avx512vl", Feature: &X86.HasAVX512VL}, | ||
| 25 | {Name: "avx512bw", Feature: &X86.HasAVX512BW}, | ||
| 26 | {Name: "avx512dq", Feature: &X86.HasAVX512DQ}, | ||
| 27 | {Name: "avx512ifma", Feature: &X86.HasAVX512IFMA}, | ||
| 28 | {Name: "avx512vbmi", Feature: &X86.HasAVX512VBMI}, | ||
| 29 | {Name: "avx512vnniw", Feature: &X86.HasAVX5124VNNIW}, | ||
| 30 | {Name: "avx5124fmaps", Feature: &X86.HasAVX5124FMAPS}, | ||
| 31 | {Name: "avx512vpopcntdq", Feature: &X86.HasAVX512VPOPCNTDQ}, | ||
| 32 | {Name: "avx512vpclmulqdq", Feature: &X86.HasAVX512VPCLMULQDQ}, | ||
| 33 | {Name: "avx512vnni", Feature: &X86.HasAVX512VNNI}, | ||
| 34 | {Name: "avx512gfni", Feature: &X86.HasAVX512GFNI}, | ||
| 35 | {Name: "avx512vaes", Feature: &X86.HasAVX512VAES}, | ||
| 36 | {Name: "avx512vbmi2", Feature: &X86.HasAVX512VBMI2}, | ||
| 37 | {Name: "avx512bitalg", Feature: &X86.HasAVX512BITALG}, | ||
| 38 | {Name: "avx512bf16", Feature: &X86.HasAVX512BF16}, | ||
| 39 | {Name: "amxtile", Feature: &X86.HasAMXTile}, | ||
| 40 | {Name: "amxint8", Feature: &X86.HasAMXInt8}, | ||
| 41 | {Name: "amxbf16", Feature: &X86.HasAMXBF16}, | ||
| 42 | {Name: "bmi1", Feature: &X86.HasBMI1}, | ||
| 43 | {Name: "bmi2", Feature: &X86.HasBMI2}, | ||
| 44 | {Name: "cx16", Feature: &X86.HasCX16}, | ||
| 45 | {Name: "erms", Feature: &X86.HasERMS}, | ||
| 46 | {Name: "fma", Feature: &X86.HasFMA}, | ||
| 47 | {Name: "osxsave", Feature: &X86.HasOSXSAVE}, | ||
| 48 | {Name: "pclmulqdq", Feature: &X86.HasPCLMULQDQ}, | ||
| 49 | {Name: "popcnt", Feature: &X86.HasPOPCNT}, | ||
| 50 | {Name: "rdrand", Feature: &X86.HasRDRAND}, | ||
| 51 | {Name: "rdseed", Feature: &X86.HasRDSEED}, | ||
| 52 | {Name: "sse3", Feature: &X86.HasSSE3}, | ||
| 53 | {Name: "sse41", Feature: &X86.HasSSE41}, | ||
| 54 | {Name: "sse42", Feature: &X86.HasSSE42}, | ||
| 55 | {Name: "ssse3", Feature: &X86.HasSSSE3}, | ||
| 56 | |||
| 57 | // These capabilities should always be enabled on amd64: | ||
| 58 | {Name: "sse2", Feature: &X86.HasSSE2, Required: runtime.GOARCH == "amd64"}, | ||
| 59 | } | ||
| 60 | } | ||
| 61 | |||
| 62 | func archInit() { | ||
| 63 | |||
| 64 | Initialized = true | ||
| 65 | |||
| 66 | maxID, _, _, _ := cpuid(0, 0) | ||
| 67 | |||
| 68 | if maxID < 1 { | ||
| 69 | return | ||
| 70 | } | ||
| 71 | |||
| 72 | _, _, ecx1, edx1 := cpuid(1, 0) | ||
| 73 | X86.HasSSE2 = isSet(26, edx1) | ||
| 74 | |||
| 75 | X86.HasSSE3 = isSet(0, ecx1) | ||
| 76 | X86.HasPCLMULQDQ = isSet(1, ecx1) | ||
| 77 | X86.HasSSSE3 = isSet(9, ecx1) | ||
| 78 | X86.HasFMA = isSet(12, ecx1) | ||
| 79 | X86.HasCX16 = isSet(13, ecx1) | ||
| 80 | X86.HasSSE41 = isSet(19, ecx1) | ||
| 81 | X86.HasSSE42 = isSet(20, ecx1) | ||
| 82 | X86.HasPOPCNT = isSet(23, ecx1) | ||
| 83 | X86.HasAES = isSet(25, ecx1) | ||
| 84 | X86.HasOSXSAVE = isSet(27, ecx1) | ||
| 85 | X86.HasRDRAND = isSet(30, ecx1) | ||
| 86 | |||
| 87 | var osSupportsAVX, osSupportsAVX512 bool | ||
| 88 | // For XGETBV, OSXSAVE bit is required and sufficient. | ||
| 89 | if X86.HasOSXSAVE { | ||
| 90 | eax, _ := xgetbv() | ||
| 91 | // Check if XMM and YMM registers have OS support. | ||
| 92 | osSupportsAVX = isSet(1, eax) && isSet(2, eax) | ||
| 93 | |||
| 94 | if runtime.GOOS == "darwin" { | ||
| 95 | // Darwin doesn't save/restore AVX-512 mask registers correctly across signal handlers. | ||
| 96 | // Since users can't rely on mask register contents, let's not advertise AVX-512 support. | ||
| 97 | // See issue 49233. | ||
| 98 | osSupportsAVX512 = false | ||
| 99 | } else { | ||
| 100 | // Check if OPMASK and ZMM registers have OS support. | ||
| 101 | osSupportsAVX512 = osSupportsAVX && isSet(5, eax) && isSet(6, eax) && isSet(7, eax) | ||
| 102 | } | ||
| 103 | } | ||
| 104 | |||
| 105 | X86.HasAVX = isSet(28, ecx1) && osSupportsAVX | ||
| 106 | |||
| 107 | if maxID < 7 { | ||
| 108 | return | ||
| 109 | } | ||
| 110 | |||
| 111 | _, ebx7, ecx7, edx7 := cpuid(7, 0) | ||
| 112 | X86.HasBMI1 = isSet(3, ebx7) | ||
| 113 | X86.HasAVX2 = isSet(5, ebx7) && osSupportsAVX | ||
| 114 | X86.HasBMI2 = isSet(8, ebx7) | ||
| 115 | X86.HasERMS = isSet(9, ebx7) | ||
| 116 | X86.HasRDSEED = isSet(18, ebx7) | ||
| 117 | X86.HasADX = isSet(19, ebx7) | ||
| 118 | |||
| 119 | X86.HasAVX512 = isSet(16, ebx7) && osSupportsAVX512 // Because avx-512 foundation is the core required extension | ||
| 120 | if X86.HasAVX512 { | ||
| 121 | X86.HasAVX512F = true | ||
| 122 | X86.HasAVX512CD = isSet(28, ebx7) | ||
| 123 | X86.HasAVX512ER = isSet(27, ebx7) | ||
| 124 | X86.HasAVX512PF = isSet(26, ebx7) | ||
| 125 | X86.HasAVX512VL = isSet(31, ebx7) | ||
| 126 | X86.HasAVX512BW = isSet(30, ebx7) | ||
| 127 | X86.HasAVX512DQ = isSet(17, ebx7) | ||
| 128 | X86.HasAVX512IFMA = isSet(21, ebx7) | ||
| 129 | X86.HasAVX512VBMI = isSet(1, ecx7) | ||
| 130 | X86.HasAVX5124VNNIW = isSet(2, edx7) | ||
| 131 | X86.HasAVX5124FMAPS = isSet(3, edx7) | ||
| 132 | X86.HasAVX512VPOPCNTDQ = isSet(14, ecx7) | ||
| 133 | X86.HasAVX512VPCLMULQDQ = isSet(10, ecx7) | ||
| 134 | X86.HasAVX512VNNI = isSet(11, ecx7) | ||
| 135 | X86.HasAVX512GFNI = isSet(8, ecx7) | ||
| 136 | X86.HasAVX512VAES = isSet(9, ecx7) | ||
| 137 | X86.HasAVX512VBMI2 = isSet(6, ecx7) | ||
| 138 | X86.HasAVX512BITALG = isSet(12, ecx7) | ||
| 139 | |||
| 140 | eax71, _, _, _ := cpuid(7, 1) | ||
| 141 | X86.HasAVX512BF16 = isSet(5, eax71) | ||
| 142 | } | ||
| 143 | |||
| 144 | X86.HasAMXTile = isSet(24, edx7) | ||
| 145 | X86.HasAMXInt8 = isSet(25, edx7) | ||
| 146 | X86.HasAMXBF16 = isSet(22, edx7) | ||
| 147 | } | ||
| 148 | |||
| 149 | func isSet(bitpos uint, value uint32) bool { | ||
| 150 | return value&(1<<bitpos) != 0 | ||
| 151 | } | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_x86.s b/vendor/golang.org/x/sys/cpu/cpu_x86.s deleted file mode 100644 index 7d7ba33..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_x86.s +++ /dev/null | |||
| @@ -1,26 +0,0 @@ | |||
| 1 | // Copyright 2018 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | //go:build (386 || amd64 || amd64p32) && gc | ||
| 6 | |||
| 7 | #include "textflag.h" | ||
| 8 | |||
| 9 | // func cpuid(eaxArg, ecxArg uint32) (eax, ebx, ecx, edx uint32) | ||
| 10 | TEXT ·cpuid(SB), NOSPLIT, $0-24 | ||
| 11 | MOVL eaxArg+0(FP), AX | ||
| 12 | MOVL ecxArg+4(FP), CX | ||
| 13 | CPUID | ||
| 14 | MOVL AX, eax+8(FP) | ||
| 15 | MOVL BX, ebx+12(FP) | ||
| 16 | MOVL CX, ecx+16(FP) | ||
| 17 | MOVL DX, edx+20(FP) | ||
| 18 | RET | ||
| 19 | |||
| 20 | // func xgetbv() (eax, edx uint32) | ||
| 21 | TEXT ·xgetbv(SB),NOSPLIT,$0-8 | ||
| 22 | MOVL $0, CX | ||
| 23 | XGETBV | ||
| 24 | MOVL AX, eax+0(FP) | ||
| 25 | MOVL DX, edx+4(FP) | ||
| 26 | RET | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_zos.go b/vendor/golang.org/x/sys/cpu/cpu_zos.go deleted file mode 100644 index 5f54683..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_zos.go +++ /dev/null | |||
| @@ -1,10 +0,0 @@ | |||
| 1 | // Copyright 2020 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | package cpu | ||
| 6 | |||
| 7 | func archInit() { | ||
| 8 | doinit() | ||
| 9 | Initialized = true | ||
| 10 | } | ||
diff --git a/vendor/golang.org/x/sys/cpu/cpu_zos_s390x.go b/vendor/golang.org/x/sys/cpu/cpu_zos_s390x.go deleted file mode 100644 index ccb1b70..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_zos_s390x.go +++ /dev/null | |||
| @@ -1,25 +0,0 @@ | |||
| 1 | // Copyright 2020 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | package cpu | ||
| 6 | |||
| 7 | func initS390Xbase() { | ||
| 8 | // get the facilities list | ||
| 9 | facilities := stfle() | ||
| 10 | |||
| 11 | // mandatory | ||
| 12 | S390X.HasZARCH = facilities.Has(zarch) | ||
| 13 | S390X.HasSTFLE = facilities.Has(stflef) | ||
| 14 | S390X.HasLDISP = facilities.Has(ldisp) | ||
| 15 | S390X.HasEIMM = facilities.Has(eimm) | ||
| 16 | |||
| 17 | // optional | ||
| 18 | S390X.HasETF3EH = facilities.Has(etf3eh) | ||
| 19 | S390X.HasDFP = facilities.Has(dfp) | ||
| 20 | S390X.HasMSA = facilities.Has(msa) | ||
| 21 | S390X.HasVX = facilities.Has(vx) | ||
| 22 | if S390X.HasVX { | ||
| 23 | S390X.HasVXE = facilities.Has(vxe) | ||
| 24 | } | ||
| 25 | } | ||
diff --git a/vendor/golang.org/x/sys/cpu/endian_big.go b/vendor/golang.org/x/sys/cpu/endian_big.go deleted file mode 100644 index 7fe04b0..0000000 --- a/vendor/golang.org/x/sys/cpu/endian_big.go +++ /dev/null | |||
| @@ -1,10 +0,0 @@ | |||
| 1 | // Copyright 2023 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | //go:build armbe || arm64be || m68k || mips || mips64 || mips64p32 || ppc || ppc64 || s390 || s390x || shbe || sparc || sparc64 | ||
| 6 | |||
| 7 | package cpu | ||
| 8 | |||
| 9 | // IsBigEndian records whether the GOARCH's byte order is big endian. | ||
| 10 | const IsBigEndian = true | ||
diff --git a/vendor/golang.org/x/sys/cpu/endian_little.go b/vendor/golang.org/x/sys/cpu/endian_little.go deleted file mode 100644 index 48eccc4..0000000 --- a/vendor/golang.org/x/sys/cpu/endian_little.go +++ /dev/null | |||
| @@ -1,10 +0,0 @@ | |||
| 1 | // Copyright 2023 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | //go:build 386 || amd64 || amd64p32 || alpha || arm || arm64 || loong64 || mipsle || mips64le || mips64p32le || nios2 || ppc64le || riscv || riscv64 || sh || wasm | ||
| 6 | |||
| 7 | package cpu | ||
| 8 | |||
| 9 | // IsBigEndian records whether the GOARCH's byte order is big endian. | ||
| 10 | const IsBigEndian = false | ||
diff --git a/vendor/golang.org/x/sys/cpu/hwcap_linux.go b/vendor/golang.org/x/sys/cpu/hwcap_linux.go deleted file mode 100644 index 34e49f9..0000000 --- a/vendor/golang.org/x/sys/cpu/hwcap_linux.go +++ /dev/null | |||
| @@ -1,71 +0,0 @@ | |||
| 1 | // Copyright 2019 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | package cpu | ||
| 6 | |||
| 7 | import ( | ||
| 8 | "os" | ||
| 9 | ) | ||
| 10 | |||
| 11 | const ( | ||
| 12 | _AT_HWCAP = 16 | ||
| 13 | _AT_HWCAP2 = 26 | ||
| 14 | |||
| 15 | procAuxv = "/proc/self/auxv" | ||
| 16 | |||
| 17 | uintSize = int(32 << (^uint(0) >> 63)) | ||
| 18 | ) | ||
| 19 | |||
| 20 | // For those platforms don't have a 'cpuid' equivalent we use HWCAP/HWCAP2 | ||
| 21 | // These are initialized in cpu_$GOARCH.go | ||
| 22 | // and should not be changed after they are initialized. | ||
| 23 | var hwCap uint | ||
| 24 | var hwCap2 uint | ||
| 25 | |||
| 26 | func readHWCAP() error { | ||
| 27 | // For Go 1.21+, get auxv from the Go runtime. | ||
| 28 | if a := getAuxv(); len(a) > 0 { | ||
| 29 | for len(a) >= 2 { | ||
| 30 | tag, val := a[0], uint(a[1]) | ||
| 31 | a = a[2:] | ||
| 32 | switch tag { | ||
| 33 | case _AT_HWCAP: | ||
| 34 | hwCap = val | ||
| 35 | case _AT_HWCAP2: | ||
| 36 | hwCap2 = val | ||
| 37 | } | ||
| 38 | } | ||
| 39 | return nil | ||
| 40 | } | ||
| 41 | |||
| 42 | buf, err := os.ReadFile(procAuxv) | ||
| 43 | if err != nil { | ||
| 44 | // e.g. on android /proc/self/auxv is not accessible, so silently | ||
| 45 | // ignore the error and leave Initialized = false. On some | ||
| 46 | // architectures (e.g. arm64) doinit() implements a fallback | ||
| 47 | // readout and will set Initialized = true again. | ||
| 48 | return err | ||
| 49 | } | ||
| 50 | bo := hostByteOrder() | ||
| 51 | for len(buf) >= 2*(uintSize/8) { | ||
| 52 | var tag, val uint | ||
| 53 | switch uintSize { | ||
| 54 | case 32: | ||
| 55 | tag = uint(bo.Uint32(buf[0:])) | ||
| 56 | val = uint(bo.Uint32(buf[4:])) | ||
| 57 | buf = buf[8:] | ||
| 58 | case 64: | ||
| 59 | tag = uint(bo.Uint64(buf[0:])) | ||
| 60 | val = uint(bo.Uint64(buf[8:])) | ||
| 61 | buf = buf[16:] | ||
| 62 | } | ||
| 63 | switch tag { | ||
| 64 | case _AT_HWCAP: | ||
| 65 | hwCap = val | ||
| 66 | case _AT_HWCAP2: | ||
| 67 | hwCap2 = val | ||
| 68 | } | ||
| 69 | } | ||
| 70 | return nil | ||
| 71 | } | ||
diff --git a/vendor/golang.org/x/sys/cpu/parse.go b/vendor/golang.org/x/sys/cpu/parse.go deleted file mode 100644 index 762b63d..0000000 --- a/vendor/golang.org/x/sys/cpu/parse.go +++ /dev/null | |||
| @@ -1,43 +0,0 @@ | |||
| 1 | // Copyright 2022 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | package cpu | ||
| 6 | |||
| 7 | import "strconv" | ||
| 8 | |||
| 9 | // parseRelease parses a dot-separated version number. It follows the semver | ||
| 10 | // syntax, but allows the minor and patch versions to be elided. | ||
| 11 | // | ||
| 12 | // This is a copy of the Go runtime's parseRelease from | ||
| 13 | // https://golang.org/cl/209597. | ||
| 14 | func parseRelease(rel string) (major, minor, patch int, ok bool) { | ||
| 15 | // Strip anything after a dash or plus. | ||
| 16 | for i := 0; i < len(rel); i++ { | ||
| 17 | if rel[i] == '-' || rel[i] == '+' { | ||
| 18 | rel = rel[:i] | ||
| 19 | break | ||
| 20 | } | ||
| 21 | } | ||
| 22 | |||
| 23 | next := func() (int, bool) { | ||
| 24 | for i := 0; i < len(rel); i++ { | ||
| 25 | if rel[i] == '.' { | ||
| 26 | ver, err := strconv.Atoi(rel[:i]) | ||
| 27 | rel = rel[i+1:] | ||
| 28 | return ver, err == nil | ||
| 29 | } | ||
| 30 | } | ||
| 31 | ver, err := strconv.Atoi(rel) | ||
| 32 | rel = "" | ||
| 33 | return ver, err == nil | ||
| 34 | } | ||
| 35 | if major, ok = next(); !ok || rel == "" { | ||
| 36 | return | ||
| 37 | } | ||
| 38 | if minor, ok = next(); !ok || rel == "" { | ||
| 39 | return | ||
| 40 | } | ||
| 41 | patch, ok = next() | ||
| 42 | return | ||
| 43 | } | ||
diff --git a/vendor/golang.org/x/sys/cpu/proc_cpuinfo_linux.go b/vendor/golang.org/x/sys/cpu/proc_cpuinfo_linux.go deleted file mode 100644 index 4cd64c7..0000000 --- a/vendor/golang.org/x/sys/cpu/proc_cpuinfo_linux.go +++ /dev/null | |||
| @@ -1,53 +0,0 @@ | |||
| 1 | // Copyright 2022 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | //go:build linux && arm64 | ||
| 6 | |||
| 7 | package cpu | ||
| 8 | |||
| 9 | import ( | ||
| 10 | "errors" | ||
| 11 | "io" | ||
| 12 | "os" | ||
| 13 | "strings" | ||
| 14 | ) | ||
| 15 | |||
| 16 | func readLinuxProcCPUInfo() error { | ||
| 17 | f, err := os.Open("/proc/cpuinfo") | ||
| 18 | if err != nil { | ||
| 19 | return err | ||
| 20 | } | ||
| 21 | defer f.Close() | ||
| 22 | |||
| 23 | var buf [1 << 10]byte // enough for first CPU | ||
| 24 | n, err := io.ReadFull(f, buf[:]) | ||
| 25 | if err != nil && err != io.ErrUnexpectedEOF { | ||
| 26 | return err | ||
| 27 | } | ||
| 28 | in := string(buf[:n]) | ||
| 29 | const features = "\nFeatures : " | ||
| 30 | i := strings.Index(in, features) | ||
| 31 | if i == -1 { | ||
| 32 | return errors.New("no CPU features found") | ||
| 33 | } | ||
| 34 | in = in[i+len(features):] | ||
| 35 | if i := strings.Index(in, "\n"); i != -1 { | ||
| 36 | in = in[:i] | ||
| 37 | } | ||
| 38 | m := map[string]*bool{} | ||
| 39 | |||
| 40 | initOptions() // need it early here; it's harmless to call twice | ||
| 41 | for _, o := range options { | ||
| 42 | m[o.Name] = o.Feature | ||
| 43 | } | ||
| 44 | // The EVTSTRM field has alias "evstrm" in Go, but Linux calls it "evtstrm". | ||
| 45 | m["evtstrm"] = &ARM64.HasEVTSTRM | ||
| 46 | |||
| 47 | for _, f := range strings.Fields(in) { | ||
| 48 | if p, ok := m[f]; ok { | ||
| 49 | *p = true | ||
| 50 | } | ||
| 51 | } | ||
| 52 | return nil | ||
| 53 | } | ||
diff --git a/vendor/golang.org/x/sys/cpu/runtime_auxv.go b/vendor/golang.org/x/sys/cpu/runtime_auxv.go deleted file mode 100644 index 5f92ac9..0000000 --- a/vendor/golang.org/x/sys/cpu/runtime_auxv.go +++ /dev/null | |||
| @@ -1,16 +0,0 @@ | |||
| 1 | // Copyright 2023 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | package cpu | ||
| 6 | |||
| 7 | // getAuxvFn is non-nil on Go 1.21+ (via runtime_auxv_go121.go init) | ||
| 8 | // on platforms that use auxv. | ||
| 9 | var getAuxvFn func() []uintptr | ||
| 10 | |||
| 11 | func getAuxv() []uintptr { | ||
| 12 | if getAuxvFn == nil { | ||
| 13 | return nil | ||
| 14 | } | ||
| 15 | return getAuxvFn() | ||
| 16 | } | ||
diff --git a/vendor/golang.org/x/sys/cpu/runtime_auxv_go121.go b/vendor/golang.org/x/sys/cpu/runtime_auxv_go121.go deleted file mode 100644 index 4c9788e..0000000 --- a/vendor/golang.org/x/sys/cpu/runtime_auxv_go121.go +++ /dev/null | |||
| @@ -1,18 +0,0 @@ | |||
| 1 | // Copyright 2023 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | //go:build go1.21 | ||
| 6 | |||
| 7 | package cpu | ||
| 8 | |||
| 9 | import ( | ||
| 10 | _ "unsafe" // for linkname | ||
| 11 | ) | ||
| 12 | |||
| 13 | //go:linkname runtime_getAuxv runtime.getAuxv | ||
| 14 | func runtime_getAuxv() []uintptr | ||
| 15 | |||
| 16 | func init() { | ||
| 17 | getAuxvFn = runtime_getAuxv | ||
| 18 | } | ||
diff --git a/vendor/golang.org/x/sys/cpu/syscall_aix_gccgo.go b/vendor/golang.org/x/sys/cpu/syscall_aix_gccgo.go deleted file mode 100644 index 1b9ccb0..0000000 --- a/vendor/golang.org/x/sys/cpu/syscall_aix_gccgo.go +++ /dev/null | |||
| @@ -1,26 +0,0 @@ | |||
| 1 | // Copyright 2020 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | // Recreate a getsystemcfg syscall handler instead of | ||
| 6 | // using the one provided by x/sys/unix to avoid having | ||
| 7 | // the dependency between them. (See golang.org/issue/32102) | ||
| 8 | // Moreover, this file will be used during the building of | ||
| 9 | // gccgo's libgo and thus must not used a CGo method. | ||
| 10 | |||
| 11 | //go:build aix && gccgo | ||
| 12 | |||
| 13 | package cpu | ||
| 14 | |||
| 15 | import ( | ||
| 16 | "syscall" | ||
| 17 | ) | ||
| 18 | |||
| 19 | //extern getsystemcfg | ||
| 20 | func gccgoGetsystemcfg(label uint32) (r uint64) | ||
| 21 | |||
| 22 | func callgetsystemcfg(label int) (r1 uintptr, e1 syscall.Errno) { | ||
| 23 | r1 = uintptr(gccgoGetsystemcfg(uint32(label))) | ||
| 24 | e1 = syscall.GetErrno() | ||
| 25 | return | ||
| 26 | } | ||
diff --git a/vendor/golang.org/x/sys/cpu/syscall_aix_ppc64_gc.go b/vendor/golang.org/x/sys/cpu/syscall_aix_ppc64_gc.go deleted file mode 100644 index e8b6cdb..0000000 --- a/vendor/golang.org/x/sys/cpu/syscall_aix_ppc64_gc.go +++ /dev/null | |||
| @@ -1,35 +0,0 @@ | |||
| 1 | // Copyright 2019 The Go Authors. All rights reserved. | ||
| 2 | // Use of this source code is governed by a BSD-style | ||
| 3 | // license that can be found in the LICENSE file. | ||
| 4 | |||
| 5 | // Minimal copy of x/sys/unix so the cpu package can make a | ||
| 6 | // system call on AIX without depending on x/sys/unix. | ||
| 7 | // (See golang.org/issue/32102) | ||
| 8 | |||
| 9 | //go:build aix && ppc64 && gc | ||
| 10 | |||
| 11 | package cpu | ||
| 12 | |||
| 13 | import ( | ||
| 14 | "syscall" | ||
| 15 | "unsafe" | ||
| 16 | ) | ||
| 17 | |||
| 18 | //go:cgo_import_dynamic libc_getsystemcfg getsystemcfg "libc.a/shr_64.o" | ||
| 19 | |||
| 20 | //go:linkname libc_getsystemcfg libc_getsystemcfg | ||
| 21 | |||
| 22 | type syscallFunc uintptr | ||
| 23 | |||
| 24 | var libc_getsystemcfg syscallFunc | ||
| 25 | |||
| 26 | type errno = syscall.Errno | ||
| 27 | |||
| 28 | // Implemented in runtime/syscall_aix.go. | ||
| 29 | func rawSyscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err errno) | ||
| 30 | func syscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err errno) | ||
| 31 | |||
| 32 | func callgetsystemcfg(label int) (r1 uintptr, e1 errno) { | ||
| 33 | r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getsystemcfg)), 1, uintptr(label), 0, 0, 0, 0, 0) | ||
| 34 | return | ||
| 35 | } | ||