Fix ARM compile for sm4-simd.cpp

This commit is contained in:
Jeffrey Walton 2018-07-13 10:39:08 -04:00
parent 380829284c
commit 26ae1fb7e9
No known key found for this signature in database
GPG Key ID: B36AB348921B1838
3 changed files with 14 additions and 3 deletions

View File

@ -394,6 +394,7 @@ ifeq ($(IS_NEON),1)
SIMECK_FLAG = -march=armv7-a -mfloat-abi=$(FP_ABI) -mfpu=neon
SIMON_FLAG = -march=armv7-a -mfloat-abi=$(FP_ABI) -mfpu=neon
SPECK_FLAG = -march=armv7-a -mfloat-abi=$(FP_ABI) -mfpu=neon
SM4_FLAG = -march=armv7-a -mfloat-abi=$(FP_ABI) -mfpu=neon
endif
endif
@ -408,6 +409,7 @@ ifeq ($(IS_ARMV8),1)
SIMECK_FLAG = -march=armv8-a
SIMON_FLAG = -march=armv8-a
SPECK_FLAG = -march=armv8-a
SM4_FLAG = -march=armv8-a
endif
HAVE_CRC = $(shell echo | $(CXX) -x c++ $(CXXFLAGS) -march=armv8-a+crc -dM -E - 2>/dev/null | $(GREP) -i -c __ARM_FEATURE_CRC32)
ifeq ($(HAVE_CRC),1)
@ -419,6 +421,10 @@ ifeq ($(IS_ARMV8),1)
GCM_FLAG = -march=armv8-a+crypto
SHA_FLAG = -march=armv8-a+crypto
endif
HAVE_CRYPTO = $(shell echo | $(CXX) -x c++ $(CXXFLAGS) -march=armv8.4-a+crypto -dM -E - 2>/dev/null | $(GREP) -i -c __ARM_FEATURE_CRYPTO)
ifeq ($(HAVE_CRYPTO),1)
SM4_FLAG = -march=armv8.4-a+crypto
endif
endif
# PowerPC and PowerPC-64

View File

@ -276,6 +276,10 @@ ifneq ($(IS_ARMv8),0)
GCM_FLAG = -march=armv8-a+crypto
SHA_FLAG = -march=armv8-a+crypto
endif
HAVE_CRYPTO := $(shell echo | $(CXX) -x c++ $(CXXFLAGS) -march=armv8.4-a+crypto -dM -E - 2>/dev/null | $(EGREP) -i -c __ARM_FEATURE_CRYPTO)
ifeq ($(HAVE_CRYPTO),1)
SM4_FLAG = -march=armv8.4-a+crypto
endif
endif
# i686 and x86_64

View File

@ -6,8 +6,9 @@
// source file is needed because additional CXXFLAGS are required to enable
// the appropriate instructions sets in some build configurations.
//
// Based on Markku-Juhani O. Saarinen work at https://github.com/mjosaarinen/sm4ni.
// AES-NI based on Markku-Juhani O. Saarinen work at https://github.com/mjosaarinen/sm4ni.
//
// ARMv8 is upcoming.
#include "pch.h"
#include "config.h"
@ -25,7 +26,7 @@
# include <wmmintrin.h>
#endif
#if (CRYPTOPP_ARM_NEON_AVAILABLE)
#if (CRYPTOPP_ARM_NEON_AVAILABLE) && 0
# include <arm_neon.h>
#endif
@ -329,7 +330,7 @@ size_t SM4_Enc_AdvancedProcessBlocks_AESNI(const word32* subKeys, size_t rounds,
}
#endif // CRYPTOPP_AESNI_AVAILABLE
#if defined(CRYPTOPP_ARM_NEON_AVAILABLE)
#if defined(CRYPTOPP_ARM_NEON_AVAILABLE) && 0
size_t SM4_Enc_AdvancedProcessBlocks_NEON(const word32* subKeys, size_t rounds,
const byte *inBlocks, const byte *xorBlocks, byte *outBlocks, size_t length, word32 flags)
{