From baa28e13f47344deac25164a388b6561c74900e3 Mon Sep 17 00:00:00 2001 From: degasus Date: Sat, 5 Sep 2015 12:22:53 +0200 Subject: [PATCH] JitArm64: Remove FLUSH_INTERPRETER It seems to be broken for some instructions, and there is no need for it any more. --- Source/Core/Core/PowerPC/JitArm64/Jit.cpp | 4 ++-- Source/Core/Core/PowerPC/JitArm64/JitArm64_RegCache.cpp | 9 --------- Source/Core/Core/PowerPC/JitArm64/JitArm64_RegCache.h | 2 -- 3 files changed, 2 insertions(+), 13 deletions(-) diff --git a/Source/Core/Core/PowerPC/JitArm64/Jit.cpp b/Source/Core/Core/PowerPC/JitArm64/Jit.cpp index 1a5a8e36a9..da434b90d4 100644 --- a/Source/Core/Core/PowerPC/JitArm64/Jit.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/Jit.cpp @@ -68,8 +68,8 @@ void JitArm64::Shutdown() void JitArm64::FallBackToInterpreter(UGeckoInstruction inst) { - gpr.Flush(FlushMode::FLUSH_INTERPRETER, js.op); - fpr.Flush(FlushMode::FLUSH_INTERPRETER, js.op); + gpr.Flush(FlushMode::FLUSH_ALL, js.op); + fpr.Flush(FlushMode::FLUSH_ALL, js.op); if (js.op->opinfo->flags & FL_ENDBLOCK) { diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_RegCache.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_RegCache.cpp index b916c7d2a6..b103f95ed6 100644 --- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_RegCache.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_RegCache.cpp @@ -167,15 +167,6 @@ void Arm64GPRCache::Flush(FlushMode mode, PPCAnalyst::CodeOp* op) for (int i = 0; i < 32; ++i) { bool flush = true; - if (mode == FLUSH_INTERPRETER) - { - if (!(op->regsOut[i] || op->regsIn[i])) - { - // This interpreted instruction doesn't use this register - flush = false; - } - } - if (m_guest_registers[i].GetType() == REG_REG) { // Has to be flushed if it isn't in a callee saved register diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_RegCache.h b/Source/Core/Core/PowerPC/JitArm64/JitArm64_RegCache.h index 613b06478f..09f86523ff 100644 --- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_RegCache.h +++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_RegCache.h @@ -31,8 +31,6 @@ enum FlushMode // Flushes registers in a conditional branch // Doesn't wipe the state of the registers from the cache FLUSH_MAINTAIN_STATE, - // Flushes only the required registers for an interpreter call - FLUSH_INTERPRETER, }; class OpArg