From nobody Tue May 14 03:45:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1676918749; cv=none; d=zohomail.com; s=zohoarc; b=TZN1mp/hhyJxuTusk+nYpQplozbx9EBpFG8c1v5vykETF67yuIzpNyMgN+lmTJ/oSeGOA9Kp1hPTNRXMwvx3Rp41fKCgpysZ8fw7N2Kkh403GTWSRJfdeXUmLtXFA3gT2M5pM+gXHyXUziV20WmbcEXuh7d7OB54a7lEr9SYwgk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676918749; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ZI6U64Rdk8D26FUO9YwRBxXo9rNB4qrVrB3wTwIlSnc=; b=dz+4lxifj3aycmLex9a5vRrUqnMCv3F5LKPIKaYwlziTI2O5LAj/BQ9uPay/rhU0lP0e5vlq+GQVTCvnRpLbUb0Pb5n0UdW4YkTnuuuvDskHcz6MZzQHcZ5GxsK4Lk2EeJepM3lwzJoPL7G6OD387KTrr4/eKRnLJ0EH6HyA6zw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676918749855295.37588969538444; Mon, 20 Feb 2023 10:45:49 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUB71-0004pq-68; Mon, 20 Feb 2023 13:42:07 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUB6S-0004XU-4S for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:36 -0500 Received: from mail-pj1-x102b.google.com ([2607:f8b0:4864:20::102b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUB6K-00044a-VU for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:31 -0500 Received: by mail-pj1-x102b.google.com with SMTP id qi12-20020a17090b274c00b002341621377cso2188187pjb.2 for ; Mon, 20 Feb 2023 10:41:00 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id jk20-20020a170903331400b0019258bcf3ffsm1911676plb.56.2023.02.20.10.40.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 10:40:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ZI6U64Rdk8D26FUO9YwRBxXo9rNB4qrVrB3wTwIlSnc=; b=R4bPqc45ZBrLrm4LgkbLNasKjc3cRFLJeIwzmv2wk8HA00q0SagyRtK7Eng3Lo1bin YgWvd4GydaDze5NqxDwptmw+rvwScrNzDO86gUNaeswbvnJZA5hrbOzagx/HF3utYsee bKpAzF+qDWaB2+Q/7BzKkwEW/luGbWwShbm/OOYFW33iNB0wQMMB1d/G7/GCbU4RnJ6q c4gn93hzfH4z+aDrNPUStD0Si3PXFhunwlSxEX/Xk1ZbJFUZVaQC3XgaCY2CKbcBQgz0 hFKOXQfx95ACHCTIq3hJ9VUg3LqAsl6rb5a5ViqAYVng5n8c0PMLklRhpZ/jx6sXBQwX /rzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZI6U64Rdk8D26FUO9YwRBxXo9rNB4qrVrB3wTwIlSnc=; b=Ufcoyoo05rkaicTwFWm/gpiTWp1yDMoYq7hRwzq0VobtgPsZdNr4iygWoDJFldnxxf DYKv1QDWSevvoDmShPeYtJ7PbizFOEsAD/zjbBfAHyYkrG1vYm6fzG+Vn55rD+uQ878Q 4t6PZEWe0qGmmVlG/k9paX++antonXLl494dLy5v0DDMUAoTDC3N5XM0PTlzYwZmZaxD fq3EFD95SqPCU+9nVag0m+LaX5jKS07IMQueFq5jKKWYFc2oS+DvFKVsDb12E5gdpec8 ngYbjOeVwuTlKAPqBTbHlTlbxbIc+veCpIh1YTHx6Wh7moWcmAs9vcHmDP5iGJFR8VkH ULwQ== X-Gm-Message-State: AO0yUKVMz6zRBw2X9c0ARv3pHjzZRgiMi7ZyyF8Op/70+71xOJAMsn4J M0g7+Pf2YcEXQ8a2NKEmXMkS3VO3najJF5PA5bI= X-Google-Smtp-Source: AK7set/Z1sW4nr7Zdoi78E6DDTnZcYGnr+7/SdSXXOfmO+DhFjIgFA5tAUpZMLLg5vXPEWVcWBD21w== X-Received: by 2002:a17:903:22c8:b0:192:4f85:b91d with SMTP id y8-20020a17090322c800b001924f85b91dmr2712037plg.46.1676918459101; Mon, 20 Feb 2023 10:40:59 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: thuth@redhat.com, qemu-s390x@nongnu.org, Ilya Leoshkevich , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v4 01/27] target/s390x: Use tcg_constant_* in local contexts Date: Mon, 20 Feb 2023 08:40:26 -1000 Message-Id: <20230220184052.163465-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230220184052.163465-1-richard.henderson@linaro.org> References: <20230220184052.163465-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102b; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1676918751974100002 Replace tcg_const_* with tcg_constant_* in contexts where the free to remove is nearby. Reviewed-by: Ilya Leoshkevich Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- target/s390x/tcg/translate.c | 410 +++++++++++++---------------------- 1 file changed, 147 insertions(+), 263 deletions(-) diff --git a/target/s390x/tcg/translate.c b/target/s390x/tcg/translate.c index ac5bd98f04..35e844ef3c 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -171,8 +171,6 @@ static uint64_t inline_branch_miss[CC_OP_MAX]; =20 static void pc_to_link_info(TCGv_i64 out, DisasContext *s, uint64_t pc) { - TCGv_i64 tmp; - if (s->base.tb->flags & FLAG_MASK_32) { if (s->base.tb->flags & FLAG_MASK_64) { tcg_gen_movi_i64(out, pc); @@ -181,9 +179,7 @@ static void pc_to_link_info(TCGv_i64 out, DisasContext = *s, uint64_t pc) pc |=3D 0x80000000; } assert(!(s->base.tb->flags & FLAG_MASK_64)); - tmp =3D tcg_const_i64(pc); - tcg_gen_deposit_i64(out, out, tmp, 0, 32); - tcg_temp_free_i64(tmp); + tcg_gen_deposit_i64(out, out, tcg_constant_i64(pc), 0, 32); } =20 static TCGv_i64 psw_addr; @@ -360,11 +356,8 @@ static void per_branch(DisasContext *s, bool to_next) tcg_gen_movi_i64(gbea, s->base.pc_next); =20 if (s->base.tb->flags & FLAG_MASK_PER) { - TCGv_i64 next_pc =3D to_next ? tcg_const_i64(s->pc_tmp) : psw_addr; + TCGv_i64 next_pc =3D to_next ? tcg_constant_i64(s->pc_tmp) : psw_a= ddr; gen_helper_per_branch(cpu_env, gbea, next_pc); - if (to_next) { - tcg_temp_free_i64(next_pc); - } } #endif } @@ -382,9 +375,8 @@ static void per_branch_cond(DisasContext *s, TCGCond co= nd, =20 gen_set_label(lab); } else { - TCGv_i64 pc =3D tcg_const_i64(s->base.pc_next); + TCGv_i64 pc =3D tcg_constant_i64(s->base.pc_next); tcg_gen_movcond_i64(cond, gbea, arg1, arg2, gbea, pc); - tcg_temp_free_i64(pc); } #endif } @@ -438,23 +430,17 @@ static int get_mem_index(DisasContext *s) =20 static void gen_exception(int excp) { - TCGv_i32 tmp =3D tcg_const_i32(excp); - gen_helper_exception(cpu_env, tmp); - tcg_temp_free_i32(tmp); + gen_helper_exception(cpu_env, tcg_constant_i32(excp)); } =20 static void gen_program_exception(DisasContext *s, int code) { - TCGv_i32 tmp; + /* Remember what pgm exeption this was. */ + tcg_gen_st_i32(tcg_constant_i32(code), cpu_env, + offsetof(CPUS390XState, int_pgm_code)); =20 - /* Remember what pgm exception this was. */ - tmp =3D tcg_const_i32(code); - tcg_gen_st_i32(tmp, cpu_env, offsetof(CPUS390XState, int_pgm_code)); - tcg_temp_free_i32(tmp); - - tmp =3D tcg_const_i32(s->ilen); - tcg_gen_st_i32(tmp, cpu_env, offsetof(CPUS390XState, int_pgm_ilen)); - tcg_temp_free_i32(tmp); + tcg_gen_st_i32(tcg_constant_i32(s->ilen), cpu_env, + offsetof(CPUS390XState, int_pgm_ilen)); =20 /* update the psw */ update_psw_addr(s); @@ -473,9 +459,7 @@ static inline void gen_illegal_opcode(DisasContext *s) =20 static inline void gen_data_exception(uint8_t dxc) { - TCGv_i32 tmp =3D tcg_const_i32(dxc); - gen_helper_data_exception(cpu_env, tmp); - tcg_temp_free_i32(tmp); + gen_helper_data_exception(cpu_env, tcg_constant_i32(dxc)); } =20 static inline void gen_trap(DisasContext *s) @@ -596,13 +580,13 @@ static void gen_op_calc_cc(DisasContext *s) =20 switch (s->cc_op) { default: - dummy =3D tcg_const_i64(0); + dummy =3D tcg_constant_i64(0); /* FALLTHRU */ case CC_OP_ADD_64: case CC_OP_SUB_64: case CC_OP_ADD_32: case CC_OP_SUB_32: - local_cc_op =3D tcg_const_i32(s->cc_op); + local_cc_op =3D tcg_constant_i32(s->cc_op); break; case CC_OP_CONST0: case CC_OP_CONST1: @@ -675,13 +659,6 @@ static void gen_op_calc_cc(DisasContext *s) tcg_abort(); } =20 - if (local_cc_op) { - tcg_temp_free_i32(local_cc_op); - } - if (dummy) { - tcg_temp_free_i64(dummy); - } - /* We now have cc in cc_op as constant */ set_cc_static(s); } @@ -1300,9 +1277,9 @@ static DisasJumpType help_branch(DisasContext *s, Dis= asCompare *c, Most commonly we're single-stepping or some other condition that disables all use of goto_tb. Just update the PC and exit. */ =20 - TCGv_i64 next =3D tcg_const_i64(s->pc_tmp); + TCGv_i64 next =3D tcg_constant_i64(s->pc_tmp); if (is_imm) { - cdest =3D tcg_const_i64(dest); + cdest =3D tcg_constant_i64(dest); } =20 if (c->is_64) { @@ -1312,21 +1289,15 @@ static DisasJumpType help_branch(DisasContext *s, D= isasCompare *c, } else { TCGv_i32 t0 =3D tcg_temp_new_i32(); TCGv_i64 t1 =3D tcg_temp_new_i64(); - TCGv_i64 z =3D tcg_const_i64(0); + TCGv_i64 z =3D tcg_constant_i64(0); tcg_gen_setcond_i32(c->cond, t0, c->u.s32.a, c->u.s32.b); tcg_gen_extu_i32_i64(t1, t0); tcg_temp_free_i32(t0); tcg_gen_movcond_i64(TCG_COND_NE, psw_addr, t1, z, cdest, next); per_branch_cond(s, TCG_COND_NE, t1, z); tcg_temp_free_i64(t1); - tcg_temp_free_i64(z); } =20 - if (is_imm) { - tcg_temp_free_i64(cdest); - } - tcg_temp_free_i64(next); - ret =3D DISAS_PC_UPDATED; } =20 @@ -1410,10 +1381,9 @@ static DisasJumpType op_addc64(DisasContext *s, Disa= sOps *o) { compute_carry(s); =20 - TCGv_i64 zero =3D tcg_const_i64(0); + TCGv_i64 zero =3D tcg_constant_i64(0); tcg_gen_add2_i64(o->out, cc_src, o->in1, zero, cc_src, zero); tcg_gen_add2_i64(o->out, cc_src, o->out, cc_src, o->in2, zero); - tcg_temp_free_i64(zero); =20 return DISAS_NEXT; } @@ -2092,9 +2062,8 @@ static DisasJumpType op_clc(DisasContext *s, DisasOps= *o) tcg_gen_qemu_ld64(cc_dst, o->in2, get_mem_index(s)); break; default: - vl =3D tcg_const_i32(l); + vl =3D tcg_constant_i32(l); gen_helper_clc(cc_op, cpu_env, vl, o->addr1, o->in2); - tcg_temp_free_i32(vl); set_cc_static(s); return DISAS_NEXT; } @@ -2114,11 +2083,9 @@ static DisasJumpType op_clcl(DisasContext *s, DisasO= ps *o) return DISAS_NORETURN; } =20 - t1 =3D tcg_const_i32(r1); - t2 =3D tcg_const_i32(r2); + t1 =3D tcg_constant_i32(r1); + t2 =3D tcg_constant_i32(r2); gen_helper_clcl(cc_op, cpu_env, t1, t2); - tcg_temp_free_i32(t1); - tcg_temp_free_i32(t2); set_cc_static(s); return DISAS_NEXT; } @@ -2135,11 +2102,9 @@ static DisasJumpType op_clcle(DisasContext *s, Disas= Ops *o) return DISAS_NORETURN; } =20 - t1 =3D tcg_const_i32(r1); - t3 =3D tcg_const_i32(r3); + t1 =3D tcg_constant_i32(r1); + t3 =3D tcg_constant_i32(r3); gen_helper_clcle(cc_op, cpu_env, t1, o->in2, t3); - tcg_temp_free_i32(t1); - tcg_temp_free_i32(t3); set_cc_static(s); return DISAS_NEXT; } @@ -2156,24 +2121,22 @@ static DisasJumpType op_clclu(DisasContext *s, Disa= sOps *o) return DISAS_NORETURN; } =20 - t1 =3D tcg_const_i32(r1); - t3 =3D tcg_const_i32(r3); + t1 =3D tcg_constant_i32(r1); + t3 =3D tcg_constant_i32(r3); gen_helper_clclu(cc_op, cpu_env, t1, o->in2, t3); - tcg_temp_free_i32(t1); - tcg_temp_free_i32(t3); set_cc_static(s); return DISAS_NEXT; } =20 static DisasJumpType op_clm(DisasContext *s, DisasOps *o) { - TCGv_i32 m3 =3D tcg_const_i32(get_field(s, m3)); + TCGv_i32 m3 =3D tcg_constant_i32(get_field(s, m3)); TCGv_i32 t1 =3D tcg_temp_new_i32(); + tcg_gen_extrl_i64_i32(t1, o->in1); gen_helper_clm(cc_op, cpu_env, t1, m3, o->in2); set_cc_static(s); tcg_temp_free_i32(t1); - tcg_temp_free_i32(m3); return DISAS_NEXT; } =20 @@ -2251,14 +2214,13 @@ static DisasJumpType op_cdsg(DisasContext *s, Disas= Ops *o) static DisasJumpType op_csst(DisasContext *s, DisasOps *o) { int r3 =3D get_field(s, r3); - TCGv_i32 t_r3 =3D tcg_const_i32(r3); + TCGv_i32 t_r3 =3D tcg_constant_i32(r3); =20 if (tb_cflags(s->base.tb) & CF_PARALLEL) { gen_helper_csst_parallel(cc_op, cpu_env, t_r3, o->addr1, o->in2); } else { gen_helper_csst(cc_op, cpu_env, t_r3, o->addr1, o->in2); } - tcg_temp_free_i32(t_r3); =20 set_cc_static(s); return DISAS_NEXT; @@ -2356,9 +2318,9 @@ static DisasJumpType op_cuXX(DisasContext *s, DisasOp= s *o) m3 =3D 0; } =20 - tr1 =3D tcg_const_i32(r1); - tr2 =3D tcg_const_i32(r2); - chk =3D tcg_const_i32(m3); + tr1 =3D tcg_constant_i32(r1); + tr2 =3D tcg_constant_i32(r2); + chk =3D tcg_constant_i32(m3); =20 switch (s->insn->data) { case 12: @@ -2383,9 +2345,6 @@ static DisasJumpType op_cuXX(DisasContext *s, DisasOp= s *o) g_assert_not_reached(); } =20 - tcg_temp_free_i32(tr1); - tcg_temp_free_i32(tr2); - tcg_temp_free_i32(chk); set_cc_static(s); return DISAS_NEXT; } @@ -2393,15 +2352,11 @@ static DisasJumpType op_cuXX(DisasContext *s, Disas= Ops *o) #ifndef CONFIG_USER_ONLY static DisasJumpType op_diag(DisasContext *s, DisasOps *o) { - TCGv_i32 r1 =3D tcg_const_i32(get_field(s, r1)); - TCGv_i32 r3 =3D tcg_const_i32(get_field(s, r3)); - TCGv_i32 func_code =3D tcg_const_i32(get_field(s, i2)); + TCGv_i32 r1 =3D tcg_constant_i32(get_field(s, r1)); + TCGv_i32 r3 =3D tcg_constant_i32(get_field(s, r3)); + TCGv_i32 func_code =3D tcg_constant_i32(get_field(s, i2)); =20 gen_helper_diag(cpu_env, r1, r3, func_code); - - tcg_temp_free_i32(func_code); - tcg_temp_free_i32(r3); - tcg_temp_free_i32(r1); return DISAS_NEXT; } #endif @@ -2512,18 +2467,13 @@ static DisasJumpType op_ex(DisasContext *s, DisasOp= s *o) update_cc_op(s); =20 if (r1 =3D=3D 0) { - v1 =3D tcg_const_i64(0); + v1 =3D tcg_constant_i64(0); } else { v1 =3D regs[r1]; } =20 - ilen =3D tcg_const_i32(s->ilen); + ilen =3D tcg_constant_i32(s->ilen); gen_helper_ex(cpu_env, ilen, v1, o->in2); - tcg_temp_free_i32(ilen); - - if (r1 =3D=3D 0) { - tcg_temp_free_i64(v1); - } =20 return DISAS_PC_CC_UPDATED; } @@ -2674,12 +2624,11 @@ static DisasJumpType op_idte(DisasContext *s, Disas= Ops *o) TCGv_i32 m4; =20 if (s390_has_feat(S390_FEAT_LOCAL_TLB_CLEARING)) { - m4 =3D tcg_const_i32(get_field(s, m4)); + m4 =3D tcg_constant_i32(get_field(s, m4)); } else { - m4 =3D tcg_const_i32(0); + m4 =3D tcg_constant_i32(0); } gen_helper_idte(cpu_env, o->in1, o->in2, m4); - tcg_temp_free_i32(m4); return DISAS_NEXT; } =20 @@ -2688,12 +2637,11 @@ static DisasJumpType op_ipte(DisasContext *s, Disas= Ops *o) TCGv_i32 m4; =20 if (s390_has_feat(S390_FEAT_LOCAL_TLB_CLEARING)) { - m4 =3D tcg_const_i32(get_field(s, m4)); + m4 =3D tcg_constant_i32(get_field(s, m4)); } else { - m4 =3D tcg_const_i32(0); + m4 =3D tcg_constant_i32(0); } gen_helper_ipte(cpu_env, o->in1, o->in2, m4); - tcg_temp_free_i32(m4); return DISAS_NEXT; } =20 @@ -2749,16 +2697,12 @@ static DisasJumpType op_msa(DisasContext *s, DisasO= ps *o) g_assert_not_reached(); }; =20 - t_r1 =3D tcg_const_i32(r1); - t_r2 =3D tcg_const_i32(r2); - t_r3 =3D tcg_const_i32(r3); - type =3D tcg_const_i32(s->insn->data); + t_r1 =3D tcg_constant_i32(r1); + t_r2 =3D tcg_constant_i32(r2); + t_r3 =3D tcg_constant_i32(r3); + type =3D tcg_constant_i32(s->insn->data); gen_helper_msa(cc_op, cpu_env, t_r1, t_r2, t_r3, type); set_cc_static(s); - tcg_temp_free_i32(t_r1); - tcg_temp_free_i32(t_r2); - tcg_temp_free_i32(t_r3); - tcg_temp_free_i32(type); return DISAS_NEXT; } =20 @@ -3017,10 +2961,9 @@ static DisasJumpType op_loc(DisasContext *s, DisasOp= s *o) tcg_gen_extu_i32_i64(t, t32); tcg_temp_free_i32(t32); =20 - z =3D tcg_const_i64(0); + z =3D tcg_constant_i64(0); tcg_gen_movcond_i64(TCG_COND_NE, o->out, t, z, o->in2, o->in1); tcg_temp_free_i64(t); - tcg_temp_free_i64(z); } =20 return DISAS_NEXT; @@ -3029,11 +2972,10 @@ static DisasJumpType op_loc(DisasContext *s, DisasO= ps *o) #ifndef CONFIG_USER_ONLY static DisasJumpType op_lctl(DisasContext *s, DisasOps *o) { - TCGv_i32 r1 =3D tcg_const_i32(get_field(s, r1)); - TCGv_i32 r3 =3D tcg_const_i32(get_field(s, r3)); + TCGv_i32 r1 =3D tcg_constant_i32(get_field(s, r1)); + TCGv_i32 r3 =3D tcg_constant_i32(get_field(s, r3)); + gen_helper_lctl(cpu_env, r1, o->in2, r3); - tcg_temp_free_i32(r1); - tcg_temp_free_i32(r3); /* Exit to main loop to reevaluate s390_cpu_exec_interrupt. */ s->exit_to_mainloop =3D true; return DISAS_TOO_MANY; @@ -3041,11 +2983,10 @@ static DisasJumpType op_lctl(DisasContext *s, Disas= Ops *o) =20 static DisasJumpType op_lctlg(DisasContext *s, DisasOps *o) { - TCGv_i32 r1 =3D tcg_const_i32(get_field(s, r1)); - TCGv_i32 r3 =3D tcg_const_i32(get_field(s, r3)); + TCGv_i32 r1 =3D tcg_constant_i32(get_field(s, r1)); + TCGv_i32 r3 =3D tcg_constant_i32(get_field(s, r3)); + gen_helper_lctlg(cpu_env, r1, o->in2, r3); - tcg_temp_free_i32(r1); - tcg_temp_free_i32(r3); /* Exit to main loop to reevaluate s390_cpu_exec_interrupt. */ s->exit_to_mainloop =3D true; return DISAS_TOO_MANY; @@ -3105,11 +3046,10 @@ static DisasJumpType op_lpswe(DisasContext *s, Disa= sOps *o) =20 static DisasJumpType op_lam(DisasContext *s, DisasOps *o) { - TCGv_i32 r1 =3D tcg_const_i32(get_field(s, r1)); - TCGv_i32 r3 =3D tcg_const_i32(get_field(s, r3)); + TCGv_i32 r1 =3D tcg_constant_i32(get_field(s, r1)); + TCGv_i32 r3 =3D tcg_constant_i32(get_field(s, r3)); + gen_helper_lam(cpu_env, r1, o->in2, r3); - tcg_temp_free_i32(r1); - tcg_temp_free_i32(r3); return DISAS_NEXT; } =20 @@ -3319,9 +3259,6 @@ static DisasJumpType op_lcbb(DisasContext *s, DisasOp= s *o) =20 static DisasJumpType op_mc(DisasContext *s, DisasOps *o) { -#if !defined(CONFIG_USER_ONLY) - TCGv_i32 i2; -#endif const uint16_t monitor_class =3D get_field(s, i2); =20 if (monitor_class & 0xff00) { @@ -3330,9 +3267,8 @@ static DisasJumpType op_mc(DisasContext *s, DisasOps = *o) } =20 #if !defined(CONFIG_USER_ONLY) - i2 =3D tcg_const_i32(monitor_class); - gen_helper_monitor_call(cpu_env, o->addr1, i2); - tcg_temp_free_i32(i2); + gen_helper_monitor_call(cpu_env, o->addr1, + tcg_constant_i32(monitor_class)); #endif /* Defaults to a NOP. */ return DISAS_NEXT; @@ -3396,9 +3332,9 @@ static DisasJumpType op_movx(DisasContext *s, DisasOp= s *o) =20 static DisasJumpType op_mvc(DisasContext *s, DisasOps *o) { - TCGv_i32 l =3D tcg_const_i32(get_field(s, l1)); + TCGv_i32 l =3D tcg_constant_i32(get_field(s, l1)); + gen_helper_mvc(cpu_env, l, o->addr1, o->in2); - tcg_temp_free_i32(l); return DISAS_NEXT; } =20 @@ -3410,9 +3346,9 @@ static DisasJumpType op_mvcrl(DisasContext *s, DisasO= ps *o) =20 static DisasJumpType op_mvcin(DisasContext *s, DisasOps *o) { - TCGv_i32 l =3D tcg_const_i32(get_field(s, l1)); + TCGv_i32 l =3D tcg_constant_i32(get_field(s, l1)); + gen_helper_mvcin(cpu_env, l, o->addr1, o->in2); - tcg_temp_free_i32(l); return DISAS_NEXT; } =20 @@ -3428,11 +3364,9 @@ static DisasJumpType op_mvcl(DisasContext *s, DisasO= ps *o) return DISAS_NORETURN; } =20 - t1 =3D tcg_const_i32(r1); - t2 =3D tcg_const_i32(r2); + t1 =3D tcg_constant_i32(r1); + t2 =3D tcg_constant_i32(r2); gen_helper_mvcl(cc_op, cpu_env, t1, t2); - tcg_temp_free_i32(t1); - tcg_temp_free_i32(t2); set_cc_static(s); return DISAS_NEXT; } @@ -3449,11 +3383,9 @@ static DisasJumpType op_mvcle(DisasContext *s, Disas= Ops *o) return DISAS_NORETURN; } =20 - t1 =3D tcg_const_i32(r1); - t3 =3D tcg_const_i32(r3); + t1 =3D tcg_constant_i32(r1); + t3 =3D tcg_constant_i32(r3); gen_helper_mvcle(cc_op, cpu_env, t1, o->in2, t3); - tcg_temp_free_i32(t1); - tcg_temp_free_i32(t3); set_cc_static(s); return DISAS_NEXT; } @@ -3470,11 +3402,9 @@ static DisasJumpType op_mvclu(DisasContext *s, Disas= Ops *o) return DISAS_NORETURN; } =20 - t1 =3D tcg_const_i32(r1); - t3 =3D tcg_const_i32(r3); + t1 =3D tcg_constant_i32(r1); + t3 =3D tcg_constant_i32(r3); gen_helper_mvclu(cc_op, cpu_env, t1, o->in2, t3); - tcg_temp_free_i32(t1); - tcg_temp_free_i32(t3); set_cc_static(s); return DISAS_NEXT; } @@ -3509,49 +3439,45 @@ static DisasJumpType op_mvcs(DisasContext *s, Disas= Ops *o) =20 static DisasJumpType op_mvn(DisasContext *s, DisasOps *o) { - TCGv_i32 l =3D tcg_const_i32(get_field(s, l1)); + TCGv_i32 l =3D tcg_constant_i32(get_field(s, l1)); + gen_helper_mvn(cpu_env, l, o->addr1, o->in2); - tcg_temp_free_i32(l); return DISAS_NEXT; } =20 static DisasJumpType op_mvo(DisasContext *s, DisasOps *o) { - TCGv_i32 l =3D tcg_const_i32(get_field(s, l1)); + TCGv_i32 l =3D tcg_constant_i32(get_field(s, l1)); + gen_helper_mvo(cpu_env, l, o->addr1, o->in2); - tcg_temp_free_i32(l); return DISAS_NEXT; } =20 static DisasJumpType op_mvpg(DisasContext *s, DisasOps *o) { - TCGv_i32 t1 =3D tcg_const_i32(get_field(s, r1)); - TCGv_i32 t2 =3D tcg_const_i32(get_field(s, r2)); + TCGv_i32 t1 =3D tcg_constant_i32(get_field(s, r1)); + TCGv_i32 t2 =3D tcg_constant_i32(get_field(s, r2)); =20 gen_helper_mvpg(cc_op, cpu_env, regs[0], t1, t2); - tcg_temp_free_i32(t1); - tcg_temp_free_i32(t2); set_cc_static(s); return DISAS_NEXT; } =20 static DisasJumpType op_mvst(DisasContext *s, DisasOps *o) { - TCGv_i32 t1 =3D tcg_const_i32(get_field(s, r1)); - TCGv_i32 t2 =3D tcg_const_i32(get_field(s, r2)); + TCGv_i32 t1 =3D tcg_constant_i32(get_field(s, r1)); + TCGv_i32 t2 =3D tcg_constant_i32(get_field(s, r2)); =20 gen_helper_mvst(cc_op, cpu_env, t1, t2); - tcg_temp_free_i32(t1); - tcg_temp_free_i32(t2); set_cc_static(s); return DISAS_NEXT; } =20 static DisasJumpType op_mvz(DisasContext *s, DisasOps *o) { - TCGv_i32 l =3D tcg_const_i32(get_field(s, l1)); + TCGv_i32 l =3D tcg_constant_i32(get_field(s, l1)); + gen_helper_mvz(cpu_env, l, o->addr1, o->in2); - tcg_temp_free_i32(l); return DISAS_NEXT; } =20 @@ -3637,13 +3563,12 @@ static DisasJumpType op_msdb(DisasContext *s, Disas= Ops *o) =20 static DisasJumpType op_nabs(DisasContext *s, DisasOps *o) { - TCGv_i64 z, n; - z =3D tcg_const_i64(0); - n =3D tcg_temp_new_i64(); + TCGv_i64 z =3D tcg_constant_i64(0); + TCGv_i64 n =3D tcg_temp_new_i64(); + tcg_gen_neg_i64(n, o->in2); tcg_gen_movcond_i64(TCG_COND_GE, o->out, o->in2, z, n, o->in2); tcg_temp_free_i64(n); - tcg_temp_free_i64(z); return DISAS_NEXT; } =20 @@ -3668,9 +3593,9 @@ static DisasJumpType op_nabsf128(DisasContext *s, Dis= asOps *o) =20 static DisasJumpType op_nc(DisasContext *s, DisasOps *o) { - TCGv_i32 l =3D tcg_const_i32(get_field(s, l1)); + TCGv_i32 l =3D tcg_constant_i32(get_field(s, l1)); + gen_helper_nc(cc_op, cpu_env, l, o->addr1, o->in2); - tcg_temp_free_i32(l); set_cc_static(s); return DISAS_NEXT; } @@ -3702,9 +3627,9 @@ static DisasJumpType op_negf128(DisasContext *s, Disa= sOps *o) =20 static DisasJumpType op_oc(DisasContext *s, DisasOps *o) { - TCGv_i32 l =3D tcg_const_i32(get_field(s, l1)); + TCGv_i32 l =3D tcg_constant_i32(get_field(s, l1)); + gen_helper_oc(cc_op, cpu_env, l, o->addr1, o->in2); - tcg_temp_free_i32(l); set_cc_static(s); return DISAS_NEXT; } @@ -3754,9 +3679,9 @@ static DisasJumpType op_oi(DisasContext *s, DisasOps = *o) =20 static DisasJumpType op_pack(DisasContext *s, DisasOps *o) { - TCGv_i32 l =3D tcg_const_i32(get_field(s, l1)); + TCGv_i32 l =3D tcg_constant_i32(get_field(s, l1)); + gen_helper_pack(cpu_env, l, o->addr1, o->in2); - tcg_temp_free_i32(l); return DISAS_NEXT; } =20 @@ -3770,9 +3695,8 @@ static DisasJumpType op_pka(DisasContext *s, DisasOps= *o) gen_program_exception(s, PGM_SPECIFICATION); return DISAS_NORETURN; } - l =3D tcg_const_i32(l2); + l =3D tcg_constant_i32(l2); gen_helper_pka(cpu_env, o->addr1, o->in2, l); - tcg_temp_free_i32(l); return DISAS_NEXT; } =20 @@ -3786,9 +3710,8 @@ static DisasJumpType op_pku(DisasContext *s, DisasOps= *o) gen_program_exception(s, PGM_SPECIFICATION); return DISAS_NORETURN; } - l =3D tcg_const_i32(l2); + l =3D tcg_constant_i32(l2); gen_helper_pku(cpu_env, o->addr1, o->in2, l); - tcg_temp_free_i32(l); return DISAS_NEXT; } =20 @@ -4035,9 +3958,8 @@ static DisasJumpType op_sam(DisasContext *s, DisasOps= *o) } s->pc_tmp &=3D mask; =20 - tsam =3D tcg_const_i64(sam); + tsam =3D tcg_constant_i64(sam); tcg_gen_deposit_i64(psw_mask, psw_mask, tsam, 31, 2); - tcg_temp_free_i64(tsam); =20 /* Always exit the TB, since we (may have) changed execution mode. */ return DISAS_TOO_MANY; @@ -4096,12 +4018,11 @@ static DisasJumpType op_servc(DisasContext *s, Disa= sOps *o) =20 static DisasJumpType op_sigp(DisasContext *s, DisasOps *o) { - TCGv_i32 r1 =3D tcg_const_i32(get_field(s, r1)); - TCGv_i32 r3 =3D tcg_const_i32(get_field(s, r3)); + TCGv_i32 r1 =3D tcg_constant_i32(get_field(s, r1)); + TCGv_i32 r3 =3D tcg_constant_i32(get_field(s, r3)); + gen_helper_sigp(cc_op, cpu_env, o->in2, r1, r3); set_cc_static(s); - tcg_temp_free_i32(r1); - tcg_temp_free_i32(r3); return DISAS_NEXT; } #endif @@ -4370,21 +4291,19 @@ static DisasJumpType op_stckc(DisasContext *s, Disa= sOps *o) =20 static DisasJumpType op_stctg(DisasContext *s, DisasOps *o) { - TCGv_i32 r1 =3D tcg_const_i32(get_field(s, r1)); - TCGv_i32 r3 =3D tcg_const_i32(get_field(s, r3)); + TCGv_i32 r1 =3D tcg_constant_i32(get_field(s, r1)); + TCGv_i32 r3 =3D tcg_constant_i32(get_field(s, r3)); + gen_helper_stctg(cpu_env, r1, o->in2, r3); - tcg_temp_free_i32(r1); - tcg_temp_free_i32(r3); return DISAS_NEXT; } =20 static DisasJumpType op_stctl(DisasContext *s, DisasOps *o) { - TCGv_i32 r1 =3D tcg_const_i32(get_field(s, r1)); - TCGv_i32 r3 =3D tcg_const_i32(get_field(s, r3)); + TCGv_i32 r1 =3D tcg_constant_i32(get_field(s, r1)); + TCGv_i32 r3 =3D tcg_constant_i32(get_field(s, r3)); + gen_helper_stctl(cpu_env, r1, o->in2, r3); - tcg_temp_free_i32(r1); - tcg_temp_free_i32(r3); return DISAS_NEXT; } =20 @@ -4611,11 +4530,10 @@ static DisasJumpType op_st64(DisasContext *s, Disas= Ops *o) =20 static DisasJumpType op_stam(DisasContext *s, DisasOps *o) { - TCGv_i32 r1 =3D tcg_const_i32(get_field(s, r1)); - TCGv_i32 r3 =3D tcg_const_i32(get_field(s, r3)); + TCGv_i32 r1 =3D tcg_constant_i32(get_field(s, r1)); + TCGv_i32 r3 =3D tcg_constant_i32(get_field(s, r3)); + gen_helper_stam(cpu_env, r1, o->in2, r3); - tcg_temp_free_i32(r1); - tcg_temp_free_i32(r3); return DISAS_NEXT; } =20 @@ -4673,7 +4591,7 @@ static DisasJumpType op_stm(DisasContext *s, DisasOps= *o) int r1 =3D get_field(s, r1); int r3 =3D get_field(s, r3); int size =3D s->insn->data; - TCGv_i64 tsize =3D tcg_const_i64(size); + TCGv_i64 tsize =3D tcg_constant_i64(size); =20 while (1) { if (size =3D=3D 8) { @@ -4688,7 +4606,6 @@ static DisasJumpType op_stm(DisasContext *s, DisasOps= *o) r1 =3D (r1 + 1) & 15; } =20 - tcg_temp_free_i64(tsize); return DISAS_NEXT; } =20 @@ -4697,8 +4614,8 @@ static DisasJumpType op_stmh(DisasContext *s, DisasOp= s *o) int r1 =3D get_field(s, r1); int r3 =3D get_field(s, r3); TCGv_i64 t =3D tcg_temp_new_i64(); - TCGv_i64 t4 =3D tcg_const_i64(4); - TCGv_i64 t32 =3D tcg_const_i64(32); + TCGv_i64 t4 =3D tcg_constant_i64(4); + TCGv_i64 t32 =3D tcg_constant_i64(32); =20 while (1) { tcg_gen_shl_i64(t, regs[r1], t32); @@ -4711,8 +4628,6 @@ static DisasJumpType op_stmh(DisasContext *s, DisasOp= s *o) } =20 tcg_temp_free_i64(t); - tcg_temp_free_i64(t4); - tcg_temp_free_i64(t32); return DISAS_NEXT; } =20 @@ -4731,26 +4646,20 @@ static DisasJumpType op_stpq(DisasContext *s, Disas= Ops *o) =20 static DisasJumpType op_srst(DisasContext *s, DisasOps *o) { - TCGv_i32 r1 =3D tcg_const_i32(get_field(s, r1)); - TCGv_i32 r2 =3D tcg_const_i32(get_field(s, r2)); + TCGv_i32 r1 =3D tcg_constant_i32(get_field(s, r1)); + TCGv_i32 r2 =3D tcg_constant_i32(get_field(s, r2)); =20 gen_helper_srst(cpu_env, r1, r2); - - tcg_temp_free_i32(r1); - tcg_temp_free_i32(r2); set_cc_static(s); return DISAS_NEXT; } =20 static DisasJumpType op_srstu(DisasContext *s, DisasOps *o) { - TCGv_i32 r1 =3D tcg_const_i32(get_field(s, r1)); - TCGv_i32 r2 =3D tcg_const_i32(get_field(s, r2)); + TCGv_i32 r1 =3D tcg_constant_i32(get_field(s, r1)); + TCGv_i32 r2 =3D tcg_constant_i32(get_field(s, r2)); =20 gen_helper_srstu(cpu_env, r1, r2); - - tcg_temp_free_i32(r1); - tcg_temp_free_i32(r2); set_cc_static(s); return DISAS_NEXT; } @@ -4808,10 +4717,9 @@ static DisasJumpType op_subb64(DisasContext *s, Disa= sOps *o) * Borrow is {0, -1}, so add to subtract; replicate the * borrow input to produce 128-bit -1 for the addition. */ - TCGv_i64 zero =3D tcg_const_i64(0); + TCGv_i64 zero =3D tcg_constant_i64(0); tcg_gen_add2_i64(o->out, cc_src, o->in1, zero, cc_src, cc_src); tcg_gen_sub2_i64(o->out, cc_src, o->out, cc_src, o->in2, zero); - tcg_temp_free_i64(zero); =20 return DISAS_NEXT; } @@ -4823,13 +4731,11 @@ static DisasJumpType op_svc(DisasContext *s, DisasO= ps *o) update_psw_addr(s); update_cc_op(s); =20 - t =3D tcg_const_i32(get_field(s, i1) & 0xff); + t =3D tcg_constant_i32(get_field(s, i1) & 0xff); tcg_gen_st_i32(t, cpu_env, offsetof(CPUS390XState, int_svc_code)); - tcg_temp_free_i32(t); =20 - t =3D tcg_const_i32(s->ilen); + t =3D tcg_constant_i32(s->ilen); tcg_gen_st_i32(t, cpu_env, offsetof(CPUS390XState, int_svc_ilen)); - tcg_temp_free_i32(t); =20 gen_exception(EXCP_SVC); return DISAS_NORETURN; @@ -4886,18 +4792,18 @@ static DisasJumpType op_tprot(DisasContext *s, Disa= sOps *o) =20 static DisasJumpType op_tp(DisasContext *s, DisasOps *o) { - TCGv_i32 l1 =3D tcg_const_i32(get_field(s, l1) + 1); + TCGv_i32 l1 =3D tcg_constant_i32(get_field(s, l1) + 1); + gen_helper_tp(cc_op, cpu_env, o->addr1, l1); - tcg_temp_free_i32(l1); set_cc_static(s); return DISAS_NEXT; } =20 static DisasJumpType op_tr(DisasContext *s, DisasOps *o) { - TCGv_i32 l =3D tcg_const_i32(get_field(s, l1)); + TCGv_i32 l =3D tcg_constant_i32(get_field(s, l1)); + gen_helper_tr(cpu_env, l, o->addr1, o->in2); - tcg_temp_free_i32(l); set_cc_static(s); return DISAS_NEXT; } @@ -4915,27 +4821,27 @@ static DisasJumpType op_tre(DisasContext *s, DisasO= ps *o) =20 static DisasJumpType op_trt(DisasContext *s, DisasOps *o) { - TCGv_i32 l =3D tcg_const_i32(get_field(s, l1)); + TCGv_i32 l =3D tcg_constant_i32(get_field(s, l1)); + gen_helper_trt(cc_op, cpu_env, l, o->addr1, o->in2); - tcg_temp_free_i32(l); set_cc_static(s); return DISAS_NEXT; } =20 static DisasJumpType op_trtr(DisasContext *s, DisasOps *o) { - TCGv_i32 l =3D tcg_const_i32(get_field(s, l1)); + TCGv_i32 l =3D tcg_constant_i32(get_field(s, l1)); + gen_helper_trtr(cc_op, cpu_env, l, o->addr1, o->in2); - tcg_temp_free_i32(l); set_cc_static(s); return DISAS_NEXT; } =20 static DisasJumpType op_trXX(DisasContext *s, DisasOps *o) { - TCGv_i32 r1 =3D tcg_const_i32(get_field(s, r1)); - TCGv_i32 r2 =3D tcg_const_i32(get_field(s, r2)); - TCGv_i32 sizes =3D tcg_const_i32(s->insn->opc & 3); + TCGv_i32 r1 =3D tcg_constant_i32(get_field(s, r1)); + TCGv_i32 r2 =3D tcg_constant_i32(get_field(s, r2)); + TCGv_i32 sizes =3D tcg_constant_i32(s->insn->opc & 3); TCGv_i32 tst =3D tcg_temp_new_i32(); int m3 =3D get_field(s, m3); =20 @@ -4954,9 +4860,6 @@ static DisasJumpType op_trXX(DisasContext *s, DisasOp= s *o) } gen_helper_trXX(cc_op, cpu_env, r1, r2, tst, sizes); =20 - tcg_temp_free_i32(r1); - tcg_temp_free_i32(r2); - tcg_temp_free_i32(sizes); tcg_temp_free_i32(tst); set_cc_static(s); return DISAS_NEXT; @@ -4964,19 +4867,19 @@ static DisasJumpType op_trXX(DisasContext *s, Disas= Ops *o) =20 static DisasJumpType op_ts(DisasContext *s, DisasOps *o) { - TCGv_i32 t1 =3D tcg_const_i32(0xff); + TCGv_i32 t1 =3D tcg_constant_i32(0xff); + tcg_gen_atomic_xchg_i32(t1, o->in2, t1, get_mem_index(s), MO_UB); tcg_gen_extract_i32(cc_op, t1, 7, 1); - tcg_temp_free_i32(t1); set_cc_static(s); return DISAS_NEXT; } =20 static DisasJumpType op_unpk(DisasContext *s, DisasOps *o) { - TCGv_i32 l =3D tcg_const_i32(get_field(s, l1)); + TCGv_i32 l =3D tcg_constant_i32(get_field(s, l1)); + gen_helper_unpk(cpu_env, l, o->addr1, o->in2); - tcg_temp_free_i32(l); return DISAS_NEXT; } =20 @@ -4990,9 +4893,8 @@ static DisasJumpType op_unpka(DisasContext *s, DisasO= ps *o) gen_program_exception(s, PGM_SPECIFICATION); return DISAS_NORETURN; } - l =3D tcg_const_i32(l1); + l =3D tcg_constant_i32(l1); gen_helper_unpka(cc_op, cpu_env, o->addr1, l, o->in2); - tcg_temp_free_i32(l); set_cc_static(s); return DISAS_NEXT; } @@ -5007,9 +4909,8 @@ static DisasJumpType op_unpku(DisasContext *s, DisasO= ps *o) gen_program_exception(s, PGM_SPECIFICATION); return DISAS_NORETURN; } - l =3D tcg_const_i32(l1); + l =3D tcg_constant_i32(l1); gen_helper_unpku(cc_op, cpu_env, o->addr1, l, o->in2); - tcg_temp_free_i32(l); set_cc_static(s); return DISAS_NEXT; } @@ -5028,7 +4929,7 @@ static DisasJumpType op_xc(DisasContext *s, DisasOps = *o) =20 /* If the addresses are identical, this is a store/memset of zero. */ if (b1 =3D=3D b2 && d1 =3D=3D d2 && (l + 1) <=3D 32) { - o->in2 =3D tcg_const_i64(0); + o->in2 =3D tcg_constant_i64(0); =20 l++; while (l >=3D 8) { @@ -5061,9 +4962,8 @@ static DisasJumpType op_xc(DisasContext *s, DisasOps = *o) =20 /* But in general we'll defer to a helper. */ o->in2 =3D get_address(s, 0, b2, d2); - t32 =3D tcg_const_i32(l); + t32 =3D tcg_constant_i32(l); gen_helper_xc(cc_op, cpu_env, t32, o->addr1, o->in2); - tcg_temp_free_i32(t32); set_cc_static(s); return DISAS_NEXT; } @@ -5128,46 +5028,39 @@ static DisasJumpType op_zero2(DisasContext *s, Disa= sOps *o) #ifndef CONFIG_USER_ONLY static DisasJumpType op_clp(DisasContext *s, DisasOps *o) { - TCGv_i32 r2 =3D tcg_const_i32(get_field(s, r2)); + TCGv_i32 r2 =3D tcg_constant_i32(get_field(s, r2)); =20 gen_helper_clp(cpu_env, r2); - tcg_temp_free_i32(r2); set_cc_static(s); return DISAS_NEXT; } =20 static DisasJumpType op_pcilg(DisasContext *s, DisasOps *o) { - TCGv_i32 r1 =3D tcg_const_i32(get_field(s, r1)); - TCGv_i32 r2 =3D tcg_const_i32(get_field(s, r2)); + TCGv_i32 r1 =3D tcg_constant_i32(get_field(s, r1)); + TCGv_i32 r2 =3D tcg_constant_i32(get_field(s, r2)); =20 gen_helper_pcilg(cpu_env, r1, r2); - tcg_temp_free_i32(r1); - tcg_temp_free_i32(r2); set_cc_static(s); return DISAS_NEXT; } =20 static DisasJumpType op_pcistg(DisasContext *s, DisasOps *o) { - TCGv_i32 r1 =3D tcg_const_i32(get_field(s, r1)); - TCGv_i32 r2 =3D tcg_const_i32(get_field(s, r2)); + TCGv_i32 r1 =3D tcg_constant_i32(get_field(s, r1)); + TCGv_i32 r2 =3D tcg_constant_i32(get_field(s, r2)); =20 gen_helper_pcistg(cpu_env, r1, r2); - tcg_temp_free_i32(r1); - tcg_temp_free_i32(r2); set_cc_static(s); return DISAS_NEXT; } =20 static DisasJumpType op_stpcifc(DisasContext *s, DisasOps *o) { - TCGv_i32 r1 =3D tcg_const_i32(get_field(s, r1)); - TCGv_i32 ar =3D tcg_const_i32(get_field(s, b2)); + TCGv_i32 r1 =3D tcg_constant_i32(get_field(s, r1)); + TCGv_i32 ar =3D tcg_constant_i32(get_field(s, b2)); =20 gen_helper_stpcifc(cpu_env, r1, o->addr1, ar); - tcg_temp_free_i32(ar); - tcg_temp_free_i32(r1); set_cc_static(s); return DISAS_NEXT; } @@ -5180,38 +5073,31 @@ static DisasJumpType op_sic(DisasContext *s, DisasO= ps *o) =20 static DisasJumpType op_rpcit(DisasContext *s, DisasOps *o) { - TCGv_i32 r1 =3D tcg_const_i32(get_field(s, r1)); - TCGv_i32 r2 =3D tcg_const_i32(get_field(s, r2)); + TCGv_i32 r1 =3D tcg_constant_i32(get_field(s, r1)); + TCGv_i32 r2 =3D tcg_constant_i32(get_field(s, r2)); =20 gen_helper_rpcit(cpu_env, r1, r2); - tcg_temp_free_i32(r1); - tcg_temp_free_i32(r2); set_cc_static(s); return DISAS_NEXT; } =20 static DisasJumpType op_pcistb(DisasContext *s, DisasOps *o) { - TCGv_i32 r1 =3D tcg_const_i32(get_field(s, r1)); - TCGv_i32 r3 =3D tcg_const_i32(get_field(s, r3)); - TCGv_i32 ar =3D tcg_const_i32(get_field(s, b2)); + TCGv_i32 r1 =3D tcg_constant_i32(get_field(s, r1)); + TCGv_i32 r3 =3D tcg_constant_i32(get_field(s, r3)); + TCGv_i32 ar =3D tcg_constant_i32(get_field(s, b2)); =20 gen_helper_pcistb(cpu_env, r1, r3, o->addr1, ar); - tcg_temp_free_i32(ar); - tcg_temp_free_i32(r1); - tcg_temp_free_i32(r3); set_cc_static(s); return DISAS_NEXT; } =20 static DisasJumpType op_mpcifc(DisasContext *s, DisasOps *o) { - TCGv_i32 r1 =3D tcg_const_i32(get_field(s, r1)); - TCGv_i32 ar =3D tcg_const_i32(get_field(s, b2)); + TCGv_i32 r1 =3D tcg_constant_i32(get_field(s, r1)); + TCGv_i32 ar =3D tcg_constant_i32(get_field(s, b2)); =20 gen_helper_mpcifc(cpu_env, r1, o->addr1, ar); - tcg_temp_free_i32(ar); - tcg_temp_free_i32(r1); set_cc_static(s); return DISAS_NEXT; } @@ -6378,16 +6264,15 @@ static const DisasInsn *extract_insn(CPUS390XState = *env, DisasContext *s) =20 if (unlikely(s->ex_value)) { /* Drop the EX data now, so that it's clear on exception paths. */ - TCGv_i64 zero =3D tcg_const_i64(0); - int i; - tcg_gen_st_i64(zero, cpu_env, offsetof(CPUS390XState, ex_value)); - tcg_temp_free_i64(zero); + tcg_gen_st_i64(tcg_constant_i64(0), cpu_env, + offsetof(CPUS390XState, ex_value)); =20 /* Extract the values saved by EXECUTE. */ insn =3D s->ex_value & 0xffffffffffff0000ull; ilen =3D s->ex_value & 0xf; - /* register insn bytes with translator so plugins work */ - for (i =3D 0; i < ilen; i++) { + + /* Register insn bytes with translator so plugins work. */ + for (int i =3D 0; i < ilen; i++) { uint8_t byte =3D extract64(insn, 56 - (i * 8), 8); translator_fake_ldb(byte, pc + i); } @@ -6512,9 +6397,8 @@ static DisasJumpType translate_one(CPUS390XState *env= , DisasContext *s) =20 #ifndef CONFIG_USER_ONLY if (s->base.tb->flags & FLAG_MASK_PER) { - TCGv_i64 addr =3D tcg_const_i64(s->base.pc_next); + TCGv_i64 addr =3D tcg_constant_i64(s->base.pc_next); gen_helper_per_ifetch(cpu_env, addr); - tcg_temp_free_i64(addr); } #endif =20 --=20 2.34.1 From nobody Tue May 14 03:45:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1676918624; cv=none; d=zohomail.com; s=zohoarc; b=MVKubmOOHjhYRWwAHHGHcAGO7Bx9j1/kukUnqg0xS9EJLdBkBfJPqKX6pSnOL6vwVS3XIHT1LFbsVqpFY1DmrWzs13sk345BWUCMcWCpzqc8aGoKD075gb36Qol1Slhb62J9z39nIbrkjQkS04nWqjKBB6fVNG6sMBYeRQwrzgw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676918624; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=4uWfLRIfJk8kynH2znY8EtkUuU9POntvMHrtKgCos1g=; b=fkZy751tjb29WEHL1N/G/ZMo4qx0PI41DN4VRYoCBU2VEI1f+FGWmqC7YaZtbx660MvyS1p6608dkBr0ERbtHZCr+nkwXPu7nEAyxy74C8MINmqE8btL93D617wy4x1oISVN292MHd+Tst9uKoGiREynue30OLi8XjtXlA/MrTQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 167691862463956.73650809171704; Mon, 20 Feb 2023 10:43:44 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUB6k-0004ku-Rk; Mon, 20 Feb 2023 13:41:50 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUB6Q-0004XI-4l for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:34 -0500 Received: from mail-pl1-x631.google.com ([2607:f8b0:4864:20::631]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUB6K-00044o-VL for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:28 -0500 Received: by mail-pl1-x631.google.com with SMTP id q11so2822459plx.5 for ; Mon, 20 Feb 2023 10:41:01 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id jk20-20020a170903331400b0019258bcf3ffsm1911676plb.56.2023.02.20.10.40.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 10:41:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=4uWfLRIfJk8kynH2znY8EtkUuU9POntvMHrtKgCos1g=; b=OzuxOo1fwaD4OM+KS6DQ9ysd3Grl2m21EX7DuIotwt+Bb9788wTEcyU5CAEQl4tkzK sspxZ9O72hxflQ7bCAjI0MVheZu6+5DfGzpV0Ae9NxwznH18k73FA8HiFDfpSEHH3iN7 L+m7rrwi8mLaS+4XvDKclB00s7KSPMiD15TrKex5ukZoBizIEcGWgg1iQvFwXVj1jRon CABH414+XiUBTKXFRDFLOyP/KpiZdmltnvDVkzsarygILEvWDIfU4sIYkjySk/6OlXok bG1gf6h2OBnfiQ425/5sQCsXLYftBuWgxPvEPwlIvKVVicfUJRpYpw3iDkTWpcK8a1VH BjFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4uWfLRIfJk8kynH2znY8EtkUuU9POntvMHrtKgCos1g=; b=mJTRbPuW/yQ+mzTIvlYD0MhRInFGZulMOl1MmKGknyhXQsRO7NiwW/Kp/jueK16+Lj x5b7VA4BUMPftIjtkz8LI0Xj71PhrzpH4oOHdP6ZeLMrLYuoU0ZGEfGUVHgFlxRlScSB fe+Tb67I7RdvZJwzIge5xt7zGxUXvRNLEFqRfMEp+8WfHackhIjVBqRe2pbUWTkzbq0S PgeeyDlvBKcXjZHmHdLQKm0gczxXMn/aoIhPXGPrag+Y7s/yP+8p7lgLTd4QzHa76ro9 1+McpIj4BCmU9Va0WWKahcfO6sFEjkotCGVuEL+C15o+TVYvTeJRDTh82/PXZecFiK5U E23w== X-Gm-Message-State: AO0yUKXd9y28LyqS99evbctZAwQ2PeWq5UJaN9DJc3mCIIu2CtFz4b8M pUL04O6dKLayF7zKuxAcPy89Ie7ub5GTUnC8xuA= X-Google-Smtp-Source: AK7set9GR1M4mms3ngbzQfIbZkPXYTnKqi7x2UeGpGLI6hOvJ7WcPuWSUYbbAzXoG1vRODrBu61MVw== X-Received: by 2002:a17:902:f682:b0:198:e056:4d78 with SMTP id l2-20020a170902f68200b00198e0564d78mr3815310plg.23.1676918460844; Mon, 20 Feb 2023 10:41:00 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: thuth@redhat.com, qemu-s390x@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Ilya Leoshkevich Subject: [PATCH v4 02/27] target/s390x: Use tcg_constant_* for DisasCompare Date: Mon, 20 Feb 2023 08:40:27 -1000 Message-Id: <20230220184052.163465-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230220184052.163465-1-richard.henderson@linaro.org> References: <20230220184052.163465-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::631; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x631.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1676918625090100002 The a and b fields are not modified by the consumer, and while we need not free a constant, tcg will quietly ignore such frees, so free_compare need not be changed. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Ilya Leoshkevich Signed-off-by: Richard Henderson --- target/s390x/tcg/translate.c | 44 ++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/target/s390x/tcg/translate.c b/target/s390x/tcg/translate.c index 35e844ef3c..a534419073 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -845,7 +845,7 @@ static void disas_jcc(DisasContext *s, DisasCompare *c,= uint32_t mask) c->is_64 =3D false; c->u.s32.a =3D tcg_temp_new_i32(); tcg_gen_extrl_i64_i32(c->u.s32.a, cc_dst); - c->u.s32.b =3D tcg_const_i32(0); + c->u.s32.b =3D tcg_constant_i32(0); break; case CC_OP_LTGT_32: case CC_OP_LTUGTU_32: @@ -860,7 +860,7 @@ static void disas_jcc(DisasContext *s, DisasCompare *c,= uint32_t mask) case CC_OP_NZ: case CC_OP_FLOGR: c->u.s64.a =3D cc_dst; - c->u.s64.b =3D tcg_const_i64(0); + c->u.s64.b =3D tcg_constant_i64(0); c->g1 =3D true; break; case CC_OP_LTGT_64: @@ -874,14 +874,14 @@ static void disas_jcc(DisasContext *s, DisasCompare *= c, uint32_t mask) case CC_OP_TM_64: case CC_OP_ICM: c->u.s64.a =3D tcg_temp_new_i64(); - c->u.s64.b =3D tcg_const_i64(0); + c->u.s64.b =3D tcg_constant_i64(0); tcg_gen_and_i64(c->u.s64.a, cc_src, cc_dst); break; =20 case CC_OP_ADDU: case CC_OP_SUBU: c->is_64 =3D true; - c->u.s64.b =3D tcg_const_i64(0); + c->u.s64.b =3D tcg_constant_i64(0); c->g1 =3D true; switch (mask) { case 8 | 2: @@ -904,65 +904,65 @@ static void disas_jcc(DisasContext *s, DisasCompare *= c, uint32_t mask) switch (mask) { case 0x8 | 0x4 | 0x2: /* cc !=3D 3 */ cond =3D TCG_COND_NE; - c->u.s32.b =3D tcg_const_i32(3); + c->u.s32.b =3D tcg_constant_i32(3); break; case 0x8 | 0x4 | 0x1: /* cc !=3D 2 */ cond =3D TCG_COND_NE; - c->u.s32.b =3D tcg_const_i32(2); + c->u.s32.b =3D tcg_constant_i32(2); break; case 0x8 | 0x2 | 0x1: /* cc !=3D 1 */ cond =3D TCG_COND_NE; - c->u.s32.b =3D tcg_const_i32(1); + c->u.s32.b =3D tcg_constant_i32(1); break; case 0x8 | 0x2: /* cc =3D=3D 0 || cc =3D=3D 2 =3D> (cc & 1) =3D=3D= 0 */ cond =3D TCG_COND_EQ; c->g1 =3D false; c->u.s32.a =3D tcg_temp_new_i32(); - c->u.s32.b =3D tcg_const_i32(0); + c->u.s32.b =3D tcg_constant_i32(0); tcg_gen_andi_i32(c->u.s32.a, cc_op, 1); break; case 0x8 | 0x4: /* cc < 2 */ cond =3D TCG_COND_LTU; - c->u.s32.b =3D tcg_const_i32(2); + c->u.s32.b =3D tcg_constant_i32(2); break; case 0x8: /* cc =3D=3D 0 */ cond =3D TCG_COND_EQ; - c->u.s32.b =3D tcg_const_i32(0); + c->u.s32.b =3D tcg_constant_i32(0); break; case 0x4 | 0x2 | 0x1: /* cc !=3D 0 */ cond =3D TCG_COND_NE; - c->u.s32.b =3D tcg_const_i32(0); + c->u.s32.b =3D tcg_constant_i32(0); break; case 0x4 | 0x1: /* cc =3D=3D 1 || cc =3D=3D 3 =3D> (cc & 1) !=3D 0= */ cond =3D TCG_COND_NE; c->g1 =3D false; c->u.s32.a =3D tcg_temp_new_i32(); - c->u.s32.b =3D tcg_const_i32(0); + c->u.s32.b =3D tcg_constant_i32(0); tcg_gen_andi_i32(c->u.s32.a, cc_op, 1); break; case 0x4: /* cc =3D=3D 1 */ cond =3D TCG_COND_EQ; - c->u.s32.b =3D tcg_const_i32(1); + c->u.s32.b =3D tcg_constant_i32(1); break; case 0x2 | 0x1: /* cc > 1 */ cond =3D TCG_COND_GTU; - c->u.s32.b =3D tcg_const_i32(1); + c->u.s32.b =3D tcg_constant_i32(1); break; case 0x2: /* cc =3D=3D 2 */ cond =3D TCG_COND_EQ; - c->u.s32.b =3D tcg_const_i32(2); + c->u.s32.b =3D tcg_constant_i32(2); break; case 0x1: /* cc =3D=3D 3 */ cond =3D TCG_COND_EQ; - c->u.s32.b =3D tcg_const_i32(3); + c->u.s32.b =3D tcg_constant_i32(3); break; default: /* CC is masked by something else: (8 >> cc) & mask. */ cond =3D TCG_COND_NE; c->g1 =3D false; - c->u.s32.a =3D tcg_const_i32(8); - c->u.s32.b =3D tcg_const_i32(0); - tcg_gen_shr_i32(c->u.s32.a, c->u.s32.a, cc_op); + c->u.s32.a =3D tcg_temp_new_i32(); + c->u.s32.b =3D tcg_constant_i32(0); + tcg_gen_shr_i32(c->u.s32.a, tcg_constant_i32(8), cc_op); tcg_gen_andi_i32(c->u.s32.a, c->u.s32.a, mask); break; } @@ -1619,7 +1619,7 @@ static DisasJumpType op_bct32(DisasContext *s, DisasO= ps *o) tcg_gen_subi_i64(t, regs[r1], 1); store_reg32_i64(r1, t); c.u.s32.a =3D tcg_temp_new_i32(); - c.u.s32.b =3D tcg_const_i32(0); + c.u.s32.b =3D tcg_constant_i32(0); tcg_gen_extrl_i64_i32(c.u.s32.a, t); tcg_temp_free_i64(t); =20 @@ -1643,7 +1643,7 @@ static DisasJumpType op_bcth(DisasContext *s, DisasOp= s *o) tcg_gen_subi_i64(t, t, 1); store_reg32h_i64(r1, t); c.u.s32.a =3D tcg_temp_new_i32(); - c.u.s32.b =3D tcg_const_i32(0); + c.u.s32.b =3D tcg_constant_i32(0); tcg_gen_extrl_i64_i32(c.u.s32.a, t); tcg_temp_free_i64(t); =20 @@ -1664,7 +1664,7 @@ static DisasJumpType op_bct64(DisasContext *s, DisasO= ps *o) =20 tcg_gen_subi_i64(regs[r1], regs[r1], 1); c.u.s64.a =3D regs[r1]; - c.u.s64.b =3D tcg_const_i64(0); + c.u.s64.b =3D tcg_constant_i64(0); =20 return help_branch(s, &c, is_imm, imm, o->in2); } --=20 2.34.1 From nobody Tue May 14 03:45:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1676918935; cv=none; d=zohomail.com; s=zohoarc; b=CCcZyaF1xaMRnFvj/DndCrYY5dSjnKYuw0yN/nIu1ADqFFRDRvM3Jn1wLTluBugTm5zC+JvyxMhB6ZFo7WNwsiVsLW+EZc+BzfZXEYvSjNldsrl/AP5600LsUSseneaFhMj6HH7IXzK+vxQASyEJ9qsDIFkwJt5AIW6fZD+p6tU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676918935; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=kuis/SwiHNKwZximu8rFfjj+vlz/4b8JBXnbFenYjqI=; b=Ht6ga1AAk62vUFlQ8K16VWSY2XBNpYxw2XySX4Nv7LiRSJeVtp9sFQdglJpDiJ1Sv44PrKibmBw77GWJhC5dKzzZm1IQWGSFNMyK1lY7OrCAso4lZ3mJES83XWXwXCSDzPTmaVmTduR3MLZyxG2XdzrcUrRzLTxwdDZDbbJhqPs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 167691893521539.13295975805829; Mon, 20 Feb 2023 10:48:55 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUB6l-0004lV-Ee; Mon, 20 Feb 2023 13:41:51 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUB6S-0004XT-54 for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:36 -0500 Received: from mail-pl1-x634.google.com ([2607:f8b0:4864:20::634]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUB6L-000454-8w for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:31 -0500 Received: by mail-pl1-x634.google.com with SMTP id ky4so3678402plb.3 for ; Mon, 20 Feb 2023 10:41:04 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id jk20-20020a170903331400b0019258bcf3ffsm1911676plb.56.2023.02.20.10.41.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 10:41:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=kuis/SwiHNKwZximu8rFfjj+vlz/4b8JBXnbFenYjqI=; b=xVrRah4D/UxGjW12cifqL0EImM557EIaosIHKXRPZDYkFkEzEeinWGEiOPo/GvXmWz VuMKa2VKti+NJD5fxrbvHhdNcepMEeZ8nT0btHaUtQ7YAu+d2qNzxPBBspxNeeb7TlgO cxIwCwcRmaEi/7MBoWADbQK3NnheKXMrJV06P7JrdgqU2mbki0hFVt3GYw8HWTnAVnjY qYk/oeILeMluFA18mhd6DBIdw35iFLEZjow2T3WBp1eJ7lKCWQ+wv9SeniOFIhcpNspK Oyo2KCxcjiGT5aOmVqvqLqHC8xa/X5ZW0kok2G2joBqLsMQjNMrXT83TU+5ZJaHpZP/V Er1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kuis/SwiHNKwZximu8rFfjj+vlz/4b8JBXnbFenYjqI=; b=P4LSlxgVIqE2pMh7ayZAlq7DlX+HgaoMD4DZQO3XKFL11Ne86DMMhV15ncxFkeISrQ XyQZJNL3NGGO3LIONhQUiCRlmXDiuwEWMVXOGC9Sx7oEgda3udZzOk315AV3fzRfzR3h aWzLYJJYMIJC5NWF7Yl9rqYnk6p+PX9HX9kaohjxoc2BNWHpwd7L9i2zpzb4+dHsoUWo Wi9oRbWT0v1IbhurJwm76whD4e7/Y9rSnEaQBFhhsVJtBpKdGlgx4t3c85cKkbVjRoPH q3C4/vdtDOugQoJpvURoALvZERFlcgCzT8CiMovvB4wxoZ0p8kWrAiuFKGcN88SGtX/K Rrhg== X-Gm-Message-State: AO0yUKXP80Qwy1quVSCsdAZIZJJlqoIQ0Dyz+tyLEGxnBGwwcWH9+aB6 jFnoQgdPM9mPXJKEFqrASfBn58VoIsTyha6FaVQ= X-Google-Smtp-Source: AK7set9ENUyIMgN2M518iA6qgWcvEAgxLHFCVUUsz2Gsgi8fny0Fd3hio+u/46VT20Iv62DWauxruA== X-Received: by 2002:a17:903:284:b0:19a:9797:1631 with SMTP id j4-20020a170903028400b0019a97971631mr2789802plr.3.1676918462651; Mon, 20 Feb 2023 10:41:02 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: thuth@redhat.com, qemu-s390x@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Ilya Leoshkevich Subject: [PATCH v4 03/27] target/s390x: Use tcg_constant_i32 for fpinst_extract_m34 Date: Mon, 20 Feb 2023 08:40:28 -1000 Message-Id: <20230220184052.163465-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230220184052.163465-1-richard.henderson@linaro.org> References: <20230220184052.163465-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::634; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x634.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1676918937224100006 Return a constant or NULL, which means the free may be removed from all callers of fpinst_extract_m34. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Ilya Leoshkevich Signed-off-by: Richard Henderson --- target/s390x/tcg/translate.c | 26 +------------------------- 1 file changed, 1 insertion(+), 25 deletions(-) diff --git a/target/s390x/tcg/translate.c b/target/s390x/tcg/translate.c index a534419073..faa6f737ba 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -1790,7 +1790,7 @@ static TCGv_i32 fpinst_extract_m34(DisasContext *s, b= ool m3_with_fpe, return NULL; } =20 - return tcg_const_i32(deposit32(m3, 4, 4, m4)); + return tcg_constant_i32(deposit32(m3, 4, 4, m4)); } =20 static DisasJumpType op_cfeb(DisasContext *s, DisasOps *o) @@ -1801,7 +1801,6 @@ static DisasJumpType op_cfeb(DisasContext *s, DisasOp= s *o) return DISAS_NORETURN; } gen_helper_cfeb(o->out, cpu_env, o->in2, m34); - tcg_temp_free_i32(m34); set_cc_static(s); return DISAS_NEXT; } @@ -1814,7 +1813,6 @@ static DisasJumpType op_cfdb(DisasContext *s, DisasOp= s *o) return DISAS_NORETURN; } gen_helper_cfdb(o->out, cpu_env, o->in2, m34); - tcg_temp_free_i32(m34); set_cc_static(s); return DISAS_NEXT; } @@ -1827,7 +1825,6 @@ static DisasJumpType op_cfxb(DisasContext *s, DisasOp= s *o) return DISAS_NORETURN; } gen_helper_cfxb(o->out, cpu_env, o->in2_128, m34); - tcg_temp_free_i32(m34); set_cc_static(s); return DISAS_NEXT; } @@ -1840,7 +1837,6 @@ static DisasJumpType op_cgeb(DisasContext *s, DisasOp= s *o) return DISAS_NORETURN; } gen_helper_cgeb(o->out, cpu_env, o->in2, m34); - tcg_temp_free_i32(m34); set_cc_static(s); return DISAS_NEXT; } @@ -1853,7 +1849,6 @@ static DisasJumpType op_cgdb(DisasContext *s, DisasOp= s *o) return DISAS_NORETURN; } gen_helper_cgdb(o->out, cpu_env, o->in2, m34); - tcg_temp_free_i32(m34); set_cc_static(s); return DISAS_NEXT; } @@ -1866,7 +1861,6 @@ static DisasJumpType op_cgxb(DisasContext *s, DisasOp= s *o) return DISAS_NORETURN; } gen_helper_cgxb(o->out, cpu_env, o->in2_128, m34); - tcg_temp_free_i32(m34); set_cc_static(s); return DISAS_NEXT; } @@ -1879,7 +1873,6 @@ static DisasJumpType op_clfeb(DisasContext *s, DisasO= ps *o) return DISAS_NORETURN; } gen_helper_clfeb(o->out, cpu_env, o->in2, m34); - tcg_temp_free_i32(m34); set_cc_static(s); return DISAS_NEXT; } @@ -1892,7 +1885,6 @@ static DisasJumpType op_clfdb(DisasContext *s, DisasO= ps *o) return DISAS_NORETURN; } gen_helper_clfdb(o->out, cpu_env, o->in2, m34); - tcg_temp_free_i32(m34); set_cc_static(s); return DISAS_NEXT; } @@ -1905,7 +1897,6 @@ static DisasJumpType op_clfxb(DisasContext *s, DisasO= ps *o) return DISAS_NORETURN; } gen_helper_clfxb(o->out, cpu_env, o->in2_128, m34); - tcg_temp_free_i32(m34); set_cc_static(s); return DISAS_NEXT; } @@ -1918,7 +1909,6 @@ static DisasJumpType op_clgeb(DisasContext *s, DisasO= ps *o) return DISAS_NORETURN; } gen_helper_clgeb(o->out, cpu_env, o->in2, m34); - tcg_temp_free_i32(m34); set_cc_static(s); return DISAS_NEXT; } @@ -1931,7 +1921,6 @@ static DisasJumpType op_clgdb(DisasContext *s, DisasO= ps *o) return DISAS_NORETURN; } gen_helper_clgdb(o->out, cpu_env, o->in2, m34); - tcg_temp_free_i32(m34); set_cc_static(s); return DISAS_NEXT; } @@ -1944,7 +1933,6 @@ static DisasJumpType op_clgxb(DisasContext *s, DisasO= ps *o) return DISAS_NORETURN; } gen_helper_clgxb(o->out, cpu_env, o->in2_128, m34); - tcg_temp_free_i32(m34); set_cc_static(s); return DISAS_NEXT; } @@ -1957,7 +1945,6 @@ static DisasJumpType op_cegb(DisasContext *s, DisasOp= s *o) return DISAS_NORETURN; } gen_helper_cegb(o->out, cpu_env, o->in2, m34); - tcg_temp_free_i32(m34); return DISAS_NEXT; } =20 @@ -1969,7 +1956,6 @@ static DisasJumpType op_cdgb(DisasContext *s, DisasOp= s *o) return DISAS_NORETURN; } gen_helper_cdgb(o->out, cpu_env, o->in2, m34); - tcg_temp_free_i32(m34); return DISAS_NEXT; } =20 @@ -1981,7 +1967,6 @@ static DisasJumpType op_cxgb(DisasContext *s, DisasOp= s *o) return DISAS_NORETURN; } gen_helper_cxgb(o->out_128, cpu_env, o->in2, m34); - tcg_temp_free_i32(m34); return DISAS_NEXT; } =20 @@ -1993,7 +1978,6 @@ static DisasJumpType op_celgb(DisasContext *s, DisasO= ps *o) return DISAS_NORETURN; } gen_helper_celgb(o->out, cpu_env, o->in2, m34); - tcg_temp_free_i32(m34); return DISAS_NEXT; } =20 @@ -2005,7 +1989,6 @@ static DisasJumpType op_cdlgb(DisasContext *s, DisasO= ps *o) return DISAS_NORETURN; } gen_helper_cdlgb(o->out, cpu_env, o->in2, m34); - tcg_temp_free_i32(m34); return DISAS_NEXT; } =20 @@ -2017,7 +2000,6 @@ static DisasJumpType op_cxlgb(DisasContext *s, DisasO= ps *o) return DISAS_NORETURN; } gen_helper_cxlgb(o->out_128, cpu_env, o->in2, m34); - tcg_temp_free_i32(m34); return DISAS_NEXT; } =20 @@ -2486,7 +2468,6 @@ static DisasJumpType op_fieb(DisasContext *s, DisasOp= s *o) return DISAS_NORETURN; } gen_helper_fieb(o->out, cpu_env, o->in2, m34); - tcg_temp_free_i32(m34); return DISAS_NEXT; } =20 @@ -2498,7 +2479,6 @@ static DisasJumpType op_fidb(DisasContext *s, DisasOp= s *o) return DISAS_NORETURN; } gen_helper_fidb(o->out, cpu_env, o->in2, m34); - tcg_temp_free_i32(m34); return DISAS_NEXT; } =20 @@ -2510,7 +2490,6 @@ static DisasJumpType op_fixb(DisasContext *s, DisasOp= s *o) return DISAS_NORETURN; } gen_helper_fixb(o->out_128, cpu_env, o->in2_128, m34); - tcg_temp_free_i32(m34); return DISAS_NEXT; } =20 @@ -2785,7 +2764,6 @@ static DisasJumpType op_ledb(DisasContext *s, DisasOp= s *o) return DISAS_NORETURN; } gen_helper_ledb(o->out, cpu_env, o->in2, m34); - tcg_temp_free_i32(m34); return DISAS_NEXT; } =20 @@ -2797,7 +2775,6 @@ static DisasJumpType op_ldxb(DisasContext *s, DisasOp= s *o) return DISAS_NORETURN; } gen_helper_ldxb(o->out, cpu_env, o->in2_128, m34); - tcg_temp_free_i32(m34); return DISAS_NEXT; } =20 @@ -2809,7 +2786,6 @@ static DisasJumpType op_lexb(DisasContext *s, DisasOp= s *o) return DISAS_NORETURN; } gen_helper_lexb(o->out, cpu_env, o->in2_128, m34); - tcg_temp_free_i32(m34); return DISAS_NEXT; } =20 --=20 2.34.1 From nobody Tue May 14 03:45:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1676918633; cv=none; d=zohomail.com; s=zohoarc; b=LMsdbLD4PaQLjkDmlxmShx/TmIR+6lppbpoQhohjrYSyoiYqqz5NSntbYteRR5K/BI8QYHYThYwz1cfsbNLzUqsuU2IAAhBlGRzg/5j1UkJzkeOi8qOGZk6qfDy1odf/C2JvROWXvboyiTk6cLbf3buS1P4iIxJf/GE2cFafd+Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676918633; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=dNtcbq+YaAISCksJEqrwoDBG8G3LKrhNUHooAhzADaw=; b=kI5cxmeBjO7YfHIvNH3J+3SWmZHKCHblCwSMgPi17iaKiqqoKufFeCNqgcwMaTFJ8qhYJf6MNoy+S7uFV7zVeNxLDl1AtyssAtI5jaEzM7snYcAz4bowXOlNaXWGy3DTsgRwMXL98/eXsSXCYNGaxqKDRz2oDuaYtxT8mvzq4QA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 16769186332411015.1345111889746; Mon, 20 Feb 2023 10:43:53 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUB7X-00056u-Fs; Mon, 20 Feb 2023 13:42:39 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUB6a-0004ZX-CQ for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:46 -0500 Received: from mail-pl1-x62a.google.com ([2607:f8b0:4864:20::62a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUB6N-00045N-0i for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:36 -0500 Received: by mail-pl1-x62a.google.com with SMTP id h14so2650522plf.10 for ; Mon, 20 Feb 2023 10:41:05 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id jk20-20020a170903331400b0019258bcf3ffsm1911676plb.56.2023.02.20.10.41.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 10:41:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=dNtcbq+YaAISCksJEqrwoDBG8G3LKrhNUHooAhzADaw=; b=PubGrYUQ+LQwXkFM5AZFrHGnEwtPSvQ+mvg3aK24XVIGXbp6zpI9TGRNlNu8WhZqNr kYZLyFv5lWwR733pI5xwo+g0TCHb+FPCgofxNQbCWx+FK8EuyfzmKxnwqyPK9WcZZuDJ 9MaBhdYtyxp3qUAiZJYHNNR/qWTlZa4dSQUIgPOJ5eCi7uZsAA8SFG+jnsqXrpGQY2Ad FTQnNGDqL97FZhts+DZv5GIyAwp+2Fx8V7mv7KuU2ADhQF9s9ue0SF37lXQ8QPo7AOkm rZZUOlsqZRzYNTqBkFr/Ff5/Qf8P0miMm5Ggw2o6h6BCmSK/Q5NjM6csZSHfd1zqN18g RoHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dNtcbq+YaAISCksJEqrwoDBG8G3LKrhNUHooAhzADaw=; b=Z4r2ZfB580uIJXYBQFnZ0tJNZp/95QhGBlpaXBuBXkogDjpd7up7wT2SL6wdaSl7S9 A+5UxLK5WWDKwxo6aLTugUynt5Ecq3UUtPjgFUOQKmBsf35Y5t5TkVmwJ7TXbGXcX2Zf N7dBNUjXDeV0rcmKax/5xgmi8UbvdYPQt1ejpsk4m1MoXQF26NdF9z8oQ9fJAnl84RSF 8BGACksrtaS9/WFBzN7WTJnvsKLxfQodRuM67AZRGSzRORmclctcWFDbUfBn2lOf4iZ3 0ZePMeIhMFLsQTvD9fmO3+5hBhwuFir4F403j+yc9Xlf/Xo3Dgp0UUINttVIlw4Je/Lj 09wA== X-Gm-Message-State: AO0yUKUBrw9hLhwuWFmeO9LgWaMFSXy2gA7DsQg8Gy4j0fvwxFcvr5NN I6Pe5jH4rPNf4hbi8AP/a4v5YLtEbdb97G3lIWQ= X-Google-Smtp-Source: AK7set9uP3pcksmc6IEXkgwWq6X264i8Xvs8OLFrJOcyk/Jbgy9SO5IUD9fQEQ4/cPBCiI3aiVDxAA== X-Received: by 2002:a17:902:f54c:b0:19c:16e4:8e7f with SMTP id h12-20020a170902f54c00b0019c16e48e7fmr4028807plf.34.1676918464411; Mon, 20 Feb 2023 10:41:04 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: thuth@redhat.com, qemu-s390x@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Ilya Leoshkevich Subject: [PATCH v4 04/27] target/s390x: Use tcg_constant_* in translate_vx.c.inc Date: Mon, 20 Feb 2023 08:40:29 -1000 Message-Id: <20230220184052.163465-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230220184052.163465-1-richard.henderson@linaro.org> References: <20230220184052.163465-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62a; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1676918635098100001 In most cases, this is a simple local allocate and free replaced by tcg_constant_*. In three cases, a variable temp was initialized with a constant value -- reorg to localize the constant. In gen_acc, this fixes a leak. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Ilya Leoshkevich Signed-off-by: Richard Henderson --- target/s390x/tcg/translate_vx.c.inc | 45 +++++++++++++---------------- 1 file changed, 20 insertions(+), 25 deletions(-) diff --git a/target/s390x/tcg/translate_vx.c.inc b/target/s390x/tcg/transla= te_vx.c.inc index d39ee81cd6..3fadc82e5c 100644 --- a/target/s390x/tcg/translate_vx.c.inc +++ b/target/s390x/tcg/translate_vx.c.inc @@ -319,12 +319,10 @@ static void gen_gvec128_4_i64(gen_gvec128_4_i64_fn fn= , uint8_t d, uint8_t a, static void gen_addi2_i64(TCGv_i64 dl, TCGv_i64 dh, TCGv_i64 al, TCGv_i64 = ah, uint64_t b) { - TCGv_i64 bl =3D tcg_const_i64(b); - TCGv_i64 bh =3D tcg_const_i64(0); + TCGv_i64 bl =3D tcg_constant_i64(b); + TCGv_i64 bh =3D tcg_constant_i64(0); =20 tcg_gen_add2_i64(dl, dh, al, ah, bl, bh); - tcg_temp_free_i64(bl); - tcg_temp_free_i64(bh); } =20 static DisasJumpType op_vbperm(DisasContext *s, DisasOps *o) @@ -609,9 +607,8 @@ static DisasJumpType op_vlei(DisasContext *s, DisasOps = *o) return DISAS_NORETURN; } =20 - tmp =3D tcg_const_i64((int16_t)get_field(s, i2)); + tmp =3D tcg_constant_i64((int16_t)get_field(s, i2)); write_vec_element_i64(tmp, get_field(s, v1), enr, es); - tcg_temp_free_i64(tmp); return DISAS_NEXT; } =20 @@ -1107,11 +1104,13 @@ static DisasJumpType op_vseg(DisasContext *s, Disas= Ops *o) =20 static DisasJumpType op_vst(DisasContext *s, DisasOps *o) { - TCGv_i64 tmp =3D tcg_const_i64(16); + TCGv_i64 tmp; =20 /* Probe write access before actually modifying memory */ - gen_helper_probe_write_access(cpu_env, o->addr1, tmp); + gen_helper_probe_write_access(cpu_env, o->addr1, + tcg_constant_i64(16)); =20 + tmp =3D tcg_temp_new_i64(); read_vec_element_i64(tmp, get_field(s, v1), 0, ES_64); tcg_gen_qemu_st_i64(tmp, o->addr1, get_mem_index(s), MO_TEUQ); gen_addi_and_wrap_i64(s, o->addr1, o->addr1, 8); @@ -1270,9 +1269,10 @@ static DisasJumpType op_vstm(DisasContext *s, DisasO= ps *o) } =20 /* Probe write access before actually modifying memory */ - tmp =3D tcg_const_i64((v3 - v1 + 1) * 16); - gen_helper_probe_write_access(cpu_env, o->addr1, tmp); + gen_helper_probe_write_access(cpu_env, o->addr1, + tcg_constant_i64((v3 - v1 + 1) * 16)); =20 + tmp =3D tcg_temp_new_i64(); for (;; v1++) { read_vec_element_i64(tmp, v1, 0, ES_64); tcg_gen_qemu_st_i64(tmp, o->addr1, get_mem_index(s), MO_TEUQ); @@ -1359,7 +1359,7 @@ static DisasJumpType op_va(DisasContext *s, DisasOps = *o) static void gen_acc(TCGv_i64 d, TCGv_i64 a, TCGv_i64 b, uint8_t es) { const uint8_t msb_bit_nr =3D NUM_VEC_ELEMENT_BITS(es) - 1; - TCGv_i64 msb_mask =3D tcg_const_i64(dup_const(es, 1ull << msb_bit_nr)); + TCGv_i64 msb_mask =3D tcg_constant_i64(dup_const(es, 1ull << msb_bit_n= r)); TCGv_i64 t1 =3D tcg_temp_new_i64(); TCGv_i64 t2 =3D tcg_temp_new_i64(); TCGv_i64 t3 =3D tcg_temp_new_i64(); @@ -1416,7 +1416,7 @@ static void gen_acc2_i64(TCGv_i64 dl, TCGv_i64 dh, TC= Gv_i64 al, { TCGv_i64 th =3D tcg_temp_new_i64(); TCGv_i64 tl =3D tcg_temp_new_i64(); - TCGv_i64 zero =3D tcg_const_i64(0); + TCGv_i64 zero =3D tcg_constant_i64(0); =20 tcg_gen_add2_i64(tl, th, al, zero, bl, zero); tcg_gen_add2_i64(tl, th, th, zero, ah, zero); @@ -1425,7 +1425,6 @@ static void gen_acc2_i64(TCGv_i64 dl, TCGv_i64 dh, TC= Gv_i64 al, =20 tcg_temp_free_i64(th); tcg_temp_free_i64(tl); - tcg_temp_free_i64(zero); } =20 static DisasJumpType op_vacc(DisasContext *s, DisasOps *o) @@ -1455,15 +1454,14 @@ static void gen_ac2_i64(TCGv_i64 dl, TCGv_i64 dh, T= CGv_i64 al, TCGv_i64 ah, TCGv_i64 bl, TCGv_i64 bh, TCGv_i64 cl, TCGv_i64 ch) { TCGv_i64 tl =3D tcg_temp_new_i64(); - TCGv_i64 th =3D tcg_const_i64(0); + TCGv_i64 zero =3D tcg_constant_i64(0); =20 /* extract the carry only */ tcg_gen_extract_i64(tl, cl, 0, 1); tcg_gen_add2_i64(dl, dh, al, ah, bl, bh); - tcg_gen_add2_i64(dl, dh, dl, dh, tl, th); + tcg_gen_add2_i64(dl, dh, dl, dh, tl, zero); =20 tcg_temp_free_i64(tl); - tcg_temp_free_i64(th); } =20 static DisasJumpType op_vac(DisasContext *s, DisasOps *o) @@ -1484,7 +1482,7 @@ static void gen_accc2_i64(TCGv_i64 dl, TCGv_i64 dh, T= CGv_i64 al, TCGv_i64 ah, { TCGv_i64 tl =3D tcg_temp_new_i64(); TCGv_i64 th =3D tcg_temp_new_i64(); - TCGv_i64 zero =3D tcg_const_i64(0); + TCGv_i64 zero =3D tcg_constant_i64(0); =20 tcg_gen_andi_i64(tl, cl, 1); tcg_gen_add2_i64(tl, th, tl, zero, al, zero); @@ -1495,7 +1493,6 @@ static void gen_accc2_i64(TCGv_i64 dl, TCGv_i64 dh, T= CGv_i64 al, TCGv_i64 ah, =20 tcg_temp_free_i64(tl); tcg_temp_free_i64(th); - tcg_temp_free_i64(zero); } =20 static DisasJumpType op_vaccc(DisasContext *s, DisasOps *o) @@ -1597,14 +1594,13 @@ static void gen_avgl_i32(TCGv_i32 d, TCGv_i32 a, TC= Gv_i32 b) static void gen_avgl_i64(TCGv_i64 dl, TCGv_i64 al, TCGv_i64 bl) { TCGv_i64 dh =3D tcg_temp_new_i64(); - TCGv_i64 zero =3D tcg_const_i64(0); + TCGv_i64 zero =3D tcg_constant_i64(0); =20 tcg_gen_add2_i64(dl, dh, al, zero, bl, zero); gen_addi2_i64(dl, dh, dl, dh, 1); tcg_gen_extract2_i64(dl, dl, dh, 1); =20 tcg_temp_free_i64(dh); - tcg_temp_free_i64(zero); } =20 static DisasJumpType op_vavgl(DisasContext *s, DisasOps *o) @@ -2440,7 +2436,7 @@ static void gen_scbi2_i64(TCGv_i64 dl, TCGv_i64 dh, T= CGv_i64 al, { TCGv_i64 th =3D tcg_temp_new_i64(); TCGv_i64 tl =3D tcg_temp_new_i64(); - TCGv_i64 zero =3D tcg_const_i64(0); + TCGv_i64 zero =3D tcg_constant_i64(0); =20 tcg_gen_sub2_i64(tl, th, al, zero, bl, zero); tcg_gen_andi_i64(th, th, 1); @@ -2452,7 +2448,6 @@ static void gen_scbi2_i64(TCGv_i64 dl, TCGv_i64 dh, T= CGv_i64 al, =20 tcg_temp_free_i64(th); tcg_temp_free_i64(tl); - tcg_temp_free_i64(zero); } =20 static DisasJumpType op_vscbi(DisasContext *s, DisasOps *o) @@ -2572,11 +2567,12 @@ static DisasJumpType op_vsumq(DisasContext *s, Disa= sOps *o) return DISAS_NORETURN; } =20 - sumh =3D tcg_const_i64(0); + sumh =3D tcg_temp_new_i64(); suml =3D tcg_temp_new_i64(); - zero =3D tcg_const_i64(0); + zero =3D tcg_constant_i64(0); tmpl =3D tcg_temp_new_i64(); =20 + tcg_gen_mov_i64(sumh, zero); read_vec_element_i64(suml, get_field(s, v3), max_idx, es); for (idx =3D 0; idx <=3D max_idx; idx++) { read_vec_element_i64(tmpl, get_field(s, v2), idx, es); @@ -2587,7 +2583,6 @@ static DisasJumpType op_vsumq(DisasContext *s, DisasO= ps *o) =20 tcg_temp_free_i64(sumh); tcg_temp_free_i64(suml); - tcg_temp_free_i64(zero); tcg_temp_free_i64(tmpl); return DISAS_NEXT; } --=20 2.34.1 From nobody Tue May 14 03:45:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1676918624; cv=none; d=zohomail.com; s=zohoarc; b=HoxF0QAXcNL+06Wr+bCMxdIY5h3UbNw9BXArgbYj5meFsfcbTD6TjQ55rqk+4ATJUiqumkCmREwf+7PPyBgAcmyN6B62ygH9SzQS/gip5/XRub+629UrlsOuEG+jIK+fXjSbyE7nQyAoyDFiqMScaNbhh4FWTbvIzQ4E0t0bc5M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676918624; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=rn1m+vC0SMptr9Ye7HM4jY557ksKPtQ1MF37cY48/F0=; b=cJ8du8DqqQ4MHvmytdyV4GSH2RpJ4h0IEa/1majht3Uss1AY+o+slcAGO8jZFbn8FoUQYmdpK4mtoPySNW4mPred+/2/uPxs21yi5a3oGUiLsTn83Lv1OPN50HU+bGNptZMFFTgWjlroude8d+Bb9gVuVYBReL1rUwRh+H1E+fg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676918624639338.38491678411435; Mon, 20 Feb 2023 10:43:44 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUB89-00063g-Hd; Mon, 20 Feb 2023 13:43:17 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUB6Y-0004YM-90 for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:41 -0500 Received: from mail-pj1-x102d.google.com ([2607:f8b0:4864:20::102d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUB6M-00045g-Vp for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:35 -0500 Received: by mail-pj1-x102d.google.com with SMTP id v3-20020a17090a6b0300b002341a2656e5so2184329pjj.1 for ; Mon, 20 Feb 2023 10:41:07 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id jk20-20020a170903331400b0019258bcf3ffsm1911676plb.56.2023.02.20.10.41.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 10:41:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=rn1m+vC0SMptr9Ye7HM4jY557ksKPtQ1MF37cY48/F0=; b=vr2E5ZjmJeGngIBKrn5cSUqhFPBOxGmp3ccUB6mdYRQvhJ+qSEJkocGkN5CNz0DqlE U+VBJ87aQWV6xB7ZLixVABC7pPu443K9IwiGuDEmaHiaqZOacW9CPHZD6VlwrbXzGo2k MlqBW6omWE1KQcNfsASv/R+jSHKvPNCkHo9A3Ot+C1uMJiSyoROPpxlPZzO4/1xadfdt Pu3plsIPj353k6d1n6peib8igUzfEv2cxdCn5rOowLc4OM7JeRg7mscYFW9IBKpYErOs ynO5F9BSp7UD/miASbSSLDzDttOIHyPklQXrYPUCE0tHtR5L90xMYX6S6krb4Rzb7c7F n1Sg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rn1m+vC0SMptr9Ye7HM4jY557ksKPtQ1MF37cY48/F0=; b=Q8dwcK2+Pq84XwVNEJIYA5WEXDtJ/4Sp4T1J+jy0OJshmMrIZpjlbFmsWs/8NsWk42 HU61slNo0/JfHH9LdtP0Uop0ebd7uBwJAWzVjuFDleQGf9qIUFOaeoFsD/itQ5esevcZ cABx39ZQuyC5PgLP7/TCycSpUTiqh3rAIaIzcHM94Z5FdfWLAPcRCi7PwRvvksxmsHuH E4xqKzixNSN9OYhSOt6QpzrfbFS7K/BvkHjq8zFEnw4ewgyWbfOM+aOL4YTuCGERHbyp SfaMCbsM04yw6lBn6deZkpvihJAuAKquO6B28vcR4GEpzFpvZsSXXc39KrbzzOAcg+J3 m2BQ== X-Gm-Message-State: AO0yUKV6TVZQbJQ0ZO+YOURBTvYWmQvuSalBcYk3kRptvVmK9bXQZtmY +bOflbLiE85TzDTSkRRfCaTNjJOMA4h3ALGjgGU= X-Google-Smtp-Source: AK7set8mIOnTJu/ZXhmG3nirrt1GxZKXmX1b7Lqy7A4pBxdgoJgIpLrkwVsx9A/NyVfchD7PRaVP1g== X-Received: by 2002:a17:903:22c8:b0:199:12d5:5b97 with SMTP id y8-20020a17090322c800b0019912d55b97mr3704608plg.12.1676918466071; Mon, 20 Feb 2023 10:41:06 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: thuth@redhat.com, qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v4 05/27] tests/tcg/s390x: Add bal.S Date: Mon, 20 Feb 2023 08:40:30 -1000 Message-Id: <20230220184052.163465-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230220184052.163465-1-richard.henderson@linaro.org> References: <20230220184052.163465-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102d; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1676918625060100001 Content-Type: text/plain; charset="utf-8" From: Ilya Leoshkevich Add a small test to prevent regressions. Signed-off-by: Ilya Leoshkevich Message-Id: <20221103130011.2670186-1-iii@linux.ibm.com> Signed-off-by: Richard Henderson --- tests/tcg/s390x/Makefile.softmmu-target | 1 + tests/tcg/s390x/bal.S | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 tests/tcg/s390x/bal.S diff --git a/tests/tcg/s390x/Makefile.softmmu-target b/tests/tcg/s390x/Make= file.softmmu-target index 50c1b88065..bcbe9367ef 100644 --- a/tests/tcg/s390x/Makefile.softmmu-target +++ b/tests/tcg/s390x/Makefile.softmmu-target @@ -7,3 +7,4 @@ QEMU_OPTS=3D-action panic=3Dexit-failure -kernel -Wl,--build-id=3Dnone $< -o $@ =20 TESTS +=3D unaligned-lowcore +TESTS +=3D bal diff --git a/tests/tcg/s390x/bal.S b/tests/tcg/s390x/bal.S new file mode 100644 index 0000000000..e54d8874ff --- /dev/null +++ b/tests/tcg/s390x/bal.S @@ -0,0 +1,24 @@ + .org 0x200 /* lowcore padding */ + .globl _start +_start: + lpswe start24_psw +_start24: + lgrl %r0,initial_r0 + lgrl %r1,expected_r0 + bal %r0,0f +0: + cgrjne %r0,%r1,1f + lpswe success_psw +1: + lpswe failure_psw + .align 8 +start24_psw: + .quad 0x160000000000,_start24 /* 24-bit mode, cc =3D 1, pm =3D 6 = */ +initial_r0: + .quad 0x1234567887654321 +expected_r0: + .quad 0x1234567896000000 + 0b /* ilc =3D 2, cc =3D 1, pm =3D 6 */ +success_psw: + .quad 0x2000000000000,0xfff /* see is_special_wait_psw() */ +failure_psw: + .quad 0x2000000000000,0 /* disabled wait */ --=20 2.34.1 From nobody Tue May 14 03:45:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1676918627; cv=none; d=zohomail.com; s=zohoarc; b=aYAardRPC1sCXRuyW21b9UsnCeYfeatlx+Rkt1ztd1dO7L8O7ioAATK8LzITayP8exdmGpheix+PrRWbItXMYXqU0iaUO/OHT0OqLEF9ZqYpNUuGWk9YWLxzoVlq515te6FYwSt7NUO0V7Mnpy8uemgfVBJgqAtE2F6zCe5T5Y0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676918627; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=7m/m4b71FLelzEcXA/0IWs26yxi4/hxYSZhMkqCxBNA=; b=NnB/6Q6WqtWiXLJqM7rpF7sdx4/etBIFlroJR+hHIVhiBLB7OC+73TOAR/sAEQcSZg2kI3rTD/0MxmwoBxBpbl6WWnWS8SUy8X0uN9mI7ru5lHbMUGYMVANyd5ihXKYdl7ki+WQbG1hK20jI2W35l/DeroIoeedOHCaTDNxOtZQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 167691862782324.895262955960334; Mon, 20 Feb 2023 10:43:47 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUB6l-0004lW-KH; Mon, 20 Feb 2023 13:41:51 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUB6Q-0004XE-2t for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:30 -0500 Received: from mail-pj1-x102d.google.com ([2607:f8b0:4864:20::102d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUB6L-00045u-0q for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:29 -0500 Received: by mail-pj1-x102d.google.com with SMTP id il18-20020a17090b165200b0023127b2d602so2371526pjb.2 for ; Mon, 20 Feb 2023 10:41:08 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id jk20-20020a170903331400b0019258bcf3ffsm1911676plb.56.2023.02.20.10.41.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 10:41:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=7m/m4b71FLelzEcXA/0IWs26yxi4/hxYSZhMkqCxBNA=; b=MBYBM9hY8/10BlsQ3s+S/fB+FNkm1ZT7gNMpNm11DF1Q5RhmBQCecZYKyfHnSgKsMd GfB5EWxlMkkuTTl6Nqt0zthyCXmnxLJcPnadZd0tA9NvCcJ3kQBkhO0BYzEfudOd6Kl5 oMXXOFWV+umhUQhnV/eGejTMykh3puU8rQv/93QSuwtgVY1La79ZJMLyiFqdkgLYHiQA BWsZk1ARO3mUz1ktjOhAx430GT1JLnZERTYN3ru6LanP8+BqKZHgPXFMOV/+ek0JE5cE C/ijGIRyw9enhhNrDI5zppt4blAThV5x4+9Yh1AMGhLp3gumxY3RSY8rNrkChryC6NQy HAmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7m/m4b71FLelzEcXA/0IWs26yxi4/hxYSZhMkqCxBNA=; b=AmZDOjNxQIc5rTj0P8CMuv6ZP+0RU4ZIsiVGCbtHvUmT+CY5/h2GTdK7du99147I5Z XRHBYhVg3d7XwUPduVFDpG87lQGkTAeoLmlhhwGz5PbOr2d7fVdEDhTA27LTJiQg9R2O IhGBEVQpEUwb5FaShBaV6Q2fHMFMRmUEb1ag/8fJTewMUSJVLaprVqC2fHa0xINC/O8G BGZvT30uzCHrl6uigLIwmYkuyiwY/PXFZcRgs+kXAGOwlGo9f7omjKRcDvQrwsUKMwo8 xfbfjYhEt+e9MPgGFiiIkCEL3qASAg82E3XMUXPq27AwFqWZKlZT2/Z2hizH4FQRaVsL cnhA== X-Gm-Message-State: AO0yUKUFTrRwqSAlpyPWR6N3oqCg4Uxrv0aVpxxmaGr8FeXToGI4gcPB pIcSRIIypwUCxooIGvavv7PQVTdpNN3TZZ6XpCc= X-Google-Smtp-Source: AK7set9xLf2D5e2Fe3MPVeGuQuazbFvAK4cHBIfVbXvJjMuCkZ+qttzSHV/at2RsUeEJlVEjP1Jn4Q== X-Received: by 2002:a17:902:cec2:b0:19a:821b:486 with SMTP id d2-20020a170902cec200b0019a821b0486mr4181929plg.45.1676918467819; Mon, 20 Feb 2023 10:41:07 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: thuth@redhat.com, qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v4 06/27] tests/tcg/s390x: Add sam.S Date: Mon, 20 Feb 2023 08:40:31 -1000 Message-Id: <20230220184052.163465-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230220184052.163465-1-richard.henderson@linaro.org> References: <20230220184052.163465-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102d; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1676918629093100001 Content-Type: text/plain; charset="utf-8" From: Ilya Leoshkevich Add a small test to prevent regressions. Signed-off-by: Ilya Leoshkevich Message-Id: <20221129015328.55439-1-iii@linux.ibm.com> Signed-off-by: Richard Henderson --- tests/tcg/s390x/Makefile.softmmu-target | 1 + tests/tcg/s390x/sam.S | 67 +++++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 tests/tcg/s390x/sam.S diff --git a/tests/tcg/s390x/Makefile.softmmu-target b/tests/tcg/s390x/Make= file.softmmu-target index bcbe9367ef..725b6c598d 100644 --- a/tests/tcg/s390x/Makefile.softmmu-target +++ b/tests/tcg/s390x/Makefile.softmmu-target @@ -8,3 +8,4 @@ QEMU_OPTS=3D-action panic=3Dexit-failure -kernel =20 TESTS +=3D unaligned-lowcore TESTS +=3D bal +TESTS +=3D sam diff --git a/tests/tcg/s390x/sam.S b/tests/tcg/s390x/sam.S new file mode 100644 index 0000000000..4cab2dd200 --- /dev/null +++ b/tests/tcg/s390x/sam.S @@ -0,0 +1,67 @@ +/* DAT on, home-space mode, 64-bit mode */ +#define DAT_PSWM 0x400c00180000000 +#define VIRTUAL_BASE 0x123456789abcd000 + + .org 0x8e +program_interruption_code: + .org 0x150 +program_old_psw: + .org 0x1d0 /* program new PSW */ + .quad 0,pgm_handler + .org 0x200 /* lowcore padding */ + + .globl _start +_start: + lctlg %c13,%c13,hasce + lpswe dat_psw +start_dat: + sam24 +sam24_suppressed: + /* sam24 should fail */ +fail: + basr %r12,%r0 + lpswe failure_psw-.(%r12) +pgm_handler: + chhsi program_interruption_code,6 /* specification exception? */ + jne fail + clc suppressed_psw(16),program_old_psw /* correct location? */ + jne fail + lpswe success_psw + + .align 8 +dat_psw: + .quad DAT_PSWM,VIRTUAL_BASE+start_dat +suppressed_psw: + .quad DAT_PSWM,VIRTUAL_BASE+sam24_suppressed +success_psw: + .quad 0x2000000000000,0xfff /* see is_special_wait_psw() */ +failure_psw: + .quad 0x2000000000000,0 /* disabled wait */ +hasce: + /* DT =3D 0b11 (region-first-table), TL =3D 3 (2k entries) */ + .quad region_first_table + (3 << 2) + 3 + .align 0x1000 +region_first_table: + .org region_first_table + ((VIRTUAL_BASE >> 53) & 0x7ff) * 8 + /* TT =3D 0b11 (region-first-table), TL =3D 3 (2k entries) */ + .quad region_second_table + (3 << 2) + 3 + .org region_first_table + 0x800 * 8 +region_second_table: + .org region_second_table + ((VIRTUAL_BASE >> 42) & 0x7ff) * 8 + /* TT =3D 0b10 (region-second-table), TL =3D 3 (2k entries) */ + .quad region_third_table + (2 << 2) + 3 + .org region_second_table + 0x800 * 8 +region_third_table: + .org region_third_table + ((VIRTUAL_BASE >> 31) & 0x7ff) * 8 + /* TT =3D 0b01 (region-third-table), TL =3D 3 (2k entries) */ + .quad segment_table + (1 << 2) + 3 + .org region_third_table + 0x800 * 8 +segment_table: + .org segment_table + ((VIRTUAL_BASE >> 20) & 0x7ff) * 8 + /* TT =3D 0b00 (segment-table) */ + .quad page_table + .org segment_table + 0x800 * 8 +page_table: + .org page_table + ((VIRTUAL_BASE >> 12) & 0xff) * 8 + .quad 0 + .org page_table + 0x100 * 8 --=20 2.34.1 From nobody Tue May 14 03:45:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1676918605; cv=none; d=zohomail.com; s=zohoarc; b=nlJZilxkWJ4PnNEd6C7aB59uLs8MLYZVzDYbhFfVpwO37RTvEn9MEET9+LmGMRDbSzXiCBwCCdojoghLKAX93uL3t56sLV6oB2Lh2sHLXxYHcZ9+nEtur+BagqprgOgeXrKMjeeWhXzl73jCb6xA9oFcMXkm0ZHMaNL85qKhyFE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676918605; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=FVcoN5if0V8Us809c/xVyI5a/NDqYw35Cn85wK50aSY=; b=bj1w/zRqdKrERBXf3Ek5r3Htf+7o8Q9t2ugpM+9PfX4UdlJCajMQHHmU2L/Pbz7vPyvA9YESMe2gUdG7SaXggfTX9wLY0M74mXzCThr9GB3sV4HSKEFMSHiCdUBpL6b8TWYMjX8e3NGT2Nb2E46kLy6kOpuRGEwwx/9HY90F+DY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676918605672244.69556488656917; Mon, 20 Feb 2023 10:43:25 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUB82-0005UB-7Y; Mon, 20 Feb 2023 13:43:12 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUB6X-0004Xu-34 for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:40 -0500 Received: from mail-pj1-x1035.google.com ([2607:f8b0:4864:20::1035]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUB6L-00046G-Cv for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:32 -0500 Received: by mail-pj1-x1035.google.com with SMTP id 99so2302524pjz.4 for ; Mon, 20 Feb 2023 10:41:10 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id jk20-20020a170903331400b0019258bcf3ffsm1911676plb.56.2023.02.20.10.41.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 10:41:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=FVcoN5if0V8Us809c/xVyI5a/NDqYw35Cn85wK50aSY=; b=Zv9ZHg0Eo5+8mAeI7KLlyGbW5acH+U4uy4af/FZYiYoXq4kPDoad+fpFbbD6kHjRC3 L/2bKVfOBE3+ymupUMIgNwKXmqNdsSRHT0V8uh1e+0ZsVrVER2f+VjbA7X+W/KuVCbPZ gqKfu1sK62JEcbeVnqwxBD1UtoGw42r+xoeETxwnE4ScRMmP1GbB0iuMgeMhb+jF/Hwy zV7AADwgsD9b+Sll/4SPeOtUsQOyyqFkppYt2NknxCW8mAmz4mcOg8x4LWYx9LWiGiLy E/R3N8bAuNk4pPF+HnBC7rBp0fHomo05gaEGxj/fPszC0AB5xl9t+Qb728aSRSTcof3r sT1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=FVcoN5if0V8Us809c/xVyI5a/NDqYw35Cn85wK50aSY=; b=4XGFtToxrJGd6gFmjqDCGpmn/5DNhtynf/E+LH0bkcLQNUqzolrXCJVrTTb9LEqrmZ Q8MlKW7KL5TKFk97AA3m2hep3u9NPoOXI5frEMCj5TcST3/PP91Ad947+5quK1EumXbp d2tRVwG8oGVC77biyZdjgQ71a+OIlb6UArTI+zCDSx4d17NrlZhN4mb3J0smEqvMKqQM YaYnrGkCQgXrkd9GVAmdgMywXBGgD/2fLvzGF2Lf5s1BDb0y96Ey7HJAd2Q+9EqvjfzX xzmTDq72DcwoyaTvp+nKuaJ+zpUfjtAVKThCktR8zi33A4gY3jL2bCPWNZu/ROBD3HhJ I7dg== X-Gm-Message-State: AO0yUKWEF6O3nmgNuaZIMzV7xNwf2KYabTN0ay+CNUtePueCxpk0R7IB oEz12/qKxB2Cc3Ykvm/DnVx1DpsDI0O9eLrjKOs= X-Google-Smtp-Source: AK7set+HW6OVpnCyTrYsTAB4raYBRkajAR+xWZxtBPbCXorXG/AYgPW3wZhbD9uOe8tC2PdRtLYoeQ== X-Received: by 2002:a17:903:1ca:b0:199:41a5:1085 with SMTP id e10-20020a17090301ca00b0019941a51085mr4213559plh.33.1676918469944; Mon, 20 Feb 2023 10:41:09 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: thuth@redhat.com, qemu-s390x@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Ilya Leoshkevich Subject: [PATCH v4 07/27] target/s390x: Change help_goto_direct to work on displacements Date: Mon, 20 Feb 2023 08:40:32 -1000 Message-Id: <20230220184052.163465-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230220184052.163465-1-richard.henderson@linaro.org> References: <20230220184052.163465-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1035; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1035.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1676918609050100003 In preparation for TARGET_TB_PCREL, reduce reliance on absolute values. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Ilya Leoshkevich Signed-off-by: Richard Henderson --- target/s390x/tcg/translate.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/target/s390x/tcg/translate.c b/target/s390x/tcg/translate.c index faa6f737ba..bd7f644f83 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -1161,8 +1161,10 @@ struct DisasInsn { /* =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D */ /* Miscellaneous helpers, used by several operations. */ =20 -static DisasJumpType help_goto_direct(DisasContext *s, uint64_t dest) +static DisasJumpType help_goto_direct(DisasContext *s, int64_t disp) { + uint64_t dest =3D s->base.pc_next + disp; + if (dest =3D=3D s->pc_tmp) { per_branch(s, true); return DISAS_NEXT; @@ -1185,7 +1187,8 @@ static DisasJumpType help_branch(DisasContext *s, Dis= asCompare *c, bool is_imm, int imm, TCGv_i64 cdest) { DisasJumpType ret; - uint64_t dest =3D s->base.pc_next + (int64_t)imm * 2; + int64_t disp =3D (int64_t)imm * 2; + uint64_t dest =3D s->base.pc_next + disp; TCGLabel *lab; =20 /* Take care of the special cases first. */ @@ -1201,7 +1204,7 @@ static DisasJumpType help_branch(DisasContext *s, Dis= asCompare *c, goto egress; } if (c->cond =3D=3D TCG_COND_ALWAYS) { - ret =3D help_goto_direct(s, dest); + ret =3D help_goto_direct(s, disp); goto egress; } } else { @@ -1573,7 +1576,7 @@ static DisasJumpType op_bal(DisasContext *s, DisasOps= *o) static DisasJumpType op_basi(DisasContext *s, DisasOps *o) { pc_to_link_info(o->out, s, s->pc_tmp); - return help_goto_direct(s, s->base.pc_next + (int64_t)get_field(s, i2)= * 2); + return help_goto_direct(s, (int64_t)get_field(s, i2) * 2); } =20 static DisasJumpType op_bc(DisasContext *s, DisasOps *o) --=20 2.34.1 From nobody Tue May 14 03:45:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1676918791; cv=none; d=zohomail.com; s=zohoarc; b=bIpwi9osnHt7dHQh4BFyQeM8A0nxDaF4DfpUKlflx6UTv3gmOj6UUfe3I5vf3DGuP5AJwNVNug4375McgCnjLiWVOBD91dC6EYMSQKTPZvN6noy69JBigQLgHj4L+M61ez7p74JOqD/Gc9kuFAhZNfDBY0AfHUbli7Ef+ywPv4Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676918791; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=zv2ofhoo2yK6y5CvACgkzBidMP/qlNYVsy8kvmdv1TA=; b=ftnRZ7W+7OA8lYfxIftd4DC7SXCXvMgw9bkQYJDHMoEc6pFpraewBsHBS1O1jitEB0R6y5JW/ilTqiFnUrUVI0u+5trwBDZ0P4N/TULaohkXSLNlELE5NLDPJVRFb3UHixmk2spGGXVPWYbr/g8aCVByW9ZHep7XtQYMVNE25Ic= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676918791367863.3003078598623; Mon, 20 Feb 2023 10:46:31 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUB88-0005vd-TJ; Mon, 20 Feb 2023 13:43:16 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUB6S-0004XW-5T for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:36 -0500 Received: from mail-pj1-x102b.google.com ([2607:f8b0:4864:20::102b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUB6L-00046S-83 for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:31 -0500 Received: by mail-pj1-x102b.google.com with SMTP id g14so2225790pjb.2 for ; Mon, 20 Feb 2023 10:41:12 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id jk20-20020a170903331400b0019258bcf3ffsm1911676plb.56.2023.02.20.10.41.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 10:41:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=zv2ofhoo2yK6y5CvACgkzBidMP/qlNYVsy8kvmdv1TA=; b=u+4tc7st1AX1qph5g1MaO5uvnmlPF5ZT90mr+4390iz4iYIVHBawEWiS3QXLMNWWM2 pIUb/X3UZUxkdp+PQxSvwqlzppLEo+s/6Yty15AL+FYJzRfaIQ7IbRiq6fLJ3tGxM4Vj MkkifWf83YfU/AXfIRrrS17a2I067va2hz+RjdQmaoDFgusk/BX+x+BKym+5PeIIBxOw E4IW24e8xxe+ycSHE8wlQs1fqySDuN/O3T80WTjLx/sbpQUtqOrEyrOdbUKQMR48DR/F iNsJbC/3GA/SxcvzIvKooah+wlYSftdD2AbHbuKj6QrrTOT2Ku0ozfOTk/Qb/Hk0YMAv XSYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=zv2ofhoo2yK6y5CvACgkzBidMP/qlNYVsy8kvmdv1TA=; b=51nCN3ZwqITOj0X64nAv2toVQT/WZiQVMLD6SSMD9tYMBk9kIDXzNOjRHPp1aD7djk JAH0RHzCw9/6sa8sTglbb+haJt1JUeY/FZVLKHYRLmXoXShrPr187+fev2vYP8ObNxYA Mh5Wp5crwpiUyI/uuFNTRFiExALx7tYg18O5lxzsWqA7G4nfOMnV59xGgoM98DlUmQ+N Tlt3glnx5I7WlqcbMuuf5syKgrGrZLQ1K8lNpalYINCu9/ciPnW7JNat4SxBReG3xxen 6FZ2qug3faJd7z5kWpnbIWlQWbx1y7XsTxcNOArftk3zD0sM1wQ2GCZvJJ/WyPa50mBb yVPg== X-Gm-Message-State: AO0yUKXjPFnpgyR/fmk/v2L0J1fz/my7LKR+vvzy9FlclG5wvwuDIWrr onuLmjV+zYUoeUg7eVSeUdxU/AqsU9tJEHkIez4= X-Google-Smtp-Source: AK7set9zlZ69Tz4mvEGiV3B5yf2XJLq6elYsSVwK5PjVhReL5z91MSxtXR11F9s60FyGgFqghs6mJg== X-Received: by 2002:a17:903:22c8:b0:192:4f85:b91d with SMTP id y8-20020a17090322c800b001924f85b91dmr2712686plg.46.1676918471632; Mon, 20 Feb 2023 10:41:11 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: thuth@redhat.com, qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v4 08/27] target/s390x: Introduce gen_psw_addr_disp Date: Mon, 20 Feb 2023 08:40:33 -1000 Message-Id: <20230220184052.163465-9-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230220184052.163465-1-richard.henderson@linaro.org> References: <20230220184052.163465-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102b; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1676918792187100005 Content-Type: text/plain; charset="utf-8" In preparation for TARGET_TB_PCREL, reduce reliance on absolute values. Reviewed-by: Ilya Leoshkevich Signed-off-by: Richard Henderson --- target/s390x/tcg/translate.c | 69 ++++++++++++++++++++++++------------ 1 file changed, 46 insertions(+), 23 deletions(-) diff --git a/target/s390x/tcg/translate.c b/target/s390x/tcg/translate.c index bd7f644f83..48e558a790 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -169,6 +169,11 @@ static uint64_t inline_branch_hit[CC_OP_MAX]; static uint64_t inline_branch_miss[CC_OP_MAX]; #endif =20 +static void gen_psw_addr_disp(DisasContext *s, TCGv_i64 dest, int64_t disp) +{ + tcg_gen_movi_i64(dest, s->base.pc_next + disp); +} + static void pc_to_link_info(TCGv_i64 out, DisasContext *s, uint64_t pc) { if (s->base.tb->flags & FLAG_MASK_32) { @@ -346,18 +351,24 @@ static void return_low128(TCGv_i64 dest) =20 static void update_psw_addr(DisasContext *s) { - /* psw.addr */ - tcg_gen_movi_i64(psw_addr, s->base.pc_next); + gen_psw_addr_disp(s, psw_addr, 0); } =20 static void per_branch(DisasContext *s, bool to_next) { #ifndef CONFIG_USER_ONLY - tcg_gen_movi_i64(gbea, s->base.pc_next); + gen_psw_addr_disp(s, gbea, 0); =20 if (s->base.tb->flags & FLAG_MASK_PER) { - TCGv_i64 next_pc =3D to_next ? tcg_constant_i64(s->pc_tmp) : psw_a= ddr; - gen_helper_per_branch(cpu_env, gbea, next_pc); + if (to_next) { + TCGv_i64 next_pc =3D tcg_temp_new_i64(); + + gen_psw_addr_disp(s, next_pc, s->ilen); + gen_helper_per_branch(cpu_env, gbea, next_pc); + tcg_temp_free_i64(next_pc); + } else { + gen_helper_per_branch(cpu_env, gbea, psw_addr); + } } #endif } @@ -370,20 +381,23 @@ static void per_branch_cond(DisasContext *s, TCGCond = cond, TCGLabel *lab =3D gen_new_label(); tcg_gen_brcond_i64(tcg_invert_cond(cond), arg1, arg2, lab); =20 - tcg_gen_movi_i64(gbea, s->base.pc_next); + gen_psw_addr_disp(s, gbea, 0); gen_helper_per_branch(cpu_env, gbea, psw_addr); =20 gen_set_label(lab); } else { - TCGv_i64 pc =3D tcg_constant_i64(s->base.pc_next); + TCGv_i64 pc =3D tcg_temp_new_i64(); + + gen_psw_addr_disp(s, pc, 0); tcg_gen_movcond_i64(cond, gbea, arg1, arg2, gbea, pc); + tcg_temp_free_i64(pc); } #endif } =20 static void per_breaking_event(DisasContext *s) { - tcg_gen_movi_i64(gbea, s->base.pc_next); + gen_psw_addr_disp(s, gbea, 0); } =20 static void update_cc_op(DisasContext *s) @@ -1163,21 +1177,19 @@ struct DisasInsn { =20 static DisasJumpType help_goto_direct(DisasContext *s, int64_t disp) { - uint64_t dest =3D s->base.pc_next + disp; - - if (dest =3D=3D s->pc_tmp) { + if (disp =3D=3D s->ilen) { per_branch(s, true); return DISAS_NEXT; } - if (use_goto_tb(s, dest)) { + if (use_goto_tb(s, s->base.pc_next + disp)) { update_cc_op(s); per_breaking_event(s); tcg_gen_goto_tb(0); - tcg_gen_movi_i64(psw_addr, dest); + gen_psw_addr_disp(s, psw_addr, disp); tcg_gen_exit_tb(s->base.tb, 0); return DISAS_NORETURN; } else { - tcg_gen_movi_i64(psw_addr, dest); + gen_psw_addr_disp(s, psw_addr, disp); per_branch(s, false); return DISAS_PC_UPDATED; } @@ -1235,14 +1247,14 @@ static DisasJumpType help_branch(DisasContext *s, D= isasCompare *c, =20 /* Branch not taken. */ tcg_gen_goto_tb(0); - tcg_gen_movi_i64(psw_addr, s->pc_tmp); + gen_psw_addr_disp(s, psw_addr, s->ilen); tcg_gen_exit_tb(s->base.tb, 0); =20 /* Branch taken. */ gen_set_label(lab); per_breaking_event(s); tcg_gen_goto_tb(1); - tcg_gen_movi_i64(psw_addr, dest); + gen_psw_addr_disp(s, psw_addr, disp); tcg_gen_exit_tb(s->base.tb, 1); =20 ret =3D DISAS_NORETURN; @@ -1265,12 +1277,12 @@ static DisasJumpType help_branch(DisasContext *s, D= isasCompare *c, /* Branch not taken. */ update_cc_op(s); tcg_gen_goto_tb(0); - tcg_gen_movi_i64(psw_addr, s->pc_tmp); + gen_psw_addr_disp(s, psw_addr, s->ilen); tcg_gen_exit_tb(s->base.tb, 0); =20 gen_set_label(lab); if (is_imm) { - tcg_gen_movi_i64(psw_addr, dest); + gen_psw_addr_disp(s, psw_addr, disp); } per_breaking_event(s); ret =3D DISAS_PC_UPDATED; @@ -1280,9 +1292,12 @@ static DisasJumpType help_branch(DisasContext *s, Di= sasCompare *c, Most commonly we're single-stepping or some other condition that disables all use of goto_tb. Just update the PC and exit. */ =20 - TCGv_i64 next =3D tcg_constant_i64(s->pc_tmp); + TCGv_i64 next =3D tcg_temp_new_i64(); + + gen_psw_addr_disp(s, next, s->ilen); if (is_imm) { - cdest =3D tcg_constant_i64(dest); + cdest =3D tcg_temp_new_i64(); + gen_psw_addr_disp(s, cdest, disp); } =20 if (c->is_64) { @@ -1301,6 +1316,10 @@ static DisasJumpType help_branch(DisasContext *s, Di= sasCompare *c, tcg_temp_free_i64(t1); } =20 + tcg_temp_free_i64(next); + if (is_imm) { + tcg_temp_free_i64(cdest); + } ret =3D DISAS_PC_UPDATED; } =20 @@ -5891,7 +5910,8 @@ static void in2_a2(DisasContext *s, DisasOps *o) =20 static void in2_ri2(DisasContext *s, DisasOps *o) { - o->in2 =3D tcg_const_i64(s->base.pc_next + (int64_t)get_field(s, i2) *= 2); + o->in2 =3D tcg_temp_new_i64(); + gen_psw_addr_disp(s, o->in2, (int64_t)get_field(s, i2) * 2); } #define SPEC_in2_ri2 0 =20 @@ -6376,8 +6396,11 @@ static DisasJumpType translate_one(CPUS390XState *en= v, DisasContext *s) =20 #ifndef CONFIG_USER_ONLY if (s->base.tb->flags & FLAG_MASK_PER) { - TCGv_i64 addr =3D tcg_constant_i64(s->base.pc_next); + TCGv_i64 addr =3D tcg_temp_new_i64(); + + gen_psw_addr_disp(s, addr, 0); gen_helper_per_ifetch(cpu_env, addr); + tcg_temp_free_i64(addr); } #endif =20 @@ -6506,7 +6529,7 @@ static DisasJumpType translate_one(CPUS390XState *env= , DisasContext *s) if (s->base.tb->flags & FLAG_MASK_PER) { /* An exception might be triggered, save PSW if not already done. = */ if (ret =3D=3D DISAS_NEXT || ret =3D=3D DISAS_TOO_MANY) { - tcg_gen_movi_i64(psw_addr, s->pc_tmp); + gen_psw_addr_disp(s, psw_addr, s->ilen); } =20 /* Call the helper to check for a possible PER exception. */ --=20 2.34.1 From nobody Tue May 14 03:45:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1676918935; cv=none; d=zohomail.com; s=zohoarc; b=CwjEERNFsindAH9AMGqKID5A3cNsKr9SMAUP3VB7xyZzx/zkEE94tAhVzSNBPhgC6PvmGm41AcaRdw0J/zccmE+wqdAAAeFtJbuUTyNtyMJNr3gZzY6r0/nW6u/HmtrZ4ohbd7zpMXKcx45ZuymECTVJtTTMBrIlXonFBMesYxs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676918935; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=LOOB3Z1xjodTvhYT+/+rAv7/3kmyBvt7jdZIeAngVJ8=; b=XoOy+WNsxnihKxpNjYBXMbUM+VBcwr4Yr+Vw/XhRreFPjt5Myl8QWh6ZpaZQTcDV0f5Et934trgpSdsEfGWApNFATUptW76srHdRVgyFoQYXYLOMKyxH/mhVG9TombkNPFaJPMl+uZiFPsLg7908sg8LkXcLDrFssXx0cPYiJ6s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676918935202913.1297060449384; Mon, 20 Feb 2023 10:48:55 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUB87-0005tU-Vg; Mon, 20 Feb 2023 13:43:16 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUB6Y-0004YN-9e for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:40 -0500 Received: from mail-pj1-x1030.google.com ([2607:f8b0:4864:20::1030]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUB6M-00046l-E6 for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:33 -0500 Received: by mail-pj1-x1030.google.com with SMTP id o16so2304832pjp.3 for ; Mon, 20 Feb 2023 10:41:14 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id jk20-20020a170903331400b0019258bcf3ffsm1911676plb.56.2023.02.20.10.41.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 10:41:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=LOOB3Z1xjodTvhYT+/+rAv7/3kmyBvt7jdZIeAngVJ8=; b=q45uAIVDo3UnP9Jd5GEZWKLuqkJwPqvaNk4ZU/73sJlDNRXU8BY4x3XPG7RWEPOdDR Q7wkyoMRQVULde7cOXVGHwSUyXhixFoMPZe0mwWkaEMoMgxoR+0e+yFLu7t5+Wf68fyd yjCKQ0EdmtI8hwVkgEPHNe8UbJsQLjz/l716dvDjKmAsXH1mgYXOfTT/9iJeP4LjTcYN wQsSnshDwCyo/ZGakmJNE2NuIWP2dpflLxSLMVzSWAETbzYw1SLyULSmvbVc6U+LPgqk feS59HMJtx6hD0usGsP3ztVoF4U9gpfz7e22R3aT6soOCSHtMS53dH9E9jILi94deepP +smA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LOOB3Z1xjodTvhYT+/+rAv7/3kmyBvt7jdZIeAngVJ8=; b=Jpas4ZiQ4pmPLjeCkwclL5IBPrf7AAMmj5C8c9/R9CLw355UEkNAvNZWjAMFkMp4Yr 3qk0LL8UWdB97RRipgR1hY2tryDR+oFfnup/+/7fuaTrRI38wq/zFxW3YnlayOvxVSnk zRAJNBuKic5SVwZCUphXjNipsmwvRC7EA+b0nwwGzn+NKf6fyOGgTTrGvLBYMW0xbxBN MG25yyDz12wKlrI8S446KscDZlHDQrzPJJtXiwmsaBteGcLoiAPh+3gq8yoatnLpNxFy UrcOWOC9bE4+8D9/zqQtJHUm7VvHuJJKSFX3qZ1Nfbjwiqddw1VKVE/glzQHllp3RsrI LlXw== X-Gm-Message-State: AO0yUKWHYz90KPswVEStbQrxqqKS+m6T1OwWuz0/V9d3PIN6pBPrTayY ZOy57TYUPreCQd6u3JURFUcpKCHHij/bxc/4xOQ= X-Google-Smtp-Source: AK7set8dhYNNoxYOKM22GA1Bub7n2FB2pZPhQGx44LKCQql7tzrlU/SEaWyA8+lcZkukbYSFsQAkKw== X-Received: by 2002:a17:903:24e:b0:19c:32b1:185d with SMTP id j14-20020a170903024e00b0019c32b1185dmr2899401plh.39.1676918473368; Mon, 20 Feb 2023 10:41:13 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: thuth@redhat.com, qemu-s390x@nongnu.org, Ilya Leoshkevich , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v4 09/27] target/s390x: Remove pc argument to pc_to_link_into Date: Mon, 20 Feb 2023 08:40:34 -1000 Message-Id: <20230220184052.163465-10-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230220184052.163465-1-richard.henderson@linaro.org> References: <20230220184052.163465-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1030; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1030.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1676918937200100005 All callers pass s->pc_tmp. Reviewed-by: Ilya Leoshkevich Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- target/s390x/tcg/translate.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/target/s390x/tcg/translate.c b/target/s390x/tcg/translate.c index 48e558a790..3dbbcfd2d3 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -174,8 +174,10 @@ static void gen_psw_addr_disp(DisasContext *s, TCGv_i6= 4 dest, int64_t disp) tcg_gen_movi_i64(dest, s->base.pc_next + disp); } =20 -static void pc_to_link_info(TCGv_i64 out, DisasContext *s, uint64_t pc) +static void pc_to_link_info(TCGv_i64 out, DisasContext *s) { + uint64_t pc =3D s->pc_tmp; + if (s->base.tb->flags & FLAG_MASK_32) { if (s->base.tb->flags & FLAG_MASK_64) { tcg_gen_movi_i64(out, pc); @@ -1549,7 +1551,7 @@ static DisasJumpType op_ni(DisasContext *s, DisasOps = *o) =20 static DisasJumpType op_bas(DisasContext *s, DisasOps *o) { - pc_to_link_info(o->out, s, s->pc_tmp); + pc_to_link_info(o->out, s); if (o->in2) { tcg_gen_mov_i64(psw_addr, o->in2); per_branch(s, false); @@ -1564,7 +1566,7 @@ static void save_link_info(DisasContext *s, DisasOps = *o) TCGv_i64 t; =20 if (s->base.tb->flags & (FLAG_MASK_32 | FLAG_MASK_64)) { - pc_to_link_info(o->out, s, s->pc_tmp); + pc_to_link_info(o->out, s); return; } gen_op_calc_cc(s); @@ -1594,7 +1596,7 @@ static DisasJumpType op_bal(DisasContext *s, DisasOps= *o) =20 static DisasJumpType op_basi(DisasContext *s, DisasOps *o) { - pc_to_link_info(o->out, s, s->pc_tmp); + pc_to_link_info(o->out, s); return help_goto_direct(s, (int64_t)get_field(s, i2) * 2); } =20 --=20 2.34.1 From nobody Tue May 14 03:45:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1676918734; cv=none; d=zohomail.com; s=zohoarc; b=HjO2O3mcLJPB4d/RQ5qCrjcYH8BSMvdbkRbtUj2ma8qw7+DaCyLOO/3EjIqObzLYg0fy7EWq7qxOW+YCuKkquow/R/acANHhuUfJt3PaWm6Se7cYReG1OjYGfXcu7yzNon9btYtKKadQLg9irH3cjGM4dWKxVb69ro/CS56N4U0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676918734; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=xeg/0EdSZC28AvGMk7qqsjE82NOjaTkrGHHmkOUC36U=; b=hm762vO2MmgejSrqokkjBUN360Egz3QZBBCtzhg9LGIQ86JXFf7fX/FDEaG/4TW/eai/H1BBCqm8Y66Jm/iKX1LlcfI+qmUOFT678E/u9QSoo6ki+cejCUZtA9zLS8PHS7Yp4y9b5P09c3/YSNbAtriGGUKddap6c39hM43W58o= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676918734663516.6220829255246; Mon, 20 Feb 2023 10:45:34 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUB7Z-00057z-K2; Mon, 20 Feb 2023 13:42:42 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUB6Y-0004YP-A3 for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:41 -0500 Received: from mail-pl1-x630.google.com ([2607:f8b0:4864:20::630]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUB6M-000475-Vt for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:33 -0500 Received: by mail-pl1-x630.google.com with SMTP id e5so3551600plg.8 for ; Mon, 20 Feb 2023 10:41:15 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id jk20-20020a170903331400b0019258bcf3ffsm1911676plb.56.2023.02.20.10.41.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 10:41:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=xeg/0EdSZC28AvGMk7qqsjE82NOjaTkrGHHmkOUC36U=; b=mqXC4PcmX7t3gCsr8WGoGFmpbnxBnHgJ+Q3zi9WwJf3yi+b52e7MivXpzNBtNlVI7E Jnj5NkKiiSX3CKLDBJ9s/hEy7PQ/yne7BcOICV1yYCQ1FQy9pyEVHBS/hw7wHQw+J6z/ u1xUZfSzdQIXvS4b1ClLbrdzvahpPb68hi2ZoIeiynte/e2kuwMbXgL+ZjLwvWBJTsHE eXOjgtrYfTU5+cINSQSmdhJmAihzJzA7BP2p7fdr05Qviu+FGp9JEt9vmnlp8yHJwaGS 9lVxJ91tn5NlfZpFLRTn/ZXXYSRPJJZp2DeNrn7rNxevepHrFzgsbB4eRbn7Y06swFr/ IrKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=xeg/0EdSZC28AvGMk7qqsjE82NOjaTkrGHHmkOUC36U=; b=XKAKR6N27uxYdtgfZEUx9I8Ipjy9hsd4DJPXr7RDGYduw4o6OOEl0FpjHzVjSwlpuM 6cPOXC5i+IeJ++CvBXxF53TLA3mm6i2LN31y00PvrAcMjaNGrxe/dk6O3anmK1/CZexD I9VnsRf3W7VIdKtK2gRRPPQg/2K5/EZBIeRtXl10HoVrQKZ4jo0Up/y6n0rv5LgZQnNq 5SM3KMqzuPnUtibAk6rOjlu8hEW1JZIQprSetBtFN29ycbK/kuwd/Z9ONhOLh2EQZv5b TTRjWejNvLgbprIFg7CsMwFVgcXzRAKj3UKs11LKgOgfJc7eKdI+5GZ7zACQGjnaW2W5 LKpg== X-Gm-Message-State: AO0yUKX7HtIbba3B9+MM65mTCpVkefVTh+pMPTLsFnOOGe0kxKvPOU67 HtjLjgZD3uUdCdJf/Yxr3OxYUk6iF9bwlHYpcJE= X-Google-Smtp-Source: AK7set89+uV444LHJwwuPTfPKPvwy2vNIrqmklOJH4U9/3nEm6jL7bQ6O0CPg0bFiNwgwm5fqVnlyQ== X-Received: by 2002:a17:902:d48b:b0:19a:a810:51b with SMTP id c11-20020a170902d48b00b0019aa810051bmr2234645plg.63.1676918474961; Mon, 20 Feb 2023 10:41:14 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: thuth@redhat.com, qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v4 10/27] target/s390x: Use gen_psw_addr_disp in pc_to_link_info Date: Mon, 20 Feb 2023 08:40:35 -1000 Message-Id: <20230220184052.163465-11-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230220184052.163465-1-richard.henderson@linaro.org> References: <20230220184052.163465-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::630; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x630.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1676918735676100001 Content-Type: text/plain; charset="utf-8" This is slightly more complicated than a straight displacement for 31 and 24-bit modes. Dont bother with a cant-happen assert. Reviewed-by: Ilya Leoshkevich Signed-off-by: Richard Henderson --- target/s390x/tcg/translate.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/target/s390x/tcg/translate.c b/target/s390x/tcg/translate.c index 3dbbcfd2d3..027a5b0673 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -176,17 +176,20 @@ static void gen_psw_addr_disp(DisasContext *s, TCGv_i= 64 dest, int64_t disp) =20 static void pc_to_link_info(TCGv_i64 out, DisasContext *s) { - uint64_t pc =3D s->pc_tmp; + TCGv_i64 tmp; =20 - if (s->base.tb->flags & FLAG_MASK_32) { - if (s->base.tb->flags & FLAG_MASK_64) { - tcg_gen_movi_i64(out, pc); - return; - } - pc |=3D 0x80000000; + if (s->base.tb->flags & FLAG_MASK_64) { + gen_psw_addr_disp(s, out, s->ilen); + return; } - assert(!(s->base.tb->flags & FLAG_MASK_64)); - tcg_gen_deposit_i64(out, out, tcg_constant_i64(pc), 0, 32); + + tmp =3D tcg_temp_new_i64(); + gen_psw_addr_disp(s, tmp, s->ilen); + if (s->base.tb->flags & FLAG_MASK_32) { + tcg_gen_ori_i64(tmp, tmp, 0x80000000); + } + tcg_gen_deposit_i64(out, out, tmp, 0, 32); + tcg_temp_free_i64(tmp); } =20 static TCGv_i64 psw_addr; --=20 2.34.1 From nobody Tue May 14 03:45:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1676918667; cv=none; d=zohomail.com; s=zohoarc; b=PYpa4z/SrpAYaeeiNiX7QgzAO4Utyf2KFyHf9mGQCR60eEsD5HUWfgjDcEJ17MRRSHRkS3n6w+m4N5Vz4PK+nFHXOQFs//jq8vtg9bRWqU5pSYN68scl5/ivGPUWmLl9IepgOnQerlELyaQBgvwtadkdvctOmK9JSVYwBSXgA0s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676918667; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=xjdX+3lrfnqV9nfR+Pm6BiLQ9pXwmV/7HhcoJgl+TnA=; b=PHX+417ROYwV7XZ5V6Y3gc3ahqpv0ShyYM6/JQWkvL7GIN7H8HmV7d8eWFdvOCxFcjrV2vUxySKdn3Sc6qwg0CeLAd0wbSyEmvSXj/ij1UooxDInl3EVi6GNGvEGcjfgj5473NKmkWq5j1G7vVWSTAyvyoRuuZfGtEx9mdxp9qE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676918667236881.3110450504101; Mon, 20 Feb 2023 10:44:27 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUB86-0005g9-Ix; Mon, 20 Feb 2023 13:43:14 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUB6Q-0004XH-3c for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:31 -0500 Received: from mail-pj1-x1035.google.com ([2607:f8b0:4864:20::1035]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUB6K-00047J-Vn for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:28 -0500 Received: by mail-pj1-x1035.google.com with SMTP id x20-20020a17090a8a9400b00233ba727724so1484924pjn.1 for ; Mon, 20 Feb 2023 10:41:17 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id jk20-20020a170903331400b0019258bcf3ffsm1911676plb.56.2023.02.20.10.41.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 10:41:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=xjdX+3lrfnqV9nfR+Pm6BiLQ9pXwmV/7HhcoJgl+TnA=; b=YGPV7WPRywDeg0YHkGJwXip2G/kF6HG/ehqAG3NfgAbJFJnkuxGm1kMZFvf2cHn+3Y lTbac6EjHyd1nq/++/V4Y5t05YQhhAXRAHmbDKyd2hKfked7n1ErfEXwxXjlYe9PtY9r 0I77zsCTktddQkcfnavmvNe3vmFMVxIK39w+Gs6dlgMOIbO80NVfY7xfZWsydrafOOBV O9wmJwFgQQgo0hl3D4143qGCvI64AOTuSY39DQZhKRjU2nd0Cnfd2vmL0h0044AcEQAt 9Ue5ceUc8jxPeJ+5uF5NUbcYLaLKvmRjGqMWpCMxyYmhXCRluz6HfP8LojrlloJLqjn9 pIUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=xjdX+3lrfnqV9nfR+Pm6BiLQ9pXwmV/7HhcoJgl+TnA=; b=q8nD9SBaG/SncFbkJoVZ8OUbCdltTLFFf81DbWOwOJm16b55TYj69JhxSvLwjaeYMH 3XkIY7HBxVrk8Y9FrxwCbUaPdCdCsr6xadND9pi5g3oXJzS0OBt55PZEQ017g9GZsm9y 6Js+Eh4S9X5wh79TTrPpeCCW+GVxEtfp5QeJuej92NLwjlKOaY0KZz5XZkiocw8l3H5n b1izqa/AyGOOGEwoAWC4NCAmo55Dp+AbqeK9pOUe0cy6iJqBYl+xdHPptwVQUyjmKULh IQo4ysEp08syuFZ++Yj5ZJ1N4TraFpRmmr3tb/2OlHe8Ivs8S8B6TzqBUKmzuSzbSfcA zLuQ== X-Gm-Message-State: AO0yUKUeOrigj3qS7mGrzeziJoXN/WgDBYRBD/jplJR47+NJHoJLA890 QEnNN1RidC3OdlvtMNU5r75/p/oHTN1FRmH5/J8= X-Google-Smtp-Source: AK7set8qSgdCt/q7DD1O1J/S5ErVCB1p42aXS6ADR0g/Jl71E3K0PL003prFf77BnvPwYvSk5KPPgQ== X-Received: by 2002:a17:902:e5c9:b0:199:5208:44de with SMTP id u9-20020a170902e5c900b00199520844demr3605448plf.21.1676918476663; Mon, 20 Feb 2023 10:41:16 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: thuth@redhat.com, qemu-s390x@nongnu.org, Ilya Leoshkevich , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v4 11/27] target/s390x: Use gen_psw_addr_disp in save_link_info Date: Mon, 20 Feb 2023 08:40:36 -1000 Message-Id: <20230220184052.163465-12-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230220184052.163465-1-richard.henderson@linaro.org> References: <20230220184052.163465-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1035; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1035.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1676918669308100003 Trivial but non-mechanical conversion away from pc_tmp. Reviewed-by: Ilya Leoshkevich Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- target/s390x/tcg/translate.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/target/s390x/tcg/translate.c b/target/s390x/tcg/translate.c index 027a5b0673..9e60abe97d 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -1573,9 +1573,11 @@ static void save_link_info(DisasContext *s, DisasOps= *o) return; } gen_op_calc_cc(s); - tcg_gen_andi_i64(o->out, o->out, 0xffffffff00000000ull); - tcg_gen_ori_i64(o->out, o->out, ((s->ilen / 2) << 30) | s->pc_tmp); t =3D tcg_temp_new_i64(); + tcg_gen_andi_i64(o->out, o->out, 0xffffffff00000000ull); + gen_psw_addr_disp(s, t, s->ilen); + tcg_gen_or_i64(o->out, o->out, t); + tcg_gen_ori_i64(o->out, o->out, (s->ilen / 2) << 30); tcg_gen_shri_i64(t, psw_mask, 16); tcg_gen_andi_i64(t, t, 0x0f000000); tcg_gen_or_i64(o->out, o->out, t); --=20 2.34.1 From nobody Tue May 14 03:45:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1676918579; cv=none; d=zohomail.com; s=zohoarc; b=V1R5H7vNPF1pw+syiM8zV4i1rlsNdL/elnfc2qk6Bm7oUqMi3xGG1/Xqf8ozc3/MzQJvtGf/h7Z7pWzJFl6ikx5UDVmKspOFOcLmhs3n7BvdiTRYX34fkhEb2jsPIu8PefZ5RvsSdxheFSrcMX3uskUPTr+dz/SESEqeLwh9W4M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676918579; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=OIXIS3t5z4FrUcuj3cjvlhwZKUVcPBcWn7pb9lpLWrY=; b=Zzynl1/0CXnaJlUfBMCn1faiT9uuf9f8uqkAuYdPqhPI40+BfXJZ9t+ryOY00lJ3iiFSOTfeOidleG9ejFtHRCboSf+NfBw5AAlRgXK/aq5sR6nJxv2w52H2C8x9du1Grf8+9tqjljSo/vEs9sN2uUdHQZqFoIP8RiQvKezppJ4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676918579475142.45899132931038; Mon, 20 Feb 2023 10:42:59 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUB6j-0004gk-Rx; Mon, 20 Feb 2023 13:41:49 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUB6P-0004XC-Ub for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:30 -0500 Received: from mail-pj1-x1036.google.com ([2607:f8b0:4864:20::1036]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUB6K-00047Y-VI for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:28 -0500 Received: by mail-pj1-x1036.google.com with SMTP id u10so2216719pjc.5 for ; Mon, 20 Feb 2023 10:41:19 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id jk20-20020a170903331400b0019258bcf3ffsm1911676plb.56.2023.02.20.10.41.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 10:41:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=OIXIS3t5z4FrUcuj3cjvlhwZKUVcPBcWn7pb9lpLWrY=; b=O2amCHLZJRVcm7SZ+inlN/7UOKRT8bX2Jck5FhS6/ImGDeSpI0YclJ+gOl/rZympcG LCHmHLlH06X6oyAYR7R1WXe+BOSn90Z1BQ4N19wbzEFDAwF73XB70JD3BSbAizo+BpqG 4Ea+1Pjv2yOb2W2q5WcsH9yCAmKfcZOd1JLBoyKqhW5cGEETwUBIUauEpPOuccH8MbcA +lWkk8YMskfARgjPZgzt3id207YKkTe+1m8ork56685lLBWlbFWK1HDWIVNEETG++2bt BsUwUrqq303A7sYlQoHTAOEFxkR7xlvfZ74XL3vkSSZE711UjHt0oD83izEg62gFhJde yCow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=OIXIS3t5z4FrUcuj3cjvlhwZKUVcPBcWn7pb9lpLWrY=; b=2KGu0h0RWnuqX/LrDLL7Vec50MsTA7QPOBf92aYhpx0SXYcSidzZUUpfl4UNVHUUuI j9uj4gNSazlP6GmvSwJfBYlxqK1SSd/32v6qo0lA2BzNg4f4Xzg7shyrB0VK9Chg3kuN 2iUKKQpoklgfjUcl3eMycqvtm4chXrk8woDkejxfupKadjCSCewbKE0bIlTJJEPDU+mf Lc9SCBWWurnXav7SLJk9j1IrB9xmxWKF0L78/IBE8E+RRbkxUy05mDBx7dteZRfOuoWy zrrMsbNe/IyryqsLT3NRqzEEL+0kXaMus8IjL88ATOZ9cznEJ+mBkkNe7EEn9ObahxX/ nHPg== X-Gm-Message-State: AO0yUKWyWykdAN8i+tvuBcO6A3bq4Di9VYVy8md6FQUw8DokM86qYAU0 h8iuvBxBWP6r0dBR0lhtTM36JNlAUcvSO2V17Lo= X-Google-Smtp-Source: AK7set83XNNHkxEbDan/qsUnRoWjz/Un7yr4tJweVnQdmaoKgwqw+1HPDA/Mv8iTbPvZzLHaBBr5sg== X-Received: by 2002:a17:903:1208:b0:19a:eb93:6165 with SMTP id l8-20020a170903120800b0019aeb936165mr3766797plh.22.1676918478428; Mon, 20 Feb 2023 10:41:18 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: thuth@redhat.com, qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v4 12/27] target/s390x: Use gen_psw_addr_disp in op_sam Date: Mon, 20 Feb 2023 08:40:37 -1000 Message-Id: <20230220184052.163465-13-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230220184052.163465-1-richard.henderson@linaro.org> References: <20230220184052.163465-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1036; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1036.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1676918581069100001 Content-Type: text/plain; charset="utf-8" Complicated because we may now require a runtime jump. Reviewed-by: Ilya Leoshkevich Signed-off-by: Richard Henderson --- target/s390x/tcg/translate.c | 40 +++++++++++++++++++++++++----------- 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/target/s390x/tcg/translate.c b/target/s390x/tcg/translate.c index 9e60abe97d..506bde2c3f 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -3939,7 +3939,7 @@ static DisasJumpType op_sacf(DisasContext *s, DisasOp= s *o) static DisasJumpType op_sam(DisasContext *s, DisasOps *o) { int sam =3D s->insn->data; - TCGv_i64 tsam; + TCGLabel *fault =3D NULL; uint64_t mask; =20 switch (sam) { @@ -3954,20 +3954,36 @@ static DisasJumpType op_sam(DisasContext *s, DisasO= ps *o) break; } =20 - /* Bizarre but true, we check the address of the current insn for the - specification exception, not the next to be executed. Thus the PoO - documents that Bad Things Happen two bytes before the end. */ - if (s->base.pc_next & ~mask) { - gen_program_exception(s, PGM_SPECIFICATION); - return DISAS_NORETURN; - } - s->pc_tmp &=3D mask; + /* + * Bizarre but true, we check the address of the current insn for the + * specification exception, not the next to be executed. Thus the PoO + * documents that Bad Things Happen two bytes before the end. + */ + if (mask !=3D -1) { + TCGv_i64 t =3D tcg_temp_new_i64(); + fault =3D gen_new_label(); =20 - tsam =3D tcg_constant_i64(sam); - tcg_gen_deposit_i64(psw_mask, psw_mask, tsam, 31, 2); + gen_psw_addr_disp(s, t, 0); + tcg_gen_andi_i64(t, t, ~mask); + tcg_gen_brcondi_i64(TCG_COND_NE, t, 0, fault); + tcg_temp_free_i64(t); + } + + update_cc_op(s); + + tcg_gen_deposit_i64(psw_mask, psw_mask, tcg_constant_i64(sam), 31, 2); + + gen_psw_addr_disp(s, psw_addr, s->ilen); + tcg_gen_andi_i64(psw_addr, psw_addr, mask); =20 /* Always exit the TB, since we (may have) changed execution mode. */ - return DISAS_TOO_MANY; + tcg_gen_lookup_and_goto_ptr(); + + if (mask !=3D -1) { + gen_set_label(fault); + gen_program_exception(s, PGM_SPECIFICATION); + } + return DISAS_NORETURN; } =20 static DisasJumpType op_sar(DisasContext *s, DisasOps *o) --=20 2.34.1 From nobody Tue May 14 03:45:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1676918736; cv=none; d=zohomail.com; s=zohoarc; b=V1v7yVX1nR0srobD9DBtUuZAFDyFrLCLR1oXnK+WWZt8+gDX+gzpZihMP9k+B5SwFgpDZSKQjngi3RsH+d+P/g0MyHg2IdVqWZlex6ktaeHVGJbnqMkJJq5d/3VW5Swgz4fCxIiaUCg1XAoaoL6rKZnuekXF4Kfu3eDIDlyBBd0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676918736; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=bfaFG09oDD2o28vcTR7j+acmldxB7/SXD7I4ujzpsng=; b=V767+OUA5l3dlHwiQNCAKKlfJ04D4OHX4Daru9SOmFR9W0blft01E1QQuv8ilAMPyfk+mtxz/VX+v+VDHyF2Jwg6AUKvxeyCPSY+ayPWQ9g61dvWnjsLGAikImH8Txt1jL646vOGDufEkkONlVEfsiVezHH1wL4nl701ImjlIyw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 16769187363831014.7477961375098; Mon, 20 Feb 2023 10:45:36 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUB7q-0005Cp-Pm; Mon, 20 Feb 2023 13:43:04 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUB6Q-0004XG-3c for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:31 -0500 Received: from mail-pj1-x1035.google.com ([2607:f8b0:4864:20::1035]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUB6L-00047q-0R for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:28 -0500 Received: by mail-pj1-x1035.google.com with SMTP id d1-20020a17090a3b0100b00229ca6a4636so2549637pjc.0 for ; Mon, 20 Feb 2023 10:41:21 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id jk20-20020a170903331400b0019258bcf3ffsm1911676plb.56.2023.02.20.10.41.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 10:41:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=bfaFG09oDD2o28vcTR7j+acmldxB7/SXD7I4ujzpsng=; b=uyxjU2PEf1rD5fC+O9IqEZvQI9imn1omarm+XufI7y/ITy+QTDgAizDiz1bNlrOzNg blXl008pUqowlSRAqVkBiP6+Kf+LD8hglYBpqmweIgOfN72LGq9taRUi5zmYhjtl3J9e 3RTmNu4kqfNjxA+pzAqjPaETYoxr1eXLH0uyZnE1xxqoZFN+dmLs/Uoxi+CySO8eN/5v A/a/GTz8aHL/kT9xwq0LhtgEwT2S/qzTdymYeyZBBFXtjaE/8Ng2eAOq6H+LfFccjvHn Ckb4WrkCPwj7WXys2JpQeIEzhxk8FC0StzhhxIZh3PSMYutCCRUsrZuQZonsbeMNoddB Sbrw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=bfaFG09oDD2o28vcTR7j+acmldxB7/SXD7I4ujzpsng=; b=Or4MTXJDpK10LpeFgShf/OkOf/K2lF4Ps5wTRhjc3ZQt4oBOqOByDkzPQ6eEJgSukf iJPL9XK+utg/eufGDHbuAMtmziu2oPd1AQGKdjr/bv7WlFjaC3VcrGvc4xywnVExXBbP oPOST+TfR+RFWqUT1vFjXygR/Kt/AiSiXBuh5FodAUgPOf8U6VBqeoh8ykRLIYd26yJL SRLfnd2yzMo156hX18EIPR6kpwWxKL6z3WawyTIIbKfn6VFS+ENTdByspfzR7jfRB1KB NrnNGCvdjzHBOnHn0DfFdBdFHcqpI4XrSm5/4X8fMAdoB6o1TQZbIuDCrXpCNBlwpzs1 BQdw== X-Gm-Message-State: AO0yUKVoSRBLD/j++6JVw8+LCn0Gx85UGDMSuPBx+R8cZ5vsNAh9YcVS kgNK0hCZvrZqAKOedBb8pYkS0NU8SXCecsWPiAc= X-Google-Smtp-Source: AK7set/6rFFXBNk2CnvHe43sysH+/rNjPXEzjrIRwNlIX9Ucs40WvXZLSwWqDRUKNFk5TKwE9nB84Q== X-Received: by 2002:a17:903:234b:b0:19a:7f4b:3ef6 with SMTP id c11-20020a170903234b00b0019a7f4b3ef6mr3240074plh.3.1676918480225; Mon, 20 Feb 2023 10:41:20 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: thuth@redhat.com, qemu-s390x@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Ilya Leoshkevich Subject: [PATCH v4 13/27] target/s390x: Use ilen instead in branches Date: Mon, 20 Feb 2023 08:40:38 -1000 Message-Id: <20230220184052.163465-14-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230220184052.163465-1-richard.henderson@linaro.org> References: <20230220184052.163465-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1035; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1035.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1676918737683100006 Remove the remaining uses of pc_tmp, and remove the variable. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Ilya Leoshkevich Signed-off-by: Richard Henderson --- target/s390x/tcg/translate.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/target/s390x/tcg/translate.c b/target/s390x/tcg/translate.c index 506bde2c3f..3a61491222 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -141,12 +141,6 @@ struct DisasContext { TCGOp *insn_start; DisasFields fields; uint64_t ex_value; - /* - * During translate_one(), pc_tmp is used to determine the instruction - * to be executed after base.pc_next - e.g. next sequential instruction - * or a branch target. - */ - uint64_t pc_tmp; uint32_t ilen; enum cc_op cc_op; bool exit_to_mainloop; @@ -1214,7 +1208,7 @@ static DisasJumpType help_branch(DisasContext *s, Dis= asCompare *c, goto egress; } if (is_imm) { - if (dest =3D=3D s->pc_tmp) { + if (disp =3D=3D s->ilen) { /* Branch to next. */ per_branch(s, true); ret =3D DISAS_NEXT; @@ -1238,7 +1232,7 @@ static DisasJumpType help_branch(DisasContext *s, Dis= asCompare *c, } } =20 - if (use_goto_tb(s, s->pc_tmp)) { + if (use_goto_tb(s, s->base.pc_next + s->ilen)) { if (is_imm && use_goto_tb(s, dest)) { /* Both exits can use goto_tb. */ update_cc_op(s); @@ -6317,7 +6311,6 @@ static const DisasInsn *extract_insn(CPUS390XState *e= nv, DisasContext *s) g_assert_not_reached(); } } - s->pc_tmp =3D s->base.pc_next + ilen; s->ilen =3D ilen; =20 /* We can't actually determine the insn format until we've looked up @@ -6562,7 +6555,7 @@ static DisasJumpType translate_one(CPUS390XState *env= , DisasContext *s) =20 out: /* Advance to the next instruction. */ - s->base.pc_next =3D s->pc_tmp; + s->base.pc_next +=3D s->ilen; return ret; } =20 --=20 2.34.1 From nobody Tue May 14 03:45:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1676918765; cv=none; d=zohomail.com; s=zohoarc; b=bVE/RFwg/Ws28jVuuSLW2G0mS9JL6adVuA5gjYD7f/ffjC2Hg9nOBnohi/UA99174lqq5yVxs2d8SSN4l70nwHH9EL97p9PgVEA0RYOcS/qO9vyKb/JNfom5rSh1IG51IBqmx32qL7j6l6s/2lU7INtPusdPlf4Jm4hgQn70fts= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676918765; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=x6mVVLeAKLfZ1QsaICACHihb7zGLUdrCmrZOJHSfaPM=; b=IEBm8FZHN5ULrLixggnaN/yKFmUdvleUO01BC15NYrAPLKD9pf98Agmf2a4QG/aJ8DIYUCN0eIk0rpnVvRhibwn2TSjx5xMADE9ozlVhK5fIFSiaerbgZACKlZNpUf16hebC93hjzQDtPP1wjyY84GkUFFtDB49A5txIHICou2w= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676918765703913.0751638668293; Mon, 20 Feb 2023 10:46:05 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUB7Q-0004y5-0n; Mon, 20 Feb 2023 13:42:32 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUB6W-0004Xp-Ai for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:40 -0500 Received: from mail-pl1-x62c.google.com ([2607:f8b0:4864:20::62c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUB6L-000484-Aw for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:32 -0500 Received: by mail-pl1-x62c.google.com with SMTP id bh1so2503000plb.11 for ; Mon, 20 Feb 2023 10:41:22 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id jk20-20020a170903331400b0019258bcf3ffsm1911676plb.56.2023.02.20.10.41.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 10:41:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=x6mVVLeAKLfZ1QsaICACHihb7zGLUdrCmrZOJHSfaPM=; b=Pa/2FLLdjM+UIhNaCoU7zB6nIBxw5Lo4d+Hk8Y9R/DetyIES7yznTCruZFvUGghlrW HGteNiVQj//DAyJBfXVm+BM1550BTMXCF5wRTp7vshS4+pQJGmpKXe7Ex8DVKY6kLzrw oGN7LM2+6Hn4mv3aFqGqPWMH/3brV3YWsRKy9hV1yKqpqg6mfbHvHr3EMrhyp4i3XZ1L d4lZvENCN/ydjL6G+wPGxrFLVGxVEEkaYy66mKqNnj768HATRiYppd7812AZm+V0dlGn E70uHd2fIJToXL/BnI8OnTeag8072HS+Te/5jyknMfWKYFj37Ftr151qAz3vt3pJKyVt gE2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=x6mVVLeAKLfZ1QsaICACHihb7zGLUdrCmrZOJHSfaPM=; b=eRDolln4l+NeDljgKMw1Z0SIsiZjxkt1pIab3pJ6UKQHDi4WvDhMIKzrUVwb3Kg+UZ 93eK6TbElMLE9rTPEv40dOmkC1TZY4VtP+CONOacFhwd+0JrpMh4TzgidogZcL9DRZRn IrH8DMNsPWgVonu1YwwxcG52llc4aW+LXYvJUdiu9r3B2HFhwMHOHEjb1fOCp+/YTlPx Gr7/T02yJykBgeZwzDDzM10vI9wCN0bUNgMl5zNX/rnlCvTyjOC9YBlBgLtK3+k/HTUT N+o8jrR54fp91cmtGTFZGt9+/Lmrmau8OeqWTRIlGPzg1BQhJnqnsUjTJ5YOPcWQ6cuE HvYg== X-Gm-Message-State: AO0yUKW+9h5GexWI99F9TfV+aSoi+9u8PmQoClDtugFlKRHcs63MLalH t6FClPXv73N+QlIacEMaE8rtaaX08u3f4Nqt6q4= X-Google-Smtp-Source: AK7set+yeaWcraQCaucHFZVyZ7+789H4Ut1/Mjq6gCx6by3898/Zf/KOSD8HyUohBtojCZY+MYu+hw== X-Received: by 2002:a17:902:f68f:b0:19c:1433:5fba with SMTP id l15-20020a170902f68f00b0019c14335fbamr2708852plg.0.1676918481992; Mon, 20 Feb 2023 10:41:21 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: thuth@redhat.com, qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v4 14/27] target/s390x: Assert masking of psw.addr in cpu_get_tb_cpu_state Date: Mon, 20 Feb 2023 08:40:39 -1000 Message-Id: <20230220184052.163465-15-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230220184052.163465-1-richard.henderson@linaro.org> References: <20230220184052.163465-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62c; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1676918767906100003 Content-Type: text/plain; charset="utf-8" When changing modes via SAM, we raise a specification exception if the new PC is out of range. The masking in s390x_tr_init_disas_context was too late to be correct, but may be removed. Add a debugging assert in cpu_get_tb_cpu_state. Reviewed-by: Ilya Leoshkevich Signed-off-by: Richard Henderson --- target/s390x/cpu.h | 20 ++++++++++++++------ target/s390x/tcg/translate.c | 6 +----- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h index 7d6d01325b..c7eeebfc53 100644 --- a/target/s390x/cpu.h +++ b/target/s390x/cpu.h @@ -379,17 +379,25 @@ static inline int cpu_mmu_index(CPUS390XState *env, b= ool ifetch) } =20 static inline void cpu_get_tb_cpu_state(CPUS390XState* env, target_ulong *= pc, - target_ulong *cs_base, uint32_t *f= lags) + target_ulong *cs_base, uint32_t *p= flags) { - *pc =3D env->psw.addr; - *cs_base =3D env->ex_value; - *flags =3D (env->psw.mask >> FLAG_MASK_PSW_SHIFT) & FLAG_MASK_PSW; + int flags =3D (env->psw.mask >> FLAG_MASK_PSW_SHIFT) & FLAG_MASK_PSW; if (env->cregs[0] & CR0_AFP) { - *flags |=3D FLAG_MASK_AFP; + flags |=3D FLAG_MASK_AFP; } if (env->cregs[0] & CR0_VECTOR) { - *flags |=3D FLAG_MASK_VECTOR; + flags |=3D FLAG_MASK_VECTOR; } + *pflags =3D flags; + *cs_base =3D env->ex_value; + *pc =3D env->psw.addr; +#ifdef CONFIG_DEBUG_TCG + if (!(flags & FLAG_MASK_32)) { + assert(*pc <=3D 0xffffff); + } else if (!(flags & FLAG_MASK_64)) { + assert(*pc <=3D 0x7fffffff); + } +#endif } =20 /* PER bits from control register 9 */ diff --git a/target/s390x/tcg/translate.c b/target/s390x/tcg/translate.c index 3a61491222..d21b6d7f72 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -6563,11 +6563,7 @@ static void s390x_tr_init_disas_context(DisasContext= Base *dcbase, CPUState *cs) { DisasContext *dc =3D container_of(dcbase, DisasContext, base); =20 - /* 31-bit mode */ - if (!(dc->base.tb->flags & FLAG_MASK_64)) { - dc->base.pc_first &=3D 0x7fffffff; - dc->base.pc_next =3D dc->base.pc_first; - } + /* Note cpu_get_tb_cpu_state asserts PC is masked for the mode. */ =20 dc->cc_op =3D CC_OP_DYNAMIC; dc->ex_value =3D dc->base.tb->cs_base; --=20 2.34.1 From nobody Tue May 14 03:45:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1676918642; cv=none; d=zohomail.com; s=zohoarc; b=K3KL3PVryOoODjKakjohwzANmB1ZwkHbzfCXCJylr4iXHSyDYBeOETChjkjIRhdCBUao5nnSdFsz2TKLXHJFnrca6UWrz8F6ZE/Zcwlv8ADVYUiLHg4FuoAGgwYVoFTZyArkhTn9HlAvTKybwNJJukWQ7UyBaXPXDb7UN23jZoo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676918642; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=R32w+gpJSW/QF+uQd1ste0+qotsnEJ4jVU8optw/M+8=; b=YPjEhRsrGh35tpqOcR3v+/8UImkEKNErHjX55rVgzKQ7ut/zECTCjqOllDtcPBfE4u7CWwqCZMCUFQMgVWJlewkC4CyC7xFvcW6m0oUD70C4i260k5CUx2pysod/Bf8IWczASyNln9tcOPT9uooRurPHMtjKg5gWoPt9XReEWAs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676918642312245.68010273857817; Mon, 20 Feb 2023 10:44:02 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUB8B-0006Ig-C5; Mon, 20 Feb 2023 13:43:19 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUB6a-0004ZC-Bi for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:46 -0500 Received: from mail-pj1-x1032.google.com ([2607:f8b0:4864:20::1032]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUB6N-00048T-1N for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:36 -0500 Received: by mail-pj1-x1032.google.com with SMTP id il18-20020a17090b165200b0023127b2d602so2372182pjb.2 for ; Mon, 20 Feb 2023 10:41:24 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id jk20-20020a170903331400b0019258bcf3ffsm1911676plb.56.2023.02.20.10.41.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 10:41:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=R32w+gpJSW/QF+uQd1ste0+qotsnEJ4jVU8optw/M+8=; b=qPo54lyC9tP4c9S/eVnkgCmH4x174fmL72ytd7UK4i+UZVoMaxYEV8xYt7talJN9rC I8EZq0e2POFgKCOrlGMhYJMKOEk9A4dmrBynyNHV+s/4MwcTYS13yGefnkdgfAMx62fs eK07GvD9ICA6IKSC9sikS9wbTzfFIx8sYWdM0b1PluQfPwxF5nKQylqH8HFLOGM6FKB+ XYzliuJpxbvTcrRrDjov3HKzM2iri5dI/Uy2Ba0of0mmXA3+iByU2H4ugY9ZAnx7qe/f IxiRIXDarJbIik3fUWwu6wgosTxSDyAlr5PC2vVQfMGNM/6vPPOVPDkKa+piuOC7aWup HI7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=R32w+gpJSW/QF+uQd1ste0+qotsnEJ4jVU8optw/M+8=; b=gW0vT8H1FxozUBRcogBeMyO7MkD1ijP8/BRDAAmjNR2aZSgqOD0352eTeKrurEdriF Vemc0OAmAjyc/mlSMpZFU9x7mp5/qEZjE9l4vdpLzeu75VXRbLb44cqYVUHdqw9QEjRL skJ4RmVMpnYZQZV91fPXVWYLZaaLd/BlVVwIkbUJ7eoVZwa2yrBbm8Z2EdzD9gzLwp/H Ta52nRAVUzCnsq6gFAgfKKXaaHM31n8CVsEfvPmEaqvgWm5OA+QbUGRUWYw1TAAC3R2k Dlaep7YsowZT7qBcW43tRL2rVthvp2qkv7ErGGviNePbTizJnZoZFyTVdRjuSy3e1FBo XvUQ== X-Gm-Message-State: AO0yUKUHvZeWpDlILLIIbQB6vxYiJBvvCAN2xjJl8BKb45s9+hc0kpKs nxnBRtvGXyeuJpDqdZ80PzhrGhSjwtILVUT9ROQ= X-Google-Smtp-Source: AK7set8tqgzfD0gTiAvSxcopAP1rUfGx7LcQYMWEATB4c+LLlkQZsQG6zbw36WIb0gG9nUnEvqvI7A== X-Received: by 2002:a17:902:e80f:b0:19b:afb:b92e with SMTP id u15-20020a170902e80f00b0019b0afbb92emr5453336plg.40.1676918483800; Mon, 20 Feb 2023 10:41:23 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: thuth@redhat.com, qemu-s390x@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Ilya Leoshkevich Subject: [PATCH v4 15/27] target/s390x: Add disp argument to update_psw_addr Date: Mon, 20 Feb 2023 08:40:40 -1000 Message-Id: <20230220184052.163465-16-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230220184052.163465-1-richard.henderson@linaro.org> References: <20230220184052.163465-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1032; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1032.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1676918643205100001 Rename to update_psw_addr_disp at the same time. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Ilya Leoshkevich Signed-off-by: Richard Henderson --- target/s390x/tcg/translate.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/target/s390x/tcg/translate.c b/target/s390x/tcg/translate.c index d21b6d7f72..160c5eef59 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -348,9 +348,9 @@ static void return_low128(TCGv_i64 dest) tcg_gen_ld_i64(dest, cpu_env, offsetof(CPUS390XState, retxl)); } =20 -static void update_psw_addr(DisasContext *s) +static void update_psw_addr_disp(DisasContext *s, int64_t disp) { - gen_psw_addr_disp(s, psw_addr, 0); + gen_psw_addr_disp(s, psw_addr, disp); } =20 static void per_branch(DisasContext *s, bool to_next) @@ -456,7 +456,7 @@ static void gen_program_exception(DisasContext *s, int = code) offsetof(CPUS390XState, int_pgm_ilen)); =20 /* update the psw */ - update_psw_addr(s); + update_psw_addr_disp(s, 0); =20 /* Save off cc. */ update_cc_op(s); @@ -1184,11 +1184,11 @@ static DisasJumpType help_goto_direct(DisasContext = *s, int64_t disp) update_cc_op(s); per_breaking_event(s); tcg_gen_goto_tb(0); - gen_psw_addr_disp(s, psw_addr, disp); + update_psw_addr_disp(s, disp); tcg_gen_exit_tb(s->base.tb, 0); return DISAS_NORETURN; } else { - gen_psw_addr_disp(s, psw_addr, disp); + update_psw_addr_disp(s, disp); per_branch(s, false); return DISAS_PC_UPDATED; } @@ -2468,7 +2468,7 @@ static DisasJumpType op_ex(DisasContext *s, DisasOps = *o) return DISAS_NORETURN; } =20 - update_psw_addr(s); + update_psw_addr_disp(s, 0); update_cc_op(s); =20 if (r1 =3D=3D 0) { @@ -3192,7 +3192,7 @@ static DisasJumpType op_lpd(DisasContext *s, DisasOps= *o) =20 /* In a parallel context, stop the world and single step. */ if (tb_cflags(s->base.tb) & CF_PARALLEL) { - update_psw_addr(s); + update_psw_addr_disp(s, 0); update_cc_op(s); gen_exception(EXCP_ATOMIC); return DISAS_NORETURN; @@ -4505,7 +4505,7 @@ static DisasJumpType op_stura(DisasContext *s, DisasO= ps *o) tcg_gen_qemu_st_tl(o->in1, o->in2, MMU_REAL_IDX, s->insn->data); =20 if (s->base.tb->flags & FLAG_MASK_PER) { - update_psw_addr(s); + update_psw_addr_disp(s, 0); gen_helper_per_store_real(cpu_env); } return DISAS_NEXT; @@ -4743,7 +4743,7 @@ static DisasJumpType op_svc(DisasContext *s, DisasOps= *o) { TCGv_i32 t; =20 - update_psw_addr(s); + update_psw_addr_disp(s, 0); update_cc_op(s); =20 t =3D tcg_constant_i32(get_field(s, i1) & 0xff); @@ -6545,7 +6545,7 @@ static DisasJumpType translate_one(CPUS390XState *env= , DisasContext *s) if (s->base.tb->flags & FLAG_MASK_PER) { /* An exception might be triggered, save PSW if not already done. = */ if (ret =3D=3D DISAS_NEXT || ret =3D=3D DISAS_TOO_MANY) { - gen_psw_addr_disp(s, psw_addr, s->ilen); + update_psw_addr_disp(s, s->ilen); } =20 /* Call the helper to check for a possible PER exception. */ @@ -6614,7 +6614,7 @@ static void s390x_tr_tb_stop(DisasContextBase *dcbase= , CPUState *cs) case DISAS_NORETURN: break; case DISAS_TOO_MANY: - update_psw_addr(dc); + update_psw_addr_disp(dc, 0); /* FALLTHRU */ case DISAS_PC_UPDATED: /* Next TB starts off with CC_OP_DYNAMIC, so make sure the --=20 2.34.1 From nobody Tue May 14 03:45:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1676918790; cv=none; d=zohomail.com; s=zohoarc; b=HwWJP/esHXtUEM4GHr14nuo4Dp+ymLY3tIPKJXwT1ePSuds0HTFk5ILhb+AMAVfjfaidBJUnYEAKBP89FXkLTS/6w4jmYOOfIRmi6PO1QRLXKl7H7iLQz+IE20BbfFVCKQmkaXFaeEXROr6t18tqrD14KB6+h8xOEs8Tll7MeWI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676918790; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=CrQyJxQBvQOf9t0/3BNEJXqkIzID3QnXa0o6v2T4iMs=; b=Mp5gsGpWh0D35Hw6jVRFUXFbcTg2Z4ugCZzvMbw+NZylRcMM6bxBC3FL8ACTojLyMlGdn4CBZMvLW4rs6jleI9nVTDESi/hyhDY3skQGAXcuWTxH//+OGX8CahNbsQco8LZzfDAlhLsVIYvS2F5aZRwLvnktnn5Z/toVUhmSJmI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676918790225936.263490743157; Mon, 20 Feb 2023 10:46:30 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUB89-00063k-R3; Mon, 20 Feb 2023 13:43:17 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUB6a-0004a3-Ez for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:47 -0500 Received: from mail-pl1-x635.google.com ([2607:f8b0:4864:20::635]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUB6P-00048v-HA for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:37 -0500 Received: by mail-pl1-x635.google.com with SMTP id q5so2501759plh.9 for ; Mon, 20 Feb 2023 10:41:26 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id jk20-20020a170903331400b0019258bcf3ffsm1911676plb.56.2023.02.20.10.41.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 10:41:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=CrQyJxQBvQOf9t0/3BNEJXqkIzID3QnXa0o6v2T4iMs=; b=q4DOhCpy6vzv+r7s6BaMAKqC5sK6hRrQd6pMy7yWD4FMOkDPSul7mBmVcmUksb6qOB 5g8NYMwYPM5+VwV1R9s0MpbbgzG/Dt5H9JhQZvGjrUnuZyeGasUPfPRRcHBxojlZqrh5 9fQ4YVHh0O8/LSGXyVYoQcHBQc6u/XceUqoiiI3R91+0ew3z4fCBodl+deYaqfT0784q WAF+rcsJAaZlm6fjxyjPOSGCWhBk2uxa3KDtGX1KkLlapTrpWHK7Co1Rk1+S8bx17Te3 pEFrzKLqShb2KSucb9M89v8GyGl9ETouSKZjvwuhyPx4uszRDsWqumMFe6g6UIRvsF0r oa+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=CrQyJxQBvQOf9t0/3BNEJXqkIzID3QnXa0o6v2T4iMs=; b=yCJZz0AEAOQ2Kfyo1IKi84bCzigFjYIw5MvyvZPNPXPLPn8krEIx4ir6Aihy44PZSW oDEso4HYpljQHMS7UrnsRPSwNPMSUA5HDLJ9FsCK1HsdK5XRrj2KV6B/PDx5ZRCRIYsg QJet4d/mJF59oeXFZiyhN2oyznmUYl9EPCSst2HRR+P2ARlzwPIwWlj3CXG2TqyazQEx Z6AI1AfWq2F5sLbNgvbVamoXWhdrhMmmaUMa+846+msAwHR79SORBRciequyMBcDPUlS O+5hey3tTxVJYCremPjzD67x5qGbv6SSYunmIfvUar1/KqjjWp/V0OdrycHdlVFvuP63 mRsA== X-Gm-Message-State: AO0yUKWSbwB719M++NJiySRkseLB9fWR0ryXbmFClqb0FwIw86DbcdCI Ueo8CNSXHvaK0GtmEeomSq1FOUCAA0NU9seB6ac= X-Google-Smtp-Source: AK7set9GxL4ZqQFP+YR0S5VMBHAN/qfE9qRmfCRKMt6lY8/QRTMsGuB/PdOL1QNexs4VBaS8Q/YRXA== X-Received: by 2002:a17:902:ce89:b0:19a:9434:af30 with SMTP id f9-20020a170902ce8900b0019a9434af30mr5025644plg.18.1676918485373; Mon, 20 Feb 2023 10:41:25 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: thuth@redhat.com, qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v4 16/27] target/s390x: Don't set gbea for user-only Date: Mon, 20 Feb 2023 08:40:41 -1000 Message-Id: <20230220184052.163465-17-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230220184052.163465-1-richard.henderson@linaro.org> References: <20230220184052.163465-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::635; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x635.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1676918792170100004 Content-Type: text/plain; charset="utf-8" The rest of the per_* functions have this ifdef; this one seemed to be missing. Reviewed-by: Ilya Leoshkevich Signed-off-by: Richard Henderson --- target/s390x/tcg/translate.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/target/s390x/tcg/translate.c b/target/s390x/tcg/translate.c index 160c5eef59..d8dad71814 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -396,7 +396,9 @@ static void per_branch_cond(DisasContext *s, TCGCond co= nd, =20 static void per_breaking_event(DisasContext *s) { +#ifndef CONFIG_USER_ONLY gen_psw_addr_disp(s, gbea, 0); +#endif } =20 static void update_cc_op(DisasContext *s) --=20 2.34.1 From nobody Tue May 14 03:45:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1676918628; cv=none; d=zohomail.com; s=zohoarc; b=Ge0nvBwSVxbaCN07WDs8fP+e2s64c8zo9/Je4B0kc5cqzFxgOY9sudEQJuMmI//nIgqM84ZhYwviTrOa+RObBPKhq4pkKcOyicy+CMvz9tJ6FwTDuk2h1Vsn1EJf9qWb0Hsc36QwY5oZfElDn/50tfGE1OgZ2GXfOH9w8/raBoA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676918628; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=hVAOE5bYdVyLdxBG7UtWUVaMQMKRna4hS5x0eRllW54=; b=ftx+0VvSh77NeEpvOxaMgEp2SdtTmFzqV6whXf4+8dt9ytKhp20Fs8TF1DcLJ1tByoAyzFxERNXRK/fZe8M4dAt9nnZ64s5CdWD3UCQaB4c5gACkQEIyPEJPu1NMb2Ac6AEe99aYi8YGM8NuWXloF74L7q3aIwuaZvGngjo2/Fw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676918628970958.9122843924421; Mon, 20 Feb 2023 10:43:48 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUB8C-0006Rb-Pn; Mon, 20 Feb 2023 13:43:21 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUB6a-0004aF-GJ for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:47 -0500 Received: from mail-pj1-x1035.google.com ([2607:f8b0:4864:20::1035]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUB6P-00049U-Ij for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:37 -0500 Received: by mail-pj1-x1035.google.com with SMTP id qi12-20020a17090b274c00b002341621377cso2189141pjb.2 for ; Mon, 20 Feb 2023 10:41:27 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id jk20-20020a170903331400b0019258bcf3ffsm1911676plb.56.2023.02.20.10.41.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 10:41:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=hVAOE5bYdVyLdxBG7UtWUVaMQMKRna4hS5x0eRllW54=; b=GnAhD7GXydMvaC3vTO71Fxt3hkdATyKEStLYnS1eY2zKuPQvE7dIYMh1vxgDBcpNlu K8sVfRjly7lSdPBhRVcXsuYSc9IMtn7d3HTHfj3w576T0LVuv2rc1zBx3zPJTg2cwKZc oLgGIfZoFQ5z/8YdMk73hb+pCRKKHOoxXsWmv+V7cWdIIBxOdLw32KMYQtTK98JgE6yb fhayb+gCWbTMRdREwVEFL8ACLm7xCFBjqEnY3DpfysZ4mBEVIxhokq9/C57bhZn3b9ea auu4L/5IgftpPD9QrD4GCRTKPqLnE3msTu0V8DVGiAvho8AOdxrI8FpXkdLQTWn9QbMC clkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hVAOE5bYdVyLdxBG7UtWUVaMQMKRna4hS5x0eRllW54=; b=N+UrA5gg7f8j144nzJjjGLv6KWoGFTPakEBdGLZ7Apt2QPMdplAEao/CyMQjApw6P/ vM5wZjpytkk7JD6RLM1WUF83onxdf1hKrc7N106P1TOzm5S6rcOL62yu7KWjQV4zgvCc b2GcXoPpuzP434gdxtC/i6vaS9BWR7HPbNi719Nt0+BQnRFa/ZMwZ0lHyRAS3LYhdQLt ACQeRUCy52/kfqnVKi/CoRmgB6duSlzXIfNqbPHZC4rIB66qqBT4tnL+mmV4fAX6p1Y5 NwlIHHeMz9rLLk/P50xE63pdyamtc4lndnwPzcfuwTsn1C0etJOmnbg8Y8OTn5p0T89C o4YA== X-Gm-Message-State: AO0yUKWxHSa58Dkh+GwhnAGpRcrJXaM1rEzCtDu6AFYXrO5Rj0nPhQ/N 10PJDihlfkQKW1y9/bx5AD9Ln1Qz+/poSY4zl3o= X-Google-Smtp-Source: AK7set95SnEw20Zyern+l8Xmuyhh86CeyzWzFzSSfzUlAstwT9gwD2F8znuvTzoonBJxqIU+aiF8cA== X-Received: by 2002:a17:902:d488:b0:196:5f75:66f9 with SMTP id c8-20020a170902d48800b001965f7566f9mr5228172plg.63.1676918487037; Mon, 20 Feb 2023 10:41:27 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: thuth@redhat.com, qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v4 17/27] target/s390x: Introduce per_enabled Date: Mon, 20 Feb 2023 08:40:42 -1000 Message-Id: <20230220184052.163465-18-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230220184052.163465-1-richard.henderson@linaro.org> References: <20230220184052.163465-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1035; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1035.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1676918631092100007 Content-Type: text/plain; charset="utf-8" Hoist the test of FLAG_MASK_PER to a helper. Reviewed-by: Ilya Leoshkevich Signed-off-by: Richard Henderson --- 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 d8dad71814..433703b4c9 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -353,12 +353,21 @@ static void update_psw_addr_disp(DisasContext *s, int= 64_t disp) gen_psw_addr_disp(s, psw_addr, disp); } =20 +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); =20 - if (s->base.tb->flags & FLAG_MASK_PER) { + if (per_enabled(s)) { if (to_next) { TCGv_i64 next_pc =3D tcg_temp_new_i64(); =20 @@ -376,7 +385,7 @@ static void per_branch_cond(DisasContext *s, TCGCond co= nd, TCGv_i64 arg1, TCGv_i64 arg2) { #ifndef CONFIG_USER_ONLY - if (s->base.tb->flags & FLAG_MASK_PER) { + if (per_enabled(s)) { TCGLabel *lab =3D gen_new_label(); tcg_gen_brcond_i64(tcg_invert_cond(cond), arg1, arg2, lab); =20 @@ -680,7 +689,7 @@ static void gen_op_calc_cc(DisasContext *s) =20 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); @@ -4506,7 +4515,7 @@ static DisasJumpType op_stura(DisasContext *s, DisasO= ps *o) { tcg_gen_qemu_st_tl(o->in1, o->in2, MMU_REAL_IDX, s->insn->data); =20 - 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); } @@ -6413,7 +6422,7 @@ static DisasJumpType translate_one(CPUS390XState *env= , DisasContext *s) } =20 #ifndef CONFIG_USER_ONLY - if (s->base.tb->flags & FLAG_MASK_PER) { + if (per_enabled(s)) { TCGv_i64 addr =3D tcg_temp_new_i64(); =20 gen_psw_addr_disp(s, addr, 0); @@ -6544,7 +6553,7 @@ static DisasJumpType translate_one(CPUS390XState *env= , DisasContext *s) } =20 #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 =3D=3D DISAS_NEXT || ret =3D=3D DISAS_TOO_MANY) { update_psw_addr_disp(s, s->ilen); @@ -6569,7 +6578,7 @@ static void s390x_tr_init_disas_context(DisasContextB= ase *dcbase, CPUState *cs) =20 dc->cc_op =3D CC_OP_DYNAMIC; dc->ex_value =3D dc->base.tb->cs_base; - dc->exit_to_mainloop =3D (dc->base.tb->flags & FLAG_MASK_PER) || dc->e= x_value; + dc->exit_to_mainloop =3D per_enabled(dc) || dc->ex_value; } =20 static void s390x_tr_tb_start(DisasContextBase *db, CPUState *cs) --=20 2.34.1 From nobody Tue May 14 03:45:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1676918963; cv=none; d=zohomail.com; s=zohoarc; b=LPVTrA97GRx6OSTxK+4SsL7uguZ+pNBXPbSNAt2RpIFtgEeCtivkWMSrcmUeenrsEH4GzN/gUj1vb2WU5SvUFsgNMZzSFisZLU2GcQCHNEihmBqw2nDvDuVEPvn/vG+GzcIlYwhhIoGVD0g/PmizqTsx85z+RcqdkOlYFOpxIMU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676918963; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=WCjjPlh2Wg57tPbIo2qksXSfr4SotDLh83V8udd4S54=; b=TCpaq+/EnvGkuFgrpb+DtcPM8+AAA3fFhKNFzEqs5sF1qtOlq6OifmS0/5Xu31G5slidoQmT8/idGd2fTDFHG1e6vAid61lu9+55JXa1m1cH570Csukc0apiKMXY21hVDKHA3A6X+RBeLzK71WoODUDs5nzsr9X7ejFSsS304Ik= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 167691896371530.30147300494673; Mon, 20 Feb 2023 10:49:23 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUB8e-0008HS-Ab; Mon, 20 Feb 2023 13:43:48 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUB6b-0004d0-K9 for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:47 -0500 Received: from mail-pj1-x1036.google.com ([2607:f8b0:4864:20::1036]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUB6R-0004BE-Rs for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:38 -0500 Received: by mail-pj1-x1036.google.com with SMTP id i1-20020a17090ad34100b00234463de251so2214007pjx.3 for ; Mon, 20 Feb 2023 10:41:29 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id jk20-20020a170903331400b0019258bcf3ffsm1911676plb.56.2023.02.20.10.41.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 10:41:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=WCjjPlh2Wg57tPbIo2qksXSfr4SotDLh83V8udd4S54=; b=jI7oWeaJbeSTa9/qxMhgY52PL15v4f2JA58VUNez8w3p0TumAfvpqK8oX2UiwUEl0b Yi691zWRjvSri9ITEkwgIzqDNo9OyN0aXMbrtV8KPEje3aS84gZGKZjRr0uujms2Wf+i NvW46xXBqusPluBLf+RX43ZlfyihQN0IYyKQcH4wQmX3BzKPrFNX7CLktwGMRl8pYaze 0/CjGJFJpcLN9aqtwpISJ207BeyYrpgDWOWBLIuroy3+qJKgzN5reXI112eFmA5hgtjA MeO5j4NxdhrqXox0PaF/0/qbEx9tnvzmJTk9ob/IMtCvlax14DM5fyo8Q79aqFcIeBie mPfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WCjjPlh2Wg57tPbIo2qksXSfr4SotDLh83V8udd4S54=; b=d4SImgjiFNLC7FQpwFMcew326MUNd80SisuVSpwlssCruK450Ms/R25y2yEU1Vc0e6 5K0OjjwJFgXc+W3mit2ZCCbvF5zdI6tYDxF/Wvjw+lwzXZ4gZnEhxTskDJtQyQgTfoYS 2YsjXEiefTHNfkCUx6rrJIcY8T7fS9p1i7RMIxidU2T78Q1Mh8HQsVfL8GIn2daD5CWX SHPZOXiHxxbdGFt5yCSgHsc804so1rM6FyTsAc1zSLmeUzkbhdaiZpM1/CKzLzQ7hck0 5GCfdCacOJzeQTquA3/VGdm8BmRezIVsCfg5SP0o2tlYoXzWxEsQos5l5WSTmCdtl8PI vl7g== X-Gm-Message-State: AO0yUKUyXEHGKHpwWSxKI4eLSki2mQXoHM4HdKYE6cySorBS6HrAwZTj 35Y2tH7KcIl8s7Lx1n3HGr28yduKbfvifc4LHlQ= X-Google-Smtp-Source: AK7set87ZP0LRQqKxYE1NCsWXmmSqvCZ4DMfcTM9/4kK64XkxO3tbbwLEqptrywb/y3O6UjWDWzcAA== X-Received: by 2002:a17:903:283:b0:19a:a2e7:64c3 with SMTP id j3-20020a170903028300b0019aa2e764c3mr3816882plr.68.1676918488720; Mon, 20 Feb 2023 10:41:28 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: thuth@redhat.com, qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v4 18/27] target/s390x: Disable conditional branch-to-next for PER Date: Mon, 20 Feb 2023 08:40:43 -1000 Message-Id: <20230220184052.163465-19-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230220184052.163465-1-richard.henderson@linaro.org> References: <20230220184052.163465-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1036; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1036.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1676918964855100001 Content-Type: text/plain; charset="utf-8" For PER, we require a conditional call to helper_per_branch for the conditional branch. Fold the remaining optimization into a call to helper_goto_direct, which will take care of the remaining gbea adjustment. Reviewed-by: Ilya Leoshkevich Signed-off-by: Richard Henderson --- target/s390x/tcg/translate.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/target/s390x/tcg/translate.c b/target/s390x/tcg/translate.c index 433703b4c9..6757a0f44f 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -1219,13 +1219,12 @@ static DisasJumpType help_branch(DisasContext *s, D= isasCompare *c, goto egress; } if (is_imm) { - if (disp =3D=3D s->ilen) { - /* Branch to next. */ - per_branch(s, true); - ret =3D DISAS_NEXT; - goto egress; - } - if (c->cond =3D=3D TCG_COND_ALWAYS) { + /* + * Do not optimize a conditional branch if PER enabled, because we + * still need a conditional call to helper_per_branch. + */ + if (c->cond =3D=3D TCG_COND_ALWAYS + || (disp =3D=3D s->ilen && !per_enabled(s))) { ret =3D help_goto_direct(s, disp); goto egress; } --=20 2.34.1 From nobody Tue May 14 03:45:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1676918661; cv=none; d=zohomail.com; s=zohoarc; b=jVKsS+89QLF1TMsdGKa7wsHrSb8aQHkUscwJaqSPPTTYO4SAQbIyfguhzq+i6KKVqZDbvCTuFJwGWKDuHY8WcRZsA6vX4TAH8QOrDlB2f9pmmiPhE/ZMLw2kEFhv2tJSfesFVzgtFMvUDZ1BjI+wyRfPW1PXyPvtma/PFqZICto= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676918661; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=+Gcs847vjJc3xC2UOWHkazgkIaAtl/2Q94u6UiZ63QI=; b=CHFHnUeDmn9cub3RZqGuJoEdvdWAnjbxRBe5bieUp9/RclQYn9PulWkdTepslr18khaBT2mxOsUce7T0umZu2O7CjxK/q2TnGbaUFdJRxicIpssR0+c2Z/wCBIK0C6oIMHfi2H0X/jQQeF0AfLzvoKBLDydcE5aRfew6MRgFi3k= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676918661629509.2042799399035; Mon, 20 Feb 2023 10:44:21 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUB8a-0007nA-HH; Mon, 20 Feb 2023 13:43:44 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUB6c-0004dJ-3m for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:47 -0500 Received: from mail-pl1-x62c.google.com ([2607:f8b0:4864:20::62c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUB6W-0004CC-10 for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:40 -0500 Received: by mail-pl1-x62c.google.com with SMTP id z2so2651815plf.12 for ; Mon, 20 Feb 2023 10:41:31 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id jk20-20020a170903331400b0019258bcf3ffsm1911676plb.56.2023.02.20.10.41.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 10:41:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+Gcs847vjJc3xC2UOWHkazgkIaAtl/2Q94u6UiZ63QI=; b=qXoF6sn60KHuqW07X9lDJSLj+rGUWa94GIASrnNxPi4V4w+DjVVRE6oN71BjEPqsGZ 3qP6Emx7RRwW6Wck7AEfP04ABMb8zywhvTK5IWcX0XGl0bxJSw5IQtZoODo+d455MPxr 8V7eOUXt2pmUfymdouVgQdZaSCZ81w+RC09WHtrFPLhkLR7s0y/mS7VOJL3NW5ub/h4N /grFONatbyO8jIvEO7zZW8tNaBzDHdy5o9w1yUUuAZ0IOuZRxfOh5V9mBQ8tX6uWGDz0 V5ok+r9raB8R2eIqyjvZxRy6O06jmgwDlclyx1EBP5c//V+FpQZGLc2kHzReKjmZPU32 d2uw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+Gcs847vjJc3xC2UOWHkazgkIaAtl/2Q94u6UiZ63QI=; b=pYSQyxov0hjzPDf/vLO0WjbiL64wf54AifN4Nwbaiy8/F9Lj/5oMmEIxsskjPNckIq EJCbARZUH9/Jx+itRNOLbs5M/fvuJURCHoaQ++fLpCj8wau4NnNIvB2abf/xcE5bY/58 tVKAnegGV1ZWXT4JLS4KQUUGjbF2S9dfZUT0hSxP70138ZdOLUiSYVzTDv6u3BKiy+fD b2GE91tJ4Go3+rI3f8zk1ZCnGfJk3t/b4JyWSsHFcJhFVY7dexp6P9wiqTaz31aI2FC/ RWJq4NAhaLO6PawTLwtL1tAdOOlYOPN3ahHvuQ4q98hiRFpGU8QBLIhF590xdwoCx4un kD4g== X-Gm-Message-State: AO0yUKW8YgkqDU6aGhiRLgMS5qRDiTfNVplwBGzhY5OIjtJc7vaonfoG adqETB4KPJS8mpAdCjgUmu+dd7vv9jBP0UmAEV8= X-Google-Smtp-Source: AK7set/+9RSE+MucON9o85IG5z+4Cgs2+wKH4k4UZmVJWOo33L1tAivyWTGoXZB8NVeu15On0d/LQQ== X-Received: by 2002:a17:902:e5cc:b0:19a:b754:4053 with SMTP id u12-20020a170902e5cc00b0019ab7544053mr3552864plf.26.1676918490562; Mon, 20 Feb 2023 10:41:30 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: thuth@redhat.com, qemu-s390x@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Ilya Leoshkevich Subject: [PATCH v4 19/27] target/s390x: Introduce help_goto_indirect Date: Mon, 20 Feb 2023 08:40:44 -1000 Message-Id: <20230220184052.163465-20-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230220184052.163465-1-richard.henderson@linaro.org> References: <20230220184052.163465-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62c; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1676918663312100001 Add a small helper to handle unconditional indirect jumps. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Ilya Leoshkevich Signed-off-by: Richard Henderson --- target/s390x/tcg/translate.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/target/s390x/tcg/translate.c b/target/s390x/tcg/translate.c index 6757a0f44f..afa5f56fc4 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -1205,6 +1205,13 @@ static DisasJumpType help_goto_direct(DisasContext *= s, int64_t disp) } } =20 +static DisasJumpType help_goto_indirect(DisasContext *s, TCGv_i64 dest) +{ + tcg_gen_mov_i64(psw_addr, dest); + per_branch(s, false); + return DISAS_PC_UPDATED; +} + static DisasJumpType help_branch(DisasContext *s, DisasCompare *c, bool is_imm, int imm, TCGv_i64 cdest) { @@ -1235,9 +1242,7 @@ static DisasJumpType help_branch(DisasContext *s, Dis= asCompare *c, goto egress; } if (c->cond =3D=3D TCG_COND_ALWAYS) { - tcg_gen_mov_i64(psw_addr, cdest); - per_branch(s, false); - ret =3D DISAS_PC_UPDATED; + ret =3D help_goto_indirect(s, cdest); goto egress; } } @@ -1560,9 +1565,7 @@ static DisasJumpType op_bas(DisasContext *s, DisasOps= *o) { pc_to_link_info(o->out, s); if (o->in2) { - tcg_gen_mov_i64(psw_addr, o->in2); - per_branch(s, false); - return DISAS_PC_UPDATED; + return help_goto_indirect(s, o->in2); } else { return DISAS_NEXT; } @@ -1595,9 +1598,7 @@ static DisasJumpType op_bal(DisasContext *s, DisasOps= *o) { save_link_info(s, o); if (o->in2) { - tcg_gen_mov_i64(psw_addr, o->in2); - per_branch(s, false); - return DISAS_PC_UPDATED; + return help_goto_indirect(s, o->in2); } else { return DISAS_NEXT; } --=20 2.34.1 From nobody Tue May 14 03:45:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1676918579; cv=none; d=zohomail.com; s=zohoarc; b=Jlowx+WvZgTJ8zarpqP/Jp0VEr0jKVIFo4cfKe8+yaydh7YD6FEHGHlBd1ZAbu/wu30TmR1pkwBwL/uTly4X/VWP9+dTEeKqky0L+trQBHqAxbAOGqp/iSSYGsTxhvZ6QiNY4lxXfNfZmHSDAlWIVLTVnrEzLg0l3SXJo3++Tvw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676918579; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=EmEW4Ui+jZHyPbqDarHaGkbuRfLpWlEHhDk+zbdrYtU=; b=h7AXggzjslrIsb1+/HpaGgh/Tgm0n+Y48Q4l0auTY/4s6k4qYbRdId19RcM/zwTtcmWoI570/zQbJx4h/iRj4+O39MoxcEnGiDNpho6F+0OgRq3qQNGakYAbWYuGXPlpY6X5i3aEG5Fytsw3OOjX22eiNkE0HGHz18WGgZ++9DU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676918579553576.186271078846; Mon, 20 Feb 2023 10:42:59 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUB7T-00053T-6C; Mon, 20 Feb 2023 13:42:35 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUB6b-0004d6-P8 for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:47 -0500 Received: from mail-pj1-x1033.google.com ([2607:f8b0:4864:20::1033]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUB6W-0004Cv-3F for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:40 -0500 Received: by mail-pj1-x1033.google.com with SMTP id ei9-20020a17090ae54900b002349a303ca5so2292240pjb.4 for ; Mon, 20 Feb 2023 10:41:33 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id jk20-20020a170903331400b0019258bcf3ffsm1911676plb.56.2023.02.20.10.41.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 10:41:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=EmEW4Ui+jZHyPbqDarHaGkbuRfLpWlEHhDk+zbdrYtU=; b=KE5M8PODToCBTR0pToRAN7nDbgnF1tXZafIr6ziEOERldIy2eX9sgesXst5p28ailw Prfkwsc3w2oW6vbTT9P/MQLUzp6Dho+8+9P/LhJIdzs2aQQfyYo/F/5pySWBQ8eLSwUb FILHc0E4kiPkMvm6EqvXHO1TpyBwN44Xkl9dEjYrFGvwR5/4oKLyt36+ikFBWaV8CY2D 6Cd4sePgOr8S6dEa4fgoGgO8czdch634Cv7PkoLLvX6rIG5ENisoNt507lctVJ+9QGpY bpk02/W6ANQmrfQfXzh7W8XA5ZYGCXg5XrJa/AAcRTCZNQl8HvuCs/apK707u991lh9q J8GA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=EmEW4Ui+jZHyPbqDarHaGkbuRfLpWlEHhDk+zbdrYtU=; b=L3shCC+cf0X5/uHt8QNlMrN8jrUt4EACxCQBX3ntea4c7SaNYe/L4iWHPO+0uqOlUt ggI+BXrbAbIloSFs3h91zFdBiKxFZvTABnnyPsXQeeq7wTAD5ROIkBWKquJi/XcjJS0Y hMOg322vYXp+LFvQliaRndkrCQQbpwmjKoP5n4VkirjwfO9vW6e6FE7crWf3t/40CpbD k0p/ZXxwWZOMq08F0Y2LZlC5R9PkyQZ/bjjfeWNwo5GxyrCMfhCQPmaHfAodygvUALwE lxyodzIpHbVwkIfn1fctWSBOQNcL/r+dMsNk73clQNcbqEcg7FC+sYo9WtuEmprwWkcN tvxQ== X-Gm-Message-State: AO0yUKXVKn2nD/k5EE7Zrkm9xSgdtBsJgDjMieP0Wn/Y8usnE/k+MAd6 VHtIx6qELLDOFNu6qo5GLbQmmW1VJAvFjFob50s= X-Google-Smtp-Source: AK7set8usoZarRj4DsjxS3h/q466zhS5tc+7SH/nRn2REiliVX5ycpiKkvkxk8E/eBQwhKboX+T76Q== X-Received: by 2002:a17:902:ea12:b0:19a:727e:d4f3 with SMTP id s18-20020a170902ea1200b0019a727ed4f3mr4558619plg.5.1676918492223; Mon, 20 Feb 2023 10:41:32 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: thuth@redhat.com, qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v4 20/27] target/s390x: Split per_branch Date: Mon, 20 Feb 2023 08:40:45 -1000 Message-Id: <20230220184052.163465-21-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230220184052.163465-1-richard.henderson@linaro.org> References: <20230220184052.163465-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1033; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1033.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1676918581074100003 Content-Type: text/plain; charset="utf-8" Split into per_branch_dest and per_branch_disp, which can be used for direct and indirect. In preperation for TARGET_TB_PCREL, call per_branch_* before indirect branches. Reviewed-by: Ilya Leoshkevich Signed-off-by: Richard Henderson --- target/s390x/tcg/translate.c | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/target/s390x/tcg/translate.c b/target/s390x/tcg/translate.c index afa5f56fc4..878b220bf6 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -362,21 +362,25 @@ static inline bool per_enabled(DisasContext *s) #endif } =20 -static void per_branch(DisasContext *s, bool to_next) +static void per_branch_dest(DisasContext *s, TCGv_i64 dest) { #ifndef CONFIG_USER_ONLY gen_psw_addr_disp(s, gbea, 0); - if (per_enabled(s)) { - if (to_next) { - TCGv_i64 next_pc =3D tcg_temp_new_i64(); + gen_helper_per_branch(cpu_env, gbea, dest); + } +#endif +} =20 - gen_psw_addr_disp(s, next_pc, s->ilen); - gen_helper_per_branch(cpu_env, gbea, next_pc); - tcg_temp_free_i64(next_pc); - } else { - gen_helper_per_branch(cpu_env, gbea, psw_addr); - } +static void per_branch_disp(DisasContext *s, int64_t disp) +{ +#ifndef CONFIG_USER_ONLY + gen_psw_addr_disp(s, gbea, 0); + if (per_enabled(s)) { + TCGv_i64 dest =3D tcg_temp_new_i64(); + gen_psw_addr_disp(s, dest, disp); + gen_helper_per_branch(cpu_env, gbea, dest); + tcg_temp_free_i64(dest); } #endif } @@ -1188,7 +1192,7 @@ struct DisasInsn { static DisasJumpType help_goto_direct(DisasContext *s, int64_t disp) { if (disp =3D=3D s->ilen) { - per_branch(s, true); + per_branch_disp(s, disp); return DISAS_NEXT; } if (use_goto_tb(s, s->base.pc_next + disp)) { @@ -1200,7 +1204,7 @@ static DisasJumpType help_goto_direct(DisasContext *s= , int64_t disp) return DISAS_NORETURN; } else { update_psw_addr_disp(s, disp); - per_branch(s, false); + per_branch_dest(s, psw_addr); return DISAS_PC_UPDATED; } } @@ -1208,7 +1212,7 @@ static DisasJumpType help_goto_direct(DisasContext *s= , int64_t disp) static DisasJumpType help_goto_indirect(DisasContext *s, TCGv_i64 dest) { tcg_gen_mov_i64(psw_addr, dest); - per_branch(s, false); + per_branch_dest(s, psw_addr); return DISAS_PC_UPDATED; } =20 --=20 2.34.1 From nobody Tue May 14 03:45:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1676918703; cv=none; d=zohomail.com; s=zohoarc; b=XcOtgQe0Jn9lmVkedIE/rD19Hd06qXgoUnJbl4lUztDjJh9vC4dIuroeLFihnfnBV9l3bKn7KoFnDn6rAgn093ehxX+r/d999dN5ISKuwM0pLn3AGC4Klpx7HNJobHg6RlqJ0oT2dhMd4BgQcXtWCpWba8js5/qKD/WKYj2bRww= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676918703; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=KFZlwHO4prWAnCAMSFhTLLBR8p62EDJKLKSzIIGOyMU=; b=AI4szRjj9caFeYESy/kNOgCjye+0CqjXIb4d5x+U2h26rI0qGVwaxPNJDA805GNMOHLIONIFcmlZBi+DfYg8/4PfgTKrH198d17UTkCAxTvGQWVkOkY8pN2nKfNSTvuhRbBPTEC87mGNDLMfWZvhafUmnWLTTe5CzwUud5iiGXw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676918703780804.5827738027939; Mon, 20 Feb 2023 10:45:03 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUB87-0005nE-GQ; Mon, 20 Feb 2023 13:43:15 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUB6d-0004et-52 for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:47 -0500 Received: from mail-pl1-x62b.google.com ([2607:f8b0:4864:20::62b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUB6a-0004DU-3o for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:42 -0500 Received: by mail-pl1-x62b.google.com with SMTP id u17so2574163plh.6 for ; Mon, 20 Feb 2023 10:41:35 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id jk20-20020a170903331400b0019258bcf3ffsm1911676plb.56.2023.02.20.10.41.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 10:41:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=KFZlwHO4prWAnCAMSFhTLLBR8p62EDJKLKSzIIGOyMU=; b=cQVpIT2K3kOstQbR4hJGNvQdEJEKl24vzLdXWvcTxi1sY1/W73pI3rPIcuTGHfL6n/ RHPa0888LqYAbCefA7SfhVEtd+JtU6600HqskkfXDkNw0kBDTsI02fDd0Ri+GVQGj1fU q9maHmbYURgJkO2C4L2+cPTYhMHJhXTSn/P1W0Bhpy1fKnZGyVbBzlMtmPl240dpjD0q FUXJfS/1AuqD99lHrixLXc/6mguKyOg1q52wINzKQZQ9J1HHMZpduJDf4ID5TL8wR65R qFtALQunQW/WK95DI9ptZH40O4QM3mNFJ4KZiOjkhsrrZIO7IFp19ua7Z79qb3Kmzie9 EU+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=KFZlwHO4prWAnCAMSFhTLLBR8p62EDJKLKSzIIGOyMU=; b=DoZQ/T9qsm17EheTZrUA4uC1sn8Ak4kgqPdo587gg/St69xbwU/h58lxWYngf/Gz6J DQqxtMgLWjjFK0QXJLyfjKp62dV6Mj24CQmaaT1w9Tx+xmAhxpn6RZEZdPMLsJO7OvsR bVnkhSlVfVh2Ld5RiMq4ICuOXwUsC7MXYiiXRq4F9J5RtJK/fV1aQkSzBrLERgMNIJ1F J3sXQMpxFYs4Wa+AWSIVqk+lRUGvT5zkXtRace1+FTCmZZriAJsGnIBINhyRjQT7rSoo Ijcaex6NxhXm/QGz4Nr57TJc0XhwAcsK00MjHkew7RAAWbP80YRnJCi/RPE6ShV+jcsY Sqrw== X-Gm-Message-State: AO0yUKVebnBSIlS4SObHg+SegL71dvt5QDxaZIfXwJ0uzwRzud9tms5F TiE1+14FNE1C8yrMI3tgScYgg5ZM6yypVQRwdU8= X-Google-Smtp-Source: AK7set82ohyFyGuVjVinGYVhVKqgQWa20Q/1qsaGczpkDNZD/2DPfiNiM1dnaDKFb0PXwh8vlBQ7fQ== X-Received: by 2002:a17:903:5cf:b0:19a:b664:78d with SMTP id kf15-20020a17090305cf00b0019ab664078dmr3128932plb.60.1676918494666; Mon, 20 Feb 2023 10:41:34 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: thuth@redhat.com, qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v4 21/27] target/s390x: Simplify help_branch Date: Mon, 20 Feb 2023 08:40:46 -1000 Message-Id: <20230220184052.163465-22-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230220184052.163465-1-richard.henderson@linaro.org> References: <20230220184052.163465-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62b; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1676918705599100001 Content-Type: text/plain; charset="utf-8" Always use a tcg branch, instead of movcond. The movcond was not a bad idea before PER was added, but since then we have either 2 or 3 actions to perform on each leg of the branch, and multiple movcond is inefficient. Reorder the taken branch to be fallthrough of the tcg branch. This will be helpful later with TARGET_TB_PCREL. Reviewed-by: Ilya Leoshkevich Signed-off-by: Richard Henderson --- target/s390x/tcg/translate.c | 154 ++++++++++------------------------- 1 file changed, 44 insertions(+), 110 deletions(-) diff --git a/target/s390x/tcg/translate.c b/target/s390x/tcg/translate.c index 878b220bf6..4e39cf1646 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -385,28 +385,6 @@ static void per_branch_disp(DisasContext *s, int64_t d= isp) #endif } =20 -static void per_branch_cond(DisasContext *s, TCGCond cond, - TCGv_i64 arg1, TCGv_i64 arg2) -{ -#ifndef CONFIG_USER_ONLY - if (per_enabled(s)) { - TCGLabel *lab =3D gen_new_label(); - tcg_gen_brcond_i64(tcg_invert_cond(cond), arg1, arg2, lab); - - gen_psw_addr_disp(s, gbea, 0); - gen_helper_per_branch(cpu_env, gbea, psw_addr); - - gen_set_label(lab); - } else { - TCGv_i64 pc =3D tcg_temp_new_i64(); - - gen_psw_addr_disp(s, pc, 0); - tcg_gen_movcond_i64(cond, gbea, arg1, arg2, gbea, pc); - tcg_temp_free_i64(pc); - } -#endif -} - static void per_breaking_event(DisasContext *s) { #ifndef CONFIG_USER_ONLY @@ -1221,7 +1199,6 @@ static DisasJumpType help_branch(DisasContext *s, Dis= asCompare *c, { DisasJumpType ret; int64_t disp =3D (int64_t)imm * 2; - uint64_t dest =3D s->base.pc_next + disp; TCGLabel *lab; =20 /* Take care of the special cases first. */ @@ -1251,96 +1228,53 @@ static DisasJumpType help_branch(DisasContext *s, D= isasCompare *c, } } =20 - if (use_goto_tb(s, s->base.pc_next + s->ilen)) { - if (is_imm && use_goto_tb(s, dest)) { - /* Both exits can use goto_tb. */ - update_cc_op(s); + update_cc_op(s); =20 - lab =3D gen_new_label(); - if (c->is_64) { - tcg_gen_brcond_i64(c->cond, c->u.s64.a, c->u.s64.b, lab); - } else { - tcg_gen_brcond_i32(c->cond, c->u.s32.a, c->u.s32.b, lab); - } - - /* Branch not taken. */ - tcg_gen_goto_tb(0); - gen_psw_addr_disp(s, psw_addr, s->ilen); - tcg_gen_exit_tb(s->base.tb, 0); - - /* Branch taken. */ - gen_set_label(lab); - per_breaking_event(s); - tcg_gen_goto_tb(1); - gen_psw_addr_disp(s, psw_addr, disp); - tcg_gen_exit_tb(s->base.tb, 1); - - ret =3D DISAS_NORETURN; - } else { - /* Fallthru can use goto_tb, but taken branch cannot. */ - /* Store taken branch destination before the brcond. This - avoids having to allocate a new local temp to hold it. - We'll overwrite this in the not taken case anyway. */ - if (!is_imm) { - tcg_gen_mov_i64(psw_addr, cdest); - } - - lab =3D gen_new_label(); - if (c->is_64) { - tcg_gen_brcond_i64(c->cond, c->u.s64.a, c->u.s64.b, lab); - } else { - tcg_gen_brcond_i32(c->cond, c->u.s32.a, c->u.s32.b, lab); - } - - /* Branch not taken. */ - update_cc_op(s); - tcg_gen_goto_tb(0); - gen_psw_addr_disp(s, psw_addr, s->ilen); - tcg_gen_exit_tb(s->base.tb, 0); - - gen_set_label(lab); - if (is_imm) { - gen_psw_addr_disp(s, psw_addr, disp); - } - per_breaking_event(s); - ret =3D DISAS_PC_UPDATED; - } - } else { - /* Fallthru cannot use goto_tb. This by itself is vanishingly rar= e. - Most commonly we're single-stepping or some other condition that - disables all use of goto_tb. Just update the PC and exit. */ - - TCGv_i64 next =3D tcg_temp_new_i64(); - - gen_psw_addr_disp(s, next, s->ilen); - if (is_imm) { - cdest =3D tcg_temp_new_i64(); - gen_psw_addr_disp(s, cdest, disp); - } - - if (c->is_64) { - tcg_gen_movcond_i64(c->cond, psw_addr, c->u.s64.a, c->u.s64.b, - cdest, next); - per_branch_cond(s, c->cond, c->u.s64.a, c->u.s64.b); - } else { - TCGv_i32 t0 =3D tcg_temp_new_i32(); - TCGv_i64 t1 =3D tcg_temp_new_i64(); - TCGv_i64 z =3D tcg_constant_i64(0); - tcg_gen_setcond_i32(c->cond, t0, c->u.s32.a, c->u.s32.b); - tcg_gen_extu_i32_i64(t1, t0); - tcg_temp_free_i32(t0); - tcg_gen_movcond_i64(TCG_COND_NE, psw_addr, t1, z, cdest, next); - per_branch_cond(s, TCG_COND_NE, t1, z); - tcg_temp_free_i64(t1); - } - - tcg_temp_free_i64(next); - if (is_imm) { - tcg_temp_free_i64(cdest); - } - ret =3D DISAS_PC_UPDATED; + /* + * Store taken branch destination before the brcond. This + * avoids having to allocate a new local temp to hold it. + * We'll overwrite this in the not taken case anyway. + */ + if (!is_imm) { + tcg_gen_mov_i64(psw_addr, cdest); } =20 + lab =3D gen_new_label(); + if (c->is_64) { + tcg_gen_brcond_i64(tcg_invert_cond(c->cond), + c->u.s64.a, c->u.s64.b, lab); + } else { + tcg_gen_brcond_i32(tcg_invert_cond(c->cond), + c->u.s32.a, c->u.s32.b, lab); + } + + /* Branch taken. */ + if (is_imm) { + gen_psw_addr_disp(s, psw_addr, disp); + } + per_branch_dest(s, psw_addr); + + if (is_imm && use_goto_tb(s, s->base.pc_next + disp)) { + tcg_gen_goto_tb(0); + tcg_gen_exit_tb(s->base.tb, 0); + } else { + tcg_gen_lookup_and_goto_ptr(); + } + + gen_set_label(lab); + + /* Branch not taken. */ + if (use_goto_tb(s, s->base.pc_next + s->ilen)) { + tcg_gen_goto_tb(1); + gen_psw_addr_disp(s, psw_addr, s->ilen); + tcg_gen_exit_tb(s->base.tb, 1); + } else { + gen_psw_addr_disp(s, psw_addr, s->ilen); + tcg_gen_lookup_and_goto_ptr(); + } + + ret =3D DISAS_NORETURN; + egress: free_compare(c); return ret; --=20 2.34.1 From nobody Tue May 14 03:45:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1676918823; cv=none; d=zohomail.com; s=zohoarc; b=VOVkADTjMwclTu5gokWlNO7/EiaCMF5x4TzF0ZVzQCm+Yu5oq473vFOuAQP1VMHsF9JIkBp7H+VnJVE4PbyltMy1cMhSrgpsP5Jbpn12yN2wkkJg78Cu5SoTu2ZWHjXe+Ex/MAnw7xv6ScoDt9qQVl34QT2rS22tHmEGjwtAPc4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676918823; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=yGToGuwwYtvWTL4/oWkEUIL2elnwxjyqoTAnw+xRj6w=; b=Tbpe09Uv33ki/diPPEqbpyJwG5DmUNMpKCtcGpLkb1MR9idqSIti4MUOjN6SoRdNBKWzfgXz2IdFXSUMy6UDebUtFEyEw8B8qns1sfLD96Rg8FdEvTu9pq6lQ6B6PtdcESEI8lZKV9A9MmnHCa/K4qe6NdFiMvYMH5Epe2J925k= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676918823585172.19474539247472; Mon, 20 Feb 2023 10:47:03 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUB8f-0008PP-EX; Mon, 20 Feb 2023 13:43:49 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUB6g-0004fT-Cl for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:49 -0500 Received: from mail-pj1-x102d.google.com ([2607:f8b0:4864:20::102d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUB6b-00045u-SU for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:44 -0500 Received: by mail-pj1-x102d.google.com with SMTP id il18-20020a17090b165200b0023127b2d602so2372672pjb.2 for ; Mon, 20 Feb 2023 10:41:36 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id jk20-20020a170903331400b0019258bcf3ffsm1911676plb.56.2023.02.20.10.41.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 10:41:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=yGToGuwwYtvWTL4/oWkEUIL2elnwxjyqoTAnw+xRj6w=; b=EIu/snbx4VRgsF4sbaczRTcA5TX3pI0SzQqYznmdjkTiFppO5KkrYU+v6lbUYHcsgN HAXlsTcAvZvJFhd36qSz1XYkdmNo7BYL54aA+yC9N5S4vQBo64FqHNhtSuFoI3qERvHg OCbsgkBYWwirwC0CuU8nMABrfTC5fLGCRoP/17UFVuIxVlq1/gIx914ChU/5iAiXfNBw e7qtdoGE2+0tjTa5EkZTRoGnc/AJH5HkG/N5WXHD/WeXOW3r64PlbpIgmW3CosoZkUyc MTWxGJ5fh8kxyqdElc8DmZddZfa1lVfyOcm1rb6N8+ToTsF+8IHMXWXcE/OsyWHDNk+d 7QAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=yGToGuwwYtvWTL4/oWkEUIL2elnwxjyqoTAnw+xRj6w=; b=j2Fyb7OLjRz+S4c1SIAkH0/OTK7WtlfC42t0XkfzE0t2yb3YhGRIOyW//yb3GidVOA Lai1sNmyD4+7nS08XuFvXC/yj66zBP6Vp1kbCqYeWBzmFaAVcX9fLvHLyEW05U06o/jp RajGm5jfZcKIIQmkBfLwBQB3oFmypIji5l2UGzPWoor3zrqmq2vSKZFCkeiJpAg7ecPh lvf8BPncMM/escFzFagXBzLlwB8MX1Z1rUU8ZlXGcnPe17zFIZAQUAqu/9ROO7C3bSXK jyHMB4mi76KCj0/WM4tGMGllImyezgXHkxpxKSZ1i5Oo4+w1/0ZqeJnX1bVh2DrGzAOp 4n4w== X-Gm-Message-State: AO0yUKXahdLYKMbCjDbKtYVMxDVy/+ApW3R52fJrOqaDex4j20L9dN/c D/LbUZ2hbGr/+rlUci1IsX5ZGKDrekVAZ5dEKx0= X-Google-Smtp-Source: AK7set/OAyfnkj3ZWgdrHfa9coLdaJH03j0SFa3Ih2FdbhQ1U/k0bPoa32fAYiVPtn/plKSi+399pA== X-Received: by 2002:a17:903:234b:b0:19a:7f4b:3ef6 with SMTP id c11-20020a170903234b00b0019a7f4b3ef6mr3240792plh.3.1676918496245; Mon, 20 Feb 2023 10:41:36 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: thuth@redhat.com, qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v4 22/27] target/s390x: Split per_breaking_event from per_branch_* Date: Mon, 20 Feb 2023 08:40:47 -1000 Message-Id: <20230220184052.163465-23-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230220184052.163465-1-richard.henderson@linaro.org> References: <20230220184052.163465-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102d; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1676918824267100001 Content-Type: text/plain; charset="utf-8" This allows us to update gbea before other updates to psw_addr, which will be important for TARGET_TB_PCREL. Reviewed-by: Ilya Leoshkevich Signed-off-by: Richard Henderson --- target/s390x/tcg/translate.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/target/s390x/tcg/translate.c b/target/s390x/tcg/translate.c index 4e39cf1646..8fbbbf8bbd 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -365,7 +365,6 @@ static inline bool per_enabled(DisasContext *s) static void per_branch_dest(DisasContext *s, TCGv_i64 dest) { #ifndef CONFIG_USER_ONLY - gen_psw_addr_disp(s, gbea, 0); if (per_enabled(s)) { gen_helper_per_branch(cpu_env, gbea, dest); } @@ -375,7 +374,6 @@ static void per_branch_dest(DisasContext *s, TCGv_i64 d= est) static void per_branch_disp(DisasContext *s, int64_t disp) { #ifndef CONFIG_USER_ONLY - gen_psw_addr_disp(s, gbea, 0); if (per_enabled(s)) { TCGv_i64 dest =3D tcg_temp_new_i64(); gen_psw_addr_disp(s, dest, disp); @@ -1169,13 +1167,14 @@ struct DisasInsn { =20 static DisasJumpType help_goto_direct(DisasContext *s, int64_t disp) { + per_breaking_event(s); + if (disp =3D=3D s->ilen) { per_branch_disp(s, disp); return DISAS_NEXT; } if (use_goto_tb(s, s->base.pc_next + disp)) { update_cc_op(s); - per_breaking_event(s); tcg_gen_goto_tb(0); update_psw_addr_disp(s, disp); tcg_gen_exit_tb(s->base.tb, 0); @@ -1189,6 +1188,7 @@ static DisasJumpType help_goto_direct(DisasContext *s= , int64_t disp) =20 static DisasJumpType help_goto_indirect(DisasContext *s, TCGv_i64 dest) { + per_breaking_event(s); tcg_gen_mov_i64(psw_addr, dest); per_branch_dest(s, psw_addr); return DISAS_PC_UPDATED; @@ -1249,6 +1249,7 @@ static DisasJumpType help_branch(DisasContext *s, Dis= asCompare *c, } =20 /* Branch taken. */ + per_breaking_event(s); if (is_imm) { gen_psw_addr_disp(s, psw_addr, disp); } --=20 2.34.1 From nobody Tue May 14 03:45:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1676918736; cv=none; d=zohomail.com; s=zohoarc; b=KXMIsU6jgG+b+/Hz/Mwy2YWbqcptGaEapeJjCg/PkGs/ZnFyMlXlrE6zv8omoLXMdkzM5fD7dE5Rka0g0tfWL3XB9oLzl2S5EXa4f2jMR/bu8u3nwYkjtZbHHTxtGw90krHBdiFSmZO8bItnPMoCbUvaZnule3HrlDWFTXHAJBI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676918736; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=cyCAXVLuk59H/kOzKITUKZ8TOliuBbhdnYn70YklQIk=; b=SnWtUHsE0gJWyTxO6Vq+tIiHSOqXUaiR+a9Xr5ZKG/Vy7n67GYO9Gc+rnv/W/bcQ5y8X4wZNlm5CSv0CzxgMkm06t5nB5rlyqj3QrWDKDCfUix2ExJI3+b5qIF4Hm6G8PCrS4ZAaTq5lQaGF6c+lCGWaiY2Ih52493xeCL6RL6c= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 16769187363761018.4131208764583; Mon, 20 Feb 2023 10:45:36 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUB84-0005Z4-Ph; Mon, 20 Feb 2023 13:43:12 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUB6d-0004ew-MS for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:47 -0500 Received: from mail-pj1-x1035.google.com ([2607:f8b0:4864:20::1035]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUB6b-00046G-Ci for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:42 -0500 Received: by mail-pj1-x1035.google.com with SMTP id 99so2303355pjz.4 for ; Mon, 20 Feb 2023 10:41:38 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id jk20-20020a170903331400b0019258bcf3ffsm1911676plb.56.2023.02.20.10.41.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 10:41:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=cyCAXVLuk59H/kOzKITUKZ8TOliuBbhdnYn70YklQIk=; b=yeypxRVOtKU15KFfWrff21y2gbV/sOzhvCDSQ/1kHRyH9bNQTR4LNSP1zajfHbRLT7 bpOHYIJyWVhmoS4jDK3YVCeWt0CwdEihwFmsYMD6IZgd0EfjHFtGu0zqtPketTdsHY27 kTJMtZiUbhwqL0//DxA7Rf10m5PQWaoS9fxrCUzncUrR1mgt1FsuurwB+iSVdVslME8K iMKrXpht9UhRJmKaWxPDcw0HBepaYKkSoFZaR8tsOMfPiIzygNrji/Yr9/ZARZQOwMeF 4F2wLzQnsSEQrS5U7llUqYNwf0u5AB9LYKT9EiqcuAv+5TOQ+1lYUaZyeE/6UdNA89CU nz/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=cyCAXVLuk59H/kOzKITUKZ8TOliuBbhdnYn70YklQIk=; b=C+8WuUZt6VvZoSIj/nK0tclgnF/nT2MVb7F5R2BeekKrUTsllN7xPTU+JB06fLYmqO BTl8nPjhU11mW9xuyDX55xxA+JU/v4Hxpsja/LRXG31vH24GTsmGQLo8W2BELrORGELl gSnMSLbGx9TX2Vye3uL+SlrCAM7o55kSGWBz3k6Gpve74KWgr8wHB+NQqyiTqfJ0MyRr gm1I19tmTlitjuogC7O4tB8q6JTXXH0tO6bjFNK/M3bW0mbxs0w2fk6lHx/HwxUJmZq1 5YP32FJQEexTOuiyyPLa7Nfr4+qZfeDstPJTVCY9LaONKc8v/PWH2c/des/Y4GjF8RHU T3ew== X-Gm-Message-State: AO0yUKWmAp4RCW9VMKytrnXz+3m5+P1+2cy4BCz8v5nfmHMBcHq7G3Bk vInjpJlmrQBr3QwAN78f9eQTC07GfcfuAFNAK1M= X-Google-Smtp-Source: AK7set+JNb+zoDodmoB2K7zfhpnTxT8M2j9UD7fPqBlItfSauzcbkiZaJENeHbACTK+qAa2Y3ulTrw== X-Received: by 2002:a17:902:e745:b0:19a:acc2:73e4 with SMTP id p5-20020a170902e74500b0019aacc273e4mr3497979plf.22.1676918498211; Mon, 20 Feb 2023 10:41:38 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: thuth@redhat.com, qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v4 23/27] target/s390x: Remove PER check from use_goto_tb Date: Mon, 20 Feb 2023 08:40:48 -1000 Message-Id: <20230220184052.163465-24-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230220184052.163465-1-richard.henderson@linaro.org> References: <20230220184052.163465-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1035; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1035.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1676918737668100005 Content-Type: text/plain; charset="utf-8" While it is common for the PC update to happen in the shadow of a goto_tb, it is not required to be there. By moving it before the goto_tb, we can also place the call to helper_per_branch there, and then afterward chain to the next tb. Reviewed-by: Ilya Leoshkevich Signed-off-by: Richard Henderson --- target/s390x/tcg/translate.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/target/s390x/tcg/translate.c b/target/s390x/tcg/translate.c index 8fbbbf8bbd..24d8d84727 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -669,9 +669,6 @@ static void gen_op_calc_cc(DisasContext *s) =20 static bool use_goto_tb(DisasContext *s, uint64_t dest) { - if (per_enabled(s)) { - return false; - } return translator_use_goto_tb(&s->base, dest); } =20 @@ -1173,15 +1170,16 @@ static DisasJumpType help_goto_direct(DisasContext = *s, int64_t disp) per_branch_disp(s, disp); return DISAS_NEXT; } + + update_psw_addr_disp(s, disp); + per_branch_dest(s, psw_addr); + if (use_goto_tb(s, s->base.pc_next + disp)) { update_cc_op(s); tcg_gen_goto_tb(0); - update_psw_addr_disp(s, disp); tcg_gen_exit_tb(s->base.tb, 0); return DISAS_NORETURN; } else { - update_psw_addr_disp(s, disp); - per_branch_dest(s, psw_addr); return DISAS_PC_UPDATED; } } --=20 2.34.1 From nobody Tue May 14 03:45:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1676918949; cv=none; d=zohomail.com; s=zohoarc; b=GZ18dVzkWInejRF2BtSgT1DkzpCJDw+e/oce9ZUDoSjpMKIuURs0YWEVVoRIMAHrosUy5iwsbUdffgtru4DRU9ZiUKhxKXFrEDi+Zg3yFLLpFjRrnEQ+G1R37UgpzCgNMDquXRfLiVsGEbfLOQxKDwbVtiTmca4e/xRl0mR6VAw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676918949; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=qoDF/rY8HtyNlykYqkZFXY86Nrt61o0/K7nWThd7Dr8=; b=Stz/0Fljuk1FN1je19bSdaVVRY9j1FXgcUTJW2e/e3sOKCaD5bL8lQ2EnP7H4boLNXx+256gzni2OXMzUcUhP1Mfwwq6Spz1OUkhu7vZEu3i10lj+5BybF7mN3ztFnDmo4ltxpUkd6vq1vaoIfw0Pg1Jy5WL3B6Hf405K7Ni+G0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676918949947956.540593446489; Mon, 20 Feb 2023 10:49:09 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUB8H-00078K-5s; Mon, 20 Feb 2023 13:43:25 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUB6g-0004fS-BR for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:49 -0500 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUB6b-0004Fr-S9 for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:44 -0500 Received: by mail-pl1-x629.google.com with SMTP id p1so465188plg.7 for ; Mon, 20 Feb 2023 10:41:40 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id jk20-20020a170903331400b0019258bcf3ffsm1911676plb.56.2023.02.20.10.41.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 10:41:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=qoDF/rY8HtyNlykYqkZFXY86Nrt61o0/K7nWThd7Dr8=; b=hvKZ9EHh3oPRQ8HtkJH8ytJZqi/cJDNPCaK2KZLK2NinzQ9qrd1aY9Cc++A7OTy7GH xICeDYLv60x4XXBV03p1BNVnlvciDNTMRNBUdkk5MrPvEaCB818AJSgBhP2FsaZZB4Wa C44MJtW+0pFKVLvHALyO8YZfex2rPJyf2hIeOU2ufRP2gNdtyRIhHSjFbyOVH7MZ/evI 20D+nC4OXOM+yN9bma+rdCXkGRlV1t0dGYeHL4721NQqzivSTjDZQ9w1qLHv3YuYJPUn fEvGLva+/zKOvyROhCKbVb8cl3qsPPxHatc7gQlUtt2LaKJ0QIUlDuBkvrXcGF0yQifF eBGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=qoDF/rY8HtyNlykYqkZFXY86Nrt61o0/K7nWThd7Dr8=; b=vIKbql3XcQax+xWcoSirptMwS7UHKB+c2fKF0uJuDiR4nHP3qVRfxFJOaJbKFLiVR+ 5TskbHTJ1l0DT6Ay5hb2/unto2R9246pbQESAX4ZbI9XMCZIyeHsM1Mh5kQ+TDBfDotw zdNwgPRwPeygnArxdaoFpV+d+TefvdpKJLaiZ9C+w44p7/2WVdaB31jU2MhlPJ3gnGAs SlHtAfnGHx3bQilNykFCV9l77Fa5gtNTYmOQXJceC87RNs0CjgkPfMdMC/vCL775w+ji fGU4IWhduaBsYHINprxFSOv9MnyT43eL63m2kUNzcghtLs3BxplaezyCxyRd7jT0SwJT 3lVg== X-Gm-Message-State: AO0yUKViZJHU51mNSZV59BNrxLvBwHoQcT27XUPOQIdM7+b7jFuey4QT PPEyc98YaOJyuqCb855p2U0RkA0Z2xEVjzRubVY= X-Google-Smtp-Source: AK7set8oNSWzu+7eh7aewscZlq6l+T40a+DJZuevyYgXuscLAgolsGkz9F2kzWWeLJzTCkr1wdZd6w== X-Received: by 2002:a17:903:32cf:b0:19a:9686:ea8b with SMTP id i15-20020a17090332cf00b0019a9686ea8bmr2131952plr.28.1676918499833; Mon, 20 Feb 2023 10:41:39 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: thuth@redhat.com, qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v4 24/27] target/s390x: Fix successful-branch PER events Date: Mon, 20 Feb 2023 08:40:49 -1000 Message-Id: <20230220184052.163465-25-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230220184052.163465-1-richard.henderson@linaro.org> References: <20230220184052.163465-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::629; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x629.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1676918950818100001 Content-Type: text/plain; charset="utf-8" From: Ilya Leoshkevich The branching code sets per_perc_atmid, but afterwards it does goto_tb/exit_tb, so per_check_exception() added by translate_one() is not reached. Fix by raising PER exception in per_branch(). Signed-off-by: Ilya Leoshkevich Message-Id: <20221130174610.434590-1-iii@linux.ibm.com> Signed-off-by: Richard Henderson --- target/s390x/tcg/misc_helper.c | 1 + 1 file changed, 1 insertion(+) diff --git a/target/s390x/tcg/misc_helper.c b/target/s390x/tcg/misc_helper.c index 576157b1f3..e5015daf07 100644 --- a/target/s390x/tcg/misc_helper.c +++ b/target/s390x/tcg/misc_helper.c @@ -618,6 +618,7 @@ void HELPER(per_branch)(CPUS390XState *env, uint64_t fr= om, uint64_t to) || get_per_in_range(env, to)) { env->per_address =3D from; env->per_perc_atmid =3D PER_CODE_EVENT_BRANCH | get_per_atmid(= env); + tcg_s390_program_interrupt(env, PGM_PER, GETPC()); } } } --=20 2.34.1 From nobody Tue May 14 03:45:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1676918643; cv=none; d=zohomail.com; s=zohoarc; b=h9GxBT6OEihy1hMoxhVhlp22oRJ5nPUJgxjJGY3/yqOV/noB6mTaYvx/NH/Q1KnDnqjrQg4i6jbdZDkuFZXJWL7t04Kyqzs3hN9pz1m47tJw/9sO9AdVwBIlonfhelVbEtwW23C3cyX4q3ryZEnE/BvdsO1TLwgw6md594EbkD4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676918643; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ZWlppU2XNhFXTdVt0C0CpRj3rW11FE4bGKcS7c5hawE=; b=GrAkkK4DXwz2SXmn/mvNEstEKtwUu66GB3ZO1d3IIWsG5CDDGIMEpEjLN1g8R5IJ0djnvQTLj5sSndiNp0UCyIc68DBjFdksyOmSZ7+n6zIDAdF+4uhkbUctgoLd386+cXmGl6WP96X0923QTmxxsizSFq4+fEEkUTDOR08nNYg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 16769186432781020.1439762331374; Mon, 20 Feb 2023 10:44:03 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUB8C-0006Lj-2f; Mon, 20 Feb 2023 13:43:20 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUB6g-0004fW-Ig for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:49 -0500 Received: from mail-pl1-x632.google.com ([2607:f8b0:4864:20::632]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUB6c-00045M-DB for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:45 -0500 Received: by mail-pl1-x632.google.com with SMTP id t14so2810258plo.2 for ; Mon, 20 Feb 2023 10:41:41 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id jk20-20020a170903331400b0019258bcf3ffsm1911676plb.56.2023.02.20.10.41.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 10:41:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ZWlppU2XNhFXTdVt0C0CpRj3rW11FE4bGKcS7c5hawE=; b=YkXS++rAzG+g59bE2dOEeHYSr2ib3vIn6M8PbG1sw+iGMkNNzopHMgNyoL2qMOyWip 4qG5XY3NaHFqMgsDx/eSKy2dZKT/bpvj0LCBoOdZ4PR+3euBOBHWH1pDJDiWZ2N48EO1 KIDhHSNwrs1w/BeqCqcgk854qxQWX1kgPBNSVWSYH8A/f0ugcJd0FUwujwmsJOeIws8k dFCsnDC4CiRQzjdfCq82Kgu9PQlRbbjTls33L8UesrpVzflKy4XZw9zSVXYf7rASjZkC 4y36VJtTL3jTmd+NkV6F5oqna6fsQpnXpsbWTK2EGJCjOEvlW7JlvXKzKZ3IGdqFVOQI 5BFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZWlppU2XNhFXTdVt0C0CpRj3rW11FE4bGKcS7c5hawE=; b=o+Ro2UZ7LVWn9rRHUUoQDG+oNx9RsNiOH4S/Vz8f79Jr49zSCoVGLhKco5tnE2ffsu cySdVuX6Cpqt789muRMdCYTzwKU1IAFJvFFLZOoj3fWxqXOs/t3ODM6sqiqd6WfqFtRH FF0x1RBTTD63XAKT9EhbP7bm5bN5bHrgOKPNDLt/uxDt6osXfFlzpsG154bbLCjSW/7Q HacdC0Vh0/M6FnooFuXLx9F1XJeitRc6hs37cGkuU2et3dlHEZe9tDJoS/Q4JBo1KOs1 G7U+MCcT33opS/DVj/5vBMNoZ9E7HDmc6z/ouSSsdjrK/VKDia/v9sb8SyoMeCQmfe6q 5CyQ== X-Gm-Message-State: AO0yUKULCFoD6t9PUmFIjCnotmHyjQoHN23ZDDe6FGE2O2eT9t5nhzPb UHNYhwz5LK3GqWhvNEdb9vCm7hcie/2d7ud4KRs= X-Google-Smtp-Source: AK7set/fOJAVGy8gfW1fq3EOGvPoM+5YRWCIIA2wQ33lXhECd3k0v7WhvOcW9Ieq+l7WPSnIz3xxrQ== X-Received: by 2002:a17:902:fa0d:b0:199:11c3:cc4f with SMTP id la13-20020a170902fa0d00b0019911c3cc4fmr1542500plb.44.1676918501653; Mon, 20 Feb 2023 10:41:41 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: thuth@redhat.com, qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v4 25/27] tests/tcg/s390x: Add per.S Date: Mon, 20 Feb 2023 08:40:50 -1000 Message-Id: <20230220184052.163465-26-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230220184052.163465-1-richard.henderson@linaro.org> References: <20230220184052.163465-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::632; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x632.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1676918645196100007 Content-Type: text/plain; charset="utf-8" From: Ilya Leoshkevich Add a small test to avoid regressions. Signed-off-by: Ilya Leoshkevich Message-Id: <20221130174610.434590-2-iii@linux.ibm.com> Signed-off-by: Richard Henderson --- tests/tcg/s390x/Makefile.softmmu-target | 1 + tests/tcg/s390x/per.S | 55 +++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 tests/tcg/s390x/per.S diff --git a/tests/tcg/s390x/Makefile.softmmu-target b/tests/tcg/s390x/Make= file.softmmu-target index 725b6c598d..c286d22a9f 100644 --- a/tests/tcg/s390x/Makefile.softmmu-target +++ b/tests/tcg/s390x/Makefile.softmmu-target @@ -9,3 +9,4 @@ QEMU_OPTS=3D-action panic=3Dexit-failure -kernel TESTS +=3D unaligned-lowcore TESTS +=3D bal TESTS +=3D sam +TESTS +=3D per diff --git a/tests/tcg/s390x/per.S b/tests/tcg/s390x/per.S new file mode 100644 index 0000000000..02f8422c44 --- /dev/null +++ b/tests/tcg/s390x/per.S @@ -0,0 +1,55 @@ +#define N_ITERATIONS 10 + + .org 0x8d +ilc: + .org 0x8e +program_interruption_code: + .org 0x96 +per_code: + .org 0x150 +program_old_psw: + .org 0x1d0 /* program new PSW */ + .quad 0,pgm_handler + .org 0x200 /* lowcore padding */ + + .globl _start +_start: + lpswe per_on_psw +start_per: + lghi %r0,N_ITERATIONS + xgr %r1,%r1 + lctlg %c9,%c11,per_on_regs +loop: + brct %r0,loop + lctlg %c9,%c11,per_off_regs + cgijne %r1,N_ITERATIONS-1,fail /* expected number of events? */ + lpswe success_psw +fail: + lpswe failure_psw + +pgm_handler: + chhsi program_interruption_code,0x80 /* PER event? */ + jne fail + cli per_code,0x80 /* successful-branching event? */ + jne fail + la %r1,1(%r1) /* increment event counter */ + mvc return_psw(8),program_old_psw + lg %r3,program_old_psw+8 + llgc %r2,ilc + sgr %r3,%r2 /* rewind PSW */ + stg %r3,return_psw+8 + lpswe return_psw + + .align 8 +per_on_psw: + .quad 0x4000000000000000,start_per +per_on_regs: + .quad 0x80000000,0,-1 /* successful-branching everywhere = */ +per_off_regs: + .quad 0,0,0 +return_psw: + .quad 0,0 +success_psw: + .quad 0x2000000000000,0xfff /* see is_special_wait_psw() */ +failure_psw: + .quad 0x2000000000000,0 /* disabled wait */ --=20 2.34.1 From nobody Tue May 14 03:45:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1676919006; cv=none; d=zohomail.com; s=zohoarc; b=g3vpzT8qVnLZ+m85UQ6fLswmT1EqZxnG/VET5Bp9UPHooULlKT7y2zCLXrk1TqpxcZNyt3ei54M/vZ1Z9LDdNQcYwuquDG+wFmDt0CLUfsOJVu2cL5HPf5tJVTIqaKXgOz7zoO5MXWuR8IeOv/Hoc8R5ewsBtYMMPAVprmAD6T8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676919006; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=zXucR7EhGSIkydzJkgAPzsrJnH+F7Rth0vxWHmdJQnQ=; b=dVgcPcOlOvSoLNwawaS3SWtKgMWUM89ifTa34V/eJUKlmYKHH7XS2mcvewi0UsoD/SV54nPpL/xYpUdOOOCbSkdXk8bYoBldxY9P9om/WEid3e/zkG0T6jUm7B71w1nDAYkxA/lNLeD3lbe9pNpGDcGsWs2CZ2dGqyjmAoKsBe4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676919006959877.4799599158581; Mon, 20 Feb 2023 10:50:06 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUB8d-0008AT-Id; Mon, 20 Feb 2023 13:43:47 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUB6h-0004fs-Hg for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:49 -0500 Received: from mail-pj1-x102d.google.com ([2607:f8b0:4864:20::102d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUB6f-00045g-1W for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:47 -0500 Received: by mail-pj1-x102d.google.com with SMTP id v3-20020a17090a6b0300b002341a2656e5so2185771pjj.1 for ; Mon, 20 Feb 2023 10:41:43 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id jk20-20020a170903331400b0019258bcf3ffsm1911676plb.56.2023.02.20.10.41.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 10:41:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=zXucR7EhGSIkydzJkgAPzsrJnH+F7Rth0vxWHmdJQnQ=; b=bDSr6QIzXMYj043tHO5s67GZFOqATw1crtbpC1JPqXHxNpPvvmLCKZASbvkrMcRUhW P3yGLiMObTSAxTZvcyZIwQc7+cXp5BJEbmeuyhUnW6VaOj5ugP0wYzOePiZhGjDJDqTm MznwTOySea9C64uDUSM9uTaBVWp4kbOyL1jqAQdA1d8zA4/6/VF97y8yMQlSiFs5zWO2 PINT94RWEZwwT0T2m24dbOtIPOruywBHn3dUEylNsLVemqC+1z90eNCHtlFyWMjwqWOx 6t0WiStzVTztOhTiCcHqrKJiw9suDsa7NZ7cPzYKtyjpYmNuy5B+KFlUexOw/c2I53Bw nOVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=zXucR7EhGSIkydzJkgAPzsrJnH+F7Rth0vxWHmdJQnQ=; b=Q9ENZmwH14/xfq//X/cwA9CkzD/SW82VHkdTEid7rMfxKWudGMX/nQ+IWaLPoHbDY0 mQS3fNPqzjYsNnXjyAeBuuOPsrhNHAtB5XPVOkhqxe2+F20G0ZCwJ4OXVG2RwmQ6sGLr mkGyJTn+kMVPtHJw4+jxE/8zmvCkIH3CWj/+hvXHwihyFRq3o2DLAXd3gmb0H8rSwQ5n 7gURPLn3qO9Y2avQb/I9OSWqSwWjEr6fBya/J0ZcSjcgZs6Q7A5GkU8XUBYdwH22IWry HkfQjW9h+aKRsJ/b7lvGzzpNkPYgFuKJB7NQjDTvuOhy4bA/qz02vI5LKMWbZgVL1awG sxwA== X-Gm-Message-State: AO0yUKVikc2IfUUD9J+6EB4mE3OWbQzwZKGGij8BjchAsQ9OCJvf049O Lzvs3S2xFUqrN1agFuMM4KLJ5Ua/79yJc7iM9CM= X-Google-Smtp-Source: AK7set8pmNDRep2y0jcsL6Jl22XVsFXhpHHT+yNNNcQcVQuq9s3/oCoqEwKs+WPk8x3Qwu88DADxYA== X-Received: by 2002:a17:902:e945:b0:19a:9a66:9030 with SMTP id b5-20020a170902e94500b0019a9a669030mr970200pll.4.1676918503242; Mon, 20 Feb 2023 10:41:43 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: thuth@redhat.com, qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v4 26/27] target/s390x: Pass original r2 register to BCR Date: Mon, 20 Feb 2023 08:40:51 -1000 Message-Id: <20230220184052.163465-27-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230220184052.163465-1-richard.henderson@linaro.org> References: <20230220184052.163465-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102d; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1676919009088100001 Content-Type: text/plain; charset="utf-8" We do not modify any general-purpose registers in BCR, which means that we may be able to avoid saving the value across a branch. Reviewed-by: Ilya Leoshkevich Signed-off-by: Richard Henderson --- target/s390x/tcg/insn-data.h.inc | 2 +- target/s390x/tcg/translate.c | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/target/s390x/tcg/insn-data.h.inc b/target/s390x/tcg/insn-data.= h.inc index 9d2d35f084..bdfc09db3e 100644 --- a/target/s390x/tcg/insn-data.h.inc +++ b/target/s390x/tcg/insn-data.h.inc @@ -121,7 +121,7 @@ /* BRANCH INDIRECT ON CONDITION */ C(0xe347, BIC, RXY_b, MIE2,0, m2_64w, 0, 0, bc, 0) /* BRANCH ON CONDITION */ - C(0x0700, BCR, RR_b, Z, 0, r2_nz, 0, 0, bc, 0) + C(0x0700, BCR, RR_b, Z, 0, r2_o_nz, 0, 0, bc, 0) C(0x4700, BC, RX_b, Z, 0, a2, 0, 0, bc, 0) /* BRANCH RELATIVE ON CONDITION */ C(0xa704, BRC, RI_c, Z, 0, 0, 0, 0, bc, 0) diff --git a/target/s390x/tcg/translate.c b/target/s390x/tcg/translate.c index 24d8d84727..e4db5f1c02 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -5754,6 +5754,16 @@ static void in2_r2_nz(DisasContext *s, DisasOps *o) } #define SPEC_in2_r2_nz 0 =20 +static void in2_r2_o_nz(DisasContext *s, DisasOps *o) +{ + int r2 =3D get_field(s, r2); + if (r2 !=3D 0) { + o->in2 =3D regs[r2]; + o->g_in2 =3D true; + } +} +#define SPEC_in2_r2_o_nz 0 + static void in2_r2_8s(DisasContext *s, DisasOps *o) { o->in2 =3D tcg_temp_new_i64(); --=20 2.34.1 From nobody Tue May 14 03:45:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1676918644; cv=none; d=zohomail.com; s=zohoarc; b=aneuZmLSrcBmday5j22dISioadp6kaHIgLDkacm4w0bDWVpQDpHS9tpf8tqki4b/bG+o7YOfCpB1xXJb/ZBOGy2cO7EjevhCst6JKzVVI/PG9v3qJQKCWnl1qgBCAriAm8pK4T8ITVb4NbqIxP/LppFhbovsCyzzAJ8fgBPqk5M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676918644; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=nhcflml4JRvY7oryEDQJR+jOvLdQs2W3Z2C+LbDJ1BM=; b=eqPaxK1YsHCAUmMPE8gvvYH3RoMxJtRirsbZBDa8qtAx/IYoaoYS67iiDnFzNRNLDCzbddQQ1J9P30le9LeovkzwJI8yD4+RxtifaVwHyLxflCk2vY5dIExOmfuuMmvqp5NXQjnUdU9QLNPajA3nUyspK8Suhmeh5/2vIUb7Nok= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676918644448109.09089875319125; Mon, 20 Feb 2023 10:44:04 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUB8G-0006yc-5R; Mon, 20 Feb 2023 13:43:24 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUB6k-0004jp-0k for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:50 -0500 Received: from mail-pl1-x634.google.com ([2607:f8b0:4864:20::634]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUB6g-0004HV-Aw for qemu-devel@nongnu.org; Mon, 20 Feb 2023 13:41:48 -0500 Received: by mail-pl1-x634.google.com with SMTP id s5so2424396plg.0 for ; Mon, 20 Feb 2023 10:41:45 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id jk20-20020a170903331400b0019258bcf3ffsm1911676plb.56.2023.02.20.10.41.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 10:41:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=nhcflml4JRvY7oryEDQJR+jOvLdQs2W3Z2C+LbDJ1BM=; b=IEIzH0rIvFf92LFH1hJ1HGSmkgBLjZKvt8aG+VBE1PbsmUzda5pKy9nLYpIysf923v jt9bN59f8hYERM93RDZ6GiCzybAC0gTUujBxLLSJA4zLL5AwAraQ3Nfg1WfE9KjFxTOv DVox7THA7/Ypw/C+a5EMaQ60Wj8VMITM9O3pXBhaSo+cKPQIUvVawwZ1p37iYZcADQeC Vh2iFdSYFshFUxHh0KgVEW1mdEBkmICi3g/Si90Iu3n4L56rjmJ5EYidbd1noXI8yKp3 1bPIEpFXySISkjbd33AUbrFGr6W4+4hzZjexYuutVAvTtgzOJnYFzcdYu38DyrxXroH2 nUbA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nhcflml4JRvY7oryEDQJR+jOvLdQs2W3Z2C+LbDJ1BM=; b=irs+hT162O5CfdFbljOADNllnLlkyrUPCf/XhCrMBrewkNlvgeEbpvvNPKkb+vozFz 282wKrlbkfs/KW1M9BiwH16LmLFe1+1eDfPRYbHB3U17O/tMroLFkG4wcfcqB7FX5pL4 ZTqmK3H4sZUizpW5EHuEHchpUJ+xBqsOqU8bR7v4ZlvRY53eIoVn2tH3mCnG7YjbyZmB 2ATdQGrlsO/9pAcEmbOhhW0F39Y8u0c2aOLFSLY/TTAUHevPjqutY7wvsh7YPm/jtHkT fWsboWxrNqbybQBBRcn7KawMKpOZVG433kI/DBKzn2Sj8DxGEig8MM4QJTg+RWD6cvCH MSHA== X-Gm-Message-State: AO0yUKXHHDFnQuzZSOgVV8+B5mCDyduernI/lM05EvhuUOGTRcltzysi J3XH+IR9u5vKPpQyE2ml7gFQF7HM/YzSwLrau+g= X-Google-Smtp-Source: AK7set90OnXRIMCC3UbDQura0xuzUGoesBktKyhbKoln8tuC+dmYBZHUikJB3Ktazls3TMUNrafl+w== X-Received: by 2002:a17:902:e74f:b0:199:2e77:fe56 with SMTP id p15-20020a170902e74f00b001992e77fe56mr4502851plf.52.1676918504980; Mon, 20 Feb 2023 10:41:44 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: thuth@redhat.com, qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v4 27/27] target/s390x: Enable TARGET_TB_PCREL Date: Mon, 20 Feb 2023 08:40:52 -1000 Message-Id: <20230220184052.163465-28-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230220184052.163465-1-richard.henderson@linaro.org> References: <20230220184052.163465-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::634; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x634.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1676918645209100008 Content-Type: text/plain; charset="utf-8" Reviewed-by: Ilya Leoshkevich Signed-off-by: Richard Henderson --- target/s390x/cpu-param.h | 4 ++ target/s390x/cpu.c | 12 +++++ target/s390x/tcg/translate.c | 86 +++++++++++++++++++++++------------- 3 files changed, 71 insertions(+), 31 deletions(-) diff --git a/target/s390x/cpu-param.h b/target/s390x/cpu-param.h index bf951a002e..52bb95de57 100644 --- a/target/s390x/cpu-param.h +++ b/target/s390x/cpu-param.h @@ -14,4 +14,8 @@ #define TARGET_VIRT_ADDR_SPACE_BITS 64 #define NB_MMU_MODES 4 =20 +#ifndef CONFIG_USER_ONLY +# define TARGET_TB_PCREL 1 +#endif + #endif diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c index b10a8541ff..933ff06395 100644 --- a/target/s390x/cpu.c +++ b/target/s390x/cpu.c @@ -37,6 +37,7 @@ #ifndef CONFIG_USER_ONLY #include "sysemu/reset.h" #endif +#include "exec/exec-all.h" =20 #define CR0_RESET 0xE0UL #define CR14_RESET 0xC2000000UL; @@ -83,6 +84,16 @@ uint64_t s390_cpu_get_psw_mask(CPUS390XState *env) return r; } =20 +static void s390_cpu_synchronize_from_tb(CPUState *cs, + const TranslationBlock *tb) +{ + /* The program counter is always up to date with TARGET_TB_PCREL. */ + if (!TARGET_TB_PCREL) { + S390CPU *cpu =3D S390_CPU(cs); + cpu->env.psw.addr =3D tb_pc(tb); + } +} + static void s390_cpu_set_pc(CPUState *cs, vaddr value) { S390CPU *cpu =3D S390_CPU(cs); @@ -274,6 +285,7 @@ static void s390_cpu_reset_full(DeviceState *dev) =20 static const struct TCGCPUOps s390_tcg_ops =3D { .initialize =3D s390x_translate_init, + .synchronize_from_tb =3D s390_cpu_synchronize_from_tb, .restore_state_to_opc =3D s390x_restore_state_to_opc, =20 #ifdef CONFIG_USER_ONLY diff --git a/target/s390x/tcg/translate.c b/target/s390x/tcg/translate.c index e4db5f1c02..a016d23d53 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -139,6 +139,7 @@ struct DisasContext { DisasContextBase base; const DisasInsn *insn; TCGOp *insn_start; + target_ulong pc_save; DisasFields fields; uint64_t ex_value; uint32_t ilen; @@ -163,29 +164,6 @@ static uint64_t inline_branch_hit[CC_OP_MAX]; static uint64_t inline_branch_miss[CC_OP_MAX]; #endif =20 -static void gen_psw_addr_disp(DisasContext *s, TCGv_i64 dest, int64_t disp) -{ - tcg_gen_movi_i64(dest, s->base.pc_next + disp); -} - -static void pc_to_link_info(TCGv_i64 out, DisasContext *s) -{ - TCGv_i64 tmp; - - if (s->base.tb->flags & FLAG_MASK_64) { - gen_psw_addr_disp(s, out, s->ilen); - return; - } - - tmp =3D tcg_temp_new_i64(); - gen_psw_addr_disp(s, tmp, s->ilen); - if (s->base.tb->flags & FLAG_MASK_32) { - tcg_gen_ori_i64(tmp, tmp, 0x80000000); - } - tcg_gen_deposit_i64(out, out, tmp, 0, 32); - tcg_temp_free_i64(tmp); -} - static TCGv_i64 psw_addr; static TCGv_i64 psw_mask; static TCGv_i64 gbea; @@ -348,9 +326,39 @@ static void return_low128(TCGv_i64 dest) tcg_gen_ld_i64(dest, cpu_env, offsetof(CPUS390XState, retxl)); } =20 +static void gen_psw_addr_disp(DisasContext *s, TCGv_i64 dest, int64_t disp) +{ + assert(s->pc_save !=3D -1); + if (TARGET_TB_PCREL) { + disp +=3D s->base.pc_next - s->pc_save; + tcg_gen_addi_i64(dest, psw_addr, disp); + } else { + tcg_gen_movi_i64(dest, s->base.pc_next + disp); + } +} + +static void pc_to_link_info(TCGv_i64 out, DisasContext *s) +{ + TCGv_i64 tmp; + + if (s->base.tb->flags & FLAG_MASK_64) { + gen_psw_addr_disp(s, out, s->ilen); + return; + } + + tmp =3D tcg_temp_new_i64(); + gen_psw_addr_disp(s, tmp, s->ilen); + if (s->base.tb->flags & FLAG_MASK_32) { + tcg_gen_ori_i64(tmp, tmp, 0x80000000); + } + tcg_gen_deposit_i64(out, out, tmp, 0, 32); + tcg_temp_free_i64(tmp); +} + static void update_psw_addr_disp(DisasContext *s, int64_t disp) { gen_psw_addr_disp(s, psw_addr, disp); + s->pc_save =3D s->base.pc_next + disp; } =20 static inline bool per_enabled(DisasContext *s) @@ -1188,6 +1196,7 @@ static DisasJumpType help_goto_indirect(DisasContext = *s, TCGv_i64 dest) { per_breaking_event(s); tcg_gen_mov_i64(psw_addr, dest); + s->pc_save =3D -1; per_branch_dest(s, psw_addr); return DISAS_PC_UPDATED; } @@ -1197,6 +1206,7 @@ static DisasJumpType help_branch(DisasContext *s, Dis= asCompare *c, { DisasJumpType ret; int64_t disp =3D (int64_t)imm * 2; + TCGv_i64 cdest_save =3D NULL; TCGLabel *lab; =20 /* Take care of the special cases first. */ @@ -1229,12 +1239,12 @@ static DisasJumpType help_branch(DisasContext *s, D= isasCompare *c, update_cc_op(s); =20 /* - * Store taken branch destination before the brcond. This - * avoids having to allocate a new local temp to hold it. - * We'll overwrite this in the not taken case anyway. + * Save taken branch destination across the brcond if required. */ if (!is_imm) { - tcg_gen_mov_i64(psw_addr, cdest); + cdest_save =3D tcg_temp_local_new_i64(); + tcg_gen_mov_i64(cdest_save, cdest); + cdest =3D cdest_save; } =20 lab =3D gen_new_label(); @@ -1250,6 +1260,11 @@ static DisasJumpType help_branch(DisasContext *s, Di= sasCompare *c, per_breaking_event(s); if (is_imm) { gen_psw_addr_disp(s, psw_addr, disp); + } else { + tcg_gen_mov_i64(psw_addr, cdest); + } + if (cdest_save) { + tcg_temp_free_i64(cdest_save); } per_branch_dest(s, psw_addr); =20 @@ -1263,15 +1278,15 @@ static DisasJumpType help_branch(DisasContext *s, D= isasCompare *c, gen_set_label(lab); =20 /* Branch not taken. */ + gen_psw_addr_disp(s, psw_addr, s->ilen); if (use_goto_tb(s, s->base.pc_next + s->ilen)) { tcg_gen_goto_tb(1); - gen_psw_addr_disp(s, psw_addr, s->ilen); tcg_gen_exit_tb(s->base.tb, 1); } else { - gen_psw_addr_disp(s, psw_addr, s->ilen); tcg_gen_lookup_and_goto_ptr(); } =20 + s->pc_save =3D -1; ret =3D DISAS_NORETURN; =20 egress: @@ -6523,6 +6538,7 @@ static void s390x_tr_init_disas_context(DisasContextB= ase *dcbase, CPUState *cs) =20 /* Note cpu_get_tb_cpu_state asserts PC is masked for the mode. */ =20 + dc->pc_save =3D dc->base.pc_first; dc->cc_op =3D CC_OP_DYNAMIC; dc->ex_value =3D dc->base.tb->cs_base; dc->exit_to_mainloop =3D per_enabled(dc) || dc->ex_value; @@ -6535,9 +6551,13 @@ static void s390x_tr_tb_start(DisasContextBase *db, = CPUState *cs) static void s390x_tr_insn_start(DisasContextBase *dcbase, CPUState *cs) { DisasContext *dc =3D container_of(dcbase, DisasContext, base); + target_ulong pc_arg =3D dc->base.pc_next; =20 + if (TARGET_TB_PCREL) { + pc_arg &=3D ~TARGET_PAGE_MASK; + } /* Delay the set of ilen until we've read the insn. */ - tcg_gen_insn_start(dc->base.pc_next, dc->cc_op, 0); + tcg_gen_insn_start(pc_arg, dc->cc_op, 0); dc->insn_start =3D tcg_last_op(); } =20 @@ -6631,7 +6651,11 @@ void s390x_restore_state_to_opc(CPUState *cs, CPUS390XState *env =3D &cpu->env; int cc_op =3D data[1]; =20 - env->psw.addr =3D data[0]; + if (TARGET_TB_PCREL) { + env->psw.addr =3D (env->psw.addr & TARGET_PAGE_MASK) | data[0]; + } else { + env->psw.addr =3D data[0]; + } =20 /* Update the CC opcode if it is not already up-to-date. */ if ((cc_op !=3D CC_OP_DYNAMIC) && (cc_op !=3D CC_OP_STATIC)) { --=20 2.34.1