summaryrefslogtreecommitdiff
path: root/Source/Core/Common
diff options
context:
space:
mode:
authorskidau <skidau@gmail.com>2012-02-06 20:51:24 +1100
committerskidau <skidau@gmail.com>2012-02-06 20:51:24 +1100
commit25eae39b7c6af2bfdbec1c64310b56affa7b923e (patch)
tree6521c86fb4b0671d7089ba01b8d0fb628b24ea03 /Source/Core/Common
parent8f83a89416c6e13f23af19c5b329acbd271ef596 (diff)
Rearranged the SSE detection. Patch by lordlyhobo.
Fixes issue 5172.
Diffstat (limited to 'Source/Core/Common')
-rw-r--r--Source/Core/Common/Src/Common.h18
1 files changed, 11 insertions, 7 deletions
diff --git a/Source/Core/Common/Src/Common.h b/Source/Core/Common/Src/Common.h
index f08a4d1bfe..db889f7ddf 100644
--- a/Source/Core/Common/Src/Common.h
+++ b/Source/Core/Common/Src/Common.h
@@ -139,14 +139,18 @@ private:
// wxWidgets does not have a true dummy macro for this.
#define _trans(a) a
-#if defined __APPLE__ && defined __i386__
-#define _M_SSE 0x300
-#elif defined __APPLE__ && defined __x86_64__
-#define _M_SSE 0x301
-#elif __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
-#define _M_SSE 0x301
+#if defined __GNUC__
+# if defined __SSE4_2__
+# define _M_SSE 0x402
+# elif defined __SSE4_1__
+# define _M_SSE 0x401
+# elif defined __SSSE3__
+# define _M_SSE 0x301
+# elif defined __SSE3__
+# define _M_SSE 0x300
+# endif
#elif (_MSC_VER >= 1500) || __INTEL_COMPILER // Visual Studio 2008
-#define _M_SSE 0x402
+# define _M_SSE 0x402
#endif
// Host communication.