summaryrefslogtreecommitdiffstats
path: root/crypto/perlasm/x86asm.pl
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2008-12-17 19:56:48 +0000
committerAndy Polyakov <appro@openssl.org>2008-12-17 19:56:48 +0000
commit4db4882402a79345a075c62a87f2fb7cfe89e283 (patch)
treeb7291b024493da79cb67ec88f7041cf57a54c683 /crypto/perlasm/x86asm.pl
parent6786f52ada04daba9733aef6a7050809bf6ce4d2 (diff)
perlasm/x86* update: support for 3 and 4 argument instructions.
Diffstat (limited to 'crypto/perlasm/x86asm.pl')
-rw-r--r--crypto/perlasm/x86asm.pl9
1 files changed, 3 insertions, 6 deletions
diff --git a/crypto/perlasm/x86asm.pl b/crypto/perlasm/x86asm.pl
index 3ec97221a9..28080caaa6 100644
--- a/crypto/perlasm/x86asm.pl
+++ b/crypto/perlasm/x86asm.pl
@@ -17,7 +17,7 @@ $i386=0;
sub ::AUTOLOAD
{ my $opcode = $AUTOLOAD;
- die "more than 2 arguments passed to $opcode" if ($#_>1);
+ die "more than 4 arguments passed to $opcode" if ($#_>3);
$opcode =~ s/.*:://;
if ($opcode =~ /^push/) { $stack+=4; }
@@ -66,8 +66,8 @@ sub ::rotr { &ror(@_); }
sub ::exch { &xchg(@_); }
sub ::halt { &hlt; }
sub ::movz { &movzx(@_); }
-sub ::pushf { &::pushfd; }
-sub ::popf { &::popfd; }
+sub ::pushf { &pushfd; }
+sub ::popf { &popfd; }
# 3 argument instructions
sub ::movq
@@ -79,9 +79,6 @@ sub ::movq
else
{ &::generic("movq",@_); }
}
-sub ::pshufw { &::emit("pshufw",@_); }
-sub ::shld { &::emit("shld",@_); }
-sub ::shrd { &::emit("shrd",@_); }
# label management
$lbdecor="L"; # local label decoration, set by package