Skip to content

Commit 9969200

Browse files
committed
PPC32 ASM: alternative C code with registers prepended
C implementation with registers prepended with letter 'r'.
1 parent 2354ea1 commit 9969200

File tree

3 files changed

+7694
-1
lines changed

3 files changed

+7694
-1
lines changed

configure.ac

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3721,6 +3721,9 @@ then
37213721
inline)
37223722
ENABLED_PPC32_ASM_INLINE=yes
37233723
;;
3724+
inline-reg)
3725+
ENABLED_PPC32_ASM_INLINE_REG=yes
3726+
;;
37243727
small)
37253728
ENABLED_PPC32_ASM_SMALL=yes
37263729
;;
@@ -3738,7 +3741,7 @@ then
37383741
AC_MSG_NOTICE([32-bit PowerPC assembly for SHA-256])
37393742
ENABLED_PPC32_ASM=yes
37403743
fi
3741-
if test "$ENABLED_PPC32_ASM_INLINE" = "yes"; then
3744+
if test "$ENABLED_PPC32_ASM_INLINE" = "yes" || test "$ENABLED_PPC32_ASM_INLINE_REG" = "yes"; then
37423745
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_PPC32_ASM_INLINE"
37433746
else
37443747
AM_CCASFLAGS="$AM_CCASFLAGS -DWOLFSSL_PPC32_ASM"
@@ -11006,6 +11009,7 @@ AM_CONDITIONAL([BUILD_ARM_64],[test "$ENABLED_ARM_64" = "yes" || test "$ENABLED
1100611009
AM_CONDITIONAL([BUILD_RISCV_ASM],[test "x$ENABLED_RISCV_ASM" = "xyes"])
1100711010
AM_CONDITIONAL([BUILD_PPC32_ASM],[test "x$ENABLED_PPC32_ASM" = "xyes"])
1100811011
AM_CONDITIONAL([BUILD_PPC32_ASM_INLINE],[test "x$ENABLED_PPC32_ASM_INLINE" = "xyes"])
11012+
AM_CONDITIONAL([BUILD_PPC32_ASM_INLINE_REG],[test "x$ENABLED_PPC32_ASM_INLINE_REG" = "xyes"])
1100911013
AM_CONDITIONAL([BUILD_XILINX],[test "x$ENABLED_XILINX" = "xyes"])
1101011014
AM_CONDITIONAL([BUILD_AESNI],[test "x$ENABLED_AESNI" = "xyes"])
1101111015
AM_CONDITIONAL([BUILD_INTELASM],[test "x$ENABLED_INTELASM" = "xyes"])
@@ -11677,6 +11681,10 @@ if test "$ENABLED_PPC32_ASM_INLINE" = "yes"
1167711681
then
1167811682
ENABLED_PPC32_ASM="inline C"
1167911683
fi
11684+
if test "$ENABLED_PPC32_ASM_INLINE_REG" = "yes"
11685+
then
11686+
ENABLED_PPC32_ASM="inline C Reg"
11687+
fi
1168011688
echo " * PPC32 ASM $ENABLED_PPC32_ASM"
1168111689
echo " * Write duplicate: $ENABLED_WRITEDUP"
1168211690
echo " * Xilinx Hardware Acc.: $ENABLED_XILINX"

src/include.am

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,11 @@ if BUILD_PPC32_ASM
304304
if BUILD_PPC32_ASM_INLINE
305305
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/ppc32/ppc32-sha256-asm_c.c
306306
else
307+
if BUILD_PPC32_ASM_INLINE_REG
308+
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/ppc32/ppc32-sha256-asm_cr.c
309+
else
307310
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/ppc32/ppc32-sha256-asm.S
311+
endif !BUILD_PPC32_ASM_INLINE_REG
308312
endif !BUILD_PPC32_ASM_INLINE
309313
endif BUILD_PPC32_ASM
310314

@@ -539,7 +543,11 @@ if BUILD_PPC32_ASM
539543
if BUILD_PPC32_ASM_INLINE
540544
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/ppc32/ppc32-sha256-asm_c.c
541545
else
546+
if BUILD_PPC32_ASM_INLINE_REG
547+
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/ppc32/ppc32-sha256-asm_cr.c
548+
else
542549
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/ppc32/ppc32-sha256-asm.S
550+
endif !BUILD_PPC32_ASM_INLINE_REG
543551
endif !BUILD_PPC32_ASM_INLINE
544552
endif BUILD_PPC32_ASM
545553

@@ -830,7 +838,11 @@ if BUILD_PPC32_ASM
830838
if BUILD_PPC32_ASM_INLINE
831839
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/ppc32/ppc32-sha256-asm_c.c
832840
else
841+
if BUILD_PPC32_ASM_INLINE_REG
842+
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/ppc32/ppc32-sha256-asm_cr.c
843+
else
833844
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/ppc32/ppc32-sha256-asm.S
845+
endif !BUILD_PPC32_ASM_INLINE_REG
834846
endif !BUILD_PPC32_ASM_INLINE
835847
endif BUILD_PPC32_ASM
836848

0 commit comments

Comments
 (0)