Loading Configure +8 −1 Original line number Diff line number Diff line Loading @@ -492,7 +492,14 @@ my %table=( # MinGW "mingw", "gcc:-mno-cygwin -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall:::MINGW32:-lws2_32 -lgdi32:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts} EXPORT_VAR_AS_FN:${x86_asm}:coff:win32:cygwin-shared:-D_WINDLL -DOPENSSL_USE_APPLINK:-mno-cygwin:.dll.a", "mingw64", "gcc:-mno-cygwin -DL_ENDIAN -O3 -Wall -DWIN32_LEAN_AND_MEAN -DUNICODE -D_UNICODE:::MINGW64:-lws2_32 -lgdi32:SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:${no_asm}:win32:cygwin-shared:-D_WINDLL:-mno-cygwin:.dll.a", # As for OPENSSL_USE_APPLINK. Applink makes it possible to use .dll # compiled with one compiler with application compiled with another # compiler. It's possible to engage Applink support in mingw64 build, # but it's not done, because till mingw64 supports structured exception # handling, one can't seriously consider its binaries for using with # non-mingw64 run-time environment. And as mingw64 is always consistent # with itself, Applink is never engaged and can as well be omitted. "mingw64", "gcc:-mno-cygwin -DL_ENDIAN -O3 -Wall -DWIN32_LEAN_AND_MEAN -DUNICODE -D_UNICODE:::MINGW64:-lws2_32 -lgdi32:SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:${x86_64_asm}:mingw64:win32:cygwin-shared:-D_WINDLL:-mno-cygwin:.dll.a", # UWIN "UWIN", "cc:-DTERMIOS -DL_ENDIAN -O -Wall:::UWIN::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:win32", Loading TABLE +8 −8 Original line number Diff line number Diff line Loading @@ -3608,20 +3608,20 @@ $thread_cflag = $sys_id = MINGW64 $lflags = -lws2_32 -lgdi32 $bn_ops = SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN $cpuid_obj = $bn_obj = $cpuid_obj = x86_64cpuid.o $bn_obj = x86_64-gcc.o x86_64-mont.o $des_obj = $aes_obj = $aes_obj = aes-x86_64.o $bf_obj = $md5_obj = $sha1_obj = $md5_obj = md5-x86_64.o $sha1_obj = sha1-x86_64.o sha256-x86_64.o sha512-x86_64.o $cast_obj = $rc4_obj = $rc4_obj = rc4-x86_64.o $rmd160_obj = $rc5_obj = $wp_obj = $wp_obj = wp-x86_64.o $cmll_obj = $perlasm_scheme = void $perlasm_scheme = mingw64 $dso_scheme = win32 $shared_target= cygwin-shared $shared_cflag = -D_WINDLL Loading crypto/bn/asm/x86_64-gcc.c +5 −1 Original line number Diff line number Diff line #ifdef __SUNPRO_C #if !(defined(__GNUC__) && __GNUC__>=2) # include "../bn_asm.c" /* kind of dirty hack for Sun Studio */ #else /* Loading Loading @@ -54,7 +54,11 @@ * machine. */ #ifdef _WIN64 #define BN_ULONG unsigned long long #else #define BN_ULONG unsigned long #endif /* * "m"(a), "+m"(r) is the way to favor DirectPath -code; Loading crypto/perlasm/x86_64-xlate.pl +18 −14 Original line number Diff line number Diff line Loading @@ -71,6 +71,7 @@ my $gas=1; $gas=0 if ($output =~ /\.asm$/); my $elf=1; $elf=0 if (!$gas); my $win64=0; my $prefix=""; my $decor=".L"; my $masmref=8 + 50727*2**-32; # 8.00.50727 shipped with VS2005 my $masm=0; Loading @@ -80,9 +81,9 @@ my $nasmref=2.03; my $nasm=0; if ($flavour eq "mingw64") { $gas=1; $elf=0; $win64=1; $prefix="_"; } elsif ($flavour eq "macosx") { $gas=1; $elf=0; $prefix="_"; } elsif ($flavour eq "masm") { $gas=0; $elf=0; $masm=$masmref; $win64=1; } elsif ($flavour eq "nasm") { $gas=0; $elf=0; $nasm=$nasmref; $win64=1; $PTR=""; } elsif ($flavour eq "macosx") { $gas=1; $elf=0; $prefix="_"; $decor="L\$"; } elsif ($flavour eq "masm") { $gas=0; $elf=0; $masm=$masmref; $win64=1; $decor="\$L\$"; } elsif ($flavour eq "nasm") { $gas=0; $elf=0; $nasm=$nasmref; $win64=1; $decor="\$L\$"; $PTR=""; } elsif (!$gas) { if ($ENV{ASM} =~ m/nasm/ && `nasm -v` =~ m/version ([0-9]+)\.([0-9]+)/i) { $nasm = $1 + $2*0.01; $PTR=""; } Loading @@ -91,6 +92,7 @@ elsif (!$gas) die "no assembler found on %PATH" if (!($nasm || $masm)); $win64=1; $elf=0; $decor="\$L\$"; } my $current_segment; Loading Loading @@ -228,6 +230,7 @@ my %globals; my $sz = shift; $self->{label} =~ s/([_a-z][_a-z0-9]*)/$globals{$1} or $1/gei; $self->{label} =~ s/\.L/$decor/g; # Silently convert all EAs to 64-bit. This is required for # elder GNU assembler and results in more compact code, Loading @@ -240,7 +243,7 @@ my %globals; # in $self->{label} $self->{label} =~ s/(?<![0-9a-f])(0[x0-9a-f]+)/oct($1)/egi; $self->{label} =~ s/([0-9]+\s*[\*\/\%]\s*[0-9]+)/eval($1)/eg; $self->{label} =~ s/\.L/L\$/g if (!$elf); $self->{label} =~ s/^___imp_/__imp__/ if ($flavour eq "mingw64"); if (defined($self->{index})) { sprintf "%s%s(%%%s,%%%s,%d)",$self->{asterisk}, Loading @@ -252,7 +255,6 @@ my %globals; } else { %szmap = ( b=>"BYTE$PTR", w=>"WORD$PTR", l=>"DWORD$PTR", q=>"QWORD$PTR" ); $self->{label} =~ s/\.L/\$L\$/g; $self->{label} =~ s/\./\$/g; $self->{label} =~ s/0x([0-9a-f]+)/0$1h/ig; $self->{label} = "($self->{label})" if ($self->{label} =~ /[\*\+\-\/]/); Loading Loading @@ -322,8 +324,7 @@ my %globals; $ret = $self; $line = substr($line,@+[0]); $line =~ s/^\s+//; $self->{value} =~ s/\.L/\$L\$/ if (!$gas); $self->{value} =~ s/\.L/L\$/ if (!$elf); $self->{value} =~ s/^\.L/$decor/; } $ret; } Loading @@ -339,7 +340,7 @@ my %globals; $func .= " movq %rdi,8(%rsp)\n"; $func .= " movq %rsi,16(%rsp)\n"; $func .= " movq %rsp,%rax\n"; $func .= ".LSEH_begin_$current_function->{name}:\n"; $func .= "${decor}SEH_begin_$current_function->{name}:\n"; my $narg = $current_function->{narg}; $narg=6 if (!defined($narg)); $func .= " movq %rcx,%rdi\n" if ($narg>0); Loading @@ -360,7 +361,7 @@ my %globals; $func .= " mov QWORD${PTR}[8+rsp],rdi\t;WIN64 prologue\n"; $func .= " mov QWORD${PTR}[16+rsp],rsi\n"; $func .= " mov rax,rsp\n"; $func .= "\$L\$SEH_begin_$current_function->{name}:"; $func .= "${decor}SEH_begin_$current_function->{name}:"; $func .= ":" if ($masm); $func .= "\n"; my $narg = $current_function->{narg}; Loading Loading @@ -391,8 +392,7 @@ my %globals; $self->{value} =~ s/\@PLT// if (!$elf); $self->{value} =~ s/([_a-z][_a-z0-9]*)/$globals{$1} or $1/gei; $self->{value} =~ s/\.L/\$L\$/g if (!$gas); $self->{value} =~ s/\.L/L\$/g if (!$elf); $self->{value} =~ s/\.L/$decor/g; } $ret; } Loading Loading @@ -461,6 +461,11 @@ my %globals; } last; }; /\.rva|\.long|\.quad/ && do { $line =~ s/([_a-z][_a-z0-9]*)/$globals{$1} or $1/gei; $line =~ s/\.L/$decor/g; last; }; } if ($gas) { Loading @@ -477,7 +482,7 @@ my %globals; } elsif (!$elf && $dir =~ /\.size/) { $self->{value} = ""; if (defined($current_function)) { $self->{value} .= ".LSEH_end_$current_function->{name}:" $self->{value} .= "${decor}SEH_end_$current_function->{name}:" if ($win64 && $current_function->{abi} eq "svr4"); undef $current_function; } Loading Loading @@ -555,7 +560,7 @@ my %globals; /\.size/ && do { if (defined($current_function)) { undef $self->{value}; if ($current_function->{abi} eq "svr4") { $self->{value}="\$L\$SEH_end_$current_function->{name}:"; $self->{value}="${decor}SEH_end_$current_function->{name}:"; $self->{value}.=":\n" if($masm); } $self->{value}.="$current_function->{name}\tENDP" if($masm); Loading @@ -570,7 +575,6 @@ my %globals; my $last = pop(@arr); my $conv = sub { my $var=shift; $var=~s/0x([0-9a-f]+)/0$1h/ig; $var=~s/\.L/\$L\$/g; if ($sz eq "D" && ($current_segment=~/.[px]data/ || $dir eq ".rva")) { $var=~s/([_a-z\$\@][_a-z0-9\$\@]*)/$nasm?"$1 wrt ..imagebase":"imagerel $1"/egi; } $var; Loading Loading
Configure +8 −1 Original line number Diff line number Diff line Loading @@ -492,7 +492,14 @@ my %table=( # MinGW "mingw", "gcc:-mno-cygwin -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall:::MINGW32:-lws2_32 -lgdi32:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts} EXPORT_VAR_AS_FN:${x86_asm}:coff:win32:cygwin-shared:-D_WINDLL -DOPENSSL_USE_APPLINK:-mno-cygwin:.dll.a", "mingw64", "gcc:-mno-cygwin -DL_ENDIAN -O3 -Wall -DWIN32_LEAN_AND_MEAN -DUNICODE -D_UNICODE:::MINGW64:-lws2_32 -lgdi32:SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:${no_asm}:win32:cygwin-shared:-D_WINDLL:-mno-cygwin:.dll.a", # As for OPENSSL_USE_APPLINK. Applink makes it possible to use .dll # compiled with one compiler with application compiled with another # compiler. It's possible to engage Applink support in mingw64 build, # but it's not done, because till mingw64 supports structured exception # handling, one can't seriously consider its binaries for using with # non-mingw64 run-time environment. And as mingw64 is always consistent # with itself, Applink is never engaged and can as well be omitted. "mingw64", "gcc:-mno-cygwin -DL_ENDIAN -O3 -Wall -DWIN32_LEAN_AND_MEAN -DUNICODE -D_UNICODE:::MINGW64:-lws2_32 -lgdi32:SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:${x86_64_asm}:mingw64:win32:cygwin-shared:-D_WINDLL:-mno-cygwin:.dll.a", # UWIN "UWIN", "cc:-DTERMIOS -DL_ENDIAN -O -Wall:::UWIN::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:win32", Loading
TABLE +8 −8 Original line number Diff line number Diff line Loading @@ -3608,20 +3608,20 @@ $thread_cflag = $sys_id = MINGW64 $lflags = -lws2_32 -lgdi32 $bn_ops = SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN $cpuid_obj = $bn_obj = $cpuid_obj = x86_64cpuid.o $bn_obj = x86_64-gcc.o x86_64-mont.o $des_obj = $aes_obj = $aes_obj = aes-x86_64.o $bf_obj = $md5_obj = $sha1_obj = $md5_obj = md5-x86_64.o $sha1_obj = sha1-x86_64.o sha256-x86_64.o sha512-x86_64.o $cast_obj = $rc4_obj = $rc4_obj = rc4-x86_64.o $rmd160_obj = $rc5_obj = $wp_obj = $wp_obj = wp-x86_64.o $cmll_obj = $perlasm_scheme = void $perlasm_scheme = mingw64 $dso_scheme = win32 $shared_target= cygwin-shared $shared_cflag = -D_WINDLL Loading
crypto/bn/asm/x86_64-gcc.c +5 −1 Original line number Diff line number Diff line #ifdef __SUNPRO_C #if !(defined(__GNUC__) && __GNUC__>=2) # include "../bn_asm.c" /* kind of dirty hack for Sun Studio */ #else /* Loading Loading @@ -54,7 +54,11 @@ * machine. */ #ifdef _WIN64 #define BN_ULONG unsigned long long #else #define BN_ULONG unsigned long #endif /* * "m"(a), "+m"(r) is the way to favor DirectPath -code; Loading
crypto/perlasm/x86_64-xlate.pl +18 −14 Original line number Diff line number Diff line Loading @@ -71,6 +71,7 @@ my $gas=1; $gas=0 if ($output =~ /\.asm$/); my $elf=1; $elf=0 if (!$gas); my $win64=0; my $prefix=""; my $decor=".L"; my $masmref=8 + 50727*2**-32; # 8.00.50727 shipped with VS2005 my $masm=0; Loading @@ -80,9 +81,9 @@ my $nasmref=2.03; my $nasm=0; if ($flavour eq "mingw64") { $gas=1; $elf=0; $win64=1; $prefix="_"; } elsif ($flavour eq "macosx") { $gas=1; $elf=0; $prefix="_"; } elsif ($flavour eq "masm") { $gas=0; $elf=0; $masm=$masmref; $win64=1; } elsif ($flavour eq "nasm") { $gas=0; $elf=0; $nasm=$nasmref; $win64=1; $PTR=""; } elsif ($flavour eq "macosx") { $gas=1; $elf=0; $prefix="_"; $decor="L\$"; } elsif ($flavour eq "masm") { $gas=0; $elf=0; $masm=$masmref; $win64=1; $decor="\$L\$"; } elsif ($flavour eq "nasm") { $gas=0; $elf=0; $nasm=$nasmref; $win64=1; $decor="\$L\$"; $PTR=""; } elsif (!$gas) { if ($ENV{ASM} =~ m/nasm/ && `nasm -v` =~ m/version ([0-9]+)\.([0-9]+)/i) { $nasm = $1 + $2*0.01; $PTR=""; } Loading @@ -91,6 +92,7 @@ elsif (!$gas) die "no assembler found on %PATH" if (!($nasm || $masm)); $win64=1; $elf=0; $decor="\$L\$"; } my $current_segment; Loading Loading @@ -228,6 +230,7 @@ my %globals; my $sz = shift; $self->{label} =~ s/([_a-z][_a-z0-9]*)/$globals{$1} or $1/gei; $self->{label} =~ s/\.L/$decor/g; # Silently convert all EAs to 64-bit. This is required for # elder GNU assembler and results in more compact code, Loading @@ -240,7 +243,7 @@ my %globals; # in $self->{label} $self->{label} =~ s/(?<![0-9a-f])(0[x0-9a-f]+)/oct($1)/egi; $self->{label} =~ s/([0-9]+\s*[\*\/\%]\s*[0-9]+)/eval($1)/eg; $self->{label} =~ s/\.L/L\$/g if (!$elf); $self->{label} =~ s/^___imp_/__imp__/ if ($flavour eq "mingw64"); if (defined($self->{index})) { sprintf "%s%s(%%%s,%%%s,%d)",$self->{asterisk}, Loading @@ -252,7 +255,6 @@ my %globals; } else { %szmap = ( b=>"BYTE$PTR", w=>"WORD$PTR", l=>"DWORD$PTR", q=>"QWORD$PTR" ); $self->{label} =~ s/\.L/\$L\$/g; $self->{label} =~ s/\./\$/g; $self->{label} =~ s/0x([0-9a-f]+)/0$1h/ig; $self->{label} = "($self->{label})" if ($self->{label} =~ /[\*\+\-\/]/); Loading Loading @@ -322,8 +324,7 @@ my %globals; $ret = $self; $line = substr($line,@+[0]); $line =~ s/^\s+//; $self->{value} =~ s/\.L/\$L\$/ if (!$gas); $self->{value} =~ s/\.L/L\$/ if (!$elf); $self->{value} =~ s/^\.L/$decor/; } $ret; } Loading @@ -339,7 +340,7 @@ my %globals; $func .= " movq %rdi,8(%rsp)\n"; $func .= " movq %rsi,16(%rsp)\n"; $func .= " movq %rsp,%rax\n"; $func .= ".LSEH_begin_$current_function->{name}:\n"; $func .= "${decor}SEH_begin_$current_function->{name}:\n"; my $narg = $current_function->{narg}; $narg=6 if (!defined($narg)); $func .= " movq %rcx,%rdi\n" if ($narg>0); Loading @@ -360,7 +361,7 @@ my %globals; $func .= " mov QWORD${PTR}[8+rsp],rdi\t;WIN64 prologue\n"; $func .= " mov QWORD${PTR}[16+rsp],rsi\n"; $func .= " mov rax,rsp\n"; $func .= "\$L\$SEH_begin_$current_function->{name}:"; $func .= "${decor}SEH_begin_$current_function->{name}:"; $func .= ":" if ($masm); $func .= "\n"; my $narg = $current_function->{narg}; Loading Loading @@ -391,8 +392,7 @@ my %globals; $self->{value} =~ s/\@PLT// if (!$elf); $self->{value} =~ s/([_a-z][_a-z0-9]*)/$globals{$1} or $1/gei; $self->{value} =~ s/\.L/\$L\$/g if (!$gas); $self->{value} =~ s/\.L/L\$/g if (!$elf); $self->{value} =~ s/\.L/$decor/g; } $ret; } Loading Loading @@ -461,6 +461,11 @@ my %globals; } last; }; /\.rva|\.long|\.quad/ && do { $line =~ s/([_a-z][_a-z0-9]*)/$globals{$1} or $1/gei; $line =~ s/\.L/$decor/g; last; }; } if ($gas) { Loading @@ -477,7 +482,7 @@ my %globals; } elsif (!$elf && $dir =~ /\.size/) { $self->{value} = ""; if (defined($current_function)) { $self->{value} .= ".LSEH_end_$current_function->{name}:" $self->{value} .= "${decor}SEH_end_$current_function->{name}:" if ($win64 && $current_function->{abi} eq "svr4"); undef $current_function; } Loading Loading @@ -555,7 +560,7 @@ my %globals; /\.size/ && do { if (defined($current_function)) { undef $self->{value}; if ($current_function->{abi} eq "svr4") { $self->{value}="\$L\$SEH_end_$current_function->{name}:"; $self->{value}="${decor}SEH_end_$current_function->{name}:"; $self->{value}.=":\n" if($masm); } $self->{value}.="$current_function->{name}\tENDP" if($masm); Loading @@ -570,7 +575,6 @@ my %globals; my $last = pop(@arr); my $conv = sub { my $var=shift; $var=~s/0x([0-9a-f]+)/0$1h/ig; $var=~s/\.L/\$L\$/g; if ($sz eq "D" && ($current_segment=~/.[px]data/ || $dir eq ".rva")) { $var=~s/([_a-z\$\@][_a-z0-9\$\@]*)/$nasm?"$1 wrt ..imagebase":"imagerel $1"/egi; } $var; Loading