diff --git a/src/ARMJIT.cpp b/src/ARMJIT.cpp index fd573998..d673a53e 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 776d641e..24571bda 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; }