Fixed compilation for GCC 4.4 to 4.8 (AES-NI opcodes; intrinsics headers require target options to be set).
This commit is contained in:
parent
98432a0a30
commit
2f88a67304
6 changed files with 43 additions and 1 deletions
|
|
@ -32,8 +32,15 @@
|
|||
#if BR_AES_X86NI
|
||||
|
||||
#if BR_AES_X86NI_GCC
|
||||
#if BR_AES_X86NI_GCC_OLD
|
||||
#pragma GCC push_options
|
||||
#pragma GCC target("sse2,sse4.1,aes,pclmul")
|
||||
#endif
|
||||
#include <wmmintrin.h>
|
||||
#include <cpuid.h>
|
||||
#if BR_AES_X86NI_GCC_OLD
|
||||
#pragma GCC pop_options
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if BR_AES_X86NI_MSC
|
||||
|
|
@ -71,6 +78,14 @@ br_aes_x86ni_supported(void)
|
|||
#undef MASK
|
||||
}
|
||||
|
||||
/*
|
||||
* Per-function attributes appear unreliable on old GCC, so we use the
|
||||
* pragma for all remaining functions in this file.
|
||||
*/
|
||||
#if BR_AES_X86NI_GCC_OLD
|
||||
#pragma GCC target("sse2,sse4.1,aes,pclmul")
|
||||
#endif
|
||||
|
||||
BR_TARGET("sse2,aes")
|
||||
static inline __m128i
|
||||
expand_step128(__m128i k, __m128i k2)
|
||||
|
|
|
|||
|
|
@ -27,6 +27,9 @@
|
|||
#if BR_AES_X86NI
|
||||
|
||||
#if BR_AES_X86NI_GCC
|
||||
#if BR_AES_X86NI_GCC_OLD
|
||||
#pragma GCC target("sse2,sse4.1,aes,pclmul")
|
||||
#endif
|
||||
#include <wmmintrin.h>
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -27,6 +27,9 @@
|
|||
#if BR_AES_X86NI
|
||||
|
||||
#if BR_AES_X86NI_GCC
|
||||
#if BR_AES_X86NI_GCC_OLD
|
||||
#pragma GCC target("sse2,sse4.1,aes,pclmul")
|
||||
#endif
|
||||
#include <wmmintrin.h>
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -27,6 +27,9 @@
|
|||
#if BR_AES_X86NI
|
||||
|
||||
#if BR_AES_X86NI_GCC
|
||||
#if BR_AES_X86NI_GCC_OLD
|
||||
#pragma GCC target("sse2,sse4.1,aes,pclmul")
|
||||
#endif
|
||||
#include <smmintrin.h>
|
||||
#include <wmmintrin.h>
|
||||
#define bswap32 __builtin_bswap32
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue