diff options
Diffstat (limited to 'crypto/perlasm')
-rwxr-xr-x | crypto/perlasm/x86_64-xlate.pl | 10 | ||||
-rw-r--r-- | crypto/perlasm/x86gas.pl | 4 |
2 files changed, 9 insertions, 5 deletions
diff --git a/crypto/perlasm/x86_64-xlate.pl b/crypto/perlasm/x86_64-xlate.pl index 10b8629e61..647e72e171 100755 --- a/crypto/perlasm/x86_64-xlate.pl +++ b/crypto/perlasm/x86_64-xlate.pl @@ -68,7 +68,7 @@ my $output = shift; if ($stddev!=$outdev || $stdino!=$outino); } -my $win64=1 if ($output =~ /\.asm/); +my $win64=1 if ($output =~ /\.asm$/); my $masmref=8 + 50727*2**-32; # 8.00.50727 shipped with VS2005 my $masm=0; @@ -462,8 +462,12 @@ my %globals; last; }; /\.size/ && do { if (defined($current_function)) { - $self->{value}="\$L\$SEH_end_$current_function->{name}:"; - $self->{value}.=":\n$current_function->{name}\tENDP" if($masm); + undef $self->{value}; + if ($current_function->{abi} eq "svr4") { + $self->{value}="\$L\$SEH_end_$current_function->{name}:"; + $self->{value}.=":\n" if($masm); + } + $self->{value}.="$current_function->{name}\tENDP" if($masm); undef $current_function; } last; diff --git a/crypto/perlasm/x86gas.pl b/crypto/perlasm/x86gas.pl index 9969d382cf..e3fbb940f0 100644 --- a/crypto/perlasm/x86gas.pl +++ b/crypto/perlasm/x86gas.pl @@ -77,11 +77,11 @@ sub ::jmp_ptr { &::generic("jmp","*$_[0]"); } }; *::shld = sub { my($dst,$src,$bits)=@_; - &::emit("shldl",$bit eq "cl"?"%cl":"\$$bits","%$src","%$dst"); + &::emit("shldl",$bits eq "cl"?"%cl":"\$$bits","%$src","%$dst"); }; *::shrd = sub { my($dst,$src,$bits)=@_; - &::emit("shrdl",$bit eq "cl"?"%cl":"\$$bits","%$src","%$dst"); + &::emit("shrdl",$bits eq "cl"?"%cl":"\$$bits","%$src","%$dst"); }; sub ::DWP |