qemu-s390x
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 09/14] target/s390x: Raise exception from helper_per_branch


From: Richard Henderson
Subject: Re: [PATCH 09/14] target/s390x: Raise exception from helper_per_branch
Date: Wed, 22 May 2024 15:54:06 -0700
User-agent: Mozilla Thunderbird

On 5/22/24 15:45, Ilya Leoshkevich wrote:
On Wed, 2024-05-01 at 22:44 -0700, Richard Henderson wrote:
Drop from argument, since gbea has always been updated with
this address.  Add ilen argument for setting int_pgm_ilen.
Use update_cc_op before calling per_branch.

By raising the exception here, we need not call
per_check_exception later, which means we can clean up the
normal non-exception branch path.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
  target/s390x/helper.h          |  2 +-
  target/s390x/tcg/misc_helper.c | 15 +++++++----
  target/s390x/tcg/translate.c   | 48 ++++++++++++--------------------
--
  3 files changed, 27 insertions(+), 38 deletions(-)

[...]

  static bool use_goto_tb(DisasContext *s, uint64_t dest)
  {
-    if (unlikely(s->base.tb->flags & FLAG_MASK_PER_BRANCH)) {
-        return false;
-    }

Why was this required in the first place and why can we remove it now?


This was required because of the structure of the code: the PER exception was only raised from translate_one, and therefore we could not allow the TB to end beforehand with goto_tb.

We can eliminate this now because we're raising the PER branch exception before attempting goto_tb.


r~



reply via email to

[Prev in Thread] Current Thread [Next in Thread]