fix SIMDe emulation builds on Arm, add native translation from x86 for comparison

This commit is contained in:
Konstantinos Margaritis
2023-11-27 12:21:58 +00:00
committed by Konstantinos Margaritis
parent b0d9c7f879
commit 1fb601f3a9
17 changed files with 106 additions and 993 deletions

View File

@@ -119,7 +119,10 @@ endif()
# Detect OS and if Fat Runtime is available
include (${CMAKE_MODULE_PATH}/osdetection.cmake)
if (ARCH_IA32 OR ARCH_X86_64)
if(SIMDE_BACKEND)
include (${CMAKE_MODULE_PATH}/simde.cmake)
set(ARCH_FLAG march)
elseif (ARCH_IA32 OR ARCH_X86_64)
include (${CMAKE_MODULE_PATH}/cflags-x86.cmake)
set(ARCH_FLAG march)
elseif (ARCH_ARM32 OR ARCH_AARCH64)
@@ -128,10 +131,6 @@ elseif (ARCH_ARM32 OR ARCH_AARCH64)
elseif (ARCH_PPC64EL)
include (${CMAKE_MODULE_PATH}/cflags-ppc64le.cmake)
set(ARCH_FLAG mcpu)
elseif(SIMDE_BACKEND)
include (${CMAKE_MODULE_PATH}/simde.cmake)
set(ARCH_FLAG march)
else()
message(FATAL_ERROR "Unsupported platform")
endif ()
@@ -243,8 +242,11 @@ set (hs_exec_common_SRCS
src/util/arch/common/cpuid_flags.h
src/util/multibit.c
)
if (ARCH_IA32 OR ARCH_X86_64)
if (SIMDE_BACKEND)
set (hs_exec_common_SRCS
${hs_exec_common_SRCS}
src/util/arch/simde/cpuid_flags.c)
elseif (ARCH_IA32 OR ARCH_X86_64)
set (hs_exec_common_SRCS
${hs_exec_common_SRCS}
src/util/arch/x86/cpuid_flags.c
@@ -258,10 +260,6 @@ elseif (ARCH_PPC64EL)
set (hs_exec_common_SRCS
${hs_exec_common_SRCS}
src/util/arch/ppc64el/cpuid_flags.c)
elseif (SIMDE_BACKEND)
set (hs_exec_common_SRCS
${hs_exec_common_SRCS}
src/util/arch/simde/cpuid_flags.c)
endif ()
set (hs_exec_SRCS
@@ -406,7 +404,12 @@ set (hs_exec_SRCS
src/database.h
)
if (ARCH_IA32 OR ARCH_X86_64)
if (SIMDE_BACKEND)
set (hs_exec_SRCS
${hs_exec_SRCS}
src/nfa/vermicelli_simd.cpp
src/util/supervector/arch/x86/impl.cpp)
elseif (ARCH_IA32 OR ARCH_X86_64)
set (hs_exec_SRCS
${hs_exec_SRCS}
src/nfa/vermicelli_simd.cpp
@@ -420,11 +423,6 @@ set (hs_exec_SRCS
${hs_exec_SRCS}
src/nfa/vermicelli_simd.cpp
src/util/supervector/arch/ppc64el/impl.cpp)
elseif (SIMDE_BACKEND)
set (hs_exec_SRCS
${hs_exec_SRCS}
src/nfa/vermicelli_simd.cpp
src/util/supervector/arch/simde/impl.cpp)
endif()
if (ARCH_IA32 OR ARCH_X86_64)