diff options
author | hizzlekizzle | 2020-05-20 19:34:07 -0500 |
---|---|---|
committer | GitHub | 2020-05-20 19:34:07 -0500 |
commit | 67b91c4b9c44f0d973d2d6a85481e3f437ccc583 (patch) | |
tree | babc4b93857004f0c7b5aa41cc4c88ee1cc7b501 /deps/lightrec/optimizer.c | |
parent | 58bf341a7683b5a73f5e440c1df705daa4326a56 (diff) | |
parent | 6b02f240d929ffa0cb488bc6bb4d27b023e1a822 (diff) | |
download | pcsx_rearmed-67b91c4b9c44f0d973d2d6a85481e3f437ccc583.tar.gz pcsx_rearmed-67b91c4b9c44f0d973d2d6a85481e3f437ccc583.tar.bz2 pcsx_rearmed-67b91c4b9c44f0d973d2d6a85481e3f437ccc583.zip |
Merge pull request #421 from negativeExponent/lightrec_update
Update lightrec to latest upstream
Diffstat (limited to 'deps/lightrec/optimizer.c')
-rw-r--r-- | deps/lightrec/optimizer.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/deps/lightrec/optimizer.c b/deps/lightrec/optimizer.c index 92b4daa..cf431f2 100644 --- a/deps/lightrec/optimizer.c +++ b/deps/lightrec/optimizer.c @@ -675,7 +675,7 @@ static int lightrec_switch_delay_slots(struct block *block) list->c = next_op; list->next->c = op; list->next->flags = list->flags | LIGHTREC_NO_DS; - list->flags = flags; + list->flags = flags | LIGHTREC_NO_DS; list->offset++; list->next->offset--; } @@ -877,11 +877,12 @@ static int lightrec_flag_stores(struct block *block) case OP_SB: case OP_SH: case OP_SW: - /* Mark all store operations that target $sp, $gp, $k0 - * or $k1 as not requiring code invalidation. This is - * based on the heuristic that stores using one of these + /* Mark all store operations that target $sp or $gp + * as not requiring code invalidation. This is based + * on the heuristic that stores using one of these * registers as address will never hit a code page. */ - if (list->i.rs >= 26 && list->i.rs <= 29) { + if (list->i.rs >= 28 && list->i.rs <= 29 && + !block->state->maps[PSX_MAP_KERNEL_USER_RAM].ops) { pr_debug("Flaging opcode 0x%08x as not requiring invalidation\n", list->opcode); list->flags |= LIGHTREC_NO_INVALIDATE; |