summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCameron Cawley <ccawley2011@gmail.com>2026-03-10 20:57:50 +0000
committerHans Kristian Rosbach <hk-github@circlestorm.org>2026-03-11 14:49:26 +0100
commitff47e1e1e1c59566cef2070d973380d7c296b100 (patch)
tree11ef722880169261319dcf70695d18ad0394fea7
parentb852a3eedf0bf3e3982dd245c0bee61f248e16d7 (diff)
downloadProject-Tick-ff47e1e1e1c59566cef2070d973380d7c296b100.tar.gz
Project-Tick-ff47e1e1e1c59566cef2070d973380d7c296b100.zip
Fix CPU detection for ARM64EC
-rw-r--r--zarch.h28
1 files changed, 15 insertions, 13 deletions
diff --git a/zarch.h b/zarch.h
index 747fb9a583..6fdcfaba55 100644
--- a/zarch.h
+++ b/zarch.h
@@ -9,21 +9,10 @@
#define ZARCH_STRINGIZE(X) ZARCH_DOSTRINGIZE(X)
#define ZARCH_DOSTRINGIZE(X) #X
-/* x86_64 */
-#if defined(__x86_64__) || defined(_M_X64)
-# define ARCH_X86
-# define ARCH_64BIT
-# define ARCH_NAME "x86_64"
-
-/* x86 (32-bit) */
-#elif defined(__i386__) || defined(__i486__) || defined(__i586__) || defined(__i686__) || \
- defined(__i386) || defined(_M_IX86)
-# define ARCH_X86
-# define ARCH_32BIT
-# define ARCH_NAME "i686"
+/* ARM64EC defines both _M_ARM64EC and _M_AMD64/_M_X64, so check for ARM first. */
/* ARM 64-bit */
-#elif defined(__aarch64__) || defined(__arm64__) || defined(_M_ARM64) || defined(_M_ARM64EC)
+#if defined(__aarch64__) || defined(__arm64__) || defined(_M_ARM64) || defined(_M_ARM64EC)
# define ARCH_ARM
# define ARCH_64BIT
# define ARCH_NAME "aarch64"
@@ -52,6 +41,19 @@
# define ARCH_NAME "arm"
# endif
+/* x86_64 */
+#elif defined(__x86_64__) || defined(_M_X64)
+# define ARCH_X86
+# define ARCH_64BIT
+# define ARCH_NAME "x86_64"
+
+/* x86 (32-bit) */
+#elif defined(__i386__) || defined(__i486__) || defined(__i586__) || defined(__i686__) || \
+ defined(__i386) || defined(_M_IX86)
+# define ARCH_X86
+# define ARCH_32BIT
+# define ARCH_NAME "i686"
+
/* PowerPC */
#elif defined(__powerpc__) || defined(__ppc__) || defined(__PPC__)
# define ARCH_POWER