Sync with Upstream master
commit
e0ec92b541
6
gcm.cpp
6
gcm.cpp
|
|
@ -23,6 +23,10 @@
|
|||
// # undef CRYPTOPP_CLMUL_AVAILABLE
|
||||
// #endif
|
||||
|
||||
// Clang casts
|
||||
#define M128I_CAST(x) ((__m128i *)(void *)(x))
|
||||
#define CONST_M128I_CAST(x) ((const __m128i *)(const void *)(x))
|
||||
|
||||
#include "gcm.h"
|
||||
#include "cpu.h"
|
||||
|
||||
|
|
@ -81,7 +85,7 @@ inline static void GCM_Xor16_SSE2(byte *a, const byte *b, const byte *c)
|
|||
CRYPTOPP_ASSERT(IsAlignedOn(a,GetAlignmentOf<__m128i>()));
|
||||
CRYPTOPP_ASSERT(IsAlignedOn(b,GetAlignmentOf<__m128i>()));
|
||||
CRYPTOPP_ASSERT(IsAlignedOn(c,GetAlignmentOf<__m128i>()));
|
||||
*(__m128i *)(void *)a = _mm_xor_si128(*(__m128i *)(void *)b, *(__m128i *)(void *)c);
|
||||
*M128I_CAST(a) = _mm_xor_si128(*M128I_CAST(b), *M128I_CAST(c));
|
||||
# else
|
||||
asm ("movdqa %1, %%xmm0; pxor %2, %%xmm0; movdqa %%xmm0, %0;" : "=m" (a[0]) : "m"(b[0]), "m"(c[0]));
|
||||
# endif
|
||||
|
|
|
|||
|
|
@ -92,6 +92,10 @@ NAMESPACE_BEGIN(CryptoPP)
|
|||
# define MAYBE_CONST const
|
||||
#endif
|
||||
|
||||
// Clang casts
|
||||
#define M128I_CAST(x) ((__m128i *)(void *)(x))
|
||||
#define CONST_M128I_CAST(x) ((const __m128i *)(const void *)(x))
|
||||
|
||||
#if defined(CRYPTOPP_ALLOW_UNALIGNED_DATA_ACCESS) || defined(CRYPTOPP_ALLOW_RIJNDAEL_UNALIGNED_DATA_ACCESS)
|
||||
# if (CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE || defined(CRYPTOPP_X64_MASM_AVAILABLE)) && !defined(CRYPTOPP_DISABLE_RIJNDAEL_ASM)
|
||||
namespace rdtable {CRYPTOPP_ALIGN_DATA(16) word64 Te[256+2];}
|
||||
|
|
|
|||
Loading…
Reference in New Issue