No longer used hacked liveness_pass_1

This hack was introduced in issue#287 which later becomes endless maintainance pain.

=====

Our previous check_exit_request use `brcond` in the middle of a TranslationBlock which

breaks the assumptions and thus a hack to liveness_pass_1 is used for _all_ brcond instructions

which causes issues for MIPS and many other scenarios.

=====

This patch also resolves PC not sync-ed when no memory hooks are installed, finally. Now

Unicorn will always have correct PC no matter what happens.
This commit is contained in:
mio
2025-04-12 21:38:14 +08:00
parent e89eb87d04
commit 7f48b1dd4a
28 changed files with 80 additions and 63 deletions

1
uc.c
View File

@@ -708,6 +708,7 @@ uc_err uc_reg_write(uc_engine *uc, int regid, const void *value)
if (setpc) {
// force to quit execution and flush TB
uc->quit_request = true;
uc->skip_sync_pc_on_exit = true;
break_translation_loop(uc);
}