summaryrefslogtreecommitdiff
path: root/games-emulation/pcsx2/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-08-04 08:53:53 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-08-04 08:53:53 +0100
commite3872864be25f7421015bef2732fa57c0c9fb726 (patch)
tree9cb29a544215119b5c5538e37211b994ce1c87ae /games-emulation/pcsx2/files
parent480486b52ea64765faf696c88b2c6a26a5a454d4 (diff)
gentoo resync : 04.08.2018
Diffstat (limited to 'games-emulation/pcsx2/files')
-rw-r--r--games-emulation/pcsx2/files/pcsx2-1.4.0-xgetbv.patch26
1 files changed, 26 insertions, 0 deletions
diff --git a/games-emulation/pcsx2/files/pcsx2-1.4.0-xgetbv.patch b/games-emulation/pcsx2/files/pcsx2-1.4.0-xgetbv.patch
new file mode 100644
index 000000000000..e90b0df9b6e2
--- /dev/null
+++ b/games-emulation/pcsx2/files/pcsx2-1.4.0-xgetbv.patch
@@ -0,0 +1,26 @@
+From 171e7f016dc9e132f9faf40a22f0312d45d356a5 Mon Sep 17 00:00:00 2001
+From: Jonathan Li <jonathan.li@hotmail.co.uk>
+Date: Fri, 11 May 2018 01:42:27 +0100
+Subject: [PATCH] common: Work around GCC8 _xgetbv bug
+
+clang and earlier GCC versions do not provide the _xgetbv intrinsic.
+GCC8 does, but unfortunately it's broken.
+(https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85684).
+
+Re-use our _xgetbv implementation to avoid the bug, but rename it to
+avoid compilation errors as well.
+---
+ common/include/x86emitter/x86_intrin.h | 7 ++++---
+ common/src/x86emitter/cpudetect.cpp | 2 +-
+ 2 files changed, 5 insertions(+), 4 deletions(-)
+
+--- a/common/include/intrin_x86.h
++++ b/common/include/intrin_x86.h
+@@ -107 +107 @@ static __inline__ __attribute__((always_inline)) void __cpuidex(int CPUInfo[], c
+-static __inline__ __attribute__((always_inline)) unsigned long long _xgetbv(unsigned int index)
++static __inline__ __attribute__((always_inline)) unsigned long long _xgetbv_pcsx2(unsigned int index)
+--- a/common/src/x86emitter/cpudetect.cpp
++++ b/common/src/x86emitter/cpudetect.cpp
+@@ -273 +276 @@ void x86capabilities::Identify()
+- if((_xgetbv(0) & 6) == 6) // XFEATURE_ENABLED_MASK[2:1] = '11b' (XMM state and YMM state are enabled by OS).
++ if((_xgetbv_pcsx2(0) & 6) == 6) // XFEATURE_ENABLED_MASK[2:1] = '11b' (XMM state and YMM state are enabled by OS).