Commit e74b6f0a4b

Jakub Konka <kubkon@jakubkonka.com>
2022-11-25 20:09:21
windows: detect couple more aarch64 CPU features
1 parent 29aafdc
Changed files (2)
lib
std
lib/std/os/windows.zig
@@ -3838,7 +3838,11 @@ pub const PF = enum(DWORD) {
     AVX512F_INSTRUCTIONS_AVAILABLE = 41,
 
     ERMS_AVAILABLE = 42,
+
+    /// This ARM processor implements the ARM v8.2 Dot Product (DP) instructions.
     ARM_V82_DP_INSTRUCTIONS_AVAILABLE = 43,
+
+    /// This ARM processor implements the ARM v8.3 JavaScript conversion (JSCVT) instructions.
     ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE = 44,
 };
 
lib/std/zig/system/windows.zig
@@ -61,6 +61,15 @@ fn detectNativeCpuAndFeaturesArm64() Target.Cpu {
     if (IsProcessorFeaturePresent(PF.ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE)) {
         cpu.features.addFeature(@enumToInt(Feature.crypto));
     }
+    if (IsProcessorFeaturePresent(PF.ARM_V81_ATOMIC_INSTRUCTIONS_AVAILABLE)) {
+        cpu.features.addFeature(@enumToInt(Feature.lse));
+    }
+    if (IsProcessorFeaturePresent(PF.ARM_V82_DP_INSTRUCTIONS_AVAILABLE)) {
+        cpu.features.addFeature(@enumToInt(Feature.dotprod));
+    }
+    if (IsProcessorFeaturePresent(PF.ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE)) {
+        cpu.features.addFeature(@enumToInt(Feature.jsconv));
+    }
 
     return cpu;
 }