@@ -1211,6 +1211,11 @@ then
12111211 AC_MSG_ERROR ( [ --enable-all-asm is incompatible with --disable-armasm] )
12121212 fi
12131213
1214+ if test "$enable_ppc32_asm" = "no"
1215+ then
1216+ AC_MSG_ERROR ( [ --enable-all-asm is incompatible with --disable-ppc32-asm] )
1217+ fi
1218+
12141219 case "$host_cpu" in
12151220 *x86_64*|*amd64*)
12161221 if test "$enable_intelasm" = ""
@@ -1240,6 +1245,14 @@ then
12401245 fi
12411246 fi
12421247 ;;
1248+ *powerpc64*)
1249+ ;;
1250+ *powerpc*)
1251+ if test "$enable_ppc32_asm" = ""
1252+ then
1253+ enable_ppc32_asm=yes
1254+ fi
1255+ ;;
12431256 esac
12441257fi
12451258
@@ -3488,6 +3501,42 @@ do
34883501done
34893502
34903503
3504+ # PPC32 Assembly
3505+ AC_ARG_ENABLE ( [ ppc32-asm] ,
3506+ [ AS_HELP_STRING ( [ --enable-ppc32-asm] ,[ Enable wolfSSL PowerPC 32-bit ASM support (default: disabled).] ) ] ,
3507+ [ ENABLED_PPC32_ASM=$enableval ] ,
3508+ [ ENABLED_PPC32_ASM=no ]
3509+ )
3510+
3511+
3512+ if test "$ENABLED_PPC32_ASM" != "no" && test "$ENABLED_ASM" = "yes"
3513+ then
3514+ ENABLED_PPC32_ASM_OPTS=$ENABLED_PPC32_ASM
3515+ for v in `echo $ENABLED_PPC32_ASM_OPTS | tr "," " "`
3516+ do
3517+ case $v in
3518+ yes)
3519+ ;;
3520+ inline)
3521+ ENABLED_PPC32_ASM_INLINE=yes
3522+ ;;
3523+ *)
3524+ AC_MSG_ERROR ( [ Invalid RISC-V option [ yes,inline] : $ENABLED_PPC32_ASM.] )
3525+ break
3526+ ;;
3527+ esac
3528+ done
3529+
3530+ AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_PPC32_ASM"
3531+ AC_MSG_NOTICE ( [ 32-bit PowerPC assembly for SHA-256] )
3532+ ENABLED_PPC32_ASM=yes
3533+ fi
3534+ if test "$ENABLED_PPC32_ASM_INLINE" = "yes"; then
3535+ AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_PPC32_ASM_INLINE"
3536+ else
3537+ AM_CCASFLAGS="$AM_CCASFLAGS -DWOLFSSL_PPC32_ASM"
3538+ fi
3539+
34913540# Xilinx hardened crypto
34923541AC_ARG_ENABLE ( [ xilinx] ,
34933542 [ AS_HELP_STRING ( [ --enable-xilinx] ,[ Enable wolfSSL support for Xilinx hardened crypto(default: disabled)] ) ] ,
@@ -10564,6 +10613,8 @@ AM_CONDITIONAL([BUILD_ARM_NONTHUMB],[test "$ENABLED_ARM_THUMB" != "yes" || test
1056410613AM_CONDITIONAL([ BUILD_ARM_32] ,[ test "$ENABLED_ARM_32" = "yes" || test "$ENABLED_USERSETTINGS" = "yes"] )
1056510614AM_CONDITIONAL([ BUILD_ARM_64] ,[ test "$ENABLED_ARM_64" = "yes" || test "$ENABLED_USERSETTINGS" = "yes"] )
1056610615AM_CONDITIONAL([ BUILD_RISCV_ASM] ,[ test "x$ENABLED_RISCV_ASM" = "xyes"] )
10616+ AM_CONDITIONAL([ BUILD_PPC32_ASM] ,[ test "x$ENABLED_PPC32_ASM" = "xyes"] )
10617+ AM_CONDITIONAL([ BUILD_PPC32_ASM_INLINE] ,[ test "x$ENABLED_PPC32_ASM_INLINE" = "xyes"] )
1056710618AM_CONDITIONAL([ BUILD_XILINX] ,[ test "x$ENABLED_XILINX" = "xyes"] )
1056810619AM_CONDITIONAL([ BUILD_AESNI] ,[ test "x$ENABLED_AESNI" = "xyes"] )
1056910620AM_CONDITIONAL([ BUILD_INTELASM] ,[ test "x$ENABLED_INTELASM" = "xyes"] )
@@ -11217,6 +11268,11 @@ echo " * ARM ASM: $ENABLED_ARMASM"
1121711268echo " * ARM ASM SHA512/SHA3 Crypto $ENABLED_ARMASM_SHA3"
1121811269echo " * ARM ASM SM3/SM4 Crypto $ENABLED_ARMASM_CRYPTO_SM4"
1121911270echo " * RISC-V ASM $ENABLED_RISCV_ASM"
11271+ if test "$ENABLED_PPC32_ASM_INLINE" = "yes"
11272+ then
11273+ ENABLED_PPC32_ASM="inline C"
11274+ fi
11275+ echo " * PPC32 ASM $ENABLED_PPC32_ASM"
1122011276echo " * Write duplicate: $ENABLED_WRITEDUP"
1122111277echo " * Xilinx Hardware Acc.: $ENABLED_XILINX"
1122211278echo " * C89: $ENABLED_C89"
0 commit comments