summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Houdek <Sonicadvance1@gmail.com>2014-12-21 20:46:38 -0600
committerRyan Houdek <Sonicadvance1@gmail.com>2014-12-21 20:46:38 -0600
commitbd4fa951a9e59bfca261728c7725bb2a405eca3a (patch)
tree7d9661352dbbdf837b0c7a1fd218b97071c14323
parent4fad742da49c3ed3261b648fbcb8e141ffcc3ad0 (diff)
parent73542ce93ed43e374d56def7a2bbc36707963026 (diff)
Merge pull request #1726 from Sonicadvance1/AArch64_flush_if_not_needed
[AArch64] Flush registers from register cache if they won't be used again.
-rw-r--r--Source/Core/Core/PowerPC/JitArm64/Jit.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/Source/Core/Core/PowerPC/JitArm64/Jit.cpp b/Source/Core/Core/PowerPC/JitArm64/Jit.cpp
index 22d029030b..52008c3f6b 100644
--- a/Source/Core/Core/PowerPC/JitArm64/Jit.cpp
+++ b/Source/Core/Core/PowerPC/JitArm64/Jit.cpp
@@ -290,6 +290,10 @@ const u8* JitArm64::DoJit(u32 em_address, PPCAnalyst::CodeBuffer *code_buf, JitB
JitArm64Tables::CompileInstruction(ops[i]);
+ // If we have a register that will never be used again, flush it.
+ for (int j : ~ops[i].gprInUse)
+ gpr.StoreRegister(j);
+
if (js.memcheck && (opinfo->flags & FL_LOADSTORE))
{
// Don't do this yet