gh-123189: [`Modules/blake2module.c`]: Move function definitions and their usage under the macros (#123190)

This commit is contained in:
Kirill Podoprigora 2024-08-30 13:28:32 +03:00 committed by GitHub
parent f8a736b8e1
commit 8aaf7525ab
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 8 additions and 0 deletions

View File

@ -104,15 +104,19 @@ void detect_cpu_features(cpu_flags *flags) {
}
}
#ifdef HACL_CAN_COMPILE_SIMD128
static inline bool has_simd128(cpu_flags *flags) {
// For now this is Intel-only, could conceivably be #ifdef'd to something
// else.
return flags->sse && flags->sse2 && flags->sse3 && flags->sse41 && flags->sse42 && flags->cmov;
}
#endif
#ifdef HACL_CAN_COMPILE_SIMD256
static inline bool has_simd256(cpu_flags *flags) {
return flags->avx && flags->avx2;
}
#endif
// Small mismatch between the variable names Python defines as part of configure
// at the ones HACL* expects to be set in order to enable those headers.
@ -151,6 +155,7 @@ blake2_get_state(PyObject *module)
return (Blake2State *)state;
}
#if defined(HACL_CAN_COMPILE_SIMD128) || defined(HACL_CAN_COMPILE_SIMD256)
static inline Blake2State*
blake2_get_state_from_type(PyTypeObject *module)
{
@ -158,6 +163,7 @@ blake2_get_state_from_type(PyTypeObject *module)
assert(state != NULL);
return (Blake2State *)state;
}
#endif
static struct PyMethodDef blake2mod_functions[] = {
{NULL, NULL}
@ -311,7 +317,9 @@ static inline bool is_blake2s(blake2_impl impl) {
}
static inline blake2_impl type_to_impl(PyTypeObject *type) {
#if defined(HACL_CAN_COMPILE_SIMD128) || defined(HACL_CAN_COMPILE_SIMD256)
Blake2State* st = blake2_get_state_from_type(type);
#endif
if (!strcmp(type->tp_name, blake2b_type_spec.name)) {
#ifdef HACL_CAN_COMPILE_SIMD256
if (has_simd256(&st->flags))