how could this go on unnoticed for so long?
This commit is contained in:
RSDuck
2021-08-31 04:53:25 +02:00
parent d20543c119
commit 8d2746e517
2 changed files with 2 additions and 2 deletions

View File

@ -999,7 +999,7 @@ void InvalidateByAddr(u32 localAddr)
u32 addr = block->Literals()[j]; u32 addr = block->Literals()[j];
if (addr == localAddr) if (addr == localAddr)
{ {
if (InvalidLiterals.Find(localAddr) != -1) if (InvalidLiterals.Find(localAddr) == -1)
{ {
InvalidLiterals.Add(localAddr); InvalidLiterals.Add(localAddr);
JIT_DEBUGPRINT("found invalid literal %d\n", InvalidLiterals.Length); JIT_DEBUGPRINT("found invalid literal %d\n", InvalidLiterals.Length);

View File

@ -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))) 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); u32 addr = R15 + op2.Imm * ((flags & memop_SubtractOffset) ? -1 : 1);
if (Comp_MemLoadLiteral(size, flags & memop_SignExtend, rd, addr)) if (Comp_MemLoadLiteral(size, flags & memop_SignExtend, rd, addr))
return; return;
} }