Fix AppVeyor Win32 build

pull/668/merge
Jeffrey Walton 2018-07-15 11:31:12 -04:00
parent c2a9958d9c
commit 7d1eb4fc8b
No known key found for this signature in database
GPG Key ID: B36AB348921B1838
1 changed files with 10 additions and 11 deletions

View File

@ -23,7 +23,6 @@
#if (CRYPTOPP_SSE2_INTRIN_AVAILABLE) #if (CRYPTOPP_SSE2_INTRIN_AVAILABLE)
# include <xmmintrin.h> # include <xmmintrin.h>
# include <emmintrin.h>
# include <immintrin.h> # include <immintrin.h>
#endif #endif
@ -93,21 +92,21 @@ inline __m128i RotateRight(const __m128i& val)
template <> template <>
inline __m128i RotateLeft<8>(const __m128i& val) inline __m128i RotateLeft<8>(const __m128i& val)
{ {
const __m128i r08 = _mm_set_epi64x(0x0E0D0C0F0A09080B, 0x0605040702010003); const __m128i r08 = _mm_set_epi32(0x0E0D0C0F, 0x0A09080B, 0x06050407, 0x02010003);
return _mm_shuffle_epi8(val, r08); return _mm_shuffle_epi8(val, r08);
} }
template <> template <>
inline __m128i RotateLeft<16>(const __m128i& val) inline __m128i RotateLeft<16>(const __m128i& val)
{ {
const __m128i mask = _mm_set_epi64x(0x0D0C0F0E09080B0A, 0x0504070601000302); const __m128i mask = _mm_set_epi32(0x0D0C0F0E, 0x09080B0A, 0x05040706, 0x01000302);
return _mm_shuffle_epi8(val, mask); return _mm_shuffle_epi8(val, mask);
} }
template <> template <>
inline __m128i RotateLeft<24>(const __m128i& val) inline __m128i RotateLeft<24>(const __m128i& val)
{ {
const __m128i mask = _mm_set_epi64x(0x0C0F0E0D080B0A09, 0x0407060500030201); const __m128i mask = _mm_set_epi32(0x0C0F0E0D, 0x080B0A09, 0x04070605, 0x00030201);
return _mm_shuffle_epi8(val, mask); return _mm_shuffle_epi8(val, mask);
} }
@ -218,21 +217,21 @@ inline void SM4_Encrypt(__m128i &block0, __m128i &block1,
__m128i &block2, __m128i &block3, const word32 *subkeys) __m128i &block2, __m128i &block3, const word32 *subkeys)
{ {
// nibble mask // nibble mask
const __m128i c0f = _mm_set_epi64x(0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F); const __m128i c0f = _mm_set_epi32(0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F);
// flip all bytes in all 32-bit words // flip all bytes in all 32-bit words
const __m128i flp = _mm_set_epi64x(0x0C0D0E0F08090A0B, 0x0405060700010203); const __m128i flp = _mm_set_epi32(0x0C0D0E0F, 0x08090A0B, 0x04050607, 0x00010203);
// inverse shift rows // inverse shift rows
const __m128i shr = _mm_set_epi64x(0x0306090C0F020508, 0x0B0E0104070A0D00); const __m128i shr = _mm_set_epi32(0x0306090C, 0x0F020508, 0x0B0E0104, 0x070A0D00);
// Affine transform 1 (low and high hibbles) // Affine transform 1 (low and high hibbles)
const __m128i m1l = _mm_set_epi64x(0xC7C1B4B222245157, 0x9197E2E474720701); const __m128i m1l = _mm_set_epi32(0xC7C1B4B2, 0x22245157, 0x9197E2E4, 0x74720701);
const __m128i m1h = _mm_set_epi64x(0xF052B91BF95BB012, 0xE240AB09EB49A200); const __m128i m1h = _mm_set_epi32(0xF052B91B, 0xF95BB012, 0xE240AB09, 0xEB49A200);
// Affine transform 2 (low and high hibbles) // Affine transform 2 (low and high hibbles)
const __m128i m2l = _mm_set_epi64x(0xEDD14478172BBE82, 0x5B67F2CEA19D0834); const __m128i m2l = _mm_set_epi32(0xEDD14478, 0x172BBE82, 0x5B67F2CE, 0xA19D0834);
const __m128i m2h = _mm_set_epi64x(0x11CDBE62CC1063BF, 0xAE7201DD73AFDC00); const __m128i m2h = _mm_set_epi32(0x11CDBE62, 0xCC1063BF, 0xAE7201DD, 0x73AFDC00);
__m128i t0 = UnpackXMM<0>(block0, block1, block2, block3); __m128i t0 = UnpackXMM<0>(block0, block1, block2, block3);
__m128i t1 = UnpackXMM<1>(block0, block1, block2, block3); __m128i t1 = UnpackXMM<1>(block0, block1, block2, block3);