From a9d14832fd98cb0c13b53fddea39765fb259358c Mon Sep 17 00:00:00 2001 From: Andy Polyakov Date: Sun, 30 Jun 2013 23:07:33 +0200 Subject: [PATCH] x86_64-xlate.pl: Windows fixes. --- crypto/perlasm/x86_64-xlate.pl | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/crypto/perlasm/x86_64-xlate.pl b/crypto/perlasm/x86_64-xlate.pl index d44afe1f5c..a2d870bb43 100755 --- a/crypto/perlasm/x86_64-xlate.pl +++ b/crypto/perlasm/x86_64-xlate.pl @@ -271,13 +271,14 @@ my %globals; } } else { %szmap = ( b=>"BYTE$PTR", w=>"WORD$PTR", l=>"DWORD$PTR", - q=>"QWORD$PTR",o=>"OWORD$PTR",x=>"XMMWORD$PTR" ); + q=>"QWORD$PTR",o=>"OWORD$PTR",x=>"XMMWORD$PTR", + y=>"" ); $self->{label} =~ s/\./\$/g; $self->{label} =~ s/(?{label} = "($self->{label})" if ($self->{label} =~ /[\*\+\-\/]/); - $sz="q" if ($self->{asterisk} || opcode->mnemonic() eq "movq"); - $sz="l" if (opcode->mnemonic() eq "movd"); + $sz="q" if ($self->{asterisk} || opcode->mnemonic() =~ /^v?movq$/); + $sz="l" if (opcode->mnemonic() =~ /^v?movd$/); if (defined($self->{index})) { sprintf "%s[%s%s*%d%s]",$szmap{$sz}, @@ -881,6 +882,7 @@ while($line=<>) { my $arg = $_->out(); # $insn.=$sz compensates for movq, pinsrw, ... if ($arg =~ /^xmm[0-9]+$/) { $insn.=$sz; $sz="x" if(!$sz); last; } + if ($arg =~ /^ymm[0-9]+$/) { $insn.=$sz; $sz="y" if(!$sz); last; } if ($arg =~ /^mm[0-9]+$/) { $insn.=$sz; $sz="q" if(!$sz); last; } } @args = reverse(@args); -- 2.25.1