mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2025-05-08 17:52:13 +00:00
tcg: Synchronize with qemu
This commit is contained in:
parent
006a13026a
commit
3996153514
|
@ -2159,11 +2159,15 @@ static void liveness_pass_1(TCGContext *s)
|
|||
goto do_not_remove;
|
||||
}
|
||||
}
|
||||
goto do_remove;
|
||||
}
|
||||
goto do_not_remove;
|
||||
|
||||
do_remove:
|
||||
tcg_op_remove(s, op);
|
||||
} else {
|
||||
break;
|
||||
|
||||
do_not_remove:
|
||||
/* output args are dead */
|
||||
for (i = 0; i < nb_oargs; i++) {
|
||||
ts = arg_temp(op->args[i]);
|
||||
|
||||
|
@ -2182,7 +2186,9 @@ static void liveness_pass_1(TCGContext *s)
|
|||
}
|
||||
|
||||
/* If end of basic block, update. */
|
||||
if (def->flags & TCG_OPF_BB_END) {
|
||||
if (def->flags & TCG_OPF_BB_EXIT) {
|
||||
la_func_end(s, nb_globals, nb_temps);
|
||||
} else if (def->flags & TCG_OPF_BB_END) {
|
||||
// Unicorn: do not optimize dead temps on brcond,
|
||||
// this causes problem because check_exit_request() inserts
|
||||
// brcond instruction in the middle of the TB,
|
||||
|
@ -2211,6 +2217,7 @@ static void liveness_pass_1(TCGContext *s)
|
|||
arg_life |= DEAD_ARG << i;
|
||||
}
|
||||
}
|
||||
|
||||
/* Input arguments are live for preceding opcodes. */
|
||||
for (i = nb_oargs; i < nb_oargs + nb_iargs; i++) {
|
||||
ts = arg_temp(op->args[i]);
|
||||
|
@ -2255,8 +2262,6 @@ static void liveness_pass_1(TCGContext *s)
|
|||
*pset = set;
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue