summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2016-04-18 13:27:01 +0200
committerAndy Polyakov <appro@openssl.org>2016-04-20 09:51:33 +0200
commitd405aa2ff265965c71ce7331cf0e49d634a06924 (patch)
tree413e51123bd732592da979504d3e1187dc5123b3
parent6ca3e6e779635ac54d51efb3483b7616abfdf477 (diff)
perlasm/x86_64-xlate.pl: make latest ml64 work.
Reviewed-by: Richard Levitte <levitte@openssl.org>
-rwxr-xr-xcrypto/perlasm/x86_64-xlate.pl7
1 files changed, 5 insertions, 2 deletions
diff --git a/crypto/perlasm/x86_64-xlate.pl b/crypto/perlasm/x86_64-xlate.pl
index 80ab17fc25..6682132c4b 100755
--- a/crypto/perlasm/x86_64-xlate.pl
+++ b/crypto/perlasm/x86_64-xlate.pl
@@ -286,7 +286,7 @@ my %globals;
(opcode->mnemonic() =~ /^v?mov([qd])$/) && ($sz=$1) ||
(opcode->mnemonic() =~ /^v?pinsr([qdwb])$/) && ($sz=$1) ||
(opcode->mnemonic() =~ /^vpbroadcast([qdwb])$/) && ($sz=$1) ||
- (opcode->mnemonic() =~ /^vinsert[fi]128$/) && ($sz="x");
+ (opcode->mnemonic() =~ /^v(?!perm)[a-z]+[fi]128$/) && ($sz="x");
if (defined($self->{index})) {
sprintf "%s[%s%s*%d%s]",$szmap{$sz},
@@ -607,7 +607,10 @@ my %globals;
}
last;
};
- /\.align/ && do { $self->{value} = "ALIGN\t".$line; last; };
+ /\.align/ && do { my $max = ($masm && $masm>=$masmref) ? 256 : 4096;
+ $self->{value} = "ALIGN\t".($line>$max?$max:$line);
+ last;
+ };
/\.(value|long|rva|quad)/
&& do { my $sz = substr($1,0,1);
my @arr = split(/,\s*/,$line);