diff options
| author | Cameron Cawley <ccawley2011@gmail.com> | 2026-03-10 20:57:50 +0000 |
|---|---|---|
| committer | Hans Kristian Rosbach <hk-github@circlestorm.org> | 2026-03-11 14:49:26 +0100 |
| commit | ff47e1e1e1c59566cef2070d973380d7c296b100 (patch) | |
| tree | 11ef722880169261319dcf70695d18ad0394fea7 | |
| parent | b852a3eedf0bf3e3982dd245c0bee61f248e16d7 (diff) | |
| download | Project-Tick-ff47e1e1e1c59566cef2070d973380d7c296b100.tar.gz Project-Tick-ff47e1e1e1c59566cef2070d973380d7c296b100.zip | |
Fix CPU detection for ARM64EC
| -rw-r--r-- | zarch.h | 28 |
1 files changed, 15 insertions, 13 deletions
@@ -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 |
