Unify sparcv9 assembler naming and build rules among 32- and 64-bit builds.
Engage run-time switch between bn_mul_mont_fpu and bn_mul_mont_int.
This commit is contained in:
parent
4c5e19b6c6
commit
a00e414faf
20
Configure
20
Configure
@ -120,7 +120,7 @@ my $x86_out_asm="x86cpuid-out.o:bn86-out.o co86-out.o mo86-out.o:dx86-out.o yx86
|
||||
|
||||
my $x86_64_asm="x86_64cpuid.o:x86_64-gcc.o x86_64-mont.o::aes-x86_64.o::md5-x86_64.o:sha256-x86_64.o sha512-x86_64.o::rc4-x86_64.o:::wp-x86_64.o";
|
||||
my $ia64_asm="ia64cpuid.o:bn-ia64.o::aes_core.o aes_cbc.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o::rc4-ia64.o:::";
|
||||
|
||||
my $sparcv9_asm="sparcv9cap.o sparccpuid.o:bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o:des_enc-sparc.o fcrypt_b.o:aes_core.o aes_cbc.o aes-sparcv9.o::md5-sparcv9.o::::::";
|
||||
my $no_asm=":::::::::::";
|
||||
|
||||
# As for $BSDthreads. Idea is to maintain "collective" set of flags,
|
||||
@ -201,11 +201,11 @@ my %table=(
|
||||
"solaris-sparcv7-gcc","gcc:-O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"solaris-sparcv8-gcc","gcc:-mv8 -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8.o:des_enc-sparc.o fcrypt_b.o::::::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
# -m32 should be safe to add as long as driver recognizes -mcpu=ultrasparc
|
||||
"solaris-sparcv9-gcc","gcc:-m32 -mcpu=ultrasparc -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8plus.o sparcv9a-mont.o:des_enc-sparc.o fcrypt_b.o:aes_core.o aes_cbc.o aes-sparcv9.o::md5-sparcv8plus.o:::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"solaris64-sparcv9-gcc","gcc:-m64 -mcpu=ultrasparc -O3 -Wall -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR::bn_asm.o sparcv9a-mont.o:des_enc-sparc.o fcrypt_b.o:aes_core.o aes_cbc.o aes-sparcv9.o::md5-sparcv9.o:::::::dlfcn:solaris-shared:-fPIC:-m64 -shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"solaris-sparcv9-gcc","gcc:-m32 -mcpu=ultrasparc -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"solaris64-sparcv9-gcc","gcc:-m64 -mcpu=ultrasparc -O3 -Wall -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-fPIC:-m64 -shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
####
|
||||
"debug-solaris-sparcv8-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -O -g -mv8 -Wall -DB_ENDIAN::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8.o:::::::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"debug-solaris-sparcv9-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -DPEDANTIC -O -g -mcpu=ultrasparc -pedantic -ansi -Wall -Wshadow -Wno-long-long -D__EXTENSIONS__ -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8plus.o:des_enc-sparc.o fcrypt_b.o:::md5-sparcv8plus.o:::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"debug-solaris-sparcv9-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -DPEDANTIC -O -g -mcpu=ultrasparc -pedantic -ansi -Wall -Wshadow -Wno-long-long -D__EXTENSIONS__ -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
|
||||
#### SPARC Solaris with Sun C setups
|
||||
# SC4.0 doesn't pass 'make test', upgrade to SC5.0 or SC4.2.
|
||||
@ -213,11 +213,11 @@ my %table=(
|
||||
# SC5.0 note: Compiler common patch 107357-01 or later is required!
|
||||
"solaris-sparcv7-cc","cc:-xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"solaris-sparcv8-cc","cc:-xarch=v8 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR::sparcv8.o:des_enc-sparc.o fcrypt_b.o::::::::::dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"solaris-sparcv9-cc","cc:-xtarget=ultra -xarch=v8plusa -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR::sparcv8plus.o sparcv9a-mont.o:des_enc-sparc.o fcrypt_b.o:aes_core.o aes_cbc.o aes-sparcv9.o::md5-sparcv8plus.o:::::::dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"solaris64-sparcv9-cc","cc:-xtarget=ultra -xarch=v9a -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR::bn_asm.o sparcv9a-mont.o:des_enc-sparc.o fcrypt_b.o:aes_core.o aes_cbc.o aes-sparcv9.o::md5-sparcv9.o:::::::dlfcn:solaris-shared:-KPIC:-xarch=v9 -G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):/usr/ccs/bin/ar rs",
|
||||
"solaris-sparcv9-cc","cc:-xtarget=ultra -xarch=v8plusa -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"solaris64-sparcv9-cc","cc:-xtarget=ultra -xarch=v9a -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-xarch=v9 -G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):/usr/ccs/bin/ar rs",
|
||||
####
|
||||
"debug-solaris-sparcv8-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -xarch=v8 -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR::sparcv8.o:::::::::::dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"debug-solaris-sparcv9-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -xtarget=ultra -xarch=v8plus -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR::sparcv8plus.o::::md5-sparcv8plus.o:::::::dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"debug-solaris-sparcv9-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -xtarget=ultra -xarch=v8plus -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
|
||||
#### SunOS configs, assuming sparc for the gcc one.
|
||||
#"sunos-cc", "cc:-O4 -DNOPROTO -DNOCONST::(unknown):SUNOS::DES_UNROLL:${no_asm}::",
|
||||
@ -333,9 +333,9 @@ my %table=(
|
||||
"linux-sparcv8","gcc:-mv8 -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8.o:des_enc-sparc.o fcrypt_b.o::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
# it's a real mess with -mcpu=ultrasparc option under Linux, but
|
||||
# -Wa,-Av8plus should do the trick no matter what.
|
||||
"linux-sparcv9","gcc:-m32 -mcpu=ultrasparc -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -Wa,-Av8plusa -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8plus.o sparcv9a-mont.o:des_enc-sparc.o fcrypt_b.o:aes_core.o aes_cbc.o aes-sparcv9.o::md5-sparcv8plus.o:::::::dlfcn:linux-shared:-fPIC:-m32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"linux-sparcv9","gcc:-m32 -mcpu=ultrasparc -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -Wa,-Av8plusa -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:linux-shared:-fPIC:-m32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
# GCC 3.1 is a requirement
|
||||
"linux64-sparcv9","gcc:-m64 -mcpu=ultrasparc -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT:ULTRASPARC:-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::bn_asm.o sparcv9a-mont.o:des_enc-sparc.o fcrypt_b.o:aes_core.o aes_cbc.o aes-sparcv9.o::md5-sparcv9.o:::::::dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"linux64-sparcv9","gcc:-m64 -mcpu=ultrasparc -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT:ULTRASPARC:-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
#### Alpha Linux with GNU C and Compaq C setups
|
||||
# Special notes:
|
||||
# - linux-alpha+bwx-gcc is ment to be used from ./config only. If you
|
||||
@ -365,7 +365,7 @@ my %table=(
|
||||
# -DMD32_REG_T=int doesn't actually belong in sparc64 target, it
|
||||
# simply *happens* to work around a compiler bug in gcc 3.3.3,
|
||||
# triggered by RIPEMD160 code.
|
||||
"BSD-sparc64", "gcc:-DB_ENDIAN -DTERMIOS -O3 -DMD32_REG_T=int -Wall::${BSDthreads}:::BN_LLONG RC2_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC2 BF_PTR::bn_asm.o sparcv9a-mont.o:des_enc-sparc.o fcrypt_b.o:aes_core.o aes_cbc.o aes-sparcv9.o::md5-sparcv9.o:::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"BSD-sparc64", "gcc:-DB_ENDIAN -DTERMIOS -O3 -DMD32_REG_T=int -Wall::${BSDthreads}:::BN_LLONG RC2_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC2 BF_PTR:${sparcv9_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"BSD-ia64", "gcc:-DL_ENDIAN -DTERMIOS -O3 -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_INT:${ia64_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"BSD-x86_64", "gcc:-DL_ENDIAN -DTERMIOS -O3 -DMD32_REG_T=int -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
|
||||
|
52
TABLE
52
TABLE
@ -148,8 +148,8 @@ $thread_cflag = -pthread -D_THREAD_SAFE -D_REENTRANT
|
||||
$sys_id =
|
||||
$lflags =
|
||||
$bn_ops = BN_LLONG RC2_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC2 BF_PTR
|
||||
$cpuid_obj =
|
||||
$bn_obj = bn_asm.o sparcv9a-mont.o
|
||||
$cpuid_obj = sparcv9cap.o sparccpuid.o
|
||||
$bn_obj = bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o
|
||||
$des_obj = des_enc-sparc.o fcrypt_b.o
|
||||
$aes_obj = aes_core.o aes_cbc.o aes-sparcv9.o
|
||||
$bf_obj =
|
||||
@ -1660,12 +1660,12 @@ $thread_cflag = -D_REENTRANT
|
||||
$sys_id = ULTRASPARC
|
||||
$lflags = -lsocket -lnsl -ldl
|
||||
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR
|
||||
$cpuid_obj =
|
||||
$bn_obj = sparcv8plus.o
|
||||
$des_obj =
|
||||
$aes_obj =
|
||||
$cpuid_obj = sparcv9cap.o sparccpuid.o
|
||||
$bn_obj = bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o
|
||||
$des_obj = des_enc-sparc.o fcrypt_b.o
|
||||
$aes_obj = aes_core.o aes_cbc.o aes-sparcv9.o
|
||||
$bf_obj =
|
||||
$md5_obj = md5-sparcv8plus.o
|
||||
$md5_obj = md5-sparcv9.o
|
||||
$sha1_obj =
|
||||
$cast_obj =
|
||||
$rc4_obj =
|
||||
@ -1688,12 +1688,12 @@ $thread_cflag = -D_REENTRANT
|
||||
$sys_id = ULTRASPARC
|
||||
$lflags = -lsocket -lnsl -ldl
|
||||
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR
|
||||
$cpuid_obj =
|
||||
$bn_obj = sparcv8plus.o
|
||||
$cpuid_obj = sparcv9cap.o sparccpuid.o
|
||||
$bn_obj = bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o
|
||||
$des_obj = des_enc-sparc.o fcrypt_b.o
|
||||
$aes_obj =
|
||||
$aes_obj = aes_core.o aes_cbc.o aes-sparcv9.o
|
||||
$bf_obj =
|
||||
$md5_obj = md5-sparcv8plus.o
|
||||
$md5_obj = md5-sparcv9.o
|
||||
$sha1_obj =
|
||||
$cast_obj =
|
||||
$rc4_obj =
|
||||
@ -2976,12 +2976,12 @@ $thread_cflag = -D_REENTRANT
|
||||
$sys_id = ULTRASPARC
|
||||
$lflags = -ldl
|
||||
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR
|
||||
$cpuid_obj =
|
||||
$bn_obj = sparcv8plus.o sparcv9a-mont.o
|
||||
$cpuid_obj = sparcv9cap.o sparccpuid.o
|
||||
$bn_obj = bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o
|
||||
$des_obj = des_enc-sparc.o fcrypt_b.o
|
||||
$aes_obj = aes_core.o aes_cbc.o aes-sparcv9.o
|
||||
$bf_obj =
|
||||
$md5_obj = md5-sparcv8plus.o
|
||||
$md5_obj = md5-sparcv9.o
|
||||
$sha1_obj =
|
||||
$cast_obj =
|
||||
$rc4_obj =
|
||||
@ -3032,8 +3032,8 @@ $thread_cflag = -D_REENTRANT
|
||||
$sys_id = ULTRASPARC
|
||||
$lflags = -ldl
|
||||
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR
|
||||
$cpuid_obj =
|
||||
$bn_obj = bn_asm.o sparcv9a-mont.o
|
||||
$cpuid_obj = sparcv9cap.o sparccpuid.o
|
||||
$bn_obj = bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o
|
||||
$des_obj = des_enc-sparc.o fcrypt_b.o
|
||||
$aes_obj = aes_core.o aes_cbc.o aes-sparcv9.o
|
||||
$bf_obj =
|
||||
@ -3648,12 +3648,12 @@ $thread_cflag = -D_REENTRANT
|
||||
$sys_id = ULTRASPARC
|
||||
$lflags = -lsocket -lnsl -ldl
|
||||
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR
|
||||
$cpuid_obj =
|
||||
$bn_obj = sparcv8plus.o sparcv9a-mont.o
|
||||
$cpuid_obj = sparcv9cap.o sparccpuid.o
|
||||
$bn_obj = bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o
|
||||
$des_obj = des_enc-sparc.o fcrypt_b.o
|
||||
$aes_obj = aes_core.o aes_cbc.o aes-sparcv9.o
|
||||
$bf_obj =
|
||||
$md5_obj = md5-sparcv8plus.o
|
||||
$md5_obj = md5-sparcv9.o
|
||||
$sha1_obj =
|
||||
$cast_obj =
|
||||
$rc4_obj =
|
||||
@ -3676,12 +3676,12 @@ $thread_cflag = -D_REENTRANT
|
||||
$sys_id = ULTRASPARC
|
||||
$lflags = -lsocket -lnsl -ldl
|
||||
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR
|
||||
$cpuid_obj =
|
||||
$bn_obj = sparcv8plus.o sparcv9a-mont.o
|
||||
$cpuid_obj = sparcv9cap.o sparccpuid.o
|
||||
$bn_obj = bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o
|
||||
$des_obj = des_enc-sparc.o fcrypt_b.o
|
||||
$aes_obj = aes_core.o aes_cbc.o aes-sparcv9.o
|
||||
$bf_obj =
|
||||
$md5_obj = md5-sparcv8plus.o
|
||||
$md5_obj = md5-sparcv9.o
|
||||
$sha1_obj =
|
||||
$cast_obj =
|
||||
$rc4_obj =
|
||||
@ -3760,8 +3760,8 @@ $thread_cflag = -D_REENTRANT
|
||||
$sys_id = ULTRASPARC
|
||||
$lflags = -lsocket -lnsl -ldl
|
||||
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR
|
||||
$cpuid_obj =
|
||||
$bn_obj = bn_asm.o sparcv9a-mont.o
|
||||
$cpuid_obj = sparcv9cap.o sparccpuid.o
|
||||
$bn_obj = bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o
|
||||
$des_obj = des_enc-sparc.o fcrypt_b.o
|
||||
$aes_obj = aes_core.o aes_cbc.o aes-sparcv9.o
|
||||
$bf_obj =
|
||||
@ -3788,8 +3788,8 @@ $thread_cflag = -D_REENTRANT
|
||||
$sys_id = ULTRASPARC
|
||||
$lflags = -lsocket -lnsl -ldl
|
||||
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR
|
||||
$cpuid_obj =
|
||||
$bn_obj = bn_asm.o sparcv9a-mont.o
|
||||
$cpuid_obj = sparcv9cap.o sparccpuid.o
|
||||
$bn_obj = bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o
|
||||
$des_obj = des_enc-sparc.o fcrypt_b.o
|
||||
$aes_obj = aes_core.o aes_cbc.o aes-sparcv9.o
|
||||
$bf_obj =
|
||||
|
@ -86,10 +86,12 @@ mo86-out.s: asm/x86-mont.pl ../perlasm/x86asm.pl
|
||||
|
||||
sparcv8.o: asm/sparcv8.S
|
||||
$(CC) $(CFLAGS) -c asm/sparcv8.S
|
||||
sparcv8plus.o: asm/sparcv8plus.S
|
||||
$(CC) $(CFLAGS) -c asm/sparcv8plus.S
|
||||
bn-sparcv9.o: asm/sparcv8plus.S
|
||||
$(CC) $(CFLAGS) -c -o $@ asm/sparcv8plus.S
|
||||
sparcv9a-mont.s: asm/sparcv9a-mont.pl
|
||||
$(PERL) asm/sparcv9a-mont.pl $(CFLAGS) > $@
|
||||
sparcv9-mont.s: asm/sparcv9-mont.pl
|
||||
$(PERL) asm/sparcv9-mont.pl $(CFLAGS) > $@
|
||||
|
||||
bn-mips3.o: asm/mips3.s
|
||||
@if [ "$(CC)" = "gcc" ]; then \
|
||||
|
@ -144,6 +144,19 @@
|
||||
* }
|
||||
*/
|
||||
|
||||
#if defined(__SUNPRO_C) && defined(__sparcv9)
|
||||
/* They've said -xarch=v9 at command line */
|
||||
.register %g2,#scratch
|
||||
.register %g3,#scratch
|
||||
# define FRAME_SIZE -192
|
||||
#elif defined(__GNUC__) && defined(__arch64__)
|
||||
/* They've said -m64 at command line */
|
||||
.register %g2,#scratch
|
||||
.register %g3,#scratch
|
||||
# define FRAME_SIZE -192
|
||||
#else
|
||||
# define FRAME_SIZE -96
|
||||
#endif
|
||||
/*
|
||||
* GNU assembler can't stand stuw:-(
|
||||
*/
|
||||
@ -619,8 +632,6 @@ bn_sub_words:
|
||||
* Andy.
|
||||
*/
|
||||
|
||||
#define FRAME_SIZE -96
|
||||
|
||||
/*
|
||||
* Here is register usage map for *all* routines below.
|
||||
*/
|
||||
|
@ -72,7 +72,7 @@ $apj="%l5";
|
||||
$npj="%l6";
|
||||
$tpj="%l7";
|
||||
|
||||
$fname="bn_mul_mont";
|
||||
$fname="bn_mul_mont_int";
|
||||
|
||||
$code=<<___;
|
||||
.section ".text",#alloc,#execinstr
|
||||
@ -298,7 +298,8 @@ $fname:
|
||||
___
|
||||
|
||||
########
|
||||
######## bn_sqr_mont gives up to 20% improvement over above code
|
||||
######## .Lbn_sqr_mont gives up to 20% *overall* improvement over
|
||||
######## code without following dedicated squaring procedure.
|
||||
########
|
||||
$sbit="%i2"; # re-use $bp!
|
||||
|
||||
|
@ -32,8 +32,8 @@
|
||||
# which is perfectly usable in this context... In other words, as far
|
||||
# as HAL/Fujitsu SPARC64 family goes, talk to the author:-)
|
||||
|
||||
# In 32-bit context the implementation implies following additional
|
||||
# limitations on input arguments:
|
||||
# The implementation implies following "non-natural" limitations on
|
||||
# input arguments:
|
||||
# - num may not be less than 4;
|
||||
# - num has to be even;
|
||||
# - ap, bp, rp, np has to be 64-bit aligned [which is not a problem
|
||||
@ -47,7 +47,7 @@
|
||||
# noticeable(!) improvement);
|
||||
# - dedicated squaring procedure[?];
|
||||
|
||||
$fname="bn_mul_mont";
|
||||
$fname="bn_mul_mont_fpu";
|
||||
$bits=32;
|
||||
for (@ARGV) {
|
||||
$bits=64 if (/\-m64/ || /\-xarch\=v9/);
|
||||
|
@ -572,7 +572,7 @@ void OPENSSL_cpuid_setup(void)
|
||||
unsigned long *OPENSSL_ia32cap_loc(void) { return NULL; }
|
||||
#endif
|
||||
int OPENSSL_NONPIC_relocated = 0;
|
||||
#if !defined(OPENSSL_CPUID_SETUP)
|
||||
#if !defined(OPENSSL_CPUID_SETUP) && !defined(OPENSSL_CPUID_OBJ)
|
||||
void OPENSSL_cpuid_setup(void) {}
|
||||
#endif
|
||||
|
||||
|
@ -52,20 +52,6 @@ mx86-cof.s: asm/md5-586.pl ../perlasm/x86asm.pl
|
||||
mx86-out.s: asm/md5-586.pl ../perlasm/x86asm.pl
|
||||
(cd asm; $(PERL) md5-586.pl a.out $(CFLAGS) > ../$@)
|
||||
|
||||
md5-sparcv8plus.o: asm/md5-sparcv9.S
|
||||
$(CC) $(ASFLAGS) -DMD5_BLOCK_DATA_ORDER -c \
|
||||
-o md5-sparcv8plus.o asm/md5-sparcv9.S
|
||||
|
||||
# Old GNU assembler doesn't understand V9 instructions, so we
|
||||
# hire /usr/ccs/bin/as to do the job. Note that option is called
|
||||
# *-gcc27, but even gcc 2>=8 users may experience similar problem
|
||||
# if they didn't bother to upgrade GNU assembler. Such users should
|
||||
# not choose this option, but be adviced to *remove* GNU assembler
|
||||
# or upgrade it.
|
||||
md5-sparcv8plus-gcc27.o: asm/md5-sparcv9.S
|
||||
$(CC) $(ASFLAGS) -DMD5_BLOCK_DATA_ORDER -E asm/md5-sparcv9.S | \
|
||||
/usr/ccs/bin/as -xarch=v8plus - -o md5-sparcv8plus-gcc27.o
|
||||
|
||||
md5-sparcv9.o: asm/md5-sparcv9.S
|
||||
$(CC) $(ASFLAGS) -DMD5_BLOCK_DATA_ORDER -c \
|
||||
-o md5-sparcv9.o asm/md5-sparcv9.S
|
||||
|
@ -215,9 +215,9 @@ OPENSSL_atomic_add:
|
||||
sra %o0,%g0,%o0 ! we return signed int, remember?
|
||||
.size OPENSSL_atomic_add,.-OPENSSL_atomic_add
|
||||
|
||||
.global OPENSSL_rdtick
|
||||
.global _sparcv9_rdtick
|
||||
.align 32
|
||||
OPENSSL_rdtick:
|
||||
_sparcv9_rdtick:
|
||||
subcc %g0,1,%o0
|
||||
.word 0x91408000 !rd %ccr,%o0
|
||||
cmp %o0,0x99
|
||||
@ -229,8 +229,8 @@ OPENSSL_rdtick:
|
||||
.notick:
|
||||
retl
|
||||
xor %o1,%o1,%o1
|
||||
.type OPENSSL_rdtick,#function
|
||||
.size OPENSSL_rdtick,.-OPENSSL_rdtick
|
||||
.type _sparcv9_rdtick,#function
|
||||
.size _sparcv9_rdtick,.-_sparcv9_rdtick
|
||||
|
||||
.section ".init",#alloc,#execinstr
|
||||
call OPENSSL_cpuid_setup
|
||||
|
@ -16,7 +16,7 @@ int bn_mul_mont(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, const BN_U
|
||||
int bn_mul_mont_fpu(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, const BN_ULONG *np,const BN_ULONG *n0, int num);
|
||||
int bn_mul_mont_int(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, const BN_ULONG *np,const BN_ULONG *n0, int num);
|
||||
|
||||
if (OPENSSL_sparcv9cap_P&(SPARCV9_PREFER_FPU|SPARCV9_VIS1) ==
|
||||
if ((OPENSSL_sparcv9cap_P&(SPARCV9_PREFER_FPU|SPARCV9_VIS1)) ==
|
||||
(SPARCV9_PREFER_FPU|SPARCV9_VIS1))
|
||||
return bn_mul_mont_fpu(rp,ap,bp,np,n0,num);
|
||||
else
|
||||
@ -25,7 +25,7 @@ int bn_mul_mont(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, const BN_U
|
||||
|
||||
unsigned long OPENSSL_rdtsc(void)
|
||||
{
|
||||
unsigned long OPENSSL_rdtick(void);
|
||||
unsigned long _sparcv9_rdtick(void);
|
||||
|
||||
if (OPENSSL_sparcv9cap_P&SPARCV9_TICK_PRIVILEGED)
|
||||
#if defined(__sun) && defined(__SVR4)
|
||||
@ -34,7 +34,7 @@ unsigned long OPENSSL_rdtsc(void)
|
||||
return 0;
|
||||
#endif
|
||||
else
|
||||
return OPENSSL_rdtick();
|
||||
return _sparcv9_rdtick();
|
||||
}
|
||||
|
||||
#if defined(__sun) && defined(__SVR4)
|
||||
@ -79,14 +79,18 @@ void OPENSSL_cpuid_setup(void)
|
||||
{
|
||||
void *h;
|
||||
char *e;
|
||||
static int trigger=0;
|
||||
|
||||
if (e=getenv("OPENSSL_sparcv9cap"))
|
||||
if (trigger) return;
|
||||
trigger=1;
|
||||
|
||||
if ((e=getenv("OPENSSL_sparcv9cap")))
|
||||
{
|
||||
OPENSSL_sparcv9cap_P=strtoul(e,NULL,0);
|
||||
return;
|
||||
}
|
||||
|
||||
if (h = dlopen("libdevinfo.so.1",RTLD_LAZY)) do
|
||||
if ((h = dlopen("libdevinfo.so.1",RTLD_LAZY))) do
|
||||
{
|
||||
di_init_t di_init;
|
||||
di_fini_t di_fini;
|
||||
@ -110,24 +114,20 @@ void OPENSSL_cpuid_setup(void)
|
||||
if (h) dlclose(h);
|
||||
}
|
||||
|
||||
#elif defined(__linux)
|
||||
#else
|
||||
|
||||
void OPENSSL_cpuid_setup(void)
|
||||
void OPENSSL_cpucap_setup(void)
|
||||
{
|
||||
char *e;
|
||||
|
||||
if (e=getenv("OPENSSL_sparcv9cap"))
|
||||
if ((e=getenv("OPENSSL_sparcv9cap")))
|
||||
{
|
||||
OPENSSL_sparcv9cap_P=strtoul(env,NULL,0);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Linux apparently supports UltraSPARC-I/II/III only */
|
||||
/* For now we assume that the rest supports UltraSPARC-I* only */
|
||||
OPENSSL_sparcv9cap_P |= SPARCV9_PREFER_FPU|SPARCV9_VIS1;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
void OPENSSL_cpuid_setup(void) {}
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user