Skip to content

Commit

Permalink
Update wirehair
Browse files Browse the repository at this point in the history
Including my custom CMakeLists.
  • Loading branch information
sz3 committed Feb 18, 2022
1 parent 82ed9e9 commit 39b37d9
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 25 deletions.
3 changes: 0 additions & 3 deletions src/third_party_lib/wirehair/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,6 @@ endif()
if(MSVC)
else()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ARCH_NATIVE}")
if (CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64")
add_definitions(-DLINUX_ARM=1)
endif()
endif()

add_library(wirehair ${LIB_SOURCE_FILES})
Expand Down
1 change: 1 addition & 0 deletions src/third_party_lib/wirehair/WirehairTools.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
#include "WirehairTools.h"

#include <cmath>
#include <cstdlib>

#ifdef _MSC_VER
#include <intrin.h> // _BitScanReverse
Expand Down
2 changes: 1 addition & 1 deletion src/third_party_lib/wirehair/gf256.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ static bool gf256_self_test()
#endif

#if defined(GF256_TRY_NEON)
# if defined(IOS) && defined(__ARM_NEON__)
# if defined(IOS) && (defined(__ARM_NEON) || defined(__ARM_NEON__))
// Requires iPhone 5S or newer
static const bool CpuHasNeon = true;
static const bool CpuHasNeon64 = true;
Expand Down
34 changes: 14 additions & 20 deletions src/third_party_lib/wirehair/gf256.h
Original file line number Diff line number Diff line change
Expand Up @@ -53,11 +53,17 @@
//------------------------------------------------------------------------------
// Platform/Architecture

#if defined(__ARM_ARCH) || defined(__ARM_NEON) || defined(__ARM_NEON__)
#if !defined IOS
#define LINUX_ARM
#endif
#endif

#if defined(ANDROID) || defined(IOS) || defined(LINUX_ARM) || defined(__powerpc__) || defined(__s390__)
#define GF256_TARGET_MOBILE
#endif // ANDROID

#if defined(__AVX2__) || (defined (_MSC_VER) && _MSC_VER >= 1900)
#if defined(__AVX2__) && (!defined (_MSC_VER) || _MSC_VER >= 1900)
#define GF256_TRY_AVX2 /* 256-bit */
#include <immintrin.h>
#define GF256_ALIGN_BYTES 32
Expand All @@ -66,36 +72,28 @@
#endif // __AVX2__

#if !defined(GF256_TARGET_MOBILE)
// Note: MSVC currently only supports SSSE3 but not AVX2
#include <tmmintrin.h> // SSSE3: _mm_shuffle_epi8
#include <emmintrin.h> // SSE2
#endif // GF256_TARGET_MOBILE

#if defined(HAVE_ARM_NEON_H)
#if defined(__ARM_NEON) || defined(__ARM_NEON__)
#include <arm_neon.h>
#endif // HAVE_ARM_NEON_H
#define GF256_TRY_NEON
#endif

// Compiler-specific 128-bit SIMD register keyword
#if defined(GF256_TARGET_MOBILE)

#define GF256_ALIGNED_ACCESSES /* Inputs must be aligned to GF256_ALIGN_BYTES */

# if defined(HAVE_ARM_NEON_H)
// Compiler-specific 128-bit SIMD register keyword
#if defined(GF256_TRY_NEON)
#define GF256_M128 uint8x16_t
#define GF256_TRY_NEON
#else
#define GF256_M128 uint64_t
# endif

#endif // GF256_TRY_NEON
#else // GF256_TARGET_MOBILE

// Compiler-specific 128-bit SIMD register keyword
#define GF256_M128 __m128i

#endif // GF256_TARGET_MOBILE

// Compiler-specific 256-bit SIMD register keyword
#ifdef GF256_TRY_AVX2
// Compiler-specific 256-bit SIMD register keyword
#define GF256_M256 __m256i
#endif

Expand Down Expand Up @@ -272,10 +270,6 @@ static GF256_FORCE_INLINE void gf256_div_mem(void * GF256_RESTRICT vz,
//------------------------------------------------------------------------------
// Misc Operations

/// Swap two memory buffers in-place
extern void gf256_memswap(void * GF256_RESTRICT vx, void * GF256_RESTRICT vy, int bytes);


#ifdef __cplusplus
}
#endif // __cplusplus
Expand Down
2 changes: 1 addition & 1 deletion src/third_party_lib/wirehair/wirehair.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ WIREHAIR_EXPORT WirehairCodec wirehair_decoder_create(
)
{
// If input is invalid:
if (messageBytes < 1 || blockBytes < 1) {
if (!m_init || messageBytes < 1 || blockBytes < 1) {
return nullptr;
}

Expand Down

0 comments on commit 39b37d9

Please sign in to comment.