diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index 3de2b16c004689f51c6df75cf49b655a47ccf205..42a6116a14dee5b4fb647fc9a62602df6adeeb1f 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -45,47 +45,47 @@ else() if(NOT CMAKE_ASM_NASM_COMPILER_LOADED) message(FATAL_ERROR "Can't find assembler") endif() -endif() -set(NASM_VERSION_REQUIRED "2.14") -set(NASM_VERSION_AVX_IFMA "2.16") -set(NASM_VERSION_SMX_NI "2.16.02") + set(NASM_VERSION_REQUIRED "2.14") + set(NASM_VERSION_AVX_IFMA "2.16") + set(NASM_VERSION_SMX_NI "2.16.02") -execute_process( - COMMAND ${CMAKE_ASM_NASM_COMPILER} -v - OUTPUT_VARIABLE NASM_VERSION_OUTPUT - OUTPUT_STRIP_TRAILING_WHITESPACE) -string(REGEX MATCH "NASM version ([0-9]*.[0-9]*.[0-9]*)" NASM_VERSION - "${NASM_VERSION_OUTPUT}") -if(NASM_VERSION) - if(NASM_VERSION_REQUIRED VERSION_GREATER ${CMAKE_MATCH_1}) - message( - FATAL_ERROR "NASM version must be at least ${NASM_VERSION_REQUIRED}!") - endif() - message(STATUS "NASM version: ${CMAKE_MATCH_1}") - if(NASM_VERSION_AVX_IFMA VERSION_GREATER ${CMAKE_MATCH_1}) - message( - NOTICE - "Minimum required NASM version for AVX-IFMA: ${NASM_VERSION_AVX_IFMA}. AVX-IFMA code not compiled - update NASM." - ) + execute_process( + COMMAND ${CMAKE_ASM_NASM_COMPILER} -v + OUTPUT_VARIABLE NASM_VERSION_OUTPUT + OUTPUT_STRIP_TRAILING_WHITESPACE) + string(REGEX MATCH "NASM version ([0-9]*.[0-9]*.[0-9]*)" NASM_VERSION + "${NASM_VERSION_OUTPUT}") + if(NASM_VERSION) + if(NASM_VERSION_REQUIRED VERSION_GREATER ${CMAKE_MATCH_1}) + message( + FATAL_ERROR "NASM version must be at least ${NASM_VERSION_REQUIRED}!") + endif() + message(STATUS "NASM version: ${CMAKE_MATCH_1}") + if(NASM_VERSION_AVX_IFMA VERSION_GREATER ${CMAKE_MATCH_1}) + message( + NOTICE + "Minimum required NASM version for AVX-IFMA: ${NASM_VERSION_AVX_IFMA}. AVX-IFMA code not compiled - update NASM." + ) + else() + # AVX IFMA supported by NASM + set(AVX_IFMA 1) + endif() + if(NASM_VERSION_SMX_NI VERSION_GREATER ${CMAKE_MATCH_1}) + message( + NOTICE + "Minimum required NASM version for SM3/SM4/SHA512-NI: ${NASM_VERSION_SMX_NI}. SM3/SM4/SHA512-NI code not compiled - update NASM." + ) + else() + # SM3/SM4/SHA512-NI supported by NASM + set(SMX_NI 1) + endif() else() - # AVX IFMA supported by NASM - set(AVX_IFMA 1) - endif() - if(NASM_VERSION_SMX_NI VERSION_GREATER ${CMAKE_MATCH_1}) message( - NOTICE - "Minimum required NASM version for SM3/SM4/SHA512-NI: ${NASM_VERSION_SMX_NI}. SM3/SM4/SHA512-NI code not compiled - update NASM." + WARNING + "Could not parse NASM version string: ${NASM_VERSION_OUTPUT}.\nPlease, be sure that ${CMAKE_ASM_NASM_COMPILER} version is >= ${NASM_VERSION_REQUIRED}" ) - else() - # SM3/SM4/SHA512-NI supported by NASM - set(SMX_NI 1) endif() -else() - message( - WARNING - "Could not parse NASM version string: ${NASM_VERSION_OUTPUT}.\nPlease, be sure that ${CMAKE_ASM_NASM_COMPILER} version is >= ${NASM_VERSION_REQUIRED}" - ) endif() set(CAN_USE_ASSEMBLER 1) diff --git a/lib/Makefile b/lib/Makefile index 5d377933306e9691eaa11c200a57a4ef39906025..6e72060c314bc550a2e9f36c17b70835ee5067ba 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -109,7 +109,6 @@ ifneq ($(NASM_IFMA_GE_REQ),true) $(warning Minimum required NASM version for AVX-IFMA: $(NASM_MAJOR_AVX_IFMA).$(NASM_MINOR_AVX_IFMA). AVX-IFMA code not compiled - update NASM.) AVX_IFMA := n endif # NASM_AVX_IFMA_GET_REQ -endif # x86_64 # Minimum version of NASM with SM3/SM4/SHA512-NI support: 2.16.02 SMX_NI := y @@ -123,6 +122,7 @@ ifneq ($(NASM_SMX_GE_REQ),true) $(warning Minimum required NASM version for SM3/SM4/SHA512-NI: $(NASM_MAJOR_SMX_NI).$(NASM_MINOR_SMX_NI).$(NASM_REV_SMX_NI) SM3/SM4/SHA512-NI code not compiled - update NASM.) SMX_NI := n endif # NASM_SMX_NI_GET_REQ +endif # x86_64 INCLUDE_DIRS := include . no-aesni INCLUDES := $(foreach i,$(INCLUDE_DIRS),-I $i) diff --git a/lib/include/mb_mgr_burst.h b/lib/include/mb_mgr_burst.h index 1102c593d3f8aa2f70493fc877cf432366acd865..94eccebe1bab5448b953aea3029f6dd38d2223e9 100644 --- a/lib/include/mb_mgr_burst.h +++ b/lib/include/mb_mgr_burst.h @@ -970,6 +970,7 @@ submit_burst_sha_x(IMB_MGR *state, IMB_JOB *jobs, const uint32_t n_jobs, const i return completed_jobs; } +#ifndef __aarch64__ __forceinline uint32_t submit_aes_cmac_burst(IMB_MGR *state, IMB_JOB *jobs, const uint32_t n_jobs, const int run_check, const IMB_HASH_ALG hash_alg) @@ -1052,6 +1053,7 @@ submit_aes_cmac_burst(IMB_MGR *state, IMB_JOB *jobs, const uint32_t n_jobs, cons return completed_jobs; } +#endif /* __aarch64__ */ __forceinline uint32_t submit_hash_burst_and_check(IMB_MGR *state, IMB_JOB *jobs, const uint32_t n_jobs,