X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=deps%2Flightrec%2Foptimizer.c;h=019072257e5558de59e48a180d3b0e61548f889e;hb=ee8fd5674f74f307878f2dabef7641a837fb2a99;hp=2eba60ed2ea9ec7f0313897417d2b2351dad7ff1;hpb=ba3814c189d3bd2332b66fb6c633a7d028e618fe;p=pcsx_rearmed.git diff --git a/deps/lightrec/optimizer.c b/deps/lightrec/optimizer.c index 2eba60ed..01907225 100644 --- a/deps/lightrec/optimizer.c +++ b/deps/lightrec/optimizer.c @@ -635,6 +635,10 @@ static u32 lightrec_propagate_consts(const struct opcode *op, if (OPT_FLAG_MULT_DIV && c.r.imm) known &= ~BIT(c.r.imm); break; + case OP_SPECIAL_MFLO: + case OP_SPECIAL_MFHI: + known &= ~BIT(c.r.rd); + break; default: break; } @@ -1645,6 +1649,9 @@ static int lightrec_flag_io(struct lightrec_state *state, struct block *block) pr_debug("Flagging opcode %u as direct I/O access\n", i); list->flags |= LIGHTREC_IO_MODE(LIGHTREC_IO_DIRECT_HW); + + if (no_mask) + list->flags |= LIGHTREC_NO_MASK; break; } fallthrough;