aboutsummaryrefslogtreecommitdiffstats
path: root/main/gcc/48_all_x86_pr53113_libitm-avx.patch
blob: b17653023ae91cae0b1ab6b5402ed3692357372f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
libitm checks for AVX support in the assembler and adds -mavx to x86_avx.cc
which defines the needed typedefs.  User CFLAGS can override -mavx however,
so also use the fallback typedef if __AVX__ isn't defined.

https://bugs.gentoo.org/417271
http://gcc.gnu.org/PR53113


--- a/libitm/config/x86/x86_avx.cc
+++ b/libitm/config/x86/x86_avx.cc
@@ -29,7 +29,7 @@
 
 extern "C" {
 
-#ifndef HAVE_AS_AVX
+#if !defined (HAVE_AS_AVX) || !defined(__AVX__)
 // If we don't have an AVX capable assembler, we didn't set -mavx on the
 // command-line either, which means that libitm.h defined neither this type
 // nor the functions in this file.  Define the type and unconditionally
@@ -40,7 +40,7 @@ typedef float _ITM_TYPE_M256 __attribute__((vector_size(32), may_alias));
 // Re-define the memcpy implementations so that we can frob the
 // interface to deal with possibly missing AVX instruction set support.
 
-#ifdef HAVE_AS_AVX
+#if defined(HAVE_AS_AVX) && defined(__AVX__)
 #define RETURN(X)	return X
 #define STORE(X,Y)	X = Y
 #define OUTPUT(T)	_ITM_TYPE_##T