Fix crash on VIA C7-D when using GCM

This was interesting... The C&-D is an early 2000's 32-bit processor with SSE2 and SSSE3. Using a destination register constraint of "xm" witnessed a crash, while a constraint of "m" does not
pull/548/head
Jeffrey Walton 2017-11-24 07:08:41 -05:00
parent 0dc72380a9
commit 16290b2f1c
1 changed files with 1 additions and 1 deletions

View File

@ -439,7 +439,7 @@ void GCM_Xor16_SSE2(byte *a, const byte *b, const byte *c)
{
# if CRYPTOPP_SSE2_ASM_AVAILABLE && defined(__GNUC__)
asm ("movdqa %1, %%xmm0; pxor %2, %%xmm0; movdqa %%xmm0, %0;"
: "=xm" (a[0]) : "xm"(b[0]), "xm"(c[0]));
: "=m" (a[0]) : "xm"(b[0]), "xm"(c[0]));
# else // CRYPTOPP_SSE2_INTRIN_AVAILABLE
_mm_store_si128(M128_CAST(a), _mm_xor_si128(
_mm_load_si128(CONST_M128_CAST(b)),