x86_64-xlate.pl: fix jrcxz in nasm case.

(cherry picked from commit 667053a2f3)
This commit is contained in:
Andy Polyakov 2013-10-03 00:26:09 +02:00
parent 3dcae82fa9
commit 3aa1b1ccbb

View File

@ -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};