1 diff --git a/crypto/perlasm/x86masm.pl b/crypto/perlasm/x86masm.pl
2 index 1741342..917d0f8 100644
3 --- a/crypto/perlasm/x86masm.pl
4 +++ b/crypto/perlasm/x86masm.pl
5 @@ -18,10 +18,10 @@ sub ::generic
7 if ($opcode =~ /lea/ && @arg[1] =~ s/.*PTR\s+(\(.*\))$/OFFSET $1/) # no []
9 - elsif ($opcode !~ /movq/)
10 + elsif ($opcode !~ /mov[dq]$/)
11 { # fix xmm references
12 - $arg[0] =~ s/\b[A-Z]+WORD\s+PTR/XMMWORD PTR/i if ($arg[1]=~/\bxmm[0-7]\b/i);
13 - $arg[1] =~ s/\b[A-Z]+WORD\s+PTR/XMMWORD PTR/i if ($arg[0]=~/\bxmm[0-7]\b/i);
14 + $arg[0] =~ s/\b[A-Z]+WORD\s+PTR/XMMWORD PTR/i if ($arg[-1]=~/\bxmm[0-7]\b/i);
15 + $arg[-1] =~ s/\b[A-Z]+WORD\s+PTR/XMMWORD PTR/i if ($arg[0]=~/\bxmm[0-7]\b/i);
18 &::emit($opcode,@arg);
19 @@ -160,13 +160,13 @@ sub ::public_label
20 { push(@out,"PUBLIC\t".&::LABEL($_[0],$nmdecor.$_[0])."\n"); }
23 -{ push(@out,("DB\t").join(',',@_)."\n"); }
24 +{ push(@out,("DB\t").join(',',splice(@_,0,16))."\n") while(@_); }
27 -{ push(@out,("DW\t").join(',',@_)."\n"); }
28 +{ push(@out,("DW\t").join(',',splice(@_,0,8))."\n") while(@_); }
31 -{ push(@out,("DD\t").join(',',@_)."\n"); }
32 +{ push(@out,("DD\t").join(',',splice(@_,0,4))."\n") while(@_); }
35 { push(@out,"ALIGN\t$_[0]\n"); }