From 8dcd95ed3ce3bcf799c2da66d9650ba24e875763 Mon Sep 17 00:00:00 2001 From: Sebastian Ramacher Date: Tue, 5 Nov 2013 13:44:57 +0100 Subject: Fix compilation with clang-3.3 clang-3.3 is stricter regarding the second argument of _mm_shuffle_epi32. Signed-off-by: Sebastian Ramacher --- src/AESNI.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/AESNI.c b/src/AESNI.c index 50f0cd6..3f1e061 100644 --- a/src/AESNI.c +++ b/src/AESNI.c @@ -75,13 +75,11 @@ static void* aligned_malloc_wrapper(size_t alignment, size_t size) /* Helper functions to expand keys */ -static __m128i aes128_keyexpand(__m128i key, __m128i keygened, int shuf) +static __m128i aes128_keyexpand(__m128i key) { key = _mm_xor_si128(key, _mm_slli_si128(key, 4)); key = _mm_xor_si128(key, _mm_slli_si128(key, 4)); - key = _mm_xor_si128(key, _mm_slli_si128(key, 4)); - keygened = _mm_shuffle_epi32(keygened, shuf); - return _mm_xor_si128(key, keygened); + return _mm_xor_si128(key, _mm_slli_si128(key, 4)); } static __m128i aes192_keyexpand_2(__m128i key, __m128i key2) @@ -91,11 +89,14 @@ static __m128i aes192_keyexpand_2(__m128i key, __m128i key2) return _mm_xor_si128(key, key2); } -#define KEYEXP128(K, I) aes128_keyexpand(K, _mm_aeskeygenassist_si128(K, I), 0xff) -#define KEYEXP192(K1, K2, I) aes128_keyexpand(K1, _mm_aeskeygenassist_si128(K2, I), 0x55) +#define KEYEXP128_H(K1, K2, I, S) _mm_xor_si128(aes128_keyexpand(K1), \ + _mm_shuffle_epi32(_mm_aeskeygenassist_si128(K2, I), S)) + +#define KEYEXP128(K, I) KEYEXP128_H(K, K, I, 0xff) +#define KEYEXP192(K1, K2, I) KEYEXP128_H(K1, K2, I, 0x55) #define KEYEXP192_2(K1, K2) aes192_keyexpand_2(K1, K2) -#define KEYEXP256(K1, K2, I) aes128_keyexpand(K1, _mm_aeskeygenassist_si128(K2, I), 0xff) -#define KEYEXP256_2(K1, K2) aes128_keyexpand(K1, _mm_aeskeygenassist_si128(K2, 0x00), 0xaa) +#define KEYEXP256(K1, K2, I) KEYEXP128_H(K1, K2, I, 0xff) +#define KEYEXP256_2(K1, K2) KEYEXP128_H(K1, K2, 0x00, 0xaa) /* Encryption key setup */ static void aes_key_setup_enc(__m128i rk[], const u8* cipherKey, int keylen) -- cgit v1.2.1