Minor perlasm updates.
authorAndy Polyakov <appro@openssl.org>
Mon, 3 Nov 2008 08:46:07 +0000 (08:46 +0000)
committerAndy Polyakov <appro@openssl.org>
Mon, 3 Nov 2008 08:46:07 +0000 (08:46 +0000)
crypto/perlasm/x86_64-xlate.pl
crypto/perlasm/x86gas.pl

index 10b8629..647e72e 100755 (executable)
@@ -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;
index 9969d38..e3fbb94 100644 (file)
@@ -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