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 $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 $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=":::::::::::";
|
my $no_asm=":::::::::::";
|
||||||
|
|
||||||
# As for $BSDthreads. Idea is to maintain "collective" set of flags,
|
# 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-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)",
|
"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
|
# -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)",
|
"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::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)",
|
"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-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
|
#### SPARC Solaris with Sun C setups
|
||||||
# SC4.0 doesn't pass 'make test', upgrade to SC5.0 or SC4.2.
|
# 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!
|
# 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-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-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)",
|
"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::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",
|
"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-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 configs, assuming sparc for the gcc one.
|
||||||
#"sunos-cc", "cc:-O4 -DNOPROTO -DNOCONST::(unknown):SUNOS::DES_UNROLL:${no_asm}::",
|
#"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)",
|
"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
|
# it's a real mess with -mcpu=ultrasparc option under Linux, but
|
||||||
# -Wa,-Av8plus should do the trick no matter what.
|
# -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
|
# 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
|
#### Alpha Linux with GNU C and Compaq C setups
|
||||||
# Special notes:
|
# Special notes:
|
||||||
# - linux-alpha+bwx-gcc is ment to be used from ./config only. If you
|
# - 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
|
# -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,
|
# simply *happens* to work around a compiler bug in gcc 3.3.3,
|
||||||
# triggered by RIPEMD160 code.
|
# 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-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)",
|
"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 =
|
$sys_id =
|
||||||
$lflags =
|
$lflags =
|
||||||
$bn_ops = BN_LLONG RC2_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC2 BF_PTR
|
$bn_ops = BN_LLONG RC2_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC2 BF_PTR
|
||||||
$cpuid_obj =
|
$cpuid_obj = sparcv9cap.o sparccpuid.o
|
||||||
$bn_obj = bn_asm.o sparcv9a-mont.o
|
$bn_obj = bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o
|
||||||
$des_obj = des_enc-sparc.o fcrypt_b.o
|
$des_obj = des_enc-sparc.o fcrypt_b.o
|
||||||
$aes_obj = aes_core.o aes_cbc.o aes-sparcv9.o
|
$aes_obj = aes_core.o aes_cbc.o aes-sparcv9.o
|
||||||
$bf_obj =
|
$bf_obj =
|
||||||
@ -1660,12 +1660,12 @@ $thread_cflag = -D_REENTRANT
|
|||||||
$sys_id = ULTRASPARC
|
$sys_id = ULTRASPARC
|
||||||
$lflags = -lsocket -lnsl -ldl
|
$lflags = -lsocket -lnsl -ldl
|
||||||
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR
|
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR
|
||||||
$cpuid_obj =
|
$cpuid_obj = sparcv9cap.o sparccpuid.o
|
||||||
$bn_obj = sparcv8plus.o
|
$bn_obj = bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o
|
||||||
$des_obj =
|
$des_obj = des_enc-sparc.o fcrypt_b.o
|
||||||
$aes_obj =
|
$aes_obj = aes_core.o aes_cbc.o aes-sparcv9.o
|
||||||
$bf_obj =
|
$bf_obj =
|
||||||
$md5_obj = md5-sparcv8plus.o
|
$md5_obj = md5-sparcv9.o
|
||||||
$sha1_obj =
|
$sha1_obj =
|
||||||
$cast_obj =
|
$cast_obj =
|
||||||
$rc4_obj =
|
$rc4_obj =
|
||||||
@ -1688,12 +1688,12 @@ $thread_cflag = -D_REENTRANT
|
|||||||
$sys_id = ULTRASPARC
|
$sys_id = ULTRASPARC
|
||||||
$lflags = -lsocket -lnsl -ldl
|
$lflags = -lsocket -lnsl -ldl
|
||||||
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR
|
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR
|
||||||
$cpuid_obj =
|
$cpuid_obj = sparcv9cap.o sparccpuid.o
|
||||||
$bn_obj = sparcv8plus.o
|
$bn_obj = bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o
|
||||||
$des_obj = des_enc-sparc.o fcrypt_b.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 =
|
$bf_obj =
|
||||||
$md5_obj = md5-sparcv8plus.o
|
$md5_obj = md5-sparcv9.o
|
||||||
$sha1_obj =
|
$sha1_obj =
|
||||||
$cast_obj =
|
$cast_obj =
|
||||||
$rc4_obj =
|
$rc4_obj =
|
||||||
@ -2976,12 +2976,12 @@ $thread_cflag = -D_REENTRANT
|
|||||||
$sys_id = ULTRASPARC
|
$sys_id = ULTRASPARC
|
||||||
$lflags = -ldl
|
$lflags = -ldl
|
||||||
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR
|
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR
|
||||||
$cpuid_obj =
|
$cpuid_obj = sparcv9cap.o sparccpuid.o
|
||||||
$bn_obj = sparcv8plus.o sparcv9a-mont.o
|
$bn_obj = bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o
|
||||||
$des_obj = des_enc-sparc.o fcrypt_b.o
|
$des_obj = des_enc-sparc.o fcrypt_b.o
|
||||||
$aes_obj = aes_core.o aes_cbc.o aes-sparcv9.o
|
$aes_obj = aes_core.o aes_cbc.o aes-sparcv9.o
|
||||||
$bf_obj =
|
$bf_obj =
|
||||||
$md5_obj = md5-sparcv8plus.o
|
$md5_obj = md5-sparcv9.o
|
||||||
$sha1_obj =
|
$sha1_obj =
|
||||||
$cast_obj =
|
$cast_obj =
|
||||||
$rc4_obj =
|
$rc4_obj =
|
||||||
@ -3032,8 +3032,8 @@ $thread_cflag = -D_REENTRANT
|
|||||||
$sys_id = ULTRASPARC
|
$sys_id = ULTRASPARC
|
||||||
$lflags = -ldl
|
$lflags = -ldl
|
||||||
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR
|
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR
|
||||||
$cpuid_obj =
|
$cpuid_obj = sparcv9cap.o sparccpuid.o
|
||||||
$bn_obj = bn_asm.o sparcv9a-mont.o
|
$bn_obj = bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o
|
||||||
$des_obj = des_enc-sparc.o fcrypt_b.o
|
$des_obj = des_enc-sparc.o fcrypt_b.o
|
||||||
$aes_obj = aes_core.o aes_cbc.o aes-sparcv9.o
|
$aes_obj = aes_core.o aes_cbc.o aes-sparcv9.o
|
||||||
$bf_obj =
|
$bf_obj =
|
||||||
@ -3648,12 +3648,12 @@ $thread_cflag = -D_REENTRANT
|
|||||||
$sys_id = ULTRASPARC
|
$sys_id = ULTRASPARC
|
||||||
$lflags = -lsocket -lnsl -ldl
|
$lflags = -lsocket -lnsl -ldl
|
||||||
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR
|
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR
|
||||||
$cpuid_obj =
|
$cpuid_obj = sparcv9cap.o sparccpuid.o
|
||||||
$bn_obj = sparcv8plus.o sparcv9a-mont.o
|
$bn_obj = bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o
|
||||||
$des_obj = des_enc-sparc.o fcrypt_b.o
|
$des_obj = des_enc-sparc.o fcrypt_b.o
|
||||||
$aes_obj = aes_core.o aes_cbc.o aes-sparcv9.o
|
$aes_obj = aes_core.o aes_cbc.o aes-sparcv9.o
|
||||||
$bf_obj =
|
$bf_obj =
|
||||||
$md5_obj = md5-sparcv8plus.o
|
$md5_obj = md5-sparcv9.o
|
||||||
$sha1_obj =
|
$sha1_obj =
|
||||||
$cast_obj =
|
$cast_obj =
|
||||||
$rc4_obj =
|
$rc4_obj =
|
||||||
@ -3676,12 +3676,12 @@ $thread_cflag = -D_REENTRANT
|
|||||||
$sys_id = ULTRASPARC
|
$sys_id = ULTRASPARC
|
||||||
$lflags = -lsocket -lnsl -ldl
|
$lflags = -lsocket -lnsl -ldl
|
||||||
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR
|
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR
|
||||||
$cpuid_obj =
|
$cpuid_obj = sparcv9cap.o sparccpuid.o
|
||||||
$bn_obj = sparcv8plus.o sparcv9a-mont.o
|
$bn_obj = bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o
|
||||||
$des_obj = des_enc-sparc.o fcrypt_b.o
|
$des_obj = des_enc-sparc.o fcrypt_b.o
|
||||||
$aes_obj = aes_core.o aes_cbc.o aes-sparcv9.o
|
$aes_obj = aes_core.o aes_cbc.o aes-sparcv9.o
|
||||||
$bf_obj =
|
$bf_obj =
|
||||||
$md5_obj = md5-sparcv8plus.o
|
$md5_obj = md5-sparcv9.o
|
||||||
$sha1_obj =
|
$sha1_obj =
|
||||||
$cast_obj =
|
$cast_obj =
|
||||||
$rc4_obj =
|
$rc4_obj =
|
||||||
@ -3760,8 +3760,8 @@ $thread_cflag = -D_REENTRANT
|
|||||||
$sys_id = ULTRASPARC
|
$sys_id = ULTRASPARC
|
||||||
$lflags = -lsocket -lnsl -ldl
|
$lflags = -lsocket -lnsl -ldl
|
||||||
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR
|
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR
|
||||||
$cpuid_obj =
|
$cpuid_obj = sparcv9cap.o sparccpuid.o
|
||||||
$bn_obj = bn_asm.o sparcv9a-mont.o
|
$bn_obj = bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o
|
||||||
$des_obj = des_enc-sparc.o fcrypt_b.o
|
$des_obj = des_enc-sparc.o fcrypt_b.o
|
||||||
$aes_obj = aes_core.o aes_cbc.o aes-sparcv9.o
|
$aes_obj = aes_core.o aes_cbc.o aes-sparcv9.o
|
||||||
$bf_obj =
|
$bf_obj =
|
||||||
@ -3788,8 +3788,8 @@ $thread_cflag = -D_REENTRANT
|
|||||||
$sys_id = ULTRASPARC
|
$sys_id = ULTRASPARC
|
||||||
$lflags = -lsocket -lnsl -ldl
|
$lflags = -lsocket -lnsl -ldl
|
||||||
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR
|
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR
|
||||||
$cpuid_obj =
|
$cpuid_obj = sparcv9cap.o sparccpuid.o
|
||||||
$bn_obj = bn_asm.o sparcv9a-mont.o
|
$bn_obj = bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o
|
||||||
$des_obj = des_enc-sparc.o fcrypt_b.o
|
$des_obj = des_enc-sparc.o fcrypt_b.o
|
||||||
$aes_obj = aes_core.o aes_cbc.o aes-sparcv9.o
|
$aes_obj = aes_core.o aes_cbc.o aes-sparcv9.o
|
||||||
$bf_obj =
|
$bf_obj =
|
||||||
|
@ -86,10 +86,12 @@ mo86-out.s: asm/x86-mont.pl ../perlasm/x86asm.pl
|
|||||||
|
|
||||||
sparcv8.o: asm/sparcv8.S
|
sparcv8.o: asm/sparcv8.S
|
||||||
$(CC) $(CFLAGS) -c asm/sparcv8.S
|
$(CC) $(CFLAGS) -c asm/sparcv8.S
|
||||||
sparcv8plus.o: asm/sparcv8plus.S
|
bn-sparcv9.o: asm/sparcv8plus.S
|
||||||
$(CC) $(CFLAGS) -c asm/sparcv8plus.S
|
$(CC) $(CFLAGS) -c -o $@ asm/sparcv8plus.S
|
||||||
sparcv9a-mont.s: asm/sparcv9a-mont.pl
|
sparcv9a-mont.s: asm/sparcv9a-mont.pl
|
||||||
$(PERL) asm/sparcv9a-mont.pl $(CFLAGS) > $@
|
$(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
|
bn-mips3.o: asm/mips3.s
|
||||||
@if [ "$(CC)" = "gcc" ]; then \
|
@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:-(
|
* GNU assembler can't stand stuw:-(
|
||||||
*/
|
*/
|
||||||
@ -619,8 +632,6 @@ bn_sub_words:
|
|||||||
* Andy.
|
* Andy.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define FRAME_SIZE -96
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Here is register usage map for *all* routines below.
|
* Here is register usage map for *all* routines below.
|
||||||
*/
|
*/
|
||||||
|
@ -72,7 +72,7 @@ $apj="%l5";
|
|||||||
$npj="%l6";
|
$npj="%l6";
|
||||||
$tpj="%l7";
|
$tpj="%l7";
|
||||||
|
|
||||||
$fname="bn_mul_mont";
|
$fname="bn_mul_mont_int";
|
||||||
|
|
||||||
$code=<<___;
|
$code=<<___;
|
||||||
.section ".text",#alloc,#execinstr
|
.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!
|
$sbit="%i2"; # re-use $bp!
|
||||||
|
|
||||||
|
@ -32,8 +32,8 @@
|
|||||||
# which is perfectly usable in this context... In other words, as far
|
# which is perfectly usable in this context... In other words, as far
|
||||||
# as HAL/Fujitsu SPARC64 family goes, talk to the author:-)
|
# as HAL/Fujitsu SPARC64 family goes, talk to the author:-)
|
||||||
|
|
||||||
# In 32-bit context the implementation implies following additional
|
# The implementation implies following "non-natural" limitations on
|
||||||
# limitations on input arguments:
|
# input arguments:
|
||||||
# - num may not be less than 4;
|
# - num may not be less than 4;
|
||||||
# - num has to be even;
|
# - num has to be even;
|
||||||
# - ap, bp, rp, np has to be 64-bit aligned [which is not a problem
|
# - ap, bp, rp, np has to be 64-bit aligned [which is not a problem
|
||||||
@ -47,7 +47,7 @@
|
|||||||
# noticeable(!) improvement);
|
# noticeable(!) improvement);
|
||||||
# - dedicated squaring procedure[?];
|
# - dedicated squaring procedure[?];
|
||||||
|
|
||||||
$fname="bn_mul_mont";
|
$fname="bn_mul_mont_fpu";
|
||||||
$bits=32;
|
$bits=32;
|
||||||
for (@ARGV) {
|
for (@ARGV) {
|
||||||
$bits=64 if (/\-m64/ || /\-xarch\=v9/);
|
$bits=64 if (/\-m64/ || /\-xarch\=v9/);
|
||||||
|
@ -572,7 +572,7 @@ void OPENSSL_cpuid_setup(void)
|
|||||||
unsigned long *OPENSSL_ia32cap_loc(void) { return NULL; }
|
unsigned long *OPENSSL_ia32cap_loc(void) { return NULL; }
|
||||||
#endif
|
#endif
|
||||||
int OPENSSL_NONPIC_relocated = 0;
|
int OPENSSL_NONPIC_relocated = 0;
|
||||||
#if !defined(OPENSSL_CPUID_SETUP)
|
#if !defined(OPENSSL_CPUID_SETUP) && !defined(OPENSSL_CPUID_OBJ)
|
||||||
void OPENSSL_cpuid_setup(void) {}
|
void OPENSSL_cpuid_setup(void) {}
|
||||||
#endif
|
#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
|
mx86-out.s: asm/md5-586.pl ../perlasm/x86asm.pl
|
||||||
(cd asm; $(PERL) md5-586.pl a.out $(CFLAGS) > ../$@)
|
(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
|
md5-sparcv9.o: asm/md5-sparcv9.S
|
||||||
$(CC) $(ASFLAGS) -DMD5_BLOCK_DATA_ORDER -c \
|
$(CC) $(ASFLAGS) -DMD5_BLOCK_DATA_ORDER -c \
|
||||||
-o md5-sparcv9.o asm/md5-sparcv9.S
|
-o md5-sparcv9.o asm/md5-sparcv9.S
|
||||||
|
@ -215,9 +215,9 @@ OPENSSL_atomic_add:
|
|||||||
sra %o0,%g0,%o0 ! we return signed int, remember?
|
sra %o0,%g0,%o0 ! we return signed int, remember?
|
||||||
.size OPENSSL_atomic_add,.-OPENSSL_atomic_add
|
.size OPENSSL_atomic_add,.-OPENSSL_atomic_add
|
||||||
|
|
||||||
.global OPENSSL_rdtick
|
.global _sparcv9_rdtick
|
||||||
.align 32
|
.align 32
|
||||||
OPENSSL_rdtick:
|
_sparcv9_rdtick:
|
||||||
subcc %g0,1,%o0
|
subcc %g0,1,%o0
|
||||||
.word 0x91408000 !rd %ccr,%o0
|
.word 0x91408000 !rd %ccr,%o0
|
||||||
cmp %o0,0x99
|
cmp %o0,0x99
|
||||||
@ -229,8 +229,8 @@ OPENSSL_rdtick:
|
|||||||
.notick:
|
.notick:
|
||||||
retl
|
retl
|
||||||
xor %o1,%o1,%o1
|
xor %o1,%o1,%o1
|
||||||
.type OPENSSL_rdtick,#function
|
.type _sparcv9_rdtick,#function
|
||||||
.size OPENSSL_rdtick,.-OPENSSL_rdtick
|
.size _sparcv9_rdtick,.-_sparcv9_rdtick
|
||||||
|
|
||||||
.section ".init",#alloc,#execinstr
|
.section ".init",#alloc,#execinstr
|
||||||
call OPENSSL_cpuid_setup
|
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_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);
|
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))
|
(SPARCV9_PREFER_FPU|SPARCV9_VIS1))
|
||||||
return bn_mul_mont_fpu(rp,ap,bp,np,n0,num);
|
return bn_mul_mont_fpu(rp,ap,bp,np,n0,num);
|
||||||
else
|
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_rdtsc(void)
|
||||||
{
|
{
|
||||||
unsigned long OPENSSL_rdtick(void);
|
unsigned long _sparcv9_rdtick(void);
|
||||||
|
|
||||||
if (OPENSSL_sparcv9cap_P&SPARCV9_TICK_PRIVILEGED)
|
if (OPENSSL_sparcv9cap_P&SPARCV9_TICK_PRIVILEGED)
|
||||||
#if defined(__sun) && defined(__SVR4)
|
#if defined(__sun) && defined(__SVR4)
|
||||||
@ -34,7 +34,7 @@ unsigned long OPENSSL_rdtsc(void)
|
|||||||
return 0;
|
return 0;
|
||||||
#endif
|
#endif
|
||||||
else
|
else
|
||||||
return OPENSSL_rdtick();
|
return _sparcv9_rdtick();
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(__sun) && defined(__SVR4)
|
#if defined(__sun) && defined(__SVR4)
|
||||||
@ -79,14 +79,18 @@ void OPENSSL_cpuid_setup(void)
|
|||||||
{
|
{
|
||||||
void *h;
|
void *h;
|
||||||
char *e;
|
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);
|
OPENSSL_sparcv9cap_P=strtoul(e,NULL,0);
|
||||||
return;
|
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_init_t di_init;
|
||||||
di_fini_t di_fini;
|
di_fini_t di_fini;
|
||||||
@ -110,24 +114,20 @@ void OPENSSL_cpuid_setup(void)
|
|||||||
if (h) dlclose(h);
|
if (h) dlclose(h);
|
||||||
}
|
}
|
||||||
|
|
||||||
#elif defined(__linux)
|
#else
|
||||||
|
|
||||||
void OPENSSL_cpuid_setup(void)
|
void OPENSSL_cpucap_setup(void)
|
||||||
{
|
{
|
||||||
char *e;
|
char *e;
|
||||||
|
|
||||||
if (e=getenv("OPENSSL_sparcv9cap"))
|
if ((e=getenv("OPENSSL_sparcv9cap")))
|
||||||
{
|
{
|
||||||
OPENSSL_sparcv9cap_P=strtoul(env,NULL,0);
|
OPENSSL_sparcv9cap_P=strtoul(env,NULL,0);
|
||||||
return;
|
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;
|
OPENSSL_sparcv9cap_P |= SPARCV9_PREFER_FPU|SPARCV9_VIS1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
void OPENSSL_cpuid_setup(void) {}
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user