aboutsummaryrefslogtreecommitdiff
path: root/target
diff options
context:
space:
mode:
authorAlex Bennée <alex.bennee@linaro.org>2022-10-27 19:36:30 +0100
committerAlex Bennée <alex.bennee@linaro.org>2022-10-31 20:37:59 +0000
commit621aab6c7dffaa37a9d9b89d246894e516eb3c46 (patch)
tree97fab774d2d0e54e1a6b7a4041a40870925086ac /target
parentefe7c4f08d543cd4181c672bedba5575390db2a8 (diff)
target/s390x: don't probe next pc for EXecuted insns
We have finished the TB anyway so we can shortcut the other tests by checking dc->ex_value first. Reviewed-by: David Hildenbrand <david@redhat.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Acked-by: Ilya Leoshkevich <iii@linux.ibm.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20221027183637.2772968-25-alex.bennee@linaro.org>
Diffstat (limited to 'target')
-rw-r--r--target/s390x/tcg/translate.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/target/s390x/tcg/translate.c b/target/s390x/tcg/translate.c
index 9df7f9e693..f4122db434 100644
--- a/target/s390x/tcg/translate.c
+++ b/target/s390x/tcg/translate.c
@@ -6624,9 +6624,9 @@ static void s390x_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs)
dc->base.is_jmp = translate_one(env, dc);
if (dc->base.is_jmp == DISAS_NEXT) {
- if (!is_same_page(dcbase, dc->base.pc_next) ||
- !is_same_page(dcbase, get_next_pc(env, dc, dc->base.pc_next)) ||
- dc->ex_value) {
+ if (dc->ex_value ||
+ !is_same_page(dcbase, dc->base.pc_next) ||
+ !is_same_page(dcbase, get_next_pc(env, dc, dc->base.pc_next))) {
dc->base.is_jmp = DISAS_TOO_MANY;
}
}