From nobody Sun Apr 12 00:55:54 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=1771880241; cv=none; d=zohomail.com; s=zohoarc; b=BKbViVjZh0qBAuZYg9sePUBHn8cdirT89K77DNT0z6caZ+aCV6eSx9Vb3V1Fz0gD8DOUxLl5PTE73dUqPz0U5qJwR4DqdEajBBDai6/vQ/tMqTfJD+slUy79VdXHRKc4NA+PC761fodn31pQn4F/2+lju2jBHIWMfiR8w0lSSmE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771880241; 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=IMYAT0UdSq0H7pvUQzIReqBF5jE1ZDXuCD8wUNNtE9o=; b=cjqONStrIjQGT+7JulXxZ8QU9YNAhNYsUkQf/jKRZI9OQKIGU9d0WGWArJRr4+EDgxx3I/Y/corqO4KDLe46mW7LNiA3ZsRBxaQVYJKDq8TYDqFgV1AX/V/hyMofnRsPffPnaE3kcrClF/5lwjn36KFWUuNgg5+la+wj2m0rqeA= 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 1771880241251984.0766050372006; Mon, 23 Feb 2026 12:57:21 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vucyt-0006aV-Vs; Mon, 23 Feb 2026 15:56:40 -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 1vucys-0006a6-Hd for qemu-devel@nongnu.org; Mon, 23 Feb 2026 15:56:38 -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 1vucyq-000811-UA for qemu-devel@nongnu.org; Mon, 23 Feb 2026 15:56:38 -0500 Received: by mail-ot1-x334.google.com with SMTP id 46e09a7af769-7d4ba9abbecso4720227a34.1 for ; Mon, 23 Feb 2026 12:56:36 -0800 (PST) Received: from taylor-ubuntu.hsd1.co.comcast.net (c-75-70-169-246.hsd1.co.comcast.net. [75.70.169.246]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d52d04dbf1sm8011996a34.22.2026.02.23.12.56.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Feb 2026 12:56:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771880195; x=1772484995; darn=nongnu.org; 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=IMYAT0UdSq0H7pvUQzIReqBF5jE1ZDXuCD8wUNNtE9o=; b=CMlASvLunkEByf3FaYURu76ThHSPqctte0VxZqAXcHrk3e0az87AJAXXM332VRlhKY MSN3Lf8ItgtznFt4pseOQFfrMUVZjP5FoD6OCOQPxBCYdKJGfyHU7wqjd3YsldZMIQvG yox5Ew/0ffhIuIeDnFQ1Wu8STJBUbyP42vyxJKlmDKDhPLyJrhQE4Ie7yKf2L6oYMdih q694D324ZCLsOYyf0f3bb5cubZ1OH/7ebdtSRzN3/v4ayxQ3X6b+qxXTlYX41cOXXOOk yzN3RG3q6V+6W6OZzHL7GPZpYKevo39D4T4z10d7bG8DljLwojTfNEadOemBtQbtPxwJ FIlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771880195; x=1772484995; h=content-transfer-encoding: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; bh=IMYAT0UdSq0H7pvUQzIReqBF5jE1ZDXuCD8wUNNtE9o=; b=O0jIKrVVn59OUvet+0LYrmmryklZYeIJ4ucXoDla9eJQ+imJ71IGWUEZOJP8GRA7yF mDa6eyOOw7l7gGtrpuv4qKIOroquutTTrQsnAVKf941sZL/P6R7dcxG3KKC9pNGOouai SnLR40txPxtTbfDawYnVX5jRhsH9xkEwJNKdx78Ru9hXJVPO0lbBApHxlYqgP84yaRDs TiP0VSvSJSlp3c28Aj12nTNTC53ZAhPuvL4bxc7RJ8wK1p2wKw6hsZMlYnmof1Jruu/s BECYnwOTHy7FqUZuitd0OACy8OmEWpeXbDBWFJ0zlVDgjCfmp4R5extoysPKQMB9cunQ g1Lw== X-Gm-Message-State: AOJu0YyximKuc7tTs0d9Mdf3i9A2prfavwlO132n4wHTIwPJWwV32B36 6Nq1LfNaT4I1wGxFLoHXsSP3XILyK/vkz2WOjL1rFZXl1u9tW473SwGnDDuE5A== X-Gm-Gg: AZuq6aIiM8PsSLVfsv3ybB8T5p1eT+Qlonu0F+OZQYG1Se2oCwUmPAvE8GtQZbSYiGi GS3NH6FibwS3KeZX9c4FEeLkjrZJE1yRyXM+4gv8U5Gb9m7bHqT1lpL5Wuxwr1V1s0E7MjvsyPZ /qBz3Y1hRUryBCIIa1EQoe5+AwHdZFiDbwW6qqSt/7p2GDyjCMLYg1NfEv5buMqHdQXifGt7/pI bEyp1mE2bxNAWix++JV6smiACkQMRav7v3+tzZZvrx4WhGpP0RjdYaZ5gsSrxVIZyjaG57vGRHQ b2dPMu5G9MrtsuUosHoFRSS+3QCKke287ouoZ3wa88uNh6bVHJcC7AP187uxsjaHUZW8T7yrt6T NbsWzUg2cgE3qQgfDNjh7SK0OdtaSfP6CpQ2pusbBo8wmU/93x+q0hyVnuBDE8lo6LU5N/x4zoK RrvpJyvdx6KHpOQAkz6gAE9iGoM15bKedq/jYaNGSetTvF06Zd0FAHTwoOVlF5NyL15OIJifSJ2 LlxEgFJjqgqIaqS5Cq55N/hXri9maKTVb10Mg== X-Received: by 2002:a05:6830:2aa4:b0:7d4:9679:5797 with SMTP id 46e09a7af769-7d52bf3759cmr7188003a34.28.1771880195074; Mon, 23 Feb 2026 12:56:35 -0800 (PST) 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@linaro.org, ale@rev.ng, anjo@rev.ng, ltaylorsimpson@gmail.com Subject: [PATCH 1/8] Hexagon (target/hexagon) Move code out of gen_start_packet Date: Mon, 23 Feb 2026 13:56:25 -0700 Message-ID: <20260223205632.223714-2-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260223205632.223714-1-ltaylorsimpson@gmail.com> References: <20260223205632.223714-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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::334; envelope-from=ltaylorsimpson@gmail.com; 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, 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: 1771880242197158500 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 Tested-by: Brian Cain --- target/hexagon/translate.c | 46 ++++++++++++++++++++++---------------- 1 file changed, 27 insertions(+), 19 deletions(-) diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index 2fdc956bf9..6e32805202 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -407,29 +407,12 @@ static void mark_implicit_writes(DisasContext *ctx) mark_implicit_pred_writes(ctx); } =20 -static void analyze_packet(DisasContext *ctx) -{ - Packet *pkt =3D ctx->pkt; - ctx->read_after_write =3D false; - ctx->has_hvx_overlap =3D false; - for (int i =3D 0; i < pkt->num_insns; i++) { - Insn *insn =3D &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) +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); @@ -458,8 +441,29 @@ 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) +{ + Packet *pkt =3D ctx->pkt; + ctx->read_after_write =3D false; + ctx->has_hvx_overlap =3D false; + for (int i =3D 0; i < pkt->num_insns; i++) { + Insn *insn =3D &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) +{ + Packet *pkt =3D ctx->pkt; + target_ulong next_PC =3D ctx->base.pc_next + pkt->encod_pkt_size_in_by= tes; + int i; =20 /* * pregs_written is used both in the analyze phase as well as the code @@ -957,6 +961,10 @@ static void decode_and_translate_packet(CPUHexagonStat= e *env, DisasContext *ctx) words_read =3D decode_packet(ctx, nwords, words, &pkt, false); if (words_read > 0) { pkt.pc =3D ctx->base.pc_next; + + clear_pkt_ctx(ctx); + analyze_packet(ctx); + if (pkt.pkt_has_write_conflict) { gen_exception_decode_fail(ctx, words_read, HEX_CAUSE_REG_WRITE_CONFLICT); --=20 2.43.0 From nobody Sun Apr 12 00:55:54 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=1771880294; cv=none; d=zohomail.com; s=zohoarc; b=DtigKuQ2uouAMwwW4gy8eJqyT4a1Jzg1/voq1maquNLTc0BwCkRPRVm2g5+qregWFF563UdkNgQf0QqkTG5t2au0DrKWmEEKozEpM5HQgsQ8nEkwmBfqCpvCht3TmytnhjIbB7wWoVqd8JscAQRkSaniINHP/uYQoIwxZVGsPBo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771880294; 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=QFsLZqSPw6S0O+pghMfu9lM9hMoZ8EcgNpx7lqQrLaM=; b=OBMU+X6+3Tg5TeyIRgNwuDfh/Dq+P7i0batc0qz0LaqB+gnci9Rj1yFFYSTmBDr2l4u6P5YnPv4vX48YjO1xGVtwQZZjQKUPp3T8WdzVuNevBTLH1WLz0V/HmfNLEPI4kDa3cXLX4mzlijSHjXYNcbnJvyMFiP+Y0eXn8zPt5qM= 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 1771880294582520.8245715203951; Mon, 23 Feb 2026 12:58:14 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vucyy-0006d2-Hc; Mon, 23 Feb 2026 15:56: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 1vucyu-0006aW-1e for qemu-devel@nongnu.org; Mon, 23 Feb 2026 15:56:40 -0500 Received: from mail-oi1-x242.google.com ([2607:f8b0:4864:20::242]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vucys-00081J-D1 for qemu-devel@nongnu.org; Mon, 23 Feb 2026 15:56:39 -0500 Received: by mail-oi1-x242.google.com with SMTP id 5614622812f47-463a0e14b4cso1723205b6e.1 for ; Mon, 23 Feb 2026 12:56:38 -0800 (PST) Received: from taylor-ubuntu.hsd1.co.comcast.net (c-75-70-169-246.hsd1.co.comcast.net. [75.70.169.246]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d52d04dbf1sm8011996a34.22.2026.02.23.12.56.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Feb 2026 12:56:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771880197; x=1772484997; darn=nongnu.org; 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=QFsLZqSPw6S0O+pghMfu9lM9hMoZ8EcgNpx7lqQrLaM=; b=PGhtW++Gak0Xz5oktDojknresuhhlSCFIOe+IdhcSqSXhiTIU05HtV2TABWHCbyJu/ GP3RA64TzcWJV2v0y9HKnWOHgBDEC5AlL98RMCmdvgvY8vDNUESCrv4V9s9h2mmLxlo4 k43nmXL4s7CYWLCp75PDEQK8Z827GIZ2UWxPB3PaFLDPhyduq5be2R1M2G8VdafLt/1y M3fNfS+dO79qj21eJgRBTUOAt2LcLJsE1MY24jSvKFBiWw0xXPEHQWC3RPWYpqubxjNN 0SmTx1wyPsfm+PtUMJe5qmd9EL8bygjnYOmh0SwI8TiR0nlbV64oZi7oL4kCDumHX3Fo AuNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771880197; x=1772484997; h=content-transfer-encoding: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; bh=QFsLZqSPw6S0O+pghMfu9lM9hMoZ8EcgNpx7lqQrLaM=; b=os/pZZGkKuAv9ZdDcAnKyNHc+0njbn3zH2toQpa9hstXrZamWLBADDo8iiV9Gi0gQc H27tdpr7273DnlaEl6G9rfHdatQ0pusq9Aqz/iZc48SXNCI5EpyUW888JNEPES2wyTzj aNooqGfi6Cw/YRW1YgL9cTudkKo3LvBwqH/+EiUMj3o8ZrHy+V4ocKZAy6ccybeXHDUK S/6SkqHje/ozGlzX04hLVhC+wJto9Iw4793wXFoz8Ca/GqjoEqoQzi7Nv3lCamzQX6qS AnllYtsngiMt9Vb5VqdYzRjYpp4pew8KmzX0hKjqJxmNqE9bTkNdkxDgKyK2WkYuHcvO 8zLw== X-Gm-Message-State: AOJu0YxjK/DZJvF3gH1MxxNx1EvTLIBPnBOhjC/ixXY+MPejy3m328ZD JOdNy90YMVYLTUg1db7+68uxefwvhofJbdc83Eq26sVBW5oxf1x83qOaVPPfI0jk X-Gm-Gg: AZuq6aKO0+7S9IjKLeWxo8vvEXodtvTgeJufBpTx0tQPkfVuTdej5xvz5P4TH1SQoKz K4odWXG+dhUfdNC7H38pB0vahXDDeKU93joYd6/AxL1pOvpCfIs7tnJUBRU49exWVEF3XQPIHaL WMtBx841O4NODB3LgMzhFV1muzHXY6PFe0l3B1/NllcVbs6ZVwmAWoivPrIvKPzUMH3ioEkTDAg m0Fb3omWJFhmhjF3ocHeImknJ9mBZkPvb50PP16jv+rTWnWRCAo0MGygyGFYaInN2IvHeYShvf0 zuorsbB+Z7/HYojbgoZgzog91lLrk5lEELCznHpSItaRQGWvX1AbedHagN/9U5Eux5NvwZ24z5A GhYOtt+ohYorJXPVwTeTi1+ftLi9lP4ChBqBXFv93VdQVL0nA+z9v/b9sCENbYP1SlC0QfdVDOP WSy2iCJJia+kQvSnyNPZEDKnxNTLgQB/dLa/iowSLw6p5i6lPRitXZwTXOaD+mTTJnaUcp7gGvW D8zA6JII2a3yCbmh/mIfeKPxSMMYshQLWqXfA== X-Received: by 2002:a05:6808:c1b2:b0:45f:2042:8fbe with SMTP id 5614622812f47-4644616c0e6mr6467222b6e.13.1771880195993; Mon, 23 Feb 2026 12:56:35 -0800 (PST) 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@linaro.org, ale@rev.ng, anjo@rev.ng, ltaylorsimpson@gmail.com Subject: [PATCH 2/8] Hexagon (target/hexagon) Check for GPR multiwrite in analyze_packet Date: Mon, 23 Feb 2026 13:56:26 -0700 Message-ID: <20260223205632.223714-3-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260223205632.223714-1-ltaylorsimpson@gmail.com> References: <20260223205632.223714-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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::242; envelope-from=ltaylorsimpson@gmail.com; helo=mail-oi1-x242.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: 1771880296106158500 For now, assert the new method is a subset of the old method We'll remove the old method in a subsequent patch Signed-off-by: Taylor Simpson Reviewed-by: Brian Cain Tested-by: Brian Cain --- target/hexagon/translate.h | 6 ++++++ target/hexagon/translate.c | 22 +++++++++++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index b37cb49238..54276fb9d0 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -39,6 +39,8 @@ typedef struct DisasContext { int reg_log_idx; DECLARE_BITMAP(regs_written, TOTAL_PER_THREAD_REGS); DECLARE_BITMAP(predicated_regs, TOTAL_PER_THREAD_REGS); + DECLARE_BITMAP(gpr_multi_write, TOTAL_PER_THREAD_REGS); + DECLARE_BITMAP(gpr_uncond, TOTAL_PER_THREAD_REGS); bool implicit_usr_write; int preg_log[PRED_WRITES_MAX]; int preg_log_idx; @@ -113,9 +115,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 6e32805202..c5d161745e 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -417,6 +417,8 @@ static void clear_pkt_ctx(DisasContext *ctx) ctx->reg_log_idx =3D 0; bitmap_zero(ctx->regs_written, TOTAL_PER_THREAD_REGS); bitmap_zero(ctx->predicated_regs, TOTAL_PER_THREAD_REGS); + 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; @@ -443,6 +445,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) { Packet *pkt =3D ctx->pkt; @@ -965,7 +980,12 @@ static void decode_and_translate_packet(CPUHexagonStat= e *env, DisasContext *ctx) clear_pkt_ctx(ctx); analyze_packet(ctx); =20 - if (pkt.pkt_has_write_conflict) { + /* + * Check that the new method is a superset of the old methond + * Remove in a later patch + */ + g_assert(!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 Sun Apr 12 00:55:54 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=1771880297; cv=none; d=zohomail.com; s=zohoarc; b=flRY7J0fOaxfGFi1TCcbw+nolnv6uGr4THR4VvWo2j/mL5CAT6tMx4uaUnKPpDgiRy4KXr6c9ofxNvZj8x9y42Qqt89+Ymo89K0YwNTLyh9672R1JcNEmCk0APbfYk2KnMY5n3rwskHuPx12EhqAkAwuX8EkpLdrQytWY8812kE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771880297; 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=kbGYxRH5Nhc6iWgYZkB1bG5Yc3WIwi4tmU0ZtkqGJfxaHilGDdGECs4K4+snv6SOdgZ+jppzL9dRQhQ9IKw+1ixqaH2GXlee12frf1NIPnH+j1FtjGXt/9OKmyocahxdOrSLvgKIrKHNTpKo2dOkbU81kfcUaNYrjgj7g/VyqIs= 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 17718802973861002.0482222738901; Mon, 23 Feb 2026 12:58:17 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vucyv-0006bM-OS; Mon, 23 Feb 2026 15:56:41 -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 1vucyu-0006aY-5B for qemu-devel@nongnu.org; Mon, 23 Feb 2026 15:56:40 -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 1vucys-00081M-It for qemu-devel@nongnu.org; Mon, 23 Feb 2026 15:56:39 -0500 Received: by mail-ot1-x32e.google.com with SMTP id 46e09a7af769-7d4d8712b40so1756339a34.2 for ; Mon, 23 Feb 2026 12:56:38 -0800 (PST) Received: from taylor-ubuntu.hsd1.co.comcast.net (c-75-70-169-246.hsd1.co.comcast.net. [75.70.169.246]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d52d04dbf1sm8011996a34.22.2026.02.23.12.56.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Feb 2026 12:56:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771880197; x=1772484997; darn=nongnu.org; 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=4DXHA2h7Br8C+LSz5HTQrqgfqpli3Jfh+QwtGKDTA7k=; b=h7tW2tHSB+1w66eAxwYvvbvsVOEJuL+rvuSM9ixs+YCuhHakeLrVRu0FnNaw2dm2UB AXQblZUShIe6JOdTOuGvE8TKfwnu7gxkEaM624Efi2sZ7QK7RS21CVT4GH6u28I/tU8e y7PmHiWaBH7NUaV97RrbUgeLwpEVk7q30VqVO1K9rBPJdYL+FXzo93IMblEmuf3ETn9K cE08/Qcjii/2yrpwZVSazezwB6O53fJy4kRCb+j6Z0F7WxTFjd8TisggWD/fow8te9TG 0jnKOFWpy980Ce4p9QfX/+ap6TRSpaL8OXeDzPNqmVTwkE3RNaOzxSuxwQxWTIulXkO8 PlOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771880197; x=1772484997; h=content-transfer-encoding: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; bh=4DXHA2h7Br8C+LSz5HTQrqgfqpli3Jfh+QwtGKDTA7k=; b=ApaCOrx7Lbe7aHGSe7CtJs99aMWh/oM2Mkr/HHahf5O+LwAiAT6f+zRGDlC7mKPxFR Gb7maYquCnToDZtMWaWqCDex+BHJ6n66p6PWfMQ79QkgdWOfSAE+oFuwNOWmDSISHXXE HkZrc92ZAgfnHKaZa6bjAt5wSRQmhG9xFTrg2eblDMV04D8I8epDeBx3MW0zhNXgZtTv 0HwVntEN0bZKh17f9alP5SP2p/cQqq7fUwiws43z20QJfYYkfWWAq8LZNfCfvcRMeOWW caZT3mLbYd2c0M/jk8APq8N4/y5eUUks6IFBUni7rGAbKd3bQ1UElcwlWuHAMuTvBvgV gC+A== X-Gm-Message-State: AOJu0YzcFkawBaNnqOIBObIh3Uff4RSgyyfgJqiViFaZB1rmNdf2Ujgu Af+NwsjpEnckBSqaRhU1zcsnPWdUyOwOI4aid+l4NUa188uSgxa2W2DFNrDg5Q== X-Gm-Gg: AZuq6aLn2Q51fxA68+Abs5uuruHMJOPN7NmHGVFjRak6RfHH7YDA3ZuURjTR4YR07DB l4hD0JcvJotr1hwMSay3Tp+cUur2T3RQxyTmfMkL6rMxmWdqTwLwgWOaruPy0zvx4/UQraFHsXt d53zVRRFi5wADxBe7xDmt7SmCVUei/VqxUCZns7YxTBIT/45TaRM6qIWC5o04Rulbm4ilzj3M2y kTegn2+Pxf65idK8/X2jTyCCWLdevz2LWQa80JN6VW14NzF8vDiiv9/7gTquCvPJAs4+VJ9Q16B zamY9FhB/d+TLqoGJwzJSbtwjy1tZPuvu3E3p931Knx5McebgRF5hGyo0DqxmXjU/qO2X0psq3V WYc0qXa8ka5uNMUarKT6ITEyQKPSH7OJ5tHquSJAXvcdYa4O8/4nne3C5laYv/2OeK0yhPt8S+o 48lg044Yau5NcbTbxNpbQGGA6aZ4p4M3fhN8B/0nEXmuXk1XY2Tn8HMmxkvuOSSe4qCZdDUl0nU wndLItFPnJGyuAtDk38SpuX4Xl0LCwIP1Kc1w== X-Received: by 2002:a05:6830:6b0a:b0:7cf:d4b2:d664 with SMTP id 46e09a7af769-7d52be8032fmr5857102a34.4.1771880196928; Mon, 23 Feb 2026 12:56:36 -0800 (PST) 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@linaro.org, ale@rev.ng, anjo@rev.ng, ltaylorsimpson@gmail.com Subject: [PATCH 3/8] Hexagon (tests/tcg/hexagon) Add tests for multi-destination instructions Date: Mon, 23 Feb 2026 13:56:27 -0700 Message-ID: <20260223205632.223714-4-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260223205632.223714-1-ltaylorsimpson@gmail.com> References: <20260223205632.223714-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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::32e; envelope-from=ltaylorsimpson@gmail.com; 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, 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: 1771880297824158500 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 Tested-by: Brian Cain --- 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 Sun Apr 12 00:55:54 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=1771880299; cv=none; d=zohomail.com; s=zohoarc; b=VBqz/8e+QPfwiBpnwR5t3rh9epL9j2V0qx28P/gJApz6k2YWhisKYHPVRK7/UpQ2r1KwuXTGAenOyYR8rVEzspzortSy9n58+ymqK2dHepnT86ywbLTZYWa0x/zhZK+DICmJkuINqgmfyP0Kq3zFiiPtxAMffGUA2q+iipQ8ioY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771880299; 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=1EmF9OpunbnhRanJDS843zSLdQ1syEQoQBF13qfTD/g=; b=YDt9HPwZRKUahR5vJiKCZIQIwGOBwWOUix2wcevRqSg99n6sgJE6kob82sfSTOrM9dZmhEsrhg6iYkpjH9WBVX2ccmP95xLWPbscvWTZ9Y62Pk6M7i+0j/74pZyzOZxPDKT8YFFcufiF3l/IGU0LtoP88s21qfN6GALd4Uf0xis= 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 1771880299583672.5477507040132; Mon, 23 Feb 2026 12:58:19 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vucyx-0006cF-D9; Mon, 23 Feb 2026 15:56:43 -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 1vucyv-0006bE-Ac for qemu-devel@nongnu.org; Mon, 23 Feb 2026 15:56:41 -0500 Received: from mail-ot1-x341.google.com ([2607:f8b0:4864:20::341]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vucyt-00081c-7D for qemu-devel@nongnu.org; Mon, 23 Feb 2026 15:56:41 -0500 Received: by mail-ot1-x341.google.com with SMTP id 46e09a7af769-7d4ba9abbecso4720277a34.1 for ; Mon, 23 Feb 2026 12:56:38 -0800 (PST) Received: from taylor-ubuntu.hsd1.co.comcast.net (c-75-70-169-246.hsd1.co.comcast.net. [75.70.169.246]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d52d04dbf1sm8011996a34.22.2026.02.23.12.56.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Feb 2026 12:56:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771880198; x=1772484998; darn=nongnu.org; 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=1EmF9OpunbnhRanJDS843zSLdQ1syEQoQBF13qfTD/g=; b=XPxtfr28r97zDbxqE4R/rGns41Oz4CHkJjkz9Oni6S4/wvFQXWLiIITE79L9PTAobq y2v76ACFhCBNeEeEJtHie85x+ndl0U+R7BeteO2CKzKKh1ijSulC6dBjseY0O+44iAKS YVBLOl/nETuPEkiQEyo/ISOCV4Icl1FgK2KFeDr0k4rwOwmIZccObmGCD4OjKqAz80q7 cVkEjMQg2Wce5S+H4dKbm1gYfebPnDkDqZE/8K1sMBeze/H8eOlwpkBM5Mvq7YxsOvVz 0bx4ivt3YAhk+NTFTE9S409/pCPmKtfZ/UkHqP1gQhyTBHKhqu/xY+e/8YrWO6TZqdr1 uh5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771880198; x=1772484998; h=content-transfer-encoding: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; bh=1EmF9OpunbnhRanJDS843zSLdQ1syEQoQBF13qfTD/g=; b=ogfwxNz6CHNQG3VLVKtuGJNml7L3EXARCMFaH1cV1+NganlnruxaCOWk7ym+F64CNz VPqBsoMEC1LiGAXBa705FYQsZpRqE8P2s+J/AGGGCTKBQiUOw/JXReLhqDfCxZMm5LmE omSnTv03IZ7d/QqjhZrtQ6kbQRX1UN8t5SDquF5UnqztXDeyJxdoR5DiuHhQ1gMSB202 ovM4scpJwaWCq9muBLY/i2oO4SFS4bne3vg34D6icvdCPLEGrIx8Qf2C83VSR2CV96mv ArzX9Yjk53iW6G5nKhUd4LExr5Qbp1ucE1VZXduRwVjzyO1LJH6aW9jf3R7AFAy4qR5u X3Aw== X-Gm-Message-State: AOJu0YxMlVNdWsPILfCeWUPgDN1vBWH9bKMmEv2tC7CF1iwawa2bAeVx uq/G9w5+LSBo8tHqpZBno23Ny4auuM85RZJXSa7CGF377zonw1eMPDH8ncFn1gxS X-Gm-Gg: AZuq6aJFta42aQ9ma4aDUL7lpMwu58Pq0PdqQ+rT0DLE5Su576Sssv+6+VMpbQc+Cui jnd5UlUJiJIxyF6lTtbwE8A6pPPX/8xIylLRClRJtfNI4oVhKRezPSRdWHHJz4YscsKhvziuXvY 1LiJeBHya7nrw5CO74x/9cLj54LsgxsxOQOefAnLFX0uQjx2eruVTZgmlo2Sf6gDP1JbUVqThT+ frVR0qsyEgPaTvyqa+D+SYl4MdJQ19kWApDBDJlDe+Zx+QqvbkaSZYT3eR6deMfl3424loofq8b KLQjFkxO2Z0qs5uX7uOYnAFhJxrwBRHSbk+9hhh0atEerqvfgYpzgjTedFkdV32xxkT7jiLNouU 7C5L3oB111wdqDJ2o0jFeRNqO2bjgFswIYQ1V0fOzhSlZiopxG7XLIh6Lvpc/H0tNXpxQoQxLeX SjgcMUOlNpRrChSKSHO2ZmG4oCVXK/ouoXEBTWxsIZ73MkrMShWoZBwFMcBSsEila8CbCLTxkKR Ll6SgI71/r+9GqCAMB5vSja28bvnM2c2Wsa6Q== X-Received: by 2002:a05:6830:388d:b0:7c7:1e8a:c9d8 with SMTP id 46e09a7af769-7d52bf7d4d0mr6371102a34.36.1771880197933; Mon, 23 Feb 2026 12:56:37 -0800 (PST) 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@linaro.org, ale@rev.ng, anjo@rev.ng, ltaylorsimpson@gmail.com Subject: [PATCH 4/8] Hexagon (target/hexagon) Check for vreg multiwrite in analyze_packet Date: Mon, 23 Feb 2026 13:56:28 -0700 Message-ID: <20260223205632.223714-5-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260223205632.223714-1-ltaylorsimpson@gmail.com> References: <20260223205632.223714-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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::341; envelope-from=ltaylorsimpson@gmail.com; helo=mail-ot1-x341.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: 1771880299847158500 Signed-off-by: Taylor Simpson Reviewed-by: Brian Cain Tested-by: Brian Cain --- 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 54276fb9d0..4ef9357aad 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -60,6 +60,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; @@ -174,7 +176,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; @@ -185,6 +191,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) { @@ -194,6 +202,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 c5d161745e..9aea3e7ae4 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -430,6 +430,8 @@ static void clear_pkt_ctx(DisasContext *ctx) bitmap_zero(ctx->vregs_select, NUM_VREGS); bitmap_zero(ctx->predicated_future_vregs, NUM_VREGS); bitmap_zero(ctx->predicated_tmp_vregs, NUM_VREGS); + bitmap_zero(ctx->vregs_multi_write, NUM_VREGS); + bitmap_zero(ctx->vregs_uncond, NUM_VREGS); bitmap_zero(ctx->qregs_written, NUM_QREGS); ctx->qreg_log_idx =3D 0; for (i =3D 0; i < STORES_MAX; i++) { @@ -448,6 +450,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); @@ -455,6 +458,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 Sun Apr 12 00:55:54 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=1771880310; cv=none; d=zohomail.com; s=zohoarc; b=QyJl+7YVebyxKdJo15D/u/mB3cdKm0WeS6rKFZJw1Oo+d1PwaH9c+ABnoqmY2tks0sUF9RALFF6yUMMfLqksfIGxPLQi0VK15qLhJwz/XNyL00FtGcL7Rd6iCs+k9mHATWYPDTU1hbk3EnNUNN2mzmcRPuWQycrDQAZbJ9uuTjc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771880310; 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=05BLbE1y2qcTIXCrfk6WLG4//N7sVc0Cn/mxSAr9j2s=; b=XDdTJpD4u7cOvJ5T39sRhOeNaI+MOWlKpl1iXgG1h6n/zw/jJaRDwoQkRf2IUKfKA4nqsWJzs5F0zSfK8k26biqmL4DmRFAsvCu+ko12mMcw7qn8rr5ihrgQoic1GVxG77s1akAUN8ZitLLrW7v/ww3gNL/KhppEc8KS4LbMyGc= 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 1771880310399487.9237951685162; Mon, 23 Feb 2026 12:58:30 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vucyx-0006cT-Va; Mon, 23 Feb 2026 15:56:43 -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 1vucyv-0006bU-Sd for qemu-devel@nongnu.org; Mon, 23 Feb 2026 15:56:41 -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 1vucyu-00081t-7q for qemu-devel@nongnu.org; Mon, 23 Feb 2026 15:56:41 -0500 Received: by mail-ot1-x333.google.com with SMTP id 46e09a7af769-7d18a9d2b1aso4542579a34.2 for ; Mon, 23 Feb 2026 12:56:39 -0800 (PST) Received: from taylor-ubuntu.hsd1.co.comcast.net (c-75-70-169-246.hsd1.co.comcast.net. [75.70.169.246]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d52d04dbf1sm8011996a34.22.2026.02.23.12.56.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Feb 2026 12:56:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771880199; x=1772484999; darn=nongnu.org; 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=05BLbE1y2qcTIXCrfk6WLG4//N7sVc0Cn/mxSAr9j2s=; b=AZiyJaQadNmN/jBxpY+emCjOMP3KX/v0Cz2SgY0O4lfxyq6lAq7Fl8wYM6spJ3Qpdq ViGoOZ69DBu8KbiHWLyIuGI+IV+RvJt/vrjlqFNW0UZi+12+t4P7/EThezF0lYgoCqiR L39U0VUjFIG+GK/WIPoa0mBJaWGrnp7CqEcxtSeQF5Ksh4uWo7NbwzNVeR30+0bW3DoO 3blztA1EcjBXbDBOBWXKuRspSUoc2tpnYWhFvyW3kASGrf5KLFIzZiUPtvUAG/byTyX7 KZgyDy5OzpjaW7sqIfBw6b6XNn1DbfUJ181JuxZLbdgm8tCD279hSL+KD9L1ggTxU0Hq esBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771880199; x=1772484999; h=content-transfer-encoding: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; bh=05BLbE1y2qcTIXCrfk6WLG4//N7sVc0Cn/mxSAr9j2s=; b=guyLF7DW37+UQwjJZePt2FyO0R9pHYlOVF92UOV1IJ/0SD55JuTcVFRxogE73GAAV1 m5K0usdEya9YbJV73ZoAXuqtHHVQ3qG5OhnDqzgdpjnTndBYfDGL/zehG/C3Iifchep+ QkdE/bQcXLg1a4S5jhkz8NeXSYB3EG403yIEuxFhlrXvEVu/cBdKM++s2yBL5jBqaL3Z O/gHunBULs1fIm3bslmxA1age8XBcnTgMa5wNxecQZ6kmjYYKoz0oRPa2mr2f+JfqIsx LqrQ9DPHTNTbukRR9PxqGMggrZM+cGPm8HOqIknd67/1OfHCY3O7UZz08cNdZv5Ya+z1 Xaug== X-Gm-Message-State: AOJu0Yxx6N6HjBzvJZwz+/YDuFKHGFIkbwKD8JQcwqM0UQsAiyutNeBY EzGZ7cAKCYNlblMp1oSquhf9m81DIgTeOKZrPHxrSU9AOZ1DDqBgoVATSauDWQ== X-Gm-Gg: AZuq6aIjYGfC5G1OG7zuIRqHNze2T5+i42+z2pcOqqmY6vEoJ57GP/2MJK3PFYdl7Ar 47QMtEZ1dpjcYMGZe85v+a45Hk++4JulfSV1cwIRu60b5WgTJbC1qx6V6Rg/mcA3fGhovL8iVd0 mQeChiaDRccQ8hrbC/w4B1CXoKjH/uy5hQsKj9neUj6zQe+M4fUdaKZTXK9Er3G/j7kA02wEUMI PNX7TZuBXzEXB5I5YTbLa6QUdx5BzVefFas15/dTDucnZDrYjWbN3852PCq3K2rKj67TG7d8sUb bHRPoIyNUHJAVsu/mIZVoDMj3/Xpu76seCXoqAnPc7pBYhDFTVahtPI1xgEzLI4oAUF4JqUgqbS P+sSRGEyKcpwwSSZlyiCl6BkEHXrrFcAHfIj8tqQ7w1SUoAcbE4GEQ/WsGBz+yoDZfTn+Brj+Oy sMrgQ4LoRgBLisF15ktg5/xoEKCPLkYpir4DRlK8YSX875rgclk7K5YVqH+iWnT/scpPQEehhBq DJ9ohqUpDxQfylRyrNNg1cS6Yce+IPNKiqgwQ== X-Received: by 2002:a05:6830:850e:10b0:7d4:96c3:3f97 with SMTP id 46e09a7af769-7d52bdf88a0mr4537396a34.2.1771880198887; Mon, 23 Feb 2026 12:56:38 -0800 (PST) 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@linaro.org, ale@rev.ng, anjo@rev.ng, ltaylorsimpson@gmail.com Subject: [PATCH 5/8] Hexagon (tests/tcg/hexagon) Add tests for vreg multiple writes Date: Mon, 23 Feb 2026 13:56:29 -0700 Message-ID: <20260223205632.223714-6-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260223205632.223714-1-ltaylorsimpson@gmail.com> References: <20260223205632.223714-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=lists.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: 1771880311936158500 Signed-off-by: Taylor Simpson Reviewed-by: Brian Cain Tested-by: Brian Cain --- tests/tcg/hexagon/multiple-writes.c | 46 +++++++++++++++++++++++++++++ tests/tcg/hexagon/Makefile.target | 1 + 2 files changed, 47 insertions(+) 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/Makefile.target b/tests/tcg/hexagon/Makefile= .target index f86f02bb31..ea73413bf4 100644 --- a/tests/tcg/hexagon/Makefile.target +++ b/tests/tcg/hexagon/Makefile.target @@ -118,6 +118,7 @@ vector_add_int: CFLAGS +=3D -mhvx -fvectorize hvx_misc: hvx_misc.c hvx_misc.h hvx_misc: CFLAGS +=3D -mhvx hvx_histogram: CFLAGS +=3D -mhvx -Wno-gnu-folding-constant +multiple-writes: CFLAGS +=3D -mhvx v68_hvx: v68_hvx.c hvx_misc.h v6mpy_ref.c.inc v68_hvx: CFLAGS +=3D -mhvx -Wno-unused-function v69_hvx: v69_hvx.c hvx_misc.h --=20 2.43.0 From nobody Sun Apr 12 00:55:54 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=1771880240; cv=none; d=zohomail.com; s=zohoarc; b=Yljl8JdKnUlYC3f0Gnb2iuhZzCv6b79IUB4IwrmpMBRKqBNei9ViYlOJxZjCaDSU9UxH7vYnDHqHevlZCBmVja6IW2e35AXujwU2Sy8pnp+wVVDbQQ7jEt8/BV+v4W2EP735eRW3OshD/9MkqxCsZ0nTj4qubX+Sz05na4Q4jIc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771880240; 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=xzuHO+IhwGVY3r5JmSu9L2/YehPKWyCJ1AMe2LJrtU8=; b=kuNR1YcOowbCiL2kL/cxg5bT+wUYWd++hVSHx9h6XPYtPhR5dJH3lMWOus6quCEJkQnwgpn82Pc/9xOJAVxx+QT/C/Flr15yMWnP7zoRYSlzNbzCuyVLml1pKxN6Z3bMQca0jntx31NZjzOx6g0Pc+5uxpRvCF4DiyO0iAozwEM= 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 1771880240325985.9667867600773; Mon, 23 Feb 2026 12:57:20 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vucyz-0006dN-Fa; Mon, 23 Feb 2026 15:56: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 1vucyx-0006bx-1P for qemu-devel@nongnu.org; Mon, 23 Feb 2026 15:56:43 -0500 Received: from mail-ot1-x343.google.com ([2607:f8b0:4864:20::343]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vucyv-00082A-Ad for qemu-devel@nongnu.org; Mon, 23 Feb 2026 15:56:42 -0500 Received: by mail-ot1-x343.google.com with SMTP id 46e09a7af769-7d4cb7e10efso4075774a34.0 for ; Mon, 23 Feb 2026 12:56:40 -0800 (PST) Received: from taylor-ubuntu.hsd1.co.comcast.net (c-75-70-169-246.hsd1.co.comcast.net. [75.70.169.246]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d52d04dbf1sm8011996a34.22.2026.02.23.12.56.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Feb 2026 12:56:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771880200; x=1772485000; darn=nongnu.org; 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=xzuHO+IhwGVY3r5JmSu9L2/YehPKWyCJ1AMe2LJrtU8=; b=PWc1GjrgOZm6Hclrh/xmX4LyWGSPp2bEm8Fs62D4Rm3uEjFHa7Luli5SsFou/DZBKV dg8eh3lXvFYVQx/GeamJyFrVlZ84gKkdS63Qp4oahhc+R9X6X+nhI7f2KYqcefaYV/xd QudAJXnqlO/CEw507ZKV7eNxIZpFe4gq2Mz6Ei3s79k80YPIpyTlPdBRim8t+LdRfMpm 5y37J1oqcud+vhm5naOK9YjxrJnt1ORXb73PPNg/SdNRl94o9DJFNYKAl3dI2CxS3jaj nNAcUy32emXo8efOtRE2e9Xgwjr9NiGOjnejFQIHaD3K/QNS9wMHPZn+Vp9eD07ypdPT nMrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771880200; x=1772485000; h=content-transfer-encoding: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; bh=xzuHO+IhwGVY3r5JmSu9L2/YehPKWyCJ1AMe2LJrtU8=; b=QltF04ZG+Mh3U4iyH6LqizoZ77kbtuYVXwj626Diy8c6JTrFEb0HiHaFfOPhA27pcx +f45I3GCigKOfVD6cLp7NGkjd1FaQP60QesXCtiwRS+G6QHKnKZnmP8g8CCUo7JpEQ50 05DO6R34fAJ4s4iUH7mvML2oVCeJ3vTHqPw0KJrXL9AhcISAS/6h+f3NR7epuX7sfgf1 FxdlY9XBRAxnxaj1/VFi5kUReOuhu6hrIMF3xDgaXfXtsWjG5Jg7nW6GSJRvvd286qck R8IB6y1AcpxX9pS57hUEV46DTjQfy94TW5CKdw7HMQXudZ98CvNH4hDm4rlOmdOsI3xL AP2Q== X-Gm-Message-State: AOJu0Yyesk4oorXE90Rxzf4JV17YiOwpLKjXgajiSQv+rdG9YQw111BR 43mmJ8K5fXfYriswRG26qhixBDJhcOVmQyrmMv+dBVS71EBNofPJ3T0TEZ57CDMN X-Gm-Gg: AZuq6aJJyaG096odmfgwXytXHcoT36ZN0vwPcuhgEVPdhPHuwqJ+JDP5NqmLu7JmHrP UvY1ez4z5yb2MZEDewOGUQXOWOLnwF+s93aD8Oo51A2p33s17gAx2TaDBcA/tdpmEj+5FaUhQms MjfipU94II2hbwXMug2FQ/TBGQzqOIvYjDNnM54vmF6T4eTZJsIK8NssS7rwyy6R3y5aFyzTGlK 6o7EpHf23UnOmCqM8HPM58wBoA4bBCeD5GqBX/4pB6Kh8gGPkMiW0RH8jfVCGCw2xHkkaEM0edQ 21i0wkVrDDZ257/SRn4cCxGk+C2iNFy7civrJFtMGJPMR8nepdxbZBeM/ebMtRFBC5z2Q/E8KAo 6aDS2Ci/2XgaLQ8UPJtfCZdS1HfDldaHQWYo4AD/535Ai2kwbfAYW2ToYBCtuJFsiRPyyw5xUY7 r4ZadzMQuJIK/VswAUKl7tkAsQRMEx9LyEOANOEeswe5sU3zGi4EgpVALehAPp95CH8/Erkl1aG 8T11CTdBHj6+SUgTT2AUEji78SCVeBYNbZ7bvIslBA1q6Qf X-Received: by 2002:a05:6830:6aa3:b0:7d1:8ced:55f5 with SMTP id 46e09a7af769-7d52bf93b2fmr5981462a34.34.1771880199821; Mon, 23 Feb 2026 12:56:39 -0800 (PST) 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@linaro.org, ale@rev.ng, anjo@rev.ng, ltaylorsimpson@gmail.com Subject: [PATCH 6/8] Hexagon (target/hexagon) Check for qreg multiwrite in analyze_packet Date: Mon, 23 Feb 2026 13:56:30 -0700 Message-ID: <20260223205632.223714-7-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260223205632.223714-1-ltaylorsimpson@gmail.com> References: <20260223205632.223714-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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::343; envelope-from=ltaylorsimpson@gmail.com; helo=mail-ot1-x343.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: 1771880263171158500 Signed-off-by: Taylor Simpson Reviewed-by: Brian Cain Tested-by: Brian Cain --- 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 4ef9357aad..ab53d8b4d2 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -66,6 +66,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; @@ -264,7 +265,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 9aea3e7ae4..32cb2e7fb4 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -433,6 +433,7 @@ static void clear_pkt_ctx(DisasContext *ctx) bitmap_zero(ctx->vregs_multi_write, NUM_VREGS); bitmap_zero(ctx->vregs_uncond, 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; @@ -464,6 +465,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 Sun Apr 12 00:55:54 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=1771880296; cv=none; d=zohomail.com; s=zohoarc; b=fWIXpF8kxM5+1TXaZOdon3v6rWUeIiWKvuW+BuueI1DX9aEHbxcjwOAOJmyH2C00YEM2CE9xlF4SRccvxQ7sfxUI1CORDfErl0K7ei/U5Dh3tEWhanrbnWQw+EtPWv2GIN9DBE+mFNCk0AGzzWjelF0YDZ7KKGdMvBwZVgke6UM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771880296; 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=RgqaqqCpI1k15H6enwzGn4CuVSkbS68mlUNyYAkDlqiXb1HZTnTbhZGkGWqiR6U3VQ2xsi9JbFxYNsUH/ffKtcNHrFdP9mFIMgbcEz++hF906/JP3kprCJDkzpIKf+29C6CxEETcKokkpbz15vBXHEz8sGoHJsFklpRAF0kdD84= 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 1771880296362303.0794203523674; Mon, 23 Feb 2026 12:58:16 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vucyy-0006d4-JZ; Mon, 23 Feb 2026 15:56: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 1vucyx-0006cP-Sq for qemu-devel@nongnu.org; Mon, 23 Feb 2026 15:56:43 -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 1vucyw-00082U-9O for qemu-devel@nongnu.org; Mon, 23 Feb 2026 15:56:43 -0500 Received: by mail-ot1-x336.google.com with SMTP id 46e09a7af769-7d1872504cbso4308430a34.0 for ; Mon, 23 Feb 2026 12:56:41 -0800 (PST) Received: from taylor-ubuntu.hsd1.co.comcast.net (c-75-70-169-246.hsd1.co.comcast.net. [75.70.169.246]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d52d04dbf1sm8011996a34.22.2026.02.23.12.56.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Feb 2026 12:56:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771880201; x=1772485001; darn=nongnu.org; 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=rAluVMYKeWfHKHjN37UGG1wr+/XyqdD3i5t7V6iE0KE=; b=XLzcYvCkWu0O1vi/43TmYn4H6oFJ/oRA7W0xHUjQjP5tcr9c1CzJoDwVuZpjQo5B0D qIdnl5cE2L3wZ+MSCFNy2ZOwdLfQbdakliUdu2ayvJbsyx7j4Xg/FXK5EAl5JXm/VIEa 7dKfOfExx3XLMb0WzaA9Qt/WSHE+zRr2vEiGDZFByDOnqXEfiHLNufF6h9DWSoPlPrPX gBYndyYVVxQW25/IpNvvAi/e1A5GK7w/B/D6F7SceITUJMHuJKgyRWDNvKlVmbjVn1+m NbIck4J4dooA7+CmRp13TcX8z766HGWt7X8eNr46KIn5lL5DRfjLJKVW771cR8NqBb2Q C1zQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771880201; x=1772485001; h=content-transfer-encoding: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; bh=rAluVMYKeWfHKHjN37UGG1wr+/XyqdD3i5t7V6iE0KE=; b=r8GChemlD9zOlTgjqQVmvj3eQcGkfd7jRhcsWhnkEvPMOsGFTifLsZZzdrvSxsdAKN L/HTBOVaDjQ19LAYCT0PcwW0h8Vi/155ntvAodp4Dd7RtVTIjz/ZgCju067RKTdEvvdI lddaQ94IDiwIubXLdTXu8mOsYojx2x4iyhn2V7EZRE93+aEjQtC2EHSq5wNQy90SXGVZ IfMYathn+mHeG0QTekgOsBMaB7La2pvf+cuk3sXBaBUm6wX6p8miJnbKlH8IuNBMSEDh Vujig6oEHVrsjx1TNCLdt60L3AmNv2RShIGwb4PVNN3d+OhqX7BdQyIBYz+ivdgRSes1 i4jA== X-Gm-Message-State: AOJu0YwD7FZx8hdVtXdiDNysbXMtnAMmb4tutEZ08pKncJi7hWiogYco 8SDb9wcxYpGOqd/vMcftN0h5jx1123b1TDNRokGdLwcoyIBozlB5/+byBiw7eQ== X-Gm-Gg: AZuq6aI1GMSTN8pyPibhhoO2W+zYNeatMD0s9plANyXa1G8+31jp1QBr5+ZHRYh/oP/ ie7+vj/7Dhxeg8bUsL1BbRerw8F8esJgQNHowN63GH5jfGsiiZ5vv9MD8q/q7RzXp3jpgyLqt0T KptSN+tA1x9Bn4oqJfKOOD89Ld02xwpZW11AAC8VMOEGuhpRdBOzQ2l04O7IR520rjtWwe7wAaT M/auxbOVIY0NhG7StBgAps+NwmBJsfV+GQUfEgqvEUI6mIV/boFDrtg22s+nNiAg1AELZsgdjKA L0vAgcBo/3waJ9/NBx84ocZ8Fl6nks9pwy1kN0epUsAdcpCOwcH0HuYnHNwLV9YUDCo9YcQ776N /TVOOia+mMYRDH3/02mNVJEq5BEhaXOfkERMC1AIVnRKHK4TkNhGuAvtQX74WpQbfK3G0lVH0MN joVIIpu0dcSzWqIXZDJgsLGrjXhpOBVuh2k4y+jniDYKJPC0u0w0ZFNXH74u+wzxmGgKye2Iwj3 GhUzZQh37MCxuu5dI7V2Ncv8EXto4HeJLzJPw== X-Received: by 2002:a05:6830:82d5:b0:7d4:c276:7484 with SMTP id 46e09a7af769-7d52c459383mr5850981a34.7.1771880200707; Mon, 23 Feb 2026 12:56:40 -0800 (PST) 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@linaro.org, ale@rev.ng, anjo@rev.ng, ltaylorsimpson@gmail.com Subject: [PATCH 7/8] Hexagon (tests/tcg/hexagon) Add tests for qreg multiple writes Date: Mon, 23 Feb 2026 13:56:31 -0700 Message-ID: <20260223205632.223714-8-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260223205632.223714-1-ltaylorsimpson@gmail.com> References: <20260223205632.223714-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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::336; envelope-from=ltaylorsimpson@gmail.com; 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, 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: 1771880297840158500 Signed-off-by: Taylor Simpson Reviewed-by: Brian Cain Tested-by: Brian Cain --- 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 Sun Apr 12 00:55:54 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=1771880274; cv=none; d=zohomail.com; s=zohoarc; b=BvwR10oPSTfkwDTwM/1wCvoytKnRZTbuzo2eRQCGlR509dfaz9KkDXVqGu9MXaIfXHD6FDw/1sf4KH+EFqAyG5IupeVMu/seFeFpYFjO3c0au70FqvoLfbJ8Wplq/nT53mSeP5yq1I9sWGUDxcN6LsI9um20+SvW1fV2o+vsp8g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771880274; 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=tVDBnQheb5AqqO1lYjCblA3eDzS8YuZY045hPHYSD2M=; b=NMuDQu4Zsv6eZ1w9zzmi9fsJ0QLx0lK+wyVhT2+RBzO5mudqSmOct7khEchgTnEEdz9Mec1TL7H7gsKDIkUDcl/LYNIYfMrMenzOnABWJfe1apQpucniU4YpFTg6/YcxW+rnfQw2dOA8e3OWnNpaNKG1gWMfwagtQE7CrEH8SVM= 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 1771880274429746.7438157851284; Mon, 23 Feb 2026 12:57:54 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vucz1-0006eK-Te; Mon, 23 Feb 2026 15:56:47 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vucyz-0006dB-8V for qemu-devel@nongnu.org; Mon, 23 Feb 2026 15:56:45 -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 1vucyx-000836-DM for qemu-devel@nongnu.org; Mon, 23 Feb 2026 15:56:45 -0500 Received: by mail-ot1-x32b.google.com with SMTP id 46e09a7af769-7d4c4b494fcso2722450a34.3 for ; Mon, 23 Feb 2026 12:56:43 -0800 (PST) Received: from taylor-ubuntu.hsd1.co.comcast.net (c-75-70-169-246.hsd1.co.comcast.net. [75.70.169.246]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d52d04dbf1sm8011996a34.22.2026.02.23.12.56.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Feb 2026 12:56:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771880202; x=1772485002; darn=nongnu.org; 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=tVDBnQheb5AqqO1lYjCblA3eDzS8YuZY045hPHYSD2M=; b=OZAAdNO3ONMdRx1uxQGftXSIDWUXeqRr/aWKVXG41pXVTDV6bDoNYpCZ4iDy4hObDh Ny/BBLrNg/JvwOKcLnY+MJshMgm2mOfQtXyE9l1qFTMt+1F8eRHd3rC9kKeqYl/WI1Bp z8oUlemJOyg+dc602uYjcEVfEZAP9PlIX53CJxt+A7KcqrEgxWxBjZG2lVaNXXNz8Mdx Y0lmvdaKKLkxKdURXUdMbcs5iaIi6ZWMiGXvBKdlHWIJCsj2cJdPutUVwdwrQcsHIGK6 3MPecy1xHn/74d/SxbIvwlIDIU3DsIGuPINQcnRqihIQqmrEkcsFIaNKpR/TATVDq0A9 OiBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771880202; x=1772485002; h=content-transfer-encoding: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; bh=tVDBnQheb5AqqO1lYjCblA3eDzS8YuZY045hPHYSD2M=; b=F9A7i9JuqnFjvssgayEK8Rr6CEq6qcyr4i1+aaJn9xWpkVcM0DFK0NvJP2VGchRhcr dlBQS/LG8rKHYJx09T/UOdwTHuPOfc88xaPWDSILXnLWOQGRRrejN2tKezyvDHp7KdoN PhnhzConPxxz8oxXPvQU84qDuetlrfQsAmvTa9C1D67G2f7UK61gj5vK4INrAO6m0qAh hh+Ms5nnO9bdNtDbJKbKPZ6nHt5W08tjSUDJ/Nj150QanJg/t9Cl11l/9lWJLi15rDpB Spka9D+3U+tWqJ51xGkrg/Myqj7i9LE+qzLYH+SFm55mjmctTXxUgegvKmjcQPs6BZ1J EOwg== X-Gm-Message-State: AOJu0YzZl67/GHg9u9RLfrX3pP+sjAxpcrhWO4ZwyG4TtkiFFhRvN46Q G4gvqjmhIG/GDVJ5RSwjVZlEVTeTR9R456p0tIkFJOjzvWBjeBzj/VhnvtuLaQ== X-Gm-Gg: AZuq6aIpst5kOA2h5sqsZs+bVuSThz2hlnz/bC+t61EnjMWmbbLwxNPoYCTXhPM6Tkm NlNjvFanGJYqNOhmfOZDOPT9aLN4bGtS7lOTXhYDi1p4HEsV6fxhMB6to2Qt9jgqwqku5KG0JMO YuiUR4hQVrnS2sAIs/m7jKnIp00YYYVpMaHMWcq6IIMEKHFPUujhbykc2tlRtADQ5ZmOVxZyHGd yDyz7l0EZG/DbHeyt23zSBMM0WwYJpeOw5SjMb23TB1Ema9gTemIpo5Q01TctvJWrCejNYN8E3/ UITaZtW2r64JOs48oz2I2x0IS0ttUtWKwEKISLS7apKrnrsz2bAAoA1hG35AkbAqYZb6JJpfjSZ b33TeY7PKRfGBdWwRE/EtlrOprQiTXl03VXxm5nxuTm6clHpwjPnT7mnaXDGyRLUk/bhc8LjQ25 0lVxWRM6AfCDHLcEO2E3JZ/O+QUBUs5t3RS95+Vy+ZPIKWIcBwBnyM5lwLM9AUhg1qI2OxNjLJT luben5uhrc+t0xh31g29z9zPw28JdJfNsbTWg== X-Received: by 2002:a05:6830:81ec:b0:7c7:6063:8e0f with SMTP id 46e09a7af769-7d52beb8817mr6524201a34.15.1771880201703; Mon, 23 Feb 2026 12:56:41 -0800 (PST) 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@linaro.org, ale@rev.ng, anjo@rev.ng, ltaylorsimpson@gmail.com Subject: [PATCH 8/8] Hexagon (target/hexagon) Remove old way of detecting register multiwrites Date: Mon, 23 Feb 2026 13:56:32 -0700 Message-ID: <20260223205632.223714-9-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260223205632.223714-1-ltaylorsimpson@gmail.com> References: <20260223205632.223714-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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::32b; envelope-from=ltaylorsimpson@gmail.com; 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, 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: 1771880276070158500 We now detect register multiwrites in packet analyzis instead of packet decoding Signed-off-by: Taylor Simpson Reviewed-by: Brian Cain Tested-by: Brian Cain --- target/hexagon/insn.h | 4 --- target/hexagon/decode.c | 54 ------------------------------- target/hexagon/translate.c | 5 --- target/hexagon/gen_trans_funcs.py | 10 ------ 4 files changed, 73 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 dbc9c630e8..1b0ed51323 100644 --- a/target/hexagon/decode.c +++ b/target/hexagon/decode.c @@ -647,55 +647,6 @@ decode_set_slot_number(Packet *pkt) return has_valid_slot_assignment(pkt); } =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 @@ -715,10 +666,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]; @@ -782,7 +729,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 32cb2e7fb4..1dc6dc70ed 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -994,11 +994,6 @@ static void decode_and_translate_packet(CPUHexagonStat= e *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(!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