aboutsummaryrefslogtreecommitdiff
path: root/lib/zig.h
diff options
context:
space:
mode:
authorkcbanner <kcbanner@gmail.com>2022-12-28 03:00:21 -0500
committerAndrew Kelley <andrew@ziglang.org>2023-01-02 13:55:45 -0700
commit6cab3c304eb2d45be6aceb48aa5bbd1fd1298fa3 (patch)
tree62fed7f5ba14794931f9816abc767168a1302314 /lib/zig.h
parent676e4f3824054cf39c87d008909b0e57bb9bdcc8 (diff)
downloadzig-6cab3c304eb2d45be6aceb48aa5bbd1fd1298fa3.tar.gz
zig-6cab3c304eb2d45be6aceb48aa5bbd1fd1298fa3.zip
cbe: be more explicit about x86 special cases
Diffstat (limited to 'lib/zig.h')
-rw-r--r--lib/zig.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/lib/zig.h b/lib/zig.h
index 0bd526b436..645850aa0e 100644
--- a/lib/zig.h
+++ b/lib/zig.h
@@ -8,7 +8,7 @@
#if _MSC_VER
#include <intrin.h>
-#else
+#elif defined(__i386__) || defined(__x86_64__)
#include <cpuid.h>
#endif
@@ -2345,11 +2345,13 @@ zig_msvc_atomics_128op(u128, nand)
zig_msvc_atomics_128op(u128, min)
zig_msvc_atomics_128op(u128, max)
-#endif
+#endif /* _MSC_VER && (_M_IX86 || _M_X64) */
/* ========================= Special Case Intrinsics ========================= */
-static inline void zig_cpuid(zig_u32 leaf_id, zig_u32 subid, zig_u32* eax, zig_u32* ebx, zig_u32* ecx, zig_u32* edx) {
+#if (_MSC_VER && (_M_IX86 || _M_X64)) || defined(__i386__) || defined(__x86_64__)
+
+static inline void zig_x86_cpuid(zig_u32 leaf_id, zig_u32 subid, zig_u32* eax, zig_u32* ebx, zig_u32* ecx, zig_u32* edx) {
#if _MSC_VER
zig_u32 cpu_info[4];
__cpuidex(cpu_info, leaf_id, subid);
@@ -2362,7 +2364,7 @@ static inline void zig_cpuid(zig_u32 leaf_id, zig_u32 subid, zig_u32* eax, zig_u
#endif
}
-static inline zig_u32 zig_get_xcr0() {
+static inline zig_u32 zig_x86_get_xcr0() {
#if _MSC_VER
return (zig_u32)_xgetbv(0);
#else
@@ -2372,3 +2374,5 @@ static inline zig_u32 zig_get_xcr0() {
return eax;
#endif
}
+
+#endif