forked from osmocom/wireshark
Backport autofoo simd optimization
Change-Id: I5d58154bf8266eabedf550b54f18845612f514c6 Reviewed-on: https://code.wireshark.org/review/2206 Reviewed-by: Jörg Mayer <jmayer@loplof.de>
This commit is contained in:
parent
a4a7d2cfec
commit
935280317a
|
@ -169,6 +169,8 @@ if( CMAKE_C_COMPILER_ID MATCHES "MSVC")
|
|||
# This avoids conflicts with the C++ standard library.
|
||||
/DNOMINMAX
|
||||
)
|
||||
set(WIRESHARK_SIMD_TESTS
|
||||
)
|
||||
|
||||
if(NOT WIN64)
|
||||
set(LOCAL_CFLAGS ${LOCAL_CFLAGS} "/D_BIND_TO_CURRENT_CRT_VERSION=1")
|
||||
|
@ -313,6 +315,18 @@ else()
|
|||
set(WIRESHARK_CPP_ONLY_FLAGS ${WIRESHARK_CPP_ONLY_FLAGS} ${WIRESHARK_EXTRA_COMPILER_CPP_ONLY_FLAGS})
|
||||
endif()
|
||||
|
||||
set(WIRESHARK_SIMD_TESTS
|
||||
-faltivec
|
||||
-mmmx
|
||||
-msse
|
||||
-msse2
|
||||
-msse3
|
||||
-mssse3
|
||||
-msse4.1
|
||||
-msse4.2
|
||||
-mavx
|
||||
)
|
||||
|
||||
add_definitions(
|
||||
-DG_DISABLE_DEPRECATED
|
||||
-DG_DISABLE_SINGLE_INCLUDES
|
||||
|
@ -361,6 +375,23 @@ foreach(THIS_FLAG ${CPP_FLAG_TESTS})
|
|||
endforeach()
|
||||
message(STATUS "C-Flags: ${CMAKE_C_FLAGS}\nCXX-Flags: ${CMAKE_CXX_FLAGS}")
|
||||
|
||||
foreach(THIS_FLAG ${WIRESHARK_SIMD_TESTS})
|
||||
string( REGEX REPLACE "[^a-zA-Z0-9_]+" "_" F ${THIS_FLAG} )
|
||||
set(${F} ${THIS_FLAG})
|
||||
set(V C_${F}_VALID)
|
||||
message(STATUS "Checking for c-compiler SIMD flag: ${THIS_FLAG}")
|
||||
check_c_compiler_flag(${${F}} ${V})
|
||||
if (${${V}})
|
||||
set(WIRESHARK_SIMD_FLAGS "${WIRESHARK_SIMD_FLAGS} ${${F}}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
string(REGEX MATCH -msse4.2
|
||||
HAVE_SSE4_2
|
||||
${WIRESHARK_SIMD_FLAGS}
|
||||
)
|
||||
message( STATUS "HAVE_SSE4_2: ${HAVE_SSE4_2}" )
|
||||
|
||||
check_c_compiler_flag(-fvisibility=hidden FVHIDDEN)
|
||||
if(FVHIDDEN)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden")
|
||||
|
|
|
@ -15,6 +15,9 @@
|
|||
/* Directory for data */
|
||||
#define DATAFILE_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR}/${CPACK_PACKAGE_NAME}"
|
||||
|
||||
/* Build wsutil with SIMD optimization */
|
||||
#cmakedefine HAVE_SSE4_2 1
|
||||
|
||||
/* Path to Python. */
|
||||
#cmakedefine PYTHON_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR}/${CPACK_PACKAGE_NAME}/python/${CPACK_PACKAGE_VERSION}"
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
include(UseABICheck)
|
||||
|
||||
IF(WIN32)
|
||||
if(WIN32)
|
||||
set(WSUTIL_PLATFORM_FILES
|
||||
file_util.c
|
||||
inet_aton.c
|
||||
|
@ -32,6 +32,12 @@ IF(WIN32)
|
|||
)
|
||||
ENDIF(WIN32)
|
||||
|
||||
if(HAVE_SSE4_2)
|
||||
set( WSUTIL_SSE42_FILES
|
||||
ws_mempbrk_sse42.c
|
||||
)
|
||||
endif()
|
||||
|
||||
set(WSUTIL_FILES
|
||||
adler32.c
|
||||
aes.c
|
||||
|
@ -76,6 +82,7 @@ set(WSUTIL_FILES
|
|||
nghttp2/nghttp2_hd_huffman_data.c
|
||||
nghttp2/nghttp2_helper.c
|
||||
${WSUTIL_PLATFORM_FILES}
|
||||
${WSUTIL_SSE42_FILES}
|
||||
)
|
||||
|
||||
set(wsutil_LIBS
|
||||
|
@ -99,6 +106,13 @@ if (WERROR)
|
|||
COMPILE_FLAGS -Werror
|
||||
)
|
||||
endif()
|
||||
if (HAVE_SSE4_2)
|
||||
set_source_files_properties(
|
||||
${WSUTIL_SSE42_FILES}
|
||||
PROPERTIES
|
||||
COMPILE_FLAGS -msse4.2
|
||||
)
|
||||
endif()
|
||||
|
||||
add_library(wsutil ${LINK_MODE_LIB}
|
||||
${WSUTIL_FILES}
|
||||
|
|
Loading…
Reference in New Issue