From 34207bdf5b91373c08fbebf038b43e5b8c9ed7cf Mon Sep 17 00:00:00 2001 From: gxw Date: Fri, 30 Jul 2021 18:11:12 +0800 Subject: [PATCH 1/2] Fixed typos about LOONGARCH64 --- Makefile.system | 2 +- common_loongarch64.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile.system b/Makefile.system index 4084390db..13c946ba1 100644 --- a/Makefile.system +++ b/Makefile.system @@ -856,7 +856,7 @@ BINARY_DEFINED = 1 endif ifeq ($(ARCH), loongarch64) -ifeq ($(CORE), LOONGSONG3R5) +ifeq ($(CORE), LOONGSON3R5) CCOMMON_OPT += -march=loongarch64 -mabi=lp64 FCOMMON_OPT += -march=loongarch64 -mabi=lp64 endif diff --git a/common_loongarch64.h b/common_loongarch64.h index 959e7e58a..e15539b5f 100644 --- a/common_loongarch64.h +++ b/common_loongarch64.h @@ -186,7 +186,7 @@ REALNAME: ;\ #define BUFFER_SIZE ( 32 << 20) -#define PAGESIZE (16UL << 1) +#define PAGESIZE (16UL << 10) #define FIXED_PAGESIZE (16UL << 10) #define HUGE_PAGESIZE ( 2 << 20) From 0b8f7c8c10957aa1d7836cb8ae55337d180d5a75 Mon Sep 17 00:00:00 2001 From: gxw Date: Mon, 2 Aug 2021 10:00:41 +0800 Subject: [PATCH 2/2] Add cmake support for LOONGARCH64 --- cmake/arch.cmake | 4 ++++ cmake/cc.cmake | 9 +++++++++ cmake/fc.cmake | 7 +++++++ cmake/system_check.cmake | 4 +++- kernel/loongarch64/KERNEL | 2 ++ 5 files changed, 25 insertions(+), 1 deletion(-) diff --git a/cmake/arch.cmake b/cmake/arch.cmake index 154e59db6..57ee5a4fb 100644 --- a/cmake/arch.cmake +++ b/cmake/arch.cmake @@ -113,6 +113,10 @@ if (MIPS64) set(NO_BINARY_MODE 1) endif () +if (LOONGARCH64) + set(NO_BINARY_MODE 1) +endif () + if (${ARCH} STREQUAL "alpha") set(NO_BINARY_MODE 1) set(BINARY_DEFINED 1) diff --git a/cmake/cc.cmake b/cmake/cc.cmake index ac5e455d5..1794b5e5b 100644 --- a/cmake/cc.cmake +++ b/cmake/cc.cmake @@ -29,6 +29,15 @@ if (${CMAKE_C_COMPILER_ID} STREQUAL "GNU" OR ${CMAKE_C_COMPILER_ID} STREQUAL "LS set(FCOMMON_OPT "${FCOMMON_OPT} -march=mips64") endif () + if (LOONGARCH64) + if (BINARY64) + set(CCOMMON_OPT "${CCOMMON_OPT} -mabi=lp64") + else () + set(CCOMMON_OPT "${CCOMMON_OPT} -mabi=lp32") + endif () + set(BINARY_DEFINED 1) + endif () + if (CMAKE_SYSTEM_NAME STREQUAL "AIX") set(BINARY_DEFINED 1) endif () diff --git a/cmake/fc.cmake b/cmake/fc.cmake index fc1f9bb22..631664569 100644 --- a/cmake/fc.cmake +++ b/cmake/fc.cmake @@ -61,6 +61,13 @@ if (${F_COMPILER} STREQUAL "GFORTRAN") set(FCOMMON_OPT "${FCOMMON_OPT} -mabi=n32") endif () endif () + if (LOONGARCH64) + if (BINARY64) + set(FCOMMON_OPT "${FCOMMON_OPT} -mabi=lp64") + else () + set(FCOMMON_OPT "${FCOMMON_OPT} -mabi=lp32") + endif () + endif () else () if (BINARY64) set(FCOMMON_OPT "${FCOMMON_OPT} -m64") diff --git a/cmake/system_check.cmake b/cmake/system_check.cmake index fdc79c8ce..8d0558c0e 100644 --- a/cmake/system_check.cmake +++ b/cmake/system_check.cmake @@ -38,6 +38,8 @@ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "ppc.*|power.*|Power.*") set(PPC 1) elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "mips64.*") set(MIPS64 1) +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "loongarch64.*") + set(LOONGARCH64 1) elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "amd64.*|x86_64.*|AMD64.*") if (NOT BINARY) if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") @@ -95,7 +97,7 @@ else() endif () if (NOT BINARY) - if (X86_64 OR ARM64 OR PPC OR MIPS64) + if (X86_64 OR ARM64 OR PPC OR MIPS64 OR LOONGARCH64) set(BINARY 64) else () set(BINARY 32) diff --git a/kernel/loongarch64/KERNEL b/kernel/loongarch64/KERNEL index e96a90e72..1c11df9b6 100644 --- a/kernel/loongarch64/KERNEL +++ b/kernel/loongarch64/KERNEL @@ -234,3 +234,5 @@ endif ifndef ZGEMM3MKERNEL ZGEMM3MKERNEL = zgemm3m_kernel.S endif + +DSDOTKERNEL = dot.S