From addd641f3a5e99ed90e3369914af5b356b725590 Mon Sep 17 00:00:00 2001 From: Andy Polyakov Date: Sun, 13 Jan 2008 22:01:30 +0000 Subject: [PATCH] Unify ppc assembler make rules. --- Configure | 20 ++++---- TABLE | 90 ++++++++++++++++++------------------ crypto/Makefile | 4 +- crypto/aes/Makefile | 3 ++ crypto/aes/asm/aes-ppc.pl | 11 ++--- crypto/bn/Makefile | 15 +----- crypto/bn/asm/ppc-mont.pl | 17 ++++--- crypto/bn/asm/ppc.pl | 11 ++--- crypto/perlasm/ppc-xlate.pl | 2 +- crypto/ppccpuid.pl | 7 ++- crypto/sha/Makefile | 16 ++----- crypto/sha/asm/sha1-ppc.pl | 11 ++--- crypto/sha/asm/sha512-ppc.pl | 17 ++++--- 13 files changed, 106 insertions(+), 118 deletions(-) diff --git a/Configure b/Configure index b370f44701..78bc7463b2 100755 --- a/Configure +++ b/Configure @@ -132,6 +132,8 @@ my $alpha_asm="alphacpuid.o:bn_asm.o alpha-mont.o::::::::::::void"; my $mips3_asm=":bn-mips3.o::::::::::::void"; my $s390x_asm=":bn-s390x.o::aes_cbc.o aes-s390x.o:::sha1-s390x.o sha256-s390x.o sha512-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:::::::void"; +my $ppc32_asm="ppccpuid.o:bn-ppc.o::aes_core.o aes_cbc.o aes-ppc.o:::sha1-ppc.o sha256-ppc.o::::::"; +my $ppc64_asm="ppccpuid.o:bn-ppc.o ppc-mont.o::aes_core.o aes_cbc.o aes-ppc.o:::sha1-ppc.o sha256-ppc.o sha512-ppc.o::::::"; my $no_asm=":::::::::::::void"; # As for $BSDthreads. Idea is to maintain "collective" set of flags, @@ -327,7 +329,7 @@ my %table=( # *-generic* is endian-neutral target, but ./config is free to # throw in -D[BL]_ENDIAN, whichever appropriate... "linux-generic32","gcc:-DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -"linux-ppc", "gcc:-DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:ppccpuid_linux32.o:linux_ppc32.o linux_ppc32-mont.o:::::sha1-ppc_linux32.o sha256-ppc_linux32.o:::::::void:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +"linux-ppc", "gcc:-DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc32_asm}:linux32:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", # It's believed that majority of ARM toolchains predefine appropriate -march. # If you compiler does not, do complement config command line with one! "linux-armv4", "gcc:-DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${armv4_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", @@ -337,7 +339,7 @@ my %table=( "linux-aout", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -march=i486 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}", #### "linux-generic64","gcc:-DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -"linux-ppc64", "gcc:-m64 -DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:ppccpuid_linux64.o:linux_ppc64.o linux_ppc64-mont.o:::::sha1-ppc_linux64.o sha256-ppc_linux64.o sha512-ppc_linux64.o:::::::void:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +"linux-ppc64", "gcc:-m64 -DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc64_asm}:linux64:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", "linux-ia64", "gcc:-DL_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", "linux-ia64-ecc","ecc:-DL_ENDIAN -DTERMIO -O2 -Wall -no_cpprt::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", "linux-ia64-icc","icc:-DL_ENDIAN -DTERMIO -O2 -Wall -no_cpprt::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", @@ -423,12 +425,12 @@ my %table=( #### IBM's AIX. "aix3-cc", "cc:-O -DB_ENDIAN -qmaxmem=16384::(unknown):AIX::BN_LLONG RC4_CHAR:::", -"aix-gcc", "gcc:-O -DB_ENDIAN::-D_THREAD_SAFE:AIX::BN_LLONG RC4_CHAR:ppccpuid_aix32.o:aix_ppc32.o aix_ppc32-mont.o:::::sha1-ppc_aix32.o sha256-ppc_aix32.o:::::::void:dlfcn:aix-shared:::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32", -"aix64-gcc","gcc:-maix64 -O -DB_ENDIAN::-D_THREAD_SAFE:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR:ppccpuid_aix64.o:aix_ppc64.o aix_ppc64-mont.o:::::sha1-ppc_aix64.o sha256-ppc_aix64.o sha512-ppc_aix64.o:::::::void:dlfcn:aix-shared::-maix64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X64", +"aix-gcc", "gcc:-O -DB_ENDIAN::-D_THREAD_SAFE:AIX::BN_LLONG RC4_CHAR:${ppc32_asm}:aix32:dlfcn:aix-shared:::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32", +"aix64-gcc","gcc:-maix64 -O -DB_ENDIAN::-D_THREAD_SAFE:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR:${ppc64_asm}:aix64:dlfcn:aix-shared::-maix64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X64", # Below targets assume AIX 5. Idea is to effectively disregard $OBJECT_MODE # at build time. $OBJECT_MODE is respected at ./config stage! -"aix-cc", "cc:-q32 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded:AIX::BN_LLONG RC4_CHAR:ppccpuid_aix32.o:aix_ppc32.o aix_ppc32-mont.o:::::sha1-ppc_aix32.o sha256-ppc_aix32.o:::::::void:dlfcn:aix-shared::-q32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32", -"aix64-cc", "cc:-q64 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR:ppccpuid_aix64.o:aix_ppc64.o aix_ppc64-mont.o:::::sha1-ppc_aix64.o sha256-ppc_aix64.o sha512-ppc_aix64.o:::::::void:dlfcn:aix-shared::-q64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 64", +"aix-cc", "cc:-q32 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded:AIX::BN_LLONG RC4_CHAR:${ppc32_asm}:aix32:dlfcn:aix-shared::-q32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32", +"aix64-cc", "cc:-q64 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR:${ppc64_asm}:aix64:dlfcn:aix-shared::-q64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 64", # # Cray T90 and similar (SDSC) @@ -527,11 +529,11 @@ my %table=( ##### MacOS X (a.k.a. Rhapsody or Darwin) setup "rhapsody-ppc-cc","cc:-O3 -DB_ENDIAN::(unknown):MACOSX_RHAPSODY::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}::", -"darwin-ppc-cc","cc:-arch ppc -O3 -DB_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:ppccpuid_osx32.o:osx_ppc32.o osx_ppc32-mont.o:::::sha1-ppc_osx32.o sha256-ppc_osx32.o:::::::void:dlfcn:darwin-shared:-fPIC -fno-common:-arch ppc -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", -"darwin64-ppc-cc","cc:-arch ppc64 -O3 -DB_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:ppccpuid_osx64.o:osx_ppc64.o osx_ppc64-mont.o:::::sha1-ppc_osx64.o sha256-ppc_osx64.o sha512-ppc_osx64.o:::::::void:dlfcn:darwin-shared:-fPIC -fno-common:-arch ppc64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", +"darwin-ppc-cc","cc:-arch ppc -O3 -DB_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${ppc32_asm}:osx32:dlfcn:darwin-shared:-fPIC -fno-common:-arch ppc -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", +"darwin64-ppc-cc","cc:-arch ppc64 -O3 -DB_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${ppc64_asm}:osx64:dlfcn:darwin-shared:-fPIC -fno-common:-arch ppc64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", "darwin-i386-cc","cc:-arch i386 -O3 -fomit-frame-pointer -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_INT RC4_CHUNK DES_UNROLL BF_PTR:${x86_macosx_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", "darwin64-x86_64-cc","cc:-arch x86_64 -O3 -fomit-frame-pointer -DL_ENDIAN -DMD32_REG_T=int -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-arch x86_64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", -"debug-darwin-ppc-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DB_ENDIAN -g -Wall -O::-D_REENTRANT:MACOSX::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::osx_ppc32.o osx_ppc32-mont.o:::::sha1-ppc_osx32.o:::::::void:dlfcn:darwin-shared:-fPIC:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", +"debug-darwin-ppc-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DB_ENDIAN -g -Wall -O::-D_REENTRANT:MACOSX::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${ppc32_asm}:osx32:dlfcn:darwin-shared:-fPIC:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", ##### A/UX "aux3-gcc","gcc:-O2 -DTERMIO::(unknown):AUX:-lbsd:RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:::", diff --git a/TABLE b/TABLE index 26b43d880d..c2a67bfb83 100644 --- a/TABLE +++ b/TABLE @@ -728,20 +728,20 @@ $thread_cflag = -qthreaded $sys_id = AIX $lflags = $bn_ops = BN_LLONG RC4_CHAR -$cpuid_obj = ppccpuid_aix32.o -$bn_obj = aix_ppc32.o aix_ppc32-mont.o +$cpuid_obj = ppccpuid.o +$bn_obj = bn-ppc.o $des_obj = -$aes_obj = +$aes_obj = aes_core.o aes_cbc.o aes-ppc.o $bf_obj = $md5_obj = -$sha1_obj = sha1-ppc_aix32.o sha256-ppc_aix32.o +$sha1_obj = sha1-ppc.o sha256-ppc.o $cast_obj = $rc4_obj = $rmd160_obj = $rc5_obj = $wp_obj = $cmll_obj = -$perlasm_scheme = void +$perlasm_scheme = aix32 $dso_scheme = dlfcn $shared_target= aix-shared $shared_cflag = @@ -758,20 +758,20 @@ $thread_cflag = -D_THREAD_SAFE $sys_id = AIX $lflags = $bn_ops = BN_LLONG RC4_CHAR -$cpuid_obj = ppccpuid_aix32.o -$bn_obj = aix_ppc32.o aix_ppc32-mont.o +$cpuid_obj = ppccpuid.o +$bn_obj = bn-ppc.o $des_obj = -$aes_obj = +$aes_obj = aes_core.o aes_cbc.o aes-ppc.o $bf_obj = $md5_obj = -$sha1_obj = sha1-ppc_aix32.o sha256-ppc_aix32.o +$sha1_obj = sha1-ppc.o sha256-ppc.o $cast_obj = $rc4_obj = $rmd160_obj = $rc5_obj = $wp_obj = $cmll_obj = -$perlasm_scheme = void +$perlasm_scheme = aix32 $dso_scheme = dlfcn $shared_target= aix-shared $shared_cflag = @@ -818,20 +818,20 @@ $thread_cflag = -qthreaded $sys_id = AIX $lflags = $bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHAR -$cpuid_obj = ppccpuid_aix64.o -$bn_obj = aix_ppc64.o aix_ppc64-mont.o +$cpuid_obj = ppccpuid.o +$bn_obj = bn-ppc.o ppc-mont.o $des_obj = -$aes_obj = +$aes_obj = aes_core.o aes_cbc.o aes-ppc.o $bf_obj = $md5_obj = -$sha1_obj = sha1-ppc_aix64.o sha256-ppc_aix64.o sha512-ppc_aix64.o +$sha1_obj = sha1-ppc.o sha256-ppc.o sha512-ppc.o $cast_obj = $rc4_obj = $rmd160_obj = $rc5_obj = $wp_obj = $cmll_obj = -$perlasm_scheme = void +$perlasm_scheme = aix64 $dso_scheme = dlfcn $shared_target= aix-shared $shared_cflag = @@ -848,20 +848,20 @@ $thread_cflag = -D_THREAD_SAFE $sys_id = AIX $lflags = $bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHAR -$cpuid_obj = ppccpuid_aix64.o -$bn_obj = aix_ppc64.o aix_ppc64-mont.o +$cpuid_obj = ppccpuid.o +$bn_obj = bn-ppc.o ppc-mont.o $des_obj = -$aes_obj = +$aes_obj = aes_core.o aes_cbc.o aes-ppc.o $bf_obj = $md5_obj = -$sha1_obj = sha1-ppc_aix64.o sha256-ppc_aix64.o sha512-ppc_aix64.o +$sha1_obj = sha1-ppc.o sha256-ppc.o sha512-ppc.o $cast_obj = $rc4_obj = $rmd160_obj = $rc5_obj = $wp_obj = $cmll_obj = -$perlasm_scheme = void +$perlasm_scheme = aix64 $dso_scheme = dlfcn $shared_target= aix-shared $shared_cflag = @@ -1118,20 +1118,20 @@ $thread_cflag = -D_REENTRANT $sys_id = MACOSX $lflags = -Wl,-search_paths_first% $bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR -$cpuid_obj = ppccpuid_osx32.o -$bn_obj = osx_ppc32.o osx_ppc32-mont.o +$cpuid_obj = ppccpuid.o +$bn_obj = bn-ppc.o $des_obj = -$aes_obj = +$aes_obj = aes_core.o aes_cbc.o aes-ppc.o $bf_obj = $md5_obj = -$sha1_obj = sha1-ppc_osx32.o sha256-ppc_osx32.o +$sha1_obj = sha1-ppc.o sha256-ppc.o $cast_obj = $rc4_obj = $rmd160_obj = $rc5_obj = $wp_obj = $cmll_obj = -$perlasm_scheme = void +$perlasm_scheme = osx32 $dso_scheme = dlfcn $shared_target= darwin-shared $shared_cflag = -fPIC -fno-common @@ -1148,20 +1148,20 @@ $thread_cflag = -D_REENTRANT $sys_id = MACOSX $lflags = -Wl,-search_paths_first% $bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR -$cpuid_obj = ppccpuid_osx64.o -$bn_obj = osx_ppc64.o osx_ppc64-mont.o +$cpuid_obj = ppccpuid.o +$bn_obj = bn-ppc.o ppc-mont.o $des_obj = -$aes_obj = +$aes_obj = aes_core.o aes_cbc.o aes-ppc.o $bf_obj = $md5_obj = -$sha1_obj = sha1-ppc_osx64.o sha256-ppc_osx64.o sha512-ppc_osx64.o +$sha1_obj = sha1-ppc.o sha256-ppc.o sha512-ppc.o $cast_obj = $rc4_obj = $rmd160_obj = $rc5_obj = $wp_obj = $cmll_obj = -$perlasm_scheme = void +$perlasm_scheme = osx64 $dso_scheme = dlfcn $shared_target= darwin-shared $shared_cflag = -fPIC -fno-common @@ -1478,20 +1478,20 @@ $thread_cflag = -D_REENTRANT $sys_id = MACOSX $lflags = $bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR -$cpuid_obj = -$bn_obj = osx_ppc32.o osx_ppc32-mont.o +$cpuid_obj = ppccpuid.o +$bn_obj = bn-ppc.o $des_obj = -$aes_obj = +$aes_obj = aes_core.o aes_cbc.o aes-ppc.o $bf_obj = $md5_obj = -$sha1_obj = sha1-ppc_osx32.o +$sha1_obj = sha1-ppc.o sha256-ppc.o $cast_obj = $rc4_obj = $rmd160_obj = $rc5_obj = $wp_obj = $cmll_obj = -$perlasm_scheme = void +$perlasm_scheme = osx32 $dso_scheme = dlfcn $shared_target= darwin-shared $shared_cflag = -fPIC @@ -3278,20 +3278,20 @@ $thread_cflag = -D_REENTRANT $sys_id = $lflags = -ldl $bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL -$cpuid_obj = ppccpuid_linux32.o -$bn_obj = linux_ppc32.o linux_ppc32-mont.o +$cpuid_obj = ppccpuid.o +$bn_obj = bn-ppc.o $des_obj = -$aes_obj = +$aes_obj = aes_core.o aes_cbc.o aes-ppc.o $bf_obj = $md5_obj = -$sha1_obj = sha1-ppc_linux32.o sha256-ppc_linux32.o +$sha1_obj = sha1-ppc.o sha256-ppc.o $cast_obj = $rc4_obj = $rmd160_obj = $rc5_obj = $wp_obj = $cmll_obj = -$perlasm_scheme = void +$perlasm_scheme = linux32 $dso_scheme = dlfcn $shared_target= linux-shared $shared_cflag = -fPIC @@ -3308,20 +3308,20 @@ $thread_cflag = -D_REENTRANT $sys_id = $lflags = -ldl $bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL -$cpuid_obj = ppccpuid_linux64.o -$bn_obj = linux_ppc64.o linux_ppc64-mont.o +$cpuid_obj = ppccpuid.o +$bn_obj = bn-ppc.o ppc-mont.o $des_obj = -$aes_obj = +$aes_obj = aes_core.o aes_cbc.o aes-ppc.o $bf_obj = $md5_obj = -$sha1_obj = sha1-ppc_linux64.o sha256-ppc_linux64.o sha512-ppc_linux64.o +$sha1_obj = sha1-ppc.o sha256-ppc.o sha512-ppc.o $cast_obj = $rc4_obj = $rmd160_obj = $rc5_obj = $wp_obj = $cmll_obj = -$perlasm_scheme = void +$perlasm_scheme = linux64 $dso_scheme = dlfcn $shared_target= linux-shared $shared_cflag = -fPIC diff --git a/crypto/Makefile b/crypto/Makefile index 26a142ff98..a8a81e9206 100644 --- a/crypto/Makefile +++ b/crypto/Makefile @@ -74,9 +74,7 @@ x86_64cpuid.s: x86_64cpuid.pl $(PERL) x86_64cpuid.pl $@ ia64cpuid.s: ia64cpuid.S $(CC) $(CFLAGS) -E ia64cpuid.S > $@ -ppccpuid_%.s: ppccpuid.pl; $(PERL) $< $@ -ppccpuid_aix32.s: ppccpuid.pl; $(PERL) ppccpuid.pl $@ -ppccpuid_aix64.s: ppccpuid.pl; $(PERL) ppccpuid.pl $@ +ppccpuid.s: ppccpuid.pl; $(PERL) $< $(PERLASM_SCHEME) $@ testapps: [ -z "$(THIS)" ] || ( if echo ${SDIRS} | fgrep ' des '; \ diff --git a/crypto/aes/Makefile b/crypto/aes/Makefile index 73aef4e395..632fdb55bd 100644 --- a/crypto/aes/Makefile +++ b/crypto/aes/Makefile @@ -59,6 +59,9 @@ aes-x86_64.s: asm/aes-x86_64.pl aes-sparcv9.s: asm/aes-sparcv9.pl $(PERL) asm/aes-sparcv9.pl $(CFLAGS) > $@ +aes-ppc.s: asm/aes-ppc.pl + $(PERL) asm/aes-ppc.pl $(PERLASM_SCHEME) $@ + # GNU make "catch all" aes-%.s: asm/aes-%.pl; $(PERL) $< $(CFLAGS) > $@ diff --git a/crypto/aes/asm/aes-ppc.pl b/crypto/aes/asm/aes-ppc.pl index 903075ec37..ce8cf0b367 100644 --- a/crypto/aes/asm/aes-ppc.pl +++ b/crypto/aes/asm/aes-ppc.pl @@ -16,27 +16,26 @@ # at 1/2 of ppc_AES_encrypt speed, while ppc_AES_decrypt_compact - # at 1/3 of ppc_AES_decrypt. -$output = shift; +$flavour = shift; -if ($output =~ /64\.s/) { +if ($flavour =~ /64/) { $SIZE_T =8; $STU ="stdu"; $POP ="ld"; $PUSH ="std"; -} elsif ($output =~ /32\.s/) { +} elsif ($flavour =~ /32/) { $SIZE_T =4; $STU ="stwu"; $POP ="lwz"; $PUSH ="stw"; -} else { die "nonsense $output"; } +} else { die "nonsense $flavour"; } $0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1; ( $xlate="${dir}ppc-xlate.pl" and -f $xlate ) or ( $xlate="${dir}../../perlasm/ppc-xlate.pl" and -f $xlate) or die "can't locate ppc-xlate.pl"; -( defined shift || open STDOUT,"| $^X $xlate $output" ) || - die "can't call $xlate: $!"; +open STDOUT,"| $^X $xlate $flavour ".shift || die "can't call $xlate: $!"; $FRAME=32*$SIZE_T; diff --git a/crypto/bn/Makefile b/crypto/bn/Makefile index f90923b378..d3799ba2a6 100644 --- a/crypto/bn/Makefile +++ b/crypto/bn/Makefile @@ -103,19 +103,8 @@ pa-risc2.o: asm/pa-risc2.s /usr/ccs/bin/as -o pa-risc2.o asm/pa-risc2.s # ppc - AIX, Linux, MacOS X... -linux_ppc32.s: asm/ppc.pl; $(PERL) $< $@ -linux_ppc64.s: asm/ppc.pl; $(PERL) $< $@ -aix_ppc32.s: asm/ppc.pl; $(PERL) asm/ppc.pl $@ -aix_ppc64.s: asm/ppc.pl; $(PERL) asm/ppc.pl $@ -osx_ppc32.s: asm/ppc.pl; $(PERL) $< $@ -osx_ppc64.s: asm/ppc.pl; $(PERL) $< $@ - -linux_ppc32-mont.s: asm/ppc-mont.pl; $(PERL) $< $@ -linux_ppc64-mont.s: asm/ppc-mont.pl; $(PERL) $< $@ -aix_ppc32-mont.s: asm/ppc-mont.pl; $(PERL) asm/ppc-mont.pl $@ -aix_ppc64-mont.s: asm/ppc-mont.pl; $(PERL) asm/ppc-mont.pl $@ -osx_ppc32-mont.s: asm/ppc-mont.pl; $(PERL) $< $@ -osx_ppc64-mont.s: asm/ppc-mont.pl; $(PERL) $< $@ +bn-ppc.s: asm/ppc.pl; $(PERL) asm/ppc.pl $(PERLASM_SCHEME) $@ +ppc-mont.s: asm/ppc-mont.pl;$(PERL) asm/ppc-mont.pl $(PERLASM_SCHEME) $@ alpha-mont.s: asm/alpha-mont.pl $(PERL) $< | $(CC) -E - | tee $@ > /dev/null diff --git a/crypto/bn/asm/ppc-mont.pl b/crypto/bn/asm/ppc-mont.pl index 6028edca22..7849eae959 100644 --- a/crypto/bn/asm/ppc-mont.pl +++ b/crypto/bn/asm/ppc-mont.pl @@ -24,9 +24,9 @@ # 2048-bit +18% # 4096-bit +4% -$output = shift; +$flavour = shift; -if ($output =~ /32\-mont\.s/) { +if ($flavour =~ /32/) { $BITS= 32; $BNSZ= $BITS/8; $SIZE_T=4; @@ -46,7 +46,7 @@ if ($output =~ /32\-mont\.s/) { $SHRI= "srwi"; # unsigned shift right by immediate $PUSH= $ST; $POP= $LD; -} elsif ($output =~ /64\-mont\.s/) { +} elsif ($flavour =~ /64/) { $BITS= 64; $BNSZ= $BITS/8; $SIZE_T=8; @@ -67,10 +67,14 @@ if ($output =~ /32\-mont\.s/) { $SHRI= "srdi"; # unsigned shift right by immediate $PUSH= $ST; $POP= $LD; -} else { die "nonsense $output"; } +} else { die "nonsense $flavour"; } -( defined shift || open STDOUT,"| $^X ../perlasm/ppc-xlate.pl $output" ) || - die "can't call ../perlasm/ppc-xlate.pl: $!"; +$0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1; +( $xlate="${dir}ppc-xlate.pl" and -f $xlate ) or +( $xlate="${dir}../../perlasm/ppc-xlate.pl" and -f $xlate) or +die "can't locate ppc-xlate.pl"; + +open STDOUT,"| $^X $xlate $flavour ".shift || die "can't call $xlate: $!"; $sp="r1"; $toc="r2"; @@ -270,7 +274,6 @@ Linner: addi $num,$num,2 ; restore $num subfc $j,$j,$j ; j=0 and "clear" XER[CA] addi $tp,$sp,$FRAME - addi $ap,$sp,$FRAME mtctr $num .align 4 diff --git a/crypto/bn/asm/ppc.pl b/crypto/bn/asm/ppc.pl index 0c0206b0d7..8da16f92d0 100644 --- a/crypto/bn/asm/ppc.pl +++ b/crypto/bn/asm/ppc.pl @@ -100,9 +100,9 @@ # me a note at schari@us.ibm.com # -$opf = shift; +$flavour = shift; -if ($opf =~ /32\.s/) { +if ($flavour =~ /32/) { $BITS= 32; $BNSZ= $BITS/8; $ISA= "\"ppc\""; @@ -125,7 +125,7 @@ if ($opf =~ /32\.s/) { $INSR= "insrwi"; # insert right $ROTL= "rotlwi"; # rotate left by immediate $TR= "tw"; # conditional trap -} elsif ($opf =~ /64\.s/) { +} elsif ($flavour =~ /64/) { $BITS= 64; $BNSZ= $BITS/8; $ISA= "\"ppc64\""; @@ -149,15 +149,14 @@ if ($opf =~ /32\.s/) { $INSR= "insrdi"; # insert right $ROTL= "rotldi"; # rotate left by immediate $TR= "td"; # conditional trap -} else { die "nonsense $opf"; } +} else { die "nonsense $flavour"; } $0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1; ( $xlate="${dir}ppc-xlate.pl" and -f $xlate ) or ( $xlate="${dir}../../perlasm/ppc-xlate.pl" and -f $xlate) or die "can't locate ppc-xlate.pl"; -( defined shift || open STDOUT,"| $^X $xlate $opf" ) || - die "can't call $xlate: $!"; +open STDOUT,"| $^X $xlate $flavour ".shift || die "can't call $xlate: $!"; $data=<. +my $flavour = shift; my $output = shift; open STDOUT,">$output" || die "can't open $output: $!"; -my $flavour = $output; my %GLOBALS; my $dotinlocallabels=($flavour=~/linux/)?1:0; diff --git a/crypto/ppccpuid.pl b/crypto/ppccpuid.pl index f1c856ff83..b136c4d3dc 100755 --- a/crypto/ppccpuid.pl +++ b/crypto/ppccpuid.pl @@ -1,16 +1,15 @@ #!/usr/bin/env perl -$output = shift; +$flavour = shift; $0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1; ( $xlate="${dir}ppc-xlate.pl" and -f $xlate ) or ( $xlate="${dir}perlasm/ppc-xlate.pl" and -f $xlate) or die "can't locate ppc-xlate.pl"; -( defined shift || open STDOUT,"| $^X $xlate $output" ) || - die "can't call $xlate: $!"; +open STDOUT,"| $^X $xlate $flavour ".shift || die "can't call $xlate: $!"; -if ($output=~/64/) { +if ($flavour=~/64/) { $CMPLI="cmpldi"; $SHRLI="srdi"; $SIGNX="extsw"; diff --git a/crypto/sha/Makefile b/crypto/sha/Makefile index fc69e5e664..809fde6002 100644 --- a/crypto/sha/Makefile +++ b/crypto/sha/Makefile @@ -67,18 +67,10 @@ sha1-sparcv9.s: asm/sha1-sparcv9.pl; $(PERL) asm/sha1-sparcv9.pl $@ $(CFLAGS) sha256-sparcv9.s:asm/sha512-sparcv9.pl; $(PERL) asm/sha512-sparcv9.pl $@ $(CFLAGS) sha512-sparcv9.s:asm/sha512-sparcv9.pl; $(PERL) asm/sha512-sparcv9.pl $@ $(CFLAGS) -# AIX make has to be explicitly told -sha1-ppc_aix32.s: asm/sha1-ppc.pl; $(PERL) asm/sha1-ppc.pl $@ -sha1-ppc_aix64.s: asm/sha1-ppc.pl; $(PERL) asm/sha1-ppc.pl $@ -sha256-ppc_aix32.s: asm/sha512-ppc.pl; $(PERL) asm/sha512-ppc.pl $@ -sha256-ppc_aix64.s: asm/sha512-ppc.pl; $(PERL) asm/sha512-ppc.pl $@ -sha512-ppc_aix32.s: asm/sha512-ppc.pl; $(PERL) asm/sha512-ppc.pl $@ -sha512-ppc_aix64.s: asm/sha512-ppc.pl; $(PERL) asm/sha512-ppc.pl $@ - -# non-AIX ppc targets are believed to be armed with GNU make -sha1-ppc_%.s: asm/sha1-ppc.pl; $(PERL) $< $@ -sha256-ppc_%.s: asm/sha512-ppc.pl; $(PERL) $< $@ -sha512-ppc_%.s: asm/sha512-ppc.pl; $(PERL) $< $@ +sha1-ppc.s: asm/sha1-ppc.pl; $(PERL) asm/sha1-ppc.pl $(PERLASM_SCHEME) $@ +sha256-ppc.s: asm/sha512-ppc.pl; $(PERL) asm/sha512-ppc.pl $(PERLASM_SCHEME) $@ +sha512-ppc.s: asm/sha512-ppc.pl; $(PERL) asm/sha512-ppc.pl $(PERLASM_SCHEME) $@ + # GNU make "catch all" sha1-%.s: asm/sha1-%.pl; $(PERL) $< $@ sha256-%.s: asm/sha512-%.pl; $(PERL) $< $@ diff --git a/crypto/sha/asm/sha1-ppc.pl b/crypto/sha/asm/sha1-ppc.pl index 2c84d59149..d2c0c2c464 100755 --- a/crypto/sha/asm/sha1-ppc.pl +++ b/crypto/sha/asm/sha1-ppc.pl @@ -20,29 +20,28 @@ # PPC970,gcc-4.0.0 +76% +59% # Power6,xlc-7 +68% +33% -$output = shift; +$flavour = shift; -if ($output =~ /64\.s/) { +if ($flavour =~ /64/) { $SIZE_T =8; $UCMP ="cmpld"; $STU ="stdu"; $POP ="ld"; $PUSH ="std"; -} elsif ($output =~ /32\.s/) { +} elsif ($flavour =~ /32/) { $SIZE_T =4; $UCMP ="cmplw"; $STU ="stwu"; $POP ="lwz"; $PUSH ="stw"; -} else { die "nonsense $output"; } +} else { die "nonsense $flavour"; } $0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1; ( $xlate="${dir}ppc-xlate.pl" and -f $xlate ) or ( $xlate="${dir}../../perlasm/ppc-xlate.pl" and -f $xlate) or die "can't locate ppc-xlate.pl"; -( defined shift || open STDOUT,"| $^X $xlate $output" ) || - die "can't call $xlate: $!"; +open STDOUT,"| $^X $xlate $flavour ".shift || die "can't call $xlate: $!"; $FRAME=24*$SIZE_T; diff --git a/crypto/sha/asm/sha512-ppc.pl b/crypto/sha/asm/sha512-ppc.pl index 0ec4b0bcc3..7da9cf96ce 100755 --- a/crypto/sha/asm/sha512-ppc.pl +++ b/crypto/sha/asm/sha512-ppc.pl @@ -35,26 +35,31 @@ # block signals prior calling this routine. For the record, in 32-bit # context R2 serves as TLS pointer, while in 64-bit context - R13. -$output=shift; +$flavour=shift; +$output =shift; -if ($output =~ /64/) { +if ($flavour =~ /64/) { $SIZE_T=8; $STU="stdu"; $UCMP="cmpld"; $SHL="sldi"; $POP="ld"; $PUSH="std"; -} elsif ($output =~ /32/) { +} elsif ($flavour =~ /32/) { $SIZE_T=4; $STU="stwu"; $UCMP="cmplw"; $SHL="slwi"; $POP="lwz"; $PUSH="stw"; -} else { die "nonsense $output"; } +} else { die "nonsense $flavour"; } -( defined shift || open STDOUT,"| $^X ../perlasm/ppc-xlate.pl $output" ) || - die "can't call ../perlasm/ppc-xlate.pl: $!"; +$0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1; +( $xlate="${dir}ppc-xlate.pl" and -f $xlate ) or +( $xlate="${dir}../../perlasm/ppc-xlate.pl" and -f $xlate) or +die "can't locate ppc-xlate.pl"; + +open STDOUT,"| $^X $xlate $flavour $output" || die "can't call $xlate: $!"; if ($output =~ /512/) { $func="sha512_block_data_order"; -- 2.34.1