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.hender...@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~