summaryrefslogtreecommitdiffstats
path: root/crypto/perlasm
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2013-10-03 00:26:09 +0200
committerAndy Polyakov <appro@openssl.org>2013-12-09 22:19:34 +0100
commit3aa1b1ccbbfaf1a89c590295d7a69de2e705a442 (patch)
tree9637f254591e1b627cef21a416f4e56ffe9e01e7 /crypto/perlasm
parent3dcae82fa9645d55d5f4fa3946dbd21620bbe725 (diff)
x86_64-xlate.pl: fix jrcxz in nasm case.
(cherry picked from commit 667053a2f3ad0788586f629f618d07b783bdde31)
Diffstat (limited to 'crypto/perlasm')
-rwxr-xr-xcrypto/perlasm/x86_64-xlate.pl6
1 files changed, 3 insertions, 3 deletions
diff --git a/crypto/perlasm/x86_64-xlate.pl b/crypto/perlasm/x86_64-xlate.pl
index fd3d7e4384..ead4a7d3b5 100755
--- a/crypto/perlasm/x86_64-xlate.pl
+++ b/crypto/perlasm/x86_64-xlate.pl
@@ -250,8 +250,8 @@ my %globals;
# in $self->{label}, new gas requires sign extension...
use integer;
$self->{label} =~ s/(?<![\w\$\.])(0x?[0-9a-f]+)/oct($1)/egi;
- $self->{label} =~ s/([0-9]+\s*[\*\/\%]\s*[0-9]+)/eval($1)/eg;
- $self->{label} =~ s/([0-9]+)/$1<<32>>32/eg;
+ $self->{label} =~ s/\b([0-9]+\s*[\*\/\%]\s*[0-9]+)\b/eval($1)/eg;
+ $self->{label} =~ s/\b([0-9]+)\b/$1<<32>>32/eg;
if (!$self->{label} && $self->{index} && $self->{scale}==1 &&
$self->{base} =~ /(rbp|r13)/) {
@@ -418,7 +418,7 @@ my %globals;
}
sub out {
my $self = shift;
- if ($nasm && opcode->mnemonic()=~m/^j/) {
+ if ($nasm && opcode->mnemonic()=~m/^j(?![re]cxz)/) {
"NEAR ".$self->{value};
} else {
$self->{value};