summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorTilka <tilkax@gmail.com>2024-01-01 00:46:34 +0100
committerGitHub <noreply@github.com>2024-01-01 00:46:34 +0100
commit07df4ff16e134147dda36f41bb8a49022be1606b (patch)
tree22da9aea3d30436fa51b77c7b4ccdab84c489146 /Source/Core
parent8ecc4786625d2a4e15ff975659c5432317a9b302 (diff)
parent01e534a681b5ed308fa8fbbc46ccbea3b0589686 (diff)
Merge pull request #12471 from mitaclaw/flush-gpr-arm-bug
Fix Logic Inefficiency in Arm64GPRCache::FlushRegisters
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/PowerPC/JitArm64/JitArm64_RegCache.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_RegCache.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_RegCache.cpp
index 8538f2c040..cd270880f9 100644
--- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_RegCache.cpp
+++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_RegCache.cpp
@@ -243,8 +243,9 @@ void Arm64GPRCache::FlushRegister(size_t index, bool maintain_state, ARM64Reg tm
void Arm64GPRCache::FlushRegisters(BitSet32 regs, bool maintain_state, ARM64Reg tmp_reg)
{
- for (int i : regs)
+ for (auto iter = regs.begin(); iter != regs.end(); ++iter)
{
+ const int i = *iter;
ASSERT_MSG(DYNA_REC, m_guest_registers[GUEST_GPR_OFFSET + i].GetType() != RegType::Discarded,
"Attempted to flush discarded register");
@@ -269,7 +270,7 @@ void Arm64GPRCache::FlushRegisters(BitSet32 regs, bool maintain_state, ARM64Reg
reg1.Flush();
reg2.Flush();
}
- ++i;
+ ++iter;
continue;
}
}