diff --git a/GNUmakefile-cross b/GNUmakefile-cross index ba4b7174..16140b41 100755 --- a/GNUmakefile-cross +++ b/GNUmakefile-cross @@ -251,6 +251,7 @@ ifeq ($(IS_ARMv7),1) GCM_FLAG = -march=armv7-a ARIA_FLAG = -march=armv7-a BLAKE2_FLAG = -march=armv7-a + CHACHA_FLAG = -march=armv7-a LEA_FLAG = -march=armv7-a endif endif @@ -262,6 +263,7 @@ ifeq ($(IS_NEON),1) GCM_FLAG += -mfpu=neon ARIA_FLAG += -mfpu=neon BLAKE2_FLAG += -mfpu=neon + CHACHA_FLAG += -mfpu=neon LEA_FLAG += -mfpu=neon SIMECK_FLAG += -mfpu=neon SIMON64_FLAG += -mfpu=neon @@ -274,6 +276,7 @@ ifeq ($(IS_NEON),1) GCM_FLAG += -mfloat-abi=softfp ARIA_FLAG += -mfloat-abi=softfp BLAKE2_FLAG += -mfloat-abi=softfp + CHACHA_FLAG += -mfloat-abi=softfp LEA_FLAG += -mfloat-abi=softfp SIMECK_FLAG += -mfloat-abi=softfp SIMON64_FLAG += -mfloat-abi=softfp @@ -291,6 +294,7 @@ ifneq ($(IS_ARMv8),0) ifeq ($(IS_NEON),1) ARIA_FLAG = -march=armv8-a BLAKE2_FLAG = -march=armv8-a + CHACHA_FLAG = -march=armv8-a LEA_FLAG = -march=armv8-a NEON_FLAG = -march=armv8-a SIMECK_FLAG = -march=armv8-a @@ -317,6 +321,11 @@ endif # i686 and x86_64 ifneq ($(IS_i686)$(IS_x86_64),00) +# SSE2 is a core feature of x86_64 +ifeq ($(findstring -DCRYPTOPP_DISABLE_ASM,$(CXXFLAGS)),) + SSE_FLAG = -msse2 + CHACHA_FLAG = -msse2 +endif HAVE_SSSE3 = $(shell $(CXX) $(CXXFLAGS) -DADHOC_MAIN -mssse3 -dM -E adhoc.cpp 2>&1 | $(EGREP) -i -c __SSSE3__) ifeq ($(HAVE_SSSE3),1) ARIA_FLAG = -mssse3 @@ -570,6 +579,10 @@ aria-simd.o : aria-simd.cpp blake2-simd.o : blake2-simd.cpp $(CXX) $(strip $(CXXFLAGS) $(BLAKE2_FLAG) -c) $< +# SSE2 or NEON available +chacha-simd.o : chacha-simd.cpp + $(CXX) $(strip $(CXXFLAGS) $(CHACHA_FLAG) -c) $< + # SSSE3 available cham-simd.o : cham-simd.cpp $(CXX) $(strip $(CXXFLAGS) $(CHAM_FLAG) -c) $<