summaryrefslogtreecommitdiff
path: root/arch/x86/crypto
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2009-11-01 12:49:44 -0500
committerHerbert Xu <herbert@gondor.apana.org.au>2009-11-01 12:49:44 -0500
commit2d06ef7f42ed8c9969c9aa84e95df5d5c6378327 (patch)
tree20ff0f62949a957225cd1a021e20464cf85247a4 /arch/x86/crypto
parent3e02e5cb47e049727a26c9c110867a26972bd0d6 (diff)
crypto: ghash-intel - Hard-code pshufb
Old gases don't have a clue what pshufb stands for so we have to hard-code it for now. Reported-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'arch/x86/crypto')
-rw-r--r--arch/x86/crypto/ghash-clmulni-intel_asm.S18
1 files changed, 12 insertions, 6 deletions
diff --git a/arch/x86/crypto/ghash-clmulni-intel_asm.S b/arch/x86/crypto/ghash-clmulni-intel_asm.S
index b9e787a511d..71768d543db 100644
--- a/arch/x86/crypto/ghash-clmulni-intel_asm.S
+++ b/arch/x86/crypto/ghash-clmulni-intel_asm.S
@@ -100,9 +100,11 @@ ENTRY(clmul_ghash_mul)
movups (%rdi), DATA
movups (%rsi), SHASH
movaps .Lbswap_mask, BSWAP
- pshufb BSWAP, DATA
+ # pshufb BSWAP, DATA
+ .byte 0x66, 0x0f, 0x38, 0x00, 0xc5
call __clmul_gf128mul_ble
- pshufb BSWAP, DATA
+ # pshufb BSWAP, DATA
+ .byte 0x66, 0x0f, 0x38, 0x00, 0xc5
movups DATA, (%rdi)
ret
@@ -116,18 +118,21 @@ ENTRY(clmul_ghash_update)
movaps .Lbswap_mask, BSWAP
movups (%rdi), DATA
movups (%rcx), SHASH
- pshufb BSWAP, DATA
+ # pshufb BSWAP, DATA
+ .byte 0x66, 0x0f, 0x38, 0x00, 0xc5
.align 4
.Lupdate_loop:
movups (%rsi), IN1
- pshufb BSWAP, IN1
+ # pshufb BSWAP, IN1
+ .byte 0x66, 0x0f, 0x38, 0x00, 0xf5
pxor IN1, DATA
call __clmul_gf128mul_ble
sub $16, %rdx
add $16, %rsi
cmp $16, %rdx
jge .Lupdate_loop
- pshufb BSWAP, DATA
+ # pshufb BSWAP, DATA
+ .byte 0x66, 0x0f, 0x38, 0x00, 0xc5
movups DATA, (%rdi)
.Lupdate_just_ret:
ret
@@ -140,7 +145,8 @@ ENTRY(clmul_ghash_update)
ENTRY(clmul_ghash_setkey)
movaps .Lbswap_mask, BSWAP
movups (%rsi), %xmm0
- pshufb BSWAP, %xmm0
+ # pshufb BSWAP, %xmm0
+ .byte 0x66, 0x0f, 0x38, 0x00, 0xc5
movaps %xmm0, %xmm1
psllq $1, %xmm0
psrlq $63, %xmm1