From: Nick Terrell Date: Fri, 14 Aug 2020 19:41:28 +0000 (-0700) Subject: Add ZSTD_NO_INTRINSICS macro to avoid explicit intrinsics X-Git-Tag: v1.4.7~83^2~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e975de289c25cda3223cdb17ae43f0c0b06105c4;p=thirdparty%2Fzstd.git Add ZSTD_NO_INTRINSICS macro to avoid explicit intrinsics --- diff --git a/lib/common/bitstream.h b/lib/common/bitstream.h index 42f6cf0fc..168b22450 100644 --- a/lib/common/bitstream.h +++ b/lib/common/bitstream.h @@ -35,10 +35,12 @@ extern "C" { /*========================================= * Target specific =========================================*/ -#if defined(__BMI__) && defined(__GNUC__) -# include /* support for bextr (experimental) */ -#elif defined(__ICCARM__) -# include +#ifndef ZSTD_NO_INTRINSICS +# if defined(__BMI__) && defined(__GNUC__) +# include /* support for bextr (experimental) */ +# elif defined(__ICCARM__) +# include +# endif #endif #define STREAM_ACCUMULATOR_MIN_32 25 diff --git a/lib/common/zstd_internal.h b/lib/common/zstd_internal.h index e46320a73..8cbeedd85 100644 --- a/lib/common/zstd_internal.h +++ b/lib/common/zstd_internal.h @@ -19,7 +19,7 @@ /*-************************************* * Dependencies ***************************************/ -#ifdef __aarch64__ +#if !defined(ZSTD_NO_INTRINSICS) && defined(__aarch64__) #include #endif #include "compiler.h" @@ -228,7 +228,7 @@ static const U32 OF_defaultNormLog = OF_DEFAULTNORMLOG; * Shared functions to include for inlining *********************************************/ static void ZSTD_copy8(void* dst, const void* src) { -#ifdef __aarch64__ +#if !defined(ZSTD_NO_INTRINSICS) && defined(__aarch64__) vst1_u8((uint8_t*)dst, vld1_u8((const uint8_t*)src)); #else ZSTD_memcpy(dst, src, 8); @@ -237,7 +237,7 @@ static void ZSTD_copy8(void* dst, const void* src) { #define COPY8(d,s) { ZSTD_copy8(d,s); d+=8; s+=8; } static void ZSTD_copy16(void* dst, const void* src) { -#ifdef __aarch64__ +#if !defined(ZSTD_NO_INTRINSICS) && defined(__aarch64__) vst1q_u8((uint8_t*)dst, vld1q_u8((const uint8_t*)src)); #else ZSTD_memcpy(dst, src, 16);