aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2016-03-03 11:28:42 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2016-03-03 11:28:42 +0000
commit92d4dde3cf20e52bad9fb2d17cf0d059c8f68fef (patch)
tree4a38f5b06ee43f931cd537af5eeee94269df10f4
parentd83b9e01d10303a34ddc45a2751e028ec4b8a0f4 (diff)
downloadrspamd-92d4dde3cf20e52bad9fb2d17cf0d059c8f68fef.tar.gz
rspamd-92d4dde3cf20e52bad9fb2d17cf0d059c8f68fef.zip
[Fix] Don't use _memcpy in assembly
-rw-r--r--src/libcryptobox/siphash/avx2.S7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/libcryptobox/siphash/avx2.S b/src/libcryptobox/siphash/avx2.S
index 995fc7636..070419c60 100644
--- a/src/libcryptobox/siphash/avx2.S
+++ b/src/libcryptobox/siphash/avx2.S
@@ -103,7 +103,12 @@ LBB0_5: ## %for.end
movq %rbx, %rdx
subq %rax, %rdx
leaq -16(%rbp), %rdi
- callq _memcpy
+ movq %rdx, %rcx
+ shrq $2, %rcx
+ rep; movsl
+ movq %rdx, %rcx
+ andq $3, %rcx
+ rep; movsb
movb %bl, -9(%rbp)
vmovq -16(%rbp), %xmm4 ## xmm4 = mem[0],zero
vpslldq $8, %xmm4, %xmm0 ## xmm0 = zero,zero,zero,zero,zero,zero,zero,zero,xmm4[0,1,2,3,4,5,6,7]