All of lore.kernel.org
 help / color / mirror / Atom feed
From: Richard Henderson <richard.henderson@linaro.org>
To: qemu-devel@nongnu.org
Cc: qemu-s390x@nongnu.org
Subject: [PATCH 15/26] target/s390x: Introduce per_enabled
Date: Wed,  5 Oct 2022 20:44:10 -0700	[thread overview]
Message-ID: <20221006034421.1179141-16-richard.henderson@linaro.org> (raw)
In-Reply-To: <20221006034421.1179141-1-richard.henderson@linaro.org>

Hoist the test of FLAG_MASK_PER to a helper.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
 target/s390x/tcg/translate.c | 23 ++++++++++++++++-------
 1 file changed, 16 insertions(+), 7 deletions(-)

diff --git a/target/s390x/tcg/translate.c b/target/s390x/tcg/translate.c
index 868895b9ae..cd311b4b2a 100644
--- a/target/s390x/tcg/translate.c
+++ b/target/s390x/tcg/translate.c
@@ -341,12 +341,21 @@ static void update_psw_addr_disp(DisasContext *s, int64_t disp)
     gen_psw_addr_disp(s, psw_addr, disp);
 }
 
+static inline bool per_enabled(DisasContext *s)
+{
+#ifdef CONFIG_USER_ONLY
+    return false;
+#else
+    return unlikely(s->base.tb->flags & FLAG_MASK_PER);
+#endif
+}
+
 static void per_branch(DisasContext *s, bool to_next)
 {
 #ifndef CONFIG_USER_ONLY
     gen_psw_addr_disp(s, gbea, 0);
 
-    if (s->base.tb->flags & FLAG_MASK_PER) {
+    if (per_enabled(s)) {
         if (to_next) {
             TCGv_i64 next_pc = tcg_temp_new_i64();
 
@@ -364,7 +373,7 @@ static void per_branch_cond(DisasContext *s, TCGCond cond,
                             TCGv_i64 arg1, TCGv_i64 arg2)
 {
 #ifndef CONFIG_USER_ONLY
-    if (s->base.tb->flags & FLAG_MASK_PER) {
+    if (per_enabled(s)) {
         TCGLabel *lab = gen_new_label();
         tcg_gen_brcond_i64(tcg_invert_cond(cond), arg1, arg2, lab);
 
@@ -665,7 +674,7 @@ static void gen_op_calc_cc(DisasContext *s)
 
 static bool use_goto_tb(DisasContext *s, uint64_t dest)
 {
-    if (unlikely(s->base.tb->flags & FLAG_MASK_PER)) {
+    if (per_enabled(s)) {
         return false;
     }
     return translator_use_goto_tb(&s->base, dest);
@@ -4491,7 +4500,7 @@ static DisasJumpType op_stura(DisasContext *s, DisasOps *o)
 {
     tcg_gen_qemu_st_tl(o->in1, o->in2, MMU_REAL_IDX, s->insn->data);
 
-    if (s->base.tb->flags & FLAG_MASK_PER) {
+    if (per_enabled(s)) {
         update_psw_addr_disp(s, 0);
         gen_helper_per_store_real(cpu_env);
     }
@@ -6343,7 +6352,7 @@ static DisasJumpType translate_one(CPUS390XState *env, DisasContext *s)
     }
 
 #ifndef CONFIG_USER_ONLY
-    if (s->base.tb->flags & FLAG_MASK_PER) {
+    if (per_enabled(s)) {
         TCGv_i64 addr = tcg_temp_new_i64();
 
         gen_psw_addr_disp(s, addr, 0);
@@ -6466,7 +6475,7 @@ static DisasJumpType translate_one(CPUS390XState *env, DisasContext *s)
     }
 
 #ifndef CONFIG_USER_ONLY
-    if (s->base.tb->flags & FLAG_MASK_PER) {
+    if (per_enabled(s)) {
         /* An exception might be triggered, save PSW if not already done.  */
         if (ret == DISAS_NEXT || ret == DISAS_TOO_MANY) {
             update_psw_addr_disp(s, s->ilen);
@@ -6489,7 +6498,7 @@ static void s390x_tr_init_disas_context(DisasContextBase *dcbase, CPUState *cs)
 
     dc->cc_op = CC_OP_DYNAMIC;
     dc->ex_value = dc->base.tb->cs_base;
-    dc->exit_to_mainloop = (dc->base.tb->flags & FLAG_MASK_PER) || dc->ex_value;
+    dc->exit_to_mainloop = per_enabled(dc) || dc->ex_value;
 }
 
 static void s390x_tr_tb_start(DisasContextBase *db, CPUState *cs)
-- 
2.34.1



  parent reply	other threads:[~2022-10-06  4:09 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-06  3:43 [PATCH 00/26] target/s390x: pc-relative translation blocks Richard Henderson
2022-10-06  3:43 ` [PATCH 01/26] target/s390x: Use tcg_constant_* in local contexts Richard Henderson
2022-11-03 10:38   ` Ilya Leoshkevich
2022-10-06  3:43 ` [PATCH 02/26] target/s390x: Use tcg_constant_* for DisasCompare Richard Henderson
2022-11-03 10:54   ` Ilya Leoshkevich
2022-10-06  3:43 ` [PATCH 03/26] target/s390x: Use tcg_constant_i32 for fpinst_extract_m34 Richard Henderson
2022-11-03 10:56   ` Ilya Leoshkevich
2022-10-06  3:43 ` [PATCH 04/26] target/s390x: Use tcg_constant_* in translate_vx.c.inc Richard Henderson
2022-11-03 11:04   ` Ilya Leoshkevich
2022-11-03 23:05     ` Richard Henderson
2022-10-06  3:44 ` [PATCH 05/26] target/s390x: Change help_goto_direct to work on displacements Richard Henderson
2022-11-03 11:13   ` Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 06/26] target/s390x: Introduce gen_psw_addr_disp Richard Henderson
2022-11-03 11:22   ` Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 07/26] target/s390x: Remove pc argument to pc_to_link_into Richard Henderson
2022-11-03 11:23   ` Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 08/26] target/s390x: Use gen_psw_addr_disp in pc_to_link_info Richard Henderson
2022-11-03 11:26   ` Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 09/26] target/s390x: Use gen_psw_addr_disp in save_link_info Richard Henderson
2022-11-03 12:52   ` Ilya Leoshkevich
2022-11-03 13:00     ` [PATCH] tests/tcg/s390x: Add bal.S Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 10/26] target/s390x: Use gen_psw_addr_disp in op_sam Richard Henderson
2022-11-03 13:11   ` Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 11/26] target/s390x: Use ilen instead in branches Richard Henderson
2022-11-03 13:13   ` Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 12/26] target/s390x: Move masking of psw.addr to cpu_get_tb_cpu_state Richard Henderson
2022-11-03 13:42   ` Ilya Leoshkevich
2022-11-04 22:27     ` Richard Henderson
2022-11-29  1:49       ` Ilya Leoshkevich
2022-11-29  1:53         ` [PATCH] tests/tcg/s390x: Add sam.S Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 13/26] target/s390x: Add disp argument to update_psw_addr Richard Henderson
2022-11-03 13:44   ` Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 14/26] target/s390x: Don't set gbea for user-only Richard Henderson
2022-11-03 13:46   ` Ilya Leoshkevich
2022-10-06  3:44 ` Richard Henderson [this message]
2022-11-03 13:47   ` [PATCH 15/26] target/s390x: Introduce per_enabled Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 16/26] target/s390x: Disable conditional branch-to-next for PER Richard Henderson
2022-11-03 14:32   ` Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 17/26] target/s390x: Introduce help_goto_indirect Richard Henderson
2022-11-30 10:15   ` Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 18/26] target/s390x: Split per_branch Richard Henderson
2022-11-03 14:45   ` Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 19/26] target/s390x: Simplify help_branch Richard Henderson
2022-11-30 12:06   ` Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 20/26] target/s390x: Split per_breaking_event from per_branch_* Richard Henderson
2022-11-30 12:14   ` Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 21/26] target/s390x: Remove PER check from use_goto_tb Richard Henderson
2022-11-30 17:33   ` Ilya Leoshkevich
2022-11-30 17:46     ` [PATCH 1/2] target/s390x: Fix successful-branch PER events Ilya Leoshkevich
2022-11-30 17:46       ` [PATCH 2/2] tests/tcg/s390x: Add per.S Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 22/26] target/s390x: Pass original r2 register to BCR Richard Henderson
2022-11-30 17:53   ` Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 23/26] tcg: Pass TCGTempKind to tcg_temp_new_internal Richard Henderson
2022-11-30 17:56   ` Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 24/26] tcg: Introduce tcg_temp_ebb_new_* Richard Henderson
2022-11-30 18:07   ` Ilya Leoshkevich
2022-11-30 21:09     ` Richard Henderson
2022-12-01 19:13       ` Alex Bennée
2022-12-01 20:34         ` Richard Henderson
2022-10-06  3:44 ` [PATCH 25/26] tcg: Introduce tcg_temp_is_normal_* Richard Henderson
2022-11-30 18:07   ` Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 26/26] target/s390x: Enable TARGET_TB_PCREL Richard Henderson
2022-10-24 23:04 ` [PATCH 00/26] target/s390x: pc-relative translation blocks Richard Henderson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221006034421.1179141-16-richard.henderson@linaro.org \
    --to=richard.henderson@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.