From a77cffd672759e99ef2fb991f3b13bf94c47b280 Mon Sep 17 00:00:00 2001 From: ape Date: Fri, 8 Dec 2023 16:12:41 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E9=80=82=E9=85=8Dloongarch=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 2 +- src/common/cm_concurrency/cm_spinlock.h | 2 +- src/common/cm_concurrency/cm_thread.c | 3 +++ src/common/cm_utils/cm_checksum.h | 2 +- src/common/cm_utils/cm_memory.h | 8 +++++++- 5 files changed, 13 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0380198..63c7952 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -88,7 +88,7 @@ if (UNIX) endif (USE_H1620) add_compile_options(-mtune=cortex-a72 -fsigned-char -g -ggdb3 -march=armv8-a+crc -funwind-tables) - else () + elseif (OS_ARCH STREQUAL "x86_64") add_compile_options(-msse4.2 ) endif () Add_Definitions(-DWSEC_COMPILE_CAC_OPENSSL -DWSEC_AES_GCM_SUPPORT -DWSEC_USE_OPENSSL_110) diff --git a/src/common/cm_concurrency/cm_spinlock.h b/src/common/cm_concurrency/cm_spinlock.h index 792a7e0..42a2c1d 100644 --- a/src/common/cm_concurrency/cm_spinlock.h +++ b/src/common/cm_concurrency/cm_spinlock.h @@ -63,7 +63,7 @@ typedef struct st_spin_statis { uint64 fails; } spin_statis_t; -#if defined(__arm__) || defined(__aarch64__) +#if defined(__arm__) || defined(__aarch64__) || defined(__loongarch__) #define fas_cpu_pause() \ { \ __asm__ volatile("nop"); \ diff --git a/src/common/cm_concurrency/cm_thread.c b/src/common/cm_concurrency/cm_thread.c index de25657..723b1de 100644 --- a/src/common/cm_concurrency/cm_thread.c +++ b/src/common/cm_concurrency/cm_thread.c @@ -296,6 +296,9 @@ uint32 cm_get_current_thread_id(void) #define __SYS_GET_SPID 186 #elif (defined __aarch64__) #define __SYS_GET_SPID 178 +#elif (defined __loongarch__) +#include +#define __SYS_GET_SPID SYS_gettid #endif #define gettid() syscall(__SYS_GET_SPID) diff --git a/src/common/cm_utils/cm_checksum.h b/src/common/cm_utils/cm_checksum.h index 85bb9fa..758c917 100644 --- a/src/common/cm_utils/cm_checksum.h +++ b/src/common/cm_utils/cm_checksum.h @@ -38,7 +38,7 @@ #define CM_HAVE_SSE4_2 #include #define CM_HAVE__CPUID -#else +#elif defined(__i386__) || defined(__x86_64__) #include #define CM_HAVE_SSE4_2 #include diff --git a/src/common/cm_utils/cm_memory.h b/src/common/cm_utils/cm_memory.h index 5a61085..bc6a236 100644 --- a/src/common/cm_utils/cm_memory.h +++ b/src/common/cm_utils/cm_memory.h @@ -56,12 +56,18 @@ extern "C" { __asm__ volatile("dmb ish" :: \ : "memory"); \ } -#else +#elif defined(__i386__) || defined(__x86_64__) #define CM_MFENCE \ { \ __asm__ volatile("mfence" :: \ : "memory"); \ } +#elif defined(__loongarch__) +#define CM_MFENCE + { \ + __asm__ volatile("" :: \ + : "memory"); \ + } #endif -- Gitee From 93b99bfa16dd3962a64307134981adee5c038d81 Mon Sep 17 00:00:00 2001 From: ape Date: Fri, 8 Dec 2023 16:30:03 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=BC=96=E8=AF=91?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/cm_utils/cm_memory.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/common/cm_utils/cm_memory.h b/src/common/cm_utils/cm_memory.h index bc6a236..8935413 100644 --- a/src/common/cm_utils/cm_memory.h +++ b/src/common/cm_utils/cm_memory.h @@ -63,9 +63,9 @@ extern "C" { : "memory"); \ } #elif defined(__loongarch__) -#define CM_MFENCE +#define CM_MFENCE \ { \ - __asm__ volatile("" :: \ + __asm__ volatile("" :: \ : "memory"); \ } #endif -- Gitee