From nobody Sat Sep 26 20:51:03 2026 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=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1789164550; cv=none; d=zohomail.com; s=zohoarc; b=HigSe3MY3bvxfY9Fz7uvOFGHVRdpGddZJAGtJD6ao2fi5IY9q+5uAv+hlpjL4hQ9079VYQOW2xIqFYtKwo6hst6EB+6r+JS6wejw85zjECQqyVpnIJ3C8w9TIHBct9go9Suw2Pv5XSXC4PdQOmvbGTGyrZQ5PeYLALnW2y3xFF8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789164550; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=cbKC5Q3V9Z1CtGwVDb9xOEbdoQRexHod/M4ELvXdfDM=; b=GCMe4zyY+25EHCNKpoJdq03uv454iqPnrPLni38je8GKRab1jkUVzbMVxwIlWazrYEOfzerIaQOGg9hKUaDCtQtCdU+lrptr3BQWcFszdJaQRIfHIkn5oJgafS5mmNxsSXE5A1rTeIV7XjXJpWmn4EEqLeDvIixtwWk1pWXkYR8= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789164550400704.5904506363531; Fri, 11 Sep 2026 15:09:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x59Q9-00035e-7y; Fri, 11 Sep 2026 18:08:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x59Q8-00035S-7e for qemu-devel@nongnu.org; Fri, 11 Sep 2026 18:08:32 -0400 Received: from mail-oo2-x0d.google.com ([2607:f8b0:4864:31::d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x59Q6-0002GC-OC for qemu-devel@nongnu.org; Fri, 11 Sep 2026 18:08:31 -0400 Received: by mail-oo2-x0d.google.com with SMTP id 006d021491bc7-6b1ae6f1635so39215eaf.0 for ; Fri, 11 Sep 2026 15:08:30 -0700 (PDT) Received: from taylor-ubuntu.. (c-67-172-136-152.hsd1.co.comcast.net. [67.172.136.152]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-804de582afcsm1889193a34.16.2026.09.11.15.08.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Sep 2026 15:08:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1789164509; x=1789769309; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=cbKC5Q3V9Z1CtGwVDb9xOEbdoQRexHod/M4ELvXdfDM=; b=PzgN1kSGBkYB4tsQmL4BYL0LMxDAcmoez8DrzqPYPR38Gsk0oRCe/chjRc4Vgf5nOI IeD4Z9hJERGCtQRJYna96b8/yopxY9Tf79uv9g9eHeW7mODTvZi6Kc7lYZHr8630Q+/k DzZs61gV7Yz5AxB+1x2n/wp/vX6jDf2c1x5ouiYxHJ01AMOhR94qgj8IgEeJNiPBn/Xx G7bF7aLks5zUBE3xlO+2xMbFDzgJeikEL7VcJbTc2mgAW2IPKA7x1ZzdC35kOCQf5xNl 2S/lGpONhNUsO6AV32eHK4vr8ASNx7ZFG3fp6IEpdKRCHlGI3kCYVxHZBzJu5RjrtFLd 7rdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789164509; x=1789769309; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=cbKC5Q3V9Z1CtGwVDb9xOEbdoQRexHod/M4ELvXdfDM=; b=Va1+4bve3LUDjNUksPClkAuUx7ANVEla86EDLBJuJUf/6ruifCQJTIHw7on/Kt4Bv1 P9O4PunP3g0p7xftH5qIYMOP7YbRZ4YubL9K1szL1SklHJTWh2ugn7Eo8OtuRQLDu4o2 FlKDCnWIQouzrxT/ii5sOypg4zSCfI1PRlgKppFf1caokSdP9asTAV6WTA6NZJ5NtyRQ PdD5Qp3pkUDHhBXN245fo5blswmERS1rQfTUpDuynkttnENfhc9Aczuhl2ek7ZOUcAKK Gq7ghjfBV61FYuLJxwuF8IFGk5VRN86Ygyj6HlTBRO3Gm8FFxZ5S1UMUJkz/5SsV0zO3 ZOHw== X-Gm-Message-State: AFuF++lYT2iPp/agNIVrgL3ElMRfl/bT1pJpcAymWJyhweGNQkUrtTrV mvzHKbcSpD8A3LbcCRMUtu/22+kiIYaGlM9L3Mub0fYuYh76ssCul5IKmao+D2qg X-Gm-Gg: AYBFou2Xd3hILD+RfAuOUpopNyGZ26G8m8wTKRIfueblGVBxcf4yG29jEUoMxeeSwEo itwiIO1pX0uhZoo2MnDUCT0dLY6fdHf3kUUu6cow5Mlzxd0qTdu2VtCJxa7XR8DgS2gmzIB5csZ 7aPoAgdXnlY+JU1qRqU+uvone4+uvedTXnFWklbsL0kZDAiaYTP/7jEY5iZ2zibUeq2uqHS5Fl/ geqX+PX82G4Mmi3xnTGeiE8v2nUPEFZ1EMw30MTTyUAQPzoDz+96VHMN8MN3nU88UGJiV57BAbo o7OeeNbpfgd9CMEp/jQTtT1mOfrC3XiU3S2aCGSaCYzLAKHvSBIjGkWlin+x43oNXybfMTv16AK kN35wRrKJtmAmSXcD4qcuU/Gvm069LpC0TsOcaV/FsaGT9vcSL90i1KGcPmTH4aplBPLC7az8JD Cc7ffAisu/u+OIMCX3xW3+OPI2u1TunXrXp0XM483HeFVOrq6yWZhXmT54Sme2YcHdUn0KTSuar AcIJOE/kIEQBCuh/JXq7RWyeFYPXDczACbXf5RlLuBpYfwQkeimum4s4d7hA+OD X-Received: by 2002:a05:6820:2d04:b0:6c1:f832:9b6a with SMTP id 006d021491bc7-6c24e671d43mr288826eaf.33.1789164509123; Fri, 11 Sep 2026 15:08:29 -0700 (PDT) From: Taylor Simpson To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, sid.manning@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, richard.henderson@linaro.org, philmd@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, ltaylorsimpson@gmail.com Subject: [PATCH v2 01/10] Hexagon (target/hexagon) Move code out of gen_start_packet Date: Fri, 11 Sep 2026 16:08:16 -0600 Message-ID: <20260911220825.143115-2-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260911220825.143115-1-ltaylorsimpson@gmail.com> References: <20260911220825.143115-1-ltaylorsimpson@gmail.com> 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:31::d; envelope-from=ltaylorsimpson@gmail.com; helo=mail-oo2-x0d.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, FREEMAIL_FROM=0.001, 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: qemu development 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 @gmail.com) X-ZM-MESSAGEID: 1789164551757158500 Move clear_pkt_ctx and analyze_packet out of gen_start_packet Precursor to adding packet validity checks to analyze_packet Signed-off-by: Taylor Simpson Reviewed-by: Brian Cain Reviewed-by: Marco Liebel --- target/hexagon/translate.c | 45 ++++++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 19 deletions(-) diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index 5d3d67e5d3..52dd1f0266 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -562,28 +562,13 @@ static void mark_implicit_writes(DisasContext *ctx) mark_implicit_pred_writes(ctx); } =20 -static void analyze_packet(DisasContext *ctx) -{ - ctx->read_after_write =3D false; - ctx->has_hvx_overlap =3D false; - for (int i =3D 0; i < ctx->pkt.num_insns; i++) { - Insn *insn =3D &ctx->pkt.insn[i]; - ctx->insn =3D insn; - if (opcode_analyze[insn->opcode]) { - opcode_analyze[insn->opcode](ctx); - } - } - - ctx->need_commit =3D need_commit(ctx); -} - -static void gen_start_packet(DisasContext *ctx) +/* Clear out the disassembly context */ +static void clear_pkt_ctx(DisasContext *ctx) { Packet *pkt =3D &ctx->pkt; target_ulong next_PC =3D ctx->base.pc_next + pkt->encod_pkt_size_in_by= tes; int i; =20 - /* Clear out the disassembly context */ ctx->next_PC =3D next_PC; ctx->reg_log_idx =3D 0; bitmap_zero(ctx->regs_written, TOTAL_PER_THREAD_REGS); @@ -616,8 +601,26 @@ static void gen_start_packet(DisasContext *ctx) for (i =3D 0; i < NUM_PREGS; i++) { ctx->new_pred_value[i] =3D NULL; } +} =20 - analyze_packet(ctx); +static void analyze_packet(DisasContext *ctx) +{ + ctx->read_after_write =3D false; + ctx->has_hvx_overlap =3D false; + for (int i =3D 0; i < ctx->pkt.num_insns; i++) { + Insn *insn =3D &ctx->pkt.insn[i]; + ctx->insn =3D insn; + if (opcode_analyze[insn->opcode]) { + opcode_analyze[insn->opcode](ctx); + } + } + + ctx->need_commit =3D need_commit(ctx); +} + +static void gen_start_packet(DisasContext *ctx) +{ + int i; =20 /* * pregs_written is used both in the analyze phase as well as the code @@ -659,7 +662,7 @@ static void gen_start_packet(DisasContext *ctx) ctx->pkt_ends_tb =3D pkt_ends_tb(&ctx->pkt); ctx->need_next_pc =3D need_next_PC(ctx); if (ctx->need_next_pc) { - tcg_gen_movi_tl(hex_next_PC, next_PC); + tcg_gen_movi_tl(hex_next_PC, ctx->next_PC); } =20 /* Preload the predicated registers into get_result_gpr(ctx, i) */ @@ -1199,6 +1202,10 @@ static void decode_and_translate_packet(CPUHexagonSt= ate *env, DisasContext *ctx) words_read =3D decode_packet(ctx, nwords, words, &ctx->pkt, false); if (words_read > 0) { ctx->pkt.pc =3D ctx->base.pc_next; + + clear_pkt_ctx(ctx); + analyze_packet(ctx); + if (ctx->pkt.pkt_has_write_conflict) { gen_exception_decode_fail(ctx, words_read, HEX_CAUSE_REG_WRITE_CONFLICT); --=20 2.43.0 From nobody Sat Sep 26 20:51:03 2026 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=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1789164527; cv=none; d=zohomail.com; s=zohoarc; b=ZlF4GCaLmj6RPtvHFR53n3jZo8+PWNpQ1rUUb+4RleeHTZoGYyCTvNQaLB/RYhWhhDl6vxVib6jJz0iM7ABCScDRq7bQAQPAiVcmUFsEkA3J6So34L4UaesTTunLCu+pyghUOfmyCHTExkmLQMJ6TRtOjE7PFIxpkPceR8kto8s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789164527; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=6IZiCLmQxbchZtGStZBNSVoBHqkeceFSXfyikMt3syM=; b=e120VrgblY27du+s6YuM7rPOofY4a+NeHU7MELEiVcqAROcIjb1Q+2nuU2B7axdjtCjArRH/ueuv9lmWXtzy2ooLZkUoYccDqi1YzXA/15uEF010b4WBCA/h97TKAYFUa9SZjK3tMYzFvXJ3vGIc6epfwzwcxkRshzGUu07AMj8= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178916452692085.49901238623261; Fri, 11 Sep 2026 15:08:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x59QB-00036K-74; Fri, 11 Sep 2026 18:08:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x59Q9-00035h-OW for qemu-devel@nongnu.org; Fri, 11 Sep 2026 18:08:33 -0400 Received: from mail-oo2-x26.google.com ([2607:f8b0:4864:31::26]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x59Q8-0002GI-7G for qemu-devel@nongnu.org; Fri, 11 Sep 2026 18:08:33 -0400 Received: by mail-oo2-x26.google.com with SMTP id 46e09a7af769-80032c08611so209757a34.3 for ; Fri, 11 Sep 2026 15:08:31 -0700 (PDT) Received: from taylor-ubuntu.. (c-67-172-136-152.hsd1.co.comcast.net. [67.172.136.152]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-804de582afcsm1889193a34.16.2026.09.11.15.08.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Sep 2026 15:08:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1789164510; x=1789769310; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=6IZiCLmQxbchZtGStZBNSVoBHqkeceFSXfyikMt3syM=; b=jTvKH+dUKo9mZ2SEcSlzdfmGlfpBnK2FP7lyqAO0jqNpKZNGZBAAGJmdV5pTzFlnmj B+5YIt1oBQXrcup8PJWtdcLYFaeAEMg6YVWc7AufKx8CDamTuyLjzuQg4i/rUxE+sZa2 sV//9g1lrjI+DbPD/ZoW9zBCtPYRdKs91Zbi4v7npII8omh5WdqGk9kW5dLtw4U6Lbpn XpaPYb3J+kO8UMpJuU8btEls8uKspdBdHTVW0iQTWmyh3EBO1e2seKAFmCVSP4LhuqZ9 B0h38BQAk+KDUPNeEdi8b0/ie25QjjmBN6lTinEYHBbPxjrmEnZHo2cT8d7g+U8GGVv7 CWQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789164510; x=1789769310; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=6IZiCLmQxbchZtGStZBNSVoBHqkeceFSXfyikMt3syM=; b=O3LYK8GUeTLCxe0rRvVE8x7SrqmnmGkv+xiVSEmd0wA6b3sOl771AzZ1sEuYIDov3b bkuVoGt27jzMfgaO7a/9L//lDsQhx37i8XlkK6jTAuv2GRO8Kr1CKdJnjfdW4WhhVj5U 4hlROL5Z9XlbFtJULrDU9p9s56tRHFQdIxdKeLzd4WaaCACDz6B1mx3uLwAPTd+sSz4O 2ZRjUnJTqNLb9VKmXmOg92nmrTAtUdVIV3k3TEihOwU4tBU8HW4oQwdMimWV4/fNrjZY Qxlw+sDsZPmmw8zpHQ9BjSXc+KGpHvlMA5S7+lwFxFSxTyjxkBjMhALUsRqF03npQEOA oiHw== X-Gm-Message-State: AFuF++l0r+KZDZZUihP2HJUmme85j/4N4q+lXSziigQkgMGHyQRepXsm koN1csJn/pxF2mWKl2vpbJP76jJoqkG8Oz2QwGpqkYTKSRP3ocST/S95zxc7B5pM X-Gm-Gg: AYBFou3yyJv9dxdqQYBm3J1ocSWqztNOc7ZaVuxO0U9DBYgKRoiPlHQWYRjIUDGdm/A G2pw1V+k5yIn4gu8syiJHtay0p20IKqrAQteFwBKG9YSQC+1909ulALywUCxBXyJ8P3Kbw/QlKt 3hl5sQbVOwPK6Ja8Nv6CjgVyehRbTgS3/2TXgUeLiJPnl/yKUHXCd+cAMxBDY0X+alfXyaFn/eY sA7w+eW7T4YmqvfGuNNq2rfF4SI3aW/1Np7Iw1xdmdfRUyoAelSbFsMW75pbbR8ttItH1WnrxU+ Da+tZlyIAb9cixbAicwhs67HENl46vUF8IpBjtlmsIc+JuCYkVqZ2xs0WBIDQyHPnInMRRNU2kg hEkAPUOpMAV/FcQayE5r9vXBQ1f+4H4v0X4QekpJ17ybjqMwXzMi4aU1eJheb2cObZqpuu9ZXSc ij7Sr7sVT6+bZh++ptTsQ6MHws23ygfOEdThAB+ybFQx4tJomyIz9dZbru8dd1LbeoTqKhmBq7X +cAPc99dp7g9kwPJKGNT2ll0Wdh1b5krTVvM+rGlNqXkxzaCCP+gtrftcp1zyBU X-Received: by 2002:a05:6830:6d0a:b0:7e6:fa37:9797 with SMTP id 46e09a7af769-803fcc18462mr11141681a34.6.1789164510238; Fri, 11 Sep 2026 15:08:30 -0700 (PDT) From: Taylor Simpson To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, sid.manning@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, richard.henderson@linaro.org, philmd@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, ltaylorsimpson@gmail.com Subject: [PATCH v2 02/10] Hexagon (target/hexagon) Check for GPR multiwrite in analyze_packet Date: Fri, 11 Sep 2026 16:08:17 -0600 Message-ID: <20260911220825.143115-3-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260911220825.143115-1-ltaylorsimpson@gmail.com> References: <20260911220825.143115-1-ltaylorsimpson@gmail.com> 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:31::26; envelope-from=ltaylorsimpson@gmail.com; helo=mail-oo2-x26.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, FREEMAIL_FROM=0.001, 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: qemu development 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 @gmail.com) X-ZM-MESSAGEID: 1789164527845158500 For now, assert the new method is a superset of the old method We'll remove the old method in a subsequent patch Signed-off-by: Taylor Simpson Reviewed-by: Marco Liebel --- target/hexagon/translate.h | 6 ++++++ target/hexagon/translate.c | 23 ++++++++++++++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index d8628383f1..964e6ce0b7 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -41,6 +41,8 @@ typedef struct DisasContext { DECLARE_BITMAP(regs_written, TOTAL_PER_THREAD_REGS); DECLARE_BITMAP(predicated_regs, TOTAL_PER_THREAD_REGS); bool pkt_ends_tb; + DECLARE_BITMAP(gpr_multi_write, TOTAL_PER_THREAD_REGS); + DECLARE_BITMAP(gpr_uncond, TOTAL_PER_THREAD_REGS); bool implicit_usr_write; #ifndef CONFIG_USER_ONLY int greg_log[GREG_WRITES_MAX]; @@ -157,9 +159,13 @@ static inline void ctx_log_reg_write(DisasContext *ctx= , int rnum, ctx->reg_log[ctx->reg_log_idx] =3D rnum; ctx->reg_log_idx++; set_bit(rnum, ctx->regs_written); + } else { + set_bit(rnum, ctx->gpr_multi_write); } if (is_predicated) { set_bit(rnum, ctx->predicated_regs); + } else { + set_bit(rnum, ctx->gpr_uncond); } } } diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index 52dd1f0266..60441dc309 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -577,6 +577,8 @@ static void clear_pkt_ctx(DisasContext *ctx) ctx->greg_log_idx =3D 0; ctx->sreg_log_idx =3D 0; #endif + bitmap_zero(ctx->gpr_multi_write, TOTAL_PER_THREAD_REGS); + bitmap_zero(ctx->gpr_uncond, TOTAL_PER_THREAD_REGS); ctx->preg_log_idx =3D 0; bitmap_zero(ctx->pregs_written, NUM_PREGS); ctx->future_vregs_idx =3D 0; @@ -603,6 +605,19 @@ static void clear_pkt_ctx(DisasContext *ctx) } } =20 +static bool pkt_has_write_conflict(DisasContext *ctx) +{ + DECLARE_BITMAP(gpr_conflict, TOTAL_PER_THREAD_REGS); + + bitmap_and(gpr_conflict, ctx->gpr_multi_write, ctx->gpr_uncond, + TOTAL_PER_THREAD_REGS); + if (!bitmap_empty(gpr_conflict, TOTAL_PER_THREAD_REGS)) { + return true; + } + + return false; +} + static void analyze_packet(DisasContext *ctx) { ctx->read_after_write =3D false; @@ -1206,7 +1221,13 @@ static void decode_and_translate_packet(CPUHexagonSt= ate *env, DisasContext *ctx) clear_pkt_ctx(ctx); analyze_packet(ctx); =20 - if (ctx->pkt.pkt_has_write_conflict) { + /* + * Check that the new method is a superset of the old methond + * Remove in a later patch + */ + g_assert(!ctx->pkt.pkt_has_write_conflict || + pkt_has_write_conflict(ctx)); + if (pkt_has_write_conflict(ctx)) { gen_exception_decode_fail(ctx, words_read, HEX_CAUSE_REG_WRITE_CONFLICT); return; --=20 2.43.0 From nobody Sat Sep 26 20:51:03 2026 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=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1789164577; cv=none; d=zohomail.com; s=zohoarc; b=h5X4bnA0cY0vjLaaKFL6IxQQwvjVnsMZcDEUROru3GUC8HH4XimCcO4oNZv+Fsm724DaBKYSCR+LlKNfmrZfNYMU4uSN/HSXGWF2xWpRfsqw6++3kC/V4GijIVWQnFyAzk9VwsNUPckICHVmRtYQ5GNh9WM/7TPLwXE01HlNcVs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789164577; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=4DXHA2h7Br8C+LSz5HTQrqgfqpli3Jfh+QwtGKDTA7k=; b=eO2IMgV29gK+XpLtSNivVGjn7YvHmL1Cc1e5YuP3TppKxM9vRpPjac/J+O5179Rh/eJeBqrr1sGOdoJ+xncyuceRbzHeg5wzdMO0OGJIm5IDUEuaOalNcHpIBbdJPgo8kxvmn59VHuAI5Ds3KF3GxXbPD3SKtMIeYS7lF1ZOliQ= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178916457708521.93966482244582; Fri, 11 Sep 2026 15:09:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x59QD-000370-7U; Fri, 11 Sep 2026 18:08:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x59QB-00036L-Cr for qemu-devel@nongnu.org; Fri, 11 Sep 2026 18:08:35 -0400 Received: from mail-oo2-x10.google.com ([2607:f8b0:4864:31::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x59Q9-0002Gc-R9 for qemu-devel@nongnu.org; Fri, 11 Sep 2026 18:08:35 -0400 Received: by mail-oo2-x10.google.com with SMTP id 006d021491bc7-6b1ae6f5fc5so231642eaf.0 for ; Fri, 11 Sep 2026 15:08:33 -0700 (PDT) Received: from taylor-ubuntu.. (c-67-172-136-152.hsd1.co.comcast.net. [67.172.136.152]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-804de582afcsm1889193a34.16.2026.09.11.15.08.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Sep 2026 15:08:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1789164512; x=1789769312; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=4DXHA2h7Br8C+LSz5HTQrqgfqpli3Jfh+QwtGKDTA7k=; b=IY0v2RYpJQ0+Q55CRzQ34DyK4cZMhpYSpUAaUHq+KPHgK5r0fC6i04KFE3Y9mu58zG oRNbTB1lysYEKZUsHyl7H/eCTFJhiZr8LFgj8wE7xUF4dOtcLhgYl5Ebws82RE1KA2TX ib4ezoCbTTMuv2ZFibbfHjHNCt2UcbKzoONifT2dNXZubePk7cBVYK3JgvGph2+4JhPt SalO0YaBLNk+YmRVKi9i+5SDoudf8e30VIVTrrj4Gs27qhrKWJ7P9KHU2KVvz5PdeBi/ Qxj93d4ygtVAMAlk3eY2AydnNIb3YKPrRwo9pdGuRh6T9+GWozl9u1+KBn7S1hnqqHOM hfeQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789164512; x=1789769312; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=4DXHA2h7Br8C+LSz5HTQrqgfqpli3Jfh+QwtGKDTA7k=; b=YGXzHIcbAZR7oXb3qu5pNHmDG7CKiHsFE6qfnM1AFpcaDEBy+GsmBrlWZvGtXnS1jP EeFndQiaxRh5gQn+XyaPgXUMoG+We6yl/Djj1FuDxd0Yjsj6GwJ6LwgBRGRlgqrkYI3a HMfSS/2SVQ4mMqoIOEcrrq2ctjaz+c8t7zPK/wn5N6ig2Mn3slKG+ULQN4v9VaIfb6UT jcSxR222RMLEF4tBiBPoIMXQTBY2mWKi+tQFDCaqbByfGgJuwC+JeDCOhu4zV6EfXEwe tM8BAR2JdSylMsilhPDONPcocS6HXB3UXiGDDzprSdT2oE/bvftKCw7vjmRk78onhSLL eirA== X-Gm-Message-State: AFuF++maYTSmthcUZCqE40kpPqzThgG3ScO0jLGEdAhATQLglzFV9/Lc QEBogdAHhZYiP+uT2EZ5LDhC4p34vFlNuRJqrZ1/9mZTYgb8VZJJkbD3MjD0vZR/ X-Gm-Gg: AYBFou3P1l47z7BUyicFcexYU0LEavA3yCBDLBix+X4KkOVNJV7huHQmSh/kwEqb9Jj qzPoUiCAFCcUAYceEx/tO+IV0wy3rzKl06fv2j2DxljZKQb0BnHenU/KyY3MIhh9QiwTKblpq2m RxzzYLiujiNsmgm6I2xI7k1WaYggiHguIW3zRChpC26VAL1CDBDJVOc38yIcXU8PLkk2TaC3F0l oCtb88k99KiY47/Yx4GCDWw/6a/AnCk11EZ5DiBDCrvhTqyW7U05gThmle8bkIfD3+qRQNsZVga dTbmFWzllTppB5anAooAoVLXVcaIuL3lpYG6RH0TW2n7lXg+hxrSSXsl5pV5rac6zyKNiTxxN5K kej2Vr7bsp7AkbFZ4o9N3nQJrAXyd1a4F+vmf6mezq+9HMSsUh6csMFOpIIs0qAfQcUAKFrYtGp siIE8h8khK+mAbSemqebb8RYKdkUsODobzAgJ9Zch9w0kjOUX8sMsr2fQyNU7IniAn6wnhpbjUE xoW2DlfN7H2FHdJc51WVp4tGPz5zoXVJ21StALOF83yuZupm5aR2hWQaFxJ9NityCCbjZP/2V8= X-Received: by 2002:a05:6820:339a:20b0:6b1:8f51:e174 with SMTP id 006d021491bc7-6c0bdb6bb5bmr6719410eaf.29.1789164512580; Fri, 11 Sep 2026 15:08:32 -0700 (PDT) From: Taylor Simpson To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, sid.manning@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, richard.henderson@linaro.org, philmd@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, ltaylorsimpson@gmail.com Subject: [PATCH v2 03/10] Hexagon (tests/tcg/hexagon) Add tests for multi-destination instructions Date: Fri, 11 Sep 2026 16:08:18 -0600 Message-ID: <20260911220825.143115-4-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260911220825.143115-1-ltaylorsimpson@gmail.com> References: <20260911220825.143115-1-ltaylorsimpson@gmail.com> 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:31::10; envelope-from=ltaylorsimpson@gmail.com; helo=mail-oo2-x10.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, FREEMAIL_FROM=0.001, 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: qemu development 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 @gmail.com) X-ZM-MESSAGEID: 1789164577808158500 Instructions such as post-increment loads define multiple destinations These make it harder to detect multi-write conflicts Signed-off-by: Taylor Simpson Reviewed-by: Brian Cain Reviewed-by: Marco Liebel --- tests/tcg/hexagon/multiple-writes.c | 60 +++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/tests/tcg/hexagon/multiple-writes.c b/tests/tcg/hexagon/multip= le-writes.c index 8686317fdc..4305903547 100644 --- a/tests/tcg/hexagon/multiple-writes.c +++ b/tests/tcg/hexagon/multiple-writes.c @@ -143,6 +143,62 @@ static int test_zero(void) return sig; } =20 +/* Test multiple post-increment writes to the same GPR */ +static int test_post_increment1(void) +{ + int sig; + + asm volatile( + "r0 =3D #0\n" + "r1 =3D ##1f\n" + "memw(%1) =3D r1\n" + ".word 0x9b004021 /* { r1 =3D memb(r0++#1) */\n" + ".word 0x9b00c022 /* r2 =3D memb(r0++#1) } */\n" + "1:\n" + "%0 =3D r0\n" + : "=3Dr"(sig) + : "r"(&resume_pc) + : "r0", "r1", "memory"); + + return sig; +} + +static int test_post_increment2(void) +{ + int sig; + + asm volatile( + "r0 =3D #0\n" + "r1 =3D ##1f\n" + "memw(%1) =3D r1\n" + ".word 0x9b00c020 /* r0 =3D memb(r0++#1) */\n" + "1:\n" + "%0 =3D r0\n" + : "=3Dr"(sig) + : "r"(&resume_pc) + : "r0", "r1", "memory"); + + return sig; +} + +static int test_post_increment3(void) +{ + int sig; + + asm volatile( + "r0 =3D #0\n" + "r1 =3D ##1f\n" + "memw(%1) =3D r1\n" + ".word 0x9bc1c020 /* r1:0 =3D memd(r1++#8) */\n" + "1:\n" + "%0 =3D r0\n" + : "=3Dr"(sig) + : "r"(&resume_pc) + : "r0", "r1", "memory"); + + return sig; +} + int main() { struct sigaction act; @@ -164,6 +220,10 @@ int main() /* Illegal: zero encoding =3D duplex with duplicate dest R0 */ assert(test_zero() =3D=3D SIGILL); =20 + assert(test_post_increment1() =3D=3D SIGILL); + assert(test_post_increment2() =3D=3D SIGILL); + assert(test_post_increment3() =3D=3D SIGILL); + puts("PASS"); return EXIT_SUCCESS; } --=20 2.43.0 From nobody Sat Sep 26 20:51:03 2026 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=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1789164586; cv=none; d=zohomail.com; s=zohoarc; b=C7CyNaVxLHxlTtmav9dpUXCBZyjn9bJ6ZSPpLLeaWJXVQWt5tABekRcaGDqjpcpPYVelJaMmqFSPQUjfIgLdJECrYBInfAov757JsY/rJvn5brC3EGuXMk5tMFZzZ6JZbTLeVK1/+DC2GKYFdPYGhzhMJSF6NIlOQ+fR3QPMkNg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789164586; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=HfXY7kMR5L2dlHzZE3BfJREi3HVnjp+rTkjSxFORXAg=; b=krv5Z9/zgglSpOqdc6PjTbwGxw8mhqvD17kI8KEXiw4bSQ9bVe060FRtOAh0v7qJp9Q8qtJXhxfctRJq8glecHWNkNdLWG1j2MYAfArNRLsoR0H5A7WA2zN3JmMZhj4kyS83OShnZifvP0DS43P6DX7GAgbqVYZOsPAwWZy3kO0= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789164586990950.7518170860913; Fri, 11 Sep 2026 15:09:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x59QD-00037H-L0; Fri, 11 Sep 2026 18:08:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x59QC-00036r-RK for qemu-devel@nongnu.org; Fri, 11 Sep 2026 18:08:36 -0400 Received: from mail-oo2-x0e.google.com ([2607:f8b0:4864:31::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x59QB-0002Gn-AW for qemu-devel@nongnu.org; Fri, 11 Sep 2026 18:08:36 -0400 Received: by mail-oo2-x0e.google.com with SMTP id 46e09a7af769-7f4f0c89e33so312549a34.0 for ; Fri, 11 Sep 2026 15:08:34 -0700 (PDT) Received: from taylor-ubuntu.. (c-67-172-136-152.hsd1.co.comcast.net. [67.172.136.152]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-804de582afcsm1889193a34.16.2026.09.11.15.08.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Sep 2026 15:08:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1789164514; x=1789769314; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=HfXY7kMR5L2dlHzZE3BfJREi3HVnjp+rTkjSxFORXAg=; b=YE02eFRXdilnMrnjN+Knk+HtFITSP8u8Zw2hDzDNk06UXCKA2dC2Q/FivLyAdiwKxx ACWYL9W4rd8LrNrRp3HHHoCD2tb1sm34IOvJfn//YgIWeoxI81t7atDBXwOhKwjeD2VC A5ik+FLEBBSpRktGATSdarCBQS1meJGXmeueUWYVYpplE50lAmR2rp7hnqrVNii1KyHh fhZWoVKeCSs1uBkwGW2oeHOiIEOkC+vY4Xb0MnHhXTIb0odvDTseWIw7/CYXswpLFifm abNyheZGrOedAO22H9XEx/nV0R1oisUO+J6nzkuBLdRhc9YP5KjJbvHNZqtbISkXzVT/ phVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789164514; x=1789769314; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=HfXY7kMR5L2dlHzZE3BfJREi3HVnjp+rTkjSxFORXAg=; b=XGZyTq0GCThxXHHj8y6Ty4ArjmfGWhtbQIhKpZBm7KcPj8DDpYfznYtO38kZWO3t13 MglB35ypQtX+N6HtFNSrfqzzBWzuEHcmGk9hjaNrdTmXgimSclc51d2nBVJgz/g5Q3k9 i2BsaYMp7bl5p8l3/KwUg/DeZA5Igxb1FjeBPoy9EqFgGuTyrPsHoZxlHI8ftQXGRoWI 3t0dBcpyAW2RbfwMODkRuNcJ4K+wuVw892axnveqjaILcXmWQ5d+oENlkqxwuEdPxPiQ Hg+b/tbMHh+bfVEDGW1gImwu9/m+wn3Xj5bB7WNNIhn6EtMNdL2BGDQZ7IG1iUg927v2 zCDQ== X-Gm-Message-State: AFuF++mFwlskXcBIaRVDVhdkJl30BTB4Cg+EHfC+HyFgLhJAQkRxX/EV 50aDxuPxSCvxP86QbgZ9hppnHukqN6O/S5YkSY9lbAbxh7SMdEMlG0ZZPcRmyNOE X-Gm-Gg: AYBFou0tCkoxRq8mkfplbpBRJ9T8yUX5kBWG8oBexRuw8VbWWVjQbIdd1h2QxZyfGZd Cs103/osvBijEOHBHWDww9fuaQ+EeWm1L6JKsswme3UPb1xsI5GlWpk7GKVEgrMvJCXjMCbPM/1 hfhalhYfNYldkUfFf+To2Uk6x9giLwfcpxkBH0bJHZEdP5AYQFru6yWi/+ua6Wdak+4ovQBGmCw fatbEynfGx/sY2t7AaEqd8BaUxMua49DYIRbRXnTznaw7lcf3rHFEkp0YavBJRNQ2uMOZcRYHbY h0DJMPHXrsU/jAZwBcb6WVwUf6gpC7orAGvywVSp/9/kLWIQRiGcmKw6tJ6IG13N/iX0OblOKAw mU6nW6oBPmq/GrRDi2VZtvC/Svq8chdhP8+YDIzQ3Zc2UMn+1VFXh4OFjAGQ7qWkueC80WOf4M/ i80yBAR0FWWazPp3d9SwknZztew5IyVjdouUWj+SiS/c0QyEUmOk93W+diH7u1Uv/Me7hwb8ims a8ogCk6JIslQNtpKe7K8FNcEyX9FP5Ih68FqYV6z8/HN3ohbYn7bgTCCiHknxpy X-Received: by 2002:a05:6830:6d0e:b0:802:4cf7:ea46 with SMTP id 46e09a7af769-80401977040mr4919457a34.20.1789164514007; Fri, 11 Sep 2026 15:08:34 -0700 (PDT) From: Taylor Simpson To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, sid.manning@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, richard.henderson@linaro.org, philmd@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, ltaylorsimpson@gmail.com Subject: [PATCH v2 04/10] Hexagon (target/hexagon) Check for vreg multiwrite in analyze_packet Date: Fri, 11 Sep 2026 16:08:19 -0600 Message-ID: <20260911220825.143115-5-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260911220825.143115-1-ltaylorsimpson@gmail.com> References: <20260911220825.143115-1-ltaylorsimpson@gmail.com> 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:31::e; envelope-from=ltaylorsimpson@gmail.com; helo=mail-oo2-x0e.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, FREEMAIL_FROM=0.001, 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: qemu development 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 @gmail.com) X-ZM-MESSAGEID: 1789164588026158500 Signed-off-by: Taylor Simpson Reviewed-by: Marco Liebel --- target/hexagon/translate.h | 12 +++++++++++- target/hexagon/translate.c | 9 +++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index 964e6ce0b7..9ee5f25365 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -70,6 +70,8 @@ typedef struct DisasContext { DECLARE_BITMAP(vregs_select, NUM_VREGS); DECLARE_BITMAP(predicated_future_vregs, NUM_VREGS); DECLARE_BITMAP(predicated_tmp_vregs, NUM_VREGS); + DECLARE_BITMAP(vregs_multi_write, NUM_VREGS); + DECLARE_BITMAP(vregs_uncond, NUM_VREGS); DECLARE_BITMAP(insn_vregs_read, NUM_VREGS); int qreg_log[NUM_QREGS]; int qreg_log_idx; @@ -218,7 +220,11 @@ static inline void ctx_log_vreg_write(DisasContext *ct= x, ctx->has_hvx_overlap =3D true; } } - set_bit(rnum, ctx->vregs_written); + if (!test_bit(rnum, ctx->vregs_written)) { + set_bit(rnum, ctx->vregs_written); + } else { + set_bit(rnum, ctx->vregs_multi_write); + } if (type !=3D EXT_TMP) { if (!test_bit(rnum, ctx->vregs_updated)) { ctx->vreg_log[ctx->vreg_log_idx] =3D rnum; @@ -229,6 +235,8 @@ static inline void ctx_log_vreg_write(DisasContext *ctx, set_bit(rnum, ctx->vregs_updated); if (is_predicated) { set_bit(rnum, ctx->predicated_future_vregs); + } else { + set_bit(rnum, ctx->vregs_uncond); } } if (type =3D=3D EXT_NEW) { @@ -238,6 +246,8 @@ static inline void ctx_log_vreg_write(DisasContext *ctx, set_bit(rnum, ctx->vregs_updated_tmp); if (is_predicated) { set_bit(rnum, ctx->predicated_tmp_vregs); + } else { + set_bit(rnum, ctx->vregs_uncond); } } } diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index 60441dc309..ca22bae28f 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -589,6 +589,8 @@ static void clear_pkt_ctx(DisasContext *ctx) bitmap_zero(ctx->vregs_updated, NUM_VREGS); bitmap_zero(ctx->vregs_select, NUM_VREGS); bitmap_zero(ctx->predicated_future_vregs, NUM_VREGS); + bitmap_zero(ctx->vregs_multi_write, NUM_VREGS); + bitmap_zero(ctx->vregs_uncond, NUM_VREGS); bitmap_zero(ctx->predicated_tmp_vregs, NUM_VREGS); bitmap_zero(ctx->qregs_written, NUM_QREGS); ctx->qreg_log_idx =3D 0; @@ -608,6 +610,7 @@ static void clear_pkt_ctx(DisasContext *ctx) static bool pkt_has_write_conflict(DisasContext *ctx) { DECLARE_BITMAP(gpr_conflict, TOTAL_PER_THREAD_REGS); + DECLARE_BITMAP(vregs_conflict, NUM_VREGS); =20 bitmap_and(gpr_conflict, ctx->gpr_multi_write, ctx->gpr_uncond, TOTAL_PER_THREAD_REGS); @@ -615,6 +618,12 @@ static bool pkt_has_write_conflict(DisasContext *ctx) return true; } =20 + bitmap_and(vregs_conflict, ctx->vregs_multi_write, ctx->vregs_uncond, + NUM_VREGS); + if (!bitmap_empty(vregs_conflict, NUM_VREGS)) { + return true; + } + return false; } =20 --=20 2.43.0 From nobody Sat Sep 26 20:51:03 2026 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=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1789164558; cv=none; d=zohomail.com; s=zohoarc; b=lzaBOiFltZnUGm0cchKVFTQ90+djwPbN2mB/7K0xJWWZGfWsnuhmooOpM//DIhQToKP3IQeTNAYrcbiJ7/5j52Lcf6Zpo8f8QJcb5sHV/ohaOwl4PPvqnGpk6OCBeZPiM8LLawtFP6wBoCES3T29lS1ZL1DTP4s2RC/3DU/7Cek= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789164558; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=FlYU++VZ36XrURfV9zayG6TRI9jMCa2vNXzMZcBaP6Y=; b=BKDBb9+aToqYsmCXiK6l9xP85W6s304jEhgHe2yonDD5oyENbTyY0ICN7IrNHfYqy1zucBEjP/0UWrKqLg9w5APTdEFOQeuI6YwvKC2EtzhzKSd2t9y8PtkL+Yj7BxxSBFQA39iXh8c7iLCdvQ+3kJcTZTxJBYf3VhHSZ2LUMGI= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789164558430800.6731181109232; Fri, 11 Sep 2026 15:09:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x59QF-00037h-LJ; Fri, 11 Sep 2026 18:08:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x59QE-00037Y-Hh for qemu-devel@nongnu.org; Fri, 11 Sep 2026 18:08:38 -0400 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 1x59QD-0002H2-10 for qemu-devel@nongnu.org; Fri, 11 Sep 2026 18:08:38 -0400 Received: by mail-ot1-x32a.google.com with SMTP id 46e09a7af769-7f4e729368fso1549389a34.0 for ; Fri, 11 Sep 2026 15:08:36 -0700 (PDT) Received: from taylor-ubuntu.. (c-67-172-136-152.hsd1.co.comcast.net. [67.172.136.152]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-804de582afcsm1889193a34.16.2026.09.11.15.08.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Sep 2026 15:08:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1789164516; x=1789769316; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=FlYU++VZ36XrURfV9zayG6TRI9jMCa2vNXzMZcBaP6Y=; b=qJRl1XbtWOGEGO5dVKwEKcfPwpyKOfy7hGzuHgADttzddNu406/S713iKcTs+gww2r hl68jsyL+hxf83o9rHIiQKrDGYuF1KKyD1D0w0qA5ZO/SAH6TLmM+W7M3RsrnlkQ/4Fi TK0vxq007Ccu2u6JY/5Nez6O1bzor0SGMfZUyq0oCnde7s57uT3Xf9Bf/xfm4/dlp/3s 8q91dbsmdP+XqiwoPfa3sTO9+iMupmLnw2tvdLbtmBp4UOudRcRuocsSOT87t3v4gIEr kChz+FwxbMyfwaMC34S0xeKS+UtT1wfI2Pe3Dpgcrdbb0WEgX+XpNNKJG9FcKnHHwbtK 5Kvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789164516; x=1789769316; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=FlYU++VZ36XrURfV9zayG6TRI9jMCa2vNXzMZcBaP6Y=; b=iNTsGlxGD9uVgcztJ0A5JGeRWM+G+jQPkpzyrWDkEWV7gC1vM1/iMSZS0CdDgaPCBs gfwmBpxfsmEsC2UznQvZjcq7vPjnHDH6Z1F6fZb/HebftlByRl8OGVbd2Ogat+HbNu7D fADXRucoMGgN3BsTxgCBLO6ElqYlo4Hs8Z92FGb0WEorIhKaUnzZe3yfid+5AEb6QuJ5 FDrQJhoAFz/G1TP7KL529lV2qwnwq0XdQlHooVe/GoOmWEFSBpUGscSp7xYXTq461Xkf v62V0BdAiVUgD70j/7GAojCTSYZzBWIs+yX2PhnEZ2fptgNQKGijb8gjHBRrMaswIOsz Fkpw== X-Gm-Message-State: AFuF++meRrlwmkg7RuCkcJm3srji5ztbpY/a3rVs4C21Qdb/0WubtNy9 Hw56pL9oZxfIT69UVqXjzRVhOpCi+TkVeWjvaXXkBZW2qBogsKu9gihHFZGiuJ7J X-Gm-Gg: AYBFou2IqyeLXQiyN8myyioYjbZMzGLWD+0nPA+tsC/aFCXP1KGUcqsL7bYbQgTuo1z Q58cY9Wd1wVU0MXUxab5sVD+74vJ44Dsna32De+fZgY62195zDml92HSLY0vmb6Cmm+iBqpouBK 5omeKForwvJ1JRbFDERGb+7CPFPsOXTRWq/2Bl1GmNsQ3YgCxd788CNu6UfzYFXfco9P1l/00Wr 28l7YYkjJ/SG/RepEfazbW70e7PcIuCk9SrwfRM9xnfXLpyl6HAlHZRgfLQ2e9k0p8+lPHDGAVh iWRPXTCciBy0FbsYZjw7kKXyo/Rm/ToxqpLqZYDUvGh9m4JIaSofQlyhdzR8EJUAvXoO0ld3+Xj o1F1eaqGYJ4ZakegkR/i35DK2QF1YUJ2YqdEcFzOerglX2Z8Lw6HF1vFgDEWh0rQ3PnUHnndGKZ yiOZoTm7wOVZD6fAIMeh38W7qN3dAoea5qudZDaEgBGuqUMA4/ECeSr+DEbBOz4+b1CExQ6HseM 2hM93F9lZMAi0btrO9YA9GpwxJF3e+Zfbs4ony1hLP3Pn6gHuPj8o7Xz1zRiY8jDg== X-Received: by 2002:a05:6830:6181:b0:7fa:ac4f:793 with SMTP id 46e09a7af769-80401760f38mr5025875a34.31.1789164515855; Fri, 11 Sep 2026 15:08:35 -0700 (PDT) From: Taylor Simpson To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, sid.manning@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, richard.henderson@linaro.org, philmd@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, ltaylorsimpson@gmail.com Subject: [PATCH v2 05/10] Hexagon (tests/tcg/hexagon) Add tests for vreg multiple writes Date: Fri, 11 Sep 2026 16:08:20 -0600 Message-ID: <20260911220825.143115-6-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260911220825.143115-1-ltaylorsimpson@gmail.com> References: <20260911220825.143115-1-ltaylorsimpson@gmail.com> 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::32a; envelope-from=ltaylorsimpson@gmail.com; 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, FREEMAIL_FROM=0.001, 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: qemu development 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 @gmail.com) X-ZM-MESSAGEID: 1789164559777158500 Signed-off-by: Taylor Simpson --- tests/tcg/hexagon/multiple-writes.c | 46 +++++++++++++++++++++++++++++ tests/tcg/hexagon/meson.build | 2 +- 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/tests/tcg/hexagon/multiple-writes.c b/tests/tcg/hexagon/multip= le-writes.c index 4305903547..b93f2ab32e 100644 --- a/tests/tcg/hexagon/multiple-writes.c +++ b/tests/tcg/hexagon/multiple-writes.c @@ -199,6 +199,49 @@ static int test_post_increment3(void) return sig; } =20 +static int test_vreg_legal_predicated(void) +{ + int sig; + + asm volatile( + "r0 =3D #0\n" + "r1 =3D ##1f\n" + "memw(%1) =3D r1\n" + "r2 =3D #7\n" + "r3 =3D #13\n" + "p0 =3D cmp.eq(r2, r3)\n" + "{\n" + " if (p0) v0 =3D v1\n" + " if (!p0) v0 =3D v2\n" + "}\n" + "1:\n" + "%0 =3D #23\n" + : "=3Dr"(sig) + : "r"(&resume_pc) + : "r0", "r1", "r2", "r3", "p0", "v0", "v1", "memory"); + + return sig; +} + +static int test_vreg_illegal(void) +{ + int sig; + + asm volatile( + "r0 =3D #0\n" + "r1 =3D ##1f\n" + "memw(%1) =3D r1\n" + ".word 0x1e0361e0 /* { v0 =3D v1 */\n" + ".word 0x1e03e2e0 /* v0 =3D v2 } */\n" + "1:\n" + "%0 =3D r0\n" + : "=3Dr"(sig) + : "r"(&resume_pc) + : "r0", "r1", "memory"); + + return sig; +} + int main() { struct sigaction act; @@ -224,6 +267,9 @@ int main() assert(test_post_increment2() =3D=3D SIGILL); assert(test_post_increment3() =3D=3D SIGILL); =20 + assert(test_vreg_legal_predicated() =3D=3D 23); + assert(test_vreg_illegal() =3D=3D SIGILL); + puts("PASS"); return EXIT_SUCCESS; } diff --git a/tests/tcg/hexagon/meson.build b/tests/tcg/hexagon/meson.build index 4a2826c427..08c6e34c20 100644 --- a/tests/tcg/hexagon/meson.build +++ b/tests/tcg/hexagon/meson.build @@ -54,7 +54,7 @@ tests +=3D { 'load_unpack.c': {'cflags': cflags}, # Build this test with -mv71 to exercise the CABAC instruction 'misc.c': {'cflags': [cflags, '-mv71', '-O2']}, - 'multiple-writes.c': {'cflags': cflags}, + 'multiple-writes.c': {'cflags': [cflags, '-mhvx']}, 'overflow.c': {'cflags': cflags, 'exe_name': 'hex-overflow'}, 'preg_alias.c': {'cflags': cflags}, 'dual_stores.c': {'cflags': cflags}, --=20 2.43.0 From nobody Sat Sep 26 20:51:03 2026 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=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1789164562; cv=none; d=zohomail.com; s=zohoarc; b=IgfE5EYYmjPYgqaear4neuM9+0hk5KhPvnDx1zJHQjLSLXrK26Y7zkD3dbZgVn+TNvF/6iBjVaq5ZJwRTvOjEd2JK7S38q/0BprdiPrV2IDN0joAxNQ/kVdnLQ/Ip2esGHUCTknlcaq0s3JMK0xzCybUurJl7FlRPRN11rm4rB4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789164562; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=++rid+1Xx+Qp8w0gKQKJDj1SBpbPWKwyO/KL9Co2uPw=; b=N9CbZP4whVACxNkS6X40JLOHfGutnEQlExkLVMXycNom+0arsfg2olP/CmKHg2ygerW+7BUFNqtRV2Xx/duGFer6/t9vv5cMXUrYvq2v0hvr0eFGR4VfpWh5AcHVrVkaQkd8Q58rvubWt4htE1d3edkSy9U4ucL2DARXzUXnzeA= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789164562289403.9217926953777; Fri, 11 Sep 2026 15:09:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x59QH-00038B-2D; Fri, 11 Sep 2026 18:08:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x59QF-00037i-RF for qemu-devel@nongnu.org; Fri, 11 Sep 2026 18:08:39 -0400 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 1x59QE-0002HB-Es for qemu-devel@nongnu.org; Fri, 11 Sep 2026 18:08:39 -0400 Received: by mail-ot1-x330.google.com with SMTP id 46e09a7af769-805453b1c0cso458821a34.1 for ; Fri, 11 Sep 2026 15:08:38 -0700 (PDT) Received: from taylor-ubuntu.. (c-67-172-136-152.hsd1.co.comcast.net. [67.172.136.152]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-804de582afcsm1889193a34.16.2026.09.11.15.08.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Sep 2026 15:08:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1789164517; x=1789769317; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=++rid+1Xx+Qp8w0gKQKJDj1SBpbPWKwyO/KL9Co2uPw=; b=Ma89fOH7PQFSpvwLks+j6eaOzHsqU/flvu+y/9Yomwa1mp9Mlo4lmtTgzeiu9HQ1q4 ZjxRuxIAKYLHl8Yxu9hNRZeW0ZnM46mxfMZlEt68z+9y6oTr+ZYL0sKkWZd3UxSlOJ7i ofLSqHGntHKYlgU5ioMpB5be44yQRfYekNiG+VOHiO5tddcEkBXjhZ6bwYdcJd56jgp4 xH/MDt/pIPi/vdir7GNBC6QVUeS/OCFswJudG55VuTrcZLBmm5Czeegw9nPhTiTD8pWP J8EviJdhH1Oq4p+Z9BKW/FVQlH0mOHBjd5UC3dIeU00drRzTGI3kfeLDrok53/qXP+zS ADLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789164517; x=1789769317; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=++rid+1Xx+Qp8w0gKQKJDj1SBpbPWKwyO/KL9Co2uPw=; b=cR3YVN18zuF8bcNFNo+yqIoVeHjsKDi3g5bFiHuxdH6XZEFiMWqfEd7fQdwIPONecW uwKocvEEpguw+Tcgk8/+bfqA+LZAP2aT84ZavuoUIjgrQTs0vgx0WCbq+yp8cgqm8MLJ yQJe+KQAVxipkM0107gGGCyhVY24tCwBrtMzKXnW8s4KaIlAklu0vr5sArLC2ggfrlQw WjOtaZENqdQSCMdo0E0K0YxSAq/ktX9HWB0q/GnTgJDb8baMOOKw7PsnTfWStQaJfHxu /weY2ik9+X6KIq7Q+MnydEyWfl/uzSDsXui7++UvB3CwA0zWbQRWAtdSiTjAxUPX7J64 ze7w== X-Gm-Message-State: AFuF++nDZJe/6ZGZ5fpxZxgTcvNBlkIeiTvA/6+59GkEI7d7ZF7r8HMR RuAceWrm9rPbgVVC8KF9XlN7yd4EHhFIaktEts+8g09vv4fIqEP2LADn0x0xw9Ef X-Gm-Gg: AYBFou0ZBxDGNmerL9QDEL/na7+5z298ioIkYtJnclBOOC9A0X2/LEBwz13PtZzP0sW px1MryCPmPg8vEgFLJGN9DPQaMcAH5KBfBHQ/CKuroMYeMXeoAGrSnQUfpliy9RATQPXrgU6YIz RfFV7DoBlGUxdodngEfN25KoWKTx7zS7ShyWBRaOeJP4bfb3YVz4KO42sCAdkLGmeP90VQYkXbN fggkoUNH9stao/jDMaEnTrZGnHjFXwASWsL7iSmRPLXv5cC/2EIxSycaGjvLChuGqjG3jHREvEZ wI5HV+iyAy0EcvXD1kUoDfXXfKwfxs7RU8tm//qQ7L1uzZOZ265vxJS/qJvrbS5MLPu9zZ8yCEC LeHQiSiO6C2ITDCLEcLrqmZdsxeCfQEoD29hd1cp6deZQEJKjq0Y/kERojSbxoI6Uon3qdQAVhY Xklu+EeozFJeiPKT3KFAHT/eM/SdRSBVyBTIX6PGHQGq7w+/JJHmCVAqjhRjxD6OdS4OEaRULsU Ko2lyqJZLBTeegcKtZGbYMBjLGgi7d51Io5diIySZUujw61TAoQAqkJpQnTr2L5HnJ+oie+TV0= X-Received: by 2002:a05:6830:4129:b0:7e6:f2dd:93c3 with SMTP id 46e09a7af769-803ff328f8dmr5408711a34.15.1789164517147; Fri, 11 Sep 2026 15:08:37 -0700 (PDT) From: Taylor Simpson To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, sid.manning@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, richard.henderson@linaro.org, philmd@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, ltaylorsimpson@gmail.com Subject: [PATCH v2 06/10] Hexagon (target/hexagon) Check for qreg multiwrite in analyze_packet Date: Fri, 11 Sep 2026 16:08:21 -0600 Message-ID: <20260911220825.143115-7-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260911220825.143115-1-ltaylorsimpson@gmail.com> References: <20260911220825.143115-1-ltaylorsimpson@gmail.com> 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::330; envelope-from=ltaylorsimpson@gmail.com; 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, FREEMAIL_FROM=0.001, 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: qemu development 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 @gmail.com) X-ZM-MESSAGEID: 1789164563702158500 Signed-off-by: Taylor Simpson Reviewed-by: Marco Liebel --- target/hexagon/translate.h | 7 ++++++- target/hexagon/translate.c | 5 +++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index 9ee5f25365..b6cdf51c20 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -76,6 +76,7 @@ typedef struct DisasContext { int qreg_log[NUM_QREGS]; int qreg_log_idx; DECLARE_BITMAP(qregs_written, NUM_QREGS); + DECLARE_BITMAP(qregs_multi_write, NUM_QREGS); DECLARE_BITMAP(insn_qregs_written, NUM_QREGS); DECLARE_BITMAP(insn_qregs_read, NUM_QREGS); bool pre_commit; @@ -308,7 +309,11 @@ static inline void ctx_log_qreg_write(DisasContext *ct= x, ctx->has_hvx_overlap =3D true; } } - set_bit(rnum, ctx->qregs_written); + if (!test_bit(rnum, ctx->qregs_written)) { + set_bit(rnum, ctx->qregs_written); + } else { + set_bit(rnum, ctx->qregs_multi_write); + } ctx->qreg_log[ctx->qreg_log_idx] =3D rnum; ctx->qreg_log_idx++; } diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index ca22bae28f..815eecb60a 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -593,6 +593,7 @@ static void clear_pkt_ctx(DisasContext *ctx) bitmap_zero(ctx->vregs_uncond, NUM_VREGS); bitmap_zero(ctx->predicated_tmp_vregs, NUM_VREGS); bitmap_zero(ctx->qregs_written, NUM_QREGS); + bitmap_zero(ctx->qregs_multi_write, NUM_QREGS); ctx->qreg_log_idx =3D 0; for (i =3D 0; i < STORES_MAX; i++) { ctx->store_width[i] =3D 0; @@ -624,6 +625,10 @@ static bool pkt_has_write_conflict(DisasContext *ctx) return true; } =20 + if (!bitmap_empty(ctx->qregs_multi_write, NUM_QREGS)) { + return true; + } + return false; } =20 --=20 2.43.0 From nobody Sat Sep 26 20:51:03 2026 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=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1789164573; cv=none; d=zohomail.com; s=zohoarc; b=Cub6tcj8XfK2ejwOw5kYEwOmAEi497sZk7zkEr9lyCYu7bnJnHCnuss3+v8lGoHz4EIbfHqD24x633VekcLBWbYmlO/vO4fAPETEVH8A+1YT3+AJuzoI9kEh0wbPX09nthg5W+Y+0ImLyW79d85yZc+RS5SWkWphZ07RxeoLbxI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789164573; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=rAluVMYKeWfHKHjN37UGG1wr+/XyqdD3i5t7V6iE0KE=; b=lPdgoHYTM9w5A0g1wAGyyVYUf5au24R/DLFi7OZWHYYwTeCMRcBBHtaUao+4A0vTlv3T1dgSVpxJrh5H+G/eLpKQu3aY7B08kDID85eF7aObAVZi9rrdZ5FlXFjuTTVyr+IUCna+H+OIH8s8C3r6AOJLYsUmTBsQo5NibZf7ysE= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789164573057609.6707944747043; Fri, 11 Sep 2026 15:09:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x59QI-00038a-Vj; Fri, 11 Sep 2026 18:08:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x59QH-00038C-F2 for qemu-devel@nongnu.org; Fri, 11 Sep 2026 18:08:41 -0400 Received: from mail-oo2-x0e.google.com ([2607:f8b0:4864:31::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x59QG-0002HN-1x for qemu-devel@nongnu.org; Fri, 11 Sep 2026 18:08:41 -0400 Received: by mail-oo2-x0e.google.com with SMTP id 46e09a7af769-804e42309a5so35474a34.2 for ; Fri, 11 Sep 2026 15:08:39 -0700 (PDT) Received: from taylor-ubuntu.. (c-67-172-136-152.hsd1.co.comcast.net. [67.172.136.152]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-804de582afcsm1889193a34.16.2026.09.11.15.08.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Sep 2026 15:08:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1789164519; x=1789769319; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=rAluVMYKeWfHKHjN37UGG1wr+/XyqdD3i5t7V6iE0KE=; b=QwDzYG8i6w6dpa002E5UTcyXqzjp1xWEWvPt38dvfpN8JPYiZbQ5CBO7Oi7vCZODve VYOnKo+wrY3AzME0zH7sbrfOUQxO2Mxo5RFsfnXCiNkI2FfBa0dH5s5Gp01oE/v6V7xd M43mhnJCnXp5AR27SE/xAbZUkd8KVwQzqiDe6MaHdtIqN+qtEnqTSdfhNvCvXDxhwHNU YandoWRcCJMIs7j+9OjCxaQJZ+7Zwq1aNwqaSlIDklTEsUDUVbC26pWhehH5IpvbXVH/ 44NTTNnR1xsRLlJ+2rLOgLDpJF2A3GmWUji8B1RIvV3attvHNPu9O3fQCxb4fV7YbPQi Knqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789164519; x=1789769319; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=rAluVMYKeWfHKHjN37UGG1wr+/XyqdD3i5t7V6iE0KE=; b=TuPUygB37kts9BOBze1V6heDkF3Z3Jw98yPYPFDRLPBPuTDo28vcvpI9z5QWHwWucK 9nDGAIeUgBUf+DeDNoQReNzw1UzJSlxWQXbrctEz5C16T5GY3r7PilJnsiwyZVsy0bAV 3lGmCmMbH2m6FbdMlqUkt07W8mNWhzqmTgQ3aEh3U+6Sbf8qvGg4aWo2u2DLZ6XgEqgS EsJQ7m77IUHKrdQIQ4+DRXc7xlP2MqUFLKtMEOvIZyhAWruHfNyN62SpFykf4fysv+sp c07DZINNzDUPMB8QqOOrjmHWt+r88y8ViwAN7LEtI0jVyBefd/iNbZw+Em21b9r7UM8U FKQA== X-Gm-Message-State: AFuF++m/WXBcisFQlk9rRRJ7cz83o5ohyJ6DZaMvCQNi7zh7bpB9jrpj FG6s8BgGCBG0NjSjNAGpW4w80gyflE5oV6xd14DcnlFkEWvqzDKiDA8iQieqtaqQ X-Gm-Gg: AYBFou16pQRQM1nPrOxMFA9fNA0HPcT2OhRZw3U10oJspCahhvcvP2HP3IJlORv032i 6JqiMBe52He3nYX5/WF94qvHoWy1WhgBfBfyEmcfxa8x4Dz/njjseRxDq6yKR9oVv1KzaszjpSY s4r9pDxrRpqZ+QokdI7EOnercaZBDEIPGV8HorjZajTalnzrtksPv8kLoGC1HaLgvDsjvvkS7EI E/Ow96KPMVpQ6miigH80o6VltqqCKOACxJFQUweCd4fgFfDUum9gYz9WFKm2mkaOPgCziTv2S9U d9QD1Wf2TArL6zU2aB47UW/faa+WP/Rhbobqi/rwc4ov5135l+E69wOA03WuUhRChqV1ay/4WoL yiuxtVufZSAAOaAS3BbVDfHoLglqmuygSbCcobANfoHhocTLqpkwo44oouKUBKgIWMqZASx0vQk +Arjr5QDe4wIW0HZa9EJHYsE1wrds/HZ9XU6wFZ4cgQnvboXXLmClOyivKaekND0axSr2LriZlo S0ci69ubA8ldHWp9sVPWaEZwEXXxOItgrO/P1wm7DxHCbX7NQQhOlOzGMTT1Pk5 X-Received: by 2002:a05:6830:6f86:b0:7d7:ea9f:c0f9 with SMTP id 46e09a7af769-8059b382fdfmr266407a34.0.1789164519078; Fri, 11 Sep 2026 15:08:39 -0700 (PDT) From: Taylor Simpson To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, sid.manning@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, richard.henderson@linaro.org, philmd@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, ltaylorsimpson@gmail.com Subject: [PATCH v2 07/10] Hexagon (tests/tcg/hexagon) Add tests for qreg multiple writes Date: Fri, 11 Sep 2026 16:08:22 -0600 Message-ID: <20260911220825.143115-8-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260911220825.143115-1-ltaylorsimpson@gmail.com> References: <20260911220825.143115-1-ltaylorsimpson@gmail.com> 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:31::e; envelope-from=ltaylorsimpson@gmail.com; helo=mail-oo2-x0e.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, FREEMAIL_FROM=0.001, 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: qemu development 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 @gmail.com) X-ZM-MESSAGEID: 1789164573780158500 Signed-off-by: Taylor Simpson Reviewed-by: Marco Liebel --- tests/tcg/hexagon/multiple-writes.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/tests/tcg/hexagon/multiple-writes.c b/tests/tcg/hexagon/multip= le-writes.c index b93f2ab32e..86adc1331f 100644 --- a/tests/tcg/hexagon/multiple-writes.c +++ b/tests/tcg/hexagon/multiple-writes.c @@ -242,6 +242,27 @@ static int test_vreg_illegal(void) return sig; } =20 +static int test_qreg_illegal(void) +{ + int sig; + + asm volatile( + "r0 =3D #0\n" + "r1 =3D ##1f\n" + "memw(%1) =3D r1\n" + "{\n" + ".word 0x19a14048 /* { q0 =3D vand(v0, r1) */\n" + ".word 0x19a0c044 /* q0 =3D vsetq(r0) } */\n" + "}\n" + "1:\n" + "%0 =3D r0\n" + : "=3Dr"(sig) + : "r"(&resume_pc) + : "r0", "r1", "memory"); + + return sig; +} + int main() { struct sigaction act; @@ -270,6 +291,8 @@ int main() assert(test_vreg_legal_predicated() =3D=3D 23); assert(test_vreg_illegal() =3D=3D SIGILL); =20 + assert(test_qreg_illegal() =3D=3D SIGILL); + puts("PASS"); return EXIT_SUCCESS; } --=20 2.43.0 From nobody Sat Sep 26 20:51:03 2026 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=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1789164587; cv=none; d=zohomail.com; s=zohoarc; b=Aa5g31w1omVSrfPHnyh7BWAQ8l5Frm7pfQdXMz6Q62VMKlBQwRuV+d6DLN2Y02BCkKXVh4G1x4hi2+bfdGFQbHvbTp2Ea9Ww0RH5u9HhrrUbXzuOOb4Jw2MdHWRHDsxfcX613UyJJ0pnxAl4O+pdjJrI/yTg6INHMgl4QMX1Jos= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789164587; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=8zh+0+D/pnKMLt2g+JzInoJ6qXMZMaTiOcn0hMCXDRY=; b=Tq2ApC1ZFfdYtYTZ6/633Xdme1c9NBKkOLCXvHyqX5ki/kWF3z0T6q519vhO7CNi/1XBWVayGRNKCqIQrcP7yU55dRzqdeCIBO0cm1skhh7xQE8W/Zz90e7X7p2elQZ7NNVEM/w2t8SpIN8pL7nzqxVsWSrJO8BojeIWeaUDuic= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17891645872430.5887042502401982; Fri, 11 Sep 2026 15:09:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x59QL-0003DZ-GF; Fri, 11 Sep 2026 18:08:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x59QJ-00038b-Eh for qemu-devel@nongnu.org; Fri, 11 Sep 2026 18:08:43 -0400 Received: from mail-oo2-x0e.google.com ([2607:f8b0:4864:31::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x59QI-0002HZ-2r for qemu-devel@nongnu.org; Fri, 11 Sep 2026 18:08:43 -0400 Received: by mail-oo2-x0e.google.com with SMTP id 46e09a7af769-7fc4034841cso345238a34.3 for ; Fri, 11 Sep 2026 15:08:41 -0700 (PDT) Received: from taylor-ubuntu.. (c-67-172-136-152.hsd1.co.comcast.net. [67.172.136.152]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-804de582afcsm1889193a34.16.2026.09.11.15.08.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Sep 2026 15:08:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1789164521; x=1789769321; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=8zh+0+D/pnKMLt2g+JzInoJ6qXMZMaTiOcn0hMCXDRY=; b=hEQFBNDa9EhwT2eKpvNRAELL6DCrhPjpyF+dM3oTqekCQ2+HBikrXcdVt+xVC0Z4UD m4JrqKhIwNVRKKXik8qwi2K3Q/UbIJsv/ERgSiisovw2UecPdK6w+KRzBvuNBNoBOCU+ 0yKt5/kzkFFc2W2AzlBHltYIHp46860sZp73Wv+nXNHlN6Cp+pqiIUEUm1+07C4j0CSo 5TNHpY6ebL5vRSTTZ73n3yfRtT1PimkE8g1sHCd9pVDmOsK7z37OC0PSmUl+YbOYWNEP OYAm5HO7x1Cw8Dwi5QDI94svwEX/2D5TCtVmm1MxOVSp3U0XQQxBtBuDNVl3ZnSpKI7d Diiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789164521; x=1789769321; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=8zh+0+D/pnKMLt2g+JzInoJ6qXMZMaTiOcn0hMCXDRY=; b=HMaH0Nu0Kl7qax3CmKZlqBGd+wVxb6aHFCnisLHSHgAWsXSWO3sEUFtAml53yCmZ9F 2B8Q4tleI6UhzfYQ7xKjfFcTzFA4Ok+EQTt/BdS4DTdD7S/cTHIO0olrAyEHPOAPs+74 FoIr9P2Wcly5jlHdyfiLe8UFFEfBiCUztzWGy3pToSrSEi7WE0DyoZ05aarE0DWUlecC pl0h9d3vN8hRvE3chn5q6KgeSGtTF3sankRewtSFwM8vn8y7C3kCCrVWDyfxYbuoa/cM BiDYUdYBLbdOHHs5EWytzH2jiSugVZVW6AhX86sRWlvxiupbGouwlzAJD2CIWKXZUYkF Ca+Q== X-Gm-Message-State: AFuF++n4JSNAMMdrsVCuJmNrfZV33dfWYCUEgEFdlabd65rBWryLbj3Y 6PJ0/5yhAIPh9Vh6sTl7uxrSzENO1sVKHcg2AOnaabdnGMDYVjv00uqix97UROxC X-Gm-Gg: AYBFou3IUgAmINjmODSyE35g7MQCgekU5HAQuLnM+cPLgm6en+GdDsMt05OWGNLJq8Z 12WJPpz4XCU1g9sMy/MKAUsd2mQs0JmxR4OiKSuBXtDIcRmGjPuYfcNnsk3jeg+ABCfszMVAyWV soUqh2smWQV9pAlFIplIMFOTTvv5sw4KID8TlWTt3brzONoYXLDrJszULPZE9496XwcYbnYNx2x 4K9PZx7bQsFu6y/VATfRE70I4bqd+t7MUSUVEdO2SOJuCLkYcvgF3lDySoLsNne3xo9xnSfFG5f xFP5UTLEuUWmLOpqdjgbLMVEE1Fg0c7Vvf4ps+4cCsfYoFq21BGrMbTQkwGbnsu23mu2HYToqRg YBR4AI0Wi+HzwbgzR+N0G3gWQEd3GXWDU8h2tSuVhtqZm7VFMV4jf1OD4OwstBAVDmyy0EybU7l BuHDXoZkFDKTOcP9Ojz2rJkow2XWol0d4O55uHzFwBNJbiGsAHJyvWekC6TJjlO7ggiqc6b4nVr W/UP8GCblgKeW/Zd386nTaR8lTM/kCNQl3NmVtkTDUWU4fpSX/ivUxnq/T/Gv17 X-Received: by 2002:a05:6830:6ae8:b0:7fa:5c49:5237 with SMTP id 46e09a7af769-804013516a7mr5912276a34.16.1789164520858; Fri, 11 Sep 2026 15:08:40 -0700 (PDT) From: Taylor Simpson To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, sid.manning@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, richard.henderson@linaro.org, philmd@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, ltaylorsimpson@gmail.com Subject: [PATCH v2 08/10] Hexagon (target/hexagon) Check for greg multiwrite in analyze_packet Date: Fri, 11 Sep 2026 16:08:23 -0600 Message-ID: <20260911220825.143115-9-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260911220825.143115-1-ltaylorsimpson@gmail.com> References: <20260911220825.143115-1-ltaylorsimpson@gmail.com> 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:31::e; envelope-from=ltaylorsimpson@gmail.com; helo=mail-oo2-x0e.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, FREEMAIL_FROM=0.001, 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: qemu development 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 @gmail.com) X-ZM-MESSAGEID: 1789164588049158500 Signed-off-by: Taylor Simpson --- target/hexagon/translate.h | 11 +++++++++-- target/hexagon/translate.c | 8 ++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index b6cdf51c20..eb0d10d686 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -47,6 +47,8 @@ typedef struct DisasContext { #ifndef CONFIG_USER_ONLY int greg_log[GREG_WRITES_MAX]; int greg_log_idx; + DECLARE_BITMAP(gregs_written, NUM_GREGS); + DECLARE_BITMAP(gregs_multi_write, NUM_GREGS); int sreg_log[SREG_WRITES_MAX]; int sreg_log_idx; TCGv_i32 t_sreg_new_value[HEX_SREG_GLB_START]; @@ -105,8 +107,13 @@ static inline void ctx_log_greg_write(DisasContext *ct= x, int rnum) if (rnum > HEX_GREG_G3) { return; } - ctx->greg_log[ctx->greg_log_idx] =3D rnum; - ctx->greg_log_idx++; + if (!test_bit(rnum, ctx->gregs_written)) { + set_bit(rnum, ctx->gregs_written); + ctx->greg_log[ctx->greg_log_idx] =3D rnum; + ctx->greg_log_idx++; + } else { + set_bit(rnum, ctx->gregs_multi_write); + } } =20 static inline void ctx_log_greg_write_pair(DisasContext *ctx, int rnum) diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index 815eecb60a..f469452daa 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -575,6 +575,8 @@ static void clear_pkt_ctx(DisasContext *ctx) bitmap_zero(ctx->predicated_regs, TOTAL_PER_THREAD_REGS); #ifndef CONFIG_USER_ONLY ctx->greg_log_idx =3D 0; + bitmap_zero(ctx->gregs_written, NUM_GREGS); + bitmap_zero(ctx->qregs_multi_write, NUM_GREGS); ctx->sreg_log_idx =3D 0; #endif bitmap_zero(ctx->gpr_multi_write, TOTAL_PER_THREAD_REGS); @@ -629,6 +631,12 @@ static bool pkt_has_write_conflict(DisasContext *ctx) return true; } =20 +#ifndef CONFIG_USER_ONLY + if (!bitmap_empty(ctx->gregs_multi_write, NUM_GREGS)) { + return true; + } +#endif + return false; } =20 --=20 2.43.0 From nobody Sat Sep 26 20:51:03 2026 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=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1789164596; cv=none; d=zohomail.com; s=zohoarc; b=eao0QGRv7JgozHcotFvjGTEGo5+ieYOmDPWCNOox35Ydi2CE6A/f3ykvGl9oSA0be8XwQGI3/unB/0IuQWlzKhi+FwITBCzNXmgdBS/r0CG8WbgcdrZNXyzrBnu2gkXvEg6F7fVHRYw6kNFHSwcFFtyj3eM8BtYaAnv9mfUhY2Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789164596; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=XfPLMrWBdlBpzdnXiPC8LRdPUDQloqBBgHF7cxEjtlg=; b=PRbHK0zUZUR6PzvMBY1is67thfPK1VLz34k0sq4154RNeVRDJw2glPWiCQv1ZL4ZoDNn8N6nW17NOpqRLFO9lXk7orgXUlbkxSClGjiXN88tz9r1BaoUEfXt/6hDyeaQBxMYZS1ntmDtl+lei91gMFWuhTFX+fltwEkwYHlEkWQ= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789164596063196.72624084178403; Fri, 11 Sep 2026 15:09:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x59QL-0003GG-Vu; Fri, 11 Sep 2026 18:08:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x59QK-00038y-HC for qemu-devel@nongnu.org; Fri, 11 Sep 2026 18:08:44 -0400 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 1x59QJ-0002I1-2V for qemu-devel@nongnu.org; Fri, 11 Sep 2026 18:08:44 -0400 Received: by mail-ot1-x333.google.com with SMTP id 46e09a7af769-7ee4399c3abso1692337a34.2 for ; Fri, 11 Sep 2026 15:08:42 -0700 (PDT) Received: from taylor-ubuntu.. (c-67-172-136-152.hsd1.co.comcast.net. [67.172.136.152]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-804de582afcsm1889193a34.16.2026.09.11.15.08.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Sep 2026 15:08:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1789164522; x=1789769322; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=XfPLMrWBdlBpzdnXiPC8LRdPUDQloqBBgHF7cxEjtlg=; b=A9VCP08U4n4HajepqPxn+qODm0EIVlvundJVZyjPVocSk/qD8OJRoRCVGO4fFDLu5b 2htQFzxC0hUVB+pj9QAgVwmIpnA5AfbrkKD4ZoREre23rxvcl+79DrEoVyV0jm+hGtYz zvBh285LhlbVnyTHWtuZ7Lo4gRHtdbt6pgY3qlwlET/TliUNGKE2FXjrb8lwomEilp4T +HQvyFE9M2T3Z/FyGDrGFKZrOHxwaWizlgcW9N/2O0od2ijn9125zSRZA1rMKTxaxcow dqx5D3EBhQmorTWEUACaeW1YpobXQ6Wcj1Uqz8/g2297hdMJFj0bDxrDgcZgPxA/n94c Jdkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789164522; x=1789769322; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=XfPLMrWBdlBpzdnXiPC8LRdPUDQloqBBgHF7cxEjtlg=; b=SRhXygISk7+PXwstNeQ5uYVFy63aMaenuBk1XXdyER1X7fp/djJQx3kEHj4us+Bo1X Tbg55Px9DGBMxyd5FvMqAVGkMZRM9Ls0uQWlnO+NdKQug8SDCXK4HvPgGkcCQfUIQVOa qnBDkzLQqDs9wZBduCCjOx+7LCuV59IK0Yxzsgg36wQhv1PXuwHQVqpxTDYfmO8MjyrT /RSkMxw354dwMGteira2N+TuhbJ9v5xSCCPffzCvlYcfZpZueMtZpe36AwqyKGAbpJ9v trlMNFjLTeNTr4Efgtzxsoj7+qtcngawwvepmKIc/c6e1IE7eVsQFgLpjfPZmNzPqmdL wcPQ== X-Gm-Message-State: AFuF++nAiKumfYgFMsvNMwEB2aYusXzjjYNTqGY8q6O5M73araexojRW FNO2KyKKS6SWCRALHZUc+hm1sSQFlPCFee/whtc1+a/3HMsYe29jFF/CrSr2XJUT X-Gm-Gg: AYBFou1YSqTjxbw3LpeaqTiz7qWlCF8qYv/188UwvrvpSte8yZvEiGVFy+fGVleA7gn TynIm6tcVM1nlFRyK/JB1eg5LShzGDtsTd8mEj30OznRLl7/Uq/ILo7GfMWSKcz92ArcrNdUeEB /XDD2Rvt5HpahegVywifQ8x0YPbQcqJLzUCubBmewTn/CgktFXjfKfVkNkpWbEgkaEM5CSISWe1 0eSsS2moSnTPJHfPg/kRZaUNMj7PL51pX5VpaGKj32M1LC1UOoqCCO3psvJ3a+PlYW2b8KVLXGq t9NwQnITq+2LJN92Z5D/Tmfrlvj+nHZgzT2r8ofPhYHks6oWFgflURIG2O62tqb5FbNDi6OMhoc gLmtBIXTgcFrnozSgkVgB9nJIRCzpLUSDAxHBXCL0tk5us7/yDcCrY7rB2r6gRL5XulG0DX+Y+m Ho5CZurx0k3uZ5V0QJaYz0qtfCBHvScAiHVPx35vRaThohkhHQi+UpP1LTmnJdOP1+Xn95t7j1L zYvamet+DpycJ7UOXxvSk/0gqxtVapjsaYArK58l7NYsq31jwAYpWKm6Ymb0Zw7 X-Received: by 2002:a05:6830:2585:b0:7fc:bd37:c5b3 with SMTP id 46e09a7af769-80400a16e6cmr5613306a34.18.1789164521888; Fri, 11 Sep 2026 15:08:41 -0700 (PDT) From: Taylor Simpson To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, sid.manning@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, richard.henderson@linaro.org, philmd@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, ltaylorsimpson@gmail.com Subject: [PATCH v2 09/10] Hexagon (target/hexagon) Check for sreg multiwrite in analyze_packet Date: Fri, 11 Sep 2026 16:08:24 -0600 Message-ID: <20260911220825.143115-10-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260911220825.143115-1-ltaylorsimpson@gmail.com> References: <20260911220825.143115-1-ltaylorsimpson@gmail.com> 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::333; envelope-from=ltaylorsimpson@gmail.com; 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, FREEMAIL_FROM=0.001, 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: qemu development 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 @gmail.com) X-ZM-MESSAGEID: 1789164597820158500 Signed-off-by: Taylor Simpson --- target/hexagon/translate.h | 11 +++++++++-- target/hexagon/translate.c | 4 ++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index eb0d10d686..b90f7fff1c 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -51,6 +51,8 @@ typedef struct DisasContext { DECLARE_BITMAP(gregs_multi_write, NUM_GREGS); int sreg_log[SREG_WRITES_MAX]; int sreg_log_idx; + DECLARE_BITMAP(sregs_written, NUM_SREGS); + DECLARE_BITMAP(sregs_multi_write, NUM_SREGS); TCGv_i32 t_sreg_new_value[HEX_SREG_GLB_START]; TCGv_i32 greg_new_value[NUM_GREGS]; #endif @@ -125,8 +127,13 @@ static inline void ctx_log_greg_write_pair(DisasContex= t *ctx, int rnum) =20 static inline void ctx_log_sreg_write(DisasContext *ctx, int rnum) { - ctx->sreg_log[ctx->sreg_log_idx] =3D rnum; - ctx->sreg_log_idx++; + if (!test_bit(rnum, ctx->sregs_written)) { + set_bit(rnum, ctx->sregs_written); + ctx->sreg_log[ctx->sreg_log_idx] =3D rnum; + ctx->sreg_log_idx++; + } else { + set_bit(rnum, ctx->sregs_multi_write); + } } =20 static inline void ctx_log_sreg_write_pair(DisasContext *ctx, int rnum) diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index f469452daa..c40ca86810 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -635,6 +635,10 @@ static bool pkt_has_write_conflict(DisasContext *ctx) if (!bitmap_empty(ctx->gregs_multi_write, NUM_GREGS)) { return true; } + + if (!bitmap_empty(ctx->sregs_multi_write, NUM_SREGS)) { + return true; + } #endif =20 return false; --=20 2.43.0 From nobody Sat Sep 26 20:51:03 2026 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=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1789164559; cv=none; d=zohomail.com; s=zohoarc; b=BykNAwTgvI2dgdcGtyplcFScWI9yBPui/8ULnJz/uRBv4z16eTqtUUK6hwSV2UjpvmPzvqjpFmWKU0UFZ51Aw+3MvHvp6nBZuV1sLR6QaYICpdzDYZfnnRJM4ATTAdLD3Zg38we5t+XOtAzU+sbtlOvhuFm/W5e/aVghn72vGY8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789164559; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=jcu6G3w2xeruVpA+D/qeySkR6kANwAaXZsRk1FDBV3E=; b=YAO3tSa4CGToK00eqR1DLIsodXwmPQnKGu1JUEk/HeriduRQX+UsYDfpGChi4OviBzcBc4qLLxJC7C+wwz55I8dmS73m4IhLE90OwljXkMTbJciuB7dmzbQi6BSjOZ7nL2xTskq4Ng6gGQJtRUmcBT67E9jLkhKgcgM0fp7Hv0U= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789164559408162.75250686735455; Fri, 11 Sep 2026 15:09:19 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x59QO-0003Pi-FX; Fri, 11 Sep 2026 18:08:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x59QN-0003LJ-1G for qemu-devel@nongnu.org; Fri, 11 Sep 2026 18:08:47 -0400 Received: from mail-oi2-x11.google.com ([2607:f8b0:4864:32::11]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x59QL-0002IJ-8T for qemu-devel@nongnu.org; Fri, 11 Sep 2026 18:08:46 -0400 Received: by mail-oi2-x11.google.com with SMTP id 5614622812f47-4c206dc8b2eso38298b6e.3 for ; Fri, 11 Sep 2026 15:08:44 -0700 (PDT) Received: from taylor-ubuntu.. (c-67-172-136-152.hsd1.co.comcast.net. [67.172.136.152]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-804de582afcsm1889193a34.16.2026.09.11.15.08.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Sep 2026 15:08:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1789164524; x=1789769324; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=jcu6G3w2xeruVpA+D/qeySkR6kANwAaXZsRk1FDBV3E=; b=JQkrigkaKq00SJa8dfR3BcBxPbwiAR1NmzQ4gKjEQQUYqUXY5dYvyPs9TY418qNeC/ xWTCWFtRxhP8ufD+/T0ac9XgPOQc5aqSPZx1GcegWVTczZbQMTvr7mexS2mI3fo/1G3c jYkvQ+vOVUZ2LG9ex4uk7hH9aSN4phK1C1RVxD4r7Nku7gwZDydpCWIkxu5y5MWIQIN6 p1H8iw9Pqk4ajXzVLikCAaBnxipFj/extDlqlo51NXw+uOyvg+Q0+6VXguKf2NaOOPuG 1DBIbGAVs034w8EANrpwpqzfCO1W1E/UzJttpZ0TLe5V7QT4wLRRchObZWfqvAup5KlD AtgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789164524; x=1789769324; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=jcu6G3w2xeruVpA+D/qeySkR6kANwAaXZsRk1FDBV3E=; b=oKKUVopRsG7PgYeNm5BJa0XBw5PnPyvLSd2RrZZ+fY/WxwbQoz/1/lDQIsMmQxenHx diYObBr8fAJs4SYFK5Tv4ah+y51ZPUus+a+eB3Cqj7kLA9Bvkv88HE8gpe18dYDFHW/l XC/iVfF0buWTy0iIiXEUNSjDS/m78Ilrfx70uSp1DQPs+b+m8ni7+AvQDW+vRVzvXC9P z0raqz4CUm/7P4tyg9hLjSJ0ebg7tn7ANP0GX88sZX6jV4nuhz5XxQp5W6IZ1X7dkbXM nCCuRB83eJBCJWtSeD++nVOt8Bp5M1wQHARHTAi4HXXCkgjUBmzoSMNxVIw+EyZvPDl9 uZHg== X-Gm-Message-State: AFuF++kMSQMcabiyei0f8h/yTVZhaJHwEuOcBKvFi+aAkSdiIZzPejYy FRT/R2TrE3cWi3SG4z4qJYNv+gnZQ3RwkoebnkkPTbGLACQi8jo8BZUMlF7CL7ua X-Gm-Gg: AYBFou1+hVGZt30KmK2R24PdpeQZUE6tWWTvnfUqHk6JjK8jmebD0J7gi61DzNQSWpz SOs32Y+Gv85JTrN4HCdfdTyLzrNuC4qpYBlT2rEwc18vZqwXXScsP29MiEwsIoqU2XA/BvukAux 9ofNrecZYdz5UZNA0rGxAzE/km42nugj0O83nBvrcQ2xZN4ZKzg/9O/MLtLLF5cKZqxilYhLT31 JDdhKtSElMvLQJrrw6sK/GFAx+EFfEdjUoh3nO1VsgIJ/6T9wsbFCk4vGJpXDHjAXDOMKB8WsR3 Yr8HTQx80F+LDifMjvBLnPOpSxFhXv/utsL50v14tvaKKkb0XsjmnU6zT9yx0fcId3kiwdmHHOT 3e8QxYti5FWDpgiUq0ra8zwYxm2Xskovs1SwlEML+C5MKYkLujuqLOx8tcSWcN7PokdTCrTmNKD rlNHVLgCmUWM0CvWRdDq53NVVr97pRTibV5FzgK47lkAdbUI5emIzXExRDwrxvUJSjtu+V32SfK 3LJD1IfIjiHF3uswgVN6iaUHYmWQvn/fvH7M2UPIf8rj5lrdMMKAu9sNi8UVVGx X-Received: by 2002:a05:6820:220a:b0:6b1:2843:1312 with SMTP id 006d021491bc7-6c249998bd3mr382327eaf.0.1789164523922; Fri, 11 Sep 2026 15:08:43 -0700 (PDT) From: Taylor Simpson To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, sid.manning@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, richard.henderson@linaro.org, philmd@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, ltaylorsimpson@gmail.com Subject: [PATCH v2 10/10] Hexagon (target/hexagon) Remove old way of detecting register multiwrites Date: Fri, 11 Sep 2026 16:08:25 -0600 Message-ID: <20260911220825.143115-11-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260911220825.143115-1-ltaylorsimpson@gmail.com> References: <20260911220825.143115-1-ltaylorsimpson@gmail.com> 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:32::11; envelope-from=ltaylorsimpson@gmail.com; helo=mail-oi2-x11.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, FREEMAIL_FROM=0.001, 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: qemu development 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 @gmail.com) X-ZM-MESSAGEID: 1789164562060158500 We now detect register multiwrites in packet analyzis instead of packet decoding Signed-off-by: Taylor Simpson Reviewed-by: Brian Cain Reviewed-by: Marco Liebel --- target/hexagon/insn.h | 4 --- target/hexagon/decode.c | 54 ------------------------------- target/hexagon/translate.c | 6 ---- target/hexagon/gen_trans_funcs.py | 10 ------ 4 files changed, 74 deletions(-) diff --git a/target/hexagon/insn.h b/target/hexagon/insn.h index 835b1c954e..5d59430da9 100644 --- a/target/hexagon/insn.h +++ b/target/hexagon/insn.h @@ -41,8 +41,6 @@ struct Instruction { uint32_t new_value_producer_slot:4; int32_t new_read_idx; int32_t dest_idx; - bool dest_is_pair; - bool dest_is_gpr; bool has_pred_dest; =20 bool part1; /* @@ -74,8 +72,6 @@ struct Packet { bool pkt_has_hvx; Insn *vhist_insn; =20 - bool pkt_has_write_conflict; - Insn insn[INSTRUCTIONS_MAX]; }; =20 diff --git a/target/hexagon/decode.c b/target/hexagon/decode.c index b12e91fe6a..89e961331f 100644 --- a/target/hexagon/decode.c +++ b/target/hexagon/decode.c @@ -691,55 +691,6 @@ bool opcode_supported(uint16_t opcode, const HexagonCP= UDef *hex_def) return true; } =20 -/* - * Check for GPR write conflicts in the packet. - * A conflict exists when a register is written by more than one instructi= on - * and at least one of those writes is unconditional. - * - * TODO: handle the more general case of any - * packet w/multiple-register-write operands. - */ -static bool pkt_has_write_conflict(Packet *pkt) -{ - DECLARE_BITMAP(all_dest_gprs, 32) =3D { 0 }; - DECLARE_BITMAP(wreg_mult_gprs, 32) =3D { 0 }; - DECLARE_BITMAP(uncond_wreg_gprs, 32) =3D { 0 }; - DECLARE_BITMAP(conflict, 32); - - for (int i =3D 0; i < pkt->num_insns; i++) { - Insn *insn =3D &pkt->insn[i]; - int dest =3D insn->dest_idx; - - if (dest < 0 || !insn->dest_is_gpr) { - continue; - } - - int rnum =3D insn->regno[dest]; - bool is_uncond =3D !GET_ATTRIB(insn->opcode, A_CONDEXEC); - - if (test_bit(rnum, all_dest_gprs)) { - set_bit(rnum, wreg_mult_gprs); - } - set_bit(rnum, all_dest_gprs); - if (is_uncond) { - set_bit(rnum, uncond_wreg_gprs); - } - - if (insn->dest_is_pair) { - if (test_bit(rnum + 1, all_dest_gprs)) { - set_bit(rnum + 1, wreg_mult_gprs); - } - set_bit(rnum + 1, all_dest_gprs); - if (is_uncond) { - set_bit(rnum + 1, uncond_wreg_gprs); - } - } - } - - bitmap_and(conflict, wreg_mult_gprs, uncond_wreg_gprs, 32); - return !bitmap_empty(conflict, 32); -} - /* * decode_packet * Decodes packet with given words @@ -759,10 +710,6 @@ int decode_packet(DisasContext *ctx, int max_words, co= nst uint32_t *words, =20 /* Initialize */ memset(pkt, 0, sizeof(*pkt)); - for (i =3D 0; i < INSTRUCTIONS_MAX; i++) { - pkt->insn[i].dest_idx =3D -1; - pkt->insn[i].new_read_idx =3D -1; - } /* Try to build packet */ while (!end_of_packet && (words_read < max_words)) { Insn *insn =3D &pkt->insn[num_insns]; @@ -837,7 +784,6 @@ int decode_packet(DisasContext *ctx, int max_words, con= st uint32_t *words, /* Invalid packet */ return 0; } - pkt->pkt_has_write_conflict =3D pkt_has_write_conflict(pkt); } decode_fill_newvalue_regno(pkt); =20 diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index c40ca86810..ca23cc6d9e 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -1247,12 +1247,6 @@ static void decode_and_translate_packet(CPUHexagonSt= ate *env, DisasContext *ctx) clear_pkt_ctx(ctx); analyze_packet(ctx); =20 - /* - * Check that the new method is a superset of the old methond - * Remove in a later patch - */ - g_assert(!ctx->pkt.pkt_has_write_conflict || - pkt_has_write_conflict(ctx)); if (pkt_has_write_conflict(ctx)) { gen_exception_decode_fail(ctx, words_read, HEX_CAUSE_REG_WRITE_CONFLICT); diff --git a/target/hexagon/gen_trans_funcs.py b/target/hexagon/gen_trans_f= uncs.py index 19c1f9fdea..45da1b7b5d 100755 --- a/target/hexagon/gen_trans_funcs.py +++ b/target/hexagon/gen_trans_funcs.py @@ -91,8 +91,6 @@ def gen_trans_funcs(f): new_read_idx =3D -1 dest_idx =3D -1 dest_idx_reg_id =3D None - dest_is_pair =3D "false" - dest_is_gpr =3D "false" has_pred_dest =3D "false" for regno, (reg_type, reg_id, *_) in enumerate(regs): reg =3D hex_common.get_register(tag, reg_type, reg_id) @@ -106,12 +104,6 @@ def gen_trans_funcs(f): if dest_idx_reg_id is None or reg_id < dest_idx_reg_id: dest_idx =3D regno dest_idx_reg_id =3D reg_id - dest_is_pair =3D ("true" - if isinstance(reg, hex_common.Pair) - else "false") - dest_is_gpr =3D ("true" - if reg_type =3D=3D "R" - else "false") if reg_type =3D=3D "P" and reg.is_written() and not reg.is_rea= d(): has_pred_dest =3D "true" =20 @@ -137,8 +129,6 @@ def gen_trans_funcs(f): f.write(code_fmt(f"""\ insn->new_read_idx =3D {new_read_idx}; insn->dest_idx =3D {dest_idx}; - insn->dest_is_pair =3D {dest_is_pair}; - insn->dest_is_gpr =3D {dest_is_gpr}; insn->has_pred_dest =3D {has_pred_dest}; """)) f.write(textwrap.dedent(f"""\ --=20 2.43.0