summaryrefslogtreecommitdiffstats
path: root/crypto/perlasm
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2007-11-22 21:21:35 +0000
committerAndy Polyakov <appro@openssl.org>2007-11-22 21:21:35 +0000
commitc1d2e00ec5d9b9bcfc4731c247c5e1461badeb81 (patch)
treef11fb600a301bbc8a7c2f495651fa398ca2999dc /crypto/perlasm
parentad8bd4ece8b4d03b21d9334ae4565283561e109d (diff)
Synchronize x86nasm.pl with x86unix.pl.
Diffstat (limited to 'crypto/perlasm')
-rw-r--r--crypto/perlasm/x86nasm.pl13
1 files changed, 8 insertions, 5 deletions
diff --git a/crypto/perlasm/x86nasm.pl b/crypto/perlasm/x86nasm.pl
index 68c89e8466..bbfcc81625 100644
--- a/crypto/perlasm/x86nasm.pl
+++ b/crypto/perlasm/x86nasm.pl
@@ -101,18 +101,21 @@ ___
}
sub ::function_begin_B
-{ my $func=$under.shift;
+{ my $func=shift;
+ my $begin="${lprfx}_${func}_begin";
my $tmp=<<___;
global $func
align 16
-$func:
+$under$func:
+$begin:
___
+ $label{$func}=$begin;
push(@out,$tmp);
$::stack=4;
}
sub ::function_end_B
{ my $i;
- foreach $i (%label) { undef $label{$i} if ($label{$i} =~ /^$prfx/); }
+ foreach $i (keys %label) { delete $label{$i} if ($label{$i} =~ /^${lprfx}[0-9]{3}/); }
$::stack=0;
}
@@ -199,8 +202,8 @@ sub ::comment { foreach (@_) { push(@out,"\t; $_\n"); } }
sub islabel # see is argument is known label
{ my $i;
- foreach $i (%label) { return $label{$i} if ($label{$i} eq $_[0]); }
- undef;
+ foreach $i (values %label) { return $i if ($i eq $_[0]); }
+ $label{$_[0]}; # can be undef
}
sub ::external_label