From 7549347b0cab2e7e96ad144e0a1d7e99111cd3f2 Mon Sep 17 00:00:00 2001 From: Shi Pujin Date: Sun, 9 Jul 2023 09:26:03 +0800 Subject: [PATCH] add LoongArch support diff --git a/CMakeLists.txt b/CMakeLists.txt index 31a2ea1..02873ce 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -63,6 +63,8 @@ elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^aarch64") set(WTF_CPU_ARM64 1) elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "alpha*") set(WTF_CPU_ALPHA 1) +elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "loongarch64") + set(WTF_CPU_LOONGARCH64 1) elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^mips") set(WTF_CPU_MIPS 1) elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "sh4") @@ -83,6 +85,8 @@ elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "s390") set(WTF_CPU_S390 1) elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "s390x") set(WTF_CPU_S390X 1) +elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "loongarch64") + set(WTF_CPU_LOONGARCH64 1) else () message(FATAL_ERROR "Unknown CPU '${LOWERCASE_CMAKE_SYSTEM_PROCESSOR}'") endif () diff --git a/Source/JavaScriptCore/CMakeLists.txt b/Source/JavaScriptCore/CMakeLists.txt index afd76ca..aa12681 100644 --- a/Source/JavaScriptCore/CMakeLists.txt +++ b/Source/JavaScriptCore/CMakeLists.txt @@ -1285,6 +1285,7 @@ elseif (WTF_CPU_PPC64) elseif (WTF_CPU_PPC64LE) elseif (WTF_CPU_S390) elseif (WTF_CPU_S390X) +elseif (WTF_CPU_LOONGARCH64) elseif (WTF_CPU_MIPS) elseif (WTF_CPU_SH4) elseif (WTF_CPU_X86) diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h index 5717f3e..67ac0df 100644 --- a/Source/WTF/wtf/Platform.h +++ b/Source/WTF/wtf/Platform.h @@ -167,6 +167,11 @@ #define WTF_CPU_X86_SSE2 1 #endif +/* CPU(LOONGARCH64) - LOONGARCH64 */ +#if defined(__loongarch64) +#define WTF_CPU_LOONGARCH64 1 +#endif + #endif /* CPU(X86_64) - AMD64 / Intel64 / x86_64 64-bit */ @@ -705,6 +710,7 @@ || CPU(ALPHA) \ || CPU(ARM64) \ || CPU(S390X) \ + || CPU(LOONGARCH64) \ || CPU(MIPS64) \ || CPU(PPC64) \ || CPU(PPC64LE) diff --git a/Source/WTF/wtf/dtoa/utils.h b/Source/WTF/wtf/dtoa/utils.h index 889642c..4c854a3 100644 --- a/Source/WTF/wtf/dtoa/utils.h +++ b/Source/WTF/wtf/dtoa/utils.h @@ -47,9 +47,10 @@ // On Linux,x86 89255e-22 != Div_double(89255.0/1e22) #if defined(_M_X64) || defined(__x86_64__) || \ defined(__ARMEL__) || \ +defined(__loongarch64) || \ defined(_MIPS_ARCH_MIPS32R2) #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 -#elif CPU(MIPS) || CPU(MIPS64) || CPU(PPC) || CPU(PPC64) || CPU(PPC64LE) || CPU(SH4) || CPU(S390) || CPU(S390X) || CPU(IA64) || CPU(ALPHA) || CPU(ARM64) || CPU(HPPA) +#elif CPU(LOONGARCH64) || CPU(MIPS) || CPU(MIPS64) || CPU(PPC) || CPU(PPC64) || CPU(PPC64LE) || CPU(SH4) || CPU(S390) || CPU(S390X) || CPU(IA64) || CPU(ALPHA) || CPU(ARM64) || CPU(HPPA) #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 #elif defined(_M_IX86) || defined(__i386__) #if defined(_WIN32) -- 2.39.1