Update ARM recipes
parent
d9288fa870
commit
42de69d883
35
GNUmakefile
35
GNUmakefile
|
|
@ -56,7 +56,7 @@ IS_PPC64 := $(shell echo "$(HOSTX)" | $(GREP) -i -c -E 'ppc64|powerpc64|power64'
|
|||
IS_SPARC32 := $(shell echo "$(HOSTX)" | $(GREP) -v "64" | $(GREP) -i -c -E 'sun|sparc')
|
||||
IS_SPARC64 := $(shell echo "$(HOSTX)" | $(GREP) -i -c -E 'sun|sparc64')
|
||||
IS_ARM32 := $(shell echo "$(HOSTX)" | $(GREP) -i -c -E 'arm|armhf|arm7l|eabihf')
|
||||
IS_ARMV8 := $(shell echo "$(HOSTX)" | $(GREP) -i -c -E 'aarch32|aarch64')
|
||||
IS_ARMV8 := $(shell echo "$(HOSTX)" | $(GREP) -i -c -E 'aarch32|aarch64|arm64|armv8')
|
||||
|
||||
IS_NEON := $(shell $(CXX) $(CXXFLAGS) -dumpmachine 2>/dev/null | $(GREP) -i -c -E 'armv7|armhf|arm7l|eabihf|armv8|aarch32|aarch64')
|
||||
|
||||
|
|
@ -527,15 +527,22 @@ ifeq ($(IS_ARMV8),1)
|
|||
CXXFLAGS += -DCRYPTOPP_ARM_SHA_AVAILABLE=0
|
||||
endif
|
||||
|
||||
ifneq ($(AES_FLAG),)
|
||||
TPROG = TestPrograms/test_crypto_v84.cxx
|
||||
TOPT = -march=armv8.4-a+crypto
|
||||
HAVE_OPT = $(shell $(CXX) $(CXXFLAGS) $(ACLE_FLAG) $(ZOPT) $(TOPT) $(TPROG) -o $(TOUT) 2>&1 | tr ' ' '\n' | wc -l)
|
||||
ifeq ($(strip $(HAVE_OPT)),0)
|
||||
SM3_FLAG = -march=armv8.4-a+crypto
|
||||
SM4_FLAG = -march=armv8.4-a+crypto
|
||||
endif
|
||||
TPROG = TestPrograms/test_arm_sm3.cxx
|
||||
TOPT = -march=armv8.4-a+crypto
|
||||
HAVE_OPT = $(shell $(CXX) $(CXXFLAGS) $(ACLE_FLAG) $(ZOPT) $(TOPT) $(TPROG) -o $(TOUT) 2>&1 | tr ' ' '\n' | wc -l)
|
||||
ifeq ($(strip $(HAVE_OPT)),0)
|
||||
SM3_FLAG = -march=armv8.4-a+crypto
|
||||
SM4_FLAG = -march=armv8.4-a+crypto
|
||||
endif
|
||||
|
||||
TPROG = TestPrograms/test_arm_sha3.cxx
|
||||
TOPT = -march=armv8.4-a+crypto
|
||||
HAVE_OPT = $(shell $(CXX) $(CXXFLAGS) $(ACLE_FLAG) $(ZOPT) $(TOPT) $(TPROG) -o $(TOUT) 2>&1 | tr ' ' '\n' | wc -l)
|
||||
ifeq ($(strip $(HAVE_OPT)),0)
|
||||
SHA3_FLAG = -march=armv8.4-a+crypto
|
||||
endif
|
||||
|
||||
# ASIMD_FLAG
|
||||
endif
|
||||
|
||||
# IS_ARMV8
|
||||
|
|
@ -1020,10 +1027,11 @@ INCL += resource.h
|
|||
endif
|
||||
|
||||
# Cryptogams AES for ARMv4 and above. We couple to ARMv7.
|
||||
# Avoid iOS. It cannot consume the assembly.
|
||||
ifeq ($(IS_ARM32),1)
|
||||
CRYPTOGAMS_AES_FLAG = -march=armv7-a
|
||||
CRYPTOGAMS_AES_FLAG += -Wa,--noexecstack
|
||||
SRCS += aes_armv4.S
|
||||
CRYPTOGAMS_AES_FLAG = -march=armv7-a
|
||||
CRYPTOGAMS_AES_FLAG += -Wa,--noexecstack
|
||||
SRCS += aes_armv4.S
|
||||
endif
|
||||
|
||||
# List cryptlib.cpp first, then cpu.cpp, then integer.cpp to tame C++ static initialization problems.
|
||||
|
|
@ -1449,6 +1457,9 @@ rijndael_simd.o : rijndael_simd.cpp
|
|||
sha_simd.o : sha_simd.cpp
|
||||
$(CXX) $(strip $(CXXFLAGS) $(SHA_FLAG) -c) $<
|
||||
|
||||
sha3_simd.o : sha3_simd.cpp
|
||||
$(CXX) $(strip $(CXXFLAGS) $(SHA3_FLAG) -c) $<
|
||||
|
||||
# SSE4.2/SHA-NI or ARMv8a available
|
||||
shacal2_simd.o : shacal2_simd.cpp
|
||||
$(CXX) $(strip $(CXXFLAGS) $(SHA_FLAG) -c) $<
|
||||
|
|
|
|||
|
|
@ -10,11 +10,6 @@
|
|||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
// SM4 block cipher
|
||||
uint32x4_t x;
|
||||
x=vsm4ekeyq_u32(x,x);
|
||||
x=vsm4eq_u32(x,x);
|
||||
|
||||
// SM3 hash
|
||||
uint32x4_t y;
|
||||
y=vsm3ss1q_u32(x,y,y);
|
||||
|
|
@ -24,6 +19,5 @@ int main(int argc, char* argv[])
|
|||
y=vsm3tt2bq_u32(x,y,y,3);
|
||||
y=vsm3partw1q_u32(x,y,y);
|
||||
y=vsm3partw2q_u32(x,y,y);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,16 +14,5 @@ int main(int argc, char* argv[])
|
|||
uint32x4_t x;
|
||||
x=vsm4ekeyq_u32(x,x);
|
||||
x=vsm4eq_u32(x,x);
|
||||
|
||||
// SM3 hash
|
||||
uint32x4_t y;
|
||||
y=vsm3ss1q_u32(x,y,y);
|
||||
y=vsm3tt1aq_u32(x,y,y,3);
|
||||
y=vsm3tt1bq_u32(x,y,y,1);
|
||||
y=vsm3tt2aq_u32(x,y,y,2);
|
||||
y=vsm3tt2bq_u32(x,y,y,3);
|
||||
y=vsm3partw1q_u32(x,y,y);
|
||||
y=vsm3partw2q_u32(x,y,y);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue