X-Git-Url: https://bearssl.org/gitweb//home/git/?p=BearSSL;a=blobdiff_plain;f=src%2Fsymcipher%2Faes_x86ni.c;h=d2d63693b6170d8a1b056b810ad320a8eb596912;hp=dcc395208198eac4376418280e9e3ac9306fe3b4;hb=2f88a673049d1e183d1a8f78e2030bf02362b8bf;hpb=5f045c759957fdff8c85716e6af99e10901fdac0;ds=inline diff --git a/src/symcipher/aes_x86ni.c b/src/symcipher/aes_x86ni.c index dcc3952..d2d6369 100644 --- a/src/symcipher/aes_x86ni.c +++ b/src/symcipher/aes_x86ni.c @@ -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 #include +#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)