mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-11-25 14:59:05 +08:00
19444600bf
Fixes https://github.com/microsoft/vcpkg/issues/35977 - [X] Changes comply with the [maintainer guide](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/contributing/maintainer-guide.md) - [X] SHA512s are updated for each updated download - [ ] ~~The "supports" clause reflects platforms that may be fixed by this new version~~ - [ ] ~~Any fixed [CI baseline](https://github.com/microsoft/vcpkg/blob/master/scripts/ci.baseline.txt) entries are removed from that file.~~ - [ ] ~~Any patches that are no longer applied are deleted from the port's directory.~~ - [X] The version database is fixed by rerunning `./vcpkg x-add-version --all` and committing the result. - [X] Only one version is added to each modified port's versions file. Usage test pass with following triplets: ``` x86-windows x64-windows x64-windows-static ```
43 lines
1.6 KiB
Diff
43 lines
1.6 KiB
Diff
diff --git a/src/cpu.cpp b/src/cpu.cpp
|
|
index e56cd67..3ca1189 100644
|
|
--- a/src/cpu.cpp
|
|
+++ b/src/cpu.cpp
|
|
@@ -184,6 +184,13 @@ static int g_cpu_is_arm_a53_a55;
|
|
#endif // defined __ANDROID__ || defined __linux__
|
|
|
|
#if defined _WIN32
|
|
+#if WINAPI_FAMILY == WINAPI_FAMILY_APP
|
|
+static int detectisa(const void* /*some_inst*/)
|
|
+{
|
|
+ // uwp does not support seh :(
|
|
+ return 0;
|
|
+}
|
|
+#else // WINAPI_FAMILY == WINAPI_FAMILY_APP
|
|
static int g_sigill_caught = 0;
|
|
static jmp_buf g_jmpbuf;
|
|
|
|
@@ -213,6 +220,7 @@ static int detectisa(const void* some_inst)
|
|
|
|
return g_sigill_caught ? 0 : 1;
|
|
}
|
|
+#endif // WINAPI_FAMILY == WINAPI_FAMILY_APP
|
|
|
|
#if defined(__i386__) || defined(__x86_64__) || defined(_M_IX86) || defined(_M_X64)
|
|
#ifdef _MSC_VER
|
|
@@ -1966,12 +1974,12 @@ static void initialize_global_cpu_info()
|
|
|
|
#if defined _WIN32
|
|
#if __arm__
|
|
- g_cpu_support_arm_neon = detectisa(some_neon);
|
|
+ g_cpu_support_arm_neon = 1; // all modern windows arm devices have neon
|
|
g_cpu_support_arm_vfpv4 = detectisa(some_vfpv4);
|
|
#if __aarch64__
|
|
g_cpu_support_arm_cpuid = detectisa(some_cpuid);
|
|
- g_cpu_support_arm_asimdhp = detectisa(some_asimdhp);
|
|
- g_cpu_support_arm_asimddp = detectisa(some_asimddp);
|
|
+ g_cpu_support_arm_asimdhp = detectisa(some_asimdhp) || IsProcessorFeaturePresent(43); // dp implies hp
|
|
+ g_cpu_support_arm_asimddp = detectisa(some_asimddp) || IsProcessorFeaturePresent(43); // 43 is PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLE
|
|
g_cpu_support_arm_asimdfhm = detectisa(some_asimdfhm);
|
|
g_cpu_support_arm_bf16 = detectisa(some_bf16);
|
|
g_cpu_support_arm_i8mm = detectisa(some_i8mm);
|