From 6913da7efa4834ab0f0459ad3f206518df6b8a3e Mon Sep 17 00:00:00 2001 From: orignal Date: Thu, 15 Dec 2016 10:43:48 -0500 Subject: [PATCH] fixed AVX crash for mingw build --- Crypto.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Crypto.cpp b/Crypto.cpp index 67c1f226..a4a794ac 100644 --- a/Crypto.cpp +++ b/Crypto.cpp @@ -404,17 +404,18 @@ namespace crypto ( "vmovups %[key], %%ymm0 \n" "vmovups %[ipad], %%ymm1 \n" - "vmovups %%ymm1, 32%[buf] \n" + "vmovups %%ymm1, 32(%[buf]) \n" "vxorps %%ymm0, %%ymm1, %%ymm1 \n" - "vmovups %%ymm1, %[buf] \n" + "vmovups %%ymm1, (%[buf]) \n" "vmovups %[opad], %%ymm1 \n" - "vmovups %%ymm1, 32%[hash] \n" + "vmovups %%ymm1, 32(%[hash]) \n" "vxorps %%ymm0, %%ymm1, %%ymm1 \n" - "vmovups %%ymm1, %[hash] \n" + "vmovups %%ymm1, (%[hash]) \n" "vzeroall \n" // end of AVX - "movups %%xmm0, 80%[hash] \n" // zero last 16 bytes - : [buf]"=m"(*buf), [hash]"=m"(*hash) - : [key]"m"(*(const uint8_t *)key), [ipad]"m"(*ipads), [opad]"m"(*opads) + "movups %%xmm0, 80(%[hash]) \n" // zero last 16 bytes + : + : [key]"m"(*(const uint8_t *)key), [ipad]"m"(*ipads), [opad]"m"(*opads), + [buf]"r"(buf), [hash]"r"(hash) : "memory", "%xmm0" // TODO: change to %ymm0 later ); #else