diff options
author | RSDuck <RSDuck@users.noreply.github.com> | 2021-08-31 04:53:25 +0200 |
---|---|---|
committer | RSDuck <RSDuck@users.noreply.github.com> | 2021-08-31 04:53:25 +0200 |
commit | 8d2746e517e61744ed320105be5105ce3025c203 (patch) | |
tree | 51be723c2e40cca770d4dea45f720e9c4c73fe1d | |
parent | d20543c119d623fef4636edd78063e00803020d6 (diff) |
fix #1187
how could this go on unnoticed for so long?
-rw-r--r-- | src/ARMJIT.cpp | 2 | ||||
-rw-r--r-- | src/ARMJIT_x64/ARMJIT_LoadStore.cpp | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/src/ARMJIT.cpp b/src/ARMJIT.cpp index fd57399..d673a53 100644 --- a/src/ARMJIT.cpp +++ b/src/ARMJIT.cpp @@ -999,7 +999,7 @@ void InvalidateByAddr(u32 localAddr) u32 addr = block->Literals()[j]; if (addr == localAddr) { - if (InvalidLiterals.Find(localAddr) != -1) + if (InvalidLiterals.Find(localAddr) == -1) { InvalidLiterals.Add(localAddr); JIT_DEBUGPRINT("found invalid literal %d\n", InvalidLiterals.Length); diff --git a/src/ARMJIT_x64/ARMJIT_LoadStore.cpp b/src/ARMJIT_x64/ARMJIT_LoadStore.cpp index 776d641..24571bd 100644 --- a/src/ARMJIT_x64/ARMJIT_LoadStore.cpp +++ b/src/ARMJIT_x64/ARMJIT_LoadStore.cpp @@ -123,7 +123,7 @@ void Compiler::Comp_MemAccess(int rd, int rn, const Op2& op2, int size, int flag if (Config::JIT_LiteralOptimisations && rn == 15 && rd != 15 && op2.IsImm && !(flags & (memop_Post|memop_Store|memop_Writeback))) { u32 addr = R15 + op2.Imm * ((flags & memop_SubtractOffset) ? -1 : 1); - + if (Comp_MemLoadLiteral(size, flags & memop_SignExtend, rd, addr)) return; } |