target/s390x: Disable conditional branch-to-next for PER
For PER, we require a conditional call to helper_per_branch for the conditional branch. Fold the remaining optimization into a call to helper_goto_direct, which will take care of the remaining gbea adjustment. Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-ID: <20240502054417.234340-6-richard.henderson@linaro.org> Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
parent
62613ca073
commit
a90e319569
@ -1131,13 +1131,13 @@ static DisasJumpType help_branch(DisasContext *s, DisasCompare *c,
|
||||
goto egress;
|
||||
}
|
||||
if (is_imm) {
|
||||
if (dest == s->pc_tmp) {
|
||||
/* Branch to next. */
|
||||
per_branch(s, true);
|
||||
ret = DISAS_NEXT;
|
||||
goto egress;
|
||||
}
|
||||
if (c->cond == TCG_COND_ALWAYS) {
|
||||
/*
|
||||
* Do not optimize a conditional branch if PER enabled, because we
|
||||
* still need a conditional call to helper_per_branch.
|
||||
*/
|
||||
if (c->cond == TCG_COND_ALWAYS
|
||||
|| (dest == s->pc_tmp &&
|
||||
!(s->base.tb->flags & FLAG_MASK_PER_BRANCH))) {
|
||||
ret = help_goto_direct(s, dest);
|
||||
goto egress;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user