projects
/
openssl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
perlasm/x86masm.pl: make it work.
[openssl.git]
/
crypto
/
perlasm
/
x86masm.pl
diff --git
a/crypto/perlasm/x86masm.pl
b/crypto/perlasm/x86masm.pl
index 1741342c3af3549aa265b4bc1d2e4794b7758fc4..917d0f8b8e1982621b3a06cd8c1fe1cebd17f71f 100644
(file)
--- a/
crypto/perlasm/x86masm.pl
+++ b/
crypto/perlasm/x86masm.pl
@@
-18,10
+18,10
@@
sub ::generic
if ($opcode =~ /lea/ && @arg[1] =~ s/.*PTR\s+(\(.*\))$/OFFSET $1/) # no []
{ $opcode="mov"; }
if ($opcode =~ /lea/ && @arg[1] =~ s/.*PTR\s+(\(.*\))$/OFFSET $1/) # no []
{ $opcode="mov"; }
- elsif ($opcode !~ /mov
q
/)
+ elsif ($opcode !~ /mov
[dq]$
/)
{ # fix xmm references
{ # fix xmm references
- $arg[0] =~ s/\b[A-Z]+WORD\s+PTR/XMMWORD PTR/i if ($arg[1]=~/\bxmm[0-7]\b/i);
- $arg[1] =~ s/\b[A-Z]+WORD\s+PTR/XMMWORD PTR/i if ($arg[0]=~/\bxmm[0-7]\b/i);
+ $arg[0] =~ s/\b[A-Z]+WORD\s+PTR/XMMWORD PTR/i if ($arg[
-
1]=~/\bxmm[0-7]\b/i);
+ $arg[
-
1] =~ s/\b[A-Z]+WORD\s+PTR/XMMWORD PTR/i if ($arg[0]=~/\bxmm[0-7]\b/i);
}
&::emit($opcode,@arg);
}
&::emit($opcode,@arg);
@@
-160,13
+160,13
@@
sub ::public_label
{ push(@out,"PUBLIC\t".&::LABEL($_[0],$nmdecor.$_[0])."\n"); }
sub ::data_byte
{ push(@out,"PUBLIC\t".&::LABEL($_[0],$nmdecor.$_[0])."\n"); }
sub ::data_byte
-{ push(@out,("DB\t").join(',',
@_)."\n");
}
+{ push(@out,("DB\t").join(',',
splice(@_,0,16))."\n") while(@_);
}
sub ::data_short
sub ::data_short
-{ push(@out,("DW\t").join(',',
@_)."\n");
}
+{ push(@out,("DW\t").join(',',
splice(@_,0,8))."\n") while(@_);
}
sub ::data_word
sub ::data_word
-{ push(@out,("DD\t").join(',',
@_)."\n");
}
+{ push(@out,("DD\t").join(',',
splice(@_,0,4))."\n") while(@_);
}
sub ::align
{ push(@out,"ALIGN\t$_[0]\n"); }
sub ::align
{ push(@out,"ALIGN\t$_[0]\n"); }