Module Name: src
Committed By: christos
Date: Mon Jun 22 16:25:08 UTC 2020
Modified Files:
src/crypto/external/bsd/openssl/dist/crypto: ppccap.c
src/crypto/external/bsd/openssl/dist/crypto/sha: keccak1600.c
src/crypto/external/bsd/openssl/dist/crypto/sha/asm:
keccak1600-ppc64.pl keccak1600p8-ppc.pl
Log Message:
Revert the conditional use of vsx on keccak. Upstream wants to disable it
instead (dot-asm:
So that both assembly modules export SHA3_absorb_vsx... Either way,
it makes lesser sense to deploy vector keccak1600p8-ppc.pl, because
benefits are not that clear. It's only nominally faster than scalar
module on POWER8 but significantly slower on POWER9. Because POWER9
is better equipped to handle non-vector code. On related note,
there is version optimized for little-endian, as well as 32-bit
version. [And since MIPS was mentioned, there is even MIPS module...]
To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 \
src/crypto/external/bsd/openssl/dist/crypto/ppccap.c
cvs rdiff -u -r1.2 -r1.3 \
src/crypto/external/bsd/openssl/dist/crypto/sha/keccak1600.c
cvs rdiff -u -r1.2 -r1.3 \
src/crypto/external/bsd/openssl/dist/crypto/sha/asm/keccak1600-ppc64.pl \
src/crypto/external/bsd/openssl/dist/crypto/sha/asm/keccak1600p8-ppc.pl
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/crypto/external/bsd/openssl/dist/crypto/ppccap.c
diff -u src/crypto/external/bsd/openssl/dist/crypto/ppccap.c:1.14 src/crypto/external/bsd/openssl/dist/crypto/ppccap.c:1.15
--- src/crypto/external/bsd/openssl/dist/crypto/ppccap.c:1.14 Tue Jun 16 23:22:06 2020
+++ src/crypto/external/bsd/openssl/dist/crypto/ppccap.c Mon Jun 22 12:25:08 2020
@@ -160,37 +160,6 @@ void ecp_nistz256_from_mont(unsigned lon
}
#endif
-size_t SHA3_absorb(uint64_t A[5][5], const unsigned char *inp, size_t len,
- size_t r);
-void SHA3_squeeze(uint64_t A[5][5], unsigned char *out, size_t len, size_t r);
-
-size_t SHA3_absorb_default(uint64_t A[5][5], const unsigned char *inp,
- size_t len, size_t r);
-void SHA3_squeeze_default(uint64_t A[5][5], unsigned char *out, size_t len,
- size_t r);
-
-size_t SHA3_absorb_vsx(uint64_t A[5][5], const unsigned char *inp,
- size_t len, size_t r);
-void SHA3_squeeze_vsx(uint64_t A[5][5], unsigned char *out, size_t len,
- size_t r);
-
-size_t SHA3_absorb(uint64_t A[5][5], const unsigned char *inp, size_t len,
- size_t r)
-{
- return OPENSSL_ppccap_P & PPC_CRYPTO207
- ? SHA3_absorb_vsx(A, inp, len, r)
- : SHA3_absorb_default(A, inp, len, r);
-}
-
-void SHA3_squeeze(uint64_t A[5][5], unsigned char *out, size_t len, size_t r)
-{
- OPENSSL_ppccap_P & PPC_CRYPTO207
- ? SHA3_squeeze_vsx(A, out, len, r)
- : SHA3_squeeze_default(A, out, len, r);
-}
-
-
-
static sigjmp_buf ill_jmp;
static void ill_handler(int sig)
{
Index: src/crypto/external/bsd/openssl/dist/crypto/sha/keccak1600.c
diff -u src/crypto/external/bsd/openssl/dist/crypto/sha/keccak1600.c:1.2 src/crypto/external/bsd/openssl/dist/crypto/sha/keccak1600.c:1.3
--- src/crypto/external/bsd/openssl/dist/crypto/sha/keccak1600.c:1.2 Sat Apr 11 18:41:06 2020
+++ src/crypto/external/bsd/openssl/dist/crypto/sha/keccak1600.c Mon Jun 22 12:25:08 2020
@@ -11,12 +11,6 @@
#include <string.h>
#include <assert.h>
-#ifdef __powerpc__
-#define SHA3_absorb SHA3_absorb_default
-#define SHA3_squeeze SHA3_squeeze_default
-#undef KECCAK1600_ASM
-#endif
-
size_t SHA3_absorb(uint64_t A[5][5], const unsigned char *inp, size_t len,
size_t r);
void SHA3_squeeze(uint64_t A[5][5], unsigned char *out, size_t len, size_t r);
Index: src/crypto/external/bsd/openssl/dist/crypto/sha/asm/keccak1600-ppc64.pl
diff -u src/crypto/external/bsd/openssl/dist/crypto/sha/asm/keccak1600-ppc64.pl:1.2 src/crypto/external/bsd/openssl/dist/crypto/sha/asm/keccak1600-ppc64.pl:1.3
--- src/crypto/external/bsd/openssl/dist/crypto/sha/asm/keccak1600-ppc64.pl:1.2 Sat Apr 11 18:41:06 2020
+++ src/crypto/external/bsd/openssl/dist/crypto/sha/asm/keccak1600-ppc64.pl Mon Jun 22 12:25:08 2020
@@ -405,10 +405,10 @@ dword_le_load:
.long 0
.size dword_le_load,.-dword_le_load
-.globl SHA3_absorb_vsx
-.type SHA3_absorb_vsx,\@function
+.globl SHA3_absorb
+.type SHA3_absorb,\@function
.align 5
-SHA3_absorb_vsx:
+SHA3_absorb:
$STU $sp,-$FRAME($sp)
mflr r0
$PUSH r14,`$FRAME-$SIZE_T*18`($sp)
@@ -627,15 +627,15 @@ SHA3_absorb_vsx:
.long 0
.byte 0,12,4,1,0x80,18,4,0
.long 0
-.size SHA3_absorb_vsx,.-SHA3_absorb_vsx
+.size SHA3_absorb,.-SHA3_absorb
___
{
my ($A_flat,$out,$len,$bsz) = map("r$_",(28..31));
$code.=<<___;
-.globl SHA3_squeeze_vsx
-.type SHA3_squeeze_vsx,\@function
+.globl SHA3_squeeze
+.type SHA3_squeeze,\@function
.align 5
-SHA3_squeeze_vsx:
+SHA3_squeeze:
$STU $sp,`-10*$SIZE_T`($sp)
mflr r0
$PUSH r28,`6*$SIZE_T`($sp)
@@ -705,7 +705,7 @@ SHA3_squeeze_vsx:
.long 0
.byte 0,12,4,1,0x80,4,4,0
.long 0
-.size SHA3_squeeze_vsx,.-SHA3_squeeze_vsx
+.size SHA3_squeeze,.-SHA3_squeeze
___
}
Index: src/crypto/external/bsd/openssl/dist/crypto/sha/asm/keccak1600p8-ppc.pl
diff -u src/crypto/external/bsd/openssl/dist/crypto/sha/asm/keccak1600p8-ppc.pl:1.2 src/crypto/external/bsd/openssl/dist/crypto/sha/asm/keccak1600p8-ppc.pl:1.3
--- src/crypto/external/bsd/openssl/dist/crypto/sha/asm/keccak1600p8-ppc.pl:1.2 Sat Apr 11 18:41:06 2020
+++ src/crypto/external/bsd/openssl/dist/crypto/sha/asm/keccak1600p8-ppc.pl Mon Jun 22 12:25:08 2020
@@ -374,10 +374,10 @@ ___
my ($A_jagged,$inp,$len,$bsz) = map("r$_",(3..6));
$code.=<<___;
-.globl SHA3_absorb_vsx
-.type SHA3_absorb_vsx,\@function
+.globl SHA3_absorb
+.type SHA3_absorb,\@function
.align 5
-SHA3_absorb_vsx:
+SHA3_absorb:
$STU $sp,-$FRAME($sp)
li r10,`15+6*$SIZE_T`
li r11,`31+6*$SIZE_T`
@@ -674,17 +674,17 @@ SHA3_absorb_vsx:
.long 0
.byte 0,12,0x04,1,0x80,0,4,0
.long 0
-.size SHA3_absorb_vsx,.-SHA3_absorb_vsx
+.size SHA3_absorb,.-SHA3_absorb
___
}
{
my ($A_jagged,$out,$len,$bsz) = map("r$_",(3..6));
$code.=<<___;
-.globl SHA3_squeeze_vsx
-.type SHA3_squeeze_vsx,\@function
+.globl SHA3_squeeze
+.type SHA3_squeeze,\@function
.align 5
-SHA3_squeeze_vsx:
+SHA3_squeeze:
mflr r9 ; r9 is not touched by KeccakF1600
subi $out,$out,1 ; prepare for stbu
addi r8,$A_jagged,4 ; prepare volatiles
@@ -770,7 +770,7 @@ SHA3_squeeze_vsx:
.long 0
.byte 0,12,0x14,0,0,0,4,0
.long 0
-.size SHA3_squeeze_vsx,.-SHA3_squeeze_vsx
+.size SHA3_squeeze,.-SHA3_squeeze
___
}
$code.=<<___;