From nobody Sat Apr 11 21:30:50 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=1773067746; cv=none; d=zohomail.com; s=zohoarc; b=iZkE7j+z1B+IuuqT/N8YAyQkPPjFo/sK2lKsD8uqsncK5NSqjp9iFpyEOQozKQjd/yhAmRu6GieXSiPn4OOqL5TY3wJi1UU6pQjpYgiV7+3pxYhkJTaS5AyUglETHEZfsU3ALRlC+nlJauB61zmRjrgUJu57uEPX0TC9AhSC5DA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773067746; 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=MuGnrP8EVjacDVNLhKUuNxaOEQoX7mtfG/xT9bAttGw=; b=mDgxGsZHMqIch0voHaU7uaaasqEKfm7tbHHcIwWMcpqA4bN875y0GxUwf+oyMt033kRt0ugPOKciHguZEh9lbh13GSFITsOc582mzIpXnJPmT7jc6uqJtsp71Hq+mwbbKG8r/mZ6y4+qwnmC+yALSaIfBqr3ib1N9iWhRHSKtqk= 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 1773067746859784.4518838446266; Mon, 9 Mar 2026 07:49:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vzbui-0000rw-5Q; Mon, 09 Mar 2026 10:48:57 -0400 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 1vzbuM-0000p5-Mn for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:36 -0400 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 1vzbuK-0005D9-7r for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:34 -0400 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 629A6dMd2195107 for ; Mon, 9 Mar 2026 14:48:30 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4csv5u8vjf-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 14:48:30 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-2be21146933so10001655eec.1 for ; Mon, 09 Mar 2026 07:48:30 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be4f82b78esm9322776eec.12.2026.03.09.07.48.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 07:48:27 -0700 (PDT) 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= MuGnrP8EVjacDVNLhKUuNxaOEQoX7mtfG/xT9bAttGw=; b=QMySoU81wPtOTTjg sZbFVyM12fAw7W8VpIPJqe+CKQKc87IIQLLShM7Tn398WlxwLHv40qT9wVhjISC7 PkHIC79eS5ejYdMsxeRD60KKh2rqhia0wk9u4947+IXnQ+Qlfs8zH7hRIeeGK4iE 1Cn4EWtbfnpHCgMkay8baMBTaR2x7IeVzwgQK8Q52/6N1godcMRNEvQG+4FeZP9k 4+QsEvI7hIVZRave83Jryw0HHKCxb0u9Nj+lky8KMJgAZ6vWpVm/h5+WZIZw5WbX x4LrLgfdVfwfzo8WA40hKm8tZHydCIorm/AnyNrhW73XoqeDAkw8aBVOy0BkPwrd ZmCuTw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773067709; x=1773672509; 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=MuGnrP8EVjacDVNLhKUuNxaOEQoX7mtfG/xT9bAttGw=; b=K1Hti3/DD0Y4qVusSpEFjuYZxY2v0wg6aJRecZ5lsFSS//+iSQZ67meU4y2jOzacCw 6q0ad+onRf8inGM8z036GKRbHAAwnOGojS5l0UcawEeTICsy6y5rcL0l0MnShz+5Igd0 0aGWhV75/g3ZuANLvddnwNcDXWPJzLa76r8ecIEeQ5x+twhlgtmk/vNkXtuoHeIrFjFZ 7BaGUD90eD+EztrC0JsaA0XM1cqzdnDbMttVIFCHw3KJVw6gUSNmVWN1d1qVWskIFiUi R9jU17RMdaD7H0YrJNVkWPDDcZl+k0mBf/bt8sVtCx4B2QiWBooydK6/vt0RTEgjKRPw doNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773067709; x=1773672509; 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=MuGnrP8EVjacDVNLhKUuNxaOEQoX7mtfG/xT9bAttGw=; b=boTYPgLiAek9KyiNBoF36+MGZjRP8YAYedS+QYjgG+BeULAdWrbueN0Tf6tPtQYh7Q I7Y6n+QKI9p/d+gwgch6LQqK3x6c/vVZCP2xnL8zrqqS16d53B7asJtb9ZKno2THAy9v VOuVMyAiZF85IF3cFnkiSBU57BHOIuwHoArPuQcv6Cg/DHk6yfrvXKxXtQvDZMiqyWxu 807+Sf5dgwGkf5tbjxTmzJ2BPh/+BCwwPJL1u4xGHdK/rabVltLh+MSS34LH3g9AcZk+ Ah0QO/6+/Kcs04bc9mkTb4pSLAo5cz0i5uhyMKW5aV3Fm+dcvxY4kafsUdTv5A5d0TLl kdDQ== X-Gm-Message-State: AOJu0YwdDkYOfbrVZ9oind3ve7q/ZgWodysKzW9vULKq0Durnkce+rcN zxNWkCK+XpCwmen+AkiNAjtG8SgD+jmQgEyaGN3pFuTbILW4+bo/g7oLJ6MvJtrzFNGx7qPeRnZ vM224IlM76hqUPr8ODYT1+JBn4cumS73zobdcvmO9T8bF5QFe+Y06gJlSmDJzbhODZQ== X-Gm-Gg: ATEYQzzk9cc/+9yB5QAdycvhUVh2UnDiWz0/agHz6VAuhHZ4ZmnCHJNSRlCbrW1oSkk P5SgPyW9ZP10CB1FwaymCzClISQdjoiZqGcDNv/gbQErQSK7f3DOXEVLgdNdDxj//gEAGDMUH0A Gv/V+3tzDVktZZ62gEfbpl1bzrKPyAOSuQM6eVzMnpQh1/62N7wEhBK9fHUg6MAuYWayye/CQJh B6oj2hXHc+rDxR5VfCjwac7PLkpI+E1uc6QLmj1Gvn6ch7JR2ldCVhUeeWRoAkddxvbyEAE1qWC II53j2fVcZJ7Kt94IjgWj5tgLd3B8F3XdE3HFA74U2ESfWARXYy0vHNUtahFgICetMC5U7G4yli CntQQSUle11PAauULLUuMBxwSWPj9a8dGLXHTafJMye4hoq43w3csBtzE8YAiM8fpcx1+ig== X-Received: by 2002:a05:7301:1010:b0:2be:1f58:32a6 with SMTP id 5a478bee46e88-2be4e08fbeamr4063786eec.33.1773067709089; Mon, 09 Mar 2026 07:48:29 -0700 (PDT) X-Received: by 2002:a05:7301:1010:b0:2be:1f58:32a6 with SMTP id 5a478bee46e88-2be4e08fbeamr4063751eec.33.1773067708261; Mon, 09 Mar 2026 07:48:28 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 01/35] docs: Add hexagon sysemu docs Date: Mon, 9 Mar 2026 07:47:48 -0700 Message-Id: <20260309144822.877695-2-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> References: <20260309144822.877695-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: Xo_lXyQumV-FPV4zsuRojEdRLyhtID2G X-Proofpoint-ORIG-GUID: Xo_lXyQumV-FPV4zsuRojEdRLyhtID2G X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDEzMyBTYWx0ZWRfXwiXCnpCK0RmP vFZhjbg/ysIid5xJYJay36562WXaU+BRFmdjJUnaeN7479zHcQ3e/u3+ATZAP14C0bN61n9LUW0 RHCaIhRGxIORmDJp7phsugkaTVL/wfHvYCrROIbfwF/6VG+pjsCJqpE4theVODcYjA8IAdV9mi/ 3EL2NtVAq0wj+3ksazSlXlDwb2YxrlybFWUnszaYGyMdFzSHC5fe8AX2vfp0jsuLEj7Fgf5JtN6 Yjyl2k2hCM7SCzkF39Z0xFPN2pl+0whMhENplyLYgnCATSyq4uF6ynXF7iHLvnr/MfVfQq19IMG ZtIWp7W1UBxgP0YwGQpNLmsGS1400uHCFxQrYNexyIOrfxjyjk/LpKjigdnCcrYizOHOBdq3wSQ u6qZWw05wGReXLvJjkJFrkrpUsBB1Pz2WhEJDWFmemAOUDextzlJw2MBMWHfh/DLltQiCVBqpr5 5N0aXID/iucCopsCZAg== X-Authority-Analysis: v=2.4 cv=Xr/3+FF9 c=1 sm=1 tr=0 ts=69aeddbe cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=NEAV23lmAAAA:8 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=fXLLft-zuLPsu7fQao0A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_04,2026-03-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 adultscore=0 spamscore=0 impostorscore=0 suspectscore=0 lowpriorityscore=0 clxscore=1015 phishscore=0 priorityscore=1501 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090133 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: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773067748407154100 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- MAINTAINERS | 3 + docs/devel/hexagon-sys.rst | 112 +++++++++++++++++++++++++++++++++ docs/devel/index-internals.rst | 1 + docs/system/hexagon/cdsp.rst | 12 ++++ docs/system/target-hexagon.rst | 102 ++++++++++++++++++++++++++++++ docs/system/targets.rst | 1 + 6 files changed, 231 insertions(+) create mode 100644 docs/devel/hexagon-sys.rst create mode 100644 docs/system/hexagon/cdsp.rst create mode 100644 docs/system/target-hexagon.rst diff --git a/MAINTAINERS b/MAINTAINERS index 6698e5ff69c..21f409a0f2b 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -253,6 +253,9 @@ F: disas/hexagon.c F: configs/targets/hexagon-linux-user/default.mak F: docker/dockerfiles/debian-hexagon-cross.docker F: gdb-xml/hexagon*.xml +F: docs/system/target-hexagon.rst +F: docs/system/hexagon/ +F: docs/devel/hexagon-sys.rst T: git https://github.com/quic/qemu.git hex-next =20 Hexagon idef-parser diff --git a/docs/devel/hexagon-sys.rst b/docs/devel/hexagon-sys.rst new file mode 100644 index 00000000000..92ebc32dce8 --- /dev/null +++ b/docs/devel/hexagon-sys.rst @@ -0,0 +1,112 @@ +.. SPDX-License-Identifier: GPL-2.0-or-later + +.. _Hexagon-System-arch: + +Hexagon System Architecture +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D + +The hexagon architecture has some unique elements which are described here. + +Interrupts +---------- +When interrupts arrive at a Hexagon DSP core, they are priority-steered to +be handled by an eligible hardware thread with the lowest priority. + +Memory +------ +Each hardware thread has an ``SSR.ASID`` field that contains its Address +Space Identifier. This value is catenated with a 32-bit virtual address - +the MMU can then resolve this extended virtual address to a physical addre= ss. + +TLBs +---- +The format of a TLB entry is shown below. + +.. note:: + The Small Core DSPs have a different TLB format which is not yet + supported. + +.. admonition:: Diagram + + .. code:: text + + 6 5 4 3 + 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |v|g|x|A|A| | | + |a|l|P|1|0| ASID | Virtual Page | + |l|b| | | | | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + 3 2 1 0 + 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | | | | | | | + |x|w|r|u|Cacheab| Physical Page |S| + | | | | | | | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + +* ASID: the address-space identifier +* A1, A0: the behavior of these cache line attributes are not modeled by Q= EMU. +* xP: the extra-physical bit is the most significant physical address bit. +* S: the S bit and the LSBs of the physical page indicate the page size +* val: this is the 'valid' bit, when set it indicates that page matching + should consider this entry. + +.. list-table:: Page sizes + :widths: 25 25 50 + :header-rows: 1 + + * - S-bit + - Phys page LSBs + - Page size + * - 1 + - N/A + - 4kb + * - 0 + - 0b1 + - 16kb + * - 0 + - 0b10 + - 64kb + * - 0 + - 0b100 + - 256kb + * - 0 + - 0b1000 + - 1MB + * - 0 + - 0b10000 + - 4MB + * - 0 + - 0b100000 + - 16MB + +* glb: if the global bit is set, the ASID is not considered when matching + TLBs. +* Cacheab: the cacheability attributes of TLBs are not modeled, these bits + are ignored. +* RWX: read-, write-, execute-, enable bits. Indicates if user programs + are permitted to read/write/execute the given page. +* U: indicates if user programs can access this page. + +Scheduler +--------- +The Hexagon system architecture has a feature to assist the guest OS +task scheduler. The guest OS can enable this feature by setting +``SCHEDCFG.EN``. The ``BESTWAIT`` register is programmed by the guest OS +to indicate the priority of the highest priority task waiting to run on a +hardware thread. The reschedule interrupt is triggered when any hardware +thread's priority in ``STID.PRIO`` is worse than the ``BESTWAIT``. When +it is triggered, the ``BESTWAIT.PRIO`` value is reset to 0x1ff. + +HVX Coprocessor +--------------- +The Supervisor Status Register field ``SSR.XA`` binds a DSP hardware thread +to one of the eight possible HVX contexts. The guest OS is responsible for +managing this resource. + +.. seealso:: + + ``target/hexagon/README`` in the QEMU source tree for more info about = Hexagon. diff --git a/docs/devel/index-internals.rst b/docs/devel/index-internals.rst index 7a0678cbdd3..0471db80645 100644 --- a/docs/devel/index-internals.rst +++ b/docs/devel/index-internals.rst @@ -14,6 +14,7 @@ Details about QEMU's various subsystems including how to = add features to them. block-coroutine-wrapper clocks ebpf_rss + hexagon-sys migration/index multi-process reset diff --git a/docs/system/hexagon/cdsp.rst b/docs/system/hexagon/cdsp.rst new file mode 100644 index 00000000000..237529273cb --- /dev/null +++ b/docs/system/hexagon/cdsp.rst @@ -0,0 +1,12 @@ +.. SPDX-License-Identifier: GPL-2.0-or-later + +Compute DSP +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +A Hexagon CDSP is designed as a computation offload device for an SoC. The +``V66G_1024`` machine contains: + +* L2VIC interrupt controller +* QTimer timer device + +This machine will support any Hexagon CPU, but will default to ``v66``. diff --git a/docs/system/target-hexagon.rst b/docs/system/target-hexagon.rst new file mode 100644 index 00000000000..5f7084a6a08 --- /dev/null +++ b/docs/system/target-hexagon.rst @@ -0,0 +1,102 @@ +.. SPDX-License-Identifier: GPL-2.0-or-later + +.. _Hexagon-System-emulator: + +Hexagon System emulator +----------------------- + +Use the ``qemu-system-hexagon`` executable to simulate a 32-bit Hexagon +machine. + +Hexagon Machines +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +Hexagon DSPs are suited to various functions and generally appear in a +"DSP subsystem" of a larger system-on-chip (SoC). + +Hexagon DSPs are often included in a subsystem that looks like the diagram +below. Instructions are loaded into DDR before the DSP is brought out of +reset and the first instructions are fetched from DDR via the EVB/reset ve= ctor. + +In a real system, a TBU/SMMU would normally arbitrate AXI accesses but +we don't have a need to model that for QEMU. + +Hexagon DSP cores use simultaneous multithreading (SMT) with as many as 8 +hardware threads. + +.. admonition:: Diagram + + .. code:: text + + AHB (local) bus AXI (global) bus + =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=82 + =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=90 =E2=94=82 =E2=94=8C=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=90 = =E2=94=82 + =E2=94=82 L2VIC =E2=94=9C=E2=94=80=E2=94=80=E2=94=A4 =E2=94= =82 =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80=E2=94=BC=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=96=BA = =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=A4 + =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=96=B2=E2= =94=80=E2=94=80=E2=94=80=E2=94=98 =E2=94=82 =E2=94=82 Hexagon DSP = =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=82 =E2=94=82 =E2= =94=82 =E2=94=82 =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=90 + =E2=94=82 =E2=94=82 =E2=94=82 N threads =E2= =94=82 =E2=94=82 =E2=94=82 DDR =E2=94=82 + =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=A4 =E2=94=82 =E2=94= =82 =E2=94=82 =E2=94=82 + =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=B4=E2=94=80=E2= =94=80=E2=94=90 =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=A4 =E2=94=82 + =E2=94=82QTimer =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 = =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=82 + =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 + =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=98 =E2=94=82 =E2=94=82 =E2=94=8C=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=90 = =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=82 =E2=94=8C=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=90=E2= =94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 + =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=90 =E2=94=82 =E2=94=82 =E2=94=82 HVX xM =E2=94=82=E2= =94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 + =E2=94=82QDSP6SS=E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 = =E2=94=82 =E2=94=82 =E2=94=82=E2=94=98 =E2=94=82 =E2=94= =82 =E2=94=82 =E2=94=82 + =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=98 =E2=94=82 =E2=94=82 =E2=94=94=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=98 = =E2=94=82 =E2=94=82 =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=98 + =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=82 + =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=90 =E2=94=82 =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=98 =E2=94=82 + =E2=94=82 CSR =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 + =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=98 =E2=94=82 =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=90 =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=90 + =E2=94=82 =E2=94=82 TCM =E2=94=82 =E2=94=82 VTC= M =E2=94=82 + =E2=94=82 =E2=94=82 =E2=94=82 =E2= =94=82 + =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=98 =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=82 + =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =98 + +Components +---------- +Other than l2vic and HVX, the components below are not implemented in QEMU. + +* L2VIC: the L2 vectored interrupt controller. Supports 1024 input + interrupts, edge- or level-triggered. The core ISA has system registers + ``VID``, ``VID1`` which read through to the L2VIC device. +* QTimer: ARMSSE-based programmable timer device. Its interrupts are + wired to the L2VIC. System registers ``TIMER``, ``UTIMER`` read + through to the QTimer device. +* QDSP6SS: DSP subsystem features, accessible to the entire SoC, including + DSP NMI, watchdog, reset, etc. +* CSR: Configuration/Status Registers. +* TCM: DSP-exclusive tightly-coupled memory. This memory can be used for + DSPs when isolated from DDR and in some bootstrapping modes. +* VTCM: DSP-exclusive vector tightly-coupled memory. This memory is acces= sed + by some HVX instructions. +* HVX: the vector coprocessor supports 64 and 128-byte vector registers. + 64-byte mode is not implemented in QEMU. + + +Bootstrapping +------------- +Hexagon systems do not generally have access to a block device. So, for +QEMU the typical use case involves loading a binary or ELF file into memory +and executing from the indicated start address:: + + $ qemu-system-hexagon -kernel ./prog -append 'arg1 arg2' + +Semihosting +----------- +Hexagon supports a semihosting interface similar to other architectures'. +The ``trap0`` instruction can activate these semihosting calls so that the +guest software can access the host console and filesystem. Semihosting +is not yet implemented in QEMU hexagon. + + +Hexagon Features +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D +.. toctree:: + hexagon/cdsp + diff --git a/docs/system/targets.rst b/docs/system/targets.rst index 5b12858b216..5ebdd0f7fea 100644 --- a/docs/system/targets.rst +++ b/docs/system/targets.rst @@ -30,3 +30,4 @@ Contents: target-sparc64 target-i386 target-xtensa + target-hexagon --=20 2.34.1 From nobody Sat Apr 11 21:30:50 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=1773068055; cv=none; d=zohomail.com; s=zohoarc; b=Av2uaBe6h2juwRRsZsp/PO/GHdjleMtGK5J4ybhKpjOQnv13Nnz5dFpAjlfCQGLmBgTZIvusVj6iWqjTWUzxHLjS7SEiFD+08GMd7fy1Pynyug+SiKM2Nv/kZLcNQar5ajYjBJqUr2/0znE9M6ksUi2oTeAlZtrDEWc1ohjxSt0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773068055; 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=oyQeBADyW0qoyMUDS8naoSQ9Dp2Lde4NR4pnGUjIXG8=; b=NK6aMzCuZ+9cCpx33ocb42MhuGabXX3DUM5HPFC+qSxxUHywy+HRxKPwfooDNo520u73H8SJJfUiQkXoNj/T8eoVpdhoMcqAcMXk0tQXOY7eG7IsknsB/i9KNfaZ9NYgh6F85jmGKaZ2LKQ1E6xvDOmEq9R868fumQSa5OdOtB0= 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 1773068055163271.29605322884413; Mon, 9 Mar 2026 07:54:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vzbv1-0001Jv-Ic; Mon, 09 Mar 2026 10:49:15 -0400 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 1vzbuN-0000p6-VR for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:36 -0400 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 1vzbuK-0005DD-Qj for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:35 -0400 Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 629DHNlk1379892 for ; Mon, 9 Mar 2026 14:48:31 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4csxy80a0u-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 14:48:30 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-2be2f742c46so55206825eec.0 for ; Mon, 09 Mar 2026 07:48:30 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be4f82b78esm9322776eec.12.2026.03.09.07.48.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 07:48:28 -0700 (PDT) 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= oyQeBADyW0qoyMUDS8naoSQ9Dp2Lde4NR4pnGUjIXG8=; b=PqX+5r/cb0rndXpx psiBH6zlUvK0MMjbYcBv0mxfVcBGbubsAgc9iETaMVYhydinGug86znyPzFXL+yv VO8p00DU6VZDcXlUPfM/bKt5k8WGLL5aeuxZb7f6WdD/pS7LYmp+5zZAadLbIP2w wWh8BN4iXk4UrxI2kPD6s5agVY0cKbng31Tv6OoVAIw+M6ttvV7L0LrH4HDOoVM7 A/+RxYpe5Yztd+1uj6hIo9LDSPNV07xoRRTCFer1DzzYLpQI5EKRagCahihP3xCR VweVMpG5kNPQK8YQYktZr1wuEUm+7FLWyRE9pEOwaSNq8ybfpMyz6f3qY4qgRd1b cBVXCw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773067710; x=1773672510; 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=oyQeBADyW0qoyMUDS8naoSQ9Dp2Lde4NR4pnGUjIXG8=; b=I6L0FmFU2mIyUo4PfdlMp02dcrJDhiBfvhgX4gCxKuyZ3MmmrckxeNaLfmIBS24qMf rZ1J2nXdW+/bKkErP4ZRZ8mCU1vG633cM6dwDFDTWcFaJZ0ehsJ2Eid/D0pE5EspeQgJ M6dg/xczYQAlAEc68oADZU0DPDJRhXobgGqWXcuwXjPo7rRERRBuUz6tTvWs9Rn9VwIa N+pRAbgMCTtgD9rPZNgAEpsmQhQGK0kHXtUu4Fw+2Zk/0WK2rmpFltNTVybE8pYcxdGB NGe63lvZVDjicRlOXH4w6SXzwH6bKnRK4NTrVVJamZp94YynrxoScz+Y+keIpjsLAD0y /e2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773067710; x=1773672510; 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=oyQeBADyW0qoyMUDS8naoSQ9Dp2Lde4NR4pnGUjIXG8=; b=D+lf4a14dxRN8miguAMXCT8yMKgJD5s0nTjThDtFWgrvf01eyNAF93d3SvEVP2DSYA OcdCfCSqxcCbL0ys5q0Yq0fqiXXUyEIf+VyvMdHqvPrL6+4s4nPRsv69viYo4rQdQtOT TCJrxMzdymv/UEOWFHbwQSqyJeT+8Mf5pGH9X7FPtmfiOwrX171tkW5lYbYoX0M8+CjQ ueM+31IxmKcOIv5QMwu0UWFviXcw9diIOoH8uhazrhg0oz+RqsXQ5jXYwphUK+M1Oiuj ekV9itEuQztyf/g1JXNNYrccXvhnwrAzT71pOtd2qX8PavkKitmUZZhCufZzJfDFHI1O XyDA== X-Gm-Message-State: AOJu0YxszNlXplEZferPkuda8XVDtX2/on9prB590bqVbm4Uxy9xv5jS h43GgsRsu8z7HIa/9O1CDd0trD5dCp+3CD1NXBMY/ic406kUlbUNW3EXNFGCESBzhubLe39aXdI 7trLK1mIo4Q9hskua7m+3UZEIo++IzK4zUoLr4fmRT1PonyUWQYBp0fmX/RTs054kTA== X-Gm-Gg: ATEYQzxprBrteN7RcTVq8SOUraxLwmBqled2vMZ8jNYOJVIMfcKjkAynQgJ8YqQR2+y yvwf6cHGW9S5SeVEuEXkG+EWvhTl7UNqWUQ467bHE4Q29iFxNttlQP4/EWINZVH0MeieABXpb2e p/EClodePR3K1sr9nxzAZ/MBzZTCWheXd62jTYx821VZdoqozme15xE+pYCSgAD59D7NRid3M8Z 8zsWCgwYg8I/BL0VGIr9cfdNRK8iDquffuC4+4H59saZTs9JLzZ3m3CO2iEe8woP5h3hI9ATajM n4EfxbMXnyep7gXcHy2EOqqw9LhhOJxo9kguqA1x9iNDgyg9W0qsxw/4gpNsxDlsA/8XPDE3PHj JGKekAKP6Jk1SPZ+GqyT7061jT9roDOPypcWyAGignZLMGK9vkx6cD7wbE0tlxDSKT5sEHA== X-Received: by 2002:a05:7300:bc97:b0:2ba:956e:d26a with SMTP id 5a478bee46e88-2be4e06797fmr4648885eec.36.1773067709957; Mon, 09 Mar 2026 07:48:29 -0700 (PDT) X-Received: by 2002:a05:7300:bc97:b0:2ba:956e:d26a with SMTP id 5a478bee46e88-2be4e06797fmr4648858eec.36.1773067709281; Mon, 09 Mar 2026 07:48:29 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 02/35] docs/system: Add hexagon CPU emulation Date: Mon, 9 Mar 2026 07:47:49 -0700 Message-Id: <20260309144822.877695-3-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> References: <20260309144822.877695-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=SvmdKfO0 c=1 sm=1 tr=0 ts=69aeddbe cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=2pVdXvZyqgCw3DkElpQA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: duaClyn8XZfl1aQ5Hcl4yOZfI3_JXMO0 X-Proofpoint-ORIG-GUID: duaClyn8XZfl1aQ5Hcl4yOZfI3_JXMO0 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDEzMyBTYWx0ZWRfX9CQLmYlArWXo XjMOi3CWsnf7CFSA6SyLBEe4NRnw4PH3ZRKV8USwaebZCsTClWuqhStzwiNtr1qgw66OLDc0IlT Ia49uT7jBlWK9M1YlvzkjBpfwdFDALE3vWC0nC+n+BJWAi5wM8nXwEEYr1vscoujxSM1Sv8rT1Q ZN/gPGkrt7xtNHJWBzJ0I58RKPxClD7G9A/UGfMWFvESq3ylBFQqDHz7TZ347dmGf1tlQ0N52GD PT5mjtxHjV+NpFqnzNy1nTk5qxMP0rcUOmtKzl34gYMOtKQs2D2LtNfMNB/CZQGPlUj6b0YFryM FSVee8joi3kWSO/lsknqtRB5ef7DYdtTsjg878KvvNLi8254Bh2UVBXYd7uFBmSbAF00+Qh1B0g ib3LWt3qSxL3LqNQA2muet0DhrzrnyvU1bB7YxpI9hPekT3rLKf8PlNnr1s40L2NMg0e3gUEiFR Rqd/WTNchzoTlajrusg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_04,2026-03-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 impostorscore=0 spamscore=0 priorityscore=1501 clxscore=1015 lowpriorityscore=0 adultscore=0 bulkscore=0 phishscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090133 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: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773068055389158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- docs/system/hexagon/emulation.rst | 15 +++++++++++++++ docs/system/target-hexagon.rst | 1 + 2 files changed, 16 insertions(+) create mode 100644 docs/system/hexagon/emulation.rst diff --git a/docs/system/hexagon/emulation.rst b/docs/system/hexagon/emulat= ion.rst new file mode 100644 index 00000000000..36f54f058af --- /dev/null +++ b/docs/system/hexagon/emulation.rst @@ -0,0 +1,15 @@ +.. SPDX-License-Identifier: GPL-2.0-or-later + +.. _Hexagon Emulation: + +Hexagon CPU architecture support +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D + +QEMU's TCG emulation includes support for v65, v66, v67, v68, v69, v71, v7= 3. +It also has support for the following architecture extensions: + +- HVX (Hexagon Vector eXtensions) + +For information on the specifics of the HVX extension, please refer +to the `Qualcomm Hexagon V73 HVX Programmer's Reference Manual +`_. diff --git a/docs/system/target-hexagon.rst b/docs/system/target-hexagon.rst index 5f7084a6a08..416b8f7be76 100644 --- a/docs/system/target-hexagon.rst +++ b/docs/system/target-hexagon.rst @@ -98,5 +98,6 @@ is not yet implemented in QEMU hexagon. Hexagon Features =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D .. toctree:: + hexagon/emulation hexagon/cdsp =20 --=20 2.34.1 From nobody Sat Apr 11 21:30:50 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=1773067984; cv=none; d=zohomail.com; s=zohoarc; b=ChMrRLnaORyqRRvV8HLCjwG/C7uTTsvBYGtqsDBfHCiVPgweTwnO6aOYCkT8YyYrmMQHDU9zW52KzNaTo8SZJEg3QejxqfZEOhKSluA2Rs537Q4dGcDotPt2FX7U1ZZikD4XNBunGoP2kdSQKiPjNs/vkMG81+yxufs+4tAi1Dw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773067984; 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=XUc/9310lU5Nj4SSMxJD5uCW0KDRlaZRQ0efIQjhj24=; b=NiOTyR4xK5iVi6Sq6Z/A2OLYo8kHdhnyccPZI1RRL6qXC3X45XBCGmo9hgaC7KrYsqF0nN+wujD8sWSc+pkR85Sk4KSlU3hw92gBU0CpY9slw+ctXD8335dexzltTrAsX0DabjciFNWrwE18qs/LtkmgQi+CCHPX9IaAwSgBtCw= 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 1773067984637118.48947334688398; Mon, 9 Mar 2026 07:53:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vzbur-0000yG-Jb; Mon, 09 Mar 2026 10:49:05 -0400 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 1vzbuN-0000p7-Vp for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:36 -0400 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 1vzbuL-0005DH-6n for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:35 -0400 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 629Dr5U04027525 for ; Mon, 9 Mar 2026 14:48:31 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 4csyfy06gw-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 14:48:31 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2be21f89332so7079842eec.0 for ; Mon, 09 Mar 2026 07:48:31 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be4f82b78esm9322776eec.12.2026.03.09.07.48.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 07:48:29 -0700 (PDT) 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=XUc/9310lU5Nj4SSMxJD5uCW0KDRlaZRQ0efIQjhj24=; b=db 2K1e+OFOTig+al8oXSNstY1TAi7kAmrATgso9QxwcgUHLarYiXzUdI2lxdJa87s0 mJvSaqpXP+aaNm/l3PsqW83fAtGAhwnjw5yhxM8bElGJbj23PIb2CBqSnG/oCO1t XJl8kzlXZez/+90OqVd5kFqlL7fRRExGSzBKzA8yk12gezbU0WL926/M5HcHNcrD +U5x+Vx5+TMl512+1kZ5J+IDAEGrAd7GmYrxtLXVpkDYQNSJEbXFB1G635osauk7 a7rXZ8EqdLHTUA7sCZV1FPRfwFobsHBqwHfchkSh6CZqb8mktBrZRHYm/1HP9S54 /cV5HwUjKdqdoIjridZw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773067711; x=1773672511; 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=XUc/9310lU5Nj4SSMxJD5uCW0KDRlaZRQ0efIQjhj24=; b=UH+dByjMvjiEQxMTHPOgJsvB+xrj3gY2IFsFXCfXe15l6kDN+etz1zN/+G0gRPlTpT vopegz5tUzhnKN9GIThFYU+/PYm7jl8UIyPGfS4KNtFNGrZkdMZ2K+DaCEL9kTccDmIV d1ODARCf7Jt0S0qFmcUuSkELiV9HDSXyHByYz6TkGnUmbNY5KXeGGIeg3VOOP7Ul/ddV wU9wey6CDIY8Y7gcrZQs0yd6HZYOFcm7P/4Mz1MW83PPy0bnewrHK2yxzFGcVz3yBG04 5yXg9l5ec1kOH06a6tN6Y4KTCe6c+vD9AFwiZ8gosIwIzn1BB3xHzvrc4cliDNp1aQKa W6+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773067711; x=1773672511; 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=XUc/9310lU5Nj4SSMxJD5uCW0KDRlaZRQ0efIQjhj24=; b=sAf3EGJuEsPzbdQjgXdAfHUnddANjue0yEtrkvyjb2F5/F7iBfsKtWqiEH/RrbjqLM 6ihDFq+SwiYBcdTzaBhoKg4Xe33J9mMxwj3gHyC5XnZE76ktA1KU05tv98v6zI3oVAMZ zlVrUmTNu/pcDbniqw8vfDBGPkJyAOnkd4qCLAOeib72M23ixVTvCtM3YXM8eb4OnOX5 wejKQpGFBVv0eqe/fw2eaLeC5ONDr8Ffv7iHpxhq3hHo/6GL/WKTbx8VaaTUaVNoFPP1 iEB0pbU6Gl9Z7gj9UDs9hKl7FUUQumfE8/VS3R6n3FLX0WkAJqln2ZC0SqTsT8cexrI/ Nq6w== X-Gm-Message-State: AOJu0YxPbCQwbqa8HC/4ToYjwkWKygom8PcMExW1EZCS79QlP8UgAM9M L4x8eRqZu3XdLDn27OxjHl6Msd++R5knZYk4PQfeNZVu2AUKqRb5FU3zdM5d8rxP9SU6J28Y6MY fO62Y3NhZCBG+FDeDOt79wL8XrFnIihKzshBxCQON18gFzdr4q2YychlIy9EVUZgyaQ== X-Gm-Gg: ATEYQzy1gHalb+3O81MsTgCZnZHTwEiL9nEivGPrx4tFEVOP+9uJ1eOIXAQ4Sq98JZD n2IsVSEgA+4FCrEnHxOdF6h9p4BHPh2n/Tj0A32m2LWH5oLABCOxPQk3u6vPkC2n11kSQ4RAbHY eZJz610ZlOdBhJ8euUqykIZ0Ksu9vjoV86T7OnhLlVD8QbZr71shgBtnAdW/+7IGTnomqhO5c9/ OF7iT9on2LPcn1qs/DITp/pgxtv16W4iMfqAS4jCDvEfJN4w+KbbAMDuKkcy/v8HBCIf5Xj/Gyg uHphOYOe/d/v777Ejcwfgr2XpAILE5QDtFMqwrC/aMmTlEJT4geN/eoLEHehFwyIv5mkhBWDLka y/dKdOfEaAUtvZqb+xKXta8CTuSKBt7rZvcFYBrx+MGkcpjJP+mqD0lVeI+Sij3hXeStEFQ== X-Received: by 2002:a05:7301:6895:b0:2ba:6b3a:7696 with SMTP id 5a478bee46e88-2be4dfd0b09mr4280864eec.8.1773067710890; Mon, 09 Mar 2026 07:48:30 -0700 (PDT) X-Received: by 2002:a05:7301:6895:b0:2ba:6b3a:7696 with SMTP id 5a478bee46e88-2be4dfd0b09mr4280851eec.8.1773067710375; Mon, 09 Mar 2026 07:48:30 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 03/35] target/hexagon: Fix badva reference, delete CAUSE Date: Mon, 9 Mar 2026 07:47:50 -0700 Message-Id: <20260309144822.877695-4-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> References: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDEzMyBTYWx0ZWRfXzXewdSbU7rP0 TLZrt1OK+tRlbxd+VC9prxLk45gJJrevs4/4iXRJlwVV/HjdMpTyG+xDKxjcCB+ylQaDtzs7j8B HYa+woq2Y1DeWbE0gIuY6xgj8dkknsT4JGBCK4p4VBBfaHx/rRWevcbrc2ehkA52b9GnV/t/Rc/ h1+yWnv0Fo7ciABXBCczeBtuFUq/+SKC8pRb/adm8KNELvv/JdeJUXNzv/+bwr3yYMqmkbQw5nL o/dlNBzUQFdRtPXBZkh5qgyec/bIirUbtrzIsjyqMN1ucIbXKBpcJar8H4t8NxqR6edO1dvprTZ HWVaGUHlEmu7Nq+BnqMT3eIg7/YM1lPvBZg+qnI9tAAoBJfab9wHK3FGwFz+JpdThAaYoCiLe2B nW0Kd9XYxqoC9yeSLiHdcixrHl1k+mpZ2cxhj6McB8jeBhK3OoCZPSfD+cOcM0wdyOul25MmR6b 8KB48HYVYNsmsKnfL+Q== X-Authority-Analysis: v=2.4 cv=OcmVzxTY c=1 sm=1 tr=0 ts=69aeddbf cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=gBvMSl3gaBqW46z-JGgA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-GUID: 1d06DPNiLO6oFb_3d-Gt734OTkwkuF2F X-Proofpoint-ORIG-GUID: 1d06DPNiLO6oFb_3d-Gt734OTkwkuF2F X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_04,2026-03-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 phishscore=0 clxscore=1015 adultscore=0 bulkscore=0 suspectscore=0 priorityscore=1501 lowpriorityscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090133 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: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773067984959158500 From: Brian Cain The BADVA reg is referred to with the wrong identifier. The CAUSE reg field of SSR is not yet modeled, we will dump the SSR in a subsequent commit. Signed-off-by: Brian Cain Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Taylor Simpson --- target/hexagon/cpu.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 58a22ee41f2..e61ac10fbf3 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -117,6 +117,14 @@ static void print_reg(FILE *f, CPUHexagonState *env, i= nt regnum) hexagon_regnames[regnum], value); } =20 +#ifndef CONFIG_USER_ONLY +static void print_t_sreg(FILE *f, const CPUHexagonState *env, int regnum) +{ + qemu_fprintf(f, " %s =3D 0x" TARGET_FMT_lx "\n", + hexagon_sregnames[regnum], env->t_sreg[regnum]); +} +#endif + static void print_vreg(FILE *f, CPUHexagonState *env, int regnum, bool skip_if_zero) { @@ -216,8 +224,7 @@ static void hexagon_dump(CPUHexagonState *env, FILE *f,= int flags) qemu_fprintf(f, " cs0 =3D 0x00000000\n"); qemu_fprintf(f, " cs1 =3D 0x00000000\n"); #else - print_reg(f, env, HEX_REG_CAUSE); - print_reg(f, env, HEX_REG_BADVA); + print_t_sreg(f, env, HEX_SREG_BADVA); print_reg(f, env, HEX_REG_CS0); print_reg(f, env, HEX_REG_CS1); #endif --=20 2.34.1 From nobody Sat Apr 11 21:30:50 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=1773068222; cv=none; d=zohomail.com; s=zohoarc; b=EQOUo3F2zj6X+BiiJkm1lpChvUsj3APl6yKMfGJYUCSfgNyvLhFxgRfLQZ60DoMd/zT5z7ojtFUoi1ykzj34CLZ5+8NwDXUAOAYHMmsbi2hIPptRvF4Hn9yqGE+VqJkfBB6oWPxUiiIdNIc04mV+Fd1eZb/L+3DyF1/d95XbQ/k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773068222; 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=wSssiVBzS2+X4CJlLfz4Zk+nOQJzPosKBp+OnhCFU84=; b=eARURG8gQKDbHqMh1zWY4gWAuVQd+vFaktv3/vbSNsiQC6JsjjpJvcJUgU9fGiuKDr0q8SBGKmAbSQw4d0yRl7WTrWD5whPDzpj2kq5uHXGc89Cx/slougWJPKmJWZLU+qMMPEt3hDuwx7BHvMsv7x6NkrogJ7keaZQvRwR+U60= 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 177306822252848.97761816497757; Mon, 9 Mar 2026 07:57:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vzbun-0000vD-Lh; Mon, 09 Mar 2026 10:49:01 -0400 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 1vzbuQ-0000pH-BA for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:39 -0400 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 1vzbuM-0005DM-OM for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:36 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6299d4Ao2332397 for ; Mon, 9 Mar 2026 14:48:33 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4crd6fdr5j-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 14:48:33 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-2bdc1b30ac8so47868963eec.1 for ; Mon, 09 Mar 2026 07:48:33 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be4f82b78esm9322776eec.12.2026.03.09.07.48.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 07:48:30 -0700 (PDT) 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= wSssiVBzS2+X4CJlLfz4Zk+nOQJzPosKBp+OnhCFU84=; b=gCVPBCmm1W9gSImP XlpPCViSMEp4jtVVJSbbrgv7iIJmI7B08Z+kZJl/F6e6WvmLxSVX2pjKEqDNe6S9 IRiShfQSMSpqJD1MMFKIqb5r2Nt0/CtfOdPKQjlOQoR0o1s1UOPjiBLQWGKM+nFJ JhFpGB0mKY2CcMEG39gNwu0BrHHBC1cz6mmukCa6YVC4FWWm6ZUvlIGhdk/Fgn2N oIiCZG8Dw9sVmPcCOP5JCLK0zQbbTg0XVXAg8AUt0wiGUy+GzQAv8/JCia3UzlTN YtexSzLqZ8LOUCVPa8CcMY00FyerGHtXvZsresnPVAWc3wUlNVpKEXqz2OlER4nn A20BYA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773067713; x=1773672513; 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=wSssiVBzS2+X4CJlLfz4Zk+nOQJzPosKBp+OnhCFU84=; b=d0yKq+SgEbXRJ6YglD3DQa+m2cqtyCPBpG3ilE6Wr7kWt9fq3i2kIY2CAxzvAq26lI bGuze+ZxC2KvNordr9sJEGy7LAfo3x11kOgD7zV144zFW8ftdCqw5XpE56trMR+H3pmR EC9kY06mUUObIsGuFMzluHp8S+2rKeU/tNZXLRCxfLaCdqT1VOobYFo6KXSopjK2Rm41 c4bHXIbukjffDUchgy9U2n62X92gt6WeKQ3ig5TrI4PDEWsCRsOzH1z+KQtHHbrOUqLT QTsb24QL/Su0hI30E9e/T3/8MZhYxatZ6SaflAODKCarbumFdfGAESRiY1hoSPhaY8s8 vH0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773067713; x=1773672513; 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=wSssiVBzS2+X4CJlLfz4Zk+nOQJzPosKBp+OnhCFU84=; b=izhZz6e4pDKdYUkPR5EkvvulnaOS5gc6JGQCiJECDJge3XJNpLhkASAhrXPiITJzlR TcPqxNeA7/T8TCs53GpeXhs94NgfuRE7EVH2aTewswWu1VDfongOyc34aA9d4rw/2FP1 LS9uaRsiBYLfuzZdsy/42YQ9v8Dof17oygWmh/6q//IzLMUANj7QgP8ioj+SRKDewVdk gRkG/tVFwdgUDvuiArBCL/2+MRLIe/baXRkMebC0931T+guGrLrSMof4MV+u46cX5Zp2 rdGn30KMhGv5u6tvMMrS4TCoeWJ8fUcr6bIpSahlhToslXq0XlBTNRAGMOnw7Xw7ipD/ 46Mw== X-Gm-Message-State: AOJu0YzePqRsp/UlsTaqutFsiAC9SdfdSdOcq19o+iev02Y/KSVh3avT TuqaBD7oeUuya6MTsel7gIp0o+r7lEMQxZfhemcySMvJEIxxSoCmowApJPM/x9fJHdM5H+8py9H UVabIf1DD2YVoQoOr289KQ/iOnZjpe3DBYEveStHorYqS61UzqiDJEieF0Mkk5t8KmA== X-Gm-Gg: ATEYQzwqsi60n6S017sV33KNxsvyGwK4D9xBXNTWiceqLtZ/6Mkd8CDTtZ2/+tOFlkl +SsvUtFEHDdIWSxmOgWQ5NHt/CtwXxnBZXkMSRDhUM9rhVZdy04Kb4zETk/m+h9TKNO1ckodb15 PvnvmvMYcMD+fS0r2ZQIi5u/D1K09tfm7ZYGGM4TLJvsp1oSNtzXt+Yh5qF+JiRdeOFlbGVW1RZ qwsyerwKhx+l5h9T4kd+l9u/WQ8l8nFQna5upmLjtWD5CtAnAaVeZ3RNGkPL6GB/zBfbHI/+Mto UllQIekIITeGORcJjxDmd3nwPAWRR3A2h1FdKnzfMf2Va0Y5CiBHTPWhBFZhY40ZEcXHBxfFwmq +fBcWJ0nv9WbW0RY4hrhTbsw+n/tumP2XPEdE0q9F/qFDW9ajPAeITp/4oMxWYZUigYSqSw== X-Received: by 2002:a05:693c:3104:b0:2b8:26b8:3444 with SMTP id 5a478bee46e88-2be4e065b0fmr4802666eec.19.1773067712583; Mon, 09 Mar 2026 07:48:32 -0700 (PDT) X-Received: by 2002:a05:693c:3104:b0:2b8:26b8:3444 with SMTP id 5a478bee46e88-2be4e065b0fmr4802641eec.19.1773067711949; Mon, 09 Mar 2026 07:48:31 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 04/35] target/hexagon: Add missing A_CALL attr, hintjumpr to multi_cof Date: Mon, 9 Mar 2026 07:47:51 -0700 Message-Id: <20260309144822.877695-5-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> References: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: sdd_iqS4X8cXyQLin2Gt9ONvJai9fx7_ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDEzMyBTYWx0ZWRfXw0UdccSX34ol MzyRkGhVKuTz3jeazlBejYNQ6QGnZ7EJGc/OeNTRZrXinbSEWBhiVkZu4wn1lOAB/LSUs9SVHsv ouNNceuy+HsK7UrHtjxQNvq8C8Zx7CqvsZOMH2m/la5vSYEgeMzOrLCKfauufiMAaFFPCutcyhJ FS3MzMnsDVoR/Jc9t4wEqOtIB+Iq9uoOmP+KLfuoiDCAp+JfeaSIHQ4o3zjKEYIWH9TsLXJPPdz A5rRYVqQrE7ZsrtonaY580wD8Oy+th2HxfTnLXvUOgVoNhxEowSZQ66iA76e0z+BGuf+419bOHx pdMFopyyBrJ0tMQQYEhwpMhjfsYG/W6aG4TfMwkHLBBo+5qcMiR0jN4Z5ld2gb97D+pzB+5ckzL pYJCz+/Elw4MGi60eGBZg8LRUbiVd4L3U9GLUmDFaWyJYRCu3AJIe7GxX5XH7WerEniktote59b MZWVrg9tidkh8vRhaOw== X-Proofpoint-GUID: sdd_iqS4X8cXyQLin2Gt9ONvJai9fx7_ X-Authority-Analysis: v=2.4 cv=RP++3oi+ c=1 sm=1 tr=0 ts=69aeddc1 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=QFI6e2jESK29WoJ26_YA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_04,2026-03-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 priorityscore=1501 malwarescore=0 spamscore=0 phishscore=0 clxscore=1015 bulkscore=0 lowpriorityscore=0 impostorscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090133 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: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773068224333158500 From: Brian Cain Signed-off-by: Brian Cain Reviewed-by: Taylor Simpson --- target/hexagon/hex_common.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py index c0e9f26aebe..002afcdb9e3 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -247,7 +247,9 @@ def need_next_PC(tag): =20 =20 def need_pkt_has_multi_cof(tag): - return "A_COF" in attribdict[tag] + if attribdict[tag] & {"A_JUMP", "A_CALL"}: + return tag !=3D "J4_hintjumpr" + return False =20 =20 def need_pkt_need_commit(tag): --=20 2.34.1 From nobody Sat Apr 11 21:30:50 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=1773067840; cv=none; d=zohomail.com; s=zohoarc; b=VlwKws0ELYTS/UBld43y5ombdP+cOMCswixRielwvNvB23vOWsidxZqx3YZ5mzJWg9XL8EUohb5Gn4pIp/ExSDW+VKmQvIFkODDV04GtKY1iRnjJKXf6Tfo+4R/LMZ0goe22N82oOKnPki6vcE9h5BSxbYbhrZqVhKqrNssgYsA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773067840; 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=4GZnug9ptvzXBeCOm6nt56nQExnanu1uhh//WEVAiVY=; b=DDcbO/9G2yXNPZBz1o7f9j5IhXjrUg5SRoh3FmneCPCLa8DH3e2B040a1puh/LyJsTOUdRmKVDn/WMTwIlD3xYvkGLAqOGa/zGXQ2Tbo0A5Ih57wSpTE+1JxoTQX5LOCFuk4j1l84jECJKJaY+1ZOHji2aNNrY/uQkVSmVqkEa0= 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 1773067840688537.0409864044807; Mon, 9 Mar 2026 07:50:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vzbuq-0000yE-55; Mon, 09 Mar 2026 10:49:04 -0400 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 1vzbuQ-0000pG-BQ for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:39 -0400 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 1vzbuO-0005Dg-Ah for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:37 -0400 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 629EAR791249016 for ; Mon, 9 Mar 2026 14:48:35 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4csyr403s4-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 14:48:34 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-2be21146933so10001816eec.1 for ; Mon, 09 Mar 2026 07:48:34 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be4f82b78esm9322776eec.12.2026.03.09.07.48.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 07:48:32 -0700 (PDT) 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= 4GZnug9ptvzXBeCOm6nt56nQExnanu1uhh//WEVAiVY=; b=YDNLrMwIwMxDYsA8 YIZ5YhTVxsIlOlU6/jj+QG/2zXFuG2XgnggcZvCtPkxKkgfgg9dZ64cPOjvLmhcN 0tpnxb56BIPpnTtOmK2423LJ1+Qm7UilVroF+Idw3RZvyO89tCu9kZjE91KfcRrp WVDQflbsY9YUuZ590TgMy0tuPZfLnCjdiOlGe2ux3ToQbqf9jX5PfidTc6TxBSDB d67Sqb1GX5SamQ23OPtuylEZM1HIpLkEXisehYIKINdaR4Bsos53iZ9hl/4Y22D9 +JJFOg6XJzgjEur5uFl+d/noHGk73dlY8ZotPLBX9kTykiiA6nggEfkY6maj4Y08 /Oeu1Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773067714; x=1773672514; 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=4GZnug9ptvzXBeCOm6nt56nQExnanu1uhh//WEVAiVY=; b=Y7fkmvHnnKqcQOQ3nmh3LWJibaiP69rUOeRNvSpoGYBCb/OAdfwrJ3tgI6DHxU7zkf 6xX8ZaQu3Zoj02RadaR+06DB828x8+zZ4zDUgVth42rKDw3iccQOj0MI/cB0goPE4CtZ BbENHaZTb0ARIccvCosbi6fU8p1lwpyANOrKY71Ao6NDchxrnhosgCihuhwcDvcR5qsg BYtWIR46jMnn9293bFqLud4JBnriAw5LTFv+EIlRZecRqm2O2BovhyLIT7KL5iTVSaN4 r2Zzimuwf17a7yiXPuUrGK1hunMi66a4CpP5fWS824YeS2RmMV/rfTTncKRnr5hHNlSJ 3b0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773067714; x=1773672514; 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=4GZnug9ptvzXBeCOm6nt56nQExnanu1uhh//WEVAiVY=; b=IOVzpxq9ElSLk0Q46Khipn9Ba5THGSsllm8RlYNBHPUpOwtwThm49uJkwinLdwh7dv lmloPtbhK/gl1voMlI6y4AmOXW/jdvNJt/9DP2V3drM3LyzmEUXKxcxj1pyoAozMqIqi diLgZP3d1u6pVbBikQyT7KJ4I7+LuiHrgkHOqzQDyAmQv4H7yDQv4c0bynK2Alw1TZSh vOytsZTTdfyz0lZAQjcjEoojkYRYVrNaKtT9fdSkCJgeirDO2/7uSGUlXlGDsyt+NeKs HmGMKba1aAYvHysQvGqXJG4Qd2+E/+5Rvj+7GDdVVckcVOgEmRwxsD9AbQsdDtNO4dld vbwg== X-Gm-Message-State: AOJu0YxU5EsRx1rP1aVqyx9TzPkfUrk7roP1HIsVMKuvUSW6t6aBCPvb nrmfQFc9m33NV/3hHd1vw1fVpcovBJUBFpMTQID8sS4EXxHdCqz5v2vv/QpAIU+N6V8pW7FANct SILpOuImWCLi0XIaici+kHDT6NfCgnT1S92HK0MyDtRcbLniJ6OSLfWEX05Ek8eqoww== X-Gm-Gg: ATEYQzwdtQMf1KMkqnUumZV9o77eExyeWAgw3AOWlYcntdDu1TZEMKEoazR1gZ9Oxeh e+hDq5hJ6agpAAdIzEiRiqGBSIeKniNUWmY6bFvgycQESe2rsUhlqY2s7kMBSzRBfr2HoodboZo VDTGXeKvHXpmDpf6/he+lHN/LrGNG8FVwxdPbYPD5ogO77Z8vvuMexuQMIVlnwRQBDG/dXJPSsC xLGMA4Dgi0Jk8ZJ8HrwdrBoV9l12APDWkwC8qfnGVvHtuBNZGy+C5r/FMj+J+nT3cnWx8RFJ52W pSCiqgbRaCNY0npDW0oDI4EIGiLOd/XgcAYkxBXeofa+AT0e0fOtlrMpWiQOHETikItxHpJIjl3 3eKVBId5v0M0hErIPEn5WNm0r6aUxIdapTpCD7Z/f8KrKhKDlY4x4YKdKq/LCfjwTB1BKsw== X-Received: by 2002:a05:7300:a985:b0:2be:10a6:647e with SMTP id 5a478bee46e88-2be4e055786mr4195889eec.19.1773067713759; Mon, 09 Mar 2026 07:48:33 -0700 (PDT) X-Received: by 2002:a05:7300:a985:b0:2be:10a6:647e with SMTP id 5a478bee46e88-2be4e055786mr4195859eec.19.1773067713051; Mon, 09 Mar 2026 07:48:33 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 05/35] target/hexagon: Handle system/guest registers in gen_analyze_funcs.py and hex_common.py Date: Mon, 9 Mar 2026 07:47:52 -0700 Message-Id: <20260309144822.877695-6-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> References: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDEzMyBTYWx0ZWRfX7Z4eolJvNbna Bn4wHcfMSHDn8rKAbuQuBbiTSBaMq5bNQqAqrFjMpZMpRRVZ9iKqV3D63Jb4uZFdRbsI7K6okhe c+2dBqgfNsAmsoE1oWBRRmGgTU7XGlKyNL2Kmj79sikqF9c2uxJtVwtfE76cbcW1TkXZeYi/SND BE0NzjNQvYw4xrjFARhpaA1wpycmY7NzRGaR/xu55s+GglpXiPpwq+EuIj3Do0B535pzDJ2EAY5 6HpkmTSi2ZV271DKThcsV1xvszCkqeigjFCj0oIe9A1wumJO8AqeqRkuR5ZceewMFnn78XzqAOE rOgqoE4G7QTwlQtWUvqyaNqyNmt3XfcoYVLUZdvD5m0glcnMiYYe8DRenfoeDc0JbI7S9khanYI TyuXT8Xwc3YgwA2OBVQUiuPfgV/ZPNyOG21OF/Cs+sSYW6m8K8Oszwx98DGMv5D2itNaYBKCdCj bgvi3qgDH9oLXW9eECA== X-Proofpoint-GUID: b3nZtruKo_wjd9HbCrgLO7xsn6cFy8aA X-Proofpoint-ORIG-GUID: b3nZtruKo_wjd9HbCrgLO7xsn6cFy8aA X-Authority-Analysis: v=2.4 cv=KNRXzVFo c=1 sm=1 tr=0 ts=69aeddc2 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=-IRm0M9p1sl727KxlF4A:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_04,2026-03-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 impostorscore=0 spamscore=0 bulkscore=0 priorityscore=1501 suspectscore=0 clxscore=1015 lowpriorityscore=0 malwarescore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090133 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: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773067841842154100 From: Brian Cain Add register classes for guest (G) and system (S) registers to hex_common.py, and update gen_analyze_funcs.py to handle them. Guest and system registers can only appear once per packet (one transfer instruction each), so there is no read-after-write hazard to detect during the analyze phase. Source classes (GuestSource, GuestPairSource, SystemSource, SystemPairSource) provide a no-op analyze_read() since these register reads do not need tracking. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/gen_analyze_funcs.py | 14 ++- target/hexagon/hex_common.py | 152 ++++++++++++++++++++++++++++ 2 files changed, 164 insertions(+), 2 deletions(-) diff --git a/target/hexagon/gen_analyze_funcs.py b/target/hexagon/gen_analy= ze_funcs.py index fdefd5b4b36..44bb22ed927 100755 --- a/target/hexagon/gen_analyze_funcs.py +++ b/target/hexagon/gen_analyze_funcs.py @@ -22,7 +22,6 @@ import string import hex_common =20 - ## ## Generate the code to analyze the instruction ## For A2_add: Rd32=3Dadd(Rs32,Rt32), { RdV=3DRsV+RtV;} @@ -42,6 +41,13 @@ def gen_analyze_func(f, tag, regs, imms): f.write(f"static void analyze_{tag}(DisasContext *ctx)\n") f.write("{\n") =20 + if hex_common.tag_ignore(tag): + f.write("}\n\n") + return + + if hex_common.is_sysemu_tag(tag): + f.write("#ifndef CONFIG_USER_ONLY\n") + f.write(" Insn *insn G_GNUC_UNUSED =3D ctx->insn;\n") if (hex_common.is_hvx_insn(tag)): if hex_common.has_hvx_helper(tag): @@ -58,7 +64,8 @@ def gen_analyze_func(f, tag, regs, imms): for regno, register in enumerate(regs): reg_type, reg_id =3D register reg =3D hex_common.get_register(tag, reg_type, reg_id) - reg.decl_reg_num(f, regno) + if reg.is_read() or reg.is_written(): + reg.decl_reg_num(f, regno) =20 ## Analyze the register reads for regno, register in enumerate(regs): @@ -78,6 +85,9 @@ def gen_analyze_func(f, tag, regs, imms): =20 f.write(" mark_implicit_writes(ctx);\n") =20 + if hex_common.is_sysemu_tag(tag): + f.write("#endif /* !CONFIG_USER_ONLY */\n") + f.write("}\n\n") =20 =20 diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py index 002afcdb9e3..1e2c2e46506 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -33,6 +33,41 @@ overrides =3D {} # tags with helper overrides idef_parser_enabled =3D {} # tags enabled for idef-parser =20 + +def is_sysemu_tag(tag): + return bool(attribdict[tag] & {"A_PRIV", "A_GUEST"}) + + +def tag_ignore(tag): + tag_skips =3D ( + "Y6_diag", + "Y6_diag0", + "Y6_diag1", + ) + attr_skips =3D { + "A_FAKEINSN", + "A_MAPPING", + "A_CONDMAPPING", + } + return tag in tag_skips or attribdict[tag] & attr_skips + + +def get_sys_tags(): + return sorted( + tag for tag in frozenset(tags) if is_sysemu_tag(tag) + ) + + +def get_user_tags(): + return sorted( + tag for tag in frozenset(tags) if not is_sysemu_tag(tag) + ) + + +def get_all_tags(): + return get_user_tags() + get_sys_tags() + + # We should do this as a hash for performance, # but to keep order let's keep it as a list. def uniquify(seq): @@ -369,12 +404,16 @@ def helper_proto_type(self): return "s32" def helper_arg_type(self): return "int32_t" + def is_pair(self): + return False =20 class Pair(Scalar): def helper_proto_type(self): return "s64" def helper_arg_type(self): return "int64_t" + def is_pair(self): + return True =20 class Hvx: def is_scalar_reg(self): @@ -1010,6 +1049,109 @@ def analyze_write(self, f, tag, regno): ctx_log_qreg_write(ctx, {self.reg_num}, insn_has_hvx_helper); """)) =20 +class GuestRegister(Register): + pass + +class GuestDest(GuestRegister, Single, Dest): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno) + f.write(code_fmt(f"""\ + TCGv {self.reg_tcg()} =3D tcg_temp_new(); + """)) + def gen_write(self, f, tag): + f.write(code_fmt(f"""\ + gen_log_greg_write(ctx, {self.reg_num}, {self.reg_tcg()}); + """)) + def analyze_write(self, f, tag, regno): + f.write(code_fmt(f"""\ + ctx_log_greg_write(ctx, {self.reg_num}); + """)) + +class GuestSource(GuestRegister, Single, OldSource): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno) + f.write(code_fmt(f"""\ + TCGv {self.reg_tcg()} =3D tcg_temp_new(); + gen_read_greg({self.reg_tcg()}, {self.reg_num}); + """)) + def analyze_read(self, f, regno): + pass + +class GuestPairDest(GuestRegister, Pair, Dest): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno) + f.write(code_fmt(f"""\ + TCGv_i64 {self.reg_tcg()} =3D tcg_temp_new_i64(); + """)) + def gen_write(self, f, tag): + f.write(code_fmt(f"""\ + gen_log_greg_write_pair(ctx, {self.reg_num}, {self.reg_tcg()}); + """)) + def analyze_write(self, f, tag, regno): + f.write(code_fmt(f"""\ + ctx_log_greg_write_pair(ctx, {self.reg_num}); + """)) + +class GuestPairSource(GuestRegister, Pair, OldSource): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno) + f.write(code_fmt(f"""\ + TCGv_i64 {self.reg_tcg()} =3D tcg_temp_new_i64(); + gen_read_greg_pair({self.reg_tcg()}, {self.reg_num}); + """)) + def analyze_read(self, f, regno): + pass + +class SystemDest(Register, Single, Dest): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno) + f.write(code_fmt(f"""\ + TCGv {self.reg_tcg()} =3D tcg_temp_new(); + """)) + def gen_write(self, f, tag): + f.write(code_fmt(f"""\ + gen_log_sreg_write(ctx, {self.reg_num}, {self.reg_tcg()}); + """)) + def analyze_write(self, f, tag, regno): + f.write(code_fmt(f"""\ + ctx_log_sreg_write(ctx, {self.reg_num}); + """)) + +class SystemSource(Register, Single, OldSource): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno) + f.write(code_fmt(f"""\ + TCGv {self.reg_tcg()} =3D tcg_temp_new(); + gen_read_sreg({self.reg_tcg()}, {self.reg_num}); + """)) + def analyze_read(self, f, regno): + pass + +class SystemPairDest(Register, Pair, Dest): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno) + f.write(code_fmt(f"""\ + TCGv_i64 {self.reg_tcg()} =3D tcg_temp_new_i64(); + """)) + def gen_write(self, f, tag): + f.write(code_fmt(f"""\ + gen_log_sreg_write_pair(ctx, {self.reg_num}, {self.reg_tcg()}); + """)) + def analyze_write(self, f, tag, regno): + f.write(code_fmt(f"""\ + ctx_log_sreg_write_pair(ctx, {self.reg_num}); + """)) + +class SystemPairSource(Register, Pair, OldSource): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno) + f.write(code_fmt(f"""\ + TCGv_i64 {self.reg_tcg()} =3D tcg_temp_new_i64(); + gen_read_sreg_pair({self.reg_tcg()}, {self.reg_num}); + """)) + def analyze_read(self, f, regno): + pass + def init_registers(): regs =3D { GprDest("R", "d"), @@ -1056,6 +1198,16 @@ def init_registers(): QRegSource("Q", "u"), QRegSource("Q", "v"), QRegReadWrite("Q", "x"), + + # system regs + GuestDest("G", "d"), + GuestSource("G", "s"), + GuestPairDest("G", "dd"), + GuestPairSource("G", "ss"), + SystemDest("S", "d"), + SystemSource("S", "s"), + SystemPairDest("S", "dd"), + SystemPairSource("S", "ss"), } for reg in regs: registers[f"{reg.regtype}{reg.regid}"] =3D reg --=20 2.34.1 From nobody Sat Apr 11 21:30:50 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=1773067811; cv=none; d=zohomail.com; s=zohoarc; b=O8Q0UfXxiyfGaDRyq9WWnnTEUVsFbneNsxVPjWZvxXECiYXCyYATdzKMWAAbsupLTy+bp+Pb9Aa/PHooLB3u9vSn/ADALfWYZohm0Uw55mSxIpFUWYB5/L1hZ+i13iU8ZgH6QMcEuxiHK/Pzyg6iQdBIQAFKg8zz+6YZKZ7FwyE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773067811; 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=XLzYwfmXprCszJeukw3r316VheQil5NoQyrXsV7xvIQ=; b=fH4eU5LcEEeWgNPxAHt3MBxyyODTCQ3C3Ykn5R3QSzidKWFXAu6uYYai+WkmuID8EcBXkOO5OQlAqEdFOYPzDA6Wc+WYNaxzmbXW1Y4gDVyQYZ2hITZsCj29f9BckGiFTQWLcCg/0Q4HA+qBUwghGpM4qdmaKvOs6dh46oqljQE= 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 1773067811982149.61933033378114; Mon, 9 Mar 2026 07:50:11 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vzbur-0000yM-Kc; Mon, 09 Mar 2026 10:49:05 -0400 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 1vzbuS-0000q2-8Y for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:41 -0400 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 1vzbuQ-0005Dv-2w for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:39 -0400 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 629ElN2l3773575 for ; Mon, 9 Mar 2026 14:48:36 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 4cstsa98dp-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 14:48:35 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2be27d4e3e5so79009197eec.1 for ; Mon, 09 Mar 2026 07:48:35 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be4f82b78esm9322776eec.12.2026.03.09.07.48.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 07:48:33 -0700 (PDT) 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= XLzYwfmXprCszJeukw3r316VheQil5NoQyrXsV7xvIQ=; b=nGZS8ys8/Gfjiqkt PTJhsZq3y1CRhgE1oYai2P2pA5XA1zFp9UeeWpVnhTQHFzQeLjvzQTQpJe2HTbym 40UGl0zNuaj2AkDtHpxDJEKYJ/1NN8f9cFD+vy0rDZ+7etigYDZ83s8X2B9VxYrC NizMKwoAuQtU14IDov/q4E/oD57Mqf144haMdDthcmobtQAoZl4HLIrdse/oJHTT fqIDGdlaHf75N9T7Qf+MHPkWDnguTqYJJ6iR3KDb9iPN/myYmw6mKPFHhNvR2zg5 ZPwwrFqSXVdM7jjwwI1sp3PaUZB7UuSP9JEm6VJ/XJSnyUrDiwIi3UVYrH5t9wet 7Q0QZw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773067715; x=1773672515; 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=XLzYwfmXprCszJeukw3r316VheQil5NoQyrXsV7xvIQ=; b=TfRhJ8WnIwumgHgEdthCMOAKr3StbfH37w7kAK/qWOiXZJc7Qg53M7cGvjuAwigI2k PL4qKsjimZgpa4GxytDgZkb2NMm2+JWifuX3Qde7kDDE6z+serN5Gce9n7q1lCsIig+B hG8owHsKcrah6xefDUQFFTOfKi6giwk0FRWndKrQ6Mbe4WTB9EHecKE/HrFomHAI70Vm fkcASjYhgBgxPkJYu2/1+6YuHm0XGGzF1u5+uU9JsIRhkzAOOvFe3A3H4EUJc3xovMWI 69vpmkb3k47T1YbPUZsNCu6Z9CunE/gyvHDdYAxiGx/Eq7e3vvCkYXhVFYzKBytdv0cx vJHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773067715; x=1773672515; 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=XLzYwfmXprCszJeukw3r316VheQil5NoQyrXsV7xvIQ=; b=frrSmEY7QrLUugS7/ynpqHEzjj9C0CTaugQiWlDbZS75Jf5vrQIxYGKdjkxknA2Fa8 b4jksJmqTiM6W2SIhCB8FeemHeIbzxyMaNO54SlU5/L2V5cqP14OF5cIDQrRj/MESB2/ QQLWa5CD9Bj2/xrXKW1RgYF5JiCL4mp4uFABd4xb65pow63lE/J5eE8sEN82SJ8Tl3gD FVvtagYbpw6uJYD3uWIYSWeYQ62HDJNBmEUqjeGRqwcXGNZqQdL1J/kw/8NyHqHTDVMW VC7+6OTkw8iGMkUZyqiVgXZzmAi88UAahybLRqch2xahkRn3wBp8e85KoZeYst7ZHYWF NTBg== X-Gm-Message-State: AOJu0YxhM6uZ6ak6skVkrv52E5dU5Becq0SDa+Da8ZO69ZVyZTVPah9h 0k721yS5NAErJXZfQXC130fk1CB91o7paaeR8DeOgD+osRuQuBRuGUXy91AFNSWXirg5Zo2uEki /9PWzEGahbFzuIa4q6p7KoUREEpPyO3fm8lJNTO9jefTy2UAoqu8eq2/PsEl2ET26Yg== X-Gm-Gg: ATEYQzz0MMWfPExIIT2RETcXfsTivEBMfiVI3J5DGMbXw/0/OYSpxlKh1xAnlwDEoeJ cVOIeVincZovRWPpBF6AO0uBkM/v7DbSq0RJhljy2aFhBwmIAjL8py9UkXnLtsVO+09uElzvdBn uIDbTFsl+2YrNoawU/dss+JpFhACxu4W9P0mEAidJwOe//sfiIZf1776G6cI5fSyUIFJTLXMyJC zkKwNCkMsii0Cu11Cvg/LnRjtdix8FBS+vxgq32JDjDPRmG7GDBH3NLPuK6BxobMD90q8wReCjW d9j//74yoIZ7hK9S3JvkEEuJmP6m8IQ1wcv++f4IIgDm6UdtD3j4newxuy0yhpHyiQMefe9ERi0 35XLzn47vYINNHTFTkjztUDih06RCHwzQWoA+H1RyINOiL0iz3jrB/boUiDv88NxYyrFMDA== X-Received: by 2002:a05:7301:4591:b0:2b6:ffb9:9633 with SMTP id 5a478bee46e88-2be4de9a868mr4665611eec.15.1773067714617; Mon, 09 Mar 2026 07:48:34 -0700 (PDT) X-Received: by 2002:a05:7301:4591:b0:2b6:ffb9:9633 with SMTP id 5a478bee46e88-2be4de9a868mr4665588eec.15.1773067714046; Mon, 09 Mar 2026 07:48:34 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng Subject: [PATCH v4 06/35] target/hexagon: Suppress unused-variable warnings for sysemu source regs Date: Mon, 9 Mar 2026 07:47:53 -0700 Message-Id: <20260309144822.877695-7-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> References: <20260309144822.877695-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: kSaYRaVxsL3LOIN05dfJfawmGRcrqgPE X-Authority-Analysis: v=2.4 cv=I+Vohdgg c=1 sm=1 tr=0 ts=69aeddc3 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=dvhcR3axvtdXbCCTPW8A:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDEzMyBTYWx0ZWRfXyKAP1SGkDI+n TjtGAJO7AeUcRK8SkXkeisMFOjFkSGNcTEvVMv4c7eAgmq7U6tH5IbbbEbK7nvp2QkYDG+VMp1k jbu3wd28TZH4gFX0ih6lq6ss110mjpXZ0xaMsq8R9bCcjiFW6iOF/oZJamGcU+EzxfnA2dp6MPm 0KBePvIIHbaHg/qURpy8lGYFzeo9D5ElmO26K7CUieH086ZYrDqcTVaQMkHw9KAYznJXb0CcJIk H309nYyOk6XgyxS7abJk5yoeYFTp4ozMaAkwyuVeeYULm7WzbKqiqXpzlbcVAb5m084XAijg3C/ jDas7NUFrL48qLEB/Dt95UaszIK3FE8IhS+srUgHOrPNqb366gGSl8v0L+2jRgc3bRnclWE0/c8 bx0v6wz267IX1CGcriJcEGIdj6t++xdCZx5DKvTSXfcxuQJ3MF/y6VgT8yV1aw7C5qIMXrl9YUS VL/SVxGXrkvSJcKjYdQ== X-Proofpoint-ORIG-GUID: kSaYRaVxsL3LOIN05dfJfawmGRcrqgPE X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_04,2026-03-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 spamscore=0 malwarescore=0 suspectscore=0 bulkscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090133 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: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773067814148158500 The analyze_read() methods on GuestSource, GuestPairSource, SystemSource, and SystemPairSource were no-ops because these source registers do not need read-tracking in the analyze phase. However, gen_analyze_funcs.py unconditionally declares the register-number variable (e.g. GsN) via decl_reg_num() for all registers that are read or written. When building with hexagon-softmmu, the generated analyze function bodies are compiled (outside the #ifndef CONFIG_USER_ONLY guard), and the declared-but-unreferenced register-number variable triggers -Werror=3Dunused-variable under both gcc and clang. Emit a (void) cast on the register number from analyze_read() to suppress the warning. Signed-off-by: Brian Cain --- target/hexagon/hex_common.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py index 1e2c2e46506..85745ef48c2 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -1075,7 +1075,9 @@ def decl_tcg(self, f, tag, regno): gen_read_greg({self.reg_tcg()}, {self.reg_num}); """)) def analyze_read(self, f, regno): - pass + f.write(code_fmt(f"""\ + (void){self.reg_num}; + """)) =20 class GuestPairDest(GuestRegister, Pair, Dest): def decl_tcg(self, f, tag, regno): @@ -1100,7 +1102,9 @@ def decl_tcg(self, f, tag, regno): gen_read_greg_pair({self.reg_tcg()}, {self.reg_num}); """)) def analyze_read(self, f, regno): - pass + f.write(code_fmt(f"""\ + (void){self.reg_num}; + """)) =20 class SystemDest(Register, Single, Dest): def decl_tcg(self, f, tag, regno): @@ -1125,7 +1129,9 @@ def decl_tcg(self, f, tag, regno): gen_read_sreg({self.reg_tcg()}, {self.reg_num}); """)) def analyze_read(self, f, regno): - pass + f.write(code_fmt(f"""\ + (void){self.reg_num}; + """)) =20 class SystemPairDest(Register, Pair, Dest): def decl_tcg(self, f, tag, regno): @@ -1150,7 +1156,9 @@ def decl_tcg(self, f, tag, regno): gen_read_sreg_pair({self.reg_tcg()}, {self.reg_num}); """)) def analyze_read(self, f, regno): - pass + f.write(code_fmt(f"""\ + (void){self.reg_num}; + """)) =20 def init_registers(): regs =3D { --=20 2.34.1 From nobody Sat Apr 11 21:30:50 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=1773068135; cv=none; d=zohomail.com; s=zohoarc; b=Cpzf/qDeIDOrKI6vaBlZkcrO4vJtEqP8r+DhlEQ+FshKWLQiwuZdHCxdyoACNdIXdhsn3QYt8Ua5hab/By0X69kWfWUmV2bwyrf8aF5sppu+mpKh39Y2zu/DmCGy6K/7dKq4KhP9gQL/MBmuZcITmMt3P2nSocURfkcjOh3dNnw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773068135; 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=6zPNYNW9GTOALG5AE5GzyagUhvHiqrWmCo87806ThO0=; b=YeL+tyJl9qx6YXSqoh8K8A1tcRK0fm1eNN0DmqP55Lix/bpOpNOFiirhPo8gOThCYyPllD28T3iWRI8dRClfFrzLqvLj/JfoLGnxpCQTiALarQ9yhxGD7wzmU1ZvWfsLhNUI38nVkv1pEJAHrqEg9Jf5ueJ0I1I/yZYV5QwbrkE= 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 1773068135156492.42123510290855; Mon, 9 Mar 2026 07:55:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vzbut-0000yt-Cy; Mon, 09 Mar 2026 10:49:07 -0400 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 1vzbuS-0000q1-8T for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:41 -0400 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 1vzbuQ-0005E0-4A for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:39 -0400 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 629Du2MW412635 for ; Mon, 9 Mar 2026 14:48:37 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4csyhbr5fs-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 14:48:36 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-2be07cafe1cso30719789eec.0 for ; Mon, 09 Mar 2026 07:48:36 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be4f82b78esm9322776eec.12.2026.03.09.07.48.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 07:48:34 -0700 (PDT) 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= 6zPNYNW9GTOALG5AE5GzyagUhvHiqrWmCo87806ThO0=; b=YkGSF+8NL7lrg5yp pUMp8IQPERIlOPIpO3Aql6h6O+NCjmNFAx90QrbMhkT/1mV2HZdSVbNvM+l1umYw 93DfckS/9IUON1aNfLVTTE2tfFw5JMwNkZtKD0Hn60Mcun4BXPPKUkJIX/DIUF8x Pe+a/0VEtCmEtd7MtlXkRd+51i8mnY1sru+FHqV9s+iCpAsKrLJRYnr68EQRWo24 ytbzL2ZuEKsm2jbGnwegkl0wRdJIhRbHl8MwF4Z5Q4J/T2330fO/2a06ixjtDJ35 2QEC8U4YU8BxVxOM1qhMNIgNctk0K40MDKYvgh7YTpJb5+S+r3vI2sl6GUgilE0c X6tPPA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773067716; x=1773672516; 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=6zPNYNW9GTOALG5AE5GzyagUhvHiqrWmCo87806ThO0=; b=SacfdhW70/xvGpvhofYv23FYzGaYSq9QDPxIEuz045kQxDZ6jf+ozW0VDvbO/P4x4L 12JKeQMlNHVb/b53mqH1Foea/ULAKvWjwg+u6g55Yud2E+aXTy7DxYdESeTzwH0u9Oxu Vhcm75dS2fU9Tir69pwCl6UInuftJ9xDfR6ljk0ERWLkmLH3W00ha2thfOntNdNy3CB7 d+CdjpQbi3PC46Ffl2XRIwigKZG8va71UYEGbELEm2GeOc1NfH0l/r6Z6Bnf0cE+izVC m4akbuBV8+705WFn0VtpBmmMUSJvsxgVkiX1y71VCqs0N7ORk1nf51JcPgC8KJLtHnzD JH3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773067716; x=1773672516; 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=6zPNYNW9GTOALG5AE5GzyagUhvHiqrWmCo87806ThO0=; b=APqugsqGrD0q9iUq6Lu8rbHVefqQ5o28LVkTH51lnj8Movwy/XWsAsQtzyvZqLnVB3 lxwrt7w8RWSucy0e3OkiNvljeygRViFovYaIUdRoa0RheIInlrJgDfOvCsdENlD1Mz85 m95pMSfqHIgNI+EBGKzb/x7VeeUbVJpaLeX5ezZ6ysBNsQQFpVKixrig1iF3kLp1Ies2 HWYkreVUHcyC+J2ag9+6EQWPx9lhFTzFDDIbOpyGaGdHw/7aHm0XDM2Btrcbf+yzmYcj T4ZYW9ugP495YMp/QfGe569k1bb/3tuhdT3AmDDZKbnpldD2V4bj80vi9ckYDAyDJEzo b7+g== X-Gm-Message-State: AOJu0Yz6OY/5+Ss27VEzoCZwxp+DBDVUGYLX+4o2+dc3AnirXdd5PoqM TlTGSUbzg6WStt75nfy47MD9nuvfdL9Nq8dTJMEdfIRiNTvNV0+TOgCn6cOOLUPeI1qq6L0x644 +lhIxDWoa6a39k+p5LSRLodXATqJd9BkA/8aLraqBRgEbxuKIKiDcLcb0iaREbrP3/g== X-Gm-Gg: ATEYQzyUT2EvF79oseeNGE94FPG3mR40JVPNBxGJHp0txCkqEX1nmjLmLcvMd5KFo/P 7h3zeawoTFbqe38N0nE9SGLPbcOH7bCcO4Ws5Czc2clWZ/K9sRtEBy+s34D0C0guG1W4k/GD47I O0dJt1dd7vmPz/uVW7MT/7s56z7Oq5tnmP8eo3SBV+u+Etrux4ZkslMbW2Qb+FHka27apOF6R/o Xg5ZK/JQBVpOUJzX3hSS0nlUNoU66JqG8gukV7RIPuLTvsxGHv4XpkuEESXiT7iRe5eM26bp+0S bgEcAtThZHpRjwghoMGlPE1N/xKQwp+m8bCBmgI6e/1tbW+W+JvQSYt9gH574ly7RUeipKy0idb a1obalzUE3ScLP9zRke8h2cMFIUy7EqjXMnIe82gdjtEEVHSvtz4Kug1+Z5LeuH9H6aUeAw== X-Received: by 2002:a05:7300:aca6:b0:2bd:d3f3:b0be with SMTP id 5a478bee46e88-2be4e03ed55mr4691350eec.20.1773067715648; Mon, 09 Mar 2026 07:48:35 -0700 (PDT) X-Received: by 2002:a05:7300:aca6:b0:2bd:d3f3:b0be with SMTP id 5a478bee46e88-2be4e03ed55mr4691333eec.20.1773067714962; Mon, 09 Mar 2026 07:48:34 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 07/35] target/hexagon: Make gen_exception_end_tb non-static Date: Mon, 9 Mar 2026 07:47:54 -0700 Message-Id: <20260309144822.877695-8-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> References: <20260309144822.877695-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=Rcmdyltv c=1 sm=1 tr=0 ts=69aeddc5 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=t4cj51CzC67JwBy76UgA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDEzMyBTYWx0ZWRfX2cF94EGp5Prt BtoB37/fYoqSXRowCkLU/Pzdlj06VUBGxM7Eegw8xAjTIPc6jCwCen318KAPnkGxW3tXRewvbsl KVmvoP6wBXKjMd8U2O6Hz1uV39wJ9+jEE4HoicGoBMDwO50q/o/epSdw9FUGzZx7M8ZUunvn/L4 typ9N91Oi+1BJhyjMHxNlpz0t8KpVaHp/Uf4hVsueHTKEGKSff3ynFLrXnoDpxYsHrNKnREeP0W UqbK750QKwZO2GxPjBnsQr3diuQwaRljsQV41Isi+vL8Z2+NCShAb2bJDVvzPdhE0trgmSzQyex wwoY0mdrgnbSZ//UJAFvK2w/R94NuY1Du3omdukRyC5LFZWYz+y79nCSH4EcPx2Xg7aRCrCny8M jY/uYgLAAEXiOLscO2i22ET/1THIAUw/fqIQE4CUh80X3mGAHVmsSpJm5Qyz0YyLDDhErhC2lFU FdMKfZ/MMuruzZCIESQ== X-Proofpoint-GUID: wyrqzgbwZRGeA5hM5-MAyPmGD_oh_Wkw X-Proofpoint-ORIG-GUID: wyrqzgbwZRGeA5hM5-MAyPmGD_oh_Wkw X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_04,2026-03-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 suspectscore=0 spamscore=0 priorityscore=1501 impostorscore=0 clxscore=1015 bulkscore=0 phishscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090133 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: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773068136480154100 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/translate.h | 2 ++ target/hexagon/translate.c | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index b37cb492381..2804e08ce57 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -282,6 +282,8 @@ extern TCGv hex_vstore_addr[VSTORES_MAX]; extern TCGv hex_vstore_size[VSTORES_MAX]; extern TCGv hex_vstore_pending[VSTORES_MAX]; =20 +void hex_gen_exception_end_tb(DisasContext *ctx, int excp); + void process_store(DisasContext *ctx, int slot_num); =20 FIELD(PROBE_PKT_SCALAR_STORE_S0, MMU_IDX, 0, 2) diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index 8a223f6e13e..18b38c285ed 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -189,7 +189,7 @@ static void gen_end_tb(DisasContext *ctx) ctx->base.is_jmp =3D DISAS_NORETURN; } =20 -static void gen_exception_end_tb(DisasContext *ctx, int excp) +void hex_gen_exception_end_tb(DisasContext *ctx, int excp) { gen_exec_counters(ctx); tcg_gen_movi_tl(hex_gpr[HEX_REG_PC], ctx->next_PC); @@ -590,7 +590,7 @@ static void gen_insn(DisasContext *ctx) ctx->insn->generate(ctx); mark_store_width(ctx); } else { - gen_exception_end_tb(ctx, HEX_CAUSE_INVALID_OPCODE); + hex_gen_exception_end_tb(ctx, HEX_CAUSE_INVALID_OPCODE); } } =20 --=20 2.34.1 From nobody Sat Apr 11 21:30:50 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1773068233; cv=none; d=zohomail.com; s=zohoarc; b=g73UO1hY8CPX+o29dvM898HtXDKseJu1qRnxGbdH6uGStM2Y+qTEJJxqEH0vfUCp5cQBKy+qecGRyAn7fbcESDqVCBQz3S0kcHp9BYhUqSgjn2DxUMbFbb6ZjqDeKdBqU9jnWWMTKbjRuxAdg1LmbrbpsThgeNXd3AidsDyhzhM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773068233; 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:Reply-To:Reply-To:References:Sender:Subject:Subject:To:To:Message-Id; bh=UpqvNEgrDXSReMAt/ZkuRiatJrVkNDM/d28/q34WiRY=; b=AnQuKxMqPQ338/ljqcjd/h9k/vZfF7OHQMHG4hvNuWj1SYElSpfnj/Ci3uTQrMbno23Y3PX1V/K0O4bLRX3JawublecwUeZqiBuzF4ac3GTrf7vQArraNwE2k+Zxo7QsOsgUU1+ZFj6O2Ha1wF3qSwbPRvZpkUVGa84jgA5VmH8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 177306823309648.732628070981946; Mon, 9 Mar 2026 07:57:13 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vzbun-0000wP-T9; Mon, 09 Mar 2026 10:49:01 -0400 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 1vzbuU-0000qb-I4 for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:45 -0400 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 1vzbuR-0005EH-Qi for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:42 -0400 Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 629EXmIf830355 for ; Mon, 9 Mar 2026 14:48:38 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 4ct03282an-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 14:48:37 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2bdd327d970so5942002eec.1 for ; Mon, 09 Mar 2026 07:48:37 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be4f82b78esm9322776eec.12.2026.03.09.07.48.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 07:48:35 -0700 (PDT) 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= UpqvNEgrDXSReMAt/ZkuRiatJrVkNDM/d28/q34WiRY=; b=gD5WQyv8HQ2f8v+4 RKJognkpr4FctEWuCRYsnYdPo7ftOat+2hKVnmNH0921O8ppugg5GGIc5DjHKzFG wgGtJRmK2VPcjODzgljecUJUYQPWoOGU/QxM39BNvDhhPchsHXL4w+S5M4yibcM5 NJlwtDuVZvCxkpHxxpRckRAgWqns23pm4x0nNKZpQs5dyp2k2lXIjA2nzx7+WXpU kHdUeUgg3d6JI9+wvy5xhAiBo9tAstcdKwCJKHrXe2qGhPnZ+wat2Ni794r9TbxP TuwQIO5CBH2TCbngSrhkUXzmucqAyvuy5abaqROu42K9w5QyWqj7y0XoewMnyWZ2 uekAGg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773067717; x=1773672517; 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=UpqvNEgrDXSReMAt/ZkuRiatJrVkNDM/d28/q34WiRY=; b=BLERE0XE6tAqKueIHDRi74JMic0+raeAc+iTk2RWCcKhh3OAb5FkHfCJutguAYauhs IamHYMH+wdpXX8YzGVd7MFTfVeGnYvWSONQ/UsnopU0QtPX6xPQZID6Oy/70O0j8uCcP FtK7WXxvmyGhSIkAupiLq9tQHxsDLBLS9ZJWXokMtj2rcJ01YUxB6a8+GWRsNzcAI+UQ LLvvZUtTnGPWA9MegFCacFWS/lWT7I1ruHeeewDD/QEJcOHvW4O49J2piOyBCVIzKoRo KcQQlSQvXe6XZRQMqPPg0/cfX4JrmPcbB89FPb8G2zEP5NdItZNvTIh1MJKxbFQOG0JZ Ow6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773067717; x=1773672517; 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=UpqvNEgrDXSReMAt/ZkuRiatJrVkNDM/d28/q34WiRY=; b=EPSP1X/uEOgdvapK/twkkp43boPd/PKsDJmhqI3taam3zfpr1GfFfJm/ADQ0X4evGj 9Lm4+HQxI/OOmlK4z1h6YwsFqMTbbrHjt0TbUznjkL+Jj4puWdEuF+4GFEbVFpI9WHis r9cn8ES7dyaJQm0cfHfs6EfmzxkR6dUIv7xdcjqVPUSGOosNuetgm5s+BiQlEuL+MVMR 9v6or1LIQcxR6YWLqSsWwMcWnu3ho0+yiv4TAY9iLksKRNVpqJ47+XgFrsZxr6XSGnt9 Pp/VZ1C7aa2VLUazZKUq3umSYt5sDL2hNbjKY9NW6tQx2xOyr5udueKsp9xTiBsQxZRc K0zQ== X-Gm-Message-State: AOJu0Yy2SQ1AB/fCBS1QKpuUfzB0HYutO0jNbAsnbHkGr4jUzVd52EKY P3I+p+DHh7FdJLRae617IpoL3jbo+13sc9cOJfMQqnfYPWBvie6lU9PSy3kuGdncGi4uRDsaoSN EZgSKT9iqx8NVa++FRs4QLFxXCLnScQXYrLzCHerNrDb13FaFbw/yAiz0NZ5JcjIh5g== X-Gm-Gg: ATEYQzyrsysSF21E3qPaY93vvgd2z1sB82PR0CftleBupq+ZIukS93Q2ZDdkN8Lf+YR yGEmywtIrGlRH7dEusgmd8Eq6qUc6jzfNQyFRYP6/RlX3BOrHBRdB8IchXcv2+Cd8GxlpLtMLsR gDkTczx/2tz3MS9eymoceQTMiv0S8qwznpJx6lyMdqY9aZbsWERSZ82fTZBzZNbKcKg6DztwkC1 ya5sd82kV/MYSN9PgGRF6PNWZoHN18V/+Q6yk6X8SkiaxuyrnZWZshxV+9Tt/41dGlapJpKFBBf mULzOBdU+1tPwjuCYrUMGtKeewSMWgzgpGxOO8Gw86KJbghAzUB0b18o6NU6dS1w4wNqcLCTt9x HiVIHeROFMFKwS6a8gho9FJdSMyBkH8Q7RK3WMAH+AmgMDqdEXImtzPJ/tVV8fDWyOkVYDQ== X-Received: by 2002:a05:7300:7fa1:b0:2bd:816b:734d with SMTP id 5a478bee46e88-2be4e708bdcmr4352166eec.18.1773067716498; Mon, 09 Mar 2026 07:48:36 -0700 (PDT) X-Received: by 2002:a05:7300:7fa1:b0:2bd:816b:734d with SMTP id 5a478bee46e88-2be4e708bdcmr4352151eec.18.1773067715944; Mon, 09 Mar 2026 07:48:35 -0700 (PDT) To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 08/35] target/hexagon: Switch to tag_ignore(), generate via get_{user, sys}_tags() Date: Mon, 9 Mar 2026 07:47:55 -0700 Message-Id: <20260309144822.877695-9-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> References: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDEzMyBTYWx0ZWRfX3lxTmf/7x2KX cQLAjOXWrjF9e6moQUq7ZmHIgI5lSwQ/SrkNt2YCRghM8+C2N3bhh86P5f2Dof8AvZH1bqGK90Z FG21mfRXJ++7etKoIRAV1c6wHSyD8y9Pz8HDsDibXZbeEFBPIaWZxJW6+ZbS3g6cNYJotK2/aXd uwcZhEfkf5pIi5JbirytZUvztCv5vWUvvZ66Ro4KXw6l3ZLnOapicB8anGhagDSeczdIWbwUnz2 Gwbis8CROVx3m4Xwc8Hw6l0okJ4hpo0SsbAt8bn5yFxmWqVZOnOOMN8LOd1ZgkL5Z8NSgP3Aw9N aWWQR1aYjdegrLACggdvKAoHDdwghgS2JjbscD74bKr8BnVhhZFcUKreXUjpr8PpPay1K0piA85 z2WhpoUlUm2XqlRNqved2vm8oSskcgx/r/nVmWeRoYbm/S/kThRB8AC/Hg49oJggH8EgjdwHcXx SC//XvxnjhYUAW1al5Q== X-Proofpoint-ORIG-GUID: lG_6WSPqLoJR5H1ylhvyJnWJ6CmayLZj X-Proofpoint-GUID: lG_6WSPqLoJR5H1ylhvyJnWJ6CmayLZj X-Authority-Analysis: v=2.4 cv=WtEm8Nfv c=1 sm=1 tr=0 ts=69aeddc5 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=orAq0Iv1PZLbcfkgE-4A:9 a=QEXdDO2ut3YA:10 a=O8hF6Hzn-FEA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_04,2026-03-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=0 spamscore=0 bulkscore=0 priorityscore=1501 lowpriorityscore=0 malwarescore=0 phishscore=0 adultscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090133 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: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-to: Brian Cain From: Brian Cain via qemu development Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (found 2 invalid signatures) X-ZM-MESSAGEID: 1773068236109154100 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/gen_helper_funcs.py | 26 ++++++++++--------------- target/hexagon/gen_helper_protos.py | 23 +++++++++++----------- target/hexagon/gen_idef_parser_funcs.py | 2 ++ target/hexagon/gen_op_attribs.py | 2 +- target/hexagon/gen_opcodes_def.py | 5 ++++- 5 files changed, 29 insertions(+), 29 deletions(-) diff --git a/target/hexagon/gen_helper_funcs.py b/target/hexagon/gen_helper= _funcs.py index 6206104424c..1629ebc0e1a 100755 --- a/target/hexagon/gen_helper_funcs.py +++ b/target/hexagon/gen_helper_funcs.py @@ -104,29 +104,23 @@ def main(): tagimms =3D hex_common.get_tagimms() =20 with open(args.out, "w") as f: - 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 floating point instructions - if "A_FPOP" 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": + for tag in hex_common.get_user_tags(): + if hex_common.tag_ignore(tag): continue if hex_common.skip_qemu_helper(tag): continue if hex_common.is_idef_parser_enabled(tag): continue + gen_helper_function(f, tag, tagregs, tagimms) =20 + f.write("#if !defined(CONFIG_USER_ONLY)\n") + for tag in hex_common.get_sys_tags(): + if hex_common.skip_qemu_helper(tag): + continue + if hex_common.is_idef_parser_enabled(tag): + continue gen_helper_function(f, tag, tagregs, tagimms) + f.write("#endif\n") =20 =20 if __name__ =3D=3D "__main__": diff --git a/target/hexagon/gen_helper_protos.py b/target/hexagon/gen_helpe= r_protos.py index 77f8e0a6a32..59c8bdd05c0 100755 --- a/target/hexagon/gen_helper_protos.py +++ b/target/hexagon/gen_helper_protos.py @@ -59,27 +59,28 @@ def main(): tagimms =3D hex_common.get_tagimms() =20 with open(args.out, "w") as f: - for tag in hex_common.tags: - ## Skip the priv instructions - if "A_PRIV" in hex_common.attribdict[tag]: + for tag in hex_common.get_user_tags(): + if hex_common.tag_ignore(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": + + if hex_common.skip_qemu_helper(tag): continue - if tag =3D=3D "Y6_diag1": + if hex_common.is_idef_parser_enabled(tag): continue =20 + gen_helper_prototype(f, tag, tagregs, tagimms) + + f.write("#if !defined(CONFIG_USER_ONLY)\n") + for tag in hex_common.get_sys_tags(): + if hex_common.tag_ignore(tag): + continue if hex_common.skip_qemu_helper(tag): continue if hex_common.is_idef_parser_enabled(tag): continue =20 gen_helper_prototype(f, tag, tagregs, tagimms) + f.write("#endif\n") =20 =20 if __name__ =3D=3D "__main__": diff --git a/target/hexagon/gen_idef_parser_funcs.py b/target/hexagon/gen_i= def_parser_funcs.py index 2f6e826f76d..32bce9b0028 100644 --- a/target/hexagon/gen_idef_parser_funcs.py +++ b/target/hexagon/gen_idef_parser_funcs.py @@ -60,6 +60,8 @@ def main(): f.write('#include "macros.h.inc"\n\n') =20 for tag in hex_common.tags: + if hex_common.tag_ignore(tag): + continue ## Skip the priv instructions if "A_PRIV" in hex_common.attribdict[tag]: continue diff --git a/target/hexagon/gen_op_attribs.py b/target/hexagon/gen_op_attri= bs.py index bbbb02df3a2..94dd1f876b2 100755 --- a/target/hexagon/gen_op_attribs.py +++ b/target/hexagon/gen_op_attribs.py @@ -38,7 +38,7 @@ def main(): ## Generate all the attributes associated with each instruction ## with open(args.out, "w") as f: - for tag in hex_common.tags: + for tag in hex_common.get_all_tags(): f.write( f"OP_ATTRIB({tag},ATTRIBS(" f'{",".join(sorted(hex_common.attribdict[tag]))}))\n' diff --git a/target/hexagon/gen_opcodes_def.py b/target/hexagon/gen_opcodes= _def.py index 94a19ff412e..17ba3f9db95 100755 --- a/target/hexagon/gen_opcodes_def.py +++ b/target/hexagon/gen_opcodes_def.py @@ -37,7 +37,10 @@ def main(): ## Generate a list of all the opcodes ## with open(args.out, "w") as f: - for tag in hex_common.tags: + for tag in hex_common.get_user_tags(): + f.write(f"OPCODE({tag}),\n") + + for tag in hex_common.get_sys_tags(): f.write(f"OPCODE({tag}),\n") =20 =20 --=20 2.34.1 From nobody Sat Apr 11 21:30:50 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=1773067997; cv=none; d=zohomail.com; s=zohoarc; b=d+vnKQBXjKa6kX1X9iMQrD6X8RH1F5mIkrjNtqnurf7fAZTaoyoDWndJ5WtQklhMtrC8n6Di9c3ugmMEg7EnOhpjnRbm9fXp/ltUZhbs3IE2KPteRmIw3IDgZD+dKOmaoUBFLHU+aT1rEuzCkQDNLl+4Fts5PNtUGlFfl3XCrDc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773067997; 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=GTtFMiaJ0mspfQ/TE8zJxQINMRb4QLRMr882PiJr9Sk=; b=Op+QvH32G3osV3CGCc3IL+qzs+mjefPCBzK2MNwHad3CY2i863DvCbLqAN48rhV7L1WiWE4OJAmJEW1edMIcbvUswcbH0j8bIoqamCSiHc7u9/j5yJ5J22QJkkaksnElSQu7ArV6IuU4FT19VTY2ptTCVAuNBasLmPU35AHHYXg= 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 177306799746764.80370975303208; Mon, 9 Mar 2026 07:53:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vzbv0-0001DT-Gg; Mon, 09 Mar 2026 10:49:14 -0400 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 1vzbuV-0000qc-6A for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:45 -0400 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 1vzbuT-0005Ep-9u for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:42 -0400 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 629A6dMf2195107 for ; Mon, 9 Mar 2026 14:48:39 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 4csv5u8vk2-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 14:48:39 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2bdf75bc88fso9277480eec.0 for ; Mon, 09 Mar 2026 07:48:38 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be4f82b78esm9322776eec.12.2026.03.09.07.48.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 07:48:36 -0700 (PDT) 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= GTtFMiaJ0mspfQ/TE8zJxQINMRb4QLRMr882PiJr9Sk=; b=HRKwXub+N3ca9Sg5 qDjlI8DHwkQHD0tz7cuxgRgh7cicZBNx0NQQcx+VaXa4V2yMJRzhfdRyHL4+/E4I J/q9Y8Ato1bNk3mZpyWa3N99Olq7dMs777rF6WiDRxHWsXyC+P8FhULe1MzLRp0D iWsWO54sXQsr3cmQmzs3jZFbPmQuA9heMc0lMQhMh2jHu8oi+MYoagibYSF9WYIm Av8m6JR+lH9YDsqLOYSlzOGlwifaetIFP77vP/NaQYhO4QD9/2v3oirRN0bAlJTk LjLu9QyZds+HD7wVc42nwtQhDKRtuHVe2hAlk92R0lwkMaVCsWWLFD0dwGzZbxEe RF5OMA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773067718; x=1773672518; 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=GTtFMiaJ0mspfQ/TE8zJxQINMRb4QLRMr882PiJr9Sk=; b=biF/1Qi8w0cbK4saXjPQ44xM3OGAThe1IqYRun6FvB6s9xy2dixmaGVnr2D/wnDFgn 6idIi5IuxNODW3Tpo4ugyYdlxpmnbAI0Be6aTrQzUrIQvfWDHF25tMW07o1mrYC5OpNr qhwo0GkyYsnh40jRMcAdX/NDkKhsRDGbMjFARt6xuZrw1BrOLSH5doSXmTDMsz6vLDCJ j3xxLxHs2BEXSveXD2zgVd8q1HRCfqi/KGegS5jOUg5U0+ulOKvELzIEImiUiEiXjq/K Xd7jRlc5lwcG27SdP7k/Jew1eoqaE+jHRfF31ATifitG7tLZl1F2YXr662JaJeFVOgZR Q4cQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773067718; x=1773672518; 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=GTtFMiaJ0mspfQ/TE8zJxQINMRb4QLRMr882PiJr9Sk=; b=p68AREskJj2XPKk6Mmd9UKXIVUbAvp7pL408OYXJCwkcB2oF4RGmhAEd7oqtEfDdIN 1OKWUDxK1fnG2n2+OzkDtmhbqpl4wYusNTgvjZD1nMH5a1Vp8nDc8oyibSS/sIPApi28 QnGbgmPTRRnrDP7RGWRJAI8MBFl6fQlZ4buu6IYH4hJ68WK2WWscIJD0T/zTpr2Rh2mC S9vyNv0f4xYGFGEG8lgGhtDOYvEvWXLxFx8F/7n/E3/d6mx0+3IWL0PaiOMeOdygHLO4 zhAnuNwi9AS/ShfkAot1sKiWkS6r1tlG0Jr1t6BWD1kfSeOoAT3C9VTWnuGPkzNc6CEg A+hg== X-Gm-Message-State: AOJu0Yw8oTDX7NNZfbwcidQ97B3OK7REpl9EBLtrxPS4tO9+fOHvug02 DlauiB0/JB0wqiXbToe4gQqkRL3EPu5es9xhfVsnyw2Z+23p+Ai2ZxAN+TZJtDc2bjt1MLot3qP GsOPP0+Z3iYOmOSDFHeWvGeOz4gAzZCBWdBzZCN6Yjtq/g/73KB4tv/G/FfLxPOUYkQ== X-Gm-Gg: ATEYQzwowAL8lj5JtXKy/iY6I71hnn1UQr+AdAAXbkFXHGkpd6eS6w+KN0tZE4mr4Ef Rt0D2flqLw8wEFaZ8npTIsw/bBiikU12vtliJeJDKNnI9Mtu8GXlIHsQdGpB+f4u6O1ZCzknggW dD/qNAnj3YW83K6Yf9n8qtMcaAvs2iHDrmyGM1lnGuJCdsHDt5VUv23vFW87K+Wqtb3cgOQNlD/ R5rWiFat20K0flSCcl8iNQVyBdIfHi9WBWSsK9xUTrVwcQQ83EPoV8pO4Cv2pd2bfyAunO5ZjgY CO7BJB2QiCYTpE9SNw7GdbY/utjt9PXY/qfEcQ2f8OsvyrPaWMe4qz1yck9fr5ewJ4zeT3ru/zW 8UL3TSwJZupIusP47N3zLxsFbAc/P/9W4fIpF+DSwIszG/YqDe9o0zlkWKt2waDPKdDLj4A== X-Received: by 2002:a05:7300:6da4:b0:2ba:a60a:15e6 with SMTP id 5a478bee46e88-2be4dfca833mr4004145eec.16.1773067717661; Mon, 09 Mar 2026 07:48:37 -0700 (PDT) X-Received: by 2002:a05:7300:6da4:b0:2ba:a60a:15e6 with SMTP id 5a478bee46e88-2be4dfca833mr4004117eec.16.1773067716856; Mon, 09 Mar 2026 07:48:36 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng Subject: [PATCH v4 09/35] target/hexagon: Add privilege check, use tag_ignore() Date: Mon, 9 Mar 2026 07:47:56 -0700 Message-Id: <20260309144822.877695-10-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> References: <20260309144822.877695-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: OQNtschaYYn1PL7dOMD2KzrCcs63sws2 X-Proofpoint-ORIG-GUID: OQNtschaYYn1PL7dOMD2KzrCcs63sws2 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDEzMyBTYWx0ZWRfX/x8HsPa+8mjf KYfIwf1Yo8B4wlVx/okKv8Zvd2Qt7LNQWZD6wy9dxoaD+S0nZ5IPF5DHYFnAHr4Ah4HqW+i1KVA OIILEVDOvujTR1Xhh1qCgKmCiM2rVtuigjA2j4LewnAiabkroOgiWmdSrheKgB5NQ3JkeoUO0q0 WRewX/dJp0SrlvUSaSrajgxsOHUkRu6fNeXXiyKz+NBTC4t5Wu2UyGmsh9kF0ezRGUYtXiXwLMz IZxbNfeEZ7/QsnPp9wlRH9BGY2EHZ1IW0p0cg3YEKohJL52aK2bW89NUCVnaveHNY5z004D82HQ LMdn4mP74xMpLmMR1wfoOVie1k92DAdsRFEqgM+uh0Mzvef/I9HGEuHJsot5BymQE+6pydjQ2e2 ebEf+dCfSO6X8BqvP/fARbzbRR3phdVEUhyJ6do9P+mEBToB0II/1KQd1tQLdxY3cUUTLG2AGb0 eG0KRnUciLLWRYVrV2Q== X-Authority-Analysis: v=2.4 cv=Xr/3+FF9 c=1 sm=1 tr=0 ts=69aeddc7 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=pksD3ONYjMjZD1LmeuAA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_04,2026-03-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 adultscore=0 spamscore=0 impostorscore=0 suspectscore=0 lowpriorityscore=0 clxscore=1015 phishscore=0 priorityscore=1501 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090133 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: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773067999163158500 Add system event and cause code definitions needed for exception handling in sysemu mode. Add privilege checks that raise exceptions for guest/supervisor-only instructions executed without appropriate privilege. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 10 +++++ target/hexagon/cpu_bits.h | 75 +++++++++++++++++++++++++++++---- linux-user/hexagon/cpu_loop.c | 16 +++++++ target/hexagon/cpu.c | 1 + target/hexagon/translate.c | 8 ++++ target/hexagon/gen_tcg_funcs.py | 35 +++++++++------ 6 files changed, 123 insertions(+), 22 deletions(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 85afd592778..937194e460e 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -44,6 +44,15 @@ =20 #define MMU_USER_IDX 0 =20 +#define HEXAGON_CPU_IRQ_0 0 +#define HEXAGON_CPU_IRQ_1 1 +#define HEXAGON_CPU_IRQ_2 2 +#define HEXAGON_CPU_IRQ_3 3 +#define HEXAGON_CPU_IRQ_4 4 +#define HEXAGON_CPU_IRQ_5 5 +#define HEXAGON_CPU_IRQ_6 6 +#define HEXAGON_CPU_IRQ_7 7 + typedef struct { target_ulong va; uint32_t width; @@ -76,6 +85,7 @@ typedef struct { typedef struct CPUArchState { target_ulong gpr[TOTAL_PER_THREAD_REGS]; target_ulong pred[NUM_PREGS]; + uint32_t cause_code; =20 /* For comparing with LLDB on target - see adjust_stack_ptrs function = */ target_ulong last_pc_dumped; diff --git a/target/hexagon/cpu_bits.h b/target/hexagon/cpu_bits.h index 19beca81c0c..91e9da09e03 100644 --- a/target/hexagon/cpu_bits.h +++ b/target/hexagon/cpu_bits.h @@ -24,20 +24,77 @@ #define PCALIGN_MASK (PCALIGN - 1) =20 enum hex_event { - HEX_EVENT_NONE =3D -1, - HEX_EVENT_TRAP0 =3D 0x008, + HEX_EVENT_NONE =3D -1, + HEX_EVENT_RESET =3D 0x0, + HEX_EVENT_IMPRECISE =3D 0x1, + HEX_EVENT_PRECISE =3D 0x2, + HEX_EVENT_TLB_MISS_X =3D 0x4, + HEX_EVENT_TLB_MISS_RW =3D 0x6, + HEX_EVENT_TRAP0 =3D 0x8, + HEX_EVENT_TRAP1 =3D 0x9, + HEX_EVENT_FPTRAP =3D 0xb, + HEX_EVENT_DEBUG =3D 0xc, + HEX_EVENT_INT0 =3D 0x10, + HEX_EVENT_INT1 =3D 0x11, + HEX_EVENT_INT2 =3D 0x12, + HEX_EVENT_INT3 =3D 0x13, + HEX_EVENT_INT4 =3D 0x14, + HEX_EVENT_INT5 =3D 0x15, + HEX_EVENT_INT6 =3D 0x16, + HEX_EVENT_INT7 =3D 0x17, + HEX_EVENT_INT8 =3D 0x18, + HEX_EVENT_INT9 =3D 0x19, + HEX_EVENT_INTA =3D 0x1a, + HEX_EVENT_INTB =3D 0x1b, + HEX_EVENT_INTC =3D 0x1c, + HEX_EVENT_INTD =3D 0x1d, + HEX_EVENT_INTE =3D 0x1e, + HEX_EVENT_INTF =3D 0x1f, }; =20 enum hex_cause { HEX_CAUSE_NONE =3D -1, - HEX_CAUSE_TRAP0 =3D 0x172, - HEX_CAUSE_FETCH_NO_UPAGE =3D 0x012, - HEX_CAUSE_INVALID_PACKET =3D 0x015, - HEX_CAUSE_INVALID_OPCODE =3D 0x015, + HEX_CAUSE_RESET =3D 0x000, + HEX_CAUSE_BIU_PRECISE =3D 0x001, + HEX_CAUSE_UNSUPPORTED_HVX_64B =3D 0x002, /* QEMU-specific */ + HEX_CAUSE_DOUBLE_EXCEPT =3D 0x003, + HEX_CAUSE_TRAP0 =3D 0x008, + HEX_CAUSE_TRAP1 =3D 0x009, + HEX_CAUSE_FETCH_NO_XPAGE =3D 0x011, + HEX_CAUSE_FETCH_NO_UPAGE =3D 0x012, + HEX_CAUSE_INVALID_PACKET =3D 0x015, + HEX_CAUSE_INVALID_OPCODE =3D 0x015, /* alias: same cause as INVALID_PA= CKET */ + HEX_CAUSE_NO_COPROC_ENABLE =3D 0x016, + HEX_CAUSE_NO_COPROC2_ENABLE =3D 0x018, + HEX_CAUSE_PRIV_USER_NO_GINSN =3D 0x01a, + HEX_CAUSE_PRIV_USER_NO_SINSN =3D 0x01b, HEX_CAUSE_REG_WRITE_CONFLICT =3D 0x01d, - HEX_CAUSE_PC_NOT_ALIGNED =3D 0x01e, - HEX_CAUSE_PRIV_NO_UREAD =3D 0x024, - HEX_CAUSE_PRIV_NO_UWRITE =3D 0x025, + HEX_CAUSE_PC_NOT_ALIGNED =3D 0x01e, + HEX_CAUSE_MISALIGNED_LOAD =3D 0x020, + HEX_CAUSE_MISALIGNED_STORE =3D 0x021, + HEX_CAUSE_PRIV_NO_READ =3D 0x022, + HEX_CAUSE_PRIV_NO_WRITE =3D 0x023, + HEX_CAUSE_PRIV_NO_UREAD =3D 0x024, + HEX_CAUSE_PRIV_NO_UWRITE =3D 0x025, + HEX_CAUSE_COPROC_LDST =3D 0x026, + HEX_CAUSE_STACK_LIMIT =3D 0x027, + HEX_CAUSE_VWCTRL_WINDOW_MISS =3D 0x029, + HEX_CAUSE_IMPRECISE_NMI =3D 0x043, + HEX_CAUSE_IMPRECISE_MULTI_TLB_MATCH =3D 0x044, + HEX_CAUSE_TLBMISSX_CAUSE_NORMAL =3D 0x060, + HEX_CAUSE_TLBMISSX_CAUSE_NEXTPAGE =3D 0x061, + HEX_CAUSE_TLBMISSRW_CAUSE_READ =3D 0x070, + HEX_CAUSE_TLBMISSRW_CAUSE_WRITE =3D 0x071, + HEX_CAUSE_DEBUG_SINGLESTEP =3D 0x80, + HEX_CAUSE_FPTRAP_CAUSE_BADFLOAT =3D 0x0bf, + HEX_CAUSE_INT0 =3D 0x0c0, + HEX_CAUSE_INT1 =3D 0x0c1, + HEX_CAUSE_INT2 =3D 0x0c2, + HEX_CAUSE_INT3 =3D 0x0c3, + HEX_CAUSE_INT4 =3D 0x0c4, + HEX_CAUSE_INT5 =3D 0x0c5, + HEX_CAUSE_INT6 =3D 0x0c6, + HEX_CAUSE_INT7 =3D 0x0c7, }; =20 #define PACKET_WORDS_MAX 4 diff --git a/linux-user/hexagon/cpu_loop.c b/linux-user/hexagon/cpu_loop.c index 5711055aff2..b63990663ab 100644 --- a/linux-user/hexagon/cpu_loop.c +++ b/linux-user/hexagon/cpu_loop.c @@ -22,6 +22,7 @@ #include "qemu.h" #include "user-internals.h" #include "user/cpu_loop.h" +#include "target/hexagon/internal.h" #include "signal-common.h" #include "internal.h" =20 @@ -60,6 +61,21 @@ void cpu_loop(CPUHexagonState *env) env->gpr[0] =3D ret; } break; + case HEX_EVENT_PRECISE: + switch (env->cause_code) { + case HEX_CAUSE_PRIV_USER_NO_GINSN: + case HEX_CAUSE_PRIV_USER_NO_SINSN: + case HEX_CAUSE_INVALID_PACKET: + force_sig_fault(TARGET_SIGILL, TARGET_ILL_ILLOPC, + env->gpr[HEX_REG_PC]); + break; + default: + EXCP_DUMP(env, "\nqemu: unhandled CPU precise exception " + "cause code 0x%x - aborting\n", + env->cause_code); + exit(EXIT_FAILURE); + } + break; case HEX_CAUSE_PC_NOT_ALIGNED: force_sig_fault(TARGET_SIGBUS, TARGET_BUS_ADRALN, env->gpr[HEX_REG_R31]); diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index e61ac10fbf3..1f172404608 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -306,6 +306,7 @@ static void hexagon_cpu_reset_hold(Object *obj, ResetTy= pe type) set_float_detect_tininess(float_tininess_before_rounding, &env->fp_sta= tus); /* Default NaN value: sign bit set, all frac bits set */ set_float_default_nan_pattern(0b11111111, &env->fp_status); + env->cause_code =3D HEX_EVENT_NONE; } =20 static void hexagon_cpu_disas_set_info(const CPUState *cs, diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index 18b38c285ed..571ba9cae41 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -65,6 +65,10 @@ TCGv hex_vstore_addr[VSTORES_MAX]; TCGv hex_vstore_size[VSTORES_MAX]; TCGv hex_vstore_pending[VSTORES_MAX]; =20 +#ifndef CONFIG_USER_ONLY +TCGv_i32 hex_cause_code; +#endif + static const char * const hexagon_prednames[] =3D { "p0", "p1", "p2", "p3" }; @@ -1153,4 +1157,8 @@ void hexagon_translate_init(void) offsetof(CPUHexagonState, vstore_pending[i]), vstore_pending_names[i]); } +#ifndef CONFIG_USER_ONLY + hex_cause_code =3D tcg_global_mem_new(tcg_env, + offsetof(CPUHexagonState, cause_code), "cause_code"); +#endif } diff --git a/target/hexagon/gen_tcg_funcs.py b/target/hexagon/gen_tcg_funcs= .py index 87b7f10d7fd..d91bbcf1dc8 100755 --- a/target/hexagon/gen_tcg_funcs.py +++ b/target/hexagon/gen_tcg_funcs.py @@ -21,7 +21,7 @@ import re import string import hex_common - +from textwrap import dedent =20 ## ## Generate the TCG code to call the helper @@ -49,6 +49,18 @@ def gen_tcg_func(f, tag, regs, imms): =20 f.write(" Insn *insn G_GNUC_UNUSED =3D ctx->insn;\n") =20 + if "A_PRIV" in hex_common.attribdict[tag]: + f.write(dedent("""\ +#ifdef CONFIG_USER_ONLY + hex_gen_exception_end_tb(ctx, HEX_CAUSE_PRIV_USER_NO_SINSN); +#else +""")) + if "A_GUEST" in hex_common.attribdict[tag]: + f.write(dedent("""\ +#ifdef CONFIG_USER_ONLY + hex_gen_exception_end_tb(ctx, HEX_CAUSE_PRIV_USER_NO_GINSN); +#else +""")) if hex_common.need_ea(tag): f.write(" TCGv EA G_GNUC_UNUSED =3D tcg_temp_new();\n") =20 @@ -100,6 +112,11 @@ def gen_tcg_func(f, tag, regs, imms): if reg.is_written(): reg.gen_write(f, tag) =20 + if ( + "A_PRIV" in hex_common.attribdict[tag] + or "A_GUEST" in hex_common.attribdict[tag] + ): + f.write("#endif /* CONFIG_USER_ONLY */\n") f.write("}\n\n") =20 =20 @@ -124,18 +141,10 @@ def main(): f.write('#include "idef-generated-emitter.h.inc"\n\n') =20 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": + if hex_common.tag_ignore(tag): + f.write(f"static void generate_{tag}" + f"(DisasContext *ctx)\n") + f.write("{\n}\n\n") continue =20 gen_def_tcg_func(f, tag, tagregs, tagimms) --=20 2.34.1 From nobody Sat Apr 11 21:30:50 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=1773068011; cv=none; d=zohomail.com; s=zohoarc; b=NzneWpd0+TdZJhwkQZVCF5bZohp4Dpgxmju3liZjITa9g1QnWKPslziVvaOahIC3z8x63Ij6mkwlYQmH/4euKccVu4AI5j0uG7GwYHpcii3zgv9yPok1K33vwKoQbFxhXmwnVFWUNScTdClxaJz96eSSuGC6Id6dK/OO1BbaIzs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773068011; 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=5ZrdJ8gllNViskLTQD7yOHboDI0ba/hRXSLbI3hERUI=; b=RDwaTS6soSZQcwbP86IdPu/hogrMgD4NPGfOCwtVCqF80TbNQp5fvpYqNKHM5KXPQSzzDUInj+LWaIbFdXqpbb5JelddvZdsvh9fULQX6vRhkufiby4g7rRTz8TtvPaG93TMKszBYBxbGwLvYe5tOzqROEnhoYFOxF6lT0u02Sk= 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 1773068011706506.3918988993348; Mon, 9 Mar 2026 07:53:31 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vzbv0-0001GA-TV; Mon, 09 Mar 2026 10:49:14 -0400 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 1vzbuU-0000qV-CH for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:45 -0400 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 1vzbuS-0005EX-Mv for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:42 -0400 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 629DqoI92138238 for ; Mon, 9 Mar 2026 14:48:39 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4csyft05u5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 14:48:39 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-2be21f89332so7079937eec.0 for ; Mon, 09 Mar 2026 07:48:39 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be4f82b78esm9322776eec.12.2026.03.09.07.48.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 07:48:37 -0700 (PDT) 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= 5ZrdJ8gllNViskLTQD7yOHboDI0ba/hRXSLbI3hERUI=; b=huukEbax9T9aK0l/ R9D4MPvfyw5krJMUNtgt7Qtewz6S8YNKSABfo+QRo3JbdtekhhahGQp43gTmfRRa oDF4b0/VOAMiGEoIhJ8zWtcTJ80FEPm4yHS3GrII1yvTa6A7Ow5+IKsisJbqyCgz SL+mpuOst1Xk2uDROIMLx8Y2J8MdxwJtxGDn8idO73UATQBcyKnv6j/m/EmrUcUK apUexw+/hCIx2Hpu5R0zdtWMjAKmX4kxcBLJf2UQeNEUl+93+3muIR2A36cmlUql 9lBFq8uYkl7SfBhFzg8SPhS9s7sN+ZWBm/uROhV6pkZdr8wYajCjIdVz98gedR4k +gv9FA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773067718; x=1773672518; 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=5ZrdJ8gllNViskLTQD7yOHboDI0ba/hRXSLbI3hERUI=; b=Nd+ho0E3asejvOAfpg46rwiiHV2JWrl8vC/Lpp3MTlJUTgeNatdRpaCPbidhTK7U66 8/FIwivJlevE+7Faq+/PPNwrc3Ssd7wLSfPu6ii1FXp6uQrvxgeBQ4jQb1tzfvTDX2Kx 5LC9treqaPW5GKQChVjhPd/PpG+USHcscyLxJcF0XCyWdLcRd+mX9jbQCm1vS+XSpoUH Y9jjNIgmKWodQ3jjp0z2RAAOi3TVXDts6DZIEKchVCmPHY3cegxZDvwWhT/RpgSsdL5m KDKSMQJHI2G3Edvj49gWLZgn4ubHfLHIzsHBLsDro9JOMDnb+GM9szNWLQ+t+VSACKnN pgiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773067718; x=1773672518; 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=5ZrdJ8gllNViskLTQD7yOHboDI0ba/hRXSLbI3hERUI=; b=Zur+UyQr0nQpQcLYc66FrdcADMiuvIDpnrdGyBfAgiYRLRbRV3TgahKviEnjeoNGzi 7qfepT3kvFaE7anVg4pX1Fk6hDKzjObFe51sEVizzBumJfS9YIdz0QmFK8Vl/5a41Cpv w5SqlEQFplqMIvjegRh7GHliasNHZZincrEeG9D5ZzqFNPhiR+H6aScknX6ZorvoA3Bz SxgRNrHQPmwU+r2iNLyx5QMsoiJk0aZBz5Y3mYsRe0tO6vwLbFxLCGnFxYb7L/MnAenj 5BwFLp6FyWkmNP+0/kJrOTHuC62QvF+3WMd2gfqv9Sugo9JG+xZVyAGEI9+67OLAhcrQ Y+KA== X-Gm-Message-State: AOJu0YwCvsvHSUwNQtwqhIiJ0qzn++AUHMcSNSdYn+QWK00q9UpPEnXh FBnrwDpOWXbiZwTzPtVivGTT4H5x/ncJHut/6K3sUL1QgApvHcnbga99zX/OrlKf1KCgEtrI7b1 z6jkCZWDGbPbaTViaoTlk2h22kmtKm9InhmBGRa51bo/BnSppOzBXoOvm+TLdxLMT/g== X-Gm-Gg: ATEYQzyjnAeKJSTBoPp+ZBEhPf6d+LqBm3ZvKgChsYTruDI4eYWPPCCnEr12cV3pz0d 7Fv7eE4XuHfFj5fQ4Zmj9rek3wt+GLFtatF0p4iurbmzFQuib6lAne5D/mDCnbfUfFXbclF98vJ 5LMP558qOyc10ocvRtaVHpZLWSSpNXo2hnq34tlBVbqcUAbtHB5rfblhQ6XjCeTbUQXlergOJzq HYE3HcGmn8pAM5Y4qoM6pA1RCr1IyItL3AuusMM5O5uLkHpNvlXARHUDid/+4YHMTwnN7z6nNzj xOvRT8ozA4warKSkdVSr9f7VXXIvpGtLJWOkg1Y/iLt2IWim1q5fHhY+eo3JJzN9g1PuJyXfn+u lUahi2Z8O+3rpAhCrK7FAzD4PDhMbN6pUCQsyrkS4q13VO+QVP0FgowyhjSLxP5e8PrnynQ== X-Received: by 2002:a05:7300:6da2:b0:2be:1cb2:3a6 with SMTP id 5a478bee46e88-2be4e0d053cmr4427230eec.33.1773067718360; Mon, 09 Mar 2026 07:48:38 -0700 (PDT) X-Received: by 2002:a05:7300:6da2:b0:2be:1cb2:3a6 with SMTP id 5a478bee46e88-2be4e0d053cmr4427214eec.33.1773067717848; Mon, 09 Mar 2026 07:48:37 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 10/35] target/hexagon: Add a placeholder fp exception Date: Mon, 9 Mar 2026 07:47:57 -0700 Message-Id: <20260309144822.877695-11-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> References: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: OC9RUsuwvgrrdecfnFNWZ6lFI4OKXQ2p X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDEzMyBTYWx0ZWRfXyKKdo90WGeWo llIF5nO3C6M2l7/Ap0uWjRFWqz9Om4wvryRokDN8VzjtkJ6i+UujceBFRT523DfkbVW+cf7NoMf AvT45qEumuZNdvwxE/PFqrThBwRYW7vgbKXPq6pg5D4p623oEEQrT0WsYjlojEp9BzMbyiiZBvP VE2ehyH0QI0Y2uQ0V1TWOUhPmVrBl3DNxK2GlH/5m/KzZS3j7eNa4YcDsKKOzqd4iMwnacCoeP0 a5IhI2Y7Ve2BARw5cDzh+hlkJPYCI2iXyt7oBA8mVy7CEYxqwcX06qmCY0ZJ84qUHiLW/3jUDrp te4dtGBewOHzdjKbvhf7lhadlzWz5G+ekDkeVUKHExWZNFj5QGg3G6XY3BY7sa+nvI4/wyudAY5 poFFSAcn+XS8oP3XHbNCYwLsJbPd9s+KFuWz6xqapa4ag+j7ZgM1+rNsszwnO1XaS8QfV0WPBBx oCXPO7iiGicUzWiwl6A== X-Proofpoint-GUID: OC9RUsuwvgrrdecfnFNWZ6lFI4OKXQ2p X-Authority-Analysis: v=2.4 cv=F8dat6hN c=1 sm=1 tr=0 ts=69aeddc7 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=R5LHHePp8dzqxDYlWrYA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_04,2026-03-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 adultscore=0 priorityscore=1501 suspectscore=0 impostorscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090133 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: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773068013107158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/arch.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/target/hexagon/arch.c b/target/hexagon/arch.c index e17e714a6ac..0a400bf7a77 100644 --- a/target/hexagon/arch.c +++ b/target/hexagon/arch.c @@ -208,6 +208,11 @@ void arch_fpop_start(CPUHexagonState *env) * model it in qemu user mode. */ #define RAISE_FP_EXCEPTION do {} while (0) +#else + /* + * To be implemented. + */ +#define RAISE_FP_EXCEPTION do { g_assert_not_reached(); } while (0) #endif =20 #define SOFTFLOAT_TEST_FLAG(FLAG, MYF, MYE) \ --=20 2.34.1 From nobody Sat Apr 11 21:30:50 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=1773067806; cv=none; d=zohomail.com; s=zohoarc; b=moUP8ZiMfbbW8ymKd2zaxvRwVJtcXhKbjQJLRy1ZWtm83uTfy+Lr/e3V9YgGgq60zS05JSpffG0aRN0+eC7QpkptLhxfg1xk68iYxXIT4Yz3XZIy7B/Ttz+xi5KqdU7qEUX4AlvE8fuaNulQRrqJEt18PoKwDzdEXSjk8q0d+7c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773067806; 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=qkZ333qjKtqC1dNBPSEnSugI3JoDesMkwlzE3dO1PbA=; b=IknHNvDll3fjcmSAuABxM/DnfZdRUrpZfJmhuOdyhQtsk2IT8OSRFIMmoA2JV1PrLyfrJMTlRSKjy0N27epDywr3Z1W9k1grR8MzaTge31eVls6pbdg92kBVaxoVAZdN8Ny+oFvkeUzIiyIA0XSglx8yuvDaolwdXJkdbIEoWBY= 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 1773067806653913.6978999020936; Mon, 9 Mar 2026 07:50:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vzbux-00013X-6l; Mon, 09 Mar 2026 10:49:12 -0400 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 1vzbuV-0000qd-Lm for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:45 -0400 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 1vzbuT-0005Et-RW for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:43 -0400 Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 629EIpW2890710 for ; Mon, 9 Mar 2026 14:48:40 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 4csyv183tc-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 14:48:40 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2bdff07d8f4so12962007eec.1 for ; Mon, 09 Mar 2026 07:48:40 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be4f82b78esm9322776eec.12.2026.03.09.07.48.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 07:48:38 -0700 (PDT) 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= qkZ333qjKtqC1dNBPSEnSugI3JoDesMkwlzE3dO1PbA=; b=YNfVjgxmnaO5KzZX GUuJ71iwWekP1w4wo87Qh8+Y3xUDBtIfBX7MhQXLFdloxP/8aS8YPUtO7lFoBlmS oB1i1zptMbxS5bs04mvFUmkLU32RvLabsiOoBNRABOatCarvTwcr+AM+3InbJg8V EQ0D0c82OisORzsnlSMMU3e1sygmT9eXHRaCYVxuaTuGATOeBM8ShYHXHGBr/mdx 6zOWSUG/tBbvAAYTLpRMx/+h3S1voAIhMjGLdgKctj4khGuJASZWO/3JotykdFKV lUp9vYJsdTS1OvyFgjYpLfb7twl91H7O20B+pKEiwVi3jwNMrVYUaMaMiptAXwro jLbU1w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773067720; x=1773672520; 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=qkZ333qjKtqC1dNBPSEnSugI3JoDesMkwlzE3dO1PbA=; b=YluiRsuRFxr6+ajuRoMPVFG/Iq45I1MUEwmJnVHc9W3LMmc5XKYX8KF5rvn4GTI0cO PFVBE8KF0b1qfporh8DpAX3fF5bTeWtjO0M51thHyUQmF4r5x8GqXJoh/xNxkzNN6p7Y ubMY9vf24TLtrKlZJFstb8ZchZGIHLPvIM0zSKzRVBgIzuMsaJaz7vIUXYAkPIm3DWTt UGWPClKMy30kSL/dMgsepZN1RTdWYh/AtVeXN4y+Zbx86B6Fr4d66a/0GjxfxjYXcd8B GSjy+kRuWTzo6LmS1mmFX1gbhYvCZp31kdKFZZXwLfB+E4n85otXXDoqKZaSRjshRElf 6HGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773067720; x=1773672520; 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=qkZ333qjKtqC1dNBPSEnSugI3JoDesMkwlzE3dO1PbA=; b=JVq25FhG61VSLRzijOlukD69Bnz9mOkAsXbpzH46Ut9Iwq0o6nk5BZ8QhUX1PYwEjt kCdXpdg+FEkp3CdJ3gQYPP1ZTxMU1tJ3nppDnN5oDnlfNMyHDPtn9M4XhRvceYxiRQ82 X9TMjrkFWkKT988SWzztpY9qnNKZVSDALezyfR0f2nAgrwUWazt7dEXW+zklf1FXiUJ0 8CB7XqRdigdLWxeItP65H2/dV8v5rr0ISD3y8oYtnHK3GMq+FaKxKsUzCwXPJhYdJjOe 2ZCPKKwQYR9KwW0hqT+D/zMj6yCO2D/fMjuOJ0YghA8ic6pRXeCF9EcgILUIG4OiqB1L PD4w== X-Gm-Message-State: AOJu0YwdleIm6x6ubAisBMwYyZrklL92H48T4PxFG+LI/iBUhhsd5beG 5RMDoM2tkUugX8tSpzVk5Jqupo45brb4JPRS3biucl71/nLlCQsuvMHsNK6tSsBt4GVBT0l9CsR C7h4zjqrpLPnGh5LKewT1hs+IwgVhn9mMPQoC1atSNT6UuAtCS7X44znu6joySS78Jg== X-Gm-Gg: ATEYQzw+35+3Xy7HfBGDcPrgJuVXNmolOYtb5cSFvOB0QVYzQDs5FQ2XP0Y0LCWiTs2 urAwzQGzyhsRjaQRksksWoG16PpJ10Jt//5sElxtrgKCdwFuAYRl9DAbnliwsH3PVJCmwcINixn YEYDMPooxOcsyXh9TJ7K4pqzyIzCAguWBEbpRkypWdtXnGa1aRAd4vff4rY2xbmXqvzwdLrVcSH dG5g+GU0zERSyE5vxYH+Y4S5BglGwadnxbWy0DgIYCoxU81w4r7imkM46sr5I1P52YLxWDussEc +R93ZNtzARe6E2cIhoYdNPZvgLZXErn3GjTr7K+SO9KbvV4oY2Z6K7XfFfHgGlg8r/PJlkSiEa3 wEQR8Anh+6Jlujjbqs4Lgu6yDlcW5g/7GcoqUHvLai9yNiu/PLV2ah2iFjOklQgVw6Zxwow== X-Received: by 2002:a05:7300:2156:b0:2b7:da62:a5f9 with SMTP id 5a478bee46e88-2be4e08f9f8mr4345424eec.18.1773067719444; Mon, 09 Mar 2026 07:48:39 -0700 (PDT) X-Received: by 2002:a05:7300:2156:b0:2b7:da62:a5f9 with SMTP id 5a478bee46e88-2be4e08f9f8mr4345393eec.18.1773067718869; Mon, 09 Mar 2026 07:48:38 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 11/35] target/hexagon: Add guest, system reg number defs Date: Mon, 9 Mar 2026 07:47:58 -0700 Message-Id: <20260309144822.877695-12-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> References: <20260309144822.877695-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: 7jpsVQZUf9erQu8y1IzN0tRm9WGfwbgP X-Proofpoint-ORIG-GUID: 7jpsVQZUf9erQu8y1IzN0tRm9WGfwbgP X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDEzMyBTYWx0ZWRfX3iSv0JS/JH3Z m3FBDir0O/R8EA5f1+A8ViyKHyPPjgOaWtS/9vilf5d4ut4xuAwtuyIUEXxsEeIbW67HPEyL9IJ MTWvsRbPlbpoByRf3ML1TKAbm+n6J+IjMrcz/hceRjBwc017Zmv0kDhwhc7R/k+7Tq/X6GPKWjh IgILhEgok2kDBH4/eGI4JdByyfPxQFmg9hwvQqx7m9hHxgAD9f3vACfS44qPPzK9CpUD66eDDbH 6DDnaoh2vAv6qb5gZ31jWTpiNj6HUX/iR5yg5vHbksXmEWh1roWDlJXRJvgi7fSTtz0n2D1UwSb 1knuhtdb/JTGffToHnr1eFg4xs65ZiN0T2nekYnZpaTXfZhXBC7f6oPyQhaNskkS1Q9gDVizupf QfuFFhNazonkQlbwt4hM/USHi23UOwgqsZxCPBO3c40UlDtU/lHFUOW5LPpY9v+Bemwr7qA2g9M heYTMg0u0HaHlcm3hSw== X-Authority-Analysis: v=2.4 cv=Cuays34D c=1 sm=1 tr=0 ts=69aeddc8 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=pUoahe-fvFp-T0RBf7EA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_04,2026-03-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 clxscore=1015 spamscore=0 adultscore=0 priorityscore=1501 phishscore=0 suspectscore=0 lowpriorityscore=0 bulkscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090133 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: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UPPERCASE_50_75=0.008 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773067809327154100 From: Brian Cain Signed-off-by: Brian Cain Reviewed-by: Taylor Simpson --- target/hexagon/cpu.h | 7 +++ target/hexagon/hex_regs.h | 117 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 124 insertions(+) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 937194e460e..3825de43ee7 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -20,6 +20,13 @@ =20 #include "fpu/softfloat-types.h" =20 +#ifndef CONFIG_USER_ONLY +#define NUM_GREGS 32 +#define GREG_WRITES_MAX 2 +#define NUM_SREGS 64 +#define SREG_WRITES_MAX 2 +#endif + #include "cpu-qom.h" #include "exec/cpu-common.h" #include "exec/cpu-defs.h" diff --git a/target/hexagon/hex_regs.h b/target/hexagon/hex_regs.h index bddfc28021c..214b7b8fde8 100644 --- a/target/hexagon/hex_regs.h +++ b/target/hexagon/hex_regs.h @@ -81,4 +81,121 @@ enum { HEX_REG_UTIMERHI =3D 63, }; =20 +#ifndef CONFIG_USER_ONLY + +#define HEX_GREG_VALUES \ + DECL_HEX_GREG(G0, 0) \ + DECL_HEX_GREG(GELR, 0) \ + DECL_HEX_GREG(G1, 1) \ + DECL_HEX_GREG(GSR, 1) \ + DECL_HEX_GREG(G2, 2) \ + DECL_HEX_GREG(GOSP, 2) \ + DECL_HEX_GREG(G3, 3) \ + DECL_HEX_GREG(GBADVA, 3) \ + DECL_HEX_GREG(GCYCLE_1T, 10) \ + DECL_HEX_GREG(GCYCLE_2T, 11) \ + DECL_HEX_GREG(GCYCLE_3T, 12) \ + DECL_HEX_GREG(GCYCLE_4T, 13) \ + DECL_HEX_GREG(GCYCLE_5T, 14) \ + DECL_HEX_GREG(GCYCLE_6T, 15) \ + DECL_HEX_GREG(GPMUCNT4, 16) \ + DECL_HEX_GREG(GPMUCNT5, 17) \ + DECL_HEX_GREG(GPMUCNT6, 18) \ + DECL_HEX_GREG(GPMUCNT7, 19) \ + DECL_HEX_GREG(GPCYCLELO, 24) \ + DECL_HEX_GREG(GPCYCLEHI, 25) \ + DECL_HEX_GREG(GPMUCNT0, 26) \ + DECL_HEX_GREG(GPMUCNT1, 27) \ + DECL_HEX_GREG(GPMUCNT2, 28) \ + DECL_HEX_GREG(GPMUCNT3, 29) \ + DECL_HEX_GREG_DONE + +#define DECL_HEX_GREG_DONE +#define DECL_HEX_GREG(name, val) HEX_GREG_ ##name =3D val, +enum hex_greg { + HEX_GREG_VALUES +}; +#undef DECL_HEX_GREG +#undef DECL_HEX_GREG_DONE + +#define DECL_HEX_GREG_DONE 0 +#define DECL_HEX_GREG(_, val) (1 << val) | +static inline bool greg_implemented(enum hex_greg greg) +{ +#if NUM_GREGS > 32 +#error "NUM_GREGS too large for greg_implemented(): update `impl_bitmap`" +#endif + static int32_t impl_bitmap =3D HEX_GREG_VALUES; + return impl_bitmap & (1 << greg); +} +#undef DECL_HEX_GREG +#undef DECL_HEX_GREG_DONE + +#endif /* CONFIG_USER_ONLY */ + +#ifndef CONFIG_USER_ONLY +enum { + HEX_SREG_SGP0 =3D 0, + HEX_SREG_SGP1 =3D 1, + HEX_SREG_STID =3D 2, + HEX_SREG_ELR =3D 3, + HEX_SREG_BADVA0 =3D 4, + HEX_SREG_BADVA1 =3D 5, + HEX_SREG_SSR =3D 6, + HEX_SREG_CCR =3D 7, + HEX_SREG_HTID =3D 8, + HEX_SREG_BADVA =3D 9, + HEX_SREG_IMASK =3D 10, + HEX_SREG_GEVB =3D 11, + HEX_SREG_GLB_START =3D 16, + HEX_SREG_EVB =3D 16, + HEX_SREG_MODECTL =3D 17, + HEX_SREG_SYSCFG =3D 18, + HEX_SREG_IPENDAD =3D 20, + HEX_SREG_VID =3D 21, + HEX_SREG_VID1 =3D 22, + HEX_SREG_BESTWAIT =3D 23, + HEX_SREG_IEL =3D 24, + HEX_SREG_SCHEDCFG =3D 25, + HEX_SREG_IAHL =3D 26, + HEX_SREG_CFGBASE =3D 27, + HEX_SREG_DIAG =3D 28, + HEX_SREG_REV =3D 29, + HEX_SREG_PCYCLELO =3D 30, + HEX_SREG_PCYCLEHI =3D 31, + HEX_SREG_ISDBST =3D 32, + HEX_SREG_ISDBCFG0 =3D 33, + HEX_SREG_ISDBCFG1 =3D 34, + HEX_SREG_LIVELOCK =3D 35, + HEX_SREG_BRKPTPC0 =3D 36, + HEX_SREG_BRKPTCFG0 =3D 37, + HEX_SREG_BRKPTPC1 =3D 38, + HEX_SREG_BRKPTCFG1 =3D 39, + HEX_SREG_ISDBMBXIN =3D 40, + HEX_SREG_ISDBMBXOUT =3D 41, + HEX_SREG_ISDBEN =3D 42, + HEX_SREG_ISDBGPR =3D 43, + HEX_SREG_PMUCNT4 =3D 44, + HEX_SREG_PMUCNT5 =3D 45, + HEX_SREG_PMUCNT6 =3D 46, + HEX_SREG_PMUCNT7 =3D 47, + HEX_SREG_PMUCNT0 =3D 48, + HEX_SREG_PMUCNT1 =3D 49, + HEX_SREG_PMUCNT2 =3D 50, + HEX_SREG_PMUCNT3 =3D 51, + HEX_SREG_PMUEVTCFG =3D 52, + HEX_SREG_PMUSTID0 =3D 53, + HEX_SREG_PMUEVTCFG1 =3D 54, + HEX_SREG_PMUSTID1 =3D 55, + HEX_SREG_TIMERLO =3D 56, + HEX_SREG_TIMERHI =3D 57, + HEX_SREG_PMUCFG =3D 58, + HEX_SREG_S59 =3D 59, + HEX_SREG_S60 =3D 60, + HEX_SREG_S61 =3D 61, + HEX_SREG_S62 =3D 62, + HEX_SREG_S63 =3D 63, +}; +#endif /* !CONFIG_USER_ONLY */ + #endif --=20 2.34.1 From nobody Sat Apr 11 21:30:50 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=1773068175; cv=none; d=zohomail.com; s=zohoarc; b=Jn9YbZfjxDlPhVwfNr4NK7sM8bBvDQkTWtcIL/R0gi0tUTgvmdhx56htRZyIudb6+2Joo1+jCIZ0a3+8wq78e5IxJBXIIZNxJdgofn0XCx5ewm41Y/FXyQE6LTkXgPzkql+cjJduW9mhmZciuXQnpvyIzlFa9NzjSIwne+4lQOw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773068175; 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=aWRD+KrLQiGVCgdEaoUtXoeKRU4l4yLdoes59zq7v/Y=; b=m4RMA7KgoaEThOtQBRJfkiIgUOFIhuwEdkLxcUbnjKwZf2dnws/ydwh7sEkomg3fulRw0OtNsaZv8eASXi1oZq5MmEg5nQrvA8mVwHVl/OA1WVq1+NWC6f8x2TuPNOWzQlb0vajkx4fCGQX2jJgPZsPHoewvEXM9YYl4EzJtASU= 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 1773068175108148.89819445485205; Mon, 9 Mar 2026 07:56:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vzbut-000117-Kg; Mon, 09 Mar 2026 10:49:07 -0400 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 1vzbuW-0000qn-Lk for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:45 -0400 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 1vzbuU-0005FN-OZ for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:43 -0400 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 6298WEiP3773310 for ; Mon, 9 Mar 2026 14:48:42 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cstsa98e1-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 14:48:41 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-2ba9a744f7dso12978782eec.0 for ; Mon, 09 Mar 2026 07:48:41 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be4f82b78esm9322776eec.12.2026.03.09.07.48.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 07:48:39 -0700 (PDT) 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= aWRD+KrLQiGVCgdEaoUtXoeKRU4l4yLdoes59zq7v/Y=; b=AumCFKOaTD0JTudG zESrpYKen+qiWfhSpi/bAfaE2tzXbvxOJX/coXPfkeioFoTic7TkKxlQFHDsT9vW CqtKrst+c86bmaa6XtLQYTFt8vH0BTt1Ehbz75KxqjtTWvZbIWCk9TIcm6wUfkvo Avn5F8fw5aWrCXqY4AqrCQtk6xVLCrQzHgxRv66SImaKVtGpi2yamth+zoJhO8kd ghrsDzrgiEC5xUizopBgjSZ7SB23ZoFi2ZaETiBcnKUm+uLgxypFvLYxRze+usWP fS5ZIiWIf/MsCcKhZ8T8gBRfpRMbYPl5759ruv4ThoybPaBYNYAWkPxnkSl6Qvl6 NmLtzA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773067721; x=1773672521; 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=aWRD+KrLQiGVCgdEaoUtXoeKRU4l4yLdoes59zq7v/Y=; b=bK2iGXPyOyxnYsSWJ83M549v2lV2uPFcKPKTooUqBkMTekrb7PZENd0ugvvvE92Uvh e/9sKHzfm9E2moQyAw/lwDnf8SoLK8N6w2cXr0EZtAKxUiS7lV94d8KF/GotWHJlmp69 YHU9j3rDmdm3QP3+aeR9aXFp23d/GsGwPU+tfkhKvkCpvI56a/yvk0bZ98sq+QnuNQ5y op6c0pA+q8ur3BBVDhYPi/HiB3G5XsU0SPIHvqnBtcWQTk92GycuXioN2TROSB85aba2 OlhvkPWDCAWoPrrxF9f+UNy1e9cdBNrpDs0KrWRm82VRw5sMdswl8utanDgiF3VBqkTd mj9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773067721; x=1773672521; 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=aWRD+KrLQiGVCgdEaoUtXoeKRU4l4yLdoes59zq7v/Y=; b=th98kBMtCnNoxFyLU09wZDSCmub8yBnAzOTCsqnSUYI2hjjLF4VR41E4jcmkidEs7m hQNR9grXdIjlQLTT6jZRA6mbIuAHzJDMBSrjEXTRy57HgRxXwacBHyA/ocS3kzBKmii2 Rkiapss4Rybdjshk4/GTjhObxnYLiw7bNUpHivfNebsyzMnwlSE5DH+jSYBGhXbNOwFa 6P//BHxxorWxiNtl9mQb8QwkRByAxuZMvTltPxLwOd5AizeAxX7Z/lUzLmeZI46nXPqQ mKqPY8ap5MikVB+E1ULZSHauIiSXrF07NAcVGx8jXr/Q0BwWk3clZ5N2tssxa61tNern YvMA== X-Gm-Message-State: AOJu0Yw6ZWuHkYRx+8M19TOmTfSb9cUBS/p89YsevODGjbkkuTTB7Eky IcvDz0fTDACWLe++KFJ9+cuHrA40HfTT8MlF2V3t3pWHxCLUnhxKfG9fnJ2GOIK7zwBu0S+9eqS OCpMrNhmv3/4ofAMDU5wSaYDiIejkWkrZyh+ydaSGzv4sE9bqd7CwiDqhO83W0xmBXQ== X-Gm-Gg: ATEYQzx2sO7obPiv0JOOvS5OQCcrjB/gA6SxVVIi3O3+hTpaCY8xNyIlwunNBqnLro2 xfydmJXAeRKccbZkZ45UgdPjgF4vLSvU9mSajEEhpHaCpZ35jXo6Dj4FhcAZp4+DCv0t4zTwqd7 GYVM2ETAj0npkUZdTwWaWNAX9r68Z2E742WhimHvHiWTBL2snkfKuRJvUelNUJ3BSgGCqZ5GIpk XmpEgPvh9Qiesnr7YcOcr+j/v5bkqoVNs0kEf4lgp/61GNKdxKjURLrHKx8N/U3Q8Lg/Y0IiglG GSDFC6hgx0yJWWXejG8a7Otg4w74GMmf4kH+Mtm4Z/y+PEh0ovkayLAXxFoMAQ7I/7bj1OGT8xW mOqsuIv4dRvROxlEpROgJs2rIdPKF4LIbcKuudL7kk43UsEJblwAOBbHhPVDPCyPau3EzmQ== X-Received: by 2002:a05:7301:5795:b0:2ba:7617:eeb1 with SMTP id 5a478bee46e88-2be4deaedcdmr3878597eec.12.1773067720610; Mon, 09 Mar 2026 07:48:40 -0700 (PDT) X-Received: by 2002:a05:7301:5795:b0:2ba:7617:eeb1 with SMTP id 5a478bee46e88-2be4deaedcdmr3878586eec.12.1773067719980; Mon, 09 Mar 2026 07:48:39 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 12/35] target/hexagon: Add guest, system reg number state Date: Mon, 9 Mar 2026 07:47:59 -0700 Message-Id: <20260309144822.877695-13-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> References: <20260309144822.877695-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: AlMtn0_PB1xebgQi9JFvUIKaO-KitXtT X-Authority-Analysis: v=2.4 cv=I+Vohdgg c=1 sm=1 tr=0 ts=69aeddc9 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=ikZfMmNF8Hme0_TNbpMA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDEzMyBTYWx0ZWRfXyTxXUzt5jxvT sS24QTHkXxCEc2hvN2ls+JmJ30foASIzsK06d0ze5B1qCM7fR4ZAkXzRoPxUOB0oq2rrda7tp7u i8cHn+ZH+WW2z0+KV9JBhx3tjrI1JPGmSsfv08jQO1PV91pBDZE2bOH68pgmNlp5j3Rnid5z8AM P8DdCmlwbqQuHEyU9pkHTAz888m76x/ZBXPuRT3fyRdF38gfEBeQeEb6x6WZ5pPcpgsi92WtZW1 luHTNPk3ZCEEk+cxPvRl/hXsHyOxF3rs6SyIX9QTu1ryuyz2iEZEvO9tI58IsCoqyyqtwhImDsh wxSQU8b2CWS2EvF0y1r7l9Xj46lj0NKGYRaAgFVodvXBGXDORgN+2CDWiFc5oRHVDhhN3wl2z5m pKR3aVNYEgDjKC8J6bZFLlk2+O2Qv+5fIirHRGEsg1xcaztSkyOtiw0vJhe4nwEdGS06eV9E8sV GYYeEPGYWoAOWp+jEsg== X-Proofpoint-ORIG-GUID: AlMtn0_PB1xebgQi9JFvUIKaO-KitXtT X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_04,2026-03-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 spamscore=0 malwarescore=0 suspectscore=0 bulkscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090133 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: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773068177163154100 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 11 +++++++++++ target/hexagon/cpu.c | 5 +++++ 2 files changed, 16 insertions(+) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 3825de43ee7..3562965c88a 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -99,6 +99,17 @@ typedef struct CPUArchState { target_ulong stack_start; =20 uint8_t slot_cancelled; + +#ifndef CONFIG_USER_ONLY + /* Some system registers are per thread and some are global. */ + uint32_t t_sreg[NUM_SREGS]; + + uint32_t greg[NUM_GREGS]; + uint32_t wait_next_pc; + + /* This alias of CPUState.cpu_index is used by imported sources: */ + uint32_t threadId; +#endif target_ulong new_value_usr; =20 MemLog mem_log_stores[STORES_MAX]; diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 1f172404608..6fabfaad6d2 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -306,6 +306,11 @@ static void hexagon_cpu_reset_hold(Object *obj, ResetT= ype type) set_float_detect_tininess(float_tininess_before_rounding, &env->fp_sta= tus); /* Default NaN value: sign bit set, all frac bits set */ set_float_default_nan_pattern(0b11111111, &env->fp_status); +#ifndef CONFIG_USER_ONLY + memset(env->t_sreg, 0, sizeof(uint32_t) * NUM_SREGS); + memset(env->greg, 0, sizeof(uint32_t) * NUM_GREGS); + env->wait_next_pc =3D 0; +#endif env->cause_code =3D HEX_EVENT_NONE; } =20 --=20 2.34.1 From nobody Sat Apr 11 21:30:50 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=1773067917; cv=none; d=zohomail.com; s=zohoarc; b=ROTggjvdujSvy9TVZt/AODXCrzGL+Z3me0z+Fd8cd4pAsO+5rw2jGvMDCbHYjvGA+VYXdAcueJTifQyDtDV/DmqWpMoV6GZiMtrHEMenJkRY1gHZfNL+3buqwhRbza9D7FP/cZGbQKS/3r2ZgSNbotioFdXCsKXvAmpzN6/uk6E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773067917; 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=if4CEig/W9qr3T+70sM54RDPXSz54C4WbpChDpD4mU4=; b=Oq1UxkbplezkMd3xtz0FNgtW9+qfIWyHhPuYMivyWsN/HOW9wnp5Yj4KJQrw3cn9/tcJOBzz9wHaNzdTsAilrScPZJ226i15Ep6hu+pSHV68LAT44Wfz+NJz3I21K91RhuPwy+BcvcgGS1g9gwGeCxcu/tnrGye8OkV/TqhomU4= 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 1773067917229590.4833139612344; Mon, 9 Mar 2026 07:51:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vzbuu-00012O-Qz; Mon, 09 Mar 2026 10:49:09 -0400 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 1vzbuY-0000qs-3g for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:48 -0400 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 1vzbuW-0005Fe-Ec for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:45 -0400 Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 629EXm7r830357 for ; Mon, 9 Mar 2026 14:48:42 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ct03282b7-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 14:48:42 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-2bdf6fe90a9so11044350eec.1 for ; Mon, 09 Mar 2026 07:48:42 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be4f82b78esm9322776eec.12.2026.03.09.07.48.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 07:48:40 -0700 (PDT) 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= if4CEig/W9qr3T+70sM54RDPXSz54C4WbpChDpD4mU4=; b=hHDRs29qGByw7Dz/ vYCTte9YTYXkXLxz+f81HTuNPADs5WEc76Dc4N3l6WCFiheleGiPI2a4khrCRxE9 MHxFpDkAqhNYgYah4QQMKhNFeYGS1AoGLACQ2v4UHddaIqMlkddtOcWJNPOlF/7e eDApOJAJRsW7KSrO3PyD9qc9pCNkMoQk9lschou21wynaupBo19dlizR/N6dTZNv wFTCTMmxL7mITmhXdUk3mrv1ScCrbqXYZHYYIY0TJrY2YzLtE94wMe1/pw6yhEu5 VvOPaDczl+HSMxzuqfbOLMXTreVzgGIpdnxgUQ5FIz1g9iN/yBcmg42ZwnglfwYu gii72A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773067722; x=1773672522; 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=if4CEig/W9qr3T+70sM54RDPXSz54C4WbpChDpD4mU4=; b=HAPy/zUsHKXUA0zZRYxPD4KLAYcENJmmrjzmMXhJ5y3NwQ2FEeE1SpHwjscjTjc7iq LomwYT7r2ZZ6viRQnAXhQHcltDD8/RBZHP/DZCWrL1Hotlh/1AdxRrnbYkA+ZnICHGIU sh5m7/jG6KJcmCGexk1Nivk+Z5/cpJiSZWRkZtiszKLpem+u5PPo1xnDP/gApBlOLkeP Z7ExJpxZ8swvJIxdaUQ6DGPGAUrP6NPCOX6MsS57UYGdlfExJU8RsXznoSkKwOlsE9ru 7sRXMBDccEvrnee/DJD/xMBkcTrIymmEhaSrva1S3/t/vwEZywtpn2jEqFU1NFPKrEhb SbFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773067722; x=1773672522; 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=if4CEig/W9qr3T+70sM54RDPXSz54C4WbpChDpD4mU4=; b=hrHa/yGIJHF7AXd62a4aYDw0vBL0g88HduWvCX1GbRhN57yXPbq7ch0XBdSfzp56gA 4R5k4kAXFjzYoxYorMJkekFef+1RPBxPX1W9mnytIk42e4jjsX+s/k1gWDl2X8vUJgi1 c0l/iCo0lXF8AKAhKvxg2gSbJ2K7VOLmkV7MEJ83ZmEAtrpUiUKHi9uvtPvAAFuGyHCL H8TsDQzCukvn6gqgFtbB/gQpqAG6ZSNUVDouC5dB6+kxD3F+nNY7bXrGNSi/7SUmEUN7 emW+COmjbLQfzwg3WOPICcouEiBch+bbboyIYAfL9xig2b7LsdJVnVWp16c1ZCjfMsq6 tLDw== X-Gm-Message-State: AOJu0YxPb1KXmN5fUZ5+5GGBZCS3snbwcRTF38ObxC/8jP7CfkoRAfKj xs7x5FS6QrTQvPvwZkdKAUJL5HzTH791vp48WFlKS8UKh2LELd8Z7eMrXLMBUoObaf9+wx1zSZc 6QHtEwcoXSgs2iQrrBjqkx7TuQ9H3BDEQ6e0QqyaL6hF8mUTE8t0atgsTN9SdQzrLuw== X-Gm-Gg: ATEYQzyWRPn7tn6WZ/tYZ8MNwvnDSZoXnrF3BbvVJi3vnmzfHOlYrW/2mHvqfYgyK3l cuKtqrNRsScQ0hr7eTPvYI+DvQIc5pSGDpiT4/XCvuk7s6f3w81MI3bWbukJocIroh/ITYPteHJ t27/8q2eYhbtoazz+drvqZ4iEYtTH4x7gjKtj50fJpq3XT8EqyDgJI1zE+ALLd9INGtPFLN2If5 hk8Og4N9jqaW7Hvbh0MF5ToOlWjWA3JK3HvjhX14LGYxRan9DSMu4G2okBO8UdL4HXMX0ZVd2PU ajgAHRTu3K62Bahb8G4/zS1h3L6ofd5EQGlSXRadxr+8JM1LHDMzpszX8JSEwEpqRAX6Z5vobRs 5b+HtYPWNWyB/g2/xoEbY2JsGKL+lLycU1YZ99uSoEpvFZrNY4r2A5SSC0INoHjRyC85f1g== X-Received: by 2002:a05:693c:2b04:b0:2bd:fbc6:4134 with SMTP id 5a478bee46e88-2be4e027480mr4308249eec.23.1773067721412; Mon, 09 Mar 2026 07:48:41 -0700 (PDT) X-Received: by 2002:a05:693c:2b04:b0:2bd:fbc6:4134 with SMTP id 5a478bee46e88-2be4e027480mr4308233eec.23.1773067720898; Mon, 09 Mar 2026 07:48:40 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 13/35] target/hexagon: Add TCG values for sreg, greg Date: Mon, 9 Mar 2026 07:48:00 -0700 Message-Id: <20260309144822.877695-14-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> References: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDEzMyBTYWx0ZWRfX6LducXVDFYH8 t1ZY8gVgEmmzQFk+LRmQnSRjqEc7ey8XlRJlmNJ3yglXSjE/Ay+8CMO5Jocxhk5lrcWNDpt4mbS P8xsiCmcxmKKTV+oEsv9+kegEJQ8MiCeG1cN4WNRXYLOzQC85SLU1tS3WcZopHa7ErRUJgTV+oN Ma5p2Pe06bJ+Uz+bCzHMIpH3VNia9lr+lWHzTeaMd1lMPTOEVxXpxv541E07geLxv5wzTbha2IC gHN6tbx4dcugEeOLvAVUMefB0//rHQqOvZy/KdhCpsLbEcpWKeygJpsNeldBsQkC4y8uCaSv5EK j71AWaWsyt6/3okZbRT9QiVwtVWX9ugVm5cPdGqtS20rYAHYgSfhT1Z+JjgeidvyBLsu15phZcL 6pv9dDxB7l2l7cGyFEbQxnZiWPNX+NovmsAIQONElH/i4lMgS067hMQ9mACFktzHprJYxYKuLyr IFXhXTB8+2o9T0/wd+w== X-Proofpoint-ORIG-GUID: 5GRPT6phIMxImrl_fYeh8WdkOQUpJgaz X-Proofpoint-GUID: 5GRPT6phIMxImrl_fYeh8WdkOQUpJgaz X-Authority-Analysis: v=2.4 cv=WtEm8Nfv c=1 sm=1 tr=0 ts=69aeddca cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=md9odPwznpFxaQMInv8A:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_04,2026-03-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=0 spamscore=0 bulkscore=0 priorityscore=1501 lowpriorityscore=0 malwarescore=0 phishscore=0 adultscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090133 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: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773067918706158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/translate.h | 5 +++++ target/hexagon/translate.c | 16 ++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index 2804e08ce57..40d365f4250 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -281,6 +281,11 @@ extern TCGv_i64 hex_llsc_val_i64; extern TCGv hex_vstore_addr[VSTORES_MAX]; extern TCGv hex_vstore_size[VSTORES_MAX]; extern TCGv hex_vstore_pending[VSTORES_MAX]; +#ifndef CONFIG_USER_ONLY +extern TCGv_i32 hex_greg[NUM_GREGS]; +extern TCGv_i32 hex_t_sreg[NUM_SREGS]; +#endif + =20 void hex_gen_exception_end_tb(DisasContext *ctx, int excp); =20 diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index 571ba9cae41..cd6affa2f49 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -66,6 +66,8 @@ TCGv hex_vstore_size[VSTORES_MAX]; TCGv hex_vstore_pending[VSTORES_MAX]; =20 #ifndef CONFIG_USER_ONLY +TCGv_i32 hex_greg[NUM_GREGS]; +TCGv_i32 hex_t_sreg[NUM_SREGS]; TCGv_i32 hex_cause_code; #endif =20 @@ -1099,6 +1101,20 @@ void hexagon_translate_init(void) =20 opcode_init(); =20 +#ifndef CONFIG_USER_ONLY + for (i =3D 0; i < NUM_GREGS; i++) { + hex_greg[i] =3D tcg_global_mem_new_i32(tcg_env, + offsetof(CPUHexagonState, greg[i]), + hexagon_gregnames[i]); + } + for (i =3D 0; i < NUM_SREGS; i++) { + if (i < HEX_SREG_GLB_START) { + hex_t_sreg[i] =3D tcg_global_mem_new_i32(tcg_env, + offsetof(CPUHexagonState, t_sreg[i]), + hexagon_sregnames[i]); + } + } +#endif for (i =3D 0; i < TOTAL_PER_THREAD_REGS; i++) { hex_gpr[i] =3D tcg_global_mem_new(tcg_env, offsetof(CPUHexagonState, gpr[i]), --=20 2.34.1 From nobody Sat Apr 11 21:30:50 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=1773068017; cv=none; d=zohomail.com; s=zohoarc; b=fZAAi6/8bs+HTHHPcvtKMUs7G1J0WgKRl5vKLGlyCnXSPOJh4APl5mZzS4IZUBSQf0egiKiA2CuUtOMSS9d5vzDcR4+7cenWCTAINzmICUDooVjtUdaBt/vjwlRsF4efwLooQgKoUQx+DmuMLKSsgBTkk7b5OUo6TU1fY6wGKDo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773068017; 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=l1Wa3QP/BsqwVLqinVEWhK+P/IYu74zTONu3xGLJHlQ=; b=AdTERCFOqnn3TTfy/IToGcO4P7V2HS0IHP9Ye1rg46gslQcGXU2DNrh1BsfHrsHla0iv1ekHOfYX5KmnTdhT3lZsWfuAYQOoTFp6NXJnApOcLfuFP34jTySfC+OkgCEn6xaStIeSQfibPeuNHS1nvAzQBDQIWkgyWl/4q3be/eU= 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 1773068017050434.18258469643763; Mon, 9 Mar 2026 07:53:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vzbuv-00012u-9w; Mon, 09 Mar 2026 10:49:09 -0400 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 1vzbub-0000s0-5D for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:54 -0400 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 1vzbuX-0005Fx-Sf for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:47 -0400 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 629Dr5U54027525 for ; Mon, 9 Mar 2026 14:48:44 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 4csyfy06hw-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 14:48:43 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2be27d4e3e5so79010588eec.1 for ; Mon, 09 Mar 2026 07:48:43 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be4f82b78esm9322776eec.12.2026.03.09.07.48.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 07:48:41 -0700 (PDT) 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= l1Wa3QP/BsqwVLqinVEWhK+P/IYu74zTONu3xGLJHlQ=; b=CbJHgUYGSH92kqhO 5RF0YM0Ai8KrLC6qVVHi9W1WTef9LZX+3505dEHhCMrTxuJWcy/HUbiZGKMwkpWI TYjAzFGQIi0csaGg81dbuqWHflcQADjNXUTuXUi4zAdCmns0JwCbX1G7CKKXiMi2 5sDsgw4A4imla53zGDGxPeDIaBjEbmK7AXH6Nm2qfNIAGmtQ/fMbtf8JEaPu3687 5Xh1zPjw8p1Gak2H0mLMLhQjsqke5AVV4MlkQhVJKgQILKOpNfKATJ77OdyjI7ld /mLHnFpucxEY81d6hkCOXhJsqDvzU1eQa7kd17cgYLy4YdZh5xRUaKSZwWBUzepn 8OmBHA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773067723; x=1773672523; 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=l1Wa3QP/BsqwVLqinVEWhK+P/IYu74zTONu3xGLJHlQ=; b=jQMQK0CYovKRIo6QMpI8DJgRqRxAfTmNpDVJzAlbbwiDZ3YNszN12t7kWwgMEogYGq IDLwwmptGD7VT2VPpxOozNLqzwyEibOz/n3yNL8Cy+R0o/jtuwpX+HB/8SdkjorrsfBx X9yedEVfy3+VQtba8o8XVMrJqs9TpRNGPy8kckLIbA2ZNzLsUwGXOMHM0UfCNcHt2PPl gvPBvw6gm3wp5sxGKqxsaLv1rchrCDHQ1/MVxq3Sdq0Q+3kDTldlGOC1kZBlrwsNoD2/ wPgsvAir42IlU+4jit5dFVFUZWvPf6GaaM3ZChG+/NFkHkJZ+pMPc810/j9modU3mm51 tK9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773067723; x=1773672523; 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=l1Wa3QP/BsqwVLqinVEWhK+P/IYu74zTONu3xGLJHlQ=; b=aIz0O9boYcb3dO0/IzDqiEFZxfTLksroAUkc2YEjrSPEGNGYsVeLGs7w+hWZAepAj1 jtdTe+LWSKuiDFoOS/KAiZz9pAI91K5zR49tJda0mBDO91rmv/W4gGC2UT3NZQ/d91m2 ogBe+5zj0nKvB4l8jsp9KzQI7Yc+AkHs6d4+JaPOLnaxVQBS37LZatnfaVPzAtGlgwED x/luAz47nypW3rJyAU23cKMmdznD+l3B1VUpFfr09VVfILVwuFPQ/Nea96gkRMVVVWIC nITb2E/OAUy/sSZBedHh+IT43lPi1dYi/pKGcZo8T/ineoZYMmf+LD59Y3y1w2KqfyP0 9ROg== X-Gm-Message-State: AOJu0YzBd3gPxGPS/MSRcMRCQISmL0Samx9xUYOG9wVd78VaOGaeUPtZ XqzMxXAkVIorTWaP80W3kZ896xOX05yG04QbWeMIh9gc2ivP3crzxnERE7OrKYqEkaGT97e3EFp QbLMp2VbDP5USFARkuTS/LK13h0xEko1XPJJ0JKBnUV8ifs4p0D4E8TGkQToss6u3FA== X-Gm-Gg: ATEYQzwH3Mi5Mg7Ze/PMtZHefw06PLIRvo3OS/yHslwEqVVve2bpJqCqZb/BhG2FF6C J0ToC+Cl7JlDsEy5oX9tB8ZRyu1VGpuLim7zoWSdqcO3eboBY5TlAtnpkkn/FRYTTibqGWncVRq R5Sx8Fi9xv4PVx/CnbS9Kqthp8PHfDloQc1Wl3YE8U5thi1dU9GpyVPJ94fxTwEKlesugSmdF5f 9HyCFXNklgDx7wVmRd5kP0hbKJ2/bkPIdr6GhGoanT5Q6iSOYQTOdwTFaCeVEKqXZtTXJEqtbjk SpA4XZp9258O2Ywt5RKCMjThMKQwXaoSFVe07TMBPuXNIyze3xGbBnJ057XzJACjUMGCw0+kKgz 42nD8oJ4ce4hXMi+pqT9nMN8PIFaGptcLtMhFD2+M1RRpDafJzKrXUhpVgHd6EfvFj6JeOA== X-Received: by 2002:a05:7300:1486:b0:2be:2e4c:209c with SMTP id 5a478bee46e88-2be4e02c4f2mr4819502eec.20.1773067723110; Mon, 09 Mar 2026 07:48:43 -0700 (PDT) X-Received: by 2002:a05:7300:1486:b0:2be:2e4c:209c with SMTP id 5a478bee46e88-2be4e02c4f2mr4819485eec.20.1773067722447; Mon, 09 Mar 2026 07:48:42 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 14/35] target/hexagon: Add guest/sys reg writes to DisasContext Date: Mon, 9 Mar 2026 07:48:01 -0700 Message-Id: <20260309144822.877695-15-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> References: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDEzMyBTYWx0ZWRfXxQ0iEVH4sy2y mGZDcJ2Gu7psnw3b8c+I0mW1bhCtrzfmm49aPtoTNjbBcMHjeiuHvvYrIR8W9IIwiDFKAqN4uPS UcxF5BIHVHuTMDHbjqvl8jB1IACjfD/ZLn8Ynr9xGsSufrAoRADAwf2vc4J8LDOIGscfP4rmkNU C6T2TLuqmMF3G52NsjoBgRn/Onu/459plrFFi0zv66COqly7QWR3VA6/VXYTeMTnYYHLeDaR3eq zTX/6wr2jyr/amWLDiW/T2IQM//MrYXLupSx8a6jDkXhe8i6+ZxEpaxCBrCIuHaI4ekMxTz84PU ow8W7exQoqcLyAUBkAGDaeIcmPtWKS6E01T+UT6k0lZJRxOU+dAc+krankYweHaw2leB3BevarB O+2jTjfNY45R8J8P5bcHqPwqBAwoinPcy5iDh4F6rwLJQQSR14x/6usEsc95N7aMsYDJJ0RHYGz ST0cYgBYsTn7/nd3jZg== X-Authority-Analysis: v=2.4 cv=OcmVzxTY c=1 sm=1 tr=0 ts=69aeddcb cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=tdgd3nfel_K54e3JQaMA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: AXq1vxhkztnEEJ7Uu35JwV1d1hX04uHs X-Proofpoint-ORIG-GUID: AXq1vxhkztnEEJ7Uu35JwV1d1hX04uHs X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_04,2026-03-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 phishscore=0 clxscore=1015 adultscore=0 bulkscore=0 suspectscore=0 priorityscore=1501 lowpriorityscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090133 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: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773068018519154100 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/translate.h | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index 40d365f4250..7e528379db6 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -40,6 +40,14 @@ typedef struct DisasContext { DECLARE_BITMAP(regs_written, TOTAL_PER_THREAD_REGS); DECLARE_BITMAP(predicated_regs, TOTAL_PER_THREAD_REGS); bool implicit_usr_write; +#ifndef CONFIG_USER_ONLY + int greg_log[GREG_WRITES_MAX]; + int greg_log_idx; + int sreg_log[SREG_WRITES_MAX]; + int sreg_log_idx; + TCGv_i32 t_sreg_new_value[NUM_SREGS]; + TCGv_i32 greg_new_value[NUM_GREGS]; +#endif int preg_log[PRED_WRITES_MAX]; int preg_log_idx; DECLARE_BITMAP(pregs_written, NUM_PREGS); @@ -80,6 +88,34 @@ typedef struct DisasContext { =20 bool is_gather_store_insn(DisasContext *ctx); =20 +#ifndef CONFIG_USER_ONLY +static inline void ctx_log_greg_write(DisasContext *ctx, int rnum) +{ + assert(rnum <=3D HEX_GREG_G3); + ctx->greg_log[ctx->greg_log_idx] =3D rnum; + ctx->greg_log_idx++; +} + +static inline void ctx_log_greg_write_pair(DisasContext *ctx, int rnum) +{ + assert(!(rnum % 2)); + ctx_log_greg_write(ctx, rnum); + ctx_log_greg_write(ctx, rnum + 1); +} + +static inline void ctx_log_sreg_write(DisasContext *ctx, int rnum) +{ + ctx->sreg_log[ctx->sreg_log_idx] =3D rnum; + ctx->sreg_log_idx++; +} + +static inline void ctx_log_sreg_write_pair(DisasContext *ctx, int rnum) +{ + ctx_log_sreg_write(ctx, rnum); + ctx_log_sreg_write(ctx, rnum + 1); +} +#endif + static inline void ctx_log_pred_write(DisasContext *ctx, int pnum) { if (!test_bit(pnum, ctx->pregs_written)) { --=20 2.34.1 From nobody Sat Apr 11 21:30:50 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=1773067988; cv=none; d=zohomail.com; s=zohoarc; b=hznQcgia0HmSZj1PlOD+KNrGreKn3yeM0tHSH6ygxp4gh8r19/9KnrgDLHjmno3vxF0bf8z2B+XQyIt1Dqtb2lZCRHFgE5Sl2Qo2a4rCeslwtStPAj0k8PWicr+LuZtDfqXQVXgqpzZeQ1NVrfUYfkj3ADGuuR8FI1SR/sH143M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773067988; 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=1fV3rBwQoe8iGzmQY/2nS9021QVzehxmk5ZY/0UTJes=; b=NLWwCEuv/1GYIslnQVlB3FqlsYI3tufPjOEiMLrkk3Ol0zT23EXnp7pLBRVRG5EXzOb4NmlJ5IgRUBOEmw+fI1vI3CPBW8Z2Xmc4VXUvr9nReKTUX5tNu8grXvHoT+CC7lR4sc4PtIQGLV/pWts5FpMqT0xNohqQGb7nzkMZEMg= 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 1773067988082747.7414873460208; Mon, 9 Mar 2026 07:53:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vzbv1-0001Ke-Ni; Mon, 09 Mar 2026 10:49:15 -0400 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 1vzbud-0000s3-89 for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:54 -0400 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 1vzbuZ-0005GI-Sw for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:51 -0400 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 629DqgRL2137771 for ; Mon, 9 Mar 2026 14:48:47 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4csyft05up-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 14:48:46 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-2be191ce356so8524631eec.1 for ; Mon, 09 Mar 2026 07:48:46 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be4f82b78esm9322776eec.12.2026.03.09.07.48.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 07:48:43 -0700 (PDT) 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= 1fV3rBwQoe8iGzmQY/2nS9021QVzehxmk5ZY/0UTJes=; b=et0yXiBNjoZWfoxE XSczwUS0bAq8DYwf/cGAXughomC3d/w6JDV5hcVLqniPiVzveomfOrga0YRxcEpL 2yFgYDDUTFHswsld1Vqu0O4K1YHYpeCMV82kSLZnn2oxrXTnezxszRZcG+39K6J/ vnyHvlQWxoJm2iT9/lUK3WwK15NaNJrXv8UHP730e8WGDHCpKDb2fhNtDSjLL44j qq4vL/V10KU04rXZzrXa2j9jYG5l0/9jSQ4TonKFgypsErATBq8kCOKClkQwaGlo xwjrhgU41mbESXgC6t3+/7qKKw7r1wGQQvN7l8qmpJSdRDxib8oTfVWwRQNgrmmh A8rMKQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773067725; x=1773672525; 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=1fV3rBwQoe8iGzmQY/2nS9021QVzehxmk5ZY/0UTJes=; b=kxA6h34XZagELaNH3llo4tWlplPR/CcLljZZ0BbbdmfwR/eT7HMMzMeJYjRlg+cASl odL648hLAr3wooaE7g5ylUjp6nFDJsWUWcPX3nhAjj1rIppxqes4QjjaKHX7VmXsr19M zkPu+vypr6brvVkQ3dGAQcCMKDY78V546louV1qyN4uNPDMjNaiPoUmLtgP6Md42YkNw EooddhDzflaKNmzthA9AASQ8rK6stRzxZZJYo+U+/AQXqwTSXiaEU0BGIGU+CR+46Dfn D+fUumnZZvky7q46yy055FmzfjhFLH2TIQ3Xif+kGNXDMjHDAltWX5ywnseDtvT1v1KY A6OA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773067725; x=1773672525; 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=1fV3rBwQoe8iGzmQY/2nS9021QVzehxmk5ZY/0UTJes=; b=LDCqc0u5AKy9ZkoH5NnGxzvN3ZcB0qRfuGzps9tFA6sZoVjvXks2IVYuWflUdGWBFr CkbW9JxIr6OT/4N66QaQkjLun4GwCjoUE+zEwSt4wgSsDetsLiDqlcoByJolGjJAUhQn MAa7h+FwxtD9NlmD2cvV0r/xNu7VnhGGhSheGgEIGlvtqvCnL2B0sgz7WDHpfEKUPmuw NrdXX8ksLgQ+xYCQZ+t5iWti2DTIzRKWK1Z02/nssD92CKQ6PBp507rYjxadbnRRy2VL m0BuIHDAPSqeG4PIq52Z5OP2+f8pN9k73MxeUZ1RS0xx7+EdoztfphkINf0ApCdgjgr0 e75w== X-Gm-Message-State: AOJu0Yxh8Te58TiqBgQqRR84BGQRRmwYlEY+NnuDV9pEW/dFVj00r1mN QffyD4TODsKBL2ql0FF+r7rwk87RgrnkNrM1QOm/Cn1emeuzq4ANviy6Tbjm2MoebC5JyjWdzJa vV4ynbUlp6s6y78FJAsw2naUc0ufPgPIAanuACp1bEVKX/lVGGqwMJMK7XyU7aq3CuQ== X-Gm-Gg: ATEYQzw5At45BnaIqBeVjyHLCdW+qDqIcPU4AnbNeVZs+nv4JvzAgFYKP8KGhJVA5fm uhLs77D0kKZjy0nsZy/Rn8PWOWzwCaPcnG9husCJMwtrk8N1al7h0lTKxXyT0hi2yHd3wH/gVMG zQ2cc7eWCI1P9/SSbZcs6F6COopHSpARzYov9zM4An7GRsIVhXCAHLfKrwYV1KVl3COX+o2IqMH kXg8WGfRzxDjuQPLNSrBkjZlJuKle4GLY3YcNY8fHGz9vv4Dml/Y6w/D0wR8lXuWx7Hq7kS9SsX Dvzq0KhQWXlc/Knn8VVNB8knOdOJNeOqZB32/nXjDcOHhKvuRUtjniEMVR13SgCCJoPtTlXA88D pFu9r+xTll8oxshSQBy6MEZP2GHN9Yi581z5bYaTQKBg/qfI9gyKQ2BXbZ1PUiTwFx3SHBw== X-Received: by 2002:a05:7300:fd0e:b0:2ba:7783:d1c0 with SMTP id 5a478bee46e88-2be4dead952mr4291112eec.9.1773067724201; Mon, 09 Mar 2026 07:48:44 -0700 (PDT) X-Received: by 2002:a05:7300:fd0e:b0:2ba:7783:d1c0 with SMTP id 5a478bee46e88-2be4dead952mr4291081eec.9.1773067723532; Mon, 09 Mar 2026 07:48:43 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 15/35] target/hexagon: Add imported macro, attr defs for sysemu Date: Mon, 9 Mar 2026 07:48:02 -0700 Message-Id: <20260309144822.877695-16-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> References: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: Zt875oRIx8g_VE0ryTAvBtMeBvsm0Ra4 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDEzMyBTYWx0ZWRfX2LTWajLf/Iqr BKIOE/ADpu+lY215xeYZeyNPuiTfqKxMVMu4qJ8ZC9YYfjf7rJUdYJkWj/yx4yBwFdvYsF0r243 Btx8awWs4N2kEGgqJgXLWK9bka+DWP6ojPB9CzuOoBDfW6qScq/t2cfeiODFt/tZwL1UrTMbPH1 Tch7HtfOS3Ywd5kwgIu319CtwXhETHWvw3Gig6U6FX87ajCUqSnhNSDuVg+6/T33/J5rVzZSFnd 2BJVhEKA8NVqp61rlzvpeniXgdshSsEHZuL2maMwhoh0WjQmE0wNS5Zv7CodZrM85cpeVKrRYOF 43BH9SAh+OSczaDwllkqRTUf1ZwvDpUCDJr5P4ibvfs70cnyOxSRh8/DGg4tjSbKJVFWSr00e7H 6TIBAEq36U1uN3mvtGsckUbT6BJOsJtjX8JTNsu05+q4/X5JqiuH21NRTzgPmW+E5JLJTBz6tZU FGbNh0emrQHGqpUfZig== X-Proofpoint-GUID: Zt875oRIx8g_VE0ryTAvBtMeBvsm0Ra4 X-Authority-Analysis: v=2.4 cv=F8dat6hN c=1 sm=1 tr=0 ts=69aeddce cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=i3OrD5w6cDdmGd68u_gA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_04,2026-03-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 adultscore=0 priorityscore=1501 suspectscore=0 impostorscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090133 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: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UPPERCASE_50_75=0.008 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773067989107158500 From: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/attribs_def.h.inc | 49 ++- target/hexagon/imported/macros.def | 482 ++++++++++++++++++++++++++++- 2 files changed, 518 insertions(+), 13 deletions(-) mode change 100755 =3D> 100644 target/hexagon/imported/macros.def diff --git a/target/hexagon/attribs_def.h.inc b/target/hexagon/attribs_def.= h.inc index 9e3a05f8828..06ab826b49f 100644 --- a/target/hexagon/attribs_def.h.inc +++ b/target/hexagon/attribs_def.h.inc @@ -52,6 +52,9 @@ DEF_ATTRIB(REGWRSIZE_4B, "Memory width is 4 bytes", "", "= ") DEF_ATTRIB(REGWRSIZE_8B, "Memory width is 8 bytes", "", "") DEF_ATTRIB(MEMLIKE, "Memory-like instruction", "", "") DEF_ATTRIB(MEMLIKE_PACKET_RULES, "follows Memory-like packet rules", "", "= ") +DEF_ATTRIB(CACHEOP, "Cache operation", "", "") +DEF_ATTRIB(COPBYADDRESS, "Cache operation by address", "", "") +DEF_ATTRIB(COPBYIDX, "Cache operation by index", "", "") DEF_ATTRIB(RELEASE, "Releases a lock", "", "") DEF_ATTRIB(ACQUIRE, "Acquires a lock", "", "") =20 @@ -101,23 +104,44 @@ DEF_ATTRIB(ROPS_3, "Compound instruction worth 3 RISC= -ops", "", "") =20 /* access to implicit registers */ DEF_ATTRIB(IMPLICIT_WRITES_LR, "Writes the link register", "", "UREG.LR") +DEF_ATTRIB(IMPLICIT_READS_LR, "Reads the link register", "UREG.LR", "") +DEF_ATTRIB(IMPLICIT_READS_LC0, "Reads loop count for loop 0", "UREG.LC0", = "") +DEF_ATTRIB(IMPLICIT_READS_LC1, "Reads loop count for loop 1", "UREG.LC1", = "") +DEF_ATTRIB(IMPLICIT_READS_SA0, "Reads start address for loop 0", "UREG.SA0= ", "") +DEF_ATTRIB(IMPLICIT_READS_SA1, "Reads start address for loop 1", "UREG.SA1= ", "") +DEF_ATTRIB(IMPLICIT_WRITES_PC, "Writes the program counter", "", "UREG.PC") +DEF_ATTRIB(IMPLICIT_READS_PC, "Reads the program counter", "UREG.PC", "") DEF_ATTRIB(IMPLICIT_WRITES_SP, "Writes the stack pointer", "", "UREG.SP") +DEF_ATTRIB(IMPLICIT_READS_SP, "Reads the stack pointer", "UREG.SP", "") DEF_ATTRIB(IMPLICIT_WRITES_FP, "Writes the frame pointer", "", "UREG.FP") +DEF_ATTRIB(IMPLICIT_READS_FP, "Reads the frame pointer", "UREG.FP", "") +DEF_ATTRIB(IMPLICIT_WRITES_GP, "Writes the GP register", "", "UREG.GP") +DEF_ATTRIB(IMPLICIT_READS_GP, "Reads the GP register", "UREG.GP", "") DEF_ATTRIB(IMPLICIT_WRITES_LC0, "Writes loop count for loop 0", "", "UREG.= LC0") DEF_ATTRIB(IMPLICIT_WRITES_LC1, "Writes loop count for loop 1", "", "UREG.= LC1") DEF_ATTRIB(IMPLICIT_WRITES_SA0, "Writes start addr for loop 0", "", "UREG.= SA0") DEF_ATTRIB(IMPLICIT_WRITES_SA1, "Writes start addr for loop 1", "", "UREG.= SA1") +DEF_ATTRIB(IMPLICIT_WRITES_R00, "Writes Register 0", "", "UREG.R00") DEF_ATTRIB(IMPLICIT_WRITES_P0, "Writes Predicate 0", "", "UREG.P0") DEF_ATTRIB(IMPLICIT_WRITES_P1, "Writes Predicate 1", "", "UREG.P1") DEF_ATTRIB(IMPLICIT_WRITES_P2, "Writes Predicate 1", "", "UREG.P2") DEF_ATTRIB(IMPLICIT_WRITES_P3, "May write Predicate 3", "", "UREG.P3") -DEF_ATTRIB(IMPLICIT_READS_PC, "Reads the PC register", "", "") -DEF_ATTRIB(IMPLICIT_READS_P0, "Reads the P0 register", "", "") -DEF_ATTRIB(IMPLICIT_READS_P1, "Reads the P1 register", "", "") -DEF_ATTRIB(IMPLICIT_READS_P2, "Reads the P2 register", "", "") -DEF_ATTRIB(IMPLICIT_READS_P3, "Reads the P3 register", "", "") +DEF_ATTRIB(IMPLICIT_READS_R00, "Reads Register 0", "UREG.R00", "") +DEF_ATTRIB(IMPLICIT_READS_P0, "Reads Predicate 0", "UREG.P0", "") +DEF_ATTRIB(IMPLICIT_READS_P1, "Reads Predicate 1", "UREG.P1", "") +DEF_ATTRIB(IMPLICIT_READS_P3, "Reads Predicate 3", "UREG.P3", "") +DEF_ATTRIB(IMPLICIT_READS_Q3, "Reads Vector Predicate 3", "UREG.Q3", "") +DEF_ATTRIB(IMPLICIT_READS_CS, "Reads the CS/M register", "UREG.CS", "") DEF_ATTRIB(IMPLICIT_WRITES_USR, "May write USR", "", "") -DEF_ATTRIB(IMPLICIT_READS_SP, "Reads the SP register", "", "") +DEF_ATTRIB(IMPLICIT_WRITES_CCR, "Writes CCR register", "", "UREG.CCR") +DEF_ATTRIB(IMPLICIT_WRITES_GOSP, "Writes GOSP register", "", "UREG.GOSP") +DEF_ATTRIB(IMPLICIT_WRITES_SSR, "Writes SSR register", "", "UREG.SSR") +DEF_ATTRIB(IMPLICIT_WRITES_SGP0, "Writes SGP0 register", "", "UREG.SGP0") +DEF_ATTRIB(IMPLICIT_WRITES_SGP1, "Writes SGP1 register", "", "UREG.SGP1") +DEF_ATTRIB(IMPLICIT_WRITES_IMASK_ANYTHREAD, + "Writes IMASK for any thread", "", "") +DEF_ATTRIB(IMPLICIT_WRITES_STID_PRIO_ANYTHREAD, + "Writes STID priority for any thread", "", "") DEF_ATTRIB(COMMUTES, "The operation is communitive", "", "") DEF_ATTRIB(DEALLOCRET, "dealloc_return", "", "") DEF_ATTRIB(DEALLOCFRAME, "deallocframe", "", "") @@ -137,9 +161,15 @@ DEF_ATTRIB(RESTRICT_SLOT3ONLY, "Must execute on slot3"= , "", "") DEF_ATTRIB(RESTRICT_NOSLOT1, "No slot 1 instruction in parallel", "", "") DEF_ATTRIB(RESTRICT_PREFERSLOT0, "Try to encode into slot 0", "", "") DEF_ATTRIB(RESTRICT_PACKET_AXOK, "May exist with A-type or X-type", "", "") +DEF_ATTRIB(RESTRICT_SINGLE_MEM_FIRST, "Single memory op must be first", ""= , "") +DEF_ATTRIB(RESTRICT_SLOT1_AOK, "Slot 1 is allowed", "", "") =20 DEF_ATTRIB(ICOP, "Instruction cache op", "", "") =20 +DEF_ATTRIB(EXCEPTION_SWI, "Software interrupt exception", "", "") +DEF_ATTRIB(DMA, "DMA instruction", "", "") +DEF_ATTRIB(NO_TIMING_LOG, "Does not get logged to the timing model", "", "= ") + DEF_ATTRIB(HWLOOP0_END, "Ends HW loop0", "", "") DEF_ATTRIB(HWLOOP1_END, "Ends HW loop1", "", "") DEF_ATTRIB(RET_TYPE, "return type", "", "") @@ -151,6 +181,10 @@ DEF_ATTRIB(DCFETCH, "dcfetch type", "", "") =20 DEF_ATTRIB(L2FETCH, "Instruction is l2fetch type", "", "") =20 +DEF_ATTRIB(DCTAGOP, "Data cache tag operation", "", "") +DEF_ATTRIB(ICTAGOP, "Instruction cache tag operation", "", "") +DEF_ATTRIB(L2TAGOP, "L2 cache tag operation", "", "") + DEF_ATTRIB(ICINVA, "icinva", "", "") DEF_ATTRIB(DCCLEANINVA, "dccleaninva", "", "") =20 @@ -166,6 +200,9 @@ DEF_ATTRIB(NOTE_LATEPRED, "The predicate can not be use= d as a .new", "", "") DEF_ATTRIB(NOTE_NVSLOT0, "Can execute only in slot 0 (ST)", "", "") DEF_ATTRIB(NOTE_NOVP, "Cannot be paired with a HVX permute instruction", "= ", "") DEF_ATTRIB(NOTE_VA_UNARY, "Combined with HVX ALU op (must be unary)", "", = "") +DEF_ATTRIB(NOTE_SLOT1_AOK, "Slot 1 is allowed", "", "") +DEF_ATTRIB(NOTE_GUEST, "Guest mode instruction", "", "") +DEF_ATTRIB(NOTE_BADTAG_UNDEF, "Bad tag results in undefined behavior", "",= "") =20 /* V6 MMVector Notes for Documentation */ DEF_ATTRIB(NOTE_SHIFT_RESOURCE, "Uses the HVX shift resource.", "", "") diff --git a/target/hexagon/imported/macros.def b/target/hexagon/imported/m= acros.def old mode 100755 new mode 100644 index 4bbcfdd5e19..13eb13c71f7 --- a/target/hexagon/imported/macros.def +++ b/target/hexagon/imported/macros.def @@ -353,6 +353,12 @@ DEF_MACRO( () ) =20 +DEF_MACRO( + fREAD_SSR, /* read SSR register */ + (READ_RREG(REG_SSR)), /* behavior */ + () +) + DEF_MACRO( fWRITE_LR, /* write lr */ WRITE_RREG(REG_LR,A), /* behavior */ @@ -371,12 +377,36 @@ DEF_MACRO( (A_IMPLICIT_WRITES_SP) ) =20 +DEF_MACRO( + fWRITE_GOSP, /* write gosp */ + WRITE_RREG(REG_GOSP,A), /* behavior */ + (A_IMPLICIT_WRITES_GOSP) +) + DEF_MACRO( fREAD_SP, /* read stack pointer */ (READ_RREG(REG_SP)), /* behavior */ () ) =20 +DEF_MACRO( + fREAD_GOSP, /* read guest other stack pointer */ + (READ_RREG(REG_GOSP)), /* behavior */ + () +) + +DEF_MACRO( + fREAD_GELR, /* read guest other stack pointer */ + (READ_RREG(REG_GELR)), /* behavior */ + () +) + +DEF_MACRO( + fREAD_GEVB, /* read guest other stack pointer */ + (READ_RREG(REG_GEVB)), /* behavior */ + () +) + DEF_MACRO( fREAD_CSREG, /* read CS register */ (READ_RREG(REG_CSA+N)), /* behavior */ @@ -570,6 +600,11 @@ DEF_MACRO( WRITE_PREG(3,VAL), /* behavior */ (A_IMPLICIT_WRITES_P3) ) +DEF_MACRO( + fWRITE_P3_LATE, /* write Predicate 0 */ + {WRITE_PREG(3,VAL); fHIDE(MARK_LATE_PRED_WRITE(3))} , /* behavio= r */ + (A_IMPLICIT_WRITES_P3,A_RESTRICT_LATEPRED) +) =20 DEF_MACRO( fPART1, /* write Predicate 0 */ @@ -660,6 +695,7 @@ DEF_MACRO( ((size8s_t)((size2s_t)(A))), /* optional attributes */ ) + DEF_MACRO( fCAST2_8u, /* macro name */ ((size8u_t)((size2u_t)(A))), @@ -1532,18 +1568,137 @@ DEF_MACRO(fECHO, /* OS interface and stop/wait */ /********************************************/ =20 +DEF_MACRO(RUNNABLE_THREADS_MAX, + /* */, + () +) + +DEF_MACRO(THREAD_IS_ON, + ((PROC->arch_proc_options->thread_enable_mask>>TNUM) & 0x1), + () +) + +DEF_MACRO(THREAD_EN_MASK, + ((PROC->arch_proc_options->thread_enable_mask)), + () +) + + + +DEF_MACRO(READ_IMASK, + /* */, + () +) +DEF_MACRO(WRITE_IMASK, + /* */, + (A_IMPLICIT_WRITES_IMASK_ANYTHREAD) +) + + +DEF_MACRO(WRITE_PRIO, + /* */, + (A_IMPLICIT_WRITES_STID_PRIO_ANYTHREAD) +) + + +DEF_MACRO(DO_IASSIGNW, + /* */, + (A_IMPLICIT_WRITES_IMASK_ANYTHREAD) +) + + + + +DEF_MACRO(fDO_NMI, + /* */, +) + +DEF_MACRO(fDO_TRACE, + /* */, +) + +DEF_MACRO(DO_IASSIGNR, + /* */, + () +) + +DEF_MACRO(DO_SWI, + /* */, + (A_EXCEPTION_SWI) +) + +DEF_MACRO(DO_CSWI, + LOG_GLOBAL_REG_WRITE(REG_IPEND,GLOBAL_REG_READ(REG_IPEND) & ~((REG= ) & GLOBAL_REG_READ(REG_IEL)));, + () +) + +DEF_MACRO(DO_CIAD, + sys_ciad(thread,VAL); LOG_GLOBAL_REG_WRITE(REG_IAD,GLOBAL_REG_READ= (REG_IAD) & ~(VAL));, + (A_EXCEPTION_SWI) +) + +DEF_MACRO(DO_SIAD, + sys_siad(thread,VAL); LOG_GLOBAL_REG_WRITE(REG_IAD,GLOBAL_REG_READ= (REG_IAD) | (VAL));, + (A_EXCEPTION_SWI) +) + +DEF_MACRO(fBREAK, + /* */, + () +) + DEF_MACRO(fPAUSE, {sys_pause(thread, insn->slot, IMM);}, () ) =20 + DEF_MACRO(fTRAP, - warn("Trap NPC=3D%x ",fREAD_NPC()); - warn("Trap exception, PCYCLE=3D%lld TYPE=3D%d NPC=3D%x IMM=3D0x%x",thr= ead->processor_ptr->pstats[pcycles],TRAPTYPE,fREAD_NPC(),IMM); - register_trap_exception(thread,fREAD_NPC(),TRAPTYPE,IMM);, + /* */, + (A_EXCEPTION_SWI) +) + +DEF_MACRO(fCLEAR_RTE_EX, + /* */, + () +) + +DEF_MACRO(fTLB_LOCK_AVAILABLE, + (fREAD_GLOBAL_REG_FIELD(SYSCONF,SYSCFG_TLBLOCK) =3D=3D 0), () ) =20 +DEF_MACRO(fK0_LOCK_AVAILABLE, + (fREAD_GLOBAL_REG_FIELD(SYSCONF,SYSCFG_K0LOCK) =3D=3D 0), + () +) + +DEF_MACRO(fSET_TLB_LOCK, + { + if (fTLB_LOCK_AVAILABLE()) { + fLOG_GLOBAL_REG_FIELD(SYSCONF,SYSCFG_TLBLOCK,1); + } else { + sys_waiting_for_tlb_lock(thread); + } + }, + () +) + +DEF_MACRO(fSET_K0_LOCK, + /* */, + () +) + +DEF_MACRO(fCLEAR_TLB_LOCK, + /* */, + () +) + +DEF_MACRO(fCLEAR_K0_LOCK, + /* */, + () +) + DEF_MACRO(fALIGN_REG_FIELD_VALUE, ((VAL)<Regs[REG_##REG], reg_field_info[FIELD].width, @@ -1561,6 +1734,11 @@ DEF_MACRO(fREAD_REG_FIELD, /* ATTRIBS */ ) =20 +DEF_MACRO(fREAD_GLOBAL_REG_FIELD, + /* */, + /* ATTRIBS */ +) + DEF_MACRO(fGET_FIELD, fEXTRACTU_BITS(VAL, reg_field_info[FIELD].width, @@ -1576,6 +1754,174 @@ DEF_MACRO(fSET_FIELD, /* ATTRIBS */ ) =20 +DEF_MACRO(fSET_RUN_MODE_NOW, + /* */, +) + +DEF_MACRO(fIN_DEBUG_MODE, + (thread->debug_mode || (fREAD_GLOBAL_REG_FIELD(ISDBST,ISDBST_DEBUGMODE= ) & 1<debug_mode), + () +) + + +DEF_MACRO(fIN_DEBUG_MODE_WARN, + { + if (fREAD_GLOBAL_REG_FIELD(ISDBST,ISDBST_DEBUGMODE) & 1<> 1) | ((VAL) >> 2) | ((VAL) >> 4) | ((VAL) >> 8) | (= (VAL) >> 16)), + () +) + +DEF_MACRO(fPOW2_ROUNDUP, + fPOW2_HELP_ROUNDUP((VAL)-1)+1, + () +) + +DEF_MACRO(fTLB_IDXMASK, + /* */, + () +) + +DEF_MACRO(fTLB_NONPOW2WRAP, + /* */, + /* ATTRIBS */ +) + +DEF_MACRO(fTLBW, + /* */, + /* ATTRIBS */ +) + +DEF_MACRO(fTLB_ENTRY_OVERLAP, + fHIDE( (sys_check_overlap(thread,VALUE)!=3D-2) ), + /* ATTRIBS */ +) + +DEF_MACRO(fTLB_ENTRY_OVERLAP_IDX, + fHIDE(sys_check_overlap(thread,VALUE)), + /* ATTRIBS */ +) + + +DEF_MACRO(fTLBR, + TLB_REG_READ(fTLB_NONPOW2WRAP(fTLB_IDXMASK(INDEX))), + /* ATTRIBS */ +) + +DEF_MACRO(fTLBP, + tlb_lookup(thread,((TLBHI)>>12),((TLBHI)<<12),1), + /* attribs */ +) + + + +DEF_MACRO(READ_SGP0, + READ_RREG(REG_SGP), + () +) + +DEF_MACRO(READ_SGP1, + READ_RREG(REG_SGP+1), + () +) + +DEF_MACRO(READ_SGP10, + READ_RREG_PAIR(REG_SGP), + () +) + +DEF_MACRO(READ_UGP, + READ_RREG(REG_UGP), +) + +DEF_MACRO(WRITE_SGP0, + WRITE_RREG(REG_SGP,VAL), + (A_IMPLICIT_WRITES_SGP0) +) + +DEF_MACRO(WRITE_SGP1, + WRITE_RREG(REG_SGP+1,VAL), + (A_IMPLICIT_WRITES_SGP1) +) + +DEF_MACRO(WRITE_SGP10, + WRITE_RREG_PAIR(REG_SGP,VAL), + (A_IMPLICIT_WRITES_SGP0,A_IMPLICIT_WRITES_SGP1) +) + +DEF_MACRO(WRITE_UGP, + WRITE_RREG(REG_UGP,VAL), +) + +DEF_MACRO(fSTART, + /* */, + () +) + +DEF_MACRO(fRESUME, + fLOG_GLOBAL_REG_FIELD(MODECTL,MODECTL_W, + fREAD_GLOBAL_REG_FIELD(MODECTL,MODECTL_W) & (~(REG))), + () +) + +DEF_MACRO(fGET_TNUM, + thread->threadId, + () +) + /********************************************/ /* Cache Management */ /********************************************/ @@ -1602,19 +1948,49 @@ DEF_MACRO(fISYNC, ) =20 =20 +DEF_MACRO(fICFETCH, + , + () +) + DEF_MACRO(fDCFETCH, sys_dcfetch(thread, (REG), insn->slot), (A_MEMLIKE) ) =20 DEF_MACRO(fICINVA, - { - arch_internal_flush(thread->processor_ptr, 0, 0xffffffff); - sys_icinva(thread, (REG),insn->slot); - }, + /* */, (A_ICINVA) ) =20 +DEF_MACRO(fDCTAGR, + ({DST=3Dsys_dctagr(thread, INDEX, insn->slot,DSTREGNO);})/* FIXME */, + () +) + +DEF_MACRO(fDCTAGW, + (sys_dctagw(thread, INDEX, PART2, insn->slot)), + () +) +DEF_MACRO(fICTAGR, + ({DST=3Dsys_ictagr(thread, INDEX, insn->slot,REGNO);}), + () +) + +DEF_MACRO(fICDATAR, + ({DST=3Dsys_icdatar(thread, INDEX, insn->slot);}), + () +) + +DEF_MACRO(fICTAGW, + (sys_ictagw(thread, INDEX, PART2, insn->slot)), + () +) +DEF_MACRO(fICDATAW, + ({ fHIDE(); }), + () +) + DEF_MACRO(fL2FETCH, sys_l2fetch(thread, ADDR,HEIGHT,WIDTH,STRIDE,FLAGS, insn->slot), (A_MEMLIKE,A_L2FETCH) @@ -1635,6 +2011,12 @@ DEF_MACRO(fDCZEROA, (A_MEMLIKE) ) =20 +DEF_MACRO(fDCINVA, + sys_dcinva(thread, (REG)), + (A_MEMLIKE) +) + + DEF_MACRO(fCHECKFORPRIV, {sys_check_privs(thread); if (EXCEPTION_DETECTED) return; }, () @@ -1645,6 +2027,16 @@ DEF_MACRO(fCHECKFORGUEST, () ) =20 +DEF_MACRO(fTAKEN_INTERRUPT_EDGECLEAR, + { proc->global_regs[REG_IPEND] &=3D ~(INT_NUMTOMASK(intnum) & proc= ->global_regs[REG_IEL]); }, + () +) + +DEF_MACRO(fSET_IAD, + /* */, + () +) + DEF_MACRO(fBRANCH_SPECULATE_STALL, { sys_speculate_branch_stall(thread, insn->slot, JUMP_COND(JUMP_PRED= _SET), @@ -1664,3 +2056,79 @@ DEF_MACRO(IV1DEAD, , () ) + +DEF_MACRO(fIN_MONITOR_MODE, + sys_in_monitor_mode(thread), + () +) + +DEF_MACRO(fIN_USER_MODE, + sys_in_user_mode(thread), + () +) + +DEF_MACRO(fIN_GUEST_MODE, + sys_in_guest_mode(thread), + () +) + +DEF_MACRO(fGRE_ENABLED, + fREAD_REG_FIELD(CCR,CCR_GRE), + () +) + +DEF_MACRO(fGTE_ENABLED, + fREAD_REG_FIELD(CCR,CCR_GRE), + () +) + +DEF_MACRO(fTRAP1_VIRTINSN, + ((fIN_GUEST_MODE()) + && (fGRE_ENABLED()) + && ( ((IMM) =3D=3D 1) + || ((IMM) =3D=3D 3) + || ((IMM) =3D=3D 4) + || ((IMM) =3D=3D 6))), + () +) + +DEF_MACRO(fVIRTINSN_RTE, + do { + thread->trap1_info =3D TRAP1_VIRTINSN_RTE; + fLOG_REG_FIELD(SSR,SSR_SS,fREAD_REG_FIELD(GSR,GSR_SS)); + fLOG_REG_FIELD(CCR,CCR_GIE,fREAD_REG_FIELD(GSR,GSR_IE)); + fLOG_REG_FIELD(SSR,SSR_GM,!fREAD_REG_FIELD(GSR,GSR_UM)); + fBRANCH((fREAD_GELR() & -4),COF_TYPE_RTE); + fINTERNAL_CLEAR_SAMEPAGE(); + } while (0), + (A_IMPLICIT_WRITES_CCR,A_IMPLICIT_WRITES_SSR) +) + +DEF_MACRO(fVIRTINSN_SETIE, + do { + fLOG_REG_FIELD(CCR,CCR_GIE,(REG) & 1); + REG =3D fREAD_REG_FIELD(CCR,CCR_GIE); + thread->trap1_info =3D TRAP1_VIRTINSN_SETIE; + } while (0), + (A_IMPLICIT_WRITES_CCR) +) + +DEF_MACRO(fVIRTINSN_GETIE, + { + thread->trap1_info =3D TRAP1_VIRTINSN_GETIE; + REG =3D fREAD_REG_FIELD(CCR,CCR_GIE); + }, + () +) + +DEF_MACRO(fVIRTINSN_SPSWAP, + do { + if (fREAD_REG_FIELD(GSR,GSR_UM)) { + size4u_t TEMP =3D REG; + REG =3D fREAD_GOSP(); + fWRITE_GOSP(TEMP); + thread->trap1_info =3D TRAP1_VIRTINSN_SPSWAP; + } + } while (0), + (A_IMPLICIT_WRITES_GOSP) +) --=20 2.34.1 From nobody Sat Apr 11 21:30:50 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=1773067833; cv=none; d=zohomail.com; s=zohoarc; b=c8XGLc4D2toEy8ha3Dsy/IJwdntzaTg8t9argj/5VM6p9+4bPdOxur0+WiRSHpX29OljxV8a1rF6IRFpjPLKgwdx2OInvbsY8ym2XpOAIloHAKPrfjxWJf+/f3pcbLqm5HRLNP07Fa61yLkLJ08/4QWOClyxvxtIvHaGZQ2Xadg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773067833; 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=FH5Ff8qDxOxOBStMB69z3bKi36eF9Ye3CU+a1kTIdyM=; b=J1xvX8psC39Qryk36Wdg8+01Zel3lgnSoAW+b+8gwC3wiJWs+OV4+q2k6gdMp2z+r7Ix1RNj5CEMDiqtTQlvBjPPwG3i5NKryQZKc6gBzlQ/k3g0az71bWZ7JatuxY76Iz90W/63Eaum7AnmRNGHQ5lKbx3tVSznyKTajPV5qIY= 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 1773067833178136.50366624074798; Mon, 9 Mar 2026 07:50:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vzbv1-0001L6-QR; Mon, 09 Mar 2026 10:49:15 -0400 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 1vzbub-0000s1-8c for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:54 -0400 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 1vzbuZ-0005GE-9C for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:48 -0400 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 629Du3pC412692 for ; Mon, 9 Mar 2026 14:48:46 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4csyhbr5gj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 14:48:46 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-2be21c6e2f5so29045757eec.1 for ; Mon, 09 Mar 2026 07:48:46 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be4f82b78esm9322776eec.12.2026.03.09.07.48.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 07:48:43 -0700 (PDT) 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= FH5Ff8qDxOxOBStMB69z3bKi36eF9Ye3CU+a1kTIdyM=; b=mPaZpK199+YYF9QB xd/rRilfAvdZI2Us+hW38WWoA8ZWgVZyQLk8eH95Z5bD3IsBXnYpd+EbAYXdCuAi 4M6Psrv6Df6IaCJet7Zp/9e43S3T6NCZB0cxjNSl26+5v9TpYv6BVlqhbyB+LwTG eZnJVm5YNDRvVoMHdybRby0XRuq7pFVE87nxEDQ0CvS1KsOnQWIZ/Hc0okdaxfST XjiT34MyvjdpEQDROLjS9U4eOefqT6U7DE4MAPhOvPHUdR4g07jgpEUzsyHzvkW9 bYE9TcySQ1HKRa/HWVzFKXoHV0Fvo5y9Vt6xfOvCIXLCouLM4GrCxOYOh9BZaweD askyJg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773067725; x=1773672525; 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=FH5Ff8qDxOxOBStMB69z3bKi36eF9Ye3CU+a1kTIdyM=; b=hc7Qv0XbeB/bLMNDJracy6MmsOLg2vQZ3KBDWvThGXM0h3G0PwG+f4eQzI3DtrO9FM RBN9baDC0DcZ/qoe9aWYRF4ylQKY1dby/iqHEXy5Ym8RHnXzvxBYaW6w8RHWASoXJAoT 0ngn1AFllD0VC/m0nnVeifA6NhZzlNM0wALrM93GOmTVWge9hhdGDsTMOgr3SLCaHjMi /9ivAZhstra2DHicbw6uvpw5+wdL/f/XSBtGHp02OsD1AdxKYAHDcsHDyGZ11/34kbr+ isnJFib934OvXY8+YGuiCq+2Dj/K5lpq99zLpAIqOQ94HTqTUAg8A9LDULejfptsVKRu LSaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773067725; x=1773672525; 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=FH5Ff8qDxOxOBStMB69z3bKi36eF9Ye3CU+a1kTIdyM=; b=uU3eLbFchTawgZSKX8NRqg1WHYNh8kDFbcZGSI/FYC66agGR9vFSqXt6nPzjao3qYN A87ZADWNjmjv3d6Fn/c15zbH64nImEugnnfjPECG4Dh+xnb4WjPUmAQUswR1OTko+3lb NFRyJYTbYox0CEWS/358voUMdcDyUrMcaS+5nnNOEPqWqrWEgumnB5GnJ02LJqTVBbBQ YlAj911O8xBSZiFCcx23gzkuomo7xRAhHrD++vKnWDxy6fkr07MtjKuv2xfr1whaO4c9 kCSbEdyJbpFU9LZhyHrg54qaNOPeDEPEIS8BoMIvQTJtfM09gNJd4s8lN/R/a3b+NpQR gTdA== X-Gm-Message-State: AOJu0Yxi+bYZ6uAaNz7euJMoAqsJs2slmCMoYgqA6rGb7XsKvVweqfgt dxa2PxTnsCqczPI9DU5XyZ8wVZHMVRrd+qIC1DIdWvc5N2EK4q4l695JkqUlsvAMPFqAvuHqgUN /xzRrsAq9I+m6KN4Pac+BJjrONIsPA7O1uAoiFhfcN9KKqL05lNI+KhZ0rejr+qwkig== X-Gm-Gg: ATEYQzwsECEjxeUd6+ham1YK+JgXKmdmq6lCn2qQnQ6W4cGkswK+mn9XwsrBqq63P8B UVU1kpUBn9LlAkPoibqY+Kj+x8b20elqMgtS+iov32EOrQgAnNs6lQ/XwDslDOWJVYgJatu8gnD f9yknSHwadjHe6ma07Uuf91rGzOPZ9QhcD19aMyerCXmiXrOpbHYbdtYMV3tKXH97lPvDsKuXYw kqvZ3c1MiiLeQnIKeaL9hSgOUk/xowli5v23B/w4G97QFfCeLdBu2alI9aP+kK+WIym1I2ndZ/Y OMbvph6+P/oosSSfwWTPJHogA9iXUq3TrEMypv6kAq61Dre8zw1sUro2F/uSuAh5jCS72TJcNUC ssrfnBsFW02YQfHjgmLiAeSkyMsZgN+jLk1bsFdoPcZeI/AjY6rRxp5O4J9PGXsRVVaBc8g== X-Received: by 2002:a05:7300:fd0e:b0:2be:53a:5f4 with SMTP id 5a478bee46e88-2be4deac6f0mr4883787eec.9.1773067725037; Mon, 09 Mar 2026 07:48:45 -0700 (PDT) X-Received: by 2002:a05:7300:fd0e:b0:2be:53a:5f4 with SMTP id 5a478bee46e88-2be4deac6f0mr4883768eec.9.1773067724371; Mon, 09 Mar 2026 07:48:44 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 16/35] target/hexagon: Add new macro definitions for sysemu Date: Mon, 9 Mar 2026 07:48:03 -0700 Message-Id: <20260309144822.877695-17-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> References: <20260309144822.877695-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=Rcmdyltv c=1 sm=1 tr=0 ts=69aeddce cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=VoFV4bgUeqxKQXHmsMYA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDEzMyBTYWx0ZWRfX8d9YU6dTH8av A8udys63gKyTqsHpWfcRQ4TB4M4z5qqTyVowCvxlyE0aEAQu5OVkBZ5HvH7xi0jQgE1Ob6djRs+ Q4IH1S9ANzlaMjtaV5pBMzGYnDn1FvltHS+40UXcp/+8NZAsAG3FpyBmr4dqSi94+jdhqlLwiI3 vk7OeQRiapXn5N/e9eu68V0P7KQ4D21iKnsXVNiEZRf+QtCvCD9v+yUXf3iBCHOjSIlDhuIHkIF eKBtXK5nJJUfSkXI+WpSAMRFnoCx6pgywD1dNuYXIZt6A7QznhdY/co1QY/4Ce5cA7QlduZKlJm 9wOKwbKSOmbaZooiJEp8bDJCHjiityMtqckKamTFS8cAFyfBWzXSF9zmAiNA0WX5qbUR3xGTXHe et5i9Tn5M3/2zLLtHqC7EbtjCYfkStQ2feb5CIseTvV+byM5o10HfA3HpKEb96wNRjYCktvZukh fjT11ABsAlTEwgS4t5g== X-Proofpoint-GUID: oA3ABY60cPqZKvamAqtNGE9y5Sv1r60h X-Proofpoint-ORIG-GUID: oA3ABY60cPqZKvamAqtNGE9y5Sv1r60h X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_04,2026-03-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 suspectscore=0 spamscore=0 priorityscore=1501 impostorscore=0 clxscore=1015 bulkscore=0 phishscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090133 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: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773067835713154100 From: Brian Cain Also: add nop TCG overrides for break, unpause, fetchbo; add TCG override for dczeroa_nt (non-temporal variant of dczeroa). break: this hardware breakpoint instruction is used with the in-silicon debugger feature, this is not modeled. unpause: this instruction is used to resume hardware threads that are stalled by pause instructions. pause is modeled as a nop, or in RR mode as an EXCP_YIELD. This instruction is safe to ignore. Since prefetch functions are not modeled, fetchbo is safe to ignore. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/gen_tcg.h | 9 ++ target/hexagon/macros.h | 25 +++- target/hexagon/sys_macros.h | 237 ++++++++++++++++++++++++++++++++++++ target/hexagon/op_helper.c | 1 + 4 files changed, 271 insertions(+), 1 deletion(-) create mode 100644 target/hexagon/sys_macros.h diff --git a/target/hexagon/gen_tcg.h b/target/hexagon/gen_tcg.h index 7b96dab9185..bd04386d860 100644 --- a/target/hexagon/gen_tcg.h +++ b/target/hexagon/gen_tcg.h @@ -488,6 +488,7 @@ =20 /* dczeroa clears the 32 byte cache line at the address given */ #define fGEN_TCG_Y2_dczeroa(SHORTCODE) SHORTCODE +#define fGEN_TCG_Y2_dczeroa_nt(SHORTCODE) SHORTCODE =20 /* In linux-user mode, these are not modelled, suppress compiler warning */ #define fGEN_TCG_Y2_dcinva(SHORTCODE) \ @@ -1132,6 +1133,9 @@ RdV, tcg_constant_tl(0)); \ } while (0) =20 +#define fGEN_TCG_Y2_break(SHORTCODE) +#define fGEN_TCG_J2_unpause(SHORTCODE) + #define fGEN_TCG_J2_pause(SHORTCODE) \ do { \ uiV =3D uiV; \ @@ -1341,6 +1345,11 @@ RsV =3D RsV; \ uiV =3D uiV; \ } while (0) +#define fGEN_TCG_Y2_dcfetchbo_nt(SHORTCODE) \ + do { \ + RsV =3D RsV; \ + uiV =3D uiV; \ + } while (0) =20 #define fGEN_TCG_L2_loadw_aq(SHORTCODE) SHORTCODE #define fGEN_TCG_L4_loadd_aq(SHORTCODE) SHORTCODE diff --git a/target/hexagon/macros.h b/target/hexagon/macros.h index 6c2862a2320..e4bfea4923f 100644 --- a/target/hexagon/macros.h +++ b/target/hexagon/macros.h @@ -631,8 +631,18 @@ static inline TCGv gen_read_ireg(TCGv result, TCGv val= , int shift) #define fCONSTLL(A) A##LL #define fECHO(A) (A) =20 -#define fTRAP(TRAPTYPE, IMM) helper_raise_exception(env, HEX_EXCP_TRAP0) +#ifdef CONFIG_USER_ONLY +#define fTRAP(TRAPTYPE, IMM) \ + do { \ + hexagon_raise_exception_err(env, HEX_EVENT_TRAP0, PC); \ + } while (0) +#endif + +#define fDO_TRACE(SREG) +#define fBREAK() +#define fUNPAUSE() #define fPAUSE(IMM) +#define fDCFETCH(REG) =20 #define fALIGN_REG_FIELD_VALUE(FIELD, VAL) \ ((VAL) << reg_field_info[FIELD].offset) @@ -654,5 +664,18 @@ static inline TCGv gen_read_ireg(TCGv result, TCGv val= , int shift) #define fBRANCH_SPECULATE_STALL(DOTNEWVAL, JUMP_COND, SPEC_DIR, HINTBITNUM= , \ STRBITNUM) /* Nothing */ =20 +#ifdef CONFIG_USER_ONLY +/* + * This macro can only be true in guest mode. + * In user mode, the 4 VIRTINSN's can't be reached + */ +#define fTRAP1_VIRTINSN(IMM) (false) +#define fVIRTINSN_SPSWAP(IMM, REG) g_assert_not_reached() +#define fVIRTINSN_GETIE(IMM, REG) g_assert_not_reached() +#define fVIRTINSN_SETIE(IMM, REG) g_assert_not_reached() +#define fVIRTINSN_RTE(IMM, REG) g_assert_not_reached() +#endif + +#define fPREDUSE_TIMING() =20 #endif diff --git a/target/hexagon/sys_macros.h b/target/hexagon/sys_macros.h new file mode 100644 index 00000000000..f497d55bb81 --- /dev/null +++ b/target/hexagon/sys_macros.h @@ -0,0 +1,237 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HEXAGON_SYS_MACROS_H +#define HEXAGON_SYS_MACROS_H + +/* + * Macro definitions for Hexagon system mode + */ + +#ifndef CONFIG_USER_ONLY + +#ifdef QEMU_GENERATE +#define GET_SSR_FIELD(RES, FIELD) \ + GET_FIELD(RES, FIELD, hex_t_sreg[HEX_SREG_SSR]) +#else + +#define GET_SSR_FIELD(FIELD, REGIN) \ + (uint32_t)GET_FIELD(FIELD, REGIN) +#define GET_SYSCFG_FIELD(FIELD, REGIN) \ + (uint32_t)GET_FIELD(FIELD, REGIN) +#define SET_SYSTEM_FIELD(ENV, REG, FIELD, VAL) \ + do { \ + HexagonCPU *_sf_cpu =3D env_archcpu(ENV); \ + uint32_t regval; \ + if ((REG) < HEX_SREG_GLB_START) { \ + regval =3D (ENV)->t_sreg[(REG)]; \ + } else { \ + regval =3D _sf_cpu->globalregs ? \ + hexagon_globalreg_read(_sf_cpu->globalregs, (REG), \ + (ENV)->threadId) : 0; \ + } \ + fINSERT_BITS(regval, reg_field_info[FIELD].width, \ + reg_field_info[FIELD].offset, (VAL)); \ + if ((REG) < HEX_SREG_GLB_START) { \ + (ENV)->t_sreg[(REG)] =3D regval; \ + } else if (_sf_cpu->globalregs) { \ + hexagon_globalreg_write(_sf_cpu->globalregs, (REG), regval, \ + (ENV)->threadId); \ + } \ + } while (0) +#define SET_SSR_FIELD(ENV, FIELD, VAL) \ + SET_SYSTEM_FIELD(ENV, HEX_SREG_SSR, FIELD, VAL) +#define SET_SYSCFG_FIELD(ENV, FIELD, VAL) \ + SET_SYSTEM_FIELD(ENV, HEX_SREG_SYSCFG, FIELD, VAL) + +#define CCR_FIELD_SET(ENV, FIELD) \ + (!!GET_FIELD(FIELD, (ENV)->t_sreg[HEX_SREG_CCR])) + +/* + * Direct-to-guest is not implemented yet, continuing would cause unexpect= ed + * behavior, so we abort. + */ +#define ASSERT_DIRECT_TO_GUEST_UNSET(ENV, EXCP) \ + do { \ + switch (EXCP) { \ + case HEX_EVENT_TRAP0: \ + g_assert(!CCR_FIELD_SET(ENV, CCR_GTE)); \ + break; \ + case HEX_EVENT_IMPRECISE: \ + case HEX_EVENT_PRECISE: \ + case HEX_EVENT_FPTRAP: \ + g_assert(!CCR_FIELD_SET(ENV, CCR_GEE)); \ + break; \ + default: \ + if ((EXCP) >=3D HEX_EVENT_INT0) { \ + g_assert(!CCR_FIELD_SET(ENV, CCR_GIE)); \ + } \ + break; \ + } \ + } while (0) +#endif + +#define fREAD_ELR() (env->t_sreg[HEX_SREG_ELR]) + +#define fLOAD_PHYS(NUM, SIZE, SIGN, SRC1, SRC2, DST) { \ + const uintptr_t rs =3D ((unsigned long)(unsigned)(SRC1)) & 0x7ff; \ + const uintptr_t rt =3D ((unsigned long)(unsigned)(SRC2)) << 11; \ + const uintptr_t addr =3D rs + rt; \ + cpu_physical_memory_read(addr, &DST, sizeof(uint32_t)); \ +} + +#define fPOW2_HELP_ROUNDUP(VAL) \ + ((VAL) | \ + ((VAL) >> 1) | \ + ((VAL) >> 2) | \ + ((VAL) >> 4) | \ + ((VAL) >> 8) | \ + ((VAL) >> 16)) +#define fPOW2_ROUNDUP(VAL) (fPOW2_HELP_ROUNDUP((VAL) - 1) + 1) + +#define fTRAP(TRAPTYPE, IMM) \ + register_trap_exception(env, TRAPTYPE, IMM, PC) + +#define fVIRTINSN_SPSWAP(IMM, REG) +#define fVIRTINSN_GETIE(IMM, REG) { REG =3D 0xdeafbeef; } +#define fVIRTINSN_SETIE(IMM, REG) +#define fVIRTINSN_RTE(IMM, REG) +#define fGRE_ENABLED() \ + GET_FIELD(CCR_GRE, env->t_sreg[HEX_SREG_CCR]) +#define fTRAP1_VIRTINSN(IMM) \ + (fGRE_ENABLED() && \ + (((IMM) =3D=3D 1) || ((IMM) =3D=3D 3) || ((IMM) =3D=3D 4) || ((IMM= ) =3D=3D 6))) + +/* Not modeled in qemu */ + +#define MARK_LATE_PRED_WRITE(RNUM) +#define fICINVIDX(REG) +#define fICKILL() +#define fDCKILL() +#define fL2KILL() +#define fL2UNLOCK() +#define fL2CLEAN() +#define fL2CLEANINV() +#define fL2CLEANPA(REG) +#define fL2CLEANINVPA(REG) +#define fL2CLEANINVIDX(REG) +#define fL2CLEANIDX(REG) +#define fL2INVIDX(REG) +#define fL2TAGR(INDEX, DST, DSTREG) +#define fL2UNLOCKA(VA) ((void) VA) +#define fL2TAGW(INDEX, PART2) +#define fDCCLEANIDX(REG) +#define fDCCLEANINVIDX(REG) + +/* Always succeed: */ +#define fL2LOCKA(EA, PDV, PDN) ((void) EA, PDV =3D 0xFF) +#define fCLEAR_RTE_EX() \ + do { \ + uint32_t tmp =3D env->t_sreg[HEX_SREG_SSR]; \ + fINSERT_BITS(tmp, reg_field_info[SSR_EX].width, \ + reg_field_info[SSR_EX].offset, 0); \ + log_sreg_write(env, HEX_SREG_SSR, tmp, slot); \ + } while (0) + +#define fDCINVIDX(REG) +#define fDCINVA(REG) do { REG =3D REG; } while (0) /* Nothing to do in qem= u */ + +#define fTLB_IDXMASK(INDEX) \ + ((INDEX) & (fPOW2_ROUNDUP( \ + fCAST4u(hexagon_tlb_get_num_entries(env_archcpu(env)->tlb))) - 1)) + +#define fTLB_NONPOW2WRAP(INDEX) \ + (((INDEX) >=3D hexagon_tlb_get_num_entries(env_archcpu(env)->tlb)) ? \ + ((INDEX) - hexagon_tlb_get_num_entries(env_archcpu(env)->tlb)) : \ + (INDEX)) + + +#define fTLBW(INDEX, VALUE) \ + hex_tlbw(env, (INDEX), (VALUE)) +#define fTLBW_EXTENDED(INDEX, VALUE) \ + hex_tlbw(env, (INDEX), (VALUE)) +#define fTLB_ENTRY_OVERLAP(VALUE) \ + (hex_tlb_check_overlap(env, VALUE, -1) !=3D -2) +#define fTLB_ENTRY_OVERLAP_IDX(VALUE) \ + hex_tlb_check_overlap(env, VALUE, -1) +#define fTLBR(INDEX) \ + hexagon_tlb_read(env_archcpu(env)->tlb, \ + fTLB_NONPOW2WRAP(fTLB_IDXMASK(INDEX))) +#define fTLBR_EXTENDED(INDEX) \ + hexagon_tlb_read(env_archcpu(env)->tlb, \ + fTLB_NONPOW2WRAP(fTLB_IDXMASK(INDEX))) +#define fTLBP(TLBHI) \ + hex_tlb_lookup(env, ((TLBHI) >> 12), ((TLBHI) << 12)) +#define iic_flush_cache(p) + +#define fIN_DEBUG_MODE(TNUM) ({ \ + HexagonCPU *_cpu =3D env_archcpu(env); \ + uint32_t _isdbst =3D _cpu->globalregs ? \ + hexagon_globalreg_read(_cpu->globalregs, \ + HEX_SREG_ISDBST, env->threadId) : 0; \ + (GET_FIELD(ISDBST_DEBUGMODE, _isdbst) \ + & (0x1 << (TNUM))) !=3D 0; }) + +#define fIN_DEBUG_MODE_NO_ISDB(TNUM) false +#define fIN_DEBUG_MODE_WARN(TNUM) false + +#ifdef QEMU_GENERATE + +/* + * Read tags back as zero for now: + * + * tag value in RD[31:10] for 32k, RD[31:9] for 16k + */ +#define fICTAGR(RS, RD, RD2) \ + do { \ + RD =3D ctx->zero; \ + } while (0) +#define fICTAGW(RS, RD) +#define fICDATAR(RS, RD) \ + do { \ + RD =3D ctx->zero; \ + } while (0) +#define fICDATAW(RS, RD) + +#define fDCTAGW(RS, RT) +/* tag: RD[23:0], state: RD[30:29] */ +#define fDCTAGR(INDEX, DST, DST_REG_NUM) \ + do { \ + DST =3D ctx->zero; \ + } while (0) +#else + +/* + * Read tags back as zero for now: + * + * tag value in RD[31:10] for 32k, RD[31:9] for 16k + */ +#define fICTAGR(RS, RD, RD2) \ + do { \ + RD =3D 0x00; \ + } while (0) +#define fICTAGW(RS, RD) +#define fICDATAR(RS, RD) \ + do { \ + RD =3D 0x00; \ + } while (0) +#define fICDATAW(RS, RD) + +#define fDCTAGW(RS, RT) +/* tag: RD[23:0], state: RD[30:29] */ +#define fDCTAGR(INDEX, DST, DST_REG_NUM) \ + do { \ + DST =3D 0; \ + } while (0) +#endif + +#else +#define ASSERT_DIRECT_TO_GUEST_UNSET(ENV, EXCP) do { } while (0) +#endif + +#define NUM_TLB_REGS(x) (hexagon_tlb_get_num_entries(env_archcpu(env)->tlb= )) + +#endif diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 368391bb846..39f0c0445d6 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -24,6 +24,7 @@ #include "cpu.h" #include "internal.h" #include "macros.h" +#include "sys_macros.h" #include "arch.h" #include "hex_arch_types.h" #include "fma_emu.h" --=20 2.34.1 From nobody Sat Apr 11 21:30:50 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=1773068018; cv=none; d=zohomail.com; s=zohoarc; b=BOtKhJzqjqJD0rAj33e2TGnXJPq9Xm927MwCu+OELdzlCB5QLzDNujC9//4O90Gyiulb34aUuDbgSazVh4CkVuKyli378Nc3Qpbeza43jNrqYpl9nK0LkRDqiOCwOYxsAPrAwN/52Uoe1HBr+IFU3FtFieLZmbZQipvqM56QFno= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773068018; 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=+noMkYUOhKd6CmPutkej3yzEfQc/TUuch39sOhKneQg=; b=Rj1o3T/inPhtXhvYraP/ElLwbDV+ZktBmOXOSmvaS81E0/CAfzk6hAoCSox75tZS1AdiOr4BXe49LOVD3mUFddd7Lj0b576DtHCxl+gsMFrmtUQvgMUtpayw3eYB4sSw/9wqC20qCGpovFfF/nVtlxfDzSy4lTSPZQOqQlfpuxo= 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 1773068018187932.2897896393158; Mon, 9 Mar 2026 07:53:38 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vzbv2-0001NQ-7Y; Mon, 09 Mar 2026 10:49:16 -0400 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 1vzbuc-0000s2-MN for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:54 -0400 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 1vzbua-0005GK-TD for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:50 -0400 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 629EerBC3773507 for ; Mon, 9 Mar 2026 14:48:47 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cstsa98ee-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 14:48:47 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-2bdc1b30ac8so47870993eec.1 for ; Mon, 09 Mar 2026 07:48:47 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be4f82b78esm9322776eec.12.2026.03.09.07.48.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 07:48:44 -0700 (PDT) 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= +noMkYUOhKd6CmPutkej3yzEfQc/TUuch39sOhKneQg=; b=KopeBWPMxbih+bDQ ATUCmYAAMMk8mH1Hc/pzl9nVGKH+LZH90y9bFii/zsDmg3Q4QTZwlbhFZMJR6VFT Fpg2PD8UpkxYNEcTGjrLaE5TAJtl1a/4m32khqQbo8jwmXLAnmZuFezsbnGxo9g/ ToTcdLxhW+twpAqacdUc64rtVxxegzO7rxxm+T7wwAi6U4/H7txVxoMu+XpDBS6+ jpOX4OGxLnGAAa4QT8TGLT8+psX2VRYsVOp5SyQnH5bap4xBSZbUsu2/MB5ZsoUA rKkmpD21eqNTylk10NiH0bxUBvcxfzxCX7KyyXvpdCUoXKnYCjmIjWMOngI7U2iA MIQ3Bg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773067726; x=1773672526; 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=+noMkYUOhKd6CmPutkej3yzEfQc/TUuch39sOhKneQg=; b=A+vyDHStNPWjY/WBQmkK92iCNk5mhh3f98TfYQ8iLfq1QgV/FbcZ2C2hiB1gRk/UGs iN1161zoTQQlD4JkFTyagDFRetPV1ekflrUZk5wXcDKm5DH2yU9yG8a5QfVDQ6yePPCq PPZwvFv/tbohOdKNksDUwFvCGXy1+InwYaDmmqmm7A3y8d8cu0fUr4zA5IanUrqbHNzP Pek7RqT0NuE+piBbbzx9tQZrKTf+RrAIEJWVVG2br6XOPab1BYVc5odgirNjNoS/5dM6 JurKaI4ke9mlJ7nr8D+EtPVQkL+ZjlbvUYXaG19jMkwKaffzA33wagl7yZdPXb2WR1ZZ bWzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773067726; x=1773672526; 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=+noMkYUOhKd6CmPutkej3yzEfQc/TUuch39sOhKneQg=; b=SFqnpBUlooh/rZuR7zTSto2msld7598cJgmy4MPmv8EdwmQ54PFQXi8AzUXaToh9lz v838yXTtkCviXDzjh4qBEnIuaUjb/KOENzHRIUycXlnrnJBwsE1afghUvciRBA+hmuOI 9L2Qv0kqKRzFDvIhuILSunxRitAmIOMTMXv3WfJkGKO68C2qZQP4dSadYsB+vHhtVjmx pUjmIXZyv7EC503qd6rhR6yL8TvwU7gCnnqYrTg9YM3U8FEC8QBtjBEoDt8+p8AJLYOx OXsEFMCPPV2yvCIvsV00aqwUnWdiGcEb90lhterKTjvoRK3IeV1Pcx38rHW+5inLbecI BHxA== X-Gm-Message-State: AOJu0Yx7p5GIeDJVAxnoxUcErXFSYqxmXdX8zdXW/BC4wRqrzxRtpU7U gMyR1k+LytDbK+lWe5qwmYO2Lj6+hpDSdmxK3lrnMd5FSdXWokulAM6b/CuF/1Xlt24afXCpJps RPqpY89IsufCbbiAvp6WBoPpKt0eHn6bZ26OalrwjO0x6/23KLYV5/5LP2MCBVAZ3Eg== X-Gm-Gg: ATEYQzwqvzbjs7MOaKQJLrP12bFa4y/V2QNf6ARZDD4ptJuKe+QSEqAyFuPfBVIWV8w Wunoh4WwOtP50xhy84v1G4qJVLfSSd2MrZ08E79yO9yfpTYGoD/f3hC1TN2l66Tc8qaZvKIOi6J rd0lXSPr9MgLi528et/CLQgvy2THVGQ8KHxXeaEDQaMi/QPQdbffSL9daKYE1hfSMQY/UI43Mk4 TA7FnSVaXjiFCYdTH5SVp17eXAJV0z9awSEGVqIw5/4xJVEgVZ/zbSq8owEJqU6CNHO/OaBLUzI zYAaPwstFfCl1VlyNMNYu7dEaYkunZ1A0Tesksn8OeKUb495K3HJ146/wxW2rEP3++MCt4jr9DU 0c0eJ89WniZhFVNRPIGONsfu2Z1SlDdTxSfqSLfOFdbBBuvqO6Dta5fRPAjIBdhBZtPNhcQ== X-Received: by 2002:a05:7300:3b06:b0:2be:37d:3d6d with SMTP id 5a478bee46e88-2be4e0ac5bemr4752492eec.32.1773067725849; Mon, 09 Mar 2026 07:48:45 -0700 (PDT) X-Received: by 2002:a05:7300:3b06:b0:2be:37d:3d6d with SMTP id 5a478bee46e88-2be4e0ac5bemr4752464eec.32.1773067725243; Mon, 09 Mar 2026 07:48:45 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 17/35] target/hexagon: Add handlers for guest/sysreg r/w Date: Mon, 9 Mar 2026 07:48:04 -0700 Message-Id: <20260309144822.877695-18-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> References: <20260309144822.877695-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: wO5oxUxqOYbSWhj2q1Xt6YIFQr1zcD6g X-Authority-Analysis: v=2.4 cv=I+Vohdgg c=1 sm=1 tr=0 ts=69aeddcf cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=YS0KV4ZxTOLzYV__0jkA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDEzMyBTYWx0ZWRfX8MI3pHQufn+V H2oBgS6UGm2ZHY74OMz5V6mXkAYw3n0O6fH+nbtwy09n2qxQi+uATK5OUKiQroTdhtPr3/pCl/k F8cctB/2xlSs6Q97W08jK3CtxqCafKiz8NCeV3OIswWjQWtRPw/fuVV/um60256VccQDnwI2tQB XNgAOL/6rszOx/oUtqfGbsxCVE/s0unL/eQTQyuZQaiwIa5GK6lqYUpYGJGwJVCexyVlXdmrTZ/ c7G1HN3Z9RBmD44Ah+nypePbjUKq/uynvP5jK18wwecuK9XwwZolECqdDrYYi6ULyKFcLV3ODQT UvgeiaNBEGWm+RL3IMHBRPsrOkx9Gbv2Bw2ttzgl3dEMN2FoX7hSn8isF/nWmZdeFuodS4itLY+ xTrDhRI+SF1qdjIebds940OnIx2FcV1E4+TcDUQUVAUL/g7mQmCjLy4A4Kkh0K1sciLpbR5g2en HzxhwsxuDtJPx7nX0YA== X-Proofpoint-ORIG-GUID: wO5oxUxqOYbSWhj2q1Xt6YIFQr1zcD6g X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_04,2026-03-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 spamscore=0 malwarescore=0 suspectscore=0 bulkscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090133 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: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773068034402158500 From: Brian Cain This commit provides handlers to generate TCG for guest and system register reads and writes. They will be leveraged by a future commit. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/genptr.c | 147 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) diff --git a/target/hexagon/genptr.c b/target/hexagon/genptr.c index 9eb21da6f3e..2310b9aec3a 100644 --- a/target/hexagon/genptr.c +++ b/target/hexagon/genptr.c @@ -23,6 +23,7 @@ #include "exec/helper-gen.h" #include "insn.h" #include "opcodes.h" +#include "sys_macros.h" #include "translate.h" #define QEMU_GENERATE /* Used internally by macros.h */ #include "macros.h" @@ -120,6 +121,152 @@ TCGv get_result_pred(DisasContext *ctx, int pnum) } } =20 +#ifndef CONFIG_USER_ONLY +G_GNUC_UNUSED +static bool greg_writable(int rnum, bool pair) +{ + if (pair) { + if (rnum < HEX_GREG_G3) { + return true; + } + qemu_log_mask(LOG_UNIMP, + "Warning: ignoring write to guest register pair G%d:%d\n", + rnum + 1, rnum); + } else { + if (rnum <=3D HEX_GREG_G3) { + return true; + } + qemu_log_mask(LOG_UNIMP, + "Warning: ignoring write to guest register G%d\n", rnum); + } + return false; +} + +G_GNUC_UNUSED +static void check_greg_impl(int rnum, bool pair) +{ + if (pair && (!greg_implemented(rnum) || !greg_implemented(rnum + 1))) { + qemu_log_mask(LOG_UNIMP, + "Warning: guest register pair G%d:%d is unimplemented or " + "reserved. Read will yield 0.\n", + rnum + 1, rnum); + } else if (!pair && !greg_implemented(rnum)) { + qemu_log_mask(LOG_UNIMP, + "Warning: guest register G%d is unimplemented or reserved." + " Read will yield 0.\n", rnum); + } +} + +G_GNUC_UNUSED +static inline void gen_log_greg_write(DisasContext *ctx, int rnum, TCGv_i3= 2 val) +{ + tcg_gen_mov_i32(ctx->greg_new_value[rnum], val); +} + +G_GNUC_UNUSED +static void gen_log_greg_write_pair(DisasContext *ctx, int rnum, TCGv_i64 = val) +{ + TCGv_i32 val32 =3D tcg_temp_new_i32(); + + /* Low word */ + tcg_gen_extrl_i64_i32(val32, val); + gen_log_greg_write(ctx, rnum, val32); + + /* High word */ + tcg_gen_extrh_i64_i32(val32, val); + gen_log_greg_write(ctx, rnum + 1, val32); +} + +static const uint32_t sreg_immut_masks[NUM_SREGS] =3D { + [HEX_SREG_STID] =3D 0xff00ff00, + [HEX_SREG_ELR] =3D 0x00000003, + [HEX_SREG_SSR] =3D 0x00008000, + [HEX_SREG_CCR] =3D 0x10e0ff24, + [HEX_SREG_HTID] =3D IMMUTABLE, + [HEX_SREG_IMASK] =3D 0xffff0000, + [HEX_SREG_GEVB] =3D 0x000000ff, +}; + +G_GNUC_UNUSED +static void gen_log_sreg_write(DisasContext *ctx, int rnum, TCGv_i32 val) +{ + const uint32_t reg_mask =3D sreg_immut_masks[rnum]; + + if (reg_mask !=3D IMMUTABLE) { + if (rnum < HEX_SREG_GLB_START) { + gen_masked_reg_write(val, hex_t_sreg[rnum], reg_mask); + tcg_gen_mov_i32(ctx->t_sreg_new_value[rnum], val); + } else { + gen_helper_sreg_write_masked(tcg_env, tcg_constant_i32(rnum), = val); + } + } +} + +G_GNUC_UNUSED +static void gen_log_sreg_write_pair(DisasContext *ctx, int rnum, TCGv_i64 = val) +{ + TCGv_i32 val32 =3D tcg_temp_new_i32(); + + /* Low word */ + tcg_gen_extrl_i64_i32(val32, val); + gen_log_sreg_write(ctx, rnum, val32); + + /* High word */ + tcg_gen_extrh_i64_i32(val32, val); + gen_log_sreg_write(ctx, rnum + 1, val32); +} + +G_GNUC_UNUSED +static void gen_read_sreg(TCGv_i32 dst, int reg_num) +{ + if (reg_num >=3D HEX_SREG_GLB_START || reg_num =3D=3D HEX_SREG_BADVA) { + gen_helper_sreg_read(dst, tcg_env, tcg_constant_i32(reg_num)); + } else { + tcg_gen_mov_i32(dst, hex_t_sreg[reg_num]); + } +} + +G_GNUC_UNUSED +static void gen_read_sreg_pair(TCGv_i64 dst, int reg_num) +{ + if (reg_num < HEX_SREG_GLB_START) { + if (reg_num + 1 =3D=3D HEX_SREG_BADVA) { + TCGv_i32 badva =3D tcg_temp_new_i32(); + gen_helper_sreg_read(badva, tcg_env, + tcg_constant_i32(HEX_SREG_BADVA)); + tcg_gen_concat_i32_i64(dst, hex_t_sreg[reg_num], badva); + } else { + tcg_gen_concat_i32_i64(dst, hex_t_sreg[reg_num], + hex_t_sreg[reg_num + 1]); + } + } else { + gen_helper_sreg_read_pair(dst, tcg_env, tcg_constant_i32(reg_num)); + } +} + +G_GNUC_UNUSED +static void gen_read_greg(TCGv_i32 dst, int reg_num) +{ + if (reg_num <=3D HEX_GREG_G3) { + tcg_gen_mov_i32(dst, hex_greg[reg_num]); + } else { + gen_helper_greg_read(dst, tcg_env, tcg_constant_i32(reg_num)); + } +} + +G_GNUC_UNUSED +static void gen_read_greg_pair(TCGv_i64 dst, int reg_num) +{ + if (reg_num =3D=3D HEX_GREG_G0 || reg_num =3D=3D HEX_GREG_G2) { + tcg_gen_concat_i32_i64(dst, hex_greg[reg_num], + hex_greg[reg_num + 1]); + } else { + gen_helper_greg_read_pair(dst, tcg_env, tcg_constant_i32(reg_num)); + } +} +#endif + + void gen_pred_write(DisasContext *ctx, int pnum, TCGv val) { TCGv pred =3D get_result_pred(ctx, pnum); --=20 2.34.1 From nobody Sat Apr 11 21:30:50 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=1773068175; cv=none; d=zohomail.com; s=zohoarc; b=CZL18KqH7YGAbIh3z8vogDIuDN5rarqRorgxaM7McdRiEMbvS7klQZBkMSIdFwaxP7vCdGKgRKk4YP9K+zGqPJgvz4utk+j8Kf1yEn2/zWd8dxa1oePzzSh6wuVeUlgHWrD+WzDnYmGJeWQnKwjMzfFtsfKMrrwyg2UcoPb7zdk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773068175; 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=OqE5bWyqVOMH2287utgcd5+0zOoEy0K6PwtAnHO2baM=; b=dkdGRC2+nlb9Zu+hbfoQlD6660BfFAP8qX3lalAxASbjkoweov085eo3D9S22p7ncQa1q+jnUE/99+nlt2xws4R2n2AM/scoihZY2cOzMCRcgsirvi+ljk8+NPpVBIVdlu8/2byc3LVaX612wiDOXOlCG2lz3tu2N0RIKpnEGRo= 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 1773068175287104.60412042044902; Mon, 9 Mar 2026 07:56:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vzbut-00011B-La; Mon, 09 Mar 2026 10:49:08 -0400 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 1vzbun-0000wX-SJ for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:49:01 -0400 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 1vzbul-0005GR-7f for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:49:00 -0400 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 6298WAJh3773176 for ; Mon, 9 Mar 2026 14:48:48 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cstsa98eg-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 14:48:48 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-2be47f2899aso47129340eec.0 for ; Mon, 09 Mar 2026 07:48:48 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be4f82b78esm9322776eec.12.2026.03.09.07.48.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 07:48:45 -0700 (PDT) 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= OqE5bWyqVOMH2287utgcd5+0zOoEy0K6PwtAnHO2baM=; b=cdaJRyh86QuxAPgk GqxYrGW8r/ehrfKPdobgtnytzyVBpf1U56vt82+CcG6rJ86gHHLMV6tYtdVQSwEE CX+Vyy4n6JDLyLVzPeOkH8RIRKkk5GekokeZT9G470lQiVqf75PR0HrjPoOcbII4 cABQKt3+0FlRyS0ti4Cgp2WRJootxJ8wUl7AhjsU+CguOCv38ku9K8wcQa4Bz+fL RxPHexhDFqrcpfpESjfXkzmCsvc+AJWk9uqcSj7oiSIJYerHhTWCbhp5ncanMxkc fPDeyRzvRRMDKQbk18qcv29nXVPNPDQhkmzMXMjIQu1B+R02mpoD4Q2wqMSJeZfK iYI6zg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773067727; x=1773672527; 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=OqE5bWyqVOMH2287utgcd5+0zOoEy0K6PwtAnHO2baM=; b=ejlQsbD2jVhvn1m0B7yYNTo6kxqaI9m7Y5PHnveSd6QiVQBv7d51uylCSpGRtdtQEv tx0JPGFT01JULWNoH3JtvkFU6h8ZJHhU1XO2AESWxgFogrEWn6xCm1wqnK9dIV+myiEe xgTaO4Ty0D9KxU96Fg+qV6vkZoTWECnMDNHWm57dG+5tqt78/U1CFxFwSbjQ2pqK+oLw 9+Ki3UZhostxC2WSk5Yx9Vz/LoVjJtmps7iZO3Gd3FxYipP33K+6eHPFECPdysBqUxoM IJMHoesywq2/v+yvxBkS06d0ni4YxeZ5ovJTGFq4RQ6xWVHzVxgoTprtP4ghjQu9jCpG e+7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773067727; x=1773672527; 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=OqE5bWyqVOMH2287utgcd5+0zOoEy0K6PwtAnHO2baM=; b=B3ewhPAEag4rvedTtkGguTovVQrxEcnqfa9WP03h4MOVddAGo4djHAg/SBLDbKy6bm BDiw++iGdekasnfLAf+DzHajMx6s3FiWcX38exwuKAG7wIi0XZNBuBCn2m6TrNbqm0PP 9u8MdbXjRXoHpnOw9/j0vycs5+bZWvp3Uj0m3gc/02cZmcLWSOh6WiAX2/qjVaRV3vt+ BW94in9vgfl3tEJuaFg04VMCfihEfrR3litWosLdM+2SykHM0k87emyap/+9pnzZ796T 8ORBSlK+o/P2QVrKxPj6Nyh5yOSdaleh874V3NhKxMX5pqhyaaZ4gtIm2STOFge2n4tP Ld9g== X-Gm-Message-State: AOJu0YwzYkEbM2hXVBRaR6S2e4Cgn6Zq0dusKrkAg5V6e8vYRE8oo+l7 IVAn/Rn2dGegm1ljX4fXDKsXU4NrvqP27wtygj3INhMxNh8pyvXBqHvPjr3nrs/M+VuRGH7AQVE 3IigTU0MAybwgTsvqm5TLMC3Mv7BzfWKJ+V1AOLmOnXkTP6wr2U5X33ZUa0Yw/eUIBQ== X-Gm-Gg: ATEYQzxs7N8QlcEz1iIrjQ6Iq9U3q+TDIKMknnZ7Lnnk06hvp2DhlBLWYYUNgFeQq7S Xea4tAwGhw0jV7xtl4AnqbWY4E0S6Asd7n2/n01fuMg01qD9uG0F/T+ismIugeeb6HgfbB2zzaz 5riqV6F47aibZwNAQS+7FPS2XjSjWZV1GRaR9YOpWiT3bKHJoC2vZsyQEQoOqWEzGlnJSUXO97y e7OkSYuzbrYZ2cifKXykxgJcp3J0n5HKHgWhNoNbrnbLnq+LM9dK9HEBS6235LLotAsJsrC4oQl KfSw9e1YHykrYkYTJOPtQrZwjMcfZfrrrvEPdiKKNmceKW7NcIYTylhjmzrcrrCkW1QTbEm21ic wCczpEjMRGV5ByHKoBcwA5hJtDv96aQXpFzY33IEEzflfB+Mc0R9QFE9M4aJo1r67c6GHVw== X-Received: by 2002:a05:7301:3f07:b0:2be:fe8:8afc with SMTP id 5a478bee46e88-2be4e05bb27mr4566674eec.27.1773067727165; Mon, 09 Mar 2026 07:48:47 -0700 (PDT) X-Received: by 2002:a05:7301:3f07:b0:2be:fe8:8afc with SMTP id 5a478bee46e88-2be4e05bb27mr4566650eec.27.1773067726609; Mon, 09 Mar 2026 07:48:46 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 18/35] target/hexagon: Add placeholder greg/sreg r/w helpers Date: Mon, 9 Mar 2026 07:48:05 -0700 Message-Id: <20260309144822.877695-19-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> References: <20260309144822.877695-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: Gs_9TiqMpRG0Zg4GmuKc92jHZw8WEpu3 X-Authority-Analysis: v=2.4 cv=I+Vohdgg c=1 sm=1 tr=0 ts=69aeddd0 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=wA0rHRt5QP8iJxr38i8A:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDEzMyBTYWx0ZWRfXzyzNjdpphfxw Ap8varo+KQyvGLt18Ggdw74N7NFzwtp0KiCLRtRB0jg4XxEtNtdElVN1Z1rL1XJk3g8e7eaReb3 1OmFnpCYA/3/XTY8lo1Vdf9zK1GU2R0xXoBP9r4BKAsSmH3xDyZiZ7tMlCgl1KJ3vj77RceDk3H ATe7enyzDwxTtUPJ0R5XOYCk8BSbfO+XX0ZeeeOTIu3ClKBVXsAHCIAsuHbaQmIkXU5dcRzd47U vVwSstbwgduaGedy0eobe6l8pOagG+4yB8H05MqK15+IwynGHcwa5lW0wQ1bI9s3gKcBEicJttC 6xtaRywU98CuGb04LTs9ptJUnCDzeA43iOh+Il3XjZI2uv1MVEovZBIjDi8bRyKXMojHT57XVd4 dJVju24RCCVl0STbPcaGhkbKsrP5Mm29C7cumZha/YjvOw8m1hLjwCpMZ61HsdAttKCaLOJnKI5 tklF5k5yCQrV+DOZRlA== X-Proofpoint-ORIG-GUID: Gs_9TiqMpRG0Zg4GmuKc92jHZw8WEpu3 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_04,2026-03-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 spamscore=0 malwarescore=0 suspectscore=0 bulkscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090133 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: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773068176048158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/helper.h | 8 ++++++++ target/hexagon/op_helper.c | 28 ++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index 64456822bc1..28b9b59e0f2 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -107,3 +107,11 @@ DEF_HELPER_4(probe_noshuf_load, void, env, i32, int, i= nt) DEF_HELPER_2(probe_pkt_scalar_store_s0, void, env, int) DEF_HELPER_2(probe_hvx_stores, void, env, int) DEF_HELPER_2(probe_pkt_scalar_hvx_stores, void, env, int) + +#if !defined(CONFIG_USER_ONLY) +DEF_HELPER_2(sreg_read, i32, env, i32) +DEF_HELPER_2(sreg_read_pair, i64, env, i32) +DEF_HELPER_2(greg_read, i32, env, i32) +DEF_HELPER_2(greg_read_pair, i64, env, i32) +DEF_HELPER_3(sreg_write_masked, void, env, i32, i32) +#endif diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 39f0c0445d6..4db38d8eff2 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1370,6 +1370,34 @@ void HELPER(vwhist128qm)(CPUHexagonState *env, int32= _t uiV) } } =20 +#ifndef CONFIG_USER_ONLY +void HELPER(sreg_write_masked)(CPUHexagonState *env, uint32_t reg, uint32_= t val) +{ + g_assert_not_reached(); +} + +uint32_t HELPER(sreg_read)(CPUHexagonState *env, uint32_t reg) +{ + g_assert_not_reached(); +} + +uint64_t HELPER(sreg_read_pair)(CPUHexagonState *env, uint32_t reg) +{ + g_assert_not_reached(); +} + +uint32_t HELPER(greg_read)(CPUHexagonState *env, uint32_t reg) +{ + g_assert_not_reached(); +} + +uint64_t HELPER(greg_read_pair)(CPUHexagonState *env, uint32_t reg) +{ + g_assert_not_reached(); +} +#endif + + /* These macros can be referenced in the generated helper functions */ #define warn(...) /* Nothing */ #define fatal(...) g_assert_not_reached(); --=20 2.34.1 From nobody Sat Apr 11 21:30:50 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=1773068049; cv=none; d=zohomail.com; s=zohoarc; b=NIVig9ywiPN8bVD7LTklqtlUQyQE72ajahduv+kMqe8Xb0kZqSWPoS/8tA8Y9/urv3jQQL2IaiyPVXkeQQCekvh87g6RZUM/Bb+KdF94Mhs41fCPGwd7nDTd8k4rhssdTgTqonhFL9fKqTOD1/gEPTXlm3zbZ/nh0QPL9ky+z7k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773068049; 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=hjdqw7ViUHZY/mO/JrPBTjkTU8B404aXzmagcFLQRi8=; b=W6P5hPcHK96D8wE1FCC41xHL5K2vPEIBm6bLFoLPSy3Rd9/nOxMG1Xcb1R7mWjdoa9KsIUDGWAmImOyNIk4DoS1fY4zKQe30b94wjR4lS5gCdxXL8/pYwy6UefPlnjhUz3alJTKnDO0j/cMaVBaq4ud78za1EviUcl1c3C/wLYA= 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 177306804978521.311695140381175; Mon, 9 Mar 2026 07:54:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vzbv3-0001QG-2k; Mon, 09 Mar 2026 10:49:17 -0400 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 1vzbuq-0000yL-Q5 for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:49:05 -0400 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 1vzbun-0005Gs-KC for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:49:04 -0400 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 629EAUAb1249036 for ; Mon, 9 Mar 2026 14:48:50 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 4csyr403t1-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 14:48:49 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2bdff07d8f4so12962361eec.1 for ; Mon, 09 Mar 2026 07:48:49 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be4f82b78esm9322776eec.12.2026.03.09.07.48.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 07:48:47 -0700 (PDT) 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= hjdqw7ViUHZY/mO/JrPBTjkTU8B404aXzmagcFLQRi8=; b=iRhsyFQ+5Yduzmvz wPyK23ySzmMuHl0CiGCEcUmzEEBwzoau5dBNuGlPG35xQ0hfAUjvaGUnR47D2VZf LO9N/VeQtZgaeDjNYY8Y2lD5mD3Br49emP0qQTP9/YNmxWoK9mHC7lnACwCpZjR+ wU6fVDUK6OIgybdsjYzLTAG/7nosAjWG5BXfimmc+d1Y+1NTj/7DA97tbxmNM9Um DCqKaNgTJn3LkEsQIuBgqQ4oPJAgnppuxZ0Konklt78Q7ybndYFEeJ42Ibywc4S7 FN+6Zryta6H5PMhFziZY8s4qvhrYDqVBPWOGz3w9rQSWypIdr66hJRsHjZmABzY6 kCHPYA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773067729; x=1773672529; 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=hjdqw7ViUHZY/mO/JrPBTjkTU8B404aXzmagcFLQRi8=; b=Gd8kKHQ29eLWh7wXsggfaeuQqTHYWOWwKLf9yIjqJme20WtbaAhV1KcYAUkiRaHqhj liGgg8knvRFIcJ7ieJiZHEIYJbR3WZfhuhoMVlRjQ7hqqn/yICm24j3pkFCNf+/zNrfc 30bzFSvJtHVEYyLy5rK0enSjUVk2STXiRikKY9VdMge73019G5sxkiE45/OFV1uJcJU/ 77T33sPS4pUajuS3g2hHxbaZGwr411O3vZsFuYAwJovIxDbY2E6VVos293R0Ijiapm+0 BUytjGN6rZSg5Mv+zV178mFr8jwEcXB/UzRLFs6h0mPjwap/fw2x5smkUK8tuAwJerc+ SFxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773067729; x=1773672529; 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=hjdqw7ViUHZY/mO/JrPBTjkTU8B404aXzmagcFLQRi8=; b=bObaaiCa+/7fp0k38S/aFQC2Ij2PdriMuyLYfdZ10WctVIElDWQBAJBilq+wbtoaqX KzejhCeaf5ka3bjQhs3HBe2oToWbrhd6Ve3K1NaZPTBad4zrY9FdCem+9KhVo1UqNYgV V77PhBnEGH3eHEcWMdJ0ii4cqyhSZJsnpku6iWMJv8lXJLeZ+WPYsvLnXLAb0013CUii jywKeKr2gBPuv45nHAn+gogEXVHsISBIktS7aHlO3z/RkbV2VYnTQq/Hjk0yt9mLladP wcNWW8fNvs6CdJEakhVz2RT8d0yekHA0O1hsJyB4pV8ApPYpjySwE03lr/dnJBWp0c0J JvZA== X-Gm-Message-State: AOJu0Yx4U6bNVRfCwbZVwtkPzC5rRcOgmgLUQ6rGiTs660iklQSB2+ap O2yiJQq4cVE1CgtDCxMySuuDyijGUzlw/wrSc0e4ghTQ0XJrJkNvn6y9NQ/Za3lxB1Dt9qW301O Kl2wd5TyYZjMxiWEKtnYKADtKUEpXcl6aPtN4lagpRc6Cg/uAhZQ3cloZvBBMzdw1nw== X-Gm-Gg: ATEYQzwrWSOdhFANIrzxB3kFIaOfbYULoUvQI93kSHIOjqGQekDzs0S54CHmdUUJD2E 0nS3wszlgpXJyaPJfD7KO4YRfm8072FwQzFdWMqXNLLQsPM2RSCkbG1ZNVToegwJJ5w/EZeQYW8 tQ0SfEJ/2VgOsMd7jq5sBCYdjehJo8eO7i31k34kW6YX78XFBtgoP3ctI/Tl8t5KhECzQLZQlMY kjj5uHMnIEc/x68xmMMRnkuLIKCy8NgCFhL3o8Dxw6roGwrp9ymPXFs3cE4IVyWgSc9l1kxugTK mFDx2G7biSusUfN6Z1mp2E/SmR4NUJJ/tYy44PPYKT6TVFFGeLi8SDhdu3Mps8G19TDcXJnnsVO MK55RMd82Jabwv34q9NwyFiEPg+cacSt47vp4agyNXc3Z+eHupxqe/x0c2L36Wy0M1L92cQ== X-Received: by 2002:a05:7300:cd90:b0:2ba:7863:f0a8 with SMTP id 5a478bee46e88-2be4e0d3a1cmr4278243eec.36.1773067728680; Mon, 09 Mar 2026 07:48:48 -0700 (PDT) X-Received: by 2002:a05:7300:cd90:b0:2ba:7863:f0a8 with SMTP id 5a478bee46e88-2be4e0d3a1cmr4278227eec.36.1773067728025; Mon, 09 Mar 2026 07:48:48 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 19/35] target/hexagon: Add vmstate representation Date: Mon, 9 Mar 2026 07:48:06 -0700 Message-Id: <20260309144822.877695-20-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> References: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDEzMyBTYWx0ZWRfX4f2tr1oYQWtg Vzq8YBJpVzWbVK2WMmdW3cFOf9l9CMUo0zh9XwzejG2RdVybtfUnmFZAhda0fX8shCtXdKDY86v N3Zd2GdwSyZSshDKOq7ZRrfu4O1QGakUKu74lrz6PqK1NwXnKhMhMgkkDBqwJRBKD/W//2lsY9t ToY3xcy+Z+ec7cnDLSUp/7j5X60HmY1ZdeJLXJ5O1e/ueoVoRaGPk7R3XRqBOoUXFRxjvuM5N9r W2TQFL3OhoBGLLO7a5Zz4X+U/9Z7tUjC2VFAN4VaeWwMhcWxJtfe0vwGOaSGjdfRTl0CyNRIBBc Q6s25dSNu10njq4kJc0SIMpNA19McoV6jzwy0ZXR/7PZQZyM/8q2ULVwVL931Nq0g4hVw49Ocxo +7/fn51/yPqU1Ae7YSKlfayBnXPXf7XIJsYoThLsdZip0c5pJDtLnugAEryZZZ0mHHsf02WRk7o wBOV7x8exDv0lnVj79w== X-Proofpoint-GUID: 8m0XR6S89EHFFcm_clcxKzYI_2rNB_7v X-Proofpoint-ORIG-GUID: 8m0XR6S89EHFFcm_clcxKzYI_2rNB_7v X-Authority-Analysis: v=2.4 cv=KNRXzVFo c=1 sm=1 tr=0 ts=69aeddd1 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=zFM9_BfjGYtbIq66ZkUA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_04,2026-03-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 impostorscore=0 spamscore=0 bulkscore=0 priorityscore=1501 suspectscore=0 clxscore=1015 lowpriorityscore=0 malwarescore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090133 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: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773068051357158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/internal.h | 4 ++++ target/hexagon/cpu.c | 3 +++ target/hexagon/machine.c | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 39 insertions(+) create mode 100644 target/hexagon/machine.c diff --git a/target/hexagon/internal.h b/target/hexagon/internal.h index 5fc837ae229..cd06ff41d4f 100644 --- a/target/hexagon/internal.h +++ b/target/hexagon/internal.h @@ -31,4 +31,8 @@ void hexagon_debug(CPUHexagonState *env); =20 extern const char * const hexagon_regnames[TOTAL_PER_THREAD_REGS]; =20 +#ifndef CONFIG_USER_ONLY +extern const VMStateDescription vmstate_hexagon_cpu; +#endif + #endif diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 6fabfaad6d2..38d605b06ba 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -387,6 +387,9 @@ static void hexagon_cpu_class_init(ObjectClass *c, cons= t void *data) cc->gdb_stop_before_watchpoint =3D true; cc->gdb_core_xml_file =3D "hexagon-core.xml"; cc->disas_set_info =3D hexagon_cpu_disas_set_info; +#ifndef CONFIG_USER_ONLY + dc->vmsd =3D &vmstate_hexagon_cpu; +#endif cc->tcg_ops =3D &hexagon_tcg_ops; } =20 diff --git a/target/hexagon/machine.c b/target/hexagon/machine.c new file mode 100644 index 00000000000..d6dcd07dd4a --- /dev/null +++ b/target/hexagon/machine.c @@ -0,0 +1,32 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "migration/cpu.h" +#include "cpu.h" + +const VMStateDescription vmstate_hexagon_cpu =3D { + .name =3D "cpu", + .version_id =3D 1, + .minimum_version_id =3D 1, + .fields =3D (VMStateField[]) { + VMSTATE_UINT32_ARRAY(env.gpr, HexagonCPU, TOTAL_PER_THREAD_REGS), + VMSTATE_UINT32_ARRAY(env.pred, HexagonCPU, NUM_PREGS), + VMSTATE_UINT32_ARRAY(env.t_sreg, HexagonCPU, NUM_SREGS), + VMSTATE_UINT32_ARRAY(env.greg, HexagonCPU, NUM_GREGS), + VMSTATE_UINT32(env.next_PC, HexagonCPU), + VMSTATE_UINT32(env.tlb_lock_state, HexagonCPU), + VMSTATE_UINT32(env.k0_lock_state, HexagonCPU), + VMSTATE_UINT32(env.tlb_lock_count, HexagonCPU), + VMSTATE_UINT32(env.k0_lock_count, HexagonCPU), + VMSTATE_UINT32(env.threadId, HexagonCPU), + VMSTATE_UINT32(env.cause_code, HexagonCPU), + VMSTATE_UINT32(env.wait_next_pc, HexagonCPU), + VMSTATE_UINT64(env.t_cycle_count, HexagonCPU), + + VMSTATE_END_OF_LIST() + }, +}; --=20 2.34.1 From nobody Sat Apr 11 21:30:50 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=1773068003; cv=none; d=zohomail.com; s=zohoarc; b=YBzGUMJq6KjW4vcLyMQT0/1iMqtz04thOI+6dfAOC02LbOLsd9VPmGvUrpxeiNhqDO/HZw1kaOPfYIDES19y9D718Ix1NOmCV7gUCaOjBGc8mg3t47jZSXKhFGhU7oitpmTcIUAhud8FBuSaGoVmd1uo6Uzq8Djg1/2O6dQgIWE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773068003; 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=jXncDzIpL7BHLhBBLfh8X+wcCJY2MGqK0a3S6KiKLrI=; b=YGYBObdCx+4ImV5GvpWRzk/xPnYaNn91APCGL1IEkJjYf/OsI+vLtomVLJ3FtZWzdmIR56Z8qWuYG9KoWJoozD5YMThhyEZWV70VwAcaQrAat7QO5iYH8hdZ3agdXexc9QYiP5w5mIDsj2r2i901yKmpm4+RLtEZFGu2QKAscnk= 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 177306800389938.61326987398854; Mon, 9 Mar 2026 07:53:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vzbv2-0001O3-Ax; Mon, 09 Mar 2026 10:49:16 -0400 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 1vzbuq-0000yI-N8 for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:49:05 -0400 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 1vzbuo-0005H2-PC for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:49:04 -0400 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 629A6h9I2195267 for ; Mon, 9 Mar 2026 14:48:50 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4csv5u8vkn-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 14:48:50 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-2be1bc0905bso6078494eec.1 for ; Mon, 09 Mar 2026 07:48:50 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be4f82b78esm9322776eec.12.2026.03.09.07.48.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 07:48:48 -0700 (PDT) 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= jXncDzIpL7BHLhBBLfh8X+wcCJY2MGqK0a3S6KiKLrI=; b=YkP9p2cZWRi5KSYD WR4yiEhYDSMmUD5XE2+Pk5TmSliIV8os8j0Pl5ZDigBsgp4TOnX8SHpmypkn8Fg3 tI1QDZAVA8gxVyO09MpEb2SRsCG02bw/RNBmStV/Wi6dGy8se7DMzWAS7h4yWuEK zGsP5iue78cdk6xVS5gl4YTveb2+N5J/EbaOZbXZ5qGVZRZus9DhnsiUMGLdU/h3 JaLP9ctg8Qga1cXz73XaCaYq/xaZ9i4t26zmRPfkQlQAlWKh2cRUFMXw0MUpBAf3 Yiu7NGyr8c7JgwXIDDs5d/8mxrzdo9PLFlcMi5e/d6kjhd8fxDEoL9xuV6+11Kht Mjfrzw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773067730; x=1773672530; 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=jXncDzIpL7BHLhBBLfh8X+wcCJY2MGqK0a3S6KiKLrI=; b=OQtCe4yQUb1+XVldsX1TS8JJBsS6mbbLzaWaJkfrlIQfkUfRzautJMq7wjYVFgWyRC D0QynDACEG2D4YW8qEevx9393ycVeYwN4Orw0d0wizWWhWC6k7KFDFOrWiSVhszzXLxA br0hqdw7B47vm5EehMI7jmNwowj1E/CXH8ja8m+58e9CaPCNG6AYYCE0xPtCDJnBo7Hj PBB/xseEz9NSpnKpuL5lqE+ABB41qomsby+vAFDllwCT+dGzNyP4Cn+Sg5MqVRUPiYdk itRrxW3T7NWtH9gQ7RS1Tg+/hqX7pc6Ui7Kz+zqJExGX8jI6y+bkTLQK97TzlXotje2e hifg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773067730; x=1773672530; 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=jXncDzIpL7BHLhBBLfh8X+wcCJY2MGqK0a3S6KiKLrI=; b=bMUOglmgHVXI6qjwGZbUbWc9wYe1NvSb3WPrZxxZmp3s0pB0xOdBGnK0Z/muP93a2k hrQ4r2RSB+UCFHyicT5LeXSXLRTLmlZz/BUxjofs/RwGZntZtcN3M4sAZmCuFEyjjNSJ 4eFzsKGZSpL4fPCyMzNYnNqkm+wNjYAy/IbBzmopyXYLXnjqNOriJP7md1CId7C3MoqT 7QPVPObXq+iE51hPVeTXOTa2nzLvUDsVwdizcDLzydOeqq5SI3oJl5oAl5FfrEO8cKAi m8KuewY/qKIEteCh+G265jKUJtlv3QBvAuVwido/zp6uVU8kgedSyF4cED3PNWLYAiiX kkCw== X-Gm-Message-State: AOJu0YzB9p4HnLWbKr6PbLivgolk7lxOTpzB/nawWISqIKf0lWeB3FCY xmdMNGbr+MFV2bwxU716qadoDTbFi4mSCFO8kRF9ydugQBaTHdECo1p0kGzIPOaWKE0Il9GwFW0 NEdVPU+P+kb3AZHuefJZsZZ2MXDR8zmA9BxPxddfXCW7nhdK3Gx1s184kvcmHP0uQOA== X-Gm-Gg: ATEYQzxivoCQowCpRbYuANhF5VXQoOTTliwi6vvTSBG/GzdQFj12/XjISCtJzJLekEV suQYJqkdjU2oLVxs1Ps2MBwPV2dv0H3JhiRgpU0UysGYL/2sMV0D6WSGzPW7VFMKk8nyNjuWvOo UBAAWH89kv2QsjQ9wLNNBRcl1bOrBw1Mq6Kf4tvd17fp+CCC+NlCDZVuBFsYcQGDkf4JU9O+Y9J Bb3EsnHdC283a9qvmsN79qzN+OtX9Z/34aXQeK9AEODVIrcMoFycFwgzBYaDz7FvCJePmrnXBCo bTl98wF5axFRdHzLw97TpYEiX3cu8tAqgMf7alaqHehUE5WxpDGH87QtfKgjh3dAL0ZUa+nyQOR fnNenEc7iIyOx5S2h8pFHOU6Tc1MsQc2cLtQnxEAj0ujDAw2ERAEQnUnscBu/w/tUfM+3Cw== X-Received: by 2002:a05:7300:fd03:b0:2ba:9835:1113 with SMTP id 5a478bee46e88-2be4e090029mr4474598eec.36.1773067729410; Mon, 09 Mar 2026 07:48:49 -0700 (PDT) X-Received: by 2002:a05:7300:fd03:b0:2ba:9835:1113 with SMTP id 5a478bee46e88-2be4e090029mr4474578eec.36.1773067728876; Mon, 09 Mar 2026 07:48:48 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 20/35] target/hexagon: Make A_PRIV, "J2_trap*" insts need_env() Date: Mon, 9 Mar 2026 07:48:07 -0700 Message-Id: <20260309144822.877695-21-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> References: <20260309144822.877695-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: QuQDlqZlWC2WDEj6w_a7SdIqtyL4qU93 X-Proofpoint-ORIG-GUID: QuQDlqZlWC2WDEj6w_a7SdIqtyL4qU93 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDEzMyBTYWx0ZWRfX2s6K9JOqQuJd 7TL1JOhe5XYN2z0OFzOlWXCI48wkVNQQDxe5AaEqART3ZwAP4u+7mCyXAgXb5G4CcKjcGBWFDQM RhnwZkgO3tAOkiFCxfOBG4KVBYvow6ery2L8j9jFZ6syf9YEW48H/nfyK4if0AX/Ir3g/BELKTR u9HBEHGDgS/D27n0ykDTnvm2t90BK4WSHTbpzOZOkDHP68ZbH0wZVHhFttqHd5fWFeVAICpfJwH 3CmG8TERwso7fsKfIsI+yS1g/fI74Wkdt1k+JO1H4AyB/3+G0lWbhvzxXLXGmKnLEOn/mPV5wY5 SfXjm4t68TaYM3z+HuKwgTMWV3542lDzeaBWRqD22lmLXv1enJfSISkCOU21o8hv/z/Tac/e2VC bmqk6xRwCpzgfSwFqcTUmkk+XZ3VkuLVS+0ZV9gRiIlVunhCxMPZrTKNwVuL20gioLVZDZz8njY uK6C7XvV4Yg1DL9n+GA== X-Authority-Analysis: v=2.4 cv=Xr/3+FF9 c=1 sm=1 tr=0 ts=69aeddd2 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=3Ncpk96OCEhYCSOrUwYA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_04,2026-03-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 adultscore=0 spamscore=0 impostorscore=0 suspectscore=0 lowpriorityscore=0 clxscore=1015 phishscore=0 priorityscore=1501 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090133 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: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773068006310154100 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/hex_common.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py index 85745ef48c2..b9a5b9e2a29 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -250,7 +250,9 @@ def need_env(tag): "A_LOAD" in attribdict[tag] or "A_CVI_GATHER" in attribdict[tag] or "A_CVI_SCATTER" in attribdict[tag] or - "A_IMPLICIT_WRITES_USR" in attribdict[tag]) + "A_IMPLICIT_WRITES_USR" in attribdict[tag] or + "A_PRIV" in attribdict[tag] or + "J2_trap" in tag) =20 =20 def need_slot(tag): --=20 2.34.1 From nobody Sat Apr 11 21:30:50 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=1773068025; cv=none; d=zohomail.com; s=zohoarc; b=nY1SoWzpzXZLADeQsAbQ9wfc+d1rzWtgnrzMUG32t1HB9TN2790o+lQdbBmgSrtKBFwOfO+VkFmWNJtem+t5TB48CSA0+9i6w0o1nn33t3LLe757ExAjbldwzDZLtC+QpQDoGetn6GjQtc9ojpx13S7+fGFvHSXncWS+LHTWm2w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773068025; 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=5qaVcQk9nY/+Sck+k5N7Cra59kGFWFnLRS5Q2nhbM5k=; b=VYEdpZ5qU4HGZ6HWfJXmr3szbZG0kXpaYhgEyLtIgZY6yxOpQ5F+HjdEMW9byiB2HiaMUQBx7gDF+jyK/9lNksxQBgVW4IOpPK61Bj66ZgL0GkoKvanV2uecxzcqq6tS7FDBmlq4j3LhJpZtUQqlRVEvGVwfMdMPsxFU8YG0uxw= 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 1773068025366265.22433860472324; Mon, 9 Mar 2026 07:53:45 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vzbv3-0001QL-2l; Mon, 09 Mar 2026 10:49:17 -0400 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 1vzbuh-0000sL-TR for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:56 -0400 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 1vzbug-0005HE-8B for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:55 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 629ERLeS4164456 for ; Mon, 9 Mar 2026 14:48:53 GMT Received: from mail-dl1-f70.google.com (mail-dl1-f70.google.com [74.125.82.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4crd6fdr72-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 14:48:52 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-128d0a51897so59679058c88.0 for ; Mon, 09 Mar 2026 07:48:52 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be4f82b78esm9322776eec.12.2026.03.09.07.48.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 07:48:49 -0700 (PDT) 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= 5qaVcQk9nY/+Sck+k5N7Cra59kGFWFnLRS5Q2nhbM5k=; b=kIN3Xw7RDBokCfU+ w48Kv07T28Q1rLEcgziuglmf9hnmAixwFby66dqcPZtqpi5Pe/0XHwh2eszur6cU 7XY4+WsR3ayVFgA+vkCeVEviyy6r3ReEHW47Gsklcv18SWILckV42+pFMJQnjJQM 2Nt++0joJ/sgYUuZJ2SPFjnp9qTsd83lBrNgB3mdptKyrIkyE08pRyrLubukK/ob Tz5hGUl03w5yxf94qgcSS2PQ0AIgCcP0a9+GoinQVBJIw2MAoznyhHePrtPD1UkN ft2lMvSC4R5CVDeVnwEpO8p8JihvQmJUygXvMt4YA8aqjwJDT7sCIeUVp0NBjKWn J8bYRg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773067732; x=1773672532; 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=5qaVcQk9nY/+Sck+k5N7Cra59kGFWFnLRS5Q2nhbM5k=; b=ST4dApqfoowbJ7T6vHWBJEo2IRn7cyB/Ung8SdqCSYG0Nyj9VxpkhhPUG89JLQfWC4 FAQOZ+Owr0zlDVuByoXXzfZGU8+vQwhWdo2AezpujSvOUyVcGSkKutkovK0w3ngQUz4G xKbNgUs31OKNs2sIBGpnQE/YEX5iLLjHg+OphJ+Y1Jqy7gBIgRSkRQQPgbZiTNp3PDSV e5DX+Mb5syODIkH9QKtYwpn31WvdOdbcmtxXft5/V2/DyBB+s57oWwrub5kIsaHMMnFG 99QOaHI95ocTGnSA5KBfxbSvREaTkNVLVmziquv8q4o96WbMZbBawWRySFOmpXKvTLsI AxqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773067732; x=1773672532; 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=5qaVcQk9nY/+Sck+k5N7Cra59kGFWFnLRS5Q2nhbM5k=; b=PhlMlsAh8kZ1+wdL/4IeAiNd01y1kDIQCwddqY619LkocwjzYHKbxFnmKw4z3/PqTu TDoJMvuvEBpJtv/wIyRbfprlGXL2X3QYT/xb4CzZ/GGGn5QvdHFSlA3AZBT/bf35nZCm +D6r++A5hWv0jPCnqASnIXginlil8AqriBz94zb8yaIMlFpudtZPsOE+eJQ5Ce/tnygo mznm6VxiFUMv/GlioQQZXIoLW13NhNl59SQgofvaH1/B3l543tTBWFrbR+ULHH2iivuD uGhOQedVPngsFDhLcAfWw8lEUNA5SeqqbWtkY+1PDeBkYYY+tzFQOCrW55Hj2YonVj5S b/jg== X-Gm-Message-State: AOJu0Yzulep1DNlIvPQh/TyDh2GAyO0I5VRLbZ1PAyTsEtC2U3jiwJnX MQBg9fZ/6dA/gNssdUlY3LejLIaoJIxmvlfFsz4DfYYCEd3An7bQlJD7ktk9M+zZaJ9pq2qSTW+ SUoEVkh01E74lSYIeaXluNph1Gd7yc/WAkZjV+ASO7eyNP4h+4hJz2+Of2h3xCPFNHQ== X-Gm-Gg: ATEYQzxKip1FAyzbnLCMR62pd7uBeOFYPnWzFgJE0+ufZLtibc1c6U7LRMEgd+TL9of uyc1PIfUsGmT8bo1u6K9g1004Z4pdVB1vw9y3ajx3cMdV0EaTU1r2zBrqBL13zXrrSNk6JpV5zH ykQOJfGPaE6TR3pUz2ZrStq9jPxR7Ehtswzh0f8Vj84fe8fMrV6ao+sISKsjodWXWloYtrwqRkg WjultC4gldhtgXkAWo4FBu7jXtlE65OwtRgjLTweEi1Km+bMI6pVUem2CzWqt8I9Nt+zQ23Jmto A/TTWfKJtf6TTn9B0J74zuQPMdpUW5gtPcOxQuPQyedPVTvwLiyLewcX2k1B0RYJj8kjet98mEz VYlRwPufBvCUuqE64QpI64zhtpFc8p2NaCu9DoYJ/rcVvoM8zjtLlUHwtR0dVORvZa82zjA== X-Received: by 2002:a05:7022:6182:b0:128:d51a:5161 with SMTP id a92af1059eb24-128d51a5664mr1907236c88.27.1773067731684; Mon, 09 Mar 2026 07:48:51 -0700 (PDT) X-Received: by 2002:a05:7022:6182:b0:128:d51a:5161 with SMTP id a92af1059eb24-128d51a5664mr1907189c88.27.1773067730777; Mon, 09 Mar 2026 07:48:50 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 21/35] target/hexagon: Define register fields for system regs Date: Mon, 9 Mar 2026 07:48:08 -0700 Message-Id: <20260309144822.877695-22-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> References: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: 3s6FE_jxyStpFoGieW9FEXNrMRa2nQ6i X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDEzMyBTYWx0ZWRfX37yvb9NKMxrr a/IgUR8b864sTB//7mr5xPXmGbji1ZB2i22G/WKfqQqybtMNxrYXwALzguDTZnRen17vASNxHIu amUoYLpRg9fxfuHlL2a2pHsoAo+o293/rP9j5IiEHA19gmjgOegMze5pGVnwKQutTW96h4q7Ssg iOmjZ0/Q56z3J4VTqe3izDExSxjwwOZOU9Z/XMGoA2iX1OlPAzcA/TSbuc1haYQF2ZDKK5YhRbU C+q1CfKWoDnK5bInQKfzDPMfg90PYrSidBGzveidFm/+HgR9IMS7Ny4X7xi1dwSumdOTeZu/mTX xz9PYI9bDrg9eujwErIY2NSz9sp/79s4ViLdR1C+bWBq96CG6Arjr4v86n3NQKcpbjpQh1es2Az xvSCDZYDurE7avvAXjQ4MrtZVJENT+mgc8FK2QXl/oJrXoVv1FUP1kL/1CBIxX5ArIQ/O58I/VT x9Pa5jm0HB7DR7q6AfA== X-Proofpoint-GUID: 3s6FE_jxyStpFoGieW9FEXNrMRa2nQ6i X-Authority-Analysis: v=2.4 cv=RP++3oi+ c=1 sm=1 tr=0 ts=69aeddd4 cx=c_pps a=SvEPeNj+VMjHSW//kvnxuw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=mmKuwxttERDeH49ycpoA:9 a=QEXdDO2ut3YA:10 a=Kq8ClHjjuc5pcCNDwlU0:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_04,2026-03-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 priorityscore=1501 malwarescore=0 spamscore=0 phishscore=0 clxscore=1015 bulkscore=0 lowpriorityscore=0 impostorscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090133 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: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UPPERCASE_50_75=0.008 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773068026618154100 From: Brian Cain Define the register fields for ssr, schedcfg, stid, bestwait, ccr, modectl, imask, ipendad. Define the fields for TLB entries. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/reg_fields_def.h.inc | 96 +++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) diff --git a/target/hexagon/reg_fields_def.h.inc b/target/hexagon/reg_field= s_def.h.inc index f2a58d486c5..9b112ccec64 100644 --- a/target/hexagon/reg_fields_def.h.inc +++ b/target/hexagon/reg_fields_def.h.inc @@ -39,3 +39,99 @@ DEF_REG_FIELD(USR_FPDBZE, 26, 1) DEF_REG_FIELD(USR_FPOVFE, 27, 1) DEF_REG_FIELD(USR_FPUNFE, 28, 1) DEF_REG_FIELD(USR_FPINPE, 29, 1) + +DEF_REG_FIELD(IPENDAD_IAD, 16, 16) +DEF_REG_FIELD(IPENDAD_IPEND, 0, 16) + +DEF_REG_FIELD(SCHEDCFG_EN, 8, 1) +DEF_REG_FIELD(SCHEDCFG_INTNO, 0, 4) +DEF_REG_FIELD(BESTWAIT_PRIO, 0, 9) + + +/* PTE (aka TLB entry) fields */ +DEF_REG_FIELD(PTE_PPD, 0, 24) +DEF_REG_FIELD(PTE_C, 24, 4) +DEF_REG_FIELD(PTE_U, 28, 1) +DEF_REG_FIELD(PTE_R, 29, 1) +DEF_REG_FIELD(PTE_W, 30, 1) +DEF_REG_FIELD(PTE_X, 31, 1) +DEF_REG_FIELD(PTE_VPN, 32, 20) +DEF_REG_FIELD(PTE_ASID, 52, 7) +DEF_REG_FIELD(PTE_ATR0, 59, 1) +DEF_REG_FIELD(PTE_ATR1, 60, 1) +DEF_REG_FIELD(PTE_PA35, 61, 1) +DEF_REG_FIELD(PTE_G, 62, 1) +DEF_REG_FIELD(PTE_V, 63, 1) + +/* SYSCFG fields */ +DEF_REG_FIELD(SYSCFG_MMUEN, 0, 1) +DEF_REG_FIELD(SYSCFG_ICEN, 1, 1) +DEF_REG_FIELD(SYSCFG_DCEN, 2, 1) +DEF_REG_FIELD(SYSCFG_ISDBTRUSTED, 3, 1) +DEF_REG_FIELD(SYSCFG_GIE, 4, 1) +DEF_REG_FIELD(SYSCFG_ISDBREADY, 5, 1) +DEF_REG_FIELD(SYSCFG_PCYCLEEN, 6, 1) +DEF_REG_FIELD(SYSCFG_V2X, 7, 1) +DEF_REG_FIELD(SYSCFG_IGNOREDABORT, 8, 1) +DEF_REG_FIELD(SYSCFG_PM, 9, 1) +DEF_REG_FIELD(SYSCFG_TLBLOCK, 11, 1) +DEF_REG_FIELD(SYSCFG_K0LOCK, 12, 1) +DEF_REG_FIELD(SYSCFG_BQ, 13, 1) +DEF_REG_FIELD(SYSCFG_PRIO, 14, 1) +DEF_REG_FIELD(SYSCFG_DMT, 15, 1) +DEF_REG_FIELD(SYSCFG_L2CFG, 16, 3) +DEF_REG_FIELD(SYSCFG_ITCM, 19, 1) +DEF_REG_FIELD(SYSCFG_L2NWA, 21, 1) +DEF_REG_FIELD(SYSCFG_L2NRA, 22, 1) +DEF_REG_FIELD(SYSCFG_L2WB, 23, 1) +DEF_REG_FIELD(SYSCFG_L2P, 24, 1) +DEF_REG_FIELD(SYSCFG_SLVCTL0, 25, 2) +DEF_REG_FIELD(SYSCFG_SLVCTL1, 27, 2) +DEF_REG_FIELD(SYSCFG_L2PARTSIZE, 29, 2) +DEF_REG_FIELD(SYSCFG_L2GCA, 31, 1) + +/* SSR fields */ +DEF_REG_FIELD(SSR_CAUSE, 0, 8) +DEF_REG_FIELD(SSR_ASID, 8, 7) +DEF_REG_FIELD(SSR_UM, 16, 1) +DEF_REG_FIELD(SSR_EX, 17, 1) +DEF_REG_FIELD(SSR_IE, 18, 1) +DEF_REG_FIELD(SSR_GM, 19, 1) +DEF_REG_FIELD(SSR_V0, 20, 1) +DEF_REG_FIELD(SSR_V1, 21, 1) +DEF_REG_FIELD(SSR_BVS, 22, 1) +DEF_REG_FIELD(SSR_CE, 23, 1) +DEF_REG_FIELD(SSR_PE, 24, 1) +DEF_REG_FIELD(SSR_BP, 25, 1) +DEF_REG_FIELD(SSR_XE2, 26, 1) +DEF_REG_FIELD(SSR_XA, 27, 3) +DEF_REG_FIELD(SSR_SS, 30, 1) +DEF_REG_FIELD(SSR_XE, 31, 1) + +/* misc registers */ +DEF_REG_FIELD(IMASK_MASK, 0, 16) + +DEF_REG_FIELD(STID_PRIO, 16, 8) +DEF_REG_FIELD(STID_STID, 0, 8) + +/* MODECTL fields */ +DEF_REG_FIELD(MODECTL_E, 0, 8) +DEF_REG_FIELD(MODECTL_W, 16, 8) + +DEF_REG_FIELD(CCR_L1ICP, 0, 2) +DEF_REG_FIELD(CCR_L1DCP, 3, 2) +DEF_REG_FIELD(CCR_L2CP, 6, 2) + +DEF_REG_FIELD(CCR_HFI, 16, 1) +DEF_REG_FIELD(CCR_HFD, 17, 1) +DEF_REG_FIELD(CCR_HFIL2, 18, 1) +DEF_REG_FIELD(CCR_HFDL2, 19, 1) +DEF_REG_FIELD(CCR_SFD, 20, 1) + +DEF_REG_FIELD(CCR_GIE, 24, 1) +DEF_REG_FIELD(CCR_GTE, 25, 1) +DEF_REG_FIELD(CCR_GEE, 26, 1) +DEF_REG_FIELD(CCR_GRE, 27, 1) +DEF_REG_FIELD(CCR_VV1, 29, 1) +DEF_REG_FIELD(CCR_VV2, 30, 1) +DEF_REG_FIELD(CCR_VV3, 31, 1) --=20 2.34.1 From nobody Sat Apr 11 21:30:50 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=1773067985; cv=none; d=zohomail.com; s=zohoarc; b=H6anCRzZCdZI/NF/ltNKuCRBkEMBKEUnGimB+HGIuSm9PajfuphTx5VqOOT/Tkwqi4nbZ8UWeXfVlk7Hq8Tg8ydFGnTipyrOzNqcuq5Q5G7O/E7glylK29VF9jCji5b8LYeP+hMUwS9EQ/YUnqpLVXIkVXX0ADeffmEXOYe+JjQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773067985; 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=OTsjkE6PyCjrcq7r6k4/OGN1PB8LtUmEB75qaHHtKx4=; b=fjxgNgHHaneNtU98LDaoh2uaX8KrCyhN+jvrtkew/4+EJxOQk5OuawG4Wo0bRqfzHGbP3yfqhIbmJ/1AH1P/gGgTATV4jvUDgkl0vrmkUMVJE+fQwDBeuxoj+u4SHgU4X40FnFVSOoZd12/l/8Ujgixbt+heB2Bd2PJbJo+wAbE= 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 1773067985099597.5571515127024; Mon, 9 Mar 2026 07:53:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vzbv0-0001GU-Vl; Mon, 09 Mar 2026 10:49:15 -0400 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 1vzbus-00010P-Bn for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:49:07 -0400 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 1vzbuq-0005HJ-OI for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:49:06 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 629C5dBt526831 for ; Mon, 9 Mar 2026 14:48:54 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cswwkgg64-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 14:48:53 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-2bda35eab74so4833778eec.0 for ; Mon, 09 Mar 2026 07:48:53 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be4f82b78esm9322776eec.12.2026.03.09.07.48.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 07:48:51 -0700 (PDT) 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= OTsjkE6PyCjrcq7r6k4/OGN1PB8LtUmEB75qaHHtKx4=; b=GNyIvlK9mK3XhGKw L0BDhZz3ag0N+bMAkX/4517MDEriR8qSyJlXxbVvVb2ZrLb3lBLIVkqtb67IHu13 YvwslJSKW2atVjZim0fiAeEgCMaJQl3C5YVDLjI0LMJFMie7Lxd3gJewtQL7NL/g IYP6hYec5UE06xDLqeN5CsH5DM6YYX4R10QPdy7N4DS1rKEj3ZNJdVtWclMSX2lS jzSqfORc4w1de/OFWLjA1XpIRiWhirzhGksBZRBpYmhZ8ogZJGgN/94kh79Rm7fX dVa33Vk9xLg8kCZj42JJYXJT4lqWmNDb42vSYB50B9LoVmAzw/ZBQ3EJsg9t+GEt nmhu2Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773067733; x=1773672533; 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=OTsjkE6PyCjrcq7r6k4/OGN1PB8LtUmEB75qaHHtKx4=; b=UWTzDo+10NuKsvKsMMAmiVYyawXydnunY7TdSWHL/Jm/4HulGzXLJsxCP8760WVX28 OUIBYr5kpbwv3jVyCtY/i9biCgjDUXFKomaMNzCcorDkMpW9eER4NDSykw7AqJdMpjLI PdG0K6Ert9SYP7SC/oHRPFX8lQllUUXusR66eLh6pt7Fwhouu/hfm/opxCGy48DnfQsb 4h5BpGLxNwztllX8oO499bIx3apM7+LP1f6NP+eVS/eWuBkPoVdt2j/VAghCRJYPWnHs xp9JiiMHfz36CkgHdhPQ+g5corJvq15SEqWrU69k5aj6niDm4lmYoNc3+hRLVhBGVuCP bdyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773067733; x=1773672533; 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=OTsjkE6PyCjrcq7r6k4/OGN1PB8LtUmEB75qaHHtKx4=; b=StHr6HXu3aPW/VC8iwHtvP3/PZsDgnw8HY8V0cxshAqy3U2md7kB3D8QIvq6q/JmUx 8Id8pleiPI6sYIgHGKvrWLN13WiE4nl/6DZ3uLqHV5nSDhIXu076NllkQYd+WQ79hBtm 0n0lFN4C6Ndtv872Iyke5R/GTRpT15Vu9YWNz0crmNIyvj18mLNiHjiRQcVQV5I4Gbuc Zvs2a0ZD/Le9GHUaL2UjyBtgWKDVbqyUmU8yFRGw1vvOi3ygWZXmOujnhyFpVUoyP5z/ VnLeFmkcpGXJA8JFIuBdgjAbmrJ0ilKQVQSOhmbTjlMyJ7caj1uLFE9hk4bllAHjwdlc Hewg== X-Gm-Message-State: AOJu0Yxlrbup5/4BFgpyuwAmKr0UhPZxHDfoSQlkjjt5eQcmgvcO5JDW emFmR/s6xDRqkPu7I8KY3xcYLqpOwoegnyBLn0HiCKQ1zLVW+XnPr9elxFHwjHCWrxevGMZXeU1 CtQ0UdcaUt5SLyunftBHgKQLmRNwOaFTG2a4z0KTCktHAuZSlzmgUU/LoWPqYtpSoRw== X-Gm-Gg: ATEYQzw001ICgJkTuPVCNKo4DQKQ8a4Sq6z+tZjQfsQuccFmxgvOkDgyoRsNR8w7uao CCz57HNzz0x0owgQBTSchT5+u6mtfa3zLkUM3OPr+t0uB18axyg58AqGNU5nCLNedJZ4xo+qGSl d+Dj/bJqVAKH2iaQ3cVj3DONxYNXNemUI5asSR+B9bIEKPy9w3Gm3MGO8pP38jTDilWr+ecoTWv cBCJmKty+iQYI6zH4Li7/9PyOXhDuOnZGc7C2aa/sJS+kdQNa4eqJQHe9iLmwkd/XuAJLZljmqv uu7MYHsQA4i8i/1d3kjpxxjp+zypp5wNZJRpKzo6Hek7gDylWTuM6liR5VC+F0TJqbCVaYrUcj/ d8JIY/R6Ffpnhi8OOafPwNck0Tyl7evl1CgZNiylnX79qF5+XJo+QfWhN3reNr/hHGwnJ5g== X-Received: by 2002:a05:7301:4186:b0:2b7:c285:837d with SMTP id 5a478bee46e88-2be4e56e840mr3684149eec.4.1773067732617; Mon, 09 Mar 2026 07:48:52 -0700 (PDT) X-Received: by 2002:a05:7301:4186:b0:2b7:c285:837d with SMTP id 5a478bee46e88-2be4e56e840mr3684124eec.4.1773067731930; Mon, 09 Mar 2026 07:48:51 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 22/35] target/hexagon: Implement do_raise_exception() Date: Mon, 9 Mar 2026 07:48:09 -0700 Message-Id: <20260309144822.877695-23-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> References: <20260309144822.877695-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=cZ/fb3DM c=1 sm=1 tr=0 ts=69aeddd5 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=hK29HtBGQMdOITfcgGsA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: sRaym8mzpdJ9NR87fzkFKw-ELGyeMP4C X-Proofpoint-GUID: sRaym8mzpdJ9NR87fzkFKw-ELGyeMP4C X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDEzMyBTYWx0ZWRfX4klLT/6wtqPU irIMjbl1Ikx+FWWo1VDMV2NSyog+VQL4GDPNeaeMbgGD1IDX0C4dxRccqtj9MH/PVdHfaFPwq61 kO10EgN2VunmZLrHRWLC2rdYIeX9BPNVWIkHBKOo+2W3zZJ550q5pSdjfEf6zVc378WSfQTIZc6 S612aGyy7pnHUJMBFGTCo//jvS/fQngxxIBdL3IjN/sW2CTNLZI4PgkAv5GDhIEXxeYEcLO2vc3 Z4hIpEUyFqsgUbiS4kW8VZY/Pu1sXH2OIu9aA4G16A8Qh2M1N3w0mLH3AbHuDWkM5buexrs7c+4 IVKQcdFwnzGmmj9jvXLYUXHgjiw0QAatSxoUVp004j+rGgbKk/DAJtbzwCXdrEu6tto2uTKQDx3 evQS9vKhWyPbbXQnP869afKmxF9rKAhSUo2iB+YlAeNMNZ3JpVCpnnGmfvmvsB1BH0hZvwU3LIA dLTDRczVDTtZ9bIglWw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_04,2026-03-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 impostorscore=0 adultscore=0 priorityscore=1501 phishscore=0 malwarescore=0 lowpriorityscore=0 clxscore=1015 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090133 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: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773067986970158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/internal.h | 5 +++++ target/hexagon/op_helper.c | 14 ++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/target/hexagon/internal.h b/target/hexagon/internal.h index cd06ff41d4f..33d73ed18d1 100644 --- a/target/hexagon/internal.h +++ b/target/hexagon/internal.h @@ -31,6 +31,11 @@ void hexagon_debug(CPUHexagonState *env); =20 extern const char * const hexagon_regnames[TOTAL_PER_THREAD_REGS]; =20 +void G_NORETURN do_raise_exception(CPUHexagonState *env, + uint32_t exception, + uint32_t PC, + uintptr_t retaddr); + #ifndef CONFIG_USER_ONLY extern const VMStateDescription vmstate_hexagon_cpu; #endif diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 4db38d8eff2..eaefddef15c 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -37,6 +37,20 @@ #define SF_MANTBITS 23 =20 /* Exceptions processing helpers */ +G_NORETURN +void do_raise_exception(CPUHexagonState *env, uint32_t exception, + uint32_t PC, uintptr_t retaddr) +{ + CPUState *cs =3D env_cpu(env); + qemu_log_mask(CPU_LOG_INT, "%s: 0x%08" PRIx32 ", @ %08" PRIx32 "\n", + __func__, exception, PC); + ASSERT_DIRECT_TO_GUEST_UNSET(env, exception); + + env->gpr[HEX_REG_PC] =3D PC; + cs->exception_index =3D exception; + cpu_loop_exit_restore(cs, retaddr); +} + G_NORETURN void hexagon_raise_exception_err(CPUHexagonState *env, uint32_t exception, uintptr_t pc) --=20 2.34.1 From nobody Sat Apr 11 21:30:50 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=1773068137; cv=none; d=zohomail.com; s=zohoarc; b=Lb3FrGgeKXtXO5AKERcQYckd+RnfY0Po3dQhR39CipLhZBOLipa3/WsypWDkLbVxN7pE1JpSVVV7l6q7hz3cyEM2dukI3OlVvLfQftlbqLZ7U7rdJ1vWXIXfLWfYFqa6odXqkN5eX7EyO72I3oRbZvJvkrf/2cktaoSdtVkOAwk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773068137; 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=8T6s34EiRvc+eZo2vQ6nD9tceOpn0K2a9cMDWgc0Ys8=; b=VphmSttjox4uhv74ADhpuShlYWGyyrUNpoKgcIo/jj5VJNdItmHmrnHit2FCLrqlUaory9VvoGaiHWIcbn1sGr8Y0YyF8NQPzxOK1t45/e217nCJdw928EwYkt6qyPJnthXPiMCKWT7yyUN5acqo7DV+V0gU6J7800+JYHu9KCg= 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 1773068137473737.482501080954; Mon, 9 Mar 2026 07:55:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vzbv3-0001Tr-S2; Mon, 09 Mar 2026 10:49:17 -0400 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 1vzbux-00013j-5u for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:49:12 -0400 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 1vzbus-0005HW-QK for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:49:09 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 629C5bDX526729 for ; Mon, 9 Mar 2026 14:48:56 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 4cswwkgg68-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 14:48:55 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2be0575e290so6879112eec.0 for ; Mon, 09 Mar 2026 07:48:55 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be4f82b78esm9322776eec.12.2026.03.09.07.48.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 07:48:52 -0700 (PDT) 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= 8T6s34EiRvc+eZo2vQ6nD9tceOpn0K2a9cMDWgc0Ys8=; b=n/FV6Whd1tehg4xa 9zB9vLBLB/Fl0qKG2Pg/JleIk2aYwBrFLuR71QTGvSf3h1ywnGULolsmdZB/IPi/ py+D07ZVQYEyJvjkvg4BTB4cupDecz9+89L5rH0z93Cm23N0d+N/F4zvLY5Ne7rq cFkSZplt809RRCxfbWVR54MNe76Wj6m3MNVezcA6DT4y5EPBv9EeCjJPN7rhzCWN BrY9lszQCKZp/r/Lb+J40cXPNPA1/JMnI++Xdd8armx4n3FwMHP1ts59sIBJYIKM bga+xjy8VkKSwEWawaZwQNHuR6GwlzmNRhPQMayLQ1gRIOx+gLX+6XZ43B7s8G7B clqfFw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773067734; x=1773672534; 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=8T6s34EiRvc+eZo2vQ6nD9tceOpn0K2a9cMDWgc0Ys8=; b=IeYsD8u6HDwWp4g6xWAQNqrHyYdLGtoYd/iCsrN3hXMbMCpblK3dU5gdtsHBoGPAvO 8Y6fa4Pd2kIQpAggccROmB967Sawu8YYDKpyPcMflgRIpA/nFmcTiJ6x/6PJC5aVe7dN c/+yrD6QDa4MirmaHtVetSeuzm3FmwRlm/aeyUFMEEtNIm46Yx+BoWqoylmCunQRCJLN djBnhrWftQtVU7MuKGo95XaTOulqIdFtgKYNbuRa6kYMbmhsZ2yh0w45vycHv5mWxatR akVReYi9ZMuSNJ9o66rKj8ju/hu/XKSkNCyCxuI9UgFz2ZAKOS1t/DjqqyQ/y33fX/Kk AYyA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773067734; x=1773672534; 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=8T6s34EiRvc+eZo2vQ6nD9tceOpn0K2a9cMDWgc0Ys8=; b=UOvKlBjQCJ33h3yNvewsCrGzYoePorbQBuObmSHonNtmuTXey4smnTMS3fIcrRJazT QunkdWvLga4Fs1fFGAEeBuZa3OannhkV/tIFev/yslMWna93BezVvjWa/TUI9ii31JG4 IuTXpKwH86+swLa0ChaQK1JFOQRzWnB1NmGowMLnMJavnn6MUHFaWBQLE6AVACQFmR6H JjAW3Td4s3W7kA8AlxYckiXDmfTLYdl8qtMRaPHUKG1jpoKecRRKSGPuDtYoSEx5mVVJ qHQORWf2YKhNEEFZgJiNGB5UuueneUfJIKffqM444qvxyk5IH1+WBLSioTS/xEZJWs8A F//Q== X-Gm-Message-State: AOJu0Yx7aSqXtU43VRs18pUfAgz9sFTv/aF0obwXJ0cVnxFvrlAm2DG8 9wXMNWcPsRIvK/knVRrCaat0lp2dyLWw/vKfGp5dtbs6CF/NwkJPkJhMLgjlf3rWi5GPo+sx8J0 81lSccLlzstRolMRJv2ds12B+lJT2ayE2rcpYuMx6spTyFgxy/zsVAljf0gUcYbGELg== X-Gm-Gg: ATEYQzw40B/9u+KQCbNb36N4BF6mlRNsXGf7N4ixWCHSZnpPiC0miTho/D2BZOYJXBu nGlI+ylJXIKT1ivgWeKLJMziS4wCcyhDy84m0VvaW05DoLuXW4wqSvkGfvC631ZCdonZiVYYpXa kWy//LGQWnkJuiLFzsBCzCr2dF3np0kGWryev4W/UTpcmWw01QK41rLevtXV79XQJrOqAeOwfWg Zia8/WYfjQfO2wAc8NV+/rm0N3k7LoqMEnJYFv2o3Bzv33amI2x7f9tj01yMkUJDd8YwZz7+rDU 3iJDxZOM6ImnDfDorlgeD0u8aSzEtbWRlwgtCYv4DWHdLPf1TFB1H+sRx+3xVynZI7NzUjfPCuw of1jl8qqNJ37dgSz0Dcf0f7C/r7VE/tSWAx2V0KJ9n7G+S4YAwD7/9I3yJF4PV/nUmj54nw== X-Received: by 2002:a05:7300:a985:b0:2be:79a:6a16 with SMTP id 5a478bee46e88-2be4e057159mr4121196eec.21.1773067733798; Mon, 09 Mar 2026 07:48:53 -0700 (PDT) X-Received: by 2002:a05:7300:a985:b0:2be:79a:6a16 with SMTP id 5a478bee46e88-2be4e057159mr4121149eec.21.1773067732978; Mon, 09 Mar 2026 07:48:52 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 23/35] target/hexagon: Add system reg insns Date: Mon, 9 Mar 2026 07:48:10 -0700 Message-Id: <20260309144822.877695-24-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> References: <20260309144822.877695-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=cZ/fb3DM c=1 sm=1 tr=0 ts=69aeddd7 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=Lq-sf-uUdcGOnWOb84QA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: zD-_JMGhHOrMtnI56Ud3lmxAb_47B-jd X-Proofpoint-GUID: zD-_JMGhHOrMtnI56Ud3lmxAb_47B-jd X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDEzMyBTYWx0ZWRfXwgzbMBnkPLZX Cb82m0mD7ZXjBQgYceFrDRDWkwIo6yRbtARR222hmxTCXAABmFt5mo/MAYRYeom7cSHpGuo5F5g Kp6YbZxx0TfDsb3YslL2jfduf8/u+LyWmmZmMLBPo14jLVlwZCMAaiDNyir35qQE9r2vvq2wpRN VefH2jmuOf1r7J9VnZC8T/3Q0eDjTOy4uHORFr4FW+Ws3XD0+1QUi4+vbXzaJNqJZw07vZZ072a AaIC5G9Xr+Vby7TS29PVEAJcFdmIru+bhH//Dfug8whFffoJtx6YiFv+FKAK2KBS0YyK+ZU582V 6wCUFyBpd/DqbMIhu8wOZdDV3hHwHGW/8LAPmunuY5OO1E6ZOse5P16B7rN8M3r/umsJXB1bO99 7gwFoMJihYWp7HTGKLKR7mhl0RRxS9rV6RqUWGXaiZoRxSIgLnJ9kOgNlJ7eVQBRSEV4gKUTeqm l4YMXY5A6intwQaMIww== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_04,2026-03-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 impostorscore=0 adultscore=0 priorityscore=1501 phishscore=0 malwarescore=0 lowpriorityscore=0 clxscore=1015 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090133 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: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UPPERCASE_50_75=0.008 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773068137892158500 From: Brian Cain Acked-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/imported/encode_pp.def | 128 ++++++++++++-- target/hexagon/imported/system.idef | 244 ++++++++++++++++++++++++-- 2 files changed, 345 insertions(+), 27 deletions(-) diff --git a/target/hexagon/imported/encode_pp.def b/target/hexagon/importe= d/encode_pp.def index 0cd30a5e857..04e911f59c8 100644 --- a/target/hexagon/imported/encode_pp.def +++ b/target/hexagon/imported/encode_pp.def @@ -382,15 +382,18 @@ DEF_ENC32(L4_return_fnew_pt, ICLASS_LD" 011 0 000 ss= sss PP1110vv ---ddddd") DEF_ENC32(L4_return_tnew_pnt, ICLASS_LD" 011 0 000 sssss PP0010vv ---ddddd= ") DEF_ENC32(L4_return_fnew_pnt, ICLASS_LD" 011 0 000 sssss PP1010vv ---ddddd= ") =20 -DEF_ENC32(L2_loadw_locked,ICLASS_LD" 001 0 000 sssss PP000--- 000ddddd") - +/** Load Acquire Store Release Encoding **/ =20 +DEF_ENC32(L2_loadw_locked, ICLASS_LD" 001 0 000 sssss PP000--- 000ddddd= ") +DEF_ENC32(L4_loadd_locked, ICLASS_LD" 001 0 000 sssss PP010--- 000ddddd= ") =20 DEF_ENC32(L2_loadw_aq, ICLASS_LD" 001 0 000 sssss PP001--- 000ddddd= ") DEF_ENC32(L4_loadd_aq, ICLASS_LD" 001 0 000 sssss PP011--- 000ddddd= ") =20 -DEF_ENC32(R6_release_at_vi, ICLASS_ST" 000 01 11sssss PP0ttttt --0011dd= ") -DEF_ENC32(R6_release_st_vi, ICLASS_ST" 000 01 11sssss PP0ttttt --1011dd") + +DEF_ENC32(S2_storew_locked, ICLASS_ST" 000 01 01sssss PP-ttttt ----00dd") +DEF_ENC32(S4_stored_locked, ICLASS_ST" 000 01 11sssss PP0ttttt ----00dd") + =20 DEF_ENC32(S2_storew_rl_at_vi, ICLASS_ST" 000 01 01sssss PP-ttttt --0010dd= ") DEF_ENC32(S2_storew_rl_st_vi, ICLASS_ST" 000 01 01sssss PP-ttttt --1010dd") @@ -398,17 +401,15 @@ DEF_ENC32(S2_storew_rl_st_vi, ICLASS_ST" 000 01 01sss= ss PP-ttttt --1010dd") DEF_ENC32(S4_stored_rl_at_vi, ICLASS_ST" 000 01 11sssss PP0ttttt --0010dd= ") DEF_ENC32(S4_stored_rl_st_vi, ICLASS_ST" 000 01 11sssss PP0ttttt --1010dd") =20 -DEF_ENC32(L4_loadd_locked,ICLASS_LD" 001 0 000 sssss PP010--- 000ddddd") -DEF_EXT_SPACE(EXTRACTW, ICLASS_LD" 001 0 000 iiiii PP0iiiii -01iiiii") +DEF_ENC32(R6_release_at_vi, ICLASS_ST" 000 01 11sssss PP0ttttt --0011dd= ") +DEF_ENC32(R6_release_st_vi, ICLASS_ST" 000 01 11sssss PP0ttttt --1011dd") + +DEF_EXT_SPACE(EXTRACTW, ICLASS_LD" 001 0 000 iiiii PP0iiiii 001iiiii") DEF_ENC32(Y2_dcfetchbo, ICLASS_LD" 010 0 000 sssss PP0--iii iiiiiiii") =20 =20 =20 =20 - - - - /*******************************/ /* */ /* */ @@ -488,13 +489,17 @@ STD_PST_ENC(rinew, "1 101","10ttt") /* x bus/cache */ /* x store/cache */ DEF_ENC32(S2_allocframe, ICLASS_ST" 000 01 00xxxxx PP000iii iiiiiiii") -DEF_ENC32(S2_storew_locked,ICLASS_ST" 000 01 01sssss PP-ttttt ----00dd") -DEF_ENC32(S4_stored_locked,ICLASS_ST" 000 01 11sssss PP0ttttt ----00dd") +DEF_ENC32(Y5_l2locka, ICLASS_ST" 000 01 11sssss PP1----- ------dd") DEF_ENC32(Y2_dczeroa, ICLASS_ST" 000 01 10sssss PP0----- --------") =20 =20 DEF_ENC32(Y2_barrier, ICLASS_ST" 100 00 00----- PP------ 000-----") DEF_ENC32(Y2_syncht, ICLASS_ST" 100 00 10----- PP------ --------") +DEF_ENC32(Y2_l2kill, ICLASS_ST" 100 00 01----- PP-000-- --------") +DEF_ENC32(Y5_l2gunlock, ICLASS_ST" 100 00 01----- PP-010-- --------") +DEF_ENC32(Y5_l2gclean, ICLASS_ST" 100 00 01----- PP-100-- --------") +DEF_ENC32(Y5_l2gcleaninv, ICLASS_ST" 100 00 01----- PP-110-- --------") +DEF_ENC32(Y2_l2cleaninvidx,ICLASS_ST" 100 00 11sssss PP------ --------") =20 =20 =20 @@ -502,9 +507,28 @@ DEF_ENC32(Y2_dccleana, ICLASS_ST" 000 00 00sssss P= P------ --------") DEF_ENC32(Y2_dcinva, ICLASS_ST" 000 00 01sssss PP------ --------") DEF_ENC32(Y2_dccleaninva, ICLASS_ST" 000 00 10sssss PP------ --------") =20 -DEF_ENC32(Y4_l2fetch, ICLASS_ST" 011 00 00sssss PP-ttttt 000-----") +/* Super */ +DEF_ENC32(Y2_dckill, ICLASS_ST" 001 00 00----- PP------ --------") +DEF_ENC32(Y2_dccleanidx, ICLASS_ST" 001 00 01sssss PP------ --------") +DEF_ENC32(Y2_dcinvidx, ICLASS_ST" 001 00 10sssss PP------ --------") +DEF_ENC32(Y2_dccleaninvidx,ICLASS_ST" 001 00 11sssss PP------ --------") + +DEF_ENC32(Y2_dctagw ,ICLASS_ST" 010 00 00sssss PP-ttttt --------") +DEF_ENC32(Y2_dctagr ,ICLASS_ST" 010 00 01sssss PP------ ---ddddd") + +DEF_ENC32(Y4_l2tagw ,ICLASS_ST" 010 00 10sssss PP0ttttt --------") +DEF_ENC32(Y4_l2tagr ,ICLASS_ST" 010 00 11sssss PP------ ---ddddd") + +DEF_ENC32(Y4_l2fetch, ICLASS_ST" 011 00 00sssss PP-ttttt 000-----= ") +DEF_ENC32(Y5_l2cleanidx, ICLASS_ST" 011 00 01sssss PP------ --------") +DEF_ENC32(Y5_l2invidx, ICLASS_ST" 011 00 10sssss PP------ --------") +DEF_ENC32(Y5_l2unlocka, ICLASS_ST" 011 00 11sssss PP------ --------") DEF_ENC32(Y5_l2fetch, ICLASS_ST" 011 01 00sssss PP-ttttt --------") =20 +DEF_ENC32(Y6_l2gcleanpa, ICLASS_ST" 011 01 01----- PP-ttttt --------") +DEF_ENC32(Y6_l2gcleaninvpa,ICLASS_ST" 011 01 10----- PP-ttttt --------") + + /*******************************/ /* */ /* */ @@ -547,13 +571,23 @@ DEF_ENC32(J2_jumprfnewpt, ICLASS_J" 0011 011sssss P= P-11-uu --------") =20 DEF_FIELDROW_DESC32(ICLASS_J" 0100 -------- PP------ --------","[#4] (#u8)= ") DEF_ENC32(J2_trap0, ICLASS_J" 0100 00------ PP-iiiii ---iii--") -DEF_ENC32(J2_pause, ICLASS_J" 0100 01------ PP-iiiii ---iii--") +DEF_ENC32(J2_trap1, ICLASS_J" 0100 10-xxxxx PP-iiiii ---iii--") +DEF_ENC32(J2_pause, ICLASS_J" 0100 01----ii PP-iiiii ---iii--") + +DEF_FIELDROW_DESC32(ICLASS_J" 0101 -------- PP------ --------","[#5] Rd=3D= (Rs) ") +DEF_ENC32(Y2_icdatar, ICLASS_J" 0101 101sssss PP------ ---ddddd") +DEF_ENC32(Y2_ictagr, ICLASS_J" 0101 111sssss PP------ ---ddddd") +DEF_ENC32(Y2_ictagw, ICLASS_J" 0101 110sssss PP0ttttt --------") +DEF_ENC32(Y2_icdataw, ICLASS_J" 0101 110sssss PP1ttttt --------") =20 DEF_FIELDROW_DESC32(ICLASS_J" 0110 -------- PP------ --------","[#6] icop(= Rs) ") DEF_ENC32(Y2_icinva, ICLASS_J" 0110 110sssss PP000--- --------") +DEF_ENC32(Y2_icinvidx, ICLASS_J" 0110 110sssss PP001--- --------") +DEF_ENC32(Y2_ickill, ICLASS_J" 0110 110----- PP010--- --------") =20 DEF_FIELDROW_DESC32(ICLASS_J" 0111 -------- PP------ --------","[#7] () ") DEF_ENC32(Y2_isync, ICLASS_J" 0111 11000000 PP0---00 00000010") +DEF_ENC32(J2_rte, ICLASS_J" 0111 111----- PP00---- 000-----") =20 /* JUMP */ DEF_FIELDROW_DESC32(ICLASS_J" 100- -------- PP------ --------","[#8,9] PC= =3D(#r22)") @@ -738,12 +772,19 @@ DEF_ENC32(J2_jumprltezpt,ICLASS_CR" 0001 11isssss P= Pi1iiii iiiiiii-") =20 DEF_FIELDROW_DESC32( ICLASS_CR" 0010 -------- PP------ --------","[#= 2] Cd=3DRs ") DEF_ENC32(A2_tfrrcr, ICLASS_CR" 0010 001sssss PP------ ---ddddd") +DEF_ENC32(G4_tfrgrcr, ICLASS_CR" 0010 000sssss PP------ ---ddddd") +DEF_ENC32(Y4_trace, ICLASS_CR" 0010 010sssss PP------ 000-----") +DEF_ENC32(Y6_diag, ICLASS_CR" 0010 010sssss PP------ 001-----") +DEF_ENC32(Y6_diag0, ICLASS_CR" 0010 010sssss PP-ttttt 010-----") +DEF_ENC32(Y6_diag1, ICLASS_CR" 0010 010sssss PP-ttttt 011-----") =20 DEF_FIELDROW_DESC32( ICLASS_CR" 0011 -------- PP------ --------","[#= 3] Cdd=3DRss ") DEF_ENC32(A4_tfrpcp, ICLASS_CR" 0011 001sssss PP------ ---ddddd") +DEF_ENC32(G4_tfrgpcp, ICLASS_CR" 0011 000sssss PP------ ---ddddd") =20 DEF_FIELDROW_DESC32( ICLASS_CR" 1000 -------- PP------ --------","[#= 8] Rdd=3DCss ") DEF_ENC32(A4_tfrcpp, ICLASS_CR" 1000 000sssss PP------ ---ddddd") +DEF_ENC32(G4_tfrgcpp, ICLASS_CR" 1000 001sssss PP------ ---ddddd") =20 DEF_FIELDROW_DESC32( ICLASS_CR" 1001 -------- PP------ --------","[#= 9] (#r8,#U10)") DEF_ENC32(J2_ploop1si, ICLASS_CR" 1001 101IIIII PP-iiiii IIIii-II") @@ -754,6 +795,7 @@ DEF_ENC32(J2_loop1i, ICLASS_CR" 1001 001IIIII PP-i= iiii IIIii-II") =20 DEF_FIELDROW_DESC32( ICLASS_CR" 1010 -------- PP------ --------","[#= 10] Rd=3DCs ") DEF_ENC32(A2_tfrcrr, ICLASS_CR" 1010 000sssss PP------ ---ddddd") +DEF_ENC32(G4_tfrgcrr, ICLASS_CR" 1010 001sssss PP------ ---ddddd") DEF_ENC32(C4_addipc, ICLASS_CR" 1010 01001001 PP-iiiii i--ddddd") =20 =20 @@ -781,6 +823,64 @@ DEF_ENC32(C4_fastcorner9_not, ICLASS_CR"1011 0001--s= s PP1---tt 1--1--dd") =20 =20 =20 +/* Supervisor CR ops */ +/* Interrupts */ +DEF_FIELDROW_DESC32( ICLASS_CR" 0100 -------- PP------ --------","[#4] = (Rs,Pt)") +DEF_ENC32(Y2_swi, ICLASS_CR" 0100 000sssss PP------ 000-----") +DEF_ENC32(Y2_cswi, ICLASS_CR" 0100 000sssss PP------ 001-----") +DEF_ENC32(Y2_iassignw, ICLASS_CR" 0100 000sssss PP------ 010-----") +DEF_ENC32(Y2_ciad, ICLASS_CR" 0100 000sssss PP------ 011-----") +DEF_ENC32(Y2_setimask, ICLASS_CR" 0100 100sssss PP----tt 000-----") +DEF_ENC32(Y2_setprio, ICLASS_CR" 0100 100sssss PP----tt 001-----") +DEF_ENC32(Y4_siad, ICLASS_CR" 0100 100sssss PP------ 011-----") + +DEF_ENC32(Y2_wait, ICLASS_CR" 0100 010sssss PP------ 000-----") +DEF_ENC32(Y2_resume, ICLASS_CR" 0100 010sssss PP------ 001-----") +DEF_ENC32(Y2_stop, ICLASS_CR" 0100 011sssss PP------ 000-----") +DEF_ENC32(Y2_start, ICLASS_CR" 0100 011sssss PP------ 001-----") +DEF_ENC32(Y4_nmi, ICLASS_CR" 0100 011sssss PP------ 010-----") + +DEF_FIELDROW_DESC32( ICLASS_CR" 0101 -------- PP------ --------","[#5] = Rx ") +DEF_ENC32(Y2_crswap0, ICLASS_CR" 0101 000xxxxx PP------ --------") +DEF_ENC32(Y4_crswap1, ICLASS_CR" 0101 001xxxxx PP------ --------") + +DEF_FIELDROW_DESC32( ICLASS_CR" 0110 -------- PP------ --------","[#6] = Rd=3D(Rs)") +DEF_ENC32(Y2_getimask, ICLASS_CR" 0110 000sssss PP------ ---ddddd") +DEF_ENC32(Y2_iassignr, ICLASS_CR" 0110 011sssss PP------ ---ddddd") + +DEF_FIELDROW_DESC32( ICLASS_CR" 0111 -------- PP------ --------","[#7] = cr=3DRs ") +DEF_ENC32(Y2_tfrsrcr, ICLASS_CR" 0111 00-sssss PP------ -ddddddd") + +DEF_FIELDROW_DESC32( ICLASS_CR" 1100 -------- PP------ --------","[#12]= ") +DEF_ENC32(Y2_break, ICLASS_CR" 1100 001----- PP------ 000-----") +DEF_ENC32(Y2_tlblock, ICLASS_CR" 1100 001----- PP------ 001-----") +DEF_ENC32(Y2_tlbunlock,ICLASS_CR" 1100 001----- PP------ 010-----") +DEF_ENC32(Y2_k0lock, ICLASS_CR" 1100 001----- PP------ 011-----") +DEF_ENC32(Y2_k0unlock, ICLASS_CR" 1100 001----- PP------ 100-----") +DEF_ENC32(Y2_tlbp, ICLASS_CR" 1100 100sssss PP------ ---ddddd") +DEF_ENC32(Y5_tlboc, ICLASS_CR" 1100 111sssss PP------ ---ddddd") +DEF_ENC32(Y5_tlbasidi, ICLASS_CR" 1100 101sssss PP------ --------") +DEF_ENC32(Y2_tlbr, ICLASS_CR" 1100 010sssss PP------ ---ddddd") +DEF_ENC32(Y2_tlbw, ICLASS_CR" 1100 000sssss PP0ttttt --------") +DEF_ENC32(Y5_ctlbw, ICLASS_CR" 1100 110sssss PP0ttttt ---ddddd") + +DEF_FIELDROW_DESC32( ICLASS_CR" 1101 -------- PP------ --------","[#13]= Rxx ") +DEF_ENC32(Y4_crswap10, ICLASS_CR" 1101 10-xxxxx PP------ ---00000") +DEF_ENC32(Y4_tfrspcp, ICLASS_CR" 1101 00-sssss PP------ -ddddddd") + +DEF_FIELDROW_DESC32( ICLASS_CR" 1110 -------- PP------ --------","[#14]= Rd=3Dcr ") +DEF_ENC32(Y2_tfrscrr, ICLASS_CR" 1110 1sssssss PP------ ---ddddd") + +DEF_FIELDROW_DESC32( ICLASS_CR" 1111 -------- PP------ --------","[#15]= Rdd=3DSss ") +DEF_ENC32(Y4_tfrscpp, ICLASS_CR" 1111 0sssssss PP------ ---ddddd") + + + + + + + + /*******************************/ /* */ /* */ diff --git a/target/hexagon/imported/system.idef b/target/hexagon/imported/= system.idef index 7c6568e75e4..df4527a5fa9 100644 --- a/target/hexagon/imported/system.idef +++ b/target/hexagon/imported/system.idef @@ -25,31 +25,230 @@ /* User->OS interface */ /********************************************/ =20 -Q6INSN(J2_trap0,"trap0(#u8)",ATTRIBS(A_COF), +Q6INSN(J2_trap0,"trap0(#u8)",ATTRIBS(A_COF,A_NOTE_NOPACKET,A_RESTRICT_NOPA= CKET), "Trap to Operating System", fTRAP(0,uiV); ) =20 -Q6INSN(J2_pause,"pause(#u8)",ATTRIBS(A_COF), +Q6INSN(J2_trap1,"trap1(Rx32,#u8)",ATTRIBS(A_COF,A_NOTE_NOPACKET,A_RESTRICT= _NOPACKET), +"Trap to Operating System", + /* + * Note: if RxV is not written, we get the same as the input. + * Since trap1 is SOLO, this means the register will effectively not be u= pdated + */ + if (!fTRAP1_VIRTINSN(uiV)) { + fTRAP(1,uiV); + } else if (uiV =3D=3D 1) { + fVIRTINSN_RTE(uiV,RxV); + } else if (uiV =3D=3D 3) { + fVIRTINSN_SETIE(uiV,RxV); + } else if (uiV =3D=3D 4) { + fVIRTINSN_GETIE(uiV,RxV); + } else if (uiV =3D=3D 6) { + fVIRTINSN_SPSWAP(uiV,RxV); + }) + +Q6INSN(J2_pause,"pause(#u8)",ATTRIBS(A_COF,A_NOTE_NOPACKET,A_RESTRICT_NOPA= CKET), "Enter low-power state for #u8 cycles",{fPAUSE(uiV);}) =20 -Q6INSN(Y2_icinva,"icinva(Rs32)",ATTRIBS(A_ICOP,A_ICFLUSHOP),"Instruction C= ache Invalidate Address",{fEA_REG(RsV); fICINVA(EA);}) +Q6INSN(J2_rte, "rte", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NO_TIMING_LOG), +"Return from Exception", +{ +fHIDE(if((thread->timing_on) && (thread->status & EXEC_STATUS_REPLAY)) { r= eturn; }) +fHIDE(CALLBACK(thread->processor_ptr->options->rte_callback, + thread->system_ptr,thread->processor_ptr, + thread->threadId,0);) +fCLEAR_RTE_EX(); +fBRANCH(fREAD_ELR(),COF_TYPE_RTE);}) =20 -Q6INSN(Y2_isync,"isync",ATTRIBS(),"Memory Synchronization",{fISYNC();}) -Q6INSN(Y2_barrier,"barrier",ATTRIBS(A_RESTRICT_SLOT0ONLY),"Memory Barrier"= ,{fBARRIER();}) -Q6INSN(Y2_syncht,"syncht",ATTRIBS(A_RESTRICT_SLOT0ONLY),"Memory Synchroniz= ation",{fSYNCH();}) =20 +/********************************************/ +/* Interrupt Management */ +/********************************************/ =20 -Q6INSN(Y2_dcfetchbo,"dcfetch(Rs32+#u11:3)",ATTRIBS(A_RESTRICT_PREFERSLOT0,= A_DCFETCH),"Data Cache Prefetch",{fEA_RI(RsV,uiV); fDCFETCH(EA);}) +Q6INSN(Y2_swi,"swi(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_AXOK,A_RESTRIC= T_PACKET_AXOK),"Software Interrupt",{DO_SWI(RsV);}) +Q6INSN(Y2_cswi,"cswi(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_AXOK,A_RESTR= ICT_PACKET_AXOK),"Cancel Software Interrupt",{DO_CSWI(RsV);}) +Q6INSN(Y2_ciad,"ciad(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_AXOK,A_RESTR= ICT_PACKET_AXOK),"Re-enable interrupt in IAD",{DO_CIAD(RsV);}) +Q6INSN(Y4_siad,"siad(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_AXOK,A_RESTR= ICT_PACKET_AXOK),"Disable interrupt in IAD",{DO_SIAD(RsV);}) +Q6INSN(Y2_iassignr,"Rd32=3Diassignr(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NO= TE_AXOK,A_RESTRICT_PACKET_AXOK),"Read interrupt to thread assignments",{DO_= IASSIGNR(RsV,RdV);}) +Q6INSN(Y2_iassignw,"iassignw(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_AXOK= ,A_RESTRICT_PACKET_AXOK),"Write interrupt to thread assignments",{DO_IASSIG= NW(RsV);}) =20 =20 -Q6INSN(Y2_dczeroa,"dczeroa(Rs32)",ATTRIBS(A_STORE,A_RESTRICT_SLOT0ONLY,A_D= CZEROA),"Zero an aligned 32-byte cacheline",{fEA_REG(RsV); fDCZEROA(EA);}) -Q6INSN(Y2_dccleana,"dccleana(Rs32)",ATTRIBS(A_RESTRICT_SLOT0ONLY,A_DCFLUSH= OP),"Data Cache Clean Address",{fEA_REG(RsV); fDCCLEANA(EA);}) -Q6INSN(Y2_dccleaninva,"dccleaninva(Rs32)",ATTRIBS(A_RESTRICT_SLOT0ONLY,A_D= CFLUSHOP),"Data Cache Clean and Invalidate Address",{fEA_REG(RsV); fDCCLEAN= INVA(EA);}) -Q6INSN(Y2_dcinva,"dcinva(Rs32)",ATTRIBS(A_RESTRICT_SLOT0ONLY,A_DCFLUSHOP),= "Data Cache Invalidate Address",{fEA_REG(RsV); fDCCLEANINVA(EA);}) +Q6INSN(Y2_getimask,"Rd32=3Dgetimask(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NO= TE_AXOK,A_RESTRICT_PACKET_AXOK),"Read imask register of another thread", +{RdV =3D READ_IMASK(RsV & thread->processor_ptr->thread_system_mask); }) =20 +Q6INSN(Y2_setimask,"setimask(Pt4,Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_= AXOK,A_RESTRICT_PACKET_AXOK),"Change imask register of another thread", +{fPREDUSE_TIMING();WRITE_IMASK(PtV & thread->processor_ptr->thread_system_= mask,RsV); }) =20 -Q6INSN(Y4_l2fetch,"l2fetch(Rs32,Rt32)",ATTRIBS(A_RESTRICT_SLOT0ONLY),"L2 C= ache Prefetch", + + +/********************************************/ +/* TLB management */ +/********************************************/ + +Q6INSN(Y2_tlbw,"tlbw(Rss32,Rt32)", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPAC= KET,A_RESTRICT_NOPACKET), +"Write TLB entry", {fTLBW(RtV,RssV);}) + +Q6INSN(Y5_ctlbw,"Rd32=3Dctlbw(Rss32,Rt32)", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_N= OTE_NOPACKET,A_RESTRICT_NOPACKET), +"Conditional Write TLB entry", +{ + if (fTLB_ENTRY_OVERLAP( (1LL<<63) | RssV )) { + RdV=3DfTLB_ENTRY_OVERLAP_IDX( (1LL<<63) | RssV); + } else { + fTLBW(RtV,RssV); + RdV=3D0x80000000; + } +}) + +Q6INSN(Y5_tlboc,"Rd32=3Dtlboc(Rss32)", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_N= OPACKET,A_RESTRICT_NOPACKET), +"TLB overlap check", +{ + if (fTLB_ENTRY_OVERLAP( (1LL<<63) | RssV )) { + RdV=3DfTLB_ENTRY_OVERLAP_IDX( (1LL<<63) | RssV); + } else { + RdV=3D0x80000000; + } +}) + +Q6INSN(Y2_tlbr,"Rdd32=3Dtlbr(Rs32)", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOP= ACKET,A_RESTRICT_NOPACKET), "Read TLB entry", +{RddV =3D fTLBR(RsV);}) + +Q6INSN(Y2_tlbp,"Rd32=3Dtlbp(Rs32)", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPA= CKET,A_RESTRICT_NOPACKET), "Probe TLB", {RdV=3DfTLBP(RsV);}) + +Q6INSN(Y5_tlbasidi,"tlbinvasid(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NO= PACKET,A_RESTRICT_NOPACKET), "Invalidate ASID", +{ + fHIDE(int i;) + fHIDE(unsigned int NUM_TLB_ENTRIES =3D NUM_TLB_REGS(thread->processor_= ptr);) + for (i =3D 0; i < NUM_TLB_ENTRIES; i++) { + if ((fGET_FIELD(fTLBR(i),PTE_G) =3D=3D 0) && + (fGET_FIELD(fTLBR(i),PTE_ASID) =3D=3D fEXTRACTU_RANGE(RsV,26,20))) { + fTLBW(i,fTLBR(i) & ~(1ULL << 63)); + } + } +}) + +Q6INSN(Y2_tlblock,"tlblock", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A_= RESTRICT_NOPACKET,A_NO_TIMING_LOG), "Lock TLB", +{fSET_TLB_LOCK();}) + +Q6INSN(Y2_tlbunlock,"tlbunlock", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKE= T,A_RESTRICT_NOPACKET), "Unlock TLB", +{fCLEAR_TLB_LOCK();}) + +Q6INSN(Y2_k0lock,"k0lock", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A_RE= STRICT_NOPACKET,A_NO_TIMING_LOG), "Lock K0", +{fSET_K0_LOCK();}) + +Q6INSN(Y2_k0unlock,"k0unlock", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,= A_RESTRICT_NOPACKET), "Unlock K0", +{fCLEAR_K0_LOCK();}) + +/********************************************/ +/* Supervisor Reg Management */ +/********************************************/ + +Q6INSN(Y2_crswap0,"crswap(Rx32,sgp0)",ATTRIBS(A_PRIV,A_NOTE_PRIV), "Swap s= ystem general pointer 0 with GPR", +{fHIDE(size4s_t tmp;) tmp =3D RxV; RxV =3D READ_SGP0(); WRITE_SGP0(tmp);}) +Q6INSN(Y4_crswap1,"crswap(Rx32,sgp1)",ATTRIBS(A_PRIV,A_NOTE_PRIV), "Swap s= ystem general pointer 1 with GPR", +{fHIDE(size4s_t tmp;) tmp =3D RxV; RxV =3D READ_SGP1(); WRITE_SGP1(tmp);}) + +Q6INSN(Y4_crswap10,"crswap(Rxx32,sgp1:0)",ATTRIBS(A_PRIV,A_NOTE_PRIV), "Sw= ap system general purpose 0/1 with GPR Pair", +{fHIDE(size8s_t tmp;) tmp =3D RxxV; RxxV=3DREAD_SGP10(); WRITE_SGP10(tmp);= }) + +Q6INSN(Y2_tfrscrr,"Rd32=3DSs128",ATTRIBS(A_PRIV,A_NOTE_PRIV),"Transfer Sup= ervisor Reg to GPR", {RdV=3DSsV;}) +Q6INSN(Y2_tfrsrcr,"Sd128=3DRs32",ATTRIBS(A_PRIV,A_NOTE_PRIV),"Transfer GPR= to Supervisor Reg", {SdV=3DRsV;}) +Q6INSN(Y4_tfrscpp,"Rdd32=3DSss128",ATTRIBS(A_PRIV,A_NOTE_PRIV),"Transfer S= upervisor Reg to GPR", {RddV=3DSssV;}) +Q6INSN(Y4_tfrspcp,"Sdd128=3DRss32",ATTRIBS(A_PRIV,A_NOTE_PRIV),"Transfer G= PR to Supervisor Reg", {SddV=3DRssV;}) + +Q6INSN(G4_tfrgcrr,"Rd32=3DGs32",ATTRIBS(A_GUEST,A_NOTE_GUEST),"Transfer Gu= est Reg to GPR", {RdV=3DGsV;}) +Q6INSN(G4_tfrgrcr,"Gd32=3DRs32",ATTRIBS(A_GUEST,A_NOTE_GUEST),"Transfer GP= R to Guest Reg", {GdV=3DRsV;}) +Q6INSN(G4_tfrgcpp,"Rdd32=3DGss32",ATTRIBS(A_GUEST,A_NOTE_GUEST),"Transfer = Guest Reg to GPR", {RddV=3DGssV;}) +Q6INSN(G4_tfrgpcp,"Gdd32=3DRss32",ATTRIBS(A_GUEST,A_NOTE_GUEST),"Transfer = GPR to Guest Reg", {GddV=3DRssV;}) + + + +Q6INSN(Y2_setprio,"setprio(Pt4,Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV),"Change = TID Prio of another thread", +{fPREDUSE_TIMING();WRITE_PRIO(PtV & thread->processor_ptr->thread_system_m= ask,RsV); }) + + + + +/********************************************/ +/* Power Management / Thread on/off */ +/********************************************/ +Q6INSN(Y6_diag,"diag(Rs32)",ATTRIBS(),"Send value to Diag trace module",{ +}) +Q6INSN(Y6_diag0,"diag0(Rss32,Rtt32)",ATTRIBS(),"Send values of two registe= r to DIAG Trace. Set X=3D0",{ +}) +Q6INSN(Y6_diag1,"diag1(Rss32,Rtt32)",ATTRIBS(),"Send values of two registe= r to DIAG Trace. Set X=3D1",{ +}) + + +Q6INSN(Y4_trace,"trace(Rs32)",ATTRIBS(A_NOTE_AXOK,A_RESTRICT_PACKET_AXOK),= "Send value to ETM trace",{ + fDO_TRACE(RsV); +}) + +Q6INSN(Y2_stop,"stop(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A_R= ESTRICT_NOPACKET),"Stop thread(s)",{ + fHIDE(RsV=3DRsV;) + if (!fIN_DEBUG_MODE_NO_ISDB(fGET_TNUM())) fCLEAR_RUN_MODE(fGET_TNUM()); +}) + +Q6INSN(Y4_nmi,"nmi(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A_RES= TRICT_NOPACKET,A_NO_TIMING_LOG),"Raise NMI on thread(s)",{ + fDO_NMI(RsV); +}) + +Q6INSN(Y2_start,"start(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A= _RESTRICT_NOPACKET),"Start thread(s)",fSTART(RsV);) + +Q6INSN(Y2_wait,"wait(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A_R= ESTRICT_NOPACKET,A_NO_TIMING_LOG),"Make thread(s) wait",{ + fHIDE(RsV=3DRsV;) + if (!fIN_DEBUG_MODE(fGET_TNUM())) fSET_WAIT_MODE(fGET_TNUM()); + fIN_DEBUG_MODE_WARN(fGET_TNUM()); +}) + +Q6INSN(Y2_resume,"resume(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET= ,A_RESTRICT_NOPACKET),"Make thread(s) stop waiting",fRESUME(RsV);) + +Q6INSN(Y2_break,"brkpt",ATTRIBS(A_NOTE_NOPACKET,A_RESTRICT_NOPACKET),"Brea= kpoint",{fBREAK();}) + + +/********************************************/ +/* Cache Management */ +/********************************************/ + +Q6INSN(Y2_ictagr,"Rd32=3Dictagr(Rs32)",ATTRIBS(A_ICOP,A_PRIV,A_NOTE_PRIV,A= _NOTE_NOPACKET,A_RESTRICT_NOPACKET,A_CACHEOP,A_COPBYIDX,A_ICTAGOP),"Instruc= tion Cache Tag Read",{fICTAGR(RsV,RdV,RdN);}) +Q6INSN(Y2_ictagw,"ictagw(Rs32,Rt32)",ATTRIBS(A_ICOP,A_PRIV,A_NOTE_PRIV,A_N= OTE_NOPACKET,A_RESTRICT_NOPACKET,A_CACHEOP,A_COPBYIDX,A_ICTAGOP),"Instructi= on Cache Tag Write",{fICTAGW(RsV,RtV);}) +Q6INSN(Y2_icdataw,"icdataw(Rs32,Rt32)",ATTRIBS(A_ICOP,A_PRIV,A_NOTE_PRIV,A= _NOTE_NOPACKET,A_RESTRICT_NOPACKET,A_CACHEOP,A_COPBYIDX,A_ICTAGOP),"Instruc= tion Cache Data Write",{fICDATAW(RsV,RtV);}) +Q6INSN(Y2_icdatar,"Rd32=3Dicdatar(Rs32)",ATTRIBS(A_ICOP,A_PRIV,A_NOTE_PRIV= ,A_NOTE_NOPACKET,A_RESTRICT_NOPACKET,A_CACHEOP,A_COPBYIDX,A_ICTAGOP),"Instr= uction Cache Data Read",{fICDATAR(RsV, RdV);}) +Q6INSN(Y2_icinva,"icinva(Rs32)",ATTRIBS(A_ICOP,A_NOTE_NOPACKET,A_RESTRICT_= NOPACKET,A_CACHEOP,A_COPBYADDRESS,A_ICFLUSHOP),"Instruction Cache Invalidat= e Address",{fEA_REG(RsV); fICINVA(EA);}) +Q6INSN(Y2_icinvidx,"icinvidx(Rs32)",ATTRIBS(A_ICOP,A_PRIV,A_NOTE_PRIV,A_NO= TE_NOPACKET,A_RESTRICT_NOPACKET,A_CACHEOP,A_COPBYIDX,A_ICFLUSHOP),"Instruct= ion Cache Invalidate Index",{fICINVIDX(RsV);}) +Q6INSN(Y2_ickill,"ickill",ATTRIBS(A_ICOP,A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKE= T,A_RESTRICT_NOPACKET,A_CACHEOP,A_ICFLUSHOP),"Instruction Cache Invalidate"= ,{fICKILL();}) + +Q6INSN(Y2_isync,"isync",ATTRIBS(A_NOTE_NOPACKET,A_RESTRICT_NOPACKET),"Memo= ry Synchronization",{fISYNC();}) +Q6INSN(Y2_barrier,"barrier",ATTRIBS(A_NOTE_NOPACKET,A_RESTRICT_SLOT0ONLY,A= _RESTRICT_PACKET_AXOK),"Memory Barrier",{fBARRIER();}) +Q6INSN(Y2_syncht,"syncht",ATTRIBS(A_NOTE_NOPACKET,A_RESTRICT_SLOT0ONLY,A_R= ESTRICT_NOPACKET),"Memory Synchronization",{fSYNCH();}) + + +Q6INSN(Y2_dcfetchbo,"dcfetch(Rs32+#u11:3)",ATTRIBS(A_RESTRICT_PREFERSLOT0,= A_DCFETCH,A_RESTRICT_NOSLOT1_STORE),"Data Cache Prefetch",{fEA_RI(RsV,uiV);= fDCFETCH(EA);}) +Q6INSN(Y2_dckill,"dckill",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A_RES= TRICT_SLOT0ONLY,A_RESTRICT_NOPACKET,A_CACHEOP,A_DCFLUSHOP),"Data Cache Inva= lidate",{fDCKILL();}) + + +Q6INSN(Y2_dczeroa,"dczeroa(Rs32)",ATTRIBS(A_STORE,A_RESTRICT_SLOT1_AOK,A_N= OTE_SLOT1_AOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYADDRESS,A_DCZEROA),"Zer= o an aligned 32-byte cacheline",{fEA_REG(RsV); fDCZEROA(EA);}) +Q6INSN(Y2_dccleana,"dccleana(Rs32)",ATTRIBS(A_RESTRICT_SLOT1_AOK,A_NOTE_SL= OT1_AOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYADDRESS,A_DCFLUSHOP),"Data Ca= che Clean Address",{fEA_REG(RsV); fDCCLEANA(EA);}) +Q6INSN(Y2_dccleanidx,"dccleanidx(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_RESTR= ICT_PACKET_AXOK,A_NOTE_AXOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYIDX,A_DCF= LUSHOP),"Data Cache Clean Index",{fDCCLEANIDX(RsV);}) +Q6INSN(Y2_dccleaninva,"dccleaninva(Rs32)",ATTRIBS(A_RESTRICT_SLOT1_AOK,A_N= OTE_SLOT1_AOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYADDRESS,A_DCFLUSHOP),"D= ata Cache Clean and Invalidate Address",{fEA_REG(RsV); fDCCLEANINVA(EA);}) +Q6INSN(Y2_dccleaninvidx,"dccleaninvidx(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A= _RESTRICT_PACKET_AXOK,A_NOTE_AXOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYIDX= ,A_DCFLUSHOP),"Data Cache Clean and Invalidate Index",{fDCCLEANINVIDX(RsV);= }) +Q6INSN(Y2_dcinva,"dcinva(Rs32)",ATTRIBS(A_RESTRICT_SLOT1_AOK,A_NOTE_SLOT1_= AOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYADDRESS,A_DCFLUSHOP),"Data Cache = Invalidate Address",{fEA_REG(RsV); fDCCLEANINVA(EA);}) +Q6INSN(Y2_dcinvidx,"dcinvidx(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_RESTRICT_= PACKET_AXOK,A_NOTE_AXOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYIDX,A_DCFLUSH= OP),"Data Cache Invalidate Index",{fDCINVIDX(RsV);}) +Q6INSN(Y2_dctagr,"Rd32=3Ddctagr(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_RESTRI= CT_PACKET_AXOK,A_NOTE_AXOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYIDX,A_DCTA= GOP),"Data Cache Tag Read",{fDCTAGR(RsV,RdV,RdN);}) +Q6INSN(Y2_dctagw,"dctagw(Rs32,Rt32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_RESTRICT= _SLOT0ONLY,A_NOTE_NOPACKET,A_RESTRICT_NOPACKET,A_CACHEOP,A_COPBYIDX,A_DCTAG= OP),"Data Cache Tag Write",{fDCTAGW(RsV,RtV);}) + + +Q6INSN(Y2_l2kill,"l2kill",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A_RES= TRICT_SLOT0ONLY,A_RESTRICT_NOPACKET,A_CACHEOP,A_L2FLUSHOP),"L2 Cache Invali= date",{fL2KILL();}) +Q6INSN(Y4_l2tagw,"l2tagw(Rs32,Rt32)",ATTRIBS(A_PRIV,A_NOTE_BADTAG_UNDEF,A_= NOTE_PRIV,A_RESTRICT_SLOT0ONLY,A_NOTE_NOPACKET,A_RESTRICT_NOPACKET,A_CACHEO= P,A_COPBYIDX,A_L2TAGOP),"L2 Cache Tag Write",{fL2TAGW(RsV,RtV);}) +Q6INSN(Y4_l2tagr,"Rd32=3Dl2tagr(Rs32)",ATTRIBS(A_PRIV,A_NOTE_BADTAG_UNDEF,= A_NOTE_PRIV,A_NOTE_AXOK,A_RESTRICT_PACKET_AXOK,A_RESTRICT_SLOT0ONLY,A_CACHE= OP,A_COPBYIDX,A_L2TAGOP),"L2 Cache Tag Read",{fL2TAGR(RsV,RdV,RdN);}) + +Q6INSN(Y2_l2cleaninvidx,"l2cleaninvidx(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A= _NOTE_AXOK,A_RESTRICT_PACKET_AXOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYIDX= ,A_L2FLUSHOP),"L2 Cache Clean and Invalidate Index",{fL2CLEANINVIDX(RsV); }) +Q6INSN(Y5_l2cleanidx,"l2cleanidx(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_= AXOK,A_RESTRICT_PACKET_AXOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYIDX,A_L2F= LUSHOP),"L2 Cache Clean by Index",{fL2CLEANIDX(RsV); }) +Q6INSN(Y5_l2invidx,"l2invidx(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_AXOK= ,A_RESTRICT_PACKET_AXOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYIDX,A_L2FLUSH= OP),"L2 Cache Invalidate by Index",{fL2INVIDX(RsV); }) + + + +Q6INSN(Y4_l2fetch,"l2fetch(Rs32,Rt32)",ATTRIBS(A_RESTRICT_SLOT0ONLY,A_REST= RICT_PACKET_AXOK,A_NOTE_AXOK),"L2 Cache Prefetch", { fL2FETCH(RsV, (RtV&0xff), /*height*/ ((RtV>>8)&0xff), /*width*/ @@ -59,10 +258,29 @@ Q6INSN(Y4_l2fetch,"l2fetch(Rs32,Rt32)",ATTRIBS(A_RESTR= ICT_SLOT0ONLY),"L2 Cache P =20 =20 =20 -Q6INSN(Y5_l2fetch,"l2fetch(Rs32,Rtt32)",ATTRIBS(A_RESTRICT_SLOT0ONLY),"L2 = Cache Prefetch", +Q6INSN(Y5_l2fetch,"l2fetch(Rs32,Rtt32)",ATTRIBS(A_RESTRICT_SLOT0ONLY,A_RES= TRICT_PACKET_AXOK,A_NOTE_AXOK),"L2 Cache Prefetch", { fL2FETCH(RsV, fGETUHALF(0,RttV), /*height*/ fGETUHALF(1,RttV), /*width*/ fGETUHALF(2,RttV), /*stride*/ fGETUHALF(3,RttV)); /*flags*/ }) + +Q6INSN(Y5_l2locka,"Pd4=3Dl2locka(Rs32)", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_CACH= EOP,A_COPBYADDRESS,A_RESTRICT_SLOT0ONLY,A_RESTRICT_PACKET_AXOK,A_NOTE_AXOK,= A_RESTRICT_LATEPRED,A_NOTE_LATEPRED), +"Lock L2 cache line by address", { fEA_REG(RsV); fL2LOCKA(EA,PdV,PdN); fHI= DE(MARK_LATE_PRED_WRITE(PdN)) }) + + +Q6INSN(Y5_l2unlocka,"l2unlocka(Rs32)", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_CACHEO= P,A_COPBYADDRESS,A_RESTRICT_SLOT0ONLY,A_RESTRICT_PACKET_AXOK,A_NOTE_AXOK), = "UnLock L2 cache line by address", { fEA_REG(RsV); fL2UNLOCKA(EA); }) + + + +Q6INSN(Y5_l2gunlock,"l2gunlock",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET= ,A_RESTRICT_SLOT0ONLY,A_RESTRICT_NOPACKET,A_CACHEOP,A_L2FLUSHOP),"L2 Global= Unlock",{fL2UNLOCK();}) + +Q6INSN(Y5_l2gclean,"l2gclean",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A= _RESTRICT_SLOT0ONLY,A_RESTRICT_NOPACKET,A_CACHEOP,A_L2FLUSHOP),"L2 Global C= lean",{fL2CLEAN();}) + +Q6INSN(Y5_l2gcleaninv,"l2gcleaninv",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPA= CKET,A_RESTRICT_SLOT0ONLY,A_RESTRICT_NOPACKET,A_CACHEOP,A_L2FLUSHOP),"L2 Gl= obal Clean and Invalidate",{fL2CLEANINV();}) + +Q6INSN(Y6_l2gcleanpa,"l2gclean(Rtt32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_N= OPACKET,A_RESTRICT_SLOT0ONLY,A_RESTRICT_NOPACKET,A_CACHEOP,A_L2FLUSHOP),"L2= Global Clean by PA Range",{fL2CLEANPA(RttV);}) + +Q6INSN(Y6_l2gcleaninvpa,"l2gcleaninv(Rtt32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_= NOTE_NOPACKET,A_RESTRICT_SLOT0ONLY,A_RESTRICT_NOPACKET,A_CACHEOP,A_L2FLUSHO= P),"L2 Global Clean and Invalidate by PA Range",{fL2CLEANINVPA(RttV);}) + --=20 2.34.1 From nobody Sat Apr 11 21:30:50 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=1773068196; cv=none; d=zohomail.com; s=zohoarc; b=TdBS3E0k+qlIQ7obxkwE13i41xaUDz3Ld4vFobdBasy1rWio3YWcNGHWmVAAZ8hhU+615Y/VaPcA/NE3iWQwvqAtI+vDCcbJsmQ+KtpykGqzFCR+GsGn+yEAV3G2hItY4lwTejwlpZgwFIZLvki3SNKixUeWlMf1+evXW8IzqYE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773068196; 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=+echXoguDZ5l6GnICeYq4LZ7Ft5EyaL/c1TckYMUo1Y=; b=BQFRrQIPeph69Ww6LV+TieCi/MSd4n1q8pnJr+m1cyfVdtJbzhMVjBHdLWtGBSmq6gvDiS1R6pei0Ruo2Sl0C7rd6/TXORPe03YSL5AbVPirKAw+clUTBFmIn6oOHhZtEhBWZUTB9NXwitUB5OUHUV7UKaCWV3v2yRdwIIX2HMY= 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 1773068196502661.1902831133358; Mon, 9 Mar 2026 07:56:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vzbv3-0001Tj-MI; Mon, 09 Mar 2026 10:49:17 -0400 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 1vzbuu-00012N-Oo for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:49:08 -0400 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 1vzbus-0005HY-VS for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:49:08 -0400 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 629EAWOe1249054 for ; Mon, 9 Mar 2026 14:48:56 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4csyr403ta-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 14:48:55 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-2bda35eab74so4833805eec.0 for ; Mon, 09 Mar 2026 07:48:55 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be4f82b78esm9322776eec.12.2026.03.09.07.48.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 07:48:53 -0700 (PDT) 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= +echXoguDZ5l6GnICeYq4LZ7Ft5EyaL/c1TckYMUo1Y=; b=EFsKbW/yM/SUaQ84 +bM2fnb3iWoXhGWrVa1MdJZKFpnZ/QXVd5V5wyjm2lhUX1EQBaHWZsnjIkLMIkcu ULc7o98HUDEeVRgdBJp9+3ckhk0oa+plSKBm21tvuB46Q1IlrqkiVOSp8Ea6L+f0 97RtvQKxErtRIkPx2/jTb8+2wZmU8wifdfN4tF8QGwYZhjgmeeVN6QeQC8BYKdCg Jrim5fmrGL0WwFBiK5LzY0KT3EDGThgrTC9qp/pb53S6tSdbbZAJDwacgcV+3Co4 JlEGq4/EmG1SR5upErlKk0Ix5miadHEJ4CXsBqsh3w3kBSanSvtnBlWOonadndF8 O8ldhw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773067734; x=1773672534; 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=+echXoguDZ5l6GnICeYq4LZ7Ft5EyaL/c1TckYMUo1Y=; b=d/QOAynEmQajNY5f/ry1Wj/pP2/9oK2SH0tzP2cfBg1Aj7uAg0afyTzOxgq5XN0Vn3 MyTFWxhQE8K3ZNVsHofbz67/FtsOkIE/YJAFqq8BdzzqbidmOuzwaY4LDSU21nvofXpv b3ZffRwkhCLzw6C/RT2KCMv90uFUwmm9eXkQVmG70SdQ1SlKSyt9LxgFg9ae2WSTF0Su RMLU8DWDdMxIo9ABOwaPPZHopHQOGqSXm7bQh/Ci7s4gaQVN2UQCyjLQ3Wr+YIIzGLaB z4yZXLyOybkGSP/Tne/DbZCptgE82BhFz6gSrymGaF/l0yc+Weo1TLoJzOQ/OQfLo/gS 6Sdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773067734; x=1773672534; 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=+echXoguDZ5l6GnICeYq4LZ7Ft5EyaL/c1TckYMUo1Y=; b=nTZRKwbqzUFMssAhVQQvSaRFojGuEyirS0LVUvs1AfXMUl0JOAxWuxzQhmP8/YHfvp wOVqBUM8TJpzvvY1+qldUjSby2oN/mHeI5P3EgdLmWHIo0nKCisZVBMttUdHlYBcy9Cb nTGpSlQh0MZonypn9WD6vTPqQ8UpqqpaoF4TI/fVuA7FshjagqBiGI/KG2d3CPixJrzC Dsd2fY9YAyXe1z7xRWF5SnsZmXLQ+HvO/vh8u6NM04cCNmskhEKLke9wL6KKmusSHMd3 yYR+mtCQ8Ybju6lfFQ6k6D3vFHb9xaKQW5IFT55Y/4W3Xm+/Eioj3Zlt4kS8Jp7Zmjd6 iTnA== X-Gm-Message-State: AOJu0YylVx5YQVbNKfHbHU8dh6hrLoZAQ+C3Rdw+3hMTf7l3Wx4IXGer T78jVlG2PtwKkLi99/++VO1RAFX2N4AYdj2VD/P+5yNAHhVWafWjpp6QqzOFLlsuvpE8PFdYqXa 2MDEKWKvWJmbcW7t9Ky3xlMYWKlddxbhvmRa+X5Yogwi/0RfddiEkczKnKLe7yfMvEg== X-Gm-Gg: ATEYQzylyY/3EhG9kVLVtL/jz5/pUV9TU/clYtDONRT1MYHvLfwh5JU9A7fRs5gIh2P vUvvxahreMifFQ84oJXRvMmm8jbuAXfj/2B4e5ksRTpyOuIgltwt3UruHO4bJ4S1DPqEqcKaFhr n7gaKZM7wPeq1NvATWw2TOrcYUhYvBFLPQX4mZR6Q6eLDYh3VCwwVFj/esIIuD2uBpfG9liFtS0 I+PZmEqAOiBpCMdDN4NZU6O5Qjx/AIYWlfR19gVJZU3y7ayXWY3Pz8jBscgHC+ytD8dHjC6iTI8 9RsRWu1ja8jgHatZTymY146vE7e9i9MzatRYHQUf0KB6o6kbc5sxC9gqzP2GBG4vwYs78BTVkG2 0fLmwfLvQpxzBkXVqoINhNh8c5bmnetveLZaBH0Z4KthPJaXf4GG8+q8wiLP9hMzvCBBbQw== X-Received: by 2002:a05:693c:2c09:b0:2ba:974c:4954 with SMTP id 5a478bee46e88-2be4e694e01mr4337773eec.11.1773067734407; Mon, 09 Mar 2026 07:48:54 -0700 (PDT) X-Received: by 2002:a05:693c:2c09:b0:2ba:974c:4954 with SMTP id 5a478bee46e88-2be4e694e01mr4337750eec.11.1773067733888; Mon, 09 Mar 2026 07:48:53 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 24/35] target/hexagon: Add sysemu TCG overrides Date: Mon, 9 Mar 2026 07:48:11 -0700 Message-Id: <20260309144822.877695-25-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> References: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDEzMyBTYWx0ZWRfX5L92VE7lSu9F fe8bO5RCeEGbdgtg/eExPRU/vIEvccIgAAOVYXzgIpD64mmR5tHD2Fe3WSn7HVj969xMVATmuGK JRInRpFHEPUs8DCHlE00E58tmoDIx19xtdXkZzvMHqufwBgIf5l78gKvEwbCxGF9RKasfLgY5Mx K/pSUdTapbSarAKZbU78V/OZFbI/eW6ZwIcaeAbQOql8qraOQOGpVOLcT/GVs2Gj/6SrSE/Juq/ cPp0NxNsfwSz6wG7XddO5gXYjcpxsDEOn8uStkDBSFmBCImHDHpfnXeOyEfW9Xq2PtrYj2e/Z/T zgjd9lit3nA41k1tIN1Xhm+9zZTYIBt9bYsXisVsig3I7Y+6VtOLyspPc7CycnUt2ut6veX1A63 nnVybin2QMbVm8zhnm86EIIlrdcV30tQHyTSXAc7bgMckJtUuKQFdSAaDzXi/7fFeNp2QO9JCiG Zt/p2cA1UZWo93sYdRQ== X-Proofpoint-GUID: 98SAxnx9BiqC6hw-M-Pc4_SaE6zQiAgc X-Proofpoint-ORIG-GUID: 98SAxnx9BiqC6hw-M-Pc4_SaE6zQiAgc X-Authority-Analysis: v=2.4 cv=KNRXzVFo c=1 sm=1 tr=0 ts=69aeddd7 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=c-qlsedbFlXwKLHGPykA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_04,2026-03-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 impostorscore=0 spamscore=0 bulkscore=0 priorityscore=1501 suspectscore=0 clxscore=1015 lowpriorityscore=0 malwarescore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090133 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: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773068197650154100 From: Brian Cain Define TCG overrides for setprio(), crswap(,sgp{0,1,1:0}). Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu_helper.h | 18 ++++++++++++++++ target/hexagon/gen_tcg_sys.h | 40 ++++++++++++++++++++++++++++++++++++ target/hexagon/helper.h | 1 + target/hexagon/genptr.c | 4 ++++ target/hexagon/op_helper.c | 10 ++++++++- target/hexagon/hex_common.py | 2 ++ target/hexagon/meson.build | 13 ++++++------ 7 files changed, 81 insertions(+), 7 deletions(-) create mode 100644 target/hexagon/cpu_helper.h create mode 100644 target/hexagon/gen_tcg_sys.h diff --git a/target/hexagon/cpu_helper.h b/target/hexagon/cpu_helper.h new file mode 100644 index 00000000000..1486a03c64a --- /dev/null +++ b/target/hexagon/cpu_helper.h @@ -0,0 +1,18 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HEXAGON_CPU_HELPER_H +#define HEXAGON_CPU_HELPER_H + +uint32_t hexagon_get_pmu_counter(CPUHexagonState *cur_env, int index); +uint64_t hexagon_get_sys_pcycle_count(CPUHexagonState *env); +uint32_t hexagon_get_sys_pcycle_count_low(CPUHexagonState *env); +uint32_t hexagon_get_sys_pcycle_count_high(CPUHexagonState *env); +void hexagon_set_sys_pcycle_count(CPUHexagonState *env, uint64_t); +void hexagon_set_sys_pcycle_count_low(CPUHexagonState *env, uint32_t); +void hexagon_set_sys_pcycle_count_high(CPUHexagonState *env, uint32_t); + +#endif diff --git a/target/hexagon/gen_tcg_sys.h b/target/hexagon/gen_tcg_sys.h new file mode 100644 index 00000000000..2410ac82c96 --- /dev/null +++ b/target/hexagon/gen_tcg_sys.h @@ -0,0 +1,40 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HEXAGON_GEN_TCG_SYS_H +#define HEXAGON_GEN_TCG_SYS_H + +#define fGEN_TCG_Y2_setprio(SHORTCODE) \ + gen_helper_setprio(tcg_env, PtV, RsV) + +#define fGEN_TCG_Y2_crswap0(SHORTCODE) \ + do { \ + TCGv tmp =3D tcg_temp_new(); \ + tcg_gen_mov_tl(tmp, RxV); \ + tcg_gen_mov_tl(RxV, hex_t_sreg[HEX_SREG_SGP0]); \ + tcg_gen_mov_tl(ctx->t_sreg_new_value[HEX_SREG_SGP0], tmp); \ + } while (0) + +#define fGEN_TCG_Y4_crswap1(SHORTCODE) \ + do { \ + TCGv tmp =3D tcg_temp_new(); \ + tcg_gen_mov_tl(tmp, RxV); \ + tcg_gen_mov_tl(RxV, hex_t_sreg[HEX_SREG_SGP1]); \ + tcg_gen_mov_tl(ctx->t_sreg_new_value[HEX_SREG_SGP1], tmp); \ + } while (0) + +#define fGEN_TCG_Y4_crswap10(SHORTCODE) \ + do { \ + TCGv_i64 tmp =3D tcg_temp_new_i64(); \ + tcg_gen_mov_i64(tmp, RxxV); \ + tcg_gen_concat_i32_i64(RxxV, \ + hex_t_sreg[HEX_SREG_SGP0], \ + hex_t_sreg[HEX_SREG_SGP1]); \ + tcg_gen_extrl_i64_i32(ctx->t_sreg_new_value[HEX_SREG_SGP0], tmp); \ + tcg_gen_extrh_i64_i32(ctx->t_sreg_new_value[HEX_SREG_SGP1], tmp); \ + } while (0) + +#endif diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index 28b9b59e0f2..5405342f798 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -114,4 +114,5 @@ DEF_HELPER_2(sreg_read_pair, i64, env, i32) DEF_HELPER_2(greg_read, i32, env, i32) DEF_HELPER_2(greg_read_pair, i64, env, i32) DEF_HELPER_3(sreg_write_masked, void, env, i32, i32) +DEF_HELPER_3(setprio, void, env, i32, i32) #endif diff --git a/target/hexagon/genptr.c b/target/hexagon/genptr.c index 2310b9aec3a..bac63a42def 100644 --- a/target/hexagon/genptr.c +++ b/target/hexagon/genptr.c @@ -31,6 +31,10 @@ #undef QEMU_GENERATE #include "gen_tcg.h" #include "gen_tcg_hvx.h" +#ifndef CONFIG_USER_ONLY +#include "gen_tcg_sys.h" +#endif + #include "genptr.h" =20 TCGv gen_read_reg(TCGv result, int num) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index eaefddef15c..22dbe8c85ec 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -19,9 +19,10 @@ #include "qemu/log.h" #include "accel/tcg/cpu-ldst.h" #include "accel/tcg/probe.h" +#include "qemu/main-loop.h" +#include "cpu.h" #include "exec/helper-proto.h" #include "fpu/softfloat.h" -#include "cpu.h" #include "internal.h" #include "macros.h" #include "sys_macros.h" @@ -31,6 +32,7 @@ #include "mmvec/mmvec.h" #include "mmvec/macros.h" #include "op_helper.h" +#include "cpu_helper.h" #include "translate.h" =20 #define SF_BIAS 127 @@ -1409,6 +1411,12 @@ uint64_t HELPER(greg_read_pair)(CPUHexagonState *env= , uint32_t reg) { g_assert_not_reached(); } + +void HELPER(setprio)(CPUHexagonState *env, uint32_t thread, uint32_t prio) +{ + g_assert_not_reached(); +} + #endif =20 =20 diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py index b9a5b9e2a29..d7496bf6b2e 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -1361,6 +1361,7 @@ def parse_common_args(desc): parser.add_argument("semantics", help=3D"semantics file") parser.add_argument("overrides", help=3D"overrides file") parser.add_argument("overrides_vec", help=3D"vector overrides file") + parser.add_argument("overrides_sys", help=3D"system overrides file") parser.add_argument("out", help=3D"output file") parser.add_argument("--idef-parser", help=3D"file of instructions translated by idef-pa= rser") @@ -1368,6 +1369,7 @@ def parse_common_args(desc): read_semantics_file(args.semantics) read_overrides_file(args.overrides) read_overrides_file(args.overrides_vec) + read_overrides_file(args.overrides_sys) if args.idef_parser: read_idef_parser_enabled_file(args.idef_parser) calculate_attribs() diff --git a/target/hexagon/meson.build b/target/hexagon/meson.build index d169cf71b2f..528beca3cd0 100644 --- a/target/hexagon/meson.build +++ b/target/hexagon/meson.build @@ -20,6 +20,7 @@ hexagon_ss =3D ss.source_set() hex_common_py =3D 'hex_common.py' gen_tcg_h =3D meson.current_source_dir() / 'gen_tcg.h' gen_tcg_hvx_h =3D meson.current_source_dir() / 'gen_tcg_hvx.h' +gen_tcg_sys_h =3D meson.current_source_dir() / 'gen_tcg_sys.h' idef_parser_dir =3D meson.current_source_dir() / 'idef-parser' =20 # @@ -337,12 +338,12 @@ if idef_parser_enabled and 'hexagon-linux-user' in ta= rget_dirs # Setup input and dependencies for the next step, this depends on whet= her or # not idef-parser is enabled helper_dep =3D [semantics_generated, idef_generated_tcg_c, idef_genera= ted_tcg] - helper_in =3D [semantics_generated, gen_tcg_h, gen_tcg_hvx_h, '--idef-= parser', idef_generated_list] + helper_in =3D [semantics_generated, gen_tcg_h, gen_tcg_hvx_h, gen_tcg_= sys_h, '--idef-parser', idef_generated_list] else # Setup input and dependencies for the next step, this depends on whet= her or # not idef-parser is enabled helper_dep =3D [semantics_generated] - helper_in =3D [semantics_generated, gen_tcg_h, gen_tcg_hvx_h] + helper_in =3D [semantics_generated, gen_tcg_h, gen_tcg_hvx_h, gen_tcg_= sys_h] endif =20 # @@ -356,7 +357,7 @@ helper_protos_generated =3D custom_target( 'helper_protos_generated.h.inc', output: 'helper_protos_generated.h.inc', depends: helper_dep, - depend_files: [hex_common_py, gen_tcg_h, gen_tcg_hvx_h], + depend_files: [hex_common_py, gen_tcg_h, gen_tcg_hvx_h, gen_tcg_sys_h], command: [python, files('gen_helper_protos.py'), helper_in, '@OUTPUT@'= ], ) hexagon_ss.add(helper_protos_generated) @@ -365,7 +366,7 @@ helper_funcs_generated =3D custom_target( 'helper_funcs_generated.c.inc', output: 'helper_funcs_generated.c.inc', depends: helper_dep, - depend_files: [hex_common_py, gen_tcg_h, gen_tcg_hvx_h], + depend_files: [hex_common_py, gen_tcg_h, gen_tcg_hvx_h, gen_tcg_sys_h], command: [python, files('gen_helper_funcs.py'), helper_in, '@OUTPUT@'], ) hexagon_ss.add(helper_funcs_generated) @@ -374,7 +375,7 @@ tcg_funcs_generated =3D custom_target( 'tcg_funcs_generated.c.inc', output: 'tcg_funcs_generated.c.inc', depends: helper_dep, - depend_files: [hex_common_py, gen_tcg_h, gen_tcg_hvx_h], + depend_files: [hex_common_py, gen_tcg_h, gen_tcg_hvx_h, gen_tcg_sys_h], command: [python, files('gen_tcg_funcs.py'), helper_in, '@OUTPUT@'], ) hexagon_ss.add(tcg_funcs_generated) @@ -383,7 +384,7 @@ analyze_funcs_generated =3D custom_target( 'analyze_funcs_generated.c.inc', output: 'analyze_funcs_generated.c.inc', depends: helper_dep, - depend_files: [hex_common_py, gen_tcg_h, gen_tcg_hvx_h], + depend_files: [hex_common_py, gen_tcg_h, gen_tcg_hvx_h, gen_tcg_sys_h], command: [python, files('gen_analyze_funcs.py'), helper_in, '@OUTPUT@'= ], ) hexagon_ss.add(analyze_funcs_generated) --=20 2.34.1 From nobody Sat Apr 11 21:30:50 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=1773067810; cv=none; d=zohomail.com; s=zohoarc; b=IALJIbHIqxUDhJYonh1UHKfwKTROm8CUxluAw7DIvAkcfgqN3U+X2iFv1Gd/Aa+aaaUbxVbpVs2o7VcdyDUzmcioKlKK9W90c65L5pVRtI64Vg1peyQZF4eaax26mNAQL0x0f2lGIRNcWfiDeNTEEgpBtQdRv5H4yba4Nme81hQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773067810; 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=KWwmlEVndruWtF10NfXjVHSIEZCP+AYqKotN4ROqTh0=; b=XwERUCr28m51tGZbmRycDK7W03HBERdjkPPL9Z6BcQZxE4ucPLfj08S7c5mkxOf3X5EwUiJG46KDtXzSiK1irmUg5+6oABuC5IxbRxJ6EgRIcRNc+7x08vqu7B6CzlZvxdfJKiCUhahi5VlflVcEDkC4oJY5J+EdgCDTKI1CUBo= 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 177306781044219.81240675562924; Mon, 9 Mar 2026 07:50:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vzbup-0000yA-Uh; Mon, 09 Mar 2026 10:49:03 -0400 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 1vzbul-0000v2-Hj for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:59 -0400 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 1vzbuk-0005Hj-10 for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:48:59 -0400 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 629AUwrw1587278 for ; Mon, 9 Mar 2026 14:48:56 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 4csqcy9y45-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 14:48:56 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2be191ce356so8524798eec.1 for ; Mon, 09 Mar 2026 07:48:56 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be4f82b78esm9322776eec.12.2026.03.09.07.48.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 07:48:54 -0700 (PDT) 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= KWwmlEVndruWtF10NfXjVHSIEZCP+AYqKotN4ROqTh0=; b=VNOCgggJK3/pKxAO le1YgX+ErRcTwIIOuJ4QxmSDs5Woo2czqiqfes5pk8DrugaTi6UBFrhx29dxY3d3 kpqY1iqqoiGaoLAX6vOLbf0L7mzHFJ7Tg29XvjVqAczMPclXJl3WVrUt0rcUnbQo BXaZ+XJZdEOAGdBY3f7r5wpB/gT2hKiVMmjIrJSdjXGnNbLwB/fVGslLIOcRSybE oxY4464nqTX1SVZjkS5eMxRCYpxqKRethk+R1T/K7gRwJYdDiabYBVUsE9d6wqAi Kk0TbTnW1kEiJOwkRXSXbCOsAhjXOYxWcrtTSkyCmg2ibORbaIjc9pEuFYg2z2yZ 1TbEPA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773067735; x=1773672535; 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=KWwmlEVndruWtF10NfXjVHSIEZCP+AYqKotN4ROqTh0=; b=AoxxtkmBy6V3HmWFtgcpwI1GklEPPf0Ia1vKyEbQRvrq6O1DdcbwbTNOOezpTOjvB0 LJGubd1dobUlfjjCtop8YSWCZUXEy3cU95p0OL2esFb9ACn8Ex4VBgYYH/gSyylZ94jY cxtwPybhX6/MEymwTF6+mWGU+l1mSbldwTVPvZm0QXcHV4fMG7oSNsRgkkHp+Zxzh7N6 FZ8uL35ZN/Bwpg//siYF6/hk00d2wrUlAtxhtwdCJN0/IemYMOae/HRHbmZVrWqFkbgs Vzcji1gDrOVqs+z4N2qTr6NoOmvgQAkGkfrqMsGTfgp/7otTrzNNOzE3O69/8F1XIMyd N1Wg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773067735; x=1773672535; 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=KWwmlEVndruWtF10NfXjVHSIEZCP+AYqKotN4ROqTh0=; b=P6A9ltKbHfZhNaHWoIaLN5QEs+MYWFkS56er9B+MQOHlNJPYvBLG2EFfV59fsbwpE4 g/rzxLbi+NAXYxCEnwwieEd1ldvDp6q7HGUclWIYBYSRhc9rVJeNd0/R6OnUuAbJCTF5 5JJ0EGMpzsleJVySQzOFF1yIjpQUP7ddpyteWf2bvnyNHlV1qtiBs8vsE3Oph2n82Ipn 0SVwUzdTFAke+MkOVFbq2PsF61FnVJlR6plAdstIpcKleA+J7EWL2nTwp/e4u5TqSaPV XHMfFEiqB+UHjVBlxUCewBBZDqwfi0K+sFro2fkq+hhB7PF3ifZ7tkpEb8scOU2sE3qX 3xLQ== X-Gm-Message-State: AOJu0YxQzsK9PChJ/zd4yVQeO90OQomfPTFtsvqAm1PKeXfe2AJcc8Lx yxH3AHvV6LXrW6R4hdNV9uaMlPz1xmzI+UVO5sP7wecFZ7cE3RmtCBUjYgxaiM06EHCHsXcqPGA rmKEKUeeg79j6wal639CGNATkEC5Ew51l+XftNAGk9Z96u8GCcIf6FKi7clsNSsg+EQ== X-Gm-Gg: ATEYQzzrX/l2w1j3bXyJcEWSSh0CqWJgkc2F+57KUwrzVqlkX+sS3Ytzzl+wjzLvlmC uFckF01rpxpzYEFQ/K0Uc8BjTKgMUfy04iv4qtNPxg5pDtKBH+teYg5HZMgUdL8/emRbTvcyGjQ e6WE6LKTkbNmACAVLTf8IesS5AKyLP9ZtVKI7d59tRfcQ8Z9y1rVJtxFMqhqXsclt3AgGDlHZNB K4tt1bA0zTym4MNc3ycfdo0pxKE2Nh4AzRAGLE6970OmgWhUkpcdyANpqWDq5q05+RUQqNRFScJ aFrjwdJ/50nHTuHdY0hi2TJcekj9TXADVXs2AI2DhPc28G+NRNGYUi4PS+pUhmCxJaXpb364WQg wUkbFE8MR+iHwiU3WRQ4+4DGAnysU2com93GsqD54xYDAmdPiY5H/XF+1Dpb43nKf3rYu0Q== X-Received: by 2002:a05:7301:4094:b0:2be:e4b:60bd with SMTP id 5a478bee46e88-2be4de932fdmr4245028eec.6.1773067735213; Mon, 09 Mar 2026 07:48:55 -0700 (PDT) X-Received: by 2002:a05:7301:4094:b0:2be:e4b:60bd with SMTP id 5a478bee46e88-2be4de932fdmr4245012eec.6.1773067734702; Mon, 09 Mar 2026 07:48:54 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 25/35] target/hexagon: Add implicit attributes to sysemu macros Date: Mon, 9 Mar 2026 07:48:12 -0700 Message-Id: <20260309144822.877695-26-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> References: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDEzMyBTYWx0ZWRfX8M7hN4nemcvr sJbEen8bayBC3SLMA6ZaJldwpKhDLVa1XIAxSVT84206lonHby1bla5s29vl84/ror03Dakpjrp wjZDKoZyEyoM0sx4fLnAPwlqnv9wv51eVK8WiiqvC2dYd4G/JNtKBZMtOUQQMKrIfcLVYoZyyyo FO712z6ZZ9j1eZzS4Lhw2zjwD4uNl20Qxgd02OSsv88HSrIkF0Met4hDdsYMyQzz3vUaI8Dgxmr n4uoAfkVbccPMiz8xbnC8zzAtYEvHOpVD/D0GQWzoysYZboSphjuX/+FrDK2rNQRPtMFGRArfTx fNjGjdPHZsMhIFUcKWj4wYKvrltiLqrHAZruCR60iz1D3rVmSS1dVM3YJ/Z30trWjXDr2/kNtVe o+a06TRMpMuutwaq/4TnfP6Q0Hi+e7gqi31ij8ssDvv43ImWaGMa7pJgVJXQ28DgOg0OIgYncWy wodG1C51+ofWhV6OjYA== X-Authority-Analysis: v=2.4 cv=QJtlhwLL c=1 sm=1 tr=0 ts=69aeddd8 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=CUHppggc_AvCVqMSdgsA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: QBkLDWCC4zkXmBVkbBzh8btqn6yMTVAM X-Proofpoint-GUID: QBkLDWCC4zkXmBVkbBzh8btqn6yMTVAM X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_04,2026-03-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 suspectscore=0 adultscore=0 spamscore=0 phishscore=0 lowpriorityscore=0 malwarescore=0 priorityscore=1501 bulkscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090133 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: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773067811180154100 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/hex_common.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py index d7496bf6b2e..207eb44f3ae 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -128,8 +128,11 @@ def calculate_attribs(): add_qemu_macro_attrib("fTRAP", "A_IMPLICIT_READS_PC") add_qemu_macro_attrib("fSET_OVERFLOW", "A_IMPLICIT_WRITES_USR") add_qemu_macro_attrib("fSET_LPCFG", "A_IMPLICIT_WRITES_USR") + add_qemu_macro_attrib("fCLEAR_RTE_EX", "A_IMPLICIT_WRITES_SSR") add_qemu_macro_attrib("fLOAD", "A_SCALAR_LOAD") add_qemu_macro_attrib("fSTORE", "A_SCALAR_STORE") + add_qemu_macro_attrib("fSET_K0_LOCK", "A_IMPLICIT_READS_PC") + add_qemu_macro_attrib("fSET_TLB_LOCK", "A_IMPLICIT_READS_PC") add_qemu_macro_attrib('fLSBNEW0', 'A_IMPLICIT_READS_P0') add_qemu_macro_attrib('fLSBNEW0NOT', 'A_IMPLICIT_READS_P0') add_qemu_macro_attrib('fREAD_P0', 'A_IMPLICIT_READS_P0') --=20 2.34.1 From nobody Sat Apr 11 21:30:50 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=1773068227; cv=none; d=zohomail.com; s=zohoarc; b=DZq7zlw6QpBu1zMZ31Yykr6MmiRNq55xSNiJYiRqTn+EV8OeXVd7+shFMEqp6qt+MtP2BiHoG7KHByXMjMdV7MVo1DAgH1oivlGLDvF8W2Ldrx3aHCHsuxkdE+/qF+etJn4utd/rlll0VSxtP4gQx2b9nAxqRa5kgwh+KRbLmyU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773068227; 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=kN2NFQkaBUPmKruiN92EEV3fkDFU3ht5CFn5RR7/Sbo=; b=BbN9Q58EecGaHRSuRGu8LSeTU7mE90Yrwa4kkCYU78KKVRmbCv3HWzY/i9VvUMqD5T/lMBv3139Y+fxWxN01T/Kkz4XMIuaFAkVrQAU+Ol5rL/35y3I8Kv8Xl0bUBu1uoKvDl7DEJvhmY3b7VjnMH4R+NuJobaWdQjVTxq612/0= 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 1773068227938328.82408545568614; Mon, 9 Mar 2026 07:57:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vzbv5-0001VT-2I; Mon, 09 Mar 2026 10:49:19 -0400 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 1vzbux-00013i-5j for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:49:12 -0400 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 1vzbuu-0005Hp-51 for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:49:09 -0400 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 629A6eqr2195118 for ; Mon, 9 Mar 2026 14:48:57 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 4csv5u8vku-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 14:48:57 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2bdf75bc88fso9277766eec.0 for ; Mon, 09 Mar 2026 07:48:57 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be4f82b78esm9322776eec.12.2026.03.09.07.48.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 07:48:55 -0700 (PDT) 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= kN2NFQkaBUPmKruiN92EEV3fkDFU3ht5CFn5RR7/Sbo=; b=kXRG7nOksmXoa1iV CFuZ5o33pWbiYikffCuScuC6+YVHkfg5pMx0dBzGWEbKGn1VZOb8yoyARYl5mkO+ 7p+FdioEe/cTseQxBmeAFTtPOkIicaCQpE4DslKqSgiS2/uruJRnnjOB/Lb6LIvv qphFE7FJ/Y+sKPOoDiOupGbxv0tgg1kXaFoiz+U2S+r+6G1w0A2xsZjeIZ4OwHRL hccF7jOTLus4Uu+JNDtRi1FT+7OXZxYARLF32Jzg1LCxVAGWxK0uUR8OLzFIZezZ LBptfus4qp59CfG5o977R7+zIkTrfnbD/aey2N+0K3MP9ujORC7KoiVsqoqFGCPu ekWUIw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773067736; x=1773672536; 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=kN2NFQkaBUPmKruiN92EEV3fkDFU3ht5CFn5RR7/Sbo=; b=iUwfyyJgijdR5JohHtYG3+pTKi2vPZvgkdVUZF4tRoNj9M9FGI2Wq6HUfRr+bDL+iY tJ670G3qNPhCaKrUmSNspSbB9pZPO+B1a1AhLH3PArTo6ZJ9XUuCsSA/0qStX7qYy7It V2i1muSfj/hqO+D2OA7LMJ5vRisvKfGSFlVRZ/eMLLIYZPm2uL8JD/kBaCdX5GVpDXoK X3FUn335s/LH9gKZVKVuzxXfQwyUfYOVoTk8r6k2/fL999g1ka8gHdGXJWrCs+V+TVvW F2/Pv7MUkx7+RdD3U1OBIHIdsyw+AwZFexCC8XrkJ4h9g+NiWDW1xfS00K8bKkucHqLC oV+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773067736; x=1773672536; 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=kN2NFQkaBUPmKruiN92EEV3fkDFU3ht5CFn5RR7/Sbo=; b=RQqg0qDd7hCK1XVelU3Bbp7ldj47L8CBfUrYc0fxpA+/1EOsyjNWoqLJTR5cb+6w13 5DoS47CU2JipQCCoGenVYahWtUaDMqN3tidP785qAxe+IP0HFOR6R86nmbC7EOKyt9l6 xLQsanld6MGhWOdaqNDkaZKZXMzT48Ervz9DCM9htupZ/DdqwjjBWfTPKRzew8ycA0Wi eBFRzSx2kyL/8BVpS+xuvON5HW1ceLDU7D0+ydzm6EZfmHoPUje1KIUYD7cU4VUvdIAd CmsTn/KNczNNbHRMe+LxqZB+eYZivpGA099iVIoesZqODDu6ID4kRlrtmJmG4AfL9c+y JBdg== X-Gm-Message-State: AOJu0YyPqjzED+aBPDpcfDuNjtQHPYmVGiLAA7UOdS3eWhn6mMjtgHXi PpeRS00nAMsq7o+D4JQivYD0Um5mWVeApxIJzhm/D/o0yxpGhl+MNMtzftrzHuP/Ro1g5OZrcoy b1PJqH+S10K5F3UojG77OPsmcF/VXHQ9u0EjV+Y2LeR5qa8WWBO714csZosjHFExFvw== X-Gm-Gg: ATEYQzx/gZQMGch9I+ubFnJr0JvWoLFGqRPsmqkWZtS7uL//LkXGXWWfW4Gue0DFgQQ X6IfGDWXyBZKovj183Gj0WRI5GxzKicebXRhZ8UuKfNsxGCpaLXkP27/PW2rQ9RBprMwSwHN+nD uNIgxh5AN8gMVdsxyxuZa7mBKUbEaVb3DkueY4BUj8c9QGZhrvnwE1yuAS+YnMO5rcDMnM8G5v9 C3fimaI70FNWe/0sOLEouctZwD5RjhnwoeB811JGCqN3GyFdmLuuSX9u5rsQEJE3TdBfPilYTvP fh2nBoyReVGtCy6y6xtSWQV5gfhq0g+lNvzLTXS3YyGBa4yxzjVX8KdZafCJOcRjV21qsGbxnBK ZYnAMzgfJLZoi7edngRHFiYlNGLUHNidRosvL38QqP+SjmT88llDIbNC1wJz1O9L7pcR+zg== X-Received: by 2002:a05:7300:6da4:b0:2ba:a60a:15e6 with SMTP id 5a478bee46e88-2be4dfca833mr4004545eec.16.1773067736111; Mon, 09 Mar 2026 07:48:56 -0700 (PDT) X-Received: by 2002:a05:7300:6da4:b0:2ba:a60a:15e6 with SMTP id 5a478bee46e88-2be4dfca833mr4004528eec.16.1773067735485; Mon, 09 Mar 2026 07:48:55 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 26/35] target/hexagon: Add TCG overrides for int handler insts Date: Mon, 9 Mar 2026 07:48:13 -0700 Message-Id: <20260309144822.877695-27-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> References: <20260309144822.877695-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: hJMu_hNOcGXJvWuz5_kYxZD-XZjedr6n X-Proofpoint-ORIG-GUID: hJMu_hNOcGXJvWuz5_kYxZD-XZjedr6n X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDEzMyBTYWx0ZWRfX9ejEE7PhEj9o R7CDtxKUASO4DSdnVsc26jdYYoxyaMnFrBELZnMAor98YIzTcjNJt3HBB6cw0L1j9d18EJntfKe xD9EaQ77DK336SdLtFut0pe1aa169xKmekuKpve4mwqQJR+kHgfGYlXuHGMh2mss1SRVhRMbcpE YxyNbiLHB7/TDbnFjHe5efojWtWVMT/d+82W8XNiAZbn1l7HuhYZuTZ2mi5LluSTvCna6wXSJiv lzt6uq+JOFD9Yb2B232GgkBlgWvYy/YOb+MgK6uH9wuKeXinmjOj8hgW8m3dqX7GH9Vz8xXmHWX D/xC/dAnqhMbKygLNjLyI5YyxPs8ki3rEqACi6436fOh5MyOyayHkLGHvBcGrS67nDHeQMJq2gM gCN/Lg34hC7N+PjBKY5ENRhx7KdxPbNRxERVKcsXmtMrT6kXequsHKzQej+yT88kYyy7hisAAZ/ 2rLWjL7Li7zMQNR2A2Q== X-Authority-Analysis: v=2.4 cv=Xr/3+FF9 c=1 sm=1 tr=0 ts=69aeddd9 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=ncxFUDX8U6Z2rYVbhVQA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_04,2026-03-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 adultscore=0 spamscore=0 impostorscore=0 suspectscore=0 lowpriorityscore=0 clxscore=1015 phishscore=0 priorityscore=1501 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090133 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: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773068229923154100 From: Brian Cain Define TCG overrides for {c,}swi {c,s}iad, iassign{r,w}, {s,g}etimask instructions. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/gen_tcg_sys.h | 25 ++++++++++++++++++++++ target/hexagon/helper.h | 8 ++++++++ target/hexagon/op_helper.c | 40 ++++++++++++++++++++++++++++++++++++ 3 files changed, 73 insertions(+) diff --git a/target/hexagon/gen_tcg_sys.h b/target/hexagon/gen_tcg_sys.h index 2410ac82c96..7f223ff3884 100644 --- a/target/hexagon/gen_tcg_sys.h +++ b/target/hexagon/gen_tcg_sys.h @@ -7,6 +7,31 @@ #ifndef HEXAGON_GEN_TCG_SYS_H #define HEXAGON_GEN_TCG_SYS_H =20 +/* System mode instructions */ +#define fGEN_TCG_Y2_swi(SHORTCODE) \ + gen_helper_swi(tcg_env, RsV) + +#define fGEN_TCG_Y2_cswi(SHORTCODE) \ + gen_helper_cswi(tcg_env, RsV) + +#define fGEN_TCG_Y2_ciad(SHORTCODE) \ + gen_helper_ciad(tcg_env, RsV) + +#define fGEN_TCG_Y4_siad(SHORTCODE) \ + gen_helper_siad(tcg_env, RsV) + +#define fGEN_TCG_Y2_iassignw(SHORTCODE) \ + gen_helper_iassignw(tcg_env, RsV) + +#define fGEN_TCG_Y2_iassignr(SHORTCODE) \ + gen_helper_iassignr(RdV, tcg_env, RsV) + +#define fGEN_TCG_Y2_getimask(SHORTCODE) \ + gen_helper_getimask(RdV, tcg_env, RsV) + +#define fGEN_TCG_Y2_setimask(SHORTCODE) \ + gen_helper_setimask(tcg_env, PtV, RsV) + #define fGEN_TCG_Y2_setprio(SHORTCODE) \ gen_helper_setprio(tcg_env, PtV, RsV) =20 diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index 5405342f798..955287133e4 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -109,6 +109,14 @@ DEF_HELPER_2(probe_hvx_stores, void, env, int) DEF_HELPER_2(probe_pkt_scalar_hvx_stores, void, env, int) =20 #if !defined(CONFIG_USER_ONLY) +DEF_HELPER_2(swi, void, env, i32) +DEF_HELPER_2(cswi, void, env, i32) +DEF_HELPER_2(ciad, void, env, i32) +DEF_HELPER_2(siad, void, env, i32) +DEF_HELPER_2(iassignw, void, env, i32) +DEF_HELPER_2(iassignr, i32, env, i32) +DEF_HELPER_2(getimask, i32, env, i32) +DEF_HELPER_3(setimask, void, env, i32, i32) DEF_HELPER_2(sreg_read, i32, env, i32) DEF_HELPER_2(sreg_read_pair, i64, env, i32) DEF_HELPER_2(greg_read, i32, env, i32) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 22dbe8c85ec..bb47b090113 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1387,6 +1387,46 @@ void HELPER(vwhist128qm)(CPUHexagonState *env, int32= _t uiV) } =20 #ifndef CONFIG_USER_ONLY +void HELPER(ciad)(CPUHexagonState *env, uint32_t mask) +{ + g_assert_not_reached(); +} + +void HELPER(siad)(CPUHexagonState *env, uint32_t mask) +{ + g_assert_not_reached(); +} + +void HELPER(swi)(CPUHexagonState *env, uint32_t mask) +{ + g_assert_not_reached(); +} + +void HELPER(cswi)(CPUHexagonState *env, uint32_t mask) +{ + g_assert_not_reached(); +} + +void HELPER(iassignw)(CPUHexagonState *env, uint32_t src) +{ + g_assert_not_reached(); +} + +uint32_t HELPER(iassignr)(CPUHexagonState *env, uint32_t src) +{ + g_assert_not_reached(); +} + +uint32_t HELPER(getimask)(CPUHexagonState *env, uint32_t tid) +{ + g_assert_not_reached(); +} + +void HELPER(setimask)(CPUHexagonState *env, uint32_t tid, uint32_t imask) +{ + g_assert_not_reached(); +} + void HELPER(sreg_write_masked)(CPUHexagonState *env, uint32_t reg, uint32_= t val) { g_assert_not_reached(); --=20 2.34.1 From nobody Sat Apr 11 21:30:50 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=1773067993; cv=none; d=zohomail.com; s=zohoarc; b=kfaDLlphRd00q2CVt4tjbda6TgbEuJWuHv7G3V6CslEXnOlqPKyjET2pvsHl9SbiOVX/03TzyItV1IpA1YtswJZYQFdpVOcQ/n1Yr0wXdrXFFyffNou22Vhk52rFF6hppB5o+2TfkcOQyNbm4P+WLw8Or+JdTqbKlahlOC1+ZoU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773067993; 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=gUINCeXk0f+4i5ESaB5IxLA3D7qCDKEuyBi75iUr5Eg=; b=NmevNAs4J74OnAc+Yrfwqw+PYl3i5J9lq6c0x9UR5hMclme7ygqDVdIRMEmapB06IUXqTaVKjyrdfEC+DNaiBSkU1jspEnCb5IAK214RkKdEAqWYUio1vFn8czxFr2toFge52t85GsLJ0xTEK77uzwHrUOsGjLI0YTmbuI8ZQDU= 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 1773067993308607.1151207901987; Mon, 9 Mar 2026 07:53:13 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vzbv2-0001Pz-W9; Mon, 09 Mar 2026 10:49:17 -0400 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 1vzbuq-0000yJ-NA for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:49:05 -0400 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 1vzbun-0005IL-Ki for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:49:04 -0400 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 629AWYlW1587840 for ; Mon, 9 Mar 2026 14:48:58 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4csqcy9y4d-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 14:48:58 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-2bda35eab74so4833899eec.0 for ; Mon, 09 Mar 2026 07:48:58 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be4f82b78esm9322776eec.12.2026.03.09.07.48.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 07:48:55 -0700 (PDT) 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= gUINCeXk0f+4i5ESaB5IxLA3D7qCDKEuyBi75iUr5Eg=; b=PnPdLWKdqTYk+dpA i+urhs/h6VIqdadVFl0SMfxC2T1qOpX1+j8iFaSCfdZsyzH/mOdKS+9Ev3sALC0R 3cFoGwZE8RA3oZGrpSDEqHV28iZ4YPID+SNIBxMtPehFwbOMVEsZxuoJfjO0hkcI gmJEE0J/ZbVAaPZI7YAIZlYJY43/QhBm0geenWcaqNYdZ6Z2YlAwV+ZNGht93OTK Pu+M67She7gtwoEZVyS1W8uBZqbjKkaHd/TY2RUCkXklVux8zMtiGIlmDB2si1ka L6QOG2sqVuTAiaTly3iVqLg5LPsCIThSxpo43IRl6W16tL0IdTpWVn1ulGWA00z3 qNMiBQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773067738; x=1773672538; 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=gUINCeXk0f+4i5ESaB5IxLA3D7qCDKEuyBi75iUr5Eg=; b=XAugWLYAGiSc4x/L3G43eO5Hv8WIyPWn0IM5i6J7HJ9KtwkWcesK20+GL/hhObqvNl PYyVnjq8GxJlsX22KzQg9u6rC2vd/pXRO59BXGk+dnRi8/Mz88rlVjEmVCvefFlHdpcO 9dW5DLjPCK88gW4bSo/Hkk4t9nT0JL4qOG4Aif0t0XJE6Me8nRSSKoWpTZudGsqruUWg 5IB5g3Eiaxb/VhA529sPBtf4cpjkHkGG390WLFrA0+oOdMop49p3BDVyJNyvqniFVcEM pKCfB3OkEPejanbYXuuul7H0bCAI0X/S4dBDxDGKefxM8PA2vD5bhjh5oU32/AOigLPj AYuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773067738; x=1773672538; 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=gUINCeXk0f+4i5ESaB5IxLA3D7qCDKEuyBi75iUr5Eg=; b=hDEE3DJVHGzZvvpItLqvTwxdWOVNeDAG+16K2efEqdjndk8s6rEXzPVJoaKrMqzVvU 1qtQbTDIOX0cu5q6qjbH+sF/9TU0edHAOcbi2Q09uALV+mGNWfLITxOOfG/c1TRdxpmk qF+2Ux9hCjs+PLDXtG4BcwmfH0LajrduSORlnAtJor2Rp1lVonRI+pbifeXG2S6ex7y/ TmtAy4MpSTMOjNVvAjDL3FaSmnh9NzZTlV0CknCPlIGf7mRoDLFLLxLLD8kig5R4MHyf AS24fhVSa67CPpzidDXA6A52cDmJIKOW3qXLIfymOGQ7qWeoxuI0JrldBQxDihUgWuuP eULQ== X-Gm-Message-State: AOJu0YykYtLELRcU32tdt08ila25W8OkkIKCzyKs45kOHT9/ADFIwPot PZC4BUxeVCZ5kDeMjVYGbVyn8jzyonI9U5u0GO5AVup5HYCjrsNRjIm9zZkYmx9ruTHb41Atc7x S0KXl9SCzxUdOtq9YqipSM6mHH+eycVNRC0QBYWNItX1RK4UrqYdX+TTi+LspoZq9Dg== X-Gm-Gg: ATEYQzxm192kzgkxSEug4N85q+xrtm8F/iJRenTsiC1ELgTB5bJaPMGCVkGASn3MhyH J9VbnB56aDzGkgUGJGNPRsr/pmz6zOJNZKoX+d+DOU1X/GPcHKlwmL5JvlubvGhOIh1nxsRdy6Z 0dGXgsQYts7/xMVsF39Xw8x3YdWwa429O8RFfWayEr2T8hKRr1c3labVx5bVd8Dh5nxaU/8g1tj BoIRS22O6EfBtG7/6yLIHLRBU021oyifTg6SBtFkBm3mBvxx1ioT8zZbSb3NM3P9cJyp32WbZSU EY39NBO3Sm9N+fR7eyXVdz9whjgZ2EJT2OalDrL2U1foeWUB0rlBQWf3qmN3HH30CwE/4Of1wC3 If8mgHOk13wEDwR3mDZRjPO9oOAgQrqAT/3eDAEUgjKYbaMflDtVh+m0QjR77kn/NFSAysQ== X-Received: by 2002:a05:7300:3720:b0:2ba:9cc4:aebb with SMTP id 5a478bee46e88-2be4e693c27mr4078003eec.10.1773067737319; Mon, 09 Mar 2026 07:48:57 -0700 (PDT) X-Received: by 2002:a05:7300:3720:b0:2ba:9cc4:aebb with SMTP id 5a478bee46e88-2be4e693c27mr4077966eec.10.1773067736651; Mon, 09 Mar 2026 07:48:56 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 27/35] target/hexagon: Add TCG overrides for thread ctl Date: Mon, 9 Mar 2026 07:48:14 -0700 Message-Id: <20260309144822.877695-28-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> References: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDEzMyBTYWx0ZWRfXzWM0V8R7NxMO UAWT7TUQcd5cZ+nGIPKB9fbP8XWRNoAPVp/9rmSYv9E62QDLhU5EzsIYaWC5lwELMEEVTx1JfuU ChN3dGHNEZyZqT42rdTfMsDf1ax52zgob4zEZ1QIixe4giOWY45oWx5cCjJyb0nngIj2ADctvl0 T1RLYlm/+rPd0Wecyj0cMsSWJxIZkKo7tYVgXf/RhNyUMIAxCod3CrWe+TaLnxUNcTrPy+FFJkG EbtlxDzcvGk8zTa+P9xDLpaK7zo3z1upvhrFOcORjwUSDSEZjVxGV0j8E7AGE5nKT0aIoXZ5c0i 19diUCn4NK1rsUN+trgSSKYVd16UXAt3E/oj+FFTFClm13J0UiAOsZwiPlddC3KAnYnPJYtAu1S eIfxnU/FKdjUCC0y5ZXP1BA3vXboWK+b1sVbfeFYSn7YbYaI5OHIUydJXAR3GrxR63vt6M5nojG mr4UyTQONM8n0oI9dJg== X-Authority-Analysis: v=2.4 cv=QJtlhwLL c=1 sm=1 tr=0 ts=69aeddda cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=t9Y8JitlK4h6-XB8aEcA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: miz1_d91mJuuRNLhV99ICQf0TDg1_6dZ X-Proofpoint-GUID: miz1_d91mJuuRNLhV99ICQf0TDg1_6dZ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_04,2026-03-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 suspectscore=0 adultscore=0 spamscore=0 phishscore=0 lowpriorityscore=0 malwarescore=0 priorityscore=1501 bulkscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090133 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: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773067994998158500 From: Brian Cain Define TCG overrides for start, stop, wait, resume instructions. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/gen_tcg_sys.h | 18 ++++++++++++++++++ target/hexagon/helper.h | 4 ++++ target/hexagon/op_helper.c | 20 ++++++++++++++++++++ 3 files changed, 42 insertions(+) diff --git a/target/hexagon/gen_tcg_sys.h b/target/hexagon/gen_tcg_sys.h index 7f223ff3884..0453e3bb2c4 100644 --- a/target/hexagon/gen_tcg_sys.h +++ b/target/hexagon/gen_tcg_sys.h @@ -62,4 +62,22 @@ tcg_gen_extrh_i64_i32(ctx->t_sreg_new_value[HEX_SREG_SGP1], tmp); \ } while (0) =20 +#define fGEN_TCG_Y2_wait(SHORTCODE) \ + do { \ + RsV =3D RsV; \ + gen_helper_wait(tcg_env, tcg_constant_tl(ctx->pkt->pc)); \ + } while (0) + +#define fGEN_TCG_Y2_resume(SHORTCODE) \ + gen_helper_resume(tcg_env, RsV) + +#define fGEN_TCG_Y2_start(SHORTCODE) \ + gen_helper_start(tcg_env, RsV) + +#define fGEN_TCG_Y2_stop(SHORTCODE) \ + do { \ + RsV =3D RsV; \ + gen_helper_stop(tcg_env); \ + } while (0) + #endif diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index 955287133e4..682f0c6c26e 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -123,4 +123,8 @@ DEF_HELPER_2(greg_read, i32, env, i32) DEF_HELPER_2(greg_read_pair, i64, env, i32) DEF_HELPER_3(sreg_write_masked, void, env, i32, i32) DEF_HELPER_3(setprio, void, env, i32, i32) +DEF_HELPER_2(start, void, env, i32) +DEF_HELPER_1(stop, void, env) +DEF_HELPER_2(wait, void, env, i32) +DEF_HELPER_2(resume, void, env, i32) #endif diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index bb47b090113..69b41ef1196 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1417,6 +1417,26 @@ uint32_t HELPER(iassignr)(CPUHexagonState *env, uint= 32_t src) g_assert_not_reached(); } =20 +void HELPER(start)(CPUHexagonState *env, uint32_t imask) +{ + g_assert_not_reached(); +} + +void HELPER(stop)(CPUHexagonState *env) +{ + g_assert_not_reached(); +} + +void HELPER(wait)(CPUHexagonState *env, target_ulong PC) +{ + g_assert_not_reached(); +} + +void HELPER(resume)(CPUHexagonState *env, uint32_t mask) +{ + g_assert_not_reached(); +} + uint32_t HELPER(getimask)(CPUHexagonState *env, uint32_t tid) { g_assert_not_reached(); --=20 2.34.1 From nobody Sat Apr 11 21:30:50 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=1773067759; cv=none; d=zohomail.com; s=zohoarc; b=YObRpTUHQ6gSpldP6TZxRt5DyJ0oNfsXLU3NjvhaZ3fOktwP5uI7sPIuC5tQm4MjO4PVyd571tcgz0SzxyY4XqM8PAoRrrhlvrCf0KYRV0Hkrst95+drRvqXSO09jhSKsw88AwhK5vk6mi9Cy3DQZSRk3jjvfvf/3BUdaTEyR8c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773067759; 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=ewhmSTRkwCwR961CB2gtgq7E8zNRdOdXdLFtvL7cDNs=; b=CLPboClwNS9XQH6BBV974EBWa7Z9t/XzGKD+NtaprYRPecipcYjltG+CVopeG0yy9PjyswxVNsS1lsMrlBl1F1uPzvlzzTWO0aPfb11ccCT0WNhQ0hNOVrPbamdDduO6kxd187TMLUUq3TYzoYIPQmlGHEwZ2Y4IneCO6Kw1fyI= 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 1773067759787297.74204750759975; Mon, 9 Mar 2026 07:49:19 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vzbuy-00013n-VR; Mon, 09 Mar 2026 10:49:13 -0400 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 1vzbuq-0000yH-K7 for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:49:05 -0400 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 1vzbun-0005IF-KM for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:49:04 -0400 Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 629EInZg890312 for ; Mon, 9 Mar 2026 14:48:59 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4csyv183v7-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 14:48:59 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-2be21146933so10002488eec.1 for ; Mon, 09 Mar 2026 07:48:59 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be4f82b78esm9322776eec.12.2026.03.09.07.48.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 07:48:57 -0700 (PDT) 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= ewhmSTRkwCwR961CB2gtgq7E8zNRdOdXdLFtvL7cDNs=; b=hBFWGs5jLfL/BZCx eUhdz2OjOgLaolrEp+L3fdJp0ga9BKgZoBNXuhnIZPgLt+NnOhYnd7wKb6iasH+Q Is2eIxzW+8Jc1GiKOwglBoYzVvKkgmSoVsuRG1wdhCiBA9MQZSXaRK1ejVuf/LQm 2L+eb0VYuhHByr/wqHJuHaT8mOCOLcZfuAKkXITHqA4a908n/2QOW2dCRVU2QSGz Pl+r7L3I7oBwB1jzZSFVyY4DjiTelCYlQyeHZBbjwaWXvoQfuywNC6urFG29Zhgb 6mJlNvLBcr7UfAp7/yt6dgT2BCLuRgy+OK92NNnGYl/VgHZNzYCJgdaOV7TP5WJl y7EPqQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773067738; x=1773672538; 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=ewhmSTRkwCwR961CB2gtgq7E8zNRdOdXdLFtvL7cDNs=; b=SsQSVT66i8Zefikrjgvx6Z4SDqIdM0Z7NDW2srGTOztgfoM7nATHfh9joCDTWrh0DO pdlRLhynHPVT2/sK0ID2KMHaGZb09PFtslwutKiw/jKMDgsWKWnbxHdQRJVXNZKwoKko Re510Dfwm5qvJpRUbBfIruvqk8mDqzVVGE/rSkYW/7YP8PhaxFGWkvmmwZy3xxkBsX+K 9xibMmqd3FC8+KFdD1/pYfZQZiN5INn1p2LejlAIc8MRyYg23tlK/aJQMtxQlIBLHNz1 SmIxNAh1sNJaScN97AxhEocnvaGy/PJT80NhOhDNsphCV8AUE6UMli6GjfUtF105ILQI baPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773067738; x=1773672538; 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=ewhmSTRkwCwR961CB2gtgq7E8zNRdOdXdLFtvL7cDNs=; b=Ob8Abx/LMaSvWbswO65RkIkJ6fOXo85xGMpUUumRrhCZjC0TBJHtwrOFgjiGq6OFSV KSnFl4Q2YhO2m1VC7En+cIe0H8MhOfPnhdOMdKoPOt3Ww8eKGSMPmQU6C8R5FlocnZ/A 8WvaExD59F+RiaFylSrtTexwb6EDDjfcjyAgb6VG1hi3WIHusg3rXmPwzJSY3D3tQ1iT /YvMZN2z807wywUAEvkHya6JsLCmGvZRoywWwDz+uITH6MfZN+AtZEHkWbVsTRU9OEKy QoHbNn7u6DXGcaMvAyPQ5N34Qx2Rkr0kCS4BGXV4XtV2kWlSWOropRuWIwZ2yGzk6Lym 2ygg== X-Gm-Message-State: AOJu0Yy/piZYRw4zlJueHOZ5aYEFT2FginzJPj7d6vAspItLWsus/668 ntS3wbsA8KQx8t4Q4cC7lokbW2jWfjZaK6hJwB474SqKWiBYxFJvUfq30OSjg9K5Xuy+UROyjj8 bbTM5tzCrdCc/HaW2Ep45Y3f1DF59S+8XC5KFbO4r37iD7gmwa/tx/A0iWwrL/EJnIA== X-Gm-Gg: ATEYQzyW2t9lHaro5eaI5pqkKowcWYZDuSTFnMmcu213xSgEXbkcRPRrVnxPjmvH7zC P2wzcoBECKmlhlKqDM9IZMwqR1aU27RSyGZXPd4Zab6XKzajekcut8nO3BsV3AEewqb+pGSypFx M0dn1VPZHIyUVQ5xsVBYlQVDpjIkIJvNMKqABRxIyf6aMOISsaWFJBRkkP7qf4wMm0u6kaKT29p OpQJMRLkFLO79Y4oK7wseXxty8PtbEgFBozRe0ZSDZ4BGa2OpZ0JY57aOA0bwTdBcOYAj2rPeqx DXxYXzRp1TdtadPLZI6z/NnshUHV42RwpQMND2ebsPQvLAEm9QK+EuJeTnf/gy6WTvANbK0L7lf 0PV9dH2NQD+5Tyi8QnbymfKdSgTGgkj966BugFTuePZEXbG7iQDTP9da/Qzm2yrXRujzZuA== X-Received: by 2002:a05:7300:3254:b0:2be:2ab9:b3ad with SMTP id 5a478bee46e88-2be4e0ad262mr4213542eec.39.1773067738205; Mon, 09 Mar 2026 07:48:58 -0700 (PDT) X-Received: by 2002:a05:7300:3254:b0:2be:2ab9:b3ad with SMTP id 5a478bee46e88-2be4e0ad262mr4213515eec.39.1773067737555; Mon, 09 Mar 2026 07:48:57 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 28/35] target/hexagon: Add TCG overrides for rte, nmi Date: Mon, 9 Mar 2026 07:48:15 -0700 Message-Id: <20260309144822.877695-29-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> References: <20260309144822.877695-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: 9U4-X1HByIRZ3A-kT8UEiAEKSyuRcPxo X-Proofpoint-ORIG-GUID: 9U4-X1HByIRZ3A-kT8UEiAEKSyuRcPxo X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDEzMyBTYWx0ZWRfXzNx9YpSEf1LP hA0vBT6QAZhr0jiJqcuDbXaXhclHlEfDwTnhKe7566nw85U5z8qnu6RSZS1Ox2RDGmEcigK1aNV oYfzj/moXhtcGmJBVcHJLorp0DJ31YcwAzxEfv5K9ZKDEtNDCtmcXwHjP6PPb6vwSdaYonM2B8D 0frS5E76pugjn9F8Cm99iC1ElwX3Bx6w2axBeOnxyRDehbDGIqWUKkQNqbRQWKfjBWEAenoeHST GIEZs9qY5q+NhJSNzt8b94cWvZ+5Z4O4/muQsR4LRZly3sTkAp6BLNp45Lg2jxR3LgtDpkQZqnk hmRq2sDu/8zYU9gWb3Elj9wK4PWzTtVjwHNs2SbqgmpHIVrKOCKCFrGXfd8hn7wluapNuIfyF60 6m+iOY4CYhqA6zFbpyv8thC1WtjP0iaxRKhTIAT71CMNpq5DIDW86nacZuCTOVJ7EBFs0SHMXwO bdKEE60bOtbljORvB8w== X-Authority-Analysis: v=2.4 cv=Cuays34D c=1 sm=1 tr=0 ts=69aedddb cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=zRxYJKy5J8nCns2dKEsA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_04,2026-03-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 clxscore=1015 spamscore=0 adultscore=0 priorityscore=1501 phishscore=0 suspectscore=0 lowpriorityscore=0 bulkscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090133 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: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773067760872154100 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/gen_tcg_sys.h | 19 +++++++++++++++++++ target/hexagon/helper.h | 1 + target/hexagon/op_helper.c | 4 ++++ 3 files changed, 24 insertions(+) diff --git a/target/hexagon/gen_tcg_sys.h b/target/hexagon/gen_tcg_sys.h index 0453e3bb2c4..282daf0c115 100644 --- a/target/hexagon/gen_tcg_sys.h +++ b/target/hexagon/gen_tcg_sys.h @@ -80,4 +80,23 @@ gen_helper_stop(tcg_env); \ } while (0) =20 +/* + * rte (return from exception) + * Clear the EX bit in SSR + * Jump to ELR + */ +#define fGEN_TCG_J2_rte(SHORTCODE) \ + do { \ + TCGv_i32 new_ssr =3D tcg_temp_new_i32(); \ + tcg_gen_deposit_tl(new_ssr, hex_t_sreg[HEX_SREG_SSR], \ + tcg_constant_tl(0), \ + reg_field_info[SSR_EX].offset, \ + reg_field_info[SSR_EX].width); \ + gen_log_sreg_write(ctx, HEX_SREG_SSR, new_ssr); \ + gen_jumpr(ctx, hex_t_sreg[HEX_SREG_ELR]); \ + } while (0) + +#define fGEN_TCG_Y4_nmi(SHORTCODE) \ + gen_helper_nmi(tcg_env, RsV) + #endif diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index 682f0c6c26e..9ca87acfe63 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -127,4 +127,5 @@ DEF_HELPER_2(start, void, env, i32) DEF_HELPER_1(stop, void, env) DEF_HELPER_2(wait, void, env, i32) DEF_HELPER_2(resume, void, env, i32) +DEF_HELPER_2(nmi, void, env, i32) #endif diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 69b41ef1196..cb60d3a2f9e 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1477,6 +1477,10 @@ void HELPER(setprio)(CPUHexagonState *env, uint32_t = thread, uint32_t prio) g_assert_not_reached(); } =20 +void HELPER(nmi)(CPUHexagonState *env, uint32_t thread_mask) +{ + g_assert_not_reached(); +} #endif =20 =20 --=20 2.34.1 From nobody Sat Apr 11 21:30:50 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=1773067790; cv=none; d=zohomail.com; s=zohoarc; b=UhCieRY/q+0L5w+Q+kt8QlFVhwFdsTzf/j/Ae1Yk9+EMOm9jzM+4a6HFQ4uU/Gqtvlebn5BwHUk5UTvhkWXzK/Skq2Vg7TLbMf7EkemD/VMuXN5cwY/TzhxgaKtJxUkUWy1OvyRYzBjIFtHfnzTolMqhK2KdshNmsFmzxPY7uRM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773067790; 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=ArhYHHcsZcPCVZg0VjfHvMn74eMQNgWxMzUjhWzmqZQ=; b=cJyA/oGo1Lw7J5ru00hsMWgkrjT9vjE0eQ6BwxFMX+yIH+YotGAsHCEC6bL5L1ugwa6f9J1VsT4PP9yexLZmRLMb8cWKI/bYl6VN6M4PZiJAZV5VpERKBgz+cRC0s0x2l8a7vUG2z43X1jKGNvQateclXUAM68Nt9qTMXfdPR/I= 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 1773067790531594.2431691649354; Mon, 9 Mar 2026 07:49:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vzbuz-00019R-LU; Mon, 09 Mar 2026 10:49:13 -0400 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 1vzbuq-0000yK-PM for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:49:05 -0400 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 1vzbun-0005IV-Kr for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:49:04 -0400 Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 629EIp9k890725 for ; Mon, 9 Mar 2026 14:49:00 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4csyv183va-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 14:49:00 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-2be232ef3d3so70733465eec.1 for ; Mon, 09 Mar 2026 07:48:59 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be4f82b78esm9322776eec.12.2026.03.09.07.48.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 07:48:58 -0700 (PDT) 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= ArhYHHcsZcPCVZg0VjfHvMn74eMQNgWxMzUjhWzmqZQ=; b=XSkkTlLEo/JWocrw +yvMp+fP1WS/u6NjvZbfA+pPr8Ur7DN0979N5KGMZQ3nscOSjvAqxPe4FA0KBweP 8DSCvFs4rrIUPb54yACdso/mntt+wpT78HsdWZEaaiQ5WKPbGYiUkTha5mtbJv6j TI9Rhmx5tTcHX+EoVnkwVU4graEbxhCvLVVKmYEBpUmf0rt5qQ1KeyzmiLGoWiD8 cnX3ht5oNJMjq0g30k6JrQsdllrXrPc2f1Pbw05S9et0WVgnl2dleESPXkMzPS6i 70MTzSYFAz1iVFz6mpEcVIcoF9Y6sI5bVm8w9lzZsc47L7qaTVLno8FTHgPX90cF lm/iuw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773067739; x=1773672539; 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=ArhYHHcsZcPCVZg0VjfHvMn74eMQNgWxMzUjhWzmqZQ=; b=Fo7W6V/DNHvIGGu97J+Nz9douwdu3JCE42suMGGQVBYb6vb+63SyKJuIuhbgtMh8DG fyGdbN40hoJPZUAjUSh1bJcaJ7EG3Q40fOP94PmRVLe2X9yLc4zBgETX3OtazocnhfSw Oy/b0CCoAr73VHPbUhGHl3Xl8KWuu4cf66w14ipxr2Eoa8rr00STNFQ/us5TAiCW5Zzp U/WL/M6lCPZbNkZT079BCkuWY1BQPT7yd/hV0U0QUTVZPMY0nICNnIgVhKRkDDP+4J6g kGhrE3B+W6p85bfMqtLjMxC/CXNIB6wXVdWRsKQsoaZrTpXvpSQ/NPP5/iayCyKlPu5c gzsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773067739; x=1773672539; 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=ArhYHHcsZcPCVZg0VjfHvMn74eMQNgWxMzUjhWzmqZQ=; b=iBqECkuH7jFtHkr56E+pWdcIVzswLwGEhZDlddAJ+O3IcAVL5DpDJgAQZYQpIBKjlX tuBwwD6iC2hFoH/TyUedEqJfayLt0jzfGe8Pc6ykn+KhEWbhCFkUP1DViZjXh7vIFUuy Rsl6uqErAnP83bEA80LAP+oP34twI+XM07zMfbm/hdeo5j51DUJ4qZx0kPQseK8dAqjo zsn3JTAuWCO0QGWw/+oHl2gtax4IDRxd255y3GKb5mbGuM/nqzwtacZoVSZn48YJ0y+X t4+Y2ts0VF4Hq+E/0lOrQJ0ypFCjkbZ+EjxoTjO+XqAOLQUpvBEOSQrcQTCYh88nz/8E MQ5w== X-Gm-Message-State: AOJu0YxPHpniPg6Tu7w6raHVHogRjCw4y4ic4sXcEy2kADNIgCCd1uyQ vOP6pEByrKJ7zlxZ+xtnNj1Px/yz7ReOZ2nUc/gDsSV3TP2jpEruN/e8wnYad6+y2DITUULnnKh pE1clACLR52ChWAObnEDr8/zqe0yUu6KEn8Bk8DbVns8V9qt+mdAjshBdEfd6laJMNQ== X-Gm-Gg: ATEYQzxiMDoqCtdz1fTlwxNp/2K5rchdGc4e4Cde0NFgCrjTCrHlzsS5UT/btVk9ap5 iyCTmQUesPJ+nucIAqn3ARcR0fMdEEG9gfqCMU9BfK8OahyLrKG7Po9YA2pEM8opfTjtp1EqMaB AIg9MtydBc834ydokanxWT0rvSiEXWgEsoPG5SGMOSvSF4ksMUyuIdxNEax6coV3+iFoJ71AlAG hJJKRy2+r2taeTCK9zVJYdOjdlmTvZnOuFZw47JvI82r4juigIqgJAVnF3h8FGBD7c16eviVfvm eMTGPeK3FXodA88q3s0pskYi5SXmb/VRG/OwBRxNMqQmSODupA385QywVlCgOin5hqgNHP6gmUh i0QUutC42sdmpg1tCCMZGIUFyqyEM/gOSN38A/23eZl1CDF3PZgnpoQtHxQX2OasqEDDGtw== X-Received: by 2002:a05:7301:1008:b0:2ba:7b0b:e205 with SMTP id 5a478bee46e88-2be4e03b3d5mr4350200eec.20.1773067739300; Mon, 09 Mar 2026 07:48:59 -0700 (PDT) X-Received: by 2002:a05:7301:1008:b0:2ba:7b0b:e205 with SMTP id 5a478bee46e88-2be4e03b3d5mr4350173eec.20.1773067738649; Mon, 09 Mar 2026 07:48:58 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain , Sid Manning Subject: [PATCH v4 29/35] target/hexagon: Add sreg_{read,write} helpers Date: Mon, 9 Mar 2026 07:48:16 -0700 Message-Id: <20260309144822.877695-30-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> References: <20260309144822.877695-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: JbNVWE9tsHp1Qiqs3psNWuxmzxE8BAQ2 X-Proofpoint-ORIG-GUID: JbNVWE9tsHp1Qiqs3psNWuxmzxE8BAQ2 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDEzMyBTYWx0ZWRfX5Bu6B/Dy6LH9 MIto8zPFsKiAE58K+kIfZh/lhFOrK2RNve0ykekJW534cSE4EK5SgmfTj/G9YyZRKh4CK+mQxHJ Dmywctzj1g8HWKSgNe3Pka0iBz3Dx6D1uBAZo+JX29lXDK4yPNNY+Z0v5TMvS25DLR2sCtmr7Ys qW79n473gzAKUoCV2I0ijCF/EwoKw55jpC11+uVcBlK7BkRxjzqVReeurcsBkxOhIWqU96/jNGI qJIKZCu09YV25XmR/V7y50DxbcuMh2a8mhwqHE6JwnJY4Df/oB9QjOdDBHZpofI1kH6IKyRJDHl qDO7PAlizIk8LCSqMsHjBz60j9AVyYFqillNVKgPH5CUUvtUOk4y1AykeCM4JO4mKKUJNmz/M2a lerw8IlP4KFPnoqZeZpayumZO/qvQNijQf+31wM78v/fTXggdUTksny6ipaL5HaLgLJkHOva4BW jeF1emG45vVXsaSAVbw== X-Authority-Analysis: v=2.4 cv=Cuays34D c=1 sm=1 tr=0 ts=69aedddc cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=awtrkfjtPIBuNREMqawA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_04,2026-03-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 clxscore=1015 spamscore=0 adultscore=0 priorityscore=1501 phishscore=0 suspectscore=0 lowpriorityscore=0 bulkscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090133 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: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773067792002158500 From: Brian Cain Co-authored-by: Sid Manning Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.c | 1 - target/hexagon/cpu_helper.c | 60 +++++++++++++++++++++++++++++++++++++ target/hexagon/op_helper.c | 30 +++++++++++++++++-- 3 files changed, 87 insertions(+), 4 deletions(-) create mode 100644 target/hexagon/cpu_helper.c diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 38d605b06ba..dc3bd82bc05 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -339,7 +339,6 @@ static void hexagon_cpu_realize(DeviceState *dev, Error= **errp) =20 qemu_init_vcpu(cs); cpu_reset(cs); - mcc->parent_realize(dev, errp); } =20 diff --git a/target/hexagon/cpu_helper.c b/target/hexagon/cpu_helper.c new file mode 100644 index 00000000000..b8e0625e3f8 --- /dev/null +++ b/target/hexagon/cpu_helper.c @@ -0,0 +1,60 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "cpu.h" +#include "cpu_helper.h" +#include "system/cpus.h" +#include "hw/core/boards.h" +#include "hw/hexagon/hexagon.h" +#include "exec/cpu-interrupt.h" +#include "exec/target_page.h" +#include "accel/tcg/cpu-ldst.h" +#include "exec/cputlb.h" +#include "qemu/log.h" +#include "tcg/tcg-op.h" +#include "internal.h" +#include "macros.h" +#include "sys_macros.h" +#include "arch.h" + + +uint32_t hexagon_get_pmu_counter(CPUHexagonState *cur_env, int index) +{ + g_assert_not_reached(); +} + +uint64_t hexagon_get_sys_pcycle_count(CPUHexagonState *env) +{ + g_assert_not_reached(); +} + +uint32_t hexagon_get_sys_pcycle_count_high(CPUHexagonState *env) +{ + g_assert_not_reached(); +} + +uint32_t hexagon_get_sys_pcycle_count_low(CPUHexagonState *env) +{ + g_assert_not_reached(); +} + +void hexagon_set_sys_pcycle_count_high(CPUHexagonState *env, + uint32_t cycles_hi) +{ + g_assert_not_reached(); +} + +void hexagon_set_sys_pcycle_count_low(CPUHexagonState *env, + uint32_t cycles_lo) +{ + g_assert_not_reached(); +} + +void hexagon_set_sys_pcycle_count(CPUHexagonState *env, uint64_t cycles) +{ + g_assert_not_reached(); +} diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index cb60d3a2f9e..2e6924f0d2c 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1449,17 +1449,41 @@ void HELPER(setimask)(CPUHexagonState *env, uint32_= t tid, uint32_t imask) =20 void HELPER(sreg_write_masked)(CPUHexagonState *env, uint32_t reg, uint32_= t val) { - g_assert_not_reached(); + BQL_LOCK_GUARD(); + if (reg < HEX_SREG_GLB_START) { + env->t_sreg[reg] =3D val; + } else { + HexagonCPU *cpu =3D env_archcpu(env); + if (cpu->globalregs) { + hexagon_globalreg_write_masked(cpu->globalregs, reg, val); + } + } +} + +static inline QEMU_ALWAYS_INLINE uint32_t sreg_read(CPUHexagonState *env, + uint32_t reg) +{ + g_assert(bql_locked()); + if (reg < HEX_SREG_GLB_START) { + return env->t_sreg[reg]; + } + HexagonCPU *cpu =3D env_archcpu(env); + return cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, reg, env->threadId) : 0; } =20 uint32_t HELPER(sreg_read)(CPUHexagonState *env, uint32_t reg) { - g_assert_not_reached(); + BQL_LOCK_GUARD(); + return sreg_read(env, reg); } =20 uint64_t HELPER(sreg_read_pair)(CPUHexagonState *env, uint32_t reg) { - g_assert_not_reached(); + BQL_LOCK_GUARD(); + + return deposit64((uint64_t) sreg_read(env, reg), 32, 32, + sreg_read(env, reg + 1)); } =20 uint32_t HELPER(greg_read)(CPUHexagonState *env, uint32_t reg) --=20 2.34.1 From nobody Sat Apr 11 21:30:50 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=1773068219; cv=none; d=zohomail.com; s=zohoarc; b=Of6LVLnViVB1RMcXLMiyOZTUOybvpdAcm1szyf9oj7szl2rQ51BCtZY2wZXDXT30OJC6qWrlRSZdxyz4hVBoGmXC7aKlDRHc7Q6euci037msnJ5Whpn2objfYEY7yNvoSfX75BzUyxL07Jk9CG77u/iUVnbuE0+HmQSFR04aClw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773068219; 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=VS6lI+dtQyxlU9+70GYVQuAT8QSCeXND1txo5RBGI8I=; b=HSR26YRnn+dMKETtQ2rbkABo2IARiOTSJFMaQXXmyWcUByDJV/ArMA9zPBVJBS52vVDExw83Cb12a7HFGYZu3Jdvh/Ua0DHpEDnal632RYbZ7+aHWEwEzXhV+wzvnnfCTWXorYULrJhspjmkzkE9sZDfrg1QQN23JEt1r7f1WPQ= 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 1773068219665397.0844814138593; Mon, 9 Mar 2026 07:56:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vzbv5-0001VM-2L; Mon, 09 Mar 2026 10:49:19 -0400 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 1vzbv0-0001DV-8b for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:49:14 -0400 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 1vzbuy-0005Ie-KS for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:49:13 -0400 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 629Dr6CG4027528 for ; Mon, 9 Mar 2026 14:49:01 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 4csyfy06ka-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 14:49:01 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2be47f2899aso47131046eec.0 for ; Mon, 09 Mar 2026 07:49:01 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be4f82b78esm9322776eec.12.2026.03.09.07.48.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 07:48:59 -0700 (PDT) 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= VS6lI+dtQyxlU9+70GYVQuAT8QSCeXND1txo5RBGI8I=; b=BBx1uZYbgcZy8dgq keu5kr3GhNjZ+D1ISiEtTujqWDyPt5srVM+T2yJhs7WwXqmPMasEKV6L2+Z4p97O 3H3C3Jx95jY0R6Z7Ez7GiWUTHvW5GZ2DbE3HpLmakjSIS5bFDzhdV0MN5Ap0Zbgt MQHikiCu8/m8TVYDIozTBc3Au/TR+2W0yX1Uxxtsqcwd5zDoBgt7XkGMG7pP0bDQ KWHkRDOCr5KrN3iGIhglIUu/RpgCeHcbJGEoNSRTPmAzqHjWIYRrX7m8IoI1qgJl 6tjXDtPQUBABOOfv5DlTT+RGcDOnFTcIGL7t/IJhLTADo3QMWUzdw8/i2sgIFIPK YTzh0Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773067740; x=1773672540; 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=VS6lI+dtQyxlU9+70GYVQuAT8QSCeXND1txo5RBGI8I=; b=HtoZc5se34krMxd+XX7RXnZ0e5g0crNYj4ZtTQXOZiDPd23MpUI07Fw6hr3eCqXZfr GnsFuhygLEUaSj+mYyZgi8niYWgrtOdxAS4bmfgMieW39ttOPyLxgUHrGxEmwVGVTK8Q EWyGGypcQghJt11pJPf3q3PWYIM0KPVAYTDN6yGV1t4eaOGdVGNcD/V+nLupT6FmuemV r2++HfXlqnScCmbbLmkjHzUy/DuOOBNobbJrwe08hS2OgtNOLu3xRboUkZJpmqWvmHkU OgcBLJy4IaUzqvhgKF5beoTWswdhfbjZEy98E8uiumFzSG7hAuZ7qlar0/QWmdFtKOpm 7UMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773067740; x=1773672540; 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=VS6lI+dtQyxlU9+70GYVQuAT8QSCeXND1txo5RBGI8I=; b=ElQhAhx0CZKQVMe0fzqqJNXZ5fCO7uAniqVoH/yeLIqQgmZjkoNhPE8o0b1bbGPV7L Nps64s266p84xMvRfIfPQO+9w+LTAgRfELxwEcILZ5XJv1AEq4+UK7Gd0nkkP4e2B9L3 ENhE/xfmmFTXef06VFjFznWppH4WHq4YW8O/H5tOwORe/7oYUsIyaWCMwyM2pzPjqOie hxiE9UxjWyhq52yePT3YZaBdf2BdLtKaVsr6HAByZNoy7UKfJRaJrmTcRR6nKyfa/Yp6 Lfxsxjno445B9FD1ERqUV6ECbrQNYfaJqwG7TfCMDpXCH+2nGJEgDOqiI9UGkYLD2lNL Y2gQ== X-Gm-Message-State: AOJu0YxDtNzThBYTunTf9APbioWVg5R32c/2c19dNuK2zPyqr8ma1lpJ 2gmGeKly6D5BENRKA1bDpIC0FWWzXToS8ymcivC+bO3w9fqwh75Aanf9Eo1VSVB+G707GZI6Rbo O2XwD1PqoxOn2F+M8UksNSdaW1dEHLgqpUEYRfKwKRU7rexKU0MTXl8jFptEOL1SVJg== X-Gm-Gg: ATEYQzzXd4mI6SQNZSjmsLcn4alP8m7BdsEYcdJzwV2paGu49vOIwcrDoujlw8M2Qmv EKN1xmbU3HWhPp/PT3qdAxXjZXwM4d+qXOPdKwwAGGWOE7iLvGhkN/gN4wYFZMAu5OE+R3XaSWs R4AiB3cj+QB1cV1cNutOPZmzNd4+s9RqghmOdAfCkEEUtev0gtO+YWcmTd5miQ9/P4rtMndROff aJnexlGO5PQWF8W8qlPkgwERn2+FZIZTvGpJKGIsegxNXASSLB/e/q93DFkHIGkTs/Xkm+DzbYs hRD4t6Lt9rxdwRdGRtRHvaQa9RUfis0jlLdgwrteartpdorWmtN0a8JIHVEJm2xBE1/j2x6eTAK 5GWHNn3imVLTQmpY/v6gz+0qOOUlMsX0h9/7AE/Xcno/BH8p1B7XoOrwzgbKMMQ3YBzXaJA== X-Received: by 2002:a05:7300:cd8a:b0:2be:142f:d499 with SMTP id 5a478bee46e88-2be4dfc61b1mr4622848eec.16.1773067740305; Mon, 09 Mar 2026 07:49:00 -0700 (PDT) X-Received: by 2002:a05:7300:cd8a:b0:2be:142f:d499 with SMTP id 5a478bee46e88-2be4dfc61b1mr4622815eec.16.1773067739541; Mon, 09 Mar 2026 07:48:59 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 30/35] target/hexagon: Add locks, id, next_PC to state Date: Mon, 9 Mar 2026 07:48:17 -0700 Message-Id: <20260309144822.877695-31-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> References: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDEzMyBTYWx0ZWRfX4PORUb+t+YPN 0tReaSnnhwzDGXyGr64oBdBer1kUZbj2OYJX96DJByY0QBXGIlnvPZ8+6gMp/BJnLh8vAeV9F85 TKn1eLX+YNO3k3RwfdJEjNrOdbklkwPwUA2vRsTIj2xORrK45alp4xQ36SU9VQ6uJCtNtMe3DM0 pK+K4dWBs8jbntc3nRCJv7Rj7G8+Myh8stF4zGVfipiEAcfCbq48q8qRScvx43NkJdE2sgxhsK+ jGm4ClZZcBibWrxRKBV/71TMHC7JttkIzyneaeQrX1aVyvPj7rc8ycq0TFHj/k/ZFsK8pcvAdyT eX5czqv/7ArjI6uzHSX7HIvPzLakJyWcTqhbP3uzqXqJKuVeLHU42fSbJei7kBaQete5EB0hCwm fZqB1Pcim6lTmCRbBhYrS1Bi5fe18oN5dhue5mRxyZ102Sc/YPzDGDrH9u6N/RVTAtdl2oIzhhv mteOzxyKKtoUVvNRSvQ== X-Authority-Analysis: v=2.4 cv=OcmVzxTY c=1 sm=1 tr=0 ts=69aedddd cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=oBxUhWXf0H1URd_o1GcA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: y8_qTXz6d14fos6wgzG1i7CBru5KXtJW X-Proofpoint-ORIG-GUID: y8_qTXz6d14fos6wgzG1i7CBru5KXtJW X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_04,2026-03-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 phishscore=0 clxscore=1015 adultscore=0 bulkscore=0 suspectscore=0 priorityscore=1501 lowpriorityscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090133 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: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773068220354158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 33 ++++++++++++++++++++++++++++++++- target/hexagon/cpu.c | 5 +++++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 3562965c88a..b40a1c96eae 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -48,8 +48,34 @@ #define VSTORES_MAX 2 =20 #define CPU_RESOLVING_TYPE TYPE_HEXAGON_CPU +#ifndef CONFIG_USER_ONLY +#define CPU_INTERRUPT_SWI CPU_INTERRUPT_TGT_INT_0 +#define CPU_INTERRUPT_K0_UNLOCK CPU_INTERRUPT_TGT_INT_1 +#define CPU_INTERRUPT_TLB_UNLOCK CPU_INTERRUPT_TGT_INT_2 + +#define HEX_CPU_MODE_USER 1 +#define HEX_CPU_MODE_GUEST 2 +#define HEX_CPU_MODE_MONITOR 3 + +#define HEX_EXE_MODE_OFF 1 +#define HEX_EXE_MODE_RUN 2 +#define HEX_EXE_MODE_WAIT 3 +#define HEX_EXE_MODE_DEBUG 4 +#endif + +#define MMU_USER_IDX 0 +#ifndef CONFIG_USER_ONLY +#define MMU_GUEST_IDX 1 +#define MMU_KERNEL_IDX 2 + +typedef enum { + HEX_LOCK_UNLOCKED =3D 0, + HEX_LOCK_WAITING =3D 1, + HEX_LOCK_OWNER =3D 2, + HEX_LOCK_QUEUED =3D 3 +} hex_lock_state_t; +#endif =20 -#define MMU_USER_IDX 0 =20 #define HEXAGON_CPU_IRQ_0 0 #define HEXAGON_CPU_IRQ_1 1 @@ -109,7 +135,12 @@ typedef struct CPUArchState { =20 /* This alias of CPUState.cpu_index is used by imported sources: */ uint32_t threadId; + hex_lock_state_t tlb_lock_state; + hex_lock_state_t k0_lock_state; + uint32_t tlb_lock_count; + uint32_t k0_lock_count; #endif + uint32_t next_PC; target_ulong new_value_usr; =20 MemLog mem_log_stores[STORES_MAX]; diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index dc3bd82bc05..2a061d70540 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -310,6 +310,11 @@ static void hexagon_cpu_reset_hold(Object *obj, ResetT= ype type) memset(env->t_sreg, 0, sizeof(uint32_t) * NUM_SREGS); memset(env->greg, 0, sizeof(uint32_t) * NUM_GREGS); env->wait_next_pc =3D 0; + env->tlb_lock_state =3D HEX_LOCK_UNLOCKED; + env->k0_lock_state =3D HEX_LOCK_UNLOCKED; + env->tlb_lock_count =3D 0; + env->k0_lock_count =3D 0; + env->next_PC =3D 0; #endif env->cause_code =3D HEX_EVENT_NONE; } --=20 2.34.1 From nobody Sat Apr 11 21:30:50 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=1773068210; cv=none; d=zohomail.com; s=zohoarc; b=gNNe/bT6TI5i6Jz/rJFioTHLJRe6PCJ087LNlxMIrxcHYrFrXiduxFR0cb3QJyjj0jSR5WAEfgYjjbZ3ugpy3CqDKoCyO5S2hfp6ImhAV4GlNKU2DE6D3N/X2f0EWBIEtb4O0Kp1GRKCjFcJA3j3i0JwAlEkbR69bICu6wE8x90= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773068210; 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=e7dB0VJHYF9dygD6xMW1qLGZRHJ91/vei7amNo9XKao=; b=lt0n7QMD1kaGBxkNdbk5JwwjK2DZPzj3PrQM6sYK3Jg8dETitD7MU00CvjWq67/4TlKQEi5oB21X1Blo8XqfEKz6JasDaRtue32FKpLw3hv6iNy0X8hgX9DTBP2ekvk1lrUvsfgzjunS55aX7GEcMVQ4RK3vPvsKfAXsc+gDQKs= 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 1773068210199800.6806319254105; Mon, 9 Mar 2026 07:56:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vzbv7-0001e7-Cp; Mon, 09 Mar 2026 10:49:21 -0400 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 1vzbv2-0001Po-Ph for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:49:16 -0400 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 1vzbv0-0005JD-8d for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:49:16 -0400 Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 629EXqxP830393 for ; Mon, 9 Mar 2026 14:49:03 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ct03282d5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 14:49:02 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-2be21146933so10002590eec.1 for ; Mon, 09 Mar 2026 07:49:02 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be4f82b78esm9322776eec.12.2026.03.09.07.48.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 07:49:00 -0700 (PDT) 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= e7dB0VJHYF9dygD6xMW1qLGZRHJ91/vei7amNo9XKao=; b=QEnZO/ONVH0UpNd6 g5n2U4iixYoxdekwiYOxUTg0WTkl76h1Xj9NAnz2g3It0PHi78/sxlIoCLkcT5+g NwT4HjdPImYmU8/pmr/v/E6H1rTAEFqL+wjZEUqK/f5cvVpBRpPOSYAFb33ELV0l R043fBx9aDGqXaeUjjzB0by1J2HR12ZJCiBE6XJFuTDS5Ll5C449z/trtfFpUn0R oOA+NrDkpV9sUvaHwQmoMdGPgnXzxVjf3yM2WMfhLoptu291R1SsyGMWO+I1QtEu lzpWMAibARHTPMCSmBu3sJ9i6sD6WNkbekTsVkExeQ3MJT9t8aSWa6DEqpTHCIK3 eWNY+g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773067742; x=1773672542; 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=e7dB0VJHYF9dygD6xMW1qLGZRHJ91/vei7amNo9XKao=; b=AGdBu4QRoKpYctDEEDvfz66gMVkLLauc0UBUrNEbr7s4Sf8G2TdRK0mzAFUZTCwXMG Td+K8m1xf+RSlTEoPXUh47ALBUqd+fFiYFnoMb/lH98CEyEEhxwXrGi/xmNYRI18yNcq 2UPx2xWAK22Aw264tVW6Cbg1kXZJsnyaVG3hisGODHgLMzj3bYhhQ2xES7tcaTBljxEc oREveknzCGN36qJN4uTq4Gr7jQEaWeFlvc2Qb1uddb1MhKS0z/LNY2ePAeYmAWlbdkGM 8fplv6k4Otz4vky7GlLKqn3hi48792duCtkCkKyT/jy2P3HiOqNlXs0AdBHS7th0rZRu Oeuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773067742; x=1773672542; 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=e7dB0VJHYF9dygD6xMW1qLGZRHJ91/vei7amNo9XKao=; b=Sf91ehws9OTIr+KyRSbp8FMVANYbPrLPSsXWDcC2RbzRvXgjMi73++VU8gVIaFVH+3 kp+rJhcM/PMQdUgeyRBO38a1IGTUvMCtCcyDAGjCoLkLQczhcjnMli6YnUxxqbqxe6bo 8FqetH9y9B377ZYJ180TY7MvFhKBrL0RkGWnGjDITg+0+fdS/R5LXuPQY/3bVq4nCnlz GBnODPwRY3bajLLuDtfR+0lw7wDrP3c0GeTpEReIAP1aoqV0USH48szIW198xN+5YnlY WEK9EM2lh8W7OSoO0G/zzB+ItWISN2yNwho752qR079yuRc1fRH3bAw1rSsZQM6m8hzs wrRQ== X-Gm-Message-State: AOJu0YzVDuyHELQYltCX/z5oqrEvGv2jCtBF8Z9/r35QN01IZl63dxhz 9K74dPZIGuySd6lCNEcCXxUGRUIKO5uBX1IGQpQvLcQt2Cyv8g+nOMHdkOIJZjO2ZMT6OryhgSX PXxIx553CT+hrm2T3acCVrsKsVkprLLX7eIL1NGWTFGmuKRc8zNtrEyDJmaQ2nV4xIw== X-Gm-Gg: ATEYQzxWC7b1ePHofmjysXp4Fmu1E52TNobYAXkBhVvUd/olnBoJdWAFgtwtwY9v4yj fVRNy7WkncTHGXs6I6x8pfV1jl2UBdoGwWB4T5xs3pOupvjWhWobUgN9rJPY4jb8KZGqkW4ipyG O/NLCjcqSArcSbdjC6CB30Bg/BPWNZXAZRygcGAIKccl1cOmAa2z/Pv3JC224ao6amH3KxT4mhh BW9UVJ0umiiiEKgK0rKLqnOdX3zknN/sSQg60qy14KY78BdylPVKDX+Zq1YK8vgeeTC2gL7aqI2 rUDugkNgB/6TpsgiohtwffR2WpDuRU8XlfboyGUsU8hKwUHvZwnnsh2JJ3zWNO8bBJSZxIooeJi fOj6EE32DqhEC2lHlSIIC/cE96SsJlHkr/uGK2QIK5eqel4sTcfZIsAKukf8IYy/VIZZ3xA== X-Received: by 2002:a05:7300:a985:b0:2be:10a6:647e with SMTP id 5a478bee46e88-2be4e055786mr4196755eec.19.1773067741536; Mon, 09 Mar 2026 07:49:01 -0700 (PDT) X-Received: by 2002:a05:7300:a985:b0:2be:10a6:647e with SMTP id 5a478bee46e88-2be4e055786mr4196723eec.19.1773067740750; Mon, 09 Mar 2026 07:49:00 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng Subject: [PATCH v4 31/35] hw/hexagon: Introduce hexagon TLB device Date: Mon, 9 Mar 2026 07:48:18 -0700 Message-Id: <20260309144822.877695-32-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> References: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDEzMyBTYWx0ZWRfXzHvO/QpKzofF Bo6P6ARW0wUMj3TxvLXg/0wUFaz/xPWnn18VepmEsboKuAZmsjvndw40o6Qgs4K/TQeMjYBTuRt tMnXhq1cZMnG/+JDHP9RIb60nxsbqC07u+ms9PoRuLHnSiFjoZCrqe2CkCJ1dA0TOYifAh9dtU0 KhAYk9YXSpAsik7fHo/4NfhjwHHaZuxqpeLrJr4ZA2nGQR3rTpCMSiMS85BGLiuQUHJBuazfanI sdNucaDWlMeKtbG2/5eM+5MXDgvwn55rwRgPAZz3ijAjfeY+V/VK+Epo5V7jMvTX1dO3vpWJj+I FiGFnjQB9ZjDlnPGnuJQC4LAWJXchreAby13pp8aTzRojhmQ2uHvxMo1hFw16s1lViLaGQ+qTM+ QZEdeUqxdI+Uj01p2AulDVlzkz1jpodEZzoKOdenjcdDjY7NTEKaAwDtkYb9bU5NyIC7NKaeHvc 6VA4aV7OehPDpSuwmoA== X-Proofpoint-ORIG-GUID: FHEDVsjjXAsvWJD_Er_e83hI_7xs1Nea X-Proofpoint-GUID: FHEDVsjjXAsvWJD_Er_e83hI_7xs1Nea X-Authority-Analysis: v=2.4 cv=WtEm8Nfv c=1 sm=1 tr=0 ts=69aeddde cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=EUspDBNiAAAA:8 a=sP_loDDXlKxngBex9BIA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_04,2026-03-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=0 spamscore=0 bulkscore=0 priorityscore=1501 lowpriorityscore=0 malwarescore=0 phishscore=0 adultscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090133 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: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773068212253158500 Add the hexagon TLB QOM device model. Signed-off-by: Brian Cain Reviewed-by: Taylor Simpson --- include/hw/hexagon/hexagon_tlb.h | 45 +++ target/hexagon/cpu.h | 4 + hw/hexagon/hexagon_tlb.c | 463 +++++++++++++++++++++++++++++++ target/hexagon/cpu.c | 5 + 4 files changed, 517 insertions(+) create mode 100644 include/hw/hexagon/hexagon_tlb.h create mode 100644 hw/hexagon/hexagon_tlb.c diff --git a/include/hw/hexagon/hexagon_tlb.h b/include/hw/hexagon/hexagon_= tlb.h new file mode 100644 index 00000000000..bcb387aa24d --- /dev/null +++ b/include/hw/hexagon/hexagon_tlb.h @@ -0,0 +1,45 @@ +/* + * Hexagon TLB QOM Device + * + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HW_HEXAGON_TLB_H +#define HW_HEXAGON_TLB_H + +#include "hw/core/sysbus.h" +#include "qom/object.h" +#include "exec/hwaddr.h" +#include "exec/mmu-access-type.h" +#define TYPE_HEXAGON_TLB "hexagon-tlb" +OBJECT_DECLARE_SIMPLE_TYPE(HexagonTLBState, HEXAGON_TLB) + +struct HexagonTLBState { + SysBusDevice parent_obj; + + uint32_t num_entries; + uint64_t *entries; +}; + +uint64_t hexagon_tlb_read(HexagonTLBState *tlb, uint32_t index); +void hexagon_tlb_write(HexagonTLBState *tlb, uint32_t index, uint64_t valu= e); + +bool hexagon_tlb_find_match(HexagonTLBState *tlb, uint32_t asid, + uint32_t VA, MMUAccessType access_type, + hwaddr *PA, int *prot, uint64_t *size, + int32_t *excp, int *cause_code, int mmu_idx); + +uint32_t hexagon_tlb_lookup(HexagonTLBState *tlb, uint32_t asid, + uint32_t VA, int *cause_code); + +int hexagon_tlb_check_overlap(HexagonTLBState *tlb, uint64_t entry, + uint64_t index); + +void hexagon_tlb_dump(HexagonTLBState *tlb); + +bool hexagon_tlb_dump_entry(FILE *f, uint64_t entry); + +uint32_t hexagon_tlb_get_num_entries(HexagonTLBState *tlb); + +#endif /* HW_HEXAGON_TLB_H */ diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index b40a1c96eae..0c00feb0469 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -46,6 +46,7 @@ #define REG_WRITES_MAX 32 #define PRED_WRITES_MAX 5 /* 4 insns + endloop */ #define VSTORES_MAX 2 +#define MAX_TLB_ENTRIES 1024 =20 #define CPU_RESOLVING_TYPE TYPE_HEXAGON_CPU #ifndef CONFIG_USER_ONLY @@ -186,6 +187,9 @@ struct ArchCPU { bool lldb_compat; target_ulong lldb_stack_adjust; bool short_circuit; +#ifndef CONFIG_USER_ONLY + struct HexagonTLBState *tlb; +#endif }; =20 #include "cpu_bits.h" diff --git a/hw/hexagon/hexagon_tlb.c b/hw/hexagon/hexagon_tlb.c new file mode 100644 index 00000000000..90f319f56d3 --- /dev/null +++ b/hw/hexagon/hexagon_tlb.c @@ -0,0 +1,463 @@ +/* + * Hexagon TLB QOM Device + * + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "qemu/log.h" +#include "hw/hexagon/hexagon_tlb.h" +#include "hw/core/qdev-properties.h" +#include "hw/core/resettable.h" +#include "migration/vmstate.h" +#include "qapi/error.h" +#include "target/hexagon/cpu.h" +#include "target/hexagon/cpu_bits.h" + +/* PTE (TLB entry) field extraction */ +#define GET_PTE_PPD(entry) extract64((entry), 0, 24) +#define GET_PTE_C(entry) extract64((entry), 24, 4) +#define GET_PTE_U(entry) extract64((entry), 28, 1) +#define GET_PTE_R(entry) extract64((entry), 29, 1) +#define GET_PTE_W(entry) extract64((entry), 30, 1) +#define GET_PTE_X(entry) extract64((entry), 31, 1) +#define GET_PTE_VPN(entry) extract64((entry), 32, 20) +#define GET_PTE_ASID(entry) extract64((entry), 52, 7) +#define GET_PTE_ATR0(entry) extract64((entry), 59, 1) +#define GET_PTE_ATR1(entry) extract64((entry), 60, 1) +#define GET_PTE_PA35(entry) extract64((entry), 61, 1) +#define GET_PTE_G(entry) extract64((entry), 62, 1) +#define GET_PTE_V(entry) extract64((entry), 63, 1) + +/* PPD (physical page descriptor) */ +static inline uint64_t GET_PPD(uint64_t entry) +{ + return GET_PTE_PPD(entry) | (GET_PTE_PA35(entry) << 24); +} + +#define NO_ASID (1 << 8) + +typedef enum { + PGSIZE_4K, + PGSIZE_16K, + PGSIZE_64K, + PGSIZE_256K, + PGSIZE_1M, + PGSIZE_4M, + PGSIZE_16M, + PGSIZE_64M, + PGSIZE_256M, + PGSIZE_1G, + NUM_PGSIZE_TYPES +} tlb_pgsize_t; + +static const char *pgsize_str[NUM_PGSIZE_TYPES] =3D { + "4K", + "16K", + "64K", + "256K", + "1M", + "4M", + "16M", + "64M", + "256M", + "1G", +}; + +#define INVALID_MASK 0xffffffffLL + +static const uint64_t encmask_2_mask[] =3D { + 0x0fffLL, /* 4k, 0000 */ + 0x3fffLL, /* 16k, 0001 */ + 0xffffLL, /* 64k, 0010 */ + 0x3ffffLL, /* 256k, 0011 */ + 0xfffffLL, /* 1m, 0100 */ + 0x3fffffLL, /* 4m, 0101 */ + 0xffffffLL, /* 16m, 0110 */ + 0x3ffffffLL, /* 64m, 0111 */ + 0xfffffffLL, /* 256m, 1000 */ + 0x3fffffffLL, /* 1g, 1001 */ + INVALID_MASK, /* RSVD, 0111 */ +}; + +static inline tlb_pgsize_t hex_tlb_pgsize_type(uint64_t entry) +{ + if (entry =3D=3D 0) { + qemu_log_mask(CPU_LOG_MMU, "%s: Supplied TLB entry was 0!\n", + __func__); + return 0; + } + tlb_pgsize_t size =3D ctz64(entry); + g_assert(size < NUM_PGSIZE_TYPES); + return size; +} + +static inline uint64_t hex_tlb_page_size_bytes(uint64_t entry) +{ + return 1ull << (TARGET_PAGE_BITS + 2 * hex_tlb_pgsize_type(entry)); +} + +static inline uint64_t hex_tlb_phys_page_num(uint64_t entry) +{ + uint32_t ppd =3D GET_PPD(entry); + return ppd >> 1; +} + +static inline uint64_t hex_tlb_phys_addr(uint64_t entry) +{ + uint64_t pagemask =3D encmask_2_mask[hex_tlb_pgsize_type(entry)]; + uint64_t pagenum =3D hex_tlb_phys_page_num(entry); + uint64_t PA =3D (pagenum << TARGET_PAGE_BITS) & (~pagemask); + return PA; +} + +static inline uint64_t hex_tlb_virt_addr(uint64_t entry) +{ + return (uint64_t)GET_PTE_VPN(entry) << TARGET_PAGE_BITS; +} + +bool hexagon_tlb_dump_entry(FILE *f, uint64_t entry) +{ + if (GET_PTE_V(entry)) { + fprintf(f, "0x%016" PRIx64 ": ", entry); + uint64_t PA =3D hex_tlb_phys_addr(entry); + uint64_t VA =3D hex_tlb_virt_addr(entry); + fprintf(f, "V:%" PRId64 " G:%" PRId64 + " A1:%" PRId64 " A0:%" PRId64, + GET_PTE_V(entry), + GET_PTE_G(entry), + GET_PTE_ATR1(entry), + GET_PTE_ATR0(entry)); + fprintf(f, " ASID:0x%02" PRIx64 " VA:0x%08" PRIx64, + GET_PTE_ASID(entry), VA); + fprintf(f, + " X:%" PRId64 " W:%" PRId64 " R:%" PRId64 + " U:%" PRId64 " C:%" PRId64, + GET_PTE_X(entry), + GET_PTE_W(entry), + GET_PTE_R(entry), + GET_PTE_U(entry), + GET_PTE_C(entry)); + fprintf(f, " PA:0x%09" PRIx64 " SZ:%s (0x%" PRIx64 ")", PA, + pgsize_str[hex_tlb_pgsize_type(entry)], + hex_tlb_page_size_bytes(entry)); + fprintf(f, "\n"); + return true; + } + + /* Not valid */ + return false; +} + +static inline bool hex_tlb_entry_match_noperm(uint64_t entry, uint32_t asi= d, + uint64_t VA) +{ + if (GET_PTE_V(entry)) { + if (GET_PTE_G(entry)) { + /* Global entry - ignore ASID */ + } else if (asid !=3D NO_ASID) { + uint32_t tlb_asid =3D GET_PTE_ASID(entry); + if (tlb_asid !=3D asid) { + return false; + } + } + + uint64_t page_size =3D hex_tlb_page_size_bytes(entry); + uint64_t page_start =3D + ROUND_DOWN(hex_tlb_virt_addr(entry), page_size); + if (page_start <=3D VA && VA < page_start + page_size) { + return true; + } + } + return false; +} + +static inline void hex_tlb_entry_get_perm(uint64_t entry, + MMUAccessType access_type, + int mmu_idx, int *prot, + int32_t *excp, int *cause_code) +{ + bool perm_x =3D GET_PTE_X(entry); + bool perm_w =3D GET_PTE_W(entry); + bool perm_r =3D GET_PTE_R(entry); + bool perm_u =3D GET_PTE_U(entry); + bool user_idx =3D mmu_idx =3D=3D MMU_USER_IDX; + + if (mmu_idx =3D=3D MMU_KERNEL_IDX) { + *prot =3D PAGE_VALID | PAGE_READ | PAGE_WRITE | PAGE_EXEC; + return; + } + + *prot =3D PAGE_VALID; + switch (access_type) { + case MMU_INST_FETCH: + if (user_idx && !perm_u) { + *excp =3D HEX_EVENT_PRECISE; + *cause_code =3D HEX_CAUSE_FETCH_NO_UPAGE; + } else if (!perm_x) { + *excp =3D HEX_EVENT_PRECISE; + *cause_code =3D HEX_CAUSE_FETCH_NO_XPAGE; + } + break; + case MMU_DATA_LOAD: + if (user_idx && !perm_u) { + *excp =3D HEX_EVENT_PRECISE; + *cause_code =3D HEX_CAUSE_PRIV_NO_UREAD; + } else if (!perm_r) { + *excp =3D HEX_EVENT_PRECISE; + *cause_code =3D HEX_CAUSE_PRIV_NO_READ; + } + break; + case MMU_DATA_STORE: + if (user_idx && !perm_u) { + *excp =3D HEX_EVENT_PRECISE; + *cause_code =3D HEX_CAUSE_PRIV_NO_UWRITE; + } else if (!perm_w) { + *excp =3D HEX_EVENT_PRECISE; + *cause_code =3D HEX_CAUSE_PRIV_NO_WRITE; + } + break; + } + + if (!user_idx || perm_u) { + if (perm_x) { + *prot |=3D PAGE_EXEC; + } + if (perm_r) { + *prot |=3D PAGE_READ; + } + if (perm_w) { + *prot |=3D PAGE_WRITE; + } + } +} + +static inline bool hex_tlb_entry_match(uint64_t entry, uint8_t asid, + uint32_t VA, + MMUAccessType access_type, hwaddr *= PA, + int *prot, uint64_t *size, + int32_t *excp, int *cause_code, + int mmu_idx) +{ + if (hex_tlb_entry_match_noperm(entry, asid, VA)) { + hex_tlb_entry_get_perm(entry, access_type, mmu_idx, prot, excp, + cause_code); + *PA =3D hex_tlb_phys_addr(entry); + *size =3D hex_tlb_page_size_bytes(entry); + return true; + } + return false; +} + +static bool hex_tlb_is_match(uint64_t entry1, uint64_t entry2, + bool consider_gbit) +{ + bool valid1 =3D GET_PTE_V(entry1); + bool valid2 =3D GET_PTE_V(entry2); + uint64_t size1 =3D hex_tlb_page_size_bytes(entry1); + uint64_t vaddr1 =3D ROUND_DOWN(hex_tlb_virt_addr(entry1), size1); + uint64_t size2 =3D hex_tlb_page_size_bytes(entry2); + uint64_t vaddr2 =3D ROUND_DOWN(hex_tlb_virt_addr(entry2), size2); + int asid1 =3D GET_PTE_ASID(entry1); + int asid2 =3D GET_PTE_ASID(entry2); + bool gbit1 =3D GET_PTE_G(entry1); + bool gbit2 =3D GET_PTE_G(entry2); + + if (!valid1 || !valid2) { + return false; + } + + if (((vaddr1 <=3D vaddr2) && (vaddr2 < (vaddr1 + size1))) || + ((vaddr2 <=3D vaddr1) && (vaddr1 < (vaddr2 + size2)))) { + if (asid1 =3D=3D asid2) { + return true; + } + if ((consider_gbit && gbit1) || gbit2) { + return true; + } + } + return false; +} + +/* Public API */ + +uint64_t hexagon_tlb_read(HexagonTLBState *tlb, uint32_t index) +{ + g_assert(index < tlb->num_entries); + return tlb->entries[index]; +} + +void hexagon_tlb_write(HexagonTLBState *tlb, uint32_t index, uint64_t valu= e) +{ + g_assert(index < tlb->num_entries); + tlb->entries[index] =3D value; +} + +bool hexagon_tlb_find_match(HexagonTLBState *tlb, uint32_t asid, + uint32_t VA, MMUAccessType access_type, + hwaddr *PA, int *prot, uint64_t *size, + int32_t *excp, int *cause_code, int mmu_idx) +{ + *PA =3D 0; + *prot =3D 0; + *size =3D 0; + *excp =3D 0; + *cause_code =3D 0; + + for (uint32_t i =3D 0; i < tlb->num_entries; i++) { + if (hex_tlb_entry_match(tlb->entries[i], asid, VA, access_type, + PA, prot, size, excp, cause_code, mmu_idx)= ) { + return true; + } + } + return false; +} + +uint32_t hexagon_tlb_lookup(HexagonTLBState *tlb, uint32_t asid, + uint32_t VA, int *cause_code) +{ + uint32_t not_found =3D 0x80000000; + uint32_t idx =3D not_found; + + for (uint32_t i =3D 0; i < tlb->num_entries; i++) { + uint64_t entry =3D tlb->entries[i]; + if (hex_tlb_entry_match_noperm(entry, asid, VA)) { + if (idx !=3D not_found) { + *cause_code =3D HEX_CAUSE_IMPRECISE_MULTI_TLB_MATCH; + break; + } + idx =3D i; + } + } + + if (idx =3D=3D not_found) { + qemu_log_mask(CPU_LOG_MMU, + "%s: 0x%" PRIx32 ", 0x%08" PRIx32 " =3D> NOT FOUND\n= ", + __func__, asid, VA); + } else { + qemu_log_mask(CPU_LOG_MMU, + "%s: 0x%" PRIx32 ", 0x%08" PRIx32 " =3D> %d\n", + __func__, asid, VA, idx); + } + + return idx; +} + +/* + * Return codes: + * 0 or positive index of match + * -1 multiple matches + * -2 no match + */ +int hexagon_tlb_check_overlap(HexagonTLBState *tlb, uint64_t entry, + uint64_t index) +{ + int matches =3D 0; + int last_match =3D 0; + + for (uint32_t i =3D 0; i < tlb->num_entries; i++) { + if (hex_tlb_is_match(entry, tlb->entries[i], false)) { + matches++; + last_match =3D i; + } + } + + if (matches =3D=3D 1) { + return last_match; + } + if (matches =3D=3D 0) { + return -2; + } + return -1; +} + +void hexagon_tlb_dump(HexagonTLBState *tlb) +{ + for (uint32_t i =3D 0; i < tlb->num_entries; i++) { + hexagon_tlb_dump_entry(stdout, tlb->entries[i]); + } +} + +uint32_t hexagon_tlb_get_num_entries(HexagonTLBState *tlb) +{ + return tlb->num_entries; +} + +/* QOM lifecycle */ + +static void hexagon_tlb_init(Object *obj) +{ +} + +static void hexagon_tlb_realize(DeviceState *dev, Error **errp) +{ + HexagonTLBState *s =3D HEXAGON_TLB(dev); + + if (s->num_entries =3D=3D 0 || s->num_entries > MAX_TLB_ENTRIES) { + error_setg(errp, "Invalid TLB num-entries: %" PRIu32, + s->num_entries); + return; + } + s->entries =3D g_new0(uint64_t, s->num_entries); +} + +static void hexagon_tlb_finalize(Object *obj) +{ + HexagonTLBState *s =3D HEXAGON_TLB(obj); + g_free(s->entries); + s->entries =3D NULL; +} + +static void hexagon_tlb_reset_hold(Object *obj, ResetType type) +{ + HexagonTLBState *s =3D HEXAGON_TLB(obj); + if (s->entries) { + memset(s->entries, 0, sizeof(uint64_t) * s->num_entries); + } +} + +static const VMStateDescription vmstate_hexagon_tlb =3D { + .name =3D "hexagon-tlb", + .version_id =3D 0, + .minimum_version_id =3D 0, + .fields =3D (const VMStateField[]) { + VMSTATE_UINT32(num_entries, HexagonTLBState), + VMSTATE_VARRAY_UINT32_ALLOC(entries, HexagonTLBState, num_entries, + 0, vmstate_info_uint64, uint64_t), + VMSTATE_END_OF_LIST() + }, +}; + +static const Property hexagon_tlb_properties[] =3D { + DEFINE_PROP_UINT32("num-entries", HexagonTLBState, num_entries, + MAX_TLB_ENTRIES), +}; + +static void hexagon_tlb_class_init(ObjectClass *klass, const void *data) +{ + DeviceClass *dc =3D DEVICE_CLASS(klass); + ResettableClass *rc =3D RESETTABLE_CLASS(klass); + + dc->realize =3D hexagon_tlb_realize; + rc->phases.hold =3D hexagon_tlb_reset_hold; + dc->vmsd =3D &vmstate_hexagon_tlb; + dc->user_creatable =3D false; + device_class_set_props(dc, hexagon_tlb_properties); +} + +static const TypeInfo hexagon_tlb_info =3D { + .name =3D TYPE_HEXAGON_TLB, + .parent =3D TYPE_SYS_BUS_DEVICE, + .instance_size =3D sizeof(HexagonTLBState), + .instance_init =3D hexagon_tlb_init, + .instance_finalize =3D hexagon_tlb_finalize, + .class_init =3D hexagon_tlb_class_init, +}; + +static void hexagon_tlb_register_types(void) +{ + type_register_static(&hexagon_tlb_info); +} + +type_init(hexagon_tlb_register_types) diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 2a061d70540..640369329dc 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -23,6 +23,7 @@ #include "qapi/error.h" #include "hw/core/qdev-properties.h" #include "fpu/softfloat-helpers.h" +#include "hw/hexagon/hexagon_tlb.h" #include "tcg/tcg.h" #include "exec/gdbstub.h" #include "accel/tcg/cpu-ops.h" @@ -50,6 +51,10 @@ static ObjectClass *hexagon_cpu_class_by_name(const char= *cpu_model) } =20 static const Property hexagon_cpu_properties[] =3D { +#if !defined(CONFIG_USER_ONLY) + DEFINE_PROP_LINK("tlb", HexagonCPU, tlb, TYPE_HEXAGON_TLB, + HexagonTLBState *), +#endif DEFINE_PROP_BOOL("lldb-compat", HexagonCPU, lldb_compat, false), DEFINE_PROP_UNSIGNED("lldb-stack-adjust", HexagonCPU, lldb_stack_adjus= t, 0, qdev_prop_uint32, target_ulong), --=20 2.34.1 From nobody Sat Apr 11 21:30:50 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=1773068213; cv=none; d=zohomail.com; s=zohoarc; b=HQaDPWmTR3k9/psWgZKsuj7b5MECggA8QQHYJAxNugKpsBlzqvty86yqWytnDgMLlREgibdpI/9qLmNi9z/Lnk/AaYgro2ec7xqCDbj6GVK0Ir8L5V99mEiolWBj1LkqbNfbvu340GnezEpQHtTYsG+cojZnnldGPZnvEswED90= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773068213; 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=BjOwtISkSznIkGFggrt4iZcpPbtGpp3lhAskrbSBHZg=; b=OgCC4LYnMPgM/rv9DJYdWOS9jh+OdgckZwx+CKnA9fGg4wSnrAm0s01FIeCmwZyL4i6z3k/otgk58Y9WhszK+dMjJ86gDFPzc9A/hnS+D44OjJHSi7o7naQWpdzj6giaDuTttoGq43qyP1blXU/kTMVFt/j5VW4jGRp3qOcxtKo= 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 1773068213178497.667364244876; Mon, 9 Mar 2026 07:56:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vzbv7-0001eQ-Di; Mon, 09 Mar 2026 10:49:21 -0400 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 1vzbv3-0001TV-IY for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:49:17 -0400 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 1vzbv1-0005JW-58 for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:49:17 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 629DpP0M4086940 for ; Mon, 9 Mar 2026 14:49:03 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4crd6fdr8f-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 14:49:03 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-2be232ef3d3so70734377eec.1 for ; Mon, 09 Mar 2026 07:49:03 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be4f82b78esm9322776eec.12.2026.03.09.07.49.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 07:49:01 -0700 (PDT) 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= BjOwtISkSznIkGFggrt4iZcpPbtGpp3lhAskrbSBHZg=; b=FQ96PhDCoWdjMmd4 q6r2K5bIC9XCTVSGCmCnRWiM93+7IujiR+kZ7DkKpDarsQPu0n8CaOscQfk8BCpv E9PIZRN/k32RlQaNlYu1q2NIgdyZzHrDcOS6HwlqQ8YP72xIbYXKfbncc3A3tEXC qydkUpiqnu9m3m0KlCrbCWHrBJP4JYzCmCpa8A3rooNtKoOAMxxj1dWHrg1OPYm8 c5sQFgEd7+p9T/a1kdltV9Cjfa7QmArK3phLPDzLSSEGPWHL9oY0rHM0lnI6jcLU dld/q9ikaqBUtqke4qEyrk22GEboOfKJm1mhDQov4aM2gNw5MRFwpVW3lj/95vxZ ZxFqAA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773067743; x=1773672543; 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=BjOwtISkSznIkGFggrt4iZcpPbtGpp3lhAskrbSBHZg=; b=JIN3R1jxQiycfh+YAQIHPMXyqGLtkz0Q0I7artTwyDNw9FDtk+ueMh8B3FxDMaqr+c xPhBsOxoypfNgjciFGBgWS5Cq4LoSPokwEcBEzkKnEmw0BVIqW0GGYIeY71r46veHWXF ppXLgUX5w2j1+wmW+VFa/I4ZO+WcOTX8tU4qytEVDV6cpBAvAYr/XimZ8KP/gjX3YJAe 5BHsaElW+G8gQLYTWZeJSOgqjrrhGfrTeGAt+kGGj6Qn5dkuPtVdd7UFg3WdVjmlTziv gmc7JfqTZ/mvXSnF6elIGOiLjIH0W2ox3WE/qVMJYMlOxoY6CUk1ynRo2rIESfBw1nFt 445Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773067743; x=1773672543; 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=BjOwtISkSznIkGFggrt4iZcpPbtGpp3lhAskrbSBHZg=; b=cMYP558O/SwW5TTp0K2xfz7jJfz/Z8uFXQRbASZZJVGH08e/IkmaTj7RYOapmcSx4O fzfbyEjfa4TUntI+wEOMSPyNZBs5NW2ZzjpGT4rquOFsSXZ+kpysDFusufTVpDlMg76P TxVPFzIn+STKoR+V/Zrj4nIi0yqEQS0HqdWnRSNjumetxb+iJl5V8LcoO4wh6k80W2wU IRfRL83RsIAiBcabjZLOnPOvKGNiZ2nx/z5TEmnpFQs0G2V1Kau3ajndMOK468Oj0487 bnXY3bXLjC0c+3coLT9ako7pRhZ0TutbuoDJAv5UprN7d60fqM0lSMBSb1vejQH8bbLu UlTw== X-Gm-Message-State: AOJu0YxZRDhW+r1Z30htRgF1Y3W8FjCbus1dteaWnR7C+r7UOdMHH4/S wMdqdlyi2QoM8qkWccrWYtmCerZaI1ZwgF2w1PfpURUnQU+800aLoC3zinptV2B+PQEn0jdcB6s eHLu/apNUytlerfe+EpT+x776OB8AW689OknCgLWvnQkVFDtxn4FPVi98ZJBXz1v2UQ== X-Gm-Gg: ATEYQzx6qj/nhkzZ5B0lTWPDz0cgYehvQT/uqqhIJjPNjq0cmT3Ud9bYLNHdTDKQ2zB 0AZgI871Vsq7wYWzlxpPw4oU67lI++dzLiyCYOPcGU1XrkyQxoII19bXjJ9RbATkA+0zkm94rZm yBupUJNKtiLqshjJvU7x/+w1WE6vACmCb2+JY57kWilsAhBjzmUlyG1yfP4vKIw5MNaOCEAlyN9 kr+NucnsT/FGUgcEdwI3bwMUaixT2NyhmKDPBjCobnK3Ox3L897TmKCrlmczS9DEWOQhvhbBkQx DhAif8v3u7jgk+TMIjq8X7ztwPyVB4kuy+OFuGmJNrCu5+FKn5mzHuw4/Nu46Vx2zJoLwDEkDJZ C/JROzANPMeAZe40VeVEdfO0YWSlRjG1TmBDDSRxQOtFu/Pydh9XG+iSWQm7948Q0RqFZ1g== X-Received: by 2002:a05:7300:fd0e:b0:2be:2345:bec9 with SMTP id 5a478bee46e88-2be4e05d213mr4911234eec.31.1773067742403; Mon, 09 Mar 2026 07:49:02 -0700 (PDT) X-Received: by 2002:a05:7300:fd0e:b0:2be:2345:bec9 with SMTP id 5a478bee46e88-2be4e05d213mr4911211eec.31.1773067741865; Mon, 09 Mar 2026 07:49:01 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng Subject: [PATCH v4 32/35] target/hexagon: Add stubs for modify_ssr/get_exe_mode Date: Mon, 9 Mar 2026 07:48:19 -0700 Message-Id: <20260309144822.877695-33-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> References: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: XbbsmJ3mPRJwqfgtrQ8rLEvJyoqW9jN4 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDEzMyBTYWx0ZWRfX7T/1pczt5wVn rEa0iC+n34G0IVYu9q4VlkjPSD1B0SByKaDjj9Aqg11cxaYkuSIx4TkeRqgNzpenAwzgqvVE4u+ JS9NzYS151fw3xrCisjv/i7y74XEtc2H+yQTcUwzQDf58dO631LMkAjCmzM90+rd7ex/qJfJllM JCHMtUmTGFXyKSsfdzEV6+4gOytb78ZGtJjrxxazWZKz1/7VKSm8cIYZJUDspZBP+2rLhvV39a+ EJC4cyTygWVCSsSpEQGaRvAzofPbmFfeo3OhYD9XyaP+kQ6KZyV5KF0t1TDfabqYrfftF8G9+i9 exH9mGnunEfd3ILJXi3A3p6s50fChptyo+7Y4r+Mb+yoRu2Yi7jv+VrpAmYkhY57rxY0DKdoOZp Qd41AlvfgRq8N8YzV4w5L1W8zhBWGeR44c8UNnuhGG8L5FZPzSpyuusrUIPZdZLatfPwag3UJmi /anlLCcoUuYEKjmRKuQ== X-Proofpoint-GUID: XbbsmJ3mPRJwqfgtrQ8rLEvJyoqW9jN4 X-Authority-Analysis: v=2.4 cv=RP++3oi+ c=1 sm=1 tr=0 ts=69aedddf cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=1eS9DRoYkSOUxsN_X7IA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_04,2026-03-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 priorityscore=1501 malwarescore=0 spamscore=0 phishscore=0 clxscore=1015 bulkscore=0 lowpriorityscore=0 impostorscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090133 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: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773068215938154100 Add hex_mmu.[ch], cpu mode helpers, and additional includes/stubs that integrate the TLB device with the CPU model. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu-param.h | 4 + target/hexagon/cpu.h | 5 + target/hexagon/cpu_helper.h | 2 + target/hexagon/hex_mmu.h | 25 ++++ target/hexagon/internal.h | 9 ++ target/hexagon/cpu.c | 21 +++ target/hexagon/cpu_helper.c | 10 ++ target/hexagon/hex_mmu.c | 277 ++++++++++++++++++++++++++++++++++++ target/hexagon/translate.c | 2 +- 9 files changed, 354 insertions(+), 1 deletion(-) create mode 100644 target/hexagon/hex_mmu.h create mode 100644 target/hexagon/hex_mmu.c diff --git a/target/hexagon/cpu-param.h b/target/hexagon/cpu-param.h index 1f0f22a7968..9eae7d2361c 100644 --- a/target/hexagon/cpu-param.h +++ b/target/hexagon/cpu-param.h @@ -18,7 +18,11 @@ #ifndef HEXAGON_CPU_PARAM_H #define HEXAGON_CPU_PARAM_H =20 +#ifdef CONFIG_USER_ONLY #define TARGET_PAGE_BITS 16 /* 64K pages */ +#else +#define TARGET_PAGE_BITS 12 /* 4K pages */ +#endif =20 #define TARGET_VIRT_ADDR_SPACE_BITS 32 =20 diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 0c00feb0469..d8092cb6fe7 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -38,6 +38,9 @@ #error "Hexagon does not support system emulation" #endif =20 +#ifndef CONFIG_USER_ONLY +#endif + #define NUM_PREGS 4 #define TOTAL_PER_THREAD_REGS 64 =20 @@ -189,12 +192,14 @@ struct ArchCPU { bool short_circuit; #ifndef CONFIG_USER_ONLY struct HexagonTLBState *tlb; + uint32_t htid; #endif }; =20 #include "cpu_bits.h" =20 FIELD(TB_FLAGS, IS_TIGHT_LOOP, 0, 1) +FIELD(TB_FLAGS, MMU_INDEX, 1, 3) =20 G_NORETURN void hexagon_raise_exception_err(CPUHexagonState *env, uint32_t exception, diff --git a/target/hexagon/cpu_helper.h b/target/hexagon/cpu_helper.h index 1486a03c64a..18300657f3d 100644 --- a/target/hexagon/cpu_helper.h +++ b/target/hexagon/cpu_helper.h @@ -14,5 +14,7 @@ uint32_t hexagon_get_sys_pcycle_count_high(CPUHexagonStat= e *env); void hexagon_set_sys_pcycle_count(CPUHexagonState *env, uint64_t); void hexagon_set_sys_pcycle_count_low(CPUHexagonState *env, uint32_t); void hexagon_set_sys_pcycle_count_high(CPUHexagonState *env, uint32_t); +void hexagon_modify_ssr(CPUHexagonState *env, uint32_t new, uint32_t old); +int get_exe_mode(CPUHexagonState *env); =20 #endif diff --git a/target/hexagon/hex_mmu.h b/target/hexagon/hex_mmu.h new file mode 100644 index 00000000000..99ddb3736a2 --- /dev/null +++ b/target/hexagon/hex_mmu.h @@ -0,0 +1,25 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HEXAGON_MMU_H +#define HEXAGON_MMU_H + +#include "cpu.h" + +extern void hex_tlbw(CPUHexagonState *env, uint32_t index, uint64_t value); +extern uint32_t hex_tlb_lookup(CPUHexagonState *env, uint32_t ssr, uint32_= t VA); +extern void hex_mmu_on(CPUHexagonState *env); +extern void hex_mmu_off(CPUHexagonState *env); +extern void hex_mmu_mode_change(CPUHexagonState *env); +extern bool hex_tlb_find_match(CPUHexagonState *env, uint32_t VA, + MMUAccessType access_type, hwaddr *PA, int = *prot, + uint64_t *size, int32_t *excp, int mmu_idx); +extern int hex_tlb_check_overlap(CPUHexagonState *env, uint64_t entry, + uint64_t index); +extern void hex_tlb_lock(CPUHexagonState *env); +extern void hex_tlb_unlock(CPUHexagonState *env); +void dump_mmu(CPUHexagonState *env); +#endif diff --git a/target/hexagon/internal.h b/target/hexagon/internal.h index 33d73ed18d1..4338914efb5 100644 --- a/target/hexagon/internal.h +++ b/target/hexagon/internal.h @@ -36,6 +36,15 @@ void G_NORETURN do_raise_exception(CPUHexagonState *env, uint32_t PC, uintptr_t retaddr); =20 +#define hexagon_cpu_mmu_enabled(env) ({ \ + HexagonCPU *cpu =3D env_archcpu(env); \ + cpu->globalregs ? \ + GET_SYSCFG_FIELD(SYSCFG_MMUEN, \ + hexagon_globalreg_read(cpu->globalregs, \ + HEX_SREG_SYSCFG, (env)->threadId)) : \ + 0; \ +}) + #ifndef CONFIG_USER_ONLY extern const VMStateDescription vmstate_hexagon_cpu; #endif diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 640369329dc..5c937fa1cd1 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -27,6 +27,13 @@ #include "tcg/tcg.h" #include "exec/gdbstub.h" #include "accel/tcg/cpu-ops.h" +#include "cpu_helper.h" +#include "hex_mmu.h" + +#ifndef CONFIG_USER_ONLY +#include "sys_macros.h" +#include "accel/tcg/cpu-ldst.h" +#endif =20 static void hexagon_v66_cpu_init(Object *obj) { } static void hexagon_v67_cpu_init(Object *obj) { } @@ -54,6 +61,7 @@ static const Property hexagon_cpu_properties[] =3D { #if !defined(CONFIG_USER_ONLY) DEFINE_PROP_LINK("tlb", HexagonCPU, tlb, TYPE_HEXAGON_TLB, HexagonTLBState *), + DEFINE_PROP_UINT32("htid", HexagonCPU, htid, 0), #endif DEFINE_PROP_BOOL("lldb-compat", HexagonCPU, lldb_compat, false), DEFINE_PROP_UNSIGNED("lldb-stack-adjust", HexagonCPU, lldb_stack_adjus= t, 0, @@ -280,6 +288,13 @@ static TCGTBCPUState hexagon_get_tb_cpu_state(CPUState= *cs) hexagon_raise_exception_err(env, HEX_CAUSE_PC_NOT_ALIGNED, 0); } =20 +#ifndef CONFIG_USER_ONLY + hex_flags =3D FIELD_DP32(hex_flags, TB_FLAGS, MMU_INDEX, + cpu_mmu_index(env_cpu(env), false)); +#else + hex_flags =3D FIELD_DP32(hex_flags, TB_FLAGS, MMU_INDEX, MMU_USER_IDX); +#endif + return (TCGTBCPUState){ .pc =3D pc, .flags =3D hex_flags }; } =20 @@ -297,6 +312,7 @@ static void hexagon_restore_state_to_opc(CPUState *cs, cpu_env(cs)->gpr[HEX_REG_PC] =3D data[0]; } =20 + static void hexagon_cpu_reset_hold(Object *obj, ResetType type) { CPUState *cs =3D CPU(obj); @@ -320,6 +336,10 @@ static void hexagon_cpu_reset_hold(Object *obj, ResetT= ype type) env->tlb_lock_count =3D 0; env->k0_lock_count =3D 0; env->next_PC =3D 0; + + HexagonCPU *cpu =3D HEXAGON_CPU(cs); + env->t_sreg[HEX_SREG_HTID] =3D cpu->htid; + env->threadId =3D cpu->htid; #endif env->cause_code =3D HEX_EVENT_NONE; } @@ -348,6 +368,7 @@ static void hexagon_cpu_realize(DeviceState *dev, Error= **errp) gdb_find_static_feature("hexagon-hvx.xml"), 0= ); =20 qemu_init_vcpu(cs); + cpu_reset(cs); mcc->parent_realize(dev, errp); } diff --git a/target/hexagon/cpu_helper.c b/target/hexagon/cpu_helper.c index b8e0625e3f8..b6a8bd35309 100644 --- a/target/hexagon/cpu_helper.c +++ b/target/hexagon/cpu_helper.c @@ -58,3 +58,13 @@ void hexagon_set_sys_pcycle_count(CPUHexagonState *env, = uint64_t cycles) { g_assert_not_reached(); } + +void hexagon_modify_ssr(CPUHexagonState *env, uint32_t new, uint32_t old) +{ + g_assert_not_reached(); +} + +int get_exe_mode(CPUHexagonState *env) +{ + g_assert_not_reached(); +} diff --git a/target/hexagon/hex_mmu.c b/target/hexagon/hex_mmu.c new file mode 100644 index 00000000000..1cdc92fdc31 --- /dev/null +++ b/target/hexagon/hex_mmu.c @@ -0,0 +1,277 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "qemu/log.h" +#include "qemu/main-loop.h" +#include "qemu/qemu-print.h" +#include "cpu.h" +#include "system/cpus.h" +#include "internal.h" +#include "exec/cpu-interrupt.h" +#include "cpu_helper.h" +#include "exec/cputlb.h" +#include "hex_mmu.h" +#include "macros.h" +#include "sys_macros.h" +#include "hw/hexagon/hexagon_tlb.h" +#include "hw/hexagon/hexagon_globalreg.h" + +static inline void hex_log_tlbw(uint32_t index, uint64_t entry) +{ + if (qemu_loglevel_mask(CPU_LOG_MMU)) { + if (qemu_log_enabled()) { + FILE *logfile =3D qemu_log_trylock(); + if (logfile) { + fprintf(logfile, "tlbw[%03d]: ", index); + if (!hexagon_tlb_dump_entry(logfile, entry)) { + fprintf(logfile, "invalid\n"); + } + qemu_log_unlock(logfile); + } + } + } +} + +void hex_tlbw(CPUHexagonState *env, uint32_t index, uint64_t value) +{ + uint32_t myidx =3D fTLB_NONPOW2WRAP(fTLB_IDXMASK(index)); + HexagonTLBState *tlb =3D env_archcpu(env)->tlb; + uint64_t old_entry =3D hexagon_tlb_read(tlb, myidx); + + bool old_entry_valid =3D extract64(old_entry, 63, 1); + if (old_entry_valid && hexagon_cpu_mmu_enabled(env)) { + CPUState *cs =3D env_cpu(env); + tlb_flush(cs); + } + hexagon_tlb_write(tlb, myidx, value); + hex_log_tlbw(myidx, value); +} + +void hex_mmu_on(CPUHexagonState *env) +{ + CPUState *cs =3D env_cpu(env); + qemu_log_mask(CPU_LOG_MMU, "Hexagon MMU turned on!\n"); + tlb_flush(cs); +} + +void hex_mmu_off(CPUHexagonState *env) +{ + CPUState *cs =3D env_cpu(env); + qemu_log_mask(CPU_LOG_MMU, "Hexagon MMU turned off!\n"); + tlb_flush(cs); +} + +void hex_mmu_mode_change(CPUHexagonState *env) +{ + qemu_log_mask(CPU_LOG_MMU, "Hexagon mode change!\n"); + CPUState *cs =3D env_cpu(env); + tlb_flush(cs); +} + +bool hex_tlb_find_match(CPUHexagonState *env, uint32_t VA, + MMUAccessType access_type, hwaddr *PA, int *prot, + uint64_t *size, int32_t *excp, int mmu_idx) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t ssr =3D env->t_sreg[HEX_SREG_SSR]; + uint8_t asid =3D GET_SSR_FIELD(SSR_ASID, ssr); + int cause_code =3D 0; + + bool found =3D hexagon_tlb_find_match(cpu->tlb, asid, VA, access_type, + PA, prot, size, excp, &cause_code, + mmu_idx); + if (cause_code) { + env->cause_code =3D cause_code; + } + return found; +} + +/* Called from tlbp instruction */ +uint32_t hex_tlb_lookup(CPUHexagonState *env, uint32_t ssr, uint32_t VA) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint8_t asid =3D GET_SSR_FIELD(SSR_ASID, ssr); + int cause_code =3D 0; + + uint32_t result =3D hexagon_tlb_lookup(cpu->tlb, asid, VA, &cause_code= ); + if (cause_code) { + env->cause_code =3D cause_code; + } + return result; +} + +/* + * Return codes: + * 0 or positive index of match + * -1 multiple matches + * -2 no match + */ +int hex_tlb_check_overlap(CPUHexagonState *env, uint64_t entry, uint64_t i= ndex) +{ + HexagonCPU *cpu =3D env_archcpu(env); + return hexagon_tlb_check_overlap(cpu->tlb, entry, index); +} + +void dump_mmu(CPUHexagonState *env) +{ + HexagonCPU *cpu =3D env_archcpu(env); + hexagon_tlb_dump(cpu->tlb); +} + +static inline void print_thread(const char *str, CPUState *cs) +{ + g_assert(bql_locked()); + CPUHexagonState *thread =3D cpu_env(cs); + bool is_stopped =3D cpu_is_stopped(cs); + int exe_mode =3D get_exe_mode(thread); + hex_lock_state_t lock_state =3D thread->tlb_lock_state; + qemu_log_mask(CPU_LOG_MMU, + "%s: threadId =3D %d: %s, exe_mode =3D %s, tlb_lock_state =3D %= s\n", + str, + thread->threadId, + is_stopped ? "stopped" : "running", + exe_mode =3D=3D HEX_EXE_MODE_OFF ? "off" : + exe_mode =3D=3D HEX_EXE_MODE_RUN ? "run" : + exe_mode =3D=3D HEX_EXE_MODE_WAIT ? "wait" : + exe_mode =3D=3D HEX_EXE_MODE_DEBUG ? "debug" : + "unknown", + lock_state =3D=3D HEX_LOCK_UNLOCKED ? "unlocked" : + lock_state =3D=3D HEX_LOCK_WAITING ? "waiting" : + lock_state =3D=3D HEX_LOCK_OWNER ? "owner" : + "unknown"); +} + +static inline void print_thread_states(const char *str) +{ + CPUState *cs; + CPU_FOREACH(cs) { + print_thread(str, cs); + } +} + +void hex_tlb_lock(CPUHexagonState *env) +{ + qemu_log_mask(CPU_LOG_MMU, "hex_tlb_lock: " TARGET_FMT_ld "\n", + env->threadId); + BQL_LOCK_GUARD(); + g_assert((env->tlb_lock_count =3D=3D 0) || (env->tlb_lock_count =3D=3D= 1)); + + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t syscfg =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_SYSCFG, + env->threadId) : 0; + uint8_t tlb_lock =3D GET_SYSCFG_FIELD(SYSCFG_TLBLOCK, syscfg); + if (tlb_lock) { + if (env->tlb_lock_state =3D=3D HEX_LOCK_QUEUED) { + env->next_PC +=3D 4; + env->tlb_lock_count++; + env->tlb_lock_state =3D HEX_LOCK_OWNER; + SET_SYSCFG_FIELD(env, SYSCFG_TLBLOCK, 1); + return; + } + if (env->tlb_lock_state =3D=3D HEX_LOCK_OWNER) { + qemu_log_mask(CPU_LOG_MMU | LOG_GUEST_ERROR, + "Double tlblock at PC: 0x%x, thread may hang\n", + env->next_PC); + env->next_PC +=3D 4; + CPUState *cs =3D env_cpu(env); + cpu_interrupt(cs, CPU_INTERRUPT_HALT); + return; + } + env->tlb_lock_state =3D HEX_LOCK_WAITING; + CPUState *cs =3D env_cpu(env); + cpu_interrupt(cs, CPU_INTERRUPT_HALT); + } else { + env->next_PC +=3D 4; + env->tlb_lock_count++; + env->tlb_lock_state =3D HEX_LOCK_OWNER; + SET_SYSCFG_FIELD(env, SYSCFG_TLBLOCK, 1); + } + + if (qemu_loglevel_mask(CPU_LOG_MMU)) { + qemu_log_mask(CPU_LOG_MMU, "Threads after hex_tlb_lock:\n"); + print_thread_states("\tThread"); + } +} + +void hex_tlb_unlock(CPUHexagonState *env) +{ + BQL_LOCK_GUARD(); + g_assert((env->tlb_lock_count =3D=3D 0) || (env->tlb_lock_count =3D=3D= 1)); + + /* Nothing to do if the TLB isn't locked by this thread */ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t syscfg =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_SYSCFG, + env->threadId) : 0; + uint8_t tlb_lock =3D GET_SYSCFG_FIELD(SYSCFG_TLBLOCK, syscfg); + if ((tlb_lock =3D=3D 0) || + (env->tlb_lock_state !=3D HEX_LOCK_OWNER)) { + qemu_log_mask(LOG_GUEST_ERROR, + "thread %d attempted to tlbunlock without having the= " + "lock, tlb_lock state =3D %d\n", + env->threadId, env->tlb_lock_state); + g_assert(env->tlb_lock_state !=3D HEX_LOCK_WAITING); + return; + } + + env->tlb_lock_count--; + env->tlb_lock_state =3D HEX_LOCK_UNLOCKED; + SET_SYSCFG_FIELD(env, SYSCFG_TLBLOCK, 0); + + /* Look for a thread to unlock */ + unsigned int this_threadId =3D env->threadId; + CPUHexagonState *unlock_thread =3D NULL; + CPUState *cs; + CPU_FOREACH(cs) { + CPUHexagonState *thread =3D cpu_env(cs); + + /* + * The hardware implements round-robin fairness, so we look for th= reads + * starting at env->threadId + 1 and incrementing modulo the numbe= r of + * threads. + * + * To implement this, we check if thread is a earlier in the modulo + * sequence than unlock_thread. + * if unlock thread is higher than this thread + * thread must be between this thread and unlock_thread + * else + * thread higher than this thread is ahead of unlock_thread + * thread must be lower then unlock thread + */ + if (thread->tlb_lock_state =3D=3D HEX_LOCK_WAITING) { + if (!unlock_thread) { + unlock_thread =3D thread; + } else if (unlock_thread->threadId > this_threadId) { + if (this_threadId < thread->threadId && + thread->threadId < unlock_thread->threadId) { + unlock_thread =3D thread; + } + } else { + if (thread->threadId > this_threadId) { + unlock_thread =3D thread; + } + if (thread->threadId < unlock_thread->threadId) { + unlock_thread =3D thread; + } + } + } + } + if (unlock_thread) { + cs =3D env_cpu(unlock_thread); + print_thread("\tWaiting thread found", cs); + unlock_thread->tlb_lock_state =3D HEX_LOCK_QUEUED; + SET_SYSCFG_FIELD(unlock_thread, SYSCFG_TLBLOCK, 1); + cpu_interrupt(cs, CPU_INTERRUPT_TLB_UNLOCK); + } + + if (qemu_loglevel_mask(CPU_LOG_MMU)) { + qemu_log_mask(CPU_LOG_MMU, "Threads after hex_tlb_unlock:\n"); + print_thread_states("\tThread"); + } + +} diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index cd6affa2f49..4df4226cbcb 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -987,7 +987,7 @@ static void hexagon_tr_init_disas_context(DisasContextB= ase *dcbase, HexagonCPU *hex_cpu =3D env_archcpu(cpu_env(cs)); uint32_t hex_flags =3D dcbase->tb->flags; =20 - ctx->mem_idx =3D MMU_USER_IDX; + ctx->mem_idx =3D FIELD_EX32(hex_flags, TB_FLAGS, MMU_INDEX); ctx->num_packets =3D 0; ctx->num_insns =3D 0; ctx->num_hvx_insns =3D 0; --=20 2.34.1 From nobody Sat Apr 11 21:30:50 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=1773067855; cv=none; d=zohomail.com; s=zohoarc; b=ji2bnoTMp2+ZEROmUiAtVuPdfZ4qAVGCGyPHcS3IzN6OjX2THoBNnuNKCPD6KpdxJFDS75KQYURfx9PwUqr1PdWvDLoKXI34xZvUXGRpBJ5jsVvEFpsVfq1QYr6EmzuhCG/LHLoKy5QOmMpHw0T5KgI04iyQ0JQ7eGbl1/zbeqA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773067855; 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=HCTGOKXs1fYSZixnoMaJMXvytawJB9bQ+ItN/EAPNM4=; b=kYcgzDXbTYtXoEx2YjZfakT8qqXWCT+e5ao/LM1zep4mVOFLSfZHgPMXWQlUFGl5bxsa1x9/IZ2WAZvcRBbMAo5Izhol6qvaOo5iThmNI0a0UZC/8hmDGA9s+xSonRJmEuLTpa3VoTfSF8Nte3rqZKSmsLWkEPcU5RE6RVW/OPg= 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 1773067855382937.6973676084139; Mon, 9 Mar 2026 07:50:55 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vzbv8-0001h3-CJ; Mon, 09 Mar 2026 10:49:22 -0400 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 1vzbv4-0001UY-2z for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:49:18 -0400 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 1vzbv1-0005KA-Vx for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:49:17 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 629DqkEF4143734 for ; Mon, 9 Mar 2026 14:49:04 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 4crd6fdr8p-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 14:49:04 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2bdff07d8f4so12962746eec.1 for ; Mon, 09 Mar 2026 07:49:04 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be4f82b78esm9322776eec.12.2026.03.09.07.49.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 07:49:02 -0700 (PDT) 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= HCTGOKXs1fYSZixnoMaJMXvytawJB9bQ+ItN/EAPNM4=; b=X5x6c0f2z1UZtllF 2x0jxXbHZJ7s/XlkQTvF5o9Fp4XgLZFLidVoR61D0nm7xghPcaz2b3tt5XlpUg8Y 2HbbprlhDCPWiHSGN683wiruE6svAwr4AkeVKcp4r3xU8O6qEEY0yMhVQlfe2vXO NBse2HjMQTGoD7dvwOj2JV0XQc7usMa5iIG2HJeUWSEpWTdn6LB4LWPRnkWZhDhU mUrcLR1aDvGu8BLBYreGhCkfdi5DZb0x8KpirAgOkCmumMEGiB4KUFFf1UuZOsVg TmVgf7lWxzjjD5ykrszTJVkdAkqgqOacC2kdGZ0GQ9+7tIZnW1OIwgBAewv1bNTa N9FiJQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773067744; x=1773672544; 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=HCTGOKXs1fYSZixnoMaJMXvytawJB9bQ+ItN/EAPNM4=; b=igZ5MJskdEH0BEASpqKcJX72oM4ErzdXlXD0EMmt5sIX+Ch/iQlcus2Lncsg9oEIS+ t+TeEy+a/qeoltKhNec8zA4wsKaTIb4MTM0FYDFKySMZSd1D5jNjbjfStjTesTwzQXLp jR5XBtovizSBxzTra/WBZwyzl5HQ+z+aDVupW9uv7gqGrOYv82zaQmaLUXUIRJGu7uFu qZENEXxyurAdpP9RhWR2Rd3L5pQD713L+mZaTcgbWzzSADoIdllzfLujf353ujBTuvXE iVW1CVCTSJ1FjHxzwKxjW+O7sdiRThxbAUkeV5J3Je8pi4botoIHMUkncrwNI+DcxAKQ PBSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773067744; x=1773672544; 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=HCTGOKXs1fYSZixnoMaJMXvytawJB9bQ+ItN/EAPNM4=; b=Mt10cF86LcejAt7FqIjkgWq7Js02NsrIxKTVM7F/aStSN9X+za4yO6NpBSTHLwVmcD thhYjLwhGsKiZCAn9hA9U1NzqWWyaOgOlfCgZ+z4D8hNQBvyxrMFAZQKiUh7ZYhtteBb /QJT4RT6bwxhMXXnX0qqKJIXS3squkUrgGPynnYrK02sCM5hleRgpeyO1zsAgXxNOReN 5haz6GpYsnWn8J/zyKmxKfJHn+5iVObQONur9PTidNbp61sHSGPFWvOjHyYbiwbOEOih VFjCsX15l7BctbTMhJ85U2+KJtWiUYHga+ruqwgtiVs5RGhMTH8wGpveQWKLyKaLDX6/ 0D/Q== X-Gm-Message-State: AOJu0Yza7E+AQC9I/TzdX0hf5DQRnikAsepUfIPvHDu+S9UKiHESgHPC Qtu8a0iXZ+bpWbEUPGdaEpFkvEFihhFFXMBlmLL++DOkqzR3xCbgPZoJFcIHHNGiMA+y1gZ5676 DHlOtpR7/fapMQ3kb057PnUtN7bTaM1jq6NhBZndawF7KYO62BLnw1FfGSlt1G97l0A== X-Gm-Gg: ATEYQzzBiqZrcOv45RPxEzC4aChRhWFeJWJIm2uVPhS9KP/nrR5UfcqA2OfQVtOdRqW RktSyji3NXTebKfnGeW9+gqDEzdT3WVVAPOOS4QezNfFOQ+pn7KIiUtEF+OV3AZCILatzPVf/FZ 3cHcYGZZsN6zxn9rMVAYlVXE2OsVhebSsPiPG9uB5H+2rAZAC3oKsMbBzKItYsKpPyb94tBvePt qCtbKm7BXT3Q75f1TBAHG5NuW53HYyUSNZEXiyqKFHedAN/6KzTxmHsNCqjSlFpiROEKI1wdJfr SSqL170g+SMHA5hajxZo26FzWVBJlSxwX4FDYz/YBPG5YKFH1cSXrmD0BdVyjfwYswdQGAgd6xN ShWvfI6clf2mxzHTe2UcbCkcg00H4N1Gz+X3Y6lDh71zUqEthu3s0RaDxd5WG06ywFto2KA== X-Received: by 2002:a05:7301:6895:b0:2ba:6b3a:7696 with SMTP id 5a478bee46e88-2be4dfd0b09mr4281522eec.8.1773067743592; Mon, 09 Mar 2026 07:49:03 -0700 (PDT) X-Received: by 2002:a05:7301:6895:b0:2ba:6b3a:7696 with SMTP id 5a478bee46e88-2be4dfd0b09mr4281505eec.8.1773067742945; Mon, 09 Mar 2026 07:49:02 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 33/35] target/hexagon: Add clear_wait_mode() definition Date: Mon, 9 Mar 2026 07:48:20 -0700 Message-Id: <20260309144822.877695-34-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> References: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: l-qHQDYWbNX6Wi7E3mspI8jNlEtiUsr6 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDEzMyBTYWx0ZWRfXydbSKGFteVEH O2WsBE+GB36E9o1IdVOngkUmK7R3Hwg5/71bwfDZpMrl4NxEU9Rou4wI/EsIuOz3qmVpJMJadN6 e2e6450STAuXMyCJu6AvVPdlQsF61n7+Fonvj475PlTkAzndnRB5MTZhgsdub5vBKyw0/VqbAa7 37aAAECNdKmlh1gxh4wNYDKotUxsXW5BkPEheyy/DmP9D6lhYFPGwrSvDVoSzwvdkwKcEX/WE9C aJjQvvnHM1i0suvaj9+Sqob9p3jMWHcB/j7w3QmPhE+6gc4eH1tzKR7R47C7DA3LFaSFStRT1A6 l+apz5lKUvOd+l3egADCLrC6cn5xfBRDDXuOHnpsp12v+6If2bCTRSimYmrbyVA/YDypDhkXlvS mjZDWbUfLoh/X7P96bWvPmg8VOhb9/uuWmlrmNOb+SYsRVYSW+qWgB0Aen29+ZhMVpaa7uBGqLM OeAD0CueoDEya9ZF5ng== X-Proofpoint-GUID: l-qHQDYWbNX6Wi7E3mspI8jNlEtiUsr6 X-Authority-Analysis: v=2.4 cv=RP++3oi+ c=1 sm=1 tr=0 ts=69aedde0 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=InO9qlFFT13rIqmD9gwA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_04,2026-03-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 priorityscore=1501 malwarescore=0 spamscore=0 phishscore=0 clxscore=1015 bulkscore=0 lowpriorityscore=0 impostorscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090133 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: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773067856278158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu_helper.h | 1 + target/hexagon/cpu_helper.c | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/target/hexagon/cpu_helper.h b/target/hexagon/cpu_helper.h index 18300657f3d..d15385daf83 100644 --- a/target/hexagon/cpu_helper.h +++ b/target/hexagon/cpu_helper.h @@ -16,5 +16,6 @@ void hexagon_set_sys_pcycle_count_low(CPUHexagonState *en= v, uint32_t); void hexagon_set_sys_pcycle_count_high(CPUHexagonState *env, uint32_t); void hexagon_modify_ssr(CPUHexagonState *env, uint32_t new, uint32_t old); int get_exe_mode(CPUHexagonState *env); +void clear_wait_mode(CPUHexagonState *env); =20 #endif diff --git a/target/hexagon/cpu_helper.c b/target/hexagon/cpu_helper.c index b6a8bd35309..6fbf5fc8e2f 100644 --- a/target/hexagon/cpu_helper.c +++ b/target/hexagon/cpu_helper.c @@ -64,6 +64,21 @@ void hexagon_modify_ssr(CPUHexagonState *env, uint32_t n= ew, uint32_t old) g_assert_not_reached(); } =20 +void clear_wait_mode(CPUHexagonState *env) +{ + g_assert(bql_locked()); + + HexagonCPU *cpu =3D env_archcpu(env); + if (cpu->globalregs) { + const uint32_t modectl =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_MODECTL, + env->threadId); + uint32_t thread_wait_mask =3D GET_FIELD(MODECTL_W, modectl); + thread_wait_mask &=3D ~(0x1 << env->threadId); + SET_SYSTEM_FIELD(env, HEX_SREG_MODECTL, MODECTL_W, thread_wait_mas= k); + } +} + int get_exe_mode(CPUHexagonState *env) { g_assert_not_reached(); --=20 2.34.1 From nobody Sat Apr 11 21:30:50 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=1773067797; cv=none; d=zohomail.com; s=zohoarc; b=Ly8XCdPvS4FGb9uXWU2Sd8zt7Ow2H1zAFOHEmuXQcflnnkmwQmcAcOaobsJJzAzpK1oUDIXgWnBm+Tf4y3qGcqZ7NIttjdbUK3fJEUhExb4gZq4o1nJrzFzq8awDLH9kEz2WztvrqmDXcB6hTC6ra0nrJaplK1TqYeynIxEwdSA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773067797; 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=irvm1RxO0OAfJRQlGB3/N60T8RyhNbiLkFoVifwjYXQ=; b=MPCM/ObEml9SLcNXUOmY0qMwVGhAf3byM91QjMiCIRwz1zjvBNV1EHmkqt9jvBw9QXKq+ljeRxeTJNq7paaLaDHRT6aMbWfMFJ+oo64jYBnARop8Icm9dn9IjfzCgI+S4QmptCXSLxR0CplqTqt9QSzbHJsQLfmvmtVl3p6GK6k= 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 1773067797541636.2268827284691; Mon, 9 Mar 2026 07:49:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vzbv9-0001ht-Di; Mon, 09 Mar 2026 10:49:23 -0400 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 1vzbv4-0001VU-HN for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:49:18 -0400 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 1vzbv2-0005KP-TR for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:49:18 -0400 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 629Dr9oI4027630 for ; Mon, 9 Mar 2026 14:49:05 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 4csyfy06ku-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 14:49:05 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2bdf6fe90a9so11044906eec.1 for ; Mon, 09 Mar 2026 07:49:05 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be4f82b78esm9322776eec.12.2026.03.09.07.49.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 07:49:03 -0700 (PDT) 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= irvm1RxO0OAfJRQlGB3/N60T8RyhNbiLkFoVifwjYXQ=; b=QNJu+/EfrHN/fqb6 FAKgBIxzKGzLqxr9xJ1zGKH7EUdbIWP3pJy9L23P2t9rRU4w2Ro6cJzLg6B+dmnu Mtyp6hiYCyWNcJh8nB/TfifYhBYLH3kooKeo1vT6MOTiZSAsfZTJirO+sCj7USMx hmXwoqDyKE2yWsiVzQSnZfqNsrPbzCbjfERylEaFE/41byKb+HIMop1gf3nyck1Y H7Wd5hxo5Qko1DaECxx5ZPHtmG0tOH50kYIui2SUGRzlCLRFuOXgB2VQd/eRs5An iCG06jfTuKeVb2o0YCi989nJxLhQg0cRxO9cKd3cxDTEf0+NrtTMY9PFOrC2GjzH mLpzXw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773067745; x=1773672545; 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=irvm1RxO0OAfJRQlGB3/N60T8RyhNbiLkFoVifwjYXQ=; b=Rlsh7HtqB5ZVuUkCo5z84ZFOZWu7pSnAYhRPZj6kL6/6z+1G3r21TpLjOpchyTJbmN Qw5Q9brlZwnkpP2/a0cPbFnF/R+F6Xx/g4OemWIRHeWxIUoCeBHVowVfx6VT5DgsCmJ5 j2Rxa+XSdva2y8z0yyxKU+Xpujcjni0AdDtzjqdxij4+wLwJZZ0axl6i7J2GkAd4edpP zGlKC5Q2wzm6YivTvf3ILJEyT19119ANE23m9QtYEzvqJJxGGeiVdHthB7ioRXYCcfJ3 42WYNAQJcqmocLCVhgJpmoOYxJug+CIHfrGiNZloww2BEEWMfcMJprPzDoiL0WPpJOyK oIaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773067745; x=1773672545; 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=irvm1RxO0OAfJRQlGB3/N60T8RyhNbiLkFoVifwjYXQ=; b=tdWKicUwBh/WIYk4PJabCjqGW5mcqRCIFq/RiN9NkidW/76dnoQW8p99i09faU8U4a nJOARUi3Lz8+/xwNlToRU4sUekkqxk8P9q5jaLd56sAIQKGB4h4S+CKGQ5J77yAfklLH rxDQSasAXewAvhhxysX9h/jHPGX6zpQeZoucOVDR/QIv3pfEUQhc6+s7/iBbI+a+Tzrk zlb/kCF+dKjbwWWYYl+dXpzi/St68L6+LTvKhyIb5YgNdXJaxFcbyUy9Br9MIkSe3IrJ NfEdfV2LnsNCczxuLaH5DamfiY9i2Bf+zDUTudD/4edPsY33I/yVitaJPFNM8fPp8M4L qP9g== X-Gm-Message-State: AOJu0YyXYPzohBtl3dUojHYhZYzV+X3cmTb5bHNCsDbXXB/DP61izAUN OEPJffooeiI4jbhm/9hoHYhDHYTfVUBhy+3wk5C5ihW3bHNGghTmu7t23GcyhUN83QKpEbx5oxG QgRfG8ps9D/N6oTqz1h5OcXnXY9NWazNCX00z9yHJfAWpM5gtB+7hIPY7SPxIKOV6yg== X-Gm-Gg: ATEYQzzOz1aNDvEg4dq83iKFf+IKdR99Db4wCWkWzzJyQFSOgcUHWbzAoTPh84bDt7X 7gkRY1yYS+qCLhvIZF6aAs81gEUT6J1FOrqzxBJ5cvHBRw4OPU5sxWjxAz8m8HxGSTaPqJJPRvT 8Y0kTWNX24nJ0VmPfGPrv3O2e14WqFAgf+FTyeD9S+jyCc4OQ+nREwbItzQ+bo5dXiUaL5nio7o lHFkU4w6iPrz5ZBNe2NQZa/Lqo8OGdZcFuprCpVoJ72C16/u/trnCP2UypvIWGpCHT5nV6m62/O sLLe2L6pSZ0UIe2kNhmJ2DPcX9wFQL+xL4DNNxcFE3DB1EHI2uYkxxR9HEejERYDIt3CZUvNCFp V9zNKYrfCWeCs42ObrhY1BQ7Ayn1vm2Li+pq2/llTZJ315R70yEyqNMPLybsTk/i22Yh0/A== X-Received: by 2002:a05:693c:60cd:b0:2be:798f:23c2 with SMTP id 5a478bee46e88-2be798f2614mr33299eec.32.1773067744568; Mon, 09 Mar 2026 07:49:04 -0700 (PDT) X-Received: by 2002:a05:693c:60cd:b0:2be:798f:23c2 with SMTP id 5a478bee46e88-2be798f2614mr33286eec.32.1773067744011; Mon, 09 Mar 2026 07:49:04 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 34/35] target/hexagon: Define f{S,G}ET_FIELD macros Date: Mon, 9 Mar 2026 07:48:21 -0700 Message-Id: <20260309144822.877695-35-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> References: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDEzMyBTYWx0ZWRfX7u6/Shviyb+J e1Iw3yjAoQ06X1kFlZYWfCqYp+u6OL5t70NmjQDXaQ1+exTGTBXwiyKwVYPfy114sz+awk1MT7x RcG4sbeJVepvTGRgAZEnx2GtSmQEzEImyEZIIr/1Xk5uXatqD2gWdVHnX/JCfcYPsZTGj3XDdnD 0xu1SyfMyUnDx/c5E5+BrvZrw0XKMoqMHbfPW14idFM7RSTmDmBR2MnPSOzzJ1cIvFEuWCOl5sv pSA/vPTmLh4Mq+xUuVewATslFrwMUxJZ9+94TEhPtNrkuX8q3WL1m63u17WSdkJlFGqNONtP/Yw /rDxurUfBkL9r1FOcXsDObMgFsQ6xyIfiMrIPgsxVtx/X8sn3tuTGLvxpvuPhug0OCo6fnLWvGI PJLkjuUm4znK475gc+Ty1v3cIA1wO2LUPjlNCL8gm2CSbEq4ksuHIcTjilZp/sx2mRw6zKyU1pK ho1yVtl3Xc27JZoC4UQ== X-Authority-Analysis: v=2.4 cv=OcmVzxTY c=1 sm=1 tr=0 ts=69aedde1 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=OC-ZKJ6AczBSh3OnBRYA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: cKmv5WQ3JBdrWd3zE6LMvGRZ8ytZXr2N X-Proofpoint-ORIG-GUID: cKmv5WQ3JBdrWd3zE6LMvGRZ8ytZXr2N X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_04,2026-03-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 phishscore=0 clxscore=1015 adultscore=0 bulkscore=0 suspectscore=0 priorityscore=1501 lowpriorityscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090133 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: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773067798134158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/macros.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/target/hexagon/macros.h b/target/hexagon/macros.h index e4bfea4923f..26d3f7d8a4b 100644 --- a/target/hexagon/macros.h +++ b/target/hexagon/macros.h @@ -653,6 +653,16 @@ static inline TCGv gen_read_ireg(TCGv result, TCGv val= , int shift) reg_field_info[FIELD].width, \ reg_field_info[FIELD].offset) =20 +#define fGET_FIELD(VAL, FIELD) \ + fEXTRACTU_BITS(VAL, \ + reg_field_info[FIELD].width, \ + reg_field_info[FIELD].offset) +#define fSET_FIELD(VAL, FIELD, NEWVAL) \ + fINSERT_BITS(VAL, \ + reg_field_info[FIELD].width, \ + reg_field_info[FIELD].offset, \ + (NEWVAL)) + #ifdef QEMU_GENERATE #define fDCZEROA(REG) \ do { \ --=20 2.34.1 From nobody Sat Apr 11 21:30:50 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=1773067856; cv=none; d=zohomail.com; s=zohoarc; b=DJgKO2GWmEngWwNg1JwNgA04L1q3iqu6XPS6fiWNEdrtCgQoIk8hV1CphAUBHkZaqfyT0CloGEQUCWSXZA7GzQotumubJJO7xQL46Aaw7JgwGdzSpxh0+hIwEaQrbaPZPARTD1Be5k/toAFiGwNbnF27W7xwBQE85TkZL7ZcNWI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773067856; 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=drZCSiR/Lb07j5mLq6FsfxF0pIT7Ny6NPQHOqeriHFU=; b=j1srD2ywSS3kn8oLWm07EmPxETLjDMTXOrVnZYg9tjn4PdZebyqcYiqgMTm0ycxAhOFI8pEMnQ4TM/e0DfxmbKHnGJ1W6eINJwMFpSF4c6/vySiFr22jkgYPMAMg/Tr3plEBJBi8utlEOVKmZSVz9o2lx9zrtcmbT2PhStUVRB8= 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 1773067856763162.92056359133528; Mon, 9 Mar 2026 07:50:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vzbv8-0001gm-8W; Mon, 09 Mar 2026 10:49:22 -0400 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 1vzbv6-0001c3-DD for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:49:20 -0400 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 1vzbv3-0005Kh-UL for qemu-devel@nongnu.org; Mon, 09 Mar 2026 10:49:20 -0400 Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 629DHMsR1379889 for ; Mon, 9 Mar 2026 14:49:06 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4csxy80a3w-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 14:49:06 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-2be27d4e3e5so79014522eec.1 for ; Mon, 09 Mar 2026 07:49:06 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be4f82b78esm9322776eec.12.2026.03.09.07.49.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 07:49:04 -0700 (PDT) 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= drZCSiR/Lb07j5mLq6FsfxF0pIT7Ny6NPQHOqeriHFU=; b=jrnhYfClUG+rrGX/ KPRLofaAYOBeO6zeTDEpBdhR11vyQhc1Vl2vlYLHzx+Hh92Ses8RkrPd/E63avmF v3UjwXyrUgK1ztSrwIdSaQwOfd8iy9z+zGlmMmev9etSn5ormGcIdXRrDK5HYyGG CdRydAnbcWyC7Hqg5SsS1XTgFXIIK9fAClR6EjRtsS9tpjmieINSTDL8PQvNmyFE 7YHy2CNrvZ0VSPDDZz9jjAwVGQTzQcjAp+3jQBT2AAXkJt8PC+kkoTIsJIcFBRT9 T425EGgA9W7uxlPfJOTMuG+Ro7Va6mbaErm1Lde1QN48dhPeYFt0k9dU+y4yTOCm /LzJqA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773067746; x=1773672546; 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=drZCSiR/Lb07j5mLq6FsfxF0pIT7Ny6NPQHOqeriHFU=; b=NuCUVKNd6C+ZUUta2KCSs7g9tzOOzdraSG0y+/ZnKEPnnsRVdXsfq/Iscb/lEYQVrj COcd30okLw704alo2gQidId2sqIB7a2BPPOvC0tpf8ugOa0Vbyx9s18CQ37ec4honLMS Um/Z7osQDFBtLl10Br+d382TnL7T7JMHJLmRp+nPXZBG2DBLIClBO3G5Tt2F0dXoDZH+ dHp7SQOHBUFczFIvivBEN5VJ/iHNWWv6FqK8L6Kqccm9pfW8IXCvxhSIRdv5fBp7QNS/ 4C7tzKhTR1y/aRTWchDgZb0efmSKMcrTlpBQugbV15eXIZvP3HJGZ/qmQNQ5ffdNSODG CpjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773067746; x=1773672546; 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=drZCSiR/Lb07j5mLq6FsfxF0pIT7Ny6NPQHOqeriHFU=; b=p/LhlV5A1X8T+Mk3+9oqGyWxnwhwtP+oxeYXVrXwG8q2P8vOPJ0qhSTN6hJV+uu5Kd OLIUlZqAGZG8rxpfKmob3LKLMKXzMpDHCvofUpv9inpilZdU9m/FvutojYCTBzujB2k3 ElJQX6Zmm78/3yc4ZpXtSom4JoJp1UF/kSKCtJN9rr2uhh+tLi92vtTQJceDGFE0+/mv Hi62M1ue3QtBhr8mEILMOCn48w5yB1nuvXn+nSUCjRYcG9+gVSp3hQCLcnc7PsrR0AAu 13K6cxK7xFwEwEyyqGEE6HxYtX4owkJnYq3Mf0jYCTdpNzKHd/EMckiJbFyCt+EHiXFs EIqg== X-Gm-Message-State: AOJu0YxHM4G2dcSND5zQL9QYr9fu0744bKlStw2RO86znyArHhwvu6mQ 8aSgOP1K6kRFzL0NV6ldPVwnkBkQFykvi3GTmijgdGMotgfDS0RC8DOSvDYM6BfYd1AoZJHIgB7 bVBUC9baGan4dC3i56fOyhmKG7Fc+2fjkBZwBR879WRsVm9QlhhW2RUi6wAfl5JT0Tg== X-Gm-Gg: ATEYQzwxCn/HPu3QqJXJCsYpZW8NbNFzMLD74becb/TX++6BTOihpmv7ITY8ftdemRE sTTdYyjMXVUb1n3AJWc5z/qu84h6HbOLdfh+DvdPnXTma2ktrVVLJNkeXylhlgp30Ans+fdMVIE vv+877jC4sR9CV0gkruVMz/1gaPZBi3BWpEeW48hdmau2b90wswbJYV+uOjK4uBdpXIjVQpnPZQ 1xbl1+wVGrl3xxNwiEvDcnTPI7EVE5NWnAcKjxgtq/CJMG30PP6EIZQrQXejcFXIfN1RfO4BYGM z8715oPf5vEL3hCHZQLals3j/YHT2K5xJxTI6rFbwLg9I85/tTk+1HJIy7x5gLnwSdSPqS8zloT NuQYyHxOLTO7m4Wspy6gpQF2jv2Juo1/oO44Zao63+RXjGVynY9a4FQv5vO4RQmud05fCig== X-Received: by 2002:a05:7301:4591:b0:2b6:ffb9:9633 with SMTP id 5a478bee46e88-2be4de9a868mr4666596eec.15.1773067745451; Mon, 09 Mar 2026 07:49:05 -0700 (PDT) X-Received: by 2002:a05:7301:4591:b0:2b6:ffb9:9633 with SMTP id 5a478bee46e88-2be4de9a868mr4666571eec.15.1773067744801; Mon, 09 Mar 2026 07:49:04 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain , Sid Manning , Michael Lambert Subject: [PATCH v4 35/35] target/hexagon: Add hex_interrupts support Date: Mon, 9 Mar 2026 07:48:22 -0700 Message-Id: <20260309144822.877695-36-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309144822.877695-1-brian.cain@oss.qualcomm.com> References: <20260309144822.877695-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=SvmdKfO0 c=1 sm=1 tr=0 ts=69aedde2 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=VnV_t2xz1Vg1SzblAT0A:9 a=QEXdDO2ut3YA:10 a=O8hF6Hzn-FEA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: GPIGrgEPeO5db5sgGsFjyqxTCxW0yRIg X-Proofpoint-ORIG-GUID: GPIGrgEPeO5db5sgGsFjyqxTCxW0yRIg X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDEzMyBTYWx0ZWRfX2fiE/L0w/vka K1lIEyaEJA2Ehslv+XdBKdGDyTRB6g+sCjvz4p+xYckTAriR7VldwANOMQ2zb3pS1/f6vf3+sn3 ZrLg/W1OuB7R795g1c0T50t/G4L06MKaTD8y8ladMrF4q2nlv0BLPtTKZffybpLYt0OR+OGzbeO PwvOaRowLgLZDQ3AdOIu3uK91byrmO8Aty8BhmcDuoW3XxWIGpuhjWpScbGW8rTJyNU9qAnET5d 1VoKGDh5JGLVQJvQSsfXJeyFsPue6jVGge2gQrb58LoexCiRM4+dXhWggkWHYqrsXd/Odk9WlQO nQ4aI2pl0YbN6D9GFm0JUjPwAvcv6v2ptkBXW5VaXRyHRbVHsaN9Et6JVYj+DYCRtv045LIYx5d 3XZTIXOilQSsZ6nacfL6X0JhOJvwxhky3Ow6W9W+Kbl202KLUyD5mttWIJt44mob6NRoF9hc/Wo 7/HZPNMf5GxS53tgiiQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_04,2026-03-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 impostorscore=0 spamscore=0 priorityscore=1501 clxscore=1015 lowpriorityscore=0 adultscore=0 bulkscore=0 phishscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090133 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: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773067858216154100 From: Brian Cain Co-authored-by: Taylor Simpson Co-authored-by: Sid Manning Co-authored-by: Michael Lambert Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 3 + target/hexagon/hex_interrupts.h | 15 ++ target/hexagon/cpu.c | 5 + target/hexagon/hex_interrupts.c | 375 ++++++++++++++++++++++++++++++++ 4 files changed, 398 insertions(+) create mode 100644 target/hexagon/hex_interrupts.h create mode 100644 target/hexagon/hex_interrupts.c diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index d8092cb6fe7..344f1cfdf5b 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -192,6 +192,9 @@ struct ArchCPU { bool short_circuit; #ifndef CONFIG_USER_ONLY struct HexagonTLBState *tlb; + uint32_t hvx_contexts; + uint32_t boot_addr; + struct HexagonGlobalRegState *globalregs; uint32_t htid; #endif }; diff --git a/target/hexagon/hex_interrupts.h b/target/hexagon/hex_interrupt= s.h new file mode 100644 index 00000000000..6b6f5403633 --- /dev/null +++ b/target/hexagon/hex_interrupts.h @@ -0,0 +1,15 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HEX_INTERRUPTS_H +#define HEX_INTERRUPTS_H + +bool hex_check_interrupts(CPUHexagonState *env); +void hex_clear_interrupts(CPUHexagonState *env, uint32_t mask, uint32_t ty= pe); +void hex_raise_interrupts(CPUHexagonState *env, uint32_t mask, uint32_t ty= pe); +void hex_interrupt_update(CPUHexagonState *env); + +#endif diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 5c937fa1cd1..7b340060344 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -61,6 +61,10 @@ static const Property hexagon_cpu_properties[] =3D { #if !defined(CONFIG_USER_ONLY) DEFINE_PROP_LINK("tlb", HexagonCPU, tlb, TYPE_HEXAGON_TLB, HexagonTLBState *), + DEFINE_PROP_UINT32("exec-start-addr", HexagonCPU, boot_addr, 0xfffffff= f), + DEFINE_PROP_UINT32("hvx-contexts", HexagonCPU, hvx_contexts, 0), + DEFINE_PROP_LINK("global-regs", HexagonCPU, globalregs, + TYPE_HEXAGON_GLOBALREG, HexagonGlobalRegState *), DEFINE_PROP_UINT32("htid", HexagonCPU, htid, 0), #endif DEFINE_PROP_BOOL("lldb-compat", HexagonCPU, lldb_compat, false), @@ -340,6 +344,7 @@ static void hexagon_cpu_reset_hold(Object *obj, ResetTy= pe type) HexagonCPU *cpu =3D HEXAGON_CPU(cs); env->t_sreg[HEX_SREG_HTID] =3D cpu->htid; env->threadId =3D cpu->htid; + env->gpr[HEX_REG_PC] =3D cpu->boot_addr; #endif env->cause_code =3D HEX_EVENT_NONE; } diff --git a/target/hexagon/hex_interrupts.c b/target/hexagon/hex_interrupt= s.c new file mode 100644 index 00000000000..f1be67d5116 --- /dev/null +++ b/target/hexagon/hex_interrupts.c @@ -0,0 +1,375 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "qemu/log.h" +#include "qemu/main-loop.h" +#include "cpu.h" +#include "cpu_helper.h" +#include "exec/cpu-interrupt.h" +#include "hex_interrupts.h" +#include "macros.h" +#include "sys_macros.h" +#include "system/cpus.h" +#include "hw/hexagon/hexagon_globalreg.h" + +static bool hex_is_qualified_for_int(CPUHexagonState *env, int int_num); + +static bool get_syscfg_gie(CPUHexagonState *env) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t syscfg =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_SYSCFG, + env->threadId) : 0; + return GET_SYSCFG_FIELD(SYSCFG_GIE, syscfg); +} + +static bool get_ssr_ex(CPUHexagonState *env) +{ + uint32_t ssr =3D env->t_sreg[HEX_SREG_SSR]; + return GET_SSR_FIELD(SSR_EX, ssr); +} + +static bool get_ssr_ie(CPUHexagonState *env) +{ + uint32_t ssr =3D env->t_sreg[HEX_SREG_SSR]; + return GET_SSR_FIELD(SSR_IE, ssr); +} + +/* Do these together so we only have to call hexagon_modify_ssr once */ +static void set_ssr_ex_cause(CPUHexagonState *env, int ex, uint32_t cause) +{ + uint32_t old =3D env->t_sreg[HEX_SREG_SSR]; + SET_SYSTEM_FIELD(env, HEX_SREG_SSR, SSR_EX, ex); + SET_SYSTEM_FIELD(env, HEX_SREG_SSR, SSR_CAUSE, cause); + uint32_t new =3D env->t_sreg[HEX_SREG_SSR]; + hexagon_modify_ssr(env, new, old); +} + +static bool get_iad_bit(CPUHexagonState *env, int int_num) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t ipendad =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_IPENDAD, + env->threadId) : 0; + uint32_t iad =3D GET_FIELD(IPENDAD_IAD, ipendad); + return extract32(iad, int_num, 1); +} + +static void set_iad_bit(CPUHexagonState *env, int int_num, int val) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t ipendad =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_IPENDAD, + env->threadId) : 0; + uint32_t iad =3D GET_FIELD(IPENDAD_IAD, ipendad); + iad =3D deposit32(iad, int_num, 1, val); + fSET_FIELD(ipendad, IPENDAD_IAD, iad); + if (cpu->globalregs) { + hexagon_globalreg_write(cpu->globalregs, HEX_SREG_IPENDAD, + ipendad, env->threadId); + } +} + +static uint32_t get_ipend(CPUHexagonState *env) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t ipendad =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_IPENDAD, + env->threadId) : 0; + return GET_FIELD(IPENDAD_IPEND, ipendad); +} + +static inline bool get_ipend_bit(CPUHexagonState *env, int int_num) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t ipendad =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_IPENDAD, + env->threadId) : 0; + uint32_t ipend =3D GET_FIELD(IPENDAD_IPEND, ipendad); + return extract32(ipend, int_num, 1); +} + +static void clear_ipend(CPUHexagonState *env, uint32_t mask) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t ipendad =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_IPENDAD, + env->threadId) : 0; + uint32_t ipend =3D GET_FIELD(IPENDAD_IPEND, ipendad); + ipend &=3D ~mask; + fSET_FIELD(ipendad, IPENDAD_IPEND, ipend); + if (cpu->globalregs) { + hexagon_globalreg_write(cpu->globalregs, HEX_SREG_IPENDAD, + ipendad, env->threadId); + } +} + +static void set_ipend(CPUHexagonState *env, uint32_t mask) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t ipendad =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_IPENDAD, + env->threadId) : 0; + uint32_t ipend =3D GET_FIELD(IPENDAD_IPEND, ipendad); + ipend |=3D mask; + fSET_FIELD(ipendad, IPENDAD_IPEND, ipend); + if (cpu->globalregs) { + hexagon_globalreg_write(cpu->globalregs, HEX_SREG_IPENDAD, + ipendad, env->threadId); + } +} + +static void set_ipend_bit(CPUHexagonState *env, int int_num, int val) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t ipendad =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_IPENDAD, + env->threadId) : 0; + uint32_t ipend =3D GET_FIELD(IPENDAD_IPEND, ipendad); + ipend =3D deposit32(ipend, int_num, 1, val); + fSET_FIELD(ipendad, IPENDAD_IPEND, ipend); + if (cpu->globalregs) { + hexagon_globalreg_write(cpu->globalregs, HEX_SREG_IPENDAD, + ipendad, env->threadId); + } +} + +static bool get_imask_bit(CPUHexagonState *env, int int_num) +{ + uint32_t imask =3D env->t_sreg[HEX_SREG_IMASK]; + return extract32(imask, int_num, 1); +} + +static uint32_t get_prio(CPUHexagonState *env) +{ + uint32_t stid =3D env->t_sreg[HEX_SREG_STID]; + return extract32(stid, reg_field_info[STID_PRIO].offset, + reg_field_info[STID_PRIO].width); +} + +static void set_elr(CPUHexagonState *env, uint32_t val) +{ + env->t_sreg[HEX_SREG_ELR] =3D val; +} + +static bool get_schedcfgen(CPUHexagonState *env) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t schedcfg =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_SCHEDCFG, + env->threadId) : 0; + return extract32(schedcfg, reg_field_info[SCHEDCFG_EN].offset, + reg_field_info[SCHEDCFG_EN].width); +} + +static bool is_lowest_prio(CPUHexagonState *env, int int_num) +{ + uint32_t my_prio =3D get_prio(env); + CPUState *cs; + + CPU_FOREACH(cs) { + CPUHexagonState *hex_env =3D cpu_env(cs); + if (!hex_is_qualified_for_int(hex_env, int_num)) { + continue; + } + + /* Note that lower values indicate *higher* priority */ + if (my_prio < get_prio(hex_env)) { + return false; + } + } + return true; +} + +static bool hex_is_qualified_for_int(CPUHexagonState *env, int int_num) +{ + bool syscfg_gie =3D get_syscfg_gie(env); + bool iad =3D get_iad_bit(env, int_num); + bool ssr_ie =3D get_ssr_ie(env); + bool ssr_ex =3D get_ssr_ex(env); + bool imask =3D get_imask_bit(env, int_num); + + return syscfg_gie && !iad && ssr_ie && !ssr_ex && !imask; +} + +static void clear_pending_locks(CPUHexagonState *env) +{ + g_assert(bql_locked()); + if (env->k0_lock_state =3D=3D HEX_LOCK_WAITING) { + env->k0_lock_state =3D HEX_LOCK_UNLOCKED; + } + if (env->tlb_lock_state =3D=3D HEX_LOCK_WAITING) { + env->tlb_lock_state =3D HEX_LOCK_UNLOCKED; + } +} + +static bool should_not_exec(CPUHexagonState *env) +{ + return (get_exe_mode(env) =3D=3D HEX_EXE_MODE_WAIT); +} + +static void restore_state(CPUHexagonState *env, bool int_accepted) +{ + CPUState *cs =3D env_cpu(env); + cpu_reset_interrupt(cs, CPU_INTERRUPT_HARD | CPU_INTERRUPT_SWI); + if (!int_accepted && should_not_exec(env)) { + cpu_interrupt(cs, CPU_INTERRUPT_HALT); + } +} + +static void hex_accept_int(CPUHexagonState *env, int int_num) +{ + CPUState *cs =3D env_cpu(env); + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t evb =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_EVB, + env->threadId) : 0; + const int exe_mode =3D get_exe_mode(env); + const bool in_wait_mode =3D exe_mode =3D=3D HEX_EXE_MODE_WAIT; + + set_ipend_bit(env, int_num, 0); + set_iad_bit(env, int_num, 1); + set_ssr_ex_cause(env, 1, HEX_CAUSE_INT0 | int_num); + cs->exception_index =3D HEX_EVENT_INT0 + int_num; + env->cause_code =3D HEX_EVENT_INT0 + int_num; + clear_pending_locks(env); + if (in_wait_mode) { + qemu_log_mask(CPU_LOG_INT, + "%s: thread " TARGET_FMT_ld " resuming, exiting WAIT mode\n", + __func__, env->threadId); + set_elr(env, env->wait_next_pc); + clear_wait_mode(env); + cs->halted =3D false; + } else if (env->k0_lock_state =3D=3D HEX_LOCK_WAITING) { + g_assert_not_reached(); + } else { + set_elr(env, env->gpr[HEX_REG_PC]); + } + env->gpr[HEX_REG_PC] =3D evb | (cs->exception_index << 2); + if (get_ipend(env) =3D=3D 0) { + restore_state(env, true); + } +} + + +bool hex_check_interrupts(CPUHexagonState *env) +{ + CPUState *cs =3D env_cpu(env); + bool int_handled =3D false; + bool ssr_ex =3D get_ssr_ex(env); + int max_ints =3D 32; + bool schedcfgen; + + /* Early exit if nothing pending */ + if (get_ipend(env) =3D=3D 0) { + restore_state(env, false); + return false; + } + + BQL_LOCK_GUARD(); + /* Only check priorities when schedcfgen is set */ + schedcfgen =3D get_schedcfgen(env); + for (int i =3D 0; i < max_ints; i++) { + if (!get_iad_bit(env, i) && get_ipend_bit(env, i)) { + qemu_log_mask(CPU_LOG_INT, + "%s: thread[" TARGET_FMT_ld "] " + "pc =3D 0x" TARGET_FMT_lx + " found int %d\n", + __func__, env->threadId, + env->gpr[HEX_REG_PC], i); + if (hex_is_qualified_for_int(env, i) && + (!schedcfgen || is_lowest_prio(env, i))) { + qemu_log_mask(CPU_LOG_INT, + "%s: thread[" TARGET_FMT_ld "] int %d handle= d_\n", + __func__, env->threadId, i); + hex_accept_int(env, i); + int_handled =3D true; + break; + } + bool syscfg_gie =3D get_syscfg_gie(env); + bool iad =3D get_iad_bit(env, i); + bool ssr_ie =3D get_ssr_ie(env); + bool imask =3D get_imask_bit(env, i); + + qemu_log_mask(CPU_LOG_INT, + "%s: thread[" TARGET_FMT_ld "] " + "int %d not handled, qualified: %d, " + "schedcfg_en: %d, low prio %d\n", + __func__, env->threadId, i, + hex_is_qualified_for_int(env, i), schedcfgen, + is_lowest_prio(env, i)); + + qemu_log_mask(CPU_LOG_INT, + "%s: thread[" TARGET_FMT_ld "] " + "int %d not handled, GIE %d, iad %d, " + "SSR:IE %d, SSR:EX: %d, imask bit %d\n", + __func__, env->threadId, i, syscfg_gie, iad, ssr= _ie, + ssr_ex, imask); + } + } + + /* + * If we didn't handle the interrupt and it wasn't + * because we were in EX state, then we won't be able + * to execute the interrupt on this CPU unless something + * changes in the CPU state. Clear the interrupt_request bits + * while preserving the IPEND bits, and we can re-assert the + * interrupt_request bit(s) when we execute one of those instructions. + */ + if (!int_handled && !ssr_ex) { + restore_state(env, int_handled); + } else if (int_handled) { + assert(!cs->halted); + } + + return int_handled; +} + +void hex_clear_interrupts(CPUHexagonState *env, uint32_t mask, uint32_t ty= pe) +{ + if (mask =3D=3D 0) { + return; + } + + /* + * Notify all CPUs that the interrupt has happened + */ + BQL_LOCK_GUARD(); + clear_ipend(env, mask); + hex_interrupt_update(env); +} + +void hex_raise_interrupts(CPUHexagonState *env, uint32_t mask, uint32_t ty= pe) +{ + g_assert(bql_locked()); + if (mask =3D=3D 0) { + return; + } + + /* + * Notify all CPUs that the interrupt has happened + */ + set_ipend(env, mask); + hex_interrupt_update(env); +} + +void hex_interrupt_update(CPUHexagonState *env) +{ + CPUState *cs; + + g_assert(bql_locked()); + if (get_ipend(env) !=3D 0) { + CPU_FOREACH(cs) { + CPUHexagonState *hex_env =3D cpu_env(cs); + const int exe_mode =3D get_exe_mode(hex_env); + if (exe_mode !=3D HEX_EXE_MODE_OFF) { + cpu_interrupt(cs, CPU_INTERRUPT_SWI); + cpu_resume(cs); + } + } + } +} --=20 2.34.1