summaryrefslogtreecommitdiff
path: root/Source/Core/Common/x64CPUDetect.cpp
diff options
context:
space:
mode:
authorTilka <tilkax@gmail.com>2020-01-27 03:15:43 +0000
committerGitHub <noreply@github.com>2020-01-27 03:15:43 +0000
commitf36c73585636dcd81119bd46f0b0c13982570f15 (patch)
tree28362052869a7bef90785125d4b4e486e5711339 /Source/Core/Common/x64CPUDetect.cpp
parent47239ddaac03bf480858a6b66d7301f029578003 (diff)
parent3a3dc28d54ed2890edcf72b6cdbb602afce4a323 (diff)
Merge pull request #8586 from Techjar/d2s-no-pext
Avoid using PDEP and PEXT on AMD Zen
Diffstat (limited to 'Source/Core/Common/x64CPUDetect.cpp')
-rw-r--r--Source/Core/Common/x64CPUDetect.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/Source/Core/Common/x64CPUDetect.cpp b/Source/Core/Common/x64CPUDetect.cpp
index b66ea45cfa..338c74b808 100644
--- a/Source/Core/Common/x64CPUDetect.cpp
+++ b/Source/Core/Common/x64CPUDetect.cpp
@@ -118,6 +118,9 @@ void CPUInfo::Detect()
(model == 0x1C || model == 0x26 || model == 0x27 || model == 0x35 || model == 0x36 ||
model == 0x37 || model == 0x4A || model == 0x4D || model == 0x5A || model == 0x5D))
bAtom = true;
+ // Detect AMD Zen (all models)
+ if (family == 23)
+ bZen = true;
logical_cpu_count = (cpu_id[1] >> 16) & 0xFF;
ht = (cpu_id[3] >> 28) & 1;
@@ -172,6 +175,7 @@ void CPUInfo::Detect()
}
bFlushToZero = bSSE;
+ bFastBMI2 = bBMI2 && !bZen;
if (max_ex_fn >= 0x80000004)
{