Harlinn.Windows 0.1
Loading...
Searching...
No Matches
x86 Dispatcher

Classes

struct  XXH_dispatchFunctions_s
 
struct  XXH_dispatch128Functions_s
 

Macros

#define XXH_HAS_INCLUDE(header)
 
#define XXH_DISPATCH_SCALAR   1
 Enables/dispatching the scalar code path.
 
#define XXH_DISPATCH_AVX2   0
 Enables/disables dispatching for AVX2.
 
#define XXH_DISPATCH_AVX512   0
 Enables/disables dispatching for AVX512.
 
#define XXH_debugPrint(str)
 
#define NDEBUG
 
#define XXH_INLINE_ALL
 
#define XXH_X86DISPATCH
 
#define XXH_I_ATT(intel, att)
 
#define XXH_SSE2_CPUID_MASK   (1 << 26)
 
#define XXH_OSXSAVE_CPUID_MASK   ((1 << 26) | (1 << 27))
 
#define XXH_AVX2_CPUID_MASK   (1 << 5)
 
#define XXH_AVX2_XGETBV_MASK   ((1 << 2) | (1 << 1))
 
#define XXH_AVX512F_CPUID_MASK   (1 << 16)
 
#define XXH_AVX512F_XGETBV_MASK   ((7 << 5) | (1 << 2) | (1 << 1))
 
#define XXH_DEFINE_DISPATCH_FUNCS(suffix, target)
 
#define XXH_NB_DISPATCHES   4
 

Typedefs

typedef XXH64_hash_t(* XXH3_dispatchx86_hashLong64_default) (const void *XXH_RESTRICT, size_t)
 
typedef XXH64_hash_t(* XXH3_dispatchx86_hashLong64_withSeed) (const void *XXH_RESTRICT, size_t, XXH64_hash_t)
 
typedef XXH64_hash_t(* XXH3_dispatchx86_hashLong64_withSecret) (const void *XXH_RESTRICT, size_t, const void *XXH_RESTRICT, size_t)
 
typedef XXH_errorcode(* XXH3_dispatchx86_update) (XXH3_state_t *, const void *, size_t)
 
typedef XXH128_hash_t(* XXH3_dispatchx86_hashLong128_default) (const void *XXH_RESTRICT, size_t)
 
typedef XXH128_hash_t(* XXH3_dispatchx86_hashLong128_withSeed) (const void *XXH_RESTRICT, size_t, XXH64_hash_t)
 
typedef XXH128_hash_t(* XXH3_dispatchx86_hashLong128_withSecret) (const void *XXH_RESTRICT, size_t, const void *XXH_RESTRICT, size_t)
 

Functions

static void XXH_cpuid (xxh_u32 eax, xxh_u32 ecx, xxh_u32 *abcd)
 
static int XXH_featureTest (void)
 
static void XXH_setDispatch (void)
 
static XXH64_hash_t XXH3_hashLong_64b_defaultSecret_selection (const void *input, size_t len, XXH64_hash_t seed64, const xxh_u8 *secret, size_t secretLen)
 
XXH64_hash_t XXH3_64bits_dispatch (const void *input, size_t len)
 
static XXH64_hash_t XXH3_hashLong_64b_withSeed_selection (const void *input, size_t len, XXH64_hash_t seed64, const xxh_u8 *secret, size_t secretLen)
 
XXH64_hash_t XXH3_64bits_withSeed_dispatch (const void *input, size_t len, XXH64_hash_t seed)
 
static XXH64_hash_t XXH3_hashLong_64b_withSecret_selection (const void *input, size_t len, XXH64_hash_t seed64, const xxh_u8 *secret, size_t secretLen)
 
XXH64_hash_t XXH3_64bits_withSecret_dispatch (const void *input, size_t len, const void *secret, size_t secretLen)
 
XXH_errorcode XXH3_64bits_update_dispatch (XXH3_state_t *state, const void *input, size_t len)
 
static XXH128_hash_t XXH3_hashLong_128b_defaultSecret_selection (const void *input, size_t len, XXH64_hash_t seed64, const void *secret, size_t secretLen)
 
XXH128_hash_t XXH3_128bits_dispatch (const void *input, size_t len)
 
static XXH128_hash_t XXH3_hashLong_128b_withSeed_selection (const void *input, size_t len, XXH64_hash_t seed64, const void *secret, size_t secretLen)
 
XXH128_hash_t XXH3_128bits_withSeed_dispatch (const void *input, size_t len, XXH64_hash_t seed)
 
static XXH128_hash_t XXH3_hashLong_128b_withSecret_selection (const void *input, size_t len, XXH64_hash_t seed64, const void *secret, size_t secretLen)
 
XXH128_hash_t XXH3_128bits_withSecret_dispatch (const void *input, size_t len, const void *secret, size_t secretLen)
 
XXH_errorcode XXH3_128bits_update_dispatch (XXH3_state_t *state, const void *input, size_t len)
 

Variables

static const XXH_dispatchFunctions_s XXH_kDispatch [XXH_NB_DISPATCHES]
 
static XXH_dispatchFunctions_s XXH_g_dispatch = { NULL, NULL, NULL, NULL }
 
static const XXH_dispatch128Functions_s XXH_kDispatch128 [XXH_NB_DISPATCHES]
 
static XXH_dispatch128Functions_s XXH_g_dispatch128 = { NULL, NULL, NULL, NULL }
 

Detailed Description

Macro Definition Documentation

◆ NDEBUG

#define NDEBUG

◆ XXH_AVX2_CPUID_MASK

#define XXH_AVX2_CPUID_MASK   (1 << 5)

◆ XXH_AVX2_XGETBV_MASK

#define XXH_AVX2_XGETBV_MASK   ((1 << 2) | (1 << 1))

◆ XXH_AVX512F_CPUID_MASK

#define XXH_AVX512F_CPUID_MASK   (1 << 16)

◆ XXH_AVX512F_XGETBV_MASK

#define XXH_AVX512F_XGETBV_MASK   ((7 << 5) | (1 << 2) | (1 << 1))

◆ XXH_debugPrint

#define XXH_debugPrint ( str)
Value:
((void)0)

◆ XXH_DEFINE_DISPATCH_FUNCS

#define XXH_DEFINE_DISPATCH_FUNCS ( suffix,
target )

◆ XXH_DISPATCH_AVX2

#define XXH_DISPATCH_AVX2   0

Enables/disables dispatching for AVX2.

This is automatically detected if it is not defined.

  • GCC 4.7 and later are known to support AVX2, but >4.9 is required for to get the AVX2 intrinsics and typedefs without -mavx -mavx2.
  • Visual Studio 2013 Update 2 and later are known to support AVX2.
  • The GCC/Clang internal header <avx2intrin.h> is detected. While this is not allowed to be included directly, it still appears in the builtin include path and is detectable with __has_include.
See also
XXH_AVX2

◆ XXH_DISPATCH_AVX512

#define XXH_DISPATCH_AVX512   0

Enables/disables dispatching for AVX512.

Automatically detected if one of the following conditions is met:

  • GCC 4.9 and later are known to support AVX512.
  • Visual Studio 2017 and later are known to support AVX2.
  • The GCC/Clang internal header <avx512fintrin.h> is detected. While this is not allowed to be included directly, it still appears in the builtin include path and is detectable with __has_include.
See also
XXH_AVX512

◆ XXH_DISPATCH_SCALAR

#define XXH_DISPATCH_SCALAR   1

Enables/dispatching the scalar code path.

If this is defined to 0, SSE2 support is assumed. This reduces code size when the scalar path is not needed.

This is automatically defined to 0 when...

  • SSE2 support is enabled in the compiler
  • Targeting x86_64
  • Targeting Android x86
  • Targeting macOS

◆ XXH_HAS_INCLUDE

#define XXH_HAS_INCLUDE ( header)
Value:
0

◆ XXH_I_ATT

#define XXH_I_ATT ( intel,
att )
Value:
"{" att "|" intel "}\n\t"

◆ XXH_INLINE_ALL

#define XXH_INLINE_ALL

◆ XXH_NB_DISPATCHES

#define XXH_NB_DISPATCHES   4

◆ XXH_OSXSAVE_CPUID_MASK

#define XXH_OSXSAVE_CPUID_MASK   ((1 << 26) | (1 << 27))

◆ XXH_SSE2_CPUID_MASK

#define XXH_SSE2_CPUID_MASK   (1 << 26)

◆ XXH_X86DISPATCH

#define XXH_X86DISPATCH

Typedef Documentation

◆ XXH3_dispatchx86_hashLong128_default

typedef XXH128_hash_t(* XXH3_dispatchx86_hashLong128_default) (const void *XXH_RESTRICT, size_t)

◆ XXH3_dispatchx86_hashLong128_withSecret

typedef XXH128_hash_t(* XXH3_dispatchx86_hashLong128_withSecret) (const void *XXH_RESTRICT, size_t, const void *XXH_RESTRICT, size_t)

◆ XXH3_dispatchx86_hashLong128_withSeed

typedef XXH128_hash_t(* XXH3_dispatchx86_hashLong128_withSeed) (const void *XXH_RESTRICT, size_t, XXH64_hash_t)

◆ XXH3_dispatchx86_hashLong64_default

typedef XXH64_hash_t(* XXH3_dispatchx86_hashLong64_default) (const void *XXH_RESTRICT, size_t)

◆ XXH3_dispatchx86_hashLong64_withSecret

typedef XXH64_hash_t(* XXH3_dispatchx86_hashLong64_withSecret) (const void *XXH_RESTRICT, size_t, const void *XXH_RESTRICT, size_t)

◆ XXH3_dispatchx86_hashLong64_withSeed

typedef XXH64_hash_t(* XXH3_dispatchx86_hashLong64_withSeed) (const void *XXH_RESTRICT, size_t, XXH64_hash_t)

◆ XXH3_dispatchx86_update

typedef XXH_errorcode(* XXH3_dispatchx86_update) (XXH3_state_t *, const void *, size_t)

Function Documentation

◆ XXH3_128bits_dispatch()

XXH128_hash_t XXH3_128bits_dispatch ( const void * input,
size_t len )

◆ XXH3_128bits_update_dispatch()

XXH_errorcode XXH3_128bits_update_dispatch ( XXH3_state_t * state,
const void * input,
size_t len )

◆ XXH3_128bits_withSecret_dispatch()

XXH128_hash_t XXH3_128bits_withSecret_dispatch ( const void * input,
size_t len,
const void * secret,
size_t secretLen )

◆ XXH3_128bits_withSeed_dispatch()

XXH128_hash_t XXH3_128bits_withSeed_dispatch ( const void * input,
size_t len,
XXH64_hash_t seed )

◆ XXH3_64bits_dispatch()

XXH64_hash_t XXH3_64bits_dispatch ( const void * input,
size_t len )

◆ XXH3_64bits_update_dispatch()

XXH_errorcode XXH3_64bits_update_dispatch ( XXH3_state_t * state,
const void * input,
size_t len )

◆ XXH3_64bits_withSecret_dispatch()

XXH64_hash_t XXH3_64bits_withSecret_dispatch ( const void * input,
size_t len,
const void * secret,
size_t secretLen )

◆ XXH3_64bits_withSeed_dispatch()

XXH64_hash_t XXH3_64bits_withSeed_dispatch ( const void * input,
size_t len,
XXH64_hash_t seed )

◆ XXH3_hashLong_128b_defaultSecret_selection()

static XXH128_hash_t XXH3_hashLong_128b_defaultSecret_selection ( const void * input,
size_t len,
XXH64_hash_t seed64,
const void * secret,
size_t secretLen )
static

◆ XXH3_hashLong_128b_withSecret_selection()

static XXH128_hash_t XXH3_hashLong_128b_withSecret_selection ( const void * input,
size_t len,
XXH64_hash_t seed64,
const void * secret,
size_t secretLen )
static

◆ XXH3_hashLong_128b_withSeed_selection()

static XXH128_hash_t XXH3_hashLong_128b_withSeed_selection ( const void * input,
size_t len,
XXH64_hash_t seed64,
const void * secret,
size_t secretLen )
static

◆ XXH3_hashLong_64b_defaultSecret_selection()

static XXH64_hash_t XXH3_hashLong_64b_defaultSecret_selection ( const void * input,
size_t len,
XXH64_hash_t seed64,
const xxh_u8 * secret,
size_t secretLen )
static

◆ XXH3_hashLong_64b_withSecret_selection()

static XXH64_hash_t XXH3_hashLong_64b_withSecret_selection ( const void * input,
size_t len,
XXH64_hash_t seed64,
const xxh_u8 * secret,
size_t secretLen )
static

◆ XXH3_hashLong_64b_withSeed_selection()

static XXH64_hash_t XXH3_hashLong_64b_withSeed_selection ( const void * input,
size_t len,
XXH64_hash_t seed64,
const xxh_u8 * secret,
size_t secretLen )
static

◆ XXH_cpuid()

static void XXH_cpuid ( xxh_u32 eax,
xxh_u32 ecx,
xxh_u32 * abcd )
static

◆ XXH_featureTest()

static int XXH_featureTest ( void )
static

◆ XXH_setDispatch()

static void XXH_setDispatch ( void )
static

Variable Documentation

◆ XXH_g_dispatch

XXH_dispatchFunctions_s XXH_g_dispatch = { NULL, NULL, NULL, NULL }
static

◆ XXH_g_dispatch128

XXH_dispatch128Functions_s XXH_g_dispatch128 = { NULL, NULL, NULL, NULL }
static

◆ XXH_kDispatch

const XXH_dispatchFunctions_s XXH_kDispatch[XXH_NB_DISPATCHES]
static
Initial value:
= {
{ XXHL64_default_scalar, XXHL64_seed_scalar, XXHL64_secret_scalar, XXH3_update_scalar },
{ XXHL64_default_sse2, XXHL64_seed_sse2, XXHL64_secret_sse2, XXH3_update_sse2 },
{ NULL, NULL, NULL, NULL },
{ NULL, NULL, NULL, NULL }
}

◆ XXH_kDispatch128

const XXH_dispatch128Functions_s XXH_kDispatch128[XXH_NB_DISPATCHES]
static
Initial value:
= {
{ XXHL128_default_scalar, XXHL128_seed_scalar, XXHL128_secret_scalar, XXH3_update_scalar },
{ XXHL128_default_sse2, XXHL128_seed_sse2, XXHL128_secret_sse2, XXH3_update_sse2 },
{ NULL, NULL, NULL, NULL },
{ NULL, NULL, NULL, NULL }
}