From nobody Sat Jan 3 06:34:30 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1767384798; cv=none; d=zohomail.com; s=zohoarc; b=kHkR8tmXle5oyWPOOts4cetweZpFOQZx/sR3GLDtJA5X1uIViJ/B1u1AQ1v8eiCDHMBMt1RzZolsZi7sWftEqfmVgRGIJwKQI3Cr11Lz7vH17DC6aogPkcKXd8+3MvL6Q/ddWmrr9i9Av0j/ftB6bE6GjwqG/C+dY7lDsW+1qwo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767384798; 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=H1awuDDuRO4xS1rj/d0qjR3lR2WrDZbNYkuwBXLjTDc=; b=amXKWAJULeQyUpqMp/WlCRpJqUksOGtkWL57yxt5kAQblnukUssXemIgj/RvETNSpo9+qq/WPZUaJY1O2lqDm2sgwHQ/3y8tADmTV9LwJ2FQ7f/O9MmiSRKiTSeKKC6Ph5nXQ/me/uJlwYorrvEwXId8LAHan97imYF04A7jQ14= 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=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767384798409323.1868902426945; Fri, 2 Jan 2026 12:13:18 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vblVp-0003wl-6k; Fri, 02 Jan 2026 15:12: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 1vblVg-0003sg-5f for qemu-devel@nongnu.org; Fri, 02 Jan 2026 15:12:32 -0500 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vblVY-0002Sb-8b for qemu-devel@nongnu.org; Fri, 02 Jan 2026 15:12:26 -0500 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6029W1rR1002029 for ; Fri, 2 Jan 2026 20:12:21 GMT Received: from mail-pg1-f200.google.com (mail-pg1-f200.google.com [209.85.215.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4bd2bb4se4-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 02 Jan 2026 20:12:21 +0000 (GMT) Received: by mail-pg1-f200.google.com with SMTP id 41be03b00d2f7-b6ce1b57b9cso11614048a12.1 for ; Fri, 02 Jan 2026 12:12:21 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2b140c42e7esm1794621eec.22.2026.01.02.12.12.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 02 Jan 2026 12:12:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=H1awuDDuRO4xS1rj/d0qjR3lR2WrDZbNYkuwBXLjTDc=; b=Rr 14TI01OgsaPm04LGiEpL5ZDKmspJM/3xg930cloMFC/KM856h/1QqpGAd1vlHsU9 fisKaSuCeO1YmjlrBpK4stFxoSkUWTfOSyJfteCaRtilhkqFL0y8BU9galPOa+iX fFzp9mTboIALWz1YzXfbDOFFZ3cXge6nNGoSUNI5iYsxxeN5LwFe2UtUAKhFIZQD yJSLHVf//z7Y+zrsRzqngs2bPV1+4wmPKB3GB3o8bZ8/CvOYMNT3Ax5oEx5vid4m IziO7qDQ0GwpcUl/gZ3wDPugWhkZg7IcL5hLHv4DonNmjGtnRArl/PFXzNRntII4 C17Z77F9P/2vU/ABlB+A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1767384740; x=1767989540; 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=H1awuDDuRO4xS1rj/d0qjR3lR2WrDZbNYkuwBXLjTDc=; b=iB2PFKcV4USJUSb8svL1KK62G6ZSq4AUP65CoeMPYCG9ykCiXDyUklkD1rGTaSEkPP BjjH0hl5pejLAHrQQUhylwvH26YXJDLyjmhN35YurwOsA0m4iZ5LbaLQQ4ERZ3ATyYZB BVIP6+S23B5UASihyANngNzLrHt5w5LhjoOUmS2je4cJMDBj7uM85aEoSCPvF2cyj/SV CdkSKwCIBIK4qJuIaDZB6XufGbzGLyWK23FLgClGlQR7tvArj0Q1Nx32Llbm9eFYbb6t 2iFYpt70PFOh8yY3yO79nH9UssjmbJtVM5scd8H8jKCEJZKuJnnb4Xtk1PjeytUhFhSN ZnBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767384740; x=1767989540; 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=H1awuDDuRO4xS1rj/d0qjR3lR2WrDZbNYkuwBXLjTDc=; b=mXlA8RzDJWCbxTNqXe0V8qDAHlJTsLGrXmp5o3BQW00pQESEVcH8n2tCBDqRjjhhts Z1FtxokJ1JH2n5CfGKdZJ3eayWPtAsQh5va2XWIZFAaojmqBGOcQJi8sIrMybjdqwr1o h+b2fcVIKaSLgSjaUm4qkd0gnIsKUxZB3TffhU/BWJWK89aosfYiZ3FAQUxPrjVYyfwP TzYoZRhCIRYec26gLqZO5+IZ1pEnvvYAlsPv0eaBWq5SDlPy/XZKdj8ujSZ6uSC12m+Y nkEjXhZ91mfK89zpuEKB31yRFzx7LmiLqlxKbWBthUW8x/JeJwKGvjU2YFq7g1/x351m ABJQ== X-Gm-Message-State: AOJu0YyJV+Do3s3KZz2bvQVG1RuLo9n5MRovS2FCT/+GXxOowu/DQu8A sRmyz4lfOIqgejjDBtNBZ8Ce4XB/ey9rxXS8kYVRPVkV5Q4TN1gdQMbQ21Ul6tcrO7hMPw4l1cf qL3rVOpID1V8huJjHfV0QTSHAf1fbn5jvuMPH3sUYJjUz7+a0KKy/SAqTtjKIAnxBLg== X-Gm-Gg: AY/fxX59eAPwV9x+8Tm1/DUuPnWhqIPbEFCp/8AnanooJtKGm3XN4t8BpGOMg2qvBCY 43/5sb1iogd83DKr3yVsXDlCOa1AXG1ewIMdMBpurLXYrGcv5zIz6hFZST945Mm/8bhl+7eQlyO fWiqgWT+LfzCmKHQIbFJSfKByJb9fwau82qC3xEHsRhL+0mQ3alGuxRRBebIME92vtBtsbY0YTn rwgCpxf/Va1+KVImB7s7fS3v3CiDOhDDNaXAsSoryaVH51qQcRpVMHAzFrFY1inFdsfRZmYo+U1 XclEqhVQ0VVjXbpmIspidutTzvrwBpYBwMItIUnRuW3qB9/OxxdVSOMFFmcXpD4diflHEgt6EB5 p9+jWdU+k3UUKqcxhKP/60AH5xleC2iTDc8Io8lypavMWRrVypwzf4f+uMg== X-Received: by 2002:a05:7301:6f0e:b0:2b0:4c5f:c05c with SMTP id 5a478bee46e88-2b05ebb63famr27128741eec.4.1767384740011; Fri, 02 Jan 2026 12:12:20 -0800 (PST) X-Google-Smtp-Source: AGHT+IEL/1B5D85Xmisuu8eA175iOmwM56xct78YfP3tSt1egfH+ZZZ837X1p3ETDkd8pOdXxSiumw== X-Received: by 2002:a05:7301:6f0e:b0:2b0:4c5f:c05c with SMTP id 5a478bee46e88-2b05ebb63famr27128730eec.4.1767384739478; Fri, 02 Jan 2026 12:12:19 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org, richard.henderson@linaro.org Cc: brian.cain@oss.qualcomm.com, ltaylorsimpson@gmail.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 1/9] Hexagon (target/hexagon) Remove gen_tcg_func_table.py Date: Fri, 2 Jan 2026 12:11:57 -0800 Message-Id: <20260102201205.2050363-2-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260102201205.2050363-1-brian.cain@oss.qualcomm.com> References: <20260102201205.2050363-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: yU8dSmDE66KnKgd6qQV6dRaVruoFfz5L X-Proofpoint-ORIG-GUID: yU8dSmDE66KnKgd6qQV6dRaVruoFfz5L X-Authority-Analysis: v=2.4 cv=dMKrWeZb c=1 sm=1 tr=0 ts=695826a5 cx=c_pps a=oF/VQ+ItUULfLr/lQ2/icg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=mDV3o1hIAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=DeRzdpBI32YyQvUjPIcA:9 a=QEXdDO2ut3YA:10 a=3WC7DwWrALyhR5TkjVHa:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTAyMDE4MSBTYWx0ZWRfX125Ly3+g9c+I TBEf2qh5J30qBFVRxDxeReXvVS68v3WbE7rZefT0khzeZWUwXWu/Hl7VYt2osane4196USFkyRJ XwDN3gAAgXIOU91gzsaf/HdicfkonKIsA2qzexf6JIbIKEfPOYoj7nD65xg92FDupcAEWTy4aTI 7cGkGdefipC17XZouL/25ltl11BvrRfnxlcWbR/wEmZtBrXY4cMHPHxqXy9BAb/3O1XWH4+WSw+ xRqXoE1YMwuL3Yih3Hp8Qwe1Y1xXZxeUOoLmCD01ls8f7YhXD+PIJ5QhF4xF7iOt/mr/t1ll0nj PKQ1fIDSwtX9yAzUfmrUs+9Bhok/QrL63wX4ZhSYWkSIZSQ9njvDLMC9dCsXFdy50Ss743cejcK kkj1PD8EazWV2zKQcQuGDJRhrN6s5X9EA1HUM/wxpgtLZu7xE6RnNBJffJaXbUzfFWKd0SxfJZ9 4/KPZFrwPzURCP76BZA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-02_03,2025-12-31_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 lowpriorityscore=0 suspectscore=0 spamscore=0 malwarescore=0 impostorscore=0 adultscore=0 phishscore=0 priorityscore=1501 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601020181 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 (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=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=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: 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 @qualcomm.com) X-ZM-MESSAGEID: 1767384800742158500 Content-Type: text/plain; charset="utf-8" From: Taylor Simpson This can easily be done in C with opcodes_def_generated.h.inc Note that gen_tcg_func_table.py has some logic to skip instructions. However, there aren't any instructions currently in the code that would be skipped by this logic. So, it is safe to base the table on the complete opcodes table. Signed-off-by: Taylor Simpson Reviewed-by: Brian Cain Tested-by: Brian Cain Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Brian Cain --- target/hexagon/genptr.c | 6 ++- target/hexagon/README | 1 - target/hexagon/gen_tcg_func_table.py | 66 ---------------------------- target/hexagon/meson.build | 10 ----- 4 files changed, 5 insertions(+), 78 deletions(-) delete mode 100755 target/hexagon/gen_tcg_func_table.py diff --git a/target/hexagon/genptr.c b/target/hexagon/genptr.c index cecaece4ae..445de8db60 100644 --- a/target/hexagon/genptr.c +++ b/target/hexagon/genptr.c @@ -1454,4 +1454,8 @@ void gen_add_sat_i64(DisasContext *ctx, TCGv_i64 ret,= TCGv_i64 a, TCGv_i64 b) } =20 #include "tcg_funcs_generated.c.inc" -#include "tcg_func_table_generated.c.inc" +const SemanticInsn opcode_genptr[XX_LAST_OPCODE] =3D { +#define OPCODE(X) [X] =3D generate_##X +#include "opcodes_def_generated.h.inc" +#undef OPCODE +}; diff --git a/target/hexagon/README b/target/hexagon/README index ca617e3364..5af298e3ed 100644 --- a/target/hexagon/README +++ b/target/hexagon/README @@ -47,7 +47,6 @@ header files in /target/hexagon gen_op_attribs.py -> op_attribs_generated.h.inc gen_helper_protos.py -> helper_protos_generated.h.inc gen_tcg_funcs.py -> tcg_funcs_generated.c.inc - gen_tcg_func_table.py -> tcg_func_table_generated.c.inc gen_helper_funcs.py -> helper_funcs_generated.c.inc gen_idef_parser_funcs.py -> idef_parser_input.h gen_analyze_funcs.py -> analyze_funcs_generated.c.inc diff --git a/target/hexagon/gen_tcg_func_table.py b/target/hexagon/gen_tcg_= func_table.py deleted file mode 100755 index 299a39b1aa..0000000000 --- a/target/hexagon/gen_tcg_func_table.py +++ /dev/null @@ -1,66 +0,0 @@ -#!/usr/bin/env python3 - -## -## Copyright(c) 2019-2024 Qualcomm Innovation Center, Inc. All Rights Res= erved. -## -## This program is free software; you can redistribute it and/or modify -## it under the terms of the GNU General Public License as published by -## the Free Software Foundation; either version 2 of the License, or -## (at your option) any later version. -## -## This program is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. -## -## You should have received a copy of the GNU General Public License -## along with this program; if not, see . -## - -import sys -import re -import string -import hex_common -import argparse - - -def main(): - parser =3D argparse.ArgumentParser( - "Emit opaque macro calls with instruction semantics" - ) - parser.add_argument("semantics", help=3D"semantics file") - parser.add_argument("out", help=3D"output file") - args =3D parser.parse_args() - hex_common.read_semantics_file(args.semantics) - hex_common.calculate_attribs() - tagregs =3D hex_common.get_tagregs() - tagimms =3D hex_common.get_tagimms() - - with open(args.out, "w") as f: - f.write("#ifndef HEXAGON_FUNC_TABLE_H\n") - f.write("#define HEXAGON_FUNC_TABLE_H\n\n") - - f.write("const SemanticInsn opcode_genptr[XX_LAST_OPCODE] =3D {\n") - for tag in hex_common.tags: - ## Skip the priv instructions - if "A_PRIV" in hex_common.attribdict[tag]: - continue - ## Skip the guest instructions - if "A_GUEST" in hex_common.attribdict[tag]: - continue - ## Skip the diag instructions - if tag =3D=3D "Y6_diag": - continue - if tag =3D=3D "Y6_diag0": - continue - if tag =3D=3D "Y6_diag1": - continue - - f.write(f" [{tag}] =3D generate_{tag},\n") - f.write("};\n\n") - - f.write("#endif /* HEXAGON_FUNC_TABLE_H */\n") - - -if __name__ =3D=3D "__main__": - main() diff --git a/target/hexagon/meson.build b/target/hexagon/meson.build index d26787a9b9..d169cf71b2 100644 --- a/target/hexagon/meson.build +++ b/target/hexagon/meson.build @@ -41,20 +41,10 @@ hexagon_ss.add(semantics_generated) # # Step 2 # We use Python scripts to generate the following files -# tcg_func_table_generated.c.inc # printinsn_generated.h.inc # op_attribs_generated.h.inc # opcodes_def_generated.h.inc # -tcg_func_table_generated =3D custom_target( - 'tcg_func_table_generated.c.inc', - output: 'tcg_func_table_generated.c.inc', - depends: [semantics_generated], - depend_files: [hex_common_py], - command: [python, files('gen_tcg_func_table.py'), semantics_generated,= '@OUTPUT@'], -) -hexagon_ss.add(tcg_func_table_generated) - printinsn_generated =3D custom_target( 'printinsn_generated.h.inc', output: 'printinsn_generated.h.inc', --=20 2.34.1 From nobody Sat Jan 3 06:34:30 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1767384821; cv=none; d=zohomail.com; s=zohoarc; b=Or4aoy7MzUeXqgFrgYMu1K/+feIfRzGasEPZfaU7K0yJaR16W+78dkX4bLRQrn01kNW8YH6MX07Ud7H5fkRaoVbSxsHI8Wk45betlihwOXDdSsGRl0EkUaP4OGM3maY3JvaHbYopMHlcsumI2Frop6TyruavVeDGBvbG8uhaLxk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767384821; 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=BZciZU2hY5qnD3f4o+tbyXWhhZbWx71HxGHmYm40sac=; b=Gg3INWKqG4bJrOOe8/qEfUuhwa9xAU2xZ20FpBzMQR28JmoKsnXTzeRTT1uYGF603iA5xhnFcJyG53XrzRD4lpGwK+Cc9B70UEU7cSfCJo3DJrSgjbx4oLy/J8Q1A//6TijEne4xGInFITtwDXaC8m10w8BV0Ly4tseAYc2hauQ= 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=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767384821847260.1428490516296; Fri, 2 Jan 2026 12:13:41 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vblVw-00040y-IG; Fri, 02 Jan 2026 15:12:48 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vblVg-0003sh-67 for qemu-devel@nongnu.org; Fri, 02 Jan 2026 15:12:32 -0500 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vblVZ-0002T5-6I for qemu-devel@nongnu.org; Fri, 02 Jan 2026 15:12:29 -0500 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 602EN1o5802400 for ; Fri, 2 Jan 2026 20:12:23 GMT Received: from mail-pg1-f197.google.com (mail-pg1-f197.google.com [209.85.215.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4befr08n82-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 02 Jan 2026 20:12:22 +0000 (GMT) Received: by mail-pg1-f197.google.com with SMTP id 41be03b00d2f7-b630b4d8d52so10995924a12.3 for ; Fri, 02 Jan 2026 12:12:22 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2b140c42e7esm1794621eec.22.2026.01.02.12.12.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 02 Jan 2026 12:12:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= BZciZU2hY5qnD3f4o+tbyXWhhZbWx71HxGHmYm40sac=; b=jPyc5+EG90PAmMf7 yyUh+peBvHzAiE+kqoFB1/cJhIFt9qYRnIgVmoxRCK8k6FbzDh5iy+ogcaqKktNp sjHD6dzRm11/OjNF56+aYyvZvgrQFsHNgm99f9+A06DqJk7CxNQ8uSEnvhmojCJN bzvMCH5TxzNwJCY9aHOPvi/Yc0eCErwCMtCdjwJdJ8RbELkyuZ6Fm5806wMMHjoh M/iVOOuplA2Ek2aT61dlkQqzViZOQE8CapszFBr5PrV5t2ywpyEHdaeDmGRpGALn jqQ/pc6VjF745FsjdVrgPXqa9uEsRLobB0Prh8E4xFri2/sM9lgRFudIKTv9AVlA VjkZBA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1767384742; x=1767989542; 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=BZciZU2hY5qnD3f4o+tbyXWhhZbWx71HxGHmYm40sac=; b=c8w5yh/1jvduh8dZdeDsMtn05wUV7v5pV4TvAY7yaqR3EK1ZrxDhhJVVcmHW28Mpy4 bhP2lc1Scr4cMnB4Nc/Rms0gX9uUKoEMlOxj6Y17nPYZlaJybHb6hIDLxLR+uL2dGP7n nMfibMbdfLBxTPvKcAj8WC9tR/S4MUBb1Xqn9ORVKKcrgeNFbvLTWmawaw5Yl9aEJ2My HRhVMlFYL9cVAg5WgRcXi66P6PlG9Gi57ompZlJf3jIygbxJFmHzhsuiNsGkHCLkYhdU e8OnZ+uamOPaLnzB5qBYSydi2NyjwJz1IkDzNZylpZZkt0WsBsttriv8c4WU7x7WEH2N fI5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767384742; x=1767989542; 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=BZciZU2hY5qnD3f4o+tbyXWhhZbWx71HxGHmYm40sac=; b=mzqH/Q5cCUrIBKVCDW4RP5tQl+z/Jo1opOKOQXAjj7INvnUkRFKEPjsqxKiuFCB6gV i+oiKt9jnu3I348YOqvaw6UoKSfLXou/sn4A2luLVsbZYHR+gmgwEcb58ZhYh8HOXL+3 dtBNMCUBmM4q+bjp7f+Qnkxokrnkw68qHEyw5sDfxCZZqvpojXys9mNzG9shfxy67aOY tMpBi1pZKX+D6SSHMTuwg1Z2+v3Jn5wHg05mwIiG36dV5IUMRHqPSR50FPmnPbbpd13p 7gA3bPiincoplRdx45AbznIpFeVM60wEESrZC5fjtE4YLx/i+furp8HegaJwaJmg3/Sr gwlw== X-Gm-Message-State: AOJu0Yx7MVEVxU3NiKVPL7xV6ROoaEVDbbudw0Tnq6cAupt63k3au19h adAwUjh+Sadup1o++tkT46MafRqw7ftzKhoIu6WZHuSWTbldgrVhuwM+KUq0HBO1i75vGCqcadY tHN6oGTauZhx1Yw8lKpZqQ1Hk9KOuW5G3aB0yaGnSd4SzdJbLTwx7e62sLbNzTDMigQ== X-Gm-Gg: AY/fxX5mclS+6IAtRbuyhAfma58HAwHigvixUmwAB08UsQRqRfVKV67PVqqEMHzGmj7 bVgCrr9ygVB+XVf3Ol7VtDSCPTW01vyuG0dz+CLZDYPAOiD1UrsTXiglRUhOfCEHbBQ//iqvGkX KarY+CFuOanRHLvgPmYXIaeFr/2uyuJMSAUvKHmN1msOUaxBvedH2NiMSVaDTHhdl4NH+5l0W1E JZwSUSFar08k8BhYTZnBkasiTXErlBi/gFmXq9mB97YSxEBXRgQG6ZvZhtY27a59w9fpw/JF6WG fUNEEhNP+W+G7xT23/iOx0+H1Md6yD1j80vEjAVtObHK4PHlRgSS3o+D4c6HdVyo2Pn0gen7CJE APZguPW4/JDgMuL6n3gsa+AaM+OqciSjDkHuriNkvpv3TIyJXliJAYH9gYA== X-Received: by 2002:a05:7301:1983:b0:2ae:5092:934 with SMTP id 5a478bee46e88-2b05ec83761mr43236463eec.37.1767384741274; Fri, 02 Jan 2026 12:12:21 -0800 (PST) X-Google-Smtp-Source: AGHT+IFnr6AuHN452JdvPD9gcXxXzY33ZHamEvZ9rQ7HVLQMsXS3/imydI7fdqTLKacc9dp9xFFTyQ== X-Received: by 2002:a05:7301:1983:b0:2ae:5092:934 with SMTP id 5a478bee46e88-2b05ec83761mr43236434eec.37.1767384740471; Fri, 02 Jan 2026 12:12:20 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org, richard.henderson@linaro.org Cc: brian.cain@oss.qualcomm.com, ltaylorsimpson@gmail.com Subject: [PULL 2/9] Hexagon (target/hexagon) Add pkt_need_commit argument to arch_fpop_end Date: Fri, 2 Jan 2026 12:11:58 -0800 Message-Id: <20260102201205.2050363-3-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260102201205.2050363-1-brian.cain@oss.qualcomm.com> References: <20260102201205.2050363-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=XsL3+FF9 c=1 sm=1 tr=0 ts=695826a6 cx=c_pps a=rz3CxIlbcmazkYymdCej/Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=sxnjN0RRTeqFEi-ocAkA:9 a=QEXdDO2ut3YA:10 a=bFCP_H2QrGi7Okbo017w:22 X-Proofpoint-GUID: 1cjUdugafGHtAge5ElY5bp9qKqG9n_un X-Proofpoint-ORIG-GUID: 1cjUdugafGHtAge5ElY5bp9qKqG9n_un X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTAyMDE4MSBTYWx0ZWRfX31Yhfw48Idiw pg1LcRWswbBgvz2KboSnv5zWY9gjWf8zbmD5OLVsm7H2bDuajwNYX7Lh2AA4qSjCl2xrZG4r5Fz 9bC2wyAF9zu5fSG8u8XZrkk9EQOY+sa2qOL6iuMnfeOUMA9Ul2NVzzO5Oqylr62LI9XE1B8qqdR qLEE84U2G5RdO+DqMvZrEdXaPLXySTxRoc8SK6XmA2MAgSkKwJhZzTPc3ZpRGG1/SjTvL4lbUkl N43HYty62P8Bpdy/vbevmxZEWyauuAZpu3NXYrsMaBzzezNntEepxqj181HwsSujDOp4HOapUaV D2kBWUBjpYZ5Mnm3bB8Qz2bwgwMPTGKoCBvrQMlP+JcJw6em2X1EENohB6S5k8VcEmpQHjt2fgw PqMT7+AQuZzPAvYvUwkAoOMJB/vDcG/5VDyeeVCEQD1fMtr+QOsyjwpgw+r39Yv4tsiiRi1ORHX 5vNzDPFb8ZKaYAedyeQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-02_03,2025-12-31_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 bulkscore=0 adultscore=0 spamscore=0 impostorscore=0 malwarescore=0 lowpriorityscore=0 suspectscore=0 priorityscore=1501 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601020181 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 (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=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=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: 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 @qualcomm.com) X-ZM-MESSAGEID: 1767384822763158500 From: Taylor Simpson The arch_fpop_end function converts the softfloat fp_status flags to bits set in Hexagon USR. It is hard-coded that the packet must need a commit. We add an argument to the function and update all the helper call sites. In a subsequent commit, we will change the code that forces a commit when the packet contains an floating point instruction. Reviewed-by: Brian Cain Signed-off-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/arch.h | 2 +- target/hexagon/gen_tcg.h | 114 ++++++------ target/hexagon/helper.h | 114 ++++++------ target/hexagon/arch.c | 3 +- target/hexagon/op_helper.c | 287 +++++++++++++++++------------ target/hexagon/gen_helper_funcs.py | 8 +- target/hexagon/gen_tcg_funcs.py | 4 + 7 files changed, 294 insertions(+), 238 deletions(-) diff --git a/target/hexagon/arch.h b/target/hexagon/arch.h index 70918065d3..c295a86600 100644 --- a/target/hexagon/arch.h +++ b/target/hexagon/arch.h @@ -28,7 +28,7 @@ uint64_t interleave(uint32_t odd, uint32_t even); uint64_t deinterleave(uint64_t src); int32_t conv_round(int32_t a, int n); void arch_fpop_start(CPUHexagonState *env); -void arch_fpop_end(CPUHexagonState *env); +void arch_fpop_end(CPUHexagonState *env, bool pkt_need_commit); int arch_sf_recip_common(float32 *Rs, float32 *Rt, float32 *Rd, int *adjust, float_status *fp_status); int arch_sf_invsqrt_common(float32 *Rs, float32 *Rd, int *adjust, diff --git a/target/hexagon/gen_tcg.h b/target/hexagon/gen_tcg.h index 8a3b801287..f17eac2f1a 100644 --- a/target/hexagon/gen_tcg.h +++ b/target/hexagon/gen_tcg.h @@ -613,7 +613,7 @@ #define fGEN_TCG_F2_sfrecipa(SHORTCODE) \ do { \ TCGv_i64 tmp =3D tcg_temp_new_i64(); \ - gen_helper_sfrecipa(tmp, tcg_env, RsV, RtV); \ + gen_helper_sfrecipa(tmp, tcg_env, RsV, RtV, pkt_need_commit); \ tcg_gen_extrh_i64_i32(RdV, tmp); \ tcg_gen_extrl_i64_i32(PeV, tmp); \ } while (0) @@ -628,7 +628,7 @@ #define fGEN_TCG_F2_sfinvsqrta(SHORTCODE) \ do { \ TCGv_i64 tmp =3D tcg_temp_new_i64(); \ - gen_helper_sfinvsqrta(tmp, tcg_env, RsV); \ + gen_helper_sfinvsqrta(tmp, tcg_env, RsV, pkt_need_commit); \ tcg_gen_extrh_i64_i32(RdV, tmp); \ tcg_gen_extrl_i64_i32(PeV, tmp); \ } while (0) @@ -1204,122 +1204,122 @@ =20 /* Floating point */ #define fGEN_TCG_F2_conv_sf2df(SHORTCODE) \ - gen_helper_conv_sf2df(RddV, tcg_env, RsV) + gen_helper_conv_sf2df(RddV, tcg_env, RsV, pkt_need_commit) #define fGEN_TCG_F2_conv_df2sf(SHORTCODE) \ - gen_helper_conv_df2sf(RdV, tcg_env, RssV) + gen_helper_conv_df2sf(RdV, tcg_env, RssV, pkt_need_commit) #define fGEN_TCG_F2_conv_uw2sf(SHORTCODE) \ - gen_helper_conv_uw2sf(RdV, tcg_env, RsV) + gen_helper_conv_uw2sf(RdV, tcg_env, RsV, pkt_need_commit) #define fGEN_TCG_F2_conv_uw2df(SHORTCODE) \ - gen_helper_conv_uw2df(RddV, tcg_env, RsV) + gen_helper_conv_uw2df(RddV, tcg_env, RsV, pkt_need_commit) #define fGEN_TCG_F2_conv_w2sf(SHORTCODE) \ - gen_helper_conv_w2sf(RdV, tcg_env, RsV) + gen_helper_conv_w2sf(RdV, tcg_env, RsV, pkt_need_commit) #define fGEN_TCG_F2_conv_w2df(SHORTCODE) \ - gen_helper_conv_w2df(RddV, tcg_env, RsV) + gen_helper_conv_w2df(RddV, tcg_env, RsV, pkt_need_commit) #define fGEN_TCG_F2_conv_ud2sf(SHORTCODE) \ - gen_helper_conv_ud2sf(RdV, tcg_env, RssV) + gen_helper_conv_ud2sf(RdV, tcg_env, RssV, pkt_need_commit) #define fGEN_TCG_F2_conv_ud2df(SHORTCODE) \ - gen_helper_conv_ud2df(RddV, tcg_env, RssV) + gen_helper_conv_ud2df(RddV, tcg_env, RssV, pkt_need_commit) #define fGEN_TCG_F2_conv_d2sf(SHORTCODE) \ - gen_helper_conv_d2sf(RdV, tcg_env, RssV) + gen_helper_conv_d2sf(RdV, tcg_env, RssV, pkt_need_commit) #define fGEN_TCG_F2_conv_d2df(SHORTCODE) \ - gen_helper_conv_d2df(RddV, tcg_env, RssV) + gen_helper_conv_d2df(RddV, tcg_env, RssV, pkt_need_commit) #define fGEN_TCG_F2_conv_sf2uw(SHORTCODE) \ - gen_helper_conv_sf2uw(RdV, tcg_env, RsV) + gen_helper_conv_sf2uw(RdV, tcg_env, RsV, pkt_need_commit) #define fGEN_TCG_F2_conv_sf2w(SHORTCODE) \ - gen_helper_conv_sf2w(RdV, tcg_env, RsV) + gen_helper_conv_sf2w(RdV, tcg_env, RsV, pkt_need_commit) #define fGEN_TCG_F2_conv_sf2ud(SHORTCODE) \ - gen_helper_conv_sf2ud(RddV, tcg_env, RsV) + gen_helper_conv_sf2ud(RddV, tcg_env, RsV, pkt_need_commit) #define fGEN_TCG_F2_conv_sf2d(SHORTCODE) \ - gen_helper_conv_sf2d(RddV, tcg_env, RsV) + gen_helper_conv_sf2d(RddV, tcg_env, RsV, pkt_need_commit) #define fGEN_TCG_F2_conv_df2uw(SHORTCODE) \ - gen_helper_conv_df2uw(RdV, tcg_env, RssV) + gen_helper_conv_df2uw(RdV, tcg_env, RssV, pkt_need_commit) #define fGEN_TCG_F2_conv_df2w(SHORTCODE) \ - gen_helper_conv_df2w(RdV, tcg_env, RssV) + gen_helper_conv_df2w(RdV, tcg_env, RssV, pkt_need_commit) #define fGEN_TCG_F2_conv_df2ud(SHORTCODE) \ - gen_helper_conv_df2ud(RddV, tcg_env, RssV) + gen_helper_conv_df2ud(RddV, tcg_env, RssV, pkt_need_commit) #define fGEN_TCG_F2_conv_df2d(SHORTCODE) \ - gen_helper_conv_df2d(RddV, tcg_env, RssV) + gen_helper_conv_df2d(RddV, tcg_env, RssV, pkt_need_commit) #define fGEN_TCG_F2_conv_sf2uw_chop(SHORTCODE) \ - gen_helper_conv_sf2uw_chop(RdV, tcg_env, RsV) + gen_helper_conv_sf2uw_chop(RdV, tcg_env, RsV, pkt_need_commit) #define fGEN_TCG_F2_conv_sf2w_chop(SHORTCODE) \ - gen_helper_conv_sf2w_chop(RdV, tcg_env, RsV) + gen_helper_conv_sf2w_chop(RdV, tcg_env, RsV, pkt_need_commit) #define fGEN_TCG_F2_conv_sf2ud_chop(SHORTCODE) \ - gen_helper_conv_sf2ud_chop(RddV, tcg_env, RsV) + gen_helper_conv_sf2ud_chop(RddV, tcg_env, RsV, pkt_need_commit) #define fGEN_TCG_F2_conv_sf2d_chop(SHORTCODE) \ - gen_helper_conv_sf2d_chop(RddV, tcg_env, RsV) + gen_helper_conv_sf2d_chop(RddV, tcg_env, RsV, pkt_need_commit) #define fGEN_TCG_F2_conv_df2uw_chop(SHORTCODE) \ - gen_helper_conv_df2uw_chop(RdV, tcg_env, RssV) + gen_helper_conv_df2uw_chop(RdV, tcg_env, RssV, pkt_need_commit) #define fGEN_TCG_F2_conv_df2w_chop(SHORTCODE) \ - gen_helper_conv_df2w_chop(RdV, tcg_env, RssV) + gen_helper_conv_df2w_chop(RdV, tcg_env, RssV, pkt_need_commit) #define fGEN_TCG_F2_conv_df2ud_chop(SHORTCODE) \ - gen_helper_conv_df2ud_chop(RddV, tcg_env, RssV) + gen_helper_conv_df2ud_chop(RddV, tcg_env, RssV, pkt_need_commit) #define fGEN_TCG_F2_conv_df2d_chop(SHORTCODE) \ - gen_helper_conv_df2d_chop(RddV, tcg_env, RssV) + gen_helper_conv_df2d_chop(RddV, tcg_env, RssV, pkt_need_commit) #define fGEN_TCG_F2_sfadd(SHORTCODE) \ - gen_helper_sfadd(RdV, tcg_env, RsV, RtV) + gen_helper_sfadd(RdV, tcg_env, RsV, RtV, pkt_need_commit) #define fGEN_TCG_F2_sfsub(SHORTCODE) \ - gen_helper_sfsub(RdV, tcg_env, RsV, RtV) + gen_helper_sfsub(RdV, tcg_env, RsV, RtV, pkt_need_commit) #define fGEN_TCG_F2_sfcmpeq(SHORTCODE) \ - gen_helper_sfcmpeq(PdV, tcg_env, RsV, RtV) + gen_helper_sfcmpeq(PdV, tcg_env, RsV, RtV, pkt_need_commit) #define fGEN_TCG_F2_sfcmpgt(SHORTCODE) \ - gen_helper_sfcmpgt(PdV, tcg_env, RsV, RtV) + gen_helper_sfcmpgt(PdV, tcg_env, RsV, RtV, pkt_need_commit) #define fGEN_TCG_F2_sfcmpge(SHORTCODE) \ - gen_helper_sfcmpge(PdV, tcg_env, RsV, RtV) + gen_helper_sfcmpge(PdV, tcg_env, RsV, RtV, pkt_need_commit) #define fGEN_TCG_F2_sfcmpuo(SHORTCODE) \ - gen_helper_sfcmpuo(PdV, tcg_env, RsV, RtV) + gen_helper_sfcmpuo(PdV, tcg_env, RsV, RtV, pkt_need_commit) #define fGEN_TCG_F2_sfmax(SHORTCODE) \ - gen_helper_sfmax(RdV, tcg_env, RsV, RtV) + gen_helper_sfmax(RdV, tcg_env, RsV, RtV, pkt_need_commit) #define fGEN_TCG_F2_sfmin(SHORTCODE) \ - gen_helper_sfmin(RdV, tcg_env, RsV, RtV) + gen_helper_sfmin(RdV, tcg_env, RsV, RtV, pkt_need_commit) #define fGEN_TCG_F2_sfclass(SHORTCODE) \ do { \ TCGv imm =3D tcg_constant_tl(uiV); \ - gen_helper_sfclass(PdV, tcg_env, RsV, imm); \ + gen_helper_sfclass(PdV, tcg_env, RsV, imm, pkt_need_commit); \ } while (0) #define fGEN_TCG_F2_sffixupn(SHORTCODE) \ - gen_helper_sffixupn(RdV, tcg_env, RsV, RtV) + gen_helper_sffixupn(RdV, tcg_env, RsV, RtV, pkt_need_commit) #define fGEN_TCG_F2_sffixupd(SHORTCODE) \ - gen_helper_sffixupd(RdV, tcg_env, RsV, RtV) + gen_helper_sffixupd(RdV, tcg_env, RsV, RtV, pkt_need_commit) #define fGEN_TCG_F2_sffixupr(SHORTCODE) \ - gen_helper_sffixupr(RdV, tcg_env, RsV) + gen_helper_sffixupr(RdV, tcg_env, RsV, pkt_need_commit) #define fGEN_TCG_F2_dfadd(SHORTCODE) \ - gen_helper_dfadd(RddV, tcg_env, RssV, RttV) + gen_helper_dfadd(RddV, tcg_env, RssV, RttV, pkt_need_commit) #define fGEN_TCG_F2_dfsub(SHORTCODE) \ - gen_helper_dfsub(RddV, tcg_env, RssV, RttV) + gen_helper_dfsub(RddV, tcg_env, RssV, RttV, pkt_need_commit) #define fGEN_TCG_F2_dfmax(SHORTCODE) \ - gen_helper_dfmax(RddV, tcg_env, RssV, RttV) + gen_helper_dfmax(RddV, tcg_env, RssV, RttV, pkt_need_commit) #define fGEN_TCG_F2_dfmin(SHORTCODE) \ - gen_helper_dfmin(RddV, tcg_env, RssV, RttV) + gen_helper_dfmin(RddV, tcg_env, RssV, RttV, pkt_need_commit) #define fGEN_TCG_F2_dfcmpeq(SHORTCODE) \ - gen_helper_dfcmpeq(PdV, tcg_env, RssV, RttV) + gen_helper_dfcmpeq(PdV, tcg_env, RssV, RttV, pkt_need_commit) #define fGEN_TCG_F2_dfcmpgt(SHORTCODE) \ - gen_helper_dfcmpgt(PdV, tcg_env, RssV, RttV) + gen_helper_dfcmpgt(PdV, tcg_env, RssV, RttV, pkt_need_commit) #define fGEN_TCG_F2_dfcmpge(SHORTCODE) \ - gen_helper_dfcmpge(PdV, tcg_env, RssV, RttV) + gen_helper_dfcmpge(PdV, tcg_env, RssV, RttV, pkt_need_commit) #define fGEN_TCG_F2_dfcmpuo(SHORTCODE) \ - gen_helper_dfcmpuo(PdV, tcg_env, RssV, RttV) + gen_helper_dfcmpuo(PdV, tcg_env, RssV, RttV, pkt_need_commit) #define fGEN_TCG_F2_dfclass(SHORTCODE) \ do { \ TCGv imm =3D tcg_constant_tl(uiV); \ - gen_helper_dfclass(PdV, tcg_env, RssV, imm); \ + gen_helper_dfclass(PdV, tcg_env, RssV, imm, pkt_need_commit); \ } while (0) #define fGEN_TCG_F2_sfmpy(SHORTCODE) \ - gen_helper_sfmpy(RdV, tcg_env, RsV, RtV) + gen_helper_sfmpy(RdV, tcg_env, RsV, RtV, pkt_need_commit) #define fGEN_TCG_F2_sffma(SHORTCODE) \ - gen_helper_sffma(RxV, tcg_env, RxV, RsV, RtV) + gen_helper_sffma(RxV, tcg_env, RxV, RsV, RtV, pkt_need_commit) #define fGEN_TCG_F2_sffma_sc(SHORTCODE) \ - gen_helper_sffma_sc(RxV, tcg_env, RxV, RsV, RtV, PuV) + gen_helper_sffma_sc(RxV, tcg_env, RxV, RsV, RtV, PuV, pkt_need_commit) #define fGEN_TCG_F2_sffms(SHORTCODE) \ - gen_helper_sffms(RxV, tcg_env, RxV, RsV, RtV) + gen_helper_sffms(RxV, tcg_env, RxV, RsV, RtV, pkt_need_commit) #define fGEN_TCG_F2_sffma_lib(SHORTCODE) \ - gen_helper_sffma_lib(RxV, tcg_env, RxV, RsV, RtV) + gen_helper_sffma_lib(RxV, tcg_env, RxV, RsV, RtV, pkt_need_commit) #define fGEN_TCG_F2_sffms_lib(SHORTCODE) \ - gen_helper_sffms_lib(RxV, tcg_env, RxV, RsV, RtV) + gen_helper_sffms_lib(RxV, tcg_env, RxV, RsV, RtV, pkt_need_commit) =20 #define fGEN_TCG_F2_dfmpyfix(SHORTCODE) \ - gen_helper_dfmpyfix(RddV, tcg_env, RssV, RttV) + gen_helper_dfmpyfix(RddV, tcg_env, RssV, RttV, pkt_need_commit) #define fGEN_TCG_F2_dfmpyhh(SHORTCODE) \ - gen_helper_dfmpyhh(RxxV, tcg_env, RxxV, RssV, RttV) + gen_helper_dfmpyhh(RxxV, tcg_env, RxxV, RssV, RttV, pkt_need_commit) =20 /* Nothing to do for these in qemu, need to suppress compiler warnings */ #define fGEN_TCG_Y4_l2fetch(SHORTCODE) \ diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index f8baa599c8..64456822bc 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -24,72 +24,72 @@ DEF_HELPER_3(gather_store, void, env, i32, int) DEF_HELPER_1(commit_hvx_stores, void, env) DEF_HELPER_FLAGS_4(fcircadd, TCG_CALL_NO_RWG_SE, s32, s32, s32, s32, s32) DEF_HELPER_FLAGS_1(fbrev, TCG_CALL_NO_RWG_SE, i32, i32) -DEF_HELPER_3(sfrecipa, i64, env, f32, f32) -DEF_HELPER_2(sfinvsqrta, i64, env, f32) +DEF_HELPER_4(sfrecipa, i64, env, f32, f32, i32) +DEF_HELPER_3(sfinvsqrta, i64, env, f32, i32) DEF_HELPER_5(vacsh_val, s64, env, s64, s64, s64, i32) DEF_HELPER_FLAGS_4(vacsh_pred, TCG_CALL_NO_RWG_SE, s32, env, s64, s64, s64) DEF_HELPER_FLAGS_2(cabacdecbin_val, TCG_CALL_NO_RWG_SE, s64, s64, s64) DEF_HELPER_FLAGS_2(cabacdecbin_pred, TCG_CALL_NO_RWG_SE, s32, s64, s64) =20 /* Floating point */ -DEF_HELPER_2(conv_sf2df, f64, env, f32) -DEF_HELPER_2(conv_df2sf, f32, env, f64) -DEF_HELPER_2(conv_uw2sf, f32, env, s32) -DEF_HELPER_2(conv_uw2df, f64, env, s32) -DEF_HELPER_2(conv_w2sf, f32, env, s32) -DEF_HELPER_2(conv_w2df, f64, env, s32) -DEF_HELPER_2(conv_ud2sf, f32, env, s64) -DEF_HELPER_2(conv_ud2df, f64, env, s64) -DEF_HELPER_2(conv_d2sf, f32, env, s64) -DEF_HELPER_2(conv_d2df, f64, env, s64) -DEF_HELPER_2(conv_sf2uw, i32, env, f32) -DEF_HELPER_2(conv_sf2w, s32, env, f32) -DEF_HELPER_2(conv_sf2ud, i64, env, f32) -DEF_HELPER_2(conv_sf2d, s64, env, f32) -DEF_HELPER_2(conv_df2uw, i32, env, f64) -DEF_HELPER_2(conv_df2w, s32, env, f64) -DEF_HELPER_2(conv_df2ud, i64, env, f64) -DEF_HELPER_2(conv_df2d, s64, env, f64) -DEF_HELPER_2(conv_sf2uw_chop, i32, env, f32) -DEF_HELPER_2(conv_sf2w_chop, s32, env, f32) -DEF_HELPER_2(conv_sf2ud_chop, i64, env, f32) -DEF_HELPER_2(conv_sf2d_chop, s64, env, f32) -DEF_HELPER_2(conv_df2uw_chop, i32, env, f64) -DEF_HELPER_2(conv_df2w_chop, s32, env, f64) -DEF_HELPER_2(conv_df2ud_chop, i64, env, f64) -DEF_HELPER_2(conv_df2d_chop, s64, env, f64) -DEF_HELPER_3(sfadd, f32, env, f32, f32) -DEF_HELPER_3(sfsub, f32, env, f32, f32) -DEF_HELPER_3(sfcmpeq, s32, env, f32, f32) -DEF_HELPER_3(sfcmpgt, s32, env, f32, f32) -DEF_HELPER_3(sfcmpge, s32, env, f32, f32) -DEF_HELPER_3(sfcmpuo, s32, env, f32, f32) -DEF_HELPER_3(sfmax, f32, env, f32, f32) -DEF_HELPER_3(sfmin, f32, env, f32, f32) -DEF_HELPER_3(sfclass, s32, env, f32, s32) -DEF_HELPER_3(sffixupn, f32, env, f32, f32) -DEF_HELPER_3(sffixupd, f32, env, f32, f32) -DEF_HELPER_2(sffixupr, f32, env, f32) +DEF_HELPER_3(conv_sf2df, f64, env, f32, i32) +DEF_HELPER_3(conv_df2sf, f32, env, f64, i32) +DEF_HELPER_3(conv_uw2sf, f32, env, s32, i32) +DEF_HELPER_3(conv_uw2df, f64, env, s32, i32) +DEF_HELPER_3(conv_w2sf, f32, env, s32, i32) +DEF_HELPER_3(conv_w2df, f64, env, s32, i32) +DEF_HELPER_3(conv_ud2sf, f32, env, s64, i32) +DEF_HELPER_3(conv_ud2df, f64, env, s64, i32) +DEF_HELPER_3(conv_d2sf, f32, env, s64, i32) +DEF_HELPER_3(conv_d2df, f64, env, s64, i32) +DEF_HELPER_3(conv_sf2uw, i32, env, f32, i32) +DEF_HELPER_3(conv_sf2w, s32, env, f32, i32) +DEF_HELPER_3(conv_sf2ud, i64, env, f32, i32) +DEF_HELPER_3(conv_sf2d, s64, env, f32, i32) +DEF_HELPER_3(conv_df2uw, i32, env, f64, i32) +DEF_HELPER_3(conv_df2w, s32, env, f64, i32) +DEF_HELPER_3(conv_df2ud, i64, env, f64, i32) +DEF_HELPER_3(conv_df2d, s64, env, f64, i32) +DEF_HELPER_3(conv_sf2uw_chop, i32, env, f32, i32) +DEF_HELPER_3(conv_sf2w_chop, s32, env, f32, i32) +DEF_HELPER_3(conv_sf2ud_chop, i64, env, f32, i32) +DEF_HELPER_3(conv_sf2d_chop, s64, env, f32, i32) +DEF_HELPER_3(conv_df2uw_chop, i32, env, f64, i32) +DEF_HELPER_3(conv_df2w_chop, s32, env, f64, i32) +DEF_HELPER_3(conv_df2ud_chop, i64, env, f64, i32) +DEF_HELPER_3(conv_df2d_chop, s64, env, f64, i32) +DEF_HELPER_4(sfadd, f32, env, f32, f32, i32) +DEF_HELPER_4(sfsub, f32, env, f32, f32, i32) +DEF_HELPER_4(sfcmpeq, s32, env, f32, f32, i32) +DEF_HELPER_4(sfcmpgt, s32, env, f32, f32, i32) +DEF_HELPER_4(sfcmpge, s32, env, f32, f32, i32) +DEF_HELPER_4(sfcmpuo, s32, env, f32, f32, i32) +DEF_HELPER_4(sfmax, f32, env, f32, f32, i32) +DEF_HELPER_4(sfmin, f32, env, f32, f32, i32) +DEF_HELPER_4(sfclass, s32, env, f32, s32, i32) +DEF_HELPER_4(sffixupn, f32, env, f32, f32, i32) +DEF_HELPER_4(sffixupd, f32, env, f32, f32, i32) +DEF_HELPER_3(sffixupr, f32, env, f32, i32) =20 -DEF_HELPER_3(dfadd, f64, env, f64, f64) -DEF_HELPER_3(dfsub, f64, env, f64, f64) -DEF_HELPER_3(dfmax, f64, env, f64, f64) -DEF_HELPER_3(dfmin, f64, env, f64, f64) -DEF_HELPER_3(dfcmpeq, s32, env, f64, f64) -DEF_HELPER_3(dfcmpgt, s32, env, f64, f64) -DEF_HELPER_3(dfcmpge, s32, env, f64, f64) -DEF_HELPER_3(dfcmpuo, s32, env, f64, f64) -DEF_HELPER_3(dfclass, s32, env, f64, s32) +DEF_HELPER_4(dfadd, f64, env, f64, f64, i32) +DEF_HELPER_4(dfsub, f64, env, f64, f64, i32) +DEF_HELPER_4(dfmax, f64, env, f64, f64, i32) +DEF_HELPER_4(dfmin, f64, env, f64, f64, i32) +DEF_HELPER_4(dfcmpeq, s32, env, f64, f64, i32) +DEF_HELPER_4(dfcmpgt, s32, env, f64, f64, i32) +DEF_HELPER_4(dfcmpge, s32, env, f64, f64, i32) +DEF_HELPER_4(dfcmpuo, s32, env, f64, f64, i32) +DEF_HELPER_4(dfclass, s32, env, f64, s32, i32) =20 -DEF_HELPER_3(sfmpy, f32, env, f32, f32) -DEF_HELPER_4(sffma, f32, env, f32, f32, f32) -DEF_HELPER_5(sffma_sc, f32, env, f32, f32, f32, f32) -DEF_HELPER_4(sffms, f32, env, f32, f32, f32) -DEF_HELPER_4(sffma_lib, f32, env, f32, f32, f32) -DEF_HELPER_4(sffms_lib, f32, env, f32, f32, f32) +DEF_HELPER_4(sfmpy, f32, env, f32, f32, i32) +DEF_HELPER_5(sffma, f32, env, f32, f32, f32, i32) +DEF_HELPER_6(sffma_sc, f32, env, f32, f32, f32, f32, i32) +DEF_HELPER_5(sffms, f32, env, f32, f32, f32, i32) +DEF_HELPER_5(sffma_lib, f32, env, f32, f32, f32, i32) +DEF_HELPER_5(sffms_lib, f32, env, f32, f32, f32, i32) =20 -DEF_HELPER_3(dfmpyfix, f64, env, f64, f64) -DEF_HELPER_4(dfmpyhh, f64, env, f64, f64, f64) +DEF_HELPER_4(dfmpyfix, f64, env, f64, f64, i32) +DEF_HELPER_5(dfmpyhh, f64, env, f64, f64, f64, i32) =20 /* Histogram instructions */ DEF_HELPER_1(vhist, void, env) diff --git a/target/hexagon/arch.c b/target/hexagon/arch.c index d053d68487..e17e714a6a 100644 --- a/target/hexagon/arch.c +++ b/target/hexagon/arch.c @@ -222,9 +222,8 @@ void arch_fpop_start(CPUHexagonState *env) } \ } while (0) =20 -void arch_fpop_end(CPUHexagonState *env) +void arch_fpop_end(CPUHexagonState *env, bool pkt_need_commit) { - const bool pkt_need_commit =3D true; int flags =3D get_float_exception_flags(&env->fp_status); if (flags !=3D 0) { SOFTFLOAT_TEST_FLAG(float_flag_inexact, FPINPF, FPINPE); diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index e2e80ca7ef..554e7dd447 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -200,7 +200,8 @@ static float32 build_float32(uint8_t sign, uint32_t exp= , uint32_t mant) * Since helpers can only return a single value, we pack the two results * into a 64-bit value. */ -uint64_t HELPER(sfrecipa)(CPUHexagonState *env, float32 RsV, float32 RtV) +uint64_t HELPER(sfrecipa)(CPUHexagonState *env, float32 RsV, float32 RtV, + uint32_t pkt_need_commit) { int32_t PeV =3D 0; float32 RdV; @@ -217,11 +218,12 @@ uint64_t HELPER(sfrecipa)(CPUHexagonState *env, float= 32 RsV, float32 RtV) exp =3D SF_BIAS - (float32_getexp(RtV) - SF_BIAS) - 1; RdV =3D build_float32(extract32(RtV, 31, 1), exp, mant); } - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return ((uint64_t)RdV << 32) | PeV; } =20 -uint64_t HELPER(sfinvsqrta)(CPUHexagonState *env, float32 RsV) +uint64_t HELPER(sfinvsqrta)(CPUHexagonState *env, float32 RsV, + uint32_t pkt_need_commit) { int PeV =3D 0; float32 RdV; @@ -238,7 +240,7 @@ uint64_t HELPER(sfinvsqrta)(CPUHexagonState *env, float= 32 RsV) exp =3D SF_BIAS - ((float32_getexp(RsV) - SF_BIAS) >> 1) - 1; RdV =3D build_float32(extract32(RsV, 31, 1), exp, mant); } - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return ((uint64_t)RdV << 32) | PeV; } =20 @@ -476,97 +478,108 @@ static void check_noshuf(CPUHexagonState *env, bool = pkt_has_scalar_store_s1, #endif =20 /* Floating point */ -float64 HELPER(conv_sf2df)(CPUHexagonState *env, float32 RsV) +float64 HELPER(conv_sf2df)(CPUHexagonState *env, float32 RsV, + uint32_t pkt_need_commit) { float64 out_f64; arch_fpop_start(env); out_f64 =3D float32_to_float64(RsV, &env->fp_status); - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return out_f64; } =20 -float32 HELPER(conv_df2sf)(CPUHexagonState *env, float64 RssV) +float32 HELPER(conv_df2sf)(CPUHexagonState *env, float64 RssV, + uint32_t pkt_need_commit) { float32 out_f32; arch_fpop_start(env); out_f32 =3D float64_to_float32(RssV, &env->fp_status); - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return out_f32; } =20 -float32 HELPER(conv_uw2sf)(CPUHexagonState *env, int32_t RsV) +float32 HELPER(conv_uw2sf)(CPUHexagonState *env, int32_t RsV, + uint32_t pkt_need_commit) { float32 RdV; arch_fpop_start(env); RdV =3D uint32_to_float32(RsV, &env->fp_status); - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RdV; } =20 -float64 HELPER(conv_uw2df)(CPUHexagonState *env, int32_t RsV) +float64 HELPER(conv_uw2df)(CPUHexagonState *env, int32_t RsV, + uint32_t pkt_need_commit) { float64 RddV; arch_fpop_start(env); RddV =3D uint32_to_float64(RsV, &env->fp_status); - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RddV; } =20 -float32 HELPER(conv_w2sf)(CPUHexagonState *env, int32_t RsV) +float32 HELPER(conv_w2sf)(CPUHexagonState *env, int32_t RsV, + uint32_t pkt_need_commit) { float32 RdV; arch_fpop_start(env); RdV =3D int32_to_float32(RsV, &env->fp_status); - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RdV; } =20 -float64 HELPER(conv_w2df)(CPUHexagonState *env, int32_t RsV) +float64 HELPER(conv_w2df)(CPUHexagonState *env, int32_t RsV, + uint32_t pkt_need_commit) { float64 RddV; arch_fpop_start(env); RddV =3D int32_to_float64(RsV, &env->fp_status); - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RddV; } =20 -float32 HELPER(conv_ud2sf)(CPUHexagonState *env, int64_t RssV) +float32 HELPER(conv_ud2sf)(CPUHexagonState *env, int64_t RssV, + uint32_t pkt_need_commit) { float32 RdV; arch_fpop_start(env); RdV =3D uint64_to_float32(RssV, &env->fp_status); - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RdV; } =20 -float64 HELPER(conv_ud2df)(CPUHexagonState *env, int64_t RssV) +float64 HELPER(conv_ud2df)(CPUHexagonState *env, int64_t RssV, + uint32_t pkt_need_commit) { float64 RddV; arch_fpop_start(env); RddV =3D uint64_to_float64(RssV, &env->fp_status); - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RddV; } =20 -float32 HELPER(conv_d2sf)(CPUHexagonState *env, int64_t RssV) +float32 HELPER(conv_d2sf)(CPUHexagonState *env, int64_t RssV, + uint32_t pkt_need_commit) { float32 RdV; arch_fpop_start(env); RdV =3D int64_to_float32(RssV, &env->fp_status); - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RdV; } =20 -float64 HELPER(conv_d2df)(CPUHexagonState *env, int64_t RssV) +float64 HELPER(conv_d2df)(CPUHexagonState *env, int64_t RssV, + uint32_t pkt_need_commit) { float64 RddV; arch_fpop_start(env); RddV =3D int64_to_float64(RssV, &env->fp_status); - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RddV; } =20 -uint32_t HELPER(conv_sf2uw)(CPUHexagonState *env, float32 RsV) +uint32_t HELPER(conv_sf2uw)(CPUHexagonState *env, float32 RsV, + uint32_t pkt_need_commit) { uint32_t RdV; arch_fpop_start(env); @@ -577,11 +590,12 @@ uint32_t HELPER(conv_sf2uw)(CPUHexagonState *env, flo= at32 RsV) } else { RdV =3D float32_to_uint32(RsV, &env->fp_status); } - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RdV; } =20 -int32_t HELPER(conv_sf2w)(CPUHexagonState *env, float32 RsV) +int32_t HELPER(conv_sf2w)(CPUHexagonState *env, float32 RsV, + uint32_t pkt_need_commit) { int32_t RdV; arch_fpop_start(env); @@ -592,11 +606,12 @@ int32_t HELPER(conv_sf2w)(CPUHexagonState *env, float= 32 RsV) } else { RdV =3D float32_to_int32(RsV, &env->fp_status); } - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RdV; } =20 -uint64_t HELPER(conv_sf2ud)(CPUHexagonState *env, float32 RsV) +uint64_t HELPER(conv_sf2ud)(CPUHexagonState *env, float32 RsV, + uint32_t pkt_need_commit) { uint64_t RddV; arch_fpop_start(env); @@ -607,11 +622,12 @@ uint64_t HELPER(conv_sf2ud)(CPUHexagonState *env, flo= at32 RsV) } else { RddV =3D float32_to_uint64(RsV, &env->fp_status); } - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RddV; } =20 -int64_t HELPER(conv_sf2d)(CPUHexagonState *env, float32 RsV) +int64_t HELPER(conv_sf2d)(CPUHexagonState *env, float32 RsV, + uint32_t pkt_need_commit) { int64_t RddV; arch_fpop_start(env); @@ -622,11 +638,12 @@ int64_t HELPER(conv_sf2d)(CPUHexagonState *env, float= 32 RsV) } else { RddV =3D float32_to_int64(RsV, &env->fp_status); } - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RddV; } =20 -uint32_t HELPER(conv_df2uw)(CPUHexagonState *env, float64 RssV) +uint32_t HELPER(conv_df2uw)(CPUHexagonState *env, float64 RssV, + uint32_t pkt_need_commit) { uint32_t RdV; arch_fpop_start(env); @@ -637,11 +654,12 @@ uint32_t HELPER(conv_df2uw)(CPUHexagonState *env, flo= at64 RssV) } else { RdV =3D float64_to_uint32(RssV, &env->fp_status); } - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RdV; } =20 -int32_t HELPER(conv_df2w)(CPUHexagonState *env, float64 RssV) +int32_t HELPER(conv_df2w)(CPUHexagonState *env, float64 RssV, + uint32_t pkt_need_commit) { int32_t RdV; arch_fpop_start(env); @@ -652,11 +670,12 @@ int32_t HELPER(conv_df2w)(CPUHexagonState *env, float= 64 RssV) } else { RdV =3D float64_to_int32(RssV, &env->fp_status); } - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RdV; } =20 -uint64_t HELPER(conv_df2ud)(CPUHexagonState *env, float64 RssV) +uint64_t HELPER(conv_df2ud)(CPUHexagonState *env, float64 RssV, + uint32_t pkt_need_commit) { uint64_t RddV; arch_fpop_start(env); @@ -667,11 +686,12 @@ uint64_t HELPER(conv_df2ud)(CPUHexagonState *env, flo= at64 RssV) } else { RddV =3D float64_to_uint64(RssV, &env->fp_status); } - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RddV; } =20 -int64_t HELPER(conv_df2d)(CPUHexagonState *env, float64 RssV) +int64_t HELPER(conv_df2d)(CPUHexagonState *env, float64 RssV, + uint32_t pkt_need_commit) { int64_t RddV; arch_fpop_start(env); @@ -682,11 +702,12 @@ int64_t HELPER(conv_df2d)(CPUHexagonState *env, float= 64 RssV) } else { RddV =3D float64_to_int64(RssV, &env->fp_status); } - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RddV; } =20 -uint32_t HELPER(conv_sf2uw_chop)(CPUHexagonState *env, float32 RsV) +uint32_t HELPER(conv_sf2uw_chop)(CPUHexagonState *env, float32 RsV, + uint32_t pkt_need_commit) { uint32_t RdV; arch_fpop_start(env); @@ -697,11 +718,12 @@ uint32_t HELPER(conv_sf2uw_chop)(CPUHexagonState *env= , float32 RsV) } else { RdV =3D float32_to_uint32_round_to_zero(RsV, &env->fp_status); } - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RdV; } =20 -int32_t HELPER(conv_sf2w_chop)(CPUHexagonState *env, float32 RsV) +int32_t HELPER(conv_sf2w_chop)(CPUHexagonState *env, float32 RsV, + uint32_t pkt_need_commit) { int32_t RdV; arch_fpop_start(env); @@ -712,11 +734,12 @@ int32_t HELPER(conv_sf2w_chop)(CPUHexagonState *env, = float32 RsV) } else { RdV =3D float32_to_int32_round_to_zero(RsV, &env->fp_status); } - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RdV; } =20 -uint64_t HELPER(conv_sf2ud_chop)(CPUHexagonState *env, float32 RsV) +uint64_t HELPER(conv_sf2ud_chop)(CPUHexagonState *env, float32 RsV, + uint32_t pkt_need_commit) { uint64_t RddV; arch_fpop_start(env); @@ -727,11 +750,12 @@ uint64_t HELPER(conv_sf2ud_chop)(CPUHexagonState *env= , float32 RsV) } else { RddV =3D float32_to_uint64_round_to_zero(RsV, &env->fp_status); } - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RddV; } =20 -int64_t HELPER(conv_sf2d_chop)(CPUHexagonState *env, float32 RsV) +int64_t HELPER(conv_sf2d_chop)(CPUHexagonState *env, float32 RsV, + uint32_t pkt_need_commit) { int64_t RddV; arch_fpop_start(env); @@ -742,11 +766,12 @@ int64_t HELPER(conv_sf2d_chop)(CPUHexagonState *env, = float32 RsV) } else { RddV =3D float32_to_int64_round_to_zero(RsV, &env->fp_status); } - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RddV; } =20 -uint32_t HELPER(conv_df2uw_chop)(CPUHexagonState *env, float64 RssV) +uint32_t HELPER(conv_df2uw_chop)(CPUHexagonState *env, float64 RssV, + uint32_t pkt_need_commit) { uint32_t RdV; arch_fpop_start(env); @@ -757,11 +782,12 @@ uint32_t HELPER(conv_df2uw_chop)(CPUHexagonState *env= , float64 RssV) } else { RdV =3D float64_to_uint32_round_to_zero(RssV, &env->fp_status); } - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RdV; } =20 -int32_t HELPER(conv_df2w_chop)(CPUHexagonState *env, float64 RssV) +int32_t HELPER(conv_df2w_chop)(CPUHexagonState *env, float64 RssV, + uint32_t pkt_need_commit) { int32_t RdV; arch_fpop_start(env); @@ -772,11 +798,12 @@ int32_t HELPER(conv_df2w_chop)(CPUHexagonState *env, = float64 RssV) } else { RdV =3D float64_to_int32_round_to_zero(RssV, &env->fp_status); } - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RdV; } =20 -uint64_t HELPER(conv_df2ud_chop)(CPUHexagonState *env, float64 RssV) +uint64_t HELPER(conv_df2ud_chop)(CPUHexagonState *env, float64 RssV, + uint32_t pkt_need_commit) { uint64_t RddV; arch_fpop_start(env); @@ -787,11 +814,12 @@ uint64_t HELPER(conv_df2ud_chop)(CPUHexagonState *env= , float64 RssV) } else { RddV =3D float64_to_uint64_round_to_zero(RssV, &env->fp_status); } - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RddV; } =20 -int64_t HELPER(conv_df2d_chop)(CPUHexagonState *env, float64 RssV) +int64_t HELPER(conv_df2d_chop)(CPUHexagonState *env, float64 RssV, + uint32_t pkt_need_commit) { int64_t RddV; arch_fpop_start(env); @@ -802,49 +830,54 @@ int64_t HELPER(conv_df2d_chop)(CPUHexagonState *env, = float64 RssV) } else { RddV =3D float64_to_int64_round_to_zero(RssV, &env->fp_status); } - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RddV; } =20 -float32 HELPER(sfadd)(CPUHexagonState *env, float32 RsV, float32 RtV) +float32 HELPER(sfadd)(CPUHexagonState *env, float32 RsV, float32 RtV, + uint32_t pkt_need_commit) { float32 RdV; arch_fpop_start(env); RdV =3D float32_add(RsV, RtV, &env->fp_status); - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RdV; } =20 -float32 HELPER(sfsub)(CPUHexagonState *env, float32 RsV, float32 RtV) +float32 HELPER(sfsub)(CPUHexagonState *env, float32 RsV, float32 RtV, + uint32_t pkt_need_commit) { float32 RdV; arch_fpop_start(env); RdV =3D float32_sub(RsV, RtV, &env->fp_status); - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RdV; } =20 -int32_t HELPER(sfcmpeq)(CPUHexagonState *env, float32 RsV, float32 RtV) +int32_t HELPER(sfcmpeq)(CPUHexagonState *env, float32 RsV, float32 RtV, + uint32_t pkt_need_commit) { int32_t PdV; arch_fpop_start(env); PdV =3D f8BITSOF(float32_eq_quiet(RsV, RtV, &env->fp_status)); - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return PdV; } =20 -int32_t HELPER(sfcmpgt)(CPUHexagonState *env, float32 RsV, float32 RtV) +int32_t HELPER(sfcmpgt)(CPUHexagonState *env, float32 RsV, float32 RtV, + uint32_t pkt_need_commit) { int cmp; int32_t PdV; arch_fpop_start(env); cmp =3D float32_compare_quiet(RsV, RtV, &env->fp_status); PdV =3D f8BITSOF(cmp =3D=3D float_relation_greater); - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return PdV; } =20 -int32_t HELPER(sfcmpge)(CPUHexagonState *env, float32 RsV, float32 RtV) +int32_t HELPER(sfcmpge)(CPUHexagonState *env, float32 RsV, float32 RtV, + uint32_t pkt_need_commit) { int cmp; int32_t PdV; @@ -852,38 +885,42 @@ int32_t HELPER(sfcmpge)(CPUHexagonState *env, float32= RsV, float32 RtV) cmp =3D float32_compare_quiet(RsV, RtV, &env->fp_status); PdV =3D f8BITSOF(cmp =3D=3D float_relation_greater || cmp =3D=3D float_relation_equal); - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return PdV; } =20 -int32_t HELPER(sfcmpuo)(CPUHexagonState *env, float32 RsV, float32 RtV) +int32_t HELPER(sfcmpuo)(CPUHexagonState *env, float32 RsV, float32 RtV, + uint32_t pkt_need_commit) { int32_t PdV; arch_fpop_start(env); PdV =3D f8BITSOF(float32_unordered_quiet(RsV, RtV, &env->fp_status)); - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return PdV; } =20 -float32 HELPER(sfmax)(CPUHexagonState *env, float32 RsV, float32 RtV) +float32 HELPER(sfmax)(CPUHexagonState *env, float32 RsV, float32 RtV, + uint32_t pkt_need_commit) { float32 RdV; arch_fpop_start(env); RdV =3D float32_maximum_number(RsV, RtV, &env->fp_status); - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RdV; } =20 -float32 HELPER(sfmin)(CPUHexagonState *env, float32 RsV, float32 RtV) +float32 HELPER(sfmin)(CPUHexagonState *env, float32 RsV, float32 RtV, + uint32_t pkt_need_commit) { float32 RdV; arch_fpop_start(env); RdV =3D float32_minimum_number(RsV, RtV, &env->fp_status); - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RdV; } =20 -int32_t HELPER(sfclass)(CPUHexagonState *env, float32 RsV, int32_t uiV) +int32_t HELPER(sfclass)(CPUHexagonState *env, float32 RsV, int32_t uiV, + uint32_t pkt_need_commit) { int32_t PdV =3D 0; arch_fpop_start(env); @@ -903,100 +940,110 @@ int32_t HELPER(sfclass)(CPUHexagonState *env, float= 32 RsV, int32_t uiV) PdV =3D 0xff; } set_float_exception_flags(0, &env->fp_status); - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return PdV; } =20 -float32 HELPER(sffixupn)(CPUHexagonState *env, float32 RsV, float32 RtV) +float32 HELPER(sffixupn)(CPUHexagonState *env, float32 RsV, float32 RtV, + uint32_t pkt_need_commit) { float32 RdV =3D 0; int adjust; arch_fpop_start(env); arch_sf_recip_common(&RsV, &RtV, &RdV, &adjust, &env->fp_status); RdV =3D RsV; - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RdV; } =20 -float32 HELPER(sffixupd)(CPUHexagonState *env, float32 RsV, float32 RtV) +float32 HELPER(sffixupd)(CPUHexagonState *env, float32 RsV, float32 RtV, + uint32_t pkt_need_commit) { float32 RdV =3D 0; int adjust; arch_fpop_start(env); arch_sf_recip_common(&RsV, &RtV, &RdV, &adjust, &env->fp_status); RdV =3D RtV; - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RdV; } =20 -float32 HELPER(sffixupr)(CPUHexagonState *env, float32 RsV) +float32 HELPER(sffixupr)(CPUHexagonState *env, float32 RsV, + uint32_t pkt_need_commit) { float32 RdV =3D 0; int adjust; arch_fpop_start(env); arch_sf_invsqrt_common(&RsV, &RdV, &adjust, &env->fp_status); RdV =3D RsV; - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RdV; } =20 -float64 HELPER(dfadd)(CPUHexagonState *env, float64 RssV, float64 RttV) +float64 HELPER(dfadd)(CPUHexagonState *env, float64 RssV, float64 RttV, + uint32_t pkt_need_commit) { float64 RddV; arch_fpop_start(env); RddV =3D float64_add(RssV, RttV, &env->fp_status); - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RddV; } =20 -float64 HELPER(dfsub)(CPUHexagonState *env, float64 RssV, float64 RttV) +float64 HELPER(dfsub)(CPUHexagonState *env, float64 RssV, float64 RttV, + uint32_t pkt_need_commit) { float64 RddV; arch_fpop_start(env); RddV =3D float64_sub(RssV, RttV, &env->fp_status); - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RddV; } =20 -float64 HELPER(dfmax)(CPUHexagonState *env, float64 RssV, float64 RttV) +float64 HELPER(dfmax)(CPUHexagonState *env, float64 RssV, float64 RttV, + uint32_t pkt_need_commit) { float64 RddV; arch_fpop_start(env); RddV =3D float64_maximum_number(RssV, RttV, &env->fp_status); - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RddV; } =20 -float64 HELPER(dfmin)(CPUHexagonState *env, float64 RssV, float64 RttV) +float64 HELPER(dfmin)(CPUHexagonState *env, float64 RssV, float64 RttV, + uint32_t pkt_need_commit) { float64 RddV; arch_fpop_start(env); RddV =3D float64_minimum_number(RssV, RttV, &env->fp_status); - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RddV; } =20 -int32_t HELPER(dfcmpeq)(CPUHexagonState *env, float64 RssV, float64 RttV) +int32_t HELPER(dfcmpeq)(CPUHexagonState *env, float64 RssV, float64 RttV, + uint32_t pkt_need_commit) { int32_t PdV; arch_fpop_start(env); PdV =3D f8BITSOF(float64_eq_quiet(RssV, RttV, &env->fp_status)); - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return PdV; } =20 -int32_t HELPER(dfcmpgt)(CPUHexagonState *env, float64 RssV, float64 RttV) +int32_t HELPER(dfcmpgt)(CPUHexagonState *env, float64 RssV, float64 RttV, + uint32_t pkt_need_commit) { int cmp; int32_t PdV; arch_fpop_start(env); cmp =3D float64_compare_quiet(RssV, RttV, &env->fp_status); PdV =3D f8BITSOF(cmp =3D=3D float_relation_greater); - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return PdV; } =20 -int32_t HELPER(dfcmpge)(CPUHexagonState *env, float64 RssV, float64 RttV) +int32_t HELPER(dfcmpge)(CPUHexagonState *env, float64 RssV, float64 RttV, + uint32_t pkt_need_commit) { int cmp; int32_t PdV; @@ -1004,20 +1051,22 @@ int32_t HELPER(dfcmpge)(CPUHexagonState *env, float= 64 RssV, float64 RttV) cmp =3D float64_compare_quiet(RssV, RttV, &env->fp_status); PdV =3D f8BITSOF(cmp =3D=3D float_relation_greater || cmp =3D=3D float_relation_equal); - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return PdV; } =20 -int32_t HELPER(dfcmpuo)(CPUHexagonState *env, float64 RssV, float64 RttV) +int32_t HELPER(dfcmpuo)(CPUHexagonState *env, float64 RssV, float64 RttV, + uint32_t pkt_need_commit) { int32_t PdV; arch_fpop_start(env); PdV =3D f8BITSOF(float64_unordered_quiet(RssV, RttV, &env->fp_status)); - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return PdV; } =20 -int32_t HELPER(dfclass)(CPUHexagonState *env, float64 RssV, int32_t uiV) +int32_t HELPER(dfclass)(CPUHexagonState *env, float64 RssV, int32_t uiV, + uint32_t pkt_need_commit) { int32_t PdV =3D 0; arch_fpop_start(env); @@ -1037,51 +1086,55 @@ int32_t HELPER(dfclass)(CPUHexagonState *env, float= 64 RssV, int32_t uiV) PdV =3D 0xff; } set_float_exception_flags(0, &env->fp_status); - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return PdV; } =20 -float32 HELPER(sfmpy)(CPUHexagonState *env, float32 RsV, float32 RtV) +float32 HELPER(sfmpy)(CPUHexagonState *env, float32 RsV, float32 RtV, + uint32_t pkt_need_commit) { float32 RdV; arch_fpop_start(env); RdV =3D float32_mul(RsV, RtV, &env->fp_status); - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RdV; } =20 float32 HELPER(sffma)(CPUHexagonState *env, float32 RxV, - float32 RsV, float32 RtV) + float32 RsV, float32 RtV, + uint32_t pkt_need_commit) { arch_fpop_start(env); RxV =3D float32_muladd(RsV, RtV, RxV, 0, &env->fp_status); - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RxV; } =20 float32 HELPER(sffma_sc)(CPUHexagonState *env, float32 RxV, - float32 RsV, float32 RtV, float32 PuV) + float32 RsV, float32 RtV, float32 PuV, + uint32_t pkt_need_commit) { arch_fpop_start(env); RxV =3D float32_muladd_scalbn(RsV, RtV, RxV, fSXTN(8, 64, PuV), float_muladd_suppress_add_product_zero, &env->fp_status); - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RxV; } =20 float32 HELPER(sffms)(CPUHexagonState *env, float32 RxV, - float32 RsV, float32 RtV) + float32 RsV, float32 RtV, uint32_t pkt_need_commit) { arch_fpop_start(env); RxV =3D float32_muladd(RsV, RtV, RxV, float_muladd_negate_product, &env->fp_status); - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RxV; } =20 static float32 do_sffma_lib(CPUHexagonState *env, float32 RxV, - float32 RsV, float32 RtV, int negate) + float32 RsV, float32 RtV, int negate, + uint32_t pkt_need_commit) { int flags; =20 @@ -1103,23 +1156,25 @@ static float32 do_sffma_lib(CPUHexagonState *env, f= loat32 RxV, } } =20 - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RxV; } =20 float32 HELPER(sffma_lib)(CPUHexagonState *env, float32 RxV, - float32 RsV, float32 RtV) + float32 RsV, float32 RtV, uint32_t pkt_need_comm= it) { - return do_sffma_lib(env, RxV, RsV, RtV, 0); + return do_sffma_lib(env, RxV, RsV, RtV, 0, pkt_need_commit); } =20 float32 HELPER(sffms_lib)(CPUHexagonState *env, float32 RxV, - float32 RsV, float32 RtV) + float32 RsV, float32 RtV, uint32_t pkt_need_comm= it) { - return do_sffma_lib(env, RxV, RsV, RtV, float_muladd_negate_product); + return do_sffma_lib(env, RxV, RsV, RtV, float_muladd_negate_product, + pkt_need_commit); } =20 -float64 HELPER(dfmpyfix)(CPUHexagonState *env, float64 RssV, float64 RttV) +float64 HELPER(dfmpyfix)(CPUHexagonState *env, float64 RssV, float64 RttV, + uint32_t pkt_need_commit) { int64_t RddV; arch_fpop_start(env); @@ -1136,16 +1191,16 @@ float64 HELPER(dfmpyfix)(CPUHexagonState *env, floa= t64 RssV, float64 RttV) } else { RddV =3D RssV; } - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RddV; } =20 float64 HELPER(dfmpyhh)(CPUHexagonState *env, float64 RxxV, - float64 RssV, float64 RttV) + float64 RssV, float64 RttV, uint32_t pkt_need_comm= it) { arch_fpop_start(env); RxxV =3D internal_mpyhh(RssV, RttV, RxxV, &env->fp_status); - arch_fpop_end(env); + arch_fpop_end(env, pkt_need_commit); return RxxV; } =20 diff --git a/target/hexagon/gen_helper_funcs.py b/target/hexagon/gen_helper= _funcs.py index a9c0e27a80..6206104424 100755 --- a/target/hexagon/gen_helper_funcs.py +++ b/target/hexagon/gen_helper_funcs.py @@ -84,11 +84,6 @@ def gen_helper_function(f, tag, tagregs, tagimms): {hex_common.semdict[tag]} """)) =20 - if "A_FPOP" in hex_common.attribdict[tag]: - f.write(hex_common.code_fmt(f"""\ - arch_fpop_end(env); - """)) - ## Return the scalar result for regtype, regid in regs: reg =3D hex_common.get_register(tag, regtype, regid) @@ -116,6 +111,9 @@ def main(): ## Skip the guest instructions if "A_GUEST" in hex_common.attribdict[tag]: continue + ## Skip the floating point instructions + if "A_FPOP" in hex_common.attribdict[tag]: + continue ## Skip the diag instructions if tag =3D=3D "Y6_diag": continue diff --git a/target/hexagon/gen_tcg_funcs.py b/target/hexagon/gen_tcg_funcs= .py index c2ba91ddc0..91b6a1e9d0 100755 --- a/target/hexagon/gen_tcg_funcs.py +++ b/target/hexagon/gen_tcg_funcs.py @@ -77,6 +77,10 @@ def gen_tcg_func(f, tag, regs, imms): f.write(f" emit_{tag}({arguments});\n") =20 elif hex_common.skip_qemu_helper(tag): + if "A_FPOP" in hex_common.attribdict[tag]: + f.write(" TCGv pkt_need_commit =3D ") + f.write("tcg_constant_tl(ctx->need_commit);\n") + f.write(f" fGEN_TCG_{tag}({hex_common.semdict[tag]});\n") else: ## Generate the call to the helper --=20 2.34.1 From nobody Sat Jan 3 06:34:30 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1767384821; cv=none; d=zohomail.com; s=zohoarc; b=Y7Gzxpkbve5BMsKs0T0/1sjhFsKSLn8fQoNn16LqI0z4jRpXeK51rrrP40uBvELQzpqBQKszTDBULP6nEB7pAH9yKpfoU6oR+n0zHNoyen7JXAqlSW5OPdC+HbkiALQ9H8qAgrF6Ej49kkCt9FU/NWSgZJkG/EayK6HPfL2Lxgs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767384821; 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=mSXXj28aI93YT6eSHdym3ln05TVR8chTRJIg1bakFME=; b=PdnSgYGujZ0xG/c3yXIhRIeslCOV4HYQgVzH5Gl5dJRd4ODMBluMGu7aARkS2MSWrnBA1SRLdxuppMGZy0up1l9tlXfrPXqJv6oQK4ZbK35USg+G3NB2eD9G7L0Vec7EuvEkAU2RiU4xdyaUoqryWht39VI3gXQCxmmF/8WCq/Q= 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=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767384821351959.9246106808578; Fri, 2 Jan 2026 12:13:41 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vblVt-0003zO-Bv; Fri, 02 Jan 2026 15:12:46 -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 1vblVg-0003sc-3b for qemu-devel@nongnu.org; Fri, 02 Jan 2026 15:12:32 -0500 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vblVY-0002TA-EE for qemu-devel@nongnu.org; Fri, 02 Jan 2026 15:12:27 -0500 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6029W2sl3961084 for ; Fri, 2 Jan 2026 20:12:23 GMT Received: from mail-pg1-f197.google.com (mail-pg1-f197.google.com [209.85.215.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4bd77v49j3-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 02 Jan 2026 20:12:23 +0000 (GMT) Received: by mail-pg1-f197.google.com with SMTP id 41be03b00d2f7-b5edecdf94eso20679060a12.2 for ; Fri, 02 Jan 2026 12:12:22 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2b140c42e7esm1794621eec.22.2026.01.02.12.12.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 02 Jan 2026 12:12:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= mSXXj28aI93YT6eSHdym3ln05TVR8chTRJIg1bakFME=; b=LIM7oxgfzPq4YjRV 1/J/kd/wQQRdZPTQ+wa8e24SB7/4lvgB4St/kj63edIOMccFLz/eXCmw864V/YZK Bn5g0g9X0g9WpDfp9LIIBZyAC73BFFvGvlC3haRHirYzcFUXAAJYm2f0S3u5phrZ 5JZ2zqSFJPy1Xvec5UR2BfcznzbRvx/r7QASeQ4yrrfafaJibneGhmQkEh2nj+cn SjQ3QzH2zYlcdX7Ysgl0+fgzWMKrfhvf+qn6BsaLmnAkhs8Nmiu+U/8E5fDRny08 okt3ZMFxlTYLCRWJS33BE4L/cYyLMSNq7oFfhOHgWmh95BSQO1b0cfU9ChoPmhd3 pSfV5g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1767384742; x=1767989542; 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=mSXXj28aI93YT6eSHdym3ln05TVR8chTRJIg1bakFME=; b=htVXF7juwLxl+7nyn+kLjbhJqmE9+zGyDRcKS6lpH6NRnMCWibZavI2uiAGceoLfAA +bpvBTTCRKkZ00O/m5AGLo8VkDAWrcF+Y5/vJ4ouC035u2tQQL9TJrWwuveW1K8e4OWh 8wP97SZ99GujDTIu58uBRjGgm5BTgZU31CF2iC9jBNkI6/uzo/6B//T79an+hn38Jacm Oge5AZK7plZf5Tty5qhjhS+9gMFFUAOsYQPOpVGQuYg5+Fu0VyOxnwiEYi+Iy7Kdg1Ai ILTU6D219ty0WHSU3HP3WOefCQ9eUY9/rGHB6wAhquec7ZAA58UCVDLoh6ssv7jcrA6P 0bDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767384742; x=1767989542; 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=mSXXj28aI93YT6eSHdym3ln05TVR8chTRJIg1bakFME=; b=CqLsIyma8Yw3/FkMnjxizMrXISJkafD0knJbEoxgGV2357IF5h/MpeixF9tvKZwxYj oJgia47iNtcOXYnosS2x0b6mHkvtKR7+Cnd1zXNX23qysVONUH1S5N/aNxfZmaZWQdWN 7jVte5MgNX4Bh9zZ2pxoiNx2/LsvAzfnggnbvacbAVYfLUH17cWMnkmpOWL8tNVN87Kv k3mHYrKUClQtDr6vS8DBdwSbV2CTvwC+0C+zIb6/Ok/ON9MsttIff50RErKp4pIQVbDg mrHo/SDJhRiHo67sgbNXKaGIk/ps5TR+YBVN/Wx+MSKcmHw16s8rKy42gqROkgbSadtf HNGw== X-Gm-Message-State: AOJu0YzNjbEHU4yF2P9bBd501Naxp9U0BR9bSsVi4NwAgtm7+aep6JFd 4VlfEoIIxkYYkWokk8kn51tWALkQozcA3MMgFWNvhIQnO3AbI2iAR4rWWkAKibNO73YEIbvGgBa 0htAseNpxh43zXHEsOhFhLzXFS79qR5P1dIgEm/7IGAsepnZbsYDHE023CKPHwx51+g== X-Gm-Gg: AY/fxX5PYtDFvgzFYUfqkFmTXE6L1DI3yCwvEZtA+SRxt2epq+omN6kW4CaVJ2g/PYY SySK23RDr1OE0ibXNNl3HGsytZYNnElvig1J9pPkB/Z5GXMwV1nthis5pCx7c54R3HXOQ6z9xB0 hHwodJoWylLAKJv4O09w90LNfUmnfbqMQ9vCTGh9VAAJgmK3itLQ3zg9caVVphk3Pap5us+iMQA IRnjw5T9S2VTz8vtuLj3VdoJ3wPanKrvHXf2TmGXd4Nn4dGOMVeFBiYagMTh/FLM7Jl6tItOqmE jmehn6fnbCjT6B/Z90pVkrTaaV82Zu0nn4zLM2Q36apfwMfawAeSHRxCbJAQtDqEdoDJva+k95p 0crMW5f/OMhxyDPLuPBY6Tx38dpUiZEjb7G7rwvWg/IQoOL/ycZcom/rOmg== X-Received: by 2002:a05:7300:d814:b0:2b0:48f7:837d with SMTP id 5a478bee46e88-2b05ebbbd85mr23743883eec.11.1767384741918; Fri, 02 Jan 2026 12:12:21 -0800 (PST) X-Google-Smtp-Source: AGHT+IG3qfeFXW1sl+ASgE9POQONlpISYby4Hb3XXZlTAaQwFmx8TitoP8v4MafKZ4TW0lu76Ay4tQ== X-Received: by 2002:a05:7300:d814:b0:2b0:48f7:837d with SMTP id 5a478bee46e88-2b05ebbbd85mr23743869eec.11.1767384741367; Fri, 02 Jan 2026 12:12:21 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org, richard.henderson@linaro.org Cc: brian.cain@oss.qualcomm.com, ltaylorsimpson@gmail.com Subject: [PULL 3/9] Hexagon (target/hexagon) Implicit writes to USR don't force packet commit Date: Fri, 2 Jan 2026 12:11:59 -0800 Message-Id: <20260102201205.2050363-4-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260102201205.2050363-1-brian.cain@oss.qualcomm.com> References: <20260102201205.2050363-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: AYD0L46imUFwQbEsVXZztkKTX8y7Jw0u X-Proofpoint-ORIG-GUID: AYD0L46imUFwQbEsVXZztkKTX8y7Jw0u X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTAyMDE4MSBTYWx0ZWRfX4UC/naV9ZDqg QgbfB0SU+UWY3KaC/kMTdKdeNb3RgGfnHE9UgFuD0ejsS8nrTtwq3iD60Qdum50f2ROFmAWZoYW LhnWQTVmTWCTcpa8sCzbOVWl11J9P8CiN1qZFwIFbxCd382/OwPjRV1P6NQdlrKezmvTq0giQG8 LWNKWgY1PZr//m7Aq8cOXneu56MrCam61+sHrnp27SWhvF5yFhfqsA3HyUAvkipJM5G4wHNQgzA Lr4aal3MkcW2iOuZXvk6YMh+3peKRE4KQe9mUnpquGmKW2jzUL3Fyj6bm8BeGCD6HNaIVgEhwRe eIF6Xwy727K2ggMNimpy/G3I1qGFk6Jv+ZBWCbQIsE2zdZX0no9HoV/Rpg86DXlUPTkUbidYxOY QtHef2SsVKm8+3zowLkVUafPjmYA9ECaGkSCHl7qW/xwJFeixOKHRTqN5RlLpy3d3b1FGk8yfwB aKPxcL3g6YCFrLRGdBA== X-Authority-Analysis: v=2.4 cv=ev7SD4pX c=1 sm=1 tr=0 ts=695826a7 cx=c_pps a=rz3CxIlbcmazkYymdCej/Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=MMWtOl-RLpcBRfZQO0EA:9 a=QEXdDO2ut3YA:10 a=bFCP_H2QrGi7Okbo017w:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-02_03,2025-12-31_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 malwarescore=0 clxscore=1015 adultscore=0 phishscore=0 impostorscore=0 lowpriorityscore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601020181 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 (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=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=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: 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 @qualcomm.com) X-ZM-MESSAGEID: 1767384822806158500 From: Taylor Simpson Implicit writes to USR are only to specific fields of USR to indicate side effects (e.g., saturation overflow, floating point status). In these cases, we don't force a packet commit. This will allow more packets to be short-circuited (avoid writing the results to temporaries). When there is a packet commit with an implicit write to USR, we initialize new_value_usr during gen_start_packet and write to USR in gen_reg_writes. Reviewed-by: Brian Cain Signed-off-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/translate.h | 1 + target/hexagon/translate.c | 35 ++++++++++++++++++++++------------- 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index d251e2233f..a0102b6cbd 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -39,6 +39,7 @@ typedef struct DisasContext { int reg_log_idx; DECLARE_BITMAP(regs_written, TOTAL_PER_THREAD_REGS); DECLARE_BITMAP(predicated_regs, TOTAL_PER_THREAD_REGS); + bool implicit_usr_write; int preg_log[PRED_WRITES_MAX]; int preg_log_idx; DECLARE_BITMAP(pregs_written, NUM_PREGS); diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index 8fce219c0d..f3240953b5 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -272,12 +272,7 @@ static void mark_implicit_reg_write(DisasContext *ctx,= int attrib, int rnum) { uint16_t opcode =3D ctx->insn->opcode; if (GET_ATTRIB(opcode, attrib)) { - /* - * USR is used to set overflow and FP exceptions, - * so treat it as conditional - */ - bool is_predicated =3D GET_ATTRIB(opcode, A_CONDEXEC) || - rnum =3D=3D HEX_REG_USR; + bool is_predicated =3D GET_ATTRIB(opcode, A_CONDEXEC); =20 /* LC0/LC1 is conditionally written by endloop instructions */ if ((rnum =3D=3D HEX_REG_LC0 || rnum =3D=3D HEX_REG_LC1) && @@ -291,6 +286,14 @@ static void mark_implicit_reg_write(DisasContext *ctx,= int attrib, int rnum) } } =20 +static void mark_implicit_usr_write(DisasContext *ctx, int attrib) +{ + uint16_t opcode =3D ctx->insn->opcode; + if (GET_ATTRIB(opcode, attrib)) { + ctx->implicit_usr_write =3D true; + } +} + static void mark_implicit_reg_writes(DisasContext *ctx) { mark_implicit_reg_write(ctx, A_IMPLICIT_WRITES_FP, HEX_REG_FP); @@ -300,8 +303,9 @@ static void mark_implicit_reg_writes(DisasContext *ctx) mark_implicit_reg_write(ctx, A_IMPLICIT_WRITES_SA0, HEX_REG_SA0); mark_implicit_reg_write(ctx, A_IMPLICIT_WRITES_LC1, HEX_REG_LC1); mark_implicit_reg_write(ctx, A_IMPLICIT_WRITES_SA1, HEX_REG_SA1); - mark_implicit_reg_write(ctx, A_IMPLICIT_WRITES_USR, HEX_REG_USR); - mark_implicit_reg_write(ctx, A_FPOP, HEX_REG_USR); + + mark_implicit_usr_write(ctx, A_IMPLICIT_WRITES_USR); + mark_implicit_usr_write(ctx, A_FPOP); } =20 static void mark_implicit_pred_write(DisasContext *ctx, int attrib, int pn= um) @@ -351,11 +355,6 @@ static bool need_commit(DisasContext *ctx) } } =20 - /* Floating point instructions are hard-coded to use new_value */ - if (check_for_attrib(pkt, A_FPOP)) { - return true; - } - if (ctx->read_after_write || ctx->has_hvx_overlap) { return true; } @@ -467,6 +466,12 @@ static void gen_start_packet(DisasContext *ctx) } } =20 + /* Preload usr to new_value_usr */ + if (ctx->need_commit && ctx->implicit_usr_write && + !test_bit(HEX_REG_USR, ctx->regs_written)) { + tcg_gen_mov_tl(hex_new_value_usr, hex_gpr[HEX_REG_USR]); + } + /* * Preload the predicated pred registers into ctx->new_pred_value[pred= _num] * Only endloop instructions conditionally write to pred registers @@ -587,6 +592,10 @@ static void gen_reg_writes(DisasContext *ctx) ctx->is_tight_loop =3D false; } } + + if (ctx->implicit_usr_write && !test_bit(HEX_REG_USR, ctx->regs_writte= n)) { + tcg_gen_mov_tl(hex_gpr[HEX_REG_USR], hex_new_value_usr); + } } =20 static void gen_pred_writes(DisasContext *ctx) --=20 2.34.1 From nobody Sat Jan 3 06:34:30 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1767384907; cv=none; d=zohomail.com; s=zohoarc; b=UCIWcbsKa/wOULyRPPH9wH4y1jGGR0I6v0Lcpa2eYH2e+cPnqMIu7wcSytmrnbBxcxG9Madyg1EaiR2RRLv8XLsUcW79CZ2nYOCU02Gu7LGERG3AouD+EhMhCYayhOjfXHJWGsXVuBa416FnZE8D/Ex7SLjokAlmXboA9Mae3TY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767384907; 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=QBMJWAlfc7qnoPuxJDYcNqX8Vn0orrK0iCmCIBWb1Zc=; b=CAZTCfRarotgKfxmEljjc9cn4kb2EoHEaLxK9Oc6bRAHk7pPtERaufA9HdN6FI9D+y6p+LGdCiQrqyyBKNrNdQwC+pgw8sntkeGy8ZGF4IOb6QLWvtqVBUv+m/r4S+qatXzeg22yb8iQtu0Sc7PmuNpY1sOpaxCAn4ghfMU2tI4= 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=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767384907193736.1246474229827; Fri, 2 Jan 2026 12:15:07 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vblVv-00040I-FU; Fri, 02 Jan 2026 15:12: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 1vblVg-0003sd-4b for qemu-devel@nongnu.org; Fri, 02 Jan 2026 15:12:32 -0500 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vblVZ-0002TG-5w for qemu-devel@nongnu.org; Fri, 02 Jan 2026 15:12:26 -0500 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6029WEl93961332 for ; Fri, 2 Jan 2026 20:12:24 GMT Received: from mail-pg1-f200.google.com (mail-pg1-f200.google.com [209.85.215.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4bd77v49j5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 02 Jan 2026 20:12:23 +0000 (GMT) Received: by mail-pg1-f200.google.com with SMTP id 41be03b00d2f7-be8c77ecc63so18903706a12.2 for ; Fri, 02 Jan 2026 12:12:23 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2b140c42e7esm1794621eec.22.2026.01.02.12.12.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 02 Jan 2026 12:12:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= QBMJWAlfc7qnoPuxJDYcNqX8Vn0orrK0iCmCIBWb1Zc=; b=L6t4d+IsM33471I4 11fRkJ4mPIIOrBeKAvj3B+RmuBP/+IfpZ4dXRVBZAXR6oR3yT2rlYz1MsSNcXiik PqDmuEyea5RmEfU/a8Zac6aR5PIJXfM0qCZPyxF2PicHMOIGmMts3Ht5hFyHTGho wVT61B0kEIN4NitTlJiGZ5hOvnojBwkhMQTJEfmzqN5eWokA3+K/4GVZLoaaetuj +RoPFB3KUQUI9LLEQjuf64Er2z16OcMLAIkeRKSg6CrTWD/S5TpXcQlf+BZbC/n4 M5YX+KHFUTuLHbdnKm0tHOTC5K9mqVURgEKmp2PxMZ56/XxqLBG9ih4KAIBMSnoC ncTMfg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1767384743; x=1767989543; 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=QBMJWAlfc7qnoPuxJDYcNqX8Vn0orrK0iCmCIBWb1Zc=; b=Eb9faVDk/zZr4SqxNdaQrpp06JBKIxnaew8rvOaIJqtZwVccSyPNAusz8aMrR4tEBG WJszNfZ5q2q7cxTqgshkPIDyLICE1EFQ5IIBpBocySQe8LZVdm9rgY5o9qmGO5Owourk UKH+JNJJNtvkGJiXPYvt6dFgzDnA6zVE9ucA1xvuuPG4HBuD5gLwHDyVs0Y1KJX4HOZK NEVaUjTYfpJ7bd/mCBRW1SsIAD5rLuPkxQH2EMi5bDMSP8HWtCpLh7LcytxAWHEFPGyO 1LWmEYNM2ed9QnFP59lfjZK9LB9RijpJVXkLNSp4SIPbfUnLCCzFTPPmGV2UTy7trCUO Bq+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767384743; x=1767989543; 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=QBMJWAlfc7qnoPuxJDYcNqX8Vn0orrK0iCmCIBWb1Zc=; b=Z/0zcWUtevenQymO1XzHuWBMYnSRH/4bwcaWQVbc1ULKh8//TZrLnS6C+L7Hney4Tc cJympYU6gOMcegnmQEh31xuqUhAG8M26xRqU27/LXb5R3IdwZtuBDc9MmCBDn6o6LBd0 DA+cO1Rkug2zycMcKcaawK3VUi9H1xl1jjrBI5SIMGp3weuRZTuApKDfoXNOoOmZBUci nT26hactEqnORF4K0ETCXZvH/wQactI5KHQBRbWBw+6/sVwDcyq/meFuByhBTcckmL7x rCk1joEdnDkLecDxTRWwt1twnPo4F3AblCXSkbEXzbvT3ObQhp1kG4cgQHsO/4D8Xued unjw== X-Gm-Message-State: AOJu0YxZswTkMSlkwebaUZ07At1VNQ1nkjHmSUatieqq/klvG9LIReQH t3UTi7BtbkbSgcHk+RAT02Q6AfhIIaqT62kuBOpoa3mRn2XY1dgtzo6v1TRIj9wmokeJeVzZOa8 zWon2Ld9VyBi4qd25i86DqUSKTBep0T4SkgRv4A4sNLvOP7vZK2HGLS/wgzUR3MlRLg== X-Gm-Gg: AY/fxX4D6cyWBxjZVtXOfz26NfNoNavj10jlrmRgX9QczmwgMVSrMdG2XZNzQjBBqBh VQjSuv5PKaKQHwCET5ty11ZiyOj/Uop5/9rkgC3dKRhrFQQRNnhlg/PpI5sD96jYDyQ1WLCPH2T XqoZ+z8mrhVIcoJKVg203qv4XPqm76/sDbPzM2feFVBLI/pui5V3ALVbgkbNR2rALi2lS66u/WT +I96GaW3OAiYZOb8JwGuRAhf2C9yVG6XlIyW6ppxI9h9iZ/UoSgnDrIxrUChrlDb7L0pSG9FTXD Gh0+ppWeMvKUFXBO0wSJdmfrjmfwyjonJeMrDAss/gTG8SZezJu+bKS6jRE36JNmBWML1TOvLIc rVShPQ7J5cJ1SHDZrf8cszwwOKv+48z7R/zGgq6h3CSMgS0FL3TDdouxiZA== X-Received: by 2002:a05:693c:250d:b0:2b0:4e86:8155 with SMTP id 5a478bee46e88-2b05ebb2bc7mr28901676eec.14.1767384742639; Fri, 02 Jan 2026 12:12:22 -0800 (PST) X-Google-Smtp-Source: AGHT+IGKYW8BxvnSZnWDRSXHHH7R9op9muNR7A/83uD2bamYHFsNWuVvwG4eQBLCcqG1Gw/UYFtqrg== X-Received: by 2002:a05:693c:250d:b0:2b0:4e86:8155 with SMTP id 5a478bee46e88-2b05ebb2bc7mr28901660eec.14.1767384742084; Fri, 02 Jan 2026 12:12:22 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org, richard.henderson@linaro.org Cc: brian.cain@oss.qualcomm.com, ltaylorsimpson@gmail.com Subject: [PULL 4/9] Hexagon (tests/tcg/hexagon) Add test for USR changes in packet Date: Fri, 2 Jan 2026 12:12:00 -0800 Message-Id: <20260102201205.2050363-5-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260102201205.2050363-1-brian.cain@oss.qualcomm.com> References: <20260102201205.2050363-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: gHJuVB96CMo-kd5z_e-UpRgZXBVXHPLB X-Proofpoint-ORIG-GUID: gHJuVB96CMo-kd5z_e-UpRgZXBVXHPLB X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTAyMDE4MSBTYWx0ZWRfXzSNyeHfBPXnB gpuFcZxtlbG520K9NKH/ACXEP4nIGq2DZXoWUdxKb7KcNTTo0Nzhs3hACZgPm9oTnZ6kCQSBj8y +7rh2f0ys6IyH3/pSgkQQarO3F1+qko5/rmaGNHqQypT2ps56Bhohs8TiqV1B9AWdwItoNYZYF3 ezf1hNiWNxNrCA9Sfuoo1F2AJW0RIZDMIPM06zZeUOTgDXMn7UrwuhQv0Xz7MtbvXz3isE7dTV8 AoCsTzP1PDex+yIi1g2YY8gSOgy+kQ2msqlmJh14q08Aemfv1TCu0sR/g3YcPtUPskeLTi0IKA+ BqiFgo32LjHCwEJHa7ygYFuRw8jM+LXYzKutysbPG17WFjE31dB0CcfkxehKTsBHoxvYj01vrhf etI0m2dFEdpzWtvyuqLawnqpS9dBf1qEZozseOYgiVu+5J3k5dY1dVVQxHa5Ntwv3ryfeUyyVTw NEwsZzbnOty0IE5rgpg== X-Authority-Analysis: v=2.4 cv=ev7SD4pX c=1 sm=1 tr=0 ts=695826a7 cx=c_pps a=oF/VQ+ItUULfLr/lQ2/icg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=GHvY5Ttzp4-mifQX6oYA:9 a=QEXdDO2ut3YA:10 a=3WC7DwWrALyhR5TkjVHa:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-02_03,2025-12-31_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 malwarescore=0 clxscore=1015 adultscore=0 phishscore=0 impostorscore=0 lowpriorityscore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601020181 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 (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=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=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: 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 @qualcomm.com) X-ZM-MESSAGEID: 1767384909252158500 From: Taylor Simpson Signed-off-by: Taylor Simpson Reviewed-by: Brian Cain Signed-off-by: Brian Cain --- tests/tcg/hexagon/usr.c | 54 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/tests/tcg/hexagon/usr.c b/tests/tcg/hexagon/usr.c index f0b23d312b..ef1787c64c 100644 --- a/tests/tcg/hexagon/usr.c +++ b/tests/tcg/hexagon/usr.c @@ -608,6 +608,58 @@ TEST_CMP_xx(uint32_t, uint32_t, FUNC, SRC1, SRC2, RES,= USR_RES) #define TEST_CMP_PP(FUNC, SRC1, SRC2, RES, USR_RES) \ TEST_CMP_xx(uint64_t, uint64_t, FUNC, SRC1, SRC2, RES, USR_RES) =20 +static void test_usr_packets(void) +{ + uint32_t usr_out; + /* Test setting USR bits inside and outside packets */ + asm(CLEAR_USRBITS \ + "r10 =3D satub(%[val_0xfff]) /* Set usr.OVF */\n= \t" + "{\n\t" + " r11 =3D convert_uw2sf(%[val_0x010020a5]) /* Set usr.FPINPF *= /\n\t" + " r10 =3D memw(%[err]) /* Force pkt commit= */\n\t" + "}\n\t" + "{\n\t" + " r11 =3D sfadd(%[SF_one], %[SF_SNaN]) /* Set usr.FPINVF *= /\n\t" + " r10 =3D add(r10, #1) /* No pkt commit */= \n\t" + "}\n\t" + "%[usr_out] =3D usr\n\t" + : [usr_out]"=3Dr"(usr_out) + : [val_0xfff]"r"(0xfff), + [SF_one]"r"(SF_one), [SF_SNaN]"r"(SF_SNaN), + [val_0x010020a5]"r"(0x010020a5), + [err]"m"(err) + : "r2", "r10", "r11", "usr"); + check32(usr_out & 0x3f, USR_OVF | USR_FPINVF | USR_FPINPF); + + /* Test setting several USR bits in the same packet (no pkt commit) */ + asm(CLEAR_USRBITS \ + "{\n\t" + " r10 =3D satub(%[val_0xfff]) /* Set usr.OVF */\n= \t" + " r12 =3D sfadd(%[SF_one], %[SF_SNaN]) /* Set usr.FPINVF *= /\n\t" + "}\n\t" + "%[usr_out] =3D usr\n\t" + : [usr_out]"=3Dr"(usr_out) + : [val_0xfff]"r"(0xfff), + [SF_one]"r"(SF_one), [SF_SNaN]"r"(SF_SNaN) + : "r2", "r10", "r11", "r12", "usr"); + check32(usr_out & 0x3f, USR_OVF | USR_FPINVF); + + /* Test setting several USR bits in the same packet (with pkt commit) = */ + asm(CLEAR_USRBITS \ + "{\n\t" + " r10 =3D satub(%[val_0xfff]) /* Set usr.OVF */\n= \t" + " r11 =3D convert_uw2sf(%[val_0x010020a5]) /* Set usr.FPINPF *= /\n\t" + " r12 =3D memw(%[err]) /* Force pkt commit= */\n\t" + "}\n\t" + "%[usr_out] =3D usr\n\t" + : [usr_out]"=3Dr"(usr_out) + : [val_0xfff]"r"(0xfff), + [val_0x010020a5]"r"(0x010020a5), + [err]"m"(err) + : "r2", "r10", "r11", "r12", "usr"); + check32(usr_out & 0x3f, USR_OVF | USR_FPINPF); +} + int main() { TEST_R_OP_R(satub, 0, 0, USR_CLEAR); @@ -1097,6 +1149,8 @@ int main() TEST_Rp_OP_R(sfinvsqrta, SF_small_neg, SF_HEX_NaN, 0x00, USR_FP= INVF); TEST_Rp_OP_R(sfinvsqrta, SF_SNaN, SF_HEX_NaN, 0x00, USR_FP= INVF); =20 + test_usr_packets(); + puts(err ? "FAIL" : "PASS"); return err; } --=20 2.34.1 From nobody Sat Jan 3 06:34:30 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1767384871; cv=none; d=zohomail.com; s=zohoarc; b=FVXd1oQ16Roo+2NnUjirdKTg63sp1O7HvMa1hJxIJPcsVyf14Ul1jdDbwLtbGJxiQh1z/bOi60m61Cz7Zfvp+iURWaFemT/Oxb5OWfgNAvOFz9vngb2T9iRjzC+Se/TOksvibKtbVl8SLc9M/A82obt0BeUwlMOrEmQ0jcuXKKc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767384871; 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=I9XkfUvZANj3OOkBJa6CR24ppjbV4Ihsv1YGGM0MYn8=; b=UwfMWLRwlAkMZ9K4Z4/4y+bKH7p7QKaYLh8QG67NVwV4GsnPsx811Ww9CIQ2M9LWBTvvD3IaJYN6HTasoJn5urttWtLfSe6MaXQmWYcFffoKGMueqCLA/FOVBUG1TD/EAqKTFW4lA6oNkNLez8Hui93FmELUeoK2v1Wid/RNfQs= 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=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767384871703516.7266058593528; Fri, 2 Jan 2026 12:14:31 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vblVv-0003zr-2i; Fri, 02 Jan 2026 15:12: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 1vblVg-0003se-4p for qemu-devel@nongnu.org; Fri, 02 Jan 2026 15:12:32 -0500 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vblVZ-0002TK-Kq for qemu-devel@nongnu.org; Fri, 02 Jan 2026 15:12:28 -0500 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6029Wcsg3961604 for ; Fri, 2 Jan 2026 20:12:24 GMT Received: from mail-pg1-f200.google.com (mail-pg1-f200.google.com [209.85.215.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4bd77v49j6-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 02 Jan 2026 20:12:24 +0000 (GMT) Received: by mail-pg1-f200.google.com with SMTP id 41be03b00d2f7-bc240cdb249so11062757a12.3 for ; Fri, 02 Jan 2026 12:12:24 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2b140c42e7esm1794621eec.22.2026.01.02.12.12.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 02 Jan 2026 12:12:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= I9XkfUvZANj3OOkBJa6CR24ppjbV4Ihsv1YGGM0MYn8=; b=QYWyY9t2hGoSImHW wZ/UgowBtEnCkv45opa0DP0J3U9qorZvzaNG18GUHniNich4Kx2IG3aYLxskDIkI v/wqII1iDpMCZjNTCBlzfLPE710E+2imqbap5x7LnowjhcmMjuD87N3sPemzbOKB QyfEU9D2B9XlhZDo92iXcRbHTZ/++QNaiQGo2eTHaT3nMofiZ70ZsnegSWRHqYhB 5NEa3Aj0TKzLkRUJO7hULEAY4cIjR6uutp/gk13kNbiWjmh0tEKz2XgBkB/ElFTv 0RyZVt0+l5adt5uQ5h72My/kPZe9a97Tb3oNnoQqYNBSE2b6NJ4SuFYy6n1Ja5rd dS41zg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1767384744; x=1767989544; 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=I9XkfUvZANj3OOkBJa6CR24ppjbV4Ihsv1YGGM0MYn8=; b=H3ybp+0KtFa/h8ag8+a48QPMafZzRh0EUdSJ0XRVFBFL0v05TGZ4S3rWm95bdphYIN QU7+0XNnFoEtG9dGn3DlmonPKDFrF7znsTY1PTHll7Cw+VKqmYj674nMs7WKmDVjv0N6 45ZkReIL6dSx/U/oYL2bHcJ+SeR5P5RokrnDNmzv/NUCfhKrPSAEvn1xchQrizvHD8Jd 3Yuy08LQ7XpaAsIEv278QjM6NiU404KWruODzLCfep4x2Vzt2jdTPJoaDtGWnKRTQ8Ol WhRLpEv7qxNaePnulOk/9jRZelrpQ/ONzIgnU7B5I35cJSERpI3pnBtnYYqk+7sLoC9M 4gtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767384744; x=1767989544; 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=I9XkfUvZANj3OOkBJa6CR24ppjbV4Ihsv1YGGM0MYn8=; b=DDQ5EiYrXWEarO8pCM+QpEbcWkXW4yuRbnfQ61CQv5FEGr87KKSbqsQ5ZV+FY8eRHB jOmq1qkBydQsAFAw7hwID8cWO/SgZNgtagzvvbGzniHZuMHgFEjqxxyz5FDAPk2BI08S hbrQdQalQUp7VuVHGE2C9PxF+iAtwtQzn/NJKC8pMN7SI8pWOzFa/l+VrvqmloqPoNgb 4zlnQG9UH1FG9P04xhfEg/xUslDLufiqEf1q6rKqXoxv/0FlePqbHR39PwPQjD5lnWNl nQbBQ3V82tQxyLA5nyz8b6rPKXlWXFKdfiPzHEVfyo5qpgA3n4Zt4muPmYxFHVUgQuWC IKVw== X-Gm-Message-State: AOJu0Yw6T6JIBUP90W/CKKji6vYzLahTQKBCRBtsX4BvyVA6Y68enPDH E79BfdgBm+4Houh6uFcEWeh3LbVkcviTF0dORTRc0yX3UVk8AfB84J2Yo5tjmBoY5rCLFZNWmGK 9mWHPF8jqKW6ExmvuSsrDvqxMB/lIka/FVaiYz/fPAZOXRXkm3lJ6iwYee2pqmdt1IQ== X-Gm-Gg: AY/fxX57TqoNTwKW5tpiYaFOSubQZ9XNqPo9eA5x+g2Ui0+KsJ3p6CoqsmR4Jfg1ukW WqUkIODbtXpWbXmvmIcKlC5Uk3mQiDjrp75F+vvaPSHmHXqczLzlODlkMy7mpI7chqpC1n6s0cd YfKvHUpSDuMrlgXUGtveqyj/HtzSzcMJ66XYltPrpA+h3GOR/GehnUU8OSsCkIM76QywbmrP+pM Mnz+5lrw9fLZEU6zMXz8vcNuVX35k9GgO0o0qx1+iajob5Lye2MoK7jBXwQzJuk0o+Ocee1BTQL lKCzoVy96b+W6U+RvkntlC4Y3YgZfUhg4aOj0xMhG8YjG4KxLWbFdsO/fA7tjkqmLZGhpSBH3Du i0uPkeM1DyByQYB+u4t9kSLTyW5K3lOanyfNzoHUrWqK9OFdKCsqfNEBc5w== X-Received: by 2002:a05:7301:4206:b0:2b0:4965:8829 with SMTP id 5a478bee46e88-2b05ec97e9bmr25181372eec.34.1767384743511; Fri, 02 Jan 2026 12:12:23 -0800 (PST) X-Google-Smtp-Source: AGHT+IEcfoj4nscuBLIpECi2XJuNTUkFiX3fL151vVwYJ/ZKI6GblEcQiZDMlB1CNLCZmgIY0yDJsQ== X-Received: by 2002:a05:7301:4206:b0:2b0:4965:8829 with SMTP id 5a478bee46e88-2b05ec97e9bmr25181361eec.34.1767384742844; Fri, 02 Jan 2026 12:12:22 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org, richard.henderson@linaro.org Cc: brian.cain@oss.qualcomm.com, ltaylorsimpson@gmail.com Subject: [PULL 5/9] Hexagon (target/hexagon) analyze all reads before writes Date: Fri, 2 Jan 2026 12:12:01 -0800 Message-Id: <20260102201205.2050363-6-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260102201205.2050363-1-brian.cain@oss.qualcomm.com> References: <20260102201205.2050363-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: BWqI3FKiUhwZYkcBmaTgsPnQcuoSLmsW X-Proofpoint-ORIG-GUID: BWqI3FKiUhwZYkcBmaTgsPnQcuoSLmsW X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTAyMDE4MSBTYWx0ZWRfX3nmxNryRVJAe f1/RZIq1yK/RBU2aEp9EYacpbFMqhHBabs1dGvkda+oF+jCpD6zrSjFqYW3rFZxn3Cpakn55jYM GcxPDWeXDVIGgPjrBM5/w10gm4rfpItVaCy9csci/N7eqie7wcHNFFjBRsPeB5mSFGqGFlcYqVX DPrwTlBAX/lOcQsZ2zlg6u4rJES+jTqIaudphqtZNlTDj/UMRV1/0hb/VymwXETkMTcX8F3977r Kp4SbpyCx1QPvN6GtGOZnmM+v0vrNkGIpbkU+VrQNTRewyf8/Hiqm4/7Tq1Rd/J7Qxwk1ddTmqi CrTiilnVLDvfdZzarQQUr9IjgVSUCk1Rf5MhQCMbzSGOYxWz0BiQKLzv1XtlMXGIbZUOintAeBF 3z7RD68teEoyZemJGO83GNo8rAK954VNOvOVoyyXxWarrGLZwMO4OVerMn2ezY8pSdPh7Kad/8o nDRwdsJ04CZeGtE2e6w== X-Authority-Analysis: v=2.4 cv=ev7SD4pX c=1 sm=1 tr=0 ts=695826a8 cx=c_pps a=oF/VQ+ItUULfLr/lQ2/icg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=G0vlGs2hSe-mXG6TUcQA:9 a=QEXdDO2ut3YA:10 a=3WC7DwWrALyhR5TkjVHa:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-02_03,2025-12-31_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 malwarescore=0 clxscore=1015 adultscore=0 phishscore=0 impostorscore=0 lowpriorityscore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601020181 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 (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=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=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: 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 @qualcomm.com) X-ZM-MESSAGEID: 1767384873066158500 From: Taylor Simpson I noticed that analyze_packet is marking the implicit pred reads after marking all the writes. However, the semantics of the instrucion and packet are to do all the reads, then do the operation, then do all the writes. Here is the old code 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); } mark_implicit_reg_writes(ctx); mark_implicit_pred_writes(ctx); mark_implicit_pred_reads(ctx); } ctx->need_commit =3D need_commit(ctx); } Recall that opcode_analyze[insn->opcode](ctx) will mark all the explicit reads then all the explicit writes. To properly handle the semantics, we'll create two new functions mark_implicit_reads mark_implicit_writes Then we change gen_analyze_funcs.py to add a call to the former after all the explicit reads and a call to the latter after all the explicit_writes. The reason this is an RFC patch is I can't find any instructions where this distinction makes a difference in ctx->need_commit which determines if the packet commit can be short-circuited. However, this could change in the future if the architecture introduces an instruction with an implicit read of a register that is also written (either implicit or explicit). Then, anlayze_packet would detect a read-after-write, and the packet would not short-circuit. The execution would be correct, but the performance would not be optimal. Signed-off-by: Taylor Simpson Reviewed-by: Brian Cain Tested-by: Brian Cain Message-Id: <20250325021440.81386-1-ltaylorsimpson@gmail.com> Signed-off-by: Brian Cain --- target/hexagon/translate.c | 18 +++++++++++++++--- target/hexagon/gen_analyze_funcs.py | 4 ++++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index f3240953b5..3762faec4d 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -37,6 +37,10 @@ #include "exec/helper-info.c.inc" #undef HELPER_H =20 +/* Forward declarations referenced in analyze_funcs_generated.c.inc */ +static void mark_implicit_reads(DisasContext *ctx); +static void mark_implicit_writes(DisasContext *ctx); + #include "analyze_funcs_generated.c.inc" =20 typedef void (*AnalyzeInsn)(DisasContext *ctx); @@ -377,6 +381,17 @@ static void mark_implicit_pred_reads(DisasContext *ctx) mark_implicit_pred_read(ctx, A_IMPLICIT_READS_P3, 3); } =20 +static void mark_implicit_reads(DisasContext *ctx) +{ + mark_implicit_pred_reads(ctx); +} + +static void mark_implicit_writes(DisasContext *ctx) +{ + mark_implicit_reg_writes(ctx); + mark_implicit_pred_writes(ctx); +} + static void analyze_packet(DisasContext *ctx) { Packet *pkt =3D ctx->pkt; @@ -388,9 +403,6 @@ static void analyze_packet(DisasContext *ctx) if (opcode_analyze[insn->opcode]) { opcode_analyze[insn->opcode](ctx); } - mark_implicit_reg_writes(ctx); - mark_implicit_pred_writes(ctx); - mark_implicit_pred_reads(ctx); } =20 ctx->need_commit =3D need_commit(ctx); diff --git a/target/hexagon/gen_analyze_funcs.py b/target/hexagon/gen_analy= ze_funcs.py index 3ac7cc2cfe..fdefd5b4b3 100755 --- a/target/hexagon/gen_analyze_funcs.py +++ b/target/hexagon/gen_analyze_funcs.py @@ -67,6 +67,8 @@ def gen_analyze_func(f, tag, regs, imms): if reg.is_read(): reg.analyze_read(f, regno) =20 + f.write(" mark_implicit_reads(ctx);\n") + ## Analyze the register writes for regno, register in enumerate(regs): reg_type, reg_id =3D register @@ -74,6 +76,8 @@ def gen_analyze_func(f, tag, regs, imms): if reg.is_written(): reg.analyze_write(f, tag, regno) =20 + f.write(" mark_implicit_writes(ctx);\n") + f.write("}\n\n") =20 =20 --=20 2.34.1 From nobody Sat Jan 3 06:34:30 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1767384859; cv=none; d=zohomail.com; s=zohoarc; b=n1dpUYYlV7vWSikcDT6fW+0SHiHE9rm7gsk24FgXuVUYf9KbHfBpvMwaeD26WRAho7v+rPiDzK/uwylSkxnPYtJ7rqR6nLQlnElLt82dxWSDup0bZ6rk9u/8GiV3zvnA9FvR1V61Mps4DjXieaGdRfA0mLxX7k2eYE+ESsca6aU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767384859; 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=5ryRcrdv/9U5sq+sMYqsf/sYyrwIWcPRhzOnC6KVn64=; b=AT9eIckGNnBJbRc+Cx+yZ02VDnhHDvTtFm46/oUecsdaDe9oXI5Sgth0m8AniO6Z4AUPxpioXeWrD7cdMKHjJdIqjV73B7Mm5jkvUy97EWOXKArJbbkwmOWRMxc86IS9U5Yn0XoN4Zf1D7Zx9d+B7tejUjK7BAo9TTrltllC6g8= 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=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767384859391753.0850971384683; Fri, 2 Jan 2026 12:14:19 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vblVr-0003yi-Ce; Fri, 02 Jan 2026 15:12: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 1vblVi-0003vS-29 for qemu-devel@nongnu.org; Fri, 02 Jan 2026 15:12:36 -0500 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vblVf-0002TX-0n for qemu-devel@nongnu.org; Fri, 02 Jan 2026 15:12:33 -0500 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 602C01gW314517 for ; Fri, 2 Jan 2026 20:12:25 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4bedmxrwv1-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 02 Jan 2026 20:12:25 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2ac34c4b41fso222703eec.1 for ; Fri, 02 Jan 2026 12:12:25 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2b140c42e7esm1794621eec.22.2026.01.02.12.12.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 02 Jan 2026 12:12:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 5ryRcrdv/9U5sq+sMYqsf/sYyrwIWcPRhzOnC6KVn64=; b=no/ruZzE3kKwuZLT A/77cOfmG2PKtdX4KvPCtJjAkI7avOd7A7GzUQp6aiajRYJremnfQoEDfjLtxyl+ 2iweQQBb5oKnpEt6uiM6K0UMOoDIDeJXyhYhxd6RRlb0YbzlSwB/YTxHUqbZA8H4 UnAH29aRrPp+/LypqCpOIJD6s/tC8MrBoKHca5JdbZIrSEwO9rj5DWb34OchbGkv c/Gky8z5Un4ZJpR+XGuFBgER0ZHCTNZFORSYwAn6BEpGkJjg4TbhH2hfZYsFfMda KH/Lfj+dpLyeB72cdvEkWA5yIidqcqgoh4uJ82TYDpvsa03uU0w7GjnjxTvn8pwD 9ObFRA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1767384745; x=1767989545; 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=5ryRcrdv/9U5sq+sMYqsf/sYyrwIWcPRhzOnC6KVn64=; b=DDJI0B0wDxKWgxK0NwOcKGu0lzVYXwU92Y75zvQ2v0YqCCYZcOwtyc7NgejnLbi/GE CkGjaZ8cGw0FrvAHYdW+ncYBqZW4tPFyIU8+mqbLrTwvENGRFl6gU8KAC1Jba+X+lHYb j/HNsWZHto4P8FhxqqyhpXonGABfCoJOgvsgAHQY5BCsG3eHyaSE3cKJD0YrHrRz26ix OFQ/b8euUCOQz2yQz0tl4ydsjA5lko+MKXTOw3NKFamzOW9ZRXEufNCG3ZtgrXPPMiHT gRoMlyZ0rA30ksDevlz6wmaHlMjCA+QRPSkuIHTQZVx5C9DAl4FW1e+SbwAAWMCi+gOB HZlw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767384745; x=1767989545; 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=5ryRcrdv/9U5sq+sMYqsf/sYyrwIWcPRhzOnC6KVn64=; b=rIEFs5DCR54UQWvBnbzFBMyTS6UNIUZKdcj0H3kkKDBADn7QkaMk2/PtzaOBlo9aX9 h9rJPy0cfGpuB+druCrQkbtN9UaXTinQW3jo2CXZEt2AXqSLwAU+5VTEMUnTjPF3wU9m rSsYUeE9ZX8mM8AjT3kBRgz/SbPULj87d5udfJ6tUq5Sac4ud7PgPRixfZ7ewvtsTBnP +9PD3XUKkBqH7B5GoK9xuKQadaPvP403uQ38/F5LzCwiepP3gANFnuEzkb2sVUSEZ0CZ W/3j1WBsHYH+rFlBXCShURL+IKXB2g1o+8Ms4ip/deXGKFIBLXj7kvwyxSPQBKpjQd46 bGjQ== X-Gm-Message-State: AOJu0Yx1xAwysjaNLkVAlFCkQDTpFPEcW2sKUQpu477LzTSpTDC5Id6f r4ywkCxEH+WSRmQ907gjLZjWsp3mSatv5E551cCxHCl/aXRljabZ33Z0xl616c8nourO/Y4ZkGv +eTEwwWxlLc9IhPuS1/jojBFJItez7+SzilImxcn6mc/fpeT1zYfypAuh3Gj6rqI+hg== X-Gm-Gg: AY/fxX5hIClEBFjH12cY/kkcKCzDL2p83lvQgaXlOmbKVoZPCuA0+L8fNi3OJocD+zq CTfimCZ+G3IXZHGCl7l/ICy2NH6InarJSlG/RiXnlLU3Dw8jrQ11qYRt4YuOpyrTXodfpYC8Gqi j9+p6WxIS3H3vnBArk/RQ2Y+p7yrCiKRETsf7fWu99eqjYKXWLAfGNq/L8vOvst4HLgOlVG3wh7 MmOL7hNaudwrDnzdjTBl4IMmjEERZtePecTQHP5L19mVdf8BD60+6A33wujycRFLE26kvDoCbOl LybEVQ3df+H3NaE8BJeKHUtKwe8zLQH83cwU3GPlx3kPvtFs9k9pFrrZ5yVQjBqENj3tzfm1hEP QwI7XXcfTnMJw/w+wzFwQg73ihmrwCdNKZMPaYhFyx8rWr1xvIGz/t071dg== X-Received: by 2002:a05:7300:8b2b:b0:2ae:5076:b61 with SMTP id 5a478bee46e88-2b1433f6ff6mr693053eec.3.1767384744346; Fri, 02 Jan 2026 12:12:24 -0800 (PST) X-Google-Smtp-Source: AGHT+IGBNHF8/hKdKneeZP7TNEeXhuzelrKns8ndIP8v6U3wsqGeZGE7nISbjCYnQv3kuhTaLmyHrQ== X-Received: by 2002:a05:7300:8b2b:b0:2ae:5076:b61 with SMTP id 5a478bee46e88-2b1433f6ff6mr693034eec.3.1767384743733; Fri, 02 Jan 2026 12:12:23 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org, richard.henderson@linaro.org Cc: brian.cain@oss.qualcomm.com, ltaylorsimpson@gmail.com, Alessandro Di Federico , Anton Johansson Subject: [PULL 6/9] Hexagon (target/hexagon) Remove gen_log_reg_write Date: Fri, 2 Jan 2026 12:12:02 -0800 Message-Id: <20260102201205.2050363-7-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260102201205.2050363-1-brian.cain@oss.qualcomm.com> References: <20260102201205.2050363-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=GupPO01C c=1 sm=1 tr=0 ts=695826a9 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=YdTJNS3KMcMpdLE9gUMA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTAyMDE4MSBTYWx0ZWRfX0U3McCqQiaOL 0pTBJjPFf5ngCis1N5KACTH+Tg/YBN7aaLEWwdKgTb3K9iV5Nzg55Ptk9qeV3Zf22sxfY2dY3Oj R0o1oLoHJk3+9jE9SlfRRwndQ6C2R4mtGsCuOAWohj3wvBzsw9bv/EK1gUTJj87n/9vtMcsyZBL BWlJTmfdHVl513wjRY6DKZVYuMhTKIbpi6OW7MazE6o8U24MZrn3TL5DTkeNR2TWMWLOjTaBCuP mwhhb1q7a5IYKN7dPa+6KpNDKXpjWrtyXA234ptRyey73BNt4yvbiPK/yt8gD3uTxlsl/6EC6HO eyWoItbJnLj53bpGnyPQQu0+ZQ79OwbdflaW6ut+MzTu0skBnvEyUiaNORVTcQzYua7tkDsvwA4 vlq0IuSTUT7vYB9wSvloB+UDt1ZZUYirwvk/4l9U3pRYsjPlcgm/3TFc/0dUwtVG7tY5u8w4KpW taPg3dvwmVKd1xwNB2w== X-Proofpoint-GUID: ZWG3gP6QuH01c6NyNFkCVirdS0bj6oJv X-Proofpoint-ORIG-GUID: ZWG3gP6QuH01c6NyNFkCVirdS0bj6oJv X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-02_03,2025-12-31_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 suspectscore=0 impostorscore=0 priorityscore=1501 lowpriorityscore=0 adultscore=0 phishscore=0 malwarescore=0 spamscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601020181 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 (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=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=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: 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 @qualcomm.com) X-ZM-MESSAGEID: 1767384861234158500 From: Taylor Simpson The gen_log_reg_write function is a memnant of the original Hexagon target design. With the addition of gen_analyze_funcs.py and the ability to short-circuit a packet commit, this function can be removed. Note that the implementation of gen_log_reg_write contains a check of the register mutability mask. This is only needed for control registers, so we move it to gen_write_ctrl_reg. We do need the gen_log_reg_write_pair function, but the name is now misleading, so we change the name go gen_write_reg_pair. Signed-off-by: Taylor Simpson Reviewed-by: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/gen_tcg.h | 7 +-- target/hexagon/genptr.h | 1 - target/hexagon/genptr.c | 64 ++++++++------------- target/hexagon/idef-parser/parser-helpers.c | 2 +- target/hexagon/README | 10 ++-- target/hexagon/gen_tcg_funcs.py | 1 - target/hexagon/hex_common.py | 14 ++--- 7 files changed, 40 insertions(+), 59 deletions(-) diff --git a/target/hexagon/gen_tcg.h b/target/hexagon/gen_tcg.h index f17eac2f1a..4895884fae 100644 --- a/target/hexagon/gen_tcg.h +++ b/target/hexagon/gen_tcg.h @@ -509,10 +509,9 @@ /* sub-instruction version (no RxV, so handle it manually) */ #define fGEN_TCG_SS2_allocframe(SHORTCODE) \ do { \ - TCGv r29 =3D tcg_temp_new(); \ + TCGv r29 =3D get_result_gpr(ctx, HEX_REG_SP); \ tcg_gen_mov_tl(r29, hex_gpr[HEX_REG_SP]); \ gen_allocframe(ctx, r29, uiV); \ - gen_log_reg_write(ctx, HEX_REG_SP, r29); \ } while (0) =20 /* @@ -528,7 +527,7 @@ do { \ TCGv_i64 r31_30 =3D tcg_temp_new_i64(); \ gen_deallocframe(ctx, r31_30, hex_gpr[HEX_REG_FP]); \ - gen_log_reg_write_pair(ctx, HEX_REG_FP, r31_30); \ + gen_write_reg_pair(ctx, HEX_REG_FP, r31_30); \ } while (0) =20 /* @@ -546,7 +545,7 @@ do { \ TCGv_i64 RddV =3D get_result_gpr_pair(ctx, HEX_REG_FP); \ gen_return(ctx, RddV, hex_gpr[HEX_REG_FP]); \ - gen_log_reg_write_pair(ctx, HEX_REG_FP, RddV); \ + gen_write_reg_pair(ctx, HEX_REG_FP, RddV); \ } while (0) =20 /* diff --git a/target/hexagon/genptr.h b/target/hexagon/genptr.h index a4b43c2910..d932255042 100644 --- a/target/hexagon/genptr.h +++ b/target/hexagon/genptr.h @@ -37,7 +37,6 @@ TCGv gen_read_reg(TCGv result, int num); TCGv gen_read_preg(TCGv pred, uint8_t num); TCGv get_result_gpr(DisasContext *ctx, int rnum); TCGv get_result_pred(DisasContext *ctx, int pnum); -void gen_log_reg_write(DisasContext *ctx, int rnum, TCGv val); void gen_log_pred_write(DisasContext *ctx, int pnum, TCGv val); void gen_set_usr_field(DisasContext *ctx, int field, TCGv val); void gen_set_usr_fieldi(DisasContext *ctx, int field, int x); diff --git a/target/hexagon/genptr.c b/target/hexagon/genptr.c index 445de8db60..d300f07f16 100644 --- a/target/hexagon/genptr.c +++ b/target/hexagon/genptr.c @@ -94,25 +94,17 @@ static TCGv_i64 get_result_gpr_pair(DisasContext *ctx, = int rnum) return result; } =20 -void gen_log_reg_write(DisasContext *ctx, int rnum, TCGv val) -{ - const target_ulong reg_mask =3D reg_immut_masks[rnum]; - - gen_masked_reg_write(val, hex_gpr[rnum], reg_mask); - tcg_gen_mov_tl(get_result_gpr(ctx, rnum), val); -} - -static void gen_log_reg_write_pair(DisasContext *ctx, int rnum, TCGv_i64 v= al) +static void gen_write_reg_pair(DisasContext *ctx, int rnum, TCGv_i64 val) { TCGv val32 =3D tcg_temp_new(); =20 /* Low word */ tcg_gen_extrl_i64_i32(val32, val); - gen_log_reg_write(ctx, rnum, val32); + tcg_gen_mov_tl(get_result_gpr(ctx, rnum), val32); =20 /* High word */ tcg_gen_extrh_i64_i32(val32, val); - gen_log_reg_write(ctx, rnum + 1, val32); + tcg_gen_mov_tl(get_result_gpr(ctx, rnum + 1), val32); } =20 TCGv get_result_pred(DisasContext *ctx, int pnum) @@ -240,7 +232,9 @@ static inline void gen_write_ctrl_reg(DisasContext *ctx= , int reg_num, if (reg_num =3D=3D HEX_REG_P3_0_ALIASED) { gen_write_p3_0(ctx, val); } else { - gen_log_reg_write(ctx, reg_num, val); + const target_ulong reg_mask =3D reg_immut_masks[reg_num]; + gen_masked_reg_write(val, hex_gpr[reg_num], reg_mask); + tcg_gen_mov_tl(get_result_gpr(ctx, reg_num), val); if (reg_num =3D=3D HEX_REG_QEMU_PKT_CNT) { ctx->num_packets =3D 0; } @@ -256,23 +250,15 @@ static inline void gen_write_ctrl_reg(DisasContext *c= tx, int reg_num, static inline void gen_write_ctrl_reg_pair(DisasContext *ctx, int reg_num, TCGv_i64 val) { - if (reg_num =3D=3D HEX_REG_P3_0_ALIASED) { - TCGv result =3D get_result_gpr(ctx, reg_num + 1); - TCGv val32 =3D tcg_temp_new(); - tcg_gen_extrl_i64_i32(val32, val); - gen_write_p3_0(ctx, val32); - tcg_gen_extrh_i64_i32(val32, val); - tcg_gen_mov_tl(result, val32); - } else { - gen_log_reg_write_pair(ctx, reg_num, val); - if (reg_num =3D=3D HEX_REG_QEMU_PKT_CNT) { - ctx->num_packets =3D 0; - ctx->num_insns =3D 0; - } - if (reg_num =3D=3D HEX_REG_QEMU_HVX_CNT) { - ctx->num_hvx_insns =3D 0; - } - } + TCGv val32 =3D tcg_temp_new(); + + /* Low word */ + tcg_gen_extrl_i64_i32(val32, val); + gen_write_ctrl_reg(ctx, reg_num, val32); + + /* High word */ + tcg_gen_extrh_i64_i32(val32, val); + gen_write_ctrl_reg(ctx, reg_num + 1, val32); } =20 TCGv gen_get_byte(TCGv result, int N, TCGv src, bool sign) @@ -541,8 +527,8 @@ static inline void gen_loop0r(DisasContext *ctx, TCGv R= sV, int riV) { fIMMEXT(riV); fPCALIGN(riV); - gen_log_reg_write(ctx, HEX_REG_LC0, RsV); - gen_log_reg_write(ctx, HEX_REG_SA0, tcg_constant_tl(ctx->pkt->pc + riV= )); + tcg_gen_mov_tl(get_result_gpr(ctx, HEX_REG_LC0), RsV); + tcg_gen_movi_tl(get_result_gpr(ctx, HEX_REG_SA0), ctx->pkt->pc + riV); gen_set_usr_fieldi(ctx, USR_LPCFG, 0); } =20 @@ -555,8 +541,8 @@ static inline void gen_loop1r(DisasContext *ctx, TCGv R= sV, int riV) { fIMMEXT(riV); fPCALIGN(riV); - gen_log_reg_write(ctx, HEX_REG_LC1, RsV); - gen_log_reg_write(ctx, HEX_REG_SA1, tcg_constant_tl(ctx->pkt->pc + riV= )); + tcg_gen_mov_tl(get_result_gpr(ctx, HEX_REG_LC1), RsV); + tcg_gen_movi_tl(get_result_gpr(ctx, HEX_REG_SA1), ctx->pkt->pc + riV); } =20 static void gen_loop1i(DisasContext *ctx, int count, int riV) @@ -568,8 +554,8 @@ static void gen_ploopNsr(DisasContext *ctx, int N, TCGv= RsV, int riV) { fIMMEXT(riV); fPCALIGN(riV); - gen_log_reg_write(ctx, HEX_REG_LC0, RsV); - gen_log_reg_write(ctx, HEX_REG_SA0, tcg_constant_tl(ctx->pkt->pc + riV= )); + tcg_gen_mov_tl(get_result_gpr(ctx, HEX_REG_LC0), RsV); + tcg_gen_movi_tl(get_result_gpr(ctx, HEX_REG_SA0), ctx->pkt->pc + riV); gen_set_usr_fieldi(ctx, USR_LPCFG, N); gen_log_pred_write(ctx, 3, tcg_constant_tl(0)); } @@ -773,25 +759,23 @@ static void gen_framecheck(TCGv EA, int framesize) =20 static void gen_allocframe(DisasContext *ctx, TCGv r29, int framesize) { - TCGv r30 =3D tcg_temp_new(); + TCGv r30 =3D get_result_gpr(ctx, HEX_REG_FP); TCGv_i64 frame; tcg_gen_addi_tl(r30, r29, -8); frame =3D gen_frame_scramble(); gen_store8(tcg_env, r30, frame, ctx->insn->slot); - gen_log_reg_write(ctx, HEX_REG_FP, r30); gen_framecheck(r30, framesize); tcg_gen_subi_tl(r29, r30, framesize); } =20 static void gen_deallocframe(DisasContext *ctx, TCGv_i64 r31_30, TCGv r30) { - TCGv r29 =3D tcg_temp_new(); + TCGv r29 =3D get_result_gpr(ctx, HEX_REG_SP); TCGv_i64 frame =3D tcg_temp_new_i64(); gen_load_frame(ctx, frame, r30); gen_frame_unscramble(frame); tcg_gen_mov_i64(r31_30, frame); tcg_gen_addi_tl(r29, r30, 8); - gen_log_reg_write(ctx, HEX_REG_SP, r29); } #endif =20 @@ -833,7 +817,7 @@ static void gen_cond_return_subinsn(DisasContext *ctx, = TCGCond cond, TCGv pred) { TCGv_i64 RddV =3D get_result_gpr_pair(ctx, HEX_REG_FP); gen_cond_return(ctx, RddV, hex_gpr[HEX_REG_FP], pred, cond); - gen_log_reg_write_pair(ctx, HEX_REG_FP, RddV); + gen_write_reg_pair(ctx, HEX_REG_FP, RddV); } =20 static void gen_endloop0(DisasContext *ctx) diff --git a/target/hexagon/idef-parser/parser-helpers.c b/target/hexagon/i= def-parser/parser-helpers.c index 1dc52b4e02..f5802ceadb 100644 --- a/target/hexagon/idef-parser/parser-helpers.c +++ b/target/hexagon/idef-parser/parser-helpers.c @@ -1315,7 +1315,7 @@ void gen_write_reg(Context *c, YYLTYPE *locp, HexValu= e *reg, HexValue *value) value_m =3D rvalue_materialize(c, locp, &value_m); OUT(c, locp, - "gen_log_reg_write(ctx, ", ®->reg.id, ", ", + "tcg_gen_mov_tl(get_result_gpr(ctx, ", ®->reg.id, "), ", &value_m, ");\n"); } =20 diff --git a/target/hexagon/README b/target/hexagon/README index 5af298e3ed..4065cefa84 100644 --- a/target/hexagon/README +++ b/target/hexagon/README @@ -79,12 +79,14 @@ tcg_funcs_generated.c.inc Insn *insn, Packet *pkt) { - TCGv RdV =3D tcg_temp_new(); + Insn *insn G_GNUC_UNUSED =3D ctx->insn; const int RdN =3D insn->regno[0]; - TCGv RsV =3D hex_gpr[insn->regno[1]]; - TCGv RtV =3D hex_gpr[insn->regno[2]]; + TCGv RdV =3D get_result_gpr(ctx, RdN); + const int RsN =3D insn->regno[1]; + TCGv RsV =3D hex_gpr[RsN]; + const int RtN =3D insn->regno[2]; + TCGv RtV =3D hex_gpr[RtN]; gen_helper_A2_add(RdV, tcg_env, RsV, RtV); - gen_log_reg_write(ctx, RdN, RdV); } =20 helper_funcs_generated.c.inc diff --git a/target/hexagon/gen_tcg_funcs.py b/target/hexagon/gen_tcg_funcs= .py index 91b6a1e9d0..777735b373 100755 --- a/target/hexagon/gen_tcg_funcs.py +++ b/target/hexagon/gen_tcg_funcs.py @@ -35,7 +35,6 @@ ## TCGv RsV =3D hex_gpr[insn->regno[1]]; ## TCGv RtV =3D hex_gpr[insn->regno[2]]; ## -## gen_log_reg_write(ctx, RdN, RdV); ## } ## ## where depends on hex_common.skip_qemu_helper(tag) diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py index 6803908718..093def9386 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -452,9 +452,8 @@ def decl_tcg(self, f, tag, regno): TCGv {self.reg_tcg()} =3D get_result_gpr(ctx, {self.reg_num}); """)) def log_write(self, f, tag): - f.write(code_fmt(f"""\ - gen_log_reg_write(ctx, {self.reg_num}, {self.reg_tcg()}); - """)) + ## No write needed + return def analyze_write(self, f, tag, regno): predicated =3D "true" if is_predicated(tag) else "false" f.write(code_fmt(f"""\ @@ -496,9 +495,8 @@ def decl_tcg(self, f, tag, regno): tcg_gen_mov_tl({self.reg_tcg()}, hex_gpr[{self.reg_num}]); """)) def log_write(self, f, tag): - f.write(code_fmt(f"""\ - gen_log_reg_write(ctx, {self.reg_num}, {self.reg_tcg()}); - """)) + ## No write needed + return def analyze_read(self, f, regno): f.write(code_fmt(f"""\ ctx_log_reg_read(ctx, {self.reg_num}); @@ -630,7 +628,7 @@ def decl_tcg(self, f, tag, regno): """)) def log_write(self, f, tag): f.write(code_fmt(f"""\ - gen_log_reg_write_pair(ctx, {self.reg_num}, {self.reg_tcg()}); + gen_write_reg_pair(ctx, {self.reg_num}, {self.reg_tcg()}); """)) def analyze_write(self, f, tag, regno): predicated =3D "true" if is_predicated(tag) else "false" @@ -664,7 +662,7 @@ def decl_tcg(self, f, tag, regno): """)) def log_write(self, f, tag): f.write(code_fmt(f"""\ - gen_log_reg_write_pair(ctx, {self.reg_num}, {self.reg_tcg()}); + gen_write_reg_pair(ctx, {self.reg_num}, {self.reg_tcg()}); """)) def analyze_read(self, f, regno): f.write(code_fmt(f"""\ --=20 2.34.1 From nobody Sat Jan 3 06:34:30 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1767384884; cv=none; d=zohomail.com; s=zohoarc; b=DZ3Xh896O8ophUz3u1iV6Az5FBrYkbmA+xr2IzcOf2zKssfTOUgs89d7+I5Nr+pYBepkWgUYGbFdpQCaAFGkmoIoB33SJAttFEipjZRK/HHIzi64yuST8QU7Ybav9aKB+mA4IRiqQlM8voLcHJ56R7RQloaaCDbgCLx7sqV6Xsc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767384884; 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=pKYjqfTXgQGZVxyGZkOxNio7I/520YSRrDNyn/er0eo=; b=Cpl5dpGOdpdw/CNEr8Z9RIIEelyQ5Z3eDz1P8GetKQ71+olEEtBXrxfSe32HzDRDVEW+BfJvmSCViUAEIP9m6FOFwnTNBwqj7IXiaJbb51A5UYCBdpg2YNd6ZcpoR7yQF4jS5rZxmo5LSZ0mpSXww6NxecidJnqLSxBytRwlUZk= 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=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767384884274355.7801405981502; Fri, 2 Jan 2026 12:14:44 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vblVy-000438-0y; Fri, 02 Jan 2026 15:12:50 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vblVj-0003vZ-04 for qemu-devel@nongnu.org; Fri, 02 Jan 2026 15:12:36 -0500 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vblVf-0002Tg-SG for qemu-devel@nongnu.org; Fri, 02 Jan 2026 15:12:34 -0500 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6029VxDY637501 for ; Fri, 2 Jan 2026 20:12:26 GMT Received: from mail-pg1-f199.google.com (mail-pg1-f199.google.com [209.85.215.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4bd3v8vn6s-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 02 Jan 2026 20:12:26 +0000 (GMT) Received: by mail-pg1-f199.google.com with SMTP id 41be03b00d2f7-c337375d953so8984025a12.3 for ; Fri, 02 Jan 2026 12:12:26 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2b140c42e7esm1794621eec.22.2026.01.02.12.12.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 02 Jan 2026 12:12:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=pKYjqfTXgQGZVxyGZkOxNio7I/520YSRrDNyn/er0eo=; b=Ws hzK2Q37IFMHBnm2f5HD2NnDn4+zov9lmWnAWGaPPbaoQTc6CI1UIzGnKm3dnBj6F 2V8XNbvwOpROmkQ/N4FHu+pYJ87R2EiXOrDl+3NyuaYZw38F2qKoUMYCZtZWMORh KRw9jQqz2LjVmQ7geqn63DYUCHANOjlEP7+rOEWHnIRdv5STuumOPi9NCdDhektE C789slIqtkcoMZf8gvEjlTAgxjE+ugxygjk0oMiQ15XUEWN3+SJK993gyP9aXLc5 yVttprEEaFCQ+hv8WbaVXB+33GrlhxtYr8Si+625JIhJLbDquqNsn88F7YRiVOoz oDw9T73LG1q4QkQC3kmA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1767384745; x=1767989545; 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=pKYjqfTXgQGZVxyGZkOxNio7I/520YSRrDNyn/er0eo=; b=f4rAhHrEHXN1LWLl+qCdfrW/Mv8d78hmcJw/3nQLe7YcjUZhrf+qWMLUvencTjomLt HnBotdenjiamMC/eqPitHw9UPyQyTpttHGmFRdBYLj+9ql7YO+oY+15M0UwhTlKhY5kS X+g4r8oPhFM3iV9dMnu4N+AxX1r8fhs04g3HMoPu4598W0den+AU15mb/1I7CRhY/rF5 a+v5R68AKzb2w/yG/35GyoVK4nuLtS5gba5j3v5jwZK88IOHqp+xLzW8fcPbUfjAQknz LabrzWJCMKAldPuRRo4vv6JhC3lULyuSvHlBjSJ2qd4ODWiuAzJK+o9ITBD4Gc/jsHDY aIGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767384745; x=1767989545; 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=pKYjqfTXgQGZVxyGZkOxNio7I/520YSRrDNyn/er0eo=; b=cietK6RCex8YRJ9TH1WBhBfS4jCTe4rPeBqK7AzZND6I8DLpHKVrkd7HDgzTcBEWgk 5Zg5TQCTbpBF93V0YjZyn66HtAHCEFGYsqYbacvHShMHShVjpka/DwTaPD46QxooPJDp eee7F6p5SuIBqZkOWboumNpGwaaHwcDKm+BcHrwUETetq9lCDl+mws2vIxYZU8NpTSzz kNBeS7n7LlEkSP2jIitZVKeBocMliBKULvRk9jSmd7HsyINtdEOXY/JblKoIhCZsyNyf veyCdep6YgSWpur+5Ho7Y/nBklla+hrX6b2SigNTNvhELDU1ZANrADcyeKRsNGLxOfSC NIfA== X-Gm-Message-State: AOJu0Yzt3Fi2eMjQvMMs3s0ML9a7pud/y2oPxphMjqzNAT9cSMrMXU9o cvmX/NeUgWRRUWNwWbk1XWMl5KF3m7pC0tV10jlLJ32s1ixM9BiTsEdIV0X0dlcw1UnprCkE+se iZsyIP7dR7nQOaR6sszmBJlaPpMGvSQ3q37srebwuhXywvdqQYFq1LQPdy71Y84B/VQ== X-Gm-Gg: AY/fxX4QO1Xa+8XcKoK1VcSmHJ7E40u7B0Sq8bjqeNS8FgjJQhLDa2c9f2F/m61fHVE D2922NHuWJpjCXp4M7ntQEUMXkONyx3f/Gq1kLXcbgaPcKAnYGmvUIiYgca8xHvrVTxHIT68mgq oQuLaPi0okv0wPIR/K3XAI/AVhs49gJNsfFKbAjpKDY1G/HB0abfnykyCR/Qaa2DKwgq4i5menD Bmy9zaBnrZWsHP0RKcEvWJeb0GX3wRukf68NTXaFqj85ykGe/iY0BBMiEDsfR4EwMfw/dmcmJfB Gdi6e7ciODInjivOEA5LysF/FYAhUpL6kyOImTj63dVU79KApocLiXIyxRVrknMy1osDj2ju5l/ 53VZ82M1yF/dv1AjhrkE+jYLGHNpYAM2xMw59JQFRaa5YWEwE4qVGzZIuXg== X-Received: by 2002:a05:7300:ea05:b0:2ae:6118:dbcc with SMTP id 5a478bee46e88-2b05ec04ad5mr25254544eec.11.1767384745259; Fri, 02 Jan 2026 12:12:25 -0800 (PST) X-Google-Smtp-Source: AGHT+IEYYnQa32B1RYA40/uzc0gpSDuoRlxDMY9JZh1XTHdQHtqnRG1BPRKpgMKkDCQeE3okRFdizA== X-Received: by 2002:a05:7300:ea05:b0:2ae:6118:dbcc with SMTP id 5a478bee46e88-2b05ec04ad5mr25254530eec.11.1767384744672; Fri, 02 Jan 2026 12:12:24 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org, richard.henderson@linaro.org Cc: brian.cain@oss.qualcomm.com, ltaylorsimpson@gmail.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Alessandro Di Federico , Anton Johansson Subject: [PULL 7/9] Hexagon (target/hexagon) s/gen_log_pred_write/gen_pred_write Date: Fri, 2 Jan 2026 12:12:03 -0800 Message-Id: <20260102201205.2050363-8-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260102201205.2050363-1-brian.cain@oss.qualcomm.com> References: <20260102201205.2050363-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTAyMDE4MSBTYWx0ZWRfX7AX6WdDGFeC6 ybAh+TEAalgJN0kfvbu9rqYTRfAi6mTorrhrPIY1wvJKri7ork3PfZXypGQ3O0THvnR+3nOkaS1 DJprNWdb3ug3C96ityRo9M6Xt5eioP1vlN10pHwE0RV+Frl2VyhKLb2WEIiMKJBumH30cHO6vnc gpD9tTNaaZ1sqPrVxl/DMlbrJttobhcM5hCZKQy95yHh1VC6Y20gU3FRfjF44b3DhaLHy8+PnTl In8KnIhVSdT8FCjV3p8fdMv+BdBYkVHeU1BJF7UvTeNJHUeNcv1eAMXx5+iopbrOyclS1pZTpAJ qhP/lFZyrZxu5/Y69zVjcs8fZISa8EwiCFa1j9IWus7c4pIxOjDCRtrhq5NjX459AO9KrWVCtG6 x9IslMeeRhWT/Cg6hDq0VnwLaX4mStcDbE58zlD1l0sRabRA/SOmfDOChu9bTowy1ZyfTpmkDwr cRJSfREYu7SPXCxrYRg== X-Authority-Analysis: v=2.4 cv=JdOxbEKV c=1 sm=1 tr=0 ts=695826aa cx=c_pps a=Oh5Dbbf/trHjhBongsHeRQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=pGLkceISAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=nbF6Ex3ZqfVUxDqS_3QA:9 a=QEXdDO2ut3YA:10 a=_Vgx9l1VpLgwpw_dHYaR:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-GUID: wjA1R3ZAnCL_vkIdukbe6-5qCvij4HEx X-Proofpoint-ORIG-GUID: wjA1R3ZAnCL_vkIdukbe6-5qCvij4HEx X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-02_03,2025-12-31_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 spamscore=0 malwarescore=0 lowpriorityscore=0 priorityscore=1501 bulkscore=0 adultscore=0 phishscore=0 clxscore=1015 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601020181 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 (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=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=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: 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 @qualcomm.com) X-ZM-MESSAGEID: 1767384885117158500 Content-Type: text/plain; charset="utf-8" From: Taylor Simpson The function doesn't "log" anything, it just generates the write Signed-off-by: Taylor Simpson Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/gen_tcg.h | 4 ++-- target/hexagon/genptr.h | 2 +- target/hexagon/genptr.c | 14 +++++++------- target/hexagon/idef-parser/parser-helpers.c | 2 +- target/hexagon/hex_common.py | 4 ++-- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/target/hexagon/gen_tcg.h b/target/hexagon/gen_tcg.h index 4895884fae..7b96dab918 100644 --- a/target/hexagon/gen_tcg.h +++ b/target/hexagon/gen_tcg.h @@ -599,7 +599,7 @@ TCGv p0 =3D tcg_temp_new(); \ gen_helper_cabacdecbin_pred(p0, RssV, RttV); \ gen_helper_cabacdecbin_val(RddV, RssV, RttV); \ - gen_log_pred_write(ctx, 0, p0); \ + gen_pred_write(ctx, 0, p0); \ } while (0) =20 /* @@ -914,7 +914,7 @@ do { \ TCGv p0 =3D tcg_temp_new(); \ gen_comparei(TCG_COND_EQ, p0, RsV, uiV); \ - gen_log_pred_write(ctx, 0, p0); \ + gen_pred_write(ctx, 0, p0); \ } while (0) =20 #define fGEN_TCG_J2_jump(SHORTCODE) \ diff --git a/target/hexagon/genptr.h b/target/hexagon/genptr.h index d932255042..228d7f1d7d 100644 --- a/target/hexagon/genptr.h +++ b/target/hexagon/genptr.h @@ -37,7 +37,7 @@ TCGv gen_read_reg(TCGv result, int num); TCGv gen_read_preg(TCGv pred, uint8_t num); TCGv get_result_gpr(DisasContext *ctx, int rnum); TCGv get_result_pred(DisasContext *ctx, int pnum); -void gen_log_pred_write(DisasContext *ctx, int pnum, TCGv val); +void gen_pred_write(DisasContext *ctx, int pnum, TCGv val); void gen_set_usr_field(DisasContext *ctx, int field, TCGv val); void gen_set_usr_fieldi(DisasContext *ctx, int field, int x); void gen_set_usr_field_if(DisasContext *ctx, int field, TCGv val); diff --git a/target/hexagon/genptr.c b/target/hexagon/genptr.c index d300f07f16..2534d96620 100644 --- a/target/hexagon/genptr.c +++ b/target/hexagon/genptr.c @@ -120,7 +120,7 @@ TCGv get_result_pred(DisasContext *ctx, int pnum) } } =20 -void gen_log_pred_write(DisasContext *ctx, int pnum, TCGv val) +void gen_pred_write(DisasContext *ctx, int pnum, TCGv val) { TCGv pred =3D get_result_pred(ctx, pnum); TCGv base_val =3D tcg_temp_new(); @@ -215,7 +215,7 @@ static void gen_write_p3_0(DisasContext *ctx, TCGv cont= rol_reg) TCGv hex_p8 =3D tcg_temp_new(); for (int i =3D 0; i < NUM_PREGS; i++) { tcg_gen_extract_tl(hex_p8, control_reg, i * 8, 8); - gen_log_pred_write(ctx, i, hex_p8); + gen_pred_write(ctx, i, hex_p8); } } =20 @@ -557,7 +557,7 @@ static void gen_ploopNsr(DisasContext *ctx, int N, TCGv= RsV, int riV) tcg_gen_mov_tl(get_result_gpr(ctx, HEX_REG_LC0), RsV); tcg_gen_movi_tl(get_result_gpr(ctx, HEX_REG_SA0), ctx->pkt->pc + riV); gen_set_usr_fieldi(ctx, USR_LPCFG, N); - gen_log_pred_write(ctx, 3, tcg_constant_tl(0)); + gen_pred_write(ctx, 3, tcg_constant_tl(0)); } =20 static void gen_ploopNsi(DisasContext *ctx, int N, int count, int riV) @@ -597,7 +597,7 @@ static void gen_cmpnd_cmp_jmp(DisasContext *ctx, if (ctx->insn->part1) { TCGv pred =3D tcg_temp_new(); gen_compare(cond1, pred, arg1, arg2); - gen_log_pred_write(ctx, pnum, pred); + gen_pred_write(ctx, pnum, pred); } else { TCGv pred =3D tcg_temp_new(); tcg_gen_mov_tl(pred, ctx->new_pred_value[pnum]); @@ -654,7 +654,7 @@ static void gen_cmpnd_tstbit0_jmp(DisasContext *ctx, TCGv pred =3D tcg_temp_new(); tcg_gen_andi_tl(pred, arg, 1); gen_8bitsof(pred, pred); - gen_log_pred_write(ctx, pnum, pred); + gen_pred_write(ctx, pnum, pred); } else { TCGv pred =3D tcg_temp_new(); tcg_gen_mov_tl(pred, ctx->new_pred_value[pnum]); @@ -834,7 +834,7 @@ static void gen_endloop0(DisasContext *ctx) TCGLabel *label1 =3D gen_new_label(); tcg_gen_brcondi_tl(TCG_COND_NE, lpcfg, 1, label1); { - gen_log_pred_write(ctx, 3, tcg_constant_tl(0xff)); + gen_pred_write(ctx, 3, tcg_constant_tl(0xff)); } gen_set_label(label1); =20 @@ -908,7 +908,7 @@ static void gen_endloop01(DisasContext *ctx) */ tcg_gen_brcondi_tl(TCG_COND_NE, lpcfg, 1, label1); { - gen_log_pred_write(ctx, 3, tcg_constant_tl(0xff)); + gen_pred_write(ctx, 3, tcg_constant_tl(0xff)); } gen_set_label(label1); =20 diff --git a/target/hexagon/idef-parser/parser-helpers.c b/target/hexagon/i= def-parser/parser-helpers.c index f5802ceadb..70bfa64432 100644 --- a/target/hexagon/idef-parser/parser-helpers.c +++ b/target/hexagon/idef-parser/parser-helpers.c @@ -1713,7 +1713,7 @@ void gen_pred_assign(Context *c, YYLTYPE *locp, HexVa= lue *left_pred, /* Extract first 8 bits, and store new predicate value */ OUT(c, locp, "tcg_gen_andi_i32(", left_pred, ", ", &r, ", 0xff);\n"); if (is_direct) { - OUT(c, locp, "gen_log_pred_write(ctx, ", pred_id, ", ", left_pred, + OUT(c, locp, "gen_pred_write(ctx, ", pred_id, ", ", left_pred, ");\n"); } } diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py index 093def9386..1277fec9a2 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -571,7 +571,7 @@ def decl_tcg(self, f, tag, regno): """)) def log_write(self, f, tag): f.write(code_fmt(f"""\ - gen_log_pred_write(ctx, {self.reg_num}, {self.reg_tcg()}); + gen_pred_write(ctx, {self.reg_num}, {self.reg_tcg()}); """)) def analyze_write(self, f, tag, regno): f.write(code_fmt(f"""\ @@ -608,7 +608,7 @@ def decl_tcg(self, f, tag, regno): """)) def log_write(self, f, tag): f.write(code_fmt(f"""\ - gen_log_pred_write(ctx, {self.reg_num}, {self.reg_tcg()}); + gen_pred_write(ctx, {self.reg_num}, {self.reg_tcg()}); """)) def analyze_read(self, f, regno): f.write(code_fmt(f"""\ --=20 2.34.1 From nobody Sat Jan 3 06:34:30 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1767384819; cv=none; d=zohomail.com; s=zohoarc; b=K+YTwW1BlwHN/tVrrI1Q7DSYtv0rWySnf+mGlmbIMjvtisIqNbB7lyTBWThV83VkHAgN+BJA/KyZjgcWROWRb1EbM2I5GZ4D4sKjqTB4v65vErj3SdMS9dpmNX83q2dTwujDPUzOgprsHIyX3gQ+QOe+IQqTC8sWHrwPE9FEBb8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767384819; 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=LgiSAyKeqdm4iwxPrWsmLytvuGCzdsj3c5YV6L+3F5Q=; b=XZ+R8OpkemzO37+V/xs8niQjdv03nj/x5AtTUe7bVKcH0iDmrE+9alk2UG379vop4+ldyY+mU2pUEdiIzChClZgD6cF6EfgRg4mP6J6gIFMw4cjQMLL7XhQX99PTMtGvYulrxXzBll8zp3KtB1H+r4OeNTjJGGb9LpW7ix34QI0= 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=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767384819319785.0496623981787; Fri, 2 Jan 2026 12:13:39 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vblVx-00041v-94; Fri, 02 Jan 2026 15:12:49 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vblVi-0003vT-PW for qemu-devel@nongnu.org; Fri, 02 Jan 2026 15:12:36 -0500 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vblVf-0002Tq-U6 for qemu-devel@nongnu.org; Fri, 02 Jan 2026 15:12:34 -0500 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 602ENil6803153 for ; Fri, 2 Jan 2026 20:12:27 GMT Received: from mail-pg1-f197.google.com (mail-pg1-f197.google.com [209.85.215.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4befr08n89-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 02 Jan 2026 20:12:27 +0000 (GMT) Received: by mail-pg1-f197.google.com with SMTP id 41be03b00d2f7-bc240cdb249so11062769a12.3 for ; Fri, 02 Jan 2026 12:12:27 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2b140c42e7esm1794621eec.22.2026.01.02.12.12.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 02 Jan 2026 12:12:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=LgiSAyKeqdm4iwxPrWsmLytvuGCzdsj3c5YV6L+3F5Q=; b=C0 zNwwvZbFZtSevoHxu6K2wPI5dPdfF9FnHbdmIWvLzy0HdkI8Nr0wFI910TeglKRg GCBJX/6P1VC8aop9goP2Q46n5+cBauHv7hap5fjICyADOlDOFQ5DJ0CaRMeFMFnQ WThULvdyfvejsgJtJQvtjO193aG/T4GQGYEHhfUrjxw0aG1LVui5tLuEdLb8CHoN XsmpyTeHxtQX+mNkqbwNhzA0QteZfRBWaosKp7Z0bwcfo0yziCEFw1T6pc03Xbqd djpY/YlYlZAhf58k151twzCuwgznPfGB0NGq8B3+il/rY5QY98PYHqa3LpkoFNWs p9tFtQZtTbXoTuoHtbkg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1767384746; x=1767989546; 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=LgiSAyKeqdm4iwxPrWsmLytvuGCzdsj3c5YV6L+3F5Q=; b=Y2a7oprXI4GUIDIyp82s5Rihz1rAAAcuVStYbdEC39Xqo1NoOwrI+NageZER8aTl/y UK/XizBOIQP27uhnBjYcf+ZgNpf+zPFUWp1TDqv/N7wjp1dKUNG2IxQZZ4N3TQegDjOg xxMdinxdcmIimh6fqcFT9cRV8mEDC61T5DYGCYQlr/t96+nL12ZLdXrCvLnF9mTKnpcs Jesqv9q9+hptctBfRrb/kduxvfg8Jck2huMv2CqvBoG9MpDntBP0lSeis7fNloEJ+qak +cqESwiNnprEPPV2RE0ZeiUmt6m+h+TjBHbRIl8jj4sK4tgvYlKjCQLLcd5/7sIlmQMy LDAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767384746; x=1767989546; 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=LgiSAyKeqdm4iwxPrWsmLytvuGCzdsj3c5YV6L+3F5Q=; b=Y7XFVh3cfDpb+OoM3r1624KqtTENpcZILE3rzOehe13iogJygflWnW4/vZTcTFBPa3 yKDoGoDJ/EBV8nAmROzfy84EFkddTA0dqyHJohvhCGYYLiYAqUL/Y5MDZ+ib14Y8EpQE d42h1BFJiDbR7rIgu6f3EUPSMlklDEmPJtmTcdFw3P5Oy7hJQCcjXiLULfnlOjY8yf40 jhVqsX/G6ai8TdXQShSA3SdaigyJNgoYQwH6pQu3wkDCL3/H7OSwQ73Edgx6+0wyCcuq qhWDt2BSXDj15ozEUzf32d/kVpJx9tze3Jlc9GSFgCusCs8kwpl1hEnZyK7BP/myQEy+ gD/A== X-Gm-Message-State: AOJu0Yzdiozx66JF81BvYxgiDT57JlvNqjCPEmMAZiygKFKwx2MIKZje v/Z3m8ut3jhkbwZF3vVYuXxTEIEUZO50NkiSiBIP+2y04FZQyO9eN1cUDaJFBK1dkYTOXta6XHe zEZbth36YOdMsR4AmQc+Eyi7zXLaJkW68092Un/CbFEiyElqynArKEsuqjtdfj7d7SQ== X-Gm-Gg: AY/fxX4vyZCl1SkNq6CC/i0ZL8IoEuUj6o2DC/eaInTTnfZsqL6waiyIWHcBFwdKwGe A0oPnny+KQc2H92t8i5VAvBeDwrKgO6M/dVEVEAMk03+ksd/QP6uM83ZtCXDmt4Vbrowe3Z+xkN kfBijQR9rpNjTcjgXm0WHlMgkziEHnWnxCuCj1Yggh9TPKlRhgVeSeBOOGyUjRybpI1uvyv8tgJ 78U6zEk6rxXAUlXWI5u3JZNA/++MySGYLezovPAJlHEiSZrWm38ddGVoBBKhGKHxsmVzqBfc2FN LBouiSjSys9p8d3V9aAkDpcJmZNx97PfIoc+laIj67q/mNV2yLkxOmuaE9n9XNUOV+xfN/zC2CP HNpP/BJru2SWxMLA/SKSwGGpt69DBQ2GHLr3dxFzwBhUoGulfkq+HVl6aBA== X-Received: by 2002:a05:7301:648f:b0:2ae:554a:64c1 with SMTP id 5a478bee46e88-2b05ec96473mr32075727eec.31.1767384746034; Fri, 02 Jan 2026 12:12:26 -0800 (PST) X-Google-Smtp-Source: AGHT+IH3ZgwTn9bBfBgFocc+KU12ACEaJN0ObWCGEhmtCvxbVStYnMKw8Ah+o8k30PCJ/PxYzvH/TA== X-Received: by 2002:a05:7301:648f:b0:2ae:554a:64c1 with SMTP id 5a478bee46e88-2b05ec96473mr32075707eec.31.1767384745538; Fri, 02 Jan 2026 12:12:25 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org, richard.henderson@linaro.org Cc: brian.cain@oss.qualcomm.com, ltaylorsimpson@gmail.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 8/9] Hexagon (target/hexagon) s/gen_log_vreg_write/gen_vreg_write Date: Fri, 2 Jan 2026 12:12:04 -0800 Message-Id: <20260102201205.2050363-9-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260102201205.2050363-1-brian.cain@oss.qualcomm.com> References: <20260102201205.2050363-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=XsL3+FF9 c=1 sm=1 tr=0 ts=695826ab cx=c_pps a=rz3CxIlbcmazkYymdCej/Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=pGLkceISAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=7b1gsmKfWQ02FWdkqOIA:9 a=QEXdDO2ut3YA:10 a=bFCP_H2QrGi7Okbo017w:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-GUID: 30dECrW7iwRhALpSRID61fSXgLzBo-mn X-Proofpoint-ORIG-GUID: 30dECrW7iwRhALpSRID61fSXgLzBo-mn X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTAyMDE4MSBTYWx0ZWRfX6+wC2lPG20+v boLRsogo7vwB8xMUbugAgAfwpnNnlVxcfcqpao2CnXsNs4gEZPoT/uLs5ZurI//w0a6zwIh+XGi 71RaHPB9j/q7B6g44VjgUeKqMuF4b3M5ePHTTf48HjflD0c7rAKosR2B0hueCV5cNu006oF+x6w DSbdHBfF8OTtRg/YSAKYV29aRHIEigT71qw1CenV3DhHIB9ZRihOk2w96ZGZO8HtpyvLyMD5v45 9a05YN89Dx+xSVoc78i/dMQo00hqZrb5/DOjPyiRU6SPDH3t1eNlPrno8Tm0brAXZPapJfq2t/g 4WXmTBPW1FwHFjZOfy/xE7/krT/NpFQ2I3dOojeP4mXFQ1o9EbtS4ZAWvRDPSzIm6iXDGeJcj1/ wX0rPJ6cm28x/vgZ0lRUOXQQMh9AKTsx6ZH9QjBfgtPuCY9x7LywU3QZjPFlKKgiLkcD1+lLlhu el3wRz0PN0tWnUvZe5w== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-02_03,2025-12-31_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 bulkscore=0 adultscore=0 spamscore=0 impostorscore=0 malwarescore=0 lowpriorityscore=0 suspectscore=0 priorityscore=1501 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601020181 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 (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=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=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: 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 @qualcomm.com) X-ZM-MESSAGEID: 1767384821042158500 Content-Type: text/plain; charset="utf-8" From: Taylor Simpson Note there are two functions impacted gen_log_vreg_write -> gen_vreg_write gen_log_vreg_write_pair -> gen_vreg_write_pair These functions don't "log" anything, they just generate the write Signed-off-by: Taylor Simpson Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/genptr.c | 8 ++++---- target/hexagon/hex_common.py | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/target/hexagon/genptr.c b/target/hexagon/genptr.c index 2534d96620..36968549d5 100644 --- a/target/hexagon/genptr.c +++ b/target/hexagon/genptr.c @@ -1174,7 +1174,7 @@ static intptr_t vreg_src_off(DisasContext *ctx, int n= um) return offset; } =20 -static void gen_log_vreg_write(DisasContext *ctx, intptr_t srcoff, int num, +static void gen_vreg_write(DisasContext *ctx, intptr_t srcoff, int num, VRegWriteType type) { intptr_t dstoff; @@ -1190,12 +1190,12 @@ static void gen_log_vreg_write(DisasContext *ctx, i= ntptr_t srcoff, int num, } } =20 -static void gen_log_vreg_write_pair(DisasContext *ctx, intptr_t srcoff, in= t num, +static void gen_vreg_write_pair(DisasContext *ctx, intptr_t srcoff, int nu= m, VRegWriteType type) { - gen_log_vreg_write(ctx, srcoff, num ^ 0, type); + gen_vreg_write(ctx, srcoff, num ^ 0, type); srcoff +=3D sizeof(MMVector); - gen_log_vreg_write(ctx, srcoff, num ^ 1, type); + gen_vreg_write(ctx, srcoff, num ^ 1, type); } =20 static intptr_t get_result_qreg(DisasContext *ctx, int qnum) diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py index 1277fec9a2..6b683487bc 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -823,8 +823,8 @@ def decl_tcg(self, f, tag, regno): """)) def log_write(self, f, tag): f.write(code_fmt(f"""\ - gen_log_vreg_write(ctx, {self.hvx_off()}, {self.reg_num}, - {hvx_newv(tag)}); + gen_vreg_write(ctx, {self.hvx_off()}, {self.reg_num}, + {hvx_newv(tag)}); """)) def helper_hvx_desc(self, f): f.write(code_fmt(f"""\ @@ -915,8 +915,8 @@ def decl_tcg(self, f, tag, regno): """)) def log_write(self, f, tag): f.write(code_fmt(f"""\ - gen_log_vreg_write_pair(ctx, {self.hvx_off()}, {self.reg_num}, - {hvx_newv(tag)}); + gen_vreg_write_pair(ctx, {self.hvx_off()}, {self.reg_num}, + {hvx_newv(tag)}); """)) def helper_hvx_desc(self, f): f.write(code_fmt(f"""\ --=20 2.34.1 From nobody Sat Jan 3 06:34:30 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1767384796; cv=none; d=zohomail.com; s=zohoarc; b=n35R4a7FASB7v+aL92gdRAQHAUXF6/3UQd84Guuzzz104Sm2eQdaOHk39VNKZGabQIweQkCYywmnT6Klxa1NvBsl2uCpJ4MRwyZnchJlOzU7e0+niap2atnslPNr/n9eCbZIqaUGsoEtbEmAKyVoCO3kBdevrDYWHcI9y9dj2MU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767384796; 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=wJ+RImo0rDrbBZ+3K6BiCl872dSSHaKoT2ZVyZmJjKs=; b=Z3WVyQxDn87FUgf0IGwhu1KUsefmmzOLpPUVlmWqXvwuUBPmD51w++cRvSyChqUNoVR0k8QKJDhmu6zrXye8zMfULCTewbrl6IzNEY3jWEtFZ/Wl8fjfXa28i0IgI5jHX8gRicgslpPfThGPMvMjivwb9+19apK0tBOf8Ln0F4E= 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=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 176738479627276.36457376866542; Fri, 2 Jan 2026 12:13:16 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vblVz-00043k-ED; Fri, 02 Jan 2026 15:12:51 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vblVj-0003va-0Q for qemu-devel@nongnu.org; Fri, 02 Jan 2026 15:12:36 -0500 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vblVf-0002UA-Ut for qemu-devel@nongnu.org; Fri, 02 Jan 2026 15:12:34 -0500 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6029W1AH637632 for ; Fri, 2 Jan 2026 20:12:28 GMT Received: from mail-pg1-f199.google.com (mail-pg1-f199.google.com [209.85.215.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4bd3v8vn6w-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 02 Jan 2026 20:12:28 +0000 (GMT) Received: by mail-pg1-f199.google.com with SMTP id 41be03b00d2f7-b630753cc38so20796443a12.1 for ; Fri, 02 Jan 2026 12:12:27 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2b140c42e7esm1794621eec.22.2026.01.02.12.12.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 02 Jan 2026 12:12:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=wJ+RImo0rDrbBZ+3K6BiCl872dSSHaKoT2ZVyZmJjKs=; b=ds QlehjalsGRrOa4EvkykHbLjTFOcSyXEE+okjCX+P0Un4+o9vhed4zq0kRtX4+PoB 4tT/Cy3JK9ajQGGS8duNcaOFe7a+xU3DjKHv1GF2ux64ggR3RL4rglTFQ+rPOUsX Nysm4r1hvmkUdStN+usAfKWRvACimridkDelEa9WEf74rxtSAjchC5n0LiA7ZooQ PQkTdL3OJnmc3TslwOIRaztbt6iOA14GAVfjjM4DQSAIihqx863Cjb/yFvbV/v2w roXxq6BP5vHreJlfTiTQ9Yb2BNFkyryLruaLEBF053jWgOlmUoWk9n0k0pB8isUR qpSjOwW05JceCpLA3t1Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1767384747; x=1767989547; 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=wJ+RImo0rDrbBZ+3K6BiCl872dSSHaKoT2ZVyZmJjKs=; b=K9g+0GhQcG/t51LE6xdBqLWmv6uS9VpqexNFbiS3mcBFSQvCi+dkS6QyaHL7PYXrnf dQTM2jIp4QmnLYoUv5oF81cvk+DayqN+ohzfg41trWksm7g+8tIz5VJ1Cv0GG0b/9P+A 4/pXqVOLrIiECPT4AE3mJcaJf2kACuBqOmh1omYd6Wc+kUBD9mjVDXdNOAulao5bKQl4 SaMB6InInoIlZvhFHpcFILrfNwZ35yYaIsV7wXbMxHkTjKEPf4S1SAP+/cd/Juh4dCjD G3STTgD25rWxMGekZUZNeF6Lmp6IZb7vkRxrPfTaopxuUSPaw1+Gc6gvUZoN6btr66qB zOow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767384747; x=1767989547; 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=wJ+RImo0rDrbBZ+3K6BiCl872dSSHaKoT2ZVyZmJjKs=; b=C6zs8ih1kNZZdluL/DqmkFjf+B2wAXFmkWAsPunw3zyW6VlJFo23b8XjPowzQHi0+b NHNQSoGoy2NMJVoSWej9c4bKUjb18sP/NE9UE9w/J6bfDQOXVmbLgymvh+qF/D2Ymwnw nU44vgM26VM2BcNLQgwDWwumqblOsx/Sgj4ua+PgphOsg1IAyMupJ7ym6bYN1L9gg1t7 hbPP+fT6Clst1iKuL17E+d/kEUxOCm6D0vLu7DBXIHrXntavRjTOnawrWSibn7iy+Ex/ Ho6SfOc9EKqhmqguaEtjAturzorP3D9FhTDQAU+XDWg8dL6SZ92Xdqws+j/xxzegVYFk AaZw== X-Gm-Message-State: AOJu0YxItSk+Yw6ZojorVvhPJ0yjbA0eBo9WYRC7z+Pe4gLURoFHJ8NE 9trE50W6Pr907EeNuJPaBC3L/36oZAXB6vpuh1Qj9s6JQwspsHQcdS6sK3dHD3cSOG+0wODao/L /xl/53ejFJPpTW98AYU2Qz6sWJwPbDTwRNFlohjjCaWznYPTdEY+QdlBllJOnQ8l4hA== X-Gm-Gg: AY/fxX4kTojK21r7xUbZYNAABwIDklaDV1RloWBUR2fweX8AbgHUIXqn3+y3XNXAUSb PcD5H1v22qslhVT3NlQrh22ITCYmo8gW3gM0JTvJYWzDtPEfqO9hi3PQWmhu6A3ioCMstbxtOdI TxOJIT85mrUr0geC0x0fEN5slEQk3fMU/riXU3u8kEJs+KhBE9riDMFzcjkWErggb9bXT/pMPzR osZWq9EsTFufFMwTwy//dQMmflqr+qD0YpFAXqXlF/ZVgj1xjxMLDlwa9d7ZT4fDEwIW4XBT9FT Gf9ei68g62ckAEsDpZYOStjrQKNWORcsoWFkE296rdbFuJ7Z4AQaZnqbxm8bUmCi8dw7TN7YJFM b2FEbPcVPd1PYP4Dx1sLgbDaJ9coLA4Qi/C+1/dzX07UrrnrqV3G4lFZpUg== X-Received: by 2002:a05:7300:4f9b:b0:2b0:5696:26c6 with SMTP id 5a478bee46e88-2b05eb87a72mr27757297eec.4.1767384746959; Fri, 02 Jan 2026 12:12:26 -0800 (PST) X-Google-Smtp-Source: AGHT+IFYyDIOEa0jybrMFuBZ///njrautGuiYFBLCvE334Itecy7OANKxYwEqEKmzNyJQexjr4mcLA== X-Received: by 2002:a05:7300:4f9b:b0:2b0:5696:26c6 with SMTP id 5a478bee46e88-2b05eb87a72mr27757283eec.4.1767384746300; Fri, 02 Jan 2026 12:12:26 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org, richard.henderson@linaro.org Cc: brian.cain@oss.qualcomm.com, ltaylorsimpson@gmail.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 9/9] Hexagon (target/hexagon) s/log_write/gen_write Date: Fri, 2 Jan 2026 12:12:05 -0800 Message-Id: <20260102201205.2050363-10-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260102201205.2050363-1-brian.cain@oss.qualcomm.com> References: <20260102201205.2050363-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTAyMDE4MSBTYWx0ZWRfX9TxIW7YmMi/Y 0+LSEiP4uIxSLll4KTdfN0LN9O3xUEP0qx16IF4n2LflyZiMmAqNTwddqkA/qpYdPtKIS+LA7GG ox7v365OIPNs0qUHHyu/5oDIHsz9B6Xn0+5ANunoD4ZRKD86ZgjKL1/3hRr6EGbjiBNIPzKaYL1 RQlHfzOa7XH5NkQFy1iL6JNBTHk0VvqnGsBp52vC/CXYIK52hxRuLW7qUZw4PncHBmfux7tcCLg MVSqKNkYGGBQ9PZVRGi9G5SV3NKr9vpymwXG1sitVkVjhNaDMHVRzMAZ6RTT4TGz3L8aJ94FRNA Y8nmmN5ab7zomBRZNNj+/arWYR4Ff8fo8ryT31UvBK1WyV8Kiaok+FrDuovgkiz1CRflJekHaqo 0E0t5bMwvV1O4oPsTimEClM9dVdCkwzhfXdOw9n8sqerCFwhhtG2ftRkxltvO0bSUeRuwsVSFBO zExnAe5WmusMasMu2gQ== X-Authority-Analysis: v=2.4 cv=JdOxbEKV c=1 sm=1 tr=0 ts=695826ac cx=c_pps a=Oh5Dbbf/trHjhBongsHeRQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=pGLkceISAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=0WrW_hvzweW35AYSQEwA:9 a=QEXdDO2ut3YA:10 a=_Vgx9l1VpLgwpw_dHYaR:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-GUID: fpO5UFYkAcEUbzROCdNb5g43At1I2bDT X-Proofpoint-ORIG-GUID: fpO5UFYkAcEUbzROCdNb5g43At1I2bDT X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-02_03,2025-12-31_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 spamscore=0 malwarescore=0 lowpriorityscore=0 priorityscore=1501 bulkscore=0 adultscore=0 phishscore=0 clxscore=1015 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601020181 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 (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=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=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: 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 @qualcomm.com) X-ZM-MESSAGEID: 1767384799185158500 Content-Type: text/plain; charset="utf-8" From: Taylor Simpson These functions don't "log" anything, they just generate the write Signed-off-by: Taylor Simpson Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/gen_tcg_funcs.py | 2 +- target/hexagon/hex_common.py | 30 +++++++++++++++--------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/target/hexagon/gen_tcg_funcs.py b/target/hexagon/gen_tcg_funcs= .py index 777735b373..87b7f10d7f 100755 --- a/target/hexagon/gen_tcg_funcs.py +++ b/target/hexagon/gen_tcg_funcs.py @@ -98,7 +98,7 @@ def gen_tcg_func(f, tag, regs, imms): for regtype, regid in regs: reg =3D hex_common.get_register(tag, regtype, regid) if reg.is_written(): - reg.log_write(f, tag) + reg.gen_write(f, tag) =20 f.write("}\n\n") =20 diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py index 6b683487bc..c0e9f26aeb 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -451,7 +451,7 @@ def decl_tcg(self, f, tag, regno): f.write(code_fmt(f"""\ TCGv {self.reg_tcg()} =3D get_result_gpr(ctx, {self.reg_num}); """)) - def log_write(self, f, tag): + def gen_write(self, f, tag): ## No write needed return def analyze_write(self, f, tag, regno): @@ -494,7 +494,7 @@ def decl_tcg(self, f, tag, regno): f.write(code_fmt(f"""\ tcg_gen_mov_tl({self.reg_tcg()}, hex_gpr[{self.reg_num}]); """)) - def log_write(self, f, tag): + def gen_write(self, f, tag): ## No write needed return def analyze_read(self, f, regno): @@ -517,7 +517,7 @@ def decl_tcg(self, f, tag, regno): f.write(code_fmt(f"""\ TCGv {self.reg_tcg()} =3D get_result_gpr(ctx, {self.reg_num}); """)) - def log_write(self, f, tag): + def gen_write(self, f, tag): f.write(code_fmt(f"""\ gen_write_ctrl_reg(ctx, {self.reg_num}, {self.reg_tcg()}); """)) @@ -569,7 +569,7 @@ def decl_tcg(self, f, tag, regno): f.write(code_fmt(f"""\ TCGv {self.reg_tcg()} =3D tcg_temp_new(); """)) - def log_write(self, f, tag): + def gen_write(self, f, tag): f.write(code_fmt(f"""\ gen_pred_write(ctx, {self.reg_num}, {self.reg_tcg()}); """)) @@ -606,7 +606,7 @@ def decl_tcg(self, f, tag, regno): TCGv {self.reg_tcg()} =3D tcg_temp_new(); tcg_gen_mov_tl({self.reg_tcg()}, hex_pred[{self.reg_num}]); """)) - def log_write(self, f, tag): + def gen_write(self, f, tag): f.write(code_fmt(f"""\ gen_pred_write(ctx, {self.reg_num}, {self.reg_tcg()}); """)) @@ -626,7 +626,7 @@ def decl_tcg(self, f, tag, regno): TCGv_i64 {self.reg_tcg()} =3D get_result_gpr_pair(ctx, {self.reg_num}); """)) - def log_write(self, f, tag): + def gen_write(self, f, tag): f.write(code_fmt(f"""\ gen_write_reg_pair(ctx, {self.reg_num}, {self.reg_tcg()}); """)) @@ -660,7 +660,7 @@ def decl_tcg(self, f, tag, regno): hex_gpr[{self.reg_num}], hex_gpr[{self.reg_num} + 1]); """)) - def log_write(self, f, tag): + def gen_write(self, f, tag): f.write(code_fmt(f"""\ gen_write_reg_pair(ctx, {self.reg_num}, {self.reg_tcg()}); """)) @@ -685,7 +685,7 @@ def decl_tcg(self, f, tag, regno): TCGv_i64 {self.reg_tcg()} =3D get_result_gpr_pair(ctx, {self.reg_num}); """)) - def log_write(self, f, tag): + def gen_write(self, f, tag): f.write(code_fmt(f"""\ gen_write_ctrl_reg_pair(ctx, {self.reg_num}, {self.reg_tcg()}); """)) @@ -723,7 +723,7 @@ def decl_tcg(self, f, tag, regno): TCGv_ptr {self.reg_tcg()} =3D tcg_temp_new_ptr(); tcg_gen_addi_ptr({self.reg_tcg()}, tcg_env, {self.hvx_off(= )}); """)) - def log_write(self, f, tag): + def gen_write(self, f, tag): pass def helper_hvx_desc(self, f): f.write(code_fmt(f"""\ @@ -789,7 +789,7 @@ def decl_tcg(self, f, tag, regno): TCGv_ptr {self.reg_tcg()} =3D tcg_temp_new_ptr(); tcg_gen_addi_ptr({self.reg_tcg()}, tcg_env, {self.hvx_off(= )}); """)) - def log_write(self, f, tag): + def gen_write(self, f, tag): pass def helper_hvx_desc(self, f): f.write(code_fmt(f"""\ @@ -821,7 +821,7 @@ def decl_tcg(self, f, tag, regno): vreg_src_off(ctx, {self.reg_num}), sizeof(MMVector), sizeof(MMVector)); """)) - def log_write(self, f, tag): + def gen_write(self, f, tag): f.write(code_fmt(f"""\ gen_vreg_write(ctx, {self.hvx_off()}, {self.reg_num}, {hvx_newv(tag)}); @@ -854,7 +854,7 @@ def decl_tcg(self, f, tag, regno): TCGv_ptr {self.reg_tcg()} =3D tcg_temp_new_ptr(); tcg_gen_addi_ptr({self.reg_tcg()}, tcg_env, {self.hvx_off(= )}); """)) - def log_write(self, f, tag): + def gen_write(self, f, tag): pass def helper_hvx_desc(self, f): f.write(code_fmt(f"""\ @@ -913,7 +913,7 @@ def decl_tcg(self, f, tag, regno): TCGv_ptr {self.reg_tcg()} =3D tcg_temp_new_ptr(); tcg_gen_addi_ptr({self.reg_tcg()}, tcg_env, {self.hvx_off(= )}); """)) - def log_write(self, f, tag): + def gen_write(self, f, tag): f.write(code_fmt(f"""\ gen_vreg_write_pair(ctx, {self.hvx_off()}, {self.reg_num}, {hvx_newv(tag)}); @@ -946,7 +946,7 @@ def decl_tcg(self, f, tag, regno): TCGv_ptr {self.reg_tcg()} =3D tcg_temp_new_ptr(); tcg_gen_addi_ptr({self.reg_tcg()}, tcg_env, {self.hvx_off(= )}); """)) - def log_write(self, f, tag): + def gen_write(self, f, tag): pass def helper_hvx_desc(self, f): f.write(code_fmt(f"""\ @@ -993,7 +993,7 @@ def decl_tcg(self, f, tag, regno): TCGv_ptr {self.reg_tcg()} =3D tcg_temp_new_ptr(); tcg_gen_addi_ptr({self.reg_tcg()}, tcg_env, {self.hvx_off(= )}); """)) - def log_write(self, f, tag): + def gen_write(self, f, tag): pass def helper_hvx_desc(self, f): f.write(code_fmt(f"""\ --=20 2.34.1