From a9d385168422ddaf4536ba46f473500ccbba23e8 Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Wed, 10 Mar 2021 02:13:16 -0800 Subject: [PATCH] Disables RCPC on ARM64 JIT This is currently bugged on Snapdragon 865. Seems to only affect its prime core. Smells like errata. --- External/FEXCore/Source/Interface/Core/JIT/Arm64/JIT.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/External/FEXCore/Source/Interface/Core/JIT/Arm64/JIT.cpp b/External/FEXCore/Source/Interface/Core/JIT/Arm64/JIT.cpp index daeae3f8f..864aca377 100644 --- a/External/FEXCore/Source/Interface/Core/JIT/Arm64/JIT.cpp +++ b/External/FEXCore/Source/Interface/Core/JIT/Arm64/JIT.cpp @@ -726,7 +726,10 @@ Arm64JITCore::Arm64JITCore(FEXCore::Context::Context *ctx, FEXCore::Core::Intern auto Features = vixl::CPUFeatures::InferFromOS(); SupportsAtomics = Features.Has(vixl::CPUFeatures::Feature::kAtomics); - SupportsRCPC = Features.Has(vixl::CPUFeatures::Feature::kRCpc); + // RCPC is bugged on Snapdragon 865 + // Causes glibc cond16 test to immediately throw assert + // __pthread_mutex_cond_lock: Assertion `mutex->__data.__owner == 0' + SupportsRCPC = false; //Features.Has(vixl::CPUFeatures::Feature::kRCpc); if (SupportsAtomics) { // Hypervisor can hide this on the c630?