1From b5a58d2c001689b07591fdce8820773d57a74002 Mon Sep 17 00:00:00 2001 2From: Chenxi Mao <chenxi.mao2013@gmail.com> 3Date: Fri, 3 Apr 2020 08:33:10 +0800 4Subject: [PATCH 1/1] Riscv: Add support for riscv 5 6Upstream-Status: Pending 7Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> 8--- 9 CMakeLists.txt | 2 ++ 10 Source/JavaScriptCore/CMakeLists.txt | 1 + 11 Source/WTF/wtf/Platform.h | 12 ++++++++++-- 12 Source/WTF/wtf/dtoa/utils.h | 2 +- 13 4 files changed, 14 insertions(+), 3 deletions(-) 14 15diff --git a/CMakeLists.txt b/CMakeLists.txt 16index 31a2ea1fd..516476729 100644 17--- a/CMakeLists.txt 18+++ b/CMakeLists.txt 19@@ -83,6 +83,8 @@ elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "s390") 20 set(WTF_CPU_S390 1) 21 elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "s390x") 22 set(WTF_CPU_S390X 1) 23+elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "riscv64") 24+ set(WTF_CPU_RISCV64 1) 25 else () 26 message(FATAL_ERROR "Unknown CPU '${LOWERCASE_CMAKE_SYSTEM_PROCESSOR}'") 27 endif () 28diff --git a/Source/JavaScriptCore/CMakeLists.txt b/Source/JavaScriptCore/CMakeLists.txt 29index 937b3ed00..2fff29f9d 100644 30--- a/Source/JavaScriptCore/CMakeLists.txt 31+++ b/Source/JavaScriptCore/CMakeLists.txt 32@@ -1286,6 +1286,7 @@ elseif (WTF_CPU_S390) 33 elseif (WTF_CPU_S390X) 34 elseif (WTF_CPU_MIPS) 35 elseif (WTF_CPU_SH4) 36+elseif (WTF_CPU_RISCV64) 37 elseif (WTF_CPU_X86) 38 elseif (WTF_CPU_X86_64) 39 if (MSVC AND ENABLE_JIT) 40diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h 41index 5717f3ea1..8fac85f72 100644 42--- a/Source/WTF/wtf/Platform.h 43+++ b/Source/WTF/wtf/Platform.h 44@@ -349,7 +349,14 @@ 45 46 #endif /* ARM */ 47 48-#if CPU(ARM) || CPU(MIPS) || CPU(SH4) || CPU(ALPHA) || CPU(HPPA) 49+#if defined(__riscv) 50+#define WTF_CPU_RISCV 1 51+#if __riscv_xlen == 64 52+#define WTF_CPU_RISCV64 1 53+#endif 54+#endif 55+ 56+#if CPU(ARM) || CPU(MIPS) || CPU(SH4) || CPU(ALPHA) || CPU(HPPA) || CPU(RISCV) 57 #define WTF_CPU_NEEDS_ALIGNED_ACCESS 1 58 #endif 59 60@@ -707,7 +714,8 @@ 61 || CPU(S390X) \ 62 || CPU(MIPS64) \ 63 || CPU(PPC64) \ 64- || CPU(PPC64LE) 65+ || CPU(PPC64LE) \ 66+ || CPU(RISCV64) 67 #define USE_JSVALUE64 1 68 #else 69 #define USE_JSVALUE32_64 1 70diff --git a/Source/WTF/wtf/dtoa/utils.h b/Source/WTF/wtf/dtoa/utils.h 71index 05302e6e6..25dd352ee 100644 72--- a/Source/WTF/wtf/dtoa/utils.h 73+++ b/Source/WTF/wtf/dtoa/utils.h 74@@ -49,7 +49,7 @@ 75 defined(__ARMEL__) || \ 76 defined(_MIPS_ARCH_MIPS32R2) 77 #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 78-#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) || CPU(ARM) 79+#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) || CPU(ARM) || CPU(RISCV) 80 #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 81 #elif defined(_M_IX86) || defined(__i386__) 82 #if defined(_WIN32) 83-- 842.17.1 85 86