aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPiotr Kubaj <pkubaj@FreeBSD.org>2021-11-22 02:28:46 +0000
committerPiotr Kubaj <pkubaj@FreeBSD.org>2021-12-29 13:45:29 +0000
commitce35a3bc852d25cb989bc1f3dc4ddb723d7d5117 (patch)
treec8b1a34bb036e3c854069a754d690acc3518ee79
parenta7e7700fa741d64a31e9d7596175fc0461687b86 (diff)
downloadsrc-ce35a3bc852.tar.gz
src-ce35a3bc852.zip
Add assembly optimized code for OpenSSL on powerpc, powerpc64 and powerpc64le
Summary: 1. https://github.com/openssl/openssl/commit/34ab13b7d8e3e723adb60be8142e38b7c9cd382a needs to be merged for ELFv2 support on big-endian. 2. crypto/openssl/crypto/ppccap.c needs to be patched. Same reason as in https://github.com/openssl/openssl/pull/17082. Approved by: jkim, jhibbits, alfredo (MFC to stable/13) MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D33076 (cherry picked from commit 3a60869237b8b315fe66497cf5299ec08b688533)
-rwxr-xr-xcrypto/openssl/crypto/perlasm/ppc-xlate.pl8
-rw-r--r--crypto/openssl/crypto/ppccap.c12
-rw-r--r--secure/lib/libcrypto/Makefile50
-rw-r--r--secure/lib/libcrypto/Makefile.asm189
-rw-r--r--secure/lib/libcrypto/Makefile.inc35
-rw-r--r--sys/crypto/openssl/powerpc/aes-ppc.S1562
-rw-r--r--sys/crypto/openssl/powerpc/aesp8-ppc.S3643
-rw-r--r--sys/crypto/openssl/powerpc/chacha-ppc.S1493
-rw-r--r--sys/crypto/openssl/powerpc/ghashp8-ppc.S570
-rw-r--r--sys/crypto/openssl/powerpc/poly1305-ppc.S313
-rw-r--r--sys/crypto/openssl/powerpc/poly1305-ppcfp.S587
-rw-r--r--sys/crypto/openssl/powerpc/ppc-mont.S1788
-rw-r--r--sys/crypto/openssl/powerpc/ppc.S1856
-rw-r--r--sys/crypto/openssl/powerpc/ppccpuid.S357
-rw-r--r--sys/crypto/openssl/powerpc/sha1-ppc.S1119
-rw-r--r--sys/crypto/openssl/powerpc/sha256-ppc.S1322
-rw-r--r--sys/crypto/openssl/powerpc/sha256p8-ppc.S736
-rw-r--r--sys/crypto/openssl/powerpc/sha512-ppc.S3072
-rw-r--r--sys/crypto/openssl/powerpc/sha512p8-ppc.S834
-rw-r--r--sys/crypto/openssl/powerpc/vpaes-ppc.S1469
-rw-r--r--sys/crypto/openssl/powerpc64/aes-ppc.S1534
-rw-r--r--sys/crypto/openssl/powerpc64/aesp8-ppc.S3660
-rw-r--r--sys/crypto/openssl/powerpc64/chacha-ppc.S1500
-rw-r--r--sys/crypto/openssl/powerpc64/ecp_nistz256-ppc64.S4855
-rw-r--r--sys/crypto/openssl/powerpc64/ghashp8-ppc.S577
-rw-r--r--sys/crypto/openssl/powerpc64/keccak1600-ppc64.S671
-rw-r--r--sys/crypto/openssl/powerpc64/poly1305-ppc.S186
-rw-r--r--sys/crypto/openssl/powerpc64/poly1305-ppcfp.S597
-rw-r--r--sys/crypto/openssl/powerpc64/ppc-mont.S1791
-rw-r--r--sys/crypto/openssl/powerpc64/ppc.S1877
-rw-r--r--sys/crypto/openssl/powerpc64/ppccpuid.S388
-rw-r--r--sys/crypto/openssl/powerpc64/sha1-ppc.S1122
-rw-r--r--sys/crypto/openssl/powerpc64/sha256-ppc.S1325
-rw-r--r--sys/crypto/openssl/powerpc64/sha256p8-ppc.S739
-rw-r--r--sys/crypto/openssl/powerpc64/sha512-ppc.S1421
-rw-r--r--sys/crypto/openssl/powerpc64/sha512p8-ppc.S837
-rw-r--r--sys/crypto/openssl/powerpc64/vpaes-ppc.S1480
-rw-r--r--sys/crypto/openssl/powerpc64/x25519-ppc64.S350
-rw-r--r--sys/crypto/openssl/powerpc64le/aes-ppc.S1582
-rw-r--r--sys/crypto/openssl/powerpc64le/aesp8-ppc.S3660
-rw-r--r--sys/crypto/openssl/powerpc64le/chacha-ppc.S1372
-rw-r--r--sys/crypto/openssl/powerpc64le/ecp_nistz256-ppc64.S4855
-rw-r--r--sys/crypto/openssl/powerpc64le/ghashp8-ppc.S577
-rw-r--r--sys/crypto/openssl/powerpc64le/keccak1600-ppc64.S671
-rw-r--r--sys/crypto/openssl/powerpc64le/poly1305-ppc.S163
-rw-r--r--sys/crypto/openssl/powerpc64le/poly1305-ppcfp.S592
-rw-r--r--sys/crypto/openssl/powerpc64le/ppc-mont.S1791
-rw-r--r--sys/crypto/openssl/powerpc64le/ppc.S1877
-rw-r--r--sys/crypto/openssl/powerpc64le/ppccpuid.S388
-rw-r--r--sys/crypto/openssl/powerpc64le/sha1-ppc.S1170
-rw-r--r--sys/crypto/openssl/powerpc64le/sha256-ppc.S1373
-rw-r--r--sys/crypto/openssl/powerpc64le/sha256p8-ppc.S747
-rw-r--r--sys/crypto/openssl/powerpc64le/sha512-ppc.S1517
-rw-r--r--sys/crypto/openssl/powerpc64le/sha512p8-ppc.S849
-rw-r--r--sys/crypto/openssl/powerpc64le/vpaes-ppc.S1480
-rw-r--r--sys/crypto/openssl/powerpc64le/x25519-ppc64.S350
56 files changed, 70929 insertions, 10 deletions
diff --git a/crypto/openssl/crypto/perlasm/ppc-xlate.pl b/crypto/openssl/crypto/perlasm/ppc-xlate.pl
index 08668b295bf6..f1a7fa835fc2 100755
--- a/crypto/openssl/crypto/perlasm/ppc-xlate.pl
+++ b/crypto/openssl/crypto/perlasm/ppc-xlate.pl
@@ -49,7 +49,7 @@ my $globl = sub {
/osx/ && do { $name = "_$name";
last;
};
- /linux.*(32|64le)/
+ /linux.*(32|64(le|v2))/
&& do { $ret .= ".globl $name";
if (!$$type) {
$ret .= "\n.type $name,\@function";
@@ -80,7 +80,7 @@ my $globl = sub {
};
my $text = sub {
my $ret = ($flavour =~ /aix/) ? ".csect\t.text[PR],7" : ".text";
- $ret = ".abiversion 2\n".$ret if ($flavour =~ /linux.*64le/);
+ $ret = ".abiversion 2\n".$ret if ($flavour =~ /linux.*64(le|v2)/);
$ret;
};
my $machine = sub {
@@ -186,7 +186,7 @@ my $vmr = sub {
# Some ABIs specify vrsave, special-purpose regi