mirror of
https://github.com/openssl/openssl.git
synced 2024-11-28 12:35:22 +08:00
Deprecate cpp and gaswin targets. New coff fills in for gaswin, but cpp is
going out...
This commit is contained in:
parent
00555c2f2f
commit
8aae01e223
@ -18,15 +18,13 @@ sub main'asm_init
|
||||
($type,$fn,$i386)=@_;
|
||||
$filename=$fn;
|
||||
|
||||
$elf=$cpp=$sol=$aout=$win32=$gaswin=$netware=0;
|
||||
$elf=$cpp=$coff=$aout=$win32=$netware=0;
|
||||
if ( ($type eq "elf"))
|
||||
{ $elf=1; require "x86unix.pl"; }
|
||||
elsif ( ($type eq "a.out"))
|
||||
{ $aout=1; require "x86unix.pl"; }
|
||||
elsif ( ($type eq "gaswin"))
|
||||
{ $gaswin=1; $aout=1; require "x86unix.pl"; }
|
||||
elsif ( ($type eq "sol"))
|
||||
{ $sol=1; require "x86unix.pl"; }
|
||||
elsif ( ($type eq "coff" or $type eq "gaswin"))
|
||||
{ $coff=1; require "x86unix.pl"; }
|
||||
elsif ( ($type eq "cpp"))
|
||||
{ $cpp=1; require "x86unix.pl"; }
|
||||
elsif ( ($type eq "win32"))
|
||||
@ -41,10 +39,9 @@ sub main'asm_init
|
||||
{
|
||||
print STDERR <<"EOF";
|
||||
Pick one target type from
|
||||
elf - linux, FreeBSD etc
|
||||
a.out - old linux
|
||||
sol - x86 solaris
|
||||
cpp - format so x86unix.cpp can be used
|
||||
elf - Linux, FreeBSD, Solaris x86, etc.
|
||||
a.out - OpenBSD, DJGPP, etc.
|
||||
coff - GAS/COFF such as Win32 targets
|
||||
win32 - Windows 95/Windows NT
|
||||
win32n - Windows 95/Windows NT NASM format
|
||||
nw-nasm - NetWare NASM format
|
||||
@ -61,7 +58,7 @@ EOF
|
||||
&comment("Don't even think of reading this code");
|
||||
&comment("It was automatically generated by $filename");
|
||||
&comment("Which is a perl program used to generate the x86 assember for");
|
||||
&comment("any of elf, a.out, BSDI, Win32, gaswin (for GNU as on Win32) or Solaris");
|
||||
&comment("any of ELF, a.out, COFF, Win32, ...");
|
||||
&comment("eric <eay\@cryptsoft.com>");
|
||||
&comment("");
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
#!/usr/local/bin/perl
|
||||
|
||||
package x86unix;
|
||||
package x86unix; # GAS actually...
|
||||
|
||||
$label="L000";
|
||||
$const="";
|
||||
$constl=0;
|
||||
|
||||
$align=($main'aout)?"4":"16";
|
||||
$under=($main'aout)?"_":"";
|
||||
$com_start=($main'sol)?"/":"#";
|
||||
$under=($main'aout or $main'coff)?"_":"";
|
||||
$com_start="#" if ($main'aout or $main'coff);
|
||||
|
||||
sub main'asm_init_output { @out=(); }
|
||||
sub main'asm_get_output { return(@out); }
|
||||
@ -322,8 +322,6 @@ sub main'file
|
||||
|
||||
local($tmp)=<<"EOF";
|
||||
.file "$file.s"
|
||||
.version "01.01"
|
||||
gcc2_compiled.:
|
||||
EOF
|
||||
push(@out,$tmp);
|
||||
}
|
||||
@ -337,15 +335,17 @@ sub main'function_begin
|
||||
|
||||
local($tmp)=<<"EOF";
|
||||
.text
|
||||
.align $align
|
||||
.align $align
|
||||
.globl $func
|
||||
EOF
|
||||
push(@out,$tmp);
|
||||
if ($main'cpp)
|
||||
{ $tmp=push(@out,"\tTYPE($func,\@function)\n"); }
|
||||
elsif ($main'gaswin)
|
||||
{ $tmp=push(@out,"\t.def\t$func;\t.scl\t2;\t.type\t32;\t.endef\n"); }
|
||||
else { $tmp=push(@out,"\t.type\t$func,\@function\n"); }
|
||||
{ $tmp=push(@out,"TYPE($func,\@function)\n"); }
|
||||
elsif ($main'coff)
|
||||
{ $tmp=push(@out,".def\t$func;\t.scl\t2;\t.type\t32;\t.endef\n"); }
|
||||
elsif ($main'aout)
|
||||
{ }
|
||||
else { $tmp=push(@out,".type\t$func,\@function\n"); }
|
||||
push(@out,"$func:\n");
|
||||
$tmp=<<"EOF";
|
||||
pushl %ebp
|
||||
@ -367,15 +367,17 @@ sub main'function_begin_B
|
||||
|
||||
local($tmp)=<<"EOF";
|
||||
.text
|
||||
.align $align
|
||||
.align $align
|
||||
.globl $func
|
||||
EOF
|
||||
push(@out,$tmp);
|
||||
if ($main'cpp)
|
||||
{ push(@out,"\tTYPE($func,\@function)\n"); }
|
||||
elsif ($main'gaswin)
|
||||
{ $tmp=push(@out,"\t.def\t$func;\t.scl\t2;\t.type\t32;\t.endef\n"); }
|
||||
else { push(@out,"\t.type $func,\@function\n"); }
|
||||
{ push(@out,"TYPE($func,\@function)\n"); }
|
||||
elsif ($main'coff)
|
||||
{ $tmp=push(@out,".def\t$func;\t.scl\t2;\t.type\t32;\t.endef\n"); }
|
||||
elsif ($main'aout)
|
||||
{ }
|
||||
else { push(@out,".type $func,\@function\n"); }
|
||||
push(@out,"$func:\n");
|
||||
$stack=4;
|
||||
}
|
||||
@ -397,10 +399,10 @@ EOF
|
||||
push(@out,$tmp);
|
||||
|
||||
if ($main'cpp)
|
||||
{ push(@out,"\tSIZE($func,.L_${func}_end-$func)\n"); }
|
||||
elsif ($main'gaswin)
|
||||
{ $tmp=push(@out,"\t.align 4\n"); }
|
||||
else { push(@out,"\t.size\t$func,.L_${func}_end-$func\n"); }
|
||||
{ push(@out,"SIZE($func,.L_${func}_end-$func)\n"); }
|
||||
elsif ($main'coff or $main'aout)
|
||||
{ $tmp=push(@out,".align $align\n"); }
|
||||
else { push(@out,".size\t$func,.L_${func}_end-$func\n"); }
|
||||
push(@out,".ident \"$func\"\n");
|
||||
$stack=0;
|
||||
%label=();
|
||||
@ -428,10 +430,10 @@ sub main'function_end_B
|
||||
|
||||
push(@out,".L_${func}_end:\n");
|
||||
if ($main'cpp)
|
||||
{ push(@out,"\tSIZE($func,.L_${func}_end-$func)\n"); }
|
||||
elsif ($main'gaswin)
|
||||
{ push(@out,"\t.align 4\n"); }
|
||||
else { push(@out,"\t.size\t$func,.L_${func}_end-$func\n"); }
|
||||
{ push(@out,"SIZE($func,.L_${func}_end-$func)\n"); }
|
||||
elsif ($main'coff or $main'aout)
|
||||
{ push(@out,".align $align\n"); }
|
||||
else { push(@out,".size\t$func,.L_${func}_end-$func\n"); }
|
||||
push(@out,".ident \"$func\"\n");
|
||||
$stack=0;
|
||||
%label=();
|
||||
@ -473,6 +475,7 @@ sub main'swtmp
|
||||
|
||||
sub main'comment
|
||||
{
|
||||
return if (!defined($com_start);
|
||||
if ($main'elf) # GNU and SVR4 as'es use different comment delimiters,
|
||||
{ # so we just skip comments...
|
||||
push(@out,"\n");
|
||||
@ -571,7 +574,13 @@ sub main'data_word
|
||||
|
||||
sub main'align
|
||||
{
|
||||
push(@out,".align $_[0]\n");
|
||||
my $val=$_[0],$p2,$i;
|
||||
if ($main'aout) {
|
||||
for ($p2=0;$val!=0;$val>>=1) { $p2++; }
|
||||
$val=$p2-1;
|
||||
$val.=",0x90";
|
||||
}
|
||||
push(@out,".align $val\n");
|
||||
}
|
||||
|
||||
# debug output functions: puts, putx, printf
|
||||
@ -666,7 +675,6 @@ ___
|
||||
}
|
||||
elsif ($main'pic && ($main'elf || $main'aout))
|
||||
{
|
||||
push(@out,"\t.align\t4\n");
|
||||
&main'call(&main'label("PIC_me_up"));
|
||||
&main'set_label("PIC_me_up");
|
||||
&main'blindpop($dst);
|
||||
|
Loading…
Reference in New Issue
Block a user