From 16f8b7413de41432c9128f1db896149fe8db3e85 Mon Sep 17 00:00:00 2001 From: MerryMage Date: Mon, 15 Oct 2018 21:00:51 +0100 Subject: [PATCH] JitRegCache: IsAllUnlocked --- Source/Core/Core/PowerPC/Jit64/RegCache/JitRegCache.cpp | 7 +++++++ Source/Core/Core/PowerPC/Jit64/RegCache/JitRegCache.h | 2 ++ 2 files changed, 9 insertions(+) diff --git a/Source/Core/Core/PowerPC/Jit64/RegCache/JitRegCache.cpp b/Source/Core/Core/PowerPC/Jit64/RegCache/JitRegCache.cpp index 57988fe4f3..3526d17894 100644 --- a/Source/Core/Core/PowerPC/Jit64/RegCache/JitRegCache.cpp +++ b/Source/Core/Core/PowerPC/Jit64/RegCache/JitRegCache.cpp @@ -622,6 +622,13 @@ RCForkGuard RegCache::Fork() return RCForkGuard{*this}; } +bool RegCache::IsAllUnlocked() const +{ + return std::none_of(m_regs.begin(), m_regs.end(), [](const auto& r){ return r.IsLocked(); }) && + std::none_of(m_xregs.begin(), m_xregs.end(), [](const auto& x){ return x.IsLocked(); }) && + !IsAnyConstraintActive(); +} + void RegCache::NewLock(preg_t preg) { m_regs[preg].Lock(); diff --git a/Source/Core/Core/PowerPC/Jit64/RegCache/JitRegCache.h b/Source/Core/Core/PowerPC/Jit64/RegCache/JitRegCache.h index 7196b3b41c..64040a5172 100644 --- a/Source/Core/Core/PowerPC/Jit64/RegCache/JitRegCache.h +++ b/Source/Core/Core/PowerPC/Jit64/RegCache/JitRegCache.h @@ -239,6 +239,8 @@ public: RCForkGuard Fork(); + bool IsAllUnlocked() const; + protected: friend class RCOpArg; friend class RCX64Reg;