Browse Source

[Minor] Limit sse41 code to sse41 and x86_64

tags/3.6
Vsevolod Stakhov 9 months ago
parent
commit
80e8a76a31
No account linked to committer's email address

+ 2
- 4
contrib/fastutf8/CMakeLists.txt View File

SET(UTFSRC ${CMAKE_CURRENT_SOURCE_DIR}/fastutf8.c) SET(UTFSRC ${CMAKE_CURRENT_SOURCE_DIR}/fastutf8.c)
IF(HAVE_AVX2)
IF(HAVE_AVX2 AND "${ARCH}" STREQUAL "x86_64")
SET(UTFSRC ${UTFSRC} ${CMAKE_CURRENT_SOURCE_DIR}/avx2.c) SET(UTFSRC ${UTFSRC} ${CMAKE_CURRENT_SOURCE_DIR}/avx2.c)
MESSAGE(STATUS "UTF8: AVX2 support is added") MESSAGE(STATUS "UTF8: AVX2 support is added")
ENDIF() ENDIF()
IF(HAVE_SSE41)
IF(HAVE_SSE41 AND "${ARCH}" STREQUAL "x86_64")
SET(UTFSRC ${UTFSRC} ${CMAKE_CURRENT_SOURCE_DIR}/sse41.c) SET(UTFSRC ${UTFSRC} ${CMAKE_CURRENT_SOURCE_DIR}/sse41.c)
MESSAGE(STATUS "UTF8: SSE41 support is added") MESSAGE(STATUS "UTF8: SSE41 support is added")
ENDIF() ENDIF()


CONFIGURE_FILE(platform_config.h.in platform_config.h)

ADD_LIBRARY(rspamd-fastutf8 STATIC ${UTFSRC}) ADD_LIBRARY(rspamd-fastutf8 STATIC ${UTFSRC})

+ 5
- 5
contrib/fastutf8/fastutf8.c View File

*/ */


#include "fastutf8.h" #include "fastutf8.h"
#include "platform_config.h"
#include "libcryptobox/platform_config.h"




/* /*
} }


/* Prototypes */ /* Prototypes */
#ifdef HAVE_SSSE3
#if defined(HAVE_SSE41) && defined(__x86_64__)
extern off_t rspamd_fast_utf8_validate_sse41 (const unsigned char *data, size_t len); extern off_t rspamd_fast_utf8_validate_sse41 (const unsigned char *data, size_t len);
#endif #endif
#ifdef HAVE_AVX2
#if defined(HAVE_AVX2) && defined(__x86_64__)
extern off_t rspamd_fast_utf8_validate_avx2 (const unsigned char *data, size_t len); extern off_t rspamd_fast_utf8_validate_avx2 (const unsigned char *data, size_t len);
#endif #endif


void void
rspamd_fast_utf8_library_init (unsigned flags) rspamd_fast_utf8_library_init (unsigned flags)
{ {
#ifdef HAVE_SSSE3
#if defined(HAVE_SSE41) && defined(__x86_64__)
if (flags & RSPAMD_FAST_UTF8_FLAG_SSE41) { if (flags & RSPAMD_FAST_UTF8_FLAG_SSE41) {
validate_func = rspamd_fast_utf8_validate_sse41; validate_func = rspamd_fast_utf8_validate_sse41;
} }
#endif #endif
#ifdef HAVE_AVX2
#if defined(HAVE_AVX2) && defined(__x86_64__)
if (flags & RSPAMD_FAST_UTF8_FLAG_AVX2) { if (flags & RSPAMD_FAST_UTF8_FLAG_AVX2) {
validate_func = rspamd_fast_utf8_validate_avx2; validate_func = rspamd_fast_utf8_validate_avx2;
} }

+ 0
- 13
contrib/fastutf8/platform_config.h.in View File

#ifndef PLATFORM_H_CONFIG
#define PLATFORM_H_CONFIG

#define ARCH "${ARCH}"
#define CMAKE_ARCH_${ARCH} 1

#ifdef __x86_64__
#cmakedefine HAVE_AVX2 1
#cmakedefine HAVE_SSE41 1
#cmakedefine HAVE_SSSE3 1
#endif

#endif

Loading…
Cancel
Save