From nobody Wed Apr 1 20:45:44 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=1775057663; cv=none; d=zohomail.com; s=zohoarc; b=aUup5Qai7PDRrYhnQ62KdRi27imlMFo8Bxv3gjK6m2kBPm1MS8fOA1zeZUl58n55XJMyJN/vlsLPnJoOOzBHFyHEF9J+a1wHl4GJoPZaxZKo0lARE3rbtErq34udWxxuKVudEuPA3OXWuX1ZD1t8zMT7zoPBsR21ljVj4DZ7JJA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057663; 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=Qg9kBLwTYVdPB/nS+Fb99qJuiK9fYUX9CXzjgnkonsA=; b=QJiLnaWUYlf7Sr8yeR0A2NS4Vszvw7npfoO9WN5VW5vz/HvPfw1UMXSNShUluKuxEEPKoi4fTZHTwGEYuYhmVVnN9y4QEdeIBgnNCGiTPD1wo4kLUC44fFUP0sFYbF/HFn/erL4twXjvakqn/F/zZIe8H993AJF5oeywdkJ26w8= 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 1775057663734225.1778820963524; Wed, 1 Apr 2026 08:34:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xZV-0003up-Ul; Wed, 01 Apr 2026 11:33:34 -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 1w7xZR-0003oN-Ub for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:33:30 -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 1w7xZP-0000vW-CF for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:33:29 -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 631C4ug32398531 for ; Wed, 1 Apr 2026 15:33:25 GMT Received: from mail-vs1-f71.google.com (mail-vs1-f71.google.com [209.85.217.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d9324gxye-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:33:25 +0000 (GMT) Received: by mail-vs1-f71.google.com with SMTP id ada2fe7eead31-60580db2539so203808137.1 for ; Wed, 01 Apr 2026 08:33:25 -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-2ca78df3b84sm38491eec.5.2026.04.01.08.27.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:27:46 -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= Qg9kBLwTYVdPB/nS+Fb99qJuiK9fYUX9CXzjgnkonsA=; b=Ycsbzq2VXloACF9U leOWri5evBmj//tTI4a618OSuAiIc+MpmjeoQrsKZD0QXy6nbVfMxFSpG2l9O9iM IBNJrEXUDspftv4JrSGzq8StraYwQxc8ospQxWfHK+ls6jCl7MBkFc80JNfSsvWC HDUB9+vMM4adDkI5XcovI8ZT578VPUNB6QwZBkIlXh3ERzWt3YZ0gnHDWvi4K6Ig OnwcM/dp68V3A3GHX4OueJq+h//IwmipsyvYN+G4IuCqRGywnqz7A90dphh6y9D7 ilDX2bdtOKnvAcGSJNOkIB06VRacGS1/SxtMyql583WEEr7Zx4PUL/QVO+yvOcWa A4W2ng== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057604; x=1775662404; 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=Qg9kBLwTYVdPB/nS+Fb99qJuiK9fYUX9CXzjgnkonsA=; b=BXwkdmlGP0KQLZKZ+FDWs0mRKrzzXA88IHYVLopbYL/5RuHVysGkAxjAuM6wH2e4qs 55y8aF6heG/rLl/oS5zsmpebtL++xwvV8EhuJp51HKzGM7vB/+pdVyKjagUxZhMdMS+q uJYYm/vNMnpLAv6CWnbAXIWtlsFnO9XbTak9pg3cBzNUMkNG+QOdIZg+rG/zAbHLv0u7 qftv/LcA7pPmZqXnk768l2gtCqZwJepZa8SsXMH8x0lxqmJTUBYQWjrBNgAYnrRd84AZ SI4B4kZB6jLizOv8VUfeuNkHvJ0B1FwPsqcUP0ktko2xmctkg701VYUYHfx0LMWXxNXr msoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057604; x=1775662404; 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=Qg9kBLwTYVdPB/nS+Fb99qJuiK9fYUX9CXzjgnkonsA=; b=JWRdPQlZgsw0BgV3WLDa1rBOJj6m2aDgndYDUPafXMyXt5UoFNWulzxPjqb2li8ldf ATQUGMYHWmoKKjEi0WNm4aNtebPAm4P2v4xzQY5TEPR+ORjupoN176QbymGkgicF9bL0 ScZ/dnoUvM1twOYoZO/5X6AMaox8stxNhI/zndUH5IyuAZHk81pbFp4g++gmC9823rx0 jlzwBX2VzEA3kFqNAsJcLwW0C69H2zwADD4xnlS8nNZ0QHkVms+LnN2DRWNTWa0O7Xjq 7DTrJRW0id4R88inBRzEq3T4SgiqMAxxnldvHdIV1Jtsns9fqMRZme81lkXJYg1Umx9O +d+Q== X-Gm-Message-State: AOJu0YzOlJL8XAtUUf4dJ2cyeUc12uoSBvP0vgXfdWb4tocduwEI5qqY xnQEhVFv7cuDS+0SsShhK1UGyZ6HnhyA9fL9F0isIlsMiDosDaaoxny8+DHCBB/qofFQ12aK54m WqBs3vIyPGuAeD2RciNWYbGiVTGqdlcONrAUwYBRKwc9NI9Win+JR4wGB0vzBgf8B3Q== X-Gm-Gg: ATEYQzxR0lsXMcCgFMOopNRV4/DMAY+I2bydajh3Nc10V1BbnACSJFFmG414KCpL8lZ tT5zUm4MizweYo3Ah4bMECOW7wxBQ0u1SeBPfDnRMGD1Qw4ockMIHbBC+v2J0tKOijz2qszk2Uq KZp5vNkVqmfMw9pAj4K3A+CW/eIDkAWF1fWHsG0CbvqYcEY7V0E6CUOiyzH/IOAQcjjR7lxR2iL 75cyHca+AHr34yjCVHT9CD6rpIya8AmF5xaL5jqh4mkF/JCbs0PDQta446VId12o0iDhvFO+aOS ihi8ML+CjtBSDejmjnaBgzilFhDVd/zCQJRgf82yL1rt8ZtDXsEVX3kMQbCexTIcfBjVXv6537Z gZJD9hZmNtVvoO8ZUZqyxoAmmqQLxOO5H3u8u0K3vqMx77nf3fHK4/15GDZV+DmbTxexNBQ== X-Received: by 2002:a05:7301:7c01:b0:2be:b20a:9b69 with SMTP id 5a478bee46e88-2c7bcb2ef8bmr3454922eec.12.1775057267394; Wed, 01 Apr 2026 08:27:47 -0700 (PDT) X-Received: by 2002:a05:7301:7c01:b0:2be:b20a:9b69 with SMTP id 5a478bee46e88-2c7bcb2ef8bmr3454898eec.12.1775057266726; Wed, 01 Apr 2026 08:27: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 , Pierrick Bouvier Subject: [PATCH v6 01/37] docs: Add hexagon sysemu docs Date: Wed, 1 Apr 2026 08:26:21 -0700 Message-Id: <20260401152657.314902-2-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-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: IY4LoDx4SN3AD6-5Xzhmres5R24ElwMG X-Authority-Analysis: v=2.4 cv=TKBIilla c=1 sm=1 tr=0 ts=69cd3ac5 cx=c_pps a=P2rfLEam3zuxRRdjJWA2cw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=NEAV23lmAAAA:8 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=fXLLft-zuLPsu7fQao0A:9 a=QEXdDO2ut3YA:10 a=ODZdjJIeia2B_SHc_B0f:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAxMDE0NSBTYWx0ZWRfXwOiD702z+04U 8IEcCKp5JnXCZeTxvf8OEYrlEp5V6gGyrYwDkR1EbHjAuRmyRmrE4yP4WrYTmmSV6sk/bDcs/Jc WkVZCWwZwKZCAqRYVhwLcnk7Vqgd/6rSo7y7a3s44Yb6AN/+rF6cjYy3U+jfeMSOXxftRKKRmKs pH51WiILF6SOlt77oDw85iLXQFZySei8jt363T43zq3gIymMIV33/Ad3qpfWX0Tyx3Y6sF5WXdC HafoJrKO6M9SSDf5TB4L5JFLFQ19ldeSxsvU0AtqHAGi0/mrDsThf2naFnXlm5zjFUOdb9AQZxA Qae92PXvsZbPf2pcU9jBFBUfs90RWLO+UhterZhPVXKaJ2VjDZL+ImxFvsyu4RB7bjq71AbVOPr Dh/ElAxTPh07tbHW1HYf9mi7AaGcxl3k+k3t5cX1cv9yTtP/6wXAGo1Dcwx8z+Hob8bvUEnAW8m y/G2EKnmn3HAEpYJeSg== X-Proofpoint-ORIG-GUID: IY4LoDx4SN3AD6-5Xzhmres5R24ElwMG 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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 adultscore=0 spamscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 lowpriorityscore=0 suspectscore=0 bulkscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010145 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057664808158500 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 ad215eced84..4055fbe3c21 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -254,6 +254,9 @@ F: disas/hexagon.c F: configs/targets/hexagon-linux-user/default.mak F: docker/dockerfiles/debian-hexagon-cross.docker F: gdbstub/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 Wed Apr 1 20:45:44 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=1775057786; cv=none; d=zohomail.com; s=zohoarc; b=O4zMSgzxbzWBUZgZxHYeJ5npdwXmJfhdLc8h2oLmHVfzlNcopmKPj/NDMjtjrOdcCmPO+VzVmIKLhVOqhkDAXYz10apX8Cq8WkiP5U4/wn+JfWpqkCn0ss3nIDNTEoo/G64sW9dltNMNO7rxIPiwfPkfTGFOGy6dppXGL726hh4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057786; 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=jvNSC8poP+qwYtz1xZbovXiJMkmoZCU6yMIg796FAUw=; b=bg4k3xcwowcmIfEkNll9FQlkEnXvCKEV0isN8nNmZqzUwjmyJVL+fZhnL6+iUlpADrFjdQ3kL0f2FKkNKDcZ7PkovU4RyvzRjL5GCiP+wFXgdEv8+G57hNZdZBzp0SBfG3Be83UDRrgYzhLZTInZZUptn05VnqUF9Eoyb5ADpRA= 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 1775057786858954.8156368053205; Wed, 1 Apr 2026 08:36:26 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xad-0004eP-Rb; Wed, 01 Apr 2026 11:34:45 -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 1w7xZx-00044i-OK for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:34:08 -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 1w7xZr-00011J-FX for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:33:56 -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 631DPeve1893840 for ; Wed, 1 Apr 2026 15:33:54 GMT Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d9483rmp8-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:33:53 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-50b4076dc16so103362071cf.2 for ; Wed, 01 Apr 2026 08:33: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-2ca78df3b84sm38491eec.5.2026.04.01.08.27.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:27: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= jvNSC8poP+qwYtz1xZbovXiJMkmoZCU6yMIg796FAUw=; b=F6NmjzE9WfWJzYGT mBxxvebo8ebT4lfSK8X9gNT7e1ZmOU/nMS65ELmtbVU+PyVRUy6mx4bHdcdb7y1P N0T0bpEmPGj0qWxeyCakDGqrovkcnCZJH//i5AtgxZ+zIApxtmv3lyLPcd0ItN3N L/afv8314is0HNC0m0tY/bPdiGuEVkUe6yiXWM0JCrcK/1bUSIHQRXOa1nBhsXdB vzw9lbu3YTXlnAJxTmdp58qCufsR3SqzZp5BTpKmA2BraHQRPZYFxcGFV+ZQje3n +gPj8MNaYua9pvFja0d3kzDz7LsRssDaD+8EgiDukqKpsHohwVEko1lseLW217+C +i6Dvg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057633; x=1775662433; 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=jvNSC8poP+qwYtz1xZbovXiJMkmoZCU6yMIg796FAUw=; b=GrSOlNEA1EM0LlSAncpVmdvf1pePNIN6PkAb1rt+Rm6Vp0TazIEda95hS6qazxFZxG e8ouOq5bGxuaNeCksm3pvcaD4GA0ziZhdB3DaAUIfK6/X/IALmpjC3HXago7UBwONQ6q xrbSpc5SdhtRJ6Zd6VtW3ODmXJW53ARqSyEd0K83zUVj4/lMsoDZ700SsE/ELVbpgIRU 1tQjTEiPXtc1GMzICoKEaRekRUrf3iWaB8lCgqyMMDodd/4REyh+Gg1wigCOqmlcvw4Y ABYlHWzwj97TmM3oLVicCfT/DXBfwZa/ZfAAJ+PN4DV+CnyruOBg9Kam9PmMpyFhSMwY Kjtw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057633; x=1775662433; 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=jvNSC8poP+qwYtz1xZbovXiJMkmoZCU6yMIg796FAUw=; b=WdxZg4GC3GLlWa4OsA3lpOQ2srtnnh8Aero3t+Jb9o9zHoA7XH/QZafn35p0e2TDuU H02ChDnp9dESnW8eYlDIvfgZWLfS/Ue0X0GR+4OaQJAwMBnjGRLRvrb3PqWL/PbnWvQ4 v1w1J/I2SC9UzClS3FhjRNr9dpWzgALMI/t/THAujSN+XwUmFBP8LWP8zYW1SqctRT2u zPxVoudksBmhvQrdsfFAS0Y9nf3Vv1Gn26JGiF6luiP9/I3EDls6rVX8/sTZi8NXq2bH gHODIFGhFSJgiSkVGeLpOCPQYHt1KU6uxrkUAhmO2La8bL0lvwuHvoRQdczDxrbNqjhA Eslg== X-Gm-Message-State: AOJu0YzDV5LQVlqZVUmrWN5tzEvr9Xfy1jeLZUW4WaIJ0jEvOxIoGRnr AYuFAwvZEBFkZfiDLMbKmpg0NL9++YOS2zTZ78+dfyezxMJ4UssJqUzGp666f5ZDK9YNKHJAtT5 k8aKg4SEkTTxiOJm6w0wvga4IwyzFURG17l3ygn7Eqsa1ciC0ucNM7iRjQIWtuqT7pg== X-Gm-Gg: ATEYQzyrZCdWaZaXwjmVsLkY5QqscJRY8djt4VzXGMT6Cv2oGHpK4YlMFedHN4NLEz4 QNZrjqXLhH+/8pa2HEx3lTWIy6qw+5R8xOgkL7RTRqSPsvJEuUsSiFzAljk98t+2y7rVzP2C5Gm DOsfJQDpSFbQw5aYkHjxHOcMBh3CQMl6Yuk7J9Wyx813OVEBmPXRAjf9n81T9kK+WFLgZhZWAck k66fyrW4k9QItU8AvRTAUtQT8dURsf9qloxnOOg/NqZJtQPwHpCVigUl9KRbLIhawFzQU77ojfp Xo+nMzkGcjzjgAXiGVJtuYNmDq5HYbTW5dB6evSTp5j/Dh5bI6xb6jgZ21QQKUFLEDD95APVlsb n7TPLF8So+ABXHoGfMdxJ+0VziMdl5WdXakS142OqRjOwElT+C2QKyvXGYYfaZnis4KxKAw== X-Received: by 2002:a05:7301:7214:b0:2ba:8018:cc57 with SMTP id 5a478bee46e88-2c93106db14mr1868996eec.11.1775057268110; Wed, 01 Apr 2026 08:27:48 -0700 (PDT) X-Received: by 2002:a05:7301:7214:b0:2ba:8018:cc57 with SMTP id 5a478bee46e88-2c93106db14mr1868972eec.11.1775057267594; Wed, 01 Apr 2026 08:27:47 -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 , Pierrick Bouvier Subject: [PATCH v6 02/37] docs/system: Add hexagon CPU emulation Date: Wed, 1 Apr 2026 08:26:22 -0700 Message-Id: <20260401152657.314902-3-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-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=RYydyltv c=1 sm=1 tr=0 ts=69cd3ae1 cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=EUspDBNiAAAA:8 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=2pVdXvZyqgCw3DkElpQA:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAxMDE0NSBTYWx0ZWRfX7UjM5jXcOwvP ShsD12aX82J59atSA1YvuHiZBVWnc+OjGcz9I0OHg5TXrhOFyPwXirOqrAyFWrV/87fa/BNn8Zt IW+IFCCuCgW0lrqLc4vAa5sdFSXr3Edu8Dcs/BA4t6HFQAmxUKeSJAnIoDTOg608lXGsKr3mIto GHGq15TAYXAfa8Fejuj0zWx4+cBNLm3Gj6e8DlsfEB8jAW82n4KL4agmIj9PkPaLHOzlzOzkwlJ Tunjs4jPd3OFa9rPtfMYRnQk+GmStAT7i8y/AquTFqFZBPQhhbgUPunnGxydXBmjvVNWZdOA7jI aVR+Yrt1tnf9vZLfv3S0oTfH2rnFd5ejWSqLKWMUohyR88xUBAqaJ/2y+CW6RY5kIRE7YtxAxYp f8wd0OpAvlTi1laZhIMhKN0p62VciecMcjen7BJzpOnDBElwlisRtWsjfJvF9HHMFCXNTfjm2ej 3rTxgYVzU7rU7QZ7EVQ== X-Proofpoint-ORIG-GUID: hU_GCYVIhLX0a3XHt9xREoill-jbF5tW X-Proofpoint-GUID: hU_GCYVIhLX0a3XHt9xREoill-jbF5tW 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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 suspectscore=0 clxscore=1015 adultscore=0 bulkscore=0 spamscore=0 phishscore=0 impostorscore=0 lowpriorityscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010145 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057787638158500 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 Wed Apr 1 20:45:44 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=1775057787; cv=none; d=zohomail.com; s=zohoarc; b=hXZCy+SMLmqZqlwLJnmYNFqpaeUMSPdeYCl3jfHjxt+3uGQipt8gfnqDJ9favZXKLZJvs7TLGDljPtA96M9Z3Vgbfbed09NjPaaMvVqQO+6crgHkdaeV9pRf6NdGnHx8nwepyOg7wmjKuxHutVtYskVkQona+f3k7gWjVOOiCu8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057787; 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=8H2NMNnhou62pXryHwuyymxk+qlycrZjxUxVfNu3jeE=; b=C1breUSMO2LPUn0msGwxDYdd+eEfSE0q23aBSWpKXHhqLUAdOjhfRSxTrRoCky4JZIOqifl6B3VsGCP6orAGI5KZZ9T8GBmo61UapNDx5IczNldclsQQ7TCQema43ZRmMZn8m/faSnUpbVLkSM3uhdcxBqarmT/7QAObiLGp6s0= 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 1775057787182332.8205865521826; Wed, 1 Apr 2026 08:36:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xcB-0006dM-Ey; Wed, 01 Apr 2026 11:36: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 1w7xbL-0005zC-CI for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:35:31 -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 1w7xbI-0001Q0-Jb for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:35:27 -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 631CS2BK1285859 for ; Wed, 1 Apr 2026 15:35:22 GMT Received: from mail-yx1-f69.google.com (mail-yx1-f69.google.com [74.125.224.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d8xm3t4cx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:35:22 +0000 (GMT) Received: by mail-yx1-f69.google.com with SMTP id 956f58d0204a3-65014989b1eso13895402d50.1 for ; Wed, 01 Apr 2026 08:35:22 -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-2ca78df3b84sm38491eec.5.2026.04.01.08.27.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:27:48 -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=8H2NMNnhou62pXryHwuyymxk+qlycrZjxUxVfNu3jeE=; b=JY Bd8KP9e6OKgKZ6dMBzH3vYrE3MbHa7M/BXSl71fwfLfAwMXwsarvJXvHspfOGF2n PpEzwPpe3Cc1vSPZmEhCtnY8OuoJY2UUKzkQB+UmIlRD3vqUmFLIUmIRwGb8Nwcn mbC0HET76TPs9pYB9df6yLutPpa3LLK8PHliTLrU4pGFe8XPb/+SuGwMVJmSeXIA ho6ZXZOXccfbJHNnM7oMaP83z/SpYu3pFYGjgeuWchTQ72JDuRyoEyp8QgM11fmY GXdA1nwRFNGlaDjg20555mVRi/cR9P9bWlyDePknOl/a4OX+RDVBA11ajit64/yP JdNN7FTrTlQy0+0MjeLw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057721; x=1775662521; 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=8H2NMNnhou62pXryHwuyymxk+qlycrZjxUxVfNu3jeE=; b=JKT516BP9Ve6w3C3Dg49a05G+5Q+OaTS/BkLIrVuOmfBz6LjOonzG8rL4VusCDRG1T h5stfWCu2tBXMOed/YAnT9l8M51vySmjOOMclvWkmc1UEE3Ev2KknnC+1omBgObAqKVl bOiwUBjvlbLII8siCts4QmIZZAob0JP01H9r2W85OldVMHMgYAnYbbLIN93J3rIJtcEV cXpGvB/nV48/yqyDIs26ScUo7ichrbe4BrxeUxkTNQchA+jM3OETKzpez9sraxH/f3HD GejU/MfAqvYv2RSbJz9AVTaxurBEc288DSQu3dINe0mrvJlg20LWIPNl2cA20fKVJALQ Rtkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057721; x=1775662521; 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=8H2NMNnhou62pXryHwuyymxk+qlycrZjxUxVfNu3jeE=; b=LqTNsFYEnSf+37vdK8qcOXWcWa2CXCajBt48MLkQA8gO5YNIPKFDbzWdPKLESDZqvx oQWlaeUWeFSZ9/6dXiGJoD2CDRIFeBhP/M8FLGq5SZ0AgXhWTMpa+QjgUa5LiE+v6G6z /uSoMpBTGctBy9uTXDA7MALSquA3vJA/dfNUfyyunztHGfVSbq7vOXB7AKv02yVQSWQN aNZt5QZ/qBvxpFKwBFZ7JQXb93Pu5v3PPTwOm/LounPytqEYHGEk9iGU1WryBcni+OtJ ZpqXG9lC+jTT5+5JoGclAySpgi3krqBWrPACZCsOSaAhBpOm5u6p4/hPgbqnPvgzTHtz KiUw== X-Gm-Message-State: AOJu0YwVER+5a7jH3RkGNEoMxoselsWviKCgr11igpQfN3PUUckIlfa/ MOIEreaf6X6sOYh/1oOnCuKKUx0o1ZYYOuVYy06BZaHOLks8XLdgIUnjoA+3ClMaTVrz6k4aLP2 daIFyVtEdAmXX5iHyg17EE4+VtJyEy25QpA6ju4+8Bbvj1AsYHkKinf2ol96exeQIbQ== X-Gm-Gg: ATEYQzx1enqSyAd7aBinpw7GLl5HntUT2y5FnZZM50gntqJJKMlG/9S0Ph+z2JNEf4I 17fRcY9RhEjjYJlFg0HDZhthY+0B/ggJBeYztFVvXJWOF6Vsduz50dBWk+QNO+rqjEGXEwx6UlZ W93PP5V/b/g2mls8bIsYGz0vxdvv0KkV+u9Ukn9YdZ24jR9E29wr6v4/iIQA5ldyy0JKAsV7lqt SmQIfvyCNhMQo4uap9CS/sRAbxBFYPwZNnOihL8/XeAnyaXcg7pTyAKDvAFdcNOAi6c7U9aPMUq +voffbVq0VfsrUhyzllh2bPGbkHwijKqfEme8y5FLKVIEN2X5xmMcNnBj+nzPrPv1kmtj4vQsh/ ZMmgG0jOzFU9KRBlUrpoiVt+Kry42ZT+xP5WjHKlDiCVqudYnmNQkijzlXr/v93HHn7ItPA== X-Received: by 2002:a05:7300:3255:b0:2c5:50fe:c78f with SMTP id 5a478bee46e88-2c93116ed58mr1985359eec.12.1775057268897; Wed, 01 Apr 2026 08:27:48 -0700 (PDT) X-Received: by 2002:a05:7300:3255:b0:2c5:50fe:c78f with SMTP id 5a478bee46e88-2c93116ed58mr1985336eec.12.1775057268308; Wed, 01 Apr 2026 08:27: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 v6 03/37] target/hexagon: Fix badva reference, delete CAUSE Date: Wed, 1 Apr 2026 08:26:23 -0700 Message-Id: <20260401152657.314902-4-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=L90QguT8 c=1 sm=1 tr=0 ts=69cd3b3a cx=c_pps a=J+5FMm3BkXb42VdG8aMU9w==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=pGLkceISAAAA:8 a=YHbvUooXmMNqKe3LDhEA:9 a=QEXdDO2ut3YA:10 a=Epx66wHExT0cjJnnR-oj:22 a=TjNXssC_j7lpFel5tvFf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: BacLbvJzNqpjkJzMT_v7JTqea6fvlqUz X-Proofpoint-GUID: BacLbvJzNqpjkJzMT_v7JTqea6fvlqUz X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAxMDE0NSBTYWx0ZWRfX+9LbyrvB5wQa DxwFgqLwpyqqVuJOCKotVggUI6PLQBro1tJuq0YwUv/AoSSKAnhU3jeARQwx5gy1VtrLzoMnBp8 TgjCkFviNyXGUwUX0LYPgs9tjugYlGAWiBzqd7CqlfwHwHsqCMORFnJdjuHdp8DkvgxP+7f8YK8 yo47mNOndaeyYl4qPwCKkvMRI6N7auIhBkgmgCGem4+12p+RJPvzBZu812daH2f9WTRzv5Mcmud KuFdwxqjNuuzjf/YIOTHaCN1l98wuKkqP5NBqfQuJd9S/UNivfiFDSDSYqQTcl432tDm8m5VSci 909hoHv5oZPDcn9fLyJ0JWrRoLcCGCwaZMyjHYFBYWhPFtMB/0SuxV7Ayq0GZbCyO2AzWR9cOxv e+ICQVqVUD2+mQFdMV4Eoa6scBAb9D26+JoAi/YqcYiuG42YfqwTAszFLxJGN9Ca5UvmYKtdHZD fD1RlFB4cIgVRWfXsJg== 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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 suspectscore=0 phishscore=0 clxscore=1015 priorityscore=1501 spamscore=0 lowpriorityscore=0 impostorscore=0 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010145 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057787604158500 Content-Type: text/plain; charset="utf-8" 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 ffd14bb4678..4f72d4759cf 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 Wed Apr 1 20:45:44 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=1775057547; cv=none; d=zohomail.com; s=zohoarc; b=e9RvE4Yyg+oyLCpyFTwZKnMbblE013XBCOp4I6VLN4IoTnrmplG2Pne50SkOnQePXvSSoyvB7etNcMFTwL2fE2cgVYDvZA/Ld22FeZrGLvBseca/txuuW7PHFMWIK5KvKCuj12J5/aBWTGYQQDYcbR2nuyG+bKoRAr+sH6QqLCg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057547; 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=eaPTK8WsZS63Nq3x835Dlm5fZEwFXHAh0ADELEtS9L4=; b=faOGtQ5xjRwYwwx5o/nepSwgS5mSwnRwBu9iwWwwg/k0ttSrkm3PNgdl+PGXoAt+DiDv/+c9dRbSbdvXBcBtXt2Bw1Q+064S9MYeqcC8eFSKJAGK79/L9IXkm9sMUXduEvBTpNKQoQ7Kh/1AcYLrZrpP844BvhozsZoz/XbxqBE= 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 1775057547930180.1240414292571; Wed, 1 Apr 2026 08:32:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xVC-00025W-5T; Wed, 01 Apr 2026 11:29:06 -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 1w7xV1-0001Tb-IN for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:55 -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 1w7xV0-00084G-52 for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:55 -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 631FPfdu1562478 for ; Wed, 1 Apr 2026 15:28:10 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 4d8va3tpvt-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:28:08 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-2c5b48baf75so8791429eec.0 for ; Wed, 01 Apr 2026 08:28: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-2ca78df3b84sm38491eec.5.2026.04.01.08.27.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:27: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= eaPTK8WsZS63Nq3x835Dlm5fZEwFXHAh0ADELEtS9L4=; b=iDr/ObEtpRxcxq+M BvjRO9qjGDSx67XZm95z47OO6bAkvCj7K0zr9LkyEk6BNlCIjKrIGDmB1hHgQ/Ik otgRcX02K0BE3k/OdyptZxxMJzmb5WrROV953g/dLekmqa8Ip8MXy25aU6etqNUH 8i/p+aAtm2PiXLodbziOQ3mxcd51Jl1Vsjf24W/Jl7okSv3mpSmRoVsgGGByVLsc mgl7RHXvdw4QdC9Iwt4d8YDyP1MYLTG1c90OPuWripTIDZ2fxKkEwKQwaPjGaj84 ZoC79VzypUX4lPrM9pyQwy1Hbl4Qj5sHgr5FtYWk6tqUMpmN/7godnDfgjlpoSOh 0EHfEw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057270; x=1775662070; 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=eaPTK8WsZS63Nq3x835Dlm5fZEwFXHAh0ADELEtS9L4=; b=Pu7GMdr7GXkS523/gOSIMJzvYbF2AgG7USxARJd+E+92FW/M1iFPysuLMpBw7H8dgd KPn2yydCOLSQCQdxMrzMCvXN31JbYX6fqf/jyq3FqV0ifgt4n6zIiB9LYh3woR2hYtF0 CDdl8UzZIJCzakeGjikXAT//+f/T79e7zwJpcKwORZrm4meXckTteDBM/YPKNrKHyu1Y uEDzde8yO6mZTd4kOOaB1GdTnJ6nDMmTpjFsR473ieygBSgkix9gv2Q3V0f5jTFY6y7K 5kVKtwYWkq13OFCRNq52HGGvND4KaZ6nhPLodMBcXal5Og7R39S8LSrsmZAansskYSEE iFIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057270; x=1775662070; 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=eaPTK8WsZS63Nq3x835Dlm5fZEwFXHAh0ADELEtS9L4=; b=g0GlYG7dLObsHPZy1tzb4KGY8s83md4GIJushDba5c10BbcKPavaZSY8Rbx7J05V7i SZXsxjmRPGqctYRq9PYfhB0g3tUNE9jsYZTAfoiVIn0joTnaUpa6g1dXEfK2f49rYNna Qm7y9sef5TBkiSgdc4/CgL4uEqZICbdJ6VtqPdU13gLSjF4weYPL0OT+zGsO+lTAZv8l AZajUh25K/1Q14GzNs3/qQRQXURb8/cRbgLdSUimggUrRatAa2oUBqY38ACJxKuKZMI9 N4uHSnW5lJQql7U1bq7DDOHqT8yKBmcBr/dKzNFIEb7vFswtxqvRM68OYAe7QQjOpxI5 okmA== X-Gm-Message-State: AOJu0YxKxL1/+6rJqqXtD68zzMgqglmfEcrkTGvV3BkC2UmfCm2Hvr5o fjP/YC4KZdP/HEG50zLO10qZ2uyj/U01qAqQHz4AhXi2ZM5yBzg0qLVVEpC21/UNni6KyEGvXRq yEjIdAZYPVTbuSknwSIPdWd6h59SFwcrwQa5nEUTt5MVhDO4sd7Jtfu5NpvD2TkZJag== X-Gm-Gg: ATEYQzyEzGJyW9QA5bLtLE7VBQoJIPCKfZqsa60fKl9mHdzqNfKL+0q2fdiJCnAbxDm aj9IsTaHI35I4voV7t46V2Ax73qiuue1Ixx+r61Pm3IiKTVZyB9p6+coDVdYAEq4OqdkeL79BgN tcGMEnk4VhKKlNp3+VPNuXTEVp6LXFZi5wdYGKN5JnWO6RnguA5JE4xCpI60rU87DmGj59Z9iEN DnQCsWM6ZifAhUN9AuHeEsZ+Sz1CjY5KQBNZPOhmK/SouYJB/FMPXIGiCV/AE5bZARwmpMzgEbx 6hHk7IDcuw3qV7BIc9DnILCbLd5erIe6Tr8k4ZKPVo03WhkHw7g3+vl/RHjzVJFLyal8fPIWC+/ ZrXPtkxKhDOvkFKEtbwrxvgyBohKbnlCCZgQQZ1UrXTdcgTC1SR/nKBHcpgpgPCFlGFctAA== X-Received: by 2002:a05:7301:fa0d:b0:2bd:c285:2fe with SMTP id 5a478bee46e88-2c930e6bde3mr2220609eec.9.1775057269626; Wed, 01 Apr 2026 08:27:49 -0700 (PDT) X-Received: by 2002:a05:7301:fa0d:b0:2bd:c285:2fe with SMTP id 5a478bee46e88-2c930e6bde3mr2220589eec.9.1775057269123; Wed, 01 Apr 2026 08:27:49 -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 v6 04/37] target/hexagon: Add missing A_CALL attr, hintjumpr to multi_cof Date: Wed, 1 Apr 2026 08:26:24 -0700 Message-Id: <20260401152657.314902-5-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-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: dhf4f6FNr1d6Qzv7I5w4AlaXKUcFyrWo X-Proofpoint-ORIG-GUID: dhf4f6FNr1d6Qzv7I5w4AlaXKUcFyrWo X-Authority-Analysis: v=2.4 cv=B/C0EetM c=1 sm=1 tr=0 ts=69cd3989 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=pGLkceISAAAA:8 a=QFI6e2jESK29WoJ26_YA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAxMDE0NCBTYWx0ZWRfX4dSCzzj8EWXI WBL4XXunxO/27+ie4Kpd3uueA3ZmingxBwCqZWZ3QlP9NKSApfEI7kIf9lcZkaYqMkaLy7uykKa 68UguXDQbAnAuUNQ1wYnp7JQb5X6TJ1AcdpF4lY7ctY2m7u7LCL7xLcOseqoi7v+VhFTN568We2 GPXV3jBwTFSFH724ljwarh/0csG9ckkqS2JCxiPOaOiiZRA2rupOZjQ+yJ8BMsC3T0VMdWKI02K 3OgClwi+7/7bErQvJiCmwkX4YwepnHtaCnXRP4O+itILs2fCid1xyr1yipnVxef+g76TeQvTF8w YL8TuHAYSK5kZegFzpH0xU1dTA2SUjX/kxNkw/8SNIiZXIxXtwsvXMGV9IsPKN2R86KL2BpsOfH XaYda7eLcBPNUNd6EPJJJbFK5UEXK7cpM+YHeD6uh1N4BD4fRwhxG9bKjx7Q2iCanjRQxjisI9i vpEzlMj3mI8ddUXuP4A== 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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 bulkscore=0 phishscore=0 malwarescore=0 lowpriorityscore=0 adultscore=0 clxscore=1015 impostorscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010144 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057549588154100 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 Wed Apr 1 20:45:44 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=1775057349; cv=none; d=zohomail.com; s=zohoarc; b=SUWJJAVEQ3OhbI5k93Iuj9Ynf/gZvDNfklFSIKiGu0FVs023XjgeAtfg89eHkig3bK1PN7RgbEbOPALExiD0Cudl+6XqgsHhZ8nUNysrIOA67zh9F43/Ogz8QMkyvtpUq6B8F5iA/2Ds8WZKkcxwFTB3ku6kSU1y8UOcCqH7B7I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057349; 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=VLjM/2HkwHT5K+3XsmXyLVfqsLoBye/llZe64AldgEU=; b=MvyI1UhHkYYxxU8rpVlsZU1KPTn1XMe5caqjWlJmOnx+3KMbhoZ6v0C31d4PJbk6TuygDKP8A0JhAWQcO7/RTp3sV2TFHbmpkCTTmAzk3uXKnH4o47sJ1srUi1WONYLHX3KSJ7t8Rt/oOt+cVJooIrfdEWHpfFdtU4rw0KvnP84= 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 1775057349592688.1842215218743; Wed, 1 Apr 2026 08:29:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xUZ-0000zD-8J; Wed, 01 Apr 2026 11:28:27 -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 1w7xUU-0000q3-6J for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:23 -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 1w7xUS-000866-6L for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:21 -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 631FPB3V1562629 for ; Wed, 1 Apr 2026 15:28:19 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 4d8va3tpya-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:28:16 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-2c68a134df8so3031105eec.1 for ; Wed, 01 Apr 2026 08:28:16 -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-2ca78df3b84sm38491eec.5.2026.04.01.08.27.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:27: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= VLjM/2HkwHT5K+3XsmXyLVfqsLoBye/llZe64AldgEU=; b=BtHKHK/qiqETwb1p nfbEFz5fVnBUaoqDJMIPx5t5v6a9rPgB5TWvC+hwe7MRLqPz7fWkWCBQbCW5wKX7 aulFrbv1mWP/HDd17McvwSr/qRayhwOyQ4/9mPMszFAnOY02HCSzDBKR7VCwVq9p Xp77AtU9US5SvJ+IHNXwiZRP4dLboTIHggkmjo8k/hLXIyL+FUvR1NP3MuKjSIUI rr2O85TPvw1LOQ2vPjpYKAb0hi52X9p3SHqjkxu+ERoKi/50vclsmWsYkNIj7JAE E+Grf+7Q4yA/kHz6XUILBr5yo4yvi/BRcZkeNut27/1M2Pz5mWc3X1L8bJG3IMei UOPmbA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057271; x=1775662071; 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=VLjM/2HkwHT5K+3XsmXyLVfqsLoBye/llZe64AldgEU=; b=KlyXb7z2Fzt51lKqnO5E/Fw5ELHw24fKIMQffLuR07A3kNNh6XFFIp4RSQhJCWvNSV fMbFDZe8s524ALSbhe7hmk72OONp5sptwEcQoVn79m1krXRThohzyohs21pTSJnDgvXi JERg1TURRE565VPhzJlJAahnGmMGPuYdMUhkDnZaeuoIa6Kb5ZiF1sDWrldEe5MTlgFS d2+B/Lm9ww9vGtlFdD6E6BQwueLMVDwXhg8LVj6ev8ypR1iK5ceFbOKcFb7lJSgjObQ3 Ev/UhSVYzeSWKrpxE+yuLMYy8V8E6KC5tWcIGWFwp9/hBsSHJq/PUnZeYiItuCprXD/1 ntig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057271; x=1775662071; 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=VLjM/2HkwHT5K+3XsmXyLVfqsLoBye/llZe64AldgEU=; b=p5bevTJi44Fw0Xsx3AdpnGfSTUxHZWN98nGptVoyqdZ+ynVOqkjXQxTevb0AzbLfwq 6YwLc3TlrWkB/iN5WnywaEUiRyCzkHHGLPllUQ+acGKhBF+YW2c0bYyj5fWO8AQ5ZR46 x+HxDJ5jlcED7lo4UeQcJThtH6SYH/Z8lzHfrtd+b+klO8Xb4dRNUIF7TEPng89pjJDC JPGJXOSy2rRcvkoEHLWJFVjtnY65k1L442S0jXGTUGZ7jh6lDE+q1gBL4ARzRG+gKiD6 NOQhKObpdCedwoB3W4R9ArZtdZClX4IIIBuiwW4Og9WyhjisNmlgDQYESV5o2/zfPlpY M8+w== X-Gm-Message-State: AOJu0YwVqRTgPwixjWm1fyz8wh7gOGrecWbzKEHSG0e16uOFjIfOn5A6 0nJv/7fdm20mD5WqtouMEeIoQbb8J+M+f8N6oYaHo2vvoHvqbyEUvAMiOM0XQs4CwUaYBeExTux glet4nyzsWS5w6swTwB6HP/SJdGl/pHDL/zlr1MovhdPNu7JqGtgHv9hewQN6yQm9wQ== X-Gm-Gg: ATEYQzzenPXc/YIox0Rg4t+AseOmFZdrTKzqSzC5AEsQiWcRWxkVwPZYDeUJnpBVZ2G LnDoIuzlBR/sIUUEVjFhbs3vQoplTKDXTSK6SULo0kTCYxSsWqaIU4ZIGNmQatQr170kah1PiTR UlrAzlfl4VN4QckmiLYylK7ow/vGAl9Ie5lJATkG7HjJbzC8ICqbtxO2oMXRHugzbQCklDkqzOa mLRob/uI/Pwkc8WIGZjFhmhpWvZGWR14GXWQIij5L7SK9sVC5RDPBgbFAmTWW93opyEC0Og8rMz 2LshAFeGW0/yH6+8kXot8zUsFZftqD6M9bEvySdYYTqAy+DpSxFlMhzaWTvfWDaNbntxEvS1FZK QDZmly6PGK8Ad1L5ZAZCFr+6ryJoASmwxs2cLHSgS0hVHZlsZbcNe1+8uA7MujakKokzCPw== X-Received: by 2002:a05:7301:168a:b0:2c0:f424:b545 with SMTP id 5a478bee46e88-2c931c9246dmr2465552eec.15.1775057270786; Wed, 01 Apr 2026 08:27:50 -0700 (PDT) X-Received: by 2002:a05:7301:168a:b0:2c0:f424:b545 with SMTP id 5a478bee46e88-2c931c9246dmr2465538eec.15.1775057270005; Wed, 01 Apr 2026 08:27: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 v6 05/37] target/hexagon: Handle system/guest registers in gen_analyze_funcs.py and hex_common.py Date: Wed, 1 Apr 2026 08:26:25 -0700 Message-Id: <20260401152657.314902-6-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-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: jy4c-sUdlZd408qfRJAPNF8cfUunv07Q X-Proofpoint-ORIG-GUID: jy4c-sUdlZd408qfRJAPNF8cfUunv07Q X-Authority-Analysis: v=2.4 cv=B/C0EetM c=1 sm=1 tr=0 ts=69cd3991 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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-Spam-Details-Enc: AW1haW4tMjYwNDAxMDE0NCBTYWx0ZWRfXygFwvBHDIsSn CnsMhceJICi3DQOr8+8kgd+9LuKlX76jnuXhtB1o5onPhv+Zy5BCkHottNDnIOShpVNUhLNX4sR bkrCniFCpjBmD1IkW22UynK+sd5mP7+VeCK1bU+zzMdR7PZkF5tpWf43u7L5pWmVHoS76bvmBM1 VauMP+/QwLybXMuWuH35b2Cz8Uh5KzuQvI/mzs+/xD9QLbp6oiK3TyeEgtGW70a9rEsWvR+m57/ sibHPBHrFfCG73RngxpW3cOlEHKqPBHTQSlJLQ4Gi/lgVkQodhsLL45NQjH8V7Ldo02qryqBYN1 TdLU7bN28ukn/Lohy2oFqDLAcwNNFFuZ+yyXvFlc7sfBOdB2XQO4ud24gvUOSFRvVuOKBcroDpt +/CdIPrx4I2cbbmDclgN8piFVAZbyOY2ahnSOkZmb7uCGSlFm9GEJjxlwSzqzMkF7ItIQnFI8Ss wsVI8x9USGAVLqWJ0wg== 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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 bulkscore=0 phishscore=0 malwarescore=0 lowpriorityscore=0 adultscore=0 clxscore=1015 impostorscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010144 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057350772158500 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..ceb4b6812d6 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_i32 {self.reg_tcg()} =3D tcg_temp_new_i32(); + """)) + 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_i32 {self.reg_tcg()} =3D tcg_temp_new_i32(); + 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_i32 {self.reg_tcg()} =3D tcg_temp_new_i32(); + """)) + 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_i32 {self.reg_tcg()} =3D tcg_temp_new_i32(); + 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 Wed Apr 1 20:45:44 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=1775057610; cv=none; d=zohomail.com; s=zohoarc; b=cqMKGWoFIV9p4jHSFRVu0ITcY1sprrihl8mgtgdhc1skqpXEJso8r/zlJ+METKG0Sp0W/FqAvlM9vHqFi2s9PJE0bZJr9GVTyS11I9VfzDiQbsTt4G/8DbsGKXzNv4kLRXNrIqu1SlxzcUOLkrM3QJnZU+6nf2PMGjXGq1GaKK8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057610; 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=MzCwV2ls7LMd25ExTeESmJLG7lQp1vdzy2dqkdqWwwU=; b=W9fRI34RmO8wkN3tBsU2/fekcIRo94fCNTENqGYvv7YcGTN1V3ok2mASrxxjlRnt7HEHx85hK8jt1jsiEjzuCpt81aDOWITge4W2PPripwSnCHoYE0h4HOVe2dPO7Z8W94zLKFAL5WMWv4AUi4ygJ6DYZ4RlE/4lsgUGvnwa6DY= 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 17750576109282.0043258138488227; Wed, 1 Apr 2026 08:33:30 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xUn-00017a-QS; Wed, 01 Apr 2026 11:28:41 -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 1w7xUm-00015H-8S for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:40 -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 1w7xUk-00088e-J1 for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:39 -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 631FLiua1562613 for ; Wed, 1 Apr 2026 15:28:27 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 4d8va3tq0m-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:28:25 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-2bdf6fe90a9so6984714eec.1 for ; Wed, 01 Apr 2026 08:28:19 -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-2ca78df3b84sm38491eec.5.2026.04.01.08.27.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:27:50 -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= MzCwV2ls7LMd25ExTeESmJLG7lQp1vdzy2dqkdqWwwU=; b=DKdlyzRgye6ibxbV MTrj4et2y1SCCDJLruwGlvuk2aAi60NHnQq0R1NVlVRi/AqFSWUaSADngP/87s0s eByppj0SUG8dAsBi0TF9wnRi9b+9qKGDznbFUZg3wu5dD4u6n0XqvLd69ReCjLA7 mcpA56Sj4ljL2xwKGVZ4ObGq2yDGFx8W6RfIlqZQ+znpkZpqgUDTGhIJcqYrts3Z rv09vYpRBadNRuae80Jt1S+nc8LOvg4u93rew4baOWrO+GT0EskxeYyT0knSaIjm hADmgAo10abRVBPo4FWy6qaYfMD7KgGzlXBlt5awCaobJ8KobegGnpR0u8Joqbz9 BY8Pkg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057272; x=1775662072; 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=MzCwV2ls7LMd25ExTeESmJLG7lQp1vdzy2dqkdqWwwU=; b=I6iNK7mgaoDrPxWHTzSwlwujmQ/7AFjUtqxV4rZ/45r6Zei68+xuEuIfaDv2QmJpD3 wLwSqSl1RuWJAQSyiT7rdEI4oaCNhP+7IgpXYekyb2wZ1Gp1YYGaXMA1VTwklmxJxNbh jLRhzCNZ9ZtNY8LtPzqCu1CevxDbUz/BxIniyV3zX/qXKrO/JLKsAaz2KjKhTFjA1SQM stvaNP+ZZV+RPC3AX0obZnafxpbvhcG2iJ9MCrQEMhfjEPXJNITW7m8jLoxzshKv44ZN mkxaeCEY276vOExWzhZ4E4d2A6oKAnGOrFJEOQkNADHpQ77os4ieJ5nwCP5gUi8bB0fC qbaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057272; x=1775662072; 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=MzCwV2ls7LMd25ExTeESmJLG7lQp1vdzy2dqkdqWwwU=; b=cy1It/EyTVYQbYkgC2AkbvrH+bY7s00SMU4twsrV0J+bz1dSMs9YwTBIicrLrpdMOV KxFQCjv8k9PznZzRXkLHlErS9ZllsvKoLQ1mWN0rXXRRrmZfCPO/gtzs/r3koeksWY3o 6bzk0Cja1Uaw2onfzNDs3C+g4P7Z0//rTuW3mDzLDMwyYapsZFzV+ZI1WLD8VPsYnHSY uy5UzIMAZpZxeD+44WyJdHXEN+9gRpqK9qf0kMUu4muIhDmQ89hkXljvdI5RJdjatjRy C0nKS97GiNUBt5/nwyrcfLluT1HEJdA/pgvgooXEWO9M3v7DEkkHJA4iocKLOGVW3Kve Cg/A== X-Gm-Message-State: AOJu0Yw4jZ4Xvwv7sX6wgG+aOi5Q/1w1pZFGJQkYIZ8kThmGgjvBrEO0 hzPGUGr9XoqYF8POxDnBzMahRVwXBcV2Rck3YXhw9/G8mlHHFAvC67YcIgMvjP2JYRrNzoGS+LJ 5tMpVIYB+BjnyWFmhACeicwjg1DL6y6+i7Fe+aqLqFtZXHo5rpc5M1eeNfj224ft7Ww== X-Gm-Gg: ATEYQzwWrMPebu2bv42FRW+vIKJ1RDYFtE0aTM0vMIqlVy1tNhEy4K7/F8aIosaOb7S PhUrFE76We/Qzclc7NtNWC3rMJSYjdvn29E2vNuTBguAaSod4rvdKI8cxoSgAIISj6Dq0y1tyFc RI6P9uyl9EMiyq0pwjw5R6LQ84tT+OUpVm6Jd1L8D41adJ8Lk3bJhEWNaGqgHye3fWSU3A7zQlq fTSqJY1LR96oJIN+B6C26gnNmlAqFCxq6uF+CvWTkyrQ7P1jyfW9TXdyWGSniL18rlWNN4pcWL0 p39qjgQDyTpvHsQb1jcr3fmfS3n6+dqQ1VOMRmnWcjPwyJ/08Ky9oIVBwqoxPD6sb+FcJaUvMDj C22EMIJoeKjZLOzZMLCiSHNZi84bPrd7XgbcU8H80pMIY5bjrObjnS5oYL3BMYsOu6Jh8ew== X-Received: by 2002:a05:7301:1015:b0:2c1:558c:16f7 with SMTP id 5a478bee46e88-2c930b7e276mr2008879eec.6.1775057271613; Wed, 01 Apr 2026 08:27:51 -0700 (PDT) X-Received: by 2002:a05:7301:1015:b0:2c1:558c:16f7 with SMTP id 5a478bee46e88-2c930b7e276mr2008861eec.6.1775057271032; Wed, 01 Apr 2026 08:27: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 Subject: [PATCH v6 06/37] target/hexagon: Suppress unused-variable warnings for sysemu source regs Date: Wed, 1 Apr 2026 08:26:26 -0700 Message-Id: <20260401152657.314902-7-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-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: 1eONB03kNZe_xVGNt2iYb15OlaRGmwFg X-Proofpoint-ORIG-GUID: 1eONB03kNZe_xVGNt2iYb15OlaRGmwFg X-Authority-Analysis: v=2.4 cv=B/C0EetM c=1 sm=1 tr=0 ts=69cd399a cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=dvhcR3axvtdXbCCTPW8A:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAxMDE0NCBTYWx0ZWRfXzynxr+xFSSh0 6CTmteENyEP7Hs/CqGfiTXInQTjPkQk81g1GqQEWuZeWfRKVMxvrzaGRCHvi6tzIR2HBLtW0+iF vModmzBMJ1sBBsi8G76tRlDWtNLlHqqVjnckUNKlK7gdnXwAM2eiVAz4PM+0HSbUFpE+S8KnnpX G67AVuaxRwAP0PIZNJx+tHkmUiHqJFORTg8/Vk1bezA8qZs1mZc4WN1kPnIBnsyTG6Stgw2jRlJ XRD6pVxCE4gW5C6Ws75aAbMTGXhmqK6ywkg5ZN336ag/fhSStpJxen0lSiAlADGuBPskfV1tpla Ac7nuiPA+e0szfJqeoJ5oEjuWk9LRN5QZMP3O4PgIXBK4ek+fy2IPPCknQiSwKhsTah3ugSKIKb GUPiHOUmSaGjtDtvoOPmQJK1kMUWyoZ+7iSbrg2gk/5w9ahWfk0PUL7JoAJhsooAxlw9/p7ODVR tzAq3zOpq1e9Ap1FLZQ== 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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 bulkscore=0 phishscore=0 malwarescore=0 lowpriorityscore=0 adultscore=0 clxscore=1015 impostorscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010144 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057612646158500 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. Override decl_reg_num() in each class to declare the register number with G_GNUC_UNUSED, suppressing the warning. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/hex_common.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py index ceb4b6812d6..1daf7239fc4 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -1068,6 +1068,10 @@ def analyze_write(self, f, tag, regno): """)) =20 class GuestSource(GuestRegister, Single, OldSource): + def decl_reg_num(self, f, regno): + f.write(code_fmt(f"""\ + const int {self.reg_num} G_GNUC_UNUSED =3D insn->regno[{regno}= ]; + """)) def decl_tcg(self, f, tag, regno): self.decl_reg_num(f, regno) f.write(code_fmt(f"""\ @@ -1093,6 +1097,10 @@ def analyze_write(self, f, tag, regno): """)) =20 class GuestPairSource(GuestRegister, Pair, OldSource): + def decl_reg_num(self, f, regno): + f.write(code_fmt(f"""\ + const int {self.reg_num} G_GNUC_UNUSED =3D insn->regno[{regno}= ]; + """)) def decl_tcg(self, f, tag, regno): self.decl_reg_num(f, regno) f.write(code_fmt(f"""\ @@ -1118,6 +1126,10 @@ def analyze_write(self, f, tag, regno): """)) =20 class SystemSource(Register, Single, OldSource): + def decl_reg_num(self, f, regno): + f.write(code_fmt(f"""\ + const int {self.reg_num} G_GNUC_UNUSED =3D insn->regno[{regno}= ]; + """)) def decl_tcg(self, f, tag, regno): self.decl_reg_num(f, regno) f.write(code_fmt(f"""\ @@ -1143,6 +1155,10 @@ def analyze_write(self, f, tag, regno): """)) =20 class SystemPairSource(Register, Pair, OldSource): + def decl_reg_num(self, f, regno): + f.write(code_fmt(f"""\ + const int {self.reg_num} G_GNUC_UNUSED =3D insn->regno[{regno}= ]; + """)) def decl_tcg(self, f, tag, regno): self.decl_reg_num(f, regno) f.write(code_fmt(f"""\ --=20 2.34.1 From nobody Wed Apr 1 20:45:44 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=1775057508; cv=none; d=zohomail.com; s=zohoarc; b=FWUeqgaAnQG/LeVMTdAziaG3WtmZovXWExy0AdQwhhGszI22jEAhu+ozPAjAIkoZwTPaOerOGcsP5laFN602zLzNguWxqfiTncOvxlAKwr21ctRYdGzUclVApgFtX7JwDhtZaPpZr6xV8e1SAIr7PZZnuzjFiUrq+sWsGKKEXJg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057508; 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=FTlXPyeRzOyrsGJB6pfA3qXtdU8TIi9UxlieJg2LucM=; b=ZvI1OFURS5gypjOVswMRXl6Fv1PpiXBJ3HwBwBT7rzCIlWV1JIGTqZnN4lQJ+uZ6LfTPujlhjlW6WS2UNKA3simXqotyMr9bHrkNWikZlOfacAWKSMELyhaUw1JBBoWLcHMe5BkthXbw0BAjwtE1isGiKYqTTaae3NIzqQZ7WMQ= 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 1775057502488502.3329580813388; Wed, 1 Apr 2026 08:31:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xVZ-00031a-AZ; Wed, 01 Apr 2026 11:29:29 -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 1w7xVP-0002kw-HN for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:29:25 -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 1w7xVN-0008JR-Gw for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:29:19 -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 631FLivj1562613 for ; Wed, 1 Apr 2026 15:29:06 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 4d8va3tq2b-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:29:01 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2bdf75bc88fso6124058eec.0 for ; Wed, 01 Apr 2026 08:28: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-2ca78df3b84sm38491eec.5.2026.04.01.08.27.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:27: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= FTlXPyeRzOyrsGJB6pfA3qXtdU8TIi9UxlieJg2LucM=; b=iV9xA/IkCucFUSBc oCLpOiA5O76WHSF+BawbMsdj8j3Apd9YCE1/uef5/30uASol4E4sGa8C0FHZoJNR DujMMWpUKgC7UisTasQkD/f1BtvXzJRLG9bsCtiIE9CYFpXKzUa4xg2/Yt3llCro cK5ZkXyajXi0hb0VYQWOTZl1q1PLyxSWak7Q1iuPDhfInyZAiIqhiG0HTirvdStl hdd3uTuB+u1xLTiPk/9R5UUAlM74FiGv+q452DXS3egglXOhEvWNMIEKwD10/lE5 N2T1UuPE3flNT2rJx3o8ssmJXnD01qqtmtZSYCxis28kT+1hry7MqqSawXO/rBwl RTF/gw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057273; x=1775662073; 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=FTlXPyeRzOyrsGJB6pfA3qXtdU8TIi9UxlieJg2LucM=; b=KryLr8o/zlqHqX0E1CF9NKnCY+ITbHaTNiLQGNpmmcxcPG2keQ2faSyOGdaOK1AwSd cmAJRR/ht5SbvX4UyUh7KVjDYgfQWSqKrCV/thoUAVNMgS1iVGoooFq6wn4v3X6bbRyF y6GcvfvqoJHlDo/VdQ/DFDVgA19vTnBZKPqyAnCqZLbcvMwlS6nEVbNbs440xHaHvTLs L0gcXlMmXqLsl6xqCvtkM7zC25KkoJWoaNtgKl/GqJAWoDA2kT4ZEJ2C+hZBM2ArQVUl mgoxdZ3rLa3MAWTWuVLk2YDYCDvByQZ23Nqln1ykagWFUwu7asM8UTlsqEe0W2vnY83W YKkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057273; x=1775662073; 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=FTlXPyeRzOyrsGJB6pfA3qXtdU8TIi9UxlieJg2LucM=; b=FYXYX7i0bIAf06lxSU5DegW+55eeExJaByqCeDRpwU92jlvGU84uLGv3akCqsmg+sJ OdibGVbYdtNMiLTG/nDVy/hZ4Bxd8QjmVvvNUFM1TltiR8gNddoLIBTLybmMp3855Vl3 9D4t3zs0ykFX741l2vsPokh+BPYIGvBHXOk5gk2gmYG9lNXfzxK8r1xyuGg6bliszQaU 1oFXeJw5ixXj+kJcuHMV/Vu/UEZ480Lw+xaTO1DSfbYNCFve95RYHBGqk76On+FzFKGK XGj4TW5WeI03uXh8r5H6w8xTewr+2eZ7lK1j2jusWTAf2fZvoLxefKH6iaG2Na8mVsnh JN+Q== X-Gm-Message-State: AOJu0YzhEgX38V+MKxpdzHd9VdAF+saiKK8+I7h6ebGprc+NGDuPC7OA 2g+Lu8H37ha0hTXBjfd8NPhW3283JhcO1jvZekABNm7544a5hzApseS43HHFI9vhU5NdJ2urJQc EeAKyikV0La20CS8/rLV2pchNRESHdY/4c32INMt5EBNgWytwKIzGRYrwvx4qhYZ5LQ== X-Gm-Gg: ATEYQzwWDbxwAo+wjuv0DF2TvBFuv60BY0sNJmD/Yr80CcZOVryRBWhQx2DaUc4okZM HGYT1BdBedYL++azUx8wbxuF+/iG99BjXmvjvXvWTRiXvqg2Ml5mBPvn6TYjreE7dG9/5OVZz4S hqKWE99tACyGT4rDmZOrohZLFz+PuBstCGWpNYQ7d/XA/7uNPwmGFNzM3mF80ElqDJGyW5XqrzQ ShokhF5T64/GBge82Lbkw/UcGWKip23cqRwNKEFH1ShoLDbt45Mw9XCBza0qENUqI2xX1jwAuFC dInIkmsYQ0acsY7TfjD7+tSYNaEiR/xQ57u3iOON+LduNAzQJuV3PFNqA/Wu1IzUzf2FExSZbDj M+kZyriV2ZOR9IMNCrbpn7hwTb6h5f3FVP4FPCvbWXx63qtwM4AEN+1bl/4SExUTPR+4NIw== X-Received: by 2002:a05:7301:4090:b0:2c5:190b:711f with SMTP id 5a478bee46e88-2c9333ad12amr2145147eec.29.1775057272582; Wed, 01 Apr 2026 08:27:52 -0700 (PDT) X-Received: by 2002:a05:7301:4090:b0:2c5:190b:711f with SMTP id 5a478bee46e88-2c9333ad12amr2145118eec.29.1775057271889; Wed, 01 Apr 2026 08:27: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 v6 07/37] target/hexagon: Make gen_exception_end_tb non-static Date: Wed, 1 Apr 2026 08:26:27 -0700 Message-Id: <20260401152657.314902-8-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-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: -HQBo-mO_aJsh-z1j3n_djYvckZQ4Fx6 X-Proofpoint-ORIG-GUID: -HQBo-mO_aJsh-z1j3n_djYvckZQ4Fx6 X-Authority-Analysis: v=2.4 cv=B/C0EetM c=1 sm=1 tr=0 ts=69cd39bf cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=t4cj51CzC67JwBy76UgA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAxMDE0NCBTYWx0ZWRfX/SDqAnmClpa5 0BG0lGx+/R8tF+kKpnafxQwG+ILnI019Fhsx4wipAswjMU+CONBf97q+sRvrU+cuPXjjORVleOg YuYIjq51WQjQ9dMQXNHYtO0iyPVwqb0ep82IqUezFT6rn/2i5hlLHaDAlQDG3wCKFPOyiyXQxtd ZSgtYhvww50T73xMqIlE9bJZbCBVbIVSuWWrwF/eny4ePi6kUCTQrmZD7T2M765POq9Rlw21niY 9D6N6w7ITwUug4x4sAT6o3g7onmqx7zQcQYNoEGYTplXoj+ljLsdMMbKgKLCBlZUeqrMrmwn+eT N5fwd8imzKmpA30POlJ3vzw3L6ntxC1+eFmcr+bLRLYxc/az270cMbYQwtLBWxjUwE3Hy1IhEWI kz1FrS9A2szm9NlSPGvjfhRQejAGTPXBoQRnjJivhowti1aIXqmcdBlGuq3akqY3JAt+1Jdfhz7 dhKAnveYUmZc0csbJoQ== 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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 bulkscore=0 phishscore=0 malwarescore=0 lowpriorityscore=0 adultscore=0 clxscore=1015 impostorscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010144 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057510984154100 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 633401451d8..1f4ac2c3c84 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 Wed Apr 1 20:45:44 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=1775057544; cv=none; d=zohomail.com; s=zohoarc; b=kEzLkcOrUXA9MXQFikV1czaE+tLA9sv1nUwj8wwtKxSlOuMO6UhbBrvhY65yWvxi8tTqucCCscqVDC0rfvT4wPtKYaHhagMbSuhPrH012fftk7RaEPVqsqD7ubX2/zG5LaIrf8Df2KrtzSDA/HlO4S83evVAt5xEmH+cdLCNCO0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057544; 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=+b8voobbRHB+fEzV3OFcGYw0x0PvxvjT9mR8Wf/yF+Q=; b=aeyzIp/BH8yl6YYQkIj0R7xgtNiCa0oNODDn7VQ3Dwd+fwKIoYWHeR4X0wTvtZD10OExTNMczDYLdSOmOWeAAow8udir61RA90uArKkXPCkIexvL0j7U+TmYjBU0jutIKXAUQUgdB1fLYKY2u2pk+BlUHAxOzw7oL5f3cERLD5U= 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 1775057544704104.82734010739296; Wed, 1 Apr 2026 08:32:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xVC-00025V-4b; Wed, 01 Apr 2026 11:29:06 -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 1w7xV3-0001dz-8l for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:57 -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 1w7xV1-000844-EL for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:56 -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 631EHsgm3174292 for ; Wed, 1 Apr 2026 15:28:08 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 4d90gbhnsq-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:28:07 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2c0f6593ef5so9063597eec.1 for ; Wed, 01 Apr 2026 08:28: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-2ca78df3b84sm38491eec.5.2026.04.01.08.27.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:27: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= +b8voobbRHB+fEzV3OFcGYw0x0PvxvjT9mR8Wf/yF+Q=; b=dCmZxgLYJriBRDzQ nUvzeqRuqQgK61S35UEwFalLYFojY1xyzpZ1U+KKEsAOL4QwpT2YKbaMV46hXzQx tsoX53LoznNwz9UWwzm8slJ6zOjZ382HyEDw26z7AGbgAj0ksiFG81Oc40x498wt GWY7ONXCPm8Du9/G0LBLCj+z+SvxBSfBl7sDPe3lzVkyCxewy7rGbhxjUgtlz2RF IGPCKFnMdhziDbP8CCRRCPYZUzXuzvhtVR0N1EDgBXyYTUVoPGZrBVFGCRh/uFUs hzEiBbu/GFTp8mvPZBKVEFBntP16JVHBLQP9Udnp5XGxAMwJtKPE66KFMjf+wwSX 2whFDw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057274; x=1775662074; 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=+b8voobbRHB+fEzV3OFcGYw0x0PvxvjT9mR8Wf/yF+Q=; b=N4qjfo93EBC9FOgczNdZgy2j/2pY+9jfxCZIodwlX9GhJ6SeTITJPaH7uqWWLVKtX5 blXL/V9YFKU1MZ4T9ah6Bn0IH3cuvpHirp4/eWe2sTGWsKi0p1RtEvAxJziRAySa6IMS mOzI4GRuSYHdWv8LfsYPz4rXaV3rdnFCGbuwe+AEawa0aC5X3x4eqn+cWPBHI9K2yyvJ 791I5RYsJbNJlb2T2rq8//hrA0FjFpv5ejANO1OFBtAftHrz9W6Nc6mUQBC/DGNMUkil B2eOv2F2+Y3u66RLFgd15jQGIlQ7j+0t7F98HLryjnVfFG0VBNYUOatrH+LTScm+3USf IPzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057274; x=1775662074; 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=+b8voobbRHB+fEzV3OFcGYw0x0PvxvjT9mR8Wf/yF+Q=; b=NXgDJk1llOHWoFpEMQGC26O/kEi8DJmmpfYEizIVwV0TmdbFDMKBPWG8C4dyJoZ2pv 0QLVz5oPnVipl0LHiucmTyYQUnbPHkvWrnc13BI8uAfQAW12ofc60Xlm2j5Pa5/llmeH XjvIXI9+LfQNn7YwD/SWIAKXyvbnHTJLii3B7XLJeOrh5dwbNchMPqlzcY83aGUXRuyd ost++vzUFwkOhZcVhRiPcDqxVot3+cmtMoVouxhX1bpMWFekaGcmSsTTBZDbQbKGcgzg BNn75vs0xucRXMbpb3XDAtvmt+8anjVDnTGq5jSsqrqyuIxTw12UKIphuNnr9okm1MmK 1gyg== X-Gm-Message-State: AOJu0YwC7zIQXlQ8Gx6zndXDlRGKjDX6bK/q010n8ni1BxxM+qDMO6ho 3Q70yf5VVYGlRnjbF2TabKiGOk8yr0AM1JBLeogPpSxtbDDaVNBJ1rX5egyXLrYqytSSqViRCBn rul0ngioxw7a3zprv5E5Z5ke1Pn1JsGFlZA6Yd6v8xEUobz6t8EorbJcoWs6VEFr+aw== X-Gm-Gg: ATEYQzxyhFpebQHgWf6+TAXSbRyN0wenrzw3paf+WgN77TGjACWCNDdeTh9f4dq0muy GjLjjcwIU3FdiCDVy0ORYsmClbQiDjzfNRfEsHpOk9ZSDfXbnj3/hQOh4s2ITN5Y2tlnWHO54dr +UN/E8tQJecXjxXmxeAjQYOrLgVigAASkZQlD5ugunxQGNRReUAKikJEJwUgic/CUXNBpxI2I9u nyZP33mRX+nOub5QL8lFiUeFRZJ7ki49MpleqPdDREgyemboFNUe60UcMKJPz/mPUFAARTBwNWS RQvcOfVm8FHaHmbkC0omCrP/dFk8wIhi6Aglc54hrCz63kbRZjT6UiNpfEN9AdRvBkqh33SqpS+ PmPf5SObdxL2VDS1zlEGA8yJaBTKc+aBIJ6JZPCi4u5L4bjfbnAoUvxY6FR9OInNPOvz8Bg== X-Received: by 2002:a05:7301:1017:b0:2c1:67e1:61c7 with SMTP id 5a478bee46e88-2c93116404emr1922174eec.11.1775057273616; Wed, 01 Apr 2026 08:27:53 -0700 (PDT) X-Received: by 2002:a05:7301:1017:b0:2c1:67e1:61c7 with SMTP id 5a478bee46e88-2c93116404emr1922162eec.11.1775057273056; Wed, 01 Apr 2026 08:27:53 -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 v6 08/37] target/hexagon: Switch to tag_ignore(), generate via get_{user, sys}_tags() Date: Wed, 1 Apr 2026 08:26:28 -0700 Message-Id: <20260401152657.314902-9-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-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: AW1haW4tMjYwNDAxMDE0NCBTYWx0ZWRfXwZ6cVjvueoRv mBPmZe9sKdRbuiFKNLAYvtbtNE8rS2tOeRj1PqXOrEVBzyZpU/F5AA/JKNXPVtDsZvgqaPRVklE UOPWfrl36NFBmxiZOLX3uH1BZfIzZDYrSRZoHzhY+F1XQV17LlFM1ztXa2KwHKsJuUsIT9vYSu8 Iz+vgUj5fAYoO+ha4DAGbCMFMUEcrAezpTZqulA5unXThVIQ5rUiOQPCFCWCpF7D7r6L6rs7XM1 cb4BpMIePxVvfNI0cdUM4IEwzXDa3sfZRWEbGM5xb0tbxSU+55P+XpXRHtfFlMzCuexKF2VelJp 3V9lShEjtSXgpzRZlUcsb9pD0m4jkwuEu222CRrHv1CakSjPceLwlO8HkmcRnwalUN1Rjlvmrc8 uP6YMFGGBV6bkD3WKt2PA6P9DZwHKm2LKehQHBmPq1Pol3UYec02zxxJAVl9aUbBZRQSRRL91li MDXoKSza3Qe/lDyGooQ== X-Authority-Analysis: v=2.4 cv=QJJlhwLL c=1 sm=1 tr=0 ts=69cd3987 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=orAq0Iv1PZLbcfkgE-4A:9 a=QEXdDO2ut3YA:10 a=O8hF6Hzn-FEA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: J8ajBuiYGgmQlV-M8b9O3LDAyWTZp-G9 X-Proofpoint-ORIG-GUID: J8ajBuiYGgmQlV-M8b9O3LDAyWTZp-G9 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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 impostorscore=0 clxscore=1015 bulkscore=0 priorityscore=1501 phishscore=0 suspectscore=0 lowpriorityscore=0 adultscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010144 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057545951158500 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 Wed Apr 1 20:45:44 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=1775057462; cv=none; d=zohomail.com; s=zohoarc; b=Mu9ID33BhauqS2gPvzrSw8LpZg+QW95S4XCVFnwDpu4G9qhNuAWly1tOVyiGtw6qtOlQs8LaDHc00L9xJSxg9UTPyLjL3yRczOESOK44YB0rM8+Uxs6yeKc6ZGTdNBoKcoobqsaQ+tTYKB2IaVz9tMAdPgp3/AyRag6G2A4ugv0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057462; 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=McY+sB9pXt117D9HXyeU2l2d7doL10+8fujvsxtS5Bw=; b=eNUFJJUv/Wk32I5rxHKv7MbjRlNXQ0hcljDmsva6rGMQehk1YbwVc/z7X8S19rJgGDcAWJdNJ0IvMtHORzUeFNnACYQxdBvsb4LNHyAmjCgim0yJfyWCSBH16uR7fs2nWXWqCPx+RhVPQW9v/eSAILAHrlBw1W+J/dCI2GiGwks= 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 1775057462392801.7631011646265; Wed, 1 Apr 2026 08:31:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xV1-0001UO-VE; Wed, 01 Apr 2026 11:28:55 -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 1w7xUz-0001IT-Pv for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:53 -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 1w7xUx-0008Cu-PU for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:53 -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 631F3TOu1563029 for ; Wed, 1 Apr 2026 15:28:40 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 4d8va3tq6d-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:28:32 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-2c7130f88e3so22387571eec.0 for ; Wed, 01 Apr 2026 08:28:26 -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-2ca78df3b84sm38491eec.5.2026.04.01.08.27.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:27: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= McY+sB9pXt117D9HXyeU2l2d7doL10+8fujvsxtS5Bw=; b=iuQ56rp2L/BFbqqo 81ju0iBkWf8Jl2UOh2Cc/7A3xFtGn4/HGJH30vvIUjwbJ5hJ5fA/NaNRujkmt1xk j0wEyE8spX3RvoW2M6fFHFjgDbzdFr572IIWEkl2K9QWdoIY2SnDTcFDVTel0YMj 5rEo4JB2EhtI8Bf1VPbHrvFaspJylWr9ozmdHU71PIKwGy8vhTucwjxW5JWVWmTi Stbn7FRelPSnYwzArkBRPdcfVtdN4xGurzseTduKhROe3VKhEoRb42cAIPxiHGCB YenQxNjWJ5z9kBwWxVUdUf7BGJvJGYMU7vShwIezEpuUQ1P/CsKVACmDZ1g2p0rI u+GYIw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057275; x=1775662075; 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=McY+sB9pXt117D9HXyeU2l2d7doL10+8fujvsxtS5Bw=; b=feCMGJn91OzPwo+MzPlu65bMkHQQef0nR0dAC3JtYm0AXsh7jqU6XTrZRq9C7n6ZQI tX55Xs9CY6yxyXJfux2QE9jyR9PY/DJtA/Bu5djctNDoQaP1u1m3ADHSi8k2PqBRkRmG xbyINTzpT3yQ90Tbxg7dxgANzG0J/lq7xL5lajZAgc+LDJK9rN+miJdJspkniKaFlK7Q et1qwr3xEl/kix36V84KxLRn850HC11Fm84eHGZQiOK4A7JbgeeBwiOMw7KnH9jMMdIo nT7Hd09HJ822Cptl1WxWsMbPuOQhyao2mBptp5XHyB9bwlRUWxUUfsud4uyHdFUCjVTI ZOIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057275; x=1775662075; 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=McY+sB9pXt117D9HXyeU2l2d7doL10+8fujvsxtS5Bw=; b=Z2apznMEIKyjOApM5V7+joMz3tcmF2CF5F9xeAT2H5H6KCS6do2iiA2asynWz+7Eq5 YuKOKRi4d4URGrr0/VU8+SLQB8EYQ1stEfreWeQv17xqqb96lMbKoRLy8toDScxvibo/ HiVQiregxDgcGb5T5TDg8LdUg2cvTUtro9zDKnhC6VkZ+Lxb9Eg6OGDkCLW3slMe2cF3 0KAnWo9ORovxhtNEXBY78DlPrwwBZSVDaDM4EJlhoY4b3b7t4c36iRTYMN858CAva01l dhMlcAoHwXWvdHvAP9ShU7h54E8MMg/HSM1cTLPVcbsqyfwlD4Fww7YcGwNUuV2LK4vn e4nA== X-Gm-Message-State: AOJu0YweD57cLidvUMe3GShqKb424h3VFy29KnuhPxkeFvtAXg+ZbzeT T1p7HrqEdu2A/OiaS71Nn5U/1ULaYx9rw3THgugTbwbajmhcOMj9limU5tGSMA3w/nZLuiChuga ciyA1OdN/rm8VQ3SxZTkX4OJM1z/Em3R9nP46JjpQS9SXmwTfqmRcSj8mL8vx2wevGg== X-Gm-Gg: ATEYQzykG8VXNvt66neVjabiPoWQclzreuMYL4IvLFCBSyITkv42wtxJ0Fac8kVcQf1 1nxcWniS6RQvWnnIdeHsTdm2/Mtp5tmB9kc04EPsLJsEALqKDYoaoYKSCMvGT90qL6enM9cAWgF o6KXOyD2NoRRS1XcLZNGSauj5gpNxsrw5kuDHb8qrl0s5GgFhZds+gucktBRGBWqSHyMYvyN8VG AW6lxXJnrqxAOei9vRA08SnzEY25NqMVXzmIfY6AlWI5VYo6nVETpj56yI+B2VNK+8/MrlqP+gI 7bVcccFqyhXq7v5bpj9yFfusaSFtDZxwaaipKaTEahevSaIM8G6uOVh2yRKXdrehP9hkuJGjYf8 LJZ1rmTRB8gGBPJp8SSxlMAteIHBr0PuVUe5bo8WWkOdBPLz2AGKkah/LvfFT2+xYXeZG3Q== X-Received: by 2002:a05:7301:1005:b0:2c5:347:e63b with SMTP id 5a478bee46e88-2c9328ac36bmr2120898eec.25.1775057274939; Wed, 01 Apr 2026 08:27:54 -0700 (PDT) X-Received: by 2002:a05:7301:1005:b0:2c5:347:e63b with SMTP id 5a478bee46e88-2c9328ac36bmr2120855eec.25.1775057274013; Wed, 01 Apr 2026 08:27: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, Laurent Vivier , Pierrick Bouvier Subject: [PATCH v6 09/37] target/hexagon: Add privilege check, use tag_ignore() Date: Wed, 1 Apr 2026 08:26:29 -0700 Message-Id: <20260401152657.314902-10-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-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: 62mH5AYyryEiP59zp3jpa5A4uQr0FGQ2 X-Proofpoint-ORIG-GUID: 62mH5AYyryEiP59zp3jpa5A4uQr0FGQ2 X-Authority-Analysis: v=2.4 cv=B/C0EetM c=1 sm=1 tr=0 ts=69cd39a6 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=pksD3ONYjMjZD1LmeuAA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAxMDE0NCBTYWx0ZWRfX82uKNiIFgksp hnntxbs0Rq+jjtvG74VucGSCFMOe+zmu5TMktmhlxj+PXCgM4sATK1hTEx7Ja3P5nxySCG3TNVM oi0Lw37eiMw58dGTmzYYP9VO965YZIlBWQDOLTpHYoZYiETtF8zGMZ07cfaxP2lWronIvpv2XaJ dS4RQAZWlTxjN2f0yqbbJOfZF3CbcQGhvnW+SjHDhETnv2xH2UZrg73y2fnzUE8nE+1xo2bwtSx FJu7s93VVSg7EzImO+D8j7jy5uV5UZr7ho3nHDkmwHTbcOiyguIVUDt1ufO98ujeQJrOjdqgPyd g/j8UV1oS8Z6C7MO+TR3N2R6M8eMZy8KsrngDKF2Hhr5+Ivyy84p0geu/OaHjWv/LS8e1hoktRb zQR24TerFN1tA789VIyMPr87zN2nu9OMsHHTLyVQ/ik0GQVBzGELsf5Ud3jik+IryFdK+q1aIeH sqGT5xk3tTuDTcMlWOA== 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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 bulkscore=0 phishscore=0 malwarescore=0 lowpriorityscore=0 adultscore=0 clxscore=1015 impostorscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010144 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057463366158500 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 9464246e9e3..9f54c7b3f96 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 4f72d4759cf..a4dcad5f7a5 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 1f4ac2c3c84..c947db85ab7 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 Wed Apr 1 20:45:44 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=1775057574; cv=none; d=zohomail.com; s=zohoarc; b=FIknv+pvQu9cRrR3sHj1QZ/SYoCfH33SkGSJgzoxRR57CqyHmBK0YjNJil1LrDOKONMItTy1TOXz51ynDOr9cnPz33Q2Z9Ax1ZbcM4OIkEJ91/RTv5BsmXtpSlMF6AVbhTQ+UQgDB5ygMsu5YeHkBXdTpX/rGEvvGdcFbLhPa4Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057574; 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=EH4slYrH2tAurnh1B6qm7AwzqOtD9xGDq2yM4ABUAzo=; b=F8AnT0Bh5wHUmHpcifc7XCxN1v6R8MwZJuzxNA8O+EX03hjcjaC/Hw0aLd76GtNywuFCYoGpsv1tkRCtQStyJO9W6OZZ02Ubhq7X40sQ75QqU8Ll2HbxwdI8L0dmGTepiHaMCwgQjn8aJD+Tna7Zw1M9bKYP/4W1b/IMFx4ekwQ= 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 1775057574898970.4830799471547; Wed, 1 Apr 2026 08:32:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xV2-0001WB-6k; Wed, 01 Apr 2026 11:28:56 -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 1w7xUs-0001Ay-1Q for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:46 -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 1w7xUq-00089k-KX for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:45 -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 631FLiuj1562613 for ; Wed, 1 Apr 2026 15:28:32 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 4d8va3tq7c-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:28:30 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2bdf6fe90a9so6984797eec.1 for ; Wed, 01 Apr 2026 08:28:29 -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-2ca78df3b84sm38491eec.5.2026.04.01.08.27.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:27: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= EH4slYrH2tAurnh1B6qm7AwzqOtD9xGDq2yM4ABUAzo=; b=WhXAajRX3jZM6P7C GLTPY4BegL3nSSgTB3EfEt8Yc60xiWQmo9o5E3XciU4ikG7uwNa6HpjIMgjs4GkQ GW0J+h1cdKl26NK6NdjfhaH/+1OdB7OUGwowGbk3WGv+n7U9g7mHC5IB3Fzx9MWh nIir6Iv5iMDZJkUD1WQ0g4o8pcVwxhfwuVGbr59lHa0zlQE8xBBZWUokatej4q13 ANR5Ud2TGRoElLocvv22ypu91lrsafUrNlmAJhiecpMis468sIBiUjm1jY0RT/0a KCMUvfHn9QwJZPr8vKC1tWD/VNPXRrXWByMeP9ljgPkzvB85X/biABhubwvFiCAn lpUQYg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057276; x=1775662076; 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=EH4slYrH2tAurnh1B6qm7AwzqOtD9xGDq2yM4ABUAzo=; b=Kj52g9gsHKmNprx1qQQ4fDzGhiHBZYj9z4e48Bntu0FxEmJSvnxE38IRHO8eOF9dJ6 8QHW5Qz7PR9xKTMsE+bi9991uYClWQB+ud8s3HBwClsmaQGoVwCT04X3ji3cR86FWm8l OseNbK7XvCiWJVzWjKdCclBifVG/994qj6vAwLnRJGvuBZEF8W9sAeAxeew95a7/lKMR nC80sFwOndSK5cjBkd3EhxmltQXGMTcu9jPOIERrcFjxFSM3F1XJn9MR5MSGgQ4Ze8vh xN6KPjK5J4jgztSYpfgsw1w3JxacTgnwoGzN8xvNTLRtCRK44wpfjiDJE0tXu+jWwFff vlSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057276; x=1775662076; 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=EH4slYrH2tAurnh1B6qm7AwzqOtD9xGDq2yM4ABUAzo=; b=LzK2runanrJoEC4fWxXnk5M63CcmGc3lUFGC+c8j1EWYBws5iwMZrRiUJL3WR2E5sS hNm/hRognZqOYfBVdX31L9oFo48wzgc91k/wQ3LBI+W+gLzcUBmyolWeT6GkJ9WmkEAI APwcF76q/HSI/v1W/FTVvFic3/k0vhflljhQp/24AAHVP3p4MfQG3yANXM4QcnrLdrHN fBAN21ncI7K1np4Gw02QZviWH6j3Ca8ZZzvngdfeSG7ZtWjO36h7viiLnqwxbzR1Pik1 rOnwFQf0mtAAN/KaZaC3uEldDmcKg3n7KCohywT6pylWej42Our1sOSuauSPVk9oGF+0 LJZQ== X-Gm-Message-State: AOJu0YwP/NfLNFrKeKVQg/BriFtNN6RcpQdQxURcbMwKDj7K4/dkhDfC SqSuoGDDS48j9xvENhHUJoH27UQ6BHTqN0a3eYAKR+rzRD3H6QaIxJUqcWqpyR5R5Qv3BHIp2GV 8ebnpQzv7eWjkiLHfohbNikxxUzpitnFFhaBUtRWY/0yfSxN6cmZY11ObRFj/OxhA2A== X-Gm-Gg: ATEYQzzslreOyx6hreB5fn/cyr97sYF8MCVLBKB2zwXEQoApvemjF2M3sJK8eHfqp0C CS4TCRg+UwGD8zNDZMKkk2vqfhxN2wTWsuUb0FO8Vfd032hY4/831+LA5bihQuQBT2JSaIojnv5 uwQYrei0ck9zeHdyfk5/EbCrULDOHfRgu92DHipXAhMf+/R5Fz+iuoKBOVNz0CtSfV/c+vTnSQk UNE3UTc0b3dGJBMeUkxq2Bivzm+XWu9MoZh6c2aKlfJrBqpUNXhHkRv3LMCYpafWlbboibpugVx r7aIUpCNK/hNxgT30cLJ+v0AqO44Evo0xrB0LKRo+3CsUow6T8KM6vBXR6axhaLWMK+aNAPHcvt fcY3aF4dGRfDIONXx5x8qbD3kKMg78Gb9TVUzmq1eV4cpVjdJ0ur3ln0QCWIh7HSR9uxz/g== X-Received: by 2002:a05:7301:db04:b0:2ca:775a:94f4 with SMTP id 5a478bee46e88-2ca775a9ed7mr38266eec.0.1775057275643; Wed, 01 Apr 2026 08:27:55 -0700 (PDT) X-Received: by 2002:a05:7301:db04:b0:2ca:775a:94f4 with SMTP id 5a478bee46e88-2ca775a9ed7mr38247eec.0.1775057275068; Wed, 01 Apr 2026 08:27: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 v6 10/37] target/hexagon: Add a placeholder fp exception Date: Wed, 1 Apr 2026 08:26:30 -0700 Message-Id: <20260401152657.314902-11-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-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: 6MOC6wi-8-f6uxx1iRJDz5W2JkV4A69f X-Proofpoint-ORIG-GUID: 6MOC6wi-8-f6uxx1iRJDz5W2JkV4A69f X-Authority-Analysis: v=2.4 cv=B/C0EetM c=1 sm=1 tr=0 ts=69cd399e cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=R5LHHePp8dzqxDYlWrYA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAxMDE0NCBTYWx0ZWRfX7c/A5LkVTN9y VcMrOA5cXFPhl24DRjhSmNF3jQqj2AFRGDfm/kGxHLXUywr1Lm8b6PE3Dfp3YgdY5ajTwgXuuXv wJA3vipxGp00sAVRAMy/5/EfLqNGbDBobroBsL1rclBMexJjOPXxYCEC77kMsdBMXYNtwGtfuit +XP6BYyUIfkxRIwDG9nyeNkR8k38y/B1evQw1NgswS4Iu6fO4hyDpv53ca4bC2Leg2v6UF6N1Cd rNOe5xI/whek6v6aUNWpgIzInzHVjC3aD+xMJYTqdqe6YlZs58KS7Ae3TF6RFl1DJFEpvzv+yRl iUpPWIiiH4pQmdKUtfy2ZgF/6oY4aZ0F6ZHfa6N5ip5QiyfIZsyKsbIKnlMx4MeAtJ5fDrnhYAd z1qXfFDX2qq3ENC3fVdQQmbak8Yj5thyjwezG4NH47ye/1OORVLfKiCt4poDrbJVbI9cVs88QUI xTQr7Na6WDVd92rO/2A== 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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 bulkscore=0 phishscore=0 malwarescore=0 lowpriorityscore=0 adultscore=0 clxscore=1015 impostorscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010144 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057576105158500 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 Wed Apr 1 20:45:44 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=1775057360; cv=none; d=zohomail.com; s=zohoarc; b=NRGU9YK6ltkKAdAQNDhB69R0MDNJvkPeITE7qbBGsdxJt8QNNnuB2UUGbp6VoZLdKbSNzY+naLEFhz5UQIieTXJN6Sj2nHFgi+9S6DIagU34XbYiUAc486QslREoD/lGIjsDAhCacvciOWEXaQGFZkt0II4AqFFayIRBbTLdBjI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057360; 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=otPPk5ra8XbrJcQ4KUod9esGuz0VYNxYDxdeHCKqdDk=; b=ZESqhd+RXi4TaYU/3uIbEAWywXNL0lCczAFMfn7IE2gUW/2dtjdaapecr0WRIhvVRhrgsJYv0LS/R1Csbn9fMBCREu/UxPeUBfWGzyH0xYGUi6Nta+6qIBtEbpTyxoKRz3OFAnOFSOZjOtTTWgImxrRkLFff5NIZvm53wM0fFF0= 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 1775057360770991.2107488597186; Wed, 1 Apr 2026 08:29:20 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xUl-000151-OS; Wed, 01 Apr 2026 11:28:39 -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 1w7xUX-0000tr-IJ for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:26 -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 1w7xUV-00086p-LQ for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:25 -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 631EWo7k3174301 for ; Wed, 1 Apr 2026 15:28:21 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 4d90gbhnvk-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:28:18 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-2c0f6593ef5so9063640eec.1 for ; Wed, 01 Apr 2026 08:28:16 -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-2ca78df3b84sm38491eec.5.2026.04.01.08.27.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:27: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= otPPk5ra8XbrJcQ4KUod9esGuz0VYNxYDxdeHCKqdDk=; b=OHXFpFQ+xiCx5pHg ee0PYtEIDzVNw/Sd/RoHWEQwAft3vRAtFheIq/XuvZgghCo7VWyIuL4ReCg9erfU hz/Qq7Qcg/LFgMoXEf957thesA37pVFIsv0esK2XS6sa4TNK5i3sirtWTyNq8rNh es0mTqQy4Lhmt8phkhIdYcjSXFbGEtIoenm/ABU5WXW/YBl1E9sEIyguUhV6RsA7 c5TBqGbVzyHYYoRY3KRLS5bCB8dawwRA4auEmQ6SzUJfrfB2Yu2Sj8bR0/v38cJy vr/mErNnqV+ZvabC20yRE09jBZjWlO/X5sJQcii3CDnvCs1qRgcLditeal4s1d1f 3rrcHw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057277; x=1775662077; 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=otPPk5ra8XbrJcQ4KUod9esGuz0VYNxYDxdeHCKqdDk=; b=OjDBfs+sSoRqV+aM7Wb8HlMzSKM4HlnAdlskOzU7OZaGtDYaEW2zcWlWpdY2HCMHDe SRW7SRpekHnrO/1lUP3KYBJX/OYeG/jkL3ULoj7BpDzlzWnyh31dsc/JdCRJshc+ywSV 2JPCA0y5oK/iHyDvHonhFKb5kI96Eiexl2DVOj7dBnMQYb4yuGo6LFbkWErdPgYTX71s i1p3VMrZ2j4aQ8YJlJ9Tj9rSODDJYpYZQGAXovYF37CqZOtadMQwZyU0dUKKoXjsb/xe WEUzaFyP+tZIHMJkjllEoNmLCLRBr+XL5s8hXViFbcsKVHxsqkF7VlIRWAok6l7ZGGf4 HNDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057277; x=1775662077; 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=otPPk5ra8XbrJcQ4KUod9esGuz0VYNxYDxdeHCKqdDk=; b=Z0VKijmm7mlD+rim4U15RDgCwZ9gOOWVNAD9dujKZoDY1xHOarIWejjlnwIoxfd1oA DsQnS+ndQvGgizvFsujH+RgIl4yk8DaLh6Fah1NIQc0YGSifKDrGISvIjClbOCWfIbRr wrpD6LQi8tsnsPZVie2uI86USEGD26bkxyz2z4X0h4m1UUke75NjfVIC4ZzMsOzxyebW uhWVZ47+36J9RRBtQOInFFgiPw/j+Z7v9IMGj9QzMNPxquqXafP5W9TJHVWViwVMsJJ1 OgFrX8yrFV2125foy+d+ur7/epAyhnUOxNhUBp42ZxnWarUBDa9IunIT6yzfxSyW/akk SBJQ== X-Gm-Message-State: AOJu0YzLwJdDKFF3bsMGTPE51sCHTlx/ShwE/WVoc857hxncXXdBahcW SP+ME5jdwcjWe9RGwMEM6y1eL+Gp8GjtmG3/OR7+/7iScEASH7DOW7ZSA6lV7thqucmInz4zWsl L5gl9KUubIYJQOSI+zDZI2BMwr7DHWyisK6J6ViTtwCH4QvEn+D3OBU9pty14tRswaQ== X-Gm-Gg: ATEYQzxvUE9I4U40RfbkCBi21PwxXVbasBEwxgergaFUzvBlCbCIt7QkublL1NppdMb N7oGFj1tF9dQH6efxxx539xzFLeu3pqB6e+2FqNiZbCYJm5O/tHahH+73vZzifMCIeOJ0DekRgD hkMyx0xXZZLv2pbyhmkQN7D+zX0cj7IUPkjbjrI7d9QsJLyI9krz5zjrNypRgH4fDiDm2FQc4jb OERN2MgXAHLMbC8K0R/wA5PKggD/A8Q+qVgfZwDsP+dtMMDWKO7MXJTYcu1HygFi7WmyPKfmFcG V7xksfeeaAMY1x+ksByRsZep8KuiUkFrlqJySI6sK6x1lKVcALFbtLnDcCYEe5uk4uAbzJgOgOD lr56pZNwTg2QkhtuAQZVyq03+3Yi6DxJLDWIAR2XRyaFlG65wfl/r+xpgAFHyQgQJfVwjgw== X-Received: by 2002:a05:7301:6085:b0:2c7:8e1c:9566 with SMTP id 5a478bee46e88-2c9326aa4a0mr2065459eec.16.1775057276579; Wed, 01 Apr 2026 08:27:56 -0700 (PDT) X-Received: by 2002:a05:7301:6085:b0:2c7:8e1c:9566 with SMTP id 5a478bee46e88-2c9326aa4a0mr2065441eec.16.1775057275928; Wed, 01 Apr 2026 08:27: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 v6 11/37] target/hexagon: Add guest, system reg number defs Date: Wed, 1 Apr 2026 08:26:31 -0700 Message-Id: <20260401152657.314902-12-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-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: AW1haW4tMjYwNDAxMDE0NCBTYWx0ZWRfX6NqiYF8KHoF+ t/3Tzm4OM8lEhSlE6DiBvu91Ten9XwfV3I5ysfScP/SSc1BMW4PiCOROV46fQEQS4iCtSHrKsZs dDgrpZjK+1Me3QqiutZRkaCeni/acRr/pU2zLPQwu2J+llLMfHE2wHh/lYLgp3VYvtOtCkewVxd +EfaeOfBpk8DRPcVUkdPbn/F7yXTENFWVZEJvFKn8FbXGa6McDt2GPgf5j4YdPmxGF0dCgGf1AB gLr7x0n7+xHTsQLfGCHdzi1xU5Z+4dvGhptAvV0AfG9Tcdf0J4EXTGw6/g69ub6eSYTHUOjMnA6 REDMz0W49GvltkiJMwM9a9+p3tDfdkwdGiIiS8rer/bti/8n1YbwKTfrEv5pzQy5EOzAV26CAeg E4OWpgm+IFf4vqdFfwF8/r3YLZZ5M6cVYcX9wd4ehH41OFY9tgCx3AHAZ1ThRMzgoiyQX/JsB/h 3vVhOBkfr1aUAQkUODA== X-Authority-Analysis: v=2.4 cv=QJJlhwLL c=1 sm=1 tr=0 ts=69cd3994 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=pGLkceISAAAA:8 a=pUoahe-fvFp-T0RBf7EA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: 8qOlFcEPuOB1Xl9lHoO_uKBmbdGm3bss X-Proofpoint-ORIG-GUID: 8qOlFcEPuOB1Xl9lHoO_uKBmbdGm3bss 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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 impostorscore=0 clxscore=1015 bulkscore=0 priorityscore=1501 phishscore=0 suspectscore=0 lowpriorityscore=0 adultscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010144 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057362521154101 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 Wed Apr 1 20:45:44 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=1775057479; cv=none; d=zohomail.com; s=zohoarc; b=iw2exRiNNhBREJpgcpHH9U80ZnnMqbEnMA54cFYrdU3P7H5UBBUGNaENLytr6GgTHTD54VHgpCgmm4NAB7YnaqNYPr96b3Kg45x8JnlK52DSiOBDc+mL3PuvGorWqqJb6x5jyHhgGZFSkLMb7C3/G9MwX3+MmnprG8juDqQ+1CM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057479; 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=FsgD/FgPuLJvCJDJAtIpqnhXQHCippA7QPkXcXWUFws=; b=ANtULYJ2wZKcpKNvLpmRYtgeMXSXsX16DxM5tl+jYXTMgLaL2sxbeh2SdOt0XoJraaDqbwsB5on5gQhnnOl00G/eabN2rRKCjPrVQh7DxI88dfdFDXsj9vcYtlX0a4XtBLvujz1jYT3g9iJ6K4Unoya4aAIKFCwF7xXCBiLgEY8= 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 1775057479062892.3369932048585; Wed, 1 Apr 2026 08:31:19 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xUp-00019L-C0; Wed, 01 Apr 2026 11:28:43 -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 1w7xUn-00017b-Oe for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:41 -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 1w7xUm-00082r-1g for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:41 -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 631EZxmn3174319 for ; Wed, 1 Apr 2026 15:28:00 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 4d90gbhnww-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:27:59 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-2c3b8880ca9so5708530eec.1 for ; Wed, 01 Apr 2026 08:27: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-2ca78df3b84sm38491eec.5.2026.04.01.08.27.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:27:56 -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= FsgD/FgPuLJvCJDJAtIpqnhXQHCippA7QPkXcXWUFws=; b=Txoa/2VrfhSi+Q5G w6Stm9ib68duZcrG963z25ENzcGHvb68IXdomUZHkeDIM98ZgUSijR0iPlZKONvS L4r/NDd35iG0zoRxXTozKL04gbomslAvwwaXWrMMpE3KLvAtjL3ufC6K6qx+xKez NcICgKl9FZtYNBPyOsuG07SDSts+Nvx4pNsPJ3FeUfT/yMSVK5m9nip+VTgZMHHQ 26dEBL56OLkDOeR6ZlfyicLOU5EFjIcIEnyvEr3zBiEQEj3IxWkjSv68irw7y9JP wf+uGX/yEazYs+Vv2yZwr72gzgo8HW0MQ7fI1vXUAdefjmh6HOtRZmOghHdTc697 KsWTjg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057278; x=1775662078; 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=FsgD/FgPuLJvCJDJAtIpqnhXQHCippA7QPkXcXWUFws=; b=CkE741OCE+a6iSNv0nFAC5CbT46JRW2E2dkDcYAEhgHoUS3YKZsTgsxhC8KGZZmYQ5 AkLmIIdxtHrF2e4PX8ctv7SiJFS9Qrn9xk+DfIdW+ClcJJ6BWMcrz5Qrw9pahQ7WNfzX sHHSjWJKs2OwD/3aopW9erQI1a+LiTPrbJaDVLwny1zU8RBNEybPyPYB0GvDhKWPRHfO AhXRyjVcv+A/3sSK0Xly6mjdCRr1Y6CXjyLS+/OGX80nIOiHp83trQMdijD2X2UYE/Mq e3kQTuUDx2jcvY696mJCy1UgMUTJZjm64RN8xTnVyhFt6gE41gwSV1DZHvK8kGPfk0uZ /CeQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057278; x=1775662078; 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=FsgD/FgPuLJvCJDJAtIpqnhXQHCippA7QPkXcXWUFws=; b=gi65oWxhpehDVuPDYeLQ93xFDyAMH03okwXKXWP0CGLWYvvclSUYGJ5fTUkjeB6Dnn Bxm913gfBcqKp9cu3tUn12khUhQrOe2K6kS8jlm07fwFHFBzGLyQ1kH8ugrQdpYasjUH rployliHEzFpoKMZcs/70K9uzrL7L6SBksOImoRo6oj8yaBfaNABleucHgLFAWdyM2WJ hgAPugGRUOZp/bLtobKZ/HjKn0X6B4eAUFUOyTy5Wn/us3TkP9qhJ63Id8iPKBkS7SW6 mKQoEA4AQjQ49NBkgC7uFuBLgI1BrypY5CwYnexHQrNPoLJw8+sxEzZ2iaNnWxJvi3GI 62Fw== X-Gm-Message-State: AOJu0YxKIWL6QHknCNUMTNWiNEqC66Eejeqi+wWYKE7yCJoZ3pylTJ9u DK6BnPR+D0teRYdQ0OTc1Dq3DsG3eDyhTpRyxG73AAdDq2ljoeOoJjZle/cxIBrs67F02ePMi4P yQpOF9CtPtZrQadETTpIX3ayo4oBMeu12UmwvfUm5hGb08+hKDrpAEixtxvZshvEIHQ== X-Gm-Gg: ATEYQzwdv8ZvGvrTO7CWgmOCEtAUYKBkGukJbrE09X4o4VxkocXq1jnHyfv+5CmY0G9 xyYns2VZ5BGNRwWzWxfkPqay6l2EKd0O2T5n2xh5LW9vJA71fQUMn3p0RA3nMambTzpzatLjBDB Bzv7qUCtYaGlLbZa9veZPW/f1eYXLnDB/FVgtuOCK1LSmKqqilA9Mrl+zw8gfEsc9OjN3fkUjDF tkI3sTsG/XsWvZCbt21PE9zfqrJOO+ijijdxf+fqVQSWF5bJnyyoj5VZYK57z9fHoK+TizwVoL0 eHYEd2sxYfvSaDH0tCMzKsjid/7pibw20hADowofsF6H2iFiGfdhh3CejhO4sHXznHpJhwG68Pn U7s45oacfWJZ7+CaS5c9snBGjyxdi223nxzVD2tAAPa7PG9F18FVqypj0MitG7SzT5Z++Bg== X-Received: by 2002:a05:7301:6895:b0:2ba:6b3a:7696 with SMTP id 5a478bee46e88-2c930e6bd20mr2159647eec.8.1775057277483; Wed, 01 Apr 2026 08:27:57 -0700 (PDT) X-Received: by 2002:a05:7301:6895:b0:2ba:6b3a:7696 with SMTP id 5a478bee46e88-2c930e6bd20mr2159625eec.8.1775057276988; Wed, 01 Apr 2026 08:27: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 v6 12/37] target/hexagon: Add guest, system reg number state Date: Wed, 1 Apr 2026 08:26:32 -0700 Message-Id: <20260401152657.314902-13-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-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: AW1haW4tMjYwNDAxMDE0NCBTYWx0ZWRfX5MgNIKXt4Ms9 xKORZTc6RrwoRfO5UU9X6qUQIdGusWf1og4S3b1v2cCBzcThZaZ8UhHuq4Jww4IapVa6zyjd5m8 kvnzQC9EDtdTLNKe4bpzDLSRInNqdQ+gAgPhcEERpIPG+XrE49NV/g3LLjLy2bsfItDiRpORvpf STMJMJt8CccVbDqnxN7nc8uFY21p0l0C6HgDBoBNOih1uHACYWEgGwKiDnHrXcBCiVIRaVKXZei 4wMfLh2O9odE9r/cRNLxXzjY/OBbkvEW7NOvRdC6+zPtE4klZ3HnVoDBeAYCcNOZZBZ5aSH8039 NALMLScrRwrpvZiuwb04d+BPjXNczySku4P/26QkNr3mNSp8xeyHKwChOFSVi/aM2mWZjv7L12p G7UUaCslj9Dh4LM14dZvZuQeGzdhfnDF90j8Zr6w42mwYPyBpekqGOwM7H37Vv110goeVqPRPI3 Dj4188Y/f4ZIgUpiDQQ== X-Authority-Analysis: v=2.4 cv=QJJlhwLL c=1 sm=1 tr=0 ts=69cd397f cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=ikZfMmNF8Hme0_TNbpMA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: JEJGiaUGtNumL-4i-GgXx_YymbQzuH1Y X-Proofpoint-ORIG-GUID: JEJGiaUGtNumL-4i-GgXx_YymbQzuH1Y 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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 impostorscore=0 clxscore=1015 bulkscore=0 priorityscore=1501 phishscore=0 suspectscore=0 lowpriorityscore=0 adultscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010144 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057480511154100 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 a4dcad5f7a5..8ff5857873a 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 Wed Apr 1 20:45:44 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=1775057390; cv=none; d=zohomail.com; s=zohoarc; b=PHHJDHE5SOZDmcnkfxfO9mJCYyFl96qCoOTlMawfnyNjzdZBqpezIE54wqlU6wBXXBerHdNwpGy8MXzUb556LeAXWdVcYjVJT4wVEc+BzSPVJ59uPUuaPLdA8ufQJ1FlOAbfhUkGee0beMXlNO5Q6Hyb7IcJjdvyqPQeTsGwkVk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057390; 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=RVQEUAzFE4SplFIuQaA6cs92F6G+KviXiKGvFjQVQak=; b=FT9SIkOMrRt3ELUR5BGfzf1XfhyybmblWmdsrEbJJOzeFrgGAaLLVSzA/ffe/MTFwzKRpfSdMp42cjuJMNsT8kGlMSxBAH85lPMfln/CpC5ycpj8PdLDuRd0j6V/0r+mn+NrFz1BloMYa5ebm4mHqdh3Q6ttuiVVXp33/Cz5kD4= 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 1775057390615183.51896651134723; Wed, 1 Apr 2026 08:29:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xVg-0003aV-Pc; Wed, 01 Apr 2026 11:29:37 -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 1w7xVK-0002SZ-03 for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:29:14 -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 1w7xVI-00084A-2X for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:29:13 -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 631CdFj31285928 for ; Wed, 1 Apr 2026 15:28:09 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 4d8xm3t2r2-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:28:06 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-2bdf75bc88fso6124169eec.0 for ; Wed, 01 Apr 2026 08:28: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-2ca78df3b84sm38491eec.5.2026.04.01.08.27.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:27: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= RVQEUAzFE4SplFIuQaA6cs92F6G+KviXiKGvFjQVQak=; b=hCpnf/0+zbw8c010 3AuNJp+Um2t7eMrfMVbtF27TI/EnYOu8YtVwL2nz5FTCsXfXGwHKMUdwyksjObgy 6zCzrNz9IU6W4t7sH4kU8EGI+3zr7N/EXhDPUy+7O3MEIUDJbANZ7dQAsqUMhnxH 0YahIh4DkROwFUqKTuJcORUFglgj2huwxy/QenqMUAhoi7Ny8U6FMYZkwObKhHop M3kdSgkOhlz39hhwQRy2+28ENGbg/h7ZWeNuAznJPevc10EkIaAYS1OGnr+4XbPI U9PGAT1dyre+91WCaJlDUwrFLU5sky/j2cV1VVBh3cLvXKqeKvPQeSfvxmO55ZOr L05SPQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057279; x=1775662079; 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=RVQEUAzFE4SplFIuQaA6cs92F6G+KviXiKGvFjQVQak=; b=R6K4q7y764OfX+8yg4tbtH8V0z14raj1N5gG4kE8YJsaT7cXSVXLEcORoMCt/RDU7D QM+ejwtuPX4QtB1jOWdaPRw2rE4A8i1rChL9TGbAebxrQJUUEl1K0V8KXhefPXK+/hSZ bvCzyjryWkxOWDh47pTmceAUlWIrQ/OvQ8KRCAHqg6jbURY+2Rh/4ueIkDaVarjXqnzl PLW+jwrp2Be2FbD/IynX/GrHNhEMWET4j8XfUQtVDaeh2r2JlvoFfm/iUTcn8hjW2vgg EHHMCcsy3YWQWz+5IbeUwwTdVfNKee+u+Goa3htHoyGrUD14P9+n1G1SFiKZ2NA12Ooy 1iug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057279; x=1775662079; 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=RVQEUAzFE4SplFIuQaA6cs92F6G+KviXiKGvFjQVQak=; b=Lb/CGiPTG1TPqc6JRa4wauNgsArdVLbpWpLTB/77Em/jTFOT5KkeJQg/OC4HXboyXa 2SUyRlksOVA932FkRwvZAU8t6ljqnk9ifULP0a4m26+UFAyPhYtH/69cq/O7+jgBkblz iOCDx6jRggITkKjsaY60XfTQyXyyy0XmlZX6yMC1wLfwBycVf/3r4kVveKggsT3jpJeW ZOAxbHlhoV8jcrStp5WJS9WQ0+1kMrrJ5vgNChppvBnJO5ucJoXT51I2AA7AXDfPPe04 SPKzf3OpOxSczHbbHmreiFJUs4HLv79sjGKHLygUJy8Vf2nI6ku0Rsa3TTm0r0IXnNt+ TavA== X-Gm-Message-State: AOJu0YxXm29XsrmJcqWuX+5qROI/q9ZOq13A9JUdRjap0Ag9zeZcdJ2M TiS3x3iu4xRkSja5OqAMCXWM1sm/GB8O+v+vRQa/hsl6W/S1VvayqS+o83KhvtP9UgSIrD2DIEm d/YmU2/mYxgXmSt5YYmRxFjqe05lAweOAKasSu2iYKbhmIzKoZo46W05jLfmIuUYT7Q== X-Gm-Gg: ATEYQzysTBqtrRsm7xPU6VkmfoHlkg3qzMSLo/1Vceg9PDbxV/Lbil0bCUTaS0Rt7/V KgpuMzJ7eZLdMU726a0eiiXd8xOHKEQp9LlDMFYpmNDaqyTwgOtEkK4anZ2Eykeo1KgMB+G9dOy 3iaIe9D+prssF2ddcLOEW+2CXlviTlzwK9kZ2e7KpKJAIcREPSX37+uLOQ1EJ4SM1MfNx1NiwtU Bi5RQknXgXI60SVNCVEAGmTshNUjpUhdBGZ29SiQBg6e/PyJCiZOkrht0p7QSfcV1NUqUoX/rDJ XlRG+jBSTTmujq489/dgdlEtx2KAdBFWkdCWQQ88J/h5/FORNRrwCaFMaG1WOFhYo62FDWJZF88 8myELN/zuotaUOXcCPnLjS+C6aI1GuINQGKkpqJuld/LbJ4oK/klumvPBomvnMYZO5ID4FA== X-Received: by 2002:a05:7301:fa0d:b0:2c1:85a:d25d with SMTP id 5a478bee46e88-2c930e6bc1emr2065395eec.1.1775057278558; Wed, 01 Apr 2026 08:27:58 -0700 (PDT) X-Received: by 2002:a05:7301:fa0d:b0:2c1:85a:d25d with SMTP id 5a478bee46e88-2c930e6bc1emr2065377eec.1.1775057277954; Wed, 01 Apr 2026 08:27: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 v6 13/37] target/hexagon: Add TCG values for sreg, greg Date: Wed, 1 Apr 2026 08:26:33 -0700 Message-Id: <20260401152657.314902-14-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-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=L90QguT8 c=1 sm=1 tr=0 ts=69cd3987 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=md9odPwznpFxaQMInv8A:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: ElbodzAfXOyvD3PgKTYPxqNSnqHDFGma X-Proofpoint-GUID: ElbodzAfXOyvD3PgKTYPxqNSnqHDFGma X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAxMDE0NCBTYWx0ZWRfX6+eG5oubOofs EvukeMgikW65IHYAdzDJ68W9AxrSqPXGV2kmLcZd0EdZTVnRB4loytBlXVXO/nt9rBgXr4kn1KV zM1JCRNoZN9besAfjT+iMgDx9nXHZSs+/ZOUXZ/XN+WsjLt16xUaAKaVFbnLUVRdg1zXN1l5fE2 Dy2fPYn2ZIxezUSv81urDzNUs66XzlLuWLjkIoxZ/YQj46yk8bzuGrogtYjsGuOdLoCO2TvuBuV AYaaBKrJIWvbm19YfX1v50QY1xpvjovSfGrwuUfx9+ombtAj90ovkTOni0cSEuugKx8OjFilzET A84wkKc+oWdwFufv7uAhtw5umLOeM3fjX/VtFig9AcHu42Ex2ZJMmUYyiTgo6vOkTkya4J9Fab2 4v1dCUepWdaOUP/UpfjcIrvQrPXc0imaCR2pakqkRG1RkuSqELXEar5o/A/mHtlLa4cYfAANvWu HejgoosLVJNmdikorvw== 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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 suspectscore=0 phishscore=0 clxscore=1015 priorityscore=1501 spamscore=0 lowpriorityscore=0 impostorscore=0 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010144 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057392704158500 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 c947db85ab7..01445fdcbac 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 Wed Apr 1 20:45:44 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=1775057488; cv=none; d=zohomail.com; s=zohoarc; b=NfKxrYnCy0HdmQ4yS+QO9rHsMq1kH9LCIiiTdF2EqSm/3fNEKMUCAWelHOG+o1RWD5YSptmG5dXDiPW01RFrqz60uOlSdckix0Cb1xDubBD+BQaFXLiPL7F2OoWv+/vghjX10wyCUGRFJK96NE3ZuXnuXeRtp76BwT2tijyrFA8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057488; 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=Z8Us83zLUbX2M9VvBxeV8Cr0l/114WWLghqDSjaR9/A=; b=e3suDldFTjEiygEKEToUGmPdZGCBGhHNHji+0+BUd6mromgHvgxNQA29kml8VHlAjF/lN6xF1dllSx2lUXzftSUvMyoMIyn7+fxVpZNwq4E6gXlZIXY9PPOqFGzFKEdFVoORUKs49J+8fOjfs8IFmxPZ1Ac7KW3dG1+fvVU09mM= 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 1775057488738627.1948679582205; Wed, 1 Apr 2026 08:31:28 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xV8-000216-2l; Wed, 01 Apr 2026 11:29:02 -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 1w7xV6-0001xb-3M for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:29:00 -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 1w7xV4-0008GP-Fl for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:59 -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 631FFEZw1562707 for ; Wed, 1 Apr 2026 15:28: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 4d8va3tqa9-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:28:43 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-2c5b48baf75so8792504eec.0 for ; Wed, 01 Apr 2026 08:28: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-2ca78df3b84sm38491eec.5.2026.04.01.08.27.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:27: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= Z8Us83zLUbX2M9VvBxeV8Cr0l/114WWLghqDSjaR9/A=; b=gRLfiu8UZ1oINdZA fi5I1SyEIYFIgSOkXcck0pZHZGu8D8bB+yApSaUk7KdGQPBaI5JXlpLEX0BUl7vf CUdryy5oZLz0DTWf0iPFD9KJHI83UY2UgDIKDU1p41KFVtT6cPO3kuZZJwIae8Nj 17jiDvAZXTEEs9gwSsPsf7ccmT0RnLUBCpZu3WGydrkduJCljiFyudnpz015EZ2x uML79PchMDJgY/RMzYq17lxU/21OD88oDec+nJ0wpaDX3RSc8DsTCmMw2gEBUpws P4H74AGMh9mU6Ks2YTC2anRpPIuYALO1kAk4toykYRIlUqMkjiPx+6cxnYbY3KpW WRCIjw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057279; x=1775662079; 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=Z8Us83zLUbX2M9VvBxeV8Cr0l/114WWLghqDSjaR9/A=; b=OFmRuE8KzCDZpaU6oblHr8yLjuYk9ps7/Ov7dCPlXcTAyJ6zSqYFxtDjBn5fYAvcGt I/GZ9NF3VvDw5Gd1/hGqQrFHYEAGI36FRWzYwzC4rr03tjUsMQhrxSTRQOmWzTtmlXyX oeqJwisxd56Xz3anM2QMPr1yIEyG9sQ7BfVdb2VPfsm4zzf92vAgp08dm/pNiGe3VQfi FCW9/3HN36k6kughc5Wt4djKeQ/MO6+AP6ATULG3t0dSp7NuXPO9PJKuSnsa0TcQgVSh gU0MaRZWV8Yto9RXvN0SzV5FtCdH/eWhgwRCCX4khp/4pX/rAOZblQNPFgfCjL+osOhn UthA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057279; x=1775662079; 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=Z8Us83zLUbX2M9VvBxeV8Cr0l/114WWLghqDSjaR9/A=; b=XfJYFgLuNmHrM8ygMwV+29zY1PuhBH51M/Zl+hR/kayNl4xgs546oVDoExWy4k/ht8 0FiuLWcd2815RVM/OgQlxT7irK6SdNoXUoXZMspTrs5phmDeh0PXHq9TiE2MuvdCJiTL pJ4j18VO2NvZkid8A7BPlm159k7JC8PtECtWVyovWwEc8VzwFzSYDR7x0cREfElWxg6q 3lmiRMZ7/Jx2IdY+K9Dz7f+/e81QLGkR00Dd1a0jSRacDGB9fX7EIlU3HJxYtdgfRQVt t/sqv84P7MOmNX+o/Gkvtsy/MOzHp9lmUk/UH3Qj9l3yqz49+ggjWdg4UHyxfbXTKQ0i v4/g== X-Gm-Message-State: AOJu0YxQMVQcXejDuYbUKKpP6sbQD4Ty1y7aXsD5C7pX47MVnx1xYpqt EP789wtlYLWxKC/Kmp5SkxEDGbg3EYpj/RJHuoXJNf1QsrphUGtKxS+mz/8O3NYSkgyqZP3fW3t w6mAGmEjKLf6Oc2CJ+0m9Hh8Cgb9WjXTLN6Dm6QvmXesssqQmY89coaJgMjwuNB4o3A== X-Gm-Gg: ATEYQzzwK9fGPeoaBdEO9PIY1siBN1B8LGdHDplMg+KYWPueBLT6Fr7dK8aTIfdIoSJ LugGHkhGziToylW/drD/ffYNOTpy/CS6kYhhVx96Pd+mCySBCX73uCjRlsaCdUVHGebhWKuA6Fg YFW0yVyHt7ej8bG48gpbSu6GFWA5PrtkuPwlGG4c6X4pF9DHu7maMqSt3tRr01Fyn0lhtgZrEB8 ZTIal684ufbpLB9YxlxBZiQH8s51u58kVo8YIjmOs+i+Wwow93QIzp9vHZBrhuMQNvOkNwg7MxZ Rie0LMocdDSJNAfg5woS+z69Do5vbZFPMHg7tnOLpHf7USpxQB8ufl6bFuXELY+NdhxQWQne8XN Fxo/+LV2x27WtH9k2C6AjxGJ1VLvwhl+OcikVFMh2UBQZoPmHj80nW5r166mC0dhwsV3EyQ== X-Received: by 2002:a05:7301:fa08:b0:2be:2953:fd74 with SMTP id 5a478bee46e88-2c931281111mr2164112eec.14.1775057279384; Wed, 01 Apr 2026 08:27:59 -0700 (PDT) X-Received: by 2002:a05:7301:fa08:b0:2be:2953:fd74 with SMTP id 5a478bee46e88-2c931281111mr2164091eec.14.1775057278810; Wed, 01 Apr 2026 08:27: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 Subject: [PATCH v6 14/37] target/hexagon: Add guest/sys reg writes to DisasContext Date: Wed, 1 Apr 2026 08:26:34 -0700 Message-Id: <20260401152657.314902-15-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-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: Ix5ZGl46EdZdMkop-uNTWTUyuMoTwSpz X-Proofpoint-ORIG-GUID: Ix5ZGl46EdZdMkop-uNTWTUyuMoTwSpz X-Authority-Analysis: v=2.4 cv=B/C0EetM c=1 sm=1 tr=0 ts=69cd39ae cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=tdgd3nfel_K54e3JQaMA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAxMDE0NCBTYWx0ZWRfX0ClvuCgCd6mg AlnizqvPAvl4BZ8yDF7BUqK1/0oZrzSjaMppiucYWbIHHe1ol3fKIO44bKuBsKKkFZCHcmicEvr TZJZ8xaIolh9g+mtABmw7yvnfU+lxoPvaabWa1Kb6cyBJRSN74DOK+FgBqf3ut8Ek+xmzLeaWXJ NdLkk4uKA2BoiX1RvqnqQZnrJf/C8QHbREHN09eIIJmVn9H2g9Z7jaA/DxaDcodlShh4OmprJCQ ny7xKm0V4vNZQB6BY7GDpyysMe46OqIUajMkJPYOyy31TzYEydtVlABledN1+2W7TpLBYJ0LN7i TZvy43eDZH5Z5X9IzWpXut8G4BTLGGWFCN6GOn8h3DvJqaY0QOfg8ZrBpVA4aWMl5+/7PzHTiwe HjdJRzIl9y/mbWggmbWAth3vvjn9OY5loZTeSxPH+yln5i2CsG0BJNmOmewR8DH5OJKN9ePrsYt Gy05BStM4EqZg3IG+Fw== 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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 bulkscore=0 phishscore=0 malwarescore=0 lowpriorityscore=0 adultscore=0 clxscore=1015 impostorscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010144 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057490630154100 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 Wed Apr 1 20:45:44 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=1775057470; cv=none; d=zohomail.com; s=zohoarc; b=mM760R1RNToTxeSwYIzjsqsTL/4qwt3gTCkZatvxqXQOFf2+Q78gCVahEW0LRjEP5jSc2Qd2NwkwOZ6B1p848HsO9HAmL29mIeBzs8LuEjLPs9ng8rHH8NfZo90O/bAalmLvrdhC/nv7oT5Tg0Ep7m99Z9dOvQKeDPzctuNeYbk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057470; 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=xFLCr5pWoidlslYT4KEcqFUca3EL56u/WPGRSVeTEec=; b=lWe4m9G+/NTpr+mGj7hp7JKrn6Td52SZpfsv+M4ObSTmUmJkqxxxi++f6YoP7yTM2H8ivOp/T+dAetKneG5iGeDCvX34V/x45wEVpnTNmfOJuNZIfhDISBBcEPpO2Ez0ZfOjYmsLxvavyKsvnWdu7HGuKbG3pYn6kzo9y8IMOTk= 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 1775057470641365.0339375194525; Wed, 1 Apr 2026 08:31:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xVh-0003dN-IU; Wed, 01 Apr 2026 11:29:37 -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 1w7xV8-00021E-Hh for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:29:02 -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 1w7xV6-0008Gd-5L for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:29:02 -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 631FPfgF1562492 for ; Wed, 1 Apr 2026 15:28:49 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 4d8va3tqc3-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:28:43 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-2c72849f648so9363207eec.0 for ; Wed, 01 Apr 2026 08:28: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-2ca78df3b84sm38491eec.5.2026.04.01.08.27.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:27: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= xFLCr5pWoidlslYT4KEcqFUca3EL56u/WPGRSVeTEec=; b=aoJzr5056MJsWeKN fDmx9wbRs39heutYFKwyZFwZdYr8ObWg6vdq/ef/3upFE1nESLC4Sr65HiWtS8QG kIXfi6PZAJZ7HgSSie0YwEnZwCQXq1uS/C7yfTF5yQL19dIunBUNc7U3KQM4e/m4 yaTY6ctDMgff8LK1QOkT01Ty2732szCQWD051Rcsy9FGvYDk0/Lo3KryXkYNgLjK MuBeu6+g6htMTKtN590ULQO92x5wNTAVY5eWKv90c8IR9gPzv+gYTcW3q4K26PoI SojFhhvds8TzIcSWjnbYIOZ/CDEGvlAaRv4A/zwVufeE1x+TyoFXP77YR1vevEAO tVUElA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057280; x=1775662080; 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=xFLCr5pWoidlslYT4KEcqFUca3EL56u/WPGRSVeTEec=; b=Yu6K9f+8Ad4kNbOxFtaaLuuq0eqfsxLZ0m7MER1b8y3hoIumtIYL+4PWBT2x8i0d8F YxY64dVYpp15smhgxaawJ3QroqQuDBCdwlM1p5McSLRbAEmIN2UtCNihwNtpi/WyvnF4 sTN+k4rjiJL2OiWVFupAwGiN6HYvNPNRFbQ9exQxln3nS1Lxb8ojehDM4ucdYsAh7K/T xN4NBiYiDlwPsm1HzSaJam0OaQgCy5DPTipkWc0/23dvT/TwrkW1hOFozbnI4ZlpPhfb a9aaBEKzp9MKeHiYuluJV/iFtP69wEoFptP5eHpF7Tu5ny20RZog8SJWLVPgsgj5vGvv VDLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057280; x=1775662080; 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=xFLCr5pWoidlslYT4KEcqFUca3EL56u/WPGRSVeTEec=; b=o1gUm7i8Nnkkiz/9bpTtkcVAMH1BWiHlHY86olPFv5vEALB3ya8GcD1Ha4ZTuQqu/I UEUmgeDIV+neZuWOU7ypo3fJKZYygiDnK2U9xaRQmsOMAXXb/eJSpJnn/Dindqyg2ig5 uTFfHahzu1lUnxHH4UJuvr+gUxWzL8iNyN2uIThrT7sPqG5qfhTWLYyYL7xuUrFn04dr qLJoeR/s+53Lqeyf3UoSMN+SuQHwW09uu4RpOXbQnQFVea/TnhVJS4EcL3EJg8SPYtbn mCHwpsI3XZkUSrXGLv/wzwcE796aCA8TDVqUAziXOLShsN6JUyWQYIgC6wzvVcKuCiRd x0EQ== X-Gm-Message-State: AOJu0Yx7Kr6J+22kwwue4gw+7fNlMMPtb4MwCHSAwCcL5fZLuo6tlzm9 wcLT1UYIFInSvn55esWFzA0B2dHRSEI+rgA0SHWXHtyPL9BpUFTX0+GFOYzOYSzjfCw7TN7fnPU bu0C4BcT8XlKWnN6RcUhBbXBYCX3bjTKyKxW/Dm9uDIdGbGjlMM880NrB36d6et1oBg== X-Gm-Gg: ATEYQzw42zyaO9vo+MTnf58Ny2K8AHzuh8mEvpbG30/JngOrpLcWkh9p2PmmIpiLemS f0DdiXJvNqNTtPzaH40qC1FXbHRKfT2oca0fHODTZq3d7Bl5auuieR/EIoWDg10+v8zVlfi235c YnvyrF78vXusxO15NnyxYAwPghZRg6lj4F9aiNYe73F6qdAtLVD2FLqFmx0YJ9pwoCUl8KyRIzC KIeYvJaVPRUJdsobE53WerU8pczupr4asqBCr0BZh/3wMMgwnazy/YbStogzT7PSU1ujrYOmcm4 XxWYGSmhQLcLN8dZUEGspjC/rQei4L5jmHf3+JHxtOwQT1IUxsQ8pPsZg4IZbnfR4KK6DEoeryN wcI2705qAmT+utOGKufNdc9T4O03hPsf/6mbHwuRUIKwFdQMzTpMQEkLlqJVHZS0IyhtHtw== X-Received: by 2002:a05:7300:6413:b0:2c5:b23e:48a9 with SMTP id 5a478bee46e88-2c9328a641cmr2248320eec.25.1775057280294; Wed, 01 Apr 2026 08:28:00 -0700 (PDT) X-Received: by 2002:a05:7300:6413:b0:2c5:b23e:48a9 with SMTP id 5a478bee46e88-2c9328a641cmr2248288eec.25.1775057279696; Wed, 01 Apr 2026 08:27: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 v6 15/37] target/hexagon: Add imported macro, attr defs for sysemu Date: Wed, 1 Apr 2026 08:26:35 -0700 Message-Id: <20260401152657.314902-16-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-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: hBBd_mS_9oRIWXypvqhLvmltfCAN-xss X-Proofpoint-ORIG-GUID: hBBd_mS_9oRIWXypvqhLvmltfCAN-xss X-Authority-Analysis: v=2.4 cv=B/C0EetM c=1 sm=1 tr=0 ts=69cd39ae cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=9WelToRRDTwRCstGtewA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAxMDE0NCBTYWx0ZWRfX7iOLdpPkJvlA RqUjXVS0FtmYVGvIQ3xpWiCkCf5lMOnZTULWGwR/DtYWXR3KfkyI9IhgKJFgHxvnmPYBKKLhhO1 inuG0wVuY4ava7iZsOS0plFukmzpBpYMmef7kNPsMds7BaxGO/ldUFDMvP3f7FEnFcT3NbXbVFi i8t1VcoBebADiFvqm4kpnDolmB6CJ6zC9bpIKw8m4P6E9tYCga6RD8SKwVo9cZ13SjyYFBZF2Ra 1/i+GNDUW3Ew4sHSslk1bF3nj+gFlwVddOmRIOxr2FHxoa0iuYkd6Y9Gk7dmGvZsf2uk7srMkWH aif+b0nW1AwlQt4UoPB2+iVgs7fG7mjsWFCb+IGxiuxE0IpHDKwfl+6squ909N5297LgLCDbogg TLNsI3D2wAKWiXTYy9rURoPJe/vqNz4h1QGH/YAexPK4WZPEC0IGlnlGJihee6qu4E7ld6Urk0h wHaW9AraQy4JBF0VVPw== 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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 bulkscore=0 phishscore=0 malwarescore=0 lowpriorityscore=0 adultscore=0 clxscore=1015 impostorscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010144 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057471467158500 From: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/attribs_def.h.inc | 35 ++- target/hexagon/imported/macros.def | 482 ++++++++++++++++++++++++++++- 2 files changed, 504 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..6c55063a309 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,7 +104,9 @@ DEF_ATTRIB(ROPS_3, "Compound instruction worth 3 RISC-o= ps", "", "") =20 /* access to implicit registers */ DEF_ATTRIB(IMPLICIT_WRITES_LR, "Writes the link register", "", "UREG.LR") +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_WRITES_LC0, "Writes loop count for loop 0", "", "UREG.= LC0") DEF_ATTRIB(IMPLICIT_WRITES_LC1, "Writes loop count for loop 1", "", "UREG.= LC1") @@ -111,13 +116,19 @@ 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_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_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 +148,14 @@ 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_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 +167,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 +186,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 Wed Apr 1 20:45:44 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=1775057384; cv=none; d=zohomail.com; s=zohoarc; b=ExozfmgQlQ3YJ0MiQDxdBzbSipHqM/nqrAderQBw5zrZcT2EgC+Psjh43TZjqNk80/2MlnszoVNr0znRg01Iiu33uqmEMhNq0KYyuwpiFM3TMylJ8P+fBW406lQCAC7LtToeeZVq7vr6CBnAQBAg/H3sLNF7DWJwltjtJzGQRWU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057384; 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=AqP4xOkMfAtxkL373+kBCfKT5VnmaKdrJwJKsylgRWU=; b=SmMI2dAfPcagw9OjzUWoRSG7nsM9P2YnhxEN81sPEs78CaP7oiLzeWDFsKtAgkEyOajC4lCRTB80pVN5sh9y5kzLUPQyKIaz/wIww7X/sM3NqyUlqJ3TwRAvw8VRsHMQm7HLeR2npnW54ZYTun6TzSUJyPBC5Hs2Wq887/uDsdk= 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 177505738496262.55159780985559; Wed, 1 Apr 2026 08:29:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xUu-0001Be-4W; Wed, 01 Apr 2026 11:28:48 -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 1w7xUs-0001BD-Pu for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:46 -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 1w7xUq-0008Eq-Ku for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:46 -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 631EZxnq3174319 for ; Wed, 1 Apr 2026 15:28: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 4d90gbhp31-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:28:39 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-2c16233ee11so8130109eec.1 for ; Wed, 01 Apr 2026 08:28: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-2ca78df3b84sm38491eec.5.2026.04.01.08.27.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:28: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= AqP4xOkMfAtxkL373+kBCfKT5VnmaKdrJwJKsylgRWU=; b=pv4aU4i8q5mvhaKu zAkR3x9NxJCmi6asVG2mCUhE+r2ZSE9LotHZ7ahC7Lu2Yv/9uOONwRs6BcNGsWUf RHXgnV9Gt8KSaI/Mvr2mHVEnAoq2CQkN104gDUB4jVFY5zTOyhnBg4/3IzC/ZBdX UdvmmyvI8UeEFQhu8yNTtDr5g4W+DYvMuaVSqldhWxz/DBoD62i6zGyORxtY8uMi OdHixu5eWzCpSiDDkDzdtavHxEoyiTrw0D+cdfpPMANpyrk3P056YCOwDSex9cZq LBGviXwcM9II3jUSYY2gJOf4UaflyUG8utdsvL7ofs5bqrrtLuhmCRPUYLgxUQLH 48PJiw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057281; x=1775662081; 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=AqP4xOkMfAtxkL373+kBCfKT5VnmaKdrJwJKsylgRWU=; b=GEn3/2VSKxA0RqOxtmEESDKPhBnvazzJ40bgs/2NauaNQu3OWyoaCLz3I7qTaPJzkZ 4scrnJmE+CHWtxAp9pcIpzSm0q39wePLVJF9rlpGFD/tveACxVljwcisLKjQtcTk9zf2 sAMLhs9TE/sRsXP68UkUiUaZB87GiO+cYU7kop7JTWWZL2Lup3KQJrpl0VG/LZPb5gs5 gFuTf8NYndFvG0lDVen6jF13dultB415Ieg0Sml1hTdNvUhurAa3JQ/a6T45ktDRGaIa 9bw0n2ej0uCiaFudpcXmYwmppUTAs+UohPLeD1LLs/YPs1LYcde87TS8QaBzVWkYOYax oL5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057281; x=1775662081; 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=AqP4xOkMfAtxkL373+kBCfKT5VnmaKdrJwJKsylgRWU=; b=r/eQBoHClZGHLotYVbliRTRKmf6bvKuEmPmzdqIEdvuhMdeaucHXru0Tbbzp46MeFL qSjyuBqZOhxciMvKGSBl42/CdtTL3vlZtdWKFEn1KbxBmf9fCFp2Y00M8FV92quqbebq GQ1kUzBZa40PrSYvIDgGqnA/fEKKnFKWrQsdvs7p1ccy4fcC3H5MRmF+ezCEzWrNkkZm i6hu2Q/SzitqXqjuxuvyXsZoS5PPiMpQEH5bEKGzRbpazkowM2KiXvknzy/loO8z+cko PNQIWOEtYyr7ganLwfZvFqiXp6XX4Yik1UJqx0sgV2Agf9ir+JOiwWOU7UO937VlZCqM HcaQ== X-Gm-Message-State: AOJu0Yz6+jPJjcvmEj8xARSPwcVkQRdGATThkSsr6IzF3KDWyfn6hN07 /NH8ps3e6v9ONuOZ8V1f2+k7q/qOvXwcBeoFRIkguQJsiDa4BLzC/KSXWZ7BtlhdPu8X2gEiGVq HHfprVWFpcMyOZhC4QifajdzC7NoVi8zZ30/8lRTBiXgLN7t+Jny+ONH0JwiM7IDh9Q== X-Gm-Gg: ATEYQzyVE6KzdT8fzGLp+9a3GpyvMBYpl417pBu9RXL2d7vlBpLrMmqaTjJJecmQALO rSzpOZvHfH8m+DR1wcim6P4262+ckEvUuWgi/ZKQcp7I29KAbo+SWoXPh9peyUvtLJwGeRfWFIH UPt1kjSJcgYc3NZQqVlzbYBEvf/Ph/yZLtonaNJ5X/1ucm5yplQKIejntiz3wTtgh+MbNz3/1wM Ga5nzGJpZMc28Qpj96UuoS9fIV6QsY/OESbBFrEmvXN6WnrFSAnc/pfhZORgHFkbqmHrdoYfAjd Uau9knHU1e3fvQTvVqEJ/dD7ww8UYs318A0Mrv2ZGu/FY5pxhaIb9xziI8/cPkrMX431P7kJTHP GjBGIezMB1cI89agdMqTQ9FAkHfjaXC6hQnpfKtKF+VZ7BwLDc45dE67eGFBd6HNTejhXBw== X-Received: by 2002:a05:7300:e613:b0:2c5:9595:661b with SMTP id 5a478bee46e88-2c92d76ae31mr2396597eec.0.1775057281112; Wed, 01 Apr 2026 08:28:01 -0700 (PDT) X-Received: by 2002:a05:7300:e613:b0:2c5:9595:661b with SMTP id 5a478bee46e88-2c92d76ae31mr2396582eec.0.1775057280509; Wed, 01 Apr 2026 08:28: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, Brian Cain Subject: [PATCH v6 16/37] target/hexagon: Add new macro definitions for sysemu Date: Wed, 1 Apr 2026 08:26:36 -0700 Message-Id: <20260401152657.314902-17-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-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: AW1haW4tMjYwNDAxMDE0NCBTYWx0ZWRfXzP5hCGeUDCzp Rc4Ii/C8HLOX5gjSU9AohNw8c474vWWPsjZtqliVdc0g6AisvWPhapZ12EKnDqPCM9vJ3+tgSsc +ncys/IfQVrVkgE38n+M8tga2+wzcnzPM2xnGoBO8LFKr16WFTKspGAmVkToU1b2y8xZUZPBkgI AZ+xU+1ahkjcMI/G3OAKdF2VkB9tIcMlEi4+lasNBJ7Y7Ysgfz2c9rL/rkZKbT0k66MfPvi5oNm yRWFHFTUKD/jYKOUpamu6jGoo5afg9+wRGhRA3GeRTrrQJtGJQSdDnqbNACrKuCJrNAmJjkVDkt g9Mz2ttn3gEKycQLR59M4s1rybJp/JTY7TiJczBEu42Uc26QqgeNZgeUblVrPsyE16QZo2gCMB2 jwA2ePfp4+eCyd0167u3rR3xBqehqDGlSl7NC3Y7Zrx8zTDz5Zq+0FTcd0nskREkWbIjTpvOk14 Bcii1x9tdvQHhos8yAA== X-Authority-Analysis: v=2.4 cv=QJJlhwLL c=1 sm=1 tr=0 ts=69cd39a9 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=VoFV4bgUeqxKQXHmsMYA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: msjf-4FBO6OSwQnHqt5NdUg4iyjaB_5A X-Proofpoint-ORIG-GUID: msjf-4FBO6OSwQnHqt5NdUg4iyjaB_5A 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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 impostorscore=0 clxscore=1015 bulkscore=0 priorityscore=1501 phishscore=0 suspectscore=0 lowpriorityscore=0 adultscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010144 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057386875154100 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 | 4 + 4 files changed, 274 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 1e0cc3b29a8..86d74ed259c 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) \ @@ -1112,6 +1113,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; \ @@ -1321,6 +1325,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..53898db815b 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" @@ -31,6 +32,9 @@ #include "mmvec/macros.h" #include "op_helper.h" #include "translate.h" +#ifndef CONFIG_USER_ONLY +#include "hexswi.h" +#endif =20 #define SF_BIAS 127 #define SF_MANTBITS 23 --=20 2.34.1 From nobody Wed Apr 1 20:45:44 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=1775057493; cv=none; d=zohomail.com; s=zohoarc; b=kJ/EXU9102DA7Gx+bYkwLzK8rfs/tj4DDul6nnD7M64LLq6+QSgZMIzfTKtku7nSPIvdSV+a0x5DuKrP6GUF+HPsky+E9wKV7WJ/Gi4Vl37cTBkHjAmyjV1DgzmZiTf20IRFJ9d1stFJqb+iAPV89ZS778rCrw2ONFnVPVf93k0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057493; 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=QXV/60pOO2kpG9+5multo3d+Hi5XgUZBxzn9kXs+jwQ=; b=criC0gwdx4D3y/3qnvloRFxvaBPdz7Qc3SaU/+LX40ln6HftAFlYrhxzsbWA+bIFHFQIGNPwqoWml5jU5SZGAMrh9MytzuqSztyndRjTi3GF5fcsxN0PTIMYcXdGMk2J18gXpsih/TGPlqJB3AlyyLuvMM8rdwyCoqvd7NU8/V0= 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 177505749323725.196718469261327; Wed, 1 Apr 2026 08:31:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xV3-0001dk-9D; Wed, 01 Apr 2026 11:28: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 1w7xUy-0001Dy-8N for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:52 -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 1w7xUw-00083k-3y for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:51 -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 631EjvKs1579405 for ; Wed, 1 Apr 2026 15:28:05 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 4d8mr2vbg3-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:28:05 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-2c72849f648so9363285eec.0 for ; Wed, 01 Apr 2026 08:28: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-2ca78df3b84sm38491eec.5.2026.04.01.08.28.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:28: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= QXV/60pOO2kpG9+5multo3d+Hi5XgUZBxzn9kXs+jwQ=; b=oU0HsGJqVb5UDjUf OYCmNRE3OYzkqR40xaIK+GV3UpGvfpDFYs88eGPk1oCXFDfSQTUCGkRzo7bD3nVu sKaOI2Dc5QVfm+09B4lAjy6o4li7yjJs9/JPIsKh0uaAWBxEMrg1cpyFAfmneHBz N12uVG15UQxCxFXBdDUqJJnat54+PUdz4QlQAEGbgCWE70nahl5/qlNI975eJIX+ IXSpMxrMt3n5c2OKBtkStNqsgHeudojkkWG+oiXlT/27aMS2vWEKh3xqNoCsxXle hJuUPBZSct6Q8IudSGvR5F2IltroV5kBeFDgmOY7rV+HivgADo7FfHWPtMInSTZV ol+zzg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057282; x=1775662082; 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=QXV/60pOO2kpG9+5multo3d+Hi5XgUZBxzn9kXs+jwQ=; b=HVjHBLFayimlM46cL81GnGNwFdBPI+IpjgAS94MQGb2KFyGFf+OfR4vaNC09DRQGRU eDMFoQSiOmLna2/lpLkPjvd6gzItr/6LaR/mjoR1Yne/X304KicRnbnfy+MnfvO3FvxC xF/RU+FXcAkMJKAZNXYbGhbGSTG4oM94+u/f6CWHZev5bzeWQkC0C+sJa4mfQHMI2oZp VXmCtkfDwJniDqa+t/L2q/xbyk+NQoaglyLLty0ayYqWMGdwgYwGdFAfjVPkuvgcmJ2V +7wFmnmSGqbbB9IXL9jvLV0VanviYaSuDjbqDWwYxHMks01XNbSnFpiZEXbo8glzJ7A6 WjNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057282; x=1775662082; 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=QXV/60pOO2kpG9+5multo3d+Hi5XgUZBxzn9kXs+jwQ=; b=lrA6sSKgHvS9aODlGC5Fj3AoC0nywEOXPq44m8HCuunHV4o/kjTqDNKpOEcPiMuthe IJbKEBsdbERSC0sz5z4Rok+9W8rWtqvwgW94HvMy8LWonFIp1HEAhSU6Ggg+Mc31jPMp eiWdWYwXXH30JJZ92gU/yQjzSZpTpw/9FET7DZ4Bv0640CqEY+sUYyR+dLzRI1UQeVzu a/Yi0xbyTx05WRtukAYJJJSKVp8vOkPoNcgcTrEIs4CoY7BSh+9Tj2T5ofGVGWG6TvxL 3cEQlhCi4lFgjp+IubzszNUescC7Q92br0LFI7+MEwaylwkiEQqvO4amRhT2oRYoONT2 mAHg== X-Gm-Message-State: AOJu0YxxzZalIJStK4WfoOmVqc+1ILdZiG7TjqAY2k15F7poGIwYA+Z1 2uGDyAL/WVvxxNJr6izsIIgzC46g9VrIF/DYkAHxcZcjpYN6JnfUhJfcm/CIId69OoQBlROumpz BKBroTxKt4I6A8gN1mPt0tOILml2sdu6FQ+ZjwkZ62Av+z1NarauzpVvTTv0/U0lEWg== X-Gm-Gg: ATEYQzxRqZ+nvOkx8xTtU5FEHhRlsbbHBhlUks1JOixnCLmjCDX3gDRJA7Mcv0tVG97 dXHG+GXLQxT66Bm0DkfAsgWmwpXxkaQ/HjepONzAGyHEiDRKFNWCQnrmLhHQmVl7ynIbEGTy4Dm r+nt9UslJt8rf2k3RRxG8MwsOC4LBVG91gZKlqMtfGwuGm5nixqpoqYHaYeGCLUdO5wM7u/e7h1 F+leSd9sZ5bcXK0ZQKbB+OEVcz42+n7W/QRgVVxShQecHi8cmjqRVL+fuvEQMXjbF9ujpLRpoMv 3WrA5Iu9MpL6aBdrdnwujS9oWd+VNZ2eL0C6108z2ZyfzYbTg62KONyGPiVbtplTFuRvGN42Vmy KI17+gUT4G2zJmk7wPUk78MLmCGdzYE9vz2qzM0ybHhkhgAlQFamvnFJziDLHosu33vta7g== X-Received: by 2002:a05:7300:dc8c:b0:2c7:3a7:c7af with SMTP id 5a478bee46e88-2c93088db6cmr2328150eec.7.1775057281944; Wed, 01 Apr 2026 08:28:01 -0700 (PDT) X-Received: by 2002:a05:7300:dc8c:b0:2c7:3a7:c7af with SMTP id 5a478bee46e88-2c93088db6cmr2328140eec.7.1775057281425; Wed, 01 Apr 2026 08:28: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, Brian Cain Subject: [PATCH v6 17/37] target/hexagon: Add handlers for guest/sysreg r/w Date: Wed, 1 Apr 2026 08:26:37 -0700 Message-Id: <20260401152657.314902-18-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-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=B+O0EetM c=1 sm=1 tr=0 ts=69cd3985 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=YS0KV4ZxTOLzYV__0jkA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: kFhime3ImIDmaAvYXo1iK1i0344__TZZ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAxMDE0NCBTYWx0ZWRfX7wVE7SBGm3kK asc9vgyZXdFbnY/m1ttvKd6FOx6TMuMF84+fW0nuiccPSPjGJ1J16n0879tYnBGV1NH7TgdUg/g cU+lYVR5HpTbSpCHJkeKT12zG5iRGKuBieOCiOZBfVbx07mDQq5i4IaWHzBEjWsGFlAdh3CCD3R /ZSfm4uvSvp5jCp5fUB57OO/uJ5BS+jNDfL4X5VD8SMxSfHoxCQ48MRvY+ANhxxjO6BWfGKgeNl xC/iXKV4NhOw+w+Ku4WXrI4q83JScJUNHRaKWwwdf/km4Y+9AQif/z+rmUW3zNkRz/RGv973d26 qOWtClChZSdvee5U+/AYRRdltY1J7Was3w2K01MqYyvGaauSfmIsuwW8idYVhUsFFYyCBnaTefx Lw9mEiRo1rcNVkHP5FliVcasR+oSfymHxarvecji5i8HYQgy933Fsa/rkihHpIUNI/Wa92fifAt wgJS1wrH6E3QgD75JvA== X-Proofpoint-GUID: kFhime3ImIDmaAvYXo1iK1i0344__TZZ 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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 adultscore=0 malwarescore=0 lowpriorityscore=0 spamscore=0 clxscore=1015 suspectscore=0 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010144 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057493562158501 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 c7b9436c8d4..d71fa578b6f 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 Wed Apr 1 20:45:44 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=1775057432; cv=none; d=zohomail.com; s=zohoarc; b=YL25yizuBkO1HwatBbhtwM6DtfHun/bSD5pYqiAtYohAGVIIqENdx712sPPDser7XoKUPeD1MnXjw6zpgkUta2Y7s1LLqu5f/svQUCXc+pRYnO00v003ptNPj+2/oCneLVk72FMxwZD8LYUFDf0T8IVg5T9QMdclSRVFUD6CmL8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057432; 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=3X8bvXVW52I3fn1FyNjUiMXuaCQjKXZ/zTx+8O5PNqc=; b=X2sYjuP8S7imgH169xp4SQ3paKXJl+8Jauo5Sy1fGEqsCyJwCpGN2ZHE0zxPPcYKQYC4aJO0Ly0P1YHUWKPqXflvATVJNt/yap8Z8PB6jTLhT/nX9PcdhFtPu9imhn/4hAJOJIw139LvocWDUNYAL+JiEiNUYMa2KelJ3ZDMo+U= 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 1775057432133292.6444491832692; Wed, 1 Apr 2026 08:30:32 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xUd-00010E-99; Wed, 01 Apr 2026 11:28:31 -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 1w7xUO-0000pE-Nj for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:16 -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 1w7xUN-00083w-1A for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:16 -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 631CPvXr1285902 for ; Wed, 1 Apr 2026 15:28:07 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 4d8xm3t2t1-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:28:07 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2bdf6fe90a9so6985018eec.1 for ; Wed, 01 Apr 2026 08:28: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-2ca78df3b84sm38491eec.5.2026.04.01.08.28.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:28: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= 3X8bvXVW52I3fn1FyNjUiMXuaCQjKXZ/zTx+8O5PNqc=; b=ImeCLWb6hKMJ9FA9 vW/RwYyAnCUfY4g2jezy/9p/SUrnN8L9FOA3yoMvLT8TIE1eXzoH4uzg+sH6cWN/ lNNDPUYIHlftr8x9o7V1iqesAEmbOOW88miq5XCQOdcYoiFTJLSohoLGJN15DjfI ZcpAdsxsvI3eb2lPFPKGwoKLBvgFZxzEaJLR4XLgVO0plfIybGcYZO/Pc8NOdOYN 09QsYAA85kVv18s7IIVXrtnOU8JNc9dpq2QfLK0SAJ3BlAA3kYpVKOHd4wl2pQ8w GN0C/sCqoGQa8WAql1kFl0CpXCzqvr7YAeZ2RL6BVc2dUN9YeZZqI67OlMB4zb8O mBKUeQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057283; x=1775662083; 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=3X8bvXVW52I3fn1FyNjUiMXuaCQjKXZ/zTx+8O5PNqc=; b=h3/3kBRguCxT0wYRriiZU+h7xVHY40echSp0gxrjjUwBgTjAK/J7qLjJaF4qi/xoeC FNPZZzPrPjzf2cnf5kCRA1PWcMaNJdeVczIzg1Izscn6/xtY7W4eVdx1uS2F6JcnsBmf t6dxGoYr8iSLNV0zSwqEXdnODxSI0coFPYVmoVq/XiCzRigzEkh8xbFonjUKrmrCTUmw 69NaxAKR0jqo/aB4YhOauo26sJCudhZVdIOLZ9oow6z0yKAntnyEY0vgxBAtB5T76LfE HmBWDtDX7Jgz2ewA7102pc9/tZ3uGp4eoEAdYGA4Xblki173qACWtkP8bks6mqNIZjjb ys0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057283; x=1775662083; 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=3X8bvXVW52I3fn1FyNjUiMXuaCQjKXZ/zTx+8O5PNqc=; b=VzuUpgyt4VGAf2UyKrTLxTWLXwq98qEEWyQOJeO/xxDcmDTgp2cxIRo8YxDjmxckmq GGJlSBdRe51fmg46qMPha1Xlx2ME4h3rlLkWC/TkgoXofCsZSYY2b3s975VnxJ6u18JS FJPnYE+Y5Vy1xal63i9g1/wfcxXIbUVYFNAV4Jq23dQFT2eb0J4fS4cFAVvzwKEgri42 5l0GYPc2gY6iXLs9ur8qKgPWd6wu2IMENsF3rxMn1bm/y6TWr4tDtMGG88S5F0i3hVaY M/3wZ7yEpoYArvV09evY+za+sq1dFkp4O5Fx7+OKV4jd1ItRKIBl2hngJuYq8shqms95 XQrA== X-Gm-Message-State: AOJu0YxhACTohc8PlturX/u2EExbiUQCmJLdwJ6Uq+GsMY2kG3zcejfe p77jVbCCcRoEzftX8QvQM3OIApWgGpYiMJuriTt6Kqr3L8Mv7qPGDTtvSlN7agFAq+jYFUPR8ly MR7Ki3GuvjIOPS6isGiPoAxmDaGLw/mnVtODDtGK3QJL47Ag9XXZ2hWiQlws9MMnAOQ== X-Gm-Gg: ATEYQzym5Mj0sQxUUwZV5GiGdwMZfytO2EqrXJF9HV/4BE8Q+PXQWiyiwJny6UfmW8U GxkjIxIbx4WlBo43lysG0DVRPKQ36WC4Bdl2uyRQneZDpm2MzNhWh1jKfeH7wmm+hmY3G6tnnMJ QN1gMBmct5eGi78d5XQII3mg4ETNDO8rmHQFE4gCCdROGvuDuhm6+RdVrcSXR2l8aq6+HzONqGH 2Q13zIz+ArFOELxnvj3e0Pe+g5Q7e8+0714mDHptQshmW80b1YvBIAaH4ObPy/CWRU9mbbW830M NJbdJ2W+YY+0foC6MEWxU1i2wILjJ0a/MxQztpdReK44R8oMjcpNnqSD3h+AAYtC/NAVs5xDflD UXYswazJwns87z4vpal9NCyjgQ90rMkvxGTKEzPWwpfpJdm1bO633l9lyp1CHosUL/mJrWg== X-Received: by 2002:a05:7300:2391:b0:2c5:50fe:c792 with SMTP id 5a478bee46e88-2c931177af7mr2117650eec.12.1775057282875; Wed, 01 Apr 2026 08:28:02 -0700 (PDT) X-Received: by 2002:a05:7300:2391:b0:2c5:50fe:c792 with SMTP id 5a478bee46e88-2c931177af7mr2117620eec.12.1775057282302; Wed, 01 Apr 2026 08:28: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 v6 18/37] target/hexagon: Add placeholder greg/sreg r/w helpers Date: Wed, 1 Apr 2026 08:26:38 -0700 Message-Id: <20260401152657.314902-19-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-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=L90QguT8 c=1 sm=1 tr=0 ts=69cd3987 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=wA0rHRt5QP8iJxr38i8A:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: M6RWljLrQQBU0q52xXBszstxdKM9Nk_G X-Proofpoint-GUID: M6RWljLrQQBU0q52xXBszstxdKM9Nk_G X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAxMDE0NCBTYWx0ZWRfXx2QjFIbbmB9x bmCUeyZ1zviKkmWyhCZeWuXlNPd1rh9VcvUCZTYMw5O0I/YLq9He6sm3tpbmMAvUdHhL5Su88pA J2kt319ruV0x70OSwaJgpJNUzLjyZW7c7USEztpDXVnKrGpEtqxAx4y7JZFQtgLqqP54X2womu4 sKsYSlI68dAXGvV0r+PUmR8LnJOQ+HTqk2DOxWeyx6LmxY5sK9vx96ropeRMuMe+BK+7TNw0Zyf yvlS9SHSgCnfeiUaPBjLYGhv8oN8/e7QJJ8t5jJx9Wo+i4erSTa0Mc80W1LOYQHk4tedaFeac6s 0OtFITaVDXr9Wncm/sBsU1Zlld46auIDkqYWiDR9je5XJK7WEz6ae+sO6znv+rZzso153Lz85s7 co+H2PvJUi5zpn5zpBmml3YGqu5AbSlseTf9lmGxsRZbDgrF3Cdka1TUlWDXxR3ANpimjMokuNv V0EPYjOCjN+wzng8pkA== 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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 suspectscore=0 phishscore=0 clxscore=1015 priorityscore=1501 spamscore=0 lowpriorityscore=0 impostorscore=0 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010144 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057433030158500 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 53898db815b..359bf12f1f2 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1373,6 +1373,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 Wed Apr 1 20:45:44 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=1775057670; cv=none; d=zohomail.com; s=zohoarc; b=UJlCfhGLd/PT8Eys6Ejd0Un8jrpdWYvB88jf5+GXGQ/rKVhCOoeP0SrtZls9jR2HZFdJh1+pMsMfKSvEQ+ZSf6T7qbFMLqNE8nGjLNsTtzCXx8AF64LrlxhL2IkMyYj5zU0mRmE8il19SD+SUEKfLoO8p2zFYjYqWx2qLRmNj9Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057670; 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=+8FXFOgKRG1YjDB+/tWexSDPMPT1dezV348Niq5kkv4=; b=c6LRt0K/cxsu98hd83KJj8zWvPTorBDTHoO10HfFb0rhL/XyhEb5+H0FwizlnJsw7U3DJuU3y9g2TAEANfDh2JKkkLqsNUTDI/rqG80mILf4ocW3tXW2mq4WPdaPRhfMGjI5771DgGZ0UETmHpIOTPOjXUJKPnhZKdHB/8hghtg= 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 1775057670637669.3889719913952; Wed, 1 Apr 2026 08:34:30 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xV7-00020Y-JP; Wed, 01 Apr 2026 11:29: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 1w7xV5-0001wa-TP for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:59 -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 1w7xV3-0008G0-Lg for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:59 -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 631FPff61562478 for ; Wed, 1 Apr 2026 15:28:45 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 4d8va3tqdq-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:28:42 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2bdc1b30ac8so13208180eec.1 for ; Wed, 01 Apr 2026 08:28: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-2ca78df3b84sm38491eec.5.2026.04.01.08.28.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:28:02 -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=+8FXFOgKRG1YjDB+/tWexSDPMPT1dezV348Niq5kkv4=; b=Li PXvQ9RZ7KutQtsZeOc+3gWDaKFnVXXfsbTT6+IbuLA8JJam2pIxrDIqrex7tqbCh niOqocrKjx58vn7Zmu5V4ix3NhIvBXYlXFAFmpVfr9N8eVYnNOC6dSlyMPn26tId 7NCpp4OAnxn89D4lXibts5cALkcyM/iw4FaBDo6ynwyCtp2lxSPNqXjTgbrMH1TC 6DAYk3MXcQPStmeNWhfNpB6v5ZgaWdluiXPgXUPnFvb1Ivf0ls9yz4v+ccdzzTEg RirhdJPTmvfGrrYAqWgncIkezz4bIKRyCM++CMSvo8nv0q5Nq9IuKu7wGyhTMKk2 JibCL25KC0Ca/5EI/fEg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057284; x=1775662084; 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=+8FXFOgKRG1YjDB+/tWexSDPMPT1dezV348Niq5kkv4=; b=BTtKT9s7TZ0AmPBnWtBP8cLfs3ehrovHfKn+RZyeNn6cHGBkva9WZ14dZZi4KXyszD icPNbJyW87eSLdYjGccMJUfG+dLh4+51t7nba7xL8qqPl7uUyN6PG7cB8bfbso44BpSd qtsEEn8E/4Y1V/4GUbWzwxY9vhk+PLuhr4RB6eMJ57Ia2wyiG218MqKGUUcf8ITILTrV DC6FMIkBj36dLuCAmw7gREoJVHiSLdThrxYfeuLocvMraVj5fNaOiyOYYtiKoegz+Kcm VPbLhkixi32jHFf/twqoez9FVGR30/F3++ZQLLD42SEfR1h5aiVZ1Bi8jETGYIRTz3gr +6sw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057284; x=1775662084; 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=+8FXFOgKRG1YjDB+/tWexSDPMPT1dezV348Niq5kkv4=; b=Pn0PwkEKuJzLk+ZfwozS7uiLIQA+9G4dhDGd1uUeu9ZQxpQXBfI+ma0pIUSXBmWkAX bFfMho6AxaddyUlT9bjq2k0vr3Aq0XqbsHcjgaAphuh5/vNXRapwdUBAl3/UWpM/A/qp sfH3A27cvFphAFDlnZjh2S/hMzS6iXBedJuYdmxgbzXoCFB7m85WZMyfUhiiulRXdFmW iIUj3JtUy7HUAkpWzIz/2zb+v15BgsOUpwqYXtjLrg4AWz9TiIcd4kJ0fBRGWZgLcOxs AHUNF8H6AF9WvBHNjKjAy2RZt4J36fNaw/i1g8HNFymyeIto55Nwj+PH3bSU2yVK3VgR htlQ== X-Gm-Message-State: AOJu0YwhjtXO1OepYiPyPR2Vpf41sBeeLU2Qk2DlEHyd372atZ1cAMZK jueCBbpvKH8EdbzsFuaUVPGEMd2l4vLcvNt4w03bzsek72Cu7tAJkyyPb7nQ79W8Et1o5YhgIOL j8athWBB4Aajsge3/9/+aW74IKnIRMyTAnl/YKlPaNmMPo/cNFFrUAEwiCiy/VVixvQ== X-Gm-Gg: ATEYQzwgffaa2+8bsyzUxBup+7pCXp8xtZDHT+ot6h9okCylQ5AghzuAaF5jD746ezb ixATES1wxdRgmzEndYXry9atjboTdkQlaxMyyUM4CjTK9GnpIuDwEWCyEXEQHhA6Gje2h/1SBvi iZRQZlmCy8WBTOQHmi0ek7xkcP10DHbRDvkpa6BMVpJut/LSRgEN+OZ7gg/9AyLNGSPRY3Vbrgv Gu32cckQwQZWIABPRGwLAHMJNtaTeI9YO6yFNNjOreUkEv//ht8M09XiwvpwV9ykz7HhZDmCfvb oFg23VPexsU/o0VKlSKUkwKuUtZMDfPyl2oXGVk3zyVIoDF04Tlgr5KzmL3QZyPu/n8zzvsZUrq lKijZy2Zr8TMh03/b7Iw+BekMOpk7ZpJ/MI0RJ71hICr1LLOqLFIHiE/cFf6DnGjVDrYMlw== X-Received: by 2002:a05:7300:2391:b0:2c3:9981:e8ee with SMTP id 5a478bee46e88-2c930e75639mr2295871eec.12.1775057283711; Wed, 01 Apr 2026 08:28:03 -0700 (PDT) X-Received: by 2002:a05:7300:2391:b0:2c3:9981:e8ee with SMTP id 5a478bee46e88-2c930e75639mr2295848eec.12.1775057283107; Wed, 01 Apr 2026 08:28:03 -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 v6 19/37] target/hexagon: Add vmstate representation Date: Wed, 1 Apr 2026 08:26:39 -0700 Message-Id: <20260401152657.314902-20-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: jIsAEjkzBa9C5DjRT1HkyEm3CdID3pHn X-Proofpoint-ORIG-GUID: jIsAEjkzBa9C5DjRT1HkyEm3CdID3pHn X-Authority-Analysis: v=2.4 cv=B/C0EetM c=1 sm=1 tr=0 ts=69cd39ab cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=Oj8_dRLdxnToIsBgiwgA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAxMDE0NCBTYWx0ZWRfX5qaUGS5OA6kG 9yT1hu1odhDwBPxinz38v0OmvZlUksFleZ/4wNR9xaA1VJODMJi69a7AST62ovZOJ6pWhiMROEl LNnGgOcxIdcwCd8mZY/3No+S1tbKjDIqGrcij9sy9j+UpKdWjtxAQLmTb2GU+Fwz1B3zxwUc3GU w7meS/Ic8b/ALp57wurrfkvaLUKa3DG9hsmGy0qW39jyjuCfCVbA3Mxh7FxsHh3W8WMLRmTqi+v IOTLSEaHaNd7/La0/9pTre09AfqXvvLYl8U+QYYvOFFT2u32b0jMf6dAZytrlT0AUfi2ZZWzemV Isg/2kROSJh2gUv8+LgWqEnUMeP++/CbiYR52JRHL2KU1zCXwWjQxqnJG5CoxVo4xuYJdVzoEO9 jtemX9c8B3yRuuFjxE7K8VLR3mrtCun07OICeGa148cYzVXFw8mp/gqqh1X0MnTFhTDhNCi4Rnl 3PFydb4kAsGfD3l4Taw== 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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 bulkscore=0 phishscore=0 malwarescore=0 lowpriorityscore=0 adultscore=0 clxscore=1015 impostorscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010144 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057672784158500 Content-Type: text/plain; charset="utf-8" From: Brian Cain Reviewed-by: Taylor Simpson Reviewed-by: Philippe Mathieu-Daud=C3=A9 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 8ff5857873a..c79b19d059e 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..ce253f42ac7 --- /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/vmstate.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 Wed Apr 1 20:45:44 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=1775057787; cv=none; d=zohomail.com; s=zohoarc; b=U/7BuZmmJ6bcLzB574hlAXRld+rLkT6cp2yFRh7jNJHpYo1j3lZb1pcKLYFQQGWAyJYYNJvXiOzI2qqMS0qRQX3aotPzlZFNLtOlYtDS4/wJCSbzc71zUQ7EVJwunG4L6leHEUl1qE3u5W8Sz2riXzi+q/OZNR9ocSSaqojVCLE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057787; 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=dEKo+PI+5OZkA0WTjHJsLVTWdm83mUoo/A8kK5cS4cA=; b=Gfzn6BrDa4Woffw2sfAapc6zSecnv7F/GM2qzrE97so3Z7OuY8xGBkC4n6XhZ3gbvLh+WqflYeFcmpgmqmMZ3ljipHmPrMbVzK8sxT450vvTbwtzGLJG5/I037SF8AQyX1Lx8BhTScGm/K+/6UV5XFap6wYbkL+1T4FCnPmGTZU= 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 17750577873921018.0171208189828; Wed, 1 Apr 2026 08:36:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xV5-0001qp-09; Wed, 01 Apr 2026 11:28:59 -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 1w7xUp-00019U-EL for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:43 -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 1w7xUn-0008CS-UX for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:43 -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 631Ef3uR3174289 for ; Wed, 1 Apr 2026 15:28:40 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 4d90gbhp8e-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:28:39 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-127133794b6so8312351c88.1 for ; Wed, 01 Apr 2026 08:28: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-2ca78df3b84sm38491eec.5.2026.04.01.08.28.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:28: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= dEKo+PI+5OZkA0WTjHJsLVTWdm83mUoo/A8kK5cS4cA=; b=T1lrvW+lHd5HmiGG QP2K/OyRVbXHO7WXhlRHmZaxBSdrKIc139WZO1M2tJULr3Gj+iYer13QmhvMfvcc OwMCoVGxdelHNjgB2MBSkhmGJk7qyMmaj0vi/K22GcY1e6/Q8vfCUvSTrPRohlrJ 4fOUDkK7FOonPS1GzMnexwNU/HciQ7dwpipDylcd5VtszYqAvSjMTz4J+ke8rL6l LSEQYDVu8olMX6phAE7mrH3As6Y7r17pcJv+cjzcoVjTBxMLb5HNniwzU9oA7ezc nQnFs/JuWlO9GovWql3qJ0jk6wJ5U8iwbrIxlYTo8w9/d5tGdvbZl3rWP8+F+rGN y4DXWw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057285; x=1775662085; 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=dEKo+PI+5OZkA0WTjHJsLVTWdm83mUoo/A8kK5cS4cA=; b=ET9bGs8AC0pawQKAox+UsSaFyLx2v2Xg0QErYC6NkP7y7BQm+x6VhcN348FxW72XBT ONleJzKlNKDTleiJddjFFg/Y78ozm7Zn8Vy2bmkoOdfZJ0LEkkuZN1x6LtapK7fFXckf RMkeJgk69h59CAE97+7Vr/ije8PsVk9IfbDxYAeJEQidEU+XHYg1ULrDZSUQcfcBghMu +B+H9Cot7kFvvq+Ud546nv5cGnpxMeYtrbH/ppHHgduFiI7NqNFZnzClMLvOKiV3pRuU z7HNIVOG0uR5zhelwek+r1I1NLkBIab7YbOPSqkwppPjoYe6NdQ2hGd5I2DUwPaf/Kwi ai1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057285; x=1775662085; 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=dEKo+PI+5OZkA0WTjHJsLVTWdm83mUoo/A8kK5cS4cA=; b=OyK4YbNAcPPpdOliqbwRoFQMGtm/fkXtMiLQB2IffbEOkzdtx0/fBJuJigI6lxjWV3 cPOxYpt4ztD6KhEQKnASvqdh7Oliyib9q/jXR8cPKShlQuCPKub5CALyYaZ7qoKmDfXY bN15w7GOPuE8gwwVVq+a509qBp8vyDkS3FYgtAt8IxQxqPoQdZWhnWPkjzw07fgM/L/e BhqODn90HHCEIm7f4lRFsDIVWQt6p8TR9AOVZq0Tz0bc98iE1HAKeM5olyc/RRo1Ciwe o7HIrAeyofxWZ3YOhXHDGHOldIvMb7ZKAzjlKgT4e/Gd/uePamY901BQ3JZhFK2EM1mJ WtkA== X-Gm-Message-State: AOJu0YzfnsPVMYujY5Zgcuj4teSMIXJ6emtnl9tMqmxLlgQWhfd6dHAw 4uBfeGdvD8fK5LmvE+YdTum1VmHStuBhPsmOCrxprSD976yKx0ThQsMLOcYm/eO3FSy6oyJLQdx Psvtdponji93QE9mi6VaGGwpkP1po064mJieMvW8R6ly88McWkp7gdodmIibpdJ5HuA== X-Gm-Gg: ATEYQzyOrzRSGrL+yl3HYUWGPBdSaY/wFRQcJbQNyA3ONGD9oM1CR9NumvLbuexCYRQ xlilQ72RkDijJzqiCD0eHJ7d1QhQGnycbDIcRHC/yz6FSPCuabqdOvZ8/S0/QnAFXnS55ylVUOn 8TzuE6wdpFeyeQ5iQpFnL9riRQiskUPbHVrvKnw6MNh1OB6NnK9QdK16OJDP+B1Ti85Rqf/6ZPp JySgGZx3wrv6f5IUKqLYaZ+9W1RVelwgt0SqbCpxoBRdGR/5TDQa0ccnLeIcu6sy8WKdPMjo4uQ l2sg6EVsmrI5rfTISIJmyIdaRe4c9+w6ZnNu4dp2NhH4/DUyCowD3FWNTHwspZKOmbvFDsKHwDA 3OmLaixWvphx93kA3UU41fbX0YkFivrzd0ftadvKLmIkEHtzy0dwHYp5B8FtYtzN3JzWg9Q== X-Received: by 2002:a05:7022:391:b0:12a:72af:83f5 with SMTP id a92af1059eb24-12be642a500mr2084511c88.7.1775057284658; Wed, 01 Apr 2026 08:28:04 -0700 (PDT) X-Received: by 2002:a05:7022:391:b0:12a:72af:83f5 with SMTP id a92af1059eb24-12be642a500mr2084481c88.7.1775057284071; Wed, 01 Apr 2026 08:28: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 v6 20/37] target/hexagon: Make A_PRIV, "J2_trap*" insts need_env() Date: Wed, 1 Apr 2026 08:26:40 -0700 Message-Id: <20260401152657.314902-21-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-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: AW1haW4tMjYwNDAxMDE0NCBTYWx0ZWRfX42XfXD68if/6 ke9rdPeg4pL1Y9qZdETrCICfc1JvcvzLJfroBj2JOBQE44Mjwb7SqrfCVk90RbEk0+h0H3EDfW9 1uZbWzPR92RnqsSTJtWFuXOrhWt4mYaY4/TjpvW2BXVB9gTmHW3nLdQEpBRUf/7Hej/UwiJ4s0x S9RjJ7sJCCEN+LGAm9ld1OtY4GjMB5W3260cWOG8GsQxDVkk1WA/EALs84jCH6v/yJueE3wUG1f mIEyo1YcDLU5ThYvvy0Z1NK405gVmB7bLBp5+yY+LIr336EowdggbeU039F45kLVgDIO5UPSm/+ XM3h3ZjOtbyXD7S1CZVBVWzgTqzb0+CbDM66cRMcsHiuBasFR3ARQb/LP0LNSaxvQDtMvfUfGq/ IfBf20wITB/b3JyYZ1ehecjADArqxodHrNs0UAxpeyoWONNoZethyGEy01Lb3vzxEC++BLA+QSZ 6OmKi/NQw3FoZxcJrfQ== X-Authority-Analysis: v=2.4 cv=QJJlhwLL c=1 sm=1 tr=0 ts=69cd39a7 cx=c_pps a=SvEPeNj+VMjHSW//kvnxuw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=8AIcS7dZ67HrSpPWHdEA:9 a=QEXdDO2ut3YA:10 a=Kq8ClHjjuc5pcCNDwlU0:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: V9B2R05B4jxLvenQDUNvdIqATpj6pV1N X-Proofpoint-ORIG-GUID: V9B2R05B4jxLvenQDUNvdIqATpj6pV1N 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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 impostorscore=0 clxscore=1015 bulkscore=0 priorityscore=1501 phishscore=0 suspectscore=0 lowpriorityscore=0 adultscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010144 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057789517158500 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 1daf7239fc4..f7ca4986ca8 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 Wed Apr 1 20:45:44 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=1775057369; cv=none; d=zohomail.com; s=zohoarc; b=AoymgBdV/uivlTBxiKUzwlgTIztVZnt4EqmZcZmSBBBKQAkmdFH21pf10XMCLCYab7sGPK21g6YJFAFYUmokCxL0e2fnBgiAtrcP3wnHV4kqlbjfTk2/EgsdPfSUmM8bITdHZnspyf01YsGCpsPd9qpkCUxSlInXlnYvaC/rlrM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057369; 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=dGlGzUayTwiXC/bg5YrAB2T6871CPG9HNKS69hKBulU=; b=i2T5iVubm5oy2EIMU4Yckra4Qvu45w1C85Hg0/g/hS5QORgaDekAPo8z35/VAXxLIpYGW7cZPW2kIdoXveQxy0mS+8EnUQl8sxKBCH82/XmR2e4irsgxs338LHhzr3s5U6VSJqmVFhYgqWznenf+f6tzwGCx2DBPdOxww2dC2iw= 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 1775057369519224.2671626912272; Wed, 1 Apr 2026 08:29:29 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xV4-0001qm-Vx; Wed, 01 Apr 2026 11:28:59 -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 1w7xUz-0001IR-PS for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:53 -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 1w7xUy-00084R-9T for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:53 -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 631F8kDj1580398 for ; Wed, 1 Apr 2026 15:28:12 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 4d8mr2vbjk-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:28:11 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-2c5b48baf75so8793133eec.0 for ; Wed, 01 Apr 2026 08:28:07 -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-2ca78df3b84sm38491eec.5.2026.04.01.08.28.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:28: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= dGlGzUayTwiXC/bg5YrAB2T6871CPG9HNKS69hKBulU=; b=BNS5rvFnovyXTVHx rZuL00X9D9XrsOMtDuCulDdyt8Xfdu7FYe9p1cnc9ZG+D1l887pZkFmjraFIfIHm SvLHpH186wgfhkuMb9KQ+JYpETTdv7F0+YNwEM33yAWytJOeViALKHR8OEsiCr8c U9isbyBwpxXJDAilsGQHJSXaImTQiVZXlQjxlFqFQwu/S6+GYwE7NbZburb1Mp5H jpnElbf8cDh8LhzdGzwmY5xbQKgZ9qRisNIGbCFoqVo7J1+/QGkWz4OLoXqs79tq 6TXTZbUSjVZYwDe3Iu/vkVZWX5FRspo0Q73+tbOEC0rRp0znyl15XQytWIMTZ4rJ NK+SVQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057285; x=1775662085; 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=dGlGzUayTwiXC/bg5YrAB2T6871CPG9HNKS69hKBulU=; b=MXsAWH5GaOoqGCI+9yecMKYWOoTol3LxTxCjqpdX2UtwRSU27HL0mu3iAcOa7b919k hEwPBCuXad/vJmxZdZzwX8OsqRb0No1BslOgQkjnmtgUF4NI0CNrF8yxIWLWXzD7ikDp ojEAUFspTVZtKF2jZizqeUpJhetpTOQYxMNs1d3fvWaxOHronfX1Ct3LSG5s15/INEwC XTyexV43VwIPvKlkqGIYt4PC9Jn7e9T+Y+k29x8sCndnpJn/cF4YHA3KzK8/wFBp8OLa iLj1s1S/8NB5X1mYVMbbh2kgEpHTnQMpNyXpwCcY0E5wRbB8VWkD2uwiWno2/h9puOuC qzMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057285; x=1775662085; 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=dGlGzUayTwiXC/bg5YrAB2T6871CPG9HNKS69hKBulU=; b=rIVY9wIo0a1piPW673LhJQjA1apG06kFP7hcaLWriskBPKfhcMU8s1FZ6ew8R1S0WD UkKvRkWO0PmWZEDmjVEn9ZhAoM1echuBcRNyAWjYDOkE0zHknGipu+8ank2aWiPzH4Ic 6oiwOOER+6VPQCztJzWyTETgTj8rPNqZVzTr9bifZsEKYNqY8S7fjdK9Ind3lHk4hO5k NwvEFAIySAZiylOT5EmAglQ2Ek19jWS1EPp0bcujLTrtk+ymxFjoC59L0dD6tOy4GaJ3 5Lup8g2cJj7+pu7eTZvHPuJqSBHzfHdeaqsFKOEXFepj51MBcwEPM+SbTMP7S5SkFljM /+BA== X-Gm-Message-State: AOJu0Yw57HJDUxE7ow47nHCo0L2JZsQOqCzXJFBbAVUWxCKHRPyZEWAR DTihPWM1zabb2rRX8aWn64VlRbhHpLqs4sg/vigO531o3jvz7WqmxjoNxgX9daRoLv6hbu8MbUf bDg9PCw8dwls0S7BYrMKQSpsVzVfwZ/ZXzpXMDDPAHCT0+L8unrGGTfq7CC+BAdDWTg== X-Gm-Gg: ATEYQzzMt/VOsIsOC3Vz8QSnzJOogQvQH5jCBVuhz/fXCnC1BeR62Ey5yACaRoiR/hV M+kbZ6jb3ibbRwCHDYf37x8y049HfZfqryyZHchK0hU4hUV/PQF1W6trBY375T6Sao2qjdZOOmr uNNFyh5i66kT+y3ilV9wO0BZgTE84Blf8101/mNL+eWsr92W/8vA0ZBBsqZ6udjngtdOMfwbnpa 2LTAKRpV7ZWESIdt+0elbUY5Q0M4Lf3PglPEvq68SNOgN7GbQU+WSZ+fTFN6HdHYZ/Kx2sIhpl7 YtdAwPWEHNeBwvQpmVcgMv7WyJX8XNyNE+ye7SuH3UR/kc0pILC2BpMbJh4Jab1Qrh+4XMyS5c2 lvJvFpP7ts8qpcct4BxGY7bN6I51jW922waZOQWidHLaHvhGnVApjzbsZlZes3bfnb1vBmw== X-Received: by 2002:a05:7301:6790:b0:2c8:7172:3b86 with SMTP id 5a478bee46e88-2c9323b91a5mr2466932eec.22.1775057285467; Wed, 01 Apr 2026 08:28:05 -0700 (PDT) X-Received: by 2002:a05:7301:6790:b0:2c8:7172:3b86 with SMTP id 5a478bee46e88-2c9323b91a5mr2466907eec.22.1775057284876; Wed, 01 Apr 2026 08:28: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 v6 21/37] target/hexagon: Define register fields for system regs Date: Wed, 1 Apr 2026 08:26:41 -0700 Message-Id: <20260401152657.314902-22-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-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=B+O0EetM c=1 sm=1 tr=0 ts=69cd398b cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=mmKuwxttERDeH49ycpoA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: UAyLp9M6nUPA2EoZ1MNDpW8hdVgrQ1A4 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAxMDE0NCBTYWx0ZWRfX6TkxFgLprvqX B+vA4oacmCHNQmURfJF1fh0+Rg93nKSFX9COiJJzjLY4W3OBmAlAIy7hNmTVromK+m8pxjQR3WN tseW6FrPXVAD0c3H8+xwFC8GiqIok17NIWYmEOhxP1wqQSLlikyzC2iFox9xdUxiWmwzg9bXeS+ cZLQ7Ktpomllv9USrJ3lZnuua1QP1rzVKB2OgAXt4b4MQiUNjvxJsXa+CV0FIj3/gTGSia/mQYg cjU5eSX90PhBFL0l8YkicwhFm+TnXCGNrVVcrkdIAl618AbuS3uDn7rKKsmaWsFViOO0Fo1Bgdu sR8h8N7SDaw2hIO0TWmNQMI66HBCtpV40lj7+cJoyVsmlB+LepgJ3T3tIw1andKN4ZLCBkJ3tYw ul/spCjm1+8IG+ZErCW96ZLnY+OA+8SYiqZ4pG8N8wzrPwR7VPc+yxOmFHbrQbTmP91JMshxLLs ez9j/ImId37P+MEw6Wg== X-Proofpoint-GUID: UAyLp9M6nUPA2EoZ1MNDpW8hdVgrQ1A4 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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 adultscore=0 malwarescore=0 lowpriorityscore=0 spamscore=0 clxscore=1015 suspectscore=0 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010144 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057370558154100 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 Wed Apr 1 20:45:44 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=1775057463; cv=none; d=zohomail.com; s=zohoarc; b=S9nyjJj71q6mEl74T+AAn22SnPTCgt01T5LvPdGhneXb+9QkDSkzdMqUXsZcn0gLyW5jYW+LJefq7TcwyCbKJaR3rPXVJWJ3FX+8onm3hTQKUwaCoWOkCo+k3n41w3Aa929ZcsDvaVIOXZ7jQvQINgYisKDKzFSmuTqF2ikBIeY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057463; 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=VD8bHDqIwxQ/ejdGEqcRWpPLOabnnnaX/QlfiL4OvyI=; b=Cdod/Egs5hCTz6RuJkpMlSEy2tsucg80HGwIQD+Ua/fq0a2zWeBV2M5r5Ak5Fgmtm2Htbt9RPJQnxyadJPECzgKPc0g5OrBcTJVmrLJfz21d3Nfu+exxdVgPDQChvgXZlS6BtOHn975T8bLfTcxbxXHVsREMFgQyvnIpucyvs5w= 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 1775057463646187.18193468142442; Wed, 1 Apr 2026 08:31:03 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xVC-00025f-Hl; Wed, 01 Apr 2026 11:29:06 -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 1w7xV4-0001qr-Uz for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:58 -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 1w7xV3-0008Hg-6M for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:58 -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 631Ef3up3174289 for ; Wed, 1 Apr 2026 15:28:55 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 4d90gbhpaa-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:28:52 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-2c0ba59a830so8887870eec.0 for ; Wed, 01 Apr 2026 08:28: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-2ca78df3b84sm38491eec.5.2026.04.01.08.28.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:28:05 -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= VD8bHDqIwxQ/ejdGEqcRWpPLOabnnnaX/QlfiL4OvyI=; b=XSnRL4YNVEF2GY7K I3TtDyqyy7bTmM6PjyZh50qCJTvdnleOHgTG+LDr0IiPpvai3hA3BRT2QD6Jrtcc 3L/7ToromZU4rujqPd9OA6kCB42P11D3WZI5vKe1bXDOvGEUmHfSB1vXYwRbQ1HL BU8vouA4ju8SYmpjkADmJHyYxgAhjR3dVNU57UWoUP0O5hEKKC4bi/4zOZcTKJTK RBcyrmGCyO5lwyrvhufzlvbKhaWB1PUoVOD2QSo4MeKmZ8JLNksGuopo+8BeHtep wwJ92XJxfsPiWCpBTxiOv0G6NxIQ8haZUXNjrRqspvV2M3d9ZCRQGXR84s7p6j8z q/9U6Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057286; x=1775662086; 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=VD8bHDqIwxQ/ejdGEqcRWpPLOabnnnaX/QlfiL4OvyI=; b=CkYaQBewTCB4xxuBWhnq7wnZjYjJroKUPooWOjibvLo66dCnWgm60kuhVGZkNHmH1j UfP1K6rE7KelfDOmvxy7lkmKcD5312wCxB10nYNMIeCjbODzwKvmNxl9tKpuZeVXSV5v JTy6HS/QEwFl0KPHDq00sCzIdpXVPCN/c5RCQSipnfy4c1Y4ya49ZP1h5hddoNg9oO9u jqX1iupQULsPmvWTlNGylOmqXOQlmulrVRWw4fcPd8UbTRxM6rk/i+NhjKvMG41zdGk0 8jlFvk7bxd39ISVb3UYKn2YafevxjVkpr699n2qG/KrTvwAQ1dnRDdxA4H+WH+s/OW0C HiRw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057286; x=1775662086; 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=VD8bHDqIwxQ/ejdGEqcRWpPLOabnnnaX/QlfiL4OvyI=; b=r9jEVZwOZl+NROIk6zBnjP1P+3VLiyFArW50KcRzDRdWIGwHDeX+Vfj7TOu8qZ4UqO oU+tjSP4gzFkWX5BFdWB1BEl1jwpEAAI0VLnsM9InOpdsCAwg+O4I0GFhjGco5lz9no4 tRUyRcst+S+gambKj7scq0SfNcJxZ/VfNJMdImz11ODCC19TSvCFiHX+2R0D5mYPnbFA im2racPv70jGUlLRkWYdjUZGst4kzHbWs6zEbHeaAoeIswNm2qsv0xv3PAdGYflH/S5w 5ZuigwTtK/8kQISCx8DIsoQNTS/4BHgy+WK9bpo2fD13WweUmSyq7A1cyuyzq9Sv5L0G pfGw== X-Gm-Message-State: AOJu0YwuQp+/yaQELTIbpSptVZMIEnpfsz5/0jAn6bbXAJmegojWiRUs 2DiT1wAkrYxVIWwJ7G/vKIMeWcnGKmDUAl383H93BZNjx2EVI+6qBbszR7jwBd7EU8piFch7YRO QCnFNyszF744sKFIsQWpCMPrQ2mqvDxcu+yErDfYVUrbJg6HoOw+AvImPVxxUm+r7ug== X-Gm-Gg: ATEYQzziWAG+7HbkFWJDqF3c6dth0UL6A+tcq+62102Rnx0di4Szg0s5Nb/v/7ibJRZ m2ZTl7+QBkZ4QT82s5nvB7+2sHGL++ACtFnue6dqrWn5xviubqROsiCzrio0EDMLLDyuwoNYu4W 1/E/MrzKZfg6YbtoFzUWAkMMTQOJ98pgU78l0dixBDFTs/LAGis5ot86GZc7Wf2k1nsmUIO1DD6 p5lVSPFBZArhoOkGuNhlQzog8YKImHURvy68WjI0omcFQjYxmO8SOWvQNNcstQyQTWPpXB/ELdI xAAYZvAT7Ga3DYEFZrvZzWCQW6zeeFvNW6xOqqB5tnVB2XV7Zhmf5g5cLeYBUDNOWJlx0YVasru oEXiwdFoL0yKC54GQAqGVKs3LS/2O0lNryTDWSCZaRoFSOF/kXsBnqi/IItlFH6316riiXg== X-Received: by 2002:a05:7300:d50c:b0:2c5:704f:714a with SMTP id 5a478bee46e88-2c930c77e37mr2311673eec.8.1775057286352; Wed, 01 Apr 2026 08:28:06 -0700 (PDT) X-Received: by 2002:a05:7300:d50c:b0:2c5:704f:714a with SMTP id 5a478bee46e88-2c930c77e37mr2311639eec.8.1775057285709; Wed, 01 Apr 2026 08:28:05 -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 v6 22/37] target/hexagon: Implement do_raise_exception() Date: Wed, 1 Apr 2026 08:26:42 -0700 Message-Id: <20260401152657.314902-23-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-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: AW1haW4tMjYwNDAxMDE0NCBTYWx0ZWRfXyBJS+yfT29EE j7qCWX67rYpOzmLBPc6QOrIyW+qp4xqpz0IFJOAPGWFBxxEYkwksQj8Zxo1XbSDH2ABV0y1YH+A hBTOFlnfImCfNpoczhPD/u8Q+/STsqmcCZxV0T6K4BodsanWYm244JQTdlFqLlLJd4Jtuo/FDlw SjKYO7j96W5dqHh0YDHXwAe/FueEGw9xb0rUevKIKQhAgbfUsvhXkDTXPVySfwXrxpLpRQpovJe n4mDQbD5nBPDD5j/QG5yFplTtCyA46ftKPf9S+eNaG2JOWiklGa0gEOsx5h42aCLgVBnPuHc0sW kB3T1dUxdK9nZEEURODHV8SPYeTFoW8/Z8gFBMWB2CDJ1168rwcLp8P8R5RYY2mx2xc1Pap/YBD BIzxxqk3hfI9rbR6Qj5g1kPs1r8/lyWubHLPczjHuRtSj5esMwdMuWc7NFckyChN6RBDQPCliTi /jg/Vx6CJNvziTiyzlg== X-Authority-Analysis: v=2.4 cv=QJJlhwLL c=1 sm=1 tr=0 ts=69cd39b6 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=hK29HtBGQMdOITfcgGsA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: rkGxaKH2r102BGZnbXqep49AQLfNwdNj X-Proofpoint-ORIG-GUID: rkGxaKH2r102BGZnbXqep49AQLfNwdNj 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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 impostorscore=0 clxscore=1015 bulkscore=0 priorityscore=1501 phishscore=0 suspectscore=0 lowpriorityscore=0 adultscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010144 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057466136154100 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 359bf12f1f2..327c233c01b 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -40,6 +40,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 Wed Apr 1 20:45:44 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=1775057469; cv=none; d=zohomail.com; s=zohoarc; b=GCwKjiobArabvOD1m1YAnteHiy6+3uD6YmQnd+6/LYpTkkA/MwfG9UYqlay39GT1olpWJOedqHfFXCH49h7LuQuizMhw5swjZ2m9BTz8zKAZEM5t+t20+RvVkd9evyeooslTfvoT4q0NkL2sqCn6N0U/rHQWOFO2oUm3NJonIcw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057469; 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=XZJ0htwWyjlKER61RlSDosBr7GDo0Kmr2Xx73B54Ye0=; b=V0FUTIO78LTODf1lp0detbMEj0efm0r7LDru4OAnPmbWFlSZlEOSwXc81lSwcQG5OKbk5lLJNwStY/3wUwoWhaAOJm8Cz3IClqrX3/2PpaFouZjfYi2OHpF019qDAhY409zgeDmDkgKb6RePtVbVo8ndatMKCRtpAEwUpiJ3Gko= 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 1775057469388774.4924383525529; Wed, 1 Apr 2026 08:31:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xV6-0001yt-Jz; Wed, 01 Apr 2026 11:29:00 -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 1w7xV4-0001pW-Mx for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:58 -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 1w7xV1-0008HL-Av for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:58 -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 631ESUN63174257 for ; Wed, 1 Apr 2026 15:28:54 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 4d90gbhpbj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:28:51 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-2c0f6593ef5so9063824eec.1 for ; Wed, 01 Apr 2026 08:28: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-2ca78df3b84sm38491eec.5.2026.04.01.08.28.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:28:06 -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= XZJ0htwWyjlKER61RlSDosBr7GDo0Kmr2Xx73B54Ye0=; b=fCWXIrhdaMDwQZ8H gQUr7rSWTCsVugHlpSXvpHePq5Lc/qV1aVfq811NZ8ExFUX2NvbCJ4SPKCn1k5Q8 qQ0w6S45iOkYoQtGXJE1dnPy/vJV7yiuJKwTTLRBPQWwXCMnL3iQj7ggBauvf9Wi BIGBk5mIco8BvUd8BtpRfWIlS8P5wqN+f1vyHmshNNaWC+tbor/f93AEtDsf21Mz UUQ478OSTG9Ob2CzBuJEVPRZ/av6fFmY+P1sinbGC8z1soiTkRGP8V/WBt3NcbV7 A03C+DO5BKr53gxuKvcs+tfADR9V5FhFoJGnCbBLEYN6cusdeQZUUpuSn572RSrv /I+y0A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057288; x=1775662088; 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=XZJ0htwWyjlKER61RlSDosBr7GDo0Kmr2Xx73B54Ye0=; b=ckzTPrAw9nxFGIwpdUxdkx0IyUa+cX0hI4X0KvXWY0tO46g+VKUe8dL1+jB/eRG/rP lmENKb8d8nIOvy/EK900LXAbuNS66NJpoZWBjIgW6WmYXsQbUG7m7qOEjXe3iuVOZdlH 7d+qK2rsk8BTJQ1f8Vvw9OzkUwkzR1SKwPD02Iaf2onHY9mGyL0Yyoke95FiSHTWBibH eqsom+NhM6ChA65FpObMwxXxQllR7SFhDdk8wPjVQkzNTkRVcMuF099fNM7p34XcpnMf El5DYH2yiu/+dP6rJmoPXqy4BSIK0UIwlUFvMcp3owjpYzde3514w4KPXcYAXTs4qCX+ Z7nQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057288; x=1775662088; 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=XZJ0htwWyjlKER61RlSDosBr7GDo0Kmr2Xx73B54Ye0=; b=AU25qniJB97MzZQMdvRxyt/VubOlrAyLLDlyHosbGp3VhkPIcusrTXe4uUmJHaT8bp JzpYmFBLg4M9Kg86xGfY0cZbkX21aWl4kjjxzYEwS8gXu7oc1JrAiESsiASQ+GFejF57 aMuM/RwJNXLDdYnDRYhz/RpvutSxAQ+D+9Ss6nn5SonNTcn6dFBrX2/wpJe+KfvvZzAz M3k1g7M6iqqL5hpvikSHgGEB6iPd8Kn2aMt5EK6aeiLQhEZ1YMxGqQgvbbozUvX6AZjC CnZEL5qRZe+0Xp0fZUlHvrR1kjLOGl1mpNCpJBfryhJUGgBjcvu6/utA/7cbtbMKvxoI nIvQ== X-Gm-Message-State: AOJu0Yw5ux7dul1AfcUCNLcn1/1StwRtRdVGSy/MxM1eHqPBMi3lECBM S1ht5FGjd5M1g47aYrZcbEq1CBzzf07Rfr+XyEgSFgTJmUnVQaXjtH1dXfL5m7pKi2qih05+JZP AP5DpEuDYPP15nvHHNG6LPLI8N4AQyOnNKhQYgadRj7FirIAPCOv2jfi8MyuX8QcGYA== X-Gm-Gg: ATEYQzyseIirwF4TagtX8uX7xQU/MY7ZJ1eGuXfeVDFmv9FBeeZeTQEyw0RN3oA7sg+ hXrH+tkbFRlLYpdInRShgRj+82NwoI5Jryse4scoRQHj7XF8KwjFgJxNLiVuJOBtSIzxsaGmcXb 1/M69WU8hQOtu8gcGzWeYkSXtqJgbR2t/wtTL2pEfgcHUNbVnoE7tOeZPbXrTtMlKtK8EIDA3Ez CE4SfeuFa+7asRh4ld/MwRBgx+UIHH2EnwPEA5IsJ5mfpFl/5JksMRewmOrohtXO70trSCX+kdE MA1WPFruxU00V1h5WvpIPX419uPJSYFF7ppOz5uYbpcvopKuIkW8F2I01vIezjI3L+TRQzLn+mC 05E0hs00T2og58D9yyU/pmNplfZgzqXVPawgh1Q+x4YQ1fqPVTcQc6qpHEPtaE+wGVaHtFA== X-Received: by 2002:a05:7300:cc12:b0:2c1:3f85:747 with SMTP id 5a478bee46e88-2c9326a9fc1mr2331683eec.21.1775057287497; Wed, 01 Apr 2026 08:28:07 -0700 (PDT) X-Received: by 2002:a05:7300:cc12:b0:2c1:3f85:747 with SMTP id 5a478bee46e88-2c9326a9fc1mr2331644eec.21.1775057286656; Wed, 01 Apr 2026 08:28:06 -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 v6 23/37] target/hexagon: Add system reg insns Date: Wed, 1 Apr 2026 08:26:43 -0700 Message-Id: <20260401152657.314902-24-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-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: AW1haW4tMjYwNDAxMDE0NCBTYWx0ZWRfX2ocfZZRcANLy VRA3xnYuc0bZ5+YKtvjNJ0OBC10iqtdZrcDRAM8yMP61JFJz5fIuaalfoIVQddgfhSP+v8UxYTU p8QdKI7YvIxHJgKbS00GJYxlUnbspw0gWx04WncY7pMvU3a9k3U3JQw8coQ0oPKrQhzvpjCIeqQ A/IsyfrjfYqe+b3dDvtE6ICj5tnqlMAVjU65iAdyTn9hwPSWSw7Z5Bg/XOxGq+DeaNlzGR/OFxi H/6Lw0kMkqK8iNORu5j9WiagxKqAv9QQVT0LszYpubSDotLS01560j1RHwSkgZzuEwO7JY0ZJcV 9+m90JDZqJ0jo1FQ6Gaxful8QuRt8UbMKhvGn7Tp7nlGksiargX8RZUzOPjkZYumj18oSH00ky5 Ln5InKeMjMXewFAuAYdgGb9GQk8ACF1AjJdwbWtMnQF3wlbBkRXsX/2HhXzSB7aK08AGTrWwYhx ddYjT06I5GnWJ2N4RXg== X-Authority-Analysis: v=2.4 cv=QJJlhwLL c=1 sm=1 tr=0 ts=69cd39b4 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=Lq-sf-uUdcGOnWOb84QA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: JJWlOysO_rOPTRfp8jsvz0tlLM_t5dhN X-Proofpoint-ORIG-GUID: JJWlOysO_rOPTRfp8jsvz0tlLM_t5dhN 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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 impostorscore=0 clxscore=1015 bulkscore=0 priorityscore=1501 phishscore=0 suspectscore=0 lowpriorityscore=0 adultscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010144 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057471506158500 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 Wed Apr 1 20:45:44 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=1775057334; cv=none; d=zohomail.com; s=zohoarc; b=AhMPFsVat3DlnVrIju9WQWbeNgWZmzeyTSA/84rPHLNbX3Bvk8/RqBAyV0bT50t8PHKR7p8w1QdxE5UoAqik07mvNRmbdgHy00FrLHKRCYeMLYw9kyiF6RZiu5DiBFKhFMRKlBvR7+S3+qcJzR8novQvnKVv3UQ9SUdpUSpZCrw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057334; 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=gV3f0fC/OnI2E29rr7ffGJixQTkU/4Nd4drci+xToYI=; b=V+gh1RWTZs+2wrfbuOYRjrjsgNMG9ZQF/mlziS3uvSPj9T2UWfj4hgMdl1Riulh8IX6q25qnyLA+iZwznF8z5AwQVelWBg2in/IR8OCH7jIo/vZGCcH4mvAOigES8uwVMuMDs9MnN1dv56jJepnxGP25PA49XdAjAGunCY1sbLw= 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 1775057334446341.41377846492037; Wed, 1 Apr 2026 08:28:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xUV-0000q4-Bq; Wed, 01 Apr 2026 11:28: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 1w7xUQ-0000pU-Qo for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:18 -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 1w7xUP-00084v-2C for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:18 -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 631CiOf41285864 for ; Wed, 1 Apr 2026 15:28:15 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 4d8xm3t2vw-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:28:14 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-2c68a134df8so3031479eec.1 for ; Wed, 01 Apr 2026 08:28:13 -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-2ca78df3b84sm38491eec.5.2026.04.01.08.28.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:28:07 -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= gV3f0fC/OnI2E29rr7ffGJixQTkU/4Nd4drci+xToYI=; b=OKlrgsajEBflc6Yl kRw1sIuO4pHKWLgLvioFuFWlDyaSovKsHX+yOGPEB3w/EKQLmCXyCsBo/j0owPir 3tBuhbGkKuEeZ29WIBERuynvTilRlRSeouK5VnQMNXq5yZ1X3k8+xePkWrCRR5wG dLR377/lohRJKE4d+DXMj96ckWULPaS+mBByFObnZmJYfddJRbVBT2XRTEVd+Jye FQr3MYDClk4lj4Xn53/5HOfJx+vQiP7DyNTpVGbhjVau9/KUNxuKjz0nSrfdAGlM 0ODh/srNFkh2e/hoby3+hfsd/zUKVdCuvaasslJwTGGn8JfXv3vxdOxy5EIe/Bui 5Z11Hw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057288; x=1775662088; 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=gV3f0fC/OnI2E29rr7ffGJixQTkU/4Nd4drci+xToYI=; b=YyX+q/IDpzoLaO8wAbwLRWihgSar0+ejQw7UnluhLLg7oxRpdkERinNJPtOz6mZXvX jp3DyXazLgzdfIuDrCvHuYL/IFlbanwCrEhxN6GTq4uAU5zrbWbMnqPccqYrmsrgxeI2 +03VLNTxMbyrRQ628snTBqaDYambElNwnxwZm/Ynwkl8N/tBpueo7TpzS1xyEkdCAKUz Knv5PJDAcYI/afqkJgjktHVqiiAgB+LQLTuBLbGfgKOwpo5+TpvoWi1st7fZOM7+IU0v ym7hISGInCJ1/nUTnzLEBNbdDF7O1sZJxe4hTdPsZKp2LQGpPr2RvTk8kxHtcoSgAkWh SVIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057288; x=1775662088; 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=gV3f0fC/OnI2E29rr7ffGJixQTkU/4Nd4drci+xToYI=; b=A+KaQEIuaN10DvC44Kc7eGzsdTMj2ALEkBu5aHdtxm8Ow02lN1hwB4tfvcDZtpQvBc qn5+orug9Rl4NotSpYuvtxRhv2fnn3uHAkxZ15rB/cTkHqnBSwzPqd/R/MnswB1FukBw HHFXPDIvePzV359yaejtUNdbOlbKZz4mB4KR47npJ8AuXbYhguphrwwXYQUKB7tvyFW/ PK+8S+ZE/fuWz2Fx2VgAp+lYjFXS2OID2dIDEA4QM1+BHCmyldDoh4MU1h5LfsrKF8H8 tqf9tbBxOrCwNK0f0AiJUeYhVPv5nSGd4kHWTLRvx5xq3wo19M1Fw7xnFbegEfpNp/n6 5K2Q== X-Gm-Message-State: AOJu0YzsUh/T30Cv0kWgsd61l99Guia6ldZBs1aghOaTVkrnyTTphVAA FN9cJrqPA1fqXsCu1dcKeURaXaobQSDyE2YLaM/Wtqus7k8ngyfPxFi3ay3Yh7qmL/C8Ecsq+FH CL/T2fKmDpT9IQHdmoM3MPvzGclv7/RmH8K7qKr0RP7IuVYlNQuOxXED3EUiqqAHrmg== X-Gm-Gg: ATEYQzwax1ZnG6r/YVQ6COQ19CiXRIZkEIZdAuglNedm1xs+U8AP2jgyVe1nhTDpst8 E30Anxz+4fq3BBVHeMibu7db0hKQs7tNowzipsMGDbavBrnC0QHgCMdhlE0qZJPBb+GDqewAAG9 9Dw6ZYHbX/oMV5ziVOL1XRQteqexbpmFmZysHt2mWGfKH0xEDeEq46E7UCJX+91mYNAUHk6uPnY d6dfK3lhwBCs9Zw1/lDabX5ub3JAhHT+IgPll4IdFTe2aa6N3eBpe5+QXfIzchokWjCRpqWj6EA jszI+JMgcmCCoNGw4DDMLAl+r/TcSsxW0bzI+wfNttn5egYWzEU+3DLJPRVE+syJzp+dofYDAS4 2VUkbSZHdWBc4To0hQWWP2xVg+EmBHzlZjVJiaizgsAW4y0vDAdWQfdi6IWnbHCdq9aYu0g== X-Received: by 2002:a05:7300:2202:b0:2c4:b8d6:45cf with SMTP id 5a478bee46e88-2c93138464amr2399909eec.9.1775057288188; Wed, 01 Apr 2026 08:28:08 -0700 (PDT) X-Received: by 2002:a05:7300:2202:b0:2c4:b8d6:45cf with SMTP id 5a478bee46e88-2c93138464amr2399874eec.9.1775057287602; Wed, 01 Apr 2026 08:28:07 -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 v6 24/37] target/hexagon: Add sysemu TCG overrides Date: Wed, 1 Apr 2026 08:26:44 -0700 Message-Id: <20260401152657.314902-25-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-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=L90QguT8 c=1 sm=1 tr=0 ts=69cd398f cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=c-qlsedbFlXwKLHGPykA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: bPvoHNlTCgGX65FVE6V_JzD6OiqXQG7h X-Proofpoint-GUID: bPvoHNlTCgGX65FVE6V_JzD6OiqXQG7h X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAxMDE0NCBTYWx0ZWRfXyq+SCKwAZ4ud 8lmRd1GmXicRdbO4dIxer9jOnSi3/Sww1mnNFADlL1uRqc+iIvRTtAPuSdC/pIh4G0etENEVh3z syl9AmFMH36K7Hui5/jg1V8bcOO4a+D2vqACjofO1MfYgD5gL8dJH5o1d8o6W91cJ+SgHrB6fqR ZXH8J/TAB+sWiaRyC3UzhOjoqWMJIddPwJO1qsoOe6L8GVUw1Ky2m6t4regmfIyAT+Upoge4YkN bdF20U+Rx4CCLmOlwBAZf2ZGCIjgq/24QRkiWMNra4WNiKdJWQFndLFepeFUyplWRB2LDMF/Et+ J/E9yY+dNX7RBZa6STuWTkrzaFOSZztvyGCHsXJGZil4oFQgDAt5ae5+77IogvfBXG/cMuA72qE 2m73mrkKtPF3cCcmCjxUTWxQj5T952663DfOTMIcZZc2X2y1YaSo0hMDcDIZ/7XwME15Z6/8ixW 771z2Hy0PHMrUqSXC4A== 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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 suspectscore=0 phishscore=0 clxscore=1015 priorityscore=1501 spamscore=0 lowpriorityscore=0 impostorscore=0 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010144 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057336211154100 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 | 9 +++++++- target/hexagon/hex_common.py | 2 ++ target/hexagon/meson.build | 13 ++++++------ 7 files changed, 80 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..75a28fc10f9 --- /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_high(CPUHexagonState *env); +uint32_t hexagon_get_sys_pcycle_count_low(CPUHexagonState *env); +void hexagon_set_sys_pcycle_count_high(CPUHexagonState *env, uint32_t val); +void hexagon_set_sys_pcycle_count_low(CPUHexagonState *env, uint32_t val); +void hexagon_set_sys_pcycle_count(CPUHexagonState *env, uint64_t val); + +#endif diff --git a/target/hexagon/gen_tcg_sys.h b/target/hexagon/gen_tcg_sys.h new file mode 100644 index 00000000000..04549831ea5 --- /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_i32 tmp =3D tcg_temp_new_i32(); \ + 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_i32 tmp =3D tcg_temp_new_i32(); \ + 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 d71fa578b6f..63cbb7edbbc 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 327c233c01b..ed43258cd91 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -19,9 +19,9 @@ #include "qemu/log.h" #include "accel/tcg/cpu-ldst.h" #include "accel/tcg/probe.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 +31,7 @@ #include "mmvec/mmvec.h" #include "mmvec/macros.h" #include "op_helper.h" +#include "cpu_helper.h" #include "translate.h" #ifndef CONFIG_USER_ONLY #include "hexswi.h" @@ -1412,6 +1413,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 f7ca4986ca8..3ba1a4523f1 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -1369,6 +1369,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") @@ -1376,6 +1377,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 Wed Apr 1 20:45:44 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=1775057322; cv=none; d=zohomail.com; s=zohoarc; b=QRU0M6phFGg729ZOB6ZXv6m6EgZWwsP3JsUfux2xFn05Wqd6jkvDBmbUh2XZVE70WXGHLjBy/lWPJRXmf1ZYTZnQ7qmpCAsUwCNLCdDOPgU2G5cFb2Zc2gdYGsUvy29100Vm0Mnq5s/maQkhHA9PI4U3K+mxK9sYd2xa18QaaTo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057322; 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=KLyeJVWTlb4gtNJk7DgkzpygCPEbRzc6XmSLYTn5geY=; b=YzMDX/L8KO83mvEGHL3oO2xv7LVpGuNFPA/5vn1yIJNfiZ4B1s6e4QhbNfNopHTnwRIcli3h8ER02/7wCwMljWQjOUaap8qFWZTp5RxVW6RqZ1u8QjHb8vgH8xt3sZVNy8SAahn2+WYUKTJPi65GpTbwVHxKq84OeBIJC1Xu98o= 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 1775057322056868.9043904716433; Wed, 1 Apr 2026 08:28:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xUV-0000pz-6w; Wed, 01 Apr 2026 11:28: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 1w7xUS-0000pp-RY for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:20 -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 1w7xUR-00085l-D6 for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:20 -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 631Ck55Y1285828 for ; Wed, 1 Apr 2026 15:28:17 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 4d8xm3t2w5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:28:15 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-2c68a134df8so3031496eec.1 for ; Wed, 01 Apr 2026 08:28:14 -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-2ca78df3b84sm38491eec.5.2026.04.01.08.28.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:28:08 -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= KLyeJVWTlb4gtNJk7DgkzpygCPEbRzc6XmSLYTn5geY=; b=ORL1+TDKtJMS/6Tk b1DkXYsm8psWViT/ZjOJjZvd+XFcqh9zivFqh6Y5fZ77D6gPk2nB7spiKztWpCwF ccTaY3QbPIFLDKDvjcz+jsAC2BZGqF9YOlmRzj61WnapnXCL9FYh6hIxoFl75n9a zID2EG8/yQXxizFcREqkhW4aI+xPaxMAyxV9q9jxfUR6/mWKc1P1YumeVPRwbtkX LsXHgDkcWc8Es3wjfq+CdoJscC2CAzXOaKLIKa9i27y+iz2KTUeMLPFNKNMwbaH1 xpVQGexEyxPTjyrpnqLaz90+fU+Twe0JpZyH+uAb+H5mSUtkrRi2GgRyIQuQjqAE BJBeYA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057289; x=1775662089; 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=KLyeJVWTlb4gtNJk7DgkzpygCPEbRzc6XmSLYTn5geY=; b=W2Ek1aI2qzzqMqC1MYhWVtyZUiqcjqn/+JosGmNQ8dQuEFD2iae26IOSr/ZYu04nRj TpTObXN6QYGdB1ZTPn8gHAoEwuRs9XmXgYhr/UPIGblopgvkz4WNhiFECejf2l2SZx4D kk4xE52LjWb2fqWtG0QCkSQ5T9jsQnZ/5ZozO+v+k7TYfw//RjsbYMs7df1ebXLmMJT8 Fi92jm9wN0fg9CJFnIfsB2Ue3Z8tVxhq/sWCWCo+9sfbwVSMnZhDFCipGe/9rCAzQGa8 IpzbPNrIYgV64Zne0LdX/8Ql0vnUJ/aXyZ2CJhTBD7DsE50GBQSDjWID3WDc7EOQx/kx 8ihA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057289; x=1775662089; 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=KLyeJVWTlb4gtNJk7DgkzpygCPEbRzc6XmSLYTn5geY=; b=WwgF+qJzP2N5xhsVdR/J3v/8B1tYoPDCbW6dHvy+cQ3/SegMiCd7TaTMBEwHPWaCk9 mxxZ0C49V9snQ/z0j34WRETC+9nCs1MZWALyH1mX+DSiiDyvIzf36XAjwF1TUB/WupWX Vs23a7mD5uBX0gaMczdnVcsMjosNxlMsyxy4BW5gGH4f+g4Lc4SHiBxatN1twUb67Yvt wKPD0O0BsvzaT/VjjuvYzTJLkXzNyNSPMCoDPiaopORJrduZSlouyijpInbmNocudU4Y 1uC0GivUebpllunWRDMtFik3du0S49Fd5ouPRnpLvbhz8u75/wzGzoY0Mp9TmVsizaTT jBjw== X-Gm-Message-State: AOJu0YxvpWkLQ3oz1yQueezQusC/N86DBMolaFCQfnPQP43PQGN8R8UY 4mgpSHTx2Uk2c0DriL7QAACPUF0MSunfWAPJDA2QfFEadbsS+IDNTwlB0tK+cf0BW6nH0X4Mc5y kXYB3jxIUFKREOV8dbqlQVUXG7OUJu4pd3QO7XMkGq/66W5+ISvAJgDPLp/Bx7ZOL1Q== X-Gm-Gg: ATEYQzxRnunbjiVhN3clD0Y7gES7A9yr78hK7MV88e5euHPu7ZXTm7Rblsn5rkN7ysH 8XduNW4ylcJFM/rpw200/sJIs25kwYUOJumKIwhBvPYCWrxqQyeesVpR479UPTs/I/3HKqTQoBY eJMYMA+97NNFoiCzWlejmABXRDhUHybvLkht/jj7R+DnpJa4MddBt7nPb7Drg3rs6WOrFR/Oo+3 NlEImvb3UtzG6sUaQWj+6CrFvY0nZdvLZv8Wnv6dFI9c/3TR3wO52DACtwXC1TUEbz6Of//nAkG +OGJ8Z/PubOTAXRIrwwF2snCX5rA007z8b3uGuKInlpHajrELQ11g8op+GntuzEHsrxOkzDLhb/ hF9k2NPesTIhJ+hSbLTQjqGHlTvXufhXy5skOf6/ARCntupKPvuc53XRuPhPNY9gaV3UJkw== X-Received: by 2002:a05:7300:5b83:b0:2b7:fdb6:ccf6 with SMTP id 5a478bee46e88-2c9313847eemr1962568eec.14.1775057289011; Wed, 01 Apr 2026 08:28:09 -0700 (PDT) X-Received: by 2002:a05:7300:5b83:b0:2b7:fdb6:ccf6 with SMTP id 5a478bee46e88-2c9313847eemr1962539eec.14.1775057288483; Wed, 01 Apr 2026 08:28:08 -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 v6 25/37] target/hexagon: Add implicit attributes to sysemu macros Date: Wed, 1 Apr 2026 08:26:45 -0700 Message-Id: <20260401152657.314902-26-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-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=L90QguT8 c=1 sm=1 tr=0 ts=69cd398f cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=QUxWXsmna62PihYCv0QA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: B63MO8l64JYWV_OmuLEztBY1p4k_VTLm X-Proofpoint-GUID: B63MO8l64JYWV_OmuLEztBY1p4k_VTLm X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAxMDE0NCBTYWx0ZWRfXw4kjvbcdEUjx TVtVxS5QH6c778AZbIGPmCnMsS0hoZSgqgVypm+Cf6IjGeCoSW08mcfuTxfV+DUeddB1+QP9LEL 59FLxQvrxVzYaaDgXtR60s9n6J0siOEw4DXUaCL1QRVPN7vtVBIkk96xkiEd1B7Y2SS8ZOzqFRO duslJ05dzUnuR2zcl2OvCTWXUTUjWRNMrrFnGyFegk9Hei7OtnqlZMLq4n4YywleTVbQWhjwdyJ MxcPVrUHmt1I/lwNNdurlxfgJKRnjY6QZU6r87nLXhLwClgfHQbAHJzErMhVODagdVeBEpPzrkn BOm36JXLpZZies92B5SGNUFVQdsn8SjCDlfbuTiJeOsE9oCP3TvZG8a+w6LsLp575iFtniUoSmZ wVnz9bF93hqkVaaTVKranAdYo6/ikIlWEWsG97T6FdEuuR70Vyv1cxrShYDO2KPqyG6DB1XOBnO Bo3h6/04LyspstTjeiA== 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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 suspectscore=0 phishscore=0 clxscore=1015 priorityscore=1501 spamscore=0 lowpriorityscore=0 impostorscore=0 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010144 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057324093154100 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 3ba1a4523f1..9986f47114e 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 Wed Apr 1 20:45:44 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=1775057380; cv=none; d=zohomail.com; s=zohoarc; b=SgztKYgxzwH+c2Fc9TGk1oVLFWYHP50XmFU7q9mF4MGulIg/WhGJeDI5mmEEbYn9Xhm+EMicSQ4x6gT10d31Jkto1Ni5dT3ma1YvqFm0fY1IaS4y2njbkTh1Y7ag8jji142exw/u+cxwSeXYVKhzFFO76fvNsBIykS0p7zdLiM0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057380; 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=IpIlXD6OxKm9Uq2zUinGg1+vbyAwWR0QFkB0Sr08i9U=; b=ak4gBMndFAxQcYeE7hvB8/GQZiXIJ+y3RH3r8iGKE+tx0/gndGaUWTscYaLBSs/Jzl93gNuj1/1RG/+Y4hTbo1a3L+rCCiD8flyg0wPbm4v47wl8Y04OewJFbzWbpam3sP9HpW4QN2XS5XTymgAlLf0b2IqTevbZnglZsyjrQhM= 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 1775057380794447.21353806739126; Wed, 1 Apr 2026 08:29:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xVf-0003Vl-PJ; Wed, 01 Apr 2026 11:29:35 -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 1w7xV6-0001xc-3T for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:29:00 -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 1w7xV3-0008Hn-Pe for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28: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 631E7mYM3174322 for ; Wed, 1 Apr 2026 15:28: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 4d90gbhpd1-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:28:54 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2c72849f648so9363711eec.0 for ; Wed, 01 Apr 2026 08:28:54 -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-2ca78df3b84sm38491eec.5.2026.04.01.08.28.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:28:08 -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= IpIlXD6OxKm9Uq2zUinGg1+vbyAwWR0QFkB0Sr08i9U=; b=h1dplIUkbpNbtVy6 UD3Zj9paAJit4CHhd4I6sapZHASmo2AYyVdRFjUys2Ak7K//bYxoYoGzuhXaeyvi AB7jrueV4VUtCHT4BUMdzJRJgdd34pqJuPgqSq1yKcSCcZKuJzUaXPn8s/TBcwuQ AF2Z0nj2/LSk67u7o8DsADSauSxCZYf8TIqv+lJWSosMY3VdU5YYxJnXivcuoxuC +miRE+cTvBNhFkmu+OP8CP8L06Mvpg571NJClR/5AvkhdenCa/XnoS2cUH0ZQ8MU OuihFKodZk6urdA4/f1AxePtUk+uyBl2VNFY7Kq+pycPsfst7uxhOgGOWo1JWTYq e77D2w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057290; x=1775662090; 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=IpIlXD6OxKm9Uq2zUinGg1+vbyAwWR0QFkB0Sr08i9U=; b=Jn38wb2YUnAJocI548oGeFOpGTqhtrVpjj2vNwrF8XXvtRXZu3YEN6KAHvpYB9D6QR a8L+VljHg8a216Osjv79n4w7/YDNE7ZAubuL8sEQBxxcZ2SrzDLYb1UmQnb++lTMWrCo CR9+sGw9RJSWxhNxri2pSdmWxVgEnAlSXbYw8FUTWpA+6jbv0i8AodHUf58ue9fropYR wHr5m1YkYBFa9UgFICFm/A+fVKCbPc0OBmPFjVKgayitMe6SPr12KvWlOax1cR6FEgEt UpPizgIH/yev7KxyIonjNkBaHn/LfQh07vaW+92ptaMh4ivmbgDm/ainIbggFHcU0Pkm GErA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057290; x=1775662090; 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=IpIlXD6OxKm9Uq2zUinGg1+vbyAwWR0QFkB0Sr08i9U=; b=ejHrDHx4RyX5FnSW0dnhzoRyc2FYgonBhYeUnzUDTa3mJXjAJCJkE4Q9kPa21yzPs8 k/kaMaps5u3qcnaKBbxcOEwg2WCTxcMkuhI5hQ8LGKgeBRSbrV2Y3qIuqJpC+mkGzOYU xMe8O4RRvffLf8Jt8GqgrPKwXkMBpFLcoNLuKBcRMhslPrMS9nx0+6ezPID/3wBaOjtn pWAh9UT/Cqy6b41Q00Uxadmoe0W+fJm5pryHcu+tVscEHPdyGYylMgU7jrCjo1VWqmvV A7pgNqVzPqzHXymL3n2tasr8ay2ps/VZ/sShjaeliOgmiBn10DSSTuN4L2zljeb+CgQA EgHQ== X-Gm-Message-State: AOJu0YwIjBCeSuxZnP9julHbBGCi5GcQz0bXKPF9H8W0gVnZ2P2A2Jnd EptMAnJ+FoH3+2ayFrHV9KYkakErUnInWSGKxHmoZloMafvW/bAhVtS6aUA55XoV4080Lfas9nK wvAfPh7CUZQfqnPKLpW66I/mxAaus5r9lzpYpu71+PU3KJFpdV+q8ZbOnVwCGh2phpQ== X-Gm-Gg: ATEYQzyr488xYKWQvkRVmgWZCnHumXdNoCEGUFSLjB5zvXioqkhm6ltRdfb6ZCRMmBd 6mWIRrZ6B5TT7gkylxrbwxzPPCi3ZLJbwqaMJYabj8dt7p8mKu64b1w8stgXDgCCgsQq/uMqovv B2x5acSGvC2cJR7mYaGDke1KErlkE+0b9qSM8lw+L62Chn0W2yHbyiJl0PBloX+PrxvEWEx2TkX uz7R5w8EFpyA64+N+hzxT43GDEVBITOQxMBNWb7pNWiK0qDeIvnFILuv/zLTyXME/lpdv2H66ZS H0T7cf84Qn0O1n8w62IRiAT2mbIUuPXkJdVZ9ELxiOlKYEgAPr5uQanCva37sV7xU1vZpm7fvgD X7kPsNyc9vrrfyWn2wWsnhuXTvCGUP+opPXH0e/RRr1RWrdMP3+tyMilTtXwrh4yqnPq2jA== X-Received: by 2002:a05:7300:fb8e:b0:2c7:11f2:d072 with SMTP id 5a478bee46e88-2c9323b8c8cmr2537947eec.16.1775057289835; Wed, 01 Apr 2026 08:28:09 -0700 (PDT) X-Received: by 2002:a05:7300:fb8e:b0:2c7:11f2:d072 with SMTP id 5a478bee46e88-2c9323b8c8cmr2537927eec.16.1775057289372; Wed, 01 Apr 2026 08:28:09 -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 v6 26/37] target/hexagon: Add TCG overrides for int handler insts Date: Wed, 1 Apr 2026 08:26:46 -0700 Message-Id: <20260401152657.314902-27-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-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: AW1haW4tMjYwNDAxMDE0NCBTYWx0ZWRfX72S6MQo/4vbz RaTQ8hHnrw1k4NtOUCCOe3DMkKqMfqLGBPQqPb2FhsiH3MrnITN+gleUL7yB+Twv5R+pPe3HLwH hcwszkaV9gcunJmoE9qq+xuQ6zfb6CFkXZMTqI69Z4pwdtRT0hZMVbhvXCPTYKJZDXHbhz67Q78 eU+UwiqHgQn6oDw6+NjI/thN5a/GaTSuKbzrJX1dMoqlezI34xdo6erQw/YRGuUlKZO3I2Ahblm bI8BNNqmN2mIQiViutNp1axwjBT1EJl64PzzJdygu0KJsPBtvZJFK0+EYkoEA7VZ/VHT4d5X01i 43pgjGlHN7ALsTzkiBZTsr+MdiYoLSY82a8PWAPBfJ3zyUpeqMSN30VXj9IDFQJ3G5odWkr5biA BKfTBFPuz1H5Sueva396Sqq/u01GPAqo6/BK0wf42m6YDBAM8mdpWJwn+tqQ82vvbSkV3iD4LFg IGmOEeAu5CLQQ8oc7AQ== X-Authority-Analysis: v=2.4 cv=QJJlhwLL c=1 sm=1 tr=0 ts=69cd39b7 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=ncxFUDX8U6Z2rYVbhVQA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: _SLViY58_0czVrAgzu58ePQElksmhlBC X-Proofpoint-ORIG-GUID: _SLViY58_0czVrAgzu58ePQElksmhlBC 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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 impostorscore=0 clxscore=1015 bulkscore=0 priorityscore=1501 phishscore=0 suspectscore=0 lowpriorityscore=0 adultscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010144 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057382762158500 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 04549831ea5..cc72ca86db8 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 ed43258cd91..ee282e66e86 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1389,6 +1389,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 Wed Apr 1 20:45:44 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=1775057393; cv=none; d=zohomail.com; s=zohoarc; b=d+EKhJSdSHLHhSMfd674bbRr6/No2N6fRucVxHW5JxP01dC19r6CqLsSbU9CTO7lpbzgmyxvqArntRHMu9k0LVk2akc2dvtscndceNk0xJhuaMAAVWFX65ftZPYQP1tNCNDvg5eLTpwjH1UvpNelkGJ9hwbrF3g8nhKlY+mL1rE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057393; 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=pKqI6/6w8auvuZzpUaRDsKPpNshETe3zqMoFX1J9MWU=; b=A6LdqZpQMx47tGuSCwLdh7LB1JWBgROiJpVxTTlQFjxEO1bQ1qmOZ/WpKS5SmMUnDvjuxRxgqFwpwcP7KYkA3NZvfI+wx/2zE6VNos4gDj082xHM5et/drSSNi4rAOL/TUk13UJp8Jx96hATNeVIqMJm7hD9pPCYa9jggdabIOw= 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 1775057393657660.7067196589628; Wed, 1 Apr 2026 08:29:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xUl-00014J-45; Wed, 01 Apr 2026 11:28:39 -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 1w7xUU-0000q6-Kt for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:23 -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 1w7xUT-00086Q-5d for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:22 -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 631CTJVj1285924 for ; Wed, 1 Apr 2026 15:28:20 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 4d8xm3t2wu-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:28:17 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-2bdf6fe90a9so6985492eec.1 for ; Wed, 01 Apr 2026 08:28:14 -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-2ca78df3b84sm38491eec.5.2026.04.01.08.28.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:28:09 -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= pKqI6/6w8auvuZzpUaRDsKPpNshETe3zqMoFX1J9MWU=; b=OMFngF1WG8M/HoQF DV6RntR6du2nfKo+bkerk9t1WJh2VZqt5qnoIryGIy7GyvCTG5a3yx7wLI5NciyA nQ32dCfY403suTa/4UQclaUqr0N8GXo22A5TZv4/+TF6asErgAtrTThdx71b+mFL Jcvhx61c/MqjUiZTpaP5/rcbt2gQtTwklsEOAU90prDMSIJOY6ydLhjj38Qxkzol RKJe4pqMac0wlGBvfc2rxaFhQ8dGTJVoWsWLsEMx5jo57yWLejx3Qin8hR/Ec8b9 SGeJAIFOqYLMBLILrLwXTX+It/zSret6p3RV3Ocsn6oRhI0gjRZIGLqXUtyYv5OQ tKGuow== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057291; x=1775662091; 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=pKqI6/6w8auvuZzpUaRDsKPpNshETe3zqMoFX1J9MWU=; b=Ttaqy1XtzJJBtqoEaTzK46mBYHzSUmZ4zd9ucBXRALCoIfVQ5n5SAP+DS/vgXBPMrh /nZ55LSCx2Jx48jNAsVS/WkAeDu+C9VIcHFVdLrjOviv5tRiAlH6qDoexuIRtbsewtZI EwCSJ/fAofk6ETAq9J8M/ueqniYJ5NUpaOtiVH7IN1ryEaBDvRWHRzBnLnzDq0V5A4Up daY27ZI/kHa5sQb55kNa9M7+31Yz5QSuzI6fOefuj1OS6+GQlZQPSVn4TTKb1zQf6C4y Gy2fz6iOO8ZlCSRt+UzoQULAPQLb3m0s2B4ZXQILXmAmeGRSu1eWmEaR9PiSD8HOgcdB 6GIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057291; x=1775662091; 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=pKqI6/6w8auvuZzpUaRDsKPpNshETe3zqMoFX1J9MWU=; b=gAWrf5LWsofHErTUXiunluTFfFo2RY4fm87FysoY+eukrtDuT3Mq7WvuLIQteLZ8gC dHyWugaIeMuJzgim8l9TM8nda0S/yIQbi9RIgYnuU6ehcSvO74Axq3usebpbfazyk6G3 02GjmtzBMQiM+c0o4O6EzygFV8upIA721HKBPVjau6OAhN9XRuV+qmuss+YH+AMMmvoS 7phXDIKgf6QBHmkCNDf53ekXR2E87TC1GjMJETCd57eX9sYZSOzIjdD2J/7HyZscsYii K/PLh9ylg2y9kQr+y6/SbbNrVdHpJciF0upSTO6X9aw+GyBtwKSRBT5snNNRUFLGE0Vf grlw== X-Gm-Message-State: AOJu0Ywi1azCHTzw4HwdtOUQsuSNW7F9zar7VTQEoLXkYCzdmq3vh70s IqG/7y7Umw94YMu5vZRJjFyLnqYqgb6LsmI3DYKil3s5Cw0dB+FAE6CCqcQYUwPAIsgrqmztlK0 tsrLilmG0vobZajc86/mgtP5m14vcKWMw2lwpzzH8MCAboyvtAN6up7x+nCSgtSiFHA== X-Gm-Gg: ATEYQzw1/CjJbbhALaz8CR3X10uS3LdhHzMkrt5oQZ7mx1gxr0qa2gK8ZU31SJqIf23 3e5tKnHeAwDzYlFeqx3PoEJPxLh+7F3YwMkWvPmYLzfyrOOSnR1bmA06bAE5PXna5S5A5KTJI6+ x+e8RB+S2lkWi9TqwSMfCYwZASR/FLLecCWvKUZYqtNSL8Kj/os0s8hPqSZkuItbSBYWqPgf1As rbs+KQVsJfKD3q23o3ilVG/nXhLydmQGXvo0UgHJsESZmC50EKTCl8Wb0tqxmSNrQuCzXBWKn+m 2VBkLixssbMYmHglkSJKpRezVczd6CqDFM5Qra7r/nSowsvtCpmXUwxEggbkrLyzoVPgytnTtTa w1Ytt6W6fZiT1wyVg2/PBx3lw/p+SzVhuD9LzfyM/h/LQuVXvAcCbDtKnU6C9hAXUlC+0XA== X-Received: by 2002:a05:7301:fa0d:b0:2c4:a862:2372 with SMTP id 5a478bee46e88-2c931165e5fmr2058705eec.9.1775057290661; Wed, 01 Apr 2026 08:28:10 -0700 (PDT) X-Received: by 2002:a05:7301:fa0d:b0:2c4:a862:2372 with SMTP id 5a478bee46e88-2c931165e5fmr2058676eec.9.1775057290137; Wed, 01 Apr 2026 08:28:10 -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 v6 27/37] target/hexagon: Add TCG overrides for thread ctl Date: Wed, 1 Apr 2026 08:26:47 -0700 Message-Id: <20260401152657.314902-28-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-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=L90QguT8 c=1 sm=1 tr=0 ts=69cd3992 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=t9Y8JitlK4h6-XB8aEcA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: 8FnppmVfI74T_ljyO2pb0m6xGhR1nO3O X-Proofpoint-GUID: 8FnppmVfI74T_ljyO2pb0m6xGhR1nO3O X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAxMDE0NCBTYWx0ZWRfXz60awt4tObeC abVOHPANy6myqV9+/UDXEiovPW2TuUAYgKSQWbjvjzEl98BsJybTGMH6kbYCNzNXgEYHvL1tPwA kukoSCqVB1uNqHx0YAkJw7UIVcX90TozGnwIXYuEU98oUy/2joySw9Lj1Pn6sEAhOTlINQuUZlO 6ph4GBpah96tm60S02tF8q68X+tEQkRDjWYyuU3994DpAsKigjK6VRrL5jNrEjHMk3+McKMAbEc 2T/FpxNYAzz1vRMYL/XtPxQQjdojBat7OjBM4jqB7prqUOF085y6K14safBYqsAOkWb5Kx41hIu MKrhGQLYh+3F54PWu+sr2Uh0FrG8XwYAF83NABLGlWWQ8K8lHRljznIi5nmRXQQinaXogeilIFW HYO86QGiqlwzj8NMD0vkXyK6vR4S3V4rwx/mwedRRWIHP2MF6CaysZPAzcMAEWPLP8/17T6NDFa PcxVReNmhdMjNoRF+pA== 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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 suspectscore=0 phishscore=0 clxscore=1015 priorityscore=1501 spamscore=0 lowpriorityscore=0 impostorscore=0 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010144 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057394760158500 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 cc72ca86db8..739e95ea60b 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 ee282e66e86..da00dfd65c3 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1419,6 +1419,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 Wed Apr 1 20:45:44 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=1775057683; cv=none; d=zohomail.com; s=zohoarc; b=PQOnTnegQV6j2STbdJC4mZ77nGIKYTMs5zcyjPLdwY3EjysqHPuM0wbnA1tQBKA7N6t+pm/61N3eZUgzYrpA4eGL1pVkjwLxrZVcMPjfeYphe4Fqt1P3BBD8kcc1OMoLeMWLuZvPsv/g9sj0hr4333h6PwBgMlK7koZnoo+qGNQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057683; 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=S5Qs29uBL98ZfxcDzoKCdBQL3DPuT7L6Gb+GAENCPVA=; b=Lwuf2ZqlhLE1w7NSQrQiArMwrekTHAgnZJcdrR/7RO5WQINwvCS+DejoDN3JYHiuY9bvXvFKyTF2QKXb4d3stDZsEpbvsAUOp4Mq4DgO15oia04aTfYAlJxCHV1AbC/hZA0iCqN9j8dPUvjHSESfnVrOHhGEZP36wNP8YdK1Ge8= 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 1775057683415447.62596470196206; Wed, 1 Apr 2026 08:34:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xUm-00015f-Q9; Wed, 01 Apr 2026 11:28:40 -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 1w7xUl-00014S-8A for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28: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 1w7xUj-00088G-0V for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:38 -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 631FRJ8T1579382 for ; Wed, 1 Apr 2026 15:28:25 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d8mr2vbmh-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:28:21 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2b81ff82e3cso695273eec.0 for ; Wed, 01 Apr 2026 08:28:17 -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-2ca78df3b84sm38491eec.5.2026.04.01.08.28.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:28:10 -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= S5Qs29uBL98ZfxcDzoKCdBQL3DPuT7L6Gb+GAENCPVA=; b=j5/B9Si5bDNyPlgW G+ckP2zoAm2c4qsXJUSCpXqbbPXd2qPMUomjE/t9lqPh/qihV1SqKnlgeNXI3DyQ 5FgK/nYtZPLX3nm/PCVM2hODLu0JUhvm8+AH1jDsTiVhG0r/ChQYG9dAC7LLE5yi 8kxVz4ErG//6dDKFA9uSxfAaemyFOye0vdEfzpueMx7a7vPOq1YOw0GD3794h9U0 VE8siOK+VAA2SZJrkrAeMMNII1adeYhpuPVgRGI5W7snTkkjt0cVi1FfZD5pqtGQ GSSZFuEx8gYrchghfjyW79SEz9cjeDRPLy0whvKCvXA01jdR94z4lxnJjsrHO7SZ euIWUg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057291; x=1775662091; 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=S5Qs29uBL98ZfxcDzoKCdBQL3DPuT7L6Gb+GAENCPVA=; b=MwFRc95M1pmCN/931S3HmLmJWe8gG+T3ZV9eZtEfkLuoBSom5JsGb+zeGZBBiNWj6P uJ/K39tp2HPlMOmDbWx4DpqWmNtFtHIMtkwrZ3X5seJmg9PECC1h0aE0mBZhw87Jr8Vj d2n4ekIArSyqkan7X9lkxkPVczoBlGhoVwXkfBp5+uQDmNdSnazMSfAIkmQcEleVkoax o577ETvDXHhIU4apVzvnpRFntDwBNI5ADnIPUkFaAe8xS8G7GVrPr5s/6OsvqebwQ7q3 pzmsV7bIl+o9YlXLUnkLfk0WqpWb8pxoqqb7j8U8705VrbU3y0njKtlXzHWw9vDCbouu psgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057291; x=1775662091; 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=S5Qs29uBL98ZfxcDzoKCdBQL3DPuT7L6Gb+GAENCPVA=; b=VwTz9htIfYPbJpY0z4RCCnxSRxqvqSH0mfW5WRXG8l0ZcNxNs4QhwXQyi14bd/KT8Y bKgtkiHAyjQ68nKVVbha08UJVSGRYcAzuvT2DSpu4s3D2eTTPH0paXd4M3hL0soAe4+D 3GWoqz+BgQeqAkO6t1+70KV2vXCUbuX26x005OqCb/+Fc4Vyb4uYc0s0tK3Fu08h42rG G9L//uC6sc77LQ3AP8UnwE0S1K+7wdTJQqHD04/Yn1fRFutfRK2+kMTuKRRH0pTKzeJy Iv2Hgk+lPScbsnsaxsTNr1DHJjWfFmFA0iCpxUoxCGr7YchSxVv9yZQZBPi/HeJpDFfQ OpDg== X-Gm-Message-State: AOJu0Yw3RSLMECjkVaGCy5DZ0iszOA7cmUciEKqiaXfyZm/MLElwbClF 4o81Y/PXEPlFkjzUVe8uS8i2WpeII+a6r+zzwr7aJa0bsgL2L3xFitIKE8a1y/fZpumpgAnN4v/ JDNUEU25R3THfQZ822VpRHwyi3svXfs27msi+rRUIybpAGYcD2cw6AiTZplf2TQmssA== X-Gm-Gg: ATEYQzxOzT9OaUJ8PAICWcWJLEX2ydy8Kpn3FLCX5rjagOX2CFJQydbW2G22XxiSTaP TFot07qyv0XB1kA6xUvdLrEwu7uqDP8Fd0rp/5rhWMwg1GNf5rpBSXJS3rjv8QsrzibVzGfxtiB ruHy3CZ6+qJpNJ1sebMjWaQmjmFNUsNqFILZFNG4ScPnU/hRr1JbckkE+ILvPsDJZAOzUp1XNdl EH5XJYw2b9/XHT11mSM2CVLdPVG0mRcUBHrpwZjEG5T/QrEIE5HPUaKjs7xMsJDZFgdGO5NAuoy Ri4R1fqH7R3H2ZoliV3kWA0p4CqyTo2d4Mnm7ihPllESanKBGzbAb1zr5/rwiH//l0IaHFwVsru 0fN1b4K5aPr1t49gv0S1l8rFb3y9FzHi8VqeNd+rA2kb7vwllRj2TaRJSTnByVC80K0NjJw== X-Received: by 2002:a05:7300:a887:b0:2c4:ee64:13c3 with SMTP id 5a478bee46e88-2c7bcf7060amr3448718eec.17.1775057291444; Wed, 01 Apr 2026 08:28:11 -0700 (PDT) X-Received: by 2002:a05:7300:a887:b0:2c4:ee64:13c3 with SMTP id 5a478bee46e88-2c7bcf7060amr3448705eec.17.1775057290932; Wed, 01 Apr 2026 08:28:10 -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 v6 28/37] target/hexagon: Add TCG overrides for rte, nmi Date: Wed, 1 Apr 2026 08:26:48 -0700 Message-Id: <20260401152657.314902-29-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-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=B+O0EetM c=1 sm=1 tr=0 ts=69cd3995 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=zRxYJKy5J8nCns2dKEsA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: wx_q-uh1DInPppGOidqWNN5Xsmw2JFZE X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAxMDE0NCBTYWx0ZWRfX2uOqtLdqMy14 kivNLhNIlH27Iu59HsWMPQP5sk8/iCztga2XsYP0Phca1C0R0WKNxv2hRD9BbZCViO7PBXIHxGv iqJ/gMi4XD7W8sTCSl57DrwfdPZ9BhLrMo/GpkfakwlzcpKcX82id1EE6pFpYG3/9xG3ndXQNiy XvjT0gaN6Byuw50FoCt2/zkV3iwRcCSaH3lhWnkcitiu9tRl3Nw+Y7Q5BrPriIoum/q6r+kEehY JqxbfPtbkYqBtBvsYo1xe7nzLa1u6bd85tZEfceX54p+cj1B1gmP9k2FH+vlHHOzgV2nVD9WRVc qIY62HayUbpjQitdUzy9p6waqlqfvueE5+yVHN+1lUBmRDODBhtD4/5o07NeGpnfVyDU52ggOKT AK87ljizAtSvPWnwPKsozvnALLDyymYJQU0oCaMzlW/pHq+zFsvppTRPHYFJm4aPYgqrgTti81r 98TW4XUeOoCdtyOEZlA== X-Proofpoint-GUID: wx_q-uh1DInPppGOidqWNN5Xsmw2JFZE 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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 adultscore=0 malwarescore=0 lowpriorityscore=0 spamscore=0 clxscore=1015 suspectscore=0 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010144 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057685854154100 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 739e95ea60b..04406db6a4b 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 da00dfd65c3..87da1fe430c 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1479,6 +1479,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 Wed Apr 1 20:45:44 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=1775057615; cv=none; d=zohomail.com; s=zohoarc; b=Pyk8Iss0zBWUKQUcnAxLy2CtafSTnWWzgQZCrL7+suJZW1HtZAipBVbrqY5ArVjLM0e7sDpro0PLcOTn7Hhczxb+Es4WMKD5iUTdLpY7fWMuvUGQQMQODAfsfflZKeB0m78B3MlLO2SenRbaaqSGwxqpGGs5g7vi4jARqcwQE2I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057615; 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=mtNyEh6UpJJpEA1D8CDrOFR0Os+BGnXWQ1ACLDS8l5c=; b=Xbl/0wR6v4NQMDZFC2KoQY78YWeWS7VK3P49RJZJYE0Nyo52UU1Q5Mnuqvl7dIMZ5dRtBZMOFwIMHxfl34YhAQURNuLjbDkmNLay6mSHE3ponwzZnlsh6LdfYW8gWXAR5x6fEgPDmHj3kallyIsOSjKrX6Rob492FeXo9iOBaCE= 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 1775057615594826.8783142811174; Wed, 1 Apr 2026 08:33:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xUj-00013Q-T5; Wed, 01 Apr 2026 11:28:37 -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 1w7xUg-000123-U0 for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:35 -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 1w7xUe-000875-VG for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28: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 631FQdjl1579457 for ; Wed, 1 Apr 2026 15:28:21 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 4d8mr2vbmy-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:28:19 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-2bdf75bc88fso6124418eec.0 for ; Wed, 01 Apr 2026 08:28:18 -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-2ca78df3b84sm38491eec.5.2026.04.01.08.28.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:28:11 -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= mtNyEh6UpJJpEA1D8CDrOFR0Os+BGnXWQ1ACLDS8l5c=; b=YLRWcFkRwC+ceRs9 v+YuZkbQOPdGdiZb3p5nH67m2rMIfdz/eb+HicBbi9HocwYeGS9Y8o3FwHfAMQBE MWvV7BLcxdRG4NF8oojRdwzbqmhoQO93H97IOS7Q6FSRkmvDgho4QcsyQL8HFn4n BMChwzRfT4lIGnOagPrnjc00YJmj/eCQoKC/w4RbiQXiEh94F3WNcvK9nK4t1yXy DRF9GcOYa9S8a1KA/4gObCo6vk7zKXaZTOeoBDSSIwfuWmfkwgNbvDMz8bmXltHh qAZ6wKlbn1lGl3dGN+rgZf7Gzvn7umhTzXBPlQOrfhXSJoA7zBP5PxKc3lSSBqrW cHeD0w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057292; x=1775662092; 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=mtNyEh6UpJJpEA1D8CDrOFR0Os+BGnXWQ1ACLDS8l5c=; b=jfNBKRqISOpkURm9CNC3E5O1+Ijxnygr5ixfxGYDix8gwNOz8dynSfOfPv8Ikv5C8T SU6yAXwl13hOiEo14gJXogVDI3vsRqQ0kx0VTYTNQ7aOcZ3ECml/K3EEeWqizzfsL3f8 9BukO0V5cqjlyUoK99u0t/NCPeZSfLFfnWBVFUIA6ED/7Mo207DX+8D93DlRrl7Rp664 lAqmTrj+04gR+C+T0qZWCYMChe5RaDQTr8yXQvUUxmrX0JyXPFrDOcvU4ZXpXbnkJyaI 5j4T6nnB6LsXNQ9K9n28sHmORCqjabiZYnKp5X1zgEn1TLvg9bTVkD82lx+ylVp2coiK rjVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057292; x=1775662092; 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=mtNyEh6UpJJpEA1D8CDrOFR0Os+BGnXWQ1ACLDS8l5c=; b=XRgpR9Gb8wOC2A0thO+KpgvKhs93J29AvMjgHClifYjY3Tzrpz2Hyn4ySC+TzwwfOE SMLNnrTSJvGF4oLh+CvH+Bc3Gv4OCds1ANoUsKbk5aFkIizFyKTxXanIbLVReue+vQrQ dAYOiSm45VbADg2VJ+E2I/yo63FhZ800V3DavE24aN+pwnQNUdKalwUIISVa+G9thbRu 6cSHNb3V7depa6Np4IwVFNWQgB6/BhXhKkdwmQ89U9VJ5Zre0fgnMkvNsRTb6d+TjktD rnb32WE8QeOjqJw5ZX1r2iqxmkElzFao3tXDbzEi4E6L33pj6hhUdjVWKqlK+yPIBadF uBuA== X-Gm-Message-State: AOJu0YxmZUORZkqHrdXnPUBhT7/M8+7vXqmhYzuF2t3gv/lWuVLpycx4 aoQlq6TdvhsAGuLQqJ0xxFpVYTxkwLUdOVTlqIwGcGA+ZMGWIsZxDu/aumUKZKhYUGz+hgyoB56 pA7+9oaq70CorSUmQm92cs+fHlK7v2JbBfJ6WUkg8VV3ZT34GtXw62ThkmWfReezSNA== X-Gm-Gg: ATEYQzx3j5rXJhN3hkbM/fLvscM08ajcg8mNI7inAPB4Eu84NOH1AGmb6A9azocCoxM C4HBDskDbohn6rbh0+ItwR2HRUZIC/xqK9V4IDzO/sAbBOfRZoS3jED9JtU1FXjJHaNNls/rRek 2kZ2Q4re+mxr4cIvOfmFXkXt9nxg6ZZpku5YAJc/sPizMo1y8qG3o80BOdTaiHnmXoKpCs1TiBG PrL7rmiTKlwrODblKZnBdDJ8uYavLK/hwnx6b1z7CuiiVCPJBxQO+1BY93GwFLvmAQvE/JpcllW B6o30EVYShvO3gXPlPuoXwsCysuYuyQKtM6gSSsA30OFZ9cA1oXEiG1/jVAOrvcUjuuAAHsQA1K qASxiEPjMVP0CRff4fk7z82Ju7XCSaQ71PJbv2Ds7UIL/FS9MzGsouKwR0fp2QNMOaDqoaA== X-Received: by 2002:a05:7301:fa0d:b0:2c1:85a:d25d with SMTP id 5a478bee46e88-2c930e6bc1emr2065783eec.1.1775057292371; Wed, 01 Apr 2026 08:28:12 -0700 (PDT) X-Received: by 2002:a05:7301:fa0d:b0:2c1:85a:d25d with SMTP id 5a478bee46e88-2c930e6bc1emr2065753eec.1.1775057291799; Wed, 01 Apr 2026 08:28:11 -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 v6 29/37] target/hexagon: Add sreg_{read,write} helpers Date: Wed, 1 Apr 2026 08:26:49 -0700 Message-Id: <20260401152657.314902-30-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-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=B+O0EetM c=1 sm=1 tr=0 ts=69cd3994 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=rqZXtLhFGwB6yMrbUaoA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: UyHophEKb0n9Vpqo59x2VmoHSeuPAIfN X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAxMDE0NCBTYWx0ZWRfX5ZxbPYqjBipV sr91LCRQzn81bs+iukMXEDriQ8VzDjTqZmVuNlfTcnSVsF6TXFcU6GGLahuM34yhs4O789pAjcR aSLSeut7Y4+vkhWYhMI1bPlurA3wrPL/mAqZNy/4BUvLmKlG3zigIf4TZ5omIR9WayzjUtiKs2Q xCDZghK2VIwDSIH+V038ThEcv4pcO71yy5cr7fyyTUstrXpqa6zAYFedZpLBsHkE2Bjn+qkRyaW 5D4BV8oC66cZTWrDiF9LrqAM6perB8tSKeE93ZjFBe64zvNNbz06esMirU15/ff0X020zUY1VNn r9WQjduTb2W9nfZrgdNuuGkQUUOtjj4n5DxywcqqSD+9yzCPTZ+mVyrWnmhLlxRNfgnFTcUZLKa tstzfh5n0Sbbx4NhkDqnLzJcNc8RRE4zRcCa7m8qrR5AV36LD0I/lGdjZVWh2ghHfWng+0tClwY pg9LkuxkuWldZz0ETdQ== X-Proofpoint-GUID: UyHophEKb0n9Vpqo59x2VmoHSeuPAIfN 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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 adultscore=0 malwarescore=0 lowpriorityscore=0 spamscore=0 clxscore=1015 suspectscore=0 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010144 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057616900154100 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 | 354 ++++++++++++++++++++++++++++++++++++ target/hexagon/op_helper.c | 33 +++- 3 files changed, 384 insertions(+), 4 deletions(-) create mode 100644 target/hexagon/cpu_helper.c diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index c79b19d059e..79ee4264c70 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..a2b486f4bb5 --- /dev/null +++ b/target/hexagon/cpu_helper.c @@ -0,0 +1,354 @@ +/* + * 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 "hw/hexagon/hexagon_globalreg.h" +#include "hex_interrupts.h" +#include "hex_mmu.h" +#include "system/runstate.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 val) +{ + g_assert_not_reached(); +} + +void hexagon_set_sys_pcycle_count_low(CPUHexagonState *env, uint32_t val) +{ + g_assert_not_reached(); +} + +void hexagon_set_sys_pcycle_count(CPUHexagonState *env, uint64_t val) +{ + g_assert_not_reached(); +} + +static void hexagon_resume_thread(CPUHexagonState *env) +{ + CPUState *cs =3D env_cpu(env); + clear_wait_mode(env); + /* + * The wait instruction keeps the PC pointing to itself + * so that it has an opportunity to check for interrupts. + * + * When we come out of wait mode, adjust the PC to the + * next executable instruction. + */ + env->gpr[HEX_REG_PC] =3D env->wait_next_pc; + cs =3D env_cpu(env); + ASSERT_DIRECT_TO_GUEST_UNSET(env, cs->exception_index); + cs->halted =3D false; + cs->exception_index =3D HEX_EVENT_NONE; + qemu_cpu_kick(cs); +} + +void hexagon_resume_threads(CPUHexagonState *current_env, uint32_t mask) +{ + CPUState *cs; + CPUHexagonState *env; + + g_assert(bql_locked()); + CPU_FOREACH(cs) { + env =3D cpu_env(cs); + g_assert(env->threadId < THREADS_MAX); + if ((mask & (0x1 << env->threadId))) { + if (get_exe_mode(env) =3D=3D HEX_EXE_MODE_WAIT) { + hexagon_resume_thread(env); + } + } + } +} + +void hexagon_modify_ssr(CPUHexagonState *env, uint32_t new, uint32_t old) +{ + bool old_EX, old_UM, old_GM, old_IE; + bool new_EX, new_UM, new_GM, new_IE; + uint8_t old_asid, new_asid; + + g_assert(bql_locked()); + + old_EX =3D GET_SSR_FIELD(SSR_EX, old); + old_UM =3D GET_SSR_FIELD(SSR_UM, old); + old_GM =3D GET_SSR_FIELD(SSR_GM, old); + old_IE =3D GET_SSR_FIELD(SSR_IE, old); + new_EX =3D GET_SSR_FIELD(SSR_EX, new); + new_UM =3D GET_SSR_FIELD(SSR_UM, new); + new_GM =3D GET_SSR_FIELD(SSR_GM, new); + new_IE =3D GET_SSR_FIELD(SSR_IE, new); + + if ((old_EX !=3D new_EX) || + (old_UM !=3D new_UM) || + (old_GM !=3D new_GM)) { + hex_mmu_mode_change(env); + } + + old_asid =3D GET_SSR_FIELD(SSR_ASID, old); + new_asid =3D GET_SSR_FIELD(SSR_ASID, new); + if (new_asid !=3D old_asid) { + CPUState *cs =3D env_cpu(env); + tlb_flush(cs); + } + + /* See if the interrupts have been enabled or we have exited EX mode */ + if ((new_IE && !old_IE) || + (!new_EX && old_EX)) { + hex_interrupt_update(env); + } +} + +void clear_wait_mode(CPUHexagonState *env) +{ + HexagonCPU *cpu; + uint32_t modectl, thread_wait_mask; + + g_assert(bql_locked()); + + cpu =3D env_archcpu(env); + if (cpu->globalregs) { + modectl =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_MODECTL, + env->threadId); + 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); + } +} + +void hexagon_ssr_set_cause(CPUHexagonState *env, uint32_t cause) +{ + uint32_t old, new; + + g_assert(bql_locked()); + + old =3D env->t_sreg[HEX_SREG_SSR]; + SET_SYSTEM_FIELD(env, HEX_SREG_SSR, SSR_EX, 1); + SET_SYSTEM_FIELD(env, HEX_SREG_SSR, SSR_CAUSE, cause); + new =3D env->t_sreg[HEX_SREG_SSR]; + + hexagon_modify_ssr(env, new, old); +} + + +int get_exe_mode(CPUHexagonState *env) +{ + HexagonCPU *cpu; + uint32_t modectl, thread_enabled_mask, thread_wait_mask; + uint32_t isdbst, debugmode; + bool E_bit, W_bit, D_bit; + + g_assert(bql_locked()); + + cpu =3D env_archcpu(env); + modectl =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_MODECTL, + env->threadId) : 0; + thread_enabled_mask =3D GET_FIELD(MODECTL_E, modectl); + E_bit =3D thread_enabled_mask & (0x1 << env->threadId); + thread_wait_mask =3D GET_FIELD(MODECTL_W, modectl); + W_bit =3D thread_wait_mask & (0x1 << env->threadId); + isdbst =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_ISDBST, + env->threadId) : 0; + debugmode =3D GET_FIELD(ISDBST_DEBUGMODE, isdbst); + D_bit =3D debugmode & (0x1 << env->threadId); + + if (!D_bit && !W_bit && !E_bit) { + return HEX_EXE_MODE_OFF; + } + if (!D_bit && !W_bit && E_bit) { + return HEX_EXE_MODE_RUN; + } + if (!D_bit && W_bit && E_bit) { + return HEX_EXE_MODE_WAIT; + } + if (D_bit && !W_bit && E_bit) { + return HEX_EXE_MODE_DEBUG; + } + g_assert_not_reached(); +} + +static uint32_t set_enable_mask(CPUHexagonState *env) +{ + HexagonCPU *cpu; + uint32_t modectl, thread_enabled_mask; + + g_assert(bql_locked()); + + cpu =3D env_archcpu(env); + if (!cpu->globalregs) { + return 0; + } + modectl =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_MODECTL, + env->threadId); + thread_enabled_mask =3D GET_FIELD(MODECTL_E, modectl); + thread_enabled_mask |=3D 0x1 << env->threadId; + SET_SYSTEM_FIELD(env, HEX_SREG_MODECTL, MODECTL_E, thread_enabled_mask= ); + return thread_enabled_mask; +} + +static uint32_t clear_enable_mask(CPUHexagonState *env) +{ + HexagonCPU *cpu; + uint32_t modectl, thread_enabled_mask; + + g_assert(bql_locked()); + + cpu =3D env_archcpu(env); + if (!cpu->globalregs) { + return 0; + } + modectl =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_MODECTL, + env->threadId); + thread_enabled_mask =3D GET_FIELD(MODECTL_E, modectl); + thread_enabled_mask &=3D ~(0x1 << env->threadId); + SET_SYSTEM_FIELD(env, HEX_SREG_MODECTL, MODECTL_E, thread_enabled_mask= ); + return thread_enabled_mask; +} +static void do_start_thread(CPUState *cs, run_on_cpu_data tbd) +{ + CPUHexagonState *env; + + BQL_LOCK_GUARD(); + + env =3D cpu_env(cs); + + hexagon_cpu_soft_reset(env); + + set_enable_mask(env); + + cs->halted =3D 0; + cs->exception_index =3D HEX_EVENT_NONE; + cpu_resume(cs); +} + +void hexagon_start_threads(CPUHexagonState *current_env, uint32_t mask) +{ + CPUState *cs; + CPU_FOREACH(cs) { + CPUHexagonState *env =3D cpu_env(cs); + if (!(mask & (0x1 << env->threadId))) { + continue; + } + + if (current_env->threadId !=3D env->threadId) { + async_safe_run_on_cpu(cs, do_start_thread, RUN_ON_CPU_NULL); + } + } +} + +/* + * When we have all threads stopped, the return + * value to the shell is register 2 from thread 0. + */ +static uint32_t get_thread0_r2(void) +{ + CPUState *cs; + CPU_FOREACH(cs) { + CPUHexagonState *thread =3D cpu_env(cs); + if (thread->threadId =3D=3D 0) { + return thread->gpr[2]; + } + } + g_assert_not_reached(); +} + +void hexagon_stop_thread(CPUHexagonState *env) +{ + uint32_t thread_enabled_mask; + CPUState *cs; + + BQL_LOCK_GUARD(); + + thread_enabled_mask =3D clear_enable_mask(env); + cs =3D env_cpu(env); + cpu_interrupt(cs, CPU_INTERRUPT_HALT); + if (!thread_enabled_mask) { + /* All threads are stopped, request shutdown */ + qemu_system_shutdown_request_with_code( + SHUTDOWN_CAUSE_GUEST_SHUTDOWN, get_thread0_r2()); + } +} + +static int sys_in_monitor_mode_ssr(uint32_t ssr) +{ + if ((GET_SSR_FIELD(SSR_EX, ssr) !=3D 0) || + ((GET_SSR_FIELD(SSR_EX, ssr) =3D=3D 0) && + (GET_SSR_FIELD(SSR_UM, ssr) =3D=3D 0))) { + return 1; + } + return 0; +} + +static int sys_in_guest_mode_ssr(uint32_t ssr) +{ + if ((GET_SSR_FIELD(SSR_EX, ssr) =3D=3D 0) && + (GET_SSR_FIELD(SSR_UM, ssr) !=3D 0) && + (GET_SSR_FIELD(SSR_GM, ssr) !=3D 0)) { + return 1; + } + return 0; +} + +static int sys_in_user_mode_ssr(uint32_t ssr) +{ + if ((GET_SSR_FIELD(SSR_EX, ssr) =3D=3D 0) && + (GET_SSR_FIELD(SSR_UM, ssr) !=3D 0) && + (GET_SSR_FIELD(SSR_GM, ssr) =3D=3D 0)) { + return 1; + } + return 0; +} + +int get_cpu_mode(CPUHexagonState *env) +{ + uint32_t ssr =3D env->t_sreg[HEX_SREG_SSR]; + + if (sys_in_monitor_mode_ssr(ssr)) { + return HEX_CPU_MODE_MONITOR; + } else if (sys_in_guest_mode_ssr(ssr)) { + return HEX_CPU_MODE_GUEST; + } else if (sys_in_user_mode_ssr(ssr)) { + return HEX_CPU_MODE_USER; + } + return HEX_CPU_MODE_MONITOR; +} diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 87da1fe430c..947988d2456 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -19,6 +19,7 @@ #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" @@ -1451,17 +1452,43 @@ 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) +{ + HexagonCPU *cpu; + + g_assert(bql_locked()); + if (reg < HEX_SREG_GLB_START) { + return env->t_sreg[reg]; + } + 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 Wed Apr 1 20:45:44 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=1775057488; cv=none; d=zohomail.com; s=zohoarc; b=Lie5y6twejYgbSWPwfw6Dlu/bKTBOOvRnxyZa/ZjQid7qk2GKJIQIWCjzsMc8ArBz2XBQX6/cqKg+ZFyEUI7ZgJAjMaSYJ2tDkyEeuZuia9OkKKw2jisI/CMBwu620jUOxvavDGfrbAR3LXmd76IQ+pfFHzvyE9aHNn3at9Xt70= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057488; 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=6ZHy9fjHuUJPuBnGZhpJxEYG+YhC4Fr91TldqdiZEyI=; b=XziuqCRMYCd0guhakYUWT0Ft04GN1/ZcSbKYV712kmXiz8r5CnXU5f8qB4453M8iJLo9xjY2Bl1U+YxjKt0o6dgEDcO4gA9bYtMMdtxVx4SE1cabVXc75Z/eaMeCur6vRi/nbvzVcLLgFCF6DhiL+5JdkCoFxPPdoR+lA2H1lIU= 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 177505748734355.76447147748138; Wed, 1 Apr 2026 08:31:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xV1-0001U8-SO; Wed, 01 Apr 2026 11:28:55 -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 1w7xUq-0001AU-SA for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:44 -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 1w7xUp-00089N-Cs for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:44 -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 631CS29D1285859 for ; Wed, 1 Apr 2026 15:28: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 4d8xm3t2xv-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:28:25 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-2c8ac8e422dso2677494eec.0 for ; Wed, 01 Apr 2026 08:28:17 -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-2ca78df3b84sm38491eec.5.2026.04.01.08.28.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:28:12 -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= 6ZHy9fjHuUJPuBnGZhpJxEYG+YhC4Fr91TldqdiZEyI=; b=VennMWgsUps3A6FF 8IelrgvOcmgEreZiw6pMHj/NWZerGLJ4EhFBObk2U34Xd0wMn83xlDaqLMyCPqFA df0pmvxc0qBupddZa8Pflxi3JXV4sW0Fb6obSFKSPxlBW9jBhdkXCQ+Lxk2Dp0dN C2EFhaAzyotsm9OHmds5oi1vcM//qQ5XwGPx+s0eVKaeH3IFw5o+cGQreshkBlDn /GpxT6JDGcKSYezOh6Px2fZ3yaMLJL3L9L97gRG2ZndwdqDFKn1ek11RyiO4MexK ZytRjQwzwkb5L1YKWdtoZ49sDOBpUP8wtIZ4l6J3kFR7nsg4XIRx054VNGlKvSko KrS2lw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057293; x=1775662093; 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=6ZHy9fjHuUJPuBnGZhpJxEYG+YhC4Fr91TldqdiZEyI=; b=IuQ5HduFQrq8zzwcW2WZUKEmS7MgLB3prxXHKg45gLXdi/gzLH7Sf6aNzezSeIzQXL DYZ+J1YJQl/GDkZJ8gwHYR0vHGKInu7k8y9x5z+/8OQUsa0rz914bflnci7kzPuL4lsu pRgcGwCTB0tVsQay3eEanArqy3Nkq28GVcBk2jazHzU7nxaXGURd4aUkMvxTdsxPjVgQ NKpXISbDeUOoKBDKKEkH9QkHepu1IMcdcv/prWglnb+IfLFf6SLyCzOVu8Kd0UQs7kzR osYdOl2QiZjA5ZKROY0K1n/DOLYVZrn5RMDsKDRJxgQRua63D23T/0uP4W5eRRQDGqcw fcvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057293; x=1775662093; 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=6ZHy9fjHuUJPuBnGZhpJxEYG+YhC4Fr91TldqdiZEyI=; b=bp/kCypPbTUARi19wZeblFcBqV6hi+KOwwziSGutH2ICwwk0V8Fqamo208qcqH3inE bjSHenzXfrnwe8wEiP/g5zlTZEPKDhhGy+K6lx+nmb5/nm8C9MCLOjR+hdwmW5l3NhtQ lD7wFcwhr1ZWaL9wWR4MqWVvn/WmcECz4UAgbCHbLfLLsQLK9pXuztqlFVMnw5OiX0O0 sIZ7rDyYTFeNNYmMx2tobOk/ZZe/Nuhsh04cgaGN9bFS90t9OwQWRdCqsJKTdDB7JiTq uGLLcj2ZKksKu4j5SExdd/eqpX/w267LTX56f1jdvvpkRszObst+42L/oXCXQ9B4OSWu E5DQ== X-Gm-Message-State: AOJu0YyajzY9eCvNfTreHN/pGaZ1hOpnsghO6kanSSWeyv6W0FqudhNc ys+etBJdOpyPPZs178Gi59JHN9UxwDqs5A8qkFEdrjnGJP9q1YWWF9GpNMmae/HBHMDlY8wBHB/ nNRpKJU63b7GQzUTdAe7oocWWvAyc+TH4nWOCNuUm2ENb3erIkr7PWbv23LMSHiykxQ== X-Gm-Gg: ATEYQzxkKqjsfOpp5DGR66F7lHsC+nNzZhhjtLeicLXLKIzYme7rCya0rL7Aa/t3xCQ DNcpdh50tsHhgliHGvssmhVAUJo7lsJr2fORuFWtFQgMmnsCCHoBwHhMtvJwOVS8yaFl5tVW3ex 7iYR+Dwn2ZJuiB5b1Kday8zAi/dvBzLO5AVh1VL3mzIz47rtEMZ7G77vTEqYWoVs9rIYcQTsETd JjTDqVSt7HbnpLpzrky/LFz5Pws+UZ9vKy876DaSTTYp9ZkyK2pPczufsl736FaM61C2snyXGfg W7mDaCK6vr5bbZBiEQxKHtyX4/5zanthU541M61JJROER8ZVOVUaxG6gZ+f+J3RKw4suIhfGXir XZHfiiD/I/jiS9G0SUrI+/hvF9INMvC7JBPyVSZ4xhJUA67sejGJoWYqyz325EKAhjwuCfg== X-Received: by 2002:a05:7300:cb0b:b0:2c5:9b9d:4511 with SMTP id 5a478bee46e88-2c9334b530dmr1994133eec.32.1775057293094; Wed, 01 Apr 2026 08:28:13 -0700 (PDT) X-Received: by 2002:a05:7300:cb0b:b0:2c5:9b9d:4511 with SMTP id 5a478bee46e88-2c9334b530dmr1994118eec.32.1775057292565; Wed, 01 Apr 2026 08:28:12 -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 v6 30/37] target/hexagon: Add representation to count cycles Date: Wed, 1 Apr 2026 08:26:50 -0700 Message-Id: <20260401152657.314902-31-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-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=L90QguT8 c=1 sm=1 tr=0 ts=69cd399d cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=gmA5YO3DfmenxuRff1QA:9 a=tsLLKIjAKpJP5df9:21 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 X-Proofpoint-ORIG-GUID: AcsRK7kjLeHDLDJ3aXp-gNvUJDluj89x X-Proofpoint-GUID: AcsRK7kjLeHDLDJ3aXp-gNvUJDluj89x X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAxMDE0NCBTYWx0ZWRfX/SVlcClNBsOE JpC+Gle+VHv3E4SVKQeBRm0tgHsSR5a9oMQb4q9VOjGFsS74jBibY6gLAk5ZMF3dH///Kmgmrxq EfxVozL2dCT14eUE5MN44AAbLH7Tx3A2INsx6wFuD103Rp3Yt8BqBuml1L36nhLgdfi+4iqBUY8 F4GNq/LWaqERPgOGJtFCD5cRGCkm1be1xwrjB9xQ38tr5Q//mdYNH6Hu/KkWdl8ZdVthDUuq+qQ SeYkwTOev9miD7ymhJdkzxAWQJ4PWhW2qqme8BxjEn4eKA+aHCXLh5+AIc6jj6NMR+TV6iLUdUB afvWUHrJljg1pEBKImcwzrCfpkpHpoG/UwaH0WhKaUtfAT7C8E3gSVOybogsWhz9zH0uhYReZRu Bl+rewluJFPF0y1KpwSTy/PrrPi6bsMcviPWM74HJa1JIC981SqqNe/B57+Sgivws+26r1hTjnN imlDus54IkKSPdgAF/A== 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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 suspectscore=0 phishscore=0 clxscore=1015 priorityscore=1501 spamscore=0 lowpriorityscore=0 impostorscore=0 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010144 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057490611154100 Add t_cycle_count to CPUArchState for tracking processor cycle counts in system emulation. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 1 + 1 file changed, 1 insertion(+) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 3562965c88a..56f89209795 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -109,6 +109,7 @@ typedef struct CPUArchState { =20 /* This alias of CPUState.cpu_index is used by imported sources: */ uint32_t threadId; + uint64_t t_cycle_count; #endif target_ulong new_value_usr; =20 --=20 2.34.1 From nobody Wed Apr 1 20:45:44 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=1775057463; cv=none; d=zohomail.com; s=zohoarc; b=IhRkbP9YUnMAK/Sw1vH3VVP9eak/RZJNo3NEVYAya8bZS0LmmUzu8Pk4jiXJi5WjsrpNxo4lh74g5I04e2ckt6MIkmXUz93pLYbrBdymo6PJdxrpWbWjdn6Xs/oDJKvmZfBWrgFJ8gVY5R44Ndsn7kdPqkHTI3uZNeTfD8iScTE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057463; 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=3ScWNmMreopyHwVdsYRCo2r6szHFVbP/QBl1oIjU0xI=; b=MXVofkGWf/TZintfvKCbYe5k6eIdwvqep+bWQFd6vBkqhuVYeCV23tJCP1NH25Ezq5f6qCttbjCoE6kvLraXjlomNZACx/0tyX1cHkaQmLKi6WoJM3GR5JRdTXHxv9GPGNn2Q7swNIO+sV7NnLXCixV57v/K9cuBoddSe1Ilb7c= 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 1775057463303328.176681742989; Wed, 1 Apr 2026 08:31:03 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xV1-0001Tp-Jn; Wed, 01 Apr 2026 11:28:55 -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 1w7xUk-00014C-T8 for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:38 -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 1w7xUj-000883-0C for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:38 -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 631CS28v1285859 for ; Wed, 1 Apr 2026 15:28:24 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 4d8xm3t2y8-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:28:20 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-2c4cfe08c9dso17796970eec.1 for ; Wed, 01 Apr 2026 08:28:17 -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-2ca78df3b84sm38491eec.5.2026.04.01.08.28.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:28:13 -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= 3ScWNmMreopyHwVdsYRCo2r6szHFVbP/QBl1oIjU0xI=; b=YhO0a1Zd/veBT2vT pL2xD/DkP3dSn/HUvG5dK/1JJG4w0Nq3SGVd4rAZ1nLFY8lG1zVWms+negzMHUbX eiOiw1YBbaJbn4mhTzcOcaefxU1QJVKIxPtTTybLusK7Cf0l7XPPsaAVWnsYHqLw u62dvmg3+snCzutzFS8Zo9bkTvWZo9ENXrQ/wvJBSMiWjs7kwFhFVLnHh2ZhE/bl bC46uqj8kXDKotkTP+FRe0K00QB/XejGcTZ9QeUUG/25fUWV8ZxOvumczk5BvcXW 6xTL2+IUy12qOBOlk7igOlk8xuAoGkyHhD2xbOPu5ufe35hQJfwCdr30cICkkYZe F14Trw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057294; x=1775662094; 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=3ScWNmMreopyHwVdsYRCo2r6szHFVbP/QBl1oIjU0xI=; b=KDVsW0kntWM2lEIp01eYmTSZcAzZVgb3UqdVhSdFB7g6if75ta6PdnCH72ApDBxP89 np+rhbQkUGjGF5u2ZhepkTVmnvyIjyUkceTrvoVadJx7y4Yul08K6TH4mdGHBFuzRrM/ Od1zcy0Ah1JLV0ldN3mXNVgJqIRc7yEPwPMEBeNuBNzc5nDo8fCfmunLoW0UedMXi1jR QtxG23HRkPJIWWORv6EkZ1P+RvWJxo2HiQ2Jv5F+9LlCTZXR5UEWu4kcS84VuLXesWyP +Wbv29uuol3OVFGJzqA9m6VS4gMEwBXmQEO6c2mHUD9JPG8jHVm7JD+5zCPi+VXOfgsa Db2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057294; x=1775662094; 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=3ScWNmMreopyHwVdsYRCo2r6szHFVbP/QBl1oIjU0xI=; b=sFGXQr103zgqrr9rFdMD1jns4n5Bu0KWdujcnomiRUvbmz1iBiB7JFAb8J0w3L7GG6 gN2wljUXXkR6CM3ncYljxwaHWt5t9OjnJVeWXWDm1xLzLV0WcQdgfCt/hY0OzsYsuqEV ye/b5g8zoQfwf1Uxh9m00cz6rWF9SkZTBaxhu/bbnip6DenZCJ/2WKLftXcO3+vTzNXJ O/OXcTh4L1tt6GG1XN7lo6EeF82phPsDUusV6Q62dlTEZjJ3pO8H0nQJLqBozPD+Bphg LD4NFNhxYB73/b2+yr9/js0yw7iMoXEr/rZRzdu3UYvBvMlZ5b0bBfb4khnC+sQ+vEvZ je2w== X-Gm-Message-State: AOJu0Yyql34B+O/SIFtUvWgSw0GCIvlhXqbusYavyeRC8rFg+en+Nu4R lCBYHSkfRkmPweqd7hA+4CccPXf/JwXU6jtshJFdP8brlLQ5xaqEQZHyMYOLCty1cFNzrtdQ8Tz cP6lqZ44l9b0ovkSEWFdfqNMpv+yykEQV6QCsdncl0ioXCENYRBvkKWT+5wSck4j4MA== X-Gm-Gg: ATEYQzyI5zGJ6+Ql14iuieypQ/nwivThS40jL+Cb4hx4XjVeFJ7on3KRzz6pRfHrPsq wuixJS8VFX4sImkTKC0G5lxhNftEvNL7rJunz+ADLhnREdEFHvKh8tQ8YYZ6ww2Y/UDSQfD0snH /r0OE9mLdMn3JBvq/LDKQ+FrIoYf+XHZB+BuEgZ+jWRXmkQArvGPuR2GpKum/8J0y9hdSs4mD/N 44dAjBwdPEXSK7PTCgEENaGK1ccn/5GsmGa5hTFrE+4DJshe6efRjwRWn2N37+jsFk6ruC6rCUB FfD4GZ5C2LAvhGT+7+SJD0fufhJeKs0zeLoFGPkckPTNZg7AVlVQXVa9jeb9UhQrIn1vbIU+OhR 8WliA9w3M4CEPIDnoJZEUJwj+khekSXK0X9twiPegTjpu3PuZcacA80vqeaxKnRknpsDNZw== X-Received: by 2002:a05:7300:6413:b0:2c5:b23e:48a9 with SMTP id 5a478bee46e88-2c9328a641cmr2248743eec.25.1775057293986; Wed, 01 Apr 2026 08:28:13 -0700 (PDT) X-Received: by 2002:a05:7300:6413:b0:2c5:b23e:48a9 with SMTP id 5a478bee46e88-2c9328a641cmr2248716eec.25.1775057293405; Wed, 01 Apr 2026 08:28:13 -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 v6 31/37] target/hexagon: Add implementation of cycle counters Date: Wed, 1 Apr 2026 08:26:51 -0700 Message-Id: <20260401152657.314902-32-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-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=L90QguT8 c=1 sm=1 tr=0 ts=69cd3996 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=Bw4caLd0n_0OF-yX4NUA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 X-Proofpoint-ORIG-GUID: bN0JWieXwv1FdluPAT7Ryk0ByUuWAjO2 X-Proofpoint-GUID: bN0JWieXwv1FdluPAT7Ryk0ByUuWAjO2 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAxMDE0NCBTYWx0ZWRfX6PqFYD636P+i PWUphOz0kSc20qpda044J7e65mi74MWm1knT6YpKVKjsrCQnPQ6Jxay9qRhZ5Akbm2+0O6o/7UO yv97SD96MOj0EsM6TshlAuaObJwjXmVDj638pfO9P2lZRtohFM50QFEVswgxpp+p9UMPt81H/4F 9G7+uNF8nFZZFLi3KMSvErGvltuigAtI+4sFPedKP7YglKX72A/TYtK65bBUe3jCaIciNVM/koX j7w7HlmhmbwbK6/xDHnRy7uELXIc5c80OIO4SpkCrkpV7YliJEYWRCfQT50kZYaI19+BpKpwo4V wvtPG7M9g6Uye14qXg16yjrD0SqZ6g/JL8pMRJFORGXCFNGg7wPMQ96YQScbF6gKHAIhINOMc1d 5Cy947HUlOnWi+7XQL37aLaUhs644F9+YW6Qp1RY86TokRagz05jcN14Zq18Vj0IGrOpjXbl2gK rHL0eBMWhJOJUSFCKXw== 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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 suspectscore=0 phishscore=0 clxscore=1015 priorityscore=1501 spamscore=0 lowpriorityscore=0 impostorscore=0 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010144 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057465346158500 Add cycle counting infrastructure for system emulation: - PCYCLE_ENABLED TB flag to gate cycle counting - gen_pcycle_counters() to emit cycle count increments - Real implementations replacing pcycle stubs in cpu_helper.c - hex_cycle_count TCG global for t_cycle_count - pcycle_enabled context field in DisasContext All pcycle code is guarded by #ifndef CONFIG_USER_ONLY. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 1 + target/hexagon/translate.h | 3 +++ target/hexagon/cpu.c | 4 ++++ target/hexagon/cpu_helper.c | 14 +++++++++++--- target/hexagon/translate.c | 26 ++++++++++++++++++++++++++ 5 files changed, 45 insertions(+), 3 deletions(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 56f89209795..d3b7b346841 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -161,6 +161,7 @@ struct ArchCPU { #include "cpu_bits.h" =20 FIELD(TB_FLAGS, IS_TIGHT_LOOP, 0, 1) +FIELD(TB_FLAGS, PCYCLE_ENABLED, 4, 1) =20 G_NORETURN void hexagon_raise_exception_err(CPUHexagonState *env, uint32_t exception, diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index 7e528379db6..eaf48a865c2 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -84,6 +84,9 @@ typedef struct DisasContext { TCGv new_pred_value[NUM_PREGS]; TCGv branch_taken; TCGv dczero_addr; + bool pcycle_enabled; + bool pkt_ends_tb; + uint32_t num_cycles; } DisasContext; =20 bool is_gather_store_insn(DisasContext *ctx); diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 79ee4264c70..45ac9a3d24e 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -275,6 +275,10 @@ 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, PCYCLE_ENABLED, 1); +#endif + return (TCGTBCPUState){ .pc =3D pc, .flags =3D hex_flags }; } =20 diff --git a/target/hexagon/cpu_helper.c b/target/hexagon/cpu_helper.c index a2b486f4bb5..bb991a671e8 100644 --- a/target/hexagon/cpu_helper.c +++ b/target/hexagon/cpu_helper.c @@ -33,17 +33,25 @@ uint32_t hexagon_get_pmu_counter(CPUHexagonState *cur_e= nv, int index) =20 uint64_t hexagon_get_sys_pcycle_count(CPUHexagonState *env) { - g_assert_not_reached(); + uint64_t total =3D 0; + CPUState *cs; + + g_assert(bql_locked()); + CPU_FOREACH(cs) { + CPUHexagonState *thread_env =3D cpu_env(cs); + total +=3D thread_env->t_cycle_count; + } + return total; } =20 uint32_t hexagon_get_sys_pcycle_count_high(CPUHexagonState *env) { - g_assert_not_reached(); + return (uint32_t)(hexagon_get_sys_pcycle_count(env) >> 32); } =20 uint32_t hexagon_get_sys_pcycle_count_low(CPUHexagonState *env) { - g_assert_not_reached(); + return (uint32_t)(hexagon_get_sys_pcycle_count(env)); } =20 void hexagon_set_sys_pcycle_count_high(CPUHexagonState *env, uint32_t val) diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index 01445fdcbac..91dff442c80 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -61,6 +61,9 @@ TCGv_i64 hex_store_val64[STORES_MAX]; TCGv hex_llsc_addr; TCGv hex_llsc_val; TCGv_i64 hex_llsc_val_i64; +#ifndef CONFIG_USER_ONLY +TCGv_i64 hex_cycle_count; +#endif TCGv hex_vstore_addr[VSTORES_MAX]; TCGv hex_vstore_size[VSTORES_MAX]; TCGv hex_vstore_pending[VSTORES_MAX]; @@ -128,6 +131,15 @@ static void gen_exception_raw(int excp) gen_helper_raise_exception(tcg_env, tcg_constant_i32(excp)); } =20 +#ifndef CONFIG_USER_ONLY +static void gen_pcycle_counters(DisasContext *ctx) +{ + if (ctx->pcycle_enabled) { + tcg_gen_addi_i64(hex_cycle_count, hex_cycle_count, ctx->num_cycles= ); + } +} +#endif + static void gen_exec_counters(DisasContext *ctx) { tcg_gen_addi_tl(hex_gpr[HEX_REG_QEMU_PKT_CNT], @@ -136,6 +148,9 @@ static void gen_exec_counters(DisasContext *ctx) hex_gpr[HEX_REG_QEMU_INSN_CNT], ctx->num_insns); tcg_gen_addi_tl(hex_gpr[HEX_REG_QEMU_HVX_CNT], hex_gpr[HEX_REG_QEMU_HVX_CNT], ctx->num_hvx_insns); +#ifndef CONFIG_USER_ONLY + gen_pcycle_counters(ctx); +#endif } =20 static bool use_goto_tb(DisasContext *ctx, target_ulong dest) @@ -821,6 +836,8 @@ static void gen_commit_hvx(DisasContext *ctx) } } =20 +#define PCYCLES_PER_PACKET 1 + static void update_exec_counters(DisasContext *ctx) { Packet *pkt =3D ctx->pkt; @@ -842,6 +859,7 @@ static void update_exec_counters(DisasContext *ctx) ctx->num_packets++; ctx->num_insns +=3D num_real_insns; ctx->num_hvx_insns +=3D num_hvx_insns; + ctx->num_cycles +=3D PCYCLES_PER_PACKET; } =20 static void gen_commit_packet(DisasContext *ctx) @@ -994,6 +1012,10 @@ static void hexagon_tr_init_disas_context(DisasContex= tBase *dcbase, ctx->branch_cond =3D TCG_COND_NEVER; ctx->is_tight_loop =3D FIELD_EX32(hex_flags, TB_FLAGS, IS_TIGHT_LOOP); ctx->short_circuit =3D hex_cpu->short_circuit; +#ifndef CONFIG_USER_ONLY + ctx->num_cycles =3D 0; + ctx->pcycle_enabled =3D FIELD_EX32(hex_flags, TB_FLAGS, PCYCLE_ENABLED= ); +#endif } =20 static void hexagon_tr_tb_start(DisasContextBase *db, CPUState *cpu) @@ -1136,6 +1158,10 @@ void hexagon_translate_init(void) offsetof(CPUHexagonState, llsc_val), "llsc_val"); hex_llsc_val_i64 =3D tcg_global_mem_new_i64(tcg_env, offsetof(CPUHexagonState, llsc_val_i64), "llsc_val_i64"); +#ifndef CONFIG_USER_ONLY + hex_cycle_count =3D tcg_global_mem_new_i64(tcg_env, + offsetof(CPUHexagonState, t_cycle_count), "t_cycle_count"); +#endif for (i =3D 0; i < STORES_MAX; i++) { snprintf(store_addr_names[i], NAME_LEN, "store_addr_%d", i); hex_store_addr[i] =3D tcg_global_mem_new(tcg_env, --=20 2.34.1 From nobody Wed Apr 1 20:45:44 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=1775057601; cv=none; d=zohomail.com; s=zohoarc; b=ZharL8RTE95kuqCeJ2P7VMfQwG+v41A+PTbtmpA+tcc0HWoOKr/RG9PVGcF6h0GJXTZTG0EZDCQKkMhyiKNMcOla/zP9HJlEjDX26jdEHkQu3ZbMZrj06d3/b0umVwJZTt5XMKsjQNc4jmke/yGfe/XayVoabcmCh7F1dDspQEA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057601; 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=MzvUFKvc+sUpWvc2016FnOxj5PhtBZkyxIiMWx3S09s=; b=oIKza+5pORiwU9anklSGI439nc/ThuhsAftwdY7MJI3HVmZBSmjQ+do7TpO+44rAKBFP2S9Y9+4+NQKCcNNx5SMg43tRSdao4988mbwZMpz30Fn/tciIcC9HAdqxFWJLSZGo8WiMVTPXx4K5l83REZLAmpxj3m1cUh6xD9nRsPw= 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 1775057601030536.7097800572568; Wed, 1 Apr 2026 08:33:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xV2-0001Ze-ME; Wed, 01 Apr 2026 11:28:56 -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 1w7xUk-00013l-4s for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:38 -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 1w7xUi-000887-4K for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:37 -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 631FRJ8S1579382 for ; Wed, 1 Apr 2026 15:28:25 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d8mr2vbnt-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:28:23 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2c0ba59a830so8888147eec.0 for ; Wed, 01 Apr 2026 08:28:19 -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-2ca78df3b84sm38491eec.5.2026.04.01.08.28.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:28:13 -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= MzvUFKvc+sUpWvc2016FnOxj5PhtBZkyxIiMWx3S09s=; b=XcDCgc3+rg05cySV LoHByd3vTeCTQaUlSdEZFjdmnGZ/Mf9sk7gNwizKz8WOVTLgXmQmE1oqBR2exC1Q 4+EUg85XdqsYvn3ffJT/k1BEbGwISJu1Am5VV5fUOPE/jnn/A/RudlnBUDnyN9Ya siBGHfAu6SjQlncbdp0s6Uiz9ZZhLz9inUjJsV0Nx2zpuY+UWrPLV+TOCrMUqD+0 924hRyPTyRGYMVRxcRQKNx+73YmUaAxYvMbkDt+kWOrsEcBO9D7IqHcdOnMn2W2Z sXBHOKG9tG8FRA/jZkqinKotfefaSuLHfVFgYyBG/cl075dq/Wb1GJONO+EPmxBc Sk43Sw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057295; x=1775662095; 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=MzvUFKvc+sUpWvc2016FnOxj5PhtBZkyxIiMWx3S09s=; b=RR1piDSOLmfql3FG+ypq0qUQtii/vHQywaUDUm/QLlBTtBhbIL/NFIiwVpOnihnPea b6NfI0rL0laW+YOb8SuYTXMtBdm3EVbGvCJzFHZnuRKRVT8b44Q0Z87dQGE0OiZtkGkq V0c9FW2/PYe9E+MisgKvAnUuQPf42Ne1PpHT3j5Ia8PBP8C1a7fdz84c8J32J58w5PrW FxMFV8tlQXPuoiEKSJrx/P7/E3UyPs4YA3/vnKjYHC8a34rAdQxP3AVVSaa7AcDVzR0p itp36KOPxO5KpBpOrPir27TEcQJwidt9DvSHNQ74AamA9JsNHUqhT5flFP4JGhp1B2R4 RJOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057295; x=1775662095; 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=MzvUFKvc+sUpWvc2016FnOxj5PhtBZkyxIiMWx3S09s=; b=Y/1VBwDB/ogSQKjbLxqeZGRONJr4bidMy/FuVo6gmqA/cSjPPF4wH2HNKr/Bueg5XG iACffEIHVdt6QIUZ+5QCX5Gzk0hP1DHL5Dvc7ZBOcLSx8BpIU5DtstY30QIhq0EUxy1E LhtiEzR/AnGDo8+pm9nTUbSwcHoRH96BSFRvUpKQhEvIVspl/hx+ekBqCXGijlnesXmq G/klMcd4LMiE3BX8YODo+YarwLyZ8IeTw62fpwMzSuJMHe/GXzIawFJLUia9ygC9eQne AZC2DSr327TsfgD5AtwC4A4bGXPJyK7lL8VxhOgcM3XzyoOUXBQJba8cbKYNhkfCSCkj bcWg== X-Gm-Message-State: AOJu0YwksemoQ4oe0gVsOT9BXuz7MlDDvVMQYZbgFd00BOKUxdupXYmJ AzLXxmrdd1NBKTkBJD7e07EnXyKF7bpiYI+ThK//ruNbwPAFP1rNclog4p7/yGMw16oS5sVGxka MnckuehX3c6lkRSIRCNDUeQ+mcs6N5uQwbRJhWyUbuxX09g1OAoUCTEH/x6Gmpx3jEg== X-Gm-Gg: ATEYQzzAoq2P74Yu4KES4O3ilo/NRWRcL3AjEUmVRyBiR1/drn8fvIR/rib3RDQvcKj Hkeu1sYz6lpFcC3UXgbAoppSZ135KR1JphwD1ueKY6gOEeXpKbHtIgx72KlDkzBFVqn8K/5yhB6 nN90mt1ErgylEnka1qnejQm9O52/JEUKtOZZb505CYaM1xvwYKWDrJvVuk8s3OOE2FvVOElAyXW xt3vPv2U0PF2GynB1qX9cZx0U6efLX0kKxuoOteJ5XB/SLj+qh+kTcknfS4y+UtEY5ujyRRDcV9 87irQjGIVGxgr36whe+9qruaXq1E6c9zAlNeWsc0b4i0awavIu6RApXqPg2nBaoiHKPyoLXqL+9 q4TmD+SRIO9SNh6cXDkis7wFj3OqgqQfFH+A0KGT475wDOb6XRzW23+fxw3/qEumyvnM94g== X-Received: by 2002:a05:7301:3d06:b0:2c4:c8de:cdcc with SMTP id 5a478bee46e88-2c9326aa24bmr2130485eec.22.1775057294688; Wed, 01 Apr 2026 08:28:14 -0700 (PDT) X-Received: by 2002:a05:7301:3d06:b0:2c4:c8de:cdcc with SMTP id 5a478bee46e88-2c9326aa24bmr2130459eec.22.1775057294181; Wed, 01 Apr 2026 08:28:14 -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 v6 32/37] target/hexagon: Add pcycle setting functionality Date: Wed, 1 Apr 2026 08:26:52 -0700 Message-Id: <20260401152657.314902-33-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-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=B+O0EetM c=1 sm=1 tr=0 ts=69cd3997 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=OF6xqQKflNrgTLtdKXcA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 X-Proofpoint-ORIG-GUID: olFzK7aPobLLXtV1ybq2TuWIrjmBQPhF X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAxMDE0NCBTYWx0ZWRfX8yH9nIfxd+wJ aBzHyjhty1SPtD1Xd1XRduMFnXTTCMUO+1F+dechC3wIWq6Df1TQTMHo1i39K0sS+8MWE8z01ZX s3fPWWP8GZ5FjRnTAufDnX6rhH4Fj15/aDwaOYvmqQtC5SfAJSiiskYcS8qb6BSPc2OQtizBcwU unF5v4RqrN/Zng/PWpmSNTTsP3ZXy5gs4g46W20xPV6AdBrvw1/7WePK1WraeKkwEZ7hO+JljpK FajAWSnZBUtEJGHv3VkSSMfzKjuV5sCA4iFXOocLsPbLQQpk3fJ8/r1PXKHr02VI+AkBzUhwFbX on4wGHETbu4JMybC9XA7NI1JtqJrfpFv9w22T1mZFKid17KsSLXFaOhuVBso2NoL9PzPKgxFIa6 xTYpPhjYIoR/9r1O7BnCY8l+4PbY4Dj9A5mi1KLw0wT6KeIfuUF/JW9r+TV/fkmCRurHJX3pvbJ c2hONRbjun2N+Lv3tNA== X-Proofpoint-GUID: olFzK7aPobLLXtV1ybq2TuWIrjmBQPhF 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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 adultscore=0 malwarescore=0 lowpriorityscore=0 spamscore=0 clxscore=1015 suspectscore=0 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010144 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057602323158500 Replace pcycle set stubs with real implementations that distribute cycle count changes across all active threads. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu_helper.c | 43 ++++++++++++++++++++++++++++++++++--- 1 file changed, 40 insertions(+), 3 deletions(-) diff --git a/target/hexagon/cpu_helper.c b/target/hexagon/cpu_helper.c index bb991a671e8..64c5746c6d9 100644 --- a/target/hexagon/cpu_helper.c +++ b/target/hexagon/cpu_helper.c @@ -56,17 +56,54 @@ uint32_t hexagon_get_sys_pcycle_count_low(CPUHexagonSta= te *env) =20 void hexagon_set_sys_pcycle_count_high(CPUHexagonState *env, uint32_t val) { - g_assert_not_reached(); + uint64_t old; + + g_assert(bql_locked()); + old =3D hexagon_get_sys_pcycle_count(env); + old =3D deposit64(old, 32, 32, val); + hexagon_set_sys_pcycle_count(env, old); } =20 void hexagon_set_sys_pcycle_count_low(CPUHexagonState *env, uint32_t val) { - g_assert_not_reached(); + uint64_t old; + + g_assert(bql_locked()); + old =3D hexagon_get_sys_pcycle_count(env); + old =3D deposit64(old, 0, 32, val); + hexagon_set_sys_pcycle_count(env, old); } =20 void hexagon_set_sys_pcycle_count(CPUHexagonState *env, uint64_t val) { - g_assert_not_reached(); + CPUState *cs; + uint64_t total; + int num_threads; + int64_t delta, per_thread, remainder; + + g_assert(bql_locked()); + total =3D hexagon_get_sys_pcycle_count(env); + + /* Count active threads */ + num_threads =3D 0; + CPU_FOREACH(cs) { + num_threads++; + } + g_assert(num_threads > 0); + + /* + * Distribute the delta evenly across all threads. + * Any remainder goes to the calling thread. + */ + delta =3D (int64_t)(val - total); + per_thread =3D delta / num_threads; + remainder =3D delta - per_thread * num_threads; + + CPU_FOREACH(cs) { + CPUHexagonState *thread_env =3D cpu_env(cs); + thread_env->t_cycle_count +=3D per_thread; + } + env->t_cycle_count +=3D remainder; } =20 static void hexagon_resume_thread(CPUHexagonState *env) --=20 2.34.1 From nobody Wed Apr 1 20:45:44 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=1775057504; cv=none; d=zohomail.com; s=zohoarc; b=SgF0qggwRFUapEZYK3L6B+8LGUiUwWMXT09dHumXT7tDZG4hg/Yu43Eep/TiHwFVVe2o2e/4q06neEuTEJkv2wa1MgKFLbeFb2n2yXlpQT5C0leVU1TBnvEtRVwZVgKGE4YxXJB5C6rmiLvZcZeLWdj40q5bUZHh/0rkewFS01s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057504; 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=L60dLV4ixSII0grXEbX4YAePTbGtmAiQiJLENJcnCBA=; b=bJt6PPaWuI2/v/hg0NKXEAamtrD5vhu7Bbg0ZpURfErkNNAi6v8+iv6rLukUCTC+e6I59FtaPjnJrldqWqj0Qj60pQBNYYBvGpBqnrnPAESL3n9F7p+isAsETUPEjrrc1+GhnjzZldpjNyctEKas9WAoZW7VwgEhPRLRY3EOY2A= 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 1775057503816583.5094015159567; Wed, 1 Apr 2026 08:31:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xV1-0001R0-CC; Wed, 01 Apr 2026 11:28:55 -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 1w7xUf-00011A-33 for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:33 -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 1w7xUd-00086H-82 for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:32 -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 631CPvYF1285902 for ; Wed, 1 Apr 2026 15:28:19 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 4d8xm3t2yx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:28:18 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-2c895e7de52so8299432eec.0 for ; Wed, 01 Apr 2026 08:28:17 -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-2ca78df3b84sm38491eec.5.2026.04.01.08.28.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:28:14 -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= L60dLV4ixSII0grXEbX4YAePTbGtmAiQiJLENJcnCBA=; b=XNlZnaXyrSLWpHoP 2eMEecQTW6zcYi+AFy//2IYpAu/V2DlFhu5T/jS+6IiefOKyEJ5rHuayXsCcpvY6 eqmAgNDNCL257PbgoCXAjto4SrhiH1QY5vMd8yk+xKP0yRlbp1imdVDIVoeH2ccy 9V0+o89+oWxUrMD/ZgtNsSVoKuMZPgTRETvjqHMZ0mDsLKgsqBWDFlNSaRV2EoxN AM5CYN/lwfVbpryz9tcmsfOQe1pi8YGAdimxE9hn6jN4elCSCZlYn8/z60g2oi2Y 26Wo7USgrIPJS+HCMe/TZFH9pJQhyyxUlz3f81xb6xYnJuY110lUSuH25JO5EDuG l+ukGg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057296; x=1775662096; 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=L60dLV4ixSII0grXEbX4YAePTbGtmAiQiJLENJcnCBA=; b=ffUR9ZdQL58Pq1oE/ql2od3APdsb2a7epQTNpcIDR6DbNBOnmOhWwocJxwynrAbROV iF7FbUHXLYJSvScbMc0thNZ/IPwHLjM8KUuAPdI8PE4Lh2Dlj+mHgzFegaQ8K2ZCWfTp hi8/Pgy0iIeJVGL5YAigSugMg/l+GZYbyLFo+jw+cXAmP2tR38Tj1jDGSlPE+XkEWAQt qdhb/1Alp49KJ6Hp+mRV8txBNQUS7Bh9NsLDPmpuW0OSs/3dYAPFtxmFAM6ny5mGx69Y C+s/kcohX4mLJOHlmA54SNcG724TXBxILGsWMhyrgUr3WpjgTe74E828MVpo5k96z60W h+UA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057296; x=1775662096; 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=L60dLV4ixSII0grXEbX4YAePTbGtmAiQiJLENJcnCBA=; b=Ft8A+50LFlDdAQ5C+22V6KcYN79kl/fA68PLAODRxAXy9z1nPYmq9QGg3A4I2T7M2F 0scDOyv8xVYWhi0y0vTxfFjXlSPhHHwhkKOcVsOsfC6BMWbQQsGSaW9CgWzIE3nSwGX/ Jvrge76DZM3mvsGw7ZaMapdruLdRS8RwFJ90z/4xGk2N3wzYot6EU9VTGrwyGfUB9vvK RVAahLe567+/6SaAz02yZ3xgJGSJJdBIIl+5SCYQh9D7fApeTpe89CsF1m75vodVCWIK tjwb0HEjCYyDhF9o+KDbAPdzLZnBO0WURCsEOIPQ+U93m3+WyZDGJAn1i5iRKNW7AcBr qJDQ== X-Gm-Message-State: AOJu0YzGnIAAojjhwdR0YQg+SzjyFtYJ99J+nNSg6GlbjDmpfZgRZs3M 1YrdKUjHtx5MMSi+J/wV23MDIQpoJIUd8di2TdsgFyCVrc2nWfLQ30hEGs48AjOBuVSC09BKpCu dd6JG/qnen6QGwGMQdx53lXTHTiWkkI8EezG24Rlv/7Sv+bu1axFfK7DfdLP8sYdLQg== X-Gm-Gg: ATEYQzz+nmZnUTi0k9fIO2vMXq5/WWI1U+H0TMFR9Ggmw8UpQJvrc3aQPbyTVzquNax G7CypLv2tHhyLYF4n0RyqiTvlYEFRQHGRzFqXOwXzMgXxsY8z42K2OIWLGKjxB5+RKb4r3UnSrT HD/g3+Bmgy2vvU6B0XVQNvE/0HbI3sJF1lnwnIAs9V/cpZHQZbonbvD5Phoyaz6coJ8FnlxPPlh GdUszlzhxZGkAZsJp2qTNWO0UWwocRyt3xb5z03GWBJTF6Q4v7rKB0SfuER07COZ1V78UtE80rX IrH1BaeFhwrnhf0spB1MLp61OQt2Gd/bcUps5Tg6vDlKuJhsCPfLCHddvYoXtvS2YFjWuBEGoFv wW9hHGtd7x7GZEnBot7pHHfYuIw/oH9xbhHELtnIQgrI7v0sNKozdnqinAebqZ7WoKu3qag== X-Received: by 2002:a05:7300:2213:b0:2c0:becb:7640 with SMTP id 5a478bee46e88-2c931276dd6mr2370223eec.12.1775057295696; Wed, 01 Apr 2026 08:28:15 -0700 (PDT) X-Received: by 2002:a05:7300:2213:b0:2c0:becb:7640 with SMTP id 5a478bee46e88-2c931276dd6mr2370180eec.12.1775057295050; Wed, 01 Apr 2026 08:28:15 -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 v6 33/37] target/hexagon: Add cpu modes, mmu indices, next_PC to state Date: Wed, 1 Apr 2026 08:26:53 -0700 Message-Id: <20260401152657.314902-34-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-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=L90QguT8 c=1 sm=1 tr=0 ts=69cd3993 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=6d93uPKVDIcG5a3x7xMA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: mDypj5CHby_TOuTeCsonhC1xLc7VgEGr X-Proofpoint-GUID: mDypj5CHby_TOuTeCsonhC1xLc7VgEGr X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAxMDE0NCBTYWx0ZWRfX/OvDjJOA3NIQ C2p+yPIqgBYTdmNlrAXJgFiPgg56WpRwZMr4iDnqwCrAZ8ncUjeoKaUUepVaLduhn7uGbw45Rer RE28qVI3q7Hr1K+3pWjTK7I6tkDv1JDK+hcY1+1A8l/5dHhd6yTAcRlJtI6lUlADlpW+x213WrG kJ83PezOYddMIm2bqag2MolCucYfZWVbizn+oud0kJyqSIYb5l1ODnmhP8R3McntGwQR/jPnWEf E2S/nssk8w0l/XTGRlbB3WlgvGGyREJUuLXQneRbz61oLcrT5Mzr9jVz5jIG2KO0zp9i/i8KbNh WmYrIg7DywbTDQnRy4G8VKmEgf1/znH9FyRmokoJq9zTHp9vrkCjYxQ5wz5hpebmWFVijjZ6VEr Cahmfr+0/mYEVr0b9XZ+ggzJD+CpkZ+Y3/RA+DXu9KiB787ODJeH837oYyzu/ZTFtHWAjv/bXZL QbAUrdH4C3UARh6ywbA== 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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 suspectscore=0 phishscore=0 clxscore=1015 priorityscore=1501 spamscore=0 lowpriorityscore=0 impostorscore=0 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010144 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057505664158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 21 ++++++++++++++++++++- target/hexagon/cpu.c | 1 + 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index d3b7b346841..d3361936d04 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -48,8 +48,26 @@ #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 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 + +#endif =20 -#define MMU_USER_IDX 0 =20 #define HEXAGON_CPU_IRQ_0 0 #define HEXAGON_CPU_IRQ_1 1 @@ -111,6 +129,7 @@ typedef struct CPUArchState { uint32_t threadId; uint64_t t_cycle_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 45ac9a3d24e..ab5bfb0ed0e 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -314,6 +314,7 @@ static void hexagon_cpu_reset_hold(Object *obj, ResetTy= pe 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->next_PC =3D 0; #endif env->cause_code =3D HEX_EVENT_NONE; } --=20 2.34.1 From nobody Wed Apr 1 20:45:44 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=1775057450; cv=none; d=zohomail.com; s=zohoarc; b=SgTVHzqpWX/ONHmv2/NpFFpl/o3qKuNob6YguiTA9oUDOQfG6bBxFyRWA6Ia55yGfz3xGAddSYs94yXO7wU+8mwEnKbN6LkC0J7Z/rPOoiiNrIbyNxDqhNwVMUg/wa4ToEJhBTCesDpF/XMqlZJppsku3eZgUgJKcaswr08Mzt8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057450; 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=qxvGCeGyglPN4k1rILccHF+Z6VL6Mnxy7g+mcm6uGOg=; b=IS+n7jlsWh+qQ9wtba6mxMhfysyHlKwuIUlCJBPFd1QYrbl6aE64Paw8e8glT70+12Sk0bqkCA+3GIdUVnYRDi60Zr2T7kUmRdAJBhewMoNWWkKLn0KbAF1Nut1oSArm7IJaE9W+G89s/yzpk/At1+xPpjigq4vK6hBgUPbiu6I= 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 1775057450957865.7651914528616; Wed, 1 Apr 2026 08:30:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xUn-000164-7x; Wed, 01 Apr 2026 11:28:41 -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 1w7xUm-00015G-8y for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:40 -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 1w7xUj-00088E-0P for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:40 -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 631F2eD41579389 for ; Wed, 1 Apr 2026 15:28:25 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 4d8mr2vbph-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:28:20 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-2c3b8880ca9so5709031eec.1 for ; Wed, 01 Apr 2026 08:28:18 -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-2ca78df3b84sm38491eec.5.2026.04.01.08.28.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:28:15 -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= qxvGCeGyglPN4k1rILccHF+Z6VL6Mnxy7g+mcm6uGOg=; b=cigXxUs9EAstNuRC Y11cATkX+kivC3iLRMwGZq7NRHnAB7RSqund5I9gAAufo49UZERLQBlqjAjNLYJG ts6TDr2OiCOLtnYd2nCiZNVx+SDk3rbqp2+YOMoqLQLKWLMIrZBI6LmqwPBeFcdg NhABwaHdaULFfTMchKUUirG8EDOoBqhii8QDhK9uiSCXgpIbzJ4kc1JvpSP/lyki dmp2GDBBb5MdKzDhP3wSvdAZfri6jfVwfSeOs+PmmaxiYnkyWPYcSOjsvpWPyR1S OgJlGFnWJ8VuFE88pSfkRPXkUUSCxASI9072QcSdrPqYkA7bZblB9mRAycBQFCNQ DHlSmg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057297; x=1775662097; 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=qxvGCeGyglPN4k1rILccHF+Z6VL6Mnxy7g+mcm6uGOg=; b=cwBHoA3kQd1/kXIvbkIN0YkUA+MhYhRZI1zrig61hBX97KVunjODum5Zw0Zi1CYGbf giTgl8JjiQV9UyYQ1blHkYvnYPWolNynIYAVfcKyjTv+bH27cOHCSXXcN2NHwnZncHGQ 4Ea33tXGcGa86IngzTov5UaEwFDqgrjnN6u/uUb9vd2aReaQniZrk4J0cV8lriSD0G8q duAD2BgB6goSKThlKqjFqsTcxguq0+1Bto7Cf7QPOTf5xEpW1szbcix+ZPDjL+XzPdWx knLxpk7THZW910cbiBbYlXV/MzAPRuhppVuPg9NpCyjUdFFlacgAK5fD+8Dp/lq8CPR9 4Dtw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057297; x=1775662097; 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=qxvGCeGyglPN4k1rILccHF+Z6VL6Mnxy7g+mcm6uGOg=; b=bslGOpKJHi5+KxtU5pjTtCAnpOJqHCm3bF4RKFYBhwLYPGsU8WTQLA/3mYFSqbXkDH xPE56eOdGU33TZA0uNfcPNUfUHD97L46qXt2ogccoY1F5nkMRjd91WHNxabTFZ0sgtvR 4eh/uCRTycmEBe+HD8dXL1CZgP58k7X+aCT5FIiP9g3l05ldgEI7nSV5WfByWeIIH4E9 STssEOj/cNhySUHfgEBmUgGRqEJ9ZZE1jy5AA3croL3LUCLYhDFJBasnZuFz4wVBm0B4 638ZhSteuc93cAf7JXzqKEWUuMu2zEgmky9s6RsCq3jCZjuCSamNUH++tMcGI43YvuQ+ CtFw== X-Gm-Message-State: AOJu0YwRWgDIe4p7YiRzZylpIrc5NHa95nFhkMEHUtbE+V6AtZp107dS MjvmnXgC2vdxYCaXBSNDQCGuFrp+ROHat+7MyIPLX5N7GqCOuHpbnXj8KirE67m3vp/3AeFYKd2 MWaR0HlM6knOYydt2BT3tg4HaFx7R9hyuRD8z13FUCL1Zw1wmspcLtFNB/wsOQiqPwQ== X-Gm-Gg: ATEYQzyQKstdI4Kd9ErMByraibFZi0d1ZzLQu0wk1vcx/hasutWlWBSWquQQTxTccfn zL4PlhRgHY5uNTlu6QZmnfbzT+Rax2aKO0RA7BtWXBHmltrRRZ3+8m5FjYSLBOXO37rkuBOpqvS 7Evg4cU01Zy7cBI7n9x55hzrpdXUJPALUIyU4KE8dl3hR+ZHAoHxye8dtYFXBJHIVEH54Vj4uZY 4+l2tYiOFUWvJx9mu+1IKl0j0X/2Mpxm/0g+/hQ0ln1k4yyijhg1P/DA30ZG0WQihkJWHXOrgiv 4rGuPb7aCnXVcei42Hw9dI9Z2ClcoP5RlnUJVLvjV5aktxyIJM970L0A74DAm9GMO53yzbrj/vB xPQM5AGG9kK2JMnoyB6t6jD0AoGcv17302roVZvSZQJK8IGDQXbSNNfL1nMKjy3eRJX2o4g== X-Received: by 2002:a05:7300:d51b:b0:2c8:7172:3b96 with SMTP id 5a478bee46e88-2c9325b017emr2219200eec.18.1775057296553; Wed, 01 Apr 2026 08:28:16 -0700 (PDT) X-Received: by 2002:a05:7300:d51b:b0:2c8:7172:3b96 with SMTP id 5a478bee46e88-2c9325b017emr2219173eec.18.1775057295889; Wed, 01 Apr 2026 08:28:15 -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 v6 34/37] hw/hexagon: Introduce hexagon TLB device Date: Wed, 1 Apr 2026 08:26:54 -0700 Message-Id: <20260401152657.314902-35-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-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=B+O0EetM c=1 sm=1 tr=0 ts=69cd3994 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=_ljVuOvC_GqhvFfVm74A:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 X-Proofpoint-ORIG-GUID: f6OxWdo39XfAGDzD8Uh1YxcJdtOugLdr X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAxMDE0NCBTYWx0ZWRfXwNHKDOgwJ0G3 WeLjIKsKst3/s7NYRUW47aEvk7iNLoOr4aimOUjRhsXo50Bi8BQG2lM0We01sCwnAccunkmKVnJ 3cNStCvBqrZ/tJsBTUyMw/WLj2ZMr/VD5FggHJvcBiJdBVTRoaMoRpyqUlxBkPh3CrjzfPXRnJh siwCtECoJ9x75a9YgGLq0ykFgTqLi4mFmRc/j+Ao2tnej35EeuIU4XIVEuB1thq9KeoK1q+x0r1 r00eyhvP5kTl2ej3y/6XfdNelM+5o8Rrc2WvdhGFaCP2+06OIijuNvbDHQ5BOtXJyH53+j6A7f7 F0BKoLOwqgxIekJPGIqXUbKPeC/XTVztNtlc215to1tWlgVunmbBKe3XQ0Ccn1dWQrq3h4rGBDR 9yhdOGS4oXDMWRnHxD1JR7igug3mvoBw26wy36EkmiwWpQzAHeBkxJphpAOfP3GJZDGJYA7Yx+k Esn75JnZbXacRHUjbMg== X-Proofpoint-GUID: f6OxWdo39XfAGDzD8Uh1YxcJdtOugLdr 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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 adultscore=0 malwarescore=0 lowpriorityscore=0 spamscore=0 clxscore=1015 suspectscore=0 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010144 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057451371158500 Add the hexagon TLB QOM device model. Signed-off-by: Brian Cain --- include/hw/hexagon/hexagon_tlb.h | 46 +++ target/hexagon/cpu.h | 7 + hw/hexagon/hexagon_tlb.c | 466 +++++++++++++++++++++++++++++++ target/hexagon/cpu.c | 3 + 4 files changed, 522 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..90d9ed84043 --- /dev/null +++ b/include/hw/hexagon/hexagon_tlb.h @@ -0,0 +1,46 @@ +/* + * 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" +#include "monitor/monitor.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(Monitor *mon, HexagonTLBState *tlb); + +bool hexagon_tlb_dump_entry(Monitor *mon, 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 d3361936d04..15dd99d2155 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -27,6 +27,9 @@ #define SREG_WRITES_MAX 2 #endif =20 +typedef struct HexagonTLBState HexagonTLBState; +typedef struct HexagonGlobalRegState HexagonGlobalRegState; + #include "cpu-qom.h" #include "exec/cpu-common.h" #include "exec/cpu-defs.h" @@ -46,6 +49,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 @@ -175,6 +179,9 @@ struct ArchCPU { bool lldb_compat; target_ulong lldb_stack_adjust; bool short_circuit; +#ifndef CONFIG_USER_ONLY + 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..d218e97446c --- /dev/null +++ b/hw/hexagon/hexagon_tlb.c @@ -0,0 +1,466 @@ +/* + * 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 "monitor/monitor.h" +#include "qapi/error.h" +#include "exec/target_page.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, +} tlb_pgsize_t; + +#define NUM_PGSIZE_TYPES (PGSIZE_1G + 1) + +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, 1010 */ +}; + +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 << (qemu_target_page_bits() + 2 * hex_tlb_pgsize_type(entr= y)); +} + +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 << qemu_target_page_bits()) & (~pagemask); + return PA; +} + +static inline uint64_t hex_tlb_virt_addr(uint64_t entry) +{ + return (uint64_t)GET_PTE_VPN(entry) << qemu_target_page_bits(); +} + +bool hexagon_tlb_dump_entry(Monitor *mon, uint64_t entry) +{ + if (GET_PTE_V(entry)) { + uint64_t PA =3D hex_tlb_phys_addr(entry); + uint64_t VA =3D hex_tlb_virt_addr(entry); + monitor_printf(mon, "0x%016" PRIx64 ": ", entry); + monitor_printf(mon, "V:%" PRId64 " G:%" PRId64 + " A1:%" PRId64 " A0:%" PRId64, + GET_PTE_V(entry), + GET_PTE_G(entry), + GET_PTE_ATR1(entry), + GET_PTE_ATR0(entry)); + monitor_printf(mon, " ASID:0x%02" PRIx64 " VA:0x%08" PRIx64, + GET_PTE_ASID(entry), VA); + monitor_printf(mon, + " 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)); + monitor_printf(mon, " PA:0x%09" PRIx64 " SZ:%s (0x%" PRIx64 ")", + PA, pgsize_str[hex_tlb_pgsize_type(entry)], + hex_tlb_page_size_bytes(entry)); + monitor_printf(mon, "\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(Monitor *mon, HexagonTLBState *tlb) +{ + for (uint32_t i =3D 0; i < tlb->num_entries; i++) { + hexagon_tlb_dump_entry(mon, 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_unrealize(DeviceState *dev) +{ + HexagonTLBState *s =3D HEXAGON_TLB(dev); + 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; + dc->unrealize =3D hexagon_tlb_unrealize; + 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, + .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 ab5bfb0ed0e..4da1b01fcd1 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,8 @@ static ObjectClass *hexagon_cpu_class_by_name(const char = *cpu_model) } =20 static const Property hexagon_cpu_properties[] =3D { +#if !defined(CONFIG_USER_ONLY) +#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 Wed Apr 1 20:45:44 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=1775057357; cv=none; d=zohomail.com; s=zohoarc; b=AWRNYW9NFON/Qo6QcWcx47lovfQ86sQBbPlMOkriNGdYmXAeWzim0SST6ejkaSCwSRpmGd54IuCTqqi75KjD4wzxJJ9XLn7TwqBF5Ej848e/LL1rvm6CGIuU+ayEJUrm0RUSyeW/u+1YYUg6CwhkJjzccHTVQvMfRuP/MzreYb0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057357; 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=VVIyc5aFQX4M5E39tOU3/PiCT6jGuQaUVQ/g+ljbEQw=; b=Q4KV8FYhpC7gjDwWzNOOTDh47qE+oj34kzJzeWFbLbnjJPJnSfsqkQlCmITQN+kSd1e1bX6oLswlMIG2EuIzW3LcDtd7btTmVNQ1edXz5/FmBhSUCRtwGb2LLkOZ73isPSdTkxNNPj+JzFoa2Dn3rRB7MbTGmb86bZ7Rgqxab0M= 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 1775057357626880.4268739184558; Wed, 1 Apr 2026 08:29:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xUi-00012x-Iq; Wed, 01 Apr 2026 11:28:36 -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 1w7xUU-0000q5-Ii for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:23 -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 1w7xUS-000868-5x for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:22 -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 631EIwMQ390234 for ; Wed, 1 Apr 2026 15:28:19 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 4d95118cm7-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:28:18 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-2ca0eb21c5fso1692476eec.1 for ; Wed, 01 Apr 2026 08:28:18 -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-2ca78df3b84sm38491eec.5.2026.04.01.08.28.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:28:16 -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= VVIyc5aFQX4M5E39tOU3/PiCT6jGuQaUVQ/g+ljbEQw=; b=K9JRn6FH7+9mHPyX ZZ1Wq4kgY7ZF1VFuNtT9HoRXt+Bj8345VUecJJPgrUmax47qP9Ge5IjAKfI6dYI2 /iNE82tGNncWLi+5Woqw2AV3yJh3s3nIxQiTuyR0MbtWWPMlz4sUnM7urqgNkhH+ xdOx2i25O8yMmqUMBEHJifFsfX9sVBx1hLXGPGu2rGJk1Vy2rM+ff1EhjIFKg1qo XEDnhn08MteKm+OUKz60t+96nYWlDBZ/X/oXOlagKQ1wsMYVoaoN+Wn0eiiND/Yt pWeXG5L5iE4MiM3l8TDSDpHejqiPTm8KYHF+Qvd5fi2fmfdzXpWYcfx3tmKT76f9 xTmq+Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057298; x=1775662098; 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=VVIyc5aFQX4M5E39tOU3/PiCT6jGuQaUVQ/g+ljbEQw=; b=IsZXgaxrTqrvoRb8FCxVHWNMWEk5RG8IVjgUpELrzbIbAQbd2ovm2vnWQM0quewR0E BLtgtdXho1iohCmB0iFqyDNUPEkOiRixbyZDEUBexcxTacor1eKVq2afKTRdj7luxEti RLAq+89nLVk8RoyGRquqTxYOOo5tYsgkKYQe7l7cRblmFd3pC8sQwyTtkED2m7FoiFS1 ldNqPPQ4sebLL8SVp+1hazQOZeI89qP+yhG8NxD+/lMA+k8eQSEf5nc1xVbjC+iIHZ3P 09lQyzJOxZgfQ0HxVcIb0+kYA5R8Th2rUB2uc7WpCb9V6LfmyKh4vYNtI3qWZNcMptOf gDUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057298; x=1775662098; 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=VVIyc5aFQX4M5E39tOU3/PiCT6jGuQaUVQ/g+ljbEQw=; b=O7EZyWOTVSXwSwwZnTgHJ7IUbF/IRhd3OrCL6uvZiA0nSqDtZw/7PEkA6g2RicKRC3 A6xnj7/80o7RyUNrx4sbbRFQZ8EvLHo2m3Ld4AB3xZlnXf3AUpRZ0omkWoMF9EsV5w2n G8Pb3J/ZubXlH+lhpTyi+paHeP+OPa3amtI0mCuq156TflhUwZXYMctS9q/CytQ15K5P iZWYTnHZOR360/XBTSdp7+Nanc+lx1s10hsd42ezJGz8RVfV5y+ifbD7edb90IhQUn5/ OQvfT3tDH5ZSjBJRCcR9IPaFa31aD7OR30e7jr4ZgmW9V9IdgheFV4wL+Lxt/C19/bQM 0TJA== X-Gm-Message-State: AOJu0YzzBuFxNe4AGU0X6GKaYbBJ6DoV1C4ZXhrSb2JCNsuSvedyP3Rx cEPgPb4l+BB9w5CAELEoc9EoWmC/j1YgvvjOMYSf1/UsJ0rzo3a1AUp1ygVYzxHGZBww3HY5/zm B+t0mIgeNUElNPloHPZJwBOoSn0Bf5+Dku0ebgtctYvbLi+Vsay7nGZ+g0a8l76tbNg== X-Gm-Gg: ATEYQzwDeLum4ivnCFJ1h6DNSdksxtgYVu4ntZk2BmsyppZdYWVUW4xgXmjN1w4my1R NZJGSymmbXu/RX+9zxbE53vwfjjXGuElV90aw9k+KOw60UQrQ7bTCZQYSkCbJXFxFqb6uuykyGq 64xyktj8XBIPB6oY7eeatg/z1/PlhcmI1UYks4ExZGKLJpta9xjyxvLZLzvTC0fbh+RyiHNRChH aCX/MXS+mc/tIgzCHAJCujh+Dojvzkf7DZMCEY0fIjb+RpptjAZC4/ZAvxiUIgdus83v1eX3yKS zSJZjAXJ5E+6sqcBqdzayugYiejMcoY0Rh0nSPjb1eow0mV0edpYD7EExV4D8hRsQ84XTl3x1sr sLN+OasrIlqYbHxMxwFDZL5Q00x6IRYI8yoWSeDa7q5d9xUGLTig/9foHArFwaJN6lpKSwQ== X-Received: by 2002:a05:7300:8626:b0:2c0:cc90:a71 with SMTP id 5a478bee46e88-2c930e6a365mr2641601eec.8.1775057297548; Wed, 01 Apr 2026 08:28:17 -0700 (PDT) X-Received: by 2002:a05:7300:8626:b0:2c0:cc90:a71 with SMTP id 5a478bee46e88-2c930e6a365mr2641569eec.8.1775057296889; Wed, 01 Apr 2026 08:28:16 -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 v6 35/37] target/hexagon: Add stubs for modify_ssr/get_exe_mode Date: Wed, 1 Apr 2026 08:26:55 -0700 Message-Id: <20260401152657.314902-36-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-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: AW1haW4tMjYwNDAxMDE0NCBTYWx0ZWRfX2+jgdIrdQg28 aLkySTFgTup2KQvQeDpvuGPwiOUOH4A4ZNpLaTMnVs92sVyhrO3kz5fRv5QmIZivOxD9YqjJC3C umC84k3yphFaXMC7Y21bg8CBY42AZ6Xnx7eBam0J3VVwpEkUFB9rDqzaTuZ1G7J6YOzfnp3Q1Cd iE5xrSH+ioN4XgrebPCgQv1g9PdAwxblkwzTKy4nL+hl1Hoj6eEEv6GDw21alhe3LDVK/rR21E5 fI5RhAQQJQwO3ut7YSDYyDw4qpcCm/rarhQyUCsdWYaIYBd8LXYX6yyKCwweqg7XcpvH04IgfVD mV/HmtwRlMHNld5gc4TSE7Ltfj/6OH0v6jzV+4ELZ0TmMIslO4cdpDqzfGCVY1V3nwh0filfHHS tmzokAi8C8vWP/Wwm+p0PnAnjaYO29wjlkl1SLVpV8mCTtdifaqKvVZh/fghiG/1N8QXuJqbLzD AW1lB2yDCLDI7xiseCg== X-Proofpoint-GUID: Ud4idHddUi0yP3Nx-nAxx9pHNQIzIEf- X-Proofpoint-ORIG-GUID: Ud4idHddUi0yP3Nx-nAxx9pHNQIzIEf- X-Authority-Analysis: v=2.4 cv=F8pat6hN c=1 sm=1 tr=0 ts=69cd3992 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=1eS9DRoYkSOUxsN_X7IA: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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 malwarescore=0 bulkscore=0 priorityscore=1501 adultscore=0 clxscore=1015 suspectscore=0 spamscore=0 impostorscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010144 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057358712154100 Add hex_mmu.[ch], cpu mode helpers, and additional includes/stubs that integrate the TLB device with the CPU model. Signed-off-by: Brian Cain --- target/hexagon/cpu-param.h | 4 + target/hexagon/cpu.h | 17 +++ target/hexagon/hex_mmu.h | 26 ++++ target/hexagon/internal.h | 9 ++ target/hexagon/sys_macros.h | 3 + target/hexagon/cpu.c | 24 ++++ target/hexagon/hex_mmu.c | 268 ++++++++++++++++++++++++++++++++++++ target/hexagon/translate.c | 2 +- 8 files changed, 352 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 15dd99d2155..c4fac9c2d38 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -41,6 +41,9 @@ typedef struct HexagonGlobalRegState HexagonGlobalRegStat= e; #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 @@ -54,6 +57,8 @@ typedef struct HexagonGlobalRegState HexagonGlobalRegStat= e; #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 =20 #define HEX_CPU_MODE_USER 1 #define HEX_CPU_MODE_GUEST 2 @@ -70,6 +75,12 @@ typedef struct HexagonGlobalRegState HexagonGlobalRegSta= te; #define MMU_GUEST_IDX 1 #define MMU_KERNEL_IDX 2 =20 +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 =20 @@ -131,6 +142,10 @@ 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; uint64_t t_cycle_count; #endif uint32_t next_PC; @@ -181,12 +196,14 @@ struct ArchCPU { bool short_circuit; #ifndef CONFIG_USER_ONLY 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) FIELD(TB_FLAGS, PCYCLE_ENABLED, 4, 1) =20 G_NORETURN void hexagon_raise_exception_err(CPUHexagonState *env, diff --git a/target/hexagon/hex_mmu.h b/target/hexagon/hex_mmu.h new file mode 100644 index 00000000000..4f556c715a9 --- /dev/null +++ b/target/hexagon/hex_mmu.h @@ -0,0 +1,26 @@ +/* + * 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" +#include "monitor/monitor.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(Monitor *mon, 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/sys_macros.h b/target/hexagon/sys_macros.h index f497d55bb81..364fcde7383 100644 --- a/target/hexagon/sys_macros.h +++ b/target/hexagon/sys_macros.h @@ -139,6 +139,9 @@ #define fDCINVIDX(REG) #define fDCINVA(REG) do { REG =3D REG; } while (0) /* Nothing to do in qem= u */ =20 +#define fSET_TLB_LOCK() hex_tlb_lock(env); +#define fCLEAR_TLB_LOCK() hex_tlb_unlock(env); + #define fTLB_IDXMASK(INDEX) \ ((INDEX) & (fPOW2_ROUNDUP( \ fCAST4u(hexagon_tlb_get_num_entries(env_archcpu(env)->tlb))) - 1)) diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 4da1b01fcd1..4e9c65f785a 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) { } @@ -52,6 +59,7 @@ 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_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, @@ -279,7 +287,11 @@ static TCGTBCPUState hexagon_get_tb_cpu_state(CPUState= *cs) } =20 #ifndef CONFIG_USER_ONLY + hex_flags =3D FIELD_DP32(hex_flags, TB_FLAGS, MMU_INDEX, + cpu_mmu_index(env_cpu(env), false)); hex_flags =3D FIELD_DP32(hex_flags, TB_FLAGS, PCYCLE_ENABLED, 1); +#else + hex_flags =3D FIELD_DP32(hex_flags, TB_FLAGS, MMU_INDEX, MMU_USER_IDX); #endif =20 return (TCGTBCPUState){ .pc =3D pc, .flags =3D hex_flags }; @@ -299,11 +311,15 @@ 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); HexagonCPUClass *mcc =3D HEXAGON_CPU_GET_CLASS(obj); CPUHexagonState *env =3D cpu_env(cs); +#ifndef CONFIG_USER_ONLY + HexagonCPU *cpu =3D HEXAGON_CPU(cs); +#endif =20 if (mcc->parent_phases.hold) { mcc->parent_phases.hold(obj, type); @@ -317,7 +333,14 @@ 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; + + env->t_sreg[HEX_SREG_HTID] =3D cpu->htid; + env->threadId =3D cpu->htid; #endif env->cause_code =3D HEX_EVENT_NONE; } @@ -346,6 +369,7 @@ static void hexagon_cpu_realize(DeviceState *dev, Error= **errp) gdb_find_static_feature("hexagon-hvx.xml")); =20 qemu_init_vcpu(cs); + cpu_reset(cs); mcc->parent_realize(dev, errp); } diff --git a/target/hexagon/hex_mmu.c b/target/hexagon/hex_mmu.c new file mode 100644 index 00000000000..c921e82b377 --- /dev/null +++ b/target/hexagon/hex_mmu.c @@ -0,0 +1,268 @@ +/* + * 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) +{ + qemu_log_mask(CPU_LOG_MMU, + "tlbw[%03" PRIu32 "]: 0x%016" PRIx64 "\n", + index, entry); +} + +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(Monitor *mon, CPUHexagonState *env) +{ + HexagonCPU *cpu =3D env_archcpu(env); + hexagon_tlb_dump(mon, 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 %" PRIu32 ": %s, exe_mode =3D %s, tlb_lock_st= ate =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%" PRIx32 ", 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 %" PRIu32 " attempted to tlbunlock without h= aving 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 91dff442c80..07829063868 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -1005,7 +1005,7 @@ static void hexagon_tr_init_disas_context(DisasContex= tBase *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 Wed Apr 1 20:45:44 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=1775057390; cv=none; d=zohomail.com; s=zohoarc; b=Ycj37zb7nHZEa9/jTDOOjZwS5plfIqW172S0Qn38GqmvHPgx/gF3i4YkWTzOD3Wo0Uy+wTxrPgOFhllIMI/uSAsMT130Dsi8JE2U+t66N+bKj6MhfbAoTAR5xwk4ImeGiTHkrxCjQ7MKnlPyI8dXLSO75Nioy2LZHzx2oM3Q6Vs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057390; 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=6ZZDuz6n4mV1vg7UyXtzywWZTFyf36zcYE/3mP+wDMo=; b=Ixrp2ZWr15Jvce3ojCsdI5li9wAORTVHKMPnfO68Pfh8KqhYm8GcO6LkggNyxVXdMmZZ1QcwVTUYwsYwQkRQJfLVvKWBqW/hFqA8MiSu/KR4zUNtxZCmdPLQspHMClTym0Nvrt+PduwWeWZKYEpmK5nQeoH4RKkPsgVExPtE3bE= 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 1775057390869798.3624467670293; Wed, 1 Apr 2026 08:29:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xUd-00010F-7v; Wed, 01 Apr 2026 11:28:31 -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 1w7xUU-0000q2-5t for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:23 -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 1w7xUS-00086E-RI for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:21 -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 631EInXI390125 for ; Wed, 1 Apr 2026 15:28:19 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 4d95118cm9-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:28:19 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-2c16233ee11so8130535eec.1 for ; Wed, 01 Apr 2026 08:28:19 -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-2ca78df3b84sm38491eec.5.2026.04.01.08.28.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:28:17 -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= 6ZZDuz6n4mV1vg7UyXtzywWZTFyf36zcYE/3mP+wDMo=; b=Qr89xrpMLTrKjjxF 2R+wYDAumNX8I7Ec/W34wRNT9/BhhkXC4Tpp2RSKIs3+U/+hOpNUm4BHXU/xIXWD MkN2DYC+aEsJzbCq0Ldfij4R8Bphtmw0JVxjc2da8oHgn6SaU/BKM4t047qHGRjh PF84v7XtNFM4w3h23hEb1h+Pvbdm8o9ZxWn+R9XZzM3bGgvGQjnFEGijXwINpiYK MtJNZoiK8cEh7wDzgVTzHN8ZtGWEo0rDTERj3gWiUtdyy3zpGguVnGUILtRs9kJ3 X7+rjvFqLKl1FNsEIWVfPtAppsBaVDWn0hN7bIVCsWdMfwnP2g4nmP5I7SuEWReq jDaLPQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057298; x=1775662098; 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=6ZZDuz6n4mV1vg7UyXtzywWZTFyf36zcYE/3mP+wDMo=; b=gW3+YaBZhFsPA8QTa+ostGjoB3YiRXqzbWs2SPaBzDew1qCc8Mi8eekyw7BOTdJmgS plkHXITAmhl99FLyEZtAmkYS+3mtPFcSOPh+B0ACsbL+ceyOBEKOP9AuVus+AlszXjHO bGbH1MsQrzueDYN+n53hOt9TccaoQGMLaXJ4muC7AQtVzWWoqC4Niio2sN47aeTi9D9U enoBzuVZgtJAB+2HFUZfJd1q7NeBTGP5JVP7722le+FYlYChjfabXrbmvN87ebKYMJbx qx0XGlftqddQ+LO3ZCqT2Crhn2h5osOy9MSKfU9lo2CZrdW/wBSdcdonoSH3a6xBQwrh u54A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057298; x=1775662098; 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=6ZZDuz6n4mV1vg7UyXtzywWZTFyf36zcYE/3mP+wDMo=; b=ogsXpD9wCO2NxldeT3/JPH14ATtqB7pgw7wi1hST4dzPOWSlpZLxVmTCeBowRSjbmw +Yaxb62BMvY+DdL5niL4b2LijNImtyo1xipxHi+YlNh/gW/XrJ56TBf85jp/GP2+HSm8 L6qj5Wfmkbwnohe5t2ioUgVAqoHEi8hiowah9a6xFBWY3JjzVp83RXyH0p7MNCoy6fvP U5dCcjXCufN9AxFJcur9UD7+juwQq47dP9bCGp9dhLtlkhOezyf7+a73YApSOR6CLAzu ObjyRcAt+GGQLedVOhLt2N4UUDG92G6a8mO2PgQ+qHA6GWt3N9pqgqXKoV31c5fUeSF8 usaQ== X-Gm-Message-State: AOJu0YyxQ3QbVzbQBg3tS8R6QKUoCYUyY0YrDtQN9Qc4U062BgCSsHms lAFNv7OwrcdK2RR9mjgZRoNL3/BM0VF/8Gnfdma5v9GaEmFXJR4wscIFwZTupULqBK0QmgqcS+Y cdkkSRqvMZ5+sMvw1k8OIy5j/1RsJNB43MWwVlWSGiNS/BtwF5kaljzbELVieUyCfuQ== X-Gm-Gg: ATEYQzx7w5tA/szjJEJGHaPtvq7rsMudqWni0YvD4QfjcTeVp0+yJBPB/5yd0DQRfAb DIAJ6zolY815qEo2hsdJEc1nx4KofRoaVMjEzaA6U8V22Id3BN454LJ8gj+z890hfO5ihEfR9Ri sJfIUVa6tZzBGaSmVyM3X01WqBNGTnKS6+n102JnfSYmJ3xLz3ul2V7LbwdgpYVx8s0jJnx4l0G xCmHoFjfKi7Ia4IzopAVIiF12LG81CzkPCzLY7iVQc8RbcvLVKPoKCrTpH9CLSsd8O5k9CCBwJj R8B+yQwe7G69e8/jBSB0KuJEGdhteOcdxeqqUNkepa3qQul96ZEDaBsy9dQ76c9Bm0ebfxggQQ9 93+sbBe1FAvV58FHBo2pxZuYpC/YKghuAZxWt8dNl1Jo+H7nSu+Ijc8yNtVwY3PkzddE1hw== X-Received: by 2002:a05:7300:ed18:b0:2c5:b23e:48ab with SMTP id 5a478bee46e88-2c9321b76b5mr2162144eec.21.1775057298283; Wed, 01 Apr 2026 08:28:18 -0700 (PDT) X-Received: by 2002:a05:7300:ed18:b0:2c5:b23e:48ab with SMTP id 5a478bee46e88-2c9321b76b5mr2162113eec.21.1775057297690; Wed, 01 Apr 2026 08:28:17 -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 v6 36/37] target/hexagon: Define f{S,G}ET_FIELD macros Date: Wed, 1 Apr 2026 08:26:56 -0700 Message-Id: <20260401152657.314902-37-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-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: AW1haW4tMjYwNDAxMDE0NCBTYWx0ZWRfX4GrQdC2VuvrL uQeZ6sYJdTLYjD+SrkdZV8sv0O0vr4Pz1HyUGbUSGzaHr7nGnzDAs68SI/W4qGU5SF/vkcaAqCg EeevdXlWQtGgjmeBvuf6XlAP4oGO51bg/izrIQx80Cdja7NQp4KSGS3aUM6PQo0+0YU52OC3ZOi UERxiCuf3yIduCxypqmaAvd6/U3zefnQbRNXBg+lHLij9e5o24HlERYBSUZOO+caSaV2FBAVwOe oDWii/4i7YRC1dt5yieeb3OAItEC+GtqSfBkAb3YeeUmoj/4P4levtHwL8Cb7XId0IficXHdkX/ YWsRPt3WfMFgR6BrC/FaKnMc0FuNHZjFTGufOylfcuP9qipS9kd5Ea7Q72xNMCyplL1rtkmRHUi cZgvaHyaKv3GK5/pMzLMEXK/anF+NkJah16hTJtKLVO7uzgypGFH8f/4kCgQSppkaNO9QjbOgJZ WxG1H9OiI7PN9vgEPyg== X-Proofpoint-GUID: SQ-NGRFfNLubvkVUXPSJYoX-3VRcFg80 X-Proofpoint-ORIG-GUID: SQ-NGRFfNLubvkVUXPSJYoX-3VRcFg80 X-Authority-Analysis: v=2.4 cv=F8pat6hN c=1 sm=1 tr=0 ts=69cd3993 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=OC-ZKJ6AczBSh3OnBRYA: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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 malwarescore=0 bulkscore=0 priorityscore=1501 adultscore=0 clxscore=1015 suspectscore=0 spamscore=0 impostorscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010144 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057392851154100 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 Wed Apr 1 20:45:44 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=1775057693; cv=none; d=zohomail.com; s=zohoarc; b=HUwDg86/yw2e91Syf5/qfFgj4dhd8kzyXJA8FGGiEEd3Jaq04UHoNlOOEq2LhAJpxEsTBdoFc3/2vQGaj9Edrkjub5lgfGjB3gOaq5CFgOqZKUlkQDIAKBwpsPUBORbLIj0oEAQibT/RyZdOtjDOdnSt/vM/xwbwGvw3kGimMX8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775057693; 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=nRE5dph8qmCqX0qFBKBHDP0ukKPcruX5XhECIozwIQc=; b=f8LOGUEPvJFGLJnC9/HJTIv3JVcJ0fu/iMo4tkkxBo8UNu9R50iKJE7x2zCmo6e8oNhfs9NLh8lrIPTGYjEROLSlkKX7BgqA4kJwPpOvox9w8Qb8NydRZqJyzpjnUxvosbgr2SUwnVzKk3boJY4tf5T51EVS5GFU9VKL1WOSetk= 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 177505769302082.1332020664222; Wed, 1 Apr 2026 08:34:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w7xUj-00013M-Di; Wed, 01 Apr 2026 11:28:37 -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 1w7xUg-000121-NI for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:35 -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 1w7xUe-00086n-Ap for qemu-devel@nongnu.org; Wed, 01 Apr 2026 11:28:34 -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 631EInDH390128 for ; Wed, 1 Apr 2026 15:28:21 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 4d95118cmc-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 15:28:20 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2c0ba59a830so8888335eec.0 for ; Wed, 01 Apr 2026 08:28:20 -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-2ca78df3b84sm38491eec.5.2026.04.01.08.28.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 08:28:18 -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= nRE5dph8qmCqX0qFBKBHDP0ukKPcruX5XhECIozwIQc=; b=eTuim89rG+wymY1J hzCYwCjxeSLGVWY5vOPnUKZdtFIlRpguNp6NPhqBXVzCRUQO9Ow57SVmN0PYl4mk MyDG3K2rrRszbd89g8K1LTEHKh9+xtT0aBHgxgY4waeiEqtI4ftlB36l5SDtN5FR YZQR8A2kJCcM6w0z4PZUdJRK9UwwqV7v1Hmm1Hs+NHEbEvjD2D7UkYIkIiEwTmtY /XqbVXMC9ENoxW5Nb8dyhBkXP/FCwD7cKM8iaa5y1j1HfbEVy+cI8pn4zRhxKGCB 01gF3oFdHWz6sqNGojbpkQvq4UQpj2nkblIGk9cuu5NgCBsmflmU9cdBYC1sP99P CTj2iA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775057300; x=1775662100; 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=nRE5dph8qmCqX0qFBKBHDP0ukKPcruX5XhECIozwIQc=; b=AgacQwr8d3RuVn0UApKTIGkpuFBccxHnkpRYS2MatOSc6n15XLacKbzbShVeVDxewG +pQw7tbA5bJSrkWgQCDHBVpewjCxdDkQAH3AYLZE+2nCTbaYrDZ29REtQIdr2s2COBKv t6NsX71GdR6P7f3jV1NgW/vqMTbcTA6HKqxvm+wGESv17yxUhuX2exBCrXUYEGZsZ8s+ 67Ln6dX3Lk3hNFZ7eIKO64kE6Nym5bWFH8xs0w9ebgj8T1do8m8Vyv4X+7TOyWzzC2Jo to6ziEDjWu0LZJQsVSXvUzBST4z3t4F7Ios21GxQUAvEKDhsnhYZ27BauklGULiMrvek fu5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775057300; x=1775662100; 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=nRE5dph8qmCqX0qFBKBHDP0ukKPcruX5XhECIozwIQc=; b=IKP3Ok/93fDHKlue0/XOdjTIj6Pz2fH/aofa4toRpQ5kpEGkIHg3GT9pJBOWsz5hz2 5YN8i6hvprWFfq18ocVIbqwBuuyJETflUFz+A6xBx+hhmVTqDPtEHYYIzLthTXUCm4Pv yGBQtcRUQbgz/hrrVODBZNhY+K5sEUy1IKpZi0GUEaqbN9lQMOVS1iP1+OgQlgnbRKqs a7paF7LX9sj3V4pNIQl7cizpUbDvTbzSQ9zUlTkQwILzbmF0TG67LmlzP7nc1RtsyQZK k5v88LIQS30ESuTpOas3ITDQ3aK06RoVcVnq6NEw0ZevJDW63YtIqS/ZFLBGxwAgWE8P PS9g== X-Gm-Message-State: AOJu0YxWKvnTPCUQ7TpIPgILj1J/ODqMS8661qY1U4u0JRC21gRBtsag txyHalIxo4HOgVB84A9PzKsARvjhA7ySjI5eI3XtMy1/AxJWRU4xjcvUfCd+iJGKETf9Kd29BRK TWXqIqe742IeSVgM+aG9dF0PFZaDkgvY/cBhZn1f5arvRG5Qz6P9M8q1ZMmNs247slw== X-Gm-Gg: ATEYQzzevfLpbWv/dr6zlQw7ZEurBbNfUujpkFcTbaDsK3+W/Md0MYvOshgUo6eHSVV t0Opxp/FxqcZhkYqiQD5Qt3owfLbK89cFjksLP1ZmHdaFJgDAVsSd0lSepGPUcz7zOyykPPtwc+ oVvO/V4d60hbUorKc3mhQ1onmbLAWoT/mXNnxIVdIsNb6EmdTL0VQrdP19w4Nzrc9Pf6ZlHLAVG TFDgV49y7rmgcovZF5Pr6yuRJNrJB+RonjxY3sHb530S2rAy7q0yeDfeg1I1bQt09vrIAbR8Z0w Qx9JdQsw74OoLvduG6ibTf6cQ5zte0E0GeDkezMBdlI9bJEeM3fw4Gwi7fBlq5nG5ZJrzzpLRK5 0nt0+Oz6EsejYOl6UbkN//03gXqcR0c8qJpIDtqYab9rWnzkJlrJ+gUGesFHTWYIYkRZxjw== X-Received: by 2002:a05:7300:2391:b0:2be:7fc2:fc38 with SMTP id 5a478bee46e88-2c930699c8dmr2167276eec.5.1775057299384; Wed, 01 Apr 2026 08:28:19 -0700 (PDT) X-Received: by 2002:a05:7300:2391:b0:2be:7fc2:fc38 with SMTP id 5a478bee46e88-2c930699c8dmr2167256eec.5.1775057298778; Wed, 01 Apr 2026 08:28:18 -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 v6 37/37] target/hexagon: Add hex_interrupts support Date: Wed, 1 Apr 2026 08:26:57 -0700 Message-Id: <20260401152657.314902-38-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260401152657.314902-1-brian.cain@oss.qualcomm.com> References: <20260401152657.314902-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: AW1haW4tMjYwNDAxMDE0NCBTYWx0ZWRfXzFaFD1rkqbtd TxZMnJRuw5rIOPxUUf5fc0juyU6j3nlIbg3FIsSniqfYCRFKivASTPDce32KdMQ7EeG9cPoH7eq wnonN780Y8Xu/bLJGfDSv93QEvx3EWyxTLYXeCmyMfEImw5yiX+MbrKI80QZ6fDKxIj7NK9o4tT xZ4v5gO+1/BmoQaUI69CN/VhDIeG/4i/X43JpoZ8lQZA8s4pPMGIPfbGwL8awpvEEeAUIVGsXgB RZft3tpzxtsq5QcKx/AGNCoGxCA8ByKUyBXb9kdh6zzEJ4mB76jFFr4zXBxT4LUjyckG/3ZhR8r NQKVV+55nQOgBLZaVKK/uv3e1jzWk85XHG6XJmAdXzKXt6fiiDAY5uVns/bm90LK8lk4AqkRp4J TYWdMNwbLi6Mrv9sgFRgMfYYh0ePCLdbrPPTn2BZhqBqohQNXH2NwpUJTdTn2MRIhdGIaAseMMV DZMoKhWxpbsn1DDRclA== X-Proofpoint-GUID: iyfEb1-l7aRTjW6UUyeafrQZqArD6Vbp X-Proofpoint-ORIG-GUID: iyfEb1-l7aRTjW6UUyeafrQZqArD6Vbp X-Authority-Analysis: v=2.4 cv=F8pat6hN c=1 sm=1 tr=0 ts=69cd3995 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=Wgxd2PEYNp06QwGkU4EA: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-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 malwarescore=0 bulkscore=0 priorityscore=1501 adultscore=0 clxscore=1015 suspectscore=0 spamscore=0 impostorscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010144 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: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1, 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: 1775057694113154100 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 | 2 + target/hexagon/hex_interrupts.h | 15 ++ target/hexagon/cpu.c | 4 + target/hexagon/hex_interrupts.c | 379 ++++++++++++++++++++++++++++++++ 4 files changed, 400 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 c4fac9c2d38..3049b5a411a 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -196,6 +196,8 @@ struct ArchCPU { bool short_circuit; #ifndef CONFIG_USER_ONLY HexagonTLBState *tlb; + uint32_t boot_addr; + 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 4e9c65f785a..9ae8e104043 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -59,6 +59,9 @@ 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_UINT32("exec-start-addr", HexagonCPU, boot_addr, 0xfffffff= f), + 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), @@ -341,6 +344,7 @@ static void hexagon_cpu_reset_hold(Object *obj, ResetTy= pe type) =20 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..c00b45e1c8b --- /dev/null +++ b/target/hexagon/hex_interrupts.c @@ -0,0 +1,379 @@ +/* + * 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, new; + + 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); + 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)) { + bool syscfg_gie, iad, ssr_ie, imask; + + 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; + } + syscfg_gie =3D get_syscfg_gie(env); + iad =3D get_iad_bit(env, i); + ssr_ie =3D get_ssr_ie(env); + 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