From dd9bb4830ccf37c8197a735887029bab6d5cb2f2 Mon Sep 17 00:00:00 2001 From: amaldika Date: Fri, 13 Mar 2026 14:33:28 +0530 Subject: [PATCH] Changes to support arm64 & arm64EC on MSVC [+] Enabled platform specific macros. [+] Added "EA_TARGET_ARCHITECTURE_ARM64" & "EA_TARGET_ARCHITECTURE_ARM64EC" for arm64 & arm64EC respectively. --- include/Common/EABase/config/eaplatform.h | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/include/Common/EABase/config/eaplatform.h b/include/Common/EABase/config/eaplatform.h index cc297ec..960cf35 100644 --- a/include/Common/EABase/config/eaplatform.h +++ b/include/Common/EABase/config/eaplatform.h @@ -536,7 +536,19 @@ #else #define EA_PLATFORM_WIN32 1 #endif - #if defined(_M_AMD64) || defined(_AMD64_) || defined(__x86_64__) + #if defined(_M_ARM64) || defined(_M_ARM64EC) + #define EA_PROCESSOR_ARM64 1 + #if defined(_M_ARM64) + #define EA_TARGET_ARCHITECTURE_ARM64 1 + #else + #define EA_TARGET_ARCHITECTURE_ARM64EC 1 + #endif + #define EA_SYSTEM_LITTLE_ENDIAN 1 + #define EA_PLATFORM_DESCRIPTION "Windows on ARM64" + #if defined(EA_TARGET_ARCHITECTURE_ARM64EC) // Disable USE_SOFT_INTRINSICS to avoid the uint128_t redefinition caused by conflicting with EABase. + #define _DISABLE_SOFTINTRIN_ + #endif + #elif defined(_M_AMD64) || defined(_AMD64_) || defined(__x86_64__) #define EA_PROCESSOR_X86_64 1 #define EA_SYSTEM_LITTLE_ENDIAN 1 #define EA_PLATFORM_DESCRIPTION "Windows on x64" @@ -553,10 +565,6 @@ #define EA_PROCESSOR_ARM32 1 #define EA_SYSTEM_LITTLE_ENDIAN 1 #define EA_PLATFORM_DESCRIPTION "Windows on ARM" - #elif defined(_M_ARM64) - #define EA_PROCESSOR_ARM64 1 - #define EA_SYSTEM_LITTLE_ENDIAN 1 - #define EA_PLATFORM_DESCRIPTION "Windows on ARM64" #else //Possibly other Windows CE variants #error Unknown processor #error Unknown endianness