dsh-remote 0.8.47 → 0.8.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/client.js +89 -16
- package/lib/ignore.js +46 -0
- package/lib/index.js +68 -23
- package/lib/remote-shell-child.cjs +305 -0
- package/lib/remote-shell.js +518 -0
- package/lib/search.js +8 -3
- package/package.json +1 -1
- package/node_modules/buildcheck/.eslintrc.js +0 -5
- package/node_modules/buildcheck/.github/workflows/ci.yml +0 -88
- package/node_modules/buildcheck/.github/workflows/lint.yml +0 -27
- package/node_modules/buildcheck/.npmignore +0 -3
- package/node_modules/buildcheck/LICENSE +0 -19
- package/node_modules/buildcheck/README.md +0 -106
- package/node_modules/buildcheck/deps/Find-VisualStudio.cs +0 -250
- package/node_modules/buildcheck/lib/findvs.js +0 -361
- package/node_modules/buildcheck/lib/index.js +0 -738
- package/node_modules/buildcheck/package.json +0 -36
- package/node_modules/buildcheck/test/test.js +0 -8
- package/node_modules/cpu-features/.eslintrc.js +0 -5
- package/node_modules/cpu-features/.github/workflows/ci.yml +0 -74
- package/node_modules/cpu-features/.github/workflows/lint.yml +0 -27
- package/node_modules/cpu-features/LICENSE +0 -19
- package/node_modules/cpu-features/README.md +0 -59
- package/node_modules/cpu-features/binding.gyp +0 -16
- package/node_modules/cpu-features/buildcheck.js +0 -32
- package/node_modules/cpu-features/deps/cpu_features/.clang-format +0 -4
- package/node_modules/cpu-features/deps/cpu_features/.dockerignore +0 -31
- package/node_modules/cpu-features/deps/cpu_features/.github/workflows/Dockerfile +0 -5
- package/node_modules/cpu-features/deps/cpu_features/.github/workflows/aarch64_linux_cmake.yml +0 -30
- package/node_modules/cpu-features/deps/cpu_features/.github/workflows/amd64_freebsd_cmake.yml +0 -22
- package/node_modules/cpu-features/deps/cpu_features/.github/workflows/amd64_linux_bazel.yml +0 -26
- package/node_modules/cpu-features/deps/cpu_features/.github/workflows/amd64_linux_cmake.yml +0 -31
- package/node_modules/cpu-features/deps/cpu_features/.github/workflows/amd64_macos_cmake.yml +0 -43
- package/node_modules/cpu-features/deps/cpu_features/.github/workflows/amd64_windows_cmake.yml +0 -25
- package/node_modules/cpu-features/deps/cpu_features/.github/workflows/arm_linux_cmake.yml +0 -31
- package/node_modules/cpu-features/deps/cpu_features/.github/workflows/clang_format.yml +0 -24
- package/node_modules/cpu-features/deps/cpu_features/.github/workflows/mips_linux_cmake.yml +0 -30
- package/node_modules/cpu-features/deps/cpu_features/.github/workflows/power_linux_cmake.yml +0 -29
- package/node_modules/cpu-features/deps/cpu_features/.github/workflows/riscv_linux_cmake.yml +0 -28
- package/node_modules/cpu-features/deps/cpu_features/.github/workflows/s390x_linux_cmake.yml +0 -27
- package/node_modules/cpu-features/deps/cpu_features/.grenrc.yml +0 -21
- package/node_modules/cpu-features/deps/cpu_features/BUILD.bazel +0 -329
- package/node_modules/cpu-features/deps/cpu_features/CMakeLists.txt +0 -261
- package/node_modules/cpu-features/deps/cpu_features/CONTRIBUTING.md +0 -23
- package/node_modules/cpu-features/deps/cpu_features/LICENSE +0 -230
- package/node_modules/cpu-features/deps/cpu_features/README.md +0 -272
- package/node_modules/cpu-features/deps/cpu_features/WORKSPACE +0 -19
- package/node_modules/cpu-features/deps/cpu_features/bazel/ci/README.md +0 -5
- package/node_modules/cpu-features/deps/cpu_features/bazel/platforms.bzl +0 -11
- package/node_modules/cpu-features/deps/cpu_features/cmake/CpuFeaturesConfig.cmake.in +0 -3
- package/node_modules/cpu-features/deps/cpu_features/cmake/CpuFeaturesNdkCompatConfig.cmake.in +0 -3
- package/node_modules/cpu-features/deps/cpu_features/cmake/README.md +0 -30
- package/node_modules/cpu-features/deps/cpu_features/cmake/ci/Makefile +0 -252
- package/node_modules/cpu-features/deps/cpu_features/cmake/ci/README.md +0 -40
- package/node_modules/cpu-features/deps/cpu_features/cmake/ci/doc/docker.dot +0 -64
- package/node_modules/cpu-features/deps/cpu_features/cmake/ci/doc/docker.svg +0 -312
- package/node_modules/cpu-features/deps/cpu_features/cmake/ci/doc/generate_image.sh +0 -7
- package/node_modules/cpu-features/deps/cpu_features/cmake/ci/docker/amd64/Dockerfile +0 -48
- package/node_modules/cpu-features/deps/cpu_features/cmake/ci/docker/toolchain/Dockerfile +0 -34
- package/node_modules/cpu-features/deps/cpu_features/cmake/ci/sample/CMakeLists.txt +0 -22
- package/node_modules/cpu-features/deps/cpu_features/cmake/ci/sample/main.cpp +0 -11
- package/node_modules/cpu-features/deps/cpu_features/cmake/ci/vagrant/freebsd/Vagrantfile +0 -107
- package/node_modules/cpu-features/deps/cpu_features/cmake/googletest.CMakeLists.txt.in +0 -15
- package/node_modules/cpu-features/deps/cpu_features/cpu_features.gyp +0 -105
- package/node_modules/cpu-features/deps/cpu_features/include/cpu_features_cache_info.h +0 -54
- package/node_modules/cpu-features/deps/cpu_features/include/cpu_features_macros.h +0 -384
- package/node_modules/cpu-features/deps/cpu_features/include/cpuinfo_aarch64.h +0 -259
- package/node_modules/cpu-features/deps/cpu_features/include/cpuinfo_arm.h +0 -121
- package/node_modules/cpu-features/deps/cpu_features/include/cpuinfo_mips.h +0 -74
- package/node_modules/cpu-features/deps/cpu_features/include/cpuinfo_ppc.h +0 -149
- package/node_modules/cpu-features/deps/cpu_features/include/cpuinfo_riscv.h +0 -72
- package/node_modules/cpu-features/deps/cpu_features/include/cpuinfo_s390x.h +0 -108
- package/node_modules/cpu-features/deps/cpu_features/include/cpuinfo_x86.h +0 -288
- package/node_modules/cpu-features/deps/cpu_features/include/internal/bit_utils.h +0 -40
- package/node_modules/cpu-features/deps/cpu_features/include/internal/cpuid_x86.h +0 -37
- package/node_modules/cpu-features/deps/cpu_features/include/internal/filesystem.h +0 -39
- package/node_modules/cpu-features/deps/cpu_features/include/internal/hwcaps.h +0 -240
- package/node_modules/cpu-features/deps/cpu_features/include/internal/stack_line_reader.h +0 -49
- package/node_modules/cpu-features/deps/cpu_features/include/internal/string_view.h +0 -110
- package/node_modules/cpu-features/deps/cpu_features/include/internal/windows_utils.h +0 -70
- package/node_modules/cpu-features/deps/cpu_features/ndk_compat/CMakeLists.txt +0 -60
- package/node_modules/cpu-features/deps/cpu_features/ndk_compat/README.md +0 -4
- package/node_modules/cpu-features/deps/cpu_features/ndk_compat/cpu-features.c +0 -205
- package/node_modules/cpu-features/deps/cpu_features/ndk_compat/cpu-features.h +0 -320
- package/node_modules/cpu-features/deps/cpu_features/ndk_compat/ndk-compat-test.c +0 -12
- package/node_modules/cpu-features/deps/cpu_features/patches/0001-Add-Apple-Silicon-Support.patch +0 -456
- package/node_modules/cpu-features/deps/cpu_features/scripts/generate_badges.d +0 -165
- package/node_modules/cpu-features/deps/cpu_features/scripts/make_release.sh +0 -75
- package/node_modules/cpu-features/deps/cpu_features/scripts/run_integration.sh +0 -490
- package/node_modules/cpu-features/deps/cpu_features/scripts/test_integration.sh +0 -79
- package/node_modules/cpu-features/deps/cpu_features/src/copy.inl +0 -19
- package/node_modules/cpu-features/deps/cpu_features/src/define_introspection.inl +0 -86
- package/node_modules/cpu-features/deps/cpu_features/src/define_introspection_and_hwcaps.inl +0 -26
- package/node_modules/cpu-features/deps/cpu_features/src/equals.inl +0 -22
- package/node_modules/cpu-features/deps/cpu_features/src/filesystem.c +0 -62
- package/node_modules/cpu-features/deps/cpu_features/src/hwcaps.c +0 -169
- package/node_modules/cpu-features/deps/cpu_features/src/impl_aarch64__base_implementation.inl +0 -88
- package/node_modules/cpu-features/deps/cpu_features/src/impl_aarch64_linux_or_android.c +0 -79
- package/node_modules/cpu-features/deps/cpu_features/src/impl_aarch64_macos_or_iphone.c +0 -82
- package/node_modules/cpu-features/deps/cpu_features/src/impl_aarch64_windows.c +0 -138
- package/node_modules/cpu-features/deps/cpu_features/src/impl_arm_linux_or_android.c +0 -212
- package/node_modules/cpu-features/deps/cpu_features/src/impl_mips_linux_or_android.c +0 -93
- package/node_modules/cpu-features/deps/cpu_features/src/impl_ppc_linux.c +0 -163
- package/node_modules/cpu-features/deps/cpu_features/src/impl_riscv_linux.c +0 -111
- package/node_modules/cpu-features/deps/cpu_features/src/impl_s390x_linux.c +0 -120
- package/node_modules/cpu-features/deps/cpu_features/src/impl_x86__base_implementation.inl +0 -2055
- package/node_modules/cpu-features/deps/cpu_features/src/impl_x86_freebsd.c +0 -68
- package/node_modules/cpu-features/deps/cpu_features/src/impl_x86_linux_or_android.c +0 -58
- package/node_modules/cpu-features/deps/cpu_features/src/impl_x86_macos.c +0 -57
- package/node_modules/cpu-features/deps/cpu_features/src/impl_x86_windows.c +0 -58
- package/node_modules/cpu-features/deps/cpu_features/src/stack_line_reader.c +0 -132
- package/node_modules/cpu-features/deps/cpu_features/src/string_view.c +0 -192
- package/node_modules/cpu-features/deps/cpu_features/src/utils/list_cpu_features.c +0 -461
- package/node_modules/cpu-features/deps/cpu_features/test/CMakeLists.txt +0 -114
- package/node_modules/cpu-features/deps/cpu_features/test/bit_utils_test.cc +0 -53
- package/node_modules/cpu-features/deps/cpu_features/test/cpuinfo_aarch64_test.cc +0 -396
- package/node_modules/cpu-features/deps/cpu_features/test/cpuinfo_arm_test.cc +0 -384
- package/node_modules/cpu-features/deps/cpu_features/test/cpuinfo_mips_test.cc +0 -176
- package/node_modules/cpu-features/deps/cpu_features/test/cpuinfo_ppc_test.cc +0 -131
- package/node_modules/cpu-features/deps/cpu_features/test/cpuinfo_riscv_test.cc +0 -180
- package/node_modules/cpu-features/deps/cpu_features/test/cpuinfo_s390x_test.cc +0 -82
- package/node_modules/cpu-features/deps/cpu_features/test/cpuinfo_x86_test.cc +0 -1729
- package/node_modules/cpu-features/deps/cpu_features/test/filesystem_for_testing.cc +0 -103
- package/node_modules/cpu-features/deps/cpu_features/test/filesystem_for_testing.h +0 -61
- package/node_modules/cpu-features/deps/cpu_features/test/hwcaps_for_testing.cc +0 -52
- package/node_modules/cpu-features/deps/cpu_features/test/hwcaps_for_testing.h +0 -31
- package/node_modules/cpu-features/deps/cpu_features/test/stack_line_reader_test.cc +0 -132
- package/node_modules/cpu-features/deps/cpu_features/test/string_view_test.cc +0 -202
- package/node_modules/cpu-features/lib/index.js +0 -5
- package/node_modules/cpu-features/package.json +0 -40
- package/node_modules/cpu-features/src/binding.cc +0 -151
- package/node_modules/cpu-features/test/test.js +0 -12
package/node_modules/cpu-features/deps/cpu_features/patches/0001-Add-Apple-Silicon-Support.patch
DELETED
|
@@ -1,456 +0,0 @@
|
|
|
1
|
-
diff --git a/deps/cpu_features/CMakeLists.txt b/deps/cpu_features/CMakeLists.txt
|
|
2
|
-
index bcc9bb0..7a4f641 100644
|
|
3
|
-
--- a/deps/cpu_features/CMakeLists.txt
|
|
4
|
-
+++ b/deps/cpu_features/CMakeLists.txt
|
|
5
|
-
@@ -1,4 +1,4 @@
|
|
6
|
-
-cmake_minimum_required(VERSION 3.0)
|
|
7
|
-
+cmake_minimum_required(VERSION 3.19.2)
|
|
8
|
-
|
|
9
|
-
# option() honors normal variables.
|
|
10
|
-
# see: https://cmake.org/cmake/help/git-stage/policy/CMP0077.html
|
|
11
|
-
@@ -147,7 +147,7 @@ target_link_libraries(cpu_features PUBLIC ${CMAKE_DL_LIBS})
|
|
12
|
-
target_include_directories(cpu_features
|
|
13
|
-
PUBLIC $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/cpu_features>
|
|
14
|
-
)
|
|
15
|
-
-if(PROCESSOR_IS_X86)
|
|
16
|
-
+if(PROCESSOR_IS_X86 OR PROCESSOR_IS_AARCH64)
|
|
17
|
-
if(APPLE)
|
|
18
|
-
target_compile_definitions(cpu_features PRIVATE HAVE_SYSCTLBYNAME)
|
|
19
|
-
endif()
|
|
20
|
-
diff --git a/deps/cpu_features/include/cpu_features_macros.h b/deps/cpu_features/include/cpu_features_macros.h
|
|
21
|
-
index 215b567..652335d 100644
|
|
22
|
-
--- a/deps/cpu_features/include/cpu_features_macros.h
|
|
23
|
-
+++ b/deps/cpu_features/include/cpu_features_macros.h
|
|
24
|
-
@@ -39,7 +39,7 @@
|
|
25
|
-
#define CPU_FEATURES_ARCH_ARM
|
|
26
|
-
#endif
|
|
27
|
-
|
|
28
|
-
-#if (defined(__aarch64__) || defined(_M_ARM64))
|
|
29
|
-
+#if (defined(__aarch64__) || defined(__arm64__) || defined(_M_ARM64))
|
|
30
|
-
#define CPU_FEATURES_ARCH_AARCH64
|
|
31
|
-
#endif
|
|
32
|
-
|
|
33
|
-
diff --git a/deps/cpu_features/src/impl_aarch64__base_implementation.inl b/deps/cpu_features/src/impl_aarch64__base_implementation.inl
|
|
34
|
-
new file mode 100644
|
|
35
|
-
index 0000000..9677a6f
|
|
36
|
-
--- /dev/null
|
|
37
|
-
+++ b/deps/cpu_features/src/impl_aarch64__base_implementation.inl
|
|
38
|
-
@@ -0,0 +1,88 @@
|
|
39
|
-
+// Copyright 2021 Google LLC
|
|
40
|
-
+//
|
|
41
|
-
+// Licensed under the Apache License, Version 2.0 (the "License");
|
|
42
|
-
+// you may not use this file except in compliance with the License.
|
|
43
|
-
+// You may obtain a copy of the License at
|
|
44
|
-
+//
|
|
45
|
-
+// http://www.apache.org/licenses/LICENSE-2.0
|
|
46
|
-
+//
|
|
47
|
-
+// Unless required by applicable law or agreed to in writing, software
|
|
48
|
-
+// distributed under the License is distributed on an "AS IS" BASIS,
|
|
49
|
-
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
50
|
-
+// See the License for the specific language governing permissions and
|
|
51
|
-
+// limitations under the License.
|
|
52
|
-
+
|
|
53
|
-
+#include <stdbool.h>
|
|
54
|
-
+
|
|
55
|
-
+#include "cpuinfo_aarch64.h"
|
|
56
|
-
+#include "internal/bit_utils.h"
|
|
57
|
-
+#include "internal/filesystem.h"
|
|
58
|
-
+#include "internal/stack_line_reader.h"
|
|
59
|
-
+#include "internal/string_view.h"
|
|
60
|
-
+
|
|
61
|
-
+#if !defined(CPU_FEATURES_ARCH_AARCH64)
|
|
62
|
-
+#error "Cannot compile aarch64_base on a non aarch64 platform."
|
|
63
|
-
+#endif
|
|
64
|
-
+
|
|
65
|
-
+////////////////////////////////////////////////////////////////////////////////
|
|
66
|
-
+// Definitions for introspection.
|
|
67
|
-
+////////////////////////////////////////////////////////////////////////////////
|
|
68
|
-
+#define INTROSPECTION_TABLE \
|
|
69
|
-
+ LINE(AARCH64_FP, fp, "fp", AARCH64_HWCAP_FP, 0) \
|
|
70
|
-
+ LINE(AARCH64_ASIMD, asimd, "asimd", AARCH64_HWCAP_ASIMD, 0) \
|
|
71
|
-
+ LINE(AARCH64_EVTSTRM, evtstrm, "evtstrm", AARCH64_HWCAP_EVTSTRM, 0) \
|
|
72
|
-
+ LINE(AARCH64_AES, aes, "aes", AARCH64_HWCAP_AES, 0) \
|
|
73
|
-
+ LINE(AARCH64_PMULL, pmull, "pmull", AARCH64_HWCAP_PMULL, 0) \
|
|
74
|
-
+ LINE(AARCH64_SHA1, sha1, "sha1", AARCH64_HWCAP_SHA1, 0) \
|
|
75
|
-
+ LINE(AARCH64_SHA2, sha2, "sha2", AARCH64_HWCAP_SHA2, 0) \
|
|
76
|
-
+ LINE(AARCH64_CRC32, crc32, "crc32", AARCH64_HWCAP_CRC32, 0) \
|
|
77
|
-
+ LINE(AARCH64_ATOMICS, atomics, "atomics", AARCH64_HWCAP_ATOMICS, 0) \
|
|
78
|
-
+ LINE(AARCH64_FPHP, fphp, "fphp", AARCH64_HWCAP_FPHP, 0) \
|
|
79
|
-
+ LINE(AARCH64_ASIMDHP, asimdhp, "asimdhp", AARCH64_HWCAP_ASIMDHP, 0) \
|
|
80
|
-
+ LINE(AARCH64_CPUID, cpuid, "cpuid", AARCH64_HWCAP_CPUID, 0) \
|
|
81
|
-
+ LINE(AARCH64_ASIMDRDM, asimdrdm, "asimdrdm", AARCH64_HWCAP_ASIMDRDM, 0) \
|
|
82
|
-
+ LINE(AARCH64_JSCVT, jscvt, "jscvt", AARCH64_HWCAP_JSCVT, 0) \
|
|
83
|
-
+ LINE(AARCH64_FCMA, fcma, "fcma", AARCH64_HWCAP_FCMA, 0) \
|
|
84
|
-
+ LINE(AARCH64_LRCPC, lrcpc, "lrcpc", AARCH64_HWCAP_LRCPC, 0) \
|
|
85
|
-
+ LINE(AARCH64_DCPOP, dcpop, "dcpop", AARCH64_HWCAP_DCPOP, 0) \
|
|
86
|
-
+ LINE(AARCH64_SHA3, sha3, "sha3", AARCH64_HWCAP_SHA3, 0) \
|
|
87
|
-
+ LINE(AARCH64_SM3, sm3, "sm3", AARCH64_HWCAP_SM3, 0) \
|
|
88
|
-
+ LINE(AARCH64_SM4, sm4, "sm4", AARCH64_HWCAP_SM4, 0) \
|
|
89
|
-
+ LINE(AARCH64_ASIMDDP, asimddp, "asimddp", AARCH64_HWCAP_ASIMDDP, 0) \
|
|
90
|
-
+ LINE(AARCH64_SHA512, sha512, "sha512", AARCH64_HWCAP_SHA512, 0) \
|
|
91
|
-
+ LINE(AARCH64_SVE, sve, "sve", AARCH64_HWCAP_SVE, 0) \
|
|
92
|
-
+ LINE(AARCH64_ASIMDFHM, asimdfhm, "asimdfhm", AARCH64_HWCAP_ASIMDFHM, 0) \
|
|
93
|
-
+ LINE(AARCH64_DIT, dit, "dit", AARCH64_HWCAP_DIT, 0) \
|
|
94
|
-
+ LINE(AARCH64_USCAT, uscat, "uscat", AARCH64_HWCAP_USCAT, 0) \
|
|
95
|
-
+ LINE(AARCH64_ILRCPC, ilrcpc, "ilrcpc", AARCH64_HWCAP_ILRCPC, 0) \
|
|
96
|
-
+ LINE(AARCH64_FLAGM, flagm, "flagm", AARCH64_HWCAP_FLAGM, 0) \
|
|
97
|
-
+ LINE(AARCH64_SSBS, ssbs, "ssbs", AARCH64_HWCAP_SSBS, 0) \
|
|
98
|
-
+ LINE(AARCH64_SB, sb, "sb", AARCH64_HWCAP_SB, 0) \
|
|
99
|
-
+ LINE(AARCH64_PACA, paca, "paca", AARCH64_HWCAP_PACA, 0) \
|
|
100
|
-
+ LINE(AARCH64_PACG, pacg, "pacg", AARCH64_HWCAP_PACG, 0) \
|
|
101
|
-
+ LINE(AARCH64_DCPODP, dcpodp, "dcpodp", 0, AARCH64_HWCAP2_DCPODP) \
|
|
102
|
-
+ LINE(AARCH64_SVE2, sve2, "sve2", 0, AARCH64_HWCAP2_SVE2) \
|
|
103
|
-
+ LINE(AARCH64_SVEAES, sveaes, "sveaes", 0, AARCH64_HWCAP2_SVEAES) \
|
|
104
|
-
+ LINE(AARCH64_SVEPMULL, svepmull, "svepmull", 0, AARCH64_HWCAP2_SVEPMULL) \
|
|
105
|
-
+ LINE(AARCH64_SVEBITPERM, svebitperm, "svebitperm", 0, \
|
|
106
|
-
+ AARCH64_HWCAP2_SVEBITPERM) \
|
|
107
|
-
+ LINE(AARCH64_SVESHA3, svesha3, "svesha3", 0, AARCH64_HWCAP2_SVESHA3) \
|
|
108
|
-
+ LINE(AARCH64_SVESM4, svesm4, "svesm4", 0, AARCH64_HWCAP2_SVESM4) \
|
|
109
|
-
+ LINE(AARCH64_FLAGM2, flagm2, "flagm2", 0, AARCH64_HWCAP2_FLAGM2) \
|
|
110
|
-
+ LINE(AARCH64_FRINT, frint, "frint", 0, AARCH64_HWCAP2_FRINT) \
|
|
111
|
-
+ LINE(AARCH64_SVEI8MM, svei8mm, "svei8mm", 0, AARCH64_HWCAP2_SVEI8MM) \
|
|
112
|
-
+ LINE(AARCH64_SVEF32MM, svef32mm, "svef32mm", 0, AARCH64_HWCAP2_SVEF32MM) \
|
|
113
|
-
+ LINE(AARCH64_SVEF64MM, svef64mm, "svef64mm", 0, AARCH64_HWCAP2_SVEF64MM) \
|
|
114
|
-
+ LINE(AARCH64_SVEBF16, svebf16, "svebf16", 0, AARCH64_HWCAP2_SVEBF16) \
|
|
115
|
-
+ LINE(AARCH64_I8MM, i8mm, "i8mm", 0, AARCH64_HWCAP2_I8MM) \
|
|
116
|
-
+ LINE(AARCH64_BF16, bf16, "bf16", 0, AARCH64_HWCAP2_BF16) \
|
|
117
|
-
+ LINE(AARCH64_DGH, dgh, "dgh", 0, AARCH64_HWCAP2_DGH) \
|
|
118
|
-
+ LINE(AARCH64_RNG, rng, "rng", 0, AARCH64_HWCAP2_RNG) \
|
|
119
|
-
+ LINE(AARCH64_BTI, bti, "bti", 0, AARCH64_HWCAP2_BTI) \
|
|
120
|
-
+ LINE(AARCH64_MTE, mte, "mte", 0, AARCH64_HWCAP2_MTE) \
|
|
121
|
-
+ LINE(AARCH64_ECV, ecv, "ecv", 0, AARCH64_HWCAP2_ECV) \
|
|
122
|
-
+ LINE(AARCH64_AFP, afp, "afp", 0, AARCH64_HWCAP2_AFP) \
|
|
123
|
-
+ LINE(AARCH64_RPRES, rpres, "rpres", 0, AARCH64_HWCAP2_RPRES)
|
|
124
|
-
+#define INTROSPECTION_PREFIX Aarch64
|
|
125
|
-
+#define INTROSPECTION_ENUM_PREFIX AARCH64
|
|
126
|
-
+#include "define_introspection_and_hwcaps.inl"
|
|
127
|
-
diff --git a/deps/cpu_features/src/impl_aarch64_linux_or_android.c b/deps/cpu_features/src/impl_aarch64_linux_or_android.c
|
|
128
|
-
index ef923d9..c0a764c 100644
|
|
129
|
-
--- a/deps/cpu_features/src/impl_aarch64_linux_or_android.c
|
|
130
|
-
+++ b/deps/cpu_features/src/impl_aarch64_linux_or_android.c
|
|
131
|
-
@@ -17,81 +17,7 @@
|
|
132
|
-
#ifdef CPU_FEATURES_ARCH_AARCH64
|
|
133
|
-
#if defined(CPU_FEATURES_OS_LINUX) || defined(CPU_FEATURES_OS_ANDROID)
|
|
134
|
-
|
|
135
|
-
-#include "cpuinfo_aarch64.h"
|
|
136
|
-
-
|
|
137
|
-
-////////////////////////////////////////////////////////////////////////////////
|
|
138
|
-
-// Definitions for introspection.
|
|
139
|
-
-////////////////////////////////////////////////////////////////////////////////
|
|
140
|
-
-#define INTROSPECTION_TABLE \
|
|
141
|
-
- LINE(AARCH64_FP, fp, "fp", AARCH64_HWCAP_FP, 0) \
|
|
142
|
-
- LINE(AARCH64_ASIMD, asimd, "asimd", AARCH64_HWCAP_ASIMD, 0) \
|
|
143
|
-
- LINE(AARCH64_EVTSTRM, evtstrm, "evtstrm", AARCH64_HWCAP_EVTSTRM, 0) \
|
|
144
|
-
- LINE(AARCH64_AES, aes, "aes", AARCH64_HWCAP_AES, 0) \
|
|
145
|
-
- LINE(AARCH64_PMULL, pmull, "pmull", AARCH64_HWCAP_PMULL, 0) \
|
|
146
|
-
- LINE(AARCH64_SHA1, sha1, "sha1", AARCH64_HWCAP_SHA1, 0) \
|
|
147
|
-
- LINE(AARCH64_SHA2, sha2, "sha2", AARCH64_HWCAP_SHA2, 0) \
|
|
148
|
-
- LINE(AARCH64_CRC32, crc32, "crc32", AARCH64_HWCAP_CRC32, 0) \
|
|
149
|
-
- LINE(AARCH64_ATOMICS, atomics, "atomics", AARCH64_HWCAP_ATOMICS, 0) \
|
|
150
|
-
- LINE(AARCH64_FPHP, fphp, "fphp", AARCH64_HWCAP_FPHP, 0) \
|
|
151
|
-
- LINE(AARCH64_ASIMDHP, asimdhp, "asimdhp", AARCH64_HWCAP_ASIMDHP, 0) \
|
|
152
|
-
- LINE(AARCH64_CPUID, cpuid, "cpuid", AARCH64_HWCAP_CPUID, 0) \
|
|
153
|
-
- LINE(AARCH64_ASIMDRDM, asimdrdm, "asimdrdm", AARCH64_HWCAP_ASIMDRDM, 0) \
|
|
154
|
-
- LINE(AARCH64_JSCVT, jscvt, "jscvt", AARCH64_HWCAP_JSCVT, 0) \
|
|
155
|
-
- LINE(AARCH64_FCMA, fcma, "fcma", AARCH64_HWCAP_FCMA, 0) \
|
|
156
|
-
- LINE(AARCH64_LRCPC, lrcpc, "lrcpc", AARCH64_HWCAP_LRCPC, 0) \
|
|
157
|
-
- LINE(AARCH64_DCPOP, dcpop, "dcpop", AARCH64_HWCAP_DCPOP, 0) \
|
|
158
|
-
- LINE(AARCH64_SHA3, sha3, "sha3", AARCH64_HWCAP_SHA3, 0) \
|
|
159
|
-
- LINE(AARCH64_SM3, sm3, "sm3", AARCH64_HWCAP_SM3, 0) \
|
|
160
|
-
- LINE(AARCH64_SM4, sm4, "sm4", AARCH64_HWCAP_SM4, 0) \
|
|
161
|
-
- LINE(AARCH64_ASIMDDP, asimddp, "asimddp", AARCH64_HWCAP_ASIMDDP, 0) \
|
|
162
|
-
- LINE(AARCH64_SHA512, sha512, "sha512", AARCH64_HWCAP_SHA512, 0) \
|
|
163
|
-
- LINE(AARCH64_SVE, sve, "sve", AARCH64_HWCAP_SVE, 0) \
|
|
164
|
-
- LINE(AARCH64_ASIMDFHM, asimdfhm, "asimdfhm", AARCH64_HWCAP_ASIMDFHM, 0) \
|
|
165
|
-
- LINE(AARCH64_DIT, dit, "dit", AARCH64_HWCAP_DIT, 0) \
|
|
166
|
-
- LINE(AARCH64_USCAT, uscat, "uscat", AARCH64_HWCAP_USCAT, 0) \
|
|
167
|
-
- LINE(AARCH64_ILRCPC, ilrcpc, "ilrcpc", AARCH64_HWCAP_ILRCPC, 0) \
|
|
168
|
-
- LINE(AARCH64_FLAGM, flagm, "flagm", AARCH64_HWCAP_FLAGM, 0) \
|
|
169
|
-
- LINE(AARCH64_SSBS, ssbs, "ssbs", AARCH64_HWCAP_SSBS, 0) \
|
|
170
|
-
- LINE(AARCH64_SB, sb, "sb", AARCH64_HWCAP_SB, 0) \
|
|
171
|
-
- LINE(AARCH64_PACA, paca, "paca", AARCH64_HWCAP_PACA, 0) \
|
|
172
|
-
- LINE(AARCH64_PACG, pacg, "pacg", AARCH64_HWCAP_PACG, 0) \
|
|
173
|
-
- LINE(AARCH64_DCPODP, dcpodp, "dcpodp", 0, AARCH64_HWCAP2_DCPODP) \
|
|
174
|
-
- LINE(AARCH64_SVE2, sve2, "sve2", 0, AARCH64_HWCAP2_SVE2) \
|
|
175
|
-
- LINE(AARCH64_SVEAES, sveaes, "sveaes", 0, AARCH64_HWCAP2_SVEAES) \
|
|
176
|
-
- LINE(AARCH64_SVEPMULL, svepmull, "svepmull", 0, AARCH64_HWCAP2_SVEPMULL) \
|
|
177
|
-
- LINE(AARCH64_SVEBITPERM, svebitperm, "svebitperm", 0, \
|
|
178
|
-
- AARCH64_HWCAP2_SVEBITPERM) \
|
|
179
|
-
- LINE(AARCH64_SVESHA3, svesha3, "svesha3", 0, AARCH64_HWCAP2_SVESHA3) \
|
|
180
|
-
- LINE(AARCH64_SVESM4, svesm4, "svesm4", 0, AARCH64_HWCAP2_SVESM4) \
|
|
181
|
-
- LINE(AARCH64_FLAGM2, flagm2, "flagm2", 0, AARCH64_HWCAP2_FLAGM2) \
|
|
182
|
-
- LINE(AARCH64_FRINT, frint, "frint", 0, AARCH64_HWCAP2_FRINT) \
|
|
183
|
-
- LINE(AARCH64_SVEI8MM, svei8mm, "svei8mm", 0, AARCH64_HWCAP2_SVEI8MM) \
|
|
184
|
-
- LINE(AARCH64_SVEF32MM, svef32mm, "svef32mm", 0, AARCH64_HWCAP2_SVEF32MM) \
|
|
185
|
-
- LINE(AARCH64_SVEF64MM, svef64mm, "svef64mm", 0, AARCH64_HWCAP2_SVEF64MM) \
|
|
186
|
-
- LINE(AARCH64_SVEBF16, svebf16, "svebf16", 0, AARCH64_HWCAP2_SVEBF16) \
|
|
187
|
-
- LINE(AARCH64_I8MM, i8mm, "i8mm", 0, AARCH64_HWCAP2_I8MM) \
|
|
188
|
-
- LINE(AARCH64_BF16, bf16, "bf16", 0, AARCH64_HWCAP2_BF16) \
|
|
189
|
-
- LINE(AARCH64_DGH, dgh, "dgh", 0, AARCH64_HWCAP2_DGH) \
|
|
190
|
-
- LINE(AARCH64_RNG, rng, "rng", 0, AARCH64_HWCAP2_RNG) \
|
|
191
|
-
- LINE(AARCH64_BTI, bti, "bti", 0, AARCH64_HWCAP2_BTI) \
|
|
192
|
-
- LINE(AARCH64_MTE, mte, "mte", 0, AARCH64_HWCAP2_MTE) \
|
|
193
|
-
- LINE(AARCH64_ECV, ecv, "ecv", 0, AARCH64_HWCAP2_ECV) \
|
|
194
|
-
- LINE(AARCH64_AFP, afp, "afp", 0, AARCH64_HWCAP2_AFP) \
|
|
195
|
-
- LINE(AARCH64_RPRES, rpres, "rpres", 0, AARCH64_HWCAP2_RPRES)
|
|
196
|
-
-#define INTROSPECTION_PREFIX Aarch64
|
|
197
|
-
-#define INTROSPECTION_ENUM_PREFIX AARCH64
|
|
198
|
-
-#include "define_introspection_and_hwcaps.inl"
|
|
199
|
-
-
|
|
200
|
-
-////////////////////////////////////////////////////////////////////////////////
|
|
201
|
-
-// Implementation.
|
|
202
|
-
-////////////////////////////////////////////////////////////////////////////////
|
|
203
|
-
-
|
|
204
|
-
-#include <stdbool.h>
|
|
205
|
-
-
|
|
206
|
-
-#include "internal/bit_utils.h"
|
|
207
|
-
-#include "internal/filesystem.h"
|
|
208
|
-
-#include "internal/stack_line_reader.h"
|
|
209
|
-
-#include "internal/string_view.h"
|
|
210
|
-
+#include "impl_aarch64__base_implementation.inl"
|
|
211
|
-
|
|
212
|
-
static bool HandleAarch64Line(const LineResult result,
|
|
213
|
-
Aarch64Info* const info) {
|
|
214
|
-
diff --git a/deps/cpu_features/src/impl_aarch64_macos_or_iphone.c b/deps/cpu_features/src/impl_aarch64_macos_or_iphone.c
|
|
215
|
-
new file mode 100644
|
|
216
|
-
index 0000000..0f95058
|
|
217
|
-
--- /dev/null
|
|
218
|
-
+++ b/deps/cpu_features/src/impl_aarch64_macos_or_iphone.c
|
|
219
|
-
@@ -0,0 +1,82 @@
|
|
220
|
-
+// Copyright 2021 Google LLC
|
|
221
|
-
+//
|
|
222
|
-
+// Licensed under the Apache License, Version 2.0 (the "License");
|
|
223
|
-
+// you may not use this file except in compliance with the License.
|
|
224
|
-
+// You may obtain a copy of the License at
|
|
225
|
-
+//
|
|
226
|
-
+// http://www.apache.org/licenses/LICENSE-2.0
|
|
227
|
-
+//
|
|
228
|
-
+// Unless required by applicable law or agreed to in writing, software
|
|
229
|
-
+// distributed under the License is distributed on an "AS IS" BASIS,
|
|
230
|
-
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
231
|
-
+// See the License for the specific language governing permissions and
|
|
232
|
-
+// limitations under the License.
|
|
233
|
-
+
|
|
234
|
-
+#include "cpu_features_macros.h"
|
|
235
|
-
+
|
|
236
|
-
+#ifdef CPU_FEATURES_ARCH_AARCH64
|
|
237
|
-
+#if defined(CPU_FEATURES_OS_MACOS) || defined(CPU_FEATURES_OS_IPHONE)
|
|
238
|
-
+
|
|
239
|
-
+#include "impl_aarch64__base_implementation.inl"
|
|
240
|
-
+
|
|
241
|
-
+#if !defined(HAVE_SYSCTLBYNAME)
|
|
242
|
-
+#error "Darwin needs support for sysctlbyname"
|
|
243
|
-
+#endif
|
|
244
|
-
+#include <sys/sysctl.h>
|
|
245
|
-
+
|
|
246
|
-
+#if defined(CPU_FEATURES_MOCK_SYSCTL_AARCH64)
|
|
247
|
-
+extern bool GetDarwinSysCtlByName(const char*);
|
|
248
|
-
+extern int GetDarwinSysCtlByNameValue(const char* name);
|
|
249
|
-
+#else
|
|
250
|
-
+static int GetDarwinSysCtlByNameValue(const char* name) {
|
|
251
|
-
+ int enabled;
|
|
252
|
-
+ size_t enabled_len = sizeof(enabled);
|
|
253
|
-
+ const int failure = sysctlbyname(name, &enabled, &enabled_len, NULL, 0);
|
|
254
|
-
+ return failure ? 0 : enabled;
|
|
255
|
-
+}
|
|
256
|
-
+
|
|
257
|
-
+static bool GetDarwinSysCtlByName(const char* name) {
|
|
258
|
-
+ return GetDarwinSysCtlByNameValue(name) != 0;
|
|
259
|
-
+}
|
|
260
|
-
+#endif
|
|
261
|
-
+
|
|
262
|
-
+static const Aarch64Info kEmptyAarch64Info;
|
|
263
|
-
+
|
|
264
|
-
+Aarch64Info GetAarch64Info(void) {
|
|
265
|
-
+ Aarch64Info info = kEmptyAarch64Info;
|
|
266
|
-
+
|
|
267
|
-
+ // Handling Darwin platform through sysctlbyname.
|
|
268
|
-
+ info.implementer = GetDarwinSysCtlByNameValue("hw.cputype");
|
|
269
|
-
+ info.variant = GetDarwinSysCtlByNameValue("hw.cpusubtype");
|
|
270
|
-
+ info.part = GetDarwinSysCtlByNameValue("hw.cpufamily");
|
|
271
|
-
+ info.revision = GetDarwinSysCtlByNameValue("hw.cpusubfamily");
|
|
272
|
-
+
|
|
273
|
-
+ info.features.fp = GetDarwinSysCtlByName("hw.optional.floatingpoint");
|
|
274
|
-
+ info.features.asimd = GetDarwinSysCtlByName("hw.optional.AdvSIMD");
|
|
275
|
-
+ info.features.aes = GetDarwinSysCtlByName("hw.optional.arm.FEAT_AES");
|
|
276
|
-
+ info.features.pmull = GetDarwinSysCtlByName("hw.optional.arm.FEAT_PMULL");
|
|
277
|
-
+ info.features.sha1 = GetDarwinSysCtlByName("hw.optional.arm.FEAT_SHA1");
|
|
278
|
-
+ info.features.sha2 = GetDarwinSysCtlByName("hw.optional.arm.FEAT_SHA2");
|
|
279
|
-
+ info.features.crc32 = GetDarwinSysCtlByName("hw.optional.armv8_crc32");
|
|
280
|
-
+ info.features.atomics = GetDarwinSysCtlByName("hw.optional.armv8_1_atomics");
|
|
281
|
-
+ info.features.fphp = GetDarwinSysCtlByName("hw.optional.neon_hpfp");
|
|
282
|
-
+ info.features.jscvt = GetDarwinSysCtlByName("hw.optional.arm.FEAT_JSCVT");
|
|
283
|
-
+ info.features.fcma = GetDarwinSysCtlByName("hw.optional.arm.FEAT_FCMA");
|
|
284
|
-
+ info.features.lrcpc = GetDarwinSysCtlByName("hw.optional.arm.FEAT_LRCPC");
|
|
285
|
-
+ info.features.sha3 = GetDarwinSysCtlByName("hw.optional.armv8_2_sha3");
|
|
286
|
-
+ info.features.sha512 = GetDarwinSysCtlByName("hw.optional.armv8_2_sha512");
|
|
287
|
-
+ info.features.asimdfhm = GetDarwinSysCtlByName("hw.optional.armv8_2_fhm");
|
|
288
|
-
+ info.features.flagm = GetDarwinSysCtlByName("hw.optional.arm.FEAT_FLAGM");
|
|
289
|
-
+ info.features.flagm2 = GetDarwinSysCtlByName("hw.optional.arm.FEAT_FLAGM2");
|
|
290
|
-
+ info.features.ssbs = GetDarwinSysCtlByName("hw.optional.arm.FEAT_SSBS");
|
|
291
|
-
+ info.features.sb = GetDarwinSysCtlByName("hw.optional.arm.FEAT_SB");
|
|
292
|
-
+ info.features.i8mm = GetDarwinSysCtlByName("hw.optional.arm.FEAT_I8MM");
|
|
293
|
-
+ info.features.bf16 = GetDarwinSysCtlByName("hw.optional.arm.FEAT_BF16");
|
|
294
|
-
+ info.features.bti = GetDarwinSysCtlByName("hw.optional.arm.FEAT_BTI");
|
|
295
|
-
+ info.features.ecv = GetDarwinSysCtlByName("hw.optional.arm.FEAT_ECV");
|
|
296
|
-
+
|
|
297
|
-
+ return info;
|
|
298
|
-
+}
|
|
299
|
-
+
|
|
300
|
-
+#endif // defined(CPU_FEATURES_OS_MACOS) || defined(CPU_FEATURES_OS_IPHONE)
|
|
301
|
-
+#endif // CPU_FEATURES_ARCH_AARCH64
|
|
302
|
-
diff --git a/deps/cpu_features/test/CMakeLists.txt b/deps/cpu_features/test/CMakeLists.txt
|
|
303
|
-
index f627d74..80a0466 100644
|
|
304
|
-
--- a/deps/cpu_features/test/CMakeLists.txt
|
|
305
|
-
+++ b/deps/cpu_features/test/CMakeLists.txt
|
|
306
|
-
@@ -74,7 +74,12 @@ if(PROCESSOR_IS_AARCH64)
|
|
307
|
-
add_executable(cpuinfo_aarch64_test
|
|
308
|
-
cpuinfo_aarch64_test.cc
|
|
309
|
-
../src/impl_aarch64_linux_or_android.c
|
|
310
|
-
+ ../src/impl_aarch64_macos_or_iphone.c
|
|
311
|
-
../src/impl_aarch64_windows.c)
|
|
312
|
-
+ if(APPLE)
|
|
313
|
-
+ target_compile_definitions(cpuinfo_aarch64_test PUBLIC CPU_FEATURES_MOCK_SYSCTL_AARCH64)
|
|
314
|
-
+ target_compile_definitions(cpuinfo_aarch64_test PRIVATE HAVE_SYSCTLBYNAME)
|
|
315
|
-
+ endif()
|
|
316
|
-
target_compile_definitions(cpuinfo_aarch64_test PUBLIC CPU_FEATURES_MOCK_CPUID_AARCH64)
|
|
317
|
-
target_link_libraries(cpuinfo_aarch64_test all_libraries)
|
|
318
|
-
add_test(NAME cpuinfo_aarch64_test COMMAND cpuinfo_aarch64_test)
|
|
319
|
-
diff --git a/deps/cpu_features/test/cpuinfo_aarch64_test.cc b/deps/cpu_features/test/cpuinfo_aarch64_test.cc
|
|
320
|
-
index ef9abae..b43d1aa 100644
|
|
321
|
-
--- a/deps/cpu_features/test/cpuinfo_aarch64_test.cc
|
|
322
|
-
+++ b/deps/cpu_features/test/cpuinfo_aarch64_test.cc
|
|
323
|
-
@@ -96,6 +96,125 @@ TEST(CpuinfoAarch64Test, Aarch64FeaturesEnum) {
|
|
324
|
-
#if defined(CPU_FEATURES_OS_LINUX)
|
|
325
|
-
void DisableHardwareCapabilities() { SetHardwareCapabilities(0, 0); }
|
|
326
|
-
|
|
327
|
-
+#if defined(CPU_FEATURES_OS_MACOS)
|
|
328
|
-
+
|
|
329
|
-
+class FakeCpu {
|
|
330
|
-
+ public:
|
|
331
|
-
+ bool GetDarwinSysCtlByName(std::string name) const {
|
|
332
|
-
+ return darwin_sysctlbyname_.count(name);
|
|
333
|
-
+ }
|
|
334
|
-
+
|
|
335
|
-
+ int GetDarwinSysCtlByNameValue(std::string name) const {
|
|
336
|
-
+ std::map<std::string, int>::const_iterator iter = darwin_sysctlbynamevalue_.find(name);
|
|
337
|
-
+ if (iter != std::end(darwin_sysctlbynamevalue_)) {
|
|
338
|
-
+ return iter->second;
|
|
339
|
-
+ }
|
|
340
|
-
+
|
|
341
|
-
+ return 0;
|
|
342
|
-
+ }
|
|
343
|
-
+
|
|
344
|
-
+ void SetDarwinSysCtlByName(std::string name) {
|
|
345
|
-
+ darwin_sysctlbyname_.insert(name);
|
|
346
|
-
+ }
|
|
347
|
-
+
|
|
348
|
-
+ void SetDarwinSysCtlByNameValue(std::string name, int value) {
|
|
349
|
-
+ darwin_sysctlbynamevalue_[name] = value;
|
|
350
|
-
+ }
|
|
351
|
-
+ private:
|
|
352
|
-
+ std::set<std::string> darwin_sysctlbyname_;
|
|
353
|
-
+ std::map<std::string, int> darwin_sysctlbynamevalue_;
|
|
354
|
-
+};
|
|
355
|
-
+
|
|
356
|
-
+static FakeCpu* g_fake_cpu_instance = nullptr;
|
|
357
|
-
+
|
|
358
|
-
+static FakeCpu& cpu() {
|
|
359
|
-
+ assert(g_fake_cpu_instance != nullptr);
|
|
360
|
-
+ return *g_fake_cpu_instance;
|
|
361
|
-
+}
|
|
362
|
-
+
|
|
363
|
-
+extern "C" bool GetDarwinSysCtlByName(const char* name) {
|
|
364
|
-
+ return cpu().GetDarwinSysCtlByName(name);
|
|
365
|
-
+}
|
|
366
|
-
+
|
|
367
|
-
+extern "C" int GetDarwinSysCtlByNameValue(const char *name) {
|
|
368
|
-
+ return cpu().GetDarwinSysCtlByNameValue(name);
|
|
369
|
-
+}
|
|
370
|
-
+
|
|
371
|
-
+class CpuinfoAarch64Test : public ::testing::Test {
|
|
372
|
-
+ protected:
|
|
373
|
-
+ void SetUp() override {
|
|
374
|
-
+ assert(g_fake_cpu_instance == nullptr);
|
|
375
|
-
+ g_fake_cpu_instance = new FakeCpu();
|
|
376
|
-
+ }
|
|
377
|
-
+ void TearDown() override {
|
|
378
|
-
+ delete g_fake_cpu_instance;
|
|
379
|
-
+ g_fake_cpu_instance = nullptr;
|
|
380
|
-
+ }
|
|
381
|
-
+};
|
|
382
|
-
+
|
|
383
|
-
+TEST_F(CpuinfoAarch64Test, FromDarwinSysctlFromName) {
|
|
384
|
-
+ cpu().SetDarwinSysCtlByName("hw.optional.floatingpoint");
|
|
385
|
-
+ cpu().SetDarwinSysCtlByName("hw.optional.neon");
|
|
386
|
-
+ cpu().SetDarwinSysCtlByName("hw.optional.neon_hpfp");
|
|
387
|
-
+ cpu().SetDarwinSysCtlByName("hw.optional.neon_fp16");
|
|
388
|
-
+ cpu().SetDarwinSysCtlByName("hw.optional.armv8_1_atomics");
|
|
389
|
-
+ cpu().SetDarwinSysCtlByName("hw.optional.armv8_crc32");
|
|
390
|
-
+ cpu().SetDarwinSysCtlByName("hw.optional.armv8_2_fhm");
|
|
391
|
-
+ cpu().SetDarwinSysCtlByName("hw.optional.armv8_2_sha512");
|
|
392
|
-
+ cpu().SetDarwinSysCtlByName("hw.optional.armv8_2_sha3");
|
|
393
|
-
+ cpu().SetDarwinSysCtlByName("hw.optional.amx_version");
|
|
394
|
-
+ cpu().SetDarwinSysCtlByName("hw.optional.ucnormal_mem");
|
|
395
|
-
+ cpu().SetDarwinSysCtlByName("hw.optional.arm64");
|
|
396
|
-
+
|
|
397
|
-
+ cpu().SetDarwinSysCtlByNameValue("hw.cputype", 16777228);
|
|
398
|
-
+ cpu().SetDarwinSysCtlByNameValue("hw.cpusubtype", 2);
|
|
399
|
-
+ cpu().SetDarwinSysCtlByNameValue("hw.cpu64bit", 1);
|
|
400
|
-
+ cpu().SetDarwinSysCtlByNameValue("hw.cpufamily", 458787763);
|
|
401
|
-
+ cpu().SetDarwinSysCtlByNameValue("hw.cpusubfamily", 2);
|
|
402
|
-
+
|
|
403
|
-
+ const auto info = GetAarch64Info();
|
|
404
|
-
+
|
|
405
|
-
+ EXPECT_EQ(info.implementer, 0x100000C);
|
|
406
|
-
+ EXPECT_EQ(info.variant, 2);
|
|
407
|
-
+ EXPECT_EQ(info.part, 0x1B588BB3);
|
|
408
|
-
+ EXPECT_EQ(info.revision, 2);
|
|
409
|
-
+
|
|
410
|
-
+ EXPECT_TRUE(info.features.fp);
|
|
411
|
-
+ EXPECT_FALSE(info.features.asimd);
|
|
412
|
-
+ EXPECT_FALSE(info.features.evtstrm);
|
|
413
|
-
+ EXPECT_FALSE(info.features.aes);
|
|
414
|
-
+ EXPECT_FALSE(info.features.pmull);
|
|
415
|
-
+ EXPECT_FALSE(info.features.sha1);
|
|
416
|
-
+ EXPECT_FALSE(info.features.sha2);
|
|
417
|
-
+ EXPECT_TRUE(info.features.crc32);
|
|
418
|
-
+ EXPECT_TRUE(info.features.atomics);
|
|
419
|
-
+ EXPECT_TRUE(info.features.fphp);
|
|
420
|
-
+ EXPECT_FALSE(info.features.asimdhp);
|
|
421
|
-
+ EXPECT_FALSE(info.features.cpuid);
|
|
422
|
-
+ EXPECT_FALSE(info.features.asimdrdm);
|
|
423
|
-
+ EXPECT_FALSE(info.features.jscvt);
|
|
424
|
-
+ EXPECT_FALSE(info.features.fcma);
|
|
425
|
-
+ EXPECT_FALSE(info.features.lrcpc);
|
|
426
|
-
+ EXPECT_FALSE(info.features.dcpop);
|
|
427
|
-
+ EXPECT_TRUE(info.features.sha3);
|
|
428
|
-
+ EXPECT_FALSE(info.features.sm3);
|
|
429
|
-
+ EXPECT_FALSE(info.features.sm4);
|
|
430
|
-
+ EXPECT_FALSE(info.features.asimddp);
|
|
431
|
-
+ EXPECT_TRUE(info.features.sha512);
|
|
432
|
-
+ EXPECT_FALSE(info.features.sve);
|
|
433
|
-
+ EXPECT_TRUE(info.features.asimdfhm);
|
|
434
|
-
+ EXPECT_FALSE(info.features.dit);
|
|
435
|
-
+ EXPECT_FALSE(info.features.uscat);
|
|
436
|
-
+ EXPECT_FALSE(info.features.ilrcpc);
|
|
437
|
-
+ EXPECT_FALSE(info.features.flagm);
|
|
438
|
-
+ EXPECT_FALSE(info.features.ssbs);
|
|
439
|
-
+ EXPECT_FALSE(info.features.sb);
|
|
440
|
-
+ EXPECT_FALSE(info.features.paca);
|
|
441
|
-
+ EXPECT_FALSE(info.features.pacg);
|
|
442
|
-
+}
|
|
443
|
-
+
|
|
444
|
-
+#else
|
|
445
|
-
+
|
|
446
|
-
TEST(CpuinfoAarch64Test, FromHardwareCap) {
|
|
447
|
-
ResetHwcaps();
|
|
448
|
-
SetHardwareCapabilities(AARCH64_HWCAP_FP | AARCH64_HWCAP_AES, 0);
|
|
449
|
-
@@ -163,6 +282,7 @@ TEST(CpuinfoAarch64Test, FromHardwareCap2) {
|
|
450
|
-
EXPECT_FALSE(info.features.dgh);
|
|
451
|
-
EXPECT_FALSE(info.features.rng);
|
|
452
|
-
}
|
|
453
|
-
+#endif // CPU_FEATURES_OS_MACOS
|
|
454
|
-
|
|
455
|
-
TEST(CpuinfoAarch64Test, ARMCortexA53) {
|
|
456
|
-
ResetHwcaps();
|
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
import std.algorithm : each, map, cartesianProduct, filter, joiner, sort, uniq;
|
|
2
|
-
import std.array : array;
|
|
3
|
-
import std.conv : to;
|
|
4
|
-
import std.format;
|
|
5
|
-
import std.range : chain, only;
|
|
6
|
-
import std.stdio;
|
|
7
|
-
import std.traits : EnumMembers;
|
|
8
|
-
|
|
9
|
-
enum BuildSystem
|
|
10
|
-
{
|
|
11
|
-
CMake,
|
|
12
|
-
Bazel
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
enum Cpu
|
|
16
|
-
{
|
|
17
|
-
amd64,
|
|
18
|
-
AArch64,
|
|
19
|
-
ARM,
|
|
20
|
-
MIPS,
|
|
21
|
-
POWER,
|
|
22
|
-
RISCV,
|
|
23
|
-
s390x,
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
enum Os
|
|
27
|
-
{
|
|
28
|
-
Linux,
|
|
29
|
-
FreeBSD,
|
|
30
|
-
MacOS,
|
|
31
|
-
Windows,
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
struct Badge
|
|
35
|
-
{
|
|
36
|
-
const:
|
|
37
|
-
|
|
38
|
-
Cpu cpu;
|
|
39
|
-
Os os;
|
|
40
|
-
BuildSystem build_system;
|
|
41
|
-
|
|
42
|
-
string id()
|
|
43
|
-
{
|
|
44
|
-
return format("%d%c%d", cast(uint)(os) + 1, cast(char)('a' + cpu), cast(uint)(build_system));
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
string disabled_image_ref()
|
|
48
|
-
{
|
|
49
|
-
return format("[d%d]", cast(uint)(build_system));
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
string link_ref()
|
|
53
|
-
{
|
|
54
|
-
return format("[l%s]", id());
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
string image_ref()
|
|
58
|
-
{
|
|
59
|
-
return format("[i%s]", id());
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
bool enabled()
|
|
63
|
-
{
|
|
64
|
-
final switch (build_system)
|
|
65
|
-
{
|
|
66
|
-
case BuildSystem.CMake:
|
|
67
|
-
return os == Os.Linux || cpu == Cpu.amd64;
|
|
68
|
-
case BuildSystem.Bazel:
|
|
69
|
-
return os == Os.Linux && cpu == Cpu.amd64;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
string text()
|
|
74
|
-
{
|
|
75
|
-
if (enabled())
|
|
76
|
-
return format("[![]%s]%s", image_ref, link_ref);
|
|
77
|
-
return format("![]%s", disabled_image_ref);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
string disabled_image_link()
|
|
81
|
-
{
|
|
82
|
-
return format("%s: https://img.shields.io/badge/%s-N%%2FA-lightgrey", disabled_image_ref, build_system);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
string filename()
|
|
86
|
-
{
|
|
87
|
-
import std.uni : toLower;
|
|
88
|
-
|
|
89
|
-
return toLower(format("%s_%s_%s.yml", cpu, os, build_system));
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
string link_decl()
|
|
93
|
-
{
|
|
94
|
-
return format("%s: https://github.com/google/cpu_features/actions/workflows/%s", link_ref, filename());
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
string image_decl()
|
|
98
|
-
{
|
|
99
|
-
return format(
|
|
100
|
-
"%s: https://img.shields.io/github/actions/workflow/status/google/cpu_features/%s?branch=main&label=%s", image_ref, filename(), build_system);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
auto tableHeader(in Cpu[] cpus)
|
|
105
|
-
{
|
|
106
|
-
return chain(only("Os"), cpus.map!(to!string)).array;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
auto tableAlignment(in Cpu[] cpus)
|
|
110
|
-
{
|
|
111
|
-
return chain(only(":--"), cpus.map!(v => "--:")).array;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
auto tableCell(Range)(in Os os, in Cpu cpu, Range badges)
|
|
115
|
-
{
|
|
116
|
-
return badges
|
|
117
|
-
.filter!(b => b.cpu == cpu && b.os == os)
|
|
118
|
-
.map!(b => b.text())
|
|
119
|
-
.joiner("<br/>")
|
|
120
|
-
.to!string;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
auto tableRow(Range)(in Os os, in Cpu[] cpus, Range badges)
|
|
124
|
-
{
|
|
125
|
-
return chain(only(os.to!string), cpus.map!(cpu => tableCell(os, cpu, badges))).array;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
auto tableRows(Range)(in Os[] oses, in Cpu[] cpus, Range badges)
|
|
129
|
-
{
|
|
130
|
-
return oses.map!(os => tableRow(os, cpus, badges)).array;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
auto table(Range)(in Os[] oses, in Cpu[] cpus, Range badges)
|
|
134
|
-
{
|
|
135
|
-
return chain(only(tableHeader(cpus)), only(tableAlignment(cpus)), tableRows(oses, cpus, badges));
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
void main()
|
|
139
|
-
{
|
|
140
|
-
immutable allCpus = [EnumMembers!Cpu];
|
|
141
|
-
immutable allOses = [EnumMembers!Os];
|
|
142
|
-
immutable allBuildSystems = [EnumMembers!BuildSystem];
|
|
143
|
-
|
|
144
|
-
auto badges = cartesianProduct(allCpus, allOses, allBuildSystems).map!(
|
|
145
|
-
t => Badge(t[0], t[1], t[2]));
|
|
146
|
-
|
|
147
|
-
writefln("%(|%-( %s |%) |\n%) |", table(allOses, allCpus, badges));
|
|
148
|
-
writeln();
|
|
149
|
-
badges
|
|
150
|
-
.filter!(b => !b.enabled)
|
|
151
|
-
.map!(b => b.disabled_image_link())
|
|
152
|
-
.array
|
|
153
|
-
.sort
|
|
154
|
-
.uniq
|
|
155
|
-
.each!writeln;
|
|
156
|
-
|
|
157
|
-
badges
|
|
158
|
-
.filter!(b => b.enabled)
|
|
159
|
-
.map!(b => [b.link_decl(), b.image_decl()])
|
|
160
|
-
.joiner()
|
|
161
|
-
.array
|
|
162
|
-
.sort
|
|
163
|
-
.uniq
|
|
164
|
-
.each!writeln;
|
|
165
|
-
}
|