Loading crypto/cryptlib.c +16 −6 Original line number Diff line number Diff line Loading @@ -659,30 +659,40 @@ const char *CRYPTO_get_lock_name(int type) #if defined(__i386) || defined(__i386__) || defined(_M_IX86) || \ defined(__INTEL__) || \ defined(__x86_64) || defined(__x86_64__) || defined(_M_AMD64) defined(__x86_64) || defined(__x86_64__) || defined(_M_AMD64) || defined(_M_X64) unsigned long OPENSSL_ia32cap_P=0; unsigned long *OPENSSL_ia32cap_loc(void) { return &OPENSSL_ia32cap_P; } unsigned int OPENSSL_ia32cap_P[2]; unsigned int *OPENSSL_ia32cap_loc(void) { return OPENSSL_ia32cap_P; } #if defined(OPENSSL_CPUID_OBJ) && !defined(OPENSSL_NO_ASM) && !defined(I386_ONLY) #define OPENSSL_CPUID_SETUP #if defined(_WIN32) typedef unsigned __int64 IA32CAP; #define strtoull _strtoui64 #else typedef unsigned long long IA32CAP; #endif void OPENSSL_cpuid_setup(void) { static int trigger=0; unsigned long OPENSSL_ia32_cpuid(void); IA32CAP OPENSSL_ia32_cpuid(void); IA32CAP vec; char *env; if (trigger) return; trigger=1; if ((env=getenv("OPENSSL_ia32cap"))) OPENSSL_ia32cap_P = strtoul(env,NULL,0)|(1<<10); vec = strtoull(env,NULL,0); else OPENSSL_ia32cap_P = OPENSSL_ia32_cpuid()|(1<<10); vec = OPENSSL_ia32_cpuid(); /* * |(1<<10) sets a reserved bit to signal that variable * was initialized already... This is to avoid interference * with cpuid snippets in ELF .init segment. */ OPENSSL_ia32cap_P[0] = (unsigned int)vec|(1<<10); OPENSSL_ia32cap_P[1] = (unsigned int)(vec>>32); } #endif Loading crypto/cryptlib.h +1 −1 Original line number Diff line number Diff line Loading @@ -99,7 +99,7 @@ extern "C" { #define HEX_SIZE(type) (sizeof(type)*2) void OPENSSL_cpuid_setup(void); extern unsigned long OPENSSL_ia32cap_P; extern unsigned int OPENSSL_ia32cap_P[]; void OPENSSL_showfatal(const char *,...); void *OPENSSL_stderr(void); extern int OPENSSL_NONPIC_relocated; Loading crypto/perlasm/x86gas.pl +1 −1 Original line number Diff line number Diff line Loading @@ -150,7 +150,7 @@ sub ::public_label sub ::file_end { if (grep {/\b${nmdecor}OPENSSL_ia32cap_P\b/i} @out) { my $tmp=".comm\t${nmdecor}OPENSSL_ia32cap_P,4"; my $tmp=".comm\t${nmdecor}OPENSSL_ia32cap_P,8"; if ($::elf) { push (@out,"$tmp,4\n"); } else { push (@out,"$tmp\n"); } } Loading crypto/perlasm/x86masm.pl +1 −1 Original line number Diff line number Diff line Loading @@ -127,7 +127,7 @@ ___ if (grep {/\b${nmdecor}OPENSSL_ia32cap_P\b/i} @out) { my $comm=<<___; .bss SEGMENT COMM ${nmdecor}OPENSSL_ia32cap_P:DWORD COMM ${nmdecor}OPENSSL_ia32cap_P:QWORD .bss ENDS ___ # comment out OPENSSL_ia32cap_P declarations Loading crypto/perlasm/x86nasm.pl +1 −1 Original line number Diff line number Diff line Loading @@ -114,7 +114,7 @@ sub ::file_end { if (grep {/\b${nmdecor}OPENSSL_ia32cap_P\b/i} @out) { my $comm=<<___; ${drdecor}segment .bss ${drdecor}common ${nmdecor}OPENSSL_ia32cap_P 4 ${drdecor}common ${nmdecor}OPENSSL_ia32cap_P 8 ___ # comment out OPENSSL_ia32cap_P declarations grep {s/(^extern\s+${nmdecor}OPENSSL_ia32cap_P)/\;$1/} @out; Loading Loading
crypto/cryptlib.c +16 −6 Original line number Diff line number Diff line Loading @@ -659,30 +659,40 @@ const char *CRYPTO_get_lock_name(int type) #if defined(__i386) || defined(__i386__) || defined(_M_IX86) || \ defined(__INTEL__) || \ defined(__x86_64) || defined(__x86_64__) || defined(_M_AMD64) defined(__x86_64) || defined(__x86_64__) || defined(_M_AMD64) || defined(_M_X64) unsigned long OPENSSL_ia32cap_P=0; unsigned long *OPENSSL_ia32cap_loc(void) { return &OPENSSL_ia32cap_P; } unsigned int OPENSSL_ia32cap_P[2]; unsigned int *OPENSSL_ia32cap_loc(void) { return OPENSSL_ia32cap_P; } #if defined(OPENSSL_CPUID_OBJ) && !defined(OPENSSL_NO_ASM) && !defined(I386_ONLY) #define OPENSSL_CPUID_SETUP #if defined(_WIN32) typedef unsigned __int64 IA32CAP; #define strtoull _strtoui64 #else typedef unsigned long long IA32CAP; #endif void OPENSSL_cpuid_setup(void) { static int trigger=0; unsigned long OPENSSL_ia32_cpuid(void); IA32CAP OPENSSL_ia32_cpuid(void); IA32CAP vec; char *env; if (trigger) return; trigger=1; if ((env=getenv("OPENSSL_ia32cap"))) OPENSSL_ia32cap_P = strtoul(env,NULL,0)|(1<<10); vec = strtoull(env,NULL,0); else OPENSSL_ia32cap_P = OPENSSL_ia32_cpuid()|(1<<10); vec = OPENSSL_ia32_cpuid(); /* * |(1<<10) sets a reserved bit to signal that variable * was initialized already... This is to avoid interference * with cpuid snippets in ELF .init segment. */ OPENSSL_ia32cap_P[0] = (unsigned int)vec|(1<<10); OPENSSL_ia32cap_P[1] = (unsigned int)(vec>>32); } #endif Loading
crypto/cryptlib.h +1 −1 Original line number Diff line number Diff line Loading @@ -99,7 +99,7 @@ extern "C" { #define HEX_SIZE(type) (sizeof(type)*2) void OPENSSL_cpuid_setup(void); extern unsigned long OPENSSL_ia32cap_P; extern unsigned int OPENSSL_ia32cap_P[]; void OPENSSL_showfatal(const char *,...); void *OPENSSL_stderr(void); extern int OPENSSL_NONPIC_relocated; Loading
crypto/perlasm/x86gas.pl +1 −1 Original line number Diff line number Diff line Loading @@ -150,7 +150,7 @@ sub ::public_label sub ::file_end { if (grep {/\b${nmdecor}OPENSSL_ia32cap_P\b/i} @out) { my $tmp=".comm\t${nmdecor}OPENSSL_ia32cap_P,4"; my $tmp=".comm\t${nmdecor}OPENSSL_ia32cap_P,8"; if ($::elf) { push (@out,"$tmp,4\n"); } else { push (@out,"$tmp\n"); } } Loading
crypto/perlasm/x86masm.pl +1 −1 Original line number Diff line number Diff line Loading @@ -127,7 +127,7 @@ ___ if (grep {/\b${nmdecor}OPENSSL_ia32cap_P\b/i} @out) { my $comm=<<___; .bss SEGMENT COMM ${nmdecor}OPENSSL_ia32cap_P:DWORD COMM ${nmdecor}OPENSSL_ia32cap_P:QWORD .bss ENDS ___ # comment out OPENSSL_ia32cap_P declarations Loading
crypto/perlasm/x86nasm.pl +1 −1 Original line number Diff line number Diff line Loading @@ -114,7 +114,7 @@ sub ::file_end { if (grep {/\b${nmdecor}OPENSSL_ia32cap_P\b/i} @out) { my $comm=<<___; ${drdecor}segment .bss ${drdecor}common ${nmdecor}OPENSSL_ia32cap_P 4 ${drdecor}common ${nmdecor}OPENSSL_ia32cap_P 8 ___ # comment out OPENSSL_ia32cap_P declarations grep {s/(^extern\s+${nmdecor}OPENSSL_ia32cap_P)/\;$1/} @out; Loading