diff options
author | Andy Polyakov <appro@openssl.org> | 2011-05-16 17:44:38 +0000 |
---|---|---|
committer | Andy Polyakov <appro@openssl.org> | 2011-05-16 17:44:38 +0000 |
commit | b5c6aab57e71015c00d5149f1cf6d03dab1d67ec (patch) | |
tree | 0d6d203300cbe43ecc76fae9f6610f024357bdc1 /crypto/modes | |
parent | b9b0a177f853cb01ab48881383f81afb08058460 (diff) |
x86_64-xlate.pl: allow "base-less" effective address, add palignr, move
pclmulqdq.
Diffstat (limited to 'crypto/modes')
-rw-r--r-- | crypto/modes/asm/ghash-x86_64.pl | 28 |
1 files changed, 0 insertions, 28 deletions
diff --git a/crypto/modes/asm/ghash-x86_64.pl b/crypto/modes/asm/ghash-x86_64.pl index 34edb397eb..a5ae180882 100644 --- a/crypto/modes/asm/ghash-x86_64.pl +++ b/crypto/modes/asm/ghash-x86_64.pl @@ -798,35 +798,7 @@ se_handler: ___ } -sub rex { - local *opcode=shift; - my ($dst,$src)=@_; - - if ($dst>=8 || $src>=8) { - $rex=0x40; - $rex|=0x04 if($dst>=8); - $rex|=0x01 if($src>=8); - push @opcode,$rex; - } -} - -sub pclmulqdq { - my $arg=shift; - my @opcode=(0x66); - - if ($arg=~/\$([x0-9a-f]+),\s*%xmm([0-9]+),\s*%xmm([0-9]+)/) { - rex(\@opcode,$3,$2); - push @opcode,0x0f,0x3a,0x44; - push @opcode,0xc0|($2&7)|(($3&7)<<3); # ModR/M - my $c=$1; - push @opcode,$c=~/^0/?oct($c):$c; - return ".byte\t".join(',',@opcode); - } - return "pclmulqdq\t".$arg; -} - $code =~ s/\`([^\`]*)\`/eval($1)/gem; -$code =~ s/\bpclmulqdq\s+(\$.*%xmm[0-9]+).*$/pclmulqdq($1)/gem; print $code; |