From 2aaa6c6e0430256c4dd275cb282e1567a068dcae Mon Sep 17 00:00:00 2001 From: Alibek Omarov Date: Mon, 28 Sep 2020 16:17:08 +0300 Subject: [PATCH] public: build: add ARMv8 32-bit support, in case of someone actually uses it --- engine/common/build.c | 6 ++++-- engine/common/crashhandler.c | 2 +- public/build.h | 17 +++++++++-------- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/engine/common/build.c b/engine/common/build.c index 7fd62795..78f9c8f9 100644 --- a/engine/common/build.c +++ b/engine/common/build.c @@ -115,11 +115,13 @@ const char *Q_buildarch( void ) archname = "amd64"; #elif XASH_X86 archname = "i386"; -#elif XASH_ARM64 +#elif XASH_ARM && XASH_64BIT archname = "arm64"; #elif XASH_ARM archname = "armv" - #if XASH_ARM == 7 + #if XASH_ARM == 8 + "8_32" // for those who (mis)using 32-bit OS on 64-bit CPU + #elif XASH_ARM == 7 "7" #elif XASH_ARM == 6 "6" diff --git a/engine/common/crashhandler.c b/engine/common/crashhandler.c index 38821dd6..1048b510 100644 --- a/engine/common/crashhandler.c +++ b/engine/common/crashhandler.c @@ -336,7 +336,7 @@ static void Sys_Crash( int signal, siginfo_t *si, void *context) bp = (void**)ucontext->uc_mcontext.gregs[REG_EBP]; sp = (void**)ucontext->uc_mcontext.gregs[REG_ESP]; #endif -#elif XASH_ARM64 +#elif XASH_ARM && XASH_64BIT pc = (void*)ucontext->uc_mcontext.pc; bp = (void*)ucontext->uc_mcontext.regs[29]; sp = (void*)ucontext->uc_mcontext.sp; diff --git a/public/build.h b/public/build.h index a087c22c..043a11cd 100644 --- a/public/build.h +++ b/public/build.h @@ -45,13 +45,13 @@ For more information, please refer to #undef XASH_ANDROID #undef XASH_APPLE #undef XASH_ARM -#undef XASH_ARM64 #undef XASH_ARM_HARDFP #undef XASH_ARM_SOFTFP #undef XASH_ARMv4 #undef XASH_ARMv5 #undef XASH_ARMv6 #undef XASH_ARMv7 +#undef XASH_ARMv8 //#undef XASH_BIG_ENDIAN #undef XASH_BSD #undef XASH_E2K @@ -169,14 +169,13 @@ For more information, please refer to #define XASH_AMD64 1 #elif defined(__i386__) || defined(_X86_) || defined(_M_IX86) #define XASH_X86 1 -#elif defined __aarch64__ +#elif defined __aarch64__ || defined _M_ARM64 #define XASH_64BIT 1 - #define XASH_ARM64 1 + #define XASH_ARM 8 #elif defined __arm__ || defined _M_ARM - #if defined _M_ARM - // msvc can only armv7 ? - #define XASH_ARM 7 - #elif __ARM_ARCH == 7 || __ARM_ARCH_7__ + #if __ARM_ARCH == 8 || __ARM_ARCH_8__ + #define XASH_ARM 8 + #elif __ARM_ARCH == 7 || __ARM_ARCH_7__ || defined _M_ARM // msvc can only armv7 in 32 bit #define XASH_ARM 7 #elif __ARM_ARCH == 6 || __ARM_ARCH_6__ || __ARM_ARCH_6J__ #define XASH_ARM 6 @@ -212,7 +211,9 @@ For more information, please refer to #define XASH_64BIT 1 #endif -#if XASH_ARM == 7 +#if XASH_ARM == 8 + #define XASH_ARMv8 1 +#elif XASH_ARM == 7 #define XASH_ARMv7 1 #elif XASH_ARM == 6 #define XASH_ARMv6 1