diff --git a/crypto/bn/asm/x86-gf2m.pl b/crypto/bn/asm/x86-gf2m.pl index 47275765d..808a1e596 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 "); +&asciz ("GF(2^m) Multiplication for x86, CRYPTOGAMS by "); &asm_finish(); diff --git a/crypto/modes/asm/ghash-x86.pl b/crypto/modes/asm/ghash-x86.pl index abd1a8c0b..1b9adfbc7 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 e0b228eb5..efa7b61ce 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";