You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ARM32 assembly: Get CPU Id flags to choose assembly.
Added flag determination for Linux/Android/BSD/Windows/privilege-mode.
Made AES and SHA-256 runtime dispatch.
Updated the ARM32 assembly to support having multiple implementations compiled
in.
# Both SHA3 and SHA512 instructions available with ARMV8.2-a
3922
3924
AC_ARG_ENABLE([armasm],
3923
-
[AS_HELP_STRING([--enable-armasm],[Enable wolfSSL ARMv8 ASM support (default: disabled). Set to sha512-crypto or sha3-crypto to use SHA512 and SHA3 instructions with Aarch64 CPU.])],
3925
+
[AS_HELP_STRING([--enable-armasm],[Enable wolfSSL ARMv8 ASM support (default: disabled). Set to sha512-crypto or sha3-crypto to use SHA512 and SHA3 instructions with Aarch64 CPU. On 32-bit ARM, no-base and no-neon-impl drop the base/NEON run-time fallbacks when the crypto extension is always present.])],
3924
3926
[ ENABLED_ARMASM=$enableval ],
3925
3927
[ ENABLED_ARMASM=no ]
3926
3928
)
@@ -4025,13 +4027,33 @@ then
4025
4027
esac
4026
4028
ENABLED_ARMASM_AES_BLOCK_INLINE=yes
4027
4029
;;
4030
+
no-base)
4031
+
case $host_cpu in
4032
+
*arm*)
4033
+
;;
4034
+
*)
4035
+
AC_MSG_ERROR([no-base option only available on 32-bit ARM CPU.])
4036
+
break;;
4037
+
esac
4038
+
ENABLED_ARMASM_NO_BASE_IMPL=yes
4039
+
;;
4040
+
no-neon-impl)
4041
+
case $host_cpu in
4042
+
*arm*)
4043
+
;;
4044
+
*)
4045
+
AC_MSG_ERROR([no-neon-impl option only available on 32-bit ARM CPU.])
4046
+
break;;
4047
+
esac
4048
+
ENABLED_ARMASM_NO_NEON_IMPL=yes
4049
+
;;
4028
4050
*)
4029
4051
case $host_cpu in
4030
4052
*aarch64*)
4031
4053
AC_MSG_ERROR([Invalid choice of ARM asm inclusions (yes, inline, no-crypto, sha512-crypto, sha3-crypto, no-sha512-crypto, no-sha3-crypto, barrier-sb, barrier-detect): $ENABLED_ARMASM.])
4032
4054
break;;
4033
4055
*arm*)
4034
-
AC_MSG_ERROR([Invalid choice of ARM asm inclusions (yes, inline, no-crypto, sha256-small, aes-block-dup): $ENABLED_ARMASM.])
4056
+
AC_MSG_ERROR([Invalid choice of ARM asm inclusions (yes, inline, no-crypto, sha256-small, aes-block-dup, no-base, no-neon-impl): $ENABLED_ARMASM.])
4035
4057
break;;
4036
4058
esac
4037
4059
break;;
@@ -4194,6 +4216,17 @@ if test "$ENABLED_ARMASM_NEON" = "no"; then
0 commit comments