summaryrefslogtreecommitdiff
path: root/vmac.cpp
diff options
context:
space:
mode:
authorJeffrey Walton <noloader@gmail.com>2019-07-05 11:58:35 -0400
committerJeffrey Walton <noloader@gmail.com>2019-07-05 11:58:35 -0400
commit7fd751ed369ac3fa6964ee8d68bac33de28f663e (patch)
tree4fed0844132466981569b43ef45286822962da8b /vmac.cpp
parentf7986129dfe3203ad8d754a213c977452cacf709 (diff)
downloadcryptopp-git-7fd751ed369ac3fa6964ee8d68bac33de28f663e.tar.gz
Revert Asan finding in VMAC change (GH #860)
cryptest.sh showed it broke at -O3
Diffstat (limited to 'vmac.cpp')
-rw-r--r--vmac.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/vmac.cpp b/vmac.cpp
index cd5dcbc3..7bf07727 100644
--- a/vmac.cpp
+++ b/vmac.cpp
@@ -194,11 +194,12 @@ VMAC_Base::VHASH_Update_SSE2(const word64 *data, size_t blocksRemainingInWord64,
CRYPTOPP_UNUSED(blocksRemainingInWord64);
#ifdef __GNUC__
-
+ word32 temp;
__asm__ __volatile__
(
- AS1( push %%ebx)
- AS2( mov %0, %%ebx)
+ AS2( mov %%ebx, %0)
+ // AS1( push %%ebx)
+ AS2( mov %1, %%ebx)
INTEL_NOPREFIX
#else
#if defined(__INTEL_COMPILER)
@@ -417,9 +418,10 @@ VMAC_Base::VHASH_Update_SSE2(const word64 *data, size_t blocksRemainingInWord64,
AS_POP_IF86( bp)
AS1( emms)
#ifdef __GNUC__
- AS1( pop %%ebx)
ATT_PREFIX
- :
+ // AS1( pop %%ebx)
+ AS2( mov %0, %%ebx)
+ : "=m" (temp)
: "m" (L1KeyLength), "c" (blocksRemainingInWord64), "S" (data),
"D" (nhK+tagPart*2), "d" (m_isFirstBlock), "a" (polyS+tagPart*4)
: "memory", "cc"