Module Name: src Committed By: riastradh Date: Mon Aug 17 16:26:02 UTC 2020
Modified Files: src/tests/sys/crypto/aes: Makefile t_aes.c src/tests/sys/crypto/chacha: Makefile t_chacha.c Log Message: Make the AES and ChaCha NEON tests work in softfloat userland. (`Softfloat' here refers to the ABI, which of course may be running on a CPU with NEON.) To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/tests/sys/crypto/aes/Makefile cvs rdiff -u -r1.3 -r1.4 src/tests/sys/crypto/aes/t_aes.c cvs rdiff -u -r1.4 -r1.5 src/tests/sys/crypto/chacha/Makefile cvs rdiff -u -r1.3 -r1.4 src/tests/sys/crypto/chacha/t_chacha.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/tests/sys/crypto/aes/Makefile diff -u src/tests/sys/crypto/aes/Makefile:1.4 src/tests/sys/crypto/aes/Makefile:1.5 --- src/tests/sys/crypto/aes/Makefile:1.4 Sun Aug 16 15:52:14 2020 +++ src/tests/sys/crypto/aes/Makefile Mon Aug 17 16:26:02 2020 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.4 2020/08/16 15:52:14 martin Exp $ +# $NetBSD: Makefile,v 1.5 2020/08/17 16:26:02 riastradh Exp $ .include <bsd.own.mk> @@ -19,7 +19,7 @@ SRCS.t_aes+= aes_ct_dec.c SRCS.t_aes+= aes_ct_enc.c SRCS.t_aes+= aes_selftest.c -.if !empty(MACHINE_ARCH:Mearmv7hf*) || !empty(MACHINE_ARCH:Maarch64*) +.if !empty(MACHINE_ARCH:Mearmv7*) || !empty(MACHINE_ARCH:Maarch64*) .PATH: ${NETBSDSRCDIR}/sys/crypto/aes/arch/arm CPPFLAGS+= -I${NETBSDSRCDIR}/sys/crypto/aes/arch/arm @@ -32,10 +32,16 @@ SRCS.t_aes+= aes_armv8_64.S SRCS.t_aes+= aes_neon.c SRCS.t_aes+= aes_neon_impl.c SRCS.t_aes+= aes_neon_subr.c -.if !empty(MACHINE_ARCH:Mearmv7hf*) +.if !empty(MACHINE_ARCH:Mearmv7*) SRCS.t_aes+= aes_neon_32.S .endif +.if !empty(MACHINE_ARCH:Mearmv7*) && empty(MACHINE_ARCH:Mearmv7hf*) +COPTS.aes_neon.c+= -mfloat-abi=softfp -mfpu=neon +COPTS.aes_neon_subr.c+= -mfloat-abi=softfp -mfpu=neon +AOPTS.aes_neon_32.S+= -D__SOFTFP__ +.endif + .endif # earmv7/aarch64 .if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64" Index: src/tests/sys/crypto/aes/t_aes.c diff -u src/tests/sys/crypto/aes/t_aes.c:1.3 src/tests/sys/crypto/aes/t_aes.c:1.4 --- src/tests/sys/crypto/aes/t_aes.c:1.3 Sun Jul 26 14:01:14 2020 +++ src/tests/sys/crypto/aes/t_aes.c Mon Aug 17 16:26:02 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: t_aes.c,v 1.3 2020/07/26 14:01:14 riastradh Exp $ */ +/* $NetBSD: t_aes.c,v 1.4 2020/08/17 16:26:02 riastradh Exp $ */ /*- * Copyright (c) 2020 The NetBSD Foundation, Inc. @@ -43,7 +43,7 @@ #include <crypto/aes/arch/arm/aes_armv8.h> #endif -#ifdef __ARM_NEON +#if __ARM_ARCH >= 7 #include <crypto/aes/arch/arm/aes_neon.h> #endif @@ -93,7 +93,7 @@ ATF_TC_BODY(name, tc) \ AES_SELFTEST(aes_armv8_selftest, &aes_armv8_impl, "ARMv8.0-AES self-test") #endif -#ifdef __ARM_NEON +#if __ARM_ARCH >= 7 AES_SELFTEST(aes_neon_selftest, &aes_neon_impl, "ARM NEON vpaes self-test") #endif @@ -118,7 +118,7 @@ ATF_TP_ADD_TCS(tp) ATF_TP_ADD_TC(tp, aes_armv8_selftest); #endif -#ifdef __ARM_NEON +#if __ARM_ARCH >= 7 ATF_TP_ADD_TC(tp, aes_neon_selftest); #endif Index: src/tests/sys/crypto/chacha/Makefile diff -u src/tests/sys/crypto/chacha/Makefile:1.4 src/tests/sys/crypto/chacha/Makefile:1.5 --- src/tests/sys/crypto/chacha/Makefile:1.4 Sun Aug 16 15:52:14 2020 +++ src/tests/sys/crypto/chacha/Makefile Mon Aug 17 16:26:02 2020 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.4 2020/08/16 15:52:14 martin Exp $ +# $NetBSD: Makefile,v 1.5 2020/08/17 16:26:02 riastradh Exp $ .include <bsd.own.mk> @@ -16,19 +16,24 @@ SRCS.t_chacha+= t_chacha.c SRCS.t_chacha+= chacha_ref.c SRCS.t_chacha+= chacha_selftest.c -.if !empty(MACHINE_ARCH:Mearmv7hf*) || !empty(MACHINE_ARCH:Maarch64*) +.if !empty(MACHINE_ARCH:Mearmv7*) || !empty(MACHINE_ARCH:Maarch64*) .PATH: ${NETBSDSRCDIR}/sys/crypto/chacha/arch/arm CPPFLAGS+= -I${NETBSDSRCDIR}/sys/crypto/chacha/arch/arm SRCS.t_chacha+= chacha_neon.c -.if !empty(MACHINE_ARCH:Mearmv7hf*) +.if !empty(MACHINE_ARCH:Mearmv7*) SRCS.t_chacha+= chacha_neon_32.S .elif !empty(MACHINE_ARCH:Maarch64*) SRCS.t_chacha+= chacha_neon_64.S .endif SRCS.t_chacha+= chacha_neon_impl.c +.if !empty(MACHINE_ARCH:Mearmv7*) && empty(MACHINE_ARCH:Mearmv7hf*) +COPTS.chacha_neon.c+= -mfloat-abi=softfp -mfpu=neon +AOPTS.chacha_neon_32.S+= -D__SOFTFP__ +.endif + .endif # earmv7 or aarch64 .if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64" Index: src/tests/sys/crypto/chacha/t_chacha.c diff -u src/tests/sys/crypto/chacha/t_chacha.c:1.3 src/tests/sys/crypto/chacha/t_chacha.c:1.4 --- src/tests/sys/crypto/chacha/t_chacha.c:1.3 Mon Jul 27 20:59:53 2020 +++ src/tests/sys/crypto/chacha/t_chacha.c Mon Aug 17 16:26:02 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: t_chacha.c,v 1.3 2020/07/27 20:59:53 riastradh Exp $ */ +/* $NetBSD: t_chacha.c,v 1.4 2020/08/17 16:26:02 riastradh Exp $ */ /*- * Copyright (c) 2020 The NetBSD Foundation, Inc. @@ -35,7 +35,7 @@ #include <crypto/chacha/arch/x86/chacha_sse2.h> #endif -#ifdef __ARM_NEON +#if __ARM_ARCH >= 7 #include <crypto/chacha/arch/arm/chacha_neon.h> #endif @@ -81,7 +81,7 @@ ATF_TC_BODY(name, tc) \ atf_tc_fail("%s self-test failed", (impl)->ci_name); \ } -#ifdef __ARM_NEON +#if __ARM_ARCH >= 7 CHACHA_SELFTEST(chacha_neon_selftest, &chacha_neon_impl, "ARM NEON ChaCha self-test") #endif @@ -96,7 +96,7 @@ ATF_TP_ADD_TCS(tp) ATF_TP_ADD_TC(tp, chacha_ref_selftest); -#ifdef __ARM_NEON +#if __ARM_ARCH >= 7 ATF_TP_ADD_TC(tp, chacha_neon_selftest); #endif