Add assembly optimized code for OpenSSL on powerpc, powerpc64 and powerpc64le

Summary:
1. 34ab13b7d8
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
MFC after:	1 month
Differential Revision: https://reviews.freebsd.org/D33076
This commit is contained in:
Piotr Kubaj 2021-11-22 03:28:46 +01:00
parent 9cf1841c4a
commit 3a60869237
56 changed files with 70929 additions and 10 deletions

View file

@ -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 register #256, as reserved
# for system use.
my $no_vrsave = ($flavour =~ /aix|linux64le/);
my $no_vrsave = ($flavour =~ /aix|linux64(le|v2)/);
my $mtspr = sub {
my ($f,$idx,$ra) = @_;
if ($idx == 256 && $no_vrsave) {
@ -318,7 +318,7 @@ while($line=<>) {
if ($label) {
my $xlated = ($GLOBALS{$label} or $label);
print "$xlated:";
if ($flavour =~ /linux.*64le/) {
if ($flavour =~ /linux.*64(le|v2)/) {
if ($TYPES{$label} =~ /function/) {
printf "\n.localentry %s,0\n",$xlated;
}

View file

@ -239,14 +239,18 @@ static unsigned long getauxval(unsigned long key)
#endif
/* I wish <sys/auxv.h> was universally available */
#define HWCAP 16 /* AT_HWCAP */
#ifndef AT_HWCAP
# define AT_HWCAP 16 /* AT_HWCAP */
#endif
#define HWCAP_PPC64 (1U << 30)
#define HWCAP_ALTIVEC (1U << 28)
#define HWCAP_FPU (1U << 27)
#define HWCAP_POWER6_EXT (1U << 9)
#define HWCAP_VSX (1U << 7)
#define HWCAP2 26 /* AT_HWCAP2 */
#ifndef AT_HWCAP2
# define AT_HWCAP2 26 /* AT_HWCAP2 */
#endif
#define HWCAP_VEC_CRYPTO (1U << 25)
#define HWCAP_ARCH_3_00 (1U << 23)
@ -337,8 +341,8 @@ void OPENSSL_cpuid_setup(void)
#ifdef OSSL_IMPLEMENT_GETAUXVAL
{
unsigned long hwcap = getauxval(HWCAP);
unsigned long hwcap2 = getauxval(HWCAP2);
unsigned long hwcap = getauxval(AT_HWCAP);
unsigned long hwcap2 = getauxval(AT_HWCAP2);
if (hwcap & HWCAP_FPU) {
OPENSSL_ppccap_P |= PPC_FPU;

View file

@ -28,6 +28,12 @@ SRCS+= x86_64cpuid.S
SRCS+= armv4cpuid.S armcap.c
.elif defined(ASM_i386)
SRCS+= x86cpuid.S
.elif defined(ASM_powerpc)
SRCS+= ppccpuid.S ppccap.c
.elif defined(ASM_powerpc64)
SRCS+= ppccpuid.S ppccap.c
.elif defined(ASM_powerpc64le)
SRCS+= ppccpuid.S ppccap.c
.else
SRCS+= mem_clr.c
.endif
@ -44,6 +50,12 @@ SRCS+= aesni-x86_64.S vpaes-x86_64.S
SRCS+= aes-armv4.S aesv8-armx.S bsaes-armv7.S
.elif defined(ASM_i386)
SRCS+= aes_core.c aesni-x86.S vpaes-x86.S
.elif defined(ASM_powerpc)
SRCS+= aes_core.c aes-ppc.S vpaes-ppc.S aesp8-ppc.S
.elif defined(ASM_powerpc64)
SRCS+= aes_core.c aes-ppc.S vpaes-ppc.S aesp8-ppc.S
.elif defined(ASM_powerpc64le)
SRCS+= aes_core.c aes-ppc.S vpaes-ppc.S aesp8-ppc.S
.else
SRCS+= aes_core.c
.endif
@ -99,6 +111,12 @@ SRCS+= x86_64-mont.S x86_64-mont5.S
SRCS+= armv4-gf2m.S armv4-mont.S bn_asm.c
.elif defined(ASM_i386)
SRCS+= bn-586.S co-586.S x86-gf2m.S x86-mont.S
.elif defined(ASM_powerpc)
SRCS+= ppc.S ppc-mont.S
.elif defined(ASM_powerpc64)
SRCS+= ppc.S ppc-mont.S
.elif defined(ASM_powerpc64le)
SRCS+= ppc.S ppc-mont.S
.else
SRCS+= bn_asm.c
.endif
@ -128,6 +146,12 @@ SRCS+= chacha-x86_64.S
SRCS+= chacha-armv4.S
.elif defined(ASM_i386)
SRCS+= chacha-x86.S
.elif defined(ASM_powerpc)
SRCS+= chacha-ppc.S
.elif defined(ASM_powerpc64)
SRCS+= chacha-ppc.S
.elif defined(ASM_powerpc64le)
SRCS+= chacha-ppc.S
.else
SRCS+= chacha_enc.c
.endif
@ -189,6 +213,10 @@ SRCS+= ecp_nistz256-x86_64.S ecp_nistz256.c x25519-x86_64.S
SRCS+= ecp_nistz256-armv4.S ecp_nistz256.c
.elif defined(ASM_i386)
SRCS+= ecp_nistz256-x86.S ecp_nistz256.c
.elif defined(ASM_powerpc64)
SRCS+= ecp_nistz256-ppc64.S ecp_nistz256.c x25519-ppc64.S
.elif defined(ASM_powerpc64le)
SRCS+= ecp_nistz256-ppc64.S ecp_nistz256.c x25519-ppc64.S
.endif
# engine
@ -250,6 +278,12 @@ SRCS+= aesni-gcm-x86_64.S ghash-x86_64.S
SRCS+= ghash-armv4.S ghashv8-armx.S
.elif defined(ASM_i386)
SRCS+= ghash-x86.S
.elif defined(ASM_powerpc)
SRCS+= ghashp8-ppc.S
.elif defined(ASM_powerpc64)
SRCS+= ghashp8-ppc.S
.elif defined(ASM_powerpc64le)
SRCS+= ghashp8-ppc.S
.endif
# objects
@ -282,6 +316,12 @@ SRCS+= poly1305-x86_64.S
SRCS+= poly1305-armv4.S
.elif defined(ASM_i386)
SRCS+= poly1305-x86.S
.elif defined(ASM_powerpc)
SRCS+= poly1305-ppc.S poly1305-ppcfp.S
.elif defined(ASM_powerpc64)
SRCS+= poly1305-ppc.S poly1305-ppcfp.S
.elif defined(ASM_powerpc64le)
SRCS+= poly1305-ppc.S poly1305-ppcfp.S
.endif
# rand
@ -333,6 +373,12 @@ SRCS+= sha256-mb-x86_64.S sha256-x86_64.S sha512-x86_64.S
SRCS+= keccak1600-armv4.S sha1-armv4-large.S sha256-armv4.S sha512-armv4.S
.elif defined(ASM_i386)
SRCS+= keccak1600.c sha1-586.S sha256-586.S sha512-586.S
.elif defined(ASM_powerpc)
SRCS+= keccak1600.c sha1-ppc.S sha256-ppc.S sha512-ppc.S sha256p8-ppc.S sha512p8-ppc.S
.elif defined(ASM_powerpc64)
SRCS+= keccak1600-ppc64.S sha1-ppc.S sha256-ppc.S sha512-ppc.S sha256p8-ppc.S sha512p8-ppc.S
.elif defined(ASM_powerpc64le)
SRCS+= keccak1600-ppc64.S sha1-ppc.S sha256-ppc.S sha512-ppc.S sha256p8-ppc.S sha512p8-ppc.S
.else
SRCS+= keccak1600.c
.endif
@ -430,7 +476,7 @@ SRCS+= buildinf.h
CLEANDIRS= openssl
CLEANFILES= buildinf.h opensslconf.h opensslconf.h.tmp
.if defined(ASM_${MACHINE_CPUARCH})
.if defined(ASM_${MACHINE_CPUARCH}) || defined(ASM_${MACHINE_ARCH})
_cmd1=/%%NO_ASM%%/d
.else
_cmd1=s/%%NO_ASM%%//
@ -471,6 +517,8 @@ PICFLAG+= -DOPENSSL_PIC
.if defined(ASM_amd64)
.PATH: ${LCRYPTO_SRC}/crypto/bn/asm
.endif
.elif defined(ASM_${MACHINE_ARCH})
.PATH: ${SRCTOP}/sys/crypto/openssl/${MACHINE_ARCH}
.endif
.PATH: ${LCRYPTO_SRC}/crypto \

View file

@ -295,6 +295,195 @@ CLEANFILES= ${ASM} ${SRCS:R:S/$/.s/}
env CC=cc perl ${PERLPATH} ${.IMPSRC} elf ${CFLAGS} ${.IMPSRC:R:S/$/.s/} ;\
cat ${.IMPSRC:R:S/$/.s/} ;\
echo '#endif' ) > ${.TARGET}
.elif defined(ASM_powerpc)
.PATH: ${LCRYPTO_SRC}/crypto \
${LCRYPTO_SRC}/crypto/aes/asm \
${LCRYPTO_SRC}/crypto/bn/asm \
${LCRYPTO_SRC}/crypto/chacha/asm \
${LCRYPTO_SRC}/crypto/modes/asm \
${LCRYPTO_SRC}/crypto/poly1305/asm \
${LCRYPTO_SRC}/crypto/sha/asm
PERLPATH= -I${LCRYPTO_SRC}/crypto/perlasm
#cpuid
SRCS= ppccpuid.pl
#bn
SRCS+= ppc.pl ppc-mont.pl
#aes
SRCS+= aes-ppc.pl vpaes-ppc.pl aesp8-ppc.pl
#sha1
SRCS+= sha1-ppc.pl sha512-ppc.pl sha512p8-ppc.pl
#modes
SRCS+= ghashp8-ppc.pl
#chacha
SRCS+= chacha-ppc.pl
#poly1305
SRCS+= poly1305-ppc.pl poly1305-ppcfp.pl
ASM= ${SRCS:R:S/$/.S/} sha256-ppc.S sha256p8-ppc.S
all: ${ASM}
CLEANFILES= ${ASM}
.SUFFIXES: .pl
sha256-ppc.S: sha512-ppc.pl
env CC=cc perl ${.ALLSRC} linux32 ${.TARGET:R:S/$/.s/}
( echo '/* $$'FreeBSD'$$ */' ;\
echo '/* Do not modify. This file is auto-generated from ${.ALLSRC:T:R:S/$/.pl/}. */' ;\
cat ${.TARGET:R:S/$/.s/}) > ${.TARGET}
sha256p8-ppc.S: sha512p8-ppc.pl
env CC=cc perl ${.ALLSRC} linux32 ${.TARGET:R:S/$/.s/}
( echo '/* $$'FreeBSD'$$ */' ;\
echo '/* Do not modify. This file is auto-generated from ${.ALLSRC:T:R:S/$/.pl/}. */' ;\
cat ${.TARGET:R:S/$/.s/}) > ${.TARGET}
.pl.S:
env CC=cc perl ${.IMPSRC} linux32 ${.TARGET:R:S/$/.s/}
( echo '/* $$'FreeBSD'$$ */' ;\
echo '/* Do not modify. This file is auto-generated from ${.ALLSRC:T:R:S/$/.pl/}. */' ;\
cat ${.TARGET:R:S/$/.s/}) > ${.TARGET}
.elif defined(ASM_powerpc64)
.PATH: ${LCRYPTO_SRC}/crypto \
${LCRYPTO_SRC}/crypto/aes/asm \
${LCRYPTO_SRC}/crypto/bn/asm \
${LCRYPTO_SRC}/crypto/chacha/asm \
${LCRYPTO_SRC}/crypto/ec/asm \
${LCRYPTO_SRC}/crypto/modes/asm \
${LCRYPTO_SRC}/crypto/poly1305/asm \
${LCRYPTO_SRC}/crypto/sha/asm
PERLPATH= -I${LCRYPTO_SRC}/crypto/perlasm
#cpuid
SRCS= ppccpuid.pl
#bn
SRCS+= ppc.pl ppc-mont.pl
#aes
SRCS+= aes-ppc.pl vpaes-ppc.pl aesp8-ppc.pl
#sha1
SRCS+= sha1-ppc.pl sha512-ppc.pl sha512p8-ppc.pl
#modes
SRCS+= ghashp8-ppc.pl
#chacha
SRCS+= chacha-ppc.pl
#poly1305
SRCS+= poly1305-ppc.pl poly1305-ppcfp.pl
#ec
SRCS+= ecp_nistz256-ppc64.pl x25519-ppc64.pl
#keccak1600
SRCS+= keccak1600-ppc64.pl
ASM= ${SRCS:R:S/$/.S/} sha256-ppc.S sha256p8-ppc.S
all: ${ASM}
CLEANFILES= ${ASM}
.SUFFIXES: .pl
sha256-ppc.S: sha512-ppc.pl
env CC=cc perl ${.ALLSRC} linux64v2 ${.TARGET:R:S/$/.s/}
( echo '/* $$'FreeBSD'$$ */' ;\
echo '/* Do not modify. This file is auto-generated from ${.ALLSRC:T:R:S/$/.pl/}. */' ;\
cat ${.TARGET:R:S/$/.s/}) > ${.TARGET}
sha256p8-ppc.S: sha512p8-ppc.pl
env CC=cc perl ${.ALLSRC} linux64v2 ${.TARGET:R:S/$/.s/}
( echo '/* $$'FreeBSD'$$ */' ;\
echo '/* Do not modify. This file is auto-generated from ${.ALLSRC:T:R:S/$/.pl/}. */' ;\
cat ${.TARGET:R:S/$/.s/}) > ${.TARGET}
.pl.S:
env CC=cc perl ${.IMPSRC} linux64v2 ${.TARGET:R:S/$/.s/}
( echo '/* $$'FreeBSD'$$ */' ;\
echo '/* Do not modify. This file is auto-generated from ${.ALLSRC:T:R:S/$/.pl/}. */' ;\
cat ${.TARGET:R:S/$/.s/}) > ${.TARGET}
.elif defined(ASM_powerpc64le)
.PATH: ${LCRYPTO_SRC}/crypto \
${LCRYPTO_SRC}/crypto/aes/asm \
${LCRYPTO_SRC}/crypto/bn/asm \
${LCRYPTO_SRC}/crypto/chacha/asm \
${LCRYPTO_SRC}/crypto/ec/asm \
${LCRYPTO_SRC}/crypto/modes/asm \
${LCRYPTO_SRC}/crypto/poly1305/asm \
${LCRYPTO_SRC}/crypto/sha/asm
PERLPATH= -I${LCRYPTO_SRC}/crypto/perlasm
#cpuid
SRCS= ppccpuid.pl
#bn
SRCS+= ppc.pl ppc-mont.pl
#aes
SRCS+= aes-ppc.pl vpaes-ppc.pl aesp8-ppc.pl
#sha1
SRCS+= sha1-ppc.pl sha512-ppc.pl sha512p8-ppc.pl
#modes
SRCS+= ghashp8-ppc.pl
#chacha
SRCS+= chacha-ppc.pl
#poly1305
SRCS+= poly1305-ppc.pl poly1305-ppcfp.pl
#ec
SRCS+= ecp_nistz256-ppc64.pl x25519-ppc64.pl
#keccak1600
SRCS+= keccak1600-ppc64.pl
ASM= ${SRCS:R:S/$/.S/} sha256-ppc.S sha256p8-ppc.S
all: ${ASM}
CLEANFILES= ${ASM}
.SUFFIXES: .pl
sha256-ppc.S: sha512-ppc.pl
env CC=cc perl ${.ALLSRC} linux64le ${.TARGET:R:S/$/.s/}
( echo '/* $$'FreeBSD'$$ */' ;\
echo '/* Do not modify. This file is auto-generated from ${.ALLSRC:T:R:S/$/.pl/}. */' ;\
cat ${.TARGET:R:S/$/.s/}) > ${.TARGET}
sha256p8-ppc.S: sha512p8-ppc.pl
env CC=cc perl ${.ALLSRC} linux64le ${.TARGET:R:S/$/.s/}
( echo '/* $$'FreeBSD'$$ */' ;\
echo '/* Do not modify. This file is auto-generated from ${.ALLSRC:T:R:S/$/.pl/}. */' ;\
cat ${.TARGET:R:S/$/.s/}) > ${.TARGET}
.pl.S:
env CC=cc perl ${.IMPSRC} linux64le ${.TARGET:R:S/$/.s/}
( echo '/* $$'FreeBSD'$$ */' ;\
echo '/* Do not modify. This file is auto-generated from ${.ALLSRC:T:R:S/$/.pl/}. */' ;\
cat ${.TARGET:R:S/$/.s/}) > ${.TARGET}
.endif
.include <bsd.prog.mk>

View file

@ -23,9 +23,12 @@ CFLAGS+= -DB_ENDIAN
.if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" || \
${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "i386"
ASM_${MACHINE_CPUARCH}=
.elif ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "powerpc64" || \
${MACHINE_ARCH} == "powerpc64le"
ASM_${MACHINE_ARCH}=
.endif
.if defined(ASM_${MACHINE_CPUARCH})
.if defined(ASM_${MACHINE_CPUARCH}) || defined(ASM_${MACHINE_ARCH})
CFLAGS+= -DOPENSSL_CPUID_OBJ
.if defined(ASM_aarch64)
CFLAGS+= -DOPENSSL_BN_ASM_MONT
@ -69,6 +72,36 @@ CFLAGS+= -DGHASH_ASM
CFLAGS+= -DECP_NISTZ256_ASM
CFLAGS+= -DPADLOCK_ASM
CFLAGS+= -DPOLY1305_ASM
.elif defined(ASM_powerpc)
CFLAGS+= -DOPENSSL_BN_ASM_MONT
CFLAGS+= -DAES_ASM
CFLAGS+= -DVPAES_ASM
CFLAGS+= -DSHA1_ASM
CFLAGS+= -DSHA256_ASM
CFLAGS+= -DSHA512_ASM
CFLAGS+= -DPOLY1305_ASM
.elif defined(ASM_powerpc64)
CFLAGS+= -DOPENSSL_BN_ASM_MONT
CFLAGS+= -DAES_ASM
CFLAGS+= -DVPAES_ASM
CFLAGS+= -DSHA1_ASM
CFLAGS+= -DSHA256_ASM
CFLAGS+= -DSHA512_ASM
CFLAGS+= -DPOLY1305_ASM
CFLAGS+= -DECP_NISTZ256_ASM
CFLAGS+= -DX25519_ASM
CFLAGS+= -DKECCAK1600_ASM
.elif defined(ASM_powerpc64le)
CFLAGS+= -DOPENSSL_BN_ASM_MONT
CFLAGS+= -DAES_ASM
CFLAGS+= -DVPAES_ASM
CFLAGS+= -DSHA1_ASM
CFLAGS+= -DSHA256_ASM
CFLAGS+= -DSHA512_ASM
CFLAGS+= -DPOLY1305_ASM
CFLAGS+= -DECP_NISTZ256_ASM
CFLAGS+= -DX25519_ASM
CFLAGS+= -DKECCAK1600_ASM
.endif
.endif

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,570 @@
/* $FreeBSD$ */
/* Do not modify. This file is auto-generated from ghashp8-ppc.pl. */
.machine "any"
.text
.globl gcm_init_p8
.type gcm_init_p8,@function
.align 5
gcm_init_p8:
li 0,-4096
li 8,0x10
mfspr 12,256
li 9,0x20
mtspr 256,0
li 10,0x30
.long 0x7D202699
vspltisb 8,-16
vspltisb 5,1
vaddubm 8,8,8
vxor 4,4,4
vor 8,8,5
vsldoi 8,8,4,15
vsldoi 6,4,5,1
vaddubm 8,8,8
vspltisb 7,7
vor 8,8,6
vspltb 6,9,0
vsl 9,9,5
vsrab 6,6,7
vand 6,6,8
vxor 3,9,6
vsldoi 9,3,3,8
vsldoi 8,4,8,8
vsldoi 11,4,9,8
vsldoi 10,9,4,8
.long 0x7D001F99
.long 0x7D681F99
li 8,0x40
.long 0x7D291F99
li 9,0x50
.long 0x7D4A1F99
li 10,0x60
.long 0x10035CC8
.long 0x10234CC8
.long 0x104354C8
.long 0x10E044C8
vsldoi 5,1,4,8
vsldoi 6,4,1,8
vxor 0,0,5
vxor 2,2,6
vsldoi 0,0,0,8
vxor 0,0,7
vsldoi 6,0,0,8
.long 0x100044C8
vxor 6,6,2
vxor 16,0,6
vsldoi 17,16,16,8
vsldoi 19,4,17,8
vsldoi 18,17,4,8
.long 0x7E681F99
li 8,0x70
.long 0x7E291F99
li 9,0x80
.long 0x7E4A1F99
li 10,0x90
.long 0x10039CC8
.long 0x11B09CC8
.long 0x10238CC8
.long 0x11D08CC8
.long 0x104394C8
.long 0x11F094C8
.long 0x10E044C8
.long 0x114D44C8
vsldoi 5,1,4,8
vsldoi 6,4,1,8
vsldoi 11,14,4,8
vsldoi 9,4,14,8
vxor 0,0,5
vxor 2,2,6
vxor 13,13,11
vxor 15,15,9
vsldoi 0,0,0,8
vsldoi 13,13,13,8
vxor 0,0,7
vxor 13,13,10
vsldoi 6,0,0,8
vsldoi 9,13,13,8
.long 0x100044C8
.long 0x11AD44C8
vxor 6,6,2
vxor 9,9,15
vxor 0,0,6
vxor 13,13,9
vsldoi 9,0,0,8
vsldoi 17,13,13,8
vsldoi 11,4,9,8
vsldoi 10,9,4,8
vsldoi 19,4,17,8
vsldoi 18,17,4,8
.long 0x7D681F99
li 8,0xa0
.long 0x7D291F99
li 9,0xb0
.long 0x7D4A1F99
li 10,0xc0
.long 0x7E681F99
.long 0x7E291F99
.long 0x7E4A1F99
mtspr 256,12
blr
.long 0
.byte 0,12,0x14,0,0,0,2,0
.long 0
.size gcm_init_p8,.-gcm_init_p8
.globl gcm_gmult_p8
.type gcm_gmult_p8,@function
.align 5
gcm_gmult_p8:
lis 0,0xfff8
li 8,0x10
mfspr 12,256
li 9,0x20
mtspr 256,0
li 10,0x30
.long 0x7C601E99
.long 0x7D682699
.long 0x7D292699
.long 0x7D4A2699
.long 0x7D002699
vxor 4,4,4
.long 0x10035CC8
.long 0x10234CC8
.long 0x104354C8
.long 0x10E044C8
vsldoi 5,1,4,8
vsldoi 6,4,1,8
vxor 0,0,5
vxor 2,2,6
vsldoi 0,0,0,8
vxor 0,0,7
vsldoi 6,0,0,8
.long 0x100044C8
vxor 6,6,2
vxor 0,0,6
.long 0x7C001F99
mtspr 256,12
blr
.long 0
.byte 0,12,0x14,0,0,0,2,0
.long 0
.size gcm_gmult_p8,.-gcm_gmult_p8
.globl gcm_ghash_p8
.type gcm_ghash_p8,@function
.align 5
gcm_ghash_p8:
li 0,-4096
li 8,0x10
mfspr 12,256
li 9,0x20
mtspr 256,0
li 10,0x30
.long 0x7C001E99
.long 0x7D682699
li 8,0x40
.long 0x7D292699
li 9,0x50
.long 0x7D4A2699
li 10,0x60
.long 0x7D002699
vxor 4,4,4
cmplwi 6,64
bge .Lgcm_ghash_p8_4x
.long 0x7C602E99
addi 5,5,16
subic. 6,6,16
vxor 3,3,0
beq .Lshort
.long 0x7E682699
li 8,16
.long 0x7E292699
add 9,5,6
.long 0x7E4A2699
b .Loop_2x
.align 5
.Loop_2x:
.long 0x7E002E99
subic 6,6,32
.long 0x10039CC8
.long 0x11B05CC8
subfe 0,0,0
.long 0x10238CC8
.long 0x11D04CC8
and 0,0,6
.long 0x104394C8
.long 0x11F054C8
add 5,5,0
vxor 0,0,13
vxor 1,1,14
.long 0x10E044C8
vsldoi 5,1,4,8
vsldoi 6,4,1,8
vxor 2,2,15
vxor 0,0,5
vxor 2,2,6
vsldoi 0,0,0,8
vxor 0,0,7
.long 0x7C682E99
addi 5,5,32
vsldoi 6,0,0,8
.long 0x100044C8
vxor 6,6,2
vxor 3,3,6
vxor 3,3,0
.long 0x7c092840
bgt .Loop_2x
cmplwi 6,0
bne .Leven
.Lshort:
.long 0x10035CC8
.long 0x10234CC8
.long 0x104354C8
.long 0x10E044C8
vsldoi 5,1,4,8
vsldoi 6,4,1,8
vxor 0,0,5
vxor 2,2,6
vsldoi 0,0,0,8
vxor 0,0,7
vsldoi 6,0,0,8
.long 0x100044C8
vxor 6,6,2
.Leven:
vxor 0,0,6
.long 0x7C001F99
mtspr 256,12
blr
.long 0
.byte 0,12,0x14,0,0,0,4,0
.long 0
.align 5
.gcm_ghash_p8_4x:
.Lgcm_ghash_p8_4x:
stwu 1,-232(1)
li 10,39
li 11,55
stvx 20,10,1
addi 10,10,32
stvx 21,11,1
addi 11,11,32
stvx 22,10,1
addi 10,10,32
stvx 23,11,1
addi 11,11,32
stvx 24,10,1
addi 10,10,32
stvx 25,11,1
addi 11,11,32
stvx 26,10,1
addi 10,10,32
stvx 27,11,1
addi 11,11,32
stvx 28,10,1
addi 10,10,32
stvx 29,11,1
addi 11,11,32
stvx 30,10,1
li 10,0x60
stvx 31,11,1
li 0,-1
stw 12,228(1)
mtspr 256,0
lvsl 5,0,8
li 8,0x70
.long 0x7E292699
li 9,0x80
vspltisb 6,8
li 10,0x90
.long 0x7EE82699
li 8,0xa0
.long 0x7F092699
li 9,0xb0
.long 0x7F2A2699
li 10,0xc0
.long 0x7FA82699
li 8,0x10
.long 0x7FC92699
li 9,0x20
.long 0x7FEA2699
li 10,0x30
vsldoi 7,4,6,8
vaddubm 18,5,7
vaddubm 19,6,18
srwi 6,6,4
.long 0x7C602E99
.long 0x7E082E99
subic. 6,6,8
.long 0x7EC92E99
.long 0x7F8A2E99
addi 5,5,0x40
vxor 2,3,0
.long 0x11B0BCC8
.long 0x11D0C4C8
.long 0x11F0CCC8
vperm 11,17,9,18
vperm 5,22,28,19
vperm 10,17,9,19
vperm 6,22,28,18
.long 0x12B68CC8
.long 0x12855CC8
.long 0x137C4CC8
.long 0x134654C8
vxor 21,21,14
vxor 20,20,13
vxor 27,27,21
vxor 26,26,15
blt .Ltail_4x
.Loop_4x:
.long 0x7C602E99
.long 0x7E082E99
subic. 6,6,4
.long 0x7EC92E99
.long 0x7F8A2E99
addi 5,5,0x40
.long 0x1002ECC8
.long 0x1022F4C8
.long 0x1042FCC8
.long 0x11B0BCC8
.long 0x11D0C4C8
.long 0x11F0CCC8
vxor 0,0,20
vxor 1,1,27
vxor 2,2,26
vperm 5,22,28,19
vperm 6,22,28,18
.long 0x10E044C8
.long 0x12855CC8
.long 0x134654C8
vsldoi 5,1,4,8
vsldoi 6,4,1,8
vxor 0,0,5
vxor 2,2,6
vsldoi 0,0,0,8
vxor 0,0,7
vsldoi 6,0,0,8
.long 0x12B68CC8
.long 0x137C4CC8
.long 0x100044C8
vxor 20,20,13
vxor 26,26,15
vxor 2,2,3
vxor 21,21,14
vxor 2,2,6
vxor 27,27,21
vxor 2,2,0
bge .Loop_4x
.Ltail_4x:
.long 0x1002ECC8
.long 0x1022F4C8
.long 0x1042FCC8
vxor 0,0,20
vxor 1,1,27
.long 0x10E044C8
vsldoi 5,1,4,8
vsldoi 6,4,1,8
vxor 2,2,26
vxor 0,0,5
vxor 2,2,6
vsldoi 0,0,0,8
vxor 0,0,7
vsldoi 6,0,0,8
.long 0x100044C8
vxor 6,6,2
vxor 0,0,6
addic. 6,6,4
beq .Ldone_4x
.long 0x7C602E99
cmplwi 6,2
li 6,-4
blt .Lone
.long 0x7E082E99
beq .Ltwo
.Lthree:
.long 0x7EC92E99
vxor 2,3,0
vor 29,23,23
vor 30,24,24
vor 31,25,25
vperm 5,16,22,19
vperm 6,16,22,18
.long 0x12B08CC8
.long 0x13764CC8
.long 0x12855CC8
.long 0x134654C8
vxor 27,27,21
b .Ltail_4x
.align 4
.Ltwo:
vxor 2,3,0
vperm 5,4,16,19
vperm 6,4,16,18
vsldoi 29,4,17,8
vor 30,17,17
vsldoi 31,17,4,8
.long 0x12855CC8
.long 0x13704CC8
.long 0x134654C8
b .Ltail_4x
.align 4
.Lone:
vsldoi 29,4,9,8
vor 30,9,9
vsldoi 31,9,4,8
vxor 2,3,0
vxor 20,20,20
vxor 27,27,27
vxor 26,26,26
b .Ltail_4x
.Ldone_4x:
.long 0x7C001F99
li 10,39
li 11,55
mtspr 256,12
lvx 20,10,1
addi 10,10,32
lvx 21,11,1
addi 11,11,32
lvx 22,10,1
addi 10,10,32
lvx 23,11,1
addi 11,11,32
lvx 24,10,1
addi 10,10,32
lvx 25,11,1
addi 11,11,32
lvx 26,10,1
addi 10,10,32
lvx 27,11,1
addi 11,11,32
lvx 28,10,1
addi 10,10,32
lvx 29,11,1
addi 11,11,32
lvx 30,10,1
lvx 31,11,1
addi 1,1,232
blr
.long 0
.byte 0,12,0x04,0,0x80,0,4,0
.long 0
.size gcm_ghash_p8,.-gcm_ghash_p8
.byte 71,72,65,83,72,32,102,111,114,32,80,111,119,101,114,73,83,65,32,50,46,48,55,44,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align 2
.align 2

View file

@ -0,0 +1,313 @@
/* $FreeBSD$ */
/* Do not modify. This file is auto-generated from poly1305-ppc.pl. */
.machine "any"
.text
.globl poly1305_init_int
.type poly1305_init_int,@function
.align 4
poly1305_init_int:
xor 0,0,0
stw 0,0(3)
stw 0,4(3)
stw 0,8(3)
stw 0,12(3)
stw 0,16(3)
.long 0x7c040040
beq- .Lno_key
li 8,4
lwbrx 7,0,4
li 9,8
lwbrx 8,8,4
li 10,12
lwbrx 9,9,4
lwbrx 10,10,4
lis 0,0xf000
li 12,-4
andc 12,12,0
andc 7,7,0
and 8,8,12
and 9,9,12
and 10,10,12
stw 7,32(3)
stw 8,36(3)
stw 9,40(3)
stw 10,44(3)
.Lno_key:
xor 3,3,3
blr
.long 0
.byte 0,12,0x14,0,0,0,2,0
.size poly1305_init_int,.-poly1305_init_int
.globl poly1305_blocks
.type poly1305_blocks,@function
.align 4
poly1305_blocks:
srwi. 5,5,4
beq- .Labort
stwu 1,-96(1)
mflr 0
stw 14,24(1)
stw 15,28(1)
stw 16,32(1)
stw 17,36(1)
stw 18,40(1)
stw 19,44(1)
stw 20,48(1)
stw 21,52(1)
stw 22,56(1)
stw 23,60(1)
stw 24,64(1)
stw 25,68(1)
stw 26,72(1)
stw 27,76(1)
stw 28,80(1)
stw 29,84(1)
stw 30,88(1)
stw 31,92(1)
stw 0,100(1)
lwz 12,32(3)
lwz 14,36(3)
lwz 15,40(3)
lwz 16,44(3)
lwz 7,0(3)
lwz 8,4(3)
lwz 9,8(3)
lwz 10,12(3)
lwz 11,16(3)
srwi 17,14,2
srwi 18,15,2
srwi 19,16,2
add 17,17,14
add 18,18,15
add 19,19,16
mtctr 5
li 0,3
b .Loop
.align 4
.Loop:
li 29,4
lwbrx 28,0,4
li 30,8
lwbrx 29,29,4
li 31,12
lwbrx 30,30,4
lwbrx 31,31,4
addi 4,4,16
addc 7,7,28
adde 8,8,29
adde 9,9,30
mullw 28,7,12
mulhwu 24,7,12
mullw 29,7,14
mulhwu 25,7,14
mullw 30,7,15
mulhwu 26,7,15
adde 10,10,31
adde 11,11,6
mullw 31,7,16
mulhwu 27,7,16
mullw 20,8,19
mulhwu 21,8,19
mullw 22,8,12
mulhwu 23,8,12
addc 28,28,20
adde 24,24,21
mullw 20,8,14
mulhwu 21,8,14
addc 29,29,22
adde 25,25,23
mullw 22,8,15
mulhwu 23,8,15
addc 30,30,20
adde 26,26,21
mullw 20,9,18
mulhwu 21,9,18
addc 31,31,22
adde 27,27,23
mullw 22,9,19
mulhwu 23,9,19
addc 28,28,20
adde 24,24,21
mullw 20,9,12
mulhwu 21,9,12
addc 29,29,22
adde 25,25,23
mullw 22,9,14
mulhwu 23,9,14
addc 30,30,20
adde 26,26,21
mullw 20,10,17
mulhwu 21,10,17
addc 31,31,22
adde 27,27,23
mullw 22,10,18
mulhwu 23,10,18
addc 28,28,20
adde 24,24,21
mullw 20,10,19
mulhwu 21,10,19
addc 29,29,22
adde 25,25,23
mullw 22,10,12
mulhwu 23,10,12
addc 30,30,20
adde 26,26,21
mullw 20,11,17
addc 31,31,22
adde 27,27,23
addc 29,29,20
mullw 21,11,18
addze 25,25
addc 30,30,21
addze 26,26
mullw 22,11,19
addc 31,31,22
addze 27,27
mullw 11,11,12
addc 8,29,24
adde 9,30,25
adde 10,31,26
adde 11,11,27
andc 24,11,0
and 11,11,0
srwi 25,24,2
add 24,24,25
addc 7,28,24
addze 8,8
addze 9,9
addze 10,10
addze 11,11
bdnz .Loop
stw 7,0(3)
stw 8,4(3)
stw 9,8(3)
stw 10,12(3)
stw 11,16(3)
lwz 14,24(1)
lwz 15,28(1)
lwz 16,32(1)
lwz 17,36(1)
lwz 18,40(1)
lwz 19,44(1)
lwz 20,48(1)
lwz 21,52(1)
lwz 22,56(1)
lwz 23,60(1)
lwz 24,64(1)
lwz 25,68(1)
lwz 26,72(1)
lwz 27,76(1)
lwz 28,80(1)
lwz 29,84(1)
lwz 30,88(1)
lwz 31,92(1)
addi 1,1,96
.Labort:
blr
.long 0
.byte 0,12,4,1,0x80,18,4,0
.size poly1305_blocks,.-poly1305_blocks
.globl poly1305_emit
.type poly1305_emit,@function
.align 4
poly1305_emit:
stwu 1,-96(1)
mflr 0
stw 28,80(1)
stw 29,84(1)
stw 30,88(1)
stw 31,92(1)
stw 0,100(1)
lwz 7,0(3)
lwz 8,4(3)
lwz 9,8(3)
lwz 10,12(3)
lwz 11,16(3)
addic 28,7,5
addze 29,8
addze 30,9
addze 31,10
addze 0,11
srwi 0,0,2
neg 0,0
andc 7,7,0
and 28,28,0
andc 8,8,0
and 29,29,0
or 7,7,28
lwz 28,0(5)
andc 9,9,0
and 30,30,0
or 8,8,29
lwz 29,4(5)
andc 10,10,0
and 31,31,0
or 9,9,30
lwz 30,8(5)
or 10,10,31
lwz 31,12(5)
addc 7,7,28
adde 8,8,29
adde 9,9,30
adde 10,10,31
li 29,4
stwbrx 7,0,4
li 30,8
stwbrx 8,29,4
li 31,12
stwbrx 9,30,4
stwbrx 10,31,4
lwz 28,80(1)
lwz 29,84(1)
lwz 30,88(1)
lwz 31,92(1)
addi 1,1,96
blr
.long 0
.byte 0,12,4,1,0x80,4,3,0
.size poly1305_emit,.-poly1305_emit
.byte 80,111,108,121,49,51,48,53,32,102,111,114,32,80,80,67,44,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align 2

View file

@ -0,0 +1,587 @@
/* $FreeBSD$ */
/* Do not modify. This file is auto-generated from poly1305-ppcfp.pl. */
.machine "any"
.text
.globl poly1305_init_fpu
.type poly1305_init_fpu,@function
.align 6
poly1305_init_fpu:
stwu 1,-24(1)
mflr 6
stw 6,28(1)
bl .LPICmeup
xor 0,0,0
mtlr 6
lfd 8,8*0(5)
lfd 9,8*1(5)
lfd 10,8*2(5)
lfd 11,8*3(5)
lfd 12,8*4(5)
lfd 13,8*5(5)
stfd 8,8*0(3)
stfd 9,8*1(3)
stfd 10,8*2(3)
stfd 11,8*3(3)
.long 0x7c040040
beq- .Lno_key
lfd 6,8*13(5)
mffs 7
stfd 8,8*4(3)
stfd 9,8*5(3)
stfd 10,8*6(3)
stfd 11,8*7(3)
li 8,4
li 9,8
li 10,12
lwbrx 7,0,4
lwbrx 8,8,4
lwbrx 9,9,4
lwbrx 10,10,4
lis 11,0xf000
ori 12,11,3
andc 7,7,11
andc 8,8,12
andc 9,9,12
andc 10,10,12
stw 7,36(3)
stw 8,44(3)
stw 9,52(3)
stw 10,60(3)
mtfsf 255,6
stfd 8,8*18(3)
stfd 9,8*19(3)
stfd 10,8*20(3)
stfd 11,8*21(3)
stfd 12,8*22(3)
stfd 13,8*23(3)
lfd 0,8*4(3)
lfd 2,8*5(3)
lfd 4,8*6(3)
lfd 6,8*7(3)
fsub 0,0,8
fsub 2,2,9
fsub 4,4,10
fsub 6,6,11
lfd 8,8*6(5)
lfd 9,8*7(5)
lfd 10,8*8(5)
lfd 11,8*9(5)
fmul 3,2,13
fmul 5,4,13
stfd 7,8*15(3)
fmul 7,6,13
fadd 1,0,8
stfd 3,8*12(3)
fadd 3,2,9
stfd 5,8*13(3)
fadd 5,4,10
stfd 7,8*14(3)
fadd 7,6,11
fsub 1,1,8
fsub 3,3,9
fsub 5,5,10
fsub 7,7,11
lfd 8,8*10(5)
lfd 9,8*11(5)
lfd 10,8*12(5)
fsub 0,0,1
fsub 2,2,3
fsub 4,4,5
fsub 6,6,7
stfd 1,8*5(3)
stfd 3,8*7(3)
stfd 5,8*9(3)
stfd 7,8*11(3)
stfd 0,8*4(3)
stfd 2,8*6(3)
stfd 4,8*8(3)
stfd 6,8*10(3)
lfd 2,8*12(3)
lfd 4,8*13(3)
lfd 6,8*14(3)
lfd 0,8*15(3)
fadd 3,2,8
fadd 5,4,9
fadd 7,6,10
fsub 3,3,8
fsub 5,5,9
fsub 7,7,10
fsub 2,2,3
fsub 4,4,5
fsub 6,6,7
stfd 3,8*13(3)
stfd 5,8*15(3)
stfd 7,8*17(3)
stfd 2,8*12(3)
stfd 4,8*14(3)
stfd 6,8*16(3)
mtfsf 255,0
.Lno_key:
xor 3,3,3
addi 1,1,24
blr
.long 0
.byte 0,12,4,1,0x80,0,2,0
.size poly1305_init_fpu,.-poly1305_init_fpu
.globl poly1305_blocks_fpu
.type poly1305_blocks_fpu,@function
.align 4
poly1305_blocks_fpu:
srwi. 5,5,4
beq- .Labort
stwu 1,-216(1)
mflr 0
stfd 14,72(1)
stfd 15,80(1)
stfd 16,88(1)
stfd 17,96(1)
stfd 18,104(1)
stfd 19,112(1)
stfd 20,120(1)
stfd 21,128(1)
stfd 22,136(1)
stfd 23,144(1)
stfd 24,152(1)
stfd 25,160(1)
stfd 26,168(1)
stfd 27,176(1)
stfd 28,184(1)
stfd 29,192(1)
stfd 30,200(1)
stfd 31,208(1)
stw 0,220(1)
xor 0,0,0
li 10,1
mtctr 5
neg 5,5
stw 0,56(1)
stw 10,60(1)
lfd 8,8*18(3)
lfd 9,8*19(3)
lfd 10,8*20(3)
lfd 11,8*21(3)
lfd 12,8*22(3)
lfd 13,8*23(3)
lfd 0,8*0(3)
lfd 2,8*1(3)
lfd 4,8*2(3)
lfd 6,8*3(3)
stfd 8,24(1)
oris 10,6,18736
stfd 9,32(1)
stfd 10,40(1)
stw 10,48(1)
li 11,4
li 12,8
li 6,12
lwbrx 7,0,4
lwbrx 8,11,4
lwbrx 9,12,4
lwbrx 10,6,4
addi 4,4,16
stw 7,28(1)
stw 8,36(1)
stw 9,44(1)
stw 10,52(1)
mffs 28
lfd 29,56(1)
lfd 14,8*4(3)
lfd 15,8*5(3)
lfd 16,8*6(3)
lfd 17,8*7(3)
lfd 18,8*8(3)
lfd 19,8*9(3)
lfd 24,8*10(3)
lfd 25,8*11(3)
lfd 26,8*12(3)
lfd 27,8*13(3)
lfd 20,8*14(3)
lfd 21,8*15(3)
lfd 22,8*16(3)
lfd 23,8*17(3)
stfd 28,56(1)
mtfsf 255,29
addic 5,5,1
addze 0,0
slwi. 0,0,4
sub 4,4,0
lfd 28,24(1)
lfd 29,32(1)
lfd 30,40(1)
lfd 31,48(1)
fsub 0,0,8
lwbrx 7,0,4
fsub 2,2,9
lwbrx 8,11,4
fsub 4,4,10
lwbrx 9,12,4
fsub 6,6,11
lwbrx 10,6,4
fsub 28,28,8
addi 4,4,16
fsub 29,29,9
fsub 30,30,10
fsub 31,31,11
fadd 28,28,0
stw 7,28(1)
fadd 29,29,2
stw 8,36(1)
fadd 30,30,4
stw 9,44(1)
fadd 31,31,6
stw 10,52(1)
b .Lentry
.align 4
.Loop:
fsub 30,30,8
addic 5,5,1
fsub 31,31,9
addze 0,0
fsub 26,26,10
slwi. 0,0,4
fsub 27,27,11
sub 4,4,0
fadd 0,0,30
fadd 1,1,31
fadd 4,4,26
fadd 5,5,27
fadd 26,2,10
lwbrx 7,0,4
fadd 27,3,10
lwbrx 8,11,4
fadd 30,6,12
lwbrx 9,12,4
fadd 31,7,12
lwbrx 10,6,4
fadd 24,0,9
addi 4,4,16
fadd 25,1,9
fadd 28,4,11
fadd 29,5,11
fsub 26,26,10
stw 7,28(1)
fsub 27,27,10
stw 8,36(1)
fsub 30,30,12
stw 9,44(1)
fsub 31,31,12
stw 10,52(1)
fsub 24,24,9
fsub 25,25,9
fsub 28,28,11
fsub 29,29,11
fsub 2,2,26
fsub 3,3,27
fsub 6,6,30
fsub 7,7,31
fsub 4,4,28
fsub 5,5,29
fsub 0,0,24
fsub 1,1,25
fadd 2,2,24
fadd 3,3,25
fadd 6,6,28
fadd 7,7,29
fadd 4,4,26
fadd 5,5,27
fmadd 0,30,13,0
fmadd 1,31,13,1
fadd 29,2,3
lfd 26,8*12(3)
fadd 31,6,7
lfd 27,8*13(3)
fadd 30,4,5
lfd 24,8*10(3)
fadd 28,0,1
lfd 25,8*11(3)
.Lentry:
fmul 0,22,29
fmul 1,23,29
fmul 4,16,29
fmul 5,17,29
fmul 2,14,29
fmul 3,15,29
fmul 6,18,29
fmul 7,19,29
fmadd 0,26,31,0
fmadd 1,27,31,1
fmadd 4,22,31,4
fmadd 5,23,31,5
fmadd 2,20,31,2
fmadd 3,21,31,3
fmadd 6,14,31,6
fmadd 7,15,31,7
fmadd 0,20,30,0
fmadd 1,21,30,1
fmadd 4,14,30,4
fmadd 5,15,30,5
fmadd 2,22,30,2
fmadd 3,23,30,3
fmadd 6,16,30,6
fmadd 7,17,30,7
fmadd 0,14,28,0
lfd 30,24(1)
fmadd 1,15,28,1
lfd 31,32(1)
fmadd 4,18,28,4
lfd 26,40(1)
fmadd 5,19,28,5
lfd 27,48(1)
fmadd 2,16,28,2
fmadd 3,17,28,3
fmadd 6,24,28,6
fmadd 7,25,28,7
bdnz .Loop
fadd 24,0,9
fadd 25,1,9
fadd 28,4,11
fadd 29,5,11
fadd 26,2,10
fadd 27,3,10
fadd 30,6,12
fadd 31,7,12
fsub 24,24,9
fsub 25,25,9
fsub 28,28,11
fsub 29,29,11
fsub 26,26,10
fsub 27,27,10
fsub 30,30,12
fsub 31,31,12
fsub 2,2,26
fsub 3,3,27
fsub 6,6,30
fsub 7,7,31
fsub 4,4,28
fsub 5,5,29
fsub 0,0,24
fsub 1,1,25
fadd 2,2,24
fadd 3,3,25
fadd 6,6,28
fadd 7,7,29
fadd 4,4,26
fadd 5,5,27
fmadd 0,30,13,0
fmadd 1,31,13,1
fadd 29,2,3
fadd 31,6,7
fadd 30,4,5
fadd 28,0,1
lfd 0,56(1)
fadd 29,29,9
fadd 31,31,11
fadd 30,30,10
fadd 28,28,8
stfd 29,8*1(3)
stfd 31,8*3(3)
stfd 30,8*2(3)
stfd 28,8*0(3)
mtfsf 255,0
lfd 14,72(1)
lfd 15,80(1)
lfd 16,88(1)
lfd 17,96(1)
lfd 18,104(1)
lfd 19,112(1)
lfd 20,120(1)
lfd 21,128(1)
lfd 22,136(1)
lfd 23,144(1)
lfd 24,152(1)
lfd 25,160(1)
lfd 26,168(1)
lfd 27,176(1)
lfd 28,184(1)
lfd 29,192(1)
lfd 30,200(1)
lfd 31,208(1)
addi 1,1,216
.Labort:
blr
.long 0
.byte 0,12,4,1,0x80,0,4,0
.size poly1305_blocks_fpu,.-poly1305_blocks_fpu
.globl poly1305_emit_fpu
.type poly1305_emit_fpu,@function
.align 4
poly1305_emit_fpu:
stwu 1,-40(1)
mflr 0
stw 28,24(1)
stw 29,28(1)
stw 30,32(1)
stw 31,36(1)
stw 0,44(1)
lwz 28,0(3)
lwz 7,4(3)
lwz 29,8(3)
lwz 8,12(3)
lwz 30,16(3)
lwz 9,20(3)
lwz 31,24(3)
lwz 10,28(3)
lis 0,0xfff0
andc 28,28,0
andc 29,29,0
andc 30,30,0
andc 31,31,0
li 0,3
srwi 6,31,2
and 11,31,0
andc 31,31,0
add 31,31,6
addc 7,7,31
adde 8,8,28
adde 9,9,29
adde 10,10,30
addze 11,11
addic 28,7,5
addze 29,8
addze 30,9
addze 31,10
addze 0,11
srwi 0,0,2
neg 0,0
srawi 0,0,31
andc 7,7,0
and 28,28,0
andc 8,8,0
and 29,29,0
or 7,7,28
lwz 28,0(5)
andc 9,9,0
and 30,30,0
or 8,8,29
lwz 29,4(5)
andc 10,10,0
and 31,31,0
or 9,9,30
lwz 30,8(5)
or 10,10,31
lwz 31,12(5)
addc 7,7,28
adde 8,8,29
adde 9,9,30
adde 10,10,31
li 29,4
stwbrx 7,0,4
li 30,8
stwbrx 8,29,4
li 31,12
stwbrx 9,30,4
stwbrx 10,31,4
lwz 28,24(1)
lwz 29,28(1)
lwz 30,32(1)
lwz 31,36(1)
addi 1,1,40
blr
.long 0
.byte 0,12,4,1,0x80,4,3,0
.size poly1305_emit_fpu,.-poly1305_emit_fpu
.align 6
.LPICmeup:
mflr 0
bcl 20,31,$+4
mflr 5
addi 5,5,56
mtlr 0
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.space 28
.long 0x43300000,0x00000000
.long 0x45300000,0x00000000
.long 0x47300000,0x00000000
.long 0x49300000,0x00000000
.long 0x4b500000,0x00000000
.long 0x37f40000,0x00000000
.long 0x44300000,0x00000000
.long 0x46300000,0x00000000
.long 0x48300000,0x00000000
.long 0x4a300000,0x00000000
.long 0x3e300000,0x00000000
.long 0x40300000,0x00000000
.long 0x42300000,0x00000000
.long 0x00000000,0x00000001
.byte 80,111,108,121,49,51,48,53,32,102,111,114,32,80,80,67,32,70,80,85,44,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align 2
.align 4

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,357 @@
/* $FreeBSD$ */
/* Do not modify. This file is auto-generated from ppccpuid.pl. */
.machine "any"
.text
.globl OPENSSL_fpu_probe
.type OPENSSL_fpu_probe,@function
.align 4
OPENSSL_fpu_probe:
fmr 0,0
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.size OPENSSL_fpu_probe,.-OPENSSL_fpu_probe
.globl OPENSSL_ppc64_probe
.type OPENSSL_ppc64_probe,@function
.align 4
OPENSSL_ppc64_probe:
fcfid 1,1
rldicl 0,0,32,32
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.size OPENSSL_ppc64_probe,.-OPENSSL_ppc64_probe
.globl OPENSSL_altivec_probe
.type OPENSSL_altivec_probe,@function
.align 4
OPENSSL_altivec_probe:
.long 0x10000484
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.size OPENSSL_altivec_probe,.-OPENSSL_altivec_probe
.globl OPENSSL_crypto207_probe
.type OPENSSL_crypto207_probe,@function
.align 4
OPENSSL_crypto207_probe:
.long 0x7C000E99
.long 0x10000508
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.size OPENSSL_crypto207_probe,.-OPENSSL_crypto207_probe
.globl OPENSSL_madd300_probe
.type OPENSSL_madd300_probe,@function
.align 4
OPENSSL_madd300_probe:
xor 0,0,0
.long 0x10600033
.long 0x10600031
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.globl OPENSSL_wipe_cpu
.type OPENSSL_wipe_cpu,@function
.align 4
OPENSSL_wipe_cpu:
xor 0,0,0
fmr 0,31
fmr 1,31
fmr 2,31
mr 3,1
fmr 3,31
xor 4,4,4
fmr 4,31
xor 5,5,5
fmr 5,31
xor 6,6,6
fmr 6,31
xor 7,7,7
fmr 7,31
xor 8,8,8
fmr 8,31
xor 9,9,9
fmr 9,31
xor 10,10,10
fmr 10,31
xor 11,11,11
fmr 11,31
xor 12,12,12
fmr 12,31
fmr 13,31
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.size OPENSSL_wipe_cpu,.-OPENSSL_wipe_cpu
.globl OPENSSL_atomic_add
.type OPENSSL_atomic_add,@function
.align 4
OPENSSL_atomic_add:
.Ladd: lwarx 5,0,3
add 0,4,5
stwcx. 0,0,3
bne- .Ladd
mr 3,0
blr
.long 0
.byte 0,12,0x14,0,0,0,2,0
.long 0
.size OPENSSL_atomic_add,.-OPENSSL_atomic_add
.globl OPENSSL_rdtsc_mftb
.type OPENSSL_rdtsc_mftb,@function
.align 4
OPENSSL_rdtsc_mftb:
mftb 3
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.size OPENSSL_rdtsc_mftb,.-OPENSSL_rdtsc_mftb
.globl OPENSSL_rdtsc_mfspr268
.type OPENSSL_rdtsc_mfspr268,@function
.align 4
OPENSSL_rdtsc_mfspr268:
mfspr 3,268
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.size OPENSSL_rdtsc_mfspr268,.-OPENSSL_rdtsc_mfspr268
.globl OPENSSL_cleanse
.type OPENSSL_cleanse,@function
.align 4
OPENSSL_cleanse:
cmplwi 4,7
li 0,0
bge .Lot
cmplwi 4,0
.long 0x4DC20020
.Little: mtctr 4
stb 0,0(3)
addi 3,3,1
bdnz $-8
blr
.Lot: andi. 5,3,3
beq .Laligned
stb 0,0(3)
subi 4,4,1
addi 3,3,1
b .Lot
.Laligned:
srwi 5,4,2
mtctr 5
stw 0,0(3)
addi 3,3,4
bdnz $-8
andi. 4,4,3
bne .Little
blr
.long 0
.byte 0,12,0x14,0,0,0,2,0
.long 0
.size OPENSSL_cleanse,.-OPENSSL_cleanse
.globl CRYPTO_memcmp
.type CRYPTO_memcmp,@function
.align 4
CRYPTO_memcmp:
cmplwi 5,0
li 0,0
beq .Lno_data
mtctr 5
.Loop_cmp:
lbz 6,0(3)
addi 3,3,1
lbz 7,0(4)
addi 4,4,1
xor 6,6,7
or 0,0,6
bdnz .Loop_cmp
.Lno_data:
li 3,0
sub 3,3,0
extrwi 3,3,1,0
blr
.long 0
.byte 0,12,0x14,0,0,0,3,0
.long 0
.size CRYPTO_memcmp,.-CRYPTO_memcmp
.globl OPENSSL_instrument_bus_mftb
.type OPENSSL_instrument_bus_mftb,@function
.align 4
OPENSSL_instrument_bus_mftb:
mtctr 4
mftb 7
li 8,0
dcbf 0,3
lwarx 6,0,3
add 6,6,8
stwcx. 6,0,3
stwx 6,0,3
.Loop: mftb 6
sub 8,6,7
mr 7,6
dcbf 0,3
lwarx 6,0,3
add 6,6,8
stwcx. 6,0,3
stwx 6,0,3
addi 3,3,4
bdnz .Loop
mr 3,4
blr
.long 0
.byte 0,12,0x14,0,0,0,2,0
.long 0
.size OPENSSL_instrument_bus_mftb,.-OPENSSL_instrument_bus_mftb
.globl OPENSSL_instrument_bus2_mftb
.type OPENSSL_instrument_bus2_mftb,@function
.align 4
OPENSSL_instrument_bus2_mftb:
mr 0,4
slwi 4,4,2
mftb 7
li 8,0
dcbf 0,3
lwarx 6,0,3
add 6,6,8
stwcx. 6,0,3
stwx 6,0,3
mftb 6
sub 8,6,7
mr 7,6
mr 9,8
.Loop2:
dcbf 0,3
lwarx 6,0,3
add 6,6,8
stwcx. 6,0,3
stwx 6,0,3
addic. 5,5,-1
beq .Ldone2
mftb 6
sub 8,6,7
mr 7,6
.long 0x7f884840
mr 9,8
mfcr 6
not 6,6
rlwinm 6,6,1,29,29
sub. 4,4,6
add 3,3,6
bne .Loop2
.Ldone2:
srwi 4,4,2
sub 3,0,4
blr
.long 0
.byte 0,12,0x14,0,0,0,3,0
.long 0
.size OPENSSL_instrument_bus2_mftb,.-OPENSSL_instrument_bus2_mftb
.globl OPENSSL_instrument_bus_mfspr268
.type OPENSSL_instrument_bus_mfspr268,@function
.align 4
OPENSSL_instrument_bus_mfspr268:
mtctr 4
mfspr 7,268
li 8,0
dcbf 0,3
lwarx 6,0,3
add 6,6,8
stwcx. 6,0,3
stwx 6,0,3
.Loop3: mfspr 6,268
sub 8,6,7
mr 7,6
dcbf 0,3
lwarx 6,0,3
add 6,6,8
stwcx. 6,0,3
stwx 6,0,3
addi 3,3,4
bdnz .Loop3
mr 3,4
blr
.long 0
.byte 0,12,0x14,0,0,0,2,0
.long 0
.size OPENSSL_instrument_bus_mfspr268,.-OPENSSL_instrument_bus_mfspr268
.globl OPENSSL_instrument_bus2_mfspr268
.type OPENSSL_instrument_bus2_mfspr268,@function
.align 4
OPENSSL_instrument_bus2_mfspr268:
mr 0,4
slwi 4,4,2
mfspr 7,268
li 8,0
dcbf 0,3
lwarx 6,0,3
add 6,6,8
stwcx. 6,0,3
stwx 6,0,3
mfspr 6,268
sub 8,6,7
mr 7,6
mr 9,8
.Loop4:
dcbf 0,3
lwarx 6,0,3
add 6,6,8
stwcx. 6,0,3
stwx 6,0,3
addic. 5,5,-1
beq .Ldone4
mfspr 6,268
sub 8,6,7
mr 7,6
.long 0x7f884840
mr 9,8
mfcr 6
not 6,6
rlwinm 6,6,1,29,29
sub. 4,4,6
add 3,3,6
bne .Loop4
.Ldone4:
srwi 4,4,2
sub 3,0,4
blr
.long 0
.byte 0,12,0x14,0,0,0,3,0
.long 0
.size OPENSSL_instrument_bus2_mfspr268,.-OPENSSL_instrument_bus2_mfspr268

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,736 @@
/* $FreeBSD$ */
/* Do not modify. This file is auto-generated from sha512p8-ppc.pl. */
.machine "any"
.text
.globl sha256_block_p8
.type sha256_block_p8,@function
.align 6
sha256_block_p8:
stwu 1,-328(1)
mflr 8
li 10,175
li 11,191
stvx 24,10,1
addi 10,10,32
mfspr 12,256
stvx 25,11,1
addi 11,11,32
stvx 26,10,1
addi 10,10,32
stvx 27,11,1
addi 11,11,32
stvx 28,10,1
addi 10,10,32
stvx 29,11,1
addi 11,11,32
stvx 30,10,1
stvx 31,11,1
li 11,-4096+255
stw 12,300(1)
li 10,0x10
stw 26,304(1)
li 26,0x20
stw 27,308(1)
li 27,0x30
stw 28,312(1)
li 28,0x40
stw 29,316(1)
li 29,0x50
stw 30,320(1)
li 30,0x60
stw 31,324(1)
li 31,0x70
stw 8,332(1)
mtspr 256,11
bl .LPICmeup
addi 11,1,47
.long 0x7C001E19
.long 0x7C8A1E19
vsldoi 1,0,0,4
vsldoi 2,0,0,8
vsldoi 3,0,0,12
vsldoi 5,4,4,4
vsldoi 6,4,4,8
vsldoi 7,4,4,12
li 0,3
b .Loop
.align 5
.Loop:
lvx 28,0,6
.long 0x7D002699
addi 4,4,16
mr 7,6
stvx 0,0,11
stvx 1,10,11
stvx 2,26,11
stvx 3,27,11
stvx 4,28,11
stvx 5,29,11
stvx 6,30,11
stvx 7,31,11
vadduwm 7,7,28
lvx 28,10,6
vadduwm 7,7,8
vsel 29,6,5,4
vadduwm 6,6,28
vadduwm 7,7,29
.long 0x13C4FE82
vadduwm 7,7,30
vxor 29,0,1
vsel 29,1,2,29
vadduwm 3,3,7
.long 0x13C08682
vadduwm 30,30,29
vadduwm 7,7,30
lvx 28,26,7
vsldoi 9,8,8,4
vadduwm 6,6,9
vsel 29,5,4,3
vadduwm 5,5,28
vadduwm 6,6,29
.long 0x13C3FE82
vadduwm 6,6,30
vxor 29,7,0
vsel 29,0,1,29
vadduwm 2,2,6
.long 0x13C78682
vadduwm 30,30,29
vadduwm 6,6,30
lvx 28,27,7
vsldoi 10,9,9,4
vadduwm 5,5,10
vsel 29,4,3,2
vadduwm 4,4,28
vadduwm 5,5,29
.long 0x13C2FE82
vadduwm 5,5,30
vxor 29,6,7
vsel 29,7,0,29
vadduwm 1,1,5
.long 0x13C68682
vadduwm 30,30,29
vadduwm 5,5,30
lvx 28,28,7
.long 0x7D802699
addi 4,4,16
vsldoi 11,10,10,4
vadduwm 4,4,11
vsel 29,3,2,1
vadduwm 3,3,28
vadduwm 4,4,29
.long 0x13C1FE82
vadduwm 4,4,30
vxor 29,5,6
vsel 29,6,7,29
vadduwm 0,0,4
.long 0x13C58682
vadduwm 30,30,29
vadduwm 4,4,30
lvx 28,29,7
vadduwm 3,3,12
vsel 29,2,1,0
vadduwm 2,2,28
vadduwm 3,3,29
.long 0x13C0FE82
vadduwm 3,3,30
vxor 29,4,5
vsel 29,5,6,29
vadduwm 7,7,3
.long 0x13C48682
vadduwm 30,30,29
vadduwm 3,3,30
lvx 28,30,7
vsldoi 13,12,12,4
vadduwm 2,2,13
vsel 29,1,0,7
vadduwm 1,1,28
vadduwm 2,2,29
.long 0x13C7FE82
vadduwm 2,2,30
vxor 29,3,4
vsel 29,4,5,29
vadduwm 6,6,2
.long 0x13C38682
vadduwm 30,30,29
vadduwm 2,2,30
lvx 28,31,7
addi 7,7,0x80
vsldoi 14,13,13,4
vadduwm 1,1,14
vsel 29,0,7,6
vadduwm 0,0,28
vadduwm 1,1,29
.long 0x13C6FE82
vadduwm 1,1,30
vxor 29,2,3
vsel 29,3,4,29
vadduwm 5,5,1
.long 0x13C28682
vadduwm 30,30,29
vadduwm 1,1,30
lvx 28,0,7
.long 0x7E002699
addi 4,4,16
vsldoi 15,14,14,4
vadduwm 0,0,15
vsel 29,7,6,5
vadduwm 7,7,28
vadduwm 0,0,29
.long 0x13C5FE82
vadduwm 0,0,30
vxor 29,1,2
vsel 29,2,3,29
vadduwm 4,4,0
.long 0x13C18682
vadduwm 30,30,29
vadduwm 0,0,30
lvx 28,10,7
vadduwm 7,7,16
vsel 29,6,5,4
vadduwm 6,6,28
vadduwm 7,7,29
.long 0x13C4FE82
vadduwm 7,7,30
vxor 29,0,1
vsel 29,1,2,29
vadduwm 3,3,7
.long 0x13C08682
vadduwm 30,30,29
vadduwm 7,7,30
lvx 28,26,7
vsldoi 17,16,16,4
vadduwm 6,6,17
vsel 29,5,4,3
vadduwm 5,5,28
vadduwm 6,6,29
.long 0x13C3FE82
vadduwm 6,6,30
vxor 29,7,0
vsel 29,0,1,29
vadduwm 2,2,6
.long 0x13C78682
vadduwm 30,30,29
vadduwm 6,6,30
lvx 28,27,7
vsldoi 18,17,17,4
vadduwm 5,5,18
vsel 29,4,3,2
vadduwm 4,4,28
vadduwm 5,5,29
.long 0x13C2FE82
vadduwm 5,5,30
vxor 29,6,7
vsel 29,7,0,29
vadduwm 1,1,5
.long 0x13C68682
vadduwm 30,30,29
vadduwm 5,5,30
lvx 28,28,7
.long 0x7F002699
addi 4,4,16
vsldoi 19,18,18,4
vadduwm 4,4,19
vsel 29,3,2,1
vadduwm 3,3,28
vadduwm 4,4,29
.long 0x13C1FE82
vadduwm 4,4,30
vxor 29,5,6
vsel 29,6,7,29
vadduwm 0,0,4
.long 0x13C58682
vadduwm 30,30,29
vadduwm 4,4,30
lvx 28,29,7
vadduwm 3,3,24
vsel 29,2,1,0
vadduwm 2,2,28
vadduwm 3,3,29
.long 0x13C0FE82
vadduwm 3,3,30
vxor 29,4,5
vsel 29,5,6,29
vadduwm 7,7,3
.long 0x13C48682
vadduwm 30,30,29
vadduwm 3,3,30
lvx 28,30,7
vsldoi 25,24,24,4
vadduwm 2,2,25
vsel 29,1,0,7
vadduwm 1,1,28
vadduwm 2,2,29
.long 0x13C7FE82
vadduwm 2,2,30
vxor 29,3,4
vsel 29,4,5,29
vadduwm 6,6,2
.long 0x13C38682
vadduwm 30,30,29
vadduwm 2,2,30
lvx 28,31,7
addi 7,7,0x80
vsldoi 26,25,25,4
vadduwm 1,1,26
vsel 29,0,7,6
vadduwm 0,0,28
vadduwm 1,1,29
.long 0x13C6FE82
vadduwm 1,1,30
vxor 29,2,3
vsel 29,3,4,29
vadduwm 5,5,1
.long 0x13C28682
vadduwm 30,30,29
vadduwm 1,1,30
lvx 28,0,7
vsldoi 27,26,26,4
.long 0x13C90682
vadduwm 8,8,30
.long 0x13DA7E82
vadduwm 8,8,30
vadduwm 8,8,17
vadduwm 0,0,27
vsel 29,7,6,5
vadduwm 7,7,28
vadduwm 0,0,29
.long 0x13C5FE82
vadduwm 0,0,30
vxor 29,1,2
vsel 29,2,3,29
vadduwm 4,4,0
.long 0x13C18682
vadduwm 30,30,29
vadduwm 0,0,30
lvx 28,10,7
mtctr 0
b .L16_xx
.align 5
.L16_xx:
.long 0x13CA0682
vadduwm 9,9,30
.long 0x13DB7E82
vadduwm 9,9,30
vadduwm 9,9,18
vadduwm 7,7,8
vsel 29,6,5,4
vadduwm 6,6,28
vadduwm 7,7,29
.long 0x13C4FE82
vadduwm 7,7,30
vxor 29,0,1
vsel 29,1,2,29
vadduwm 3,3,7
.long 0x13C08682
vadduwm 30,30,29
vadduwm 7,7,30
lvx 28,26,7
.long 0x13CB0682
vadduwm 10,10,30
.long 0x13C87E82
vadduwm 10,10,30
vadduwm 10,10,19
vadduwm 6,6,9
vsel 29,5,4,3
vadduwm 5,5,28
vadduwm 6,6,29
.long 0x13C3FE82
vadduwm 6,6,30
vxor 29,7,0
vsel 29,0,1,29
vadduwm 2,2,6
.long 0x13C78682
vadduwm 30,30,29
vadduwm 6,6,30
lvx 28,27,7
.long 0x13CC0682
vadduwm 11,11,30
.long 0x13C97E82
vadduwm 11,11,30
vadduwm 11,11,24
vadduwm 5,5,10
vsel 29,4,3,2
vadduwm 4,4,28
vadduwm 5,5,29
.long 0x13C2FE82
vadduwm 5,5,30
vxor 29,6,7
vsel 29,7,0,29
vadduwm 1,1,5
.long 0x13C68682
vadduwm 30,30,29
vadduwm 5,5,30
lvx 28,28,7
.long 0x13CD0682
vadduwm 12,12,30
.long 0x13CA7E82
vadduwm 12,12,30
vadduwm 12,12,25
vadduwm 4,4,11
vsel 29,3,2,1
vadduwm 3,3,28
vadduwm 4,4,29
.long 0x13C1FE82
vadduwm 4,4,30
vxor 29,5,6
vsel 29,6,7,29
vadduwm 0,0,4
.long 0x13C58682
vadduwm 30,30,29
vadduwm 4,4,30
lvx 28,29,7
.long 0x13CE0682
vadduwm 13,13,30
.long 0x13CB7E82
vadduwm 13,13,30
vadduwm 13,13,26
vadduwm 3,3,12
vsel 29,2,1,0
vadduwm 2,2,28
vadduwm 3,3,29
.long 0x13C0FE82
vadduwm 3,3,30
vxor 29,4,5
vsel 29,5,6,29
vadduwm 7,7,3
.long 0x13C48682
vadduwm 30,30,29
vadduwm 3,3,30
lvx 28,30,7
.long 0x13CF0682
vadduwm 14,14,30
.long 0x13CC7E82
vadduwm 14,14,30
vadduwm 14,14,27
vadduwm 2,2,13
vsel 29,1,0,7
vadduwm 1,1,28
vadduwm 2,2,29
.long 0x13C7FE82
vadduwm 2,2,30
vxor 29,3,4
vsel 29,4,5,29
vadduwm 6,6,2
.long 0x13C38682
vadduwm 30,30,29
vadduwm 2,2,30
lvx 28,31,7
addi 7,7,0x80
.long 0x13D00682
vadduwm 15,15,30
.long 0x13CD7E82
vadduwm 15,15,30
vadduwm 15,15,8
vadduwm 1,1,14
vsel 29,0,7,6
vadduwm 0,0,28
vadduwm 1,1,29
.long 0x13C6FE82
vadduwm 1,1,30
vxor 29,2,3
vsel 29,3,4,29
vadduwm 5,5,1
.long 0x13C28682
vadduwm 30,30,29
vadduwm 1,1,30
lvx 28,0,7
.long 0x13D10682
vadduwm 16,16,30
.long 0x13CE7E82
vadduwm 16,16,30
vadduwm 16,16,9
vadduwm 0,0,15
vsel 29,7,6,5
vadduwm 7,7,28
vadduwm 0,0,29
.long 0x13C5FE82
vadduwm 0,0,30
vxor 29,1,2
vsel 29,2,3,29
vadduwm 4,4,0
.long 0x13C18682
vadduwm 30,30,29
vadduwm 0,0,30
lvx 28,10,7
.long 0x13D20682
vadduwm 17,17,30
.long 0x13CF7E82
vadduwm 17,17,30
vadduwm 17,17,10
vadduwm 7,7,16
vsel 29,6,5,4
vadduwm 6,6,28
vadduwm 7,7,29
.long 0x13C4FE82
vadduwm 7,7,30
vxor 29,0,1
vsel 29,1,2,29
vadduwm 3,3,7
.long 0x13C08682
vadduwm 30,30,29
vadduwm 7,7,30
lvx 28,26,7
.long 0x13D30682
vadduwm 18,18,30
.long 0x13D07E82
vadduwm 18,18,30
vadduwm 18,18,11
vadduwm 6,6,17
vsel 29,5,4,3
vadduwm 5,5,28
vadduwm 6,6,29
.long 0x13C3FE82
vadduwm 6,6,30
vxor 29,7,0
vsel 29,0,1,29
vadduwm 2,2,6
.long 0x13C78682
vadduwm 30,30,29
vadduwm 6,6,30
lvx 28,27,7
.long 0x13D80682
vadduwm 19,19,30
.long 0x13D17E82
vadduwm 19,19,30
vadduwm 19,19,12
vadduwm 5,5,18
vsel 29,4,3,2
vadduwm 4,4,28
vadduwm 5,5,29
.long 0x13C2FE82
vadduwm 5,5,30
vxor 29,6,7
vsel 29,7,0,29
vadduwm 1,1,5
.long 0x13C68682
vadduwm 30,30,29
vadduwm 5,5,30
lvx 28,28,7
.long 0x13D90682
vadduwm 24,24,30
.long 0x13D27E82
vadduwm 24,24,30
vadduwm 24,24,13
vadduwm 4,4,19
vsel 29,3,2,1
vadduwm 3,3,28
vadduwm 4,4,29
.long 0x13C1FE82
vadduwm 4,4,30
vxor 29,5,6
vsel 29,6,7,29
vadduwm 0,0,4
.long 0x13C58682
vadduwm 30,30,29
vadduwm 4,4,30
lvx 28,29,7
.long 0x13DA0682
vadduwm 25,25,30
.long 0x13D37E82
vadduwm 25,25,30
vadduwm 25,25,14
vadduwm 3,3,24
vsel 29,2,1,0
vadduwm 2,2,28
vadduwm 3,3,29
.long 0x13C0FE82
vadduwm 3,3,30
vxor 29,4,5
vsel 29,5,6,29
vadduwm 7,7,3
.long 0x13C48682
vadduwm 30,30,29
vadduwm 3,3,30
lvx 28,30,7
.long 0x13DB0682
vadduwm 26,26,30
.long 0x13D87E82
vadduwm 26,26,30
vadduwm 26,26,15
vadduwm 2,2,25
vsel 29,1,0,7
vadduwm 1,1,28
vadduwm 2,2,29
.long 0x13C7FE82
vadduwm 2,2,30
vxor 29,3,4
vsel 29,4,5,29
vadduwm 6,6,2
.long 0x13C38682
vadduwm 30,30,29
vadduwm 2,2,30
lvx 28,31,7
addi 7,7,0x80
.long 0x13C80682
vadduwm 27,27,30
.long 0x13D97E82
vadduwm 27,27,30
vadduwm 27,27,16
vadduwm 1,1,26
vsel 29,0,7,6
vadduwm 0,0,28
vadduwm 1,1,29
.long 0x13C6FE82
vadduwm 1,1,30
vxor 29,2,3
vsel 29,3,4,29
vadduwm 5,5,1
.long 0x13C28682
vadduwm 30,30,29
vadduwm 1,1,30
lvx 28,0,7
.long 0x13C90682
vadduwm 8,8,30
.long 0x13DA7E82
vadduwm 8,8,30
vadduwm 8,8,17
vadduwm 0,0,27
vsel 29,7,6,5
vadduwm 7,7,28
vadduwm 0,0,29
.long 0x13C5FE82
vadduwm 0,0,30
vxor 29,1,2
vsel 29,2,3,29
vadduwm 4,4,0
.long 0x13C18682
vadduwm 30,30,29
vadduwm 0,0,30
lvx 28,10,7
bdnz .L16_xx
lvx 10,0,11
subic. 5,5,1
lvx 11,10,11
vadduwm 0,0,10
lvx 12,26,11
vadduwm 1,1,11
lvx 13,27,11
vadduwm 2,2,12
lvx 14,28,11
vadduwm 3,3,13
lvx 15,29,11
vadduwm 4,4,14
lvx 16,30,11
vadduwm 5,5,15
lvx 17,31,11
vadduwm 6,6,16
vadduwm 7,7,17
bne .Loop
lvx 8,26,7
vperm 0,0,1,28
lvx 9,27,7
vperm 4,4,5,28
vperm 0,0,2,8
vperm 4,4,6,8
vperm 0,0,3,9
vperm 4,4,7,9
.long 0x7C001F19
.long 0x7C8A1F19
addi 11,1,175
mtlr 8
mtspr 256,12
lvx 24,0,11
lvx 25,10,11
lvx 26,26,11
lvx 27,27,11
lvx 28,28,11
lvx 29,29,11
lvx 30,30,11
lvx 31,31,11
lwz 26,304(1)
lwz 27,308(1)
lwz 28,312(1)
lwz 29,316(1)
lwz 30,320(1)
lwz 31,324(1)
addi 1,1,328
blr
.long 0
.byte 0,12,4,1,0x80,6,3,0
.long 0
.size sha256_block_p8,.-sha256_block_p8
.align 6
.LPICmeup:
mflr 0
bcl 20,31,$+4
mflr 6
addi 6,6,56
mtlr 0
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.space 28
.long 0x428a2f98,0x428a2f98,0x428a2f98,0x428a2f98
.long 0x71374491,0x71374491,0x71374491,0x71374491
.long 0xb5c0fbcf,0xb5c0fbcf,0xb5c0fbcf,0xb5c0fbcf
.long 0xe9b5dba5,0xe9b5dba5,0xe9b5dba5,0xe9b5dba5
.long 0x3956c25b,0x3956c25b,0x3956c25b,0x3956c25b
.long 0x59f111f1,0x59f111f1,0x59f111f1,0x59f111f1
.long 0x923f82a4,0x923f82a4,0x923f82a4,0x923f82a4
.long 0xab1c5ed5,0xab1c5ed5,0xab1c5ed5,0xab1c5ed5
.long 0xd807aa98,0xd807aa98,0xd807aa98,0xd807aa98
.long 0x12835b01,0x12835b01,0x12835b01,0x12835b01
.long 0x243185be,0x243185be,0x243185be,0x243185be
.long 0x550c7dc3,0x550c7dc3,0x550c7dc3,0x550c7dc3
.long 0x72be5d74,0x72be5d74,0x72be5d74,0x72be5d74
.long 0x80deb1fe,0x80deb1fe,0x80deb1fe,0x80deb1fe
.long 0x9bdc06a7,0x9bdc06a7,0x9bdc06a7,0x9bdc06a7
.long 0xc19bf174,0xc19bf174,0xc19bf174,0xc19bf174
.long 0xe49b69c1,0xe49b69c1,0xe49b69c1,0xe49b69c1
.long 0xefbe4786,0xefbe4786,0xefbe4786,0xefbe4786
.long 0x0fc19dc6,0x0fc19dc6,0x0fc19dc6,0x0fc19dc6
.long 0x240ca1cc,0x240ca1cc,0x240ca1cc,0x240ca1cc
.long 0x2de92c6f,0x2de92c6f,0x2de92c6f,0x2de92c6f
.long 0x4a7484aa,0x4a7484aa,0x4a7484aa,0x4a7484aa
.long 0x5cb0a9dc,0x5cb0a9dc,0x5cb0a9dc,0x5cb0a9dc
.long 0x76f988da,0x76f988da,0x76f988da,0x76f988da
.long 0x983e5152,0x983e5152,0x983e5152,0x983e5152
.long 0xa831c66d,0xa831c66d,0xa831c66d,0xa831c66d
.long 0xb00327c8,0xb00327c8,0xb00327c8,0xb00327c8
.long 0xbf597fc7,0xbf597fc7,0xbf597fc7,0xbf597fc7
.long 0xc6e00bf3,0xc6e00bf3,0xc6e00bf3,0xc6e00bf3
.long 0xd5a79147,0xd5a79147,0xd5a79147,0xd5a79147
.long 0x06ca6351,0x06ca6351,0x06ca6351,0x06ca6351
.long 0x14292967,0x14292967,0x14292967,0x14292967
.long 0x27b70a85,0x27b70a85,0x27b70a85,0x27b70a85
.long 0x2e1b2138,0x2e1b2138,0x2e1b2138,0x2e1b2138
.long 0x4d2c6dfc,0x4d2c6dfc,0x4d2c6dfc,0x4d2c6dfc
.long 0x53380d13,0x53380d13,0x53380d13,0x53380d13
.long 0x650a7354,0x650a7354,0x650a7354,0x650a7354
.long 0x766a0abb,0x766a0abb,0x766a0abb,0x766a0abb
.long 0x81c2c92e,0x81c2c92e,0x81c2c92e,0x81c2c92e
.long 0x92722c85,0x92722c85,0x92722c85,0x92722c85
.long 0xa2bfe8a1,0xa2bfe8a1,0xa2bfe8a1,0xa2bfe8a1
.long 0xa81a664b,0xa81a664b,0xa81a664b,0xa81a664b
.long 0xc24b8b70,0xc24b8b70,0xc24b8b70,0xc24b8b70
.long 0xc76c51a3,0xc76c51a3,0xc76c51a3,0xc76c51a3
.long 0xd192e819,0xd192e819,0xd192e819,0xd192e819
.long 0xd6990624,0xd6990624,0xd6990624,0xd6990624
.long 0xf40e3585,0xf40e3585,0xf40e3585,0xf40e3585
.long 0x106aa070,0x106aa070,0x106aa070,0x106aa070
.long 0x19a4c116,0x19a4c116,0x19a4c116,0x19a4c116
.long 0x1e376c08,0x1e376c08,0x1e376c08,0x1e376c08
.long 0x2748774c,0x2748774c,0x2748774c,0x2748774c
.long 0x34b0bcb5,0x34b0bcb5,0x34b0bcb5,0x34b0bcb5
.long 0x391c0cb3,0x391c0cb3,0x391c0cb3,0x391c0cb3
.long 0x4ed8aa4a,0x4ed8aa4a,0x4ed8aa4a,0x4ed8aa4a
.long 0x5b9cca4f,0x5b9cca4f,0x5b9cca4f,0x5b9cca4f
.long 0x682e6ff3,0x682e6ff3,0x682e6ff3,0x682e6ff3
.long 0x748f82ee,0x748f82ee,0x748f82ee,0x748f82ee
.long 0x78a5636f,0x78a5636f,0x78a5636f,0x78a5636f
.long 0x84c87814,0x84c87814,0x84c87814,0x84c87814
.long 0x8cc70208,0x8cc70208,0x8cc70208,0x8cc70208
.long 0x90befffa,0x90befffa,0x90befffa,0x90befffa
.long 0xa4506ceb,0xa4506ceb,0xa4506ceb,0xa4506ceb
.long 0xbef9a3f7,0xbef9a3f7,0xbef9a3f7,0xbef9a3f7
.long 0xc67178f2,0xc67178f2,0xc67178f2,0xc67178f2
.long 0,0,0,0
.long 0x00010203,0x10111213,0x10111213,0x10111213
.long 0x00010203,0x04050607,0x10111213,0x10111213
.long 0x00010203,0x04050607,0x08090a0b,0x10111213
.byte 83,72,65,50,53,54,32,102,111,114,32,80,111,119,101,114,73,83,65,32,50,46,48,55,44,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align 2
.align 2

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,834 @@
/* $FreeBSD$ */
/* Do not modify. This file is auto-generated from sha512p8-ppc.pl. */
.machine "any"
.text
.globl sha512_block_p8
.type sha512_block_p8,@function
.align 6
sha512_block_p8:
stwu 1,-328(1)
mflr 8
li 10,175
li 11,191
stvx 24,10,1
addi 10,10,32
mfspr 12,256
stvx 25,11,1
addi 11,11,32
stvx 26,10,1
addi 10,10,32
stvx 27,11,1
addi 11,11,32
stvx 28,10,1
addi 10,10,32
stvx 29,11,1
addi 11,11,32
stvx 30,10,1
stvx 31,11,1
li 11,-4096+255
stw 12,300(1)
li 10,0x10
stw 26,304(1)
li 26,0x20
stw 27,308(1)
li 27,0x30
stw 28,312(1)
li 28,0x40
stw 29,316(1)
li 29,0x50
stw 30,320(1)
li 30,0x60
stw 31,324(1)
li 31,0x70
stw 8,332(1)
mtspr 256,11
bl .LPICmeup
addi 11,1,47
.long 0x7C001E99
.long 0x7C4A1E99
.long 0x7C9A1E99
vsldoi 1,0,0,8
.long 0x7CDB1E99
vsldoi 3,2,2,8
vsldoi 5,4,4,8
vsldoi 7,6,6,8
li 0,4
b .Loop
.align 5
.Loop:
lvx 28,0,6
.long 0x7D002699
addi 4,4,16
mr 7,6
stvx 0,0,11
stvx 1,10,11
stvx 2,26,11
stvx 3,27,11
stvx 4,28,11
stvx 5,29,11
stvx 6,30,11
stvx 7,31,11
.long 0x10E7E0C0
lvx 28,10,6
.long 0x10E740C0
vsel 29,6,5,4
.long 0x10C6E0C0
.long 0x10E7E8C0
.long 0x13C4FEC2
.long 0x10E7F0C0
vxor 29,0,1
vsel 29,1,2,29
.long 0x106338C0
.long 0x13C086C2
.long 0x13DEE8C0
.long 0x10E7F0C0
lvx 28,26,7
.long 0x7D402699
addi 4,4,16
vsldoi 9,8,8,8
.long 0x10C648C0
vsel 29,5,4,3
.long 0x10A5E0C0
.long 0x10C6E8C0
.long 0x13C3FEC2
.long 0x10C6F0C0
vxor 29,7,0
vsel 29,0,1,29
.long 0x104230C0
.long 0x13C786C2
.long 0x13DEE8C0
.long 0x10C6F0C0
lvx 28,27,7
.long 0x10A550C0
vsel 29,4,3,2
.long 0x1084E0C0
.long 0x10A5E8C0
.long 0x13C2FEC2
.long 0x10A5F0C0
vxor 29,6,7
vsel 29,7,0,29
.long 0x102128C0
.long 0x13C686C2
.long 0x13DEE8C0
.long 0x10A5F0C0
lvx 28,28,7
.long 0x7D802699
addi 4,4,16
vsldoi 11,10,10,8
.long 0x108458C0
vsel 29,3,2,1
.long 0x1063E0C0
.long 0x1084E8C0
.long 0x13C1FEC2
.long 0x1084F0C0
vxor 29,5,6
vsel 29,6,7,29
.long 0x100020C0
.long 0x13C586C2
.long 0x13DEE8C0
.long 0x1084F0C0
lvx 28,29,7
.long 0x106360C0
vsel 29,2,1,0
.long 0x1042E0C0
.long 0x1063E8C0
.long 0x13C0FEC2
.long 0x1063F0C0
vxor 29,4,5
vsel 29,5,6,29
.long 0x10E718C0
.long 0x13C486C2
.long 0x13DEE8C0
.long 0x1063F0C0
lvx 28,30,7
.long 0x7DC02699
addi 4,4,16
vsldoi 13,12,12,8
.long 0x104268C0
vsel 29,1,0,7
.long 0x1021E0C0
.long 0x1042E8C0
.long 0x13C7FEC2
.long 0x1042F0C0
vxor 29,3,4
vsel 29,4,5,29
.long 0x10C610C0
.long 0x13C386C2
.long 0x13DEE8C0
.long 0x1042F0C0
lvx 28,31,7
addi 7,7,0x80
.long 0x102170C0
vsel 29,0,7,6
.long 0x1000E0C0
.long 0x1021E8C0
.long 0x13C6FEC2
.long 0x1021F0C0
vxor 29,2,3
vsel 29,3,4,29
.long 0x10A508C0
.long 0x13C286C2
.long 0x13DEE8C0
.long 0x1021F0C0
lvx 28,0,7
.long 0x7E002699
addi 4,4,16
vsldoi 15,14,14,8
.long 0x100078C0
vsel 29,7,6,5
.long 0x10E7E0C0
.long 0x1000E8C0
.long 0x13C5FEC2
.long 0x1000F0C0
vxor 29,1,2
vsel 29,2,3,29
.long 0x108400C0
.long 0x13C186C2
.long 0x13DEE8C0
.long 0x1000F0C0
lvx 28,10,7
.long 0x10E780C0
vsel 29,6,5,4
.long 0x10C6E0C0
.long 0x10E7E8C0
.long 0x13C4FEC2
.long 0x10E7F0C0
vxor 29,0,1
vsel 29,1,2,29
.long 0x106338C0
.long 0x13C086C2
.long 0x13DEE8C0
.long 0x10E7F0C0
lvx 28,26,7
.long 0x7E402699
addi 4,4,16
vsldoi 17,16,16,8
.long 0x10C688C0
vsel 29,5,4,3
.long 0x10A5E0C0
.long 0x10C6E8C0
.long 0x13C3FEC2
.long 0x10C6F0C0
vxor 29,7,0
vsel 29,0,1,29
.long 0x104230C0
.long 0x13C786C2
.long 0x13DEE8C0
.long 0x10C6F0C0
lvx 28,27,7
.long 0x10A590C0
vsel 29,4,3,2
.long 0x1084E0C0
.long 0x10A5E8C0
.long 0x13C2FEC2
.long 0x10A5F0C0
vxor 29,6,7
vsel 29,7,0,29
.long 0x102128C0
.long 0x13C686C2
.long 0x13DEE8C0
.long 0x10A5F0C0
lvx 28,28,7
.long 0x7F002699
addi 4,4,16
vsldoi 19,18,18,8
.long 0x108498C0
vsel 29,3,2,1
.long 0x1063E0C0
.long 0x1084E8C0
.long 0x13C1FEC2
.long 0x1084F0C0
vxor 29,5,6
vsel 29,6,7,29
.long 0x100020C0
.long 0x13C586C2
.long 0x13DEE8C0
.long 0x1084F0C0
lvx 28,29,7
.long 0x1063C0C0
vsel 29,2,1,0
.long 0x1042E0C0
.long 0x1063E8C0
.long 0x13C0FEC2
.long 0x1063F0C0
vxor 29,4,5
vsel 29,5,6,29
.long 0x10E718C0
.long 0x13C486C2
.long 0x13DEE8C0
.long 0x1063F0C0
lvx 28,30,7
.long 0x7F402699
addi 4,4,16
vsldoi 25,24,24,8
.long 0x1042C8C0
vsel 29,1,0,7
.long 0x1021E0C0
.long 0x1042E8C0
.long 0x13C7FEC2
.long 0x1042F0C0
vxor 29,3,4
vsel 29,4,5,29
.long 0x10C610C0
.long 0x13C386C2
.long 0x13DEE8C0
.long 0x1042F0C0
lvx 28,31,7
addi 7,7,0x80
.long 0x1021D0C0
vsel 29,0,7,6
.long 0x1000E0C0
.long 0x1021E8C0
.long 0x13C6FEC2
.long 0x1021F0C0
vxor 29,2,3
vsel 29,3,4,29
.long 0x10A508C0
.long 0x13C286C2
.long 0x13DEE8C0
.long 0x1021F0C0
lvx 28,0,7
vsldoi 27,26,26,8
.long 0x13C906C2
.long 0x1108F0C0
.long 0x13DA7EC2
.long 0x1108F0C0
.long 0x110888C0
.long 0x1000D8C0
vsel 29,7,6,5
.long 0x10E7E0C0
.long 0x1000E8C0
.long 0x13C5FEC2
.long 0x1000F0C0
vxor 29,1,2
vsel 29,2,3,29
.long 0x108400C0
.long 0x13C186C2
.long 0x13DEE8C0
.long 0x1000F0C0
lvx 28,10,7
mtctr 0
b .L16_xx
.align 5
.L16_xx:
.long 0x13CA06C2
.long 0x1129F0C0
.long 0x13DB7EC2
.long 0x1129F0C0
.long 0x112990C0
.long 0x10E740C0
vsel 29,6,5,4
.long 0x10C6E0C0
.long 0x10E7E8C0
.long 0x13C4FEC2
.long 0x10E7F0C0
vxor 29,0,1
vsel 29,1,2,29
.long 0x106338C0
.long 0x13C086C2
.long 0x13DEE8C0
.long 0x10E7F0C0
lvx 28,26,7
.long 0x13CB06C2
.long 0x114AF0C0
.long 0x13C87EC2
.long 0x114AF0C0
.long 0x114A98C0
.long 0x10C648C0
vsel 29,5,4,3
.long 0x10A5E0C0
.long 0x10C6E8C0
.long 0x13C3FEC2
.long 0x10C6F0C0
vxor 29,7,0
vsel 29,0,1,29
.long 0x104230C0
.long 0x13C786C2
.long 0x13DEE8C0
.long 0x10C6F0C0
lvx 28,27,7
.long 0x13CC06C2
.long 0x116BF0C0
.long 0x13C97EC2
.long 0x116BF0C0
.long 0x116BC0C0
.long 0x10A550C0
vsel 29,4,3,2
.long 0x1084E0C0
.long 0x10A5E8C0
.long 0x13C2FEC2
.long 0x10A5F0C0
vxor 29,6,7
vsel 29,7,0,29
.long 0x102128C0
.long 0x13C686C2
.long 0x13DEE8C0
.long 0x10A5F0C0
lvx 28,28,7
.long 0x13CD06C2
.long 0x118CF0C0
.long 0x13CA7EC2
.long 0x118CF0C0
.long 0x118CC8C0
.long 0x108458C0
vsel 29,3,2,1
.long 0x1063E0C0
.long 0x1084E8C0
.long 0x13C1FEC2
.long 0x1084F0C0
vxor 29,5,6
vsel 29,6,7,29
.long 0x100020C0
.long 0x13C586C2
.long 0x13DEE8C0
.long 0x1084F0C0
lvx 28,29,7
.long 0x13CE06C2
.long 0x11ADF0C0
.long 0x13CB7EC2
.long 0x11ADF0C0
.long 0x11ADD0C0
.long 0x106360C0
vsel 29,2,1,0
.long 0x1042E0C0
.long 0x1063E8C0
.long 0x13C0FEC2
.long 0x1063F0C0
vxor 29,4,5
vsel 29,5,6,29
.long 0x10E718C0
.long 0x13C486C2
.long 0x13DEE8C0
.long 0x1063F0C0
lvx 28,30,7
.long 0x13CF06C2
.long 0x11CEF0C0
.long 0x13CC7EC2
.long 0x11CEF0C0
.long 0x11CED8C0
.long 0x104268C0
vsel 29,1,0,7
.long 0x1021E0C0
.long 0x1042E8C0
.long 0x13C7FEC2
.long 0x1042F0C0
vxor 29,3,4
vsel 29,4,5,29
.long 0x10C610C0
.long 0x13C386C2
.long 0x13DEE8C0
.long 0x1042F0C0
lvx 28,31,7
addi 7,7,0x80
.long 0x13D006C2
.long 0x11EFF0C0
.long 0x13CD7EC2
.long 0x11EFF0C0
.long 0x11EF40C0
.long 0x102170C0
vsel 29,0,7,6
.long 0x1000E0C0
.long 0x1021E8C0
.long 0x13C6FEC2
.long 0x1021F0C0
vxor 29,2,3
vsel 29,3,4,29
.long 0x10A508C0
.long 0x13C286C2
.long 0x13DEE8C0
.long 0x1021F0C0
lvx 28,0,7
.long 0x13D106C2
.long 0x1210F0C0
.long 0x13CE7EC2
.long 0x1210F0C0
.long 0x121048C0
.long 0x100078C0
vsel 29,7,6,5
.long 0x10E7E0C0
.long 0x1000E8C0
.long 0x13C5FEC2
.long 0x1000F0C0
vxor 29,1,2
vsel 29,2,3,29
.long 0x108400C0
.long 0x13C186C2
.long 0x13DEE8C0
.long 0x1000F0C0
lvx 28,10,7
.long 0x13D206C2
.long 0x1231F0C0
.long 0x13CF7EC2
.long 0x1231F0C0
.long 0x123150C0
.long 0x10E780C0
vsel 29,6,5,4
.long 0x10C6E0C0
.long 0x10E7E8C0
.long 0x13C4FEC2
.long 0x10E7F0C0
vxor 29,0,1
vsel 29,1,2,29
.long 0x106338C0
.long 0x13C086C2
.long 0x13DEE8C0
.long 0x10E7F0C0
lvx 28,26,7
.long 0x13D306C2
.long 0x1252F0C0
.long 0x13D07EC2
.long 0x1252F0C0
.long 0x125258C0
.long 0x10C688C0
vsel 29,5,4,3
.long 0x10A5E0C0
.long 0x10C6E8C0
.long 0x13C3FEC2
.long 0x10C6F0C0
vxor 29,7,0
vsel 29,0,1,29
.long 0x104230C0
.long 0x13C786C2
.long 0x13DEE8C0
.long 0x10C6F0C0
lvx 28,27,7
.long 0x13D806C2
.long 0x1273F0C0
.long 0x13D17EC2
.long 0x1273F0C0
.long 0x127360C0
.long 0x10A590C0
vsel 29,4,3,2
.long 0x1084E0C0
.long 0x10A5E8C0
.long 0x13C2FEC2
.long 0x10A5F0C0
vxor 29,6,7
vsel 29,7,0,29
.long 0x102128C0
.long 0x13C686C2
.long 0x13DEE8C0
.long 0x10A5F0C0
lvx 28,28,7
.long 0x13D906C2
.long 0x1318F0C0
.long 0x13D27EC2
.long 0x1318F0C0
.long 0x131868C0
.long 0x108498C0
vsel 29,3,2,1
.long 0x1063E0C0
.long 0x1084E8C0
.long 0x13C1FEC2
.long 0x1084F0C0
vxor 29,5,6
vsel 29,6,7,29
.long 0x100020C0
.long 0x13C586C2
.long 0x13DEE8C0
.long 0x1084F0C0
lvx 28,29,7
.long 0x13DA06C2
.long 0x1339F0C0
.long 0x13D37EC2
.long 0x1339F0C0
.long 0x133970C0
.long 0x1063C0C0
vsel 29,2,1,0
.long 0x1042E0C0
.long 0x1063E8C0
.long 0x13C0FEC2
.long 0x1063F0C0
vxor 29,4,5
vsel 29,5,6,29
.long 0x10E718C0
.long 0x13C486C2
.long 0x13DEE8C0
.long 0x1063F0C0
lvx 28,30,7
.long 0x13DB06C2
.long 0x135AF0C0
.long 0x13D87EC2
.long 0x135AF0C0
.long 0x135A78C0
.long 0x1042C8C0
vsel 29,1,0,7
.long 0x1021E0C0
.long 0x1042E8C0
.long 0x13C7FEC2
.long 0x1042F0C0
vxor 29,3,4
vsel 29,4,5,29
.long 0x10C610C0
.long 0x13C386C2
.long 0x13DEE8C0
.long 0x1042F0C0
lvx 28,31,7
addi 7,7,0x80
.long 0x13C806C2
.long 0x137BF0C0
.long 0x13D97EC2
.long 0x137BF0C0
.long 0x137B80C0
.long 0x1021D0C0
vsel 29,0,7,6
.long 0x1000E0C0
.long 0x1021E8C0
.long 0x13C6FEC2
.long 0x1021F0C0
vxor 29,2,3
vsel 29,3,4,29
.long 0x10A508C0
.long 0x13C286C2
.long 0x13DEE8C0
.long 0x1021F0C0
lvx 28,0,7
.long 0x13C906C2
.long 0x1108F0C0
.long 0x13DA7EC2
.long 0x1108F0C0
.long 0x110888C0
.long 0x1000D8C0
vsel 29,7,6,5
.long 0x10E7E0C0
.long 0x1000E8C0
.long 0x13C5FEC2
.long 0x1000F0C0
vxor 29,1,2
vsel 29,2,3,29
.long 0x108400C0
.long 0x13C186C2
.long 0x13DEE8C0
.long 0x1000F0C0
lvx 28,10,7
bdnz .L16_xx
lvx 10,0,11
subic. 5,5,1
lvx 11,10,11
.long 0x100050C0
lvx 12,26,11
.long 0x102158C0
lvx 13,27,11
.long 0x104260C0
lvx 14,28,11
.long 0x106368C0
lvx 15,29,11
.long 0x108470C0
lvx 16,30,11
.long 0x10A578C0
lvx 17,31,11
.long 0x10C680C0
.long 0x10E788C0
bne .Loop
vperm 0,0,1,28
vperm 2,2,3,28
vperm 4,4,5,28
vperm 6,6,7,28
.long 0x7C001F99
.long 0x7C4A1F99
.long 0x7C9A1F99
.long 0x7CDB1F99
addi 11,1,175
mtlr 8
mtspr 256,12
lvx 24,0,11
lvx 25,10,11
lvx 26,26,11
lvx 27,27,11
lvx 28,28,11
lvx 29,29,11
lvx 30,30,11
lvx 31,31,11
lwz 26,304(1)
lwz 27,308(1)
lwz 28,312(1)
lwz 29,316(1)
lwz 30,320(1)
lwz 31,324(1)
addi 1,1,328
blr
.long 0
.byte 0,12,4,1,0x80,6,3,0
.long 0
.size sha512_block_p8,.-sha512_block_p8
.align 6
.LPICmeup:
mflr 0
bcl 20,31,$+4
mflr 6
addi 6,6,56
mtlr 0
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.space 28
.long 0x428a2f98,0xd728ae22
.long 0x428a2f98,0xd728ae22
.long 0x71374491,0x23ef65cd
.long 0x71374491,0x23ef65cd
.long 0xb5c0fbcf,0xec4d3b2f
.long 0xb5c0fbcf,0xec4d3b2f
.long 0xe9b5dba5,0x8189dbbc
.long 0xe9b5dba5,0x8189dbbc
.long 0x3956c25b,0xf348b538
.long 0x3956c25b,0xf348b538
.long 0x59f111f1,0xb605d019
.long 0x59f111f1,0xb605d019
.long 0x923f82a4,0xaf194f9b
.long 0x923f82a4,0xaf194f9b
.long 0xab1c5ed5,0xda6d8118
.long 0xab1c5ed5,0xda6d8118
.long 0xd807aa98,0xa3030242
.long 0xd807aa98,0xa3030242
.long 0x12835b01,0x45706fbe
.long 0x12835b01,0x45706fbe
.long 0x243185be,0x4ee4b28c
.long 0x243185be,0x4ee4b28c
.long 0x550c7dc3,0xd5ffb4e2
.long 0x550c7dc3,0xd5ffb4e2
.long 0x72be5d74,0xf27b896f
.long 0x72be5d74,0xf27b896f
.long 0x80deb1fe,0x3b1696b1
.long 0x80deb1fe,0x3b1696b1
.long 0x9bdc06a7,0x25c71235
.long 0x9bdc06a7,0x25c71235
.long 0xc19bf174,0xcf692694
.long 0xc19bf174,0xcf692694
.long 0xe49b69c1,0x9ef14ad2
.long 0xe49b69c1,0x9ef14ad2
.long 0xefbe4786,0x384f25e3
.long 0xefbe4786,0x384f25e3
.long 0x0fc19dc6,0x8b8cd5b5
.long 0x0fc19dc6,0x8b8cd5b5
.long 0x240ca1cc,0x77ac9c65
.long 0x240ca1cc,0x77ac9c65
.long 0x2de92c6f,0x592b0275
.long 0x2de92c6f,0x592b0275
.long 0x4a7484aa,0x6ea6e483
.long 0x4a7484aa,0x6ea6e483
.long 0x5cb0a9dc,0xbd41fbd4
.long 0x5cb0a9dc,0xbd41fbd4
.long 0x76f988da,0x831153b5
.long 0x76f988da,0x831153b5
.long 0x983e5152,0xee66dfab
.long 0x983e5152,0xee66dfab
.long 0xa831c66d,0x2db43210
.long 0xa831c66d,0x2db43210
.long 0xb00327c8,0x98fb213f
.long 0xb00327c8,0x98fb213f
.long 0xbf597fc7,0xbeef0ee4
.long 0xbf597fc7,0xbeef0ee4
.long 0xc6e00bf3,0x3da88fc2
.long 0xc6e00bf3,0x3da88fc2
.long 0xd5a79147,0x930aa725
.long 0xd5a79147,0x930aa725
.long 0x06ca6351,0xe003826f
.long 0x06ca6351,0xe003826f
.long 0x14292967,0x0a0e6e70
.long 0x14292967,0x0a0e6e70
.long 0x27b70a85,0x46d22ffc
.long 0x27b70a85,0x46d22ffc
.long 0x2e1b2138,0x5c26c926
.long 0x2e1b2138,0x5c26c926
.long 0x4d2c6dfc,0x5ac42aed
.long 0x4d2c6dfc,0x5ac42aed
.long 0x53380d13,0x9d95b3df
.long 0x53380d13,0x9d95b3df
.long 0x650a7354,0x8baf63de
.long 0x650a7354,0x8baf63de
.long 0x766a0abb,0x3c77b2a8
.long 0x766a0abb,0x3c77b2a8
.long 0x81c2c92e,0x47edaee6
.long 0x81c2c92e,0x47edaee6
.long 0x92722c85,0x1482353b
.long 0x92722c85,0x1482353b
.long 0xa2bfe8a1,0x4cf10364
.long 0xa2bfe8a1,0x4cf10364
.long 0xa81a664b,0xbc423001
.long 0xa81a664b,0xbc423001
.long 0xc24b8b70,0xd0f89791
.long 0xc24b8b70,0xd0f89791
.long 0xc76c51a3,0x0654be30
.long 0xc76c51a3,0x0654be30
.long 0xd192e819,0xd6ef5218
.long 0xd192e819,0xd6ef5218
.long 0xd6990624,0x5565a910
.long 0xd6990624,0x5565a910
.long 0xf40e3585,0x5771202a
.long 0xf40e3585,0x5771202a
.long 0x106aa070,0x32bbd1b8
.long 0x106aa070,0x32bbd1b8
.long 0x19a4c116,0xb8d2d0c8
.long 0x19a4c116,0xb8d2d0c8
.long 0x1e376c08,0x5141ab53
.long 0x1e376c08,0x5141ab53
.long 0x2748774c,0xdf8eeb99
.long 0x2748774c,0xdf8eeb99
.long 0x34b0bcb5,0xe19b48a8
.long 0x34b0bcb5,0xe19b48a8
.long 0x391c0cb3,0xc5c95a63
.long 0x391c0cb3,0xc5c95a63
.long 0x4ed8aa4a,0xe3418acb
.long 0x4ed8aa4a,0xe3418acb
.long 0x5b9cca4f,0x7763e373
.long 0x5b9cca4f,0x7763e373
.long 0x682e6ff3,0xd6b2b8a3
.long 0x682e6ff3,0xd6b2b8a3
.long 0x748f82ee,0x5defb2fc
.long 0x748f82ee,0x5defb2fc
.long 0x78a5636f,0x43172f60
.long 0x78a5636f,0x43172f60
.long 0x84c87814,0xa1f0ab72
.long 0x84c87814,0xa1f0ab72
.long 0x8cc70208,0x1a6439ec
.long 0x8cc70208,0x1a6439ec
.long 0x90befffa,0x23631e28
.long 0x90befffa,0x23631e28
.long 0xa4506ceb,0xde82bde9
.long 0xa4506ceb,0xde82bde9
.long 0xbef9a3f7,0xb2c67915
.long 0xbef9a3f7,0xb2c67915
.long 0xc67178f2,0xe372532b
.long 0xc67178f2,0xe372532b
.long 0xca273ece,0xea26619c
.long 0xca273ece,0xea26619c
.long 0xd186b8c7,0x21c0c207
.long 0xd186b8c7,0x21c0c207
.long 0xeada7dd6,0xcde0eb1e
.long 0xeada7dd6,0xcde0eb1e
.long 0xf57d4f7f,0xee6ed178
.long 0xf57d4f7f,0xee6ed178
.long 0x06f067aa,0x72176fba
.long 0x06f067aa,0x72176fba
.long 0x0a637dc5,0xa2c898a6
.long 0x0a637dc5,0xa2c898a6
.long 0x113f9804,0xbef90dae
.long 0x113f9804,0xbef90dae
.long 0x1b710b35,0x131c471b
.long 0x1b710b35,0x131c471b
.long 0x28db77f5,0x23047d84
.long 0x28db77f5,0x23047d84
.long 0x32caab7b,0x40c72493
.long 0x32caab7b,0x40c72493
.long 0x3c9ebe0a,0x15c9bebc
.long 0x3c9ebe0a,0x15c9bebc
.long 0x431d67c4,0x9c100d4c
.long 0x431d67c4,0x9c100d4c
.long 0x4cc5d4be,0xcb3e42b6
.long 0x4cc5d4be,0xcb3e42b6
.long 0x597f299c,0xfc657e2a
.long 0x597f299c,0xfc657e2a
.long 0x5fcb6fab,0x3ad6faec
.long 0x5fcb6fab,0x3ad6faec
.long 0x6c44198c,0x4a475817
.long 0x6c44198c,0x4a475817
.long 0,0
.long 0,0
.long 0x00010203,0x04050607
.long 0x10111213,0x14151617
.byte 83,72,65,53,49,50,32,102,111,114,32,80,111,119,101,114,73,83,65,32,50,46,48,55,44,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align 2
.align 2

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,577 @@
/* $FreeBSD$ */
/* Do not modify. This file is auto-generated from ghashp8-ppc.pl. */
.machine "any"
.abiversion 2
.text
.globl gcm_init_p8
.type gcm_init_p8,@function
.align 5
gcm_init_p8:
.localentry gcm_init_p8,0
li 0,-4096
li 8,0x10
li 12,-1
li 9,0x20
or 0,0,0
li 10,0x30
.long 0x7D202699
vspltisb 8,-16
vspltisb 5,1
vaddubm 8,8,8
vxor 4,4,4
vor 8,8,5
vsldoi 8,8,4,15
vsldoi 6,4,5,1
vaddubm 8,8,8
vspltisb 7,7
vor 8,8,6
vspltb 6,9,0
vsl 9,9,5
vsrab 6,6,7
vand 6,6,8
vxor 3,9,6
vsldoi 9,3,3,8
vsldoi 8,4,8,8
vsldoi 11,4,9,8
vsldoi 10,9,4,8
.long 0x7D001F99
.long 0x7D681F99
li 8,0x40
.long 0x7D291F99
li 9,0x50
.long 0x7D4A1F99
li 10,0x60
.long 0x10035CC8
.long 0x10234CC8
.long 0x104354C8
.long 0x10E044C8
vsldoi 5,1,4,8
vsldoi 6,4,1,8
vxor 0,0,5
vxor 2,2,6
vsldoi 0,0,0,8
vxor 0,0,7
vsldoi 6,0,0,8
.long 0x100044C8
vxor 6,6,2
vxor 16,0,6
vsldoi 17,16,16,8
vsldoi 19,4,17,8
vsldoi 18,17,4,8
.long 0x7E681F99
li 8,0x70
.long 0x7E291F99
li 9,0x80
.long 0x7E4A1F99
li 10,0x90
.long 0x10039CC8
.long 0x11B09CC8
.long 0x10238CC8
.long 0x11D08CC8
.long 0x104394C8
.long 0x11F094C8
.long 0x10E044C8
.long 0x114D44C8
vsldoi 5,1,4,8
vsldoi 6,4,1,8
vsldoi 11,14,4,8
vsldoi 9,4,14,8
vxor 0,0,5
vxor 2,2,6
vxor 13,13,11
vxor 15,15,9
vsldoi 0,0,0,8
vsldoi 13,13,13,8
vxor 0,0,7
vxor 13,13,10
vsldoi 6,0,0,8
vsldoi 9,13,13,8
.long 0x100044C8
.long 0x11AD44C8
vxor 6,6,2
vxor 9,9,15
vxor 0,0,6
vxor 13,13,9
vsldoi 9,0,0,8
vsldoi 17,13,13,8
vsldoi 11,4,9,8
vsldoi 10,9,4,8
vsldoi 19,4,17,8
vsldoi 18,17,4,8
.long 0x7D681F99
li 8,0xa0
.long 0x7D291F99
li 9,0xb0
.long 0x7D4A1F99
li 10,0xc0
.long 0x7E681F99
.long 0x7E291F99
.long 0x7E4A1F99
or 12,12,12
blr
.long 0
.byte 0,12,0x14,0,0,0,2,0
.long 0
.size gcm_init_p8,.-gcm_init_p8
.globl gcm_gmult_p8
.type gcm_gmult_p8,@function
.align 5
gcm_gmult_p8:
.localentry gcm_gmult_p8,0
lis 0,0xfff8
li 8,0x10
li 12,-1
li 9,0x20
or 0,0,0
li 10,0x30
.long 0x7C601E99
.long 0x7D682699
.long 0x7D292699
.long 0x7D4A2699
.long 0x7D002699
vxor 4,4,4
.long 0x10035CC8
.long 0x10234CC8
.long 0x104354C8
.long 0x10E044C8
vsldoi 5,1,4,8
vsldoi 6,4,1,8
vxor 0,0,5
vxor 2,2,6
vsldoi 0,0,0,8
vxor 0,0,7
vsldoi 6,0,0,8
.long 0x100044C8
vxor 6,6,2
vxor 0,0,6
.long 0x7C001F99
or 12,12,12
blr
.long 0
.byte 0,12,0x14,0,0,0,2,0
.long 0
.size gcm_gmult_p8,.-gcm_gmult_p8
.globl gcm_ghash_p8
.type gcm_ghash_p8,@function
.align 5
gcm_ghash_p8:
.localentry gcm_ghash_p8,0
li 0,-4096
li 8,0x10
li 12,-1
li 9,0x20
or 0,0,0
li 10,0x30
.long 0x7C001E99
.long 0x7D682699
li 8,0x40
.long 0x7D292699
li 9,0x50
.long 0x7D4A2699
li 10,0x60
.long 0x7D002699
vxor 4,4,4
cmpldi 6,64
bge .Lgcm_ghash_p8_4x
.long 0x7C602E99
addi 5,5,16
subic. 6,6,16
vxor 3,3,0
beq .Lshort
.long 0x7E682699
li 8,16
.long 0x7E292699
add 9,5,6
.long 0x7E4A2699
b .Loop_2x
.align 5
.Loop_2x:
.long 0x7E002E99
subic 6,6,32
.long 0x10039CC8
.long 0x11B05CC8
subfe 0,0,0
.long 0x10238CC8
.long 0x11D04CC8
and 0,0,6
.long 0x104394C8
.long 0x11F054C8
add 5,5,0
vxor 0,0,13
vxor 1,1,14
.long 0x10E044C8
vsldoi 5,1,4,8
vsldoi 6,4,1,8
vxor 2,2,15
vxor 0,0,5
vxor 2,2,6
vsldoi 0,0,0,8
vxor 0,0,7
.long 0x7C682E99
addi 5,5,32
vsldoi 6,0,0,8
.long 0x100044C8
vxor 6,6,2
vxor 3,3,6
vxor 3,3,0
cmpld 9,5
bgt .Loop_2x
cmplwi 6,0
bne .Leven
.Lshort:
.long 0x10035CC8
.long 0x10234CC8
.long 0x104354C8
.long 0x10E044C8
vsldoi 5,1,4,8
vsldoi 6,4,1,8
vxor 0,0,5
vxor 2,2,6
vsldoi 0,0,0,8
vxor 0,0,7
vsldoi 6,0,0,8
.long 0x100044C8
vxor 6,6,2
.Leven:
vxor 0,0,6
.long 0x7C001F99
or 12,12,12
blr
.long 0
.byte 0,12,0x14,0,0,0,4,0
.long 0
.align 5
.gcm_ghash_p8_4x:
.Lgcm_ghash_p8_4x:
stdu 1,-256(1)
li 10,63
li 11,79
stvx 20,10,1
addi 10,10,32
stvx 21,11,1
addi 11,11,32
stvx 22,10,1
addi 10,10,32
stvx 23,11,1
addi 11,11,32
stvx 24,10,1
addi 10,10,32
stvx 25,11,1
addi 11,11,32
stvx 26,10,1
addi 10,10,32
stvx 27,11,1
addi 11,11,32
stvx 28,10,1
addi 10,10,32
stvx 29,11,1
addi 11,11,32
stvx 30,10,1
li 10,0x60
stvx 31,11,1
li 0,-1
stw 12,252(1)
or 0,0,0
lvsl 5,0,8
li 8,0x70
.long 0x7E292699
li 9,0x80
vspltisb 6,8
li 10,0x90
.long 0x7EE82699
li 8,0xa0
.long 0x7F092699
li 9,0xb0
.long 0x7F2A2699
li 10,0xc0
.long 0x7FA82699
li 8,0x10
.long 0x7FC92699
li 9,0x20
.long 0x7FEA2699
li 10,0x30
vsldoi 7,4,6,8
vaddubm 18,5,7
vaddubm 19,6,18
srdi 6,6,4
.long 0x7C602E99
.long 0x7E082E99
subic. 6,6,8
.long 0x7EC92E99
.long 0x7F8A2E99
addi 5,5,0x40
vxor 2,3,0
.long 0x11B0BCC8
.long 0x11D0C4C8
.long 0x11F0CCC8
vperm 11,17,9,18
vperm 5,22,28,19
vperm 10,17,9,19
vperm 6,22,28,18
.long 0x12B68CC8
.long 0x12855CC8
.long 0x137C4CC8
.long 0x134654C8
vxor 21,21,14
vxor 20,20,13
vxor 27,27,21
vxor 26,26,15
blt .Ltail_4x
.Loop_4x:
.long 0x7C602E99
.long 0x7E082E99
subic. 6,6,4
.long 0x7EC92E99
.long 0x7F8A2E99
addi 5,5,0x40
.long 0x1002ECC8
.long 0x1022F4C8
.long 0x1042FCC8
.long 0x11B0BCC8
.long 0x11D0C4C8
.long 0x11F0CCC8
vxor 0,0,20
vxor 1,1,27
vxor 2,2,26
vperm 5,22,28,19
vperm 6,22,28,18
.long 0x10E044C8
.long 0x12855CC8
.long 0x134654C8
vsldoi 5,1,4,8
vsldoi 6,4,1,8
vxor 0,0,5
vxor 2,2,6
vsldoi 0,0,0,8
vxor 0,0,7
vsldoi 6,0,0,8
.long 0x12B68CC8
.long 0x137C4CC8
.long 0x100044C8
vxor 20,20,13
vxor 26,26,15
vxor 2,2,3
vxor 21,21,14
vxor 2,2,6
vxor 27,27,21
vxor 2,2,0
bge .Loop_4x
.Ltail_4x:
.long 0x1002ECC8
.long 0x1022F4C8
.long 0x1042FCC8
vxor 0,0,20
vxor 1,1,27
.long 0x10E044C8
vsldoi 5,1,4,8
vsldoi 6,4,1,8
vxor 2,2,26
vxor 0,0,5
vxor 2,2,6
vsldoi 0,0,0,8
vxor 0,0,7
vsldoi 6,0,0,8
.long 0x100044C8
vxor 6,6,2
vxor 0,0,6
addic. 6,6,4
beq .Ldone_4x
.long 0x7C602E99
cmpldi 6,2
li 6,-4
blt .Lone
.long 0x7E082E99
beq .Ltwo
.Lthree:
.long 0x7EC92E99
vxor 2,3,0
vor 29,23,23
vor 30,24,24
vor 31,25,25
vperm 5,16,22,19
vperm 6,16,22,18
.long 0x12B08CC8
.long 0x13764CC8
.long 0x12855CC8
.long 0x134654C8
vxor 27,27,21
b .Ltail_4x
.align 4
.Ltwo:
vxor 2,3,0
vperm 5,4,16,19
vperm 6,4,16,18
vsldoi 29,4,17,8
vor 30,17,17
vsldoi 31,17,4,8
.long 0x12855CC8
.long 0x13704CC8
.long 0x134654C8
b .Ltail_4x
.align 4
.Lone:
vsldoi 29,4,9,8
vor 30,9,9
vsldoi 31,9,4,8
vxor 2,3,0
vxor 20,20,20
vxor 27,27,27
vxor 26,26,26
b .Ltail_4x
.Ldone_4x:
.long 0x7C001F99
li 10,63
li 11,79
or 12,12,12
lvx 20,10,1
addi 10,10,32
lvx 21,11,1
addi 11,11,32
lvx 22,10,1
addi 10,10,32
lvx 23,11,1
addi 11,11,32
lvx 24,10,1
addi 10,10,32
lvx 25,11,1
addi 11,11,32
lvx 26,10,1
addi 10,10,32
lvx 27,11,1
addi 11,11,32
lvx 28,10,1
addi 10,10,32
lvx 29,11,1
addi 11,11,32
lvx 30,10,1
lvx 31,11,1
addi 1,1,256
blr
.long 0
.byte 0,12,0x04,0,0x80,0,4,0
.long 0
.size gcm_ghash_p8,.-gcm_ghash_p8
.byte 71,72,65,83,72,32,102,111,114,32,80,111,119,101,114,73,83,65,32,50,46,48,55,44,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align 2
.align 2

View file

@ -0,0 +1,671 @@
/* $FreeBSD$ */
/* Do not modify. This file is auto-generated from keccak1600-ppc64.pl. */
.abiversion 2
.text
.type KeccakF1600_int,@function
.align 5
KeccakF1600_int:
.localentry KeccakF1600_int,0
li 0,24
mtctr 0
b .Loop
.align 4
.Loop:
xor 0,7,12
std 11,96(1)
xor 3,8,6
std 16,104(1)
xor 4,9,14
std 21,112(1)
xor 5,10,15
std 26,120(1)
xor 11,11,16
xor 0,0,17
xor 3,3,18
xor 4,4,19
xor 5,5,20
xor 11,11,21
xor 0,0,22
xor 3,3,23
xor 4,4,24
xor 5,5,25
xor 11,11,26
xor 0,0,27
xor 4,4,29
xor 3,3,28
xor 5,5,30
rotldi 16,4,1
xor 11,11,31
rotldi 21,5,1
xor 16,16,0
rotldi 26,11,1
xor 8,8,16
xor 6,6,16
xor 18,18,16
xor 23,23,16
xor 28,28,16
rotldi 16,0,1
xor 21,21,3
xor 4,4,26
rotldi 26,3,1
xor 5,5,16
xor 11,11,26
xor 3, 9,21
xor 14,14,21
xor 19,19,21
xor 24,24,21
xor 29,29,21
xor 7,7,11
xor 12,12,11
xor 17,17,11
xor 22,22,11
xor 27,27,11
ld 11,96(1)
xor 0, 10,4
ld 16,104(1)
xor 15,15,4
ld 21,112(1)
xor 20,20,4
ld 26,120(1)
xor 25,25,4
xor 30,30,4
xor 4, 11,5
xor 16,16,5
xor 21,21,5
xor 26,26,5
xor 31,31,5
mr 5,8
rotldi 8,6,44
rotldi 9,19,43
rotldi 10,25,21
rotldi 11,31,14
rotldi 6,16,20
rotldi 19,20,25
rotldi 25,24,15
rotldi 31,28,2
rotldi 16,29,61
rotldi 20,26,8
rotldi 24,18,10
rotldi 28,15,55
rotldi 29,21,39
rotldi 26,30,56
rotldi 18,14,6
rotldi 15,23,45
rotldi 21,27,18
rotldi 30,22,41
rotldi 14,17,3
rotldi 23,12,36
rotldi 12,0,28
rotldi 17,5,1
rotldi 22,4,27
rotldi 27,3,62
andc 0,9,8
andc 3,10,9
andc 4,7,11
andc 5,8,7
xor 7,7,0
andc 0,11,10
xor 8,8,3
ld 3,80(1)
xor 10,10,4
xor 11,11,5
xor 9,9,0
ldu 5,8(3)
andc 0,14,6
std 3,80(1)
andc 3,15,14
andc 4,12,16
xor 7,7,5
andc 5,6,12
xor 12,12,0
andc 0,16,15
xor 6,6,3
xor 15,15,4
xor 16,16,5
xor 14,14,0
andc 0,19,18
andc 3,20,19
andc 4,17,21
andc 5,18,17
xor 17,17,0
andc 0,21,20
xor 18,18,3
xor 20,20,4
xor 21,21,5
xor 19,19,0
andc 0,24,23
andc 3,25,24
andc 4,22,26
andc 5,23,22
xor 22,22,0
andc 0,26,25
xor 23,23,3
xor 25,25,4
xor 26,26,5
xor 24,24,0
andc 0,29,28
andc 3,30,29
andc 4,27,31
andc 5,28,27
xor 27,27,0
andc 0,31,30
xor 28,28,3
xor 30,30,4
xor 31,31,5
xor 29,29,0
bdnz .Loop
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.size KeccakF1600_int,.-KeccakF1600_int
.type KeccakF1600,@function
.align 5
KeccakF1600:
.localentry KeccakF1600,0
stdu 1,-272(1)
mflr 0
std 14,128(1)
std 15,136(1)
std 16,144(1)
std 17,152(1)
std 18,160(1)
std 19,168(1)
std 20,176(1)
std 21,184(1)
std 22,192(1)
std 23,200(1)
std 24,208(1)
std 25,216(1)
std 26,224(1)
std 27,232(1)
std 28,240(1)
std 29,248(1)
std 30,256(1)
std 31,264(1)
std 0,288(1)
bl PICmeup
subi 12,12,8
std 3,48(1)
std 12,80(1)
ld 7,0(3)
ld 8,8(3)
ld 9,16(3)
ld 10,24(3)
ld 11,32(3)
ld 12,40(3)
ld 6,48(3)
ld 14,56(3)
ld 15,64(3)
ld 16,72(3)
ld 17,80(3)
ld 18,88(3)
ld 19,96(3)
ld 20,104(3)
ld 21,112(3)
ld 22,120(3)
ld 23,128(3)
ld 24,136(3)
ld 25,144(3)
ld 26,152(3)
ld 27,160(3)
ld 28,168(3)
ld 29,176(3)
ld 30,184(3)
ld 31,192(3)
bl KeccakF1600_int
ld 3,48(1)
std 7,0(3)
std 8,8(3)
std 9,16(3)
std 10,24(3)
std 11,32(3)
std 12,40(3)
std 6,48(3)
std 14,56(3)
std 15,64(3)
std 16,72(3)
std 17,80(3)
std 18,88(3)
std 19,96(3)
std 20,104(3)
std 21,112(3)
std 22,120(3)
std 23,128(3)
std 24,136(3)
std 25,144(3)
std 26,152(3)
std 27,160(3)
std 28,168(3)
std 29,176(3)
std 30,184(3)
std 31,192(3)
ld 0,288(1)
ld 14,128(1)
ld 15,136(1)
ld 16,144(1)
ld 17,152(1)
ld 18,160(1)
ld 19,168(1)
ld 20,176(1)
ld 21,184(1)
ld 22,192(1)
ld 23,200(1)
ld 24,208(1)
ld 25,216(1)
ld 26,224(1)
ld 27,232(1)
ld 28,240(1)
ld 29,248(1)
ld 30,256(1)
ld 31,264(1)
mtlr 0
addi 1,1,272
blr
.long 0
.byte 0,12,4,1,0x80,18,1,0
.long 0
.size KeccakF1600,.-KeccakF1600
.type dword_le_load,@function
.align 5
dword_le_load:
.localentry dword_le_load,0
lbzu 0,1(3)
lbzu 4,1(3)
lbzu 5,1(3)
insrdi 0,4,8,48
lbzu 4,1(3)
insrdi 0,5,8,40
lbzu 5,1(3)
insrdi 0,4,8,32
lbzu 4,1(3)
insrdi 0,5,8,24
lbzu 5,1(3)
insrdi 0,4,8,16
lbzu 4,1(3)
insrdi 0,5,8,8
insrdi 0,4,8,0
blr
.long 0
.byte 0,12,0x14,0,0,0,1,0
.long 0
.size dword_le_load,.-dword_le_load
.globl SHA3_absorb
.type SHA3_absorb,@function
.type SHA3_absorb,@function
.align 5
SHA3_absorb:
.localentry SHA3_absorb,0
stdu 1,-272(1)
mflr 0
std 14,128(1)
std 15,136(1)
std 16,144(1)
std 17,152(1)
std 18,160(1)
std 19,168(1)
std 20,176(1)
std 21,184(1)
std 22,192(1)
std 23,200(1)
std 24,208(1)
std 25,216(1)
std 26,224(1)
std 27,232(1)
std 28,240(1)
std 29,248(1)
std 30,256(1)
std 31,264(1)
std 0,288(1)
bl PICmeup
subi 4,4,1
subi 12,12,8
std 3,48(1)
std 4,56(1)
std 5,64(1)
std 6,72(1)
mr 0,6
std 12,80(1)
ld 7,0(3)
ld 8,8(3)
ld 9,16(3)
ld 10,24(3)
ld 11,32(3)
ld 12,40(3)
ld 6,48(3)
ld 14,56(3)
ld 15,64(3)
ld 16,72(3)
ld 17,80(3)
ld 18,88(3)
ld 19,96(3)
ld 20,104(3)
ld 21,112(3)
ld 22,120(3)
ld 23,128(3)
ld 24,136(3)
ld 25,144(3)
ld 26,152(3)
ld 27,160(3)
ld 28,168(3)
ld 29,176(3)
ld 30,184(3)
ld 31,192(3)
mr 3,4
mr 4,5
mr 5,0
b .Loop_absorb
.align 4
.Loop_absorb:
cmpld 4,5
blt .Labsorbed
sub 4,4,5
srwi 5,5,3
std 4,64(1)
mtctr 5
bl dword_le_load
xor 7,7,0
bdz .Lprocess_block
bl dword_le_load
xor 8,8,0
bdz .Lprocess_block
bl dword_le_load
xor 9,9,0
bdz .Lprocess_block
bl dword_le_load
xor 10,10,0
bdz .Lprocess_block
bl dword_le_load
xor 11,11,0
bdz .Lprocess_block
bl dword_le_load
xor 12,12,0
bdz .Lprocess_block
bl dword_le_load
xor 6,6,0
bdz .Lprocess_block
bl dword_le_load
xor 14,14,0
bdz .Lprocess_block
bl dword_le_load
xor 15,15,0
bdz .Lprocess_block
bl dword_le_load
xor 16,16,0
bdz .Lprocess_block
bl dword_le_load
xor 17,17,0
bdz .Lprocess_block
bl dword_le_load
xor 18,18,0
bdz .Lprocess_block
bl dword_le_load
xor 19,19,0
bdz .Lprocess_block
bl dword_le_load
xor 20,20,0
bdz .Lprocess_block
bl dword_le_load
xor 21,21,0
bdz .Lprocess_block
bl dword_le_load
xor 22,22,0
bdz .Lprocess_block
bl dword_le_load
xor 23,23,0
bdz .Lprocess_block
bl dword_le_load
xor 24,24,0
bdz .Lprocess_block
bl dword_le_load
xor 25,25,0
bdz .Lprocess_block
bl dword_le_load
xor 26,26,0
bdz .Lprocess_block
bl dword_le_load
xor 27,27,0
bdz .Lprocess_block
bl dword_le_load
xor 28,28,0
bdz .Lprocess_block
bl dword_le_load
xor 29,29,0
bdz .Lprocess_block
bl dword_le_load
xor 30,30,0
bdz .Lprocess_block
bl dword_le_load
xor 31,31,0
.Lprocess_block:
std 3,56(1)
bl KeccakF1600_int
ld 0,80(1)
ld 5,72(1)
ld 4,64(1)
ld 3,56(1)
addic 0,0,-192
std 0,80(1)
b .Loop_absorb
.align 4
.Labsorbed:
ld 3,48(1)
std 7,0(3)
std 8,8(3)
std 9,16(3)
std 10,24(3)
std 11,32(3)
std 12,40(3)
std 6,48(3)
std 14,56(3)
std 15,64(3)
std 16,72(3)
std 17,80(3)
std 18,88(3)
std 19,96(3)
std 20,104(3)
std 21,112(3)
std 22,120(3)
std 23,128(3)
std 24,136(3)
std 25,144(3)
std 26,152(3)
std 27,160(3)
std 28,168(3)
std 29,176(3)
std 30,184(3)
std 31,192(3)
mr 3,4
ld 0,288(1)
ld 14,128(1)
ld 15,136(1)
ld 16,144(1)
ld 17,152(1)
ld 18,160(1)
ld 19,168(1)
ld 20,176(1)
ld 21,184(1)
ld 22,192(1)
ld 23,200(1)
ld 24,208(1)
ld 25,216(1)
ld 26,224(1)
ld 27,232(1)
ld 28,240(1)
ld 29,248(1)
ld 30,256(1)
ld 31,264(1)
mtlr 0
addi 1,1,272
blr
.long 0
.byte 0,12,4,1,0x80,18,4,0
.long 0
.size SHA3_absorb,.-SHA3_absorb
.globl SHA3_squeeze
.type SHA3_squeeze,@function
.type SHA3_squeeze,@function
.align 5
SHA3_squeeze:
.localentry SHA3_squeeze,0
stdu 1,-80(1)
mflr 0
std 28,48(1)
std 29,56(1)
std 30,64(1)
std 31,72(1)
std 0,96(1)
mr 28,3
subi 3,3,8
subi 29,4,1
mr 30,5
mr 31,6
b .Loop_squeeze
.align 4
.Loop_squeeze:
ldu 0,8(3)
cmpldi 30,8
blt .Lsqueeze_tail
stbu 0,1(29)
srdi 0,0,8
stbu 0,1(29)
srdi 0,0,8
stbu 0,1(29)
srdi 0,0,8
stbu 0,1(29)
srdi 0,0,8
stbu 0,1(29)
srdi 0,0,8
stbu 0,1(29)
srdi 0,0,8
stbu 0,1(29)
srdi 0,0,8
stbu 0,1(29)
subic. 30,30,8
beq .Lsqueeze_done
subic. 6,6,8
bgt .Loop_squeeze
mr 3,28
bl KeccakF1600
subi 3,28,8
mr 6,31
b .Loop_squeeze
.align 4
.Lsqueeze_tail:
mtctr 30
.Loop_tail:
stbu 0,1(29)
srdi 0,0,8
bdnz .Loop_tail
.Lsqueeze_done:
ld 0,96(1)
ld 28,48(1)
ld 29,56(1)
ld 30,64(1)
ld 31,72(1)
mtlr 0
addi 1,1,80
blr
.long 0
.byte 0,12,4,1,0x80,4,4,0
.long 0
.size SHA3_squeeze,.-SHA3_squeeze
.align 6
PICmeup:
mflr 0
bcl 20,31,$+4
mflr 12
addi 12,12,56
mtlr 0
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.space 28
.type iotas,@object
iotas:
.long 0x00000000,0x00000001
.long 0x00000000,0x00008082
.long 0x80000000,0x0000808a
.long 0x80000000,0x80008000
.long 0x00000000,0x0000808b
.long 0x00000000,0x80000001
.long 0x80000000,0x80008081
.long 0x80000000,0x00008009
.long 0x00000000,0x0000008a
.long 0x00000000,0x00000088
.long 0x00000000,0x80008009
.long 0x00000000,0x8000000a
.long 0x00000000,0x8000808b
.long 0x80000000,0x0000008b
.long 0x80000000,0x00008089
.long 0x80000000,0x00008003
.long 0x80000000,0x00008002
.long 0x80000000,0x00000080
.long 0x00000000,0x0000800a
.long 0x80000000,0x8000000a
.long 0x80000000,0x80008081
.long 0x80000000,0x00008080
.long 0x00000000,0x80000001
.long 0x80000000,0x80008008
.size iotas,.-iotas
.byte 75,101,99,99,97,107,45,49,54,48,48,32,97,98,115,111,114,98,32,97,110,100,32,115,113,117,101,101,122,101,32,102,111,114,32,80,80,67,54,52,44,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align 2

View file

@ -0,0 +1,186 @@
/* $FreeBSD$ */
/* Do not modify. This file is auto-generated from poly1305-ppc.pl. */
.machine "any"
.abiversion 2
.text
.globl poly1305_init_int
.type poly1305_init_int,@function
.align 4
poly1305_init_int:
.localentry poly1305_init_int,0
xor 0,0,0
std 0,0(3)
std 0,8(3)
std 0,16(3)
cmpld 4,0
beq- .Lno_key
li 7,4
lwbrx 10,0,4
li 11,8
lwbrx 7,7,4
li 8,12
lwbrx 11,11,4
lwbrx 8,8,4
insrdi 10,7,32,0
insrdi 11,8,32,0
lis 8,0xfff
ori 8,8,0xfffc
insrdi 8,8,32,0
ori 7,8,3
and 10,10,7
and 11,11,8
std 10,32(3)
std 11,40(3)
.Lno_key:
xor 3,3,3
blr
.long 0
.byte 0,12,0x14,0,0,0,2,0
.size poly1305_init_int,.-poly1305_init_int
.globl poly1305_blocks
.type poly1305_blocks,@function
.align 4
poly1305_blocks:
.localentry poly1305_blocks,0
srdi. 5,5,4
beq- .Labort
stdu 1,-192(1)
mflr 0
std 27,152(1)
std 28,160(1)
std 29,168(1)
std 30,176(1)
std 31,184(1)
std 0,208(1)
ld 27,32(3)
ld 28,40(3)
ld 7,0(3)
ld 8,8(3)
ld 9,16(3)
srdi 29,28,2
mtctr 5
add 29,29,28
li 0,3
b .Loop
.align 4
.Loop:
li 10,4
lwbrx 30,0,4
li 31,8
lwbrx 10,10,4
li 11,12
lwbrx 31,31,4
lwbrx 11,11,4
insrdi 30,10,32,0
insrdi 31,11,32,0
addi 4,4,16
addc 7,7,30
adde 8,8,31
mulld 10,7,27
mulhdu 11,7,27
adde 9,9,6
mulld 30,8,29
mulhdu 31,8,29
addc 10,10,30
adde 11,11,31
mulld 30,7,28
mulhdu 12,7,28
addc 11,11,30
addze 12,12
mulld 30,8,27
mulhdu 31,8,27
addc 11,11,30
adde 12,12,31
mulld 30,9,29
mulld 31,9,27
addc 11,11,30
adde 12,12,31
andc 30,12,0
and 9,12,0
srdi 31,30,2
add 30,30,31
addc 7,10,30
addze 8,11
addze 9,9
bdnz .Loop
std 7,0(3)
std 8,8(3)
std 9,16(3)
ld 27,152(1)
ld 28,160(1)
ld 29,168(1)
ld 30,176(1)
ld 31,184(1)
addi 1,1,192
.Labort:
blr
.long 0
.byte 0,12,4,1,0x80,5,4,0
.size poly1305_blocks,.-poly1305_blocks
.globl poly1305_emit
.type poly1305_emit,@function
.align 4
poly1305_emit:
.localentry poly1305_emit,0
ld 7,0(3)
ld 8,8(3)
ld 9,16(3)
ld 6,0(5)
ld 5,8(5)
addic 10,7,5
addze 11,8
addze 12,9
srdi 0,12,2
neg 0,0
andc 7,7,0
and 10,10,0
andc 8,8,0
and 11,11,0
or 7,7,10
or 8,8,11
rotldi 6,6,32
rotldi 5,5,32
addc 7,7,6
adde 8,8,5
rldicl 0,7,32,32
li 10,4
stwbrx 7,0,4
rldicl 7,8,32,32
li 11,8
stwbrx 0,10,4
li 12,12
stwbrx 8,11,4
stwbrx 7,12,4
blr
.long 0
.byte 0,12,0x14,0,0,0,3,0
.size poly1305_emit,.-poly1305_emit
.byte 80,111,108,121,49,51,48,53,32,102,111,114,32,80,80,67,44,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align 2

View file

@ -0,0 +1,597 @@
/* $FreeBSD$ */
/* Do not modify. This file is auto-generated from poly1305-ppcfp.pl. */
.machine "any"
.abiversion 2
.text
.globl poly1305_init_fpu
.type poly1305_init_fpu,@function
.align 6
poly1305_init_fpu:
.localentry poly1305_init_fpu,0
stdu 1,-48(1)
mflr 6
std 6,64(1)
bl .LPICmeup
xor 0,0,0
mtlr 6
lfd 8,8*0(5)
lfd 9,8*1(5)
lfd 10,8*2(5)
lfd 11,8*3(5)
lfd 12,8*4(5)
lfd 13,8*5(5)
stfd 8,8*0(3)
stfd 9,8*1(3)
stfd 10,8*2(3)
stfd 11,8*3(3)
cmpld 4,0
beq- .Lno_key
lfd 6,8*13(5)
mffs 7
stfd 8,8*4(3)
stfd 9,8*5(3)
stfd 10,8*6(3)
stfd 11,8*7(3)
li 8,4
li 9,8
li 10,12
lwbrx 7,0,4
lwbrx 8,8,4
lwbrx 9,9,4
lwbrx 10,10,4
lis 11,0xf000
ori 12,11,3
andc 7,7,11
andc 8,8,12
andc 9,9,12
andc 10,10,12
stw 7,36(3)
stw 8,44(3)
stw 9,52(3)
stw 10,60(3)
mtfsf 255,6
stfd 8,8*18(3)
stfd 9,8*19(3)
stfd 10,8*20(3)
stfd 11,8*21(3)
stfd 12,8*22(3)
stfd 13,8*23(3)
lfd 0,8*4(3)
lfd 2,8*5(3)
lfd 4,8*6(3)
lfd 6,8*7(3)
fsub 0,0,8
fsub 2,2,9
fsub 4,4,10
fsub 6,6,11
lfd 8,8*6(5)
lfd 9,8*7(5)
lfd 10,8*8(5)
lfd 11,8*9(5)
fmul 3,2,13
fmul 5,4,13
stfd 7,8*15(3)
fmul 7,6,13
fadd 1,0,8
stfd 3,8*12(3)
fadd 3,2,9
stfd 5,8*13(3)
fadd 5,4,10
stfd 7,8*14(3)
fadd 7,6,11
fsub 1,1,8
fsub 3,3,9
fsub 5,5,10
fsub 7,7,11
lfd 8,8*10(5)
lfd 9,8*11(5)
lfd 10,8*12(5)
fsub 0,0,1
fsub 2,2,3
fsub 4,4,5
fsub 6,6,7
stfd 1,8*5(3)
stfd 3,8*7(3)
stfd 5,8*9(3)
stfd 7,8*11(3)
stfd 0,8*4(3)
stfd 2,8*6(3)
stfd 4,8*8(3)
stfd 6,8*10(3)
lfd 2,8*12(3)
lfd 4,8*13(3)
lfd 6,8*14(3)
lfd 0,8*15(3)
fadd 3,2,8
fadd 5,4,9
fadd 7,6,10
fsub 3,3,8
fsub 5,5,9
fsub 7,7,10
fsub 2,2,3
fsub 4,4,5
fsub 6,6,7
stfd 3,8*13(3)
stfd 5,8*15(3)
stfd 7,8*17(3)
stfd 2,8*12(3)
stfd 4,8*14(3)
stfd 6,8*16(3)
mtfsf 255,0
.Lno_key:
xor 3,3,3
addi 1,1,48
blr
.long 0
.byte 0,12,4,1,0x80,0,2,0
.size poly1305_init_fpu,.-poly1305_init_fpu
.globl poly1305_blocks_fpu
.type poly1305_blocks_fpu,@function
.align 4
poly1305_blocks_fpu:
.localentry poly1305_blocks_fpu,0
srwi. 5,5,4
beq- .Labort
stdu 1,-240(1)
mflr 0
stfd 14,96(1)
stfd 15,104(1)
stfd 16,112(1)
stfd 17,120(1)
stfd 18,128(1)
stfd 19,136(1)
stfd 20,144(1)
stfd 21,152(1)
stfd 22,160(1)
stfd 23,168(1)
stfd 24,176(1)
stfd 25,184(1)
stfd 26,192(1)
stfd 27,200(1)
stfd 28,208(1)
stfd 29,216(1)
stfd 30,224(1)
stfd 31,232(1)
std 0,256(1)
xor 0,0,0
li 10,1
mtctr 5
neg 5,5
stw 0,80(1)
stw 10,84(1)
lfd 8,8*18(3)
lfd 9,8*19(3)
lfd 10,8*20(3)
lfd 11,8*21(3)
lfd 12,8*22(3)
lfd 13,8*23(3)
lfd 0,8*0(3)
lfd 2,8*1(3)
lfd 4,8*2(3)
lfd 6,8*3(3)
stfd 8,48(1)
oris 10,6,18736
stfd 9,56(1)
stfd 10,64(1)
stw 10,72(1)
li 11,4
li 12,8
li 6,12
lwbrx 7,0,4
lwbrx 8,11,4
lwbrx 9,12,4
lwbrx 10,6,4
addi 4,4,16
stw 7,52(1)
stw 8,60(1)
stw 9,68(1)
stw 10,76(1)
mffs 28
lfd 29,80(1)
lfd 14,8*4(3)
lfd 15,8*5(3)
lfd 16,8*6(3)
lfd 17,8*7(3)
lfd 18,8*8(3)
lfd 19,8*9(3)
lfd 24,8*10(3)
lfd 25,8*11(3)
lfd 26,8*12(3)
lfd 27,8*13(3)
lfd 20,8*14(3)
lfd 21,8*15(3)
lfd 22,8*16(3)
lfd 23,8*17(3)
stfd 28,80(1)
mtfsf 255,29
addic 5,5,1
addze 0,0
slwi. 0,0,4
sub 4,4,0
lfd 28,48(1)
lfd 29,56(1)
lfd 30,64(1)
lfd 31,72(1)
fsub 0,0,8
lwbrx 7,0,4
fsub 2,2,9
lwbrx 8,11,4
fsub 4,4,10
lwbrx 9,12,4
fsub 6,6,11
lwbrx 10,6,4
fsub 28,28,8
addi 4,4,16
fsub 29,29,9
fsub 30,30,10
fsub 31,31,11
fadd 28,28,0
stw 7,52(1)
fadd 29,29,2
stw 8,60(1)
fadd 30,30,4
stw 9,68(1)
fadd 31,31,6
stw 10,76(1)
b .Lentry
.align 4
.Loop:
fsub 30,30,8
addic 5,5,1
fsub 31,31,9
addze 0,0
fsub 26,26,10
slwi. 0,0,4
fsub 27,27,11
sub 4,4,0
fadd 0,0,30
fadd 1,1,31
fadd 4,4,26
fadd 5,5,27
fadd 26,2,10
lwbrx 7,0,4
fadd 27,3,10
lwbrx 8,11,4
fadd 30,6,12
lwbrx 9,12,4
fadd 31,7,12
lwbrx 10,6,4
fadd 24,0,9
addi 4,4,16
fadd 25,1,9
fadd 28,4,11
fadd 29,5,11
fsub 26,26,10
stw 7,52(1)
fsub 27,27,10
stw 8,60(1)
fsub 30,30,12
stw 9,68(1)
fsub 31,31,12
stw 10,76(1)
fsub 24,24,9
fsub 25,25,9
fsub 28,28,11
fsub 29,29,11
fsub 2,2,26
fsub 3,3,27
fsub 6,6,30
fsub 7,7,31
fsub 4,4,28
fsub 5,5,29
fsub 0,0,24
fsub 1,1,25
fadd 2,2,24
fadd 3,3,25
fadd 6,6,28
fadd 7,7,29
fadd 4,4,26
fadd 5,5,27
fmadd 0,30,13,0
fmadd 1,31,13,1
fadd 29,2,3
lfd 26,8*12(3)
fadd 31,6,7
lfd 27,8*13(3)
fadd 30,4,5
lfd 24,8*10(3)
fadd 28,0,1
lfd 25,8*11(3)
.Lentry:
fmul 0,22,29
fmul 1,23,29
fmul 4,16,29
fmul 5,17,29
fmul 2,14,29
fmul 3,15,29
fmul 6,18,29
fmul 7,19,29
fmadd 0,26,31,0
fmadd 1,27,31,1
fmadd 4,22,31,4
fmadd 5,23,31,5
fmadd 2,20,31,2
fmadd 3,21,31,3
fmadd 6,14,31,6
fmadd 7,15,31,7
fmadd 0,20,30,0
fmadd 1,21,30,1
fmadd 4,14,30,4
fmadd 5,15,30,5
fmadd 2,22,30,2
fmadd 3,23,30,3
fmadd 6,16,30,6
fmadd 7,17,30,7
fmadd 0,14,28,0
lfd 30,48(1)
fmadd 1,15,28,1
lfd 31,56(1)
fmadd 4,18,28,4
lfd 26,64(1)
fmadd 5,19,28,5
lfd 27,72(1)
fmadd 2,16,28,2
fmadd 3,17,28,3
fmadd 6,24,28,6
fmadd 7,25,28,7
bdnz .Loop
fadd 24,0,9
fadd 25,1,9
fadd 28,4,11
fadd 29,5,11
fadd 26,2,10
fadd 27,3,10
fadd 30,6,12
fadd 31,7,12
fsub 24,24,9
fsub 25,25,9
fsub 28,28,11
fsub 29,29,11
fsub 26,26,10
fsub 27,27,10
fsub 30,30,12
fsub 31,31,12
fsub 2,2,26
fsub 3,3,27
fsub 6,6,30
fsub 7,7,31
fsub 4,4,28
fsub 5,5,29
fsub 0,0,24
fsub 1,1,25
fadd 2,2,24
fadd 3,3,25
fadd 6,6,28
fadd 7,7,29
fadd 4,4,26
fadd 5,5,27
fmadd 0,30,13,0
fmadd 1,31,13,1
fadd 29,2,3
fadd 31,6,7
fadd 30,4,5
fadd 28,0,1
lfd 0,80(1)
fadd 29,29,9
fadd 31,31,11
fadd 30,30,10
fadd 28,28,8
stfd 29,8*1(3)
stfd 31,8*3(3)
stfd 30,8*2(3)
stfd 28,8*0(3)
mtfsf 255,0
lfd 14,96(1)
lfd 15,104(1)
lfd 16,112(1)
lfd 17,120(1)
lfd 18,128(1)
lfd 19,136(1)
lfd 20,144(1)
lfd 21,152(1)
lfd 22,160(1)
lfd 23,168(1)
lfd 24,176(1)
lfd 25,184(1)
lfd 26,192(1)
lfd 27,200(1)
lfd 28,208(1)
lfd 29,216(1)
lfd 30,224(1)
lfd 31,232(1)
addi 1,1,240
.Labort:
blr
.long 0
.byte 0,12,4,1,0x80,0,4,0
.size poly1305_blocks_fpu,.-poly1305_blocks_fpu
.globl poly1305_emit_fpu
.type poly1305_emit_fpu,@function
.align 4
poly1305_emit_fpu:
.localentry poly1305_emit_fpu,0
stdu 1,-80(1)
mflr 0
std 28,48(1)
std 29,56(1)
std 30,64(1)
std 31,72(1)
std 0,96(1)
lwz 28,0(3)
lwz 7,4(3)
lwz 29,8(3)
lwz 8,12(3)
lwz 30,16(3)
lwz 9,20(3)
lwz 31,24(3)
lwz 10,28(3)
lis 0,0xfff0
andc 28,28,0
andc 29,29,0
andc 30,30,0
andc 31,31,0
li 0,3
srwi 6,31,2
and 11,31,0
andc 31,31,0
add 31,31,6
add 7,7,31
add 8,8,28
add 9,9,29
add 10,10,30
srdi 28,7,32
add 8,8,28
srdi 29,8,32
add 9,9,29
srdi 30,9,32
add 10,10,30
srdi 31,10,32
add 11,11,31
insrdi 7,8,32,0
insrdi 9,10,32,0
addic 28,7,5
addze 29,9
addze 30,11
srdi 0,30,2
neg 0,0
sradi 0,0,63
ld 30,0(5)
ld 31,8(5)
andc 7,7,0
and 28,28,0
andc 9,9,0
and 29,29,0
or 7,7,28
or 9,9,29
rotldi 30,30,32
rotldi 31,31,32
addc 7,7,30
adde 9,9,31
srdi 8,7,32
srdi 10,9,32
li 29,4
stwbrx 7,0,4
li 30,8
stwbrx 8,29,4
li 31,12
stwbrx 9,30,4
stwbrx 10,31,4
ld 28,48(1)
ld 29,56(1)
ld 30,64(1)
ld 31,72(1)
addi 1,1,80
blr
.long 0
.byte 0,12,4,1,0x80,4,3,0
.size poly1305_emit_fpu,.-poly1305_emit_fpu
.align 6
.LPICmeup:
mflr 0
bcl 20,31,$+4
mflr 5
addi 5,5,56
mtlr 0
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.space 28
.long 0x43300000,0x00000000
.long 0x45300000,0x00000000
.long 0x47300000,0x00000000
.long 0x49300000,0x00000000
.long 0x4b500000,0x00000000
.long 0x37f40000,0x00000000
.long 0x44300000,0x00000000
.long 0x46300000,0x00000000
.long 0x48300000,0x00000000
.long 0x4a300000,0x00000000
.long 0x3e300000,0x00000000
.long 0x40300000,0x00000000
.long 0x42300000,0x00000000
.long 0x00000000,0x00000001
.byte 80,111,108,121,49,51,48,53,32,102,111,114,32,80,80,67,32,70,80,85,44,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align 2
.align 4

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,388 @@
/* $FreeBSD$ */
/* Do not modify. This file is auto-generated from ppccpuid.pl. */
.machine "any"
.abiversion 2
.text
.globl OPENSSL_fpu_probe
.type OPENSSL_fpu_probe,@function
.align 4
OPENSSL_fpu_probe:
.localentry OPENSSL_fpu_probe,0
fmr 0,0
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.size OPENSSL_fpu_probe,.-OPENSSL_fpu_probe
.globl OPENSSL_ppc64_probe
.type OPENSSL_ppc64_probe,@function
.align 4
OPENSSL_ppc64_probe:
.localentry OPENSSL_ppc64_probe,0
fcfid 1,1
rldicl 0,0,32,32
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.size OPENSSL_ppc64_probe,.-OPENSSL_ppc64_probe
.globl OPENSSL_altivec_probe
.type OPENSSL_altivec_probe,@function
.align 4
OPENSSL_altivec_probe:
.localentry OPENSSL_altivec_probe,0
.long 0x10000484
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.size OPENSSL_altivec_probe,.-OPENSSL_altivec_probe
.globl OPENSSL_crypto207_probe
.type OPENSSL_crypto207_probe,@function
.align 4
OPENSSL_crypto207_probe:
.localentry OPENSSL_crypto207_probe,0
.long 0x7C000E99
.long 0x10000508
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.size OPENSSL_crypto207_probe,.-OPENSSL_crypto207_probe
.globl OPENSSL_madd300_probe
.type OPENSSL_madd300_probe,@function
.align 4
OPENSSL_madd300_probe:
.localentry OPENSSL_madd300_probe,0
xor 0,0,0
.long 0x10600033
.long 0x10600031
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.globl OPENSSL_wipe_cpu
.type OPENSSL_wipe_cpu,@function
.align 4
OPENSSL_wipe_cpu:
.localentry OPENSSL_wipe_cpu,0
xor 0,0,0
fmr 0,31
fmr 1,31
fmr 2,31
mr 3,1
fmr 3,31
xor 4,4,4
fmr 4,31
xor 5,5,5
fmr 5,31
xor 6,6,6
fmr 6,31
xor 7,7,7
fmr 7,31
xor 8,8,8
fmr 8,31
xor 9,9,9
fmr 9,31
xor 10,10,10
fmr 10,31
xor 11,11,11
fmr 11,31
xor 12,12,12
fmr 12,31
fmr 13,31
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.size OPENSSL_wipe_cpu,.-OPENSSL_wipe_cpu
.globl OPENSSL_atomic_add
.type OPENSSL_atomic_add,@function
.align 4
OPENSSL_atomic_add:
.localentry OPENSSL_atomic_add,0
.Ladd: lwarx 5,0,3
add 0,4,5
stwcx. 0,0,3
bne- .Ladd
extsw 3,0
blr
.long 0
.byte 0,12,0x14,0,0,0,2,0
.long 0
.size OPENSSL_atomic_add,.-OPENSSL_atomic_add
.globl OPENSSL_rdtsc_mftb
.type OPENSSL_rdtsc_mftb,@function
.align 4
OPENSSL_rdtsc_mftb:
.localentry OPENSSL_rdtsc_mftb,0
mftb 3
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.size OPENSSL_rdtsc_mftb,.-OPENSSL_rdtsc_mftb
.globl OPENSSL_rdtsc_mfspr268
.type OPENSSL_rdtsc_mfspr268,@function
.align 4
OPENSSL_rdtsc_mfspr268:
.localentry OPENSSL_rdtsc_mfspr268,0
mfspr 3,268
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.size OPENSSL_rdtsc_mfspr268,.-OPENSSL_rdtsc_mfspr268
.globl OPENSSL_cleanse
.type OPENSSL_cleanse,@function
.align 4
OPENSSL_cleanse:
.localentry OPENSSL_cleanse,0
cmpldi 4,7
li 0,0
bge .Lot
cmpldi 4,0
.long 0x4DC20020
.Little: mtctr 4
stb 0,0(3)
addi 3,3,1
bdnz $-8
blr
.Lot: andi. 5,3,3
beq .Laligned
stb 0,0(3)
subi 4,4,1
addi 3,3,1
b .Lot
.Laligned:
srdi 5,4,2
mtctr 5
stw 0,0(3)
addi 3,3,4
bdnz $-8
andi. 4,4,3
bne .Little
blr
.long 0
.byte 0,12,0x14,0,0,0,2,0
.long 0
.size OPENSSL_cleanse,.-OPENSSL_cleanse
.globl CRYPTO_memcmp
.type CRYPTO_memcmp,@function
.align 4
CRYPTO_memcmp:
.localentry CRYPTO_memcmp,0
cmpldi 5,0
li 0,0
beq .Lno_data
mtctr 5
.Loop_cmp:
lbz 6,0(3)
addi 3,3,1
lbz 7,0(4)
addi 4,4,1
xor 6,6,7
or 0,0,6
bdnz .Loop_cmp
.Lno_data:
li 3,0
sub 3,3,0
extrwi 3,3,1,0
blr
.long 0
.byte 0,12,0x14,0,0,0,3,0
.long 0
.size CRYPTO_memcmp,.-CRYPTO_memcmp
.globl OPENSSL_instrument_bus_mftb
.type OPENSSL_instrument_bus_mftb,@function
.align 4
OPENSSL_instrument_bus_mftb:
.localentry OPENSSL_instrument_bus_mftb,0
mtctr 4
mftb 7
li 8,0
dcbf 0,3
lwarx 6,0,3
add 6,6,8
stwcx. 6,0,3
stwx 6,0,3
.Loop: mftb 6
sub 8,6,7
mr 7,6
dcbf 0,3
lwarx 6,0,3
add 6,6,8
stwcx. 6,0,3
stwx 6,0,3
addi 3,3,4
bdnz .Loop
mr 3,4
blr
.long 0
.byte 0,12,0x14,0,0,0,2,0
.long 0
.size OPENSSL_instrument_bus_mftb,.-OPENSSL_instrument_bus_mftb
.globl OPENSSL_instrument_bus2_mftb
.type OPENSSL_instrument_bus2_mftb,@function
.align 4
OPENSSL_instrument_bus2_mftb:
.localentry OPENSSL_instrument_bus2_mftb,0
mr 0,4
slwi 4,4,2
mftb 7
li 8,0
dcbf 0,3
lwarx 6,0,3
add 6,6,8
stwcx. 6,0,3
stwx 6,0,3
mftb 6
sub 8,6,7
mr 7,6
mr 9,8
.Loop2:
dcbf 0,3
lwarx 6,0,3
add 6,6,8
stwcx. 6,0,3
stwx 6,0,3
addic. 5,5,-1
beq .Ldone2
mftb 6
sub 8,6,7
mr 7,6
cmplw 7,8,9
mr 9,8
mfcr 6
not 6,6
rlwinm 6,6,1,29,29
sub. 4,4,6
add 3,3,6
bne .Loop2
.Ldone2:
srwi 4,4,2
sub 3,0,4
blr
.long 0
.byte 0,12,0x14,0,0,0,3,0
.long 0
.size OPENSSL_instrument_bus2_mftb,.-OPENSSL_instrument_bus2_mftb
.globl OPENSSL_instrument_bus_mfspr268
.type OPENSSL_instrument_bus_mfspr268,@function
.align 4
OPENSSL_instrument_bus_mfspr268:
.localentry OPENSSL_instrument_bus_mfspr268,0
mtctr 4
mfspr 7,268
li 8,0
dcbf 0,3
lwarx 6,0,3
add 6,6,8
stwcx. 6,0,3
stwx 6,0,3
.Loop3: mfspr 6,268
sub 8,6,7
mr 7,6
dcbf 0,3
lwarx 6,0,3
add 6,6,8
stwcx. 6,0,3
stwx 6,0,3
addi 3,3,4
bdnz .Loop3
mr 3,4
blr
.long 0
.byte 0,12,0x14,0,0,0,2,0
.long 0
.size OPENSSL_instrument_bus_mfspr268,.-OPENSSL_instrument_bus_mfspr268
.globl OPENSSL_instrument_bus2_mfspr268
.type OPENSSL_instrument_bus2_mfspr268,@function
.align 4
OPENSSL_instrument_bus2_mfspr268:
.localentry OPENSSL_instrument_bus2_mfspr268,0
mr 0,4
slwi 4,4,2
mfspr 7,268
li 8,0
dcbf 0,3
lwarx 6,0,3
add 6,6,8
stwcx. 6,0,3
stwx 6,0,3
mfspr 6,268
sub 8,6,7
mr 7,6
mr 9,8
.Loop4:
dcbf 0,3
lwarx 6,0,3
add 6,6,8
stwcx. 6,0,3
stwx 6,0,3
addic. 5,5,-1
beq .Ldone4
mfspr 6,268
sub 8,6,7
mr 7,6
cmplw 7,8,9
mr 9,8
mfcr 6
not 6,6
rlwinm 6,6,1,29,29
sub. 4,4,6
add 3,3,6
bne .Loop4
.Ldone4:
srwi 4,4,2
sub 3,0,4
blr
.long 0
.byte 0,12,0x14,0,0,0,3,0
.long 0
.size OPENSSL_instrument_bus2_mfspr268,.-OPENSSL_instrument_bus2_mfspr268

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,739 @@
/* $FreeBSD$ */
/* Do not modify. This file is auto-generated from sha512p8-ppc.pl. */
.machine "any"
.abiversion 2
.text
.globl sha256_block_p8
.type sha256_block_p8,@function
.align 6
sha256_block_p8:
.localentry sha256_block_p8,0
stdu 1,-384(1)
mflr 8
li 10,207
li 11,223
stvx 24,10,1
addi 10,10,32
li 12,-1
stvx 25,11,1
addi 11,11,32
stvx 26,10,1
addi 10,10,32
stvx 27,11,1
addi 11,11,32
stvx 28,10,1
addi 10,10,32
stvx 29,11,1
addi 11,11,32
stvx 30,10,1
stvx 31,11,1
li 11,-4096+255
stw 12,332(1)
li 10,0x10
std 26,336(1)
li 26,0x20
std 27,344(1)
li 27,0x30
std 28,352(1)
li 28,0x40
std 29,360(1)
li 29,0x50
std 30,368(1)
li 30,0x60
std 31,376(1)
li 31,0x70
std 8,400(1)
or 11,11,11
bl .LPICmeup
addi 11,1,79
.long 0x7C001E19
.long 0x7C8A1E19
vsldoi 1,0,0,4
vsldoi 2,0,0,8
vsldoi 3,0,0,12
vsldoi 5,4,4,4
vsldoi 6,4,4,8
vsldoi 7,4,4,12
li 0,3
b .Loop
.align 5
.Loop:
lvx 28,0,6
.long 0x7D002699
addi 4,4,16
mr 7,6
stvx 0,0,11
stvx 1,10,11
stvx 2,26,11
stvx 3,27,11
stvx 4,28,11
stvx 5,29,11
stvx 6,30,11
stvx 7,31,11
vadduwm 7,7,28
lvx 28,10,6
vadduwm 7,7,8
vsel 29,6,5,4
vadduwm 6,6,28
vadduwm 7,7,29
.long 0x13C4FE82
vadduwm 7,7,30
vxor 29,0,1
vsel 29,1,2,29
vadduwm 3,3,7
.long 0x13C08682
vadduwm 30,30,29
vadduwm 7,7,30
lvx 28,26,7
vsldoi 9,8,8,4
vadduwm 6,6,9
vsel 29,5,4,3
vadduwm 5,5,28
vadduwm 6,6,29
.long 0x13C3FE82
vadduwm 6,6,30
vxor 29,7,0
vsel 29,0,1,29
vadduwm 2,2,6
.long 0x13C78682
vadduwm 30,30,29
vadduwm 6,6,30
lvx 28,27,7
vsldoi 10,9,9,4
vadduwm 5,5,10
vsel 29,4,3,2
vadduwm 4,4,28
vadduwm 5,5,29
.long 0x13C2FE82
vadduwm 5,5,30
vxor 29,6,7
vsel 29,7,0,29
vadduwm 1,1,5
.long 0x13C68682
vadduwm 30,30,29
vadduwm 5,5,30
lvx 28,28,7
.long 0x7D802699
addi 4,4,16
vsldoi 11,10,10,4
vadduwm 4,4,11
vsel 29,3,2,1
vadduwm 3,3,28
vadduwm 4,4,29
.long 0x13C1FE82
vadduwm 4,4,30
vxor 29,5,6
vsel 29,6,7,29
vadduwm 0,0,4
.long 0x13C58682
vadduwm 30,30,29
vadduwm 4,4,30
lvx 28,29,7
vadduwm 3,3,12
vsel 29,2,1,0
vadduwm 2,2,28
vadduwm 3,3,29
.long 0x13C0FE82
vadduwm 3,3,30
vxor 29,4,5
vsel 29,5,6,29
vadduwm 7,7,3
.long 0x13C48682
vadduwm 30,30,29
vadduwm 3,3,30
lvx 28,30,7
vsldoi 13,12,12,4
vadduwm 2,2,13
vsel 29,1,0,7
vadduwm 1,1,28
vadduwm 2,2,29
.long 0x13C7FE82
vadduwm 2,2,30
vxor 29,3,4
vsel 29,4,5,29
vadduwm 6,6,2
.long 0x13C38682
vadduwm 30,30,29
vadduwm 2,2,30
lvx 28,31,7
addi 7,7,0x80
vsldoi 14,13,13,4
vadduwm 1,1,14
vsel 29,0,7,6
vadduwm 0,0,28
vadduwm 1,1,29
.long 0x13C6FE82
vadduwm 1,1,30
vxor 29,2,3
vsel 29,3,4,29
vadduwm 5,5,1
.long 0x13C28682
vadduwm 30,30,29
vadduwm 1,1,30
lvx 28,0,7
.long 0x7E002699
addi 4,4,16
vsldoi 15,14,14,4
vadduwm 0,0,15
vsel 29,7,6,5
vadduwm 7,7,28
vadduwm 0,0,29
.long 0x13C5FE82
vadduwm 0,0,30
vxor 29,1,2
vsel 29,2,3,29
vadduwm 4,4,0
.long 0x13C18682
vadduwm 30,30,29
vadduwm 0,0,30
lvx 28,10,7
vadduwm 7,7,16
vsel 29,6,5,4
vadduwm 6,6,28
vadduwm 7,7,29
.long 0x13C4FE82
vadduwm 7,7,30
vxor 29,0,1
vsel 29,1,2,29
vadduwm 3,3,7
.long 0x13C08682
vadduwm 30,30,29
vadduwm 7,7,30
lvx 28,26,7
vsldoi 17,16,16,4
vadduwm 6,6,17
vsel 29,5,4,3
vadduwm 5,5,28
vadduwm 6,6,29
.long 0x13C3FE82
vadduwm 6,6,30
vxor 29,7,0
vsel 29,0,1,29
vadduwm 2,2,6
.long 0x13C78682
vadduwm 30,30,29
vadduwm 6,6,30
lvx 28,27,7
vsldoi 18,17,17,4
vadduwm 5,5,18
vsel 29,4,3,2
vadduwm 4,4,28
vadduwm 5,5,29
.long 0x13C2FE82
vadduwm 5,5,30
vxor 29,6,7
vsel 29,7,0,29
vadduwm 1,1,5
.long 0x13C68682
vadduwm 30,30,29
vadduwm 5,5,30
lvx 28,28,7
.long 0x7F002699
addi 4,4,16
vsldoi 19,18,18,4
vadduwm 4,4,19
vsel 29,3,2,1
vadduwm 3,3,28
vadduwm 4,4,29
.long 0x13C1FE82
vadduwm 4,4,30
vxor 29,5,6
vsel 29,6,7,29
vadduwm 0,0,4
.long 0x13C58682
vadduwm 30,30,29
vadduwm 4,4,30
lvx 28,29,7
vadduwm 3,3,24
vsel 29,2,1,0
vadduwm 2,2,28
vadduwm 3,3,29
.long 0x13C0FE82
vadduwm 3,3,30
vxor 29,4,5
vsel 29,5,6,29
vadduwm 7,7,3
.long 0x13C48682
vadduwm 30,30,29
vadduwm 3,3,30
lvx 28,30,7
vsldoi 25,24,24,4
vadduwm 2,2,25
vsel 29,1,0,7
vadduwm 1,1,28
vadduwm 2,2,29
.long 0x13C7FE82
vadduwm 2,2,30
vxor 29,3,4
vsel 29,4,5,29
vadduwm 6,6,2
.long 0x13C38682
vadduwm 30,30,29
vadduwm 2,2,30
lvx 28,31,7
addi 7,7,0x80
vsldoi 26,25,25,4
vadduwm 1,1,26
vsel 29,0,7,6
vadduwm 0,0,28
vadduwm 1,1,29
.long 0x13C6FE82
vadduwm 1,1,30
vxor 29,2,3
vsel 29,3,4,29
vadduwm 5,5,1
.long 0x13C28682
vadduwm 30,30,29
vadduwm 1,1,30
lvx 28,0,7
vsldoi 27,26,26,4
.long 0x13C90682
vadduwm 8,8,30
.long 0x13DA7E82
vadduwm 8,8,30
vadduwm 8,8,17
vadduwm 0,0,27
vsel 29,7,6,5
vadduwm 7,7,28
vadduwm 0,0,29
.long 0x13C5FE82
vadduwm 0,0,30
vxor 29,1,2
vsel 29,2,3,29
vadduwm 4,4,0
.long 0x13C18682
vadduwm 30,30,29
vadduwm 0,0,30
lvx 28,10,7
mtctr 0
b .L16_xx
.align 5
.L16_xx:
.long 0x13CA0682
vadduwm 9,9,30
.long 0x13DB7E82
vadduwm 9,9,30
vadduwm 9,9,18
vadduwm 7,7,8
vsel 29,6,5,4
vadduwm 6,6,28
vadduwm 7,7,29
.long 0x13C4FE82
vadduwm 7,7,30
vxor 29,0,1
vsel 29,1,2,29
vadduwm 3,3,7
.long 0x13C08682
vadduwm 30,30,29
vadduwm 7,7,30
lvx 28,26,7
.long 0x13CB0682
vadduwm 10,10,30
.long 0x13C87E82
vadduwm 10,10,30
vadduwm 10,10,19
vadduwm 6,6,9
vsel 29,5,4,3
vadduwm 5,5,28
vadduwm 6,6,29
.long 0x13C3FE82
vadduwm 6,6,30
vxor 29,7,0
vsel 29,0,1,29
vadduwm 2,2,6
.long 0x13C78682
vadduwm 30,30,29
vadduwm 6,6,30
lvx 28,27,7
.long 0x13CC0682
vadduwm 11,11,30
.long 0x13C97E82
vadduwm 11,11,30
vadduwm 11,11,24
vadduwm 5,5,10
vsel 29,4,3,2
vadduwm 4,4,28
vadduwm 5,5,29
.long 0x13C2FE82
vadduwm 5,5,30
vxor 29,6,7
vsel 29,7,0,29
vadduwm 1,1,5
.long 0x13C68682
vadduwm 30,30,29
vadduwm 5,5,30
lvx 28,28,7
.long 0x13CD0682
vadduwm 12,12,30
.long 0x13CA7E82
vadduwm 12,12,30
vadduwm 12,12,25
vadduwm 4,4,11
vsel 29,3,2,1
vadduwm 3,3,28
vadduwm 4,4,29
.long 0x13C1FE82
vadduwm 4,4,30
vxor 29,5,6
vsel 29,6,7,29
vadduwm 0,0,4
.long 0x13C58682
vadduwm 30,30,29
vadduwm 4,4,30
lvx 28,29,7
.long 0x13CE0682
vadduwm 13,13,30
.long 0x13CB7E82
vadduwm 13,13,30
vadduwm 13,13,26
vadduwm 3,3,12
vsel 29,2,1,0
vadduwm 2,2,28
vadduwm 3,3,29
.long 0x13C0FE82
vadduwm 3,3,30
vxor 29,4,5
vsel 29,5,6,29
vadduwm 7,7,3
.long 0x13C48682
vadduwm 30,30,29
vadduwm 3,3,30
lvx 28,30,7
.long 0x13CF0682
vadduwm 14,14,30
.long 0x13CC7E82
vadduwm 14,14,30
vadduwm 14,14,27
vadduwm 2,2,13
vsel 29,1,0,7
vadduwm 1,1,28
vadduwm 2,2,29
.long 0x13C7FE82
vadduwm 2,2,30
vxor 29,3,4
vsel 29,4,5,29
vadduwm 6,6,2
.long 0x13C38682
vadduwm 30,30,29
vadduwm 2,2,30
lvx 28,31,7
addi 7,7,0x80
.long 0x13D00682
vadduwm 15,15,30
.long 0x13CD7E82
vadduwm 15,15,30
vadduwm 15,15,8
vadduwm 1,1,14
vsel 29,0,7,6
vadduwm 0,0,28
vadduwm 1,1,29
.long 0x13C6FE82
vadduwm 1,1,30
vxor 29,2,3
vsel 29,3,4,29
vadduwm 5,5,1
.long 0x13C28682
vadduwm 30,30,29
vadduwm 1,1,30
lvx 28,0,7
.long 0x13D10682
vadduwm 16,16,30
.long 0x13CE7E82
vadduwm 16,16,30
vadduwm 16,16,9
vadduwm 0,0,15
vsel 29,7,6,5
vadduwm 7,7,28
vadduwm 0,0,29
.long 0x13C5FE82
vadduwm 0,0,30
vxor 29,1,2
vsel 29,2,3,29
vadduwm 4,4,0
.long 0x13C18682
vadduwm 30,30,29
vadduwm 0,0,30
lvx 28,10,7
.long 0x13D20682
vadduwm 17,17,30
.long 0x13CF7E82
vadduwm 17,17,30
vadduwm 17,17,10
vadduwm 7,7,16
vsel 29,6,5,4
vadduwm 6,6,28
vadduwm 7,7,29
.long 0x13C4FE82
vadduwm 7,7,30
vxor 29,0,1
vsel 29,1,2,29
vadduwm 3,3,7
.long 0x13C08682
vadduwm 30,30,29
vadduwm 7,7,30
lvx 28,26,7
.long 0x13D30682
vadduwm 18,18,30
.long 0x13D07E82
vadduwm 18,18,30
vadduwm 18,18,11
vadduwm 6,6,17
vsel 29,5,4,3
vadduwm 5,5,28
vadduwm 6,6,29
.long 0x13C3FE82
vadduwm 6,6,30
vxor 29,7,0
vsel 29,0,1,29
vadduwm 2,2,6
.long 0x13C78682
vadduwm 30,30,29
vadduwm 6,6,30
lvx 28,27,7
.long 0x13D80682
vadduwm 19,19,30
.long 0x13D17E82
vadduwm 19,19,30
vadduwm 19,19,12
vadduwm 5,5,18
vsel 29,4,3,2
vadduwm 4,4,28
vadduwm 5,5,29
.long 0x13C2FE82
vadduwm 5,5,30
vxor 29,6,7
vsel 29,7,0,29
vadduwm 1,1,5
.long 0x13C68682
vadduwm 30,30,29
vadduwm 5,5,30
lvx 28,28,7
.long 0x13D90682
vadduwm 24,24,30
.long 0x13D27E82
vadduwm 24,24,30
vadduwm 24,24,13
vadduwm 4,4,19
vsel 29,3,2,1
vadduwm 3,3,28
vadduwm 4,4,29
.long 0x13C1FE82
vadduwm 4,4,30
vxor 29,5,6
vsel 29,6,7,29
vadduwm 0,0,4
.long 0x13C58682
vadduwm 30,30,29
vadduwm 4,4,30
lvx 28,29,7
.long 0x13DA0682
vadduwm 25,25,30
.long 0x13D37E82
vadduwm 25,25,30
vadduwm 25,25,14
vadduwm 3,3,24
vsel 29,2,1,0
vadduwm 2,2,28
vadduwm 3,3,29
.long 0x13C0FE82
vadduwm 3,3,30
vxor 29,4,5
vsel 29,5,6,29
vadduwm 7,7,3
.long 0x13C48682
vadduwm 30,30,29
vadduwm 3,3,30
lvx 28,30,7
.long 0x13DB0682
vadduwm 26,26,30
.long 0x13D87E82
vadduwm 26,26,30
vadduwm 26,26,15
vadduwm 2,2,25
vsel 29,1,0,7
vadduwm 1,1,28
vadduwm 2,2,29
.long 0x13C7FE82
vadduwm 2,2,30
vxor 29,3,4
vsel 29,4,5,29
vadduwm 6,6,2
.long 0x13C38682
vadduwm 30,30,29
vadduwm 2,2,30
lvx 28,31,7
addi 7,7,0x80
.long 0x13C80682
vadduwm 27,27,30
.long 0x13D97E82
vadduwm 27,27,30
vadduwm 27,27,16
vadduwm 1,1,26
vsel 29,0,7,6
vadduwm 0,0,28
vadduwm 1,1,29
.long 0x13C6FE82
vadduwm 1,1,30
vxor 29,2,3
vsel 29,3,4,29
vadduwm 5,5,1
.long 0x13C28682
vadduwm 30,30,29
vadduwm 1,1,30
lvx 28,0,7
.long 0x13C90682
vadduwm 8,8,30
.long 0x13DA7E82
vadduwm 8,8,30
vadduwm 8,8,17
vadduwm 0,0,27
vsel 29,7,6,5
vadduwm 7,7,28
vadduwm 0,0,29
.long 0x13C5FE82
vadduwm 0,0,30
vxor 29,1,2
vsel 29,2,3,29
vadduwm 4,4,0
.long 0x13C18682
vadduwm 30,30,29
vadduwm 0,0,30
lvx 28,10,7
bdnz .L16_xx
lvx 10,0,11
subic. 5,5,1
lvx 11,10,11
vadduwm 0,0,10
lvx 12,26,11
vadduwm 1,1,11
lvx 13,27,11
vadduwm 2,2,12
lvx 14,28,11
vadduwm 3,3,13
lvx 15,29,11
vadduwm 4,4,14
lvx 16,30,11
vadduwm 5,5,15
lvx 17,31,11
vadduwm 6,6,16
vadduwm 7,7,17
bne .Loop
lvx 8,26,7
vperm 0,0,1,28
lvx 9,27,7
vperm 4,4,5,28
vperm 0,0,2,8
vperm 4,4,6,8
vperm 0,0,3,9
vperm 4,4,7,9
.long 0x7C001F19
.long 0x7C8A1F19
addi 11,1,207
mtlr 8
or 12,12,12
lvx 24,0,11
lvx 25,10,11
lvx 26,26,11
lvx 27,27,11
lvx 28,28,11
lvx 29,29,11
lvx 30,30,11
lvx 31,31,11
ld 26,336(1)
ld 27,344(1)
ld 28,352(1)
ld 29,360(1)
ld 30,368(1)
ld 31,376(1)
addi 1,1,384
blr
.long 0
.byte 0,12,4,1,0x80,6,3,0
.long 0
.size sha256_block_p8,.-sha256_block_p8
.align 6
.LPICmeup:
mflr 0
bcl 20,31,$+4
mflr 6
addi 6,6,56
mtlr 0
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.space 28
.long 0x428a2f98,0x428a2f98,0x428a2f98,0x428a2f98
.long 0x71374491,0x71374491,0x71374491,0x71374491
.long 0xb5c0fbcf,0xb5c0fbcf,0xb5c0fbcf,0xb5c0fbcf
.long 0xe9b5dba5,0xe9b5dba5,0xe9b5dba5,0xe9b5dba5
.long 0x3956c25b,0x3956c25b,0x3956c25b,0x3956c25b
.long 0x59f111f1,0x59f111f1,0x59f111f1,0x59f111f1
.long 0x923f82a4,0x923f82a4,0x923f82a4,0x923f82a4
.long 0xab1c5ed5,0xab1c5ed5,0xab1c5ed5,0xab1c5ed5
.long 0xd807aa98,0xd807aa98,0xd807aa98,0xd807aa98
.long 0x12835b01,0x12835b01,0x12835b01,0x12835b01
.long 0x243185be,0x243185be,0x243185be,0x243185be
.long 0x550c7dc3,0x550c7dc3,0x550c7dc3,0x550c7dc3
.long 0x72be5d74,0x72be5d74,0x72be5d74,0x72be5d74
.long 0x80deb1fe,0x80deb1fe,0x80deb1fe,0x80deb1fe
.long 0x9bdc06a7,0x9bdc06a7,0x9bdc06a7,0x9bdc06a7
.long 0xc19bf174,0xc19bf174,0xc19bf174,0xc19bf174
.long 0xe49b69c1,0xe49b69c1,0xe49b69c1,0xe49b69c1
.long 0xefbe4786,0xefbe4786,0xefbe4786,0xefbe4786
.long 0x0fc19dc6,0x0fc19dc6,0x0fc19dc6,0x0fc19dc6
.long 0x240ca1cc,0x240ca1cc,0x240ca1cc,0x240ca1cc
.long 0x2de92c6f,0x2de92c6f,0x2de92c6f,0x2de92c6f
.long 0x4a7484aa,0x4a7484aa,0x4a7484aa,0x4a7484aa
.long 0x5cb0a9dc,0x5cb0a9dc,0x5cb0a9dc,0x5cb0a9dc
.long 0x76f988da,0x76f988da,0x76f988da,0x76f988da
.long 0x983e5152,0x983e5152,0x983e5152,0x983e5152
.long 0xa831c66d,0xa831c66d,0xa831c66d,0xa831c66d
.long 0xb00327c8,0xb00327c8,0xb00327c8,0xb00327c8
.long 0xbf597fc7,0xbf597fc7,0xbf597fc7,0xbf597fc7
.long 0xc6e00bf3,0xc6e00bf3,0xc6e00bf3,0xc6e00bf3
.long 0xd5a79147,0xd5a79147,0xd5a79147,0xd5a79147
.long 0x06ca6351,0x06ca6351,0x06ca6351,0x06ca6351
.long 0x14292967,0x14292967,0x14292967,0x14292967
.long 0x27b70a85,0x27b70a85,0x27b70a85,0x27b70a85
.long 0x2e1b2138,0x2e1b2138,0x2e1b2138,0x2e1b2138
.long 0x4d2c6dfc,0x4d2c6dfc,0x4d2c6dfc,0x4d2c6dfc
.long 0x53380d13,0x53380d13,0x53380d13,0x53380d13
.long 0x650a7354,0x650a7354,0x650a7354,0x650a7354
.long 0x766a0abb,0x766a0abb,0x766a0abb,0x766a0abb
.long 0x81c2c92e,0x81c2c92e,0x81c2c92e,0x81c2c92e
.long 0x92722c85,0x92722c85,0x92722c85,0x92722c85
.long 0xa2bfe8a1,0xa2bfe8a1,0xa2bfe8a1,0xa2bfe8a1
.long 0xa81a664b,0xa81a664b,0xa81a664b,0xa81a664b
.long 0xc24b8b70,0xc24b8b70,0xc24b8b70,0xc24b8b70
.long 0xc76c51a3,0xc76c51a3,0xc76c51a3,0xc76c51a3
.long 0xd192e819,0xd192e819,0xd192e819,0xd192e819
.long 0xd6990624,0xd6990624,0xd6990624,0xd6990624
.long 0xf40e3585,0xf40e3585,0xf40e3585,0xf40e3585
.long 0x106aa070,0x106aa070,0x106aa070,0x106aa070
.long 0x19a4c116,0x19a4c116,0x19a4c116,0x19a4c116
.long 0x1e376c08,0x1e376c08,0x1e376c08,0x1e376c08
.long 0x2748774c,0x2748774c,0x2748774c,0x2748774c
.long 0x34b0bcb5,0x34b0bcb5,0x34b0bcb5,0x34b0bcb5
.long 0x391c0cb3,0x391c0cb3,0x391c0cb3,0x391c0cb3
.long 0x4ed8aa4a,0x4ed8aa4a,0x4ed8aa4a,0x4ed8aa4a
.long 0x5b9cca4f,0x5b9cca4f,0x5b9cca4f,0x5b9cca4f
.long 0x682e6ff3,0x682e6ff3,0x682e6ff3,0x682e6ff3
.long 0x748f82ee,0x748f82ee,0x748f82ee,0x748f82ee
.long 0x78a5636f,0x78a5636f,0x78a5636f,0x78a5636f
.long 0x84c87814,0x84c87814,0x84c87814,0x84c87814
.long 0x8cc70208,0x8cc70208,0x8cc70208,0x8cc70208
.long 0x90befffa,0x90befffa,0x90befffa,0x90befffa
.long 0xa4506ceb,0xa4506ceb,0xa4506ceb,0xa4506ceb
.long 0xbef9a3f7,0xbef9a3f7,0xbef9a3f7,0xbef9a3f7
.long 0xc67178f2,0xc67178f2,0xc67178f2,0xc67178f2
.long 0,0,0,0
.long 0x00010203,0x10111213,0x10111213,0x10111213
.long 0x00010203,0x04050607,0x10111213,0x10111213
.long 0x00010203,0x04050607,0x08090a0b,0x10111213
.byte 83,72,65,50,53,54,32,102,111,114,32,80,111,119,101,114,73,83,65,32,50,46,48,55,44,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align 2
.align 2

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,837 @@
/* $FreeBSD$ */
/* Do not modify. This file is auto-generated from sha512p8-ppc.pl. */
.machine "any"
.abiversion 2
.text
.globl sha512_block_p8
.type sha512_block_p8,@function
.align 6
sha512_block_p8:
.localentry sha512_block_p8,0
stdu 1,-384(1)
mflr 8
li 10,207
li 11,223
stvx 24,10,1
addi 10,10,32
li 12,-1
stvx 25,11,1
addi 11,11,32
stvx 26,10,1
addi 10,10,32
stvx 27,11,1
addi 11,11,32
stvx 28,10,1
addi 10,10,32
stvx 29,11,1
addi 11,11,32
stvx 30,10,1
stvx 31,11,1
li 11,-4096+255
stw 12,332(1)
li 10,0x10
std 26,336(1)
li 26,0x20
std 27,344(1)
li 27,0x30
std 28,352(1)
li 28,0x40
std 29,360(1)
li 29,0x50
std 30,368(1)
li 30,0x60
std 31,376(1)
li 31,0x70
std 8,400(1)
or 11,11,11
bl .LPICmeup
addi 11,1,79
.long 0x7C001E99
.long 0x7C4A1E99
.long 0x7C9A1E99
vsldoi 1,0,0,8
.long 0x7CDB1E99
vsldoi 3,2,2,8
vsldoi 5,4,4,8
vsldoi 7,6,6,8
li 0,4
b .Loop
.align 5
.Loop:
lvx 28,0,6
.long 0x7D002699
addi 4,4,16
mr 7,6
stvx 0,0,11
stvx 1,10,11
stvx 2,26,11
stvx 3,27,11
stvx 4,28,11
stvx 5,29,11
stvx 6,30,11
stvx 7,31,11
.long 0x10E7E0C0
lvx 28,10,6
.long 0x10E740C0
vsel 29,6,5,4
.long 0x10C6E0C0
.long 0x10E7E8C0
.long 0x13C4FEC2
.long 0x10E7F0C0
vxor 29,0,1
vsel 29,1,2,29
.long 0x106338C0
.long 0x13C086C2
.long 0x13DEE8C0
.long 0x10E7F0C0
lvx 28,26,7
.long 0x7D402699
addi 4,4,16
vsldoi 9,8,8,8
.long 0x10C648C0
vsel 29,5,4,3
.long 0x10A5E0C0
.long 0x10C6E8C0
.long 0x13C3FEC2
.long 0x10C6F0C0
vxor 29,7,0
vsel 29,0,1,29
.long 0x104230C0
.long 0x13C786C2
.long 0x13DEE8C0
.long 0x10C6F0C0
lvx 28,27,7
.long 0x10A550C0
vsel 29,4,3,2
.long 0x1084E0C0
.long 0x10A5E8C0
.long 0x13C2FEC2
.long 0x10A5F0C0
vxor 29,6,7
vsel 29,7,0,29
.long 0x102128C0
.long 0x13C686C2
.long 0x13DEE8C0
.long 0x10A5F0C0
lvx 28,28,7
.long 0x7D802699
addi 4,4,16
vsldoi 11,10,10,8
.long 0x108458C0
vsel 29,3,2,1
.long 0x1063E0C0
.long 0x1084E8C0
.long 0x13C1FEC2
.long 0x1084F0C0
vxor 29,5,6
vsel 29,6,7,29
.long 0x100020C0
.long 0x13C586C2
.long 0x13DEE8C0
.long 0x1084F0C0
lvx 28,29,7
.long 0x106360C0
vsel 29,2,1,0
.long 0x1042E0C0
.long 0x1063E8C0
.long 0x13C0FEC2
.long 0x1063F0C0
vxor 29,4,5
vsel 29,5,6,29
.long 0x10E718C0
.long 0x13C486C2
.long 0x13DEE8C0
.long 0x1063F0C0
lvx 28,30,7
.long 0x7DC02699
addi 4,4,16
vsldoi 13,12,12,8
.long 0x104268C0
vsel 29,1,0,7
.long 0x1021E0C0
.long 0x1042E8C0
.long 0x13C7FEC2
.long 0x1042F0C0
vxor 29,3,4
vsel 29,4,5,29
.long 0x10C610C0
.long 0x13C386C2
.long 0x13DEE8C0
.long 0x1042F0C0
lvx 28,31,7
addi 7,7,0x80
.long 0x102170C0
vsel 29,0,7,6
.long 0x1000E0C0
.long 0x1021E8C0
.long 0x13C6FEC2
.long 0x1021F0C0
vxor 29,2,3
vsel 29,3,4,29
.long 0x10A508C0
.long 0x13C286C2
.long 0x13DEE8C0
.long 0x1021F0C0
lvx 28,0,7
.long 0x7E002699
addi 4,4,16
vsldoi 15,14,14,8
.long 0x100078C0
vsel 29,7,6,5
.long 0x10E7E0C0
.long 0x1000E8C0
.long 0x13C5FEC2
.long 0x1000F0C0
vxor 29,1,2
vsel 29,2,3,29
.long 0x108400C0
.long 0x13C186C2
.long 0x13DEE8C0
.long 0x1000F0C0
lvx 28,10,7
.long 0x10E780C0
vsel 29,6,5,4
.long 0x10C6E0C0
.long 0x10E7E8C0
.long 0x13C4FEC2
.long 0x10E7F0C0
vxor 29,0,1
vsel 29,1,2,29
.long 0x106338C0
.long 0x13C086C2
.long 0x13DEE8C0
.long 0x10E7F0C0
lvx 28,26,7
.long 0x7E402699
addi 4,4,16
vsldoi 17,16,16,8
.long 0x10C688C0
vsel 29,5,4,3
.long 0x10A5E0C0
.long 0x10C6E8C0
.long 0x13C3FEC2
.long 0x10C6F0C0
vxor 29,7,0
vsel 29,0,1,29
.long 0x104230C0
.long 0x13C786C2
.long 0x13DEE8C0
.long 0x10C6F0C0
lvx 28,27,7
.long 0x10A590C0
vsel 29,4,3,2
.long 0x1084E0C0
.long 0x10A5E8C0
.long 0x13C2FEC2
.long 0x10A5F0C0
vxor 29,6,7
vsel 29,7,0,29
.long 0x102128C0
.long 0x13C686C2
.long 0x13DEE8C0
.long 0x10A5F0C0
lvx 28,28,7
.long 0x7F002699
addi 4,4,16
vsldoi 19,18,18,8
.long 0x108498C0
vsel 29,3,2,1
.long 0x1063E0C0
.long 0x1084E8C0
.long 0x13C1FEC2
.long 0x1084F0C0
vxor 29,5,6
vsel 29,6,7,29
.long 0x100020C0
.long 0x13C586C2
.long 0x13DEE8C0
.long 0x1084F0C0
lvx 28,29,7
.long 0x1063C0C0
vsel 29,2,1,0
.long 0x1042E0C0
.long 0x1063E8C0
.long 0x13C0FEC2
.long 0x1063F0C0
vxor 29,4,5
vsel 29,5,6,29
.long 0x10E718C0
.long 0x13C486C2
.long 0x13DEE8C0
.long 0x1063F0C0
lvx 28,30,7
.long 0x7F402699
addi 4,4,16
vsldoi 25,24,24,8
.long 0x1042C8C0
vsel 29,1,0,7
.long 0x1021E0C0
.long 0x1042E8C0
.long 0x13C7FEC2
.long 0x1042F0C0
vxor 29,3,4
vsel 29,4,5,29
.long 0x10C610C0
.long 0x13C386C2
.long 0x13DEE8C0
.long 0x1042F0C0
lvx 28,31,7
addi 7,7,0x80
.long 0x1021D0C0
vsel 29,0,7,6
.long 0x1000E0C0
.long 0x1021E8C0
.long 0x13C6FEC2
.long 0x1021F0C0
vxor 29,2,3
vsel 29,3,4,29
.long 0x10A508C0
.long 0x13C286C2
.long 0x13DEE8C0
.long 0x1021F0C0
lvx 28,0,7
vsldoi 27,26,26,8
.long 0x13C906C2
.long 0x1108F0C0
.long 0x13DA7EC2
.long 0x1108F0C0
.long 0x110888C0
.long 0x1000D8C0
vsel 29,7,6,5
.long 0x10E7E0C0
.long 0x1000E8C0
.long 0x13C5FEC2
.long 0x1000F0C0
vxor 29,1,2
vsel 29,2,3,29
.long 0x108400C0
.long 0x13C186C2
.long 0x13DEE8C0
.long 0x1000F0C0
lvx 28,10,7
mtctr 0
b .L16_xx
.align 5
.L16_xx:
.long 0x13CA06C2
.long 0x1129F0C0
.long 0x13DB7EC2
.long 0x1129F0C0
.long 0x112990C0
.long 0x10E740C0
vsel 29,6,5,4
.long 0x10C6E0C0
.long 0x10E7E8C0
.long 0x13C4FEC2
.long 0x10E7F0C0
vxor 29,0,1
vsel 29,1,2,29
.long 0x106338C0
.long 0x13C086C2
.long 0x13DEE8C0
.long 0x10E7F0C0
lvx 28,26,7
.long 0x13CB06C2
.long 0x114AF0C0
.long 0x13C87EC2
.long 0x114AF0C0
.long 0x114A98C0
.long 0x10C648C0
vsel 29,5,4,3
.long 0x10A5E0C0
.long 0x10C6E8C0
.long 0x13C3FEC2
.long 0x10C6F0C0
vxor 29,7,0
vsel 29,0,1,29
.long 0x104230C0
.long 0x13C786C2
.long 0x13DEE8C0
.long 0x10C6F0C0
lvx 28,27,7
.long 0x13CC06C2
.long 0x116BF0C0
.long 0x13C97EC2
.long 0x116BF0C0
.long 0x116BC0C0
.long 0x10A550C0
vsel 29,4,3,2
.long 0x1084E0C0
.long 0x10A5E8C0
.long 0x13C2FEC2
.long 0x10A5F0C0
vxor 29,6,7
vsel 29,7,0,29
.long 0x102128C0
.long 0x13C686C2
.long 0x13DEE8C0
.long 0x10A5F0C0
lvx 28,28,7
.long 0x13CD06C2
.long 0x118CF0C0
.long 0x13CA7EC2
.long 0x118CF0C0
.long 0x118CC8C0
.long 0x108458C0
vsel 29,3,2,1
.long 0x1063E0C0
.long 0x1084E8C0
.long 0x13C1FEC2
.long 0x1084F0C0
vxor 29,5,6
vsel 29,6,7,29
.long 0x100020C0
.long 0x13C586C2
.long 0x13DEE8C0
.long 0x1084F0C0
lvx 28,29,7
.long 0x13CE06C2
.long 0x11ADF0C0
.long 0x13CB7EC2
.long 0x11ADF0C0
.long 0x11ADD0C0
.long 0x106360C0
vsel 29,2,1,0
.long 0x1042E0C0
.long 0x1063E8C0
.long 0x13C0FEC2
.long 0x1063F0C0
vxor 29,4,5
vsel 29,5,6,29
.long 0x10E718C0
.long 0x13C486C2
.long 0x13DEE8C0
.long 0x1063F0C0
lvx 28,30,7
.long 0x13CF06C2
.long 0x11CEF0C0
.long 0x13CC7EC2
.long 0x11CEF0C0
.long 0x11CED8C0
.long 0x104268C0
vsel 29,1,0,7
.long 0x1021E0C0
.long 0x1042E8C0
.long 0x13C7FEC2
.long 0x1042F0C0
vxor 29,3,4
vsel 29,4,5,29
.long 0x10C610C0
.long 0x13C386C2
.long 0x13DEE8C0
.long 0x1042F0C0
lvx 28,31,7
addi 7,7,0x80
.long 0x13D006C2
.long 0x11EFF0C0
.long 0x13CD7EC2
.long 0x11EFF0C0
.long 0x11EF40C0
.long 0x102170C0
vsel 29,0,7,6
.long 0x1000E0C0
.long 0x1021E8C0
.long 0x13C6FEC2
.long 0x1021F0C0
vxor 29,2,3
vsel 29,3,4,29
.long 0x10A508C0
.long 0x13C286C2
.long 0x13DEE8C0
.long 0x1021F0C0
lvx 28,0,7
.long 0x13D106C2
.long 0x1210F0C0
.long 0x13CE7EC2
.long 0x1210F0C0
.long 0x121048C0
.long 0x100078C0
vsel 29,7,6,5
.long 0x10E7E0C0
.long 0x1000E8C0
.long 0x13C5FEC2
.long 0x1000F0C0
vxor 29,1,2
vsel 29,2,3,29
.long 0x108400C0
.long 0x13C186C2
.long 0x13DEE8C0
.long 0x1000F0C0
lvx 28,10,7
.long 0x13D206C2
.long 0x1231F0C0
.long 0x13CF7EC2
.long 0x1231F0C0
.long 0x123150C0
.long 0x10E780C0
vsel 29,6,5,4
.long 0x10C6E0C0
.long 0x10E7E8C0
.long 0x13C4FEC2
.long 0x10E7F0C0
vxor 29,0,1
vsel 29,1,2,29
.long 0x106338C0
.long 0x13C086C2
.long 0x13DEE8C0
.long 0x10E7F0C0
lvx 28,26,7
.long 0x13D306C2
.long 0x1252F0C0
.long 0x13D07EC2
.long 0x1252F0C0
.long 0x125258C0
.long 0x10C688C0
vsel 29,5,4,3
.long 0x10A5E0C0
.long 0x10C6E8C0
.long 0x13C3FEC2
.long 0x10C6F0C0
vxor 29,7,0
vsel 29,0,1,29
.long 0x104230C0
.long 0x13C786C2
.long 0x13DEE8C0
.long 0x10C6F0C0
lvx 28,27,7
.long 0x13D806C2
.long 0x1273F0C0
.long 0x13D17EC2
.long 0x1273F0C0
.long 0x127360C0
.long 0x10A590C0
vsel 29,4,3,2
.long 0x1084E0C0
.long 0x10A5E8C0
.long 0x13C2FEC2
.long 0x10A5F0C0
vxor 29,6,7
vsel 29,7,0,29
.long 0x102128C0
.long 0x13C686C2
.long 0x13DEE8C0
.long 0x10A5F0C0
lvx 28,28,7
.long 0x13D906C2
.long 0x1318F0C0
.long 0x13D27EC2
.long 0x1318F0C0
.long 0x131868C0
.long 0x108498C0
vsel 29,3,2,1
.long 0x1063E0C0
.long 0x1084E8C0
.long 0x13C1FEC2
.long 0x1084F0C0
vxor 29,5,6
vsel 29,6,7,29
.long 0x100020C0
.long 0x13C586C2
.long 0x13DEE8C0
.long 0x1084F0C0
lvx 28,29,7
.long 0x13DA06C2
.long 0x1339F0C0
.long 0x13D37EC2
.long 0x1339F0C0
.long 0x133970C0
.long 0x1063C0C0
vsel 29,2,1,0
.long 0x1042E0C0
.long 0x1063E8C0
.long 0x13C0FEC2
.long 0x1063F0C0
vxor 29,4,5
vsel 29,5,6,29
.long 0x10E718C0
.long 0x13C486C2
.long 0x13DEE8C0
.long 0x1063F0C0
lvx 28,30,7
.long 0x13DB06C2
.long 0x135AF0C0
.long 0x13D87EC2
.long 0x135AF0C0
.long 0x135A78C0
.long 0x1042C8C0
vsel 29,1,0,7
.long 0x1021E0C0
.long 0x1042E8C0
.long 0x13C7FEC2
.long 0x1042F0C0
vxor 29,3,4
vsel 29,4,5,29
.long 0x10C610C0
.long 0x13C386C2
.long 0x13DEE8C0
.long 0x1042F0C0
lvx 28,31,7
addi 7,7,0x80
.long 0x13C806C2
.long 0x137BF0C0
.long 0x13D97EC2
.long 0x137BF0C0
.long 0x137B80C0
.long 0x1021D0C0
vsel 29,0,7,6
.long 0x1000E0C0
.long 0x1021E8C0
.long 0x13C6FEC2
.long 0x1021F0C0
vxor 29,2,3
vsel 29,3,4,29
.long 0x10A508C0
.long 0x13C286C2
.long 0x13DEE8C0
.long 0x1021F0C0
lvx 28,0,7
.long 0x13C906C2
.long 0x1108F0C0
.long 0x13DA7EC2
.long 0x1108F0C0
.long 0x110888C0
.long 0x1000D8C0
vsel 29,7,6,5
.long 0x10E7E0C0
.long 0x1000E8C0
.long 0x13C5FEC2
.long 0x1000F0C0
vxor 29,1,2
vsel 29,2,3,29
.long 0x108400C0
.long 0x13C186C2
.long 0x13DEE8C0
.long 0x1000F0C0
lvx 28,10,7
bdnz .L16_xx
lvx 10,0,11
subic. 5,5,1
lvx 11,10,11
.long 0x100050C0
lvx 12,26,11
.long 0x102158C0
lvx 13,27,11
.long 0x104260C0
lvx 14,28,11
.long 0x106368C0
lvx 15,29,11
.long 0x108470C0
lvx 16,30,11
.long 0x10A578C0
lvx 17,31,11
.long 0x10C680C0
.long 0x10E788C0
bne .Loop
vperm 0,0,1,28
vperm 2,2,3,28
vperm 4,4,5,28
vperm 6,6,7,28
.long 0x7C001F99
.long 0x7C4A1F99
.long 0x7C9A1F99
.long 0x7CDB1F99
addi 11,1,207
mtlr 8
or 12,12,12
lvx 24,0,11
lvx 25,10,11
lvx 26,26,11
lvx 27,27,11
lvx 28,28,11
lvx 29,29,11
lvx 30,30,11
lvx 31,31,11
ld 26,336(1)
ld 27,344(1)
ld 28,352(1)
ld 29,360(1)
ld 30,368(1)
ld 31,376(1)
addi 1,1,384
blr
.long 0
.byte 0,12,4,1,0x80,6,3,0
.long 0
.size sha512_block_p8,.-sha512_block_p8
.align 6
.LPICmeup:
mflr 0
bcl 20,31,$+4
mflr 6
addi 6,6,56
mtlr 0
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.space 28
.long 0x428a2f98,0xd728ae22
.long 0x428a2f98,0xd728ae22
.long 0x71374491,0x23ef65cd
.long 0x71374491,0x23ef65cd
.long 0xb5c0fbcf,0xec4d3b2f
.long 0xb5c0fbcf,0xec4d3b2f
.long 0xe9b5dba5,0x8189dbbc
.long 0xe9b5dba5,0x8189dbbc
.long 0x3956c25b,0xf348b538
.long 0x3956c25b,0xf348b538
.long 0x59f111f1,0xb605d019
.long 0x59f111f1,0xb605d019
.long 0x923f82a4,0xaf194f9b
.long 0x923f82a4,0xaf194f9b
.long 0xab1c5ed5,0xda6d8118
.long 0xab1c5ed5,0xda6d8118
.long 0xd807aa98,0xa3030242
.long 0xd807aa98,0xa3030242
.long 0x12835b01,0x45706fbe
.long 0x12835b01,0x45706fbe
.long 0x243185be,0x4ee4b28c
.long 0x243185be,0x4ee4b28c
.long 0x550c7dc3,0xd5ffb4e2
.long 0x550c7dc3,0xd5ffb4e2
.long 0x72be5d74,0xf27b896f
.long 0x72be5d74,0xf27b896f
.long 0x80deb1fe,0x3b1696b1
.long 0x80deb1fe,0x3b1696b1
.long 0x9bdc06a7,0x25c71235
.long 0x9bdc06a7,0x25c71235
.long 0xc19bf174,0xcf692694
.long 0xc19bf174,0xcf692694
.long 0xe49b69c1,0x9ef14ad2
.long 0xe49b69c1,0x9ef14ad2
.long 0xefbe4786,0x384f25e3
.long 0xefbe4786,0x384f25e3
.long 0x0fc19dc6,0x8b8cd5b5
.long 0x0fc19dc6,0x8b8cd5b5
.long 0x240ca1cc,0x77ac9c65
.long 0x240ca1cc,0x77ac9c65
.long 0x2de92c6f,0x592b0275
.long 0x2de92c6f,0x592b0275
.long 0x4a7484aa,0x6ea6e483
.long 0x4a7484aa,0x6ea6e483
.long 0x5cb0a9dc,0xbd41fbd4
.long 0x5cb0a9dc,0xbd41fbd4
.long 0x76f988da,0x831153b5
.long 0x76f988da,0x831153b5
.long 0x983e5152,0xee66dfab
.long 0x983e5152,0xee66dfab
.long 0xa831c66d,0x2db43210
.long 0xa831c66d,0x2db43210
.long 0xb00327c8,0x98fb213f
.long 0xb00327c8,0x98fb213f
.long 0xbf597fc7,0xbeef0ee4
.long 0xbf597fc7,0xbeef0ee4
.long 0xc6e00bf3,0x3da88fc2
.long 0xc6e00bf3,0x3da88fc2
.long 0xd5a79147,0x930aa725
.long 0xd5a79147,0x930aa725
.long 0x06ca6351,0xe003826f
.long 0x06ca6351,0xe003826f
.long 0x14292967,0x0a0e6e70
.long 0x14292967,0x0a0e6e70
.long 0x27b70a85,0x46d22ffc
.long 0x27b70a85,0x46d22ffc
.long 0x2e1b2138,0x5c26c926
.long 0x2e1b2138,0x5c26c926
.long 0x4d2c6dfc,0x5ac42aed
.long 0x4d2c6dfc,0x5ac42aed
.long 0x53380d13,0x9d95b3df
.long 0x53380d13,0x9d95b3df
.long 0x650a7354,0x8baf63de
.long 0x650a7354,0x8baf63de
.long 0x766a0abb,0x3c77b2a8
.long 0x766a0abb,0x3c77b2a8
.long 0x81c2c92e,0x47edaee6
.long 0x81c2c92e,0x47edaee6
.long 0x92722c85,0x1482353b
.long 0x92722c85,0x1482353b
.long 0xa2bfe8a1,0x4cf10364
.long 0xa2bfe8a1,0x4cf10364
.long 0xa81a664b,0xbc423001
.long 0xa81a664b,0xbc423001
.long 0xc24b8b70,0xd0f89791
.long 0xc24b8b70,0xd0f89791
.long 0xc76c51a3,0x0654be30
.long 0xc76c51a3,0x0654be30
.long 0xd192e819,0xd6ef5218
.long 0xd192e819,0xd6ef5218
.long 0xd6990624,0x5565a910
.long 0xd6990624,0x5565a910
.long 0xf40e3585,0x5771202a
.long 0xf40e3585,0x5771202a
.long 0x106aa070,0x32bbd1b8
.long 0x106aa070,0x32bbd1b8
.long 0x19a4c116,0xb8d2d0c8
.long 0x19a4c116,0xb8d2d0c8
.long 0x1e376c08,0x5141ab53
.long 0x1e376c08,0x5141ab53
.long 0x2748774c,0xdf8eeb99
.long 0x2748774c,0xdf8eeb99
.long 0x34b0bcb5,0xe19b48a8
.long 0x34b0bcb5,0xe19b48a8
.long 0x391c0cb3,0xc5c95a63
.long 0x391c0cb3,0xc5c95a63
.long 0x4ed8aa4a,0xe3418acb
.long 0x4ed8aa4a,0xe3418acb
.long 0x5b9cca4f,0x7763e373
.long 0x5b9cca4f,0x7763e373
.long 0x682e6ff3,0xd6b2b8a3
.long 0x682e6ff3,0xd6b2b8a3
.long 0x748f82ee,0x5defb2fc
.long 0x748f82ee,0x5defb2fc
.long 0x78a5636f,0x43172f60
.long 0x78a5636f,0x43172f60
.long 0x84c87814,0xa1f0ab72
.long 0x84c87814,0xa1f0ab72
.long 0x8cc70208,0x1a6439ec
.long 0x8cc70208,0x1a6439ec
.long 0x90befffa,0x23631e28
.long 0x90befffa,0x23631e28
.long 0xa4506ceb,0xde82bde9
.long 0xa4506ceb,0xde82bde9
.long 0xbef9a3f7,0xb2c67915
.long 0xbef9a3f7,0xb2c67915
.long 0xc67178f2,0xe372532b
.long 0xc67178f2,0xe372532b
.long 0xca273ece,0xea26619c
.long 0xca273ece,0xea26619c
.long 0xd186b8c7,0x21c0c207
.long 0xd186b8c7,0x21c0c207
.long 0xeada7dd6,0xcde0eb1e
.long 0xeada7dd6,0xcde0eb1e
.long 0xf57d4f7f,0xee6ed178
.long 0xf57d4f7f,0xee6ed178
.long 0x06f067aa,0x72176fba
.long 0x06f067aa,0x72176fba
.long 0x0a637dc5,0xa2c898a6
.long 0x0a637dc5,0xa2c898a6
.long 0x113f9804,0xbef90dae
.long 0x113f9804,0xbef90dae
.long 0x1b710b35,0x131c471b
.long 0x1b710b35,0x131c471b
.long 0x28db77f5,0x23047d84
.long 0x28db77f5,0x23047d84
.long 0x32caab7b,0x40c72493
.long 0x32caab7b,0x40c72493
.long 0x3c9ebe0a,0x15c9bebc
.long 0x3c9ebe0a,0x15c9bebc
.long 0x431d67c4,0x9c100d4c
.long 0x431d67c4,0x9c100d4c
.long 0x4cc5d4be,0xcb3e42b6
.long 0x4cc5d4be,0xcb3e42b6
.long 0x597f299c,0xfc657e2a
.long 0x597f299c,0xfc657e2a
.long 0x5fcb6fab,0x3ad6faec
.long 0x5fcb6fab,0x3ad6faec
.long 0x6c44198c,0x4a475817
.long 0x6c44198c,0x4a475817
.long 0,0
.long 0,0
.long 0x00010203,0x04050607
.long 0x10111213,0x14151617
.byte 83,72,65,53,49,50,32,102,111,114,32,80,111,119,101,114,73,83,65,32,50,46,48,55,44,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align 2
.align 2

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,350 @@
/* $FreeBSD$ */
/* Do not modify. This file is auto-generated from x25519-ppc64.pl. */
.abiversion 2
.text
.globl x25519_fe51_mul
.type x25519_fe51_mul,@function
.type x25519_fe51_mul,@function
.align 5
x25519_fe51_mul:
.localentry x25519_fe51_mul,0
stdu 1,-144(1)
std 21,56(1)
std 22,64(1)
std 23,72(1)
std 24,80(1)
std 25,88(1)
std 26,96(1)
std 27,104(1)
std 28,112(1)
std 29,120(1)
std 30,128(1)
std 31,136(1)
ld 6,0(5)
ld 7,0(4)
ld 8,8(4)
ld 9,16(4)
ld 10,24(4)
ld 11,32(4)
mulld 22,7,6
mulhdu 23,7,6
mulld 24,8,6
mulhdu 25,8,6
mulld 30,11,6
mulhdu 31,11,6
ld 4,8(5)
mulli 11,11,19
mulld 26,9,6
mulhdu 27,9,6
mulld 28,10,6
mulhdu 29,10,6
mulld 12,11,4
mulhdu 21,11,4
addc 22,22,12
adde 23,23,21
mulld 12,7,4
mulhdu 21,7,4
addc 24,24,12
adde 25,25,21
mulld 12,10,4
mulhdu 21,10,4
ld 6,16(5)
mulli 10,10,19
addc 30,30,12
adde 31,31,21
mulld 12,8,4
mulhdu 21,8,4
addc 26,26,12
adde 27,27,21
mulld 12,9,4
mulhdu 21,9,4
addc 28,28,12
adde 29,29,21
mulld 12,10,6
mulhdu 21,10,6
addc 22,22,12
adde 23,23,21
mulld 12,11,6
mulhdu 21,11,6
addc 24,24,12
adde 25,25,21
mulld 12,9,6
mulhdu 21,9,6
ld 4,24(5)
mulli 9,9,19
addc 30,30,12
adde 31,31,21
mulld 12,7,6
mulhdu 21,7,6
addc 26,26,12
adde 27,27,21
mulld 12,8,6
mulhdu 21,8,6
addc 28,28,12
adde 29,29,21
mulld 12,9,4
mulhdu 21,9,4
addc 22,22,12
adde 23,23,21
mulld 12,10,4
mulhdu 21,10,4
addc 24,24,12
adde 25,25,21
mulld 12,8,4
mulhdu 21,8,4
ld 6,32(5)
mulli 8,8,19
addc 30,30,12
adde 31,31,21
mulld 12,11,4
mulhdu 21,11,4
addc 26,26,12
adde 27,27,21
mulld 12,7,4
mulhdu 21,7,4
addc 28,28,12
adde 29,29,21
mulld 12,8,6
mulhdu 21,8,6
addc 22,22,12
adde 23,23,21
mulld 12,9,6
mulhdu 21,9,6
addc 24,24,12
adde 25,25,21
mulld 12,10,6
mulhdu 21,10,6
addc 26,26,12
adde 27,27,21
mulld 12,11,6
mulhdu 21,11,6
addc 28,28,12
adde 29,29,21
mulld 12,7,6
mulhdu 21,7,6
addc 30,30,12
adde 31,31,21
.Lfe51_reduce:
li 0,-1
srdi 0,0,13
srdi 12,26,51
and 9,26,0
insrdi 12,27,51,0
srdi 21,22,51
and 7,22,0
insrdi 21,23,51,0
addc 28,28,12
addze 29,29
addc 24,24,21
addze 25,25
srdi 12,28,51
and 10,28,0
insrdi 12,29,51,0
srdi 21,24,51
and 8,24,0
insrdi 21,25,51,0
addc 30,30,12
addze 31,31
add 9,9,21
srdi 12,30,51
and 11,30,0
insrdi 12,31,51,0
mulli 12,12,19
add 7,7,12
srdi 21,9,51
and 9,9,0
add 10,10,21
srdi 12,7,51
and 7,7,0
add 8,8,12
std 9,16(3)
std 10,24(3)
std 11,32(3)
std 7,0(3)
std 8,8(3)
ld 21,56(1)
ld 22,64(1)
ld 23,72(1)
ld 24,80(1)
ld 25,88(1)
ld 26,96(1)
ld 27,104(1)
ld 28,112(1)
ld 29,120(1)
ld 30,128(1)
ld 31,136(1)
addi 1,1,144
blr
.long 0
.byte 0,12,4,0,0x80,11,3,0
.long 0
.size x25519_fe51_mul,.-x25519_fe51_mul
.globl x25519_fe51_sqr
.type x25519_fe51_sqr,@function
.type x25519_fe51_sqr,@function
.align 5
x25519_fe51_sqr:
.localentry x25519_fe51_sqr,0
stdu 1,-144(1)
std 21,56(1)
std 22,64(1)
std 23,72(1)
std 24,80(1)
std 25,88(1)
std 26,96(1)
std 27,104(1)
std 28,112(1)
std 29,120(1)
std 30,128(1)
std 31,136(1)
ld 7,0(4)
ld 8,8(4)
ld 9,16(4)
ld 10,24(4)
ld 11,32(4)
add 6,7,7
mulli 21,11,19
mulld 22,7,7
mulhdu 23,7,7
mulld 24,8,6
mulhdu 25,8,6
mulld 26,9,6
mulhdu 27,9,6
mulld 28,10,6
mulhdu 29,10,6
mulld 30,11,6
mulhdu 31,11,6
add 6,8,8
mulld 12,11,21
mulhdu 11,11,21
addc 28,28,12
adde 29,29,11
mulli 5,10,19
mulld 12,8,8
mulhdu 11,8,8
addc 26,26,12
adde 27,27,11
mulld 12,9,6
mulhdu 11,9,6
addc 28,28,12
adde 29,29,11
mulld 12,10,6
mulhdu 11,10,6
addc 30,30,12
adde 31,31,11
mulld 12,21,6
mulhdu 11,21,6
add 6,10,10
addc 22,22,12
adde 23,23,11
mulld 12,10,5
mulhdu 10,10,5
addc 24,24,12
adde 25,25,10
mulld 12,6,21
mulhdu 10,6,21
add 6,9,9
addc 26,26,12
adde 27,27,10
mulld 12,9,9
mulhdu 10,9,9
addc 30,30,12
adde 31,31,10
mulld 12,5,6
mulhdu 10,5,6
addc 22,22,12
adde 23,23,10
mulld 12,21,6
mulhdu 10,21,6
addc 24,24,12
adde 25,25,10
b .Lfe51_reduce
.long 0
.byte 0,12,4,0,0x80,11,2,0
.long 0
.size x25519_fe51_sqr,.-x25519_fe51_sqr
.globl x25519_fe51_mul121666
.type x25519_fe51_mul121666,@function
.type x25519_fe51_mul121666,@function
.align 5
x25519_fe51_mul121666:
.localentry x25519_fe51_mul121666,0
stdu 1,-144(1)
std 21,56(1)
std 22,64(1)
std 23,72(1)
std 24,80(1)
std 25,88(1)
std 26,96(1)
std 27,104(1)
std 28,112(1)
std 29,120(1)
std 30,128(1)
std 31,136(1)
lis 6,1
ori 6,6,56130
ld 7,0(4)
ld 8,8(4)
ld 9,16(4)
ld 10,24(4)
ld 11,32(4)
mulld 22,7,6
mulhdu 23,7,6
mulld 24,8,6
mulhdu 25,8,6
mulld 26,9,6
mulhdu 27,9,6
mulld 28,10,6
mulhdu 29,10,6
mulld 30,11,6
mulhdu 31,11,6
b .Lfe51_reduce
.long 0
.byte 0,12,4,0,0x80,11,2,0
.long 0
.size x25519_fe51_mul121666,.-x25519_fe51_mul121666

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,577 @@
/* $FreeBSD$ */
/* Do not modify. This file is auto-generated from ghashp8-ppc.pl. */
.machine "any"
.abiversion 2
.text
.globl gcm_init_p8
.type gcm_init_p8,@function
.align 5
gcm_init_p8:
.localentry gcm_init_p8,0
li 0,-4096
li 8,0x10
li 12,-1
li 9,0x20
or 0,0,0
li 10,0x30
.long 0x7D202699
vspltisb 8,-16
vspltisb 5,1
vaddubm 8,8,8
vxor 4,4,4
vor 8,8,5
vsldoi 8,8,4,15
vsldoi 6,4,5,1
vaddubm 8,8,8
vspltisb 7,7
vor 8,8,6
vspltb 6,9,0
vsl 9,9,5
vsrab 6,6,7
vand 6,6,8
vxor 3,9,6
vsldoi 9,3,3,8
vsldoi 8,4,8,8
vsldoi 11,4,9,8
vsldoi 10,9,4,8
.long 0x7D001F99
.long 0x7D681F99
li 8,0x40
.long 0x7D291F99
li 9,0x50
.long 0x7D4A1F99
li 10,0x60
.long 0x10035CC8
.long 0x10234CC8
.long 0x104354C8
.long 0x10E044C8
vsldoi 5,1,4,8
vsldoi 6,4,1,8
vxor 0,0,5
vxor 2,2,6
vsldoi 0,0,0,8
vxor 0,0,7
vsldoi 6,0,0,8
.long 0x100044C8
vxor 6,6,2
vxor 16,0,6
vsldoi 17,16,16,8
vsldoi 19,4,17,8
vsldoi 18,17,4,8
.long 0x7E681F99
li 8,0x70
.long 0x7E291F99
li 9,0x80
.long 0x7E4A1F99
li 10,0x90
.long 0x10039CC8
.long 0x11B09CC8
.long 0x10238CC8
.long 0x11D08CC8
.long 0x104394C8
.long 0x11F094C8
.long 0x10E044C8
.long 0x114D44C8
vsldoi 5,1,4,8
vsldoi 6,4,1,8
vsldoi 11,14,4,8
vsldoi 9,4,14,8
vxor 0,0,5
vxor 2,2,6
vxor 13,13,11
vxor 15,15,9
vsldoi 0,0,0,8
vsldoi 13,13,13,8
vxor 0,0,7
vxor 13,13,10
vsldoi 6,0,0,8
vsldoi 9,13,13,8
.long 0x100044C8
.long 0x11AD44C8
vxor 6,6,2
vxor 9,9,15
vxor 0,0,6
vxor 13,13,9
vsldoi 9,0,0,8
vsldoi 17,13,13,8
vsldoi 11,4,9,8
vsldoi 10,9,4,8
vsldoi 19,4,17,8
vsldoi 18,17,4,8
.long 0x7D681F99
li 8,0xa0
.long 0x7D291F99
li 9,0xb0
.long 0x7D4A1F99
li 10,0xc0
.long 0x7E681F99
.long 0x7E291F99
.long 0x7E4A1F99
or 12,12,12
blr
.long 0
.byte 0,12,0x14,0,0,0,2,0
.long 0
.size gcm_init_p8,.-gcm_init_p8
.globl gcm_gmult_p8
.type gcm_gmult_p8,@function
.align 5
gcm_gmult_p8:
.localentry gcm_gmult_p8,0
lis 0,0xfff8
li 8,0x10
li 12,-1
li 9,0x20
or 0,0,0
li 10,0x30
.long 0x7C601E99
.long 0x7D682699
lvsl 12,0,0
.long 0x7D292699
vspltisb 5,0x07
.long 0x7D4A2699
vxor 12,12,5
.long 0x7D002699
vperm 3,3,3,12
vxor 4,4,4
.long 0x10035CC8
.long 0x10234CC8
.long 0x104354C8
.long 0x10E044C8
vsldoi 5,1,4,8
vsldoi 6,4,1,8
vxor 0,0,5
vxor 2,2,6
vsldoi 0,0,0,8
vxor 0,0,7
vsldoi 6,0,0,8
.long 0x100044C8
vxor 6,6,2
vxor 0,0,6
vperm 0,0,0,12
.long 0x7C001F99
or 12,12,12
blr
.long 0
.byte 0,12,0x14,0,0,0,2,0
.long 0
.size gcm_gmult_p8,.-gcm_gmult_p8
.globl gcm_ghash_p8
.type gcm_ghash_p8,@function
.align 5
gcm_ghash_p8:
.localentry gcm_ghash_p8,0
li 0,-4096
li 8,0x10
li 12,-1
li 9,0x20
or 0,0,0
li 10,0x30
.long 0x7C001E99
.long 0x7D682699
li 8,0x40
lvsl 12,0,0
.long 0x7D292699
li 9,0x50
vspltisb 5,0x07
.long 0x7D4A2699
li 10,0x60
vxor 12,12,5
.long 0x7D002699
vperm 0,0,0,12
vxor 4,4,4
cmpldi 6,64
bge .Lgcm_ghash_p8_4x
.long 0x7C602E99
addi 5,5,16
subic. 6,6,16
vperm 3,3,3,12
vxor 3,3,0
beq .Lshort
.long 0x7E682699
li 8,16
.long 0x7E292699
add 9,5,6
.long 0x7E4A2699
.align 5
.Loop_2x:
.long 0x7E002E99
vperm 16,16,16,12
subic 6,6,32
.long 0x10039CC8
.long 0x11B05CC8
subfe 0,0,0
.long 0x10238CC8
.long 0x11D04CC8
and 0,0,6
.long 0x104394C8
.long 0x11F054C8
add 5,5,0
vxor 0,0,13
vxor 1,1,14
.long 0x10E044C8
vsldoi 5,1,4,8
vsldoi 6,4,1,8
vxor 2,2,15
vxor 0,0,5
vxor 2,2,6
vsldoi 0,0,0,8
vxor 0,0,7
.long 0x7C682E99
addi 5,5,32
vsldoi 6,0,0,8
.long 0x100044C8
vperm 3,3,3,12
vxor 6,6,2
vxor 3,3,6
vxor 3,3,0
cmpld 9,5
bgt .Loop_2x
cmplwi 6,0
bne .Leven
.Lshort:
.long 0x10035CC8
.long 0x10234CC8
.long 0x104354C8
.long 0x10E044C8
vsldoi 5,1,4,8
vsldoi 6,4,1,8
vxor 0,0,5
vxor 2,2,6
vsldoi 0,0,0,8
vxor 0,0,7
vsldoi 6,0,0,8
.long 0x100044C8
vxor 6,6,2
.Leven:
vxor 0,0,6
vperm 0,0,0,12
.long 0x7C001F99
or 12,12,12
blr
.long 0
.byte 0,12,0x14,0,0,0,4,0
.long 0
.align 5
.gcm_ghash_p8_4x:
.Lgcm_ghash_p8_4x:
stdu 1,-256(1)
li 10,63
li 11,79
stvx 20,10,1
addi 10,10,32
stvx 21,11,1
addi 11,11,32
stvx 22,10,1
addi 10,10,32
stvx 23,11,1
addi 11,11,32
stvx 24,10,1
addi 10,10,32
stvx 25,11,1
addi 11,11,32
stvx 26,10,1
addi 10,10,32
stvx 27,11,1
addi 11,11,32
stvx 28,10,1
addi 10,10,32
stvx 29,11,1
addi 11,11,32
stvx 30,10,1
li 10,0x60
stvx 31,11,1
li 0,-1
stw 12,252(1)
or 0,0,0
lvsl 5,0,8
li 8,0x70
.long 0x7E292699
li 9,0x80
vspltisb 6,8
li 10,0x90
.long 0x7EE82699
li 8,0xa0
.long 0x7F092699
li 9,0xb0
.long 0x7F2A2699
li 10,0xc0
.long 0x7FA82699
li 8,0x10
.long 0x7FC92699
li 9,0x20
.long 0x7FEA2699
li 10,0x30
vsldoi 7,4,6,8
vaddubm 18,5,7
vaddubm 19,6,18
srdi 6,6,4
.long 0x7C602E99
.long 0x7E082E99
subic. 6,6,8
.long 0x7EC92E99
.long 0x7F8A2E99
addi 5,5,0x40
vperm 3,3,3,12
vperm 16,16,16,12
vperm 22,22,22,12
vperm 28,28,28,12
vxor 2,3,0
.long 0x11B0BCC8
.long 0x11D0C4C8
.long 0x11F0CCC8
vperm 11,17,9,18
vperm 5,22,28,19
vperm 10,17,9,19
vperm 6,22,28,18
.long 0x12B68CC8
.long 0x12855CC8
.long 0x137C4CC8
.long 0x134654C8
vxor 21,21,14
vxor 20,20,13
vxor 27,27,21
vxor 26,26,15
blt .Ltail_4x
.Loop_4x:
.long 0x7C602E99
.long 0x7E082E99
subic. 6,6,4
.long 0x7EC92E99
.long 0x7F8A2E99
addi 5,5,0x40
vperm 16,16,16,12
vperm 22,22,22,12
vperm 28,28,28,12
vperm 3,3,3,12
.long 0x1002ECC8
.long 0x1022F4C8
.long 0x1042FCC8
.long 0x11B0BCC8
.long 0x11D0C4C8
.long 0x11F0CCC8
vxor 0,0,20
vxor 1,1,27
vxor 2,2,26
vperm 5,22,28,19
vperm 6,22,28,18
.long 0x10E044C8
.long 0x12855CC8
.long 0x134654C8
vsldoi 5,1,4,8
vsldoi 6,4,1,8
vxor 0,0,5
vxor 2,2,6
vsldoi 0,0,0,8
vxor 0,0,7
vsldoi 6,0,0,8
.long 0x12B68CC8
.long 0x137C4CC8
.long 0x100044C8
vxor 20,20,13
vxor 26,26,15
vxor 2,2,3
vxor 21,21,14
vxor 2,2,6
vxor 27,27,21
vxor 2,2,0
bge .Loop_4x
.Ltail_4x:
.long 0x1002ECC8
.long 0x1022F4C8
.long 0x1042FCC8
vxor 0,0,20
vxor 1,1,27
.long 0x10E044C8
vsldoi 5,1,4,8
vsldoi 6,4,1,8
vxor 2,2,26
vxor 0,0,5
vxor 2,2,6
vsldoi 0,0,0,8
vxor 0,0,7
vsldoi 6,0,0,8
.long 0x100044C8
vxor 6,6,2
vxor 0,0,6
addic. 6,6,4
beq .Ldone_4x
.long 0x7C602E99
cmpldi 6,2
li 6,-4
blt .Lone
.long 0x7E082E99
beq .Ltwo
.Lthree:
.long 0x7EC92E99
vperm 3,3,3,12
vperm 16,16,16,12
vperm 22,22,22,12
vxor 2,3,0
vor 29,23,23
vor 30,24,24
vor 31,25,25
vperm 5,16,22,19
vperm 6,16,22,18
.long 0x12B08CC8
.long 0x13764CC8
.long 0x12855CC8
.long 0x134654C8
vxor 27,27,21
b .Ltail_4x
.align 4
.Ltwo:
vperm 3,3,3,12
vperm 16,16,16,12
vxor 2,3,0
vperm 5,4,16,19
vperm 6,4,16,18
vsldoi 29,4,17,8
vor 30,17,17
vsldoi 31,17,4,8
.long 0x12855CC8
.long 0x13704CC8
.long 0x134654C8
b .Ltail_4x
.align 4
.Lone:
vperm 3,3,3,12
vsldoi 29,4,9,8
vor 30,9,9
vsldoi 31,9,4,8
vxor 2,3,0
vxor 20,20,20
vxor 27,27,27
vxor 26,26,26
b .Ltail_4x
.Ldone_4x:
vperm 0,0,0,12
.long 0x7C001F99
li 10,63
li 11,79
or 12,12,12
lvx 20,10,1
addi 10,10,32
lvx 21,11,1
addi 11,11,32
lvx 22,10,1
addi 10,10,32
lvx 23,11,1
addi 11,11,32
lvx 24,10,1
addi 10,10,32
lvx 25,11,1
addi 11,11,32
lvx 26,10,1
addi 10,10,32
lvx 27,11,1
addi 11,11,32
lvx 28,10,1
addi 10,10,32
lvx 29,11,1
addi 11,11,32
lvx 30,10,1
lvx 31,11,1
addi 1,1,256
blr
.long 0
.byte 0,12,0x04,0,0x80,0,4,0
.long 0
.size gcm_ghash_p8,.-gcm_ghash_p8
.byte 71,72,65,83,72,32,102,111,114,32,80,111,119,101,114,73,83,65,32,50,46,48,55,44,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align 2
.align 2

View file

@ -0,0 +1,671 @@
/* $FreeBSD$ */
/* Do not modify. This file is auto-generated from keccak1600-ppc64.pl. */
.abiversion 2
.text
.type KeccakF1600_int,@function
.align 5
KeccakF1600_int:
.localentry KeccakF1600_int,0
li 0,24
mtctr 0
b .Loop
.align 4
.Loop:
xor 0,7,12
std 11,96(1)
xor 3,8,6
std 16,104(1)
xor 4,9,14
std 21,112(1)
xor 5,10,15
std 26,120(1)
xor 11,11,16
xor 0,0,17
xor 3,3,18
xor 4,4,19
xor 5,5,20
xor 11,11,21
xor 0,0,22
xor 3,3,23
xor 4,4,24
xor 5,5,25
xor 11,11,26
xor 0,0,27
xor 4,4,29
xor 3,3,28
xor 5,5,30
rotldi 16,4,1
xor 11,11,31
rotldi 21,5,1
xor 16,16,0
rotldi 26,11,1
xor 8,8,16
xor 6,6,16
xor 18,18,16
xor 23,23,16
xor 28,28,16
rotldi 16,0,1
xor 21,21,3
xor 4,4,26
rotldi 26,3,1
xor 5,5,16
xor 11,11,26
xor 3, 9,21
xor 14,14,21
xor 19,19,21
xor 24,24,21
xor 29,29,21
xor 7,7,11
xor 12,12,11
xor 17,17,11
xor 22,22,11
xor 27,27,11
ld 11,96(1)
xor 0, 10,4
ld 16,104(1)
xor 15,15,4
ld 21,112(1)
xor 20,20,4
ld 26,120(1)
xor 25,25,4
xor 30,30,4
xor 4, 11,5
xor 16,16,5
xor 21,21,5
xor 26,26,5
xor 31,31,5
mr 5,8
rotldi 8,6,44
rotldi 9,19,43
rotldi 10,25,21
rotldi 11,31,14
rotldi 6,16,20
rotldi 19,20,25
rotldi 25,24,15
rotldi 31,28,2
rotldi 16,29,61
rotldi 20,26,8
rotldi 24,18,10
rotldi 28,15,55
rotldi 29,21,39
rotldi 26,30,56
rotldi 18,14,6
rotldi 15,23,45
rotldi 21,27,18
rotldi 30,22,41
rotldi 14,17,3
rotldi 23,12,36
rotldi 12,0,28
rotldi 17,5,1
rotldi 22,4,27
rotldi 27,3,62
andc 0,9,8
andc 3,10,9
andc 4,7,11
andc 5,8,7
xor 7,7,0
andc 0,11,10
xor 8,8,3
ld 3,80(1)
xor 10,10,4
xor 11,11,5
xor 9,9,0
ldu 5,8(3)
andc 0,14,6
std 3,80(1)
andc 3,15,14
andc 4,12,16
xor 7,7,5
andc 5,6,12
xor 12,12,0
andc 0,16,15
xor 6,6,3
xor 15,15,4
xor 16,16,5
xor 14,14,0
andc 0,19,18
andc 3,20,19
andc 4,17,21
andc 5,18,17
xor 17,17,0
andc 0,21,20
xor 18,18,3
xor 20,20,4
xor 21,21,5
xor 19,19,0
andc 0,24,23
andc 3,25,24
andc 4,22,26
andc 5,23,22
xor 22,22,0
andc 0,26,25
xor 23,23,3
xor 25,25,4
xor 26,26,5
xor 24,24,0
andc 0,29,28
andc 3,30,29
andc 4,27,31
andc 5,28,27
xor 27,27,0
andc 0,31,30
xor 28,28,3
xor 30,30,4
xor 31,31,5
xor 29,29,0
bdnz .Loop
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.size KeccakF1600_int,.-KeccakF1600_int
.type KeccakF1600,@function
.align 5
KeccakF1600:
.localentry KeccakF1600,0
stdu 1,-272(1)
mflr 0
std 14,128(1)
std 15,136(1)
std 16,144(1)
std 17,152(1)
std 18,160(1)
std 19,168(1)
std 20,176(1)
std 21,184(1)
std 22,192(1)
std 23,200(1)
std 24,208(1)
std 25,216(1)
std 26,224(1)
std 27,232(1)
std 28,240(1)
std 29,248(1)
std 30,256(1)
std 31,264(1)
std 0,288(1)
bl PICmeup
subi 12,12,8
std 3,48(1)
std 12,80(1)
ld 7,0(3)
ld 8,8(3)
ld 9,16(3)
ld 10,24(3)
ld 11,32(3)
ld 12,40(3)
ld 6,48(3)
ld 14,56(3)
ld 15,64(3)
ld 16,72(3)
ld 17,80(3)
ld 18,88(3)
ld 19,96(3)
ld 20,104(3)
ld 21,112(3)
ld 22,120(3)
ld 23,128(3)
ld 24,136(3)
ld 25,144(3)
ld 26,152(3)
ld 27,160(3)
ld 28,168(3)
ld 29,176(3)
ld 30,184(3)
ld 31,192(3)
bl KeccakF1600_int
ld 3,48(1)
std 7,0(3)
std 8,8(3)
std 9,16(3)
std 10,24(3)
std 11,32(3)
std 12,40(3)
std 6,48(3)
std 14,56(3)
std 15,64(3)
std 16,72(3)
std 17,80(3)
std 18,88(3)
std 19,96(3)
std 20,104(3)
std 21,112(3)
std 22,120(3)
std 23,128(3)
std 24,136(3)
std 25,144(3)
std 26,152(3)
std 27,160(3)
std 28,168(3)
std 29,176(3)
std 30,184(3)
std 31,192(3)
ld 0,288(1)
ld 14,128(1)
ld 15,136(1)
ld 16,144(1)
ld 17,152(1)
ld 18,160(1)
ld 19,168(1)
ld 20,176(1)
ld 21,184(1)
ld 22,192(1)
ld 23,200(1)
ld 24,208(1)
ld 25,216(1)
ld 26,224(1)
ld 27,232(1)
ld 28,240(1)
ld 29,248(1)
ld 30,256(1)
ld 31,264(1)
mtlr 0
addi 1,1,272
blr
.long 0
.byte 0,12,4,1,0x80,18,1,0
.long 0
.size KeccakF1600,.-KeccakF1600
.type dword_le_load,@function
.align 5
dword_le_load:
.localentry dword_le_load,0
lbzu 0,1(3)
lbzu 4,1(3)
lbzu 5,1(3)
insrdi 0,4,8,48
lbzu 4,1(3)
insrdi 0,5,8,40
lbzu 5,1(3)
insrdi 0,4,8,32
lbzu 4,1(3)
insrdi 0,5,8,24
lbzu 5,1(3)
insrdi 0,4,8,16
lbzu 4,1(3)
insrdi 0,5,8,8
insrdi 0,4,8,0
blr
.long 0
.byte 0,12,0x14,0,0,0,1,0
.long 0
.size dword_le_load,.-dword_le_load
.globl SHA3_absorb
.type SHA3_absorb,@function
.type SHA3_absorb,@function
.align 5
SHA3_absorb:
.localentry SHA3_absorb,0
stdu 1,-272(1)
mflr 0
std 14,128(1)
std 15,136(1)
std 16,144(1)
std 17,152(1)
std 18,160(1)
std 19,168(1)
std 20,176(1)
std 21,184(1)
std 22,192(1)
std 23,200(1)
std 24,208(1)
std 25,216(1)
std 26,224(1)
std 27,232(1)
std 28,240(1)
std 29,248(1)
std 30,256(1)
std 31,264(1)
std 0,288(1)
bl PICmeup
subi 4,4,1
subi 12,12,8
std 3,48(1)
std 4,56(1)
std 5,64(1)
std 6,72(1)
mr 0,6
std 12,80(1)
ld 7,0(3)
ld 8,8(3)
ld 9,16(3)
ld 10,24(3)
ld 11,32(3)
ld 12,40(3)
ld 6,48(3)
ld 14,56(3)
ld 15,64(3)
ld 16,72(3)
ld 17,80(3)
ld 18,88(3)
ld 19,96(3)
ld 20,104(3)
ld 21,112(3)
ld 22,120(3)
ld 23,128(3)
ld 24,136(3)
ld 25,144(3)
ld 26,152(3)
ld 27,160(3)
ld 28,168(3)
ld 29,176(3)
ld 30,184(3)
ld 31,192(3)
mr 3,4
mr 4,5
mr 5,0
b .Loop_absorb
.align 4
.Loop_absorb:
cmpld 4,5
blt .Labsorbed
sub 4,4,5
srwi 5,5,3
std 4,64(1)
mtctr 5
bl dword_le_load
xor 7,7,0
bdz .Lprocess_block
bl dword_le_load
xor 8,8,0
bdz .Lprocess_block
bl dword_le_load
xor 9,9,0
bdz .Lprocess_block
bl dword_le_load
xor 10,10,0
bdz .Lprocess_block
bl dword_le_load
xor 11,11,0
bdz .Lprocess_block
bl dword_le_load
xor 12,12,0
bdz .Lprocess_block
bl dword_le_load
xor 6,6,0
bdz .Lprocess_block
bl dword_le_load
xor 14,14,0
bdz .Lprocess_block
bl dword_le_load
xor 15,15,0
bdz .Lprocess_block
bl dword_le_load
xor 16,16,0
bdz .Lprocess_block
bl dword_le_load
xor 17,17,0
bdz .Lprocess_block
bl dword_le_load
xor 18,18,0
bdz .Lprocess_block
bl dword_le_load
xor 19,19,0
bdz .Lprocess_block
bl dword_le_load
xor 20,20,0
bdz .Lprocess_block
bl dword_le_load
xor 21,21,0
bdz .Lprocess_block
bl dword_le_load
xor 22,22,0
bdz .Lprocess_block
bl dword_le_load
xor 23,23,0
bdz .Lprocess_block
bl dword_le_load
xor 24,24,0
bdz .Lprocess_block
bl dword_le_load
xor 25,25,0
bdz .Lprocess_block
bl dword_le_load
xor 26,26,0
bdz .Lprocess_block
bl dword_le_load
xor 27,27,0
bdz .Lprocess_block
bl dword_le_load
xor 28,28,0
bdz .Lprocess_block
bl dword_le_load
xor 29,29,0
bdz .Lprocess_block
bl dword_le_load
xor 30,30,0
bdz .Lprocess_block
bl dword_le_load
xor 31,31,0
.Lprocess_block:
std 3,56(1)
bl KeccakF1600_int
ld 0,80(1)
ld 5,72(1)
ld 4,64(1)
ld 3,56(1)
addic 0,0,-192
std 0,80(1)
b .Loop_absorb
.align 4
.Labsorbed:
ld 3,48(1)
std 7,0(3)
std 8,8(3)
std 9,16(3)
std 10,24(3)
std 11,32(3)
std 12,40(3)
std 6,48(3)
std 14,56(3)
std 15,64(3)
std 16,72(3)
std 17,80(3)
std 18,88(3)
std 19,96(3)
std 20,104(3)
std 21,112(3)
std 22,120(3)
std 23,128(3)
std 24,136(3)
std 25,144(3)
std 26,152(3)
std 27,160(3)
std 28,168(3)
std 29,176(3)
std 30,184(3)
std 31,192(3)
mr 3,4
ld 0,288(1)
ld 14,128(1)
ld 15,136(1)
ld 16,144(1)
ld 17,152(1)
ld 18,160(1)
ld 19,168(1)
ld 20,176(1)
ld 21,184(1)
ld 22,192(1)
ld 23,200(1)
ld 24,208(1)
ld 25,216(1)
ld 26,224(1)
ld 27,232(1)
ld 28,240(1)
ld 29,248(1)
ld 30,256(1)
ld 31,264(1)
mtlr 0
addi 1,1,272
blr
.long 0
.byte 0,12,4,1,0x80,18,4,0
.long 0
.size SHA3_absorb,.-SHA3_absorb
.globl SHA3_squeeze
.type SHA3_squeeze,@function
.type SHA3_squeeze,@function
.align 5
SHA3_squeeze:
.localentry SHA3_squeeze,0
stdu 1,-80(1)
mflr 0
std 28,48(1)
std 29,56(1)
std 30,64(1)
std 31,72(1)
std 0,96(1)
mr 28,3
subi 3,3,8
subi 29,4,1
mr 30,5
mr 31,6
b .Loop_squeeze
.align 4
.Loop_squeeze:
ldu 0,8(3)
cmpldi 30,8
blt .Lsqueeze_tail
stbu 0,1(29)
srdi 0,0,8
stbu 0,1(29)
srdi 0,0,8
stbu 0,1(29)
srdi 0,0,8
stbu 0,1(29)
srdi 0,0,8
stbu 0,1(29)
srdi 0,0,8
stbu 0,1(29)
srdi 0,0,8
stbu 0,1(29)
srdi 0,0,8
stbu 0,1(29)
subic. 30,30,8
beq .Lsqueeze_done
subic. 6,6,8
bgt .Loop_squeeze
mr 3,28
bl KeccakF1600
subi 3,28,8
mr 6,31
b .Loop_squeeze
.align 4
.Lsqueeze_tail:
mtctr 30
.Loop_tail:
stbu 0,1(29)
srdi 0,0,8
bdnz .Loop_tail
.Lsqueeze_done:
ld 0,96(1)
ld 28,48(1)
ld 29,56(1)
ld 30,64(1)
ld 31,72(1)
mtlr 0
addi 1,1,80
blr
.long 0
.byte 0,12,4,1,0x80,4,4,0
.long 0
.size SHA3_squeeze,.-SHA3_squeeze
.align 6
PICmeup:
mflr 0
bcl 20,31,$+4
mflr 12
addi 12,12,56
mtlr 0
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.space 28
.type iotas,@object
iotas:
.long 0x00000001,0x00000000
.long 0x00008082,0x00000000
.long 0x0000808a,0x80000000
.long 0x80008000,0x80000000
.long 0x0000808b,0x00000000
.long 0x80000001,0x00000000
.long 0x80008081,0x80000000
.long 0x00008009,0x80000000
.long 0x0000008a,0x00000000
.long 0x00000088,0x00000000
.long 0x80008009,0x00000000
.long 0x8000000a,0x00000000
.long 0x8000808b,0x00000000
.long 0x0000008b,0x80000000
.long 0x00008089,0x80000000
.long 0x00008003,0x80000000
.long 0x00008002,0x80000000
.long 0x00000080,0x80000000
.long 0x0000800a,0x00000000
.long 0x8000000a,0x80000000
.long 0x80008081,0x80000000
.long 0x00008080,0x80000000
.long 0x80000001,0x00000000
.long 0x80008008,0x80000000
.size iotas,.-iotas
.byte 75,101,99,99,97,107,45,49,54,48,48,32,97,98,115,111,114,98,32,97,110,100,32,115,113,117,101,101,122,101,32,102,111,114,32,80,80,67,54,52,44,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align 2

View file

@ -0,0 +1,163 @@
/* $FreeBSD$ */
/* Do not modify. This file is auto-generated from poly1305-ppc.pl. */
.machine "any"
.abiversion 2
.text
.globl poly1305_init_int
.type poly1305_init_int,@function
.align 4
poly1305_init_int:
.localentry poly1305_init_int,0
xor 0,0,0
std 0,0(3)
std 0,8(3)
std 0,16(3)
cmpld 4,0
beq- .Lno_key
ld 10,0(4)
ld 11,8(4)
lis 8,0xfff
ori 8,8,0xfffc
insrdi 8,8,32,0
ori 7,8,3
and 10,10,7
and 11,11,8
std 10,32(3)
std 11,40(3)
.Lno_key:
xor 3,3,3
blr
.long 0
.byte 0,12,0x14,0,0,0,2,0
.size poly1305_init_int,.-poly1305_init_int
.globl poly1305_blocks
.type poly1305_blocks,@function
.align 4
poly1305_blocks:
.localentry poly1305_blocks,0
srdi. 5,5,4
beq- .Labort
stdu 1,-192(1)
mflr 0
std 27,152(1)
std 28,160(1)
std 29,168(1)
std 30,176(1)
std 31,184(1)
std 0,208(1)
ld 27,32(3)
ld 28,40(3)
ld 7,0(3)
ld 8,8(3)
ld 9,16(3)
srdi 29,28,2
mtctr 5
add 29,29,28
li 0,3
b .Loop
.align 4
.Loop:
ld 30,0(4)
ld 31,8(4)
addi 4,4,16
addc 7,7,30
adde 8,8,31
mulld 10,7,27
mulhdu 11,7,27
adde 9,9,6
mulld 30,8,29
mulhdu 31,8,29
addc 10,10,30
adde 11,11,31
mulld 30,7,28
mulhdu 12,7,28
addc 11,11,30
addze 12,12
mulld 30,8,27
mulhdu 31,8,27
addc 11,11,30
adde 12,12,31
mulld 30,9,29
mulld 31,9,27
addc 11,11,30
adde 12,12,31
andc 30,12,0
and 9,12,0
srdi 31,30,2
add 30,30,31
addc 7,10,30
addze 8,11
addze 9,9
bdnz .Loop
std 7,0(3)
std 8,8(3)
std 9,16(3)
ld 27,152(1)
ld 28,160(1)
ld 29,168(1)
ld 30,176(1)
ld 31,184(1)
addi 1,1,192
.Labort:
blr
.long 0
.byte 0,12,4,1,0x80,5,4,0
.size poly1305_blocks,.-poly1305_blocks
.globl poly1305_emit
.type poly1305_emit,@function
.align 4
poly1305_emit:
.localentry poly1305_emit,0
ld 7,0(3)
ld 8,8(3)
ld 9,16(3)
ld 6,0(5)
ld 5,8(5)
addic 10,7,5
addze 11,8
addze 12,9
srdi 0,12,2
neg 0,0
andc 7,7,0
and 10,10,0
andc 8,8,0
and 11,11,0
or 7,7,10
or 8,8,11
addc 7,7,6
adde 8,8,5
std 7,0(4)
std 8,8(4)
blr
.long 0
.byte 0,12,0x14,0,0,0,3,0
.size poly1305_emit,.-poly1305_emit
.byte 80,111,108,121,49,51,48,53,32,102,111,114,32,80,80,67,44,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align 2

View file

@ -0,0 +1,592 @@
/* $FreeBSD$ */
/* Do not modify. This file is auto-generated from poly1305-ppcfp.pl. */
.machine "any"
.abiversion 2
.text
.globl poly1305_init_fpu
.type poly1305_init_fpu,@function
.align 6
poly1305_init_fpu:
.localentry poly1305_init_fpu,0
stdu 1,-48(1)
mflr 6
std 6,64(1)
bl .LPICmeup
xor 0,0,0
mtlr 6
lfd 8,8*0(5)
lfd 9,8*1(5)
lfd 10,8*2(5)
lfd 11,8*3(5)
lfd 12,8*4(5)
lfd 13,8*5(5)
stfd 8,8*0(3)
stfd 9,8*1(3)
stfd 10,8*2(3)
stfd 11,8*3(3)
cmpld 4,0
beq- .Lno_key
lfd 6,8*13(5)
mffs 7
stfd 8,8*4(3)
stfd 9,8*5(3)
stfd 10,8*6(3)
stfd 11,8*7(3)
li 8,4
li 9,8
li 10,12
lwzx 7,0,4
lwzx 8,8,4
lwzx 9,9,4
lwzx 10,10,4
lis 11,0xf000
ori 12,11,3
andc 7,7,11
andc 8,8,12
andc 9,9,12
andc 10,10,12
stw 7,32(3)
stw 8,40(3)
stw 9,48(3)
stw 10,56(3)
mtfsf 255,6
stfd 8,8*18(3)
stfd 9,8*19(3)
stfd 10,8*20(3)
stfd 11,8*21(3)
stfd 12,8*22(3)
stfd 13,8*23(3)
lfd 0,8*4(3)
lfd 2,8*5(3)
lfd 4,8*6(3)
lfd 6,8*7(3)
fsub 0,0,8
fsub 2,2,9
fsub 4,4,10
fsub 6,6,11
lfd 8,8*6(5)
lfd 9,8*7(5)
lfd 10,8*8(5)
lfd 11,8*9(5)
fmul 3,2,13
fmul 5,4,13
stfd 7,8*15(3)
fmul 7,6,13
fadd 1,0,8
stfd 3,8*12(3)
fadd 3,2,9
stfd 5,8*13(3)
fadd 5,4,10
stfd 7,8*14(3)
fadd 7,6,11
fsub 1,1,8
fsub 3,3,9
fsub 5,5,10
fsub 7,7,11
lfd 8,8*10(5)
lfd 9,8*11(5)
lfd 10,8*12(5)
fsub 0,0,1
fsub 2,2,3
fsub 4,4,5
fsub 6,6,7
stfd 1,8*5(3)
stfd 3,8*7(3)
stfd 5,8*9(3)
stfd 7,8*11(3)
stfd 0,8*4(3)
stfd 2,8*6(3)
stfd 4,8*8(3)
stfd 6,8*10(3)
lfd 2,8*12(3)
lfd 4,8*13(3)
lfd 6,8*14(3)
lfd 0,8*15(3)
fadd 3,2,8
fadd 5,4,9
fadd 7,6,10
fsub 3,3,8
fsub 5,5,9
fsub 7,7,10
fsub 2,2,3
fsub 4,4,5
fsub 6,6,7
stfd 3,8*13(3)
stfd 5,8*15(3)
stfd 7,8*17(3)
stfd 2,8*12(3)
stfd 4,8*14(3)
stfd 6,8*16(3)
mtfsf 255,0
.Lno_key:
xor 3,3,3
addi 1,1,48
blr
.long 0
.byte 0,12,4,1,0x80,0,2,0
.size poly1305_init_fpu,.-poly1305_init_fpu
.globl poly1305_blocks_fpu
.type poly1305_blocks_fpu,@function
.align 4
poly1305_blocks_fpu:
.localentry poly1305_blocks_fpu,0
srwi. 5,5,4
beq- .Labort
stdu 1,-240(1)
mflr 0
stfd 14,96(1)
stfd 15,104(1)
stfd 16,112(1)
stfd 17,120(1)
stfd 18,128(1)
stfd 19,136(1)
stfd 20,144(1)
stfd 21,152(1)
stfd 22,160(1)
stfd 23,168(1)
stfd 24,176(1)
stfd 25,184(1)
stfd 26,192(1)
stfd 27,200(1)
stfd 28,208(1)
stfd 29,216(1)
stfd 30,224(1)
stfd 31,232(1)
std 0,256(1)
xor 0,0,0
li 10,1
mtctr 5
neg 5,5
stw 0,84(1)
stw 10,80(1)
lfd 8,8*18(3)
lfd 9,8*19(3)
lfd 10,8*20(3)
lfd 11,8*21(3)
lfd 12,8*22(3)
lfd 13,8*23(3)
lfd 0,8*0(3)
lfd 2,8*1(3)
lfd 4,8*2(3)
lfd 6,8*3(3)
stfd 8,48(1)
oris 10,6,18736
stfd 9,56(1)
stfd 10,64(1)
stw 10,76(1)
li 11,4
li 12,8
li 6,12
lwzx 7,0,4
lwzx 8,11,4
lwzx 9,12,4
lwzx 10,6,4
addi 4,4,16
stw 7,48(1)
stw 8,56(1)
stw 9,64(1)
stw 10,72(1)
mffs 28
lfd 29,80(1)
lfd 14,8*4(3)
lfd 15,8*5(3)
lfd 16,8*6(3)
lfd 17,8*7(3)
lfd 18,8*8(3)
lfd 19,8*9(3)
lfd 24,8*10(3)
lfd 25,8*11(3)
lfd 26,8*12(3)
lfd 27,8*13(3)
lfd 20,8*14(3)
lfd 21,8*15(3)
lfd 22,8*16(3)
lfd 23,8*17(3)
stfd 28,80(1)
mtfsf 255,29
addic 5,5,1
addze 0,0
slwi. 0,0,4
sub 4,4,0
lfd 28,48(1)
lfd 29,56(1)
lfd 30,64(1)
lfd 31,72(1)
fsub 0,0,8
lwzx 7,0,4
fsub 2,2,9
lwzx 8,11,4
fsub 4,4,10
lwzx 9,12,4
fsub 6,6,11
lwzx 10,6,4
fsub 28,28,8
addi 4,4,16
fsub 29,29,9
fsub 30,30,10
fsub 31,31,11
fadd 28,28,0
stw 7,48(1)
fadd 29,29,2
stw 8,56(1)
fadd 30,30,4
stw 9,64(1)
fadd 31,31,6
stw 10,72(1)
b .Lentry
.align 4
.Loop:
fsub 30,30,8
addic 5,5,1
fsub 31,31,9
addze 0,0
fsub 26,26,10
slwi. 0,0,4
fsub 27,27,11
sub 4,4,0
fadd 0,0,30
fadd 1,1,31
fadd 4,4,26
fadd 5,5,27
fadd 26,2,10
lwzx 7,0,4
fadd 27,3,10
lwzx 8,11,4
fadd 30,6,12
lwzx 9,12,4
fadd 31,7,12
lwzx 10,6,4
fadd 24,0,9
addi 4,4,16
fadd 25,1,9
fadd 28,4,11
fadd 29,5,11
fsub 26,26,10
stw 7,48(1)
fsub 27,27,10
stw 8,56(1)
fsub 30,30,12
stw 9,64(1)
fsub 31,31,12
stw 10,72(1)
fsub 24,24,9
fsub 25,25,9
fsub 28,28,11
fsub 29,29,11
fsub 2,2,26
fsub 3,3,27
fsub 6,6,30
fsub 7,7,31
fsub 4,4,28
fsub 5,5,29
fsub 0,0,24
fsub 1,1,25
fadd 2,2,24
fadd 3,3,25
fadd 6,6,28
fadd 7,7,29
fadd 4,4,26
fadd 5,5,27
fmadd 0,30,13,0
fmadd 1,31,13,1
fadd 29,2,3
lfd 26,8*12(3)
fadd 31,6,7
lfd 27,8*13(3)
fadd 30,4,5
lfd 24,8*10(3)
fadd 28,0,1
lfd 25,8*11(3)
.Lentry:
fmul 0,22,29
fmul 1,23,29
fmul 4,16,29
fmul 5,17,29
fmul 2,14,29
fmul 3,15,29
fmul 6,18,29
fmul 7,19,29
fmadd 0,26,31,0
fmadd 1,27,31,1
fmadd 4,22,31,4
fmadd 5,23,31,5
fmadd 2,20,31,2
fmadd 3,21,31,3
fmadd 6,14,31,6
fmadd 7,15,31,7
fmadd 0,20,30,0
fmadd 1,21,30,1
fmadd 4,14,30,4
fmadd 5,15,30,5
fmadd 2,22,30,2
fmadd 3,23,30,3
fmadd 6,16,30,6
fmadd 7,17,30,7
fmadd 0,14,28,0
lfd 30,48(1)
fmadd 1,15,28,1
lfd 31,56(1)
fmadd 4,18,28,4
lfd 26,64(1)
fmadd 5,19,28,5
lfd 27,72(1)
fmadd 2,16,28,2
fmadd 3,17,28,3
fmadd 6,24,28,6
fmadd 7,25,28,7
bdnz .Loop
fadd 24,0,9
fadd 25,1,9
fadd 28,4,11
fadd 29,5,11
fadd 26,2,10
fadd 27,3,10
fadd 30,6,12
fadd 31,7,12
fsub 24,24,9
fsub 25,25,9
fsub 28,28,11
fsub 29,29,11
fsub 26,26,10
fsub 27,27,10
fsub 30,30,12
fsub 31,31,12
fsub 2,2,26
fsub 3,3,27
fsub 6,6,30
fsub 7,7,31
fsub 4,4,28
fsub 5,5,29
fsub 0,0,24
fsub 1,1,25
fadd 2,2,24
fadd 3,3,25
fadd 6,6,28
fadd 7,7,29
fadd 4,4,26
fadd 5,5,27
fmadd 0,30,13,0
fmadd 1,31,13,1
fadd 29,2,3
fadd 31,6,7
fadd 30,4,5
fadd 28,0,1
lfd 0,80(1)
fadd 29,29,9
fadd 31,31,11
fadd 30,30,10
fadd 28,28,8
stfd 29,8*1(3)
stfd 31,8*3(3)
stfd 30,8*2(3)
stfd 28,8*0(3)
mtfsf 255,0
lfd 14,96(1)
lfd 15,104(1)
lfd 16,112(1)
lfd 17,120(1)
lfd 18,128(1)
lfd 19,136(1)
lfd 20,144(1)
lfd 21,152(1)
lfd 22,160(1)
lfd 23,168(1)
lfd 24,176(1)
lfd 25,184(1)
lfd 26,192(1)
lfd 27,200(1)
lfd 28,208(1)
lfd 29,216(1)
lfd 30,224(1)
lfd 31,232(1)
addi 1,1,240
.Labort:
blr
.long 0
.byte 0,12,4,1,0x80,0,4,0
.size poly1305_blocks_fpu,.-poly1305_blocks_fpu
.globl poly1305_emit_fpu
.type poly1305_emit_fpu,@function
.align 4
poly1305_emit_fpu:
.localentry poly1305_emit_fpu,0
stdu 1,-80(1)
mflr 0
std 28,48(1)
std 29,56(1)
std 30,64(1)
std 31,72(1)
std 0,96(1)
lwz 28,4(3)
lwz 7,0(3)
lwz 29,12(3)
lwz 8,8(3)
lwz 30,20(3)
lwz 9,16(3)
lwz 31,28(3)
lwz 10,24(3)
lis 0,0xfff0
andc 28,28,0
andc 29,29,0
andc 30,30,0
andc 31,31,0
li 0,3
srwi 6,31,2
and 11,31,0
andc 31,31,0
add 31,31,6
add 7,7,31
add 8,8,28
add 9,9,29
add 10,10,30
srdi 28,7,32
add 8,8,28
srdi 29,8,32
add 9,9,29
srdi 30,9,32
add 10,10,30
srdi 31,10,32
add 11,11,31
insrdi 7,8,32,0
insrdi 9,10,32,0
addic 28,7,5
addze 29,9
addze 30,11
srdi 0,30,2
neg 0,0
sradi 0,0,63
ld 30,0(5)
ld 31,8(5)
andc 7,7,0
and 28,28,0
andc 9,9,0
and 29,29,0
or 7,7,28
or 9,9,29
addc 7,7,30
adde 9,9,31
srdi 8,7,32
srdi 10,9,32
stw 7,0(4)
stw 8,4(4)
stw 9,8(4)
stw 10,12(4)
ld 28,48(1)
ld 29,56(1)
ld 30,64(1)
ld 31,72(1)
addi 1,1,80
blr
.long 0
.byte 0,12,4,1,0x80,4,3,0
.size poly1305_emit_fpu,.-poly1305_emit_fpu
.align 6
.LPICmeup:
mflr 0
bcl 20,31,$+4
mflr 5
addi 5,5,56
mtlr 0
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.space 28
.long 0x00000000,0x43300000
.long 0x00000000,0x45300000
.long 0x00000000,0x47300000
.long 0x00000000,0x49300000
.long 0x00000000,0x4b500000
.long 0x00000000,0x37f40000
.long 0x00000000,0x44300000
.long 0x00000000,0x46300000
.long 0x00000000,0x48300000
.long 0x00000000,0x4a300000
.long 0x00000000,0x3e300000
.long 0x00000000,0x40300000
.long 0x00000000,0x42300000
.long 0x00000001,0x00000000
.byte 80,111,108,121,49,51,48,53,32,102,111,114,32,80,80,67,32,70,80,85,44,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align 2
.align 4

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,388 @@
/* $FreeBSD$ */
/* Do not modify. This file is auto-generated from ppccpuid.pl. */
.machine "any"
.abiversion 2
.text
.globl OPENSSL_fpu_probe
.type OPENSSL_fpu_probe,@function
.align 4
OPENSSL_fpu_probe:
.localentry OPENSSL_fpu_probe,0
fmr 0,0
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.size OPENSSL_fpu_probe,.-OPENSSL_fpu_probe
.globl OPENSSL_ppc64_probe
.type OPENSSL_ppc64_probe,@function
.align 4
OPENSSL_ppc64_probe:
.localentry OPENSSL_ppc64_probe,0
fcfid 1,1
rldicl 0,0,32,32
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.size OPENSSL_ppc64_probe,.-OPENSSL_ppc64_probe
.globl OPENSSL_altivec_probe
.type OPENSSL_altivec_probe,@function
.align 4
OPENSSL_altivec_probe:
.localentry OPENSSL_altivec_probe,0
.long 0x10000484
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.size OPENSSL_altivec_probe,.-OPENSSL_altivec_probe
.globl OPENSSL_crypto207_probe
.type OPENSSL_crypto207_probe,@function
.align 4
OPENSSL_crypto207_probe:
.localentry OPENSSL_crypto207_probe,0
.long 0x7C000E99
.long 0x10000508
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.size OPENSSL_crypto207_probe,.-OPENSSL_crypto207_probe
.globl OPENSSL_madd300_probe
.type OPENSSL_madd300_probe,@function
.align 4
OPENSSL_madd300_probe:
.localentry OPENSSL_madd300_probe,0
xor 0,0,0
.long 0x10600033
.long 0x10600031
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.globl OPENSSL_wipe_cpu
.type OPENSSL_wipe_cpu,@function
.align 4
OPENSSL_wipe_cpu:
.localentry OPENSSL_wipe_cpu,0
xor 0,0,0
fmr 0,31
fmr 1,31
fmr 2,31
mr 3,1
fmr 3,31
xor 4,4,4
fmr 4,31
xor 5,5,5
fmr 5,31
xor 6,6,6
fmr 6,31
xor 7,7,7
fmr 7,31
xor 8,8,8
fmr 8,31
xor 9,9,9
fmr 9,31
xor 10,10,10
fmr 10,31
xor 11,11,11
fmr 11,31
xor 12,12,12
fmr 12,31
fmr 13,31
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.size OPENSSL_wipe_cpu,.-OPENSSL_wipe_cpu
.globl OPENSSL_atomic_add
.type OPENSSL_atomic_add,@function
.align 4
OPENSSL_atomic_add:
.localentry OPENSSL_atomic_add,0
.Ladd: lwarx 5,0,3
add 0,4,5
stwcx. 0,0,3
bne- .Ladd
extsw 3,0
blr
.long 0
.byte 0,12,0x14,0,0,0,2,0
.long 0
.size OPENSSL_atomic_add,.-OPENSSL_atomic_add
.globl OPENSSL_rdtsc_mftb
.type OPENSSL_rdtsc_mftb,@function
.align 4
OPENSSL_rdtsc_mftb:
.localentry OPENSSL_rdtsc_mftb,0
mftb 3
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.size OPENSSL_rdtsc_mftb,.-OPENSSL_rdtsc_mftb
.globl OPENSSL_rdtsc_mfspr268
.type OPENSSL_rdtsc_mfspr268,@function
.align 4
OPENSSL_rdtsc_mfspr268:
.localentry OPENSSL_rdtsc_mfspr268,0
mfspr 3,268
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.size OPENSSL_rdtsc_mfspr268,.-OPENSSL_rdtsc_mfspr268
.globl OPENSSL_cleanse
.type OPENSSL_cleanse,@function
.align 4
OPENSSL_cleanse:
.localentry OPENSSL_cleanse,0
cmpldi 4,7
li 0,0
bge .Lot
cmpldi 4,0
.long 0x4DC20020
.Little: mtctr 4
stb 0,0(3)
addi 3,3,1
bdnz $-8
blr
.Lot: andi. 5,3,3
beq .Laligned
stb 0,0(3)
subi 4,4,1
addi 3,3,1
b .Lot
.Laligned:
srdi 5,4,2
mtctr 5
stw 0,0(3)
addi 3,3,4
bdnz $-8
andi. 4,4,3
bne .Little
blr
.long 0
.byte 0,12,0x14,0,0,0,2,0
.long 0
.size OPENSSL_cleanse,.-OPENSSL_cleanse
.globl CRYPTO_memcmp
.type CRYPTO_memcmp,@function
.align 4
CRYPTO_memcmp:
.localentry CRYPTO_memcmp,0
cmpldi 5,0
li 0,0
beq .Lno_data
mtctr 5
.Loop_cmp:
lbz 6,0(3)
addi 3,3,1
lbz 7,0(4)
addi 4,4,1
xor 6,6,7
or 0,0,6
bdnz .Loop_cmp
.Lno_data:
li 3,0
sub 3,3,0
extrwi 3,3,1,0
blr
.long 0
.byte 0,12,0x14,0,0,0,3,0
.long 0
.size CRYPTO_memcmp,.-CRYPTO_memcmp
.globl OPENSSL_instrument_bus_mftb
.type OPENSSL_instrument_bus_mftb,@function
.align 4
OPENSSL_instrument_bus_mftb:
.localentry OPENSSL_instrument_bus_mftb,0
mtctr 4
mftb 7
li 8,0
dcbf 0,3
lwarx 6,0,3
add 6,6,8
stwcx. 6,0,3
stwx 6,0,3
.Loop: mftb 6
sub 8,6,7
mr 7,6
dcbf 0,3
lwarx 6,0,3
add 6,6,8
stwcx. 6,0,3
stwx 6,0,3
addi 3,3,4
bdnz .Loop
mr 3,4
blr
.long 0
.byte 0,12,0x14,0,0,0,2,0
.long 0
.size OPENSSL_instrument_bus_mftb,.-OPENSSL_instrument_bus_mftb
.globl OPENSSL_instrument_bus2_mftb
.type OPENSSL_instrument_bus2_mftb,@function
.align 4
OPENSSL_instrument_bus2_mftb:
.localentry OPENSSL_instrument_bus2_mftb,0
mr 0,4
slwi 4,4,2
mftb 7
li 8,0
dcbf 0,3
lwarx 6,0,3
add 6,6,8
stwcx. 6,0,3
stwx 6,0,3
mftb 6
sub 8,6,7
mr 7,6
mr 9,8
.Loop2:
dcbf 0,3
lwarx 6,0,3
add 6,6,8
stwcx. 6,0,3
stwx 6,0,3
addic. 5,5,-1
beq .Ldone2
mftb 6
sub 8,6,7
mr 7,6
cmplw 7,8,9
mr 9,8
mfcr 6
not 6,6
rlwinm 6,6,1,29,29
sub. 4,4,6
add 3,3,6
bne .Loop2
.Ldone2:
srwi 4,4,2
sub 3,0,4
blr
.long 0
.byte 0,12,0x14,0,0,0,3,0
.long 0
.size OPENSSL_instrument_bus2_mftb,.-OPENSSL_instrument_bus2_mftb
.globl OPENSSL_instrument_bus_mfspr268
.type OPENSSL_instrument_bus_mfspr268,@function
.align 4
OPENSSL_instrument_bus_mfspr268:
.localentry OPENSSL_instrument_bus_mfspr268,0
mtctr 4
mfspr 7,268
li 8,0
dcbf 0,3
lwarx 6,0,3
add 6,6,8
stwcx. 6,0,3
stwx 6,0,3
.Loop3: mfspr 6,268
sub 8,6,7
mr 7,6
dcbf 0,3
lwarx 6,0,3
add 6,6,8
stwcx. 6,0,3
stwx 6,0,3
addi 3,3,4
bdnz .Loop3
mr 3,4
blr
.long 0
.byte 0,12,0x14,0,0,0,2,0
.long 0
.size OPENSSL_instrument_bus_mfspr268,.-OPENSSL_instrument_bus_mfspr268
.globl OPENSSL_instrument_bus2_mfspr268
.type OPENSSL_instrument_bus2_mfspr268,@function
.align 4
OPENSSL_instrument_bus2_mfspr268:
.localentry OPENSSL_instrument_bus2_mfspr268,0
mr 0,4
slwi 4,4,2
mfspr 7,268
li 8,0
dcbf 0,3
lwarx 6,0,3
add 6,6,8
stwcx. 6,0,3
stwx 6,0,3
mfspr 6,268
sub 8,6,7
mr 7,6
mr 9,8
.Loop4:
dcbf 0,3
lwarx 6,0,3
add 6,6,8
stwcx. 6,0,3
stwx 6,0,3
addic. 5,5,-1
beq .Ldone4
mfspr 6,268
sub 8,6,7
mr 7,6
cmplw 7,8,9
mr 9,8
mfcr 6
not 6,6
rlwinm 6,6,1,29,29
sub. 4,4,6
add 3,3,6
bne .Loop4
.Ldone4:
srwi 4,4,2
sub 3,0,4
blr
.long 0
.byte 0,12,0x14,0,0,0,3,0
.long 0
.size OPENSSL_instrument_bus2_mfspr268,.-OPENSSL_instrument_bus2_mfspr268

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,747 @@
/* $FreeBSD$ */
/* Do not modify. This file is auto-generated from sha512p8-ppc.pl. */
.machine "any"
.abiversion 2
.text
.globl sha256_block_p8
.type sha256_block_p8,@function
.align 6
sha256_block_p8:
.localentry sha256_block_p8,0
stdu 1,-384(1)
mflr 8
li 10,207
li 11,223
stvx 24,10,1
addi 10,10,32
li 12,-1
stvx 25,11,1
addi 11,11,32
stvx 26,10,1
addi 10,10,32
stvx 27,11,1
addi 11,11,32
stvx 28,10,1
addi 10,10,32
stvx 29,11,1
addi 11,11,32
stvx 30,10,1
stvx 31,11,1
li 11,-4096+255
stw 12,332(1)
li 10,0x10
std 26,336(1)
li 26,0x20
std 27,344(1)
li 27,0x30
std 28,352(1)
li 28,0x40
std 29,360(1)
li 29,0x50
std 30,368(1)
li 30,0x60
std 31,376(1)
li 31,0x70
std 8,400(1)
or 11,11,11
bl .LPICmeup
addi 11,1,79
li 7,8
lvsl 31,0,7
vspltisb 28,0x0f
vxor 31,31,28
.long 0x7C001E19
.long 0x7C8A1E19
vsldoi 1,0,0,4
vsldoi 2,0,0,8
vsldoi 3,0,0,12
vsldoi 5,4,4,4
vsldoi 6,4,4,8
vsldoi 7,4,4,12
li 0,3
b .Loop
.align 5
.Loop:
lvx 28,0,6
.long 0x7D002699
addi 4,4,16
mr 7,6
stvx 0,0,11
stvx 1,10,11
stvx 2,26,11
stvx 3,27,11
stvx 4,28,11
stvx 5,29,11
stvx 6,30,11
stvx 7,31,11
vadduwm 7,7,28
lvx 28,10,6
vperm 8,8,8,31
vadduwm 7,7,8
vsel 29,6,5,4
vadduwm 6,6,28
vadduwm 7,7,29
.long 0x13C4FE82
vadduwm 7,7,30
vxor 29,0,1
vsel 29,1,2,29
vadduwm 3,3,7
.long 0x13C08682
vadduwm 30,30,29
vadduwm 7,7,30
lvx 28,26,7
vsldoi 9,8,8,4
vadduwm 6,6,9
vsel 29,5,4,3
vadduwm 5,5,28
vadduwm 6,6,29
.long 0x13C3FE82
vadduwm 6,6,30
vxor 29,7,0
vsel 29,0,1,29
vadduwm 2,2,6
.long 0x13C78682
vadduwm 30,30,29
vadduwm 6,6,30
lvx 28,27,7
vsldoi 10,9,9,4
vadduwm 5,5,10
vsel 29,4,3,2
vadduwm 4,4,28
vadduwm 5,5,29
.long 0x13C2FE82
vadduwm 5,5,30
vxor 29,6,7
vsel 29,7,0,29
vadduwm 1,1,5
.long 0x13C68682
vadduwm 30,30,29
vadduwm 5,5,30
lvx 28,28,7
.long 0x7D802699
addi 4,4,16
vsldoi 11,10,10,4
vadduwm 4,4,11
vsel 29,3,2,1
vadduwm 3,3,28
vadduwm 4,4,29
.long 0x13C1FE82
vadduwm 4,4,30
vxor 29,5,6
vsel 29,6,7,29
vadduwm 0,0,4
.long 0x13C58682
vadduwm 30,30,29
vadduwm 4,4,30
lvx 28,29,7
vperm 12,12,12,31
vadduwm 3,3,12
vsel 29,2,1,0
vadduwm 2,2,28
vadduwm 3,3,29
.long 0x13C0FE82
vadduwm 3,3,30
vxor 29,4,5
vsel 29,5,6,29
vadduwm 7,7,3
.long 0x13C48682
vadduwm 30,30,29
vadduwm 3,3,30
lvx 28,30,7
vsldoi 13,12,12,4
vadduwm 2,2,13
vsel 29,1,0,7
vadduwm 1,1,28
vadduwm 2,2,29
.long 0x13C7FE82
vadduwm 2,2,30
vxor 29,3,4
vsel 29,4,5,29
vadduwm 6,6,2
.long 0x13C38682
vadduwm 30,30,29
vadduwm 2,2,30
lvx 28,31,7
addi 7,7,0x80
vsldoi 14,13,13,4
vadduwm 1,1,14
vsel 29,0,7,6
vadduwm 0,0,28
vadduwm 1,1,29
.long 0x13C6FE82
vadduwm 1,1,30
vxor 29,2,3
vsel 29,3,4,29
vadduwm 5,5,1
.long 0x13C28682
vadduwm 30,30,29
vadduwm 1,1,30
lvx 28,0,7
.long 0x7E002699
addi 4,4,16
vsldoi 15,14,14,4
vadduwm 0,0,15
vsel 29,7,6,5
vadduwm 7,7,28
vadduwm 0,0,29
.long 0x13C5FE82
vadduwm 0,0,30
vxor 29,1,2
vsel 29,2,3,29
vadduwm 4,4,0
.long 0x13C18682
vadduwm 30,30,29
vadduwm 0,0,30
lvx 28,10,7
vperm 16,16,16,31
vadduwm 7,7,16
vsel 29,6,5,4
vadduwm 6,6,28
vadduwm 7,7,29
.long 0x13C4FE82
vadduwm 7,7,30
vxor 29,0,1
vsel 29,1,2,29
vadduwm 3,3,7
.long 0x13C08682
vadduwm 30,30,29
vadduwm 7,7,30
lvx 28,26,7
vsldoi 17,16,16,4
vadduwm 6,6,17
vsel 29,5,4,3
vadduwm 5,5,28
vadduwm 6,6,29
.long 0x13C3FE82
vadduwm 6,6,30
vxor 29,7,0
vsel 29,0,1,29
vadduwm 2,2,6
.long 0x13C78682
vadduwm 30,30,29
vadduwm 6,6,30
lvx 28,27,7
vsldoi 18,17,17,4
vadduwm 5,5,18
vsel 29,4,3,2
vadduwm 4,4,28
vadduwm 5,5,29
.long 0x13C2FE82
vadduwm 5,5,30
vxor 29,6,7
vsel 29,7,0,29
vadduwm 1,1,5
.long 0x13C68682
vadduwm 30,30,29
vadduwm 5,5,30
lvx 28,28,7
.long 0x7F002699
addi 4,4,16
vsldoi 19,18,18,4
vadduwm 4,4,19
vsel 29,3,2,1
vadduwm 3,3,28
vadduwm 4,4,29
.long 0x13C1FE82
vadduwm 4,4,30
vxor 29,5,6
vsel 29,6,7,29
vadduwm 0,0,4
.long 0x13C58682
vadduwm 30,30,29
vadduwm 4,4,30
lvx 28,29,7
vperm 24,24,24,31
vadduwm 3,3,24
vsel 29,2,1,0
vadduwm 2,2,28
vadduwm 3,3,29
.long 0x13C0FE82
vadduwm 3,3,30
vxor 29,4,5
vsel 29,5,6,29
vadduwm 7,7,3
.long 0x13C48682
vadduwm 30,30,29
vadduwm 3,3,30
lvx 28,30,7
vsldoi 25,24,24,4
vadduwm 2,2,25
vsel 29,1,0,7
vadduwm 1,1,28
vadduwm 2,2,29
.long 0x13C7FE82
vadduwm 2,2,30
vxor 29,3,4
vsel 29,4,5,29
vadduwm 6,6,2
.long 0x13C38682
vadduwm 30,30,29
vadduwm 2,2,30
lvx 28,31,7
addi 7,7,0x80
vsldoi 26,25,25,4
vadduwm 1,1,26
vsel 29,0,7,6
vadduwm 0,0,28
vadduwm 1,1,29
.long 0x13C6FE82
vadduwm 1,1,30
vxor 29,2,3
vsel 29,3,4,29
vadduwm 5,5,1
.long 0x13C28682
vadduwm 30,30,29
vadduwm 1,1,30
lvx 28,0,7
vsldoi 27,26,26,4
.long 0x13C90682
vadduwm 8,8,30
.long 0x13DA7E82
vadduwm 8,8,30
vadduwm 8,8,17
vadduwm 0,0,27
vsel 29,7,6,5
vadduwm 7,7,28
vadduwm 0,0,29
.long 0x13C5FE82
vadduwm 0,0,30
vxor 29,1,2
vsel 29,2,3,29
vadduwm 4,4,0
.long 0x13C18682
vadduwm 30,30,29
vadduwm 0,0,30
lvx 28,10,7
mtctr 0
b .L16_xx
.align 5
.L16_xx:
.long 0x13CA0682
vadduwm 9,9,30
.long 0x13DB7E82
vadduwm 9,9,30
vadduwm 9,9,18
vadduwm 7,7,8
vsel 29,6,5,4
vadduwm 6,6,28
vadduwm 7,7,29
.long 0x13C4FE82
vadduwm 7,7,30
vxor 29,0,1
vsel 29,1,2,29
vadduwm 3,3,7
.long 0x13C08682
vadduwm 30,30,29
vadduwm 7,7,30
lvx 28,26,7
.long 0x13CB0682
vadduwm 10,10,30
.long 0x13C87E82
vadduwm 10,10,30
vadduwm 10,10,19
vadduwm 6,6,9
vsel 29,5,4,3
vadduwm 5,5,28
vadduwm 6,6,29
.long 0x13C3FE82
vadduwm 6,6,30
vxor 29,7,0
vsel 29,0,1,29
vadduwm 2,2,6
.long 0x13C78682
vadduwm 30,30,29
vadduwm 6,6,30
lvx 28,27,7
.long 0x13CC0682
vadduwm 11,11,30
.long 0x13C97E82
vadduwm 11,11,30
vadduwm 11,11,24
vadduwm 5,5,10
vsel 29,4,3,2
vadduwm 4,4,28
vadduwm 5,5,29
.long 0x13C2FE82
vadduwm 5,5,30
vxor 29,6,7
vsel 29,7,0,29
vadduwm 1,1,5
.long 0x13C68682
vadduwm 30,30,29
vadduwm 5,5,30
lvx 28,28,7
.long 0x13CD0682
vadduwm 12,12,30
.long 0x13CA7E82
vadduwm 12,12,30
vadduwm 12,12,25
vadduwm 4,4,11
vsel 29,3,2,1
vadduwm 3,3,28
vadduwm 4,4,29
.long 0x13C1FE82
vadduwm 4,4,30
vxor 29,5,6
vsel 29,6,7,29
vadduwm 0,0,4
.long 0x13C58682
vadduwm 30,30,29
vadduwm 4,4,30
lvx 28,29,7
.long 0x13CE0682
vadduwm 13,13,30
.long 0x13CB7E82
vadduwm 13,13,30
vadduwm 13,13,26
vadduwm 3,3,12
vsel 29,2,1,0
vadduwm 2,2,28
vadduwm 3,3,29
.long 0x13C0FE82
vadduwm 3,3,30
vxor 29,4,5
vsel 29,5,6,29
vadduwm 7,7,3
.long 0x13C48682
vadduwm 30,30,29
vadduwm 3,3,30
lvx 28,30,7
.long 0x13CF0682
vadduwm 14,14,30
.long 0x13CC7E82
vadduwm 14,14,30
vadduwm 14,14,27
vadduwm 2,2,13
vsel 29,1,0,7
vadduwm 1,1,28
vadduwm 2,2,29
.long 0x13C7FE82
vadduwm 2,2,30
vxor 29,3,4
vsel 29,4,5,29
vadduwm 6,6,2
.long 0x13C38682
vadduwm 30,30,29
vadduwm 2,2,30
lvx 28,31,7
addi 7,7,0x80
.long 0x13D00682
vadduwm 15,15,30
.long 0x13CD7E82
vadduwm 15,15,30
vadduwm 15,15,8
vadduwm 1,1,14
vsel 29,0,7,6
vadduwm 0,0,28
vadduwm 1,1,29
.long 0x13C6FE82
vadduwm 1,1,30
vxor 29,2,3
vsel 29,3,4,29
vadduwm 5,5,1
.long 0x13C28682
vadduwm 30,30,29
vadduwm 1,1,30
lvx 28,0,7
.long 0x13D10682
vadduwm 16,16,30
.long 0x13CE7E82
vadduwm 16,16,30
vadduwm 16,16,9
vadduwm 0,0,15
vsel 29,7,6,5
vadduwm 7,7,28
vadduwm 0,0,29
.long 0x13C5FE82
vadduwm 0,0,30
vxor 29,1,2
vsel 29,2,3,29
vadduwm 4,4,0
.long 0x13C18682
vadduwm 30,30,29
vadduwm 0,0,30
lvx 28,10,7
.long 0x13D20682
vadduwm 17,17,30
.long 0x13CF7E82
vadduwm 17,17,30
vadduwm 17,17,10
vadduwm 7,7,16
vsel 29,6,5,4
vadduwm 6,6,28
vadduwm 7,7,29
.long 0x13C4FE82
vadduwm 7,7,30
vxor 29,0,1
vsel 29,1,2,29
vadduwm 3,3,7
.long 0x13C08682
vadduwm 30,30,29
vadduwm 7,7,30
lvx 28,26,7
.long 0x13D30682
vadduwm 18,18,30
.long 0x13D07E82
vadduwm 18,18,30
vadduwm 18,18,11
vadduwm 6,6,17
vsel 29,5,4,3
vadduwm 5,5,28
vadduwm 6,6,29
.long 0x13C3FE82
vadduwm 6,6,30
vxor 29,7,0
vsel 29,0,1,29
vadduwm 2,2,6
.long 0x13C78682
vadduwm 30,30,29
vadduwm 6,6,30
lvx 28,27,7
.long 0x13D80682
vadduwm 19,19,30
.long 0x13D17E82
vadduwm 19,19,30
vadduwm 19,19,12
vadduwm 5,5,18
vsel 29,4,3,2
vadduwm 4,4,28
vadduwm 5,5,29
.long 0x13C2FE82
vadduwm 5,5,30
vxor 29,6,7
vsel 29,7,0,29
vadduwm 1,1,5
.long 0x13C68682
vadduwm 30,30,29
vadduwm 5,5,30
lvx 28,28,7
.long 0x13D90682
vadduwm 24,24,30
.long 0x13D27E82
vadduwm 24,24,30
vadduwm 24,24,13
vadduwm 4,4,19
vsel 29,3,2,1
vadduwm 3,3,28
vadduwm 4,4,29
.long 0x13C1FE82
vadduwm 4,4,30
vxor 29,5,6
vsel 29,6,7,29
vadduwm 0,0,4
.long 0x13C58682
vadduwm 30,30,29
vadduwm 4,4,30
lvx 28,29,7
.long 0x13DA0682
vadduwm 25,25,30
.long 0x13D37E82
vadduwm 25,25,30
vadduwm 25,25,14
vadduwm 3,3,24
vsel 29,2,1,0
vadduwm 2,2,28
vadduwm 3,3,29
.long 0x13C0FE82
vadduwm 3,3,30
vxor 29,4,5
vsel 29,5,6,29
vadduwm 7,7,3
.long 0x13C48682
vadduwm 30,30,29
vadduwm 3,3,30
lvx 28,30,7
.long 0x13DB0682
vadduwm 26,26,30
.long 0x13D87E82
vadduwm 26,26,30
vadduwm 26,26,15
vadduwm 2,2,25
vsel 29,1,0,7
vadduwm 1,1,28
vadduwm 2,2,29
.long 0x13C7FE82
vadduwm 2,2,30
vxor 29,3,4
vsel 29,4,5,29
vadduwm 6,6,2
.long 0x13C38682
vadduwm 30,30,29
vadduwm 2,2,30
lvx 28,31,7
addi 7,7,0x80
.long 0x13C80682
vadduwm 27,27,30
.long 0x13D97E82
vadduwm 27,27,30
vadduwm 27,27,16
vadduwm 1,1,26
vsel 29,0,7,6
vadduwm 0,0,28
vadduwm 1,1,29
.long 0x13C6FE82
vadduwm 1,1,30
vxor 29,2,3
vsel 29,3,4,29
vadduwm 5,5,1
.long 0x13C28682
vadduwm 30,30,29
vadduwm 1,1,30
lvx 28,0,7
.long 0x13C90682
vadduwm 8,8,30
.long 0x13DA7E82
vadduwm 8,8,30
vadduwm 8,8,17
vadduwm 0,0,27
vsel 29,7,6,5
vadduwm 7,7,28
vadduwm 0,0,29
.long 0x13C5FE82
vadduwm 0,0,30
vxor 29,1,2
vsel 29,2,3,29
vadduwm 4,4,0
.long 0x13C18682
vadduwm 30,30,29
vadduwm 0,0,30
lvx 28,10,7
bdnz .L16_xx
lvx 10,0,11
subic. 5,5,1
lvx 11,10,11
vadduwm 0,0,10
lvx 12,26,11
vadduwm 1,1,11
lvx 13,27,11
vadduwm 2,2,12
lvx 14,28,11
vadduwm 3,3,13
lvx 15,29,11
vadduwm 4,4,14
lvx 16,30,11
vadduwm 5,5,15
lvx 17,31,11
vadduwm 6,6,16
vadduwm 7,7,17
bne .Loop
lvx 8,26,7
vperm 0,0,1,28
lvx 9,27,7
vperm 4,4,5,28
vperm 0,0,2,8
vperm 4,4,6,8
vperm 0,0,3,9
vperm 4,4,7,9
.long 0x7C001F19
.long 0x7C8A1F19
addi 11,1,207
mtlr 8
or 12,12,12
lvx 24,0,11
lvx 25,10,11
lvx 26,26,11
lvx 27,27,11
lvx 28,28,11
lvx 29,29,11
lvx 30,30,11
lvx 31,31,11
ld 26,336(1)
ld 27,344(1)
ld 28,352(1)
ld 29,360(1)
ld 30,368(1)
ld 31,376(1)
addi 1,1,384
blr
.long 0
.byte 0,12,4,1,0x80,6,3,0
.long 0
.size sha256_block_p8,.-sha256_block_p8
.align 6
.LPICmeup:
mflr 0
bcl 20,31,$+4
mflr 6
addi 6,6,56
mtlr 0
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.space 28
.long 0x428a2f98,0x428a2f98,0x428a2f98,0x428a2f98
.long 0x71374491,0x71374491,0x71374491,0x71374491
.long 0xb5c0fbcf,0xb5c0fbcf,0xb5c0fbcf,0xb5c0fbcf
.long 0xe9b5dba5,0xe9b5dba5,0xe9b5dba5,0xe9b5dba5
.long 0x3956c25b,0x3956c25b,0x3956c25b,0x3956c25b
.long 0x59f111f1,0x59f111f1,0x59f111f1,0x59f111f1
.long 0x923f82a4,0x923f82a4,0x923f82a4,0x923f82a4
.long 0xab1c5ed5,0xab1c5ed5,0xab1c5ed5,0xab1c5ed5
.long 0xd807aa98,0xd807aa98,0xd807aa98,0xd807aa98
.long 0x12835b01,0x12835b01,0x12835b01,0x12835b01
.long 0x243185be,0x243185be,0x243185be,0x243185be
.long 0x550c7dc3,0x550c7dc3,0x550c7dc3,0x550c7dc3
.long 0x72be5d74,0x72be5d74,0x72be5d74,0x72be5d74
.long 0x80deb1fe,0x80deb1fe,0x80deb1fe,0x80deb1fe
.long 0x9bdc06a7,0x9bdc06a7,0x9bdc06a7,0x9bdc06a7
.long 0xc19bf174,0xc19bf174,0xc19bf174,0xc19bf174
.long 0xe49b69c1,0xe49b69c1,0xe49b69c1,0xe49b69c1
.long 0xefbe4786,0xefbe4786,0xefbe4786,0xefbe4786
.long 0x0fc19dc6,0x0fc19dc6,0x0fc19dc6,0x0fc19dc6
.long 0x240ca1cc,0x240ca1cc,0x240ca1cc,0x240ca1cc
.long 0x2de92c6f,0x2de92c6f,0x2de92c6f,0x2de92c6f
.long 0x4a7484aa,0x4a7484aa,0x4a7484aa,0x4a7484aa
.long 0x5cb0a9dc,0x5cb0a9dc,0x5cb0a9dc,0x5cb0a9dc
.long 0x76f988da,0x76f988da,0x76f988da,0x76f988da
.long 0x983e5152,0x983e5152,0x983e5152,0x983e5152
.long 0xa831c66d,0xa831c66d,0xa831c66d,0xa831c66d
.long 0xb00327c8,0xb00327c8,0xb00327c8,0xb00327c8
.long 0xbf597fc7,0xbf597fc7,0xbf597fc7,0xbf597fc7
.long 0xc6e00bf3,0xc6e00bf3,0xc6e00bf3,0xc6e00bf3
.long 0xd5a79147,0xd5a79147,0xd5a79147,0xd5a79147
.long 0x06ca6351,0x06ca6351,0x06ca6351,0x06ca6351
.long 0x14292967,0x14292967,0x14292967,0x14292967
.long 0x27b70a85,0x27b70a85,0x27b70a85,0x27b70a85
.long 0x2e1b2138,0x2e1b2138,0x2e1b2138,0x2e1b2138
.long 0x4d2c6dfc,0x4d2c6dfc,0x4d2c6dfc,0x4d2c6dfc
.long 0x53380d13,0x53380d13,0x53380d13,0x53380d13
.long 0x650a7354,0x650a7354,0x650a7354,0x650a7354
.long 0x766a0abb,0x766a0abb,0x766a0abb,0x766a0abb
.long 0x81c2c92e,0x81c2c92e,0x81c2c92e,0x81c2c92e
.long 0x92722c85,0x92722c85,0x92722c85,0x92722c85
.long 0xa2bfe8a1,0xa2bfe8a1,0xa2bfe8a1,0xa2bfe8a1
.long 0xa81a664b,0xa81a664b,0xa81a664b,0xa81a664b
.long 0xc24b8b70,0xc24b8b70,0xc24b8b70,0xc24b8b70
.long 0xc76c51a3,0xc76c51a3,0xc76c51a3,0xc76c51a3
.long 0xd192e819,0xd192e819,0xd192e819,0xd192e819
.long 0xd6990624,0xd6990624,0xd6990624,0xd6990624
.long 0xf40e3585,0xf40e3585,0xf40e3585,0xf40e3585
.long 0x106aa070,0x106aa070,0x106aa070,0x106aa070
.long 0x19a4c116,0x19a4c116,0x19a4c116,0x19a4c116
.long 0x1e376c08,0x1e376c08,0x1e376c08,0x1e376c08
.long 0x2748774c,0x2748774c,0x2748774c,0x2748774c
.long 0x34b0bcb5,0x34b0bcb5,0x34b0bcb5,0x34b0bcb5
.long 0x391c0cb3,0x391c0cb3,0x391c0cb3,0x391c0cb3
.long 0x4ed8aa4a,0x4ed8aa4a,0x4ed8aa4a,0x4ed8aa4a
.long 0x5b9cca4f,0x5b9cca4f,0x5b9cca4f,0x5b9cca4f
.long 0x682e6ff3,0x682e6ff3,0x682e6ff3,0x682e6ff3
.long 0x748f82ee,0x748f82ee,0x748f82ee,0x748f82ee
.long 0x78a5636f,0x78a5636f,0x78a5636f,0x78a5636f
.long 0x84c87814,0x84c87814,0x84c87814,0x84c87814
.long 0x8cc70208,0x8cc70208,0x8cc70208,0x8cc70208
.long 0x90befffa,0x90befffa,0x90befffa,0x90befffa
.long 0xa4506ceb,0xa4506ceb,0xa4506ceb,0xa4506ceb
.long 0xbef9a3f7,0xbef9a3f7,0xbef9a3f7,0xbef9a3f7
.long 0xc67178f2,0xc67178f2,0xc67178f2,0xc67178f2
.long 0,0,0,0
.long 0x10111213,0x10111213,0x10111213,0x00010203
.long 0x10111213,0x10111213,0x04050607,0x00010203
.long 0x10111213,0x08090a0b,0x04050607,0x00010203
.byte 83,72,65,50,53,54,32,102,111,114,32,80,111,119,101,114,73,83,65,32,50,46,48,55,44,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align 2
.align 2

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,849 @@
/* $FreeBSD$ */
/* Do not modify. This file is auto-generated from sha512p8-ppc.pl. */
.machine "any"
.abiversion 2
.text
.globl sha512_block_p8
.type sha512_block_p8,@function
.align 6
sha512_block_p8:
.localentry sha512_block_p8,0
stdu 1,-384(1)
mflr 8
li 10,207
li 11,223
stvx 24,10,1
addi 10,10,32
li 12,-1
stvx 25,11,1
addi 11,11,32
stvx 26,10,1
addi 10,10,32
stvx 27,11,1
addi 11,11,32
stvx 28,10,1
addi 10,10,32
stvx 29,11,1
addi 11,11,32
stvx 30,10,1
stvx 31,11,1
li 11,-4096+255
stw 12,332(1)
li 10,0x10
std 26,336(1)
li 26,0x20
std 27,344(1)
li 27,0x30
std 28,352(1)
li 28,0x40
std 29,360(1)
li 29,0x50
std 30,368(1)
li 30,0x60
std 31,376(1)
li 31,0x70
std 8,400(1)
or 11,11,11
bl .LPICmeup
addi 11,1,79
li 7,8
lvsl 31,0,7
vspltisb 28,0x0f
vxor 31,31,28
.long 0x7C001E99
.long 0x7C4A1E99
.long 0x7C9A1E99
vsldoi 1,0,0,8
.long 0x7CDB1E99
vsldoi 3,2,2,8
vsldoi 5,4,4,8
vsldoi 7,6,6,8
li 0,4
b .Loop
.align 5
.Loop:
lvx 28,0,6
.long 0x7D002699
addi 4,4,16
mr 7,6
stvx 0,0,11
stvx 1,10,11
stvx 2,26,11
stvx 3,27,11
stvx 4,28,11
stvx 5,29,11
stvx 6,30,11
stvx 7,31,11
.long 0x10E7E0C0
lvx 28,10,6
vperm 8,8,8,31
.long 0x10E740C0
vsel 29,6,5,4
.long 0x10C6E0C0
.long 0x10E7E8C0
.long 0x13C4FEC2
.long 0x10E7F0C0
vxor 29,0,1
vsel 29,1,2,29
.long 0x106338C0
.long 0x13C086C2
.long 0x13DEE8C0
.long 0x10E7F0C0
lvx 28,26,7
.long 0x7D402699
addi 4,4,16
vsldoi 9,8,8,8
.long 0x10C648C0
vsel 29,5,4,3
.long 0x10A5E0C0
.long 0x10C6E8C0
.long 0x13C3FEC2
.long 0x10C6F0C0
vxor 29,7,0
vsel 29,0,1,29
.long 0x104230C0
.long 0x13C786C2
.long 0x13DEE8C0
.long 0x10C6F0C0
lvx 28,27,7
vperm 10,10,10,31
.long 0x10A550C0
vsel 29,4,3,2
.long 0x1084E0C0
.long 0x10A5E8C0
.long 0x13C2FEC2
.long 0x10A5F0C0
vxor 29,6,7
vsel 29,7,0,29
.long 0x102128C0
.long 0x13C686C2
.long 0x13DEE8C0
.long 0x10A5F0C0
lvx 28,28,7
.long 0x7D802699
addi 4,4,16
vsldoi 11,10,10,8
.long 0x108458C0
vsel 29,3,2,1
.long 0x1063E0C0
.long 0x1084E8C0
.long 0x13C1FEC2
.long 0x1084F0C0
vxor 29,5,6
vsel 29,6,7,29
.long 0x100020C0
.long 0x13C586C2
.long 0x13DEE8C0
.long 0x1084F0C0
lvx 28,29,7
vperm 12,12,12,31
.long 0x106360C0
vsel 29,2,1,0
.long 0x1042E0C0
.long 0x1063E8C0
.long 0x13C0FEC2
.long 0x1063F0C0
vxor 29,4,5
vsel 29,5,6,29
.long 0x10E718C0
.long 0x13C486C2
.long 0x13DEE8C0
.long 0x1063F0C0
lvx 28,30,7
.long 0x7DC02699
addi 4,4,16
vsldoi 13,12,12,8
.long 0x104268C0
vsel 29,1,0,7
.long 0x1021E0C0
.long 0x1042E8C0
.long 0x13C7FEC2
.long 0x1042F0C0
vxor 29,3,4
vsel 29,4,5,29
.long 0x10C610C0
.long 0x13C386C2
.long 0x13DEE8C0
.long 0x1042F0C0
lvx 28,31,7
addi 7,7,0x80
vperm 14,14,14,31
.long 0x102170C0
vsel 29,0,7,6
.long 0x1000E0C0
.long 0x1021E8C0
.long 0x13C6FEC2
.long 0x1021F0C0
vxor 29,2,3
vsel 29,3,4,29
.long 0x10A508C0
.long 0x13C286C2
.long 0x13DEE8C0
.long 0x1021F0C0
lvx 28,0,7
.long 0x7E002699
addi 4,4,16
vsldoi 15,14,14,8
.long 0x100078C0
vsel 29,7,6,5
.long 0x10E7E0C0
.long 0x1000E8C0
.long 0x13C5FEC2
.long 0x1000F0C0
vxor 29,1,2
vsel 29,2,3,29
.long 0x108400C0
.long 0x13C186C2
.long 0x13DEE8C0
.long 0x1000F0C0
lvx 28,10,7
vperm 16,16,16,31
.long 0x10E780C0
vsel 29,6,5,4
.long 0x10C6E0C0
.long 0x10E7E8C0
.long 0x13C4FEC2
.long 0x10E7F0C0
vxor 29,0,1
vsel 29,1,2,29
.long 0x106338C0
.long 0x13C086C2
.long 0x13DEE8C0
.long 0x10E7F0C0
lvx 28,26,7
.long 0x7E402699
addi 4,4,16
vsldoi 17,16,16,8
.long 0x10C688C0
vsel 29,5,4,3
.long 0x10A5E0C0
.long 0x10C6E8C0
.long 0x13C3FEC2
.long 0x10C6F0C0
vxor 29,7,0
vsel 29,0,1,29
.long 0x104230C0
.long 0x13C786C2
.long 0x13DEE8C0
.long 0x10C6F0C0
lvx 28,27,7
vperm 18,18,18,31
.long 0x10A590C0
vsel 29,4,3,2
.long 0x1084E0C0
.long 0x10A5E8C0
.long 0x13C2FEC2
.long 0x10A5F0C0
vxor 29,6,7
vsel 29,7,0,29
.long 0x102128C0
.long 0x13C686C2
.long 0x13DEE8C0
.long 0x10A5F0C0
lvx 28,28,7
.long 0x7F002699
addi 4,4,16
vsldoi 19,18,18,8
.long 0x108498C0
vsel 29,3,2,1
.long 0x1063E0C0
.long 0x1084E8C0
.long 0x13C1FEC2
.long 0x1084F0C0
vxor 29,5,6
vsel 29,6,7,29
.long 0x100020C0
.long 0x13C586C2
.long 0x13DEE8C0
.long 0x1084F0C0
lvx 28,29,7
vperm 24,24,24,31
.long 0x1063C0C0
vsel 29,2,1,0
.long 0x1042E0C0
.long 0x1063E8C0
.long 0x13C0FEC2
.long 0x1063F0C0
vxor 29,4,5
vsel 29,5,6,29
.long 0x10E718C0
.long 0x13C486C2
.long 0x13DEE8C0
.long 0x1063F0C0
lvx 28,30,7
.long 0x7F402699
addi 4,4,16
vsldoi 25,24,24,8
.long 0x1042C8C0
vsel 29,1,0,7
.long 0x1021E0C0
.long 0x1042E8C0
.long 0x13C7FEC2
.long 0x1042F0C0
vxor 29,3,4
vsel 29,4,5,29
.long 0x10C610C0
.long 0x13C386C2
.long 0x13DEE8C0
.long 0x1042F0C0
lvx 28,31,7
addi 7,7,0x80
vperm 26,26,26,31
.long 0x1021D0C0
vsel 29,0,7,6
.long 0x1000E0C0
.long 0x1021E8C0
.long 0x13C6FEC2
.long 0x1021F0C0
vxor 29,2,3
vsel 29,3,4,29
.long 0x10A508C0
.long 0x13C286C2
.long 0x13DEE8C0
.long 0x1021F0C0
lvx 28,0,7
vsldoi 27,26,26,8
.long 0x13C906C2
.long 0x1108F0C0
.long 0x13DA7EC2
.long 0x1108F0C0
.long 0x110888C0
.long 0x1000D8C0
vsel 29,7,6,5
.long 0x10E7E0C0
.long 0x1000E8C0
.long 0x13C5FEC2
.long 0x1000F0C0
vxor 29,1,2
vsel 29,2,3,29
.long 0x108400C0
.long 0x13C186C2
.long 0x13DEE8C0
.long 0x1000F0C0
lvx 28,10,7
mtctr 0
b .L16_xx
.align 5
.L16_xx:
.long 0x13CA06C2
.long 0x1129F0C0
.long 0x13DB7EC2
.long 0x1129F0C0
.long 0x112990C0
.long 0x10E740C0
vsel 29,6,5,4
.long 0x10C6E0C0
.long 0x10E7E8C0
.long 0x13C4FEC2
.long 0x10E7F0C0
vxor 29,0,1
vsel 29,1,2,29
.long 0x106338C0
.long 0x13C086C2
.long 0x13DEE8C0
.long 0x10E7F0C0
lvx 28,26,7
.long 0x13CB06C2
.long 0x114AF0C0
.long 0x13C87EC2
.long 0x114AF0C0
.long 0x114A98C0
.long 0x10C648C0
vsel 29,5,4,3
.long 0x10A5E0C0
.long 0x10C6E8C0
.long 0x13C3FEC2
.long 0x10C6F0C0
vxor 29,7,0
vsel 29,0,1,29
.long 0x104230C0
.long 0x13C786C2
.long 0x13DEE8C0
.long 0x10C6F0C0
lvx 28,27,7
.long 0x13CC06C2
.long 0x116BF0C0
.long 0x13C97EC2
.long 0x116BF0C0
.long 0x116BC0C0
.long 0x10A550C0
vsel 29,4,3,2
.long 0x1084E0C0
.long 0x10A5E8C0
.long 0x13C2FEC2
.long 0x10A5F0C0
vxor 29,6,7
vsel 29,7,0,29
.long 0x102128C0
.long 0x13C686C2
.long 0x13DEE8C0
.long 0x10A5F0C0
lvx 28,28,7
.long 0x13CD06C2
.long 0x118CF0C0
.long 0x13CA7EC2
.long 0x118CF0C0
.long 0x118CC8C0
.long 0x108458C0
vsel 29,3,2,1
.long 0x1063E0C0
.long 0x1084E8C0
.long 0x13C1FEC2
.long 0x1084F0C0
vxor 29,5,6
vsel 29,6,7,29
.long 0x100020C0
.long 0x13C586C2
.long 0x13DEE8C0
.long 0x1084F0C0
lvx 28,29,7
.long 0x13CE06C2
.long 0x11ADF0C0
.long 0x13CB7EC2
.long 0x11ADF0C0
.long 0x11ADD0C0
.long 0x106360C0
vsel 29,2,1,0
.long 0x1042E0C0
.long 0x1063E8C0
.long 0x13C0FEC2
.long 0x1063F0C0
vxor 29,4,5
vsel 29,5,6,29
.long 0x10E718C0
.long 0x13C486C2
.long 0x13DEE8C0
.long 0x1063F0C0
lvx 28,30,7
.long 0x13CF06C2
.long 0x11CEF0C0
.long 0x13CC7EC2
.long 0x11CEF0C0
.long 0x11CED8C0
.long 0x104268C0
vsel 29,1,0,7
.long 0x1021E0C0
.long 0x1042E8C0
.long 0x13C7FEC2
.long 0x1042F0C0
vxor 29,3,4
vsel 29,4,5,29
.long 0x10C610C0
.long 0x13C386C2
.long 0x13DEE8C0
.long 0x1042F0C0
lvx 28,31,7
addi 7,7,0x80
.long 0x13D006C2
.long 0x11EFF0C0
.long 0x13CD7EC2
.long 0x11EFF0C0
.long 0x11EF40C0
.long 0x102170C0
vsel 29,0,7,6
.long 0x1000E0C0
.long 0x1021E8C0
.long 0x13C6FEC2
.long 0x1021F0C0
vxor 29,2,3
vsel 29,3,4,29
.long 0x10A508C0
.long 0x13C286C2
.long 0x13DEE8C0
.long 0x1021F0C0
lvx 28,0,7
.long 0x13D106C2
.long 0x1210F0C0
.long 0x13CE7EC2
.long 0x1210F0C0
.long 0x121048C0
.long 0x100078C0
vsel 29,7,6,5
.long 0x10E7E0C0
.long 0x1000E8C0
.long 0x13C5FEC2
.long 0x1000F0C0
vxor 29,1,2
vsel 29,2,3,29
.long 0x108400C0
.long 0x13C186C2
.long 0x13DEE8C0
.long 0x1000F0C0
lvx 28,10,7
.long 0x13D206C2
.long 0x1231F0C0
.long 0x13CF7EC2
.long 0x1231F0C0
.long 0x123150C0
.long 0x10E780C0
vsel 29,6,5,4
.long 0x10C6E0C0
.long 0x10E7E8C0
.long 0x13C4FEC2
.long 0x10E7F0C0
vxor 29,0,1
vsel 29,1,2,29
.long 0x106338C0
.long 0x13C086C2
.long 0x13DEE8C0
.long 0x10E7F0C0
lvx 28,26,7
.long 0x13D306C2
.long 0x1252F0C0
.long 0x13D07EC2
.long 0x1252F0C0
.long 0x125258C0
.long 0x10C688C0
vsel 29,5,4,3
.long 0x10A5E0C0
.long 0x10C6E8C0
.long 0x13C3FEC2
.long 0x10C6F0C0
vxor 29,7,0
vsel 29,0,1,29
.long 0x104230C0
.long 0x13C786C2
.long 0x13DEE8C0
.long 0x10C6F0C0
lvx 28,27,7
.long 0x13D806C2
.long 0x1273F0C0
.long 0x13D17EC2
.long 0x1273F0C0
.long 0x127360C0
.long 0x10A590C0
vsel 29,4,3,2
.long 0x1084E0C0
.long 0x10A5E8C0
.long 0x13C2FEC2
.long 0x10A5F0C0
vxor 29,6,7
vsel 29,7,0,29
.long 0x102128C0
.long 0x13C686C2
.long 0x13DEE8C0
.long 0x10A5F0C0
lvx 28,28,7
.long 0x13D906C2
.long 0x1318F0C0
.long 0x13D27EC2
.long 0x1318F0C0
.long 0x131868C0
.long 0x108498C0
vsel 29,3,2,1
.long 0x1063E0C0
.long 0x1084E8C0
.long 0x13C1FEC2
.long 0x1084F0C0
vxor 29,5,6
vsel 29,6,7,29
.long 0x100020C0
.long 0x13C586C2
.long 0x13DEE8C0
.long 0x1084F0C0
lvx 28,29,7
.long 0x13DA06C2
.long 0x1339F0C0
.long 0x13D37EC2
.long 0x1339F0C0
.long 0x133970C0
.long 0x1063C0C0
vsel 29,2,1,0
.long 0x1042E0C0
.long 0x1063E8C0
.long 0x13C0FEC2
.long 0x1063F0C0
vxor 29,4,5
vsel 29,5,6,29
.long 0x10E718C0
.long 0x13C486C2
.long 0x13DEE8C0
.long 0x1063F0C0
lvx 28,30,7
.long 0x13DB06C2
.long 0x135AF0C0
.long 0x13D87EC2
.long 0x135AF0C0
.long 0x135A78C0
.long 0x1042C8C0
vsel 29,1,0,7
.long 0x1021E0C0
.long 0x1042E8C0
.long 0x13C7FEC2
.long 0x1042F0C0
vxor 29,3,4
vsel 29,4,5,29
.long 0x10C610C0
.long 0x13C386C2
.long 0x13DEE8C0
.long 0x1042F0C0
lvx 28,31,7
addi 7,7,0x80
.long 0x13C806C2
.long 0x137BF0C0
.long 0x13D97EC2
.long 0x137BF0C0
.long 0x137B80C0
.long 0x1021D0C0
vsel 29,0,7,6
.long 0x1000E0C0
.long 0x1021E8C0
.long 0x13C6FEC2
.long 0x1021F0C0
vxor 29,2,3
vsel 29,3,4,29
.long 0x10A508C0
.long 0x13C286C2
.long 0x13DEE8C0
.long 0x1021F0C0
lvx 28,0,7
.long 0x13C906C2
.long 0x1108F0C0
.long 0x13DA7EC2
.long 0x1108F0C0
.long 0x110888C0
.long 0x1000D8C0
vsel 29,7,6,5
.long 0x10E7E0C0
.long 0x1000E8C0
.long 0x13C5FEC2
.long 0x1000F0C0
vxor 29,1,2
vsel 29,2,3,29
.long 0x108400C0
.long 0x13C186C2
.long 0x13DEE8C0
.long 0x1000F0C0
lvx 28,10,7
bdnz .L16_xx
lvx 10,0,11
subic. 5,5,1
lvx 11,10,11
.long 0x100050C0
lvx 12,26,11
.long 0x102158C0
lvx 13,27,11
.long 0x104260C0
lvx 14,28,11
.long 0x106368C0
lvx 15,29,11
.long 0x108470C0
lvx 16,30,11
.long 0x10A578C0
lvx 17,31,11
.long 0x10C680C0
.long 0x10E788C0
bne .Loop
vperm 0,0,1,28
vperm 2,2,3,28
vperm 4,4,5,28
vperm 6,6,7,28
.long 0x7C001F99
.long 0x7C4A1F99
.long 0x7C9A1F99
.long 0x7CDB1F99
addi 11,1,207
mtlr 8
or 12,12,12
lvx 24,0,11
lvx 25,10,11
lvx 26,26,11
lvx 27,27,11
lvx 28,28,11
lvx 29,29,11
lvx 30,30,11
lvx 31,31,11
ld 26,336(1)
ld 27,344(1)
ld 28,352(1)
ld 29,360(1)
ld 30,368(1)
ld 31,376(1)
addi 1,1,384
blr
.long 0
.byte 0,12,4,1,0x80,6,3,0
.long 0
.size sha512_block_p8,.-sha512_block_p8
.align 6
.LPICmeup:
mflr 0
bcl 20,31,$+4
mflr 6
addi 6,6,56
mtlr 0
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
.space 28
.long 0xd728ae22,0x428a2f98
.long 0xd728ae22,0x428a2f98
.long 0x23ef65cd,0x71374491
.long 0x23ef65cd,0x71374491
.long 0xec4d3b2f,0xb5c0fbcf
.long 0xec4d3b2f,0xb5c0fbcf
.long 0x8189dbbc,0xe9b5dba5
.long 0x8189dbbc,0xe9b5dba5
.long 0xf348b538,0x3956c25b
.long 0xf348b538,0x3956c25b
.long 0xb605d019,0x59f111f1
.long 0xb605d019,0x59f111f1
.long 0xaf194f9b,0x923f82a4
.long 0xaf194f9b,0x923f82a4
.long 0xda6d8118,0xab1c5ed5
.long 0xda6d8118,0xab1c5ed5
.long 0xa3030242,0xd807aa98
.long 0xa3030242,0xd807aa98
.long 0x45706fbe,0x12835b01
.long 0x45706fbe,0x12835b01
.long 0x4ee4b28c,0x243185be
.long 0x4ee4b28c,0x243185be
.long 0xd5ffb4e2,0x550c7dc3
.long 0xd5ffb4e2,0x550c7dc3
.long 0xf27b896f,0x72be5d74
.long 0xf27b896f,0x72be5d74
.long 0x3b1696b1,0x80deb1fe
.long 0x3b1696b1,0x80deb1fe
.long 0x25c71235,0x9bdc06a7
.long 0x25c71235,0x9bdc06a7
.long 0xcf692694,0xc19bf174
.long 0xcf692694,0xc19bf174
.long 0x9ef14ad2,0xe49b69c1
.long 0x9ef14ad2,0xe49b69c1
.long 0x384f25e3,0xefbe4786
.long 0x384f25e3,0xefbe4786
.long 0x8b8cd5b5,0x0fc19dc6
.long 0x8b8cd5b5,0x0fc19dc6
.long 0x77ac9c65,0x240ca1cc
.long 0x77ac9c65,0x240ca1cc
.long 0x592b0275,0x2de92c6f
.long 0x592b0275,0x2de92c6f
.long 0x6ea6e483,0x4a7484aa
.long 0x6ea6e483,0x4a7484aa
.long 0xbd41fbd4,0x5cb0a9dc
.long 0xbd41fbd4,0x5cb0a9dc
.long 0x831153b5,0x76f988da
.long 0x831153b5,0x76f988da
.long 0xee66dfab,0x983e5152
.long 0xee66dfab,0x983e5152
.long 0x2db43210,0xa831c66d
.long 0x2db43210,0xa831c66d
.long 0x98fb213f,0xb00327c8
.long 0x98fb213f,0xb00327c8
.long 0xbeef0ee4,0xbf597fc7
.long 0xbeef0ee4,0xbf597fc7
.long 0x3da88fc2,0xc6e00bf3
.long 0x3da88fc2,0xc6e00bf3
.long 0x930aa725,0xd5a79147
.long 0x930aa725,0xd5a79147
.long 0xe003826f,0x06ca6351
.long 0xe003826f,0x06ca6351
.long 0x0a0e6e70,0x14292967
.long 0x0a0e6e70,0x14292967
.long 0x46d22ffc,0x27b70a85
.long 0x46d22ffc,0x27b70a85
.long 0x5c26c926,0x2e1b2138
.long 0x5c26c926,0x2e1b2138
.long 0x5ac42aed,0x4d2c6dfc
.long 0x5ac42aed,0x4d2c6dfc
.long 0x9d95b3df,0x53380d13
.long 0x9d95b3df,0x53380d13
.long 0x8baf63de,0x650a7354
.long 0x8baf63de,0x650a7354
.long 0x3c77b2a8,0x766a0abb
.long 0x3c77b2a8,0x766a0abb
.long 0x47edaee6,0x81c2c92e
.long 0x47edaee6,0x81c2c92e
.long 0x1482353b,0x92722c85
.long 0x1482353b,0x92722c85
.long 0x4cf10364,0xa2bfe8a1
.long 0x4cf10364,0xa2bfe8a1
.long 0xbc423001,0xa81a664b
.long 0xbc423001,0xa81a664b
.long 0xd0f89791,0xc24b8b70
.long 0xd0f89791,0xc24b8b70
.long 0x0654be30,0xc76c51a3
.long 0x0654be30,0xc76c51a3
.long 0xd6ef5218,0xd192e819
.long 0xd6ef5218,0xd192e819
.long 0x5565a910,0xd6990624
.long 0x5565a910,0xd6990624
.long 0x5771202a,0xf40e3585
.long 0x5771202a,0xf40e3585
.long 0x32bbd1b8,0x106aa070
.long 0x32bbd1b8,0x106aa070
.long 0xb8d2d0c8,0x19a4c116
.long 0xb8d2d0c8,0x19a4c116
.long 0x5141ab53,0x1e376c08
.long 0x5141ab53,0x1e376c08
.long 0xdf8eeb99,0x2748774c
.long 0xdf8eeb99,0x2748774c
.long 0xe19b48a8,0x34b0bcb5
.long 0xe19b48a8,0x34b0bcb5
.long 0xc5c95a63,0x391c0cb3
.long 0xc5c95a63,0x391c0cb3
.long 0xe3418acb,0x4ed8aa4a
.long 0xe3418acb,0x4ed8aa4a
.long 0x7763e373,0x5b9cca4f
.long 0x7763e373,0x5b9cca4f
.long 0xd6b2b8a3,0x682e6ff3
.long 0xd6b2b8a3,0x682e6ff3
.long 0x5defb2fc,0x748f82ee
.long 0x5defb2fc,0x748f82ee
.long 0x43172f60,0x78a5636f
.long 0x43172f60,0x78a5636f
.long 0xa1f0ab72,0x84c87814
.long 0xa1f0ab72,0x84c87814
.long 0x1a6439ec,0x8cc70208
.long 0x1a6439ec,0x8cc70208
.long 0x23631e28,0x90befffa
.long 0x23631e28,0x90befffa
.long 0xde82bde9,0xa4506ceb
.long 0xde82bde9,0xa4506ceb
.long 0xb2c67915,0xbef9a3f7
.long 0xb2c67915,0xbef9a3f7
.long 0xe372532b,0xc67178f2
.long 0xe372532b,0xc67178f2
.long 0xea26619c,0xca273ece
.long 0xea26619c,0xca273ece
.long 0x21c0c207,0xd186b8c7
.long 0x21c0c207,0xd186b8c7
.long 0xcde0eb1e,0xeada7dd6
.long 0xcde0eb1e,0xeada7dd6
.long 0xee6ed178,0xf57d4f7f
.long 0xee6ed178,0xf57d4f7f
.long 0x72176fba,0x06f067aa
.long 0x72176fba,0x06f067aa
.long 0xa2c898a6,0x0a637dc5
.long 0xa2c898a6,0x0a637dc5
.long 0xbef90dae,0x113f9804
.long 0xbef90dae,0x113f9804
.long 0x131c471b,0x1b710b35
.long 0x131c471b,0x1b710b35
.long 0x23047d84,0x28db77f5
.long 0x23047d84,0x28db77f5
.long 0x40c72493,0x32caab7b
.long 0x40c72493,0x32caab7b
.long 0x15c9bebc,0x3c9ebe0a
.long 0x15c9bebc,0x3c9ebe0a
.long 0x9c100d4c,0x431d67c4
.long 0x9c100d4c,0x431d67c4
.long 0xcb3e42b6,0x4cc5d4be
.long 0xcb3e42b6,0x4cc5d4be
.long 0xfc657e2a,0x597f299c
.long 0xfc657e2a,0x597f299c
.long 0x3ad6faec,0x5fcb6fab
.long 0x3ad6faec,0x5fcb6fab
.long 0x4a475817,0x6c44198c
.long 0x4a475817,0x6c44198c
.long 0,0
.long 0,0
.long 0x14151617,0x10111213
.long 0x04050607,0x00010203
.byte 83,72,65,53,49,50,32,102,111,114,32,80,111,119,101,114,73,83,65,32,50,46,48,55,44,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align 2
.align 2

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,350 @@
/* $FreeBSD$ */
/* Do not modify. This file is auto-generated from x25519-ppc64.pl. */
.abiversion 2
.text
.globl x25519_fe51_mul
.type x25519_fe51_mul,@function
.type x25519_fe51_mul,@function
.align 5
x25519_fe51_mul:
.localentry x25519_fe51_mul,0
stdu 1,-144(1)
std 21,56(1)
std 22,64(1)
std 23,72(1)
std 24,80(1)
std 25,88(1)
std 26,96(1)
std 27,104(1)
std 28,112(1)
std 29,120(1)
std 30,128(1)
std 31,136(1)
ld 6,0(5)
ld 7,0(4)
ld 8,8(4)
ld 9,16(4)
ld 10,24(4)
ld 11,32(4)
mulld 22,7,6
mulhdu 23,7,6
mulld 24,8,6
mulhdu 25,8,6
mulld 30,11,6
mulhdu 31,11,6
ld 4,8(5)
mulli 11,11,19
mulld 26,9,6
mulhdu 27,9,6
mulld 28,10,6
mulhdu 29,10,6
mulld 12,11,4
mulhdu 21,11,4
addc 22,22,12
adde 23,23,21
mulld 12,7,4
mulhdu 21,7,4
addc 24,24,12
adde 25,25,21
mulld 12,10,4
mulhdu 21,10,4
ld 6,16(5)
mulli 10,10,19
addc 30,30,12
adde 31,31,21
mulld 12,8,4
mulhdu 21,8,4
addc 26,26,12
adde 27,27,21
mulld 12,9,4
mulhdu 21,9,4
addc 28,28,12
adde 29,29,21
mulld 12,10,6
mulhdu 21,10,6
addc 22,22,12
adde 23,23,21
mulld 12,11,6
mulhdu 21,11,6
addc 24,24,12
adde 25,25,21
mulld 12,9,6
mulhdu 21,9,6
ld 4,24(5)
mulli 9,9,19
addc 30,30,12
adde 31,31,21
mulld 12,7,6
mulhdu 21,7,6
addc 26,26,12
adde 27,27,21
mulld 12,8,6
mulhdu 21,8,6
addc 28,28,12
adde 29,29,21
mulld 12,9,4
mulhdu 21,9,4
addc 22,22,12
adde 23,23,21
mulld 12,10,4
mulhdu 21,10,4
addc 24,24,12
adde 25,25,21
mulld 12,8,4
mulhdu 21,8,4
ld 6,32(5)
mulli 8,8,19
addc 30,30,12
adde 31,31,21
mulld 12,11,4
mulhdu 21,11,4
addc 26,26,12
adde 27,27,21
mulld 12,7,4
mulhdu 21,7,4
addc 28,28,12
adde 29,29,21
mulld 12,8,6
mulhdu 21,8,6
addc 22,22,12
adde 23,23,21
mulld 12,9,6
mulhdu 21,9,6
addc 24,24,12
adde 25,25,21
mulld 12,10,6
mulhdu 21,10,6
addc 26,26,12
adde 27,27,21
mulld 12,11,6
mulhdu 21,11,6
addc 28,28,12
adde 29,29,21
mulld 12,7,6
mulhdu 21,7,6
addc 30,30,12
adde 31,31,21
.Lfe51_reduce:
li 0,-1
srdi 0,0,13
srdi 12,26,51
and 9,26,0
insrdi 12,27,51,0
srdi 21,22,51
and 7,22,0
insrdi 21,23,51,0
addc 28,28,12
addze 29,29
addc 24,24,21
addze 25,25
srdi 12,28,51
and 10,28,0
insrdi 12,29,51,0
srdi 21,24,51
and 8,24,0
insrdi 21,25,51,0
addc 30,30,12
addze 31,31
add 9,9,21
srdi 12,30,51
and 11,30,0
insrdi 12,31,51,0
mulli 12,12,19
add 7,7,12
srdi 21,9,51
and 9,9,0
add 10,10,21
srdi 12,7,51
and 7,7,0
add 8,8,12
std 9,16(3)
std 10,24(3)
std 11,32(3)
std 7,0(3)
std 8,8(3)
ld 21,56(1)
ld 22,64(1)
ld 23,72(1)
ld 24,80(1)
ld 25,88(1)
ld 26,96(1)
ld 27,104(1)
ld 28,112(1)
ld 29,120(1)
ld 30,128(1)
ld 31,136(1)
addi 1,1,144
blr
.long 0
.byte 0,12,4,0,0x80,11,3,0
.long 0
.size x25519_fe51_mul,.-x25519_fe51_mul
.globl x25519_fe51_sqr
.type x25519_fe51_sqr,@function
.type x25519_fe51_sqr,@function
.align 5
x25519_fe51_sqr:
.localentry x25519_fe51_sqr,0
stdu 1,-144(1)
std 21,56(1)
std 22,64(1)
std 23,72(1)
std 24,80(1)
std 25,88(1)
std 26,96(1)
std 27,104(1)
std 28,112(1)
std 29,120(1)
std 30,128(1)
std 31,136(1)
ld 7,0(4)
ld 8,8(4)
ld 9,16(4)
ld 10,24(4)
ld 11,32(4)
add 6,7,7
mulli 21,11,19
mulld 22,7,7
mulhdu 23,7,7
mulld 24,8,6
mulhdu 25,8,6
mulld 26,9,6
mulhdu 27,9,6
mulld 28,10,6
mulhdu 29,10,6
mulld 30,11,6
mulhdu 31,11,6
add 6,8,8
mulld 12,11,21
mulhdu 11,11,21
addc 28,28,12
adde 29,29,11
mulli 5,10,19
mulld 12,8,8
mulhdu 11,8,8
addc 26,26,12
adde 27,27,11
mulld 12,9,6
mulhdu 11,9,6
addc 28,28,12
adde 29,29,11
mulld 12,10,6
mulhdu 11,10,6
addc 30,30,12
adde 31,31,11
mulld 12,21,6
mulhdu 11,21,6
add 6,10,10
addc 22,22,12
adde 23,23,11
mulld 12,10,5
mulhdu 10,10,5
addc 24,24,12
adde 25,25,10
mulld 12,6,21
mulhdu 10,6,21
add 6,9,9
addc 26,26,12
adde 27,27,10
mulld 12,9,9
mulhdu 10,9,9
addc 30,30,12
adde 31,31,10
mulld 12,5,6
mulhdu 10,5,6
addc 22,22,12
adde 23,23,10
mulld 12,21,6
mulhdu 10,21,6
addc 24,24,12
adde 25,25,10
b .Lfe51_reduce
.long 0
.byte 0,12,4,0,0x80,11,2,0
.long 0
.size x25519_fe51_sqr,.-x25519_fe51_sqr
.globl x25519_fe51_mul121666
.type x25519_fe51_mul121666,@function
.type x25519_fe51_mul121666,@function
.align 5
x25519_fe51_mul121666:
.localentry x25519_fe51_mul121666,0
stdu 1,-144(1)
std 21,56(1)
std 22,64(1)
std 23,72(1)
std 24,80(1)
std 25,88(1)
std 26,96(1)
std 27,104(1)
std 28,112(1)
std 29,120(1)
std 30,128(1)
std 31,136(1)
lis 6,1
ori 6,6,56130
ld 7,0(4)
ld 8,8(4)
ld 9,16(4)
ld 10,24(4)
ld 11,32(4)
mulld 22,7,6
mulhdu 23,7,6
mulld 24,8,6
mulhdu 25,8,6
mulld 26,9,6
mulhdu 27,9,6
mulld 28,10,6
mulhdu 29,10,6
mulld 30,11,6
mulhdu 31,11,6
b .Lfe51_reduce
.long 0
.byte 0,12,4,0,0x80,11,2,0
.long 0
.size x25519_fe51_mul121666,.-x25519_fe51_mul121666