Browse Source

Add cmake support for LOONGARCH64

tags/v0.3.18
gxw 4 years ago
parent
commit
0b8f7c8c10
5 changed files with 25 additions and 1 deletions
  1. +4
    -0
      cmake/arch.cmake
  2. +9
    -0
      cmake/cc.cmake
  3. +7
    -0
      cmake/fc.cmake
  4. +3
    -1
      cmake/system_check.cmake
  5. +2
    -0
      kernel/loongarch64/KERNEL

+ 4
- 0
cmake/arch.cmake View File

@@ -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)


+ 9
- 0
cmake/cc.cmake View File

@@ -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 ()


+ 7
- 0
cmake/fc.cmake View File

@@ -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")


+ 3
- 1
cmake/system_check.cmake View File

@@ -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)


+ 2
- 0
kernel/loongarch64/KERNEL View File

@@ -234,3 +234,5 @@ endif
ifndef ZGEMM3MKERNEL
ZGEMM3MKERNEL = zgemm3m_kernel.S
endif

DSDOTKERNEL = dot.S

Loading…
Cancel
Save