Loading crypto/bn/asm/bn-586.pl +4 −2 Original line number Diff line number Diff line Loading @@ -8,6 +8,8 @@ require "x86asm.pl"; $sse2=0; for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); } &external_label("OPENSSL_ia32cap_P") if ($sse2); &bn_mul_add_words("bn_mul_add_words"); &bn_mul_words("bn_mul_words"); &bn_sqr_words("bn_sqr_words"); Loading @@ -22,7 +24,7 @@ sub bn_mul_add_words { local($name)=@_; &function_begin($name,""); &function_begin($name,$sse2?"EXTRN\t_OPENSSL_ia32cap_P:DWORD":""); &comment(""); $Low="eax"; Loading @@ -46,7 +48,7 @@ sub bn_mul_add_words &jz(&label("maw_finish")); if ($sse2) { &picmeup("eax","OPENSSL_ia32cap"); &picmeup("eax","OPENSSL_ia32cap_P"); &bt(&DWP(0,"eax"),26); &jnc(&label("maw_loop")); Loading crypto/cryptlib.c +7 −7 Original line number Diff line number Diff line Loading @@ -541,23 +541,23 @@ const char *CRYPTO_get_lock_name(int type) #if defined(__i386) || defined(__i386__) || defined(_M_IX86) || defined(__INTEL__) unsigned long OPENSSL_ia32cap=0; unsigned long *OPENSSL_ia32cap_loc() { return &OPENSSL_ia32cap; } unsigned long OPENSSL_ia32cap_P=0; unsigned long *OPENSSL_ia32cap_loc(void) { return &OPENSSL_ia32cap_P; } #if defined(OPENSSL_CPUID_OBJ) && !defined(OPENSSL_NO_ASM) && !defined(I386_ONLY) #define OPENSSL_CPUID_SETUP void OPENSSL_cpuid_setup() void OPENSSL_cpuid_setup(void) { static int trigger=0; unsigned long OPENSSL_ia32_cpuid(); unsigned long OPENSSL_ia32_cpuid(void); char *env; if (trigger) return; trigger=1; if ((env=getenv("OPENSSL_ia32cap"))) OPENSSL_ia32cap = strtoul(env,NULL,0)|(1<<10); OPENSSL_ia32cap_P = strtoul(env,NULL,0)|(1<<10); else OPENSSL_ia32cap = OPENSSL_ia32_cpuid()|(1<<10); OPENSSL_ia32cap_P = OPENSSL_ia32_cpuid()|(1<<10); /* * |(1<<10) sets a reserved bit to signal that variable * was initialized already... This is to avoid interference Loading @@ -568,7 +568,7 @@ void OPENSSL_cpuid_setup() #endif #if !defined(OPENSSL_CPUID_SETUP) void OPENSSL_cpuid_setup() {} void OPENSSL_cpuid_setup(void) {} #endif #if (defined(_WIN32) || defined(__CYGWIN__)) && defined(_DLL) Loading crypto/cryptlib.h +3 −0 Original line number Diff line number Diff line Loading @@ -93,6 +93,9 @@ extern "C" { #define DECIMAL_SIZE(type) ((sizeof(type)*8+2)/3+1) #define HEX_SIZE(type) (sizeof(type)*2) void OPENSSL_cpuid_setup(void); extern unsigned long OPENSSL_ia32cap_P; #ifdef __cplusplus } #endif Loading crypto/crypto.h +3 −0 Original line number Diff line number Diff line Loading @@ -541,6 +541,9 @@ void ERR_load_CRYPTO_strings(void); /* Reason codes. */ #define CRYPTO_R_NO_DYNLOCK_CREATE_CALLBACK 100 unsigned long *OPENSSL_ia32cap_loc(void); #define OPENSSL_ia32cap (*(OPENSSL_ia32cap_loc())) #ifdef __cplusplus } #endif Loading crypto/evp/c_all.c +0 −1 Original line number Diff line number Diff line Loading @@ -79,7 +79,6 @@ void OPENSSL_add_all_algorithms_noconf(void) * only on IA-32, but we reserve the option for all * platforms... */ void OPENSSL_cpuid_setup(); OPENSSL_cpuid_setup(); OpenSSL_add_all_ciphers(); OpenSSL_add_all_digests(); Loading Loading
crypto/bn/asm/bn-586.pl +4 −2 Original line number Diff line number Diff line Loading @@ -8,6 +8,8 @@ require "x86asm.pl"; $sse2=0; for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); } &external_label("OPENSSL_ia32cap_P") if ($sse2); &bn_mul_add_words("bn_mul_add_words"); &bn_mul_words("bn_mul_words"); &bn_sqr_words("bn_sqr_words"); Loading @@ -22,7 +24,7 @@ sub bn_mul_add_words { local($name)=@_; &function_begin($name,""); &function_begin($name,$sse2?"EXTRN\t_OPENSSL_ia32cap_P:DWORD":""); &comment(""); $Low="eax"; Loading @@ -46,7 +48,7 @@ sub bn_mul_add_words &jz(&label("maw_finish")); if ($sse2) { &picmeup("eax","OPENSSL_ia32cap"); &picmeup("eax","OPENSSL_ia32cap_P"); &bt(&DWP(0,"eax"),26); &jnc(&label("maw_loop")); Loading
crypto/cryptlib.c +7 −7 Original line number Diff line number Diff line Loading @@ -541,23 +541,23 @@ const char *CRYPTO_get_lock_name(int type) #if defined(__i386) || defined(__i386__) || defined(_M_IX86) || defined(__INTEL__) unsigned long OPENSSL_ia32cap=0; unsigned long *OPENSSL_ia32cap_loc() { return &OPENSSL_ia32cap; } unsigned long OPENSSL_ia32cap_P=0; unsigned long *OPENSSL_ia32cap_loc(void) { return &OPENSSL_ia32cap_P; } #if defined(OPENSSL_CPUID_OBJ) && !defined(OPENSSL_NO_ASM) && !defined(I386_ONLY) #define OPENSSL_CPUID_SETUP void OPENSSL_cpuid_setup() void OPENSSL_cpuid_setup(void) { static int trigger=0; unsigned long OPENSSL_ia32_cpuid(); unsigned long OPENSSL_ia32_cpuid(void); char *env; if (trigger) return; trigger=1; if ((env=getenv("OPENSSL_ia32cap"))) OPENSSL_ia32cap = strtoul(env,NULL,0)|(1<<10); OPENSSL_ia32cap_P = strtoul(env,NULL,0)|(1<<10); else OPENSSL_ia32cap = OPENSSL_ia32_cpuid()|(1<<10); OPENSSL_ia32cap_P = OPENSSL_ia32_cpuid()|(1<<10); /* * |(1<<10) sets a reserved bit to signal that variable * was initialized already... This is to avoid interference Loading @@ -568,7 +568,7 @@ void OPENSSL_cpuid_setup() #endif #if !defined(OPENSSL_CPUID_SETUP) void OPENSSL_cpuid_setup() {} void OPENSSL_cpuid_setup(void) {} #endif #if (defined(_WIN32) || defined(__CYGWIN__)) && defined(_DLL) Loading
crypto/cryptlib.h +3 −0 Original line number Diff line number Diff line Loading @@ -93,6 +93,9 @@ extern "C" { #define DECIMAL_SIZE(type) ((sizeof(type)*8+2)/3+1) #define HEX_SIZE(type) (sizeof(type)*2) void OPENSSL_cpuid_setup(void); extern unsigned long OPENSSL_ia32cap_P; #ifdef __cplusplus } #endif Loading
crypto/crypto.h +3 −0 Original line number Diff line number Diff line Loading @@ -541,6 +541,9 @@ void ERR_load_CRYPTO_strings(void); /* Reason codes. */ #define CRYPTO_R_NO_DYNLOCK_CREATE_CALLBACK 100 unsigned long *OPENSSL_ia32cap_loc(void); #define OPENSSL_ia32cap (*(OPENSSL_ia32cap_loc())) #ifdef __cplusplus } #endif Loading
crypto/evp/c_all.c +0 −1 Original line number Diff line number Diff line Loading @@ -79,7 +79,6 @@ void OPENSSL_add_all_algorithms_noconf(void) * only on IA-32, but we reserve the option for all * platforms... */ void OPENSSL_cpuid_setup(); OPENSSL_cpuid_setup(); OpenSSL_add_all_ciphers(); OpenSSL_add_all_digests(); Loading