From nobody Sat Sep 26 20:51:11 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=1789422707; cv=none; d=zohomail.com; s=zohoarc; b=B41Vyp1O4GT6PRbR9bdhIQAtE+Igy8/uvbuo59GXPnFWi082MZZd14N5LFZRMkP3OfTARfYFvUudyu48l30cj0WJ4e+QEleQ1uaSJSku/XCY7ywFU8mdvjSJl2MFkM+ErWfHrFr0hND56e1Cg/EeXbHlXhWcGzUAhxAb7/Tv6FI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789422707; 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=q9I2gXZP1++Dyfy9s2C51+2Zm93jbhIJWJtLFNa8axY=; b=JyXnB7pMJRdmDd8AQksE587suLIkbgUb3R3gXrmSo8Xpkl2NhAHsC2Mq0pZTWDT6w0JoOn574hVCwLVsHtZjNpC7I/xNGDn+rx/+DWFXlmLw4suJceaHZKLKl6nJ23yRWY4lR267AC9/+oBq/oMOLTJPLoGb5lK3x942Mcy7mDo= 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 1789422707252938.6819162169611; Mon, 14 Sep 2026 14:51:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x6EZc-0003sa-7E; Mon, 14 Sep 2026 17:50: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 1x6EZZ-0003sG-Iy for qemu-devel@nongnu.org; Mon, 14 Sep 2026 17:50:45 -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 1x6EZY-00019H-05 for qemu-devel@nongnu.org; Mon, 14 Sep 2026 17:50:45 -0400 Received: by mail-oi2-x11.google.com with SMTP id 5614622812f47-4bf948737e1so1934602b6e.2 for ; Mon, 14 Sep 2026 14:50:43 -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 5614622812f47-4c4a2504bc4sm8937163b6e.17.2026.09.14.14.50.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Sep 2026 14:50:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1789422643; x=1790027443; 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=q9I2gXZP1++Dyfy9s2C51+2Zm93jbhIJWJtLFNa8axY=; b=CcNT93/HG/SHoO96nbElhkTrBPNeL9MIs1RKMlzEfUsX+HMwLPAS/3K9jtCV8Dd15f V0BDzNsGFcqJBS0RMo08g1Cw3+XvxdDPlqljCKIpupCH205M3wAoP7KAeTSMZdN3BAvH fpCljNC7zOH4MsY9J8vivxoYm66VOlnQcdRK/WVr7uURRrQDIuSD4mByQYCX9PbiBzoO 41vjuQcLg1+mHLYgHd/CQNKJoK/OVr9j4F+USabs1KlgQS4qfuuz5ERW7Z0q0h8h0VPv CuH8OjSVkNkLMFtbpXuSTAFBkP638zlnkHJWfwteZ/cAx0QCDA5k1PLBjrVrrLhmUeKs PAyw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789422643; x=1790027443; 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=q9I2gXZP1++Dyfy9s2C51+2Zm93jbhIJWJtLFNa8axY=; b=P2HuNRMHEkxgj3HaLLhljZc8ZgMVCbKe8mhCGTrYyLTXl+7+4TJoLkQEeP4ycrwpuk fUfJP012e6gUbmSTZXJ89vQcFqZP23EZzUTUg0xlzCT4ixWOzJ1SRFidmGPf+TpQhRNI 6ubAM/fHeLmZAltX1chSGiU0AlBYs/1ooSr6n5ztJkpoELvaxQzjmEXmFNopT9CGKVxi Vr5g0Cpinp2ohCDHKFEMK7sJBiysJ+/T/2o6LvauosPACYFDcmLEbMZXDn9np3aUcugX MjNQ2GHRdAMA9imPZenYPli6pV8UOcMuG0EqRDWQGt6KavBXIIDR1cOwF0+JrZMihFf1 wVaw== X-Gm-Message-State: AFuF++kDr1af6CjEj2ASQ4e+MUdqI73/TKLwTZGHrSvhNjQT//kWtE+N FFS3Jl0wggDAe2632z7JBiwiTj/SzzfcQrIFx8Aw6FHZf6qwQ4fI3oKOwNXAKx8S X-Gm-Gg: AYBFou3YMpGgzxM57bimnxsGYsin/ynLgM/0h22PmK0PAF9d148H4pqi0gF5uNMm90s WvPOmeGfy3T37IJ69X0KrUNBmLJUfFKffECAMRtRcRSE/vRC7GLMxlL4ZpZXDlOv55/FwVTypEX OEyRu7Jcfn1wv6PV9SvhHY/ZVRN/94r4qLDBuUDsjiOr2AjK/147oG7hcjLGfzMRY+g1mOG6yvZ MaHvT2pJjVcfBmhyxhrsIsfc+yyEdb+17SKsgzLnr8eoaG1kIu0XaCepXnF64FjhqNIwRGdB1HM pwyy1Xs3N6Bk4q+bSYQIHkloFyPuAM8Setwaxj2ZoUvXCPwavLBB/sYEo3fvNPjlmi+qUp1CbW/ tJxeVN40TJIk1fhkMZsf1lFa84Et49lLapPLVS43Sd4wyTyh6NJSqaUQPFBNIEjMrVXCDFwo/WE ujA3SOg6iCCT0j/kbWm5eST5TvFCp8zt1P8BRV4IECXhsCMGKB7qBwGQ7Mcrl48XZdcjWr8Mhr8 8bexGSwqPm4XQY2a6e4hNKKIKQLsnLLAKQEC3zxBgdrRRrYRbq3sd0LIiiMlbGt X-Received: by 2002:a05:6808:528e:b0:4c2:a362:13b2 with SMTP id 5614622812f47-4c7b665e156mr4907533b6e.21.1789422642878; Mon, 14 Sep 2026 14:50:42 -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 v3 01/10] Hexagon (target/hexagon) Move code out of gen_start_packet Date: Mon, 14 Sep 2026 15:50:27 -0600 Message-ID: <20260914215037.157879-2-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260914215037.157879-1-ltaylorsimpson@gmail.com> References: <20260914215037.157879-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: 1789422709661158500 Move clear_pkt_ctx and analyze_packet out of gen_start_packet Precursor to adding packet validity checks to analyze_packet Reviewed-by: Brian Cain Reviewed-by: Marco Liebel Signed-off-by: Taylor Simpson --- 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:11 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=1789422778; cv=none; d=zohomail.com; s=zohoarc; b=fOh1yw2eGfa+Bm7QhpZT9xwxzewKVSzuSURjUyPzx46JG/TZSjDzb3rWgZwYtTmkQ/izLgVZetFRiY9S63HJJ/tJyo3hlm9GTK54p1dxRQdbLFnQvBznDmb3UvS5xsL76mHfZeXMrfSsNiql7w6j56py02CXqIQqQ0zpLdWoUJ8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789422778; 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=cFTiMog4hJei3+rgly/bhDU4tyKHPjUWScPp1aB72h0=; b=ZadMIY/buafd3o6HJ8PxVK+l46aXi0WIhSzlS2/bGPpUAWLwJLr3xMqzEg61JQQhA8VDI6M8Yl9EGpfa81cjpgtm+V0RVWamgk0CDelLyNCBQk3WHKez1J+oWagnhntq3hV+PN6Wn9icUdebV+TyaGlE88v7Jn/suFLxatSk2Qo= 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 1789422778014797.4009447793834; Mon, 14 Sep 2026 14:52:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x6EZe-0003th-DQ; Mon, 14 Sep 2026 17:50:50 -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 1x6EZb-0003sT-G7 for qemu-devel@nongnu.org; Mon, 14 Sep 2026 17:50:47 -0400 Received: from mail-oi1-x230.google.com ([2607:f8b0:4864:20::230]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x6EZZ-00019W-Td for qemu-devel@nongnu.org; Mon, 14 Sep 2026 17:50:47 -0400 Received: by mail-oi1-x230.google.com with SMTP id 5614622812f47-4af173320f9so2954135b6e.2 for ; Mon, 14 Sep 2026 14:50:45 -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 5614622812f47-4c4a2504bc4sm8937163b6e.17.2026.09.14.14.50.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Sep 2026 14:50:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1789422644; x=1790027444; 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=cFTiMog4hJei3+rgly/bhDU4tyKHPjUWScPp1aB72h0=; b=l+2ndd3AKFCEyA6x4ZNiaDBkUlqzvk5QHC4Wqdpviwv/J4rEShsgDhXsiiAIeSdC1b RDRE0h6sqzvIqVT1euHYIE4HKe4XgYO4k8KziMB2RwhpR7sUAa+UZc4ebGEjpEb67cH/ PvVh1/n/Txym+O+3rN1yH84vsTzMjpqcWRSVsAbchLL4ZIxQFsNrRZBkHAr1Gpbkgc8P RPcodxmjC6tL0LJhIbPe0ThSMB6UcIhdUZJvbBhIjGqp45T03kt/gQr4xhprYsHhuiVA L5bBmxWuVz8AvbjlnwXZtNSpxpT563x0UXRiTn3asq6DPQaELdISVA94MTytfCH8y7K9 WHdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789422644; x=1790027444; 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=cFTiMog4hJei3+rgly/bhDU4tyKHPjUWScPp1aB72h0=; b=XBbbyQZ1EhOBv8WG+DFKQwKBzAmX4QFp3fLcDhmnJUyMMzZGgtOx1TqhGnbpsbf4jm /P5eX09ZM69dAva9wNis0YOldtsjOAhFQTuKuaAm95UivC5tcY1DJIJ9GouIEQVJIMCf JB5Yo58tAdpAm2j7iXTPbQ6AbYYee4KNJzGGVlhCK7GUpDcUB55/D19aOmmHxw2lzX1s /H+Olnp8W3hbkqO3Vy/zOY4v02AFVrpqgMSxJqFvS1Jgvm09MkXwGCAUTli4xxXo1EVz xNTufD1NihX5NGrY1KGzbWLbmszHpDGPzjtApD51lFhp5x+4fWerz9svHRG+JBSpLnm/ wcxg== X-Gm-Message-State: AFuF++mEGhFyNZ6mEbk2tQl73qWi64YO6H0xikklJS15hZpsLyFzsXus SW83whmDEtDr1jPBe2Z0XYBUwW7+QS2nwNXNLNa3Ae7uPY1MjvHVWPDatb+IvF8e X-Gm-Gg: AYBFou06PtpaBkFuXWPZI90DVsvtmXijQwgA1b9xVWQ1sAh/BhHrjfuXx2QRC6HWcqw vnIVlrer5dMFZ/wTdPWPAY0HOBaGz5IjmxPf2lbxOslbZTKk04cIv/t7d8/FpHZpW1a+QNZyY7a 94TJvZnUFiHhx8tTY69FF9X/q7R1BfU027lJXvv7RR7KOct7CcLjlzt8Qw/2IS+4CYqcSdvbWQV yG2Bv5U1aP19B/eVkLGYngA72yyEtEz2J2Rbfw3oRNeyygQTR22B48TQCfqvKnl+5yW1xbilcig WbQQo6mI0vn9hHcfeOHX8ZEfs21crer1T9gFbVQeOlNxwf/WNb6jU6TVCDATCV1UwA3HMFeoscM t6HUg8CiWazax8YQbUExRvrLA4cVUzxWIf/Atjs2k2acFUGADH7Rh1EcN9MyYNX5rKqWvjkH6ih YJ2zarA6vpZeeNMb1ufpLeET/MDW49Qov3yZstOnLJkszLmdCgELnfdjEeGWyb1jXLYn4TTLe98 HQA+g36nH2x6kXyyH/wRXN3ltb1VlD/HmEffSHzSBEQuUuWmfbV/i7FqLQiE1hp X-Received: by 2002:a05:6808:144a:b0:4b9:e5fa:8907 with SMTP id 5614622812f47-4c7b6369370mr3065699b6e.26.1789422644307; Mon, 14 Sep 2026 14:50:44 -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 v3 02/10] Hexagon (target/hexagon) Check for GPR multiwrite in analyze_packet Date: Mon, 14 Sep 2026 15:50:28 -0600 Message-ID: <20260914215037.157879-3-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260914215037.157879-1-ltaylorsimpson@gmail.com> References: <20260914215037.157879-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::230; envelope-from=ltaylorsimpson@gmail.com; helo=mail-oi1-x230.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: 1789422779560158500 For now, assert the new method is a superset of the old method We'll remove the old method in a subsequent patch Reviewed-by: Marco Liebel Signed-off-by: Taylor Simpson Reviewed-by: Brian Cain --- 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:11 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=1789422759; cv=none; d=zohomail.com; s=zohoarc; b=guDKyV4d9L9nHg7Au5BnV4Q3joUQIlXmWBTf+NicaUltJEA3to5rC2K2OYq2zAx9l7WHVliFrRPOqb+AJf0wD508bRSXj0KBZcFL/n4Bp8qrmvqAqjUn7qTbKX984prkpgwxPS8NDWfaT7rxs6Nca8srvlw+lbChgndvs3GM+8I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789422759; 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=DyBx0xIjCmYzU71v3yB77Rqtpf2N+P8SW+R5eIAH76s=; b=byHuT/dkFO9SbZ4gvZJD+KPI2Ox2jHEcGW9n/jF7G4Fssefo3uukmeBziqOazFE+g7/XOV/wsGMAnKgpxGhnvWTEL2hCS6ksXxwaUXMR5Sm7nk3drDFEvxNMMJrRfbnHEbSB8BWqUxyBTesSsRxsiYck427bEr/5JSnc18c7/E8= 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 1789422758954261.9432344517361; Mon, 14 Sep 2026 14:52:38 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x6EZd-0003tT-Ph; Mon, 14 Sep 2026 17:50:49 -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 1x6EZc-0003st-Bb for qemu-devel@nongnu.org; Mon, 14 Sep 2026 17:50:48 -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 1x6EZa-00019k-O1 for qemu-devel@nongnu.org; Mon, 14 Sep 2026 17:50:48 -0400 Received: by mail-oi2-x11.google.com with SMTP id 5614622812f47-4c13f35cc24so310110b6e.0 for ; Mon, 14 Sep 2026 14:50:46 -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 5614622812f47-4c4a2504bc4sm8937163b6e.17.2026.09.14.14.50.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Sep 2026 14:50:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1789422645; x=1790027445; 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=DyBx0xIjCmYzU71v3yB77Rqtpf2N+P8SW+R5eIAH76s=; b=jf83yIpAUoOxOzgUf263hYSiXB1Bh/geRpAbmNp9GPXu2lUHxigvtoDPZV6j7iumtO b3wH548wNwlGNSEh5glzH2UzZ7MkhtOQRw721bYJ4XvHC9/wSsI0JOrXzY0crTzl7Msd PphSALtHW/PqBHIlMO6ucgGaUXmbbHxZKFtN8ii1VkBp6bwlcFgqJibFTVxQRtwhpqi3 EhKt2DQNJa9LYeX4o4EdYU11ebJ7p5mKILDIr35mM4rGrJ4no0JMqvHT3kg+ryXZTUid sw8HnxttCJ+S4pBA7Lr54fysDD2cGJsFJKJmfYdyMc/Oyv/Yf/MrxT42IdWnwGP5jMl2 qdgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789422645; x=1790027445; 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=DyBx0xIjCmYzU71v3yB77Rqtpf2N+P8SW+R5eIAH76s=; b=u5ZLCINs+A2Jt2R70U0ZfwUZey1OCjMizsnBXcC/KCUebCRmm6Xeq8yEJbtMJdcdx2 87gOYU7ttz2ZENUKubF0tfNtxK9fLkLMRDpbykZnxkZO1FrdpnVsHG/GqEk6HiqLvt9H QPZY0vZqpl7h2YHM7fTT3jrrMyl/niqQtdeY77k0N9da8W6AS2O1+fvx42hX4mrXcAX4 CLvEInN5JJ8xGwPfoiaN9zS5jpeXoGKpFnr4wHPBaQaSNR+Gaotycv0g360SjFODXvjN 8uXch3Zez0xyZPQNmNRr7Gi/8/rE1dh/kxvYc146MhJrLQnxkMQ5tZVzKX8hbWyYTret mPIA== X-Gm-Message-State: AFuF++llXWjczb7TWFamqichYy97lNlFMx6FZbUFBYSHHFmuSAHCyg2z 13F/qGtMFxxqMlOKHquCe9jwsWrDXRsOCdESj8/siR0BMVfl9rftQetIIAurnbrn X-Gm-Gg: AYBFou0q7euDGszE75GhbKFVCLfjd3xkbDgoMgEPBB3FKe2Vubv74/9P1bmXg1QlOQq ugNmYlzUTUNaiwrWaO4Eknik6KncrmSvmV+JUwN2KYDPhBFEqFE0hRx/qpLOX1hX7PKzpRf55hQ qIbfZ4GMWYVKtoJ+xivVWDLeQkOK2IJxewD8Ix4zFZiwMTvNGU8ehNtXjlKrpdEPnXM1jhYJp5J aH9SHEQtQfnbWm0fa/IPDrG11fRdV1UTeE7jFHZjv7BTmV4lOm2vuT+SaltAA6Wz5TPSjHndwXc K9mdZ7MlhYtqbabDMc2ePAixyUCVytNTD7TKFV1BJqr0aXKSzt8YlVsHVBYSv5z2Arv2nMPYXQg oTcDFoOzXQ+jLe++KX8zLEncRTHlAEtf2jDs4lwq6Ag6A/CU8KBfqr5umXFYdxN46Ztg6WAqylZ IzqYBnVA92n0wo3BlmJQxBZlzDSxEKveoLncLPng7mEdvzvBdl+AeGbUniv9blVSzPAXVA8wysU m/nkSiZ71gQZoVXXE5xGGp11mOYOU463hz/DUm1mR21SYWpg2IHs5KDnmt20k4i X-Received: by 2002:a05:6808:1642:b0:4c5:6a01:210a with SMTP id 5614622812f47-4c8a13fac32mr608042b6e.17.1789422645588; Mon, 14 Sep 2026 14:50:45 -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 v3 03/10] Hexagon (tests/tcg/hexagon) Add tests for multi-destination instructions Date: Mon, 14 Sep 2026 15:50:29 -0600 Message-ID: <20260914215037.157879-4-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260914215037.157879-1-ltaylorsimpson@gmail.com> References: <20260914215037.157879-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: 1789422759367158500 Instructions such as post-increment loads define multiple destinations These make it harder to detect multi-write conflicts Reviewed-by: Brian Cain Reviewed-by: Marco Liebel Signed-off-by: Taylor Simpson --- 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:11 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=1789422678; cv=none; d=zohomail.com; s=zohoarc; b=SNRR5fenDk7WlC2UYwm/THi2UaNDqoUR+4IHlqS2eKbG27yL1zQTEch9/CX2hSmzK99kE6c8ChbSt4UEp1tNfwYQ5q1+Gau30Whw+blJ1VT2zUpd2dAcfjb4esrnYlwogptdZTV2v6IqE0vFj0pXtEf4mUjVnCdNIR1uv35pGaE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789422678; 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=/ExVstuu4me8sCdySqO0piWRDOMZfcIV3gwZVKKf0ks=; b=ml3i8a6d/Tfhi+LSX2e5wZkTeeoMvpCCzyfS3kYwIL/IsJFp8Mf/pA9y2eV5zFrL/XjSWvIPkZQNkcNceIWu6iu9WGhWc6xpxeCFp5vQCbj0nOHxlb9dPPYKuOo7V5r4BMho9vbx3krHncMx9c//vIhBYTnZy61BEDB8GXlyt4A= 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 1789422678676644.3044719408041; Mon, 14 Sep 2026 14:51:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x6EZf-0003u8-G4; Mon, 14 Sep 2026 17:50:51 -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 1x6EZd-0003tH-9O for qemu-devel@nongnu.org; Mon, 14 Sep 2026 17:50:49 -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 1x6EZb-00019r-Lv for qemu-devel@nongnu.org; Mon, 14 Sep 2026 17:50:49 -0400 Received: by mail-oi2-x11.google.com with SMTP id 5614622812f47-4c6b4783778so933160b6e.0 for ; Mon, 14 Sep 2026 14:50:47 -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 5614622812f47-4c4a2504bc4sm8937163b6e.17.2026.09.14.14.50.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Sep 2026 14:50:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1789422646; x=1790027446; 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=/ExVstuu4me8sCdySqO0piWRDOMZfcIV3gwZVKKf0ks=; b=mG/n2FGon8VRCZ6TZV93/3ele9kOOsKaG1tJXULS1NzegLSAF+MiULBOSwfdbLUCKx 2YxDwrOxWxcn5juSpDF/+pbox59A3Fs76FsRGScEKdqGGZ/5XFJMXCnaz2xBcVHkaKr1 EVLVWBngaVvx+n+PS8cA/txO4BO+p6r3UBstCYSn0SI8ldQPOAilOgnOgSfTHXJ5qAPO 4XM0hNazP33G8Nh/W/cytXt358tWU74EFpb8XZToY/ocnOGY2p+v6SOJ8EMWS3+7XSg7 DurCgRtVSzImjedVrGaBP1lD3JqigvuTlAngVrfOASoXKKHlCpu8wBXQWO3/OgYAikO5 2ITQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789422646; x=1790027446; 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=/ExVstuu4me8sCdySqO0piWRDOMZfcIV3gwZVKKf0ks=; b=1Oeza9g396XfDQFSrqQXlCRBlKq3OFcCyjRVhCwWCA9gH+fW76gFV6al2i7Bruf5kJ 2x4Wck5IJXpj1JcCMc7JIahBXliMGeYPdo3rnyHVfMT/1nAmAILrG8kiSFF4Di3PRKhJ FXC+u17Zoz+YFtg8wdpyIQOQUwC4BVaHK4B3s10GbPeAVzsW0TfXXdLD9BEmLTv/9FxG bceE7VPLLHayeI5C/hATeH1WITfIpyfaivCNuoyNB+v/Mqoc6IGNlx8Pf5GGcxCeYhCN VVp20Xv5LJPALCdO3l56mqS9l8xgT7CyQ+SPTjuHVJRiDx6y68tlcRIuGw8XIKU+9f5A j4IQ== X-Gm-Message-State: AFuF++lsQk/M0rP5/qNRmHAEP6BOreC2qcVuDF/d9W6lUTPzt/1Qmkgp +LQjIFMVQBMt7MT/76JM7ID1sXqHdpWM7SZ2vOziNJZBw2oy7BbE3UT1Fw/GsZMY X-Gm-Gg: AYBFou00qdP96DY51Y63hYttFRPyMLmfMwuRIA9p+MV0ngzSNFrkgJXncEFXlhJkm2y jBQwrCFQ0SYk9ITfXXQ0HJpAxqfuB66JW/EAXGbKHZ+IsdtqMKeaq6m9PTH+BcBkJAB0MNuEvwV kNCXRUROBmPmf/VTMG1ixD/Lyy5tOJ7UH9ECHKGhs1zjIuf7KXZvTGwAYSjJ3INlQaCvI5jIDiq HUjWZv4IpMmiUT4k+BwIJrZ3FmIQ8NgFqsipYb9LJO0xZD5zw7oHvqkLWSu99cUzwuPQYeVxl4Y 3iyX0G+6RkQoThJegQ9+4vtlveK2ibmECR5jmrkJOFdXAJVZWi1yUBQpHXNwgxYKRp15rjdIiv7 ysjxhaqT+xxw/U6QvtnfzYiZYt65DyojKORgLXHCj6YIRmgTyz8iP/szpnXjLl/AkE02f1RlSy0 hEyj9a7Iak7Dw3UQmPwMPPjfGNLh6nCz/9fZHrI/SGvfs4w64A/mWgWL7IRSIaUz+dQwCCScVcT x2KLwpVIKnI00bKMHQ+ucIOh/aCujYHSl6kqbSFFTwCjLj4zqCuvTtDuAyLW+kI X-Received: by 2002:a05:6808:30aa:b0:4c3:ee9e:200d with SMTP id 5614622812f47-4c7b3fd43b8mr5502431b6e.7.1789422646535; Mon, 14 Sep 2026 14:50:46 -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 v3 04/10] Hexagon (target/hexagon) Check for vreg multiwrite in analyze_packet Date: Mon, 14 Sep 2026 15:50:30 -0600 Message-ID: <20260914215037.157879-5-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260914215037.157879-1-ltaylorsimpson@gmail.com> References: <20260914215037.157879-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: 1789422679421158500 Reviewed-by: Marco Liebel Signed-off-by: Taylor Simpson --- 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:11 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=1789422723; cv=none; d=zohomail.com; s=zohoarc; b=jelCjmCfh7dEwkB2+6qP1KU9xDsuYf+Uiwq7qRnz1uiLO22i3pGbEqZCvB0GMF7ZBsySlchaPVpDL+NFVk4QB7VsOAzFV97vfPKZx1hl5/dodWrtJuv2rKTPJcPgaYpc9zsMieaHpCCHLgJRtyCvZUgfqUnIxw3o4lTbHdlEvWo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789422723; 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=kGTBgZZyoBgscZLa4XGxTdhsorRtXVliE/QWC4MCN2g=; b=hVnprqGsiHrcegn66C9badKDG2awYnO7NnAu7vroGAST766k0KCRI9DuS+Y96EwtlfBxitinl9Rp627qLmrQO+lMXYhUATO6Etp1ulb0ALPzXU0/wyM1O53puTzo1R2DYJj4oRsSeKkRsF5GfGEI8U5moP8pktgjqG6hot3aqK0= 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 1789422723653839.4311931068352; Mon, 14 Sep 2026 14:52:03 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x6EZf-0003uP-Vp; Mon, 14 Sep 2026 17:50:52 -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 1x6EZe-0003tf-5P for qemu-devel@nongnu.org; Mon, 14 Sep 2026 17:50:50 -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 1x6EZc-0001A3-J4 for qemu-devel@nongnu.org; Mon, 14 Sep 2026 17:50:49 -0400 Received: by mail-oi2-x11.google.com with SMTP id 5614622812f47-4b37a3ed714so1562197b6e.0 for ; Mon, 14 Sep 2026 14:50:48 -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 5614622812f47-4c4a2504bc4sm8937163b6e.17.2026.09.14.14.50.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Sep 2026 14:50:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1789422647; x=1790027447; 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=kGTBgZZyoBgscZLa4XGxTdhsorRtXVliE/QWC4MCN2g=; b=m71tIxhQjC/AWaao2v61Ll7lph6sEq7M5Olo56P6rdIxcoBVdNLQ/599ZpQwQYaxIw 81zIMu4yEcRKoXvwiVQalcCIz9pc5jSnrGsVjv4rAvvfLYwH9j+Nu5WoO0gsqcbu3sGu voO4Bf/Jbr1hvpUKeJp/v5SvgrvIRHCSmoSaH1LEk+VPTHHNcPt2zPBL91e237ty04cD LRIS4kv+wwmjhlzixQSlcrrDsJNDgjjYNrk16yiNzz7nocNVND1ZbTOMAvxZFCbNFwIq 9X1OUbK2hHRprfZWaZV9U4M3za9q7xmHksvep80W7c2jncnzUxlSwaRB6MleAJ87e0Vr Ilgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789422647; x=1790027447; 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=kGTBgZZyoBgscZLa4XGxTdhsorRtXVliE/QWC4MCN2g=; b=epACe7kC9jgbtjf9GAbRClIc6Ml4m1T4NjzFgINHql0I60SRzgvpzIdgsklPVsxXjC Y8OmMcWqvyxqIjRJ0tiG0Xe7jxsvBwF0w8QohH1LmpNl1VPpCJ4PclFMOvY2qsaTXvea i+5iFWV/N7/JJumLitUQPgmCCdq3POTRq6/PTv4BAFkdC1z28YmZKroDUXWCYxhw7jLy kaiQFUM8tSn94xnWTk2FfOf0nTaCM9Ft4KKFqTdGypZ/Ipfg76GpWvrN43HHKr5AIWc1 XV6g7Xsm+9yDImYPbjgkGM7indc5o7XiWrHf71gZmnNYO2BDnfiwy73oVMIUzhwiZXS5 mKuQ== X-Gm-Message-State: AFuF++mtGWfmhx7uxqmh7C7IiLXlfiP+4B8dM04jRHUrRMXl28yNbefP OZ6SwWthkAFjTaSSqU+lTn1c0+25WndJi1VXgprm82d0i7nWaZQm4jWsnMJmgbhO X-Gm-Gg: AYBFou1mpuokzV5QD+YBrLFzlFLtarRe8VtuTzarr3Xp4rIeWB/hRZy92aryJhtqTMI 54KuzlpMbKftwhTa8/1tGmiofDeh/F+pA9hPnNy8POJ57iDcSJPabZT96EuC2Gpym3SCFenKXJd zUGoz7tEPRzciUNhmYb9ldGYCWH80tcUhJpxvYVdnb7G9o6ZcIxhaoRXdaSbS4T1GC7RRupLjdG Y+9Kh6TPrbHu/gzNWWiwlLAnP4UDB8yQ0Fx4TdvvTTVRiSIXZdhRDQUrdSHTZOYe6EDvCfVbPaN PfOnsh8gRY3djiO4qYmjBI+G6ZiQ1Gc+sGS+FEB9mIjk2nARpNpt7lWqZWf9f0l+b1uSsmhRMoB AXaxtecYbps/fB/Lbn82t+dDknMaE8F5/hk66Ei8YZWra032pua8vYdxgXa3yYKLJV5UWpgWW4H MaUDTGi64QcecFAc3vBdkpKkOuydpYQjhaPZvQRRNTL4mz+no059zA8E8tVgWMzmJgOJMCLxXgd inUr/csynos9lc5rO/S6YshoXYQFKBjdV3tsLyPXZ2e9grvrrx7obtYoGEL5sV+ X-Received: by 2002:a05:6808:15a2:b0:4a3:fefb:899b with SMTP id 5614622812f47-4c7b2dfaebamr2899062b6e.7.1789422647508; Mon, 14 Sep 2026 14:50:47 -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 v3 05/10] Hexagon (tests/tcg/hexagon) Add tests for vreg multiple writes Date: Mon, 14 Sep 2026 15:50:31 -0600 Message-ID: <20260914215037.157879-6-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260914215037.157879-1-ltaylorsimpson@gmail.com> References: <20260914215037.157879-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: 1789422725538158500 Signed-off-by: Taylor Simpson Reviewed-by: Brian Cain Reviewed-by: Marco Liebel --- tests/tcg/hexagon/multiple-writes.c | 66 +++++++++++++++++++++++++++++ tests/tcg/hexagon/meson.build | 2 +- 2 files changed, 67 insertions(+), 1 deletion(-) diff --git a/tests/tcg/hexagon/multiple-writes.c b/tests/tcg/hexagon/multip= le-writes.c index 4305903547..62e5828a0a 100644 --- a/tests/tcg/hexagon/multiple-writes.c +++ b/tests/tcg/hexagon/multiple-writes.c @@ -199,6 +199,68 @@ 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_mixed(void) +{ + int sig; + + asm volatile( + "r0 =3D #0\n" + "r1 =3D ##1f\n" + "memw(%1) =3D r1\n" + ".word 0x1a004100 /* { if (p0) 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; +} + +static int test_vreg_illegal_uncond(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 +286,10 @@ 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_mixed() =3D=3D SIGILL); + assert(test_vreg_illegal_uncond() =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:11 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=1789422739; cv=none; d=zohomail.com; s=zohoarc; b=DFnzvet1qC73YhdpWbN9VZ2NodimOEEKxMKBJOnWngzNa0byG+kfnXmDz8DemA/PALe86apBoJ7g3nwYSDmFgtZvsLR405GRTBImPkCE5h18yGWy//nxPMNJ3dHJqO/g+NlzQN4GRWBh0s/0ikHyUwvs92KFzbK+QJ7oph+9Pi4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789422739; 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=fLsa//+XZ9+Xsn4gbcnm6ZGz+g+Rhrde2dTMeiCZzGI=; b=LcYAZVX18MVHp+eXvUtvWTg8JqdIyfTaAIejt1sWs/VbcDJM/j0pEHGVhe4YxY2ywVeHlKZsjRm/fZDK1wbdtGzqQ/ptBpVnBgUB1n5psHfFlbudoIlFJfLV1fKxyUAS2zJOsw9MRjvgOmrSrKBs31ZfJic58gUGRZkzlmS19Qw= 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 178942273999172.42104877149427; Mon, 14 Sep 2026 14:52:19 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x6EZo-0003vZ-4I; Mon, 14 Sep 2026 17:51:00 -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 1x6EZf-0003uI-KN for qemu-devel@nongnu.org; Mon, 14 Sep 2026 17:50:51 -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 1x6EZe-0001AI-2c for qemu-devel@nongnu.org; Mon, 14 Sep 2026 17:50:51 -0400 Received: by mail-oi2-x11.google.com with SMTP id 5614622812f47-4c206dc8adcso1055758b6e.0 for ; Mon, 14 Sep 2026 14:50:49 -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 5614622812f47-4c4a2504bc4sm8937163b6e.17.2026.09.14.14.50.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Sep 2026 14:50:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1789422649; x=1790027449; 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=fLsa//+XZ9+Xsn4gbcnm6ZGz+g+Rhrde2dTMeiCZzGI=; b=CxWkmyAWZ9httHIlT16DpiUMgH1UhrvIPqP/TU12ncj1F31rvHwSbU9J+syvbCLEpt /Th1c/LBgfBj7TWDmgCGTl8vEYCXi2b3xInT49QcjtF3JHEzydvugTTPuUqzATu4H01y XxSv0gluccZlubKfmJwAtTKPQOWnmj/zXzguzyufCm2FtaTAwiaiv9V5rouMfGRKXVNj eXU8CauQUZ1uwH7yURbTrInMvyTaKvd45jbWA5r1Dva8ScAC9gk9fw8/M4L9K6TjKY2t wDWdRqAyxLhMPlpV5FxzwxYY2hB2Jvm1H2EowKOClBubKn9/GcATauhLzt8HGjuJx2DQ XOKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789422649; x=1790027449; 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=fLsa//+XZ9+Xsn4gbcnm6ZGz+g+Rhrde2dTMeiCZzGI=; b=mMUlsd4GPL0FKzcWrQ2M6gLKKQAnSH/xcdHpqUuRzoGO7C3ubp7e+TizCtj15n2iTq odr4P+kEGLLHvrVLMY0gDt5ZiBMsi2jtvxtDk0fBvZ4D+3SZPLhjoHq9HUnW0VJec17G rjI/loL41cEiEE2VY85NDo4lSHqmBorX2fKLbgk+hB0Iv7w8m/1D3/uCnjoDXfWBNPMl fM/XI0XUFW1oNCK5EH915nCK+lQXGliFZ8SAQz9V9oe3ASj7ydZjHrursd5nMTQIL5jw X4eVdNRR2Ejsb81z0k9UklW4GW5rM9RMxomrtuvLLKnduVX0+D0bodez94Jj/Qs4GVs9 P7Sg== X-Gm-Message-State: AFuF++km5M5O8BJdcnhnrhgYEALd4pbXgS7gEUBmF0V0KtClPfEYBmxm E+Ob4qYy3h8+zB5HiapvjzXOOA9XiTCA/9XoF8k85gRy3ePQhUWpjiu+2M2rkk+D X-Gm-Gg: AYBFou3q0c6QmR4Kzik3/4e94Us7ctMK9DcKR46sjQJTgnIjjsx12RM+4bCRMhu9+Jw PSb7EP4a388UjzGOsj6ieh7SOJiuMgdtHPJ9ORg85JmCr9h9fccwkWog7xvSGFYjOki9SmF432U BnZPrDAyu0KRHN3qWvpgCEdCRF+LRj7YQH/f1hjmlCWSV7MQLv3DW/Ak6fJECZ/E7GXF3PXSin1 uwvDnE/BhpNOVDIvuFnIjceHbeAB/ZqlZRfyxiI4HQwjYWfRC1TR01h6G8dmgK6LaIEZWVQenjm 7xLeBFRl5LvhMyatBe1T6mCdT8PLc550KKgf78XwX8jo9ZQBo7IkJu9m6mji2WhygTKXK7yREpb 9YhBjT1QixZYYwKpV4BzrzGOZg0XqgQ1ZteepNPwcTFxKElqhOWOLSOXfBpDRFmXteU8HcMUOtR YeTDYU07bGa7NDui/52Xvibv7EUqHcZfAS2Uag0vVdrH//PaNpKdC4hLYSHNsJSEtFVwsLAkCj3 pPnC6r3XZYX/TeVGM4xodGi9I6AndyJgEwa5ObaksHRbH9AAfIM9CPtg/eQQDvp X-Received: by 2002:a05:6808:1709:b0:4c2:d7e8:cedb with SMTP id 5614622812f47-4c7b3ad6320mr3044082b6e.11.1789422648944; Mon, 14 Sep 2026 14:50:48 -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 v3 06/10] Hexagon (target/hexagon) Check for qreg multiwrite in analyze_packet Date: Mon, 14 Sep 2026 15:50:32 -0600 Message-ID: <20260914215037.157879-7-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260914215037.157879-1-ltaylorsimpson@gmail.com> References: <20260914215037.157879-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: 1789422741288158500 Reviewed-by: Marco Liebel Signed-off-by: Taylor Simpson Reviewed-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 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:11 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=1789422699; cv=none; d=zohomail.com; s=zohoarc; b=kOWz2gLY83/AdrUSu6Zdl2G/DILyFKuxCPaQ5ZiXnNvhm8LWT2yyBzB6G/UJvf5OB8TdEa0fMUPyli/NXJCYL2Vv2BNma2pe/cM+WY/YLNdFt3LtYed/62Qb0Jw6AcXHhO2APp2CXPNpGVWQHyiv8NNPlwDScjlcr8fZgK6/2Cc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789422699; 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=yZvuPipwiX8omDNkIQVpE34c4ISewqbxjiFYSNS3wGo=; b=eL7Ax3aoa+9j5Vol8Jj36CTSSuUJaMOp15dYHT1pVTDwmKUVZFz7AXCgYizy+haRg9xcw+Epa8O4AAix63x243ptElc/5IxDB1jApb1UH9HZYYt9NP0lS4AzBuoF35ylod0aGC4Un9cv9snBhGNb4jF2iKZxTxZxnJnAW4M/vUQ= 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 1789422699137417.68203025535377; Mon, 14 Sep 2026 14:51:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x6EZi-0003v2-AB; Mon, 14 Sep 2026 17:50:54 -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 1x6EZg-0003uk-L3 for qemu-devel@nongnu.org; Mon, 14 Sep 2026 17:50:52 -0400 Received: from mail-oi1-x22c.google.com ([2607:f8b0:4864:20::22c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x6EZf-0001AU-5P for qemu-devel@nongnu.org; Mon, 14 Sep 2026 17:50:52 -0400 Received: by mail-oi1-x22c.google.com with SMTP id 5614622812f47-4b1ba286f6bso186852b6e.1 for ; Mon, 14 Sep 2026 14:50:50 -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 5614622812f47-4c4a2504bc4sm8937163b6e.17.2026.09.14.14.50.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Sep 2026 14:50:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1789422650; x=1790027450; 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=yZvuPipwiX8omDNkIQVpE34c4ISewqbxjiFYSNS3wGo=; b=bFG4lx6zyy9VLMg8DV4sw2JtogEDVLgNBu3yMq4DNZQ90GxIV6Sp20wJp9Fb/q91Fu zJP5lNpbV1ZuX2g1WZ3gt5Gl/Oj7EYUoo4dtb6+zLXu4bxcFZYntMao6UEzzHq+gfMsh 5rSoh20nAWVDWFfcbUzSTJj/QvhAygoaenbSFnPwkrxqCWoj5VbusseyHPDcXDdOv3z0 m/4SD9s8hs0+1HybTzSuRMCaO6uqHBq8JhXWFxeTY9cL7TZSg+HvFrc7qF+jF83SXmPt jwaOubHb23eFz6U+vNcXQbW6Fw5+b5FQTBX7lBG7AuBMHWUE89iy0i62FYXi/cxWJb6g Ke3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789422650; x=1790027450; 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=yZvuPipwiX8omDNkIQVpE34c4ISewqbxjiFYSNS3wGo=; b=aIqqfw0bP0QYYzBSCwenBX0e/VYLMALIT1e8uM4eZ6YubRb7WlhtTrQpRn4BeWO9m3 uo3wJPWj/vHFzflwB7YyB8S/xSNhHYzEsUR2yCFvsgHLeBrfq+ES5wUE0QrqC1VM6y8B tGHYXd/fjcojBao0qotGbFypZ22E/CQ0EkLy6HFzqIUabt0Mv4cOPGaFjggbHCsmOQr+ FzoL+kB/MSMEoNszbciA6J7uK/iaQah7nQ9oLiMc6UIeHp/so33OLGS4nRJC0CpEnOtd lBze7b8jBwJD8rZgYncZsb7X4iEjYVmKiXDD3iNvT/RpXyVBh+CPjgI/70kvHY/Ufovy 3CTA== X-Gm-Message-State: AFuF++mKm1ZoXX2sSK1CJHEE6ckGSvTY6GrrscxSd5TaTEs4pPLzBr5Q oybN5ZumGil6Iy2xWjASi/SZEF9LlhNDWLR8+oOVdtLNnWlkuYDZyYGa9fEhp8U6 X-Gm-Gg: AYBFou1ytRHdLTLb2q3FF0/C0zxCRyPLz9I8bq0G35JTxFW18YcX//oTd+ijT4NpL+i ThR+5msAqZK9qKSJYJTkM4+kYF5D5tTE0ortsrC6929EugfGyrpclMsXLLGqfg6oLyrV7nODMTy 3ce+d32yZUNqRemKDP6IpcmDHyHEeLael+K12AaNEHxNz0lUjCawdBawRQV7MvQg0NfywVfmJ8t o5bPLrDi0aedrBNgUj0blSTr0piWd5yS+il9swmL6L8ZacV/sGivnHCLFztCFSNUUTySp+dVOzZ ieofI3wKhoecEIRzuQQz4dN28nUzj1vnEiparAxZJO+SS5gPZC9qvFZzuhQYZUxmQ8voELI4itc 0msWcmFCZDr+D1D9ChFjWTRiY57taltcTFVjcwrrkokUbSSvCw/bXjuVKhF3ZZywHvBnTbyAvFQ fmKJwTTJjcSVyrNFYENhF/xzcbHakFz7RkGuPAu0URJ2P9Wbp2MNVCo61aIiWcEJJmBpgWUN+ak Qk1Gg5q8ZW+s0VQA3mWvdSjrNBFdFv+KQth/oeZbuuJhaO20nknNOskduGfxIHX X-Received: by 2002:a05:6808:c28a:b0:4b2:8dbf:ffd with SMTP id 5614622812f47-4c89ef82b3emr686939b6e.1.1789422649941; Mon, 14 Sep 2026 14:50:49 -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 v3 07/10] Hexagon (tests/tcg/hexagon) Add tests for qreg multiple writes Date: Mon, 14 Sep 2026 15:50:33 -0600 Message-ID: <20260914215037.157879-8-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260914215037.157879-1-ltaylorsimpson@gmail.com> References: <20260914215037.157879-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::22c; envelope-from=ltaylorsimpson@gmail.com; helo=mail-oi1-x22c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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: 1789422701114158500 Reviewed-by: Marco Liebel Signed-off-by: Taylor Simpson Reviewed-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 62e5828a0a..bd2b1384dd 100644 --- a/tests/tcg/hexagon/multiple-writes.c +++ b/tests/tcg/hexagon/multiple-writes.c @@ -261,6 +261,27 @@ static int test_vreg_illegal_uncond(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; @@ -290,6 +311,8 @@ int main() assert(test_vreg_illegal_mixed() =3D=3D SIGILL); assert(test_vreg_illegal_uncond() =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:11 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=1789422754; cv=none; d=zohomail.com; s=zohoarc; b=SJacDgJuGnlsTHvEsAU6bIUjAs9VG4/8Hnc2GsnBOPuJAaFeV8HLEfa+68o1J89HY6oqwRLu5cDYhfopgPNyXaXR+AP4RZdezP2Qh2QerMfbZfi5UL4d17XOj8PPspi8KCvN5ch4p/IwuLDdcM8y2IDgngy8ySG3KsdHxlDtaBA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789422754; 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=wCd2cA/LUpQyass9ePvoTKJyyqXKS4xxE9bzNRBwVwk=; b=apOkaTu5UdgPo7tM42CBn91rR5INlVV+GQoKwKHQkjRHtVJC46RlZDcb+JFitgSHKVjD18vLebVcppIjmiHoWUt/8uewlKsSsNVMOSGu/Xu5KNZ5cuUTLllpLQRVPsl+AUf4Ko1szrkfJTnP7EAu0UwBpy8ijnvFAK4NlsJo3dk= 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 17894227547785.218800460675766; Mon, 14 Sep 2026 14:52:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x6EZq-0003vv-3h; Mon, 14 Sep 2026 17:51:02 -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 1x6EZi-0003uu-0f for qemu-devel@nongnu.org; Mon, 14 Sep 2026 17:50:54 -0400 Received: from mail-oi1-x233.google.com ([2607:f8b0:4864:20::233]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x6EZg-0001Aj-II for qemu-devel@nongnu.org; Mon, 14 Sep 2026 17:50:53 -0400 Received: by mail-oi1-x233.google.com with SMTP id 5614622812f47-4c5373b1138so2068469b6e.3 for ; Mon, 14 Sep 2026 14:50:52 -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 5614622812f47-4c4a2504bc4sm8937163b6e.17.2026.09.14.14.50.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Sep 2026 14:50:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1789422651; x=1790027451; 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=wCd2cA/LUpQyass9ePvoTKJyyqXKS4xxE9bzNRBwVwk=; b=KNh7kbsp1SOUmllpH3hqlvvAUtOqbALuLY9Ew3pD79hRBWsVmuRLjUSdiErK6PEKke KdfsmepGm1oEegVu0A2f2HrZY3XKNI9h7QbLGYvj9WFCBKzyRrdXcd98Nt7AnnpRgHiY 89e+X61P8NM1xuLsvFqa/d0ZTUfusE90bWwu88M5n8fonDUInrg+NISzO4W2AcGYiwwA TMxhMtkyRGrR/q4u1+6qx71DP0ciyD2XcmGgeAM2XC4HHZmI5KUMwvmWIbOf7Weuhx5S BaWPZ7UrgDVszXuE9MgWgY6PZ0syW4xUu9z/4L7uJWgbE8y+4fnrnikb/OY3yJ1CB9QD mt8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789422651; x=1790027451; 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=wCd2cA/LUpQyass9ePvoTKJyyqXKS4xxE9bzNRBwVwk=; b=nAJC2o1rEaK4AZpu0ICBORUr/G86eEPtCUW6IOcNXDpOMbI30IgumTlw6sEtAQDOwW z6IFtY0tfImmVgxTTkbYX8N8LdOcaEn8MRgr5JVykD/zMlwNH/gHRCKCJ5pPKPSLxnQm hOWrfH3zJQf297WHXguYBgYmNUIjdIfoNkGBLqY0DhTUoWgFaPzcISOcq7S+2HUp6X7x byb4n/yCGxXzPg3xr12t43Qx01mmWK3xelcIrLl61RL+YTjDQCKIlVZQ9Estw3Fmr/1J tJkDmflnQbTH7J943F83g2pklJJ462QaiJFGYsAwddZ+yeOswfJ+NeCDLa7ZHTxMIT/z GKKA== X-Gm-Message-State: AFuF++mBTWIXt69z+DxYo/oai/2o8l/PnLfEvMJczNJ1BQoUamVlUW3M 8wWKc4e8BgMZ0GSF+so+/U/zrzw8pXbiewfqWwSmNlljQwUhq0IiP43Ul6A0XMYR X-Gm-Gg: AYBFou2L2+rvlRojnU0pAuE16GAV7vUqO/mUz6eiEYFd740Bq4QXpcQllczrluius5T aWCjXj40xLwNwBWAWlBZnrNlmffHUYoWAZVhe0FnsQoefD4HmKtiO1W1BvIZ7Bgbmmoq7P2Ol8D atW4sqSqsrK+pcresFg8JVWhNYM1crGynYVxEwwDSbAYVXlKOf88jYeMCfeFaDtEECSAC0iC/oh b1q5h7p7x774xQfCzx13b9fvbfXROdv8tBsv91IAWZ66gd+Lklvd951NTC4RcBXSrB09GFLzpFU yq13XCHjd29xe/QTa99VhkBdmoc329AjLGDIa7kBJB8+IJp3b6mf01Zm380WfBO8AK4Xc1+XePk s7Q/Vg99VPAEBAzwCqhwrGTSu1T0zjaKvbBvIIT2ZRmkQ5NhpLzJqLgjDUy5ay6mIZ/lI/g4hRs e4+2szSE9EIAekWkwr+0t3h5U/aSDsoV+zzyVOQ4x2ceEB74XcXxknsyxDjm0fhBXXuqM8166q2 +x/VM5TLD5Uj8rHlOegURHDbZFqfufsaMnOWObnr8TRH9dDyB/z/zE9CE0oURRX X-Received: by 2002:a05:6808:179e:b0:4c4:79b8:8ad0 with SMTP id 5614622812f47-4c7b37da5a2mr2721130b6e.11.1789422651325; Mon, 14 Sep 2026 14:50:51 -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 v3 08/10] Hexagon (target/hexagon) Check for greg multiwrite in analyze_packet Date: Mon, 14 Sep 2026 15:50:34 -0600 Message-ID: <20260914215037.157879-9-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260914215037.157879-1-ltaylorsimpson@gmail.com> References: <20260914215037.157879-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::233; envelope-from=ltaylorsimpson@gmail.com; helo=mail-oi1-x233.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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: 1789422755439158500 Signed-off-by: Taylor Simpson Reviewed-by: Brian Cain Reviewed-by: Marco Liebel --- 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..19585a108c 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->gregs_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:11 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=1789422697; cv=none; d=zohomail.com; s=zohoarc; b=S9xIRn4E/+/ZsLSqBqWrr9M8uHRoK0yCAQ07KKuOCSy3mrdJYk3PeR9F7021dZY7bXW3HlTrfC3Orhxj4MTOalbTzTHu9yfi+UZwdqfit11Bs++57zUjC2ND+zSkmqpv5L2HZ5bZTT0hcdI9s53dJ6RVTkHzrbXBSV4dKPi4MUc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789422697; 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=unC5f1RheMFwN5jVnuAZPd0KH8jKxp8hq2mS/5VGK2c=; b=iGYX4Wk4WkxUl1X3BpT0iFOzs1r48Mq/cfSssY+jyGnYFHFwkfEDxP/LOanaaTlYDrh3SkARb9GCbTXBlbzMCfdiHziupfWAQbHA3Wxc00ZggZ97ylR7iR7zA9/5WlczGv2JpDxluP5zleDhskwwklUhw397JoHUS8y4JmekwG4= 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 1789422697935782.4926205407681; Mon, 14 Sep 2026 14:51:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x6EZv-0003wf-3A; Mon, 14 Sep 2026 17:51:07 -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 1x6EZj-0003vM-WF for qemu-devel@nongnu.org; Mon, 14 Sep 2026 17:50:56 -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 1x6EZi-0001B2-Gw for qemu-devel@nongnu.org; Mon, 14 Sep 2026 17:50:55 -0400 Received: by mail-oi2-x11.google.com with SMTP id 5614622812f47-4c206dc8adcso1055788b6e.0 for ; Mon, 14 Sep 2026 14:50:54 -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 5614622812f47-4c4a2504bc4sm8937163b6e.17.2026.09.14.14.50.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Sep 2026 14:50:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1789422653; x=1790027453; 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=unC5f1RheMFwN5jVnuAZPd0KH8jKxp8hq2mS/5VGK2c=; b=bWoeW+CtWwrp1J18IXWQsQXolWlEUdzpMyFebiFM2x6DHfbPT3jEQTaw7FBmbm1mhY Efsqx56GeRyL0/vKvrRuxXjH7iiTBEHPLx1bZh0wEgFtvmFWTLzT/+NL1apzV3YwFfSy /HNliat3/AxvVJYpvmbACg5rM81/VP2uMxZnhJD328Nl65MNfGuHDyZODm/Bg5Ug7r8Y Xj6UtR3gqwmG4XYyswKKhdarDudMgB4Wdw/yO9eAM8n3vQ+cwXITOIaMCfrD1PA+zLll ZtrpAHgpmEZd/rCkQuCGTlmajNZ3zDKe29Oe1g5FgBHgjyzmojpgyhHW9CPemSb2y6ha BGGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789422653; x=1790027453; 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=unC5f1RheMFwN5jVnuAZPd0KH8jKxp8hq2mS/5VGK2c=; b=qUcEG8mFnHlJSPD5dAtQUQ++oA6/PUreBlCdtib5YusxWzuUYkXcQpwTaOxIrsy4+h xwvc5DKmKCCIhSQZ4LMuPrNPCkGR9D/Chx+zGLp6/IJSqV7WaMzHz1yCr9CHXcB57ZWt pb0uAYJSLMHHOQDQw0MBLfJfuxga7f5LViyhHL602vl0qQZ5Z/F2YSPegOpvr1ozviJS Ep7eRORC4+oIhg8l4WASAtbPyzXd2+GzRwgx+ELmSNKQMppta87J/VzzjC07EnWffseh qsEXMJrrjd/kNRw+QEZBqX7VUYNOdNA06ViNm61/dbCqHPyiLlup8pTZ2BACrjEJ8oMo KBpA== X-Gm-Message-State: AFuF++lB+erq4faXAGfqNrJx7vZYamFDBdxYr+mYebLclr2zcFwmoAQh d6V2uaWXMhh8MpXdNvZoBAkoIprrnT/whpSV0XX9Zs2zDr1eehKtIaqKhC5jtofX X-Gm-Gg: AYBFou02UcVjxP33/I93Q2VxM0mFkBx5rdzpJHLJAUj9kIn5fwagNXM+eTqL5/v2cHK PmEeab6IUETdPvSLrPlPmsk+jxmwNlhaNqA1h7bR9WPW4jWrN/y2A6/5J8wtnPq8tQp+P7BxvVS 3S2ZKeGRqJmEEZ3lFE8OvoPOoMhXS25zxRmq9fXAn/M3REXRWOrge0v3CvtGo3UvHmlkgg3xEZs OfcDaXc5GXHXQITx2ozdeygC27S1r6/yH622mGYqnUtc0EFE3MofNQnMlHdd3aU9lGfssms9rI2 pwqKTsSsnJhUuYXE3rn4duuuVyt2JvXuDOgL7xRoQ85KpvnIO7UVuQpwJnVH3ANH8+0weWkGBq5 qDfeePSPPP+P3TdWpkzXR876xKZNH0jvsgx9fD785PvqWSNPuvbCe763h+PoyT0SRhTUXGuhgue lABgqAHK7rALei23+CeDe7cAtqjN2qaE6dVQHPhrn2tZTPyfwDQMhqHqr/tKcUFGaI1/TQqcPdK B366ptfmNg2EV7VdNPyGkVqPwU/uzKjvBei3cUOQGQ8UTjMFIxcjm2abtggdZWj X-Received: by 2002:a05:6808:14c6:b0:4bd:1fd5:9595 with SMTP id 5614622812f47-4c7b5e81595mr2908733b6e.39.1789422653437; Mon, 14 Sep 2026 14:50:53 -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 v3 09/10] Hexagon (target/hexagon) Check for sreg multiwrite in analyze_packet Date: Mon, 14 Sep 2026 15:50:35 -0600 Message-ID: <20260914215037.157879-10-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260914215037.157879-1-ltaylorsimpson@gmail.com> References: <20260914215037.157879-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: 1789422699219158500 Signed-off-by: Taylor Simpson Reviewed-by: Brian Cain Reviewed-by: Marco Liebel --- target/hexagon/translate.h | 11 +++++++++-- target/hexagon/translate.c | 6 ++++++ 2 files changed, 15 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 19585a108c..a35c6c6835 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -578,6 +578,8 @@ static void clear_pkt_ctx(DisasContext *ctx) bitmap_zero(ctx->gregs_written, NUM_GREGS); bitmap_zero(ctx->gregs_multi_write, NUM_GREGS); ctx->sreg_log_idx =3D 0; + bitmap_zero(ctx->sregs_written, NUM_SREGS); + bitmap_zero(ctx->sregs_multi_write, NUM_SREGS); #endif bitmap_zero(ctx->gpr_multi_write, TOTAL_PER_THREAD_REGS); bitmap_zero(ctx->gpr_uncond, TOTAL_PER_THREAD_REGS); @@ -635,6 +637,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:11 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=1789422679; cv=none; d=zohomail.com; s=zohoarc; b=bR6cidJ/vC7dbRepEDv6ZrXlc+lkin4XzpXE7IXU+Fv7pSI+yTrfGmoTWc6fusoXQnUIxbpF8bvqzqIkGn5ZX5EG/VhKOEjL84b00+gVMnzmkiMkH440p7myyuELb3uZWPni1/aXQdhZgZnAuR/dUOWyTRuPJN9+widRpBiVv+Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789422679; 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=kvjJo7XlO1sJZFOXKUy7l+awTuxFTdsrESZN/Ob/T6c=; b=GcZjKhot78yQ1mXODVrz7GA0tb9JqKsuXBbQp6LvER+yGEDVXgdKJZJ0ARVhJkp5kTLdnKfxqW3HOwUPHSBDT8+X9Q+jQAME3q1th8smYc5Xfw65mPk/S+x8BTyJvlRc8+AEvtwb97KWusgdo+2SqDuw3iz2bo9fiQHb19Ugx/s= 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 1789422679544464.145637214899; Mon, 14 Sep 2026 14:51:19 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x6EZx-0003xA-Cm; Mon, 14 Sep 2026 17:51:09 -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 1x6EZm-0003vg-4q for qemu-devel@nongnu.org; Mon, 14 Sep 2026 17:50:59 -0400 Received: from mail-oi1-x22e.google.com ([2607:f8b0:4864:20::22e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x6EZk-0001BD-8p for qemu-devel@nongnu.org; Mon, 14 Sep 2026 17:50:57 -0400 Received: by mail-oi1-x22e.google.com with SMTP id 5614622812f47-4b381337e1fso3986842b6e.1 for ; Mon, 14 Sep 2026 14:50:55 -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 5614622812f47-4c4a2504bc4sm8937163b6e.17.2026.09.14.14.50.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Sep 2026 14:50:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1789422655; x=1790027455; 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=kvjJo7XlO1sJZFOXKUy7l+awTuxFTdsrESZN/Ob/T6c=; b=aOyAuuJqPYWCDTk4SL3+3HwFI8txOcis9YswJxchMxLYb37EJ6IrpTEKHrS6vjGmte MTKF3PAxkfT3g0w8B3qtQ2A6iBuYsv6RiH1B2do2xtg+Tg+9XWtcJx1JJx2TR30k9qTc qRogalyGaQXIuOYAJVnyme5xJjVmfsuFaEHvK/m2N11R84dCw/vsXRfkoGBjqLdpqo7J P1b0Ly49rk8uVTjczLssPiuYdIoeM5uywfq6tdW/rrEIwbt/SfSR6AKrI1ANyurc5gza aUOaJvfFbN65M1LAipjol7CwIQzVgPBliBCatXFdB1hTcBVyLs5VCWM6OAxcbsxOZpY5 BL/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789422655; x=1790027455; 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=kvjJo7XlO1sJZFOXKUy7l+awTuxFTdsrESZN/Ob/T6c=; b=TecSB4hn+jSJUlI3iZiaf3X6FvXLuo6Yupu0Dd24tr1BmjpNp32tNY3RtU+C9KuMNA 0TvqvEN+rBXwIOGxSWB/YbSYKUIDkp28DseNzJGM95URD6EfPSI3RVK7HGfO5FfttFrv 7XyuPoMlsCnTO3Lmre7tSyCzcmy1a7Mq/X7DOCUT6/cIDYgUHliSFp9VGV1+WkkR49HD RCfY+duqvIyPv8BNiH7UDuty77Gie1Z/X1IfRixQd7z4HL13ST0OnILQMXWm6UGpbQoE FUWIpwEc5MdJqZ2F82lHvV42lslSLZpkRbg3DjkVQwm3EF/zdxtzHOeYkNQUeiOE5Dgu yn5Q== X-Gm-Message-State: AFuF++kcRRKLjf7L/jMblXje6+YwA7Izz0wxhY78QgXUqlnOhMwwnSxf o99/ZUeq7GONqFE/5L9AuihgIRrMCvKL5+4YQ2w+qdLmjwy10AXdso7Z7JViNOV4 X-Gm-Gg: AYBFou0SvuqHua2V04zERmcf7bJ8J5XlMtW9TMeWWEv19EkEsx76o7oCfutFsu/O8FI Q2MyWUjqWO+rikJKsapZ2FcrimbgCGgRwfXiCGxJhlOqIdPEviRxFOUPiC77jR/vrUkj04jhjLg 5k8nTNFQCPJ/ntfeoYgqksWgqPJtLaytSOrnhrgwEDKXtUGefQgwZpRCvF6yRTwdJxQf/uRbJGE gMikmcB2xGUqGzo/6MgZ2KEqBkp8XFkakM4w8xDHAe+6ABplAQYy7gww788M/LKPRXRoqfA9G1w kxdJuf51B/+MFf+HA3ZY60SPuYU/u7K9qFXFpAB3o6yXszc3E/WcGyk3xiPAiAnKmMpfc4e2F3Y Vt9cJ8KhaFnOyBgCUkB34rJD/TT0S6Oj8Jgm4VCX/lWtlsTz7CL/Jg9z6FGI01tZ57BbFVPOPkk 3zTiSKR0yvXfOz33ysvFsIIuME2DsDmOEAxV1jXMoJQ/eOP/nOXZWqKYagU+MOJNKkqlRFkVf5n KjdhKo/m9LhDyVOiVqjxvYZBTWf9HUa/itObZ1fda8Jsoai397wcT8Mwx/LBa9F X-Received: by 2002:a05:6808:f03:b0:4c2:dd8a:fa46 with SMTP id 5614622812f47-4c7b2906dc3mr3786925b6e.16.1789422654935; Mon, 14 Sep 2026 14:50:54 -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 v3 10/10] Hexagon (target/hexagon) Remove old way of detecting register multiwrites Date: Mon, 14 Sep 2026 15:50:36 -0600 Message-ID: <20260914215037.157879-11-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260914215037.157879-1-ltaylorsimpson@gmail.com> References: <20260914215037.157879-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::22e; envelope-from=ltaylorsimpson@gmail.com; helo=mail-oi1-x22e.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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: 1789422681644158500 We now detect register multiwrites in packet analysis instead of packet decoding Reviewed-by: Brian Cain Reviewed-by: Marco Liebel Signed-off-by: Taylor Simpson --- 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 a35c6c6835..acf9407481 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -1249,12 +1249,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