diff options
author | Andy Polyakov <appro@openssl.org> | 2011-05-16 18:07:00 +0000 |
---|---|---|
committer | Andy Polyakov <appro@openssl.org> | 2011-05-16 18:07:00 +0000 |
commit | 2b9a8ca15bb3acd8fee40c61fd02f58f94ab4a3f (patch) | |
tree | db2059a05ba43c671fe608b7526236b54078bbf9 | |
parent | afebe623c52d2067d1c34d4461ee92924371621d (diff) |
x86gas.pl: add palignr and move pclmulqdq.
-rw-r--r-- | crypto/bn/asm/x86-gf2m.pl | 8 | ||||
-rw-r--r-- | crypto/modes/asm/ghash-x86.pl | 6 | ||||
-rw-r--r-- | crypto/perlasm/x86asm.pl | 16 |
3 files changed, 17 insertions, 13 deletions
diff --git a/crypto/bn/asm/x86-gf2m.pl b/crypto/bn/asm/x86-gf2m.pl index 47275765d1..808a1e5969 100644 --- a/crypto/bn/asm/x86-gf2m.pl +++ b/crypto/bn/asm/x86-gf2m.pl @@ -197,12 +197,6 @@ $R="mm0"; &ret (); &function_end_B("_mul_1x1_ialu"); -sub pclmulqdq -{ my($dst,$src,$imm)=@_; - if ("$dst:$src" =~ /xmm([0-7]):xmm([0-7])/) - { &data_byte(0x66,0x0f,0x3a,0x44,0xc0|($1<<3)|$2,$imm); } -} - # void bn_GF2m_mul_2x2(BN_ULONG *r, BN_ULONG a1, BN_ULONG a0, BN_ULONG b1, BN_ULONG b0); &function_begin_B("bn_GF2m_mul_2x2"); if (!$x86only) { @@ -314,6 +308,6 @@ if ($sse2) { &ret (); &function_end_B("bn_GF2m_mul_2x2"); -&asciz ("GF2m Multiplication for x86, CRYPTOGAMS by <appro\@openssl.org>"); +&asciz ("GF(2^m) Multiplication for x86, CRYPTOGAMS by <appro\@openssl.org>"); &asm_finish(); diff --git a/crypto/modes/asm/ghash-x86.pl b/crypto/modes/asm/ghash-x86.pl index abd1a8c0b7..1b9adfbc72 100644 --- a/crypto/modes/asm/ghash-x86.pl +++ b/crypto/modes/asm/ghash-x86.pl @@ -821,12 +821,6 @@ $len="ebx"; &static_label("bswap"); -sub pclmulqdq -{ my($dst,$src,$imm)=@_; - if ("$dst:$src" =~ /xmm([0-7]):xmm([0-7])/) - { &data_byte(0x66,0x0f,0x3a,0x44,0xc0|($1<<3)|$2,$imm); } -} - sub clmul64x64_T2 { # minimal "register" pressure my ($Xhi,$Xi,$Hkey)=@_; diff --git a/crypto/perlasm/x86asm.pl b/crypto/perlasm/x86asm.pl index e0b228eb55..efa7b61ce8 100644 --- a/crypto/perlasm/x86asm.pl +++ b/crypto/perlasm/x86asm.pl @@ -107,6 +107,22 @@ sub ::pshufb { &::generic("pshufb",@_); } } +sub ::palignr +{ my($dst,$src,$imm)=@_; + if ("$dst:$src" =~ /xmm([0-7]):xmm([0-7])/) + { &::data_byte(0x66,0x0f,0x3a,0x0f,0xc0|($1<<3)|$2,$imm); } + else + { &::generic("palignr",@_); } +} + +sub ::pclmulqdq +{ my($dst,$src,$imm)=@_; + if ("$dst:$src" =~ /xmm([0-7]):xmm([0-7])/) + { &::data_byte(0x66,0x0f,0x3a,0x44,0xc0|($1<<3)|$2,$imm); } + else + { &::generic("pclmulqdq",@_); } +} + # label management $lbdecor="L"; # local label decoration, set by package $label="000"; |