Loading Configure +1 −1 Original line number Diff line number Diff line Loading @@ -133,7 +133,7 @@ my $sparcv9_asm="sparcv9cap.o sparccpuid.o:bn-sparcv9.o sparcv9-mont.o sparcv9a- my $sparcv8_asm=":sparcv8.o:des_enc-sparc.o fcrypt_b.o::::::::::::void"; my $alpha_asm="alphacpuid.o:bn_asm.o alpha-mont.o:::::sha1-alpha.o:::::::ghash-alpha.o:void"; my $mips3_asm=":bn-mips3.o:::::::::::::void"; my $s390x_asm="s390xcap.o s390xcpuid.o:bn-s390x.o s390x-mont.o::aes_ctr.o aes-s390x.o:::sha1-s390x.o sha256-s390x.o sha512-s390x.o::rc4-s390x.o::::::void"; my $s390x_asm="s390xcap.o s390xcpuid.o:bn-s390x.o s390x-mont.o::aes_ctr.o aes-s390x.o:::sha1-s390x.o sha256-s390x.o sha512-s390x.o::rc4-s390x.o:::::ghash-s390x.o:void"; my $armv4_asm=":bn_asm.o armv4-mont.o::aes_cbc.o aes-armv4.o:::sha1-armv4-large.o sha256-armv4.o sha512-armv4.o:::::::ghash-armv4.o:void"; my $parisc11_asm="pariscid.o:bn_asm.o parisc-mont.o::aes_core.o aes_cbc.o aes-parisc.o:::sha1-parisc.o sha256-parisc.o sha512-parisc.o::rc4-parisc.o:::::ghash-parisc.o:32"; my $parisc20_asm="pariscid.o:pa-risc2W.o parisc-mont.o::aes_core.o aes_cbc.o aes-parisc.o:::sha1-parisc.o sha256-parisc.o sha512-parisc.o::rc4-parisc.o:::::ghash-parisc.o:64"; Loading TABLE +2 −2 Original line number Diff line number Diff line Loading @@ -1506,7 +1506,7 @@ $multilib = *** debug-ben-debug $cc = gcc $cflags = -Wall -pedantic -DPEDANTIC -Wno-long-long -Wsign-compare -Wmissing-prototypes -Wshadow -Wformat -Werror -DCRYPTO_MDEBUG_ALL -DCRYPTO_MDEBUG_ABORT -DREF_CHECK -DOPENSSL_NO_DEPRECATED -DBN_DEBUG -DCONF_DEBUG -DBN_CTX_DEBUG -DDEBUG_SAFESTACK -g3 -O2 -pipe $cflags = -Wall -pedantic -DPEDANTIC -Wno-long-long -Wsign-compare -Wmissing-prototypes -Wshadow -Wformat -Werror -DCRYPTO_MDEBUG_ALL -DCRYPTO_MDEBUG_ABORT -DREF_CHECK -DOPENSSL_NO_DEPRECATED -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -g3 -O2 -pipe $unistd = $thread_cflag = (unknown) $sys_id = Loading Loading @@ -3893,7 +3893,7 @@ $rmd160_obj = $rc5_obj = $wp_obj = $cmll_obj = $modes_obj = $modes_obj = ghash-s390x.o $perlasm_scheme = void $dso_scheme = dlfcn $shared_target= linux-shared Loading crypto/modes/asm/ghash-s390x.pl 0 → 100644 +171 −0 Original line number Diff line number Diff line #!/usr/bin/env perl # ==================================================================== # Written by Andy Polyakov <appro@openssl.org> for the OpenSSL # project. The module is, however, dual licensed under OpenSSL and # CRYPTOGAMS licenses depending on where you obtain it. For further # details see http://www.openssl.org/~appro/cryptogams/. # ==================================================================== # September 2010. while (($output=shift) && ($output!~/^\w[\w\-]*\.\w+$/)) {} open STDOUT,">$output"; $Zhi="%r0"; $Zlo="%r1"; $Xi="%r2"; # argument block $Htbl="%r3"; $inp="%r4"; $len="%r5"; $rem0="%r6"; # variables $rem1="%r7"; $nlo="%r8"; $nhi="%r9"; $xi="%r10"; $cnt="%r11"; $tmp="%r12"; $x78="%r13"; $rem_4bit="%r14"; $sp="%r15"; $code.=<<___; .text .globl gcm_gmult_4bit .align 32 gcm_gmult_4bit: stmg %r6,%r14,48($sp) aghi $Xi,-1 lghi $len,1 lghi $x78,`0xf<<3` larl $rem_4bit,rem_4bit lg $Zlo,8+1($Xi) # Xi j .Lgmult_shortcut .type gcm_gmult_4bit,\@function .size gcm_gmult_4bit,(.-gcm_gmult_4bit) .globl gcm_ghash_4bit .align 32 gcm_ghash_4bit: stmg %r6,%r14,48($sp) aghi $Xi,-1 srlg $len,$len,4 lghi $x78,`0xf<<3` larl $rem_4bit,rem_4bit lg $Zlo,8+1($Xi) # Xi lg $Zhi,0+1($Xi) .Louter: xg $Zlo,8($inp) # Xi ^= inp xg $Zhi,0($inp) stg $Zlo,8+1($Xi) stg $Zhi,0+1($Xi) .Lgmult_shortcut: lghi $tmp,0xff srlg $xi,$Zlo,8 # extract first two bytes lgr $nhi,$Zlo ngr $xi,$tmp ngr $nhi,$tmp sllg $nlo,$nhi,4 nill $nhi,0xf0 nill $nlo,0xf0 lghi $cnt,14 lg $Zlo,8($nlo,$Htbl) lg $Zhi,0($nlo,$Htbl) sllg $nlo,$xi,4 nill $xi,0xf0 sllg $rem0,$Zlo,3 nill $nlo,0xf0 srlg $Zlo,$Zlo,4 ngr $rem0,$x78 sllg $tmp,$Zhi,60 xg $Zlo,8($nhi,$Htbl) srlg $Zhi,$Zhi,4 xgr $Zlo,$tmp xg $Zhi,0($nhi,$Htbl) lgr $nhi,$xi sllg $rem1,$Zlo,3 .Lghash_inner: srlg $Zlo,$Zlo,4 ngr $rem1,$x78 xg $Zlo,8($nlo,$Htbl) sllg $tmp,$Zhi,60 xg $Zhi,0($rem0,$rem_4bit) xgr $Zlo,$tmp srlg $Zhi,$Zhi,4 llgc $xi,0($cnt,$Xi) sllg $rem0,$Zlo,3 xg $Zhi,0($nlo,$Htbl) sllg $nlo,$xi,4 nill $xi,0xf0 nill $nlo,0xf0 srlg $Zlo,$Zlo,4 ngr $rem0,$x78 xg $Zlo,8($nhi,$Htbl) sllg $tmp,$Zhi,60 xg $Zhi,0($rem1,$rem_4bit) xgr $Zlo,$tmp srlg $Zhi,$Zhi,4 sllg $rem1,$Zlo,3 xg $Zhi,0($nhi,$Htbl) lgr $nhi,$xi brct $cnt,.Lghash_inner srlg $Zlo,$Zlo,4 ngr $rem1,$x78 xg $Zlo,8($nlo,$Htbl) sllg $tmp,$Zhi,60 xg $Zhi,0($rem0,$rem_4bit) xgr $Zlo,$tmp srlg $Zhi,$Zhi,4 sllg $rem0,$Zlo,3 xg $Zhi,0($nlo,$Htbl) srlg $Zlo,$Zlo,4 ngr $rem0,$x78 xg $Zhi,0($rem1,$rem_4bit) sllg $tmp,$Zhi,60 xg $Zlo,8($nhi,$Htbl) srlg $Zhi,$Zhi,4 xgr $Zlo,$tmp xg $Zhi,0($nhi,$Htbl) la $inp,16($inp) xg $Zhi,0($rem0,$rem_4bit) brctg $len,.Louter stg $Zlo,8+1($Xi) stg $Zhi,0+1($Xi) lmg %r6,%r14,48($sp) br %r14 .type gcm_ghash_4bit,\@function .size gcm_ghash_4bit,(.-gcm_ghash_4bit) .align 64 rem_4bit: .long `0x0000<<16`,0,`0x1C20<<16`,0,`0x3840<<16`,0,`0x2460<<16`,0 .long `0x7080<<16`,0,`0x6CA0<<16`,0,`0x48C0<<16`,0,`0x54E0<<16`,0 .long `0xE100<<16`,0,`0xFD20<<16`,0,`0xD940<<16`,0,`0xC560<<16`,0 .long `0x9180<<16`,0,`0x8DA0<<16`,0,`0xA9C0<<16`,0,`0xB5E0<<16`,0 .type rem_4bit,\@object .size rem_4bit,(.-rem_4bit) .string "GHASH for s390x, CRYPTOGAMS by <appro\@openssl.org>" ___ $code =~ s/\`([^\`]*)\`/eval $1/gem; print $code; close STDOUT; Loading
Configure +1 −1 Original line number Diff line number Diff line Loading @@ -133,7 +133,7 @@ my $sparcv9_asm="sparcv9cap.o sparccpuid.o:bn-sparcv9.o sparcv9-mont.o sparcv9a- my $sparcv8_asm=":sparcv8.o:des_enc-sparc.o fcrypt_b.o::::::::::::void"; my $alpha_asm="alphacpuid.o:bn_asm.o alpha-mont.o:::::sha1-alpha.o:::::::ghash-alpha.o:void"; my $mips3_asm=":bn-mips3.o:::::::::::::void"; my $s390x_asm="s390xcap.o s390xcpuid.o:bn-s390x.o s390x-mont.o::aes_ctr.o aes-s390x.o:::sha1-s390x.o sha256-s390x.o sha512-s390x.o::rc4-s390x.o::::::void"; my $s390x_asm="s390xcap.o s390xcpuid.o:bn-s390x.o s390x-mont.o::aes_ctr.o aes-s390x.o:::sha1-s390x.o sha256-s390x.o sha512-s390x.o::rc4-s390x.o:::::ghash-s390x.o:void"; my $armv4_asm=":bn_asm.o armv4-mont.o::aes_cbc.o aes-armv4.o:::sha1-armv4-large.o sha256-armv4.o sha512-armv4.o:::::::ghash-armv4.o:void"; my $parisc11_asm="pariscid.o:bn_asm.o parisc-mont.o::aes_core.o aes_cbc.o aes-parisc.o:::sha1-parisc.o sha256-parisc.o sha512-parisc.o::rc4-parisc.o:::::ghash-parisc.o:32"; my $parisc20_asm="pariscid.o:pa-risc2W.o parisc-mont.o::aes_core.o aes_cbc.o aes-parisc.o:::sha1-parisc.o sha256-parisc.o sha512-parisc.o::rc4-parisc.o:::::ghash-parisc.o:64"; Loading
TABLE +2 −2 Original line number Diff line number Diff line Loading @@ -1506,7 +1506,7 @@ $multilib = *** debug-ben-debug $cc = gcc $cflags = -Wall -pedantic -DPEDANTIC -Wno-long-long -Wsign-compare -Wmissing-prototypes -Wshadow -Wformat -Werror -DCRYPTO_MDEBUG_ALL -DCRYPTO_MDEBUG_ABORT -DREF_CHECK -DOPENSSL_NO_DEPRECATED -DBN_DEBUG -DCONF_DEBUG -DBN_CTX_DEBUG -DDEBUG_SAFESTACK -g3 -O2 -pipe $cflags = -Wall -pedantic -DPEDANTIC -Wno-long-long -Wsign-compare -Wmissing-prototypes -Wshadow -Wformat -Werror -DCRYPTO_MDEBUG_ALL -DCRYPTO_MDEBUG_ABORT -DREF_CHECK -DOPENSSL_NO_DEPRECATED -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -g3 -O2 -pipe $unistd = $thread_cflag = (unknown) $sys_id = Loading Loading @@ -3893,7 +3893,7 @@ $rmd160_obj = $rc5_obj = $wp_obj = $cmll_obj = $modes_obj = $modes_obj = ghash-s390x.o $perlasm_scheme = void $dso_scheme = dlfcn $shared_target= linux-shared Loading
crypto/modes/asm/ghash-s390x.pl 0 → 100644 +171 −0 Original line number Diff line number Diff line #!/usr/bin/env perl # ==================================================================== # Written by Andy Polyakov <appro@openssl.org> for the OpenSSL # project. The module is, however, dual licensed under OpenSSL and # CRYPTOGAMS licenses depending on where you obtain it. For further # details see http://www.openssl.org/~appro/cryptogams/. # ==================================================================== # September 2010. while (($output=shift) && ($output!~/^\w[\w\-]*\.\w+$/)) {} open STDOUT,">$output"; $Zhi="%r0"; $Zlo="%r1"; $Xi="%r2"; # argument block $Htbl="%r3"; $inp="%r4"; $len="%r5"; $rem0="%r6"; # variables $rem1="%r7"; $nlo="%r8"; $nhi="%r9"; $xi="%r10"; $cnt="%r11"; $tmp="%r12"; $x78="%r13"; $rem_4bit="%r14"; $sp="%r15"; $code.=<<___; .text .globl gcm_gmult_4bit .align 32 gcm_gmult_4bit: stmg %r6,%r14,48($sp) aghi $Xi,-1 lghi $len,1 lghi $x78,`0xf<<3` larl $rem_4bit,rem_4bit lg $Zlo,8+1($Xi) # Xi j .Lgmult_shortcut .type gcm_gmult_4bit,\@function .size gcm_gmult_4bit,(.-gcm_gmult_4bit) .globl gcm_ghash_4bit .align 32 gcm_ghash_4bit: stmg %r6,%r14,48($sp) aghi $Xi,-1 srlg $len,$len,4 lghi $x78,`0xf<<3` larl $rem_4bit,rem_4bit lg $Zlo,8+1($Xi) # Xi lg $Zhi,0+1($Xi) .Louter: xg $Zlo,8($inp) # Xi ^= inp xg $Zhi,0($inp) stg $Zlo,8+1($Xi) stg $Zhi,0+1($Xi) .Lgmult_shortcut: lghi $tmp,0xff srlg $xi,$Zlo,8 # extract first two bytes lgr $nhi,$Zlo ngr $xi,$tmp ngr $nhi,$tmp sllg $nlo,$nhi,4 nill $nhi,0xf0 nill $nlo,0xf0 lghi $cnt,14 lg $Zlo,8($nlo,$Htbl) lg $Zhi,0($nlo,$Htbl) sllg $nlo,$xi,4 nill $xi,0xf0 sllg $rem0,$Zlo,3 nill $nlo,0xf0 srlg $Zlo,$Zlo,4 ngr $rem0,$x78 sllg $tmp,$Zhi,60 xg $Zlo,8($nhi,$Htbl) srlg $Zhi,$Zhi,4 xgr $Zlo,$tmp xg $Zhi,0($nhi,$Htbl) lgr $nhi,$xi sllg $rem1,$Zlo,3 .Lghash_inner: srlg $Zlo,$Zlo,4 ngr $rem1,$x78 xg $Zlo,8($nlo,$Htbl) sllg $tmp,$Zhi,60 xg $Zhi,0($rem0,$rem_4bit) xgr $Zlo,$tmp srlg $Zhi,$Zhi,4 llgc $xi,0($cnt,$Xi) sllg $rem0,$Zlo,3 xg $Zhi,0($nlo,$Htbl) sllg $nlo,$xi,4 nill $xi,0xf0 nill $nlo,0xf0 srlg $Zlo,$Zlo,4 ngr $rem0,$x78 xg $Zlo,8($nhi,$Htbl) sllg $tmp,$Zhi,60 xg $Zhi,0($rem1,$rem_4bit) xgr $Zlo,$tmp srlg $Zhi,$Zhi,4 sllg $rem1,$Zlo,3 xg $Zhi,0($nhi,$Htbl) lgr $nhi,$xi brct $cnt,.Lghash_inner srlg $Zlo,$Zlo,4 ngr $rem1,$x78 xg $Zlo,8($nlo,$Htbl) sllg $tmp,$Zhi,60 xg $Zhi,0($rem0,$rem_4bit) xgr $Zlo,$tmp srlg $Zhi,$Zhi,4 sllg $rem0,$Zlo,3 xg $Zhi,0($nlo,$Htbl) srlg $Zlo,$Zlo,4 ngr $rem0,$x78 xg $Zhi,0($rem1,$rem_4bit) sllg $tmp,$Zhi,60 xg $Zlo,8($nhi,$Htbl) srlg $Zhi,$Zhi,4 xgr $Zlo,$tmp xg $Zhi,0($nhi,$Htbl) la $inp,16($inp) xg $Zhi,0($rem0,$rem_4bit) brctg $len,.Louter stg $Zlo,8+1($Xi) stg $Zhi,0+1($Xi) lmg %r6,%r14,48($sp) br %r14 .type gcm_ghash_4bit,\@function .size gcm_ghash_4bit,(.-gcm_ghash_4bit) .align 64 rem_4bit: .long `0x0000<<16`,0,`0x1C20<<16`,0,`0x3840<<16`,0,`0x2460<<16`,0 .long `0x7080<<16`,0,`0x6CA0<<16`,0,`0x48C0<<16`,0,`0x54E0<<16`,0 .long `0xE100<<16`,0,`0xFD20<<16`,0,`0xD940<<16`,0,`0xC560<<16`,0 .long `0x9180<<16`,0,`0x8DA0<<16`,0,`0xA9C0<<16`,0,`0xB5E0<<16`,0 .type rem_4bit,\@object .size rem_4bit,(.-rem_4bit) .string "GHASH for s390x, CRYPTOGAMS by <appro\@openssl.org>" ___ $code =~ s/\`([^\`]*)\`/eval $1/gem; print $code; close STDOUT;