summaryrefslogtreecommitdiffstats
path: root/crypto/modes
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2011-05-16 17:44:38 +0000
committerAndy Polyakov <appro@openssl.org>2011-05-16 17:44:38 +0000
commitb5c6aab57e71015c00d5149f1cf6d03dab1d67ec (patch)
tree0d6d203300cbe43ecc76fae9f6610f024357bdc1 /crypto/modes
parentb9b0a177f853cb01ab48881383f81afb08058460 (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.pl28
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;