diff options
author | Alex Bennée <alex.bennee@linaro.org> | 2022-10-27 19:36:30 +0100 |
---|---|---|
committer | Alex Bennée <alex.bennee@linaro.org> | 2022-10-31 20:37:59 +0000 |
commit | 621aab6c7dffaa37a9d9b89d246894e516eb3c46 (patch) | |
tree | 97fab774d2d0e54e1a6b7a4041a40870925086ac /target | |
parent | efe7c4f08d543cd4181c672bedba5575390db2a8 (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.c | 6 |
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; } } |