From nobody Sat May 18 18:02:05 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=1670772791; cv=none; d=zohomail.com; s=zohoarc; b=ibK8YYCEFwK4xkWLwMRnRJcAqq4GoKUq+GJIW1ASwkQNBqc7Y7CYUZp7HvLY/UqLiKJc/2YglVZjA8k0zNNpbBM3oLj4k9DAaq1NMFGXcZhQm9cM1JIQP+wMJm5JsIyVHDWFSJ0INuP/wU6+SMns6WBTuFZOKA2iT2Vg22MnuYw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1670772791; 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=qxVibr8Xmoa/OfOYOrbXUzkoow4XEeP7mSUP4s1uJTM=; b=SmMG+uVnzUj229D3DN5rBDsI4cDAgrFYBtSP33UwDtjBdPsiRtMqmDK4DFhK0gUlOkvOhiUQFV+vZCgv+XcWVxlCCv8tF/NO5ElSZDCieMuY7UHVhJnw9su6tw5WXQdHHNUpwJiWwRnDziC8s1shJE/2XZkQ6gJoZtzjAeVHNdA= 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 1670772791665401.60633730920233; Sun, 11 Dec 2022 07:33:11 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p4OFh-0006Ga-Eq; Sun, 11 Dec 2022 10:28:29 -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 1p4OFP-00066i-CX for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:14 -0500 Received: from mail-oi1-x229.google.com ([2607:f8b0:4864:20::229]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p4OFL-0007BV-7O for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:11 -0500 Received: by mail-oi1-x229.google.com with SMTP id n205so9089974oib.1 for ; Sun, 11 Dec 2022 07:28:06 -0800 (PST) Received: from stoup.. ([2806:102e:18:2efc:7b4f:f28b:eca6:b583]) by smtp.gmail.com with ESMTPSA id q24-20020a056830233800b006708d2cd8bcsm938140otg.65.2022.12.11.07.28.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Dec 2022 07:28: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=qxVibr8Xmoa/OfOYOrbXUzkoow4XEeP7mSUP4s1uJTM=; b=NHnCczeCPl5upYmmEwxiwkaMFOJ+CY4QTk7fp9esoGdq0BVbVWlCkgRRb8jdA4ltc+ 1UUYM9Qf1gLs31VRErGS7edq8C2HQVFKOb57eC7jqzT+m0j6lS9hdDNerNUK7qW6RU8R /NEimzmKXjzUSIY8Nz6vdcSsPDzjWaoGeitXEVb6nCt/enAdP6Y39WOb8MLXq3a0DklM gJrS0snazcSrIuaI3MBt3N4j6c080sBrN3aV1D/1QU3D4GJ6NC6qKBSoShUrUL5E3tyU 6ux9B6jyFQ2kFhVYrAaz0k81TqzBJ+TOxu/q+0dD37E+uUs7+DSvhEy6fb3aFmLgrZJA /Mlw== 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=qxVibr8Xmoa/OfOYOrbXUzkoow4XEeP7mSUP4s1uJTM=; b=7R2APYIPqYJ+A1GM9f/37zEYSlhfaO5RzdEvqaY1DbttdalsYrGPJSwK+K6CY83PEO Ly3r2KQDCAk84ZJqJa0ii/ID0unNLG+p9gv36cc3xwxR1q/HmCpzcg4EtYAp9kT1lVH9 +9+VOFfrO4Ayuj3dngg7VR3+5uO1bnjdbfSY7S1cj6DX4+UbRW5m6At9A39Kh3MSy3UN rYBL8ex1DDzhEVAqRrFQMoatjia4P2thTYVhD188YQqLTT+U/f/FXD/asbYRVB9Ij/r+ KqOLGRpnmM48Jz1LZ1IGgM92ZyKs+MCrzaTKLwqsn1rQ/D0wUYDLEs88VRGWRexY2DoJ yIKA== X-Gm-Message-State: ANoB5pkl1LRLGaQTiI+Yj0JF+Zx/iq7mvbVdBvm+Ripp9qDP5m8+a/TR 9hfY9om8uy1VtlDUOpCaqMOclf2CFyckI2LQClI= X-Google-Smtp-Source: AA0mqf7FJHwVUa3ozrUbvaR5DrjgZD9dwfOEvrrjVg9MwyrkN2JqtPujuWyG7Gk7wZThCbNe5kpvtA== X-Received: by 2002:a05:6808:1992:b0:35e:6c01:4e82 with SMTP id bj18-20020a056808199200b0035e6c014e82mr3627185oib.58.1670772485868; Sun, 11 Dec 2022 07:28:05 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-s390x@nongnu.org, Ilya Leoshkevich , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v2 01/27] target/s390x: Use tcg_constant_* in local contexts Date: Sun, 11 Dec 2022 09:27:36 -0600 Message-Id: <20221211152802.923900-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221211152802.923900-1-richard.henderson@linaro.org> References: <20221211152802.923900-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::229; envelope-from=richard.henderson@linaro.org; helo=mail-oi1-x229.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: 1670772792524100003 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 | 416 +++++++++++++---------------------- 1 file changed, 149 insertions(+), 267 deletions(-) diff --git a/target/s390x/tcg/translate.c b/target/s390x/tcg/translate.c index 1e599ac259..4fb396b557 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; @@ -348,11 +344,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 } @@ -370,9 +363,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 } @@ -426,23 +418,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); @@ -461,9 +447,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) @@ -584,13 +568,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: @@ -660,13 +644,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); } @@ -1284,9 +1261,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) { @@ -1296,21 +1273,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 @@ -1394,10 +1365,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; } @@ -2077,9 +2047,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; } @@ -2099,11 +2068,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; } @@ -2120,11 +2087,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; } @@ -2141,24 +2106,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 @@ -2217,8 +2180,8 @@ static DisasJumpType op_cdsg(DisasContext *s, DisasOp= s *o) =20 /* Note that R1:R1+1 =3D expected value and R3:R3+1 =3D new value. */ addr =3D get_address(s, 0, b2, d2); - t_r1 =3D tcg_const_i32(r1); - t_r3 =3D tcg_const_i32(r3); + t_r1 =3D tcg_constant_i32(r1); + t_r3 =3D tcg_constant_i32(r3); if (!(tb_cflags(s->base.tb) & CF_PARALLEL)) { gen_helper_cdsg(cpu_env, addr, t_r1, t_r3); } else if (HAVE_CMPXCHG128) { @@ -2228,8 +2191,6 @@ static DisasJumpType op_cdsg(DisasContext *s, DisasOp= s *o) ret =3D DISAS_NORETURN; } tcg_temp_free_i64(addr); - tcg_temp_free_i32(t_r1); - tcg_temp_free_i32(t_r3); =20 set_cc_static(s); return ret; @@ -2238,14 +2199,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; @@ -2343,9 +2303,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: @@ -2370,9 +2330,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; } @@ -2380,15 +2337,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 @@ -2494,18 +2447,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; } @@ -2657,12 +2605,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 @@ -2671,12 +2618,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 @@ -2732,16 +2678,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 @@ -3002,10 +2944,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; @@ -3014,11 +2955,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; @@ -3026,11 +2966,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; @@ -3090,11 +3029,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 @@ -3304,9 +3242,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) { @@ -3315,9 +3250,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; @@ -3381,9 +3315,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 @@ -3395,9 +3329,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 @@ -3413,11 +3347,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; } @@ -3434,11 +3366,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; } @@ -3455,11 +3385,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; } @@ -3492,49 +3420,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 @@ -3622,13 +3546,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 @@ -3653,9 +3576,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; } @@ -3687,9 +3610,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; } @@ -3739,9 +3662,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 @@ -3755,9 +3678,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 @@ -3771,9 +3693,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 @@ -4020,9 +3941,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; @@ -4083,12 +4003,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 @@ -4357,21 +4276,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 @@ -4598,11 +4515,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 @@ -4660,7 +4576,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) { @@ -4675,7 +4591,6 @@ static DisasJumpType op_stm(DisasContext *s, DisasOps= *o) r1 =3D (r1 + 1) & 15; } =20 - tcg_temp_free_i64(tsize); return DISAS_NEXT; } =20 @@ -4684,8 +4599,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); @@ -4698,8 +4613,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 @@ -4718,26 +4631,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; } @@ -4795,10 +4702,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; } @@ -4810,13 +4716,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; @@ -4873,18 +4777,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; } @@ -4899,27 +4803,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 @@ -4938,9 +4842,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; @@ -4948,19 +4849,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 @@ -4974,9 +4875,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; } @@ -4991,9 +4891,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; } @@ -5012,7 +4911,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) { @@ -5045,9 +4944,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; } @@ -5112,46 +5010,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; } @@ -5164,38 +5055,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; } @@ -6316,16 +6200,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); } @@ -6450,9 +6333,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 Sat May 18 18:02:05 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=1670772596; cv=none; d=zohomail.com; s=zohoarc; b=gsm2GDSTnnW7E2jSj8HNtScNd2dxtLCQ33Y14pNVuFYYPw3EzFDKRbaZePEfULz18kcPRwGcFPVETJE/XpAszAUqNmjEKvuzglRLVZ+03jH78ZPf/IFlFEjLhYd0q9AOePMJSakrPLUt813AN7LiJWGBHfUWT3L4PC88sMONB8c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1670772596; 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=qCozwaU6tDOWmzdSXymSiQAl14+NiGjcB+W8aIT9X7E=; b=gONIlBogzie1pMQZrSrSax0TqhqbI+/8c7Opsmjy3IFI8h//oPA5II8AfC65Ib8OakzFSfGtgaWzn0zobJsZn4Tdfg+1dgQpyYcLUXqDMho4Ggk2GTcyq058M+315PXLap115ztwVPrr9Okccha402HvxAIfI0buLP7YO22gCMA= 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 1670772596076624.32786326621; Sun, 11 Dec 2022 07:29:56 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p4OFh-0006H4-R5; Sun, 11 Dec 2022 10:28:29 -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 1p4OFO-00066V-6g for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:14 -0500 Received: from mail-oi1-x22e.google.com ([2607:f8b0:4864:20::22e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p4OFM-0007FD-8S for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:09 -0500 Received: by mail-oi1-x22e.google.com with SMTP id k189so9060399oif.7 for ; Sun, 11 Dec 2022 07:28:07 -0800 (PST) Received: from stoup.. ([2806:102e:18:2efc:7b4f:f28b:eca6:b583]) by smtp.gmail.com with ESMTPSA id q24-20020a056830233800b006708d2cd8bcsm938140otg.65.2022.12.11.07.28.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Dec 2022 07:28:06 -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=qCozwaU6tDOWmzdSXymSiQAl14+NiGjcB+W8aIT9X7E=; b=y0mAmGvRTyYnJhY/c3oJzZ3EZt1BDYnTvvJl8pJQF0GMey0hlK5vjlMbpFYbI1V6RY 4FiXKvVrAV0OCgI4r5oGK80VKhUjn87nrNINPos7ZZPr5y+MzFv2eQg1Rwn5kzRGbaH1 nCtsM653t089bNww7ePXhNjTlFfKmG4BKkMHu975L7TRefbo4fZMFi8fdkKdsOucTyRw ZZCt7USqUIev6WrlzXRFE6Mg5Ht8ZXNoYe9bqaNEMn+GUyVxGd/SfK58Hqg1RSUE8QTI fC4zqkLmpkUoYxIu4parP9RJEYWOJLXjZdWfFivpnPkyKEqIje859yN3/z8QrtQckUat B1Wg== 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=qCozwaU6tDOWmzdSXymSiQAl14+NiGjcB+W8aIT9X7E=; b=WrsNqhwhaQBFrMvn+h1fqNEFMn2jW5uDSu3GJ2BvD52o2qJzexrhJPcOorOtkmZ52W sZaa4GyKgnMAFBAz5djo43LatnhwTv9+jDUOaHZmoWveNFAKojmhPR7o7HItAFzn947M E7KwOZ1NwoJJ3qbeq9Eqj213R8EG3JASQOB91GsTvSE5ip3HPjXdE2ALFOYE8JeZtnTK iuUVn/7mU40eXwOmUW28M0w5TerKBiGWq/vdk9pEW9Ys3XTlVhgUn7W2XEaDWBFbSPAn DSFgALIBGwP0Zo+9+AJ7eVfa/MzLLLchVYDGoVRW0WWOzV4oLOpQkr5FyQPIXnKSJNDx bAxA== X-Gm-Message-State: ANoB5pmfkyxvJ6XhNcyh/HwM0oqcrsNC4Xav76HRjCMYLYZMdVZ+MWFV Kfoh+MgTvjxoCGvra1yCf1egvPuSwN6Dw8pUj7E= X-Google-Smtp-Source: AA0mqf5CTFohaB19AFkm+CwLOIG+hyFv+SLyIxAunuPDUlLIpkwdjfkUKErYphSqFcQ96F+5TjujYg== X-Received: by 2002:a05:6808:21a2:b0:35e:3c62:489d with SMTP id be34-20020a05680821a200b0035e3c62489dmr9525822oib.36.1670772487062; Sun, 11 Dec 2022 07:28:07 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v2 02/27] target/s390x: Use tcg_constant_* for DisasCompare Date: Sun, 11 Dec 2022 09:27:37 -0600 Message-Id: <20221211152802.923900-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221211152802.923900-1-richard.henderson@linaro.org> References: <20221211152802.923900-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::22e; envelope-from=richard.henderson@linaro.org; helo=mail-oi1-x22e.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: 1670772597673100003 Content-Type: text/plain; charset="utf-8" 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: Ilya Leoshkevich Signed-off-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- 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 4fb396b557..77919295d3 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -830,7 +830,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: @@ -845,7 +845,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: @@ -859,14 +859,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: @@ -889,65 +889,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; } @@ -1604,7 +1604,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 @@ -1628,7 +1628,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 @@ -1649,7 +1649,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 Sat May 18 18:02:05 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=1670772584; cv=none; d=zohomail.com; s=zohoarc; b=m/1Ltze0f3q1jUmd4qnRl+sK886CqXyk75zntkA8CSB/6asF/9tffdTIeL3UejwppG/I/EY5oepb+shsSuwnCTA0hrOCjc563nY4gQyH08YLtFo1U7xTRbHju95DAWjsp6+9E7mdAXUgtm82Gd2Mh6C80iJUY46gEZd5P/vP+lQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1670772584; 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=EvXOPryTYTQoEhITn1zJTin8WUQNVBjSj3qnL4xASac=; b=jlSzsY7YbDUl7RYTebQznRI8FYBUCLcztJ7NHp3dtzN7gQ4RQjTN3Ba3I8qg3oZAHXsV3ydqRViB0MIkShfjoGVf9uv75EKf+cWiALi4GaYLjSo7CcHVoGoEdTtCbpHgarDMIC/NOBtj3MCUBA0RkjMykhJGVQLjBN0/BNQ3X54= 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 1670772584423912.1851745179304; Sun, 11 Dec 2022 07:29:44 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p4OFf-0006BQ-OX; Sun, 11 Dec 2022 10:28:27 -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 1p4OFP-00066k-Mz for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:14 -0500 Received: from mail-ot1-x332.google.com ([2607:f8b0:4864:20::332]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p4OFN-0007L6-9v for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:11 -0500 Received: by mail-ot1-x332.google.com with SMTP id z14-20020a9d65ce000000b0067059c25facso5840312oth.6 for ; Sun, 11 Dec 2022 07:28:08 -0800 (PST) Received: from stoup.. ([2806:102e:18:2efc:7b4f:f28b:eca6:b583]) by smtp.gmail.com with ESMTPSA id q24-20020a056830233800b006708d2cd8bcsm938140otg.65.2022.12.11.07.28.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Dec 2022 07:28: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=EvXOPryTYTQoEhITn1zJTin8WUQNVBjSj3qnL4xASac=; b=VVSV/rMRhW3ww++viU2o7ukCWtyL3okdo7I89gMG0monAoeYiGiRiMdaebdQ0nFu2L 46BrwlpqEF8dC6/UWfTbu4N+6DQVDjNVpdAHkKBtR7Lso++AvBei1iJ8heNNKAqJ+Xh+ twXQtJvnzLKjtnYh38L9uLAdJGEPJb0XDnYwZtyWwiDCtur4uZajJ+HzVUxvKbcN3UWN icI2kxIN236OcpEGBMCXke3pUo7pD1a03HmmS/AJwxYY+oEeOWX6rHr/8Y14mRKMMAQp xG++E6+Ke4LvvLIExYsqVLB0BmaA8lrWHahZX6tIjOIEi6HpJ1/GMrEM2PYtBEdNnvkG ni8A== 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=EvXOPryTYTQoEhITn1zJTin8WUQNVBjSj3qnL4xASac=; b=H7aev5CKl6K5kw4EPaZWDhXs3CJKLuRsNcNtZg1R/1KEG7fqZslEJsEc6RL2qiKzU2 ZsKMGSLK0db9erALhuUqsfpBQ0vThAOKSUrsZ6b9UdkryZBiA43Uq8izC9Qsanmx5/Fp onQQT/gSICERWEm97jcDlLUN4rYMUdamvKEjiCxB5azMECHlALqnlxCV+Pl8gWtfVtKE tujrcvcSBdBnMzVeKCnwQKrgKjyhKe0jDal44B0a/gdTSOueZb+dfYPPRNo+mfQ2U8sM KsDjXg/70BL0Z4iO9MhXJRPA/Ms0gUh6Skf+AnOG9SzvfnNF8uyE3vfpcseFInHyCxV1 7+xg== X-Gm-Message-State: ANoB5pnsZo+BB3cZ4TDajnPkbPjDSrMlLvqpDiBRRJD/i3qiriGs0zes WTp3C0a05dsmO7zRlnZrfMM0d6V87ILU3AlB1zo= X-Google-Smtp-Source: AA0mqf6a7/u06JXE3Kmeg1tflPZDv+iPup3XAZvPUAt6UmmhsiF0NU7Jpcfdh1jR4mqpXWlerOTQqQ== X-Received: by 2002:a05:6830:4185:b0:66b:d5c3:2eb4 with SMTP id r5-20020a056830418500b0066bd5c32eb4mr9452133otu.14.1670772488196; Sun, 11 Dec 2022 07:28:08 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v2 03/27] target/s390x: Use tcg_constant_i32 for fpinst_extract_m34 Date: Sun, 11 Dec 2022 09:27:38 -0600 Message-Id: <20221211152802.923900-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221211152802.923900-1-richard.henderson@linaro.org> References: <20221211152802.923900-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::332; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x332.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: 1670772585673100003 Content-Type: text/plain; charset="utf-8" Return a constant or NULL, which means the free may be removed from all callers of fpinst_extract_m34. Reviewed-by: Ilya Leoshkevich Signed-off-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- 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 77919295d3..1f9dca671d 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -1775,7 +1775,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) @@ -1786,7 +1786,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; } @@ -1799,7 +1798,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; } @@ -1812,7 +1810,6 @@ static DisasJumpType op_cfxb(DisasContext *s, DisasOp= s *o) return DISAS_NORETURN; } gen_helper_cfxb(o->out, cpu_env, o->in1, o->in2, m34); - tcg_temp_free_i32(m34); set_cc_static(s); return DISAS_NEXT; } @@ -1825,7 +1822,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; } @@ -1838,7 +1834,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; } @@ -1851,7 +1846,6 @@ static DisasJumpType op_cgxb(DisasContext *s, DisasOp= s *o) return DISAS_NORETURN; } gen_helper_cgxb(o->out, cpu_env, o->in1, o->in2, m34); - tcg_temp_free_i32(m34); set_cc_static(s); return DISAS_NEXT; } @@ -1864,7 +1858,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; } @@ -1877,7 +1870,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; } @@ -1890,7 +1882,6 @@ static DisasJumpType op_clfxb(DisasContext *s, DisasO= ps *o) return DISAS_NORETURN; } gen_helper_clfxb(o->out, cpu_env, o->in1, o->in2, m34); - tcg_temp_free_i32(m34); set_cc_static(s); return DISAS_NEXT; } @@ -1903,7 +1894,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; } @@ -1916,7 +1906,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; } @@ -1929,7 +1918,6 @@ static DisasJumpType op_clgxb(DisasContext *s, DisasO= ps *o) return DISAS_NORETURN; } gen_helper_clgxb(o->out, cpu_env, o->in1, o->in2, m34); - tcg_temp_free_i32(m34); set_cc_static(s); return DISAS_NEXT; } @@ -1942,7 +1930,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 @@ -1954,7 +1941,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 @@ -1966,7 +1952,6 @@ static DisasJumpType op_cxgb(DisasContext *s, DisasOp= s *o) return DISAS_NORETURN; } gen_helper_cxgb(o->out, cpu_env, o->in2, m34); - tcg_temp_free_i32(m34); return_low128(o->out2); return DISAS_NEXT; } @@ -1979,7 +1964,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 @@ -1991,7 +1975,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 @@ -2003,7 +1986,6 @@ static DisasJumpType op_cxlgb(DisasContext *s, DisasO= ps *o) return DISAS_NORETURN; } gen_helper_cxlgb(o->out, cpu_env, o->in2, m34); - tcg_temp_free_i32(m34); return_low128(o->out2); return DISAS_NEXT; } @@ -2466,7 +2448,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 @@ -2478,7 +2459,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 @@ -2491,7 +2471,6 @@ static DisasJumpType op_fixb(DisasContext *s, DisasOp= s *o) } gen_helper_fixb(o->out, cpu_env, o->in1, o->in2, m34); return_low128(o->out2); - tcg_temp_free_i32(m34); return DISAS_NEXT; } =20 @@ -2766,7 +2745,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 @@ -2778,7 +2756,6 @@ static DisasJumpType op_ldxb(DisasContext *s, DisasOp= s *o) return DISAS_NORETURN; } gen_helper_ldxb(o->out, cpu_env, o->in1, o->in2, m34); - tcg_temp_free_i32(m34); return DISAS_NEXT; } =20 @@ -2790,7 +2767,6 @@ static DisasJumpType op_lexb(DisasContext *s, DisasOp= s *o) return DISAS_NORETURN; } gen_helper_lexb(o->out, cpu_env, o->in1, o->in2, m34); - tcg_temp_free_i32(m34); return DISAS_NEXT; } =20 --=20 2.34.1 From nobody Sat May 18 18:02:05 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=1670772834; cv=none; d=zohomail.com; s=zohoarc; b=DFeqLulVHsXkiVUR7YoFWFiwEhaIKWZmWBJYf9gOx8o0oin3RcWdkA2RoyHADnGCOOqdLht+D1b5IiVFBmIN9hbQbQon6p1lV+gmqqgDEgIL8PTiRIhIHakGmLBmvm23CjMm99iCaxXW/55DoUcMoegGvXRikTGvznlR2C6nZto= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1670772834; 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=IGLX0Cs15IlKWTTXtOO+M8h3aNhN01p2E9gXW34hDOU=; b=mZ1kIR6Xqjz7/nvgsHwSseGHQbeeo5ffyB3WbIEZn12Z4FRDkqRU40K4FVtL/d85+eJDhTiMqMFG+oamntoqe4/8fYbT8goQrBttcjYuXDApQugo2WqEMUwfLh91jf1ktdG6rvhDiNW8quuwCd7aH9LvesIsskRTdqkOI9ZqM1k= 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 1670772834153116.86520308463673; Sun, 11 Dec 2022 07:33:54 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p4OFg-0006DC-2U; Sun, 11 Dec 2022 10:28:28 -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 1p4OFS-00067g-8E for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:14 -0500 Received: from mail-ot1-x334.google.com ([2607:f8b0:4864:20::334]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p4OFO-0007OJ-SM for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:12 -0500 Received: by mail-ot1-x334.google.com with SMTP id x25-20020a056830115900b00670932eff32so425376otq.3 for ; Sun, 11 Dec 2022 07:28:10 -0800 (PST) Received: from stoup.. ([2806:102e:18:2efc:7b4f:f28b:eca6:b583]) by smtp.gmail.com with ESMTPSA id q24-20020a056830233800b006708d2cd8bcsm938140otg.65.2022.12.11.07.28.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Dec 2022 07:28:08 -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=IGLX0Cs15IlKWTTXtOO+M8h3aNhN01p2E9gXW34hDOU=; b=NQUbg+1kFKvm7/Nk2AE+cFaIZ9O1FvlXnnb1KIVN3Yei7AS8oe8Ta0LTd3xE6Amp01 CUull64ko7Nfh4d82T8V+5LjPsSFUNBKWxjHhca0g6OceRvjocPyoaOuievBCmId/+E/ +DPg5XO32mb3y4TKl9/d3GKqBNFmSVgnkJg4YQxQ6FDIpVAUhsSu6GZO1dDqDiNF2fSr alV37BvaBxpdGcO4V/YXDHqjK8KKLOQyzusTHUFOWf5HU/fnJVfIs7iTaIs4KQNnSzlR JdDSnsT7UMvNgWjne2HvyPBlMNLE/laxXscXVO8bfjoCR2QTTdegMWmEWEKsLcJHtEJD AgVg== 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=IGLX0Cs15IlKWTTXtOO+M8h3aNhN01p2E9gXW34hDOU=; b=VwnQuDDH4QOJB0CkVnrHDmiAlSaDDazo31wMei1VZZjrXSTUJVmV5NU/GIYds7q+HE qOJiZXSIoXOTYclWTx21IpYx3jEJbI/fC26FHzCAeXm2QgajFVE0058IJ2xAWQ0DtSGy 7w+SnsWc1kcJLtSasnVwUnezfDjiuXwd493U+pbk5oQZ2f1KfCt+OFHBBgxTiOmFUG7b /gFGjoCn6VTYi+Ue6J3ugs+g/WCLeGY1NODlJIsPJA5HdynzBb/OYrJq0yviQFzMDuj/ BoTgz/Usw6WIr8LXuNYzarJwMfP7ZYHxL80T3CejMzfPLWB858Irv8J8er9LJz8dFU4S nq4Q== X-Gm-Message-State: ANoB5pkyl+CfcxbonEMc3vPbojBp7AeJe9KTJ0s4GSNjTREicW2OkewI BZUgEEn/uXpeTuQyl6YOExMl1hq+4TyyUa+nw8Y= X-Google-Smtp-Source: AA0mqf7gNxkV3s4vDxq6LSc6VsEHQIL4WFYTtaM+Avi9MLJrB5hgIZik7TnW46oiQXvJYt4QhKrW6w== X-Received: by 2002:a9d:84e:0:b0:670:5549:9b63 with SMTP id 72-20020a9d084e000000b0067055499b63mr7135886oty.6.1670772489334; Sun, 11 Dec 2022 07:28:09 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v2 04/27] target/s390x: Use tcg_constant_* in translate_vx.c.inc Date: Sun, 11 Dec 2022 09:27:39 -0600 Message-Id: <20221211152802.923900-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221211152802.923900-1-richard.henderson@linaro.org> References: <20221211152802.923900-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::334; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x334.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: 1670772834690100003 Content-Type: text/plain; charset="utf-8" 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: Ilya Leoshkevich Signed-off-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- 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 Sat May 18 18:02:05 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=1670772878; cv=none; d=zohomail.com; s=zohoarc; b=P+GD8Jmd5Olp4AJOyfzXYr+7wBtgZ8/GHdSR2pXN/vekEpo4MODyaeQtShaa5JKnd/oWgKoT0Jobmq2nm1PhylI+8tRK4RA0zhm8CgF345TC7cv63EOtBHAy9oi50pzLpXknrSgGg0lnlnWCiYfxvrltwYwYIgVDte82/+n5Lis= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1670772878; 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=r88aN3ONQOrYoR5TjuSp7kfzVMmJ7L52pXjl2Gd7WK4=; b=h6tzrDhmC7853Gj355J9UUSZghHEfCRrlHtq1BJWg3g0GM9abY7r3Ms4TuzIYkLRcS58NYoJf1B0+l2NknDrTCn2nPDBVsEyr5llPQiONV7n3jGPmrLNRJdUsJ0JaRWLPzduABPXaXt5Bpl1/VRsD8uB2ZiCCvZdtfKUVw2PZms= 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 167077287838849.13033969375488; Sun, 11 Dec 2022 07:34:38 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p4OFg-0006FN-IX; Sun, 11 Dec 2022 10:28:28 -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 1p4OFS-00067f-6o for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:14 -0500 Received: from mail-oi1-x22f.google.com ([2607:f8b0:4864:20::22f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p4OFP-0007Sy-N5 for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:13 -0500 Received: by mail-oi1-x22f.google.com with SMTP id e205so9048135oif.11 for ; Sun, 11 Dec 2022 07:28:11 -0800 (PST) Received: from stoup.. ([2806:102e:18:2efc:7b4f:f28b:eca6:b583]) by smtp.gmail.com with ESMTPSA id q24-20020a056830233800b006708d2cd8bcsm938140otg.65.2022.12.11.07.28.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Dec 2022 07:28:10 -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=r88aN3ONQOrYoR5TjuSp7kfzVMmJ7L52pXjl2Gd7WK4=; b=uK/dKTWOHnTcP03XcZTPj69DyaOBaJbRklf7sJKLe2TLOnHOA3s9xA64k5ECI7WFbq 4o66oRFt/VDHJSzo6aeqqytrPd1f31QcLXkkVjOsIntmVApa57j2Nvuyd9WJZ/d28nIM 290HU7LqhlwWD/4OdhghNsxt7GNgtmqJ/39PG1XSPY3iYUq8GG9Au5GNuJIqiIZcpuys Z8Q0znyn1MnGcsa2YyA/i534jJCeppIRT5ZukfLC+knbW86f7F40YwQAvYvZtEMeksZo Wag+1LMORqn+b2NSOaMrVdKPlKiQh4EeBtoaHkOaJwQeJyOmev9J/APGPl5qOscul8Es 3jtA== 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=r88aN3ONQOrYoR5TjuSp7kfzVMmJ7L52pXjl2Gd7WK4=; b=obmcXVXjYTQf9Nzn3lMMHbAN/Q9wVXG9C5rXrUhrAfgJ/J1zrNKiH08Bv5WxKfQhs0 avg4a3OCCi2f8ViJs3QeqjdE8uDQhLR42vTUVDOXikcOWsX2NP+Dn3FoiBtPnBrHXKld m7ndabo1ehGwsz2R1GVw9b3jtqBEM9jLxS+8Q03x8fZtSWpfaNPZ6abgxbc6/0ETQ/HB maCPHxlSGJ53k62aW72k+UAuDqoQUA14CAQGQRtkVdFUAtv7oQckVI3jZVZ5Pzce30gd jKMFn1XC15AVHc0uFgdAkav++VrsBk9CXlalbQofgLCcvxStpMV5JNywsOBKyXegNvFo KLeA== X-Gm-Message-State: ANoB5pn1AFUhjeDJ1WcYIaN7j8aA1hRn5J/wShj3/2JFje8pufVJaE4b zBly0l5slF09SvPs68v8lBnmUDpMxz1obxX2ZUU= X-Google-Smtp-Source: AA0mqf4fteRsqijt6v6bKnhQzvEJIC42DdnsR9MeIqP1xi2g+cAwjHEW3+akBbCeBeP87gzayv8qcA== X-Received: by 2002:a05:6808:210d:b0:359:e30c:d86a with SMTP id r13-20020a056808210d00b00359e30cd86amr8783183oiw.8.1670772490528; Sun, 11 Dec 2022 07:28:10 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v2 05/27] tests/tcg/s390x: Add bal.S Date: Sun, 11 Dec 2022 09:27:40 -0600 Message-Id: <20221211152802.923900-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221211152802.923900-1-richard.henderson@linaro.org> References: <20221211152802.923900-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::22f; envelope-from=richard.henderson@linaro.org; helo=mail-oi1-x22f.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: 1670772878976100001 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 a34fa68473..295df08491 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 Sat May 18 18:02:05 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=1670772902; cv=none; d=zohomail.com; s=zohoarc; b=Yi4cywaKC/Qlep1lWw5KwNaHeQYNeWswc5jtX8ipGc2QTGEkjhfFW96qZhQPKGN/rNPpj9Dy7Q2bx2K+0XFHVglhOl+FJgS0ClJZsjllbysOEwVVWIif/fl/EM2di7be/KjNGJA4sxUvh11X83ZIW86dlw2FkRgusrRD55zbywE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1670772902; 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=7Jm8IvT8OnM6ntzNw++ITlfcs7TcV+gT1sswHnCP9Os=; b=W4YdV3Eoclv/mO/3DQik8GdZJwuN+8GZ9lKMI9us8+V9GnHADG7sZKIjTiAQtFDAMPm0qzTlEQBptvKHHkTEDguA3xD17wF9y87TC+Db1RtSunqvVc6NPae9J6zth6APyRSIQe6zUbbBF/i+pmieoiJmW7+Ul/7/Ceh5JsSkNEg= 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 1670772902189270.82571951851173; Sun, 11 Dec 2022 07:35:02 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p4OFj-0006Jf-3B; Sun, 11 Dec 2022 10:28:31 -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 1p4OFh-0006Gl-HO for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:29 -0500 Received: from mail-ot1-x330.google.com ([2607:f8b0:4864:20::330]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p4OFR-0007Vx-Lu for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:29 -0500 Received: by mail-ot1-x330.google.com with SMTP id m6-20020a9d7e86000000b0066ec505ae93so5830652otp.9 for ; Sun, 11 Dec 2022 07:28:12 -0800 (PST) Received: from stoup.. ([2806:102e:18:2efc:7b4f:f28b:eca6:b583]) by smtp.gmail.com with ESMTPSA id q24-20020a056830233800b006708d2cd8bcsm938140otg.65.2022.12.11.07.28.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Dec 2022 07:28: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=7Jm8IvT8OnM6ntzNw++ITlfcs7TcV+gT1sswHnCP9Os=; b=u0ZvssAhiAAk9OWwbe8eJL5SCmZz7ZW61x+6ocrg/H+hbTLn+/qtM44m2YM7B0vzYe iKjpnVMd9XtwNdeo9jOUgFTUnergEd9tkd5CflQyEnlDiXjXtXWYkQXPopSxsCLjxsWp w+IZR9c/eFaDq640uTTl52h3s02KN+kezPOhYwiFPsjUMvjUuKxqI3q+vSpFBTXDAtN3 KU1CBDN2+YL+q2uChS9giFS7ADF4CrBDCZCpGt4gUD4DIV2FRaZmNmSboUJkFMRC670B Qw9rkjIA7C//Nfa+QueThaN1R9fNOQXREDE0EKs2zAUDo5HjPwS1nKWyLqE6z33kAreJ Gs1g== 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=7Jm8IvT8OnM6ntzNw++ITlfcs7TcV+gT1sswHnCP9Os=; b=KtwEocKhWAjMQcQcO/WVoeW7AWU5MpDhESt8rsQIKMorijwK0gUKz6kHfiv6gCvPdI TahOvf0F64ssY1bDVao9xcx1UOqYHtgZY/BzLzfswT6PR/auHvm2nQheDDb47N7oLur5 KD1G78vhQNBmwwsi3lbfmmtYCnwrwR+MoruxB1zIWngerl/OnpKefaHGu0ZfTVT+K9t4 pqDWyAMNCxL7e0xRYh0Xr++8X1HrgROl7z207/qocwjNtpzjfs7kTcQCSIGWLh65TzHk NDQppnk8Yqc8Duy44P8tas+mR28QrZpAqW3mro+lDLd2m4H4e9dSnHsQdcNgXFOvqOdJ kGvA== X-Gm-Message-State: ANoB5pnuXhWhI7aAxYRJL4M5ZuhOlHIHz637BMPjcv2fR0/Y3tOxdUSd ZrAGdgENnA+smC6aFucFi8jWz0vN9U45OeH/Ilg= X-Google-Smtp-Source: AA0mqf5h+3iEIJJuBSFbLzvjtETA14lUaEKrc+c/nxorZDzXeHZlaVGjABt/bzmUkt89fXZCO4J5Rw== X-Received: by 2002:a9d:6d82:0:b0:66e:b9f0:b662 with SMTP id x2-20020a9d6d82000000b0066eb9f0b662mr5926429otp.25.1670772491708; Sun, 11 Dec 2022 07:28:11 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v2 06/27] tests/tcg/s390x: Add sam.S Date: Sun, 11 Dec 2022 09:27:41 -0600 Message-Id: <20221211152802.923900-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221211152802.923900-1-richard.henderson@linaro.org> References: <20221211152802.923900-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::330; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x330.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: 1670772903076100003 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 295df08491..d6ca8d7342 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 Sat May 18 18:02:05 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=1670772824; cv=none; d=zohomail.com; s=zohoarc; b=bd50NAEYguCJfXskYQLxT/NcNjQlz6W0JiMzT+08B4f8R83TuDSMSlZTWj3BZhxLixijAzxZ4RwjF/m63MKiRMQQmjRdonw5M2rkEJILL/GGByX9nhSaIsVCz2my2XWJz5zMdKfA0HX3EjCtkwsPYge3Kv+bk0zARbSodBTplic= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1670772824; 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=Oqz5leAJw9u6Pyeo/01GA+MzzGo02lOxdG/HYsszSs4=; b=n/MXapFDqU9fUNp//Z6tTsoxL9fo6M33JKP+JSEIYezbXsoqjSQgnAegZVLA8CsXxZQZA/sTfh01NijMw4WvNAO8PMmll+PZ/dugnwW+4HGaSzBw9+wA9Nu2bDHyrUvdQMGSaA8BIug+o6arDPzAgIsnrbPRN6b+RHKdvcaxtGE= 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 1670772824818361.9213579960324; Sun, 11 Dec 2022 07:33:44 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p4OG5-0006ZY-4A; Sun, 11 Dec 2022 10:28:53 -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 1p4OFn-0006Qi-Ag for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:35 -0500 Received: from mail-ot1-x336.google.com ([2607:f8b0:4864:20::336]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p4OFf-0007WJ-Uk for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:34 -0500 Received: by mail-ot1-x336.google.com with SMTP id l8-20020a056830054800b006705fd35eceso5835720otb.12 for ; Sun, 11 Dec 2022 07:28:14 -0800 (PST) Received: from stoup.. ([2806:102e:18:2efc:7b4f:f28b:eca6:b583]) by smtp.gmail.com with ESMTPSA id q24-20020a056830233800b006708d2cd8bcsm938140otg.65.2022.12.11.07.28.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Dec 2022 07:28: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=Oqz5leAJw9u6Pyeo/01GA+MzzGo02lOxdG/HYsszSs4=; b=m3LRO9QuPFT3YvRefJCeEPNzFHFlQ4z4Kz42wYyjziGZjY4QMUI2khFa+d75o9i/KH TK3keZXarVC23UsjHs84uuISXqMOP4oI1aG+G0eHuvbrkr5mvGk3r+nu0OvmrcCjjW7R MINq6JkKFVV0ZRNWYBUeoaXgbE1rhS60DBIDo6DXPmutHvpr9grI2jUMtFz6De1WguCW a3E9CPQwG7ZmwyquSwXYNUms9QSpEJo5FHeuvuG5dgy5y2+a+7bqik6z+pPPtpbMhCRr s9jRB6RlwEdvVk6v/qDX9Pk8LVOqu5iG5KJ0GHkHBGfg7HD6VbgAm8R3nR8OM/2NgMJ7 LRPg== 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=Oqz5leAJw9u6Pyeo/01GA+MzzGo02lOxdG/HYsszSs4=; b=3QIVUPOtvmopbrB6z9whkaoa9a/sUrHSBUJVqRltoIjlk5P7wMq5YklrLHVnlz+00S pmMSC759wNtk0DtsPw0c2Mj2wEcISS3EuBMLptZB/2LdrsDd+D5XOCj3rx/rhhKD+SQN A08966N0NU8FLjsKAAeWds0Kgs/g6pNYTKxclBA12Usp04npjTnTkOSN8ePHOYfjuXvV 45ARxYfRrt1N5mLs/NElT1QXm8H5DCU3hkjIWk0jCrcMhfogQ2mZoD76CKpKPh527Zym Aq5J4D9fvUoN3Jl9kxdx/6ZW5DJKux46uZfxeSSS+Jseo88u0hJJAmmqdB9peUYaRfAQ O2pw== X-Gm-Message-State: ANoB5pmPoySSk7SXKLwSxUGRTPwi5n7l/SU3nJwOa4mZB5NdlLYLp1QV P2pbLNNY8sLCYms5iKyZJL6GVqAPGGJFEs8efBg= X-Google-Smtp-Source: AA0mqf6y7OmlnKmHBAQMSErjUmucVBGNZIrnFYV1PMnXmGBRer1N5GVyQx6GXKKL1stb/AC49vmF+Q== X-Received: by 2002:a9d:17e8:0:b0:661:dfeb:f88d with SMTP id j95-20020a9d17e8000000b00661dfebf88dmr5858069otj.20.1670772493030; Sun, 11 Dec 2022 07:28:13 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v2 07/27] target/s390x: Change help_goto_direct to work on displacements Date: Sun, 11 Dec 2022 09:27:42 -0600 Message-Id: <20221211152802.923900-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221211152802.923900-1-richard.henderson@linaro.org> References: <20221211152802.923900-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::336; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x336.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: 1670772826743100003 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 Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- 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 1f9dca671d..f755909aeb 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -1145,8 +1145,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; @@ -1169,7 +1171,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. */ @@ -1185,7 +1188,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 { @@ -1558,7 +1561,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 Sat May 18 18:02:05 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=1670772805; cv=none; d=zohomail.com; s=zohoarc; b=EAoPYPr4pXqT3LTCQI7JZiixRzBX4cx08kSubU42NymIcDZv8ld+Rv1S/jaYdsG/Df+eaH538nO9WC1Uy4yJmrF6aXHeUcU+LSkWQJzLeskpn+qtJLwL59EMN+1VZpzectD7lnx7/P+CBFbAaFSglYDIv5zM2utbLLZ+sIz+33E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1670772805; 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=BkhpLPYibgi28bZ0AVemBX1UWP5NYhHvrup30BVm2VQ=; b=KjghAd7MlWV3HIw/pYzXoQfuD+kmHKPvsRnusbmfs+xUSAUgNe/zQfA66/apeVO9LNzGrsMDl5su7Vw4BvTCT/k0IS5e4eKbGXngP+xqLtc2pu8wOZ1npBhQ/zcjtLCE1IYPzLreeElf3gsEYnN7SxUUiHOSUKeeyOY0yDGFxJk= 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 1670772805097576.5425159090762; Sun, 11 Dec 2022 07:33:25 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p4OFx-0006Vd-TV; Sun, 11 Dec 2022 10:28:45 -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 1p4OFm-0006PH-1q for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:34 -0500 Received: from mail-ot1-x32c.google.com ([2607:f8b0:4864:20::32c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p4OFf-0007L5-Sb for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:33 -0500 Received: by mail-ot1-x32c.google.com with SMTP id p24-20020a0568301d5800b0066e6dc09be5so5836491oth.8 for ; Sun, 11 Dec 2022 07:28:14 -0800 (PST) Received: from stoup.. ([2806:102e:18:2efc:7b4f:f28b:eca6:b583]) by smtp.gmail.com with ESMTPSA id q24-20020a056830233800b006708d2cd8bcsm938140otg.65.2022.12.11.07.28.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Dec 2022 07:28:13 -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=BkhpLPYibgi28bZ0AVemBX1UWP5NYhHvrup30BVm2VQ=; b=rU/4QznzMjpjL3X7CgcpyppWiM8/Uj574eQ9qs/dCpejy37i052Dk7VgET4LyGUW3F nYKoM/+bUDG2yKX2YQdVarUlfN+fxpnpJnIdrnK/9jJtMvaYBpWxrkG/rYePtR4ogUkA ailwhWqDHfsWa8jZUNHaNvnxVa4lAEEYi2XAbCE9Pg3jh1K/eHLB8+nRA4uszAyRUZFF Iaps4uZEvUggTkTzOWU2ikfzvwAbXl+snSHTSwwZfV26bOI2B9Wd0qrqEj1exN7IZ5Bj Pj9Rps/8xevnk9GwXgMVaQHbWMbIjx+GeOrmr6wQU7WvZm+R8N79RmCEwtOYvyYHV1+w 8lrA== 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=BkhpLPYibgi28bZ0AVemBX1UWP5NYhHvrup30BVm2VQ=; b=TNdGTWmzwGFICkznbvFPl3VFMROg++GEO2sh0frL34/yq9+fGGqKeOSvvTOD/jXWQO WVMX3hDsFwGxW/O4YbEs9lGxJYBAOIBhR2c+Inj6Rm4MWgVnwfkd+IhXl2AcDPmw3P7A 02kxrLiVFwUAldZbagHgd1zntiP+qC1i2+By/BEEkM3jGkI1enHtg4IKSlTqE+9+R/G2 fxe/cBgrT3TFCSsAgkVRUQOy9NtXoTw6Y1o9Rn8bT9bNvooOZqeSY35M4pfEFu/6w9h9 8DIgVRp80fO2DKOfkBP5fK8N3qnOSctpnVtdEMj5epfqa9AVOdPoCVeLAgAeNjHuowTu PU3w== X-Gm-Message-State: ANoB5pmA4Mc3LXNqMZEpAfcgo76OjOEUb1plwflrAE1sZPGXDDzK/h98 tg9A41uUCJOZDB+wjoZ62mNfiU+zBxyTlJW0IXg= X-Google-Smtp-Source: AA0mqf68O0SPfv3871+DOzTnYaiTTuhDI70cGb9JiwSgQY0IJ5T2VgpZLyA0l72FPTmVQ/dIOVY6Bg== X-Received: by 2002:a05:6830:6286:b0:661:dfeb:ee89 with SMTP id ce6-20020a056830628600b00661dfebee89mr8601432otb.3.1670772494213; Sun, 11 Dec 2022 07:28:14 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v2 08/27] target/s390x: Introduce gen_psw_addr_disp Date: Sun, 11 Dec 2022 09:27:43 -0600 Message-Id: <20221211152802.923900-9-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221211152802.923900-1-richard.henderson@linaro.org> References: <20221211152802.923900-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::32c; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x32c.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: 1670772806553100003 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 f755909aeb..a6a6dfd7fe 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) { @@ -334,18 +339,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 } @@ -358,20 +369,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) @@ -1147,21 +1161,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; } @@ -1219,14 +1231,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; @@ -1249,12 +1261,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; @@ -1264,9 +1276,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) { @@ -1285,6 +1300,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 @@ -5827,7 +5846,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 @@ -6312,8 +6332,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 @@ -6434,7 +6457,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 Sat May 18 18:02:05 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=1670773134; cv=none; d=zohomail.com; s=zohoarc; b=jjtreeewyrCtnldi5xPqw6ETcOEAHX0xyeEz6tfbgjzx4lciQefnDLnnq2UFBn0Vn38E4LFT2JngQh+gQiS8pzg3CIoB2yoio0ex2PEsc+oVQ348OLNIcHW7gn3VZ5LbLIe5mQqC3INANgy3F3G7LDXLzcvt4UPbZTkc9L5jXnY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1670773134; 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=DdKeHpnzihti8XnJXyZXdF/AKnoqunJKbe/ljjhBogQ=; b=SbjFbrtt97Nb7etQWt+iSmgqPd/BqMdSkfXwqMceK1uho5KKrE9F9vqKIFy3xOBzW6KRCH5B2rHQ9D7Msgc6BNC7qE+Xmcl85VSc1tfVowm4OD7QEN9Kmc9Zu0IxTPH9hXa3QIzUM+Fl52DhmSqQn1w6Y83X7vOUbVN0aHDEa2I= 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 1670773134251933.5360169696735; Sun, 11 Dec 2022 07:38:54 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p4OG7-0006ah-Ou; Sun, 11 Dec 2022 10:28:56 -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 1p4OFo-0006Ri-HQ for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:36 -0500 Received: from mail-ot1-x32c.google.com ([2607:f8b0:4864:20::32c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p4OFg-0007Xi-02 for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:36 -0500 Received: by mail-ot1-x32c.google.com with SMTP id p10-20020a9d76ca000000b0066d6c6bce58so5833661otl.7 for ; Sun, 11 Dec 2022 07:28:16 -0800 (PST) Received: from stoup.. ([2806:102e:18:2efc:7b4f:f28b:eca6:b583]) by smtp.gmail.com with ESMTPSA id q24-20020a056830233800b006708d2cd8bcsm938140otg.65.2022.12.11.07.28.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Dec 2022 07:28:15 -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=DdKeHpnzihti8XnJXyZXdF/AKnoqunJKbe/ljjhBogQ=; b=xrpyu6g8d5eSIV51kux/WzbiQQnhR2OlU0VLemyXJFBjuhAS+OIwQVm0fA89jUM/R9 1okPKdy6MVCfiEP2vAYBQbv1pj6ngUfwKQhPwPttquFzB6CY9br21A3NrNz4+A6/R+8I gJHkbZmNGEN81szAa+KKekHiHuAimerb3SX/bQv7N5VBwJsOK7Prm57wmXg29sn4VzDr CyZvEBkcUOTM4DReV0bGvlXuGREEWYUhtz65TUi4MxCQNQfmL+M4O7FlFhTHKwU15sZZ w+w7vabXk2ujjZ0/zPg+hb5bxigwWTwoj3ZyVUDp4OEx6SjTN9z8Cb25xfGgsyMmi7YZ 8NaA== 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=DdKeHpnzihti8XnJXyZXdF/AKnoqunJKbe/ljjhBogQ=; b=7GjJz8P+ovvRwtAPMZR9ZCjBSYHM+NWjGesn81poKwCScU0dyB5b61kd+Jei+Bj6ll aaIzkcMfgLk2b0Kls7HE9EWl2usLZqHOwKr3CHiSRaTvpU4/YnVWuYBEthcPE2HiIiSn UuI1RFL6G05mSRiGFfM3ONEj0TeX2qdGIa1sc/kvNHbxL4gWnuoe3jhKkVVT6CVoU7TX G5zytml08puw5j2PnbvJtz7Geq8SXUA1Us5ftwx7d+1smlSpAti3J+JjUV3kN/1TlCz4 t3iauFUzVjPy5XyGFTgjTfESD5NWF19vHeWdumh2DyMXUtQYbYKt8CgLZy2wNoS+o9Hx DenQ== X-Gm-Message-State: ANoB5pk+ruKMhsxUzmeoFgM5lld7dAy6XE1UIxD6kV57re+eSNVV3Y8h p9V0hn1OEFCC6WTbGxE/izEWbVh6SvoZmlqqe98= X-Google-Smtp-Source: AA0mqf4Gx8PPtPGugSor3xJAx2glHwaQiOceZHMr0512dokawYvgewVdT6puLzxTKr/FvbDpxvVnng== X-Received: by 2002:a05:6830:6b0a:b0:66c:71af:3330 with SMTP id db10-20020a0568306b0a00b0066c71af3330mr7260075otb.4.1670772495582; Sun, 11 Dec 2022 07:28:15 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-s390x@nongnu.org, Ilya Leoshkevich , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v2 09/27] target/s390x: Remove pc argument to pc_to_link_into Date: Sun, 11 Dec 2022 09:27:44 -0600 Message-Id: <20221211152802.923900-10-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221211152802.923900-1-richard.henderson@linaro.org> References: <20221211152802.923900-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::32c; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x32c.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: 1670773135713100001 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 a6a6dfd7fe..4e23ae8361 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); @@ -1534,7 +1536,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); @@ -1549,7 +1551,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); @@ -1579,7 +1581,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 Sat May 18 18:02:05 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=1670772710; cv=none; d=zohomail.com; s=zohoarc; b=kUDrqSr4R83ksT+ZIZWyUdZEgnmQKNgUV0JUFarEZmJ8uJyq/wynFjhdhiPAoyvKfuouzdXEGLDnMVjwtH0hkKh5574tAIP+LHS/Oi9guPehXCDUWehRnGQNylnUjsMzrJlie6cz55L/VD8eET2y5yvVlNM7JtG0bhs/OIYnmlw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1670772710; 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=hn2aWC+olD3a/3u7MBKa85o65R+akJavbUiaCuhehyg=; b=B7Udj2/z2aWu6uNjtX3KftZNJ9cXyu6OuD9qz7yVx1ki7hrDPJf/JG6Jjep+0J9L25dw0P4L7kwZ8cl25eXja3d4cZ8vs+zK7ocNvuhsQHVrahuyiyXRvJOAr/7le9+c4HP7skiL9wr+VegmFNvereNGMaWj7qDj07cY63ndprk= 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 1670772710414298.3068056409711; Sun, 11 Dec 2022 07:31:50 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p4OG4-0006YB-Ky; Sun, 11 Dec 2022 10:28:52 -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 1p4OFo-0006Rd-Bz for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:36 -0500 Received: from mail-oi1-x233.google.com ([2607:f8b0:4864:20::233]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p4OFg-0007Xs-0i for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:36 -0500 Received: by mail-oi1-x233.google.com with SMTP id v82so9072456oib.4 for ; Sun, 11 Dec 2022 07:28:17 -0800 (PST) Received: from stoup.. ([2806:102e:18:2efc:7b4f:f28b:eca6:b583]) by smtp.gmail.com with ESMTPSA id q24-20020a056830233800b006708d2cd8bcsm938140otg.65.2022.12.11.07.28.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Dec 2022 07:28: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=hn2aWC+olD3a/3u7MBKa85o65R+akJavbUiaCuhehyg=; b=J8LdAAuSXj26EZXicR8LdIXskfJ925erkMd8ce2dgvtrI/m+Oo+o81UIGd8Duh8HIB wKsGnOfvcCGBu631rBY29ex2guWrnDoH7mIFDZQArmOcNJhbCP7XsLIZIKwn3R61i+36 1Z3pXwBfMkoSHH9yX8OkzO2sAAYuEKlBO6i9JS0/ZvBcTamZHZJ3hWFt09A40Mz4julj klg47YuWRMJtr5GYYsgpFaGvWfjjwJ36huxyOKxThLI4XxhwAAHh9q21AOXdFP/S+5iJ 6TeWIah9mKmXtfJuNpUwg0NnpJu1a0T3htFa1Zw0+BMSJ4tA+jLZG3dM+FJcn6nRCo5S PdZQ== 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=hn2aWC+olD3a/3u7MBKa85o65R+akJavbUiaCuhehyg=; b=EkmfT80eqqNb+xByOen7cvVhrgk8/oHuiVpgNtLjl2Rm3lEnCgzU4QV5u9g3EtkVnq c6Xo4WrJctR0JgCiIWAi2zUBUkjvQXeFPSNc8yBPKNPc8+q/xCdYMjV0P0FL/4MtxAKY Z6MjKBgt4InqCNtg+AOimZ5BaK52M+HVQOJtEnONoLmoDU1JPV+ee3CbaGymKouaUHCD ShnXSmrH7oeW0YV/ZLddlRsx/uaOAIhnTiWHvuMhGv4ZfBsKJH+9MF8rHXpy/V52qwN4 /MWfQp7IDwIn4fQrz3n+usqIYO4VTKDDxS2AyCEmdIDQPL3mLMbssZM2c00tE0gWUlaZ cgfQ== X-Gm-Message-State: ANoB5pmfF3hxi437iru40oDg+1kwnA+oYsaABLMFFiGm9vY68SXIHZxv i2/1tI5WID3sPm68f5cP8wa5ap+2ST08T+8i3Cg= X-Google-Smtp-Source: AA0mqf5sILGulRl4Vj2mSMloz0PeVJ/htcgpJ2Wc1uQHBs2N3PimZhkFCn150iAaFuLmy8lEYq+x0Q== X-Received: by 2002:a05:6808:f93:b0:359:d1ae:7863 with SMTP id o19-20020a0568080f9300b00359d1ae7863mr7254926oiw.22.1670772496842; Sun, 11 Dec 2022 07:28:16 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v2 10/27] target/s390x: Use gen_psw_addr_disp in pc_to_link_info Date: Sun, 11 Dec 2022 09:27:45 -0600 Message-Id: <20221211152802.923900-11-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221211152802.923900-1-richard.henderson@linaro.org> References: <20221211152802.923900-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::233; envelope-from=richard.henderson@linaro.org; helo=mail-oi1-x233.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: 1670772712148100003 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 4e23ae8361..f5b97fe1c4 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 Sat May 18 18:02:05 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=1670772967; cv=none; d=zohomail.com; s=zohoarc; b=Y42GXvfuihuXOogRXZF+PyHtVFui5S2RPRaNiO2qN9nA2/YWL7Bfg11d3AUgYQIzELvfU4G/NJTh03Z0aNCiauNWGyQIKxCij2c2CRmWBd4cckAuWj8XU41h4StVzYrrTVG+feL5nuDUQzU/6irebLB9d6wVE87942iLirGCQIQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1670772967; 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=9PqR+j2AJ2Z/evFIqerFiBY2sN8DE35v/DjfPGQKroc=; b=O3ZVAZbyzU5MYzGCiqoZWISNOoPKa3aVnQBSNseH1JqLfZFAjDNw9A5c9uX0fDcM2CoibesR7Of/5u5ZWDVqwBcQ1kF3whQtRW6ht+6zWW0C/YzFpDLF0gfheFgG3+K+U0t/2v5YvSQAccA5HEuEzrPe8i+jtn/W1niPPEfYBMU= 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 1670772967288399.00230910790026; Sun, 11 Dec 2022 07:36:07 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p4OFn-0006Qn-Ed; Sun, 11 Dec 2022 10:28: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 1p4OFk-0006Ls-DD for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:32 -0500 Received: from mail-ot1-x32a.google.com ([2607:f8b0:4864:20::32a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p4OFf-0007Xz-R3 for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:31 -0500 Received: by mail-ot1-x32a.google.com with SMTP id m6-20020a9d7e86000000b0066ec505ae93so5830750otp.9 for ; Sun, 11 Dec 2022 07:28:18 -0800 (PST) Received: from stoup.. ([2806:102e:18:2efc:7b4f:f28b:eca6:b583]) by smtp.gmail.com with ESMTPSA id q24-20020a056830233800b006708d2cd8bcsm938140otg.65.2022.12.11.07.28.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Dec 2022 07:28: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=9PqR+j2AJ2Z/evFIqerFiBY2sN8DE35v/DjfPGQKroc=; b=qM8zRNJeq1Vzlyd3QV65RyIKwItYmjlAMnZeB8liVV9T7Lzuwze6S05dJqcLXVj5A7 G9a5t6ymrnhPb6n+44NFrJcUku9ySbmjuh4ZuikV07gQGTDWz9XdkhLBNpQtksoJyNjq 6LaPjrgrWDNNGEbQ2fz1Cp4rvAHPfv4AbammEBhYimaa8LtpK4s26RfJM/taFtiALMMC l0x7Y7uuNW5JLWqEkuEowtetgHLCP7sj09QgftBssBWGIdx7frd3w4tnl7tY/APlsKhq ibOA01QIQLb9gONxPVasvlc8bf2dd12AmCv2tRN1l7l0ySnGULVe2LWA5MTjgBdqcLE6 ChXA== 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=9PqR+j2AJ2Z/evFIqerFiBY2sN8DE35v/DjfPGQKroc=; b=rPFEqoI/6zX1JhzlzTCgWHNq9Rmog7tfesz/SqF2PN0hI03pawSsklPyRzkGrS40t1 PNyxboSvI2HQGiz8EVxLll1+7U1e6jC5FtzMyfNNsC+xfGNSARh+btpqElwadLLbkb2J rDPdLRnRgM91Wv5p5pI+RuDNGFfGTC71obF+xQ0mx8u+/0fpI62z+C87bD3NUbAODvQ/ 4wPLY8sio2DbXe6zLk74FGoR7KIqUGKItddDH7cDvron9zaKftExE9CkZcWRwaHuHebc 2ISrRjNU8ew6mcaDgaNBSbq+r2r4FHZAA/rikBq+nLGcaXirBhso7w/W4tdFQtTsPq0Q /nSQ== X-Gm-Message-State: ANoB5pn+3NWeNpICxmYAKj1eaIvuCLY/lDCyAStPs8i7L6dwDK3nspXZ hrT78SQ3eWIT6wF46tj6yukLgzLXvpIOrkuAMY4= X-Google-Smtp-Source: AA0mqf4L04UPa3R4bcUeYzq9jCzGlgCr1u4EcwB1w9zmrt7aEo2DiUH02lu3p+IPeH99V5bR/zZ9dg== X-Received: by 2002:a9d:65d3:0:b0:670:5951:87b3 with SMTP id z19-20020a9d65d3000000b00670595187b3mr6279795oth.31.1670772498015; Sun, 11 Dec 2022 07:28:18 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-s390x@nongnu.org, Ilya Leoshkevich , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v2 11/27] target/s390x: Use gen_psw_addr_disp in save_link_info Date: Sun, 11 Dec 2022 09:27:46 -0600 Message-Id: <20221211152802.923900-12-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221211152802.923900-1-richard.henderson@linaro.org> References: <20221211152802.923900-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::32a; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x32a.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: 1670772969395100004 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 f5b97fe1c4..b317767a7d 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -1558,9 +1558,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 Sat May 18 18:02:05 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=1670773000; cv=none; d=zohomail.com; s=zohoarc; b=BWhrw9ggaRtEHbfQYaoeIS381A+B5lz//6x1oVr/PX78nxxA6Ra6mrsaDBYjhZNkAsc8eUu+wQJ1lTjKXJTXqzy6ltX/e97pV1/WCtAg/5D6Xer5evjYICKSxs6GOCpF4rw/osNXIP5sRGPctDikTw4Tod5/FaERtCxRhKJZywc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1670773000; 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=eHRilwMZdGux1mMQrrcCyZM7FyweWHMuqYamGhTtaNE=; b=kyPAcwV+R8HHCvml3CpxLs1JZyGFSC86nhBWA75uMX8bNh8uK0Gpo8TLVb91inGeKnIAgPmM7tT7g52mhTqqci7MLPbNnHRcN7r2u+NgDD2ZsEljPxeez8JzIu3VwAQNkJGoqjpJxa/zsS7Nqgzkj7pUc8K/Opdu2/qJSkVc0o4= 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 1670773000456404.97004216781306; Sun, 11 Dec 2022 07:36:40 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p4OFp-0006TI-VM; Sun, 11 Dec 2022 10:28:37 -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 1p4OFm-0006Pr-PD for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:34 -0500 Received: from mail-ot1-x32e.google.com ([2607:f8b0:4864:20::32e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p4OFf-0007YF-S1 for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:34 -0500 Received: by mail-ot1-x32e.google.com with SMTP id m6-20020a9d7e86000000b0066ec505ae93so5830764otp.9 for ; Sun, 11 Dec 2022 07:28:19 -0800 (PST) Received: from stoup.. ([2806:102e:18:2efc:7b4f:f28b:eca6:b583]) by smtp.gmail.com with ESMTPSA id q24-20020a056830233800b006708d2cd8bcsm938140otg.65.2022.12.11.07.28.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Dec 2022 07:28:18 -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=eHRilwMZdGux1mMQrrcCyZM7FyweWHMuqYamGhTtaNE=; b=YsJyGK2OcvrRZgby+DNpi/NYWNZ5iNb2um2AdTxxz1/CG85MCmRa5+bvkdxyyLiGi1 Hv6jhNVc2KewIOHf9u3pcZRpIMTbk7ZOyHu06dU2e7ix+2P9iePe1j9FxidQiOmDo9pg TYMOEY0AZ7EeVgKYk1RI1kSx0NwQfB9g3algsQpd8gEVYr50+K4B8xYX6gRpL6P5BoVU X85Bwc7FWw3sj5+qhoITZU62LWwp5Kcr2ucfCAdOqw4+4QQjWMDzNQ8CTJ6xJtCmrIKv GBj1psQE8cZeenNIjQMpBz6PKmp1P6lXTWclJ8ZcheABBtDrfQvlFkWbqKzYkQJ1gM+n u+fA== 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=eHRilwMZdGux1mMQrrcCyZM7FyweWHMuqYamGhTtaNE=; b=hJGzwNd3y1B2q5hxrxjZE1YRBuuGTaI3WUn4b6demsETeep4VL9MOV8m7bUvX+XUsv 2Ono2DQq+/3Gd56fUhTXCcgUoMCo4EScg2Kpnc3GgMy1OYYeCRGVKalNUlgtvZEnVGgp mvsgR1cvzB4YY7Y+sKA4EAmF1rYQQknp2YLNGWVdLjSfcyuRjb5A6FFwTmQzNeo0zAse qxblpoDwkpeP2XC+INv0Qaxl7QNI4kiaq490lY4zj1oVMqvl0SAJmhKOWsiqg6mOKViI sP/FCISXeaghmzLj5VETRjtbuMvoPk4OUAlNceWwz/sguJQntuumcEkdTPbh0MbQmfP6 r+Ww== X-Gm-Message-State: ANoB5pm9Rl89pveoidsHfEHR9hCGPF3JDG6fWCvs1u9SliycAZbqSUQJ xe+iz8O9RqQ2fZGLcSCO74WB00c68YeQr2QzvC8= X-Google-Smtp-Source: AA0mqf4hmH7WV7B6TnwTt/KlDMot1k9nSjiOT5tvDGfoOGpuXUdL4/ug0Bs5Sldde12Ni6olbgS1ng== X-Received: by 2002:a9d:7699:0:b0:661:dfe6:9732 with SMTP id j25-20020a9d7699000000b00661dfe69732mr5648803otl.1.1670772499197; Sun, 11 Dec 2022 07:28:19 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v2 12/27] target/s390x: Use gen_psw_addr_disp in op_sam Date: Sun, 11 Dec 2022 09:27:47 -0600 Message-Id: <20221211152802.923900-13-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221211152802.923900-1-richard.henderson@linaro.org> References: <20221211152802.923900-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::32e; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x32e.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: 1670773001532100001 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 b317767a7d..96bd37426f 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -3922,7 +3922,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) { @@ -3937,20 +3937,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 Sat May 18 18:02:05 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=1670772968; cv=none; d=zohomail.com; s=zohoarc; b=SZhRh2DgZ7YXX/Ok47j1HtRng0S0uIkqzrzq3rFubhWVcwjBzhRwv/QpxOFK7mPI7sdHIHVJdpVgTOK/jxvNlSRBytfKlvulaB/65f5UyCE5eh17HzUJ00M10Zgp5iMNHskF6fZHwmYZLCUssmmvt2kXrXeC/dLKUvxgLSzgr24= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1670772968; 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=0KchuaBzJWkMTjJsrbnSjZVRKRaS7lDJ8+obmeMmkCQ=; b=YUf6TnTzTZVAf4HW5n8ynA/pGU5WjE1sCkQl1do/q2Og8l/Nd6/uCJIiPtrCgxlt/FMhf9xgm8bUbIliPtcjyKEOS2LZMLB/JRL+BtGfarDPkrJYjhr683oPz2ZdYH/02Gi7cLpTbgzWSb9i1q08615xloHxFHjSJDCqrNIj/4E= 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 1670772968614519.5664261114674; Sun, 11 Dec 2022 07:36:08 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p4OFm-0006Pl-NF; Sun, 11 Dec 2022 10:28:34 -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 1p4OFk-0006Lk-CU for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:32 -0500 Received: from mail-oi1-x22c.google.com ([2607:f8b0:4864:20::22c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p4OFf-0007Zb-Q7 for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:31 -0500 Received: by mail-oi1-x22c.google.com with SMTP id c129so9114650oia.0 for ; Sun, 11 Dec 2022 07:28:21 -0800 (PST) Received: from stoup.. ([2806:102e:18:2efc:7b4f:f28b:eca6:b583]) by smtp.gmail.com with ESMTPSA id q24-20020a056830233800b006708d2cd8bcsm938140otg.65.2022.12.11.07.28.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Dec 2022 07:28: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=0KchuaBzJWkMTjJsrbnSjZVRKRaS7lDJ8+obmeMmkCQ=; b=g+LqkYsgUDtCAlBppJgT4y4Gconq2Lt0FEREdxDXBCwmfQry6Zz0p+ge4Z5Pmdy3Kh dmg0cAxIFxAxV/d7HkMml4uz3dSIfZOMcGX64hhKlPyWj2N5u/cYCBfJV6pmimZe5Enc YaO7LvsRTAtXz/O46KUDigz7zcMxASLjh7/qBW58R7fm+dUNWhtqR4ZZWEFwQre8VdEB AFqt6Eov0v/oDGSTm+z1fv3A+iIO0DfATp0/Obj0R5n9n9gk5zJr0yuA70u2VVuSoo3y aaJoUFB9EQQVycRuD3lksJ9wIE8sxho3T7PF1HkQGW4xtVwCtf9xSQ2D7XqWWj7ZyAOR 6vYw== 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=0KchuaBzJWkMTjJsrbnSjZVRKRaS7lDJ8+obmeMmkCQ=; b=5tKaR5UaxVTE8DHlHL4AJB9YtQ2t7mxY9hpSuluJ3RyCFcwZyxTW24dzlU4hqaoNBp 7fuPcbYyJ6y+5wqNpeyAmJCSAEHy1TuEV8LXzEPTJQCNHne4ItdmdAc7E6kcQLE/dmbY qxtqLLmM97EnLWCrntKQ84pO6wuoBhtysz4jUIZ/3zQ9D3bqLVrVynaDUihCU+hX53/b j00MwYcF7PtEjNeDbjKpIbth3bk2VYsOvC7ZcnrdVhy7Q+uNWVsVS64ZfQZlcWMwr5Nt PsZjKiLjEsT0llinIyvJf8NnvGiAFv0cuFU7wmvFQEy7hdz4Kki59PJQARpaa03TzQTJ p0mQ== X-Gm-Message-State: ANoB5pkcv5adTHxGNMyACV1ZQ6LrZK9/avygZA9JzDHINrfBnbpkNzkG TVt2XypPsW3ztcjEl9bzf81Am5Nl0oOxaNFgbMw= X-Google-Smtp-Source: AA0mqf70ywEtqjVNcK6tkxkEv5c7AvwLi8vLwAYyYcHCYoYEH777c6WFWDhZSrLtJIW29DEhhVfyUQ== X-Received: by 2002:a05:6808:13c1:b0:355:1de8:bc79 with SMTP id d1-20020a05680813c100b003551de8bc79mr7336829oiw.27.1670772500292; Sun, 11 Dec 2022 07:28:20 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v2 13/27] target/s390x: Use ilen instead in branches Date: Sun, 11 Dec 2022 09:27:48 -0600 Message-Id: <20221211152802.923900-14-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221211152802.923900-1-richard.henderson@linaro.org> References: <20221211152802.923900-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::22c; envelope-from=richard.henderson@linaro.org; helo=mail-oi1-x22c.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: 1670772969458100006 Content-Type: text/plain; charset="utf-8" Remove the remaining uses of pc_tmp, and remove the variable. Reviewed-by: Ilya Leoshkevich Signed-off-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- 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 96bd37426f..c9afa28c60 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; @@ -1198,7 +1192,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; @@ -1222,7 +1216,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); @@ -6253,7 +6247,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 @@ -6490,7 +6483,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 Sat May 18 18:02:05 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=1670772645; cv=none; d=zohomail.com; s=zohoarc; b=Y2Di5yL54sT6gbuxq/f5UxutYQkpA9oCH5v0SzOAdJYI9FwzckqwLcsiJjiA6YntLfQZ4suQ+2al0H1OAX2r1U6I8Oq0e0OmhPLqMIy8RkHrQVr2TiSt5Ac6YRsKHlte45hs4kihAJ/0vRXd39a03I3Cz12YOKcndAC7pd9xwCg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1670772645; 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=vh4p13H2zViKHartLXadg1WDfoyDsm5UJJHMM3R8D9c=; b=eY8rnecO2nODKjwj3FnEMe1PwJ9SxnMrcMfDBLH0lS0hl1wAMfd2eHIBoXg5Q3RSkKfj2DBZGbeAKJ+DSzLZBR8XfYEo9H5awT0vMAkfpJifa7kqsHh5IZ7+rfFIZEW2FfPQdXPtZxDkcZNthiPcAk36HuVPW8rasr93zRtUJ9g= 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 1670772645374650.8886521582191; Sun, 11 Dec 2022 07:30:45 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p4OFp-0006SZ-Dw; Sun, 11 Dec 2022 10:28:37 -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 1p4OFk-0006MB-E6 for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:32 -0500 Received: from mail-ot1-x32b.google.com ([2607:f8b0:4864:20::32b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p4OFf-0007eU-RQ for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:32 -0500 Received: by mail-ot1-x32b.google.com with SMTP id m7-20020a9d6447000000b0066da0504b5eso5824027otl.13 for ; Sun, 11 Dec 2022 07:28:22 -0800 (PST) Received: from stoup.. ([2806:102e:18:2efc:7b4f:f28b:eca6:b583]) by smtp.gmail.com with ESMTPSA id q24-20020a056830233800b006708d2cd8bcsm938140otg.65.2022.12.11.07.28.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Dec 2022 07:28:20 -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=vh4p13H2zViKHartLXadg1WDfoyDsm5UJJHMM3R8D9c=; b=fKhhc0Dbs3zvZUralS7r5pAVhDbcRO0V+OAvdPewXahMsffmyd64iy1IiHa0jjs0gP 5X6VEP2Urp4v0FIGW0rd9WdZ4JHkilNxdI78nSMd9G37sh1jbq1XVcGIMDvW1D6ubJ8F DTC6uRh75lL964ROi7HJPlzrntYuR+cghiE0NOUfMo080vcot75EEm0HgAWgHHIDu/aM MJ0T9Ao9TZKMhXmXudyDaDXRdTSt5RkloqPiby7Dlg5Qn0sEPk3GIHTiC6qs79685qDF gReIgQEAYTUFdj5DR7ugc+gv465JMLwjHPgEy6gBREsEtNT4nD97CKPEai0mnqFjuuXL zbBQ== 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=vh4p13H2zViKHartLXadg1WDfoyDsm5UJJHMM3R8D9c=; b=1KVd0dTMIZBLzSccSEH60wvdFTUa+0zgzXMnE/CN8I9+lN2ywOdaSlz+DEbGV0tnmg nH7rmIa1rR9Z5/BrLf5eohPmFz4LAKZEdQS3yZiUVOByN+OJAbA7d1GcbTFl/lz9aOSy JJEFbvpLYdR9qubcbqkB+5pFGGiOuvyPVPFtv56RegBXrCpNKmKjzub1ExX3mlRDkJiB aKm1Ei0qFF5vHavpq8SrfYWYdGufUoTN87FszndEKGtGBQVlks+AOVTSwC8Zq255NCE9 1SGx4EEY84doBb7/QGMnvaTW56ZME/jOFMcIJVgZcwPNi41R6ElP/IdDyEQT3iKTOmYd sC9A== X-Gm-Message-State: ANoB5pnbmqw8kD46VS4oVnJb5FiyCytJs3ft04E4KW6HyFpn0yGCRRz/ Nxz3K3RoVMGa+VFIKyZpDklGHMrYh/ds5neuzCg= X-Google-Smtp-Source: AA0mqf67bl8IMDYbUS+Kv01jM5bSTd9H1NzcsEg+M2jO/7c245+oUeAdiVBksyRKu1y+QE/c1gnd0w== X-Received: by 2002:a9d:7699:0:b0:661:dfe6:9732 with SMTP id j25-20020a9d7699000000b00661dfe69732mr5648856otl.1.1670772501375; Sun, 11 Dec 2022 07:28:21 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-s390x@nongnu.org Subject: [PATCH v2 14/27] target/s390x: Assert masking of psw.addr in cpu_get_tb_cpu_state Date: Sun, 11 Dec 2022 09:27:49 -0600 Message-Id: <20221211152802.923900-15-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221211152802.923900-1-richard.henderson@linaro.org> References: <20221211152802.923900-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::32b; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x32b.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: 1670772645855100003 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. Signed-off-by: Richard Henderson Reviewed-by: Ilya Leoshkevich --- 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 c9afa28c60..fcf0c52b8d 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -6491,11 +6491,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 Sat May 18 18:02:05 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=1670773006; cv=none; d=zohomail.com; s=zohoarc; b=IfGuvAIwKLJ/qDiSRXccCk3Mh6UOD+PgRKRa5L35PmouJatglM0s3b//BhzNGqafs+CjVvGW1M6qJX/hVpnOjDjUrbxfGjFnrge3YhWEkVM3MRaC3WodpwJsbg2BascwIghtlfo3l9AOsL3zcoQ8rPE8HvS6IfyNoUlF9cQkd5A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1670773006; 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=J8b95IT5scMPMa6HMgtE3iOPqIKnAQ1oJe1+BaYEyyY=; b=eTnd2I7VH35uvR5STHOa8CuOZuVCF9zgeGxbf3QY13Zd6tP3D2NL4RAXJLcQIHFu2u7HmoonSasQ2r7Lj4Ee0mdhQiM/8b3yt1KLZ18VV8S91jglGNEW7gmItuxib1rOzPn7nDdN0Tl6kkT26lS2l8LiuE0d/jOQ2gFIuRfoPwM= 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 1670773006050396.7308274395559; Sun, 11 Dec 2022 07:36:46 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p4OFn-0006QS-6O; Sun, 11 Dec 2022 10:28: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 1p4OFk-0006M6-C3 for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:32 -0500 Received: from mail-oi1-x229.google.com ([2607:f8b0:4864:20::229]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p4OFf-0007BV-Qd for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:32 -0500 Received: by mail-oi1-x229.google.com with SMTP id n205so9090332oib.1 for ; Sun, 11 Dec 2022 07:28:22 -0800 (PST) Received: from stoup.. ([2806:102e:18:2efc:7b4f:f28b:eca6:b583]) by smtp.gmail.com with ESMTPSA id q24-20020a056830233800b006708d2cd8bcsm938140otg.65.2022.12.11.07.28.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Dec 2022 07:28:22 -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=J8b95IT5scMPMa6HMgtE3iOPqIKnAQ1oJe1+BaYEyyY=; b=Lokc+qjmu1xee0mfs7Kbx92NS8A3NegIFeA7TxonGTSoX9kdNn9H3949mUF0Dl3Afn BlNqK0mBkekGyjensyi+ZYdcq6nfnuOcOSn7ibk9pbhHpEtOTjuzpTdNEKa9pvYNXDB5 4OmVFDgFJORrDeg/B8nCqhOaU+8hfbJoAJNJwjH+FyWqG6GBjImtV5EFDGsL6M5KG2FC TPzg0lbqYSsmNoHWPoCuJKFq6U9/LthFq3GNX71EEnt7bpvR2KC9Lm/3SZ3nKpdR25Nw G8vQOkpZUEWqjo5gEHu1fzXeMYeCSF9EDAVXqUHqcZRGHQy1PR4oeqVdnjR5RTdtoush HpNQ== 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=J8b95IT5scMPMa6HMgtE3iOPqIKnAQ1oJe1+BaYEyyY=; b=tvedS/mnPrtOTjBKHh/2+bSsBs3ytpYII9EroeKj893vvuiZUZ9aja6b8lPVGYm5S2 NffqRbLCPTosTcZVlQnb/DH5fG1j/1kikuR8+wwEkvhulUpIoI+ZL3gdN3bMJi13DuKW 1FJGmRRLHPOAACfAhN9AjLuksXtH3Kp+VeeCrXCnwmqCZyPtuDvD2zn82VgjSGy/YhhQ Xue1i50Nd0PsTbZ+FWrW/Seo2dQgtpMn7qSQeOldSfCtbQoEFo99guNjs9/1UCaSEFrx kttXW2IPfvRq+BsiBALrKwGAyzhnbuymlFyx150tPXr9iOQhmTUUok/XyLNJMFY5MaiN wx+w== X-Gm-Message-State: ANoB5pnfqEDNDD4MtMPWLINtkSOMJHwSAJcNyvQaImP1VuG7leDMdUuC z9yCijWIytv7dx/l+IohLGILAvb9FQSt92PsObA= X-Google-Smtp-Source: AA0mqf7j9VMOgLBLb+3dZm548gwvpvYEe8XLt+0ObgXRhJbRk1HrJTtJ4qA0VmC6Kns3dFS6WVmb1g== X-Received: by 2002:aca:3d89:0:b0:355:1de9:6530 with SMTP id k131-20020aca3d89000000b003551de96530mr4994747oia.18.1670772502461; Sun, 11 Dec 2022 07:28:22 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v2 15/27] target/s390x: Add disp argument to update_psw_addr Date: Sun, 11 Dec 2022 09:27:50 -0600 Message-Id: <20221211152802.923900-16-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221211152802.923900-1-richard.henderson@linaro.org> References: <20221211152802.923900-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::229; envelope-from=richard.henderson@linaro.org; helo=mail-oi1-x229.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: 1670773007539100001 Content-Type: text/plain; charset="utf-8" Rename to update_psw_addr_disp at the same time. Reviewed-by: Ilya Leoshkevich Signed-off-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- 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 fcf0c52b8d..c7adf0d72a 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -336,9 +336,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) @@ -444,7 +444,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); @@ -1168,11 +1168,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; } @@ -2448,7 +2448,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) { @@ -3175,7 +3175,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; @@ -4490,7 +4490,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; @@ -4728,7 +4728,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); @@ -6473,7 +6473,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. */ @@ -6542,7 +6542,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 Sat May 18 18:02:05 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=1670773121; cv=none; d=zohomail.com; s=zohoarc; b=YvR9Cc13RwfvbUyeEzFIb1KGGhMV7hxKqeIALp8Ot9+oRIURqNV7DyFkBAVmibGwY4mTzlgDmxTyVPFCTkcNPtcDyhLfkdOGzWPbqNh+IzHE95EkR8kQsAt4/kd84v6BVJgM+y+swofS8PUEToyuFZ7PFql4qglItzpLWcoDfGw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1670773121; 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=iHP2OeuMx3QS+Hc+EMNNXZmVyNHjtf95ORFV/MSLczs=; b=aGSuftm7fAhQoQAqGNl/AdK1fc68YmCKk1g4o8EbxeC4toTEdWFsRGBEi9lxlrIqgHbwK4G/qW/01Oc9R4UpTZDhoSceJLoHTMnqtO3vqXWX3lSLUk9akpQq2wD5y72Roz/PTdDzoaPyG1ChzrYZEpJmvRzfboaGHmQB4d8UnJc= 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 1670773121146785.8696846255558; Sun, 11 Dec 2022 07:38:41 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p4OG7-0006a3-3F; Sun, 11 Dec 2022 10:28:55 -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 1p4OFo-0006Rj-Hn for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:36 -0500 Received: from mail-ot1-x32f.google.com ([2607:f8b0:4864:20::32f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p4OFg-0007kM-0G for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:36 -0500 Received: by mail-ot1-x32f.google.com with SMTP id db10-20020a0568306b0a00b0066d43e80118so5859162otb.1 for ; Sun, 11 Dec 2022 07:28:24 -0800 (PST) Received: from stoup.. ([2806:102e:18:2efc:7b4f:f28b:eca6:b583]) by smtp.gmail.com with ESMTPSA id q24-20020a056830233800b006708d2cd8bcsm938140otg.65.2022.12.11.07.28.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Dec 2022 07:28: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=iHP2OeuMx3QS+Hc+EMNNXZmVyNHjtf95ORFV/MSLczs=; b=arRSB5wYDbKJetGre27wb7JkJGS+cXilxzutuXHPJpSgwCznxY1lGzE+S/pr1AftDr yrKu0n1jf/xAoVGSWIrYO7V2xUuY8c7LkjcgAv3UG1ulPxPREGwLpLFfv2MhlPuklv6b BWhmZ+WA4gBkX+lTIkybDm3jGu+RD/nsnqwYFeB8/6h3r6MjXX196XaWFRj1F5pIHVBk SneyzbBgOuJ5kIceHuNnJXZdXzKkg4YGYzQsxj7pi35MoDyRtQekjX1bjfVhv+0lLF28 uBGAJI7yZduiPDkJzOdrehXDNj3Rbt7atvoHJvUFpqPv11Scor9JpgvVZrKIv3d6k+UT sF3g== 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=iHP2OeuMx3QS+Hc+EMNNXZmVyNHjtf95ORFV/MSLczs=; b=gRmOsmjgtxBg+USVCxAN8NPeJ0IZtydwpjg59MVfRTxtfWOuagrJDHlA6i55dtvURW LHd5qsl18t+tm1T2eSNKXYwGRdYWXRD9Xf4/W8JEuqM1QktbAntl/4CrnLPGK1ZmW7Cq dFyyTJeKKVEfq6sitHZ3QqDmbjgi1F/iWpBErjP6WaCrMpRYjr1vdLxMkviHqVkG190w tIIF3JF3wzvplUi6LbPFDBX3yCHpkwIPvsN9FXJy97Sniv+/pMAZEJDq/uY8DMewicVi wFAEGkCerDj6LjCJ3V2LzfnppM/4vOiAr5PsZQsoRrUSPCWP0Xgy/iTOPvTZtiAmLWAz 6b6w== X-Gm-Message-State: ANoB5pkSo116CMGS81OyvGuf2enmvDcPNWN6NWrOy8SCMC0l/E9LD00R p570FBepYdLsmHFZC2zzG4wJJ9/+TAdeAizkaWE= X-Google-Smtp-Source: AA0mqf6xqMAPFQWGXMnZsiF/gjFCZOYzev3oZaoBoL3jabaI24CvD7DIEJWTP0AQ+dwavoKVoNqw6Q== X-Received: by 2002:a9d:6455:0:b0:670:8cc8:3a02 with SMTP id m21-20020a9d6455000000b006708cc83a02mr1248692otl.12.1670772503675; Sun, 11 Dec 2022 07:28:23 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v2 16/27] target/s390x: Don't set gbea for user-only Date: Sun, 11 Dec 2022 09:27:51 -0600 Message-Id: <20221211152802.923900-17-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221211152802.923900-1-richard.henderson@linaro.org> References: <20221211152802.923900-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::32f; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x32f.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: 1670773121667100003 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 c7adf0d72a..5842a13a97 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -384,7 +384,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 Sat May 18 18:02:05 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=1670772629; cv=none; d=zohomail.com; s=zohoarc; b=m6pDZgP3TIbCXDFWl3QmcAefpBQ25/VjgeBNoYqmCyaoYcUUEyDzmGpI8jVd5wOMI9tDcsOdnkgSOK9MQAYDGDFllSkoHBB4bsRg7JUUdoUuJfq17fUCLX/2Usx4Vs9ERA1Q9W0Zzp6aPTQDbxKfg0CO5vOP9G2iDhl4huqKfYQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1670772629; 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=8ORrX5TPBVZIoXMgmIEeKkVB5rHllP4+yQzO9tfkv6A=; b=JmHx7G2ekmM942anjBgdkXyiZqhLGziQQouhBlA+AmNz2DpdrLqwXTSYjvw7YF2VZYgx34K98+jiwXVwM9GpuIUwjGAspqq+JjoBH802uzkTkB32kG7vp56z1YqLCLmb9vA1UYZxyWsDioAYbOrXChMz6/+5Ewg9Ah+zKAFHP+E= 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 167077262953328.844256519707983; Sun, 11 Dec 2022 07:30:29 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p4OFl-0006OH-I5; Sun, 11 Dec 2022 10:28:33 -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 1p4OFi-0006JZ-Vx for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:31 -0500 Received: from mail-oi1-x231.google.com ([2607:f8b0:4864:20::231]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p4OFf-0007os-PV for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:30 -0500 Received: by mail-oi1-x231.google.com with SMTP id r11so9041432oie.13 for ; Sun, 11 Dec 2022 07:28:25 -0800 (PST) Received: from stoup.. ([2806:102e:18:2efc:7b4f:f28b:eca6:b583]) by smtp.gmail.com with ESMTPSA id q24-20020a056830233800b006708d2cd8bcsm938140otg.65.2022.12.11.07.28.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Dec 2022 07:28: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=8ORrX5TPBVZIoXMgmIEeKkVB5rHllP4+yQzO9tfkv6A=; b=MDtXRg5r6TGGnb0nVHpR5xII7u2F0nqTihmtv+4GaNZMpft8j4Goz6s0VIWKN7zu48 3PgnKiczriFKajKSSJr4ZjuuoXG2XdFnGIuhjuznUZz9yjDLguklLLl4hjwvM3KD0ohG 1jFLZwTMNiwrtA5nRgqiYd7wFWNaQDyPbJ4g1jpytNoK0/9OzrFAvjqCphFGU/6wKTDN Gpr1AoRfuhRWzrYiNxfz+WKZwUwpAamOOc4WLHfStxgg5gHKWu2/decA+STON2BxvkdG 3w7g7t+zrM2OmUGlKHgS9Kf2MHizFcms6DUsHoUpj8Y1ThE6kNws0WudWhHazccmJxzm UDjQ== 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=8ORrX5TPBVZIoXMgmIEeKkVB5rHllP4+yQzO9tfkv6A=; b=tuRTrji7VOY++9HEryRF8RZCJGBKgH5pBCycZxOR/bOKkVvRioN2W487R1ph4RDnzB EcRZzUIVH+YVoCNhPK8tUiGILDAWoEKykUDhU7CfM1miqHUswmIGY8KYvDniF7L3sMcR 8+kDYooklIspdYJRUoslpKDMTliNDUmuf3h9TDfIKPMwGaCWUwIzeYihDuSBc+Yiny6d I2KzW9EpXudpfvnaAE3b6tH9UNnH3wSw89+936w0b9Pf5YCLyWopek0ztjDoQWJmb0gf DS2hebUAPvltKxSl68JYsnhucvNricyUMB0pEwfasOTyj1DujXAtJ1mHIV1KyGOcNvX3 uvEA== X-Gm-Message-State: ANoB5pmOGqHxNAk+KNd7UMjuhg9n79GlmQkjNKVBX2QsHO+IM4TQrpEe rGQf9z8xKCXmQnV86Gt9U9M68m4svLa0KW6HhDk= X-Google-Smtp-Source: AA0mqf6N2kfBIj+TGbmiZRkVLAUk8wwg6PItt6Cy0RiU5akMIkjtJyPZcFwMzYSLswjYTkz45I584A== X-Received: by 2002:aca:1910:0:b0:35e:373e:6015 with SMTP id l16-20020aca1910000000b0035e373e6015mr5851238oii.58.1670772504810; Sun, 11 Dec 2022 07:28:24 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v2 17/27] target/s390x: Introduce per_enabled Date: Sun, 11 Dec 2022 09:27:52 -0600 Message-Id: <20221211152802.923900-18-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221211152802.923900-1-richard.henderson@linaro.org> References: <20221211152802.923900-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::231; envelope-from=richard.henderson@linaro.org; helo=mail-oi1-x231.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: 1670772629796100001 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 5842a13a97..28c6e0211f 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -341,12 +341,21 @@ static void update_psw_addr_disp(DisasContext *s, 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 @@ -364,7 +373,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 @@ -665,7 +674,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); @@ -4491,7 +4500,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); } @@ -6349,7 +6358,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); @@ -6472,7 +6481,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); @@ -6497,7 +6506,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 Sat May 18 18:02:05 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=1670772604; cv=none; d=zohomail.com; s=zohoarc; b=AfRxA8DCWGaU9aDIgi2rfQIDv3QzxXByqv5nSkf6UBjaApx5HmEcja4OZRlK/L0NLubn7vjsNTTQ9X9SuJP3fdQ0ECwUE+RPObML9Yy9VYHc4xQwJWN90gMze2dvhG5strxX7gW+ZA6/fKyDjcK7o1aeqveBfX6U8qXSN5hPX6U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1670772604; 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=YL98l6pAG0wMqGHGwjraAdo5XKSqPbbe4JB0KEpW3m8=; b=WuZLHMMavRXjsveH6oAJ6YTlVS5BKQlb05T1BFgWs4ilNalljdyLuC/7txWdb9tZyvAY5oVixZpB5VFnBRs9bfNRBCHBMDeE7ypNVYSznH2rBSUf+l9rRonUe/kF2CMqa3BsFQh55xHZsEP6MIfxasjK3UwKb3JKGr/eujDy1qw= 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 1670772604082872.0030223720737; Sun, 11 Dec 2022 07:30:04 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p4OFp-0006SI-6A; Sun, 11 Dec 2022 10:28:37 -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 1p4OFl-0006Oi-LT for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:33 -0500 Received: from mail-ot1-x32d.google.com ([2607:f8b0:4864:20::32d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p4OFf-0007pC-S1 for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:33 -0500 Received: by mail-ot1-x32d.google.com with SMTP id v19-20020a9d5a13000000b0066e82a3872dso5837591oth.5 for ; Sun, 11 Dec 2022 07:28:26 -0800 (PST) Received: from stoup.. ([2806:102e:18:2efc:7b4f:f28b:eca6:b583]) by smtp.gmail.com with ESMTPSA id q24-20020a056830233800b006708d2cd8bcsm938140otg.65.2022.12.11.07.28.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Dec 2022 07:28:25 -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=YL98l6pAG0wMqGHGwjraAdo5XKSqPbbe4JB0KEpW3m8=; b=EMVCgMupVYseNYZLpzWcaMLSgR5q3Q11AmcZQ/MhwWgLlyBXGB0+Oc2y1yweQni8Kh V85VUcmsczM2qHqKYTBm4NiPHv4GWnIeIwa6kLPJdJ362oL2/EBuQRUMdjWTVrom+CNN 79SsyjY7s8uJwv5g7/lOZlTms77vCN8FUsa9n2j5ME9oyIAZZqv3a8n8aALSpiqYZPy1 x8osrGhunEhQ41SgKiIXwRtl5h3epBPddV82WGXRHj6Ml2UMTck35hRhZYKCJVhjrAHb 6667OW8+Ozm1bWC9AN+8IGcDd/TbIhs5xoM5XiBh96mS6rZpOzzHdxnJVXFvJvI7TJ1w 4p6g== 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=YL98l6pAG0wMqGHGwjraAdo5XKSqPbbe4JB0KEpW3m8=; b=DCQss7Cyzx8sZClFaWNkuAv8uaaBi9nwgf+hAtzSauvN3yaJtVWY5kOiCqwJfBzJDh jTUulcL7OsuBDpkT7t/AeMSmKNjmw3k04K/Y8EKrypE6RcDx1gYHLQyii7GRZMDob3gE k2OjyBpc25NdQZF/x2OytEpJ25mzBoHKESlIzFBPsDF7gGcc5wBRq7tPvRUSNFTrJxdU 6dRUX6tBQDdh70aawrn90ms4si/A3iqJsKdhPGwWCB94Rh3CqR0qMGmffgke01dNyoZu 4lbxlpYPR/bQ40fWzp/2xBf8TiNZdG8hukO3O3P+K+Gemd7y9YkzJH/Zt+qig2Sw+2CC RjTA== X-Gm-Message-State: ANoB5plXWcUqQAv4hVf7YNi0exLNbbwIzOlYDMh++yeQLviyI4criTYX gJiIWp/7p4OAOd+5axEhLvN1VO/+q2qUhkE9/fo= X-Google-Smtp-Source: AA0mqf4oYBSmEPJvlZiD6+q2f4pCIUh23Yh4XAcIt7Zqd6Kb8A9gr3QETi+dMEit/i4zLWP2+HHD2Q== X-Received: by 2002:a9d:654a:0:b0:661:dfeb:ea49 with SMTP id q10-20020a9d654a000000b00661dfebea49mr5208235otl.8.1670772505944; Sun, 11 Dec 2022 07:28:25 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v2 18/27] target/s390x: Disable conditional branch-to-next for PER Date: Sun, 11 Dec 2022 09:27:53 -0600 Message-Id: <20221211152802.923900-19-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221211152802.923900-1-richard.henderson@linaro.org> References: <20221211152802.923900-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::32d; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x32d.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: 1670772605698100003 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 28c6e0211f..9e84f706d5 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -1203,13 +1203,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 Sat May 18 18:02:05 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=1670772798; cv=none; d=zohomail.com; s=zohoarc; b=CbzycOSW6bjt6bnaJ7lNT3ZeP0Axw4VD2cGo+0ee0Rtio5AjyCVwleN0/RtvKRT7IBskiz5s7xJF7s/BVHPrD4J0O5hQmcMaKTpR3IG65Bw25fervNBHm4FJhFk/N1yPjG/TwwluyKJt0jXvSoCBcogdyR77y415qCcbIZLOrj0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1670772798; 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=ougmtZxo3v3SsRwj4T+NvGRyt5F/WZFuGGwZrMTtC10=; b=a43Sg/pV2YYxRQZQx7/QDqHL0gf/TX/VrTQRDRdDCWudZv1L0WQREz6N0bl2RFZ1oo/xax7v3x6mfNckOK9/Ta8mZicTULPSMbiisZTDs7mRUE52ftPuIf+Yf9+CHGM6wHoerxHwxzwriqK4pOTM/cnlFeA03fiGKF80xZkOfew= 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 1670772798605780.2832564166133; Sun, 11 Dec 2022 07:33:18 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p4OFv-0006VM-F6; Sun, 11 Dec 2022 10:28: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 1p4OFp-0006SY-B0 for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:37 -0500 Received: from mail-ot1-x333.google.com ([2607:f8b0:4864:20::333]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p4OFg-0007pK-GY for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:37 -0500 Received: by mail-ot1-x333.google.com with SMTP id l8-20020a056830054800b006705fd35eceso5835913otb.12 for ; Sun, 11 Dec 2022 07:28:28 -0800 (PST) Received: from stoup.. ([2806:102e:18:2efc:7b4f:f28b:eca6:b583]) by smtp.gmail.com with ESMTPSA id q24-20020a056830233800b006708d2cd8bcsm938140otg.65.2022.12.11.07.28.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Dec 2022 07:28: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=ougmtZxo3v3SsRwj4T+NvGRyt5F/WZFuGGwZrMTtC10=; b=ltZtH+n3dsvT9WWPPrMWDe8ErUY9UldG+8nLlXhMnMXIxv61IPLV6pWOIMMz+pB4m2 YADLq2SCfBrR6jeVTv1NiFXN7AtAst4lLuRZmHk21dCZl2bD0hVxFheWet2Td40m80/o LBBk/HpRF7b3JWSPBtYcHWan+Lg2xL9r1f6K1PjAkOdLSS8ZKNNshq90o3QTFM9fCu5N C3tu+D8w6gzQ17hAthx1bVWites+OcQKIvk+Go+EuhrIgcG5xLN+8HD3Q/S+k4a9ubK/ JNkLSUptt375QgzC2bUrM2KOpJ1Wpxizv4HZhws5CqKV4CGYQIGvzFh6qq7ubbkDhkyg PvZQ== 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=ougmtZxo3v3SsRwj4T+NvGRyt5F/WZFuGGwZrMTtC10=; b=rNReLxtMazaL0l9R6J+J31RUl0mDjcW8jPrZpA0S6aNViNiWXmorlKm1J0KAF+6giy waqYzI4CI7m20/pSuEROSojj8d0mDIWByBQcjwPsQ3akyTNEC3EAVdhL0CRcEDtkLIec p58FFXOpOeTH9pr5jHZUFBZmUBS4dXZsb4AkPLuiAMmucMQ4HL9NgauWnI98dpWEFJTB kj1rkx3854d6yoeEjHBjU/12azsmX8GzyTmDvPiCRpeEdHlIRZmCO8apihaKSPFxMOwm G2sJ58S8lJAdZux69963xUYHp1i6BLpHQhfMQTcWd2lknljKU8bUzHlu7vFZHHuqnFhS IoZw== X-Gm-Message-State: ANoB5pkcrKIHrZgj0VK7m/9T/zRihMm8VVAPWnMcOGmkSkDw7AF+XZOj dSXlfSgCrENzV7YxtVraxUPCKOfkUApRS7ufeeA= X-Google-Smtp-Source: AA0mqf7oxD25is7EaNYXWbXdq8XI3luU0I12hEaqFqPrYwIZYzuPcv++9efF9131AuXKoh2pHR6Piw== X-Received: by 2002:a05:6830:6201:b0:66c:4634:ab1 with SMTP id cd1-20020a056830620100b0066c46340ab1mr8477300otb.38.1670772507079; Sun, 11 Dec 2022 07:28:27 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-s390x@nongnu.org Subject: [PATCH v2 19/27] target/s390x: Introduce help_goto_indirect Date: Sun, 11 Dec 2022 09:27:54 -0600 Message-Id: <20221211152802.923900-20-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221211152802.923900-1-richard.henderson@linaro.org> References: <20221211152802.923900-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::333; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x333.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: 1670772800549100007 Content-Type: text/plain; charset="utf-8" Add a small helper to handle unconditional indirect jumps. Signed-off-by: Richard Henderson Reviewed-by: Ilya Leoshkevich Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- 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 9e84f706d5..7506eff4b0 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -1189,6 +1189,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) { @@ -1219,9 +1226,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; } } @@ -1545,9 +1550,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; } @@ -1580,9 +1583,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 Sat May 18 18:02:05 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=1670772801; cv=none; d=zohomail.com; s=zohoarc; b=Ra3bqbVo+1XFnDTeJtrzmW0rPzqPQe3FR2baKu1uALl6L48UxtwQ3ROQk+g2oDPUW45saQkcWIpPdO+ZI6XJFz3w99GBevYPFtNS03rMRbrx5vNS8lWi7buwrEbmekGkbi9sEgSDXBPRnItjNkqf9ihhAayuYtn5lWWcM77HZPs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1670772801; 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=H8MpUEpMQiUpwtCPeAM5pmeXAHWrn/qz8xIsZr0JfzE=; b=PoefIZaASakg4uQhXVBIMw5frHtWvz63Dc+e00lGOAebJTXMLZJHE/9pFCsITDCeE330Wz7KjlXK5Xl1Dy4P9HjYiVc04b10PUC3WQaFaeDMVkER46huV4+pJvuePmdbCOFf3f0iyMjvMr2an9hLsvSnwfb6iGA8JZRxTS88MVg= 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 1670772801342598.8520021248218; Sun, 11 Dec 2022 07:33:21 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p4OG6-0006Zi-Ib; Sun, 11 Dec 2022 10:28:54 -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 1p4OFp-0006TF-RN for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:37 -0500 Received: from mail-ot1-x332.google.com ([2607:f8b0:4864:20::332]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p4OFh-0007tI-D3 for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:37 -0500 Received: by mail-ot1-x332.google.com with SMTP id db10-20020a0568306b0a00b0066d43e80118so5859237otb.1 for ; Sun, 11 Dec 2022 07:28:28 -0800 (PST) Received: from stoup.. ([2806:102e:18:2efc:7b4f:f28b:eca6:b583]) by smtp.gmail.com with ESMTPSA id q24-20020a056830233800b006708d2cd8bcsm938140otg.65.2022.12.11.07.28.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Dec 2022 07:28:27 -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=H8MpUEpMQiUpwtCPeAM5pmeXAHWrn/qz8xIsZr0JfzE=; b=Ix7+CxdzxAQxolytdhWBYHYSWyNwomrlSHwC6rqluphKWlrhBHKmKu6Nhu1975U67g 6wyOuDE7j6Xq0fXTYisJAPDJwQ9yA97bg/dNwm71vV6ONBYryjAWBdIcoXNnh0HFFzQM slvg+LzwTfcMR0dpiTOwePuPHVmmj90WsoZcfzkeoGr5WrjRzEGl/mif8y0YU7Pl1k6y dHJduMJmm9IKBtbYcrS/sdYsc3Y5PzC4CkiFwu4kOdG8RhSHWxpw+gwdtjqOIGsNI3D2 BJN6QOkDfY3OiMLT6yAo4F1tvjBSS5eLJgDuitedE7gC4rBBzpVQMk593CUl9BDv0BRr utLQ== 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=H8MpUEpMQiUpwtCPeAM5pmeXAHWrn/qz8xIsZr0JfzE=; b=f7narUV9BtEmuZva95stBQoHh+U1VAr5ZYBN3DBYe8Z5CCqfWG+H0PcVeK53Hrsd5J IwpXO2yEtndPpYRGqLFd6Csx0LR+Vyw5AAZkUKzbgAOj0WiHxsudoixhwDWaCNB5TkAQ EXiTzq5hVQdspx3hn9hCY/W14cSVovShPetked+1pLxjTUOENPlKxnsEcyooWP9kGhrR vEQIzF9Z5l9Btrfc6+oRHzxFFcuWyqqR8i9ONF6qCEVkbC0VeO2mOMZs/W4vL7iHNfRw /cbkvZJHMrl5xUG4q011WF0STxrT+Aie812saHTIjM/T0bB9gXDT+CPgRwSJJqCwFcak iDQg== X-Gm-Message-State: ANoB5pkYb8fKsMud5QzmPUeHWkQh2CHtScxZtPLZICdtoJ2WLUND4l9Z L8zAWpe/MXs7E331JyyP04WypfnodJJkLLNMXDE= X-Google-Smtp-Source: AA0mqf7YqWYYgW2bFIF2GDyeuPQJSpGgFW9i6iiaE40KLCaZtH16pjx9Wpa0NzyJIeUFgSTdbupd1Q== X-Received: by 2002:a9d:1ad:0:b0:670:583a:467e with SMTP id e42-20020a9d01ad000000b00670583a467emr7634743ote.13.1670772508293; Sun, 11 Dec 2022 07:28:28 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v2 20/27] target/s390x: Split per_branch Date: Sun, 11 Dec 2022 09:27:55 -0600 Message-Id: <20221211152802.923900-21-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221211152802.923900-1-richard.henderson@linaro.org> References: <20221211152802.923900-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::332; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x332.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: 1670772802511100010 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 7506eff4b0..1192024f3e 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -350,21 +350,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 } @@ -1172,7 +1176,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)) { @@ -1184,7 +1188,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; } } @@ -1192,7 +1196,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 Sat May 18 18:02:05 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=1670772592; cv=none; d=zohomail.com; s=zohoarc; b=W47NwKljyUf7m6lXqfqExQdH8NYVBjN0JJli0V3zn5S8ZQJwxqfCqPw0X0FVwMiQrcPP1LFMDGZa/eQWS5B9StrnB8oe4pXRS8eOMDNkR1sCKccnw9OGnq/xuyD1khGr16y5eIbpBZ4YYGTlqmYZH9IkAX0bBChyHbmBk/0IQBQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1670772592; 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=n8My9uOu/9XHGfwKArzRxmxgdX0PQ3V3m+s96fguy/Q=; b=TAEy5nHCQt8Uib0Qc6D2Hs/V1oLV8Xoz3g6drqPJcF6k0PMpJW1eKJsiVouyGeWKIeu9rU200uMu0cN6hdL/8TmZl9MjsZ8eoZ7mA9sqN9NiZ6SweSMlU6YY3MpDvF+TG8rp8om0jCBsGDkjp4mdnojEFeJABBWP5OybePZX0HI= 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 1670772592368174.51318295190356; Sun, 11 Dec 2022 07:29:52 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p4OG9-0006cL-7q; Sun, 11 Dec 2022 10:28:57 -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 1p4OFq-0006Tj-5x for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:38 -0500 Received: from mail-ot1-x331.google.com ([2607:f8b0:4864:20::331]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p4OFi-00080V-Vz for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:37 -0500 Received: by mail-ot1-x331.google.com with SMTP id v19-20020a9d5a13000000b0066e82a3872dso5837665oth.5 for ; Sun, 11 Dec 2022 07:28:30 -0800 (PST) Received: from stoup.. ([2806:102e:18:2efc:7b4f:f28b:eca6:b583]) by smtp.gmail.com with ESMTPSA id q24-20020a056830233800b006708d2cd8bcsm938140otg.65.2022.12.11.07.28.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Dec 2022 07:28: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=n8My9uOu/9XHGfwKArzRxmxgdX0PQ3V3m+s96fguy/Q=; b=yB69NonmKtn79bDWyd4pfMSAZ6TBRkeNaem4NHDZHNRzWl+dRL78L9Tw7B5KtKfGxk kZthDzsQbAXcqKP+RXdlsVnHV6E/dt7uNqgvMRzTGWowp3ygXOGZs9pQrxl9wcrtxDcT GdjheLPduMRvoq/bn+9uVdDbw4pCPThJ8en46k4NxV9EkQy1LAovdtycmnDxgaoOAeRy OhOjmVmvZ8GW7U+E7VLit9fhGsqMiM4Dwc1IH11dfEkroXdsBW4TLxpQSm6dFWgpkPB+ nsK5EkfpypW7X2I/Q1bwBEloVDnBsw3X/YP08TlOguzlAywNJ8a9VENA0rFo9QiZdZOm r9Tg== 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=n8My9uOu/9XHGfwKArzRxmxgdX0PQ3V3m+s96fguy/Q=; b=S8N6NoJDl5GcH2YR2EJbflur2xVBNYbq5dsRBzXd2mMzBR17bMl/dvBppqo4M588jQ tvLL3FNTgm0rvGdYCWASEGjedF+eHW5VBqnmvmcGb6+NHvYH2PlbcUNyr0z6lb5vGIhk cBkirM8RI59k8t3xumdZFkspLDyt1MZktufdEr3F5v3M14VdCBWZ5bFxopSVVeNoVIIY iyQmS2xCAaC7/IG3vnjpkdszfMaKxWczcFiNlFAOp/UsVesOImoBqpafbs0yQ24dhBwH co9etAZy9LfkrbBGCOw356Qf5/mnuvwhQFr34MbGl6YlaDVC5Kn1YBw8FohidzDcoyrX jSHA== X-Gm-Message-State: ANoB5pnRc+UiWRif6ydiydOgfVgomTvTPIQRrq3zx+H6j4XLScRUYQk1 htA8wWTT08HtSMMy8/Jjv4Xr6ryozxlT5ala0Qo= X-Google-Smtp-Source: AA0mqf5slrZ+108/Q3+ssndML9bz5wkzMTXMA4hLoNwXe0VHjegm/BG1gf6hRtNGg59wdssdobTT5A== X-Received: by 2002:a05:6830:6b0b:b0:66d:e033:e311 with SMTP id db11-20020a0568306b0b00b0066de033e311mr6626899otb.34.1670772509632; Sun, 11 Dec 2022 07:28:29 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v2 21/27] target/s390x: Simplify help_branch Date: Sun, 11 Dec 2022 09:27:56 -0600 Message-Id: <20221211152802.923900-22-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221211152802.923900-1-richard.henderson@linaro.org> References: <20221211152802.923900-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::331; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x331.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: 1670772593662100006 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 1192024f3e..b7c0d24d75 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -373,28 +373,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 @@ -1205,7 +1183,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. */ @@ -1235,96 +1212,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 Sat May 18 18:02:05 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=1670772949; cv=none; d=zohomail.com; s=zohoarc; b=RfQDlpgBIZwwiVZCcH1lFVAyaJyc32eM679ootGOEh4rnF+l2a+6Zp1IY0y4Sr4inzYBRs8S0i8FDjFRNAWENvHXTjsDoCirmFzT5Lt7vB+L2FTD8b/GILsNT9gydPO2PocbtIk3VndvmUj+1bomskj+PgE0YERNRbuEsy8bJhc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1670772949; 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=4asYNccrx+BoU0MZdEMWP1GIa6QY2NIQn/AOiNqMEuM=; b=AW/lhuZ1y2QX7+LTetpq2TX+fmtXCqu9aGyjvxt1h2SsxFFvdtPzPOoTdTJuzl7qY0VYj2NdNb4knmalnLdEjVLkTNCifVHErPD6RaYtfdV+T+y1XANA0yn3EMQ746+2MgetWXnBkGRZFtCTo5x9yMJ+WtXDgfq0A9J6eXSMO5E= 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 1670772949124129.76369782717234; Sun, 11 Dec 2022 07:35:49 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p4OG6-0006Zh-IU; Sun, 11 Dec 2022 10:28:54 -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 1p4OFv-0006Vz-NU for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:45 -0500 Received: from mail-ot1-x334.google.com ([2607:f8b0:4864:20::334]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p4OFj-00084b-TI for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:38 -0500 Received: by mail-ot1-x334.google.com with SMTP id m7-20020a9d6447000000b0066da0504b5eso5824187otl.13 for ; Sun, 11 Dec 2022 07:28:31 -0800 (PST) Received: from stoup.. ([2806:102e:18:2efc:7b4f:f28b:eca6:b583]) by smtp.gmail.com with ESMTPSA id q24-20020a056830233800b006708d2cd8bcsm938140otg.65.2022.12.11.07.28.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Dec 2022 07:28: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=4asYNccrx+BoU0MZdEMWP1GIa6QY2NIQn/AOiNqMEuM=; b=PGYc+c7KPgL8q5LcoXEzzt1Mc8Xif7H1P4/oAc/ANdrBEgMPd5zypMph0Jw+GfGlfY ujoFKhbSq7atBBMOy7lxniQRp317tVXuziSJDQWDTgM4+HkudYK1TRlD25I6wqYMUi9n t3ffy/foZl0KCkUxxiy+bgH2HPN517NAZIvEGm0S9Zt7nK/F3QluKTTZVKZpmevF3KGU FAgE/8OtfEbBdOtJI92bzI3R8jDXfUCdoAT/mKLVxIc3ulC6BY4pqJatqrPpBf0yPCkl yjXQszyl2yVfmdKX5NxmHjuBngcnpPSMiVklqDRLtjas+mC7Zsd6B+uSTN7+UwKYpwXb d8Fg== 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=4asYNccrx+BoU0MZdEMWP1GIa6QY2NIQn/AOiNqMEuM=; b=nAi1AOOdyKRQRXtnjVyjTWj06Ir7Y6GVGfbriD/XjZNXw6lmZm7A50pWG7Pk0KNvF1 GueIJ5LgqGLw3asxtTGUDz3EVzPM0oOvOYiilc9ZNNpICeEKcJStfV1gNd9aYR6bnGwt kgXGIlRejBzfksl1IxvgZaWKjhovn+qdYUfdZlRS2XVLfo1J0VuiYegWvNkAvmquz4L9 qh1lUhyzzw+NZEHoTSkR4Hyp2nbDh+ZSy/jqAEIgcHcCxElkQY8wxHf3tzq6odiybeNn qTk/OrycLGVhD5wU1rtLetdjd50nskX6uqd/n3gGVCgvPZs+6n+ia89iUCKCZty+tyMa U/3w== X-Gm-Message-State: ANoB5plqwfGng7pX2ZiDvjOQRAjZmCzoAMoZ4MxBjCPHrtwihQoig0sJ Py+f+cS7DI4n4OAubdA7KgqPDidKFn4j9GeN3Ag= X-Google-Smtp-Source: AA0mqf5Dm0rRWKTZIEw1QvBR30x1uWajn1T2aRj3WnEsaEjDaZ/74AQl+VHZ6sS5zqpuBHDZxxAaIQ== X-Received: by 2002:a9d:7f0d:0:b0:66c:8b9f:86ef with SMTP id j13-20020a9d7f0d000000b0066c8b9f86efmr6277381otq.21.1670772510851; Sun, 11 Dec 2022 07:28:30 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v2 22/27] target/s390x: Split per_breaking_event from per_branch_* Date: Sun, 11 Dec 2022 09:27:57 -0600 Message-Id: <20221211152802.923900-23-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221211152802.923900-1-richard.henderson@linaro.org> References: <20221211152802.923900-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::334; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x334.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: 1670772951205100001 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 b7c0d24d75..6006db3db2 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -353,7 +353,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); } @@ -363,7 +362,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); @@ -1153,13 +1151,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); @@ -1173,6 +1172,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; @@ -1233,6 +1233,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 Sat May 18 18:02:05 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=1670772798; cv=none; d=zohomail.com; s=zohoarc; b=fyXk2VfOuOYU3N+YXYeawqMl01expfwM7q3ip2GuLwoIgSbicSayQ+5PxA6uMTDGbpHbDhk9gjrW97yfLcyUK2jYhiuZ22FFbpj4ywVSE97Eg1YMmGLAY5w6RuOK3lobyuBZ7HliJR0Z9wK8RuRg1VQPglr9ggfgbrgZ2YnxSPI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1670772798; 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=Z/skUfQCFQZ4X+J8MZM9bNAFhJbunyBxd+pVFGi7o9I=; b=AL3fmqQfPWtUzQuT8PjYL1w5JpqnQHx12wMeq9xOooSwHXFcE2XLR0syEKdpuz121ujSCQFNaAtNe2IRKacmQIUJS7apbHiShXXeKvkkK0B2Wa2dqEiNGbTdLEh66x2xxbgw6EfHOBHDMtIqRRWfGTu10I8V3LaA18HnAYDQPyo= 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 1670772798218163.42909317665533; Sun, 11 Dec 2022 07:33:18 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p4OGD-0006rB-Pv; Sun, 11 Dec 2022 10:29:01 -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 1p4OG1-0006XP-8n for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:50 -0500 Received: from mail-ot1-x335.google.com ([2607:f8b0:4864:20::335]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p4OFl-0007Vy-L4 for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:39 -0500 Received: by mail-ot1-x335.google.com with SMTP id s30-20020a056830439e00b0067052c70922so5834780otv.11 for ; Sun, 11 Dec 2022 07:28:33 -0800 (PST) Received: from stoup.. ([2806:102e:18:2efc:7b4f:f28b:eca6:b583]) by smtp.gmail.com with ESMTPSA id q24-20020a056830233800b006708d2cd8bcsm938140otg.65.2022.12.11.07.28.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Dec 2022 07:28: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=Z/skUfQCFQZ4X+J8MZM9bNAFhJbunyBxd+pVFGi7o9I=; b=kfNIvMO0w13rzx/eQcX17mX5HHmvtv7BCqbTd4I+NrKPlKCEmnJ8xc3/Yt6Wa0qZRd 4PxdEWHXmeUPLqatdzve5iT9MflW9+4kAKMwCcDV5JtOaT2k4os1jr92hoY31nCsyXGA MVNAogGJqkL9IPbINw0cHfOgTAYE3NDrTtXI+UbxdOaNAw2jBAg5qMpGFGLtuAL4QUR3 Nakp7xf0jOJ1IKY5+HwcQmAjDdsl/fm53m5lb4ZZdGeHajoFDU1L6f/25s1lVN0MAvaH VCQpekzXoD6h88e2shd9DooHEIutDTM9t7GwvGXiZBRYUf706ckGCeC8VNJuLhXv7USI TVCA== 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=Z/skUfQCFQZ4X+J8MZM9bNAFhJbunyBxd+pVFGi7o9I=; b=jNke7+1KKbt51NOytGGC+DHYaI3mfMH2XGAPlfK3Rti8jN7YD5Y+/Q/yBwo4LIqI6D diCrOnXCsIr2pHtnrNXELJSLv/PhIjrYWgmTzWRQNNnrQGsVZ29dguNgR2WLj4OT0hJ9 M7hT2lpPtTreOFQ0rSx2NeGWXSTxu/tT6aQkiM5z2/b5SUPKGZHBspcdYr1pO6ZMCS0/ vjbxBkRBk+ppXPgtpGYD20dN/C4DUkZqmmwJe31bUmaZl+g1Nky2pxlO8iv2hizdXMko Yd2yJwkJ043L37nJsoAFtPAct3Lgz8ucLolA7WlfnR/ubbirmJI7THqO8TTWPE577rHy g+Bw== X-Gm-Message-State: ANoB5pmkrHXxfLuufLr20BQkz3zzUt/b/jZUsLdqA2hdGTQcImh8FlJR iS/ihxbEfRx6nkMmKJJa7ZgYcsWct4zaEXGAbzU= X-Google-Smtp-Source: AA0mqf6VoNaH0p4D7V0w7q2+Yguj6GS4xaG0EXBQRaL4sk5vScoPnnbZA8IrWDvLHx3RSCVOF7+zDQ== X-Received: by 2002:a9d:6405:0:b0:661:dfeb:ea34 with SMTP id h5-20020a9d6405000000b00661dfebea34mr5728580otl.25.1670772511975; Sun, 11 Dec 2022 07:28:31 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v2 23/27] target/s390x: Remove PER check from use_goto_tb Date: Sun, 11 Dec 2022 09:27:58 -0600 Message-Id: <20221211152802.923900-24-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221211152802.923900-1-richard.henderson@linaro.org> References: <20221211152802.923900-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::335; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x335.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: 1670772798541100001 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 6006db3db2..268de1359b 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -654,9 +654,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 @@ -1157,15 +1154,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 Sat May 18 18:02:05 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=1670772636; cv=none; d=zohomail.com; s=zohoarc; b=AgTqPARXj3ZygDbKPbIJ4dISY3Gm+qHjbMSxPtYqUo3H1fmd/psl7nWyu9zA/t5GYbxqq0VJ4RmH96jTk0scbFdx7UsQ+pmtoDU4Y0eTVI0ySzqmeNCOUV1K2PnZQfiYBnwviyKnznDQ3gASiz6cUnR2sRzb2+8Ma3Pl00L34Nk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1670772636; 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=PnKVNWuy81wpLO8ctWZ75eeyyzKWmrB6j7VstOEmj/M=; b=JOurSy5oEI985QpWBlxOs6/+TBkbSqIwtlccQzFf9OzXmbvjJix8vU5qoyzv1ZwNYHQ6gYt0wqqXb9oFcD43JZjfkLwm2rdqQhl5Tn7+G0FhwSCUm+PG+fRifLrj6/k6ITQ4Vs0JCgFHir7vg4140qGXKTSgEETzcG4Ks05IyG8= 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 167077263608554.05518279775083; Sun, 11 Dec 2022 07:30:36 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p4OGC-0006pn-Tu; Sun, 11 Dec 2022 10:29:00 -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 1p4OG1-0006XW-BF for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:50 -0500 Received: from mail-ot1-x330.google.com ([2607:f8b0:4864:20::330]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p4OFn-0007Vx-E2 for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:39 -0500 Received: by mail-ot1-x330.google.com with SMTP id m6-20020a9d7e86000000b0066ec505ae93so5831058otp.9 for ; Sun, 11 Dec 2022 07:28:34 -0800 (PST) Received: from stoup.. ([2806:102e:18:2efc:7b4f:f28b:eca6:b583]) by smtp.gmail.com with ESMTPSA id q24-20020a056830233800b006708d2cd8bcsm938140otg.65.2022.12.11.07.28.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Dec 2022 07:28:32 -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=PnKVNWuy81wpLO8ctWZ75eeyyzKWmrB6j7VstOEmj/M=; b=LFVMmBrptS9d+LuQp5JU+rmkEzlEYy8oZj7nmZ8kNN5bh2IQWy0Rl83UkrCmflHO/d lkX3NLymrTXdD/lAxeWkJtj8sA+R9dp88VwSmYGJJuQhG+kcrk3uR3VZM63Z+sWktPwT OGe6kzlubAfaLUc7pcO+kgwW9JyKz2jmV3NOUqIupkOgeeQdT+Yb4VR6KkR1dvPARCXQ qiRXrzxiaswUbesa+wc418iFb51hdDrPyJ/c/R5D+3vXjSZcq0g/KJCrpNjUUm4KLGdb bcsXjYDOLJEvT6r3cwOGiCvOplhvKHvYvOWwmswEZyD7Ea0yX0xKeTmQsqMqawlw7cdx jqfA== 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=PnKVNWuy81wpLO8ctWZ75eeyyzKWmrB6j7VstOEmj/M=; b=gt1R84ZK7u7JOnkizmATBRjrCV/d9M2R1J1RzMVo6JbBrdDk32q0SnoJhhIyLWPnoW GGfPiGsAnveIa/WAl7JUvZS/8vDzAJ7f1kJVV4i9F6yLS+7cEeVUzFBvrFYiR++xgGCM vFGCT+vIVpEthhUcQ8pnmZ5pFpyFb6HKY237o59jaIOMRDoTOpJ+4PmUmSZoxNq0Cert jUGBRBT/AriTqyfmyixtCQ4dWteB6MGK4rt2Ewvyk9WQ39KBbRncmDbF5N9oCgFKTS5Y hXHGlxQnwfByq1/aenppKnEiJNddLJSSLl5pS4qH/+DL7oSJupDqx9++AhN6X0+hG6Ij 4Nag== X-Gm-Message-State: ANoB5pmE8svAZaWkBRhzStsxb8umppql15HO40Y9hF0YdpW5cguMHH8z zs9vFGchwCP4yfl6KuXzIAZrUJ/XYhRYke98RBw= X-Google-Smtp-Source: AA0mqf4hVWe5y/CtJOwODQ/BWx6UxIaMyAtlwNVnP9YoxW8KZ8xH7ydnHxyYXQsZGOrMk7MeHFghhw== X-Received: by 2002:a9d:64c3:0:b0:66c:43b0:5667 with SMTP id n3-20020a9d64c3000000b0066c43b05667mr4820953otl.38.1670772513156; Sun, 11 Dec 2022 07:28:33 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v2 24/27] target/s390x: Fix successful-branch PER events Date: Sun, 11 Dec 2022 09:27:59 -0600 Message-Id: <20221211152802.923900-25-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221211152802.923900-1-richard.henderson@linaro.org> References: <20221211152802.923900-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::330; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x330.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: 1670772637777100003 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 71388a7119..b7220cef44 100644 --- a/target/s390x/tcg/misc_helper.c +++ b/target/s390x/tcg/misc_helper.c @@ -619,6 +619,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 Sat May 18 18:02:05 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=1670772811; cv=none; d=zohomail.com; s=zohoarc; b=O/Ei3mwOnpiYm3JgwvZC2HKkgcDQNYpxJzSvu2moXqHHRhopOBIWem7B5c1OD/0+TXR1HGUpPOcmjK4Xv815IN7uzLZ9hEyvIgcftBRGGUEjWBQDhEFUGrczVJJLoAlsI4BQwolT64ZMkKFlhbmrLC4JQpc92wrHu+WFcw8NbpU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1670772811; 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=6a8SyY9eZgzz8AJukTfXtGKf9OCDu+smgkxjoQH9ksA=; b=oEVlxlHdiLpief1q71ZX4X/4g3OOO57YIG2YPArvEBd5M9Qus0GBNOhA8YwS+uEDyvEhE5DyogCY5AtRGGnVicS1L5cdRHp9oq6gamUMMm7Gjb1LRQyRzWKEyjVLMmw+2GBiVLDaikkJP5kFgUPhU6vgR9Y9TI1+W+9Ua9sn2OM= 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 1670772811316886.4093719308855; Sun, 11 Dec 2022 07:33:31 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p4OGE-0006v4-Oa; Sun, 11 Dec 2022 10:29:02 -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 1p4OG1-0006XQ-9T for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:50 -0500 Received: from mail-ot1-x32c.google.com ([2607:f8b0:4864:20::32c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p4OFn-0007Xy-Cy for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:39 -0500 Received: by mail-ot1-x32c.google.com with SMTP id z14-20020a9d65ce000000b0067059c25facso5840771oth.6 for ; Sun, 11 Dec 2022 07:28:34 -0800 (PST) Received: from stoup.. ([2806:102e:18:2efc:7b4f:f28b:eca6:b583]) by smtp.gmail.com with ESMTPSA id q24-20020a056830233800b006708d2cd8bcsm938140otg.65.2022.12.11.07.28.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Dec 2022 07:28:33 -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=6a8SyY9eZgzz8AJukTfXtGKf9OCDu+smgkxjoQH9ksA=; b=gvbPaXxWvlmWDqIkYhhurH84QUf1s67kFhC/ZOHYP+vBPZGmcZVCb9dcmwGKpp0WJp dJZmSOV9p5c1h9SX7K3oi8oAH1djJNhEBvuAqvuNG6EG6/WkaSzLWuhGb0NML1SDxNYB E14cqusnGgUNAtRC7lBwkFafSafa+aR48RzD21jlVe0grgN2Av8bxgBJDVrQy5z1VHvg 9nxYSwFzok9seppscXJkxr6xdLvldPL4T75ZzceQ7MTWioiVxQFKsWhIW0L2yRYnGo49 Coi/zZg17JsAncBH2PiRikOLtfCJpp6ozjOkQkfyb5vtIUxz9kYajCcRBVHFJW97fwJn 56Eg== 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=6a8SyY9eZgzz8AJukTfXtGKf9OCDu+smgkxjoQH9ksA=; b=xUV5JvF9La4gm+03OFeD6z5usc4xc59z4VDQiyALX61CQemjdETh9fC9epzcr3a6mu inwTLEnqhnoqo86DnVB6QB1xj9zWjsLnKOWtw93sWBAs8ztUnVOrb1FbGY1gZV/OVT4G 6uQeCPmE/MwcpX5EtOAdhpp24KwHoKVH0+XBwJweqMs1e0yE5cECASbgwScmapEVDB/J 5j9pyvaG8MznoOE14dLuQ0VMfITCrwMFNK7hGVvqwNxXW7EA38yZsulVRuKtlr6YstwL ppv7hX85aTIaTX/115T273VnwMldIARKwS05MeqOW02T9LzY+FI1qKWznv2zcCUiu9c3 FuWQ== X-Gm-Message-State: ANoB5pkWrEgyo568LwU0zFPmPhQan4rRYPMOaGfSl/0zHB49cAoj0hDC hESH1WaYunEaYW3mn6zzg+BPMRz6kKkRwju9x6w= X-Google-Smtp-Source: AA0mqf7fUj9jUjP/iHc3yU/XYggOLBx+Zz7B4vlt7A8U2HGe14MWPTb20MwUO2xqc46ZxiXWUUeWhQ== X-Received: by 2002:a9d:5e86:0:b0:670:48c6:2c8d with SMTP id f6-20020a9d5e86000000b0067048c62c8dmr6169354otl.28.1670772514481; Sun, 11 Dec 2022 07:28:34 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v2 25/27] tests/tcg/s390x: Add per.S Date: Sun, 11 Dec 2022 09:28:00 -0600 Message-Id: <20221211152802.923900-26-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221211152802.923900-1-richard.henderson@linaro.org> References: <20221211152802.923900-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::32c; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x32c.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: 1670772812619100003 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 d6ca8d7342..7ee69e78d8 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 Sat May 18 18:02:05 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=1670772586; cv=none; d=zohomail.com; s=zohoarc; b=CYunnmfxacgoNKwOU9rarUdQ5zsTeuW36lWx0dfAyVfA8SL8Tu5mhPePGsmMP9rb9kgDB7sB6fFZoVuCqgwHU2l2UwAbrJ0wAPFvdTi7eGelTNb22+xYP69YBBcY4btmUvuKuYa0DXeeGG0/3RpR8bte6QVujVnEuYdbG7TV+ko= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1670772586; 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=mAse/p7xIH0qBnFFrf5T3qVh7iOKaqKi4Tlx5tF25Wc=; b=hxgUYIKsphmYeOFTE9JNL81UN1fsEJ0i1F0gC2oI60OeTBQjjXCMFt1rwCrTiW1QOw7AX5yV15ZwXEz/CNrQtCCOevYDSpJ+Q3HtIMGLB4Ee9bj8iUzOG5LoKVsP5fvW4tUEwNOUEFLpO5F9UGca21LgwmWUZlHsoGnOIGH9QXA= 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 1670772586939508.59191571115093; Sun, 11 Dec 2022 07:29:46 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p4OGF-0006wI-Pn; Sun, 11 Dec 2022 10:29:03 -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 1p4OG2-0006Xa-CJ for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:51 -0500 Received: from mail-oi1-x229.google.com ([2607:f8b0:4864:20::229]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p4OFo-0007BV-Em for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:40 -0500 Received: by mail-oi1-x229.google.com with SMTP id n205so9090631oib.1 for ; Sun, 11 Dec 2022 07:28:35 -0800 (PST) Received: from stoup.. ([2806:102e:18:2efc:7b4f:f28b:eca6:b583]) by smtp.gmail.com with ESMTPSA id q24-20020a056830233800b006708d2cd8bcsm938140otg.65.2022.12.11.07.28.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Dec 2022 07:28: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=mAse/p7xIH0qBnFFrf5T3qVh7iOKaqKi4Tlx5tF25Wc=; b=lnf/biUopobVOI7oHKVp7xyj4T6jzJEV7n5M5QSF6P9UhlEl/YuOxKFeuqYO8/o90r VaOpNLt1OdANxbBqbZVcOClVMVC6hP860Mbv8UBQjSSMkn0eKcXw5G+fbOo/Ztny5gB8 UMsRZ9XZLkmiTpjsTpAP1HWYrBf6YOm1Mgwakf2gJQGpR7timr6XAkWgoKl5tJu6Ch2+ lqZeoEeyobN5BkVaVcY4pNf28lsoUZAC6mZTWrs+d4O6Y2f6XlNACyqR4TT/XxfbDkqO zvhFY4lciNUEt5Wx29/bJYMN1pBQBLQtfvTSTszgzrZQaEXnAJiJM5yBHOa2M/9/TVOL XNrw== 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=mAse/p7xIH0qBnFFrf5T3qVh7iOKaqKi4Tlx5tF25Wc=; b=n12ugSphicSFhGALvpTy2BVZN0Cb6L2+YjUilxu6HdK/ENaJJbTC0uMApszx2EzONJ jtqx/KRTs2+sgv3T0OPjTPr7nCGJYHd4E0jWcJWZAHFp9FE8GW93Rd5a5F/ZSGOkkkrt 5lxIkaRZNK3MPlzYw1KfQnTBToAt3orTnG8ZHbIPu3INuGlfYiQrezaXUd4L5TxWy4EC y+P2KLSX+yE/a+nh2LCvYZE3tc41qZmsIukwX2Ci95Hvb7RDiZCV2Mbp5FeaDaUXs39G UN7MZmhrTbPGnquFgr04YQNseoeff5r/5Pdv7VLxrFrrJHgwG4gyIgu20I92a4WS8BfP 77Mw== X-Gm-Message-State: ANoB5pnezxlZ+XJqHwUDb6Wc417KzIPgaf6Hm9GmzSqA7ju7yKUGZi/V jPrnoE4Qi+cRPrrHTnpZq8zPGl9SGHSJLzcRovg= X-Google-Smtp-Source: AA0mqf7R0RLNJiX5/QSuFgPr/QVCI48LsYVypfyVke+ElTBZEhezZ9ilGQrinaatca3ivZMIxkXQuw== X-Received: by 2002:a05:6808:1451:b0:35a:54d8:f11c with SMTP id x17-20020a056808145100b0035a54d8f11cmr8137740oiv.48.1670772515611; Sun, 11 Dec 2022 07:28:35 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-s390x@nongnu.org, Ilya Leoshkevich Subject: [PATCH v2 26/27] target/s390x: Pass original r2 register to BCR Date: Sun, 11 Dec 2022 09:28:01 -0600 Message-Id: <20221211152802.923900-27-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221211152802.923900-1-richard.henderson@linaro.org> References: <20221211152802.923900-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::229; envelope-from=richard.henderson@linaro.org; helo=mail-oi1-x229.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: 1670772587634100007 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 54d4250c9f..0e5a1062ae 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 268de1359b..7280498290 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -5704,6 +5704,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 Sat May 18 18:02:05 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=1670773119; cv=none; d=zohomail.com; s=zohoarc; b=kcOhitgpPPcSyJatqbULdplQVjEwX6lyplzoXzLGh7pQ11ejLB6zNjrYvhej8RBvhlIxFeI2e6qeU9wbm+e/vjxHPC7RzvNUpRbqKMXFuuoNxSJDddjtqTjFFVTU8qqd5YoX4JHGmh0Ccy1UIRLmTUAFEkWjYoBGXzUHL6NH8vE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1670773119; 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=DdEiZ7vjPxFiLeRTA0LuEkU3pLxvN6ovi79eXVPv7MI=; b=dZjp6jgMrTyEUesWSCC1Uoe75i+fRv+Bp0sLzeIdFMbi4ccBMrsC9gMtqaq9kMMSQ+j91C870IhTDWe56sbra6PT/OF1oep987ginZBPjOguPyinUMAkpVanugaRDmRrrL+QzJuhsS+2VYreqlkokdf35MX3NXB6Rl2uw7tH78M= 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 1670773119622462.86035997536965; Sun, 11 Dec 2022 07:38:39 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p4OG7-0006aS-Il; Sun, 11 Dec 2022 10:28:55 -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 1p4OG2-0006Xb-Dr for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:51 -0500 Received: from mail-ot1-x32d.google.com ([2607:f8b0:4864:20::32d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p4OFu-0007pC-GG for qemu-devel@nongnu.org; Sun, 11 Dec 2022 10:28:45 -0500 Received: by mail-ot1-x32d.google.com with SMTP id v19-20020a9d5a13000000b0066e82a3872dso5837821oth.5 for ; Sun, 11 Dec 2022 07:28:38 -0800 (PST) Received: from stoup.. ([2806:102e:18:2efc:7b4f:f28b:eca6:b583]) by smtp.gmail.com with ESMTPSA id q24-20020a056830233800b006708d2cd8bcsm938140otg.65.2022.12.11.07.28.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Dec 2022 07:28:36 -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=DdEiZ7vjPxFiLeRTA0LuEkU3pLxvN6ovi79eXVPv7MI=; b=I7DUBflXWzmyWBg+lf+l9N8VTtPZ7tcXdiJvCS6OhKNPCy27ArUHR8MipIvdyKMed7 Pt9HYKnvx7DgDyliP6AxgJn2TJPO4SS9Zm8XVvdQNmlZ8sREnqN42/aMjxNjqjsoz6Do JTERPmmFZY//Jav6LEO3aI90uDEBXhXxTay14ju8p5wZryPkOv0dyv3obU9FlO3uSnWp SbxlVFQ+qHjVk3HLGWwvFX8SCbgqRwa4opVAdBcyn3Q04vcpEQVB+Xi/ngD3Rx9Sj8ri SWzm+CQcKaUyCkSn3Hp5Ao+0ZUzdHWaY+9jLhEqyUP7i2gqBobnv374QEF1GFO2kyvp/ LnUg== 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=DdEiZ7vjPxFiLeRTA0LuEkU3pLxvN6ovi79eXVPv7MI=; b=xYnAwD5IEmiLY10vd1OggnmvSrtAgEtoQA3pCtNuY+RNDu5hXuypks7aU8iq+2E2VO WRPMZZnelJtjCtduidhXdmvqU8b/WZW+JJjozCcN1r6KiKqXTdqAKeEFJyuOIrguyMd2 meH+7H4Gom0D2oq3Q4ES8bsxVw2n9/5/3Ux7A2q+Rha2JWtbgk6t9Oc6zWu4AcXEwNSR WKX95QsEux0VpRPacllDRGKutpJQ2G2QtZjIgiocvA8CGWYzC+QXTe4uwE5ROd8E+PQS 9Gh2yj2cbp3UfweCpLd+9VzIVMlSsOs+KTdYFfOSzB8KtJKo5s2zrJExKZX8RpX/8ZJ5 hFSw== X-Gm-Message-State: ANoB5plIBTbvOFYFQ7m128ASd7PXliezwHLD5NYMZXDRz9hGEn94WFOY dUgRl94RPG+iqdNNnmsRAbHnTOCq7Vd9rkQx6mI= X-Google-Smtp-Source: AA0mqf6JmtHsfwPCApbl+3icEjjT6fdoPKYe+IJuyUGDWD7VDre8vgHOOT6jAsxJY/QI3Ghk6bNH3w== X-Received: by 2002:a05:6830:4412:b0:66e:a35c:c051 with SMTP id q18-20020a056830441200b0066ea35cc051mr8266250otv.35.1670772516703; Sun, 11 Dec 2022 07:28:36 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-s390x@nongnu.org Subject: [PATCH v2 27/27] target/s390x: Enable TARGET_TB_PCREL Date: Sun, 11 Dec 2022 09:28:02 -0600 Message-Id: <20221211152802.923900-28-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221211152802.923900-1-richard.henderson@linaro.org> References: <20221211152802.923900-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::32d; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x32d.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: 1670773121672100004 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Ilya Leoshkevich --- target/s390x/cpu-param.h | 1 + target/s390x/cpu.c | 12 +++++ target/s390x/tcg/translate.c | 86 +++++++++++++++++++++++------------- 3 files changed, 68 insertions(+), 31 deletions(-) diff --git a/target/s390x/cpu-param.h b/target/s390x/cpu-param.h index bf951a002e..467ecade8c 100644 --- a/target/s390x/cpu-param.h +++ b/target/s390x/cpu-param.h @@ -13,5 +13,6 @@ #define TARGET_PHYS_ADDR_SPACE_BITS 64 #define TARGET_VIRT_ADDR_SPACE_BITS 64 #define NB_MMU_MODES 4 +#define TARGET_TB_PCREL 1 =20 #endif diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c index 96562c516d..7e55134255 100644 --- a/target/s390x/cpu.c +++ b/target/s390x/cpu.c @@ -35,6 +35,7 @@ #include "fpu/softfloat-helpers.h" #include "disas/capstone.h" #include "sysemu/tcg.h" +#include "exec/exec-all.h" =20 #define CR0_RESET 0xE0UL #define CR14_RESET 0xC2000000UL; @@ -81,6 +82,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); @@ -272,6 +283,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 7280498290..036ddd9d20 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; @@ -336,9 +314,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) @@ -1172,6 +1180,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; } @@ -1181,6 +1190,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. */ @@ -1213,12 +1223,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(); @@ -1234,6 +1244,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 @@ -1247,15 +1262,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: @@ -6451,6 +6466,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; @@ -6463,9 +6479,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 @@ -6559,7 +6579,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