From nobody Wed Apr 8 01:18:42 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=1773201031; cv=none; d=zohomail.com; s=zohoarc; b=WzNY/ruaaG06iz42ZncEGotB0XCLEwzfjKv5KvcK06euIZuV5ffm/GAaPsXQZPv2AbVyueorv8C7fFpw494c3IoXL02d85XAePw/vvjVlKBhTy9J9i+Tf/T0Rq0xpRSgZxGMFSlGv8L7WFlZD+xTO/0dbURPHvretK6sVp3z21o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773201031; 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=U38qXGOwKYyLhmgEhqxCI0AjlwKaQdK8EKkEV4ICSU8=; b=DLnGHaVD0vKHcv/eeeEHcAH97GENq6e/7ki8etlbUyJyqG7gMKkhzC1HuwWjr4zAc/KKxXudns+PRA7dwXIE5w2ogTIOIWaaWMSOCMLaPyc0DYUkOcNoJtk6wNpGp+OqZ85vkG8H/Jeg+kDVkXpsWpKhZPG/f3LNfGQFAywihzM= 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 1773201031961712.7586274423666; Tue, 10 Mar 2026 20:50:31 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AaE-0001rw-Fj; Tue, 10 Mar 2026 23:50: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 1w0AZl-0001aE-GY for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:40 -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 1w0AZi-0005Bc-Ve for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:37 -0400 Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62AIn5Dp3759633 for ; Wed, 11 Mar 2026 03:49:31 GMT Received: from mail-ot1-f70.google.com (mail-ot1-f70.google.com [209.85.210.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctk8uk2ws-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 03:49:31 +0000 (GMT) Received: by mail-ot1-f70.google.com with SMTP id 46e09a7af769-7d7521130b6so18029445a34.3 for ; Tue, 10 Mar 2026 20:49:31 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d76ae39b39sm946430a34.15.2026.03.10.20.49.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 20:49:29 -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= U38qXGOwKYyLhmgEhqxCI0AjlwKaQdK8EKkEV4ICSU8=; b=YgFF2oB7/aPw0x/X AbgxlC3wwrwDZHC1x+z6IjwsGG5TLOatejiSQJ/ZYwcJRh3mhfOgxjn71UbiGgTJ Kq7fhpljXd/3m+jWyeSGZbT7A+sDEY+efE/L/eqQR1ezupGOqow0CiIr6dOQMzJG Ywa+2r7Fc5LcP04/5TaKv+CxUmhtwr4hnaIIkLOSskU4XaKDb4aVH+CW9xi15N1P zDv2UphTdbKOZsi8/4XeLOGaFdx0HEO3NhDGRJf3Iamzrlgv0EiJ/PesYTmHG28Y kQofROi/gRiyfZnbCfWHXfKHYhFxa4hDtiWaLHEwhfiNPBCk89ZnaHZy2Fn5eJM1 XhctlA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773200971; x=1773805771; 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=U38qXGOwKYyLhmgEhqxCI0AjlwKaQdK8EKkEV4ICSU8=; b=SYh5cp2fz6IBtKuTF96hroXckP0k+mLatPzcV7DfloSscGAJY1i+jpno2A+DdjkA9J ElguSu9c36GOdqc28J6/ENPfMPs45i4sbNic+YlKLhBeGzYaA3vyYA1OUO8Dc83fEJrf 6TTnTYKterbQg+LzcXp2WSusAOJVbGv1rOz8C4VCdVuGLJs7Sg3K4ONEjo8HdcEbzJGx 7NVg8kUCAEFgbvCLdTde29uf/db4gABBmN8YgS9U+8lV9P1yMrZ2ZpjDmo079JEQg76u 75xEkN5SXXtjhIrfO4sQkwBcZXQ9mxcZVbjLwvdqe3+KtmMIzckMdWdIuwvvdrqpG8oU HcXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773200971; x=1773805771; 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=U38qXGOwKYyLhmgEhqxCI0AjlwKaQdK8EKkEV4ICSU8=; b=gEs4qkGW4Omu76yw0Epf6cZitIMi1IB362hxhPLIAlqDMwPn6tqzC9lcRR3gpdmVH9 +SZm7+zJPZqPDzSLMXkjWvHulWqGgt3NOxz7g5IKLENZsT05m5c9zs4W0JK2Kp/iI0vA 9wyvT7CPJ6pK7Icw/KoO8t4oEWhOBCijapNjzmz3A9x426HCpKdVtH1ozVsphuFXEA5/ +AqOH+02p+GeLQdNoensU7B+j4/+7wPxafTbazBPMkpeUDElrRvpSfkJn9XAjDGeowSu O3c6rgNCo+1i4wvxNp/SlYwOltFfR26gBDFiQwbscU3rShobIUNP8C2VH0ybTL5KXvOP BkHQ== X-Gm-Message-State: AOJu0YxvUf5tUv2UUU5GO+uIG6vEot8I0bhg805jTpr2o1eFimCx8OCJ 9Trtwt7rf2NMQ5+qFBLXp3JrSvXqfxQv6d69xNEzn5QySLYFy2hoENtHjwWcCwJ6F3VcfzmVzLZ 4UqoEw6iAKEmNVg2+Vel+j9V91ssO5/JvQ7h8yj8DO+CY/7AOF/dCOI+HYxrimF5O1A== X-Gm-Gg: ATEYQzwSzOuRZfQE/b66dfN195vURTcjGpW8JUl1X/m5149aaxKJCk3KlwrGzd4z/KP tCZYq0fSN7aA1KkytmgeHmCbOVq04oOkcbmwLWmixtJBj851GLktcrUi7qSxViNVOsk/SSWBR/R knhRrerjNFIyXaL4isU0zx/zB0VIGUMu3jDtyYlJ/RuQXku98fGlZ4Ty3bmN7uhgqG8HDFrSgLx JkaT/2etujteywPuWpsHNxss2QPuhnb6iT0U2nPztoVQ/Xrdq+39WZzPhqndK8UcdXt9xrP3gmD VZevBoZqNb0qLHYWwHjnwUTf2gPDn3Wm+EiFJEDKI1RGNOU9Q5HFvD9aJdxQf98tMOgQqrhFB+g 32+m4hEcNnMpfkcEnM4vr+SoKsbO1HaIeQ2esTXgePJGTR2EIzQ2T1LMS2XYvjAbqrcqsLg== X-Received: by 2002:a05:6830:3914:b0:7d7:45b7:ed93 with SMTP id 46e09a7af769-7d76a6b86cdmr1001870a34.15.1773200970578; Tue, 10 Mar 2026 20:49:30 -0700 (PDT) X-Received: by 2002:a05:6830:3914:b0:7d7:45b7:ed93 with SMTP id 46e09a7af769-7d76a6b86cdmr1001846a34.15.1773200970058; Tue, 10 Mar 2026 20:49:30 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain , Pierrick Bouvier Subject: [PATCH v5 01/35] docs: Add hexagon sysemu docs Date: Tue, 10 Mar 2026 20:48:49 -0700 Message-Id: <20260311034923.1044737-2-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> References: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: do7VV9ERuoLezGSmAufmW8-66XXaDViF X-Proofpoint-GUID: do7VV9ERuoLezGSmAufmW8-66XXaDViF X-Authority-Analysis: v=2.4 cv=YcmwJgRf c=1 sm=1 tr=0 ts=69b0e64b cx=c_pps a=7uPEO8VhqeOX8vTJ3z8K6Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=NEAV23lmAAAA:8 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=fXLLft-zuLPsu7fQao0A:9 a=QEXdDO2ut3YA:10 a=EXS-LbY8YePsIyqnH6vw:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAyOSBTYWx0ZWRfXzV5cx3Wd99A9 s0qoPqq00oAVkw+2U/ciJaJyPMOrhzwP6Nqw31umiLPIZCETsgN3uHW0INR1yLD89Xnt7fqUjsg bWMIPw+NLaZ37yWa2ov/SFqr6yxcQSoVNoAvM/kRiWNY9pj7On+sLJhSvFZid5kcVQbI5mN0P/Q YEL2KBBF3QKWgK5yIu8O48xVFrDbaHrhOdZHqUfRh7UnAeltRROJf4VoMiaesDwcmZG8woXlBy1 dglhidNQxX6jm016PLj5az/Z55ryFfQ8ZcXAxinpqw0uTn9b27lPmakM8kD/eQG2ozwCyhj+ljJ +zBTZSj5NhD7IQNjPo+6kmBwt3kJy5TtBBXGXQOEngUPilmeRrcV5Gc3/k9DawpkCU/uFbWZjvQ yYvKWw67W4qGH23S6pMjWkgWcUsxKv1I3vwdqZBGwugMyrSk8bCa5RLWB6Ot9IkQ9PAIzYatMVy 6+MLmQIqxSh+vpM0Tng== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 suspectscore=0 impostorscore=0 spamscore=0 bulkscore=0 lowpriorityscore=0 phishscore=0 adultscore=0 priorityscore=1501 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110029 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773201033080158500 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 a53317ff263..17d1d93d595 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -253,6 +253,9 @@ F: disas/hexagon.c F: configs/targets/hexagon-linux-user/default.mak F: docker/dockerfiles/debian-hexagon-cross.docker F: gdb-xml/hexagon*.xml +F: docs/system/target-hexagon.rst +F: docs/system/hexagon/ +F: docs/devel/hexagon-sys.rst T: git https://github.com/quic/qemu.git hex-next =20 Hexagon idef-parser diff --git a/docs/devel/hexagon-sys.rst b/docs/devel/hexagon-sys.rst new file mode 100644 index 00000000000..92ebc32dce8 --- /dev/null +++ b/docs/devel/hexagon-sys.rst @@ -0,0 +1,112 @@ +.. SPDX-License-Identifier: GPL-2.0-or-later + +.. _Hexagon-System-arch: + +Hexagon System Architecture +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D + +The hexagon architecture has some unique elements which are described here. + +Interrupts +---------- +When interrupts arrive at a Hexagon DSP core, they are priority-steered to +be handled by an eligible hardware thread with the lowest priority. + +Memory +------ +Each hardware thread has an ``SSR.ASID`` field that contains its Address +Space Identifier. This value is catenated with a 32-bit virtual address - +the MMU can then resolve this extended virtual address to a physical addre= ss. + +TLBs +---- +The format of a TLB entry is shown below. + +.. note:: + The Small Core DSPs have a different TLB format which is not yet + supported. + +.. admonition:: Diagram + + .. code:: text + + 6 5 4 3 + 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |v|g|x|A|A| | | + |a|l|P|1|0| ASID | Virtual Page | + |l|b| | | | | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + 3 2 1 0 + 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | | | | | | | + |x|w|r|u|Cacheab| Physical Page |S| + | | | | | | | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + +* ASID: the address-space identifier +* A1, A0: the behavior of these cache line attributes are not modeled by Q= EMU. +* xP: the extra-physical bit is the most significant physical address bit. +* S: the S bit and the LSBs of the physical page indicate the page size +* val: this is the 'valid' bit, when set it indicates that page matching + should consider this entry. + +.. list-table:: Page sizes + :widths: 25 25 50 + :header-rows: 1 + + * - S-bit + - Phys page LSBs + - Page size + * - 1 + - N/A + - 4kb + * - 0 + - 0b1 + - 16kb + * - 0 + - 0b10 + - 64kb + * - 0 + - 0b100 + - 256kb + * - 0 + - 0b1000 + - 1MB + * - 0 + - 0b10000 + - 4MB + * - 0 + - 0b100000 + - 16MB + +* glb: if the global bit is set, the ASID is not considered when matching + TLBs. +* Cacheab: the cacheability attributes of TLBs are not modeled, these bits + are ignored. +* RWX: read-, write-, execute-, enable bits. Indicates if user programs + are permitted to read/write/execute the given page. +* U: indicates if user programs can access this page. + +Scheduler +--------- +The Hexagon system architecture has a feature to assist the guest OS +task scheduler. The guest OS can enable this feature by setting +``SCHEDCFG.EN``. The ``BESTWAIT`` register is programmed by the guest OS +to indicate the priority of the highest priority task waiting to run on a +hardware thread. The reschedule interrupt is triggered when any hardware +thread's priority in ``STID.PRIO`` is worse than the ``BESTWAIT``. When +it is triggered, the ``BESTWAIT.PRIO`` value is reset to 0x1ff. + +HVX Coprocessor +--------------- +The Supervisor Status Register field ``SSR.XA`` binds a DSP hardware thread +to one of the eight possible HVX contexts. The guest OS is responsible for +managing this resource. + +.. seealso:: + + ``target/hexagon/README`` in the QEMU source tree for more info about = Hexagon. diff --git a/docs/devel/index-internals.rst b/docs/devel/index-internals.rst index 7a0678cbdd3..0471db80645 100644 --- a/docs/devel/index-internals.rst +++ b/docs/devel/index-internals.rst @@ -14,6 +14,7 @@ Details about QEMU's various subsystems including how to = add features to them. block-coroutine-wrapper clocks ebpf_rss + hexagon-sys migration/index multi-process reset diff --git a/docs/system/hexagon/cdsp.rst b/docs/system/hexagon/cdsp.rst new file mode 100644 index 00000000000..237529273cb --- /dev/null +++ b/docs/system/hexagon/cdsp.rst @@ -0,0 +1,12 @@ +.. SPDX-License-Identifier: GPL-2.0-or-later + +Compute DSP +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +A Hexagon CDSP is designed as a computation offload device for an SoC. The +``V66G_1024`` machine contains: + +* L2VIC interrupt controller +* QTimer timer device + +This machine will support any Hexagon CPU, but will default to ``v66``. diff --git a/docs/system/target-hexagon.rst b/docs/system/target-hexagon.rst new file mode 100644 index 00000000000..5f7084a6a08 --- /dev/null +++ b/docs/system/target-hexagon.rst @@ -0,0 +1,102 @@ +.. SPDX-License-Identifier: GPL-2.0-or-later + +.. _Hexagon-System-emulator: + +Hexagon System emulator +----------------------- + +Use the ``qemu-system-hexagon`` executable to simulate a 32-bit Hexagon +machine. + +Hexagon Machines +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +Hexagon DSPs are suited to various functions and generally appear in a +"DSP subsystem" of a larger system-on-chip (SoC). + +Hexagon DSPs are often included in a subsystem that looks like the diagram +below. Instructions are loaded into DDR before the DSP is brought out of +reset and the first instructions are fetched from DDR via the EVB/reset ve= ctor. + +In a real system, a TBU/SMMU would normally arbitrate AXI accesses but +we don't have a need to model that for QEMU. + +Hexagon DSP cores use simultaneous multithreading (SMT) with as many as 8 +hardware threads. + +.. admonition:: Diagram + + .. code:: text + + AHB (local) bus AXI (global) bus + =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=82 + =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=90 =E2=94=82 =E2=94=8C=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=90 = =E2=94=82 + =E2=94=82 L2VIC =E2=94=9C=E2=94=80=E2=94=80=E2=94=A4 =E2=94= =82 =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80=E2=94=BC=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=96=BA = =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=A4 + =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=96=B2=E2= =94=80=E2=94=80=E2=94=80=E2=94=98 =E2=94=82 =E2=94=82 Hexagon DSP = =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=82 =E2=94=82 =E2= =94=82 =E2=94=82 =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=90 + =E2=94=82 =E2=94=82 =E2=94=82 N threads =E2= =94=82 =E2=94=82 =E2=94=82 DDR =E2=94=82 + =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=A4 =E2=94=82 =E2=94= =82 =E2=94=82 =E2=94=82 + =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=B4=E2=94=80=E2= =94=80=E2=94=90 =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=A4 =E2=94=82 + =E2=94=82QTimer =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 = =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=82 + =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 + =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=98 =E2=94=82 =E2=94=82 =E2=94=8C=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=90 = =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=82 =E2=94=8C=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=90=E2= =94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 + =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=90 =E2=94=82 =E2=94=82 =E2=94=82 HVX xM =E2=94=82=E2= =94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 + =E2=94=82QDSP6SS=E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 = =E2=94=82 =E2=94=82 =E2=94=82=E2=94=98 =E2=94=82 =E2=94= =82 =E2=94=82 =E2=94=82 + =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=98 =E2=94=82 =E2=94=82 =E2=94=94=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=98 = =E2=94=82 =E2=94=82 =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=98 + =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=82 + =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=90 =E2=94=82 =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=98 =E2=94=82 + =E2=94=82 CSR =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 + =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=98 =E2=94=82 =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=90 =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=90 + =E2=94=82 =E2=94=82 TCM =E2=94=82 =E2=94=82 VTC= M =E2=94=82 + =E2=94=82 =E2=94=82 =E2=94=82 =E2= =94=82 + =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=98 =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=82 + =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =98 + +Components +---------- +Other than l2vic and HVX, the components below are not implemented in QEMU. + +* L2VIC: the L2 vectored interrupt controller. Supports 1024 input + interrupts, edge- or level-triggered. The core ISA has system registers + ``VID``, ``VID1`` which read through to the L2VIC device. +* QTimer: ARMSSE-based programmable timer device. Its interrupts are + wired to the L2VIC. System registers ``TIMER``, ``UTIMER`` read + through to the QTimer device. +* QDSP6SS: DSP subsystem features, accessible to the entire SoC, including + DSP NMI, watchdog, reset, etc. +* CSR: Configuration/Status Registers. +* TCM: DSP-exclusive tightly-coupled memory. This memory can be used for + DSPs when isolated from DDR and in some bootstrapping modes. +* VTCM: DSP-exclusive vector tightly-coupled memory. This memory is acces= sed + by some HVX instructions. +* HVX: the vector coprocessor supports 64 and 128-byte vector registers. + 64-byte mode is not implemented in QEMU. + + +Bootstrapping +------------- +Hexagon systems do not generally have access to a block device. So, for +QEMU the typical use case involves loading a binary or ELF file into memory +and executing from the indicated start address:: + + $ qemu-system-hexagon -kernel ./prog -append 'arg1 arg2' + +Semihosting +----------- +Hexagon supports a semihosting interface similar to other architectures'. +The ``trap0`` instruction can activate these semihosting calls so that the +guest software can access the host console and filesystem. Semihosting +is not yet implemented in QEMU hexagon. + + +Hexagon Features +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D +.. toctree:: + hexagon/cdsp + diff --git a/docs/system/targets.rst b/docs/system/targets.rst index 5b12858b216..5ebdd0f7fea 100644 --- a/docs/system/targets.rst +++ b/docs/system/targets.rst @@ -30,3 +30,4 @@ Contents: target-sparc64 target-i386 target-xtensa + target-hexagon --=20 2.34.1 From nobody Wed Apr 8 01:18:42 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=1773201006; cv=none; d=zohomail.com; s=zohoarc; b=LE0rpNtfeF2PsuZV6QV6GjGOrbv7ssoRH/4TYpJQeu/mnNZCflrt1HCW2IfQzI8seYqkhBuLy0mxYU1cDcaPnLPE5IsaAirSHXB96gFXTlyXMj1KDHHXcBikreI134PZ5aNYrMGRZlPdReeOnFVcx0BFy11UrMHSXXiabRkoA0Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773201006; 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=ft1t72RTroIqTAIMRGjaRpx70tDFafRezCuScRF+dzJz3ol5bjxc6iQrjCRlJboOGlDXcQeEBD9iuXX32juJXP0F8zA6mt2O4cZGV6SzCh1t33tTq4+ZI0jTSdpw14dWvFEzsf5PZbyjKbI/l3MXHKCS+LjT6xhq001VF5yEJrM= 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 1773201006203109.0350366881238; Tue, 10 Mar 2026 20:50:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AZy-0001d9-MU; Tue, 10 Mar 2026 23:49:50 -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 1w0AZl-0001aF-VX for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:40 -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 1w0AZj-0005Bh-2H for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:37 -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 62AKushp1863218 for ; Wed, 11 Mar 2026 03:49:32 GMT Received: from mail-ot1-f71.google.com (mail-ot1-f71.google.com [209.85.210.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctmw82ndr-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 03:49:32 +0000 (GMT) Received: by mail-ot1-f71.google.com with SMTP id 46e09a7af769-7d74d78c5f7so5573124a34.1 for ; Tue, 10 Mar 2026 20:49:32 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d76ae39b39sm946430a34.15.2026.03.10.20.49.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 20:49:31 -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=Csen9qvAzd6DeOj6 NLL1kbfy+A2zVsmZWY6CgDbeVPd27jtWT03YySRWiQF6LUdeHwOa6JzX5HZPbazU tq0V/fi4KJk+at0opRFNxnRu4ovHOIxfbbIrXV6AI/O/KdAE9My5e0+xj2rljhe1 e68gm59g7+k1XyBinAYr70Xt4nmhbY8x6mJvtvFNCqHQqRDF8gkOptyciJJZdeYN HHTUnqLq1SGbFTpbnpXOjTCtJo6ESmv/hOOkNQvKKPwWSID29RWgLrrtnSNLLstk GqcMo9PnblIpgdC96mfRMzmQy69z/ltdlDRyWvIMd22205LJrovweO/KqsbN004O ykjdzQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773200971; x=1773805771; 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=K+NVD/Id3eRPjnnBt5nfw1HJiW/hWBfIFbUt5r6LsJ7qj5q9kSpa8zmE998spivxKG MNAddZ64HZQsvZV9vKnhazNeh7qMjryzo877ja9E0XsPdk+Gq4G2q8kNTrtaWVHecMFO StsaxJ5YFqQ1clxctyfjHIFx38ohu3lISqtTO8EpYgmp9xlzi/DI/4Lojxy6Err2ezFy dSz0drKYsrXXq2v6dQ3VaAeSpqt2Xf7v/ICPSj+qJ52GAXLU/RqMSoliKqdO/EXc3jtz Xj0aov+RmIPFAbY5TOq0DXBiL4LQfdi3JZmMmVdT2zoqPgV16ZdSv/kNZLc5RzpS3KyY zr+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773200971; x=1773805771; 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=iSvGwLUHQNOJfwfTXebociyAdsMStdi2i5Jcfq+ZuxUPXl8Ez92WV++eyFqe77G6N0 GB+q4AybUbiRQAgaRB/S4nYzuhJK0PGAIt0I9QMaqYld3VtwbnPQkgFDx5adAqU0mfE/ 93L8b0eiPPiZ4dtPt7nkC/Ea1LTJPfm3ioL4ta6m/LZtR3Vj2hOFCOY1iI5+4+Q1KZDP 4rGSqKlTmExtkNFaSeXedFhd/C5yZ40FcCt5qNavTGg8tycGzrgj0fVDv5On+meS/4nL ki9PJp/LqCs5RwfLLkzJ6GH5nmgrAnkA9u1Q/9bC/itEaFU0SqByTnETLYagIlklUbt2 Iuvw== X-Gm-Message-State: AOJu0YzhYGPmECABFQcEWi+aDuPh+DBNEdPVu0vPy5tCNvZ2TsluhnwZ Pxe2n4Zq2xfYZ0rUbdfZvTnG3dhXhpfgGE3SlU5Gdg82/Po/yKF8NPwHrxMvTefVAb5zGfKUcTg Qz7Cb/4I/gouxnWPluzY5uNXZ42i3EEj4LTL3BE6RLFMlxcSrrOmt4+Avb/bNqe7PdA== X-Gm-Gg: ATEYQzyCQ4Fq2+U2tohqdRkwVHkawfvKsZH6EMrVoFHVsCvd4BHnnyseAsjnTqNAZSY ECCfUHK7slaNob9aGloxjPwKYEkdjkxco/iU4bNtcUBDUro+CyZYDh/qu4Zs/Csm8oJx9d5UFaz 1ZfZ7FCgWIP54t3ejORQa1b20wHKVm/U851Fep8DoGIPdMPKlnhkcEDM8tQ780vFSiYHS/yMfPH 8soDNHaF8yHbhFhcxQrRsGV2TvK+b0/SFYMEe1HcWp7WpHXddBM+ERniSu77mx2QxezNI/Yt40h Iq83K4J7CbgpkGdw1SVVaHZYuGYWwabkxbQC5POGaQwWFw6/K78+m4a0hVzuEoTyowKZHdBtZSr 64JMN9NyUd5qtdGQqjEyArxVNO5bgY5DEnyXAxA8mWe2Z9GWREbYqove1BHLDC7+J655gBg== X-Received: by 2002:a05:6830:6993:b0:7d7:4de4:2f12 with SMTP id 46e09a7af769-7d76b04012cmr728717a34.8.1773200971651; Tue, 10 Mar 2026 20:49:31 -0700 (PDT) X-Received: by 2002:a05:6830:6993:b0:7d7:4de4:2f12 with SMTP id 46e09a7af769-7d76b04012cmr728699a34.8.1773200971283; Tue, 10 Mar 2026 20:49:31 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain , Pierrick Bouvier Subject: [PATCH v5 02/35] docs/system: Add hexagon CPU emulation Date: Tue, 10 Mar 2026 20:48:50 -0700 Message-Id: <20260311034923.1044737-3-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> References: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: BS-4zBUCbZ4lb7rmd6EFWnjwbqDgFYOA X-Proofpoint-GUID: BS-4zBUCbZ4lb7rmd6EFWnjwbqDgFYOA X-Authority-Analysis: v=2.4 cv=PJECOPqC c=1 sm=1 tr=0 ts=69b0e64c cx=c_pps a=OI0sxtj7PyCX9F1bxD/puw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=2pVdXvZyqgCw3DkElpQA:9 a=QEXdDO2ut3YA:10 a=Z1Yy7GAxqfX1iEi80vsk:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAyOSBTYWx0ZWRfX+t2mjVAbAln5 mEYWse12ZnKImvw73sNfiIxpI+TvXVWvErlJuTHTSYxQnQIKQlgpuOVXdscJyxfPirixQ22iDbJ xctUY8ZBEkht92tgoR3//pMn1wiMQ2kj/mvEXfaWbQGW8AtP3gfYZVE4TTNQY348jiazrWUxMwF UigluBrHJWOSIb2wScULZl719fTmkoeEwTgnJDeir6Ajmcovhv68zGHw9ZgTzqKEtwWh5rQD/HT QmNdRMlKrZw7hLUHWg61lAUyf0yE/T4Kl74VrF/rQt6k1ckVtdl2oYyOcSgwEmyuWyxNL8t9tP6 zoY08uCeSTqxn7oDltjPdxcThQgRQC4Bgoe57D+gvolAjkcbRgJIKXagLMjKmdozFbMQopXinY8 oexfjo/OK6fIJLXWvC8sjYzsSjhQ18ES6SZ/MawIPWTAb/QRMPxTfnHshDQDy6KMgowue98jSb4 0aNTRkjehATw5Gdc4aA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 impostorscore=0 malwarescore=0 spamscore=0 phishscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110029 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773201009833154100 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 8 01:18:42 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=1773201053; cv=none; d=zohomail.com; s=zohoarc; b=NeUEY652kKOPs0jRQBiYl4seLtCapojpvyoYWFZvl6/OWTRfnAhbAp0/tbElDq1DyNe/GURmO8xSSuXKvilSN66jYXVVJ0snmK1EjJGbjSRnJFE+jK5UHMqA9JOjXzV9Fq6xYGCopuPl5O8obVZQU8PdCGXzJkgDqYCaRbdVD+k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773201053; 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=hXTKVadNbF7Nafcc52WYRnadGlu8Tw8n3Q2b2H/Byh4=; b=njAT1PfCeDS8L9t296fs7zY2YfS042DH7Nbmfcyreg6a0g5OZ3aIhtvqfo1udlNPx9p/wtmZidzw2bjHrb+UU2o+RHYvl4wJJszCuOJWCfmqgBEgQoQKAeBVROOGUG57JTwexgl0WP+MLbdoPT36tQJ8swBaU0DOyGHym30OM9g= 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 1773201053290408.7247274616593; Tue, 10 Mar 2026 20:50:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AaA-0001jA-Ed; Tue, 10 Mar 2026 23:50: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 1w0AZk-0001aD-KC for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49: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 1w0AZj-0005Bp-1v for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:36 -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 62AJvdZe3296538 for ; Wed, 11 Mar 2026 03:49:33 GMT Received: from mail-ot1-f72.google.com (mail-ot1-f72.google.com [209.85.210.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctg1muuuy-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 03:49:33 +0000 (GMT) Received: by mail-ot1-f72.google.com with SMTP id 46e09a7af769-7d74d78c5f7so5573267a34.1 for ; Tue, 10 Mar 2026 20:49:33 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d76ae39b39sm946430a34.15.2026.03.10.20.49.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 20:49:32 -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=hXTKVadNbF7Nafcc52WYRnadGlu8Tw8n3Q2b2H/Byh4=; b=Ns 9/PZckDLP3KkrgpuJaXvN4E1e/ms7hhgkRG8j0JEho6JsA92xGcmCeqLRLa17W2B z92whs+MNned4todblOJwxTPPJdS2PTPxNGr6t9BGWGdeipax+pIubLB/28OzKWW i/lN8wJqUSCx+hqV3PDJC50OrF9s/CUuFGRo6e8vSi0tvaNYE7Qa7K4vSCHlZat1 Fz2AE3FB+xylXu7tFGd9SpsLRQueEvq30a3nwrJKC0qQ8OmXx9kzHplydbXl2kJM G/zRUPszpKNGr28ttmQu7YpoM0NDnNSx26uQ0hCKsMpwcdAh/yr3CMLZ7YEeqikq PtxVhwttp+7TBXA5rsaw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773200973; x=1773805773; 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=hXTKVadNbF7Nafcc52WYRnadGlu8Tw8n3Q2b2H/Byh4=; b=Z9skpDKr3VpVdK9qbR5as4ti+PNIcY/vv5iAPpwT4YUdiJD4+gs+wy/oQkHCmmkV1C p3yjDPU0Fx6l3JhFTbQ4V105d2jik1IaszH8XO4HlaFV0NWOOhaVGwOB/1NlLrBnxPjc YC77Upc1hXcBSd9AHmZTejbDCElTm1b9dgYnQDx5sNp48x5cgR8EqlHkzBj6Xw61H6lF 68BK0ziJ9JjPJOXlQzB+6Ik9aHKDXCuej+FlzldJp74g/KWan5uE6cYbhLKcf5LNNSiy 0cvw+pHZr/RmtXTF21Q5gQ24+OQlF0lYrHVKjPoCOzTZBKYRLG2pddjJwnkhplyQjwbq J3ZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773200973; x=1773805773; 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=hXTKVadNbF7Nafcc52WYRnadGlu8Tw8n3Q2b2H/Byh4=; b=nK3xZKdbHMJUg53lIiDpnPjfFciN3/DukCgdcSp3ffcrTRKQo6Uu/2PwZGZrzDuSXz sgTxMzyotEEieVYgX1yMj3CIzQPmTwn/4xBXXkED2cpLlPiQXAZaR+9Bs3VDbo6/g2DK w6xZ6oU5H4su5jhlM/vsQvwChBTldhzZzxIqJPXFSGaaXgzhQk20spPzqn7iaaIEOszn 06I494KXnv6JGIGkNUmpRKB7hJ0EG5jCO9CRlr8iiG471jG2PwFHtG/DU20OIMsSrNon W26gIDdeXGZv60Z+hxC9+Ig39KiRcu0yyGk5keG+8D9Cnv2vJ5umVl4eJs9LRvPf/EX8 QJMg== X-Gm-Message-State: AOJu0Yz6Gwznc/IW/4t4+nq+ZEvS5PrhCkRNkTEvWViSHt0d8vABAK0M hbZr6G37kK3NjDHSeQoBy513Ej16p38uoFn9XxrchoLak+Sg1HxTQF1gueBzESh9qcd6FkmQ68h mOacL0VJY74ojCa8nJm8SNU0VUCztcfvgpAtFbrc/NDyHgi9IMKx29mGM73QYGFDmLw== X-Gm-Gg: ATEYQzw6uXQOnbel5fmdBlDpRQNQOsDCHMtdypU3eeqpOPdeqaYaQ3TkcRU2WYtHmkv ftU6CVymYepRUtzhMsAi1kybS3vwiW4p+vlWhbNaY+HIru+WlmKdL5wdD4oHiTs+tuGe0911mE2 xl0qdDsyPQtm6xS/f+PZjvVPwvjLfRCfIuvtxoD+PkVyj/5dsIliLUUtULyq/S+xxNP4gbIudGt VNEzlRYrtsgHo7UoyGGVVSUx1dnlMAl6+MtdmE7gBikHZYqYumzqoUV6x/7Cw+ZM1kjeYFd/gZd z/dWhsspwZ1hoHq2G0E7o4QA+GmbuokYiUBJOSvE9gOccrbLG/27ZUyGOJxXzQM6oXxG7qJ/yEk wyJZBz9cSYAsQV/yMhynOL7/jZOFKjYlNZdW3e8zzU8W+mAysYBEl3ieR2+JPpIdiR9Y64Q== X-Received: by 2002:a05:6830:2641:b0:7d5:c480:6327 with SMTP id 46e09a7af769-7d76ade4b42mr807777a34.0.1773200972722; Tue, 10 Mar 2026 20:49:32 -0700 (PDT) X-Received: by 2002:a05:6830:2641:b0:7d5:c480:6327 with SMTP id 46e09a7af769-7d76ade4b42mr807761a34.0.1773200972403; Tue, 10 Mar 2026 20:49:32 -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 v5 03/35] target/hexagon: Fix badva reference, delete CAUSE Date: Tue, 10 Mar 2026 20:48:51 -0700 Message-Id: <20260311034923.1044737-4-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> References: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=YOeSCBGx c=1 sm=1 tr=0 ts=69b0e64d cx=c_pps a=+3WqYijBVYhDct2f5Fivkw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=pGLkceISAAAA:8 a=YHbvUooXmMNqKe3LDhEA:9 a=QEXdDO2ut3YA:10 a=eYe2g0i6gJ5uXG_o6N4q:22 a=TjNXssC_j7lpFel5tvFf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: jFW7pDL_fqI7NJ4xbrC8AptZsRHReGi6 X-Proofpoint-GUID: jFW7pDL_fqI7NJ4xbrC8AptZsRHReGi6 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAyOSBTYWx0ZWRfXxzoS7hC9/LWM 8HMb4Z94XIo0dHp6h7xLQ4eComlDZIgRRQtWQAzlOitg8vtqxK690JuyOLBLY6KNt1ssM/2Ku76 muAOE0IdFnYv1qIkymXUlHzB+/yIwGmF0gD7llGf9MH78LM+Yrd2pcx8VSzSEbj0JuRLqB0w5Q7 e5kGfUmFEVp2YMvjk1e8qUAI+HFhv/0IBzvCkRkqkteEJQv1UQVzPf325/fjgsZIXcY+HJrbc0Q Oxi3joUNzQleuYtgDr19sqxk9qeEm1xWmf6gimte3R0L2wourzJGuKtmPyuHBjX0vSoXKxfTW2s FSZQYpW26Ish1rdsL91ud+9tgS9VakEJO5hoKgo2+vflo1K8EBw9dX6nRf700zaLhjlbJy1/wPI ttoKSwZnrkcz0zeQtVp4eMYLRtkFctHN0ZyR6+ZTK61nARSsoi38uYMX3w5S/Cg4WkvY3Lu7v+Y 3GAj+cNc9uGCvc3ejng== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 clxscore=1015 spamscore=0 bulkscore=0 suspectscore=0 priorityscore=1501 malwarescore=0 phishscore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110029 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773201053858154101 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 58a22ee41f2..e61ac10fbf3 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -117,6 +117,14 @@ static void print_reg(FILE *f, CPUHexagonState *env, i= nt regnum) hexagon_regnames[regnum], value); } =20 +#ifndef CONFIG_USER_ONLY +static void print_t_sreg(FILE *f, const CPUHexagonState *env, int regnum) +{ + qemu_fprintf(f, " %s =3D 0x" TARGET_FMT_lx "\n", + hexagon_sregnames[regnum], env->t_sreg[regnum]); +} +#endif + static void print_vreg(FILE *f, CPUHexagonState *env, int regnum, bool skip_if_zero) { @@ -216,8 +224,7 @@ static void hexagon_dump(CPUHexagonState *env, FILE *f,= int flags) qemu_fprintf(f, " cs0 =3D 0x00000000\n"); qemu_fprintf(f, " cs1 =3D 0x00000000\n"); #else - print_reg(f, env, HEX_REG_CAUSE); - print_reg(f, env, HEX_REG_BADVA); + print_t_sreg(f, env, HEX_SREG_BADVA); print_reg(f, env, HEX_REG_CS0); print_reg(f, env, HEX_REG_CS1); #endif --=20 2.34.1 From nobody Wed Apr 8 01:18:42 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=1773201046; cv=none; d=zohomail.com; s=zohoarc; b=WKGspVQy+v91e03Nj9vnBtS6gEbPdFIDozvR8usQxm0OfApZNn8pWFLMHq50ZZUKFWTPy46S2Zr3HS0F/pe1SxEBPB03tRLaf7bG88YbH1bXfBMPREbeXKr0p0UuVBHejaHMf0WAmgZ8dwGIhMjDvemoqiyIzfnjqy5e0vcVONc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773201046; 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=mnVlGj2LQ/K+IhdMBnwSuFqsrCJqWsMVZtifOw2hyNg6FlGJykPL0mKfEXsiTrKTP6YjnMglxDXKMLh8W3ceY/cfOs9Hr7hKUULm5ZUoqeZ2MP+2HiexP2759g/IUM8SHlBuikL1uxBUaz8O3eQGDjQnXoaLEtM8FFFZvSzNQ6s= 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 1773201046574409.0236585035085; Tue, 10 Mar 2026 20:50:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0Aa4-0001f1-QQ; Tue, 10 Mar 2026 23:49: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 1w0AZm-0001aG-0d for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49: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 1w0AZj-0005Bv-La for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:37 -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 62AJvdZf3296538 for ; Wed, 11 Mar 2026 03:49:34 GMT Received: from mail-ot1-f70.google.com (mail-ot1-f70.google.com [209.85.210.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctg1muuv0-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 03:49:34 +0000 (GMT) Received: by mail-ot1-f70.google.com with SMTP id 46e09a7af769-7d73fc43561so27811698a34.0 for ; Tue, 10 Mar 2026 20:49:34 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d76ae39b39sm946430a34.15.2026.03.10.20.49.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 20:49:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= eaPTK8WsZS63Nq3x835Dlm5fZEwFXHAh0ADELEtS9L4=; b=f92jp1eFSJUhrsmV mb7VlV0YivOL1yZO2aFHTm5Zg9m1RcJ1UikucuSLsEJhjuVo75OJ8Z5WvLBK1QI1 XnTz1024AoB5MlB3fhgAknOm019g1PP2NkHmNOJMZ2ookpFp5/1peghQD+BkNn7R OgA5ZxliKQLvPFdssLR25/fV5Y0B/2OfKXkln1mt+OfT96ahdoZcCu9Blb8Ina6P ReHAlfcNqRZVGATuvWv+MyGWvQLI7h3446+ngqxFif6LTYYHIpx9+92mXjFNpF1c tI4Jks6kbaI9ho4n//owBq6p/ix0jVC4WJB9exaXCERNxUM2A+4J/VIAw2H0H5BU xWXJkg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773200974; x=1773805774; 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=HXsE+5I6MBMFs+81yB5pJbhL0/j6CTLUccm90LuK2jdZ02rfrtlou7DP1Ja4rFBync LiaQM7SDFVwA7kXz6RpzgmSpM86FXTEqYCk/AX0PZVujdgGi0plCwzBFdWq99+W/q77Y uLZSukgHtnSw4AchTjDzMYjIFFmK/syA/QT09XZbVtgGDLlYbSmbGgnXbnhwFu4+UxFc Q3EPdP9BvV+F8ct4jvRSq4p5KQs6RvL5zQNzJWsSgXLW3jpw+gkAcxC/By8rGsdE3Jnn qJHSf6N4984WQFf9FzUfTDq/SWPGCexBQPCyuGnFoGjBMHf5E96+KIh+YwDN0HQ65Ppp CP6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773200974; x=1773805774; 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=HakUKkQYya70MO16nPoJKqYSFAohuvHUaD+tLVU+xHUR33a4sslS8oMeoLBU2Js6V5 QrIf2GSYi0oTj0DGQX14oYc4c2SARQPgreUqS9hn1PCUK/Wh9pjya28L6MRd3ZzR/NzD /E3xfGTbZ5UxWAgy8pfo5lZa9P1aLwxAMewNp19HsfchYq4vpIjULPCik/H7Bn47z9m2 s1D6i31ifjc+ZfRaCefUz2i/iR61ZLYO2C1M/2OWzxKQcaUafVert8ZfeJm1kDtzVFqt ywFsgeWjh4TloNoC5/VGSG2H6OH/ML8NZiWelz2IX2in0cUA+hyBPAUgPg5k9WSicc63 +k1Q== X-Gm-Message-State: AOJu0Yy851kHOXjwOuXIj8xQJ3GuO0IxlJ4u+/vInsldAH58m/fY5sYG ex1/koycMbOPikjUx/NWYoUVjCb0BsSi6pBUHTgzSPF+rHLZodyTpo4bItsmaJwbd7T0VWwNX7A FzmFKMjyYD+MvzgGmu1JGUWf/rJ/ml8Hhpxuw6SxbJTXl3gzC1GWgwOaliFi8+yqwUg== X-Gm-Gg: ATEYQzx5/ejn5cbF0YlCOI45zhfwoi4k7hipbBE9YXykW6hZvwyW5i20AQWiav0zEdE G/c/QPJI/tC3+SrXqh9d+acZ6lWgt2F+ZmRH2TVWdh6UNwy1Gu9WSN3p5vhfdDM9NwwkV9CXcQC vkdhLYXTxLMG2n6H8yZXZvZOtDZtA46CXsrg64nzQNu0tpm+haW+NgFut1DNfPnQZuIB96cvjCM CUXsfYU3PchJjDeJzOj3d5t2m0s9QadIVnedzaeX2E/2zR4qZUN+/k+ibecIijOAqAd1KJ/Hn4o +4370U8J04BhjZUaV8Gp4LRC/NQ0/15RummbH+cyd7HCz7plysGlrk2jF+l/r5D9fcsyxMHza7o eABQYCVL8mfrU1sTTDiFrPl02eSNmgK3lwcrDKYEkntwiFvTaQJ69VXBLRlJ8uGnK8BfrNg== X-Received: by 2002:a05:6830:6582:b0:7d7:3b11:467f with SMTP id 46e09a7af769-7d76a75ea16mr1072240a34.32.1773200973874; Tue, 10 Mar 2026 20:49:33 -0700 (PDT) X-Received: by 2002:a05:6830:6582:b0:7d7:3b11:467f with SMTP id 46e09a7af769-7d76a75ea16mr1072221a34.32.1773200973519; Tue, 10 Mar 2026 20:49:33 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v5 04/35] target/hexagon: Add missing A_CALL attr, hintjumpr to multi_cof Date: Tue, 10 Mar 2026 20:48:52 -0700 Message-Id: <20260311034923.1044737-5-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> References: <20260311034923.1044737-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=YOeSCBGx c=1 sm=1 tr=0 ts=69b0e64e cx=c_pps a=7uPEO8VhqeOX8vTJ3z8K6Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=pGLkceISAAAA:8 a=QFI6e2jESK29WoJ26_YA:9 a=QEXdDO2ut3YA:10 a=EXS-LbY8YePsIyqnH6vw:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: mJgiDv9MuAdaEFM3TEXew3hoFT-AWaqG X-Proofpoint-GUID: mJgiDv9MuAdaEFM3TEXew3hoFT-AWaqG X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAyOSBTYWx0ZWRfX26AUFdImZRyw oWuADERQUPYP9vIQGpk74lJdO60sMuDHXetXkPQ3A1qSHTbEO0NRBu1u7uElStU19QzgyEEAz1A wIekVk1IiBHsGRJ96qWykZIH79lOfLThHbcTPknyEuGKwWMJfjiOcXTrIZ69DYNp+L69eTBZEvP TNKiqI4jq+3FcyvnWzM+RThkUIY+Kc6/vAJILc+K1IDQHgGGYMGxVtZzNyfXr34XRR+tc37lNSa yCpV+wW0dquboeBgza6/qBWcoedNSdpShIWj/pdiVD2plr/MkiNoRuwom/nbOhyEi81pCdslvHY 4ByBB6y1ZAkTK9meAyL/GxkXWwdF5U+BjY4qjcvv1TXUTKkzmNrYpliTdund2jFL6NV25ujTC6m sYAp1eNlmU/YEbVnOTf9fJTICSL6xg0IPzhOiikDxecYhUd8Oh45VCdA6Ve+zIL7SfGAaeOLQ/T N13EqaWRv/DZ3MQY1IA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 clxscore=1015 spamscore=0 bulkscore=0 suspectscore=0 priorityscore=1501 malwarescore=0 phishscore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110029 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773201047650154100 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 8 01:18:42 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=1773201304; cv=none; d=zohomail.com; s=zohoarc; b=SnrKlXitZ7BOKHTolD6fWR9YtJqAPWHR2DQ/kzee5SQ6tA4u7SUWNMHWNi/+/uteJK0P74CW2zhiWFPFrCs0oC6aCyge033SZd7qKL9fbm9eVyFadmYoMIkrU9Fe4JXi7kdBwgavwbg+6d2N7jrAtB7xtmbQxHrNrU6mGIY7PdQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773201304; 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=GKpPKnRPr/fZ74aV7nyEhUaRJKu609R/xl/nbmlI/AHyO7trTVd0YD5+IUgb3t+M4XoR+QWCBgPPAeMQdRz6Fpab8PMxqZ2BVYR+1gMwMR02sRkAZzQi7PhOmeBcH1PDPlYfaXeNMDOIHmUDaJ1L6STva+ye8pKxTBDBNjqz7AE= 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 1773201304455622.105713880413; Tue, 10 Mar 2026 20:55:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AaH-0001yI-GA; Tue, 10 Mar 2026 23:50:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0AZn-0001aH-9u for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:40 -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 1w0AZl-0005CA-Dp for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:39 -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 62AIubmN3894073 for ; Wed, 11 Mar 2026 03:49:36 GMT Received: from mail-ot1-f69.google.com (mail-ot1-f69.google.com [209.85.210.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctkmytyss-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 03:49:35 +0000 (GMT) Received: by mail-ot1-f69.google.com with SMTP id 46e09a7af769-7d4be1dee67so138089775a34.1 for ; Tue, 10 Mar 2026 20:49:35 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d76ae39b39sm946430a34.15.2026.03.10.20.49.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 20:49:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= VLjM/2HkwHT5K+3XsmXyLVfqsLoBye/llZe64AldgEU=; b=o9asZvLDJl9fmBwe pTNFCZUJrMabNHLpHhQMj8Vvc5Ei0tfyo+8VNTbpLszK9EU185sJ0cCJgeFyKcgN TUAU1wdPbagPUBmss//S0JSRXSE06iNZSNRzFAKES1PdLKp8FRJ9wvt3PYXoF/Ao c8+7fJXfYcc6lyLzoufGyz0maZjWvsN4u6ZPRVVzMN4Vybb3N7uMCq4JYqufOAN/ 6rSQe4C8HDTKQuyv4Ti8P4HDb5GKOBQzo2xz3mp9A2SIyE/VgQzzGxv+j6tcFJcz Y1nQWwYlhcEmjDS8Qs7QzhpzAvekP53HsKghUqHMlBpzaQeaYjrJKp+G8cAJj619 Zcat2A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773200975; x=1773805775; 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=jI8hLouRKvjy0b80kn8/bv7oyD+Tg4mXVO17rD+YZfhXYLsoAgKv+VBuZGlMhqKifl /qQdSTg+WsbLVfyyAowtkglS4L8N2/+GqiKXte8jQaSgZQZK93nF1khMUiEDNVpB7674 Re5QdlRU+F9ZtpANZV7g84DpBZq4zhGUTMbaaUJraH8wcNPzfQaZsRymx9zg4LLVvH8s RYDH8FgXrBT67iYawoYkXWkh8xaJuaKR+KDj7kiXWTymztfj+FT8t7GqwGKqjTHh1CgC iCHvp3Y3PzAmD7eSGCVoCP6b/6q7obz5SKsG4Bu/l3vzmJW2+ibdMt4yq3IIpFh+wKpG Mh6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773200975; x=1773805775; 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=ZfG9RyK72GZDC71E6cIhNHMVuwAzxK5UVb9I8rPOKx3yEoD+uvHq5DNjkeoWv2wNE0 Px7WPu3uDnJi5PrqCnYAovnOrJdflATUOSWFeD79pZ7dyYJFjPd14v+hSqqvd5ZGZIt0 /TpcAJMIUllSOkgeQy+J8t02aA2zl/erahvy0HLNAZFiFJWigIOFnjv2HZclCsfR+nA/ VM5xnWhNUJiuiaT5+wm7HUICwLiVG2I7dOy4DN08D4Yryd1qrvVUdG77qSfuRFx/TuPj vVJ+BMIkQttgDa81uPpx0h7y1dSL+j1awyMLjxJvhJyLzTC9CyqPRzuosHKc7KUeWRW8 45gA== X-Gm-Message-State: AOJu0YzlfnG0WIM4IeI8wME2v1yDzdSSzWM+xO/h3o/akK39/SlD8BJf pwzaM/vZ8QdbDQgtneUQ4VPaPBDqxUXvBn90edg6liz79TOcnNrrwvCQxI0D9iBEKKon1xG2XVm uehHKeh+bdXlaJWJp6nQWFvsPHTypo+kLFRqTlse5rXAELrZhNhC+fNXTIsUd6RI9Cw== X-Gm-Gg: ATEYQzwTJJu+dT8ZoD2h2Uvx1Gip1XBSdEqpFarEvODpnioTzqHTP7wIFEF49NQPbGB sU3LqPDOPhIlgydPQsEemyGW7I3AOYm47Q8TH0qIjFqr2kdi2F21CU0If/0OjxFtk2HbIPE4s8I fyUFA9nxBr0L2F35KTjyVBUaDU2stdh2rOwerIG7z70K4FjLCWMT566xTg2QXeiZD6uwl6d/geD 1X2pO0byWdo0rS3qojwvRKae1Bat9WHr3EHtuK36cRedxZomtDGciDyRelY8Zo06k8cRlUm+kQZ kFG6Xp+3z6UR+HRFSs/yVHynz1xKDHJvQDBKRG74UKDkz/tlDHCgybsbFmRa8hUTgVF+/4/+8GE lJjH9ca4Veef/vZ3bRYvc2IwA45845NEsGk3QdvL7buZ/zHXMIGg9YFCPloQM3JATdT9eyg== X-Received: by 2002:a05:6830:6a91:b0:7cf:d9bb:63a1 with SMTP id 46e09a7af769-7d76a6afa93mr905966a34.16.1773200975078; Tue, 10 Mar 2026 20:49:35 -0700 (PDT) X-Received: by 2002:a05:6830:6a91:b0:7cf:d9bb:63a1 with SMTP id 46e09a7af769-7d76a6afa93mr905957a34.16.1773200974728; Tue, 10 Mar 2026 20:49:34 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v5 05/35] target/hexagon: Handle system/guest registers in gen_analyze_funcs.py and hex_common.py Date: Tue, 10 Mar 2026 20:48:53 -0700 Message-Id: <20260311034923.1044737-6-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> References: <20260311034923.1044737-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=RYudyltv c=1 sm=1 tr=0 ts=69b0e650 cx=c_pps a=z9lCQkyTxNhZyzAvolXo/A==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=-IRm0M9p1sl727KxlF4A:9 a=QEXdDO2ut3YA:10 a=EyFUmsFV_t8cxB2kMr4A:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: DaZbjnotsPJbYPXpEm-Ta8Unc4jr4uxF X-Proofpoint-ORIG-GUID: DaZbjnotsPJbYPXpEm-Ta8Unc4jr4uxF X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAyOSBTYWx0ZWRfX1GJUGVLTxeEn aWAeCOBhW0zxcmsYLNT4VCPpYmHkiibOSA7Ij/u5k7j5ajWHkwhD6+CWpV7X08RnlOPsJhDlwtd qz0Jb38vIAg2H16DWj7na7jXGvQcghZfwzb8QenebkaBrb457f864cJQPFxf1xTBdInbnk51QAr EAL68Wb2afSfghCjPw0Y9OuYpnCRjfGG+qxNRMcbcE2ldqCaovsu1P0F6H1UhSwOxkgEzoA8D+r EpE7jGRnlZSY6e7REcPmLW3YRLNQpNyy204nqyUSdOLFoY6Q7LjMqaag4O62HUYgrH7AMX48+N6 nShop0IaMaQoYCvOlZ1q+A+K62dCCXO3UgzBElatj/9H8mGWxTbkbAR0jSjzO7jGQg/iEFOdPnI ZJ5B6ee7y7deO6II1l6IAqp4o8AvZCJHjy/6+IQbeunLYA2/CSW4Tn7Gr/iSx8LUitMfn64V+qv +M7sFnSA4r13zVEYRXw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 impostorscore=0 malwarescore=0 spamscore=0 phishscore=0 lowpriorityscore=0 clxscore=1015 adultscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110029 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773201305810158500 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 8 01:18:42 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=1773201285; cv=none; d=zohomail.com; s=zohoarc; b=gBcQFPtJ8CsCe/T9tf/yqZJ+dVPlrBk9EEBP82ywLcN9YTEkQxZKEbxn2FIAGWjc3S3deaq/m+rLeEZggNRc1hMQGywA89C8gkjORjysXyE2rQlZ+P0hH7OFGWgXjqztympwsWmb4gSifJB4mAgtLt4jOlBnYQm7D1rtixEP51o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773201285; 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=XSbtoOook+EXocY5SyUyl/bxt/QwIXQKJrpyrR5U10g=; b=YBVigVDrzjte1CMchcgC8hCAJ+2DvlxK1y21FtBwUdpbJI1IVbHETuSCdb489F37VCJDlj9AjVK3d+hEp4hVxvtLG7nBQtjldWvXywgBNOg5VE3xkAnue8djnCKffZ1iwAfk1zq5GXgTjtn4J0ukDmviTuuc4nKB1kQ4xOJ5xoM= 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 1773201285180754.9356200021376; Tue, 10 Mar 2026 20:54:45 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0Aa8-0001h3-4j; Tue, 10 Mar 2026 23:50: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 1w0AZn-0001aI-A2 for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49: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 1w0AZl-0005CH-QY for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:39 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62B2gsxk1572954 for ; Wed, 11 Mar 2026 03:49:37 GMT Received: from mail-ot1-f69.google.com (mail-ot1-f69.google.com [209.85.210.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctqgk9tjr-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 03:49:36 +0000 (GMT) Received: by mail-ot1-f69.google.com with SMTP id 46e09a7af769-7d748bc34cfso24445832a34.1 for ; Tue, 10 Mar 2026 20:49: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 46e09a7af769-7d76ae39b39sm946430a34.15.2026.03.10.20.49.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 20:49:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= XSbtoOook+EXocY5SyUyl/bxt/QwIXQKJrpyrR5U10g=; b=IqNUNZwBO9PLuAfc 1jRKWnTrffCfjgFXqOMX4l2hAAjQXbEmKAjc1SmbGooeWZc+/wNzRSlhuvMrSAaR OsT5DTaD5HYjQDZa49B3lWxvEWHG+YFcMwiSPNST03JsI3I4d6ggvpbzCL4m3eos cVEfFtnknc/DRaie56MT+4sgnXSnQ5jYg9fn+G+rfWNsWtkYIw+slkrEg8rMgKOK /1vQSX9nP47nU5SXlgG5LtLt8Ak/VJamX8zHjZT4YOXZBUiasAOvwfoYr1kuEhH7 jzel5TGR5CL7fwr2uGqEqQYmusLdq+Lg+wBtInHBO8k+goyWs61mzHInh1e6H9uV Pb2QSw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773200976; x=1773805776; 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=XSbtoOook+EXocY5SyUyl/bxt/QwIXQKJrpyrR5U10g=; b=hxigf3ujbKPx0b1wEtlbOurGoWBjhaRZ1azdl8UT/Is1div8ycHO9cElVItybmnHDV F34RQqvCzEoQCVAU9BYkpqlAlzGYN+6fsuoxnF4WmLe56q3bzY/95Dbi0s5oD8x+/4eo QWcoFDBy1kWIqMVC3HXpghCB6z22IlQbwDlWAxyI0fbWPMczb9lz4mila6f4xI1W2HFc xODcnzu3hWbOYBYUhVnMIm662qUqyU9pZk6gjfRdDknfGbeXwkh4foeRHHuTdI1vD1rF TOeRbY22uUUCuRqBtDfR48FcxbKsSW9vOu/vXzmssXTvsC01eqJKfqIotIPRrhFmw3Lx R6Rw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773200976; x=1773805776; 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=XSbtoOook+EXocY5SyUyl/bxt/QwIXQKJrpyrR5U10g=; b=IXtdugLO8Ga0eRWEU9pvqGsy3ryzplEGpVqC5+DY/KKJ1rhqxe02SLB6+dSI8X8JPo u9ztt7kxjXo8Tb1yAVJS8S9nNTZYsAcMhjGeWaR5p/hfN+4Q+AAAP6Spo7VURnmfUt9a wJQn79IQn36kLa9hUFc6gLFhB9Wl7ElcJwucBWpY9twWbQCZP7Kt68PWQAFWnvKLZZoa vFiu3WJC8iUosClmVmw/7nXu4xInY97ML0YS0x/vBHl0wvEVxYVb/I42YHQIZCWc+CLz Nz26aowXZ1OnfV/Ffsyw+EDFffwYDOXMs2tkAf6mB7j/mbgFVidq4iEROLDe0sd/bsPX EbvA== X-Gm-Message-State: AOJu0YwRJrKzqDKyTzkz0ZHh0udAft09X0y48EQCb109OksSqBrk8qQl INeDtSz6bLzSENIKbjk4FVOLBuyfGozPmdROGILgu5uP1BEveKQH/yiu1F7FGZbRoL0Qnrt4ucL RS7j6VbcstNxfrsmF38RWwieW4OtQciVM+PRhxzUI6XKF0R3xa85hs87Jds7DNRoupA== X-Gm-Gg: ATEYQzxU3qpEAO5TPitXQ8f37Azkuwzu7hHzZuuLohfXnVXG/Csj6FQ8N3n1xnE08Dd 4DmWwejyBirlFtijLUk/lEbkT7dV4zMwBAan+wqm208Slg7+TRhGH/H8pvt4IhcgeHpbfJ+EShq vW+RSrxDZSuk4jiYJ/r/mON2iDdCHuInmgCAZJxZqUe7OOpdWsfT/rTVlWF/twWJ97lDv5Ub6TS +9fXR3751Fs3q2YUjgbsQYzy1Y+ro+PcUOTQbPnJtxVOnGliU7MurfZa7i9gFEDEQygHQsn1pdA GGunfmYYvvRfJPaQBNF9+PxtXGvbQcXYeb267uvLaGzZrP6FBTSTMWP4nAFzwx82BYvWJ8XtXRj HJ67lP+lKfTtb6v5rJNbBlcx0p2BW32Re7VqdKjVNtNOZEAhw5lSapMlAiG/H3N3hs+ERhg== X-Received: by 2002:a05:6830:910:b0:7d1:9217:94e with SMTP id 46e09a7af769-7d76a6dffc8mr987686a34.26.1773200976184; Tue, 10 Mar 2026 20:49:36 -0700 (PDT) X-Received: by 2002:a05:6830:910:b0:7d1:9217:94e with SMTP id 46e09a7af769-7d76a6dffc8mr987669a34.26.1773200975812; Tue, 10 Mar 2026 20:49:35 -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 v5 06/35] target/hexagon: Suppress unused-variable warnings for sysemu source regs Date: Tue, 10 Mar 2026 20:48:54 -0700 Message-Id: <20260311034923.1044737-7-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> References: <20260311034923.1044737-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: 7qIg4a6yA09miFBBt3CNjdIx-5dSPwn4 X-Proofpoint-ORIG-GUID: 7qIg4a6yA09miFBBt3CNjdIx-5dSPwn4 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAyOSBTYWx0ZWRfX7+Jlg/6P2qsW i56BGZyEZ+qpiMyN0f6RvInhNtX0SfRWxqGeheaiHyZHOXaNXFeYRSSGaCyKq67mjQho5qa0/aP Nm4j6tR5fqN+ef6JNxVil5uE/vbT9wVGLXCztH99e8/omJQc2629SkbyOAwyFVZxLKmXIfhx1bu AU9tXDYwxc6Pav861gcg8jpMAsh513m1uyaJgYy5z/3usyQhle0P43tcCLSR3AF6E1k4W6XYxDG 6xcfu8y6DoWTFhV1skEUhbfAnxuWDQGBO3yQCiBN+1Us1JhAm3A/uRrguliaFcYYUL1uDSdefvT s2LN0f4AnTo7+E/tRGZGNkVW6X8ettEQTwXlk5AY7pcBsa4EoLCq1p487+qeJwcZOL7jmW1ygv5 k7s1szoXN+mPRUcKlOzCmBVVGqnj3qxuQzDPJuEQJnI5CGVBImFUVKNIi8s0DZNigRyQkvRpsti 6wC3/VoI0H2IWCW/ZkQ== X-Authority-Analysis: v=2.4 cv=M4JA6iws c=1 sm=1 tr=0 ts=69b0e650 cx=c_pps a=z9lCQkyTxNhZyzAvolXo/A==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=dvhcR3axvtdXbCCTPW8A:9 a=QEXdDO2ut3YA:10 a=EyFUmsFV_t8cxB2kMr4A:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 adultscore=0 lowpriorityscore=0 phishscore=0 impostorscore=0 spamscore=0 suspectscore=0 bulkscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110029 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773201286984154100 The analyze_read() methods on GuestSource, GuestPairSource, SystemSource, and SystemPairSource were no-ops because these source registers do not need read-tracking in the analyze phase. However, gen_analyze_funcs.py unconditionally declares the register-number variable (e.g. GsN) via decl_reg_num() for all registers that are read or written. When building with hexagon-softmmu, the generated analyze function bodies are compiled (outside the #ifndef CONFIG_USER_ONLY guard), and the declared-but-unreferenced register-number variable triggers -Werror=3Dunused-variable under both gcc and clang. Emit a (void) cast on the register number from analyze_read() to suppress the warning. Signed-off-by: Brian Cain Reviewed-by: Taylor Simpson --- 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 8 01:18:42 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=1773201304; cv=none; d=zohomail.com; s=zohoarc; b=MRkgLOwpMvDwOoIBQJ0TiGSCouAivDnHtrLI06+u8DWkCZcuCAEfVoN6IwEKXWb46iLoh40tJB0agKbDr+itq5fhjp+hNpMRYKkZ9IAe7RdRp2SYgb/SlHJoR3f6aNGqwy1YhqXkgJD5yVxW3ERTDUXBa5jQq58Hsd1VSZcFYy8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773201304; 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=jBeLMxzqHzDOV9YUjXqHj2MYH/ki2AcUfhzyW+ALZhA=; b=FbsfHInhMUOLd1/MVyyIijnaELcSzatg6LGeeRupQBeFwsf29C5EhJdq2mvn2RFW99sBJ3kRsn690q2hXNhZpr+y4QAS1N2t/jjsJvjvaQ84s1VRv6vbNEpy5tJbtyFO+jd/Gn5X2OsFl4bFf275aVgc4F3m4LMC8OoZMZeY+TU= 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 1773201304436235.31727036242444; Tue, 10 Mar 2026 20:55:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0Aa5-0001g0-Nl; Tue, 10 Mar 2026 23:49: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 1w0AZp-0001aV-9r for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:42 -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 1w0AZn-0005Cv-Mx for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:41 -0400 Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62B3bCJT3760660 for ; Wed, 11 Mar 2026 03:49:38 GMT Received: from mail-ot1-f69.google.com (mail-ot1-f69.google.com [209.85.210.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctk8uk2x4-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 03:49:38 +0000 (GMT) Received: by mail-ot1-f69.google.com with SMTP id 46e09a7af769-7d7543bc61cso23987686a34.0 for ; Tue, 10 Mar 2026 20:49:38 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d76ae39b39sm946430a34.15.2026.03.10.20.49.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 20:49:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= jBeLMxzqHzDOV9YUjXqHj2MYH/ki2AcUfhzyW+ALZhA=; b=W5vO3G/gzVq2uRGV uyn7ZsLbyCufYxJ1mEWa60Bz0Igglp/T5C6miuQR2n+zvt/Xr4U0ugUa/8H5A+SG yjvsO6Timagur6mGj4PuG8xgD92UkVaPwrkmJ/v7sHVp5LAYucs0uF8WiPpYdZ8n acGLQdJS/x+FEa/QceopRsy4fkh1HJMQv1GCm/q6n/RQn7XRaXQuNBvq3ihsQ+N3 SR/nLuMvlOQuqqub3vSIGZiLc/grwzmzb5Exd/fZjmeopIFnV7by7+wAOYtFmnEa qbUHqUwzMyNm2gKpiR/k5cJJa3zNQDLS1Q8Dltz3ZC57F9t8nqvgLX4/zXnjGify wMITfQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773200977; x=1773805777; 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=jBeLMxzqHzDOV9YUjXqHj2MYH/ki2AcUfhzyW+ALZhA=; b=iikzQyYsXX91tTl6BqF+AUqv70o5T3fGlSv42oJJEfePQVeC8nlVIv7sR41WpzrslI rl1FpIkhBVjq2eGaeK6R3evoEzf2V3SI35N0cEO2M0JFX2K/ojmy0CWJPuqsaVc6fUvp P1+E9v26OWYvOFvXhc8PPO+lfTJaswbvVPthKyAc/t9YhU/JOzhgCjjFVhaeRuU/kE4o G7ID681YkN1TyhtlmPkLP+UcGj1uoNBU+DTNkxYQs1jyIeY5c+OqK2SNmp5Zc3p/yap3 8p8THJ5eXSkUYjhSvf+ymedvDwxSDDI/2txE9AIRyA1FemlRD/Ei4wb40W168A/XRd7d zaCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773200977; x=1773805777; 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=jBeLMxzqHzDOV9YUjXqHj2MYH/ki2AcUfhzyW+ALZhA=; b=kgR82hoqZ/x8MyaveAeKnhfk9QWMxjL37h5t80Jj9YVeLwjuE5bE+GPpbpwMHH8zq4 Te9nYzcXAk9j7fmgW6bLvNblvb9y0GGbrUFeA7Ph1jrEwZBu34D4m6KJtmM97HI26otm cZe0hMq4xaKwnOtyiaPdOCVKazX44fq5biV2iX10FCkV+U/06zQR5955PkC+RSTepgyx wz500J1R4DQM6cUv48c8dQAk+XtzjQpJw4pcOxPMMUZ2FpsZrUME9J+rrVX4W4ijk78j wgT1z4TxiYca7gPiOpXfXY0Epvdi8NLScrypMJ2sMh5pkUiwmHObjrZWh7qcppanHsLF PoYw== X-Gm-Message-State: AOJu0Yyagc5kkSUqdxYEE6MCSclC/OrbovIfZfvl0cWnuKsxXGaqZgfu InTXqIbLmC8qIhu81kycvAYVBBIz9ODaBnBPweG14+WIm3FGnf0f6uQwoYlvWHWUhfXiuDtgAr3 Kmwlr6E3FwArJc45onRX2YB66Du9c0cGyqfrn1E1OUHv1QKnTMXLvB5J9LktyJ3k/dQ== X-Gm-Gg: ATEYQzzU7U4sqZ9BX1sfYRXQg46kylm+jmgYBCX8QGZBuVPt1GFx0DEiy5eDQi+jLVi i7eIPmpO2GbxExnCbMLL1rIq+MPNaTRYXNetnmvhfY/GQZo825XSr7NYuFxieu+5W4bxh3nfPVx Dmpzvl1lrgme0/P7HjpcxhgdilQ8yS850buj2W3VqxXE727D/T7NIjX81zGSpTwyIedru+Wqt50 T+xWdWUylcWbIe1nVevNTSH0mGaezzo2auPIO/IBWdkiI9M7l9yRn8HRI5Ebf6wlM9lYgVuvUh+ c9lkuEel2Nq5ZC/5GxbFzJUBAZFa7//U4o/IJj5hXI4UyizqwoLwSOvAxPysozscJeqTBEmS/Zc gddKkPne1m0ohBb9sTT0sjnY858rHriQ0bdM6RWigZFwLySZ4nfbOtXCgF+SvkiNUJWFVng== X-Received: by 2002:a05:6830:6c17:b0:7d7:57ef:383a with SMTP id 46e09a7af769-7d76a7857efmr1008489a34.30.1773200977427; Tue, 10 Mar 2026 20:49:37 -0700 (PDT) X-Received: by 2002:a05:6830:6c17:b0:7d7:57ef:383a with SMTP id 46e09a7af769-7d76a7857efmr1008477a34.30.1773200977118; Tue, 10 Mar 2026 20:49:37 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v5 07/35] target/hexagon: Make gen_exception_end_tb non-static Date: Tue, 10 Mar 2026 20:48:55 -0700 Message-Id: <20260311034923.1044737-8-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> References: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: dxVOqhPzxbT6TYuCDd0KLA0w79WzLsFk X-Proofpoint-GUID: dxVOqhPzxbT6TYuCDd0KLA0w79WzLsFk X-Authority-Analysis: v=2.4 cv=YcmwJgRf c=1 sm=1 tr=0 ts=69b0e652 cx=c_pps a=z9lCQkyTxNhZyzAvolXo/A==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=t4cj51CzC67JwBy76UgA:9 a=QEXdDO2ut3YA:10 a=EyFUmsFV_t8cxB2kMr4A:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAyOSBTYWx0ZWRfXwZmcR9+iMcVt fE9FDlF85B7lvMKm7fanIBRlwYfvPiVVeTElNgqcOoaueRd0AueZvaIqZ1QthLPR8VscGf+xpI4 B+Lt5WUf1m8VVntYnAlgJDmBGNdYbrrdX8qlGDHjPMKVs/MqnOt3m+rFDLmwOM/rmc0t+f6xUaY 3PcqeE1Hn50nXob+Q8uy9dmfCsw9qkQztQAdb1HYR3wIIilJAkcc2C4i6UyeApcZBq0bpbr+a+M 22Nl2mEZd+Fkuf6zFaU2dRaL+aeqlMYNbACvegSyfrYCj1KXLNjOAmVlVcbSmp6lQsVpIiKCYQ1 6qdiYY1QLzN/DwCSgk3mu5R5gk4oFItkfpQESp8LfBFx6xCaKBGBcN0gblnc3boAe5GrR8eacKQ FeqUmYvH5joWSbahJc5uS/BMSMTr9tP8kbqbj+afJsZhhkusr9zuxkHXpfxHcCOdx7AsIMQcx13 nTZ3k7wnMfQZwUuH7aQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 suspectscore=0 impostorscore=0 spamscore=0 bulkscore=0 lowpriorityscore=0 phishscore=0 adultscore=0 priorityscore=1501 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110029 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773201305710158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/translate.h | 2 ++ target/hexagon/translate.c | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index b37cb492381..2804e08ce57 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -282,6 +282,8 @@ extern TCGv hex_vstore_addr[VSTORES_MAX]; extern TCGv hex_vstore_size[VSTORES_MAX]; extern TCGv hex_vstore_pending[VSTORES_MAX]; =20 +void hex_gen_exception_end_tb(DisasContext *ctx, int excp); + void process_store(DisasContext *ctx, int slot_num); =20 FIELD(PROBE_PKT_SCALAR_STORE_S0, MMU_IDX, 0, 2) diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index 8a223f6e13e..18b38c285ed 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -189,7 +189,7 @@ static void gen_end_tb(DisasContext *ctx) ctx->base.is_jmp =3D DISAS_NORETURN; } =20 -static void gen_exception_end_tb(DisasContext *ctx, int excp) +void hex_gen_exception_end_tb(DisasContext *ctx, int excp) { gen_exec_counters(ctx); tcg_gen_movi_tl(hex_gpr[HEX_REG_PC], ctx->next_PC); @@ -590,7 +590,7 @@ static void gen_insn(DisasContext *ctx) ctx->insn->generate(ctx); mark_store_width(ctx); } else { - gen_exception_end_tb(ctx, HEX_CAUSE_INVALID_OPCODE); + hex_gen_exception_end_tb(ctx, HEX_CAUSE_INVALID_OPCODE); } } =20 --=20 2.34.1 From nobody Wed Apr 8 01:18:42 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=1773201123; cv=none; d=zohomail.com; s=zohoarc; b=Se9BRsdY9exas9MELP0DAXTLJF3gPzD2HmtGmmChz3dwdCpRqW9J3eviXevDAUMpNDRM547TXw9/iXxtDKtM56oXlpZnIrvGhXG7UwrJAtIBA18Ssikn0wFQqCP5jTLtadSS653uXxZapQ9ne6pexNkepHraAlCnpL/BN53+buw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773201123; 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=BKN8mxVyGb/VNX5hhZIRRGoMs7k8WsdR4Otho2OxXdXmDWjHwKpKvaHh0Mwq00ppxoWMrkFrcpPm1Jnqt/e7IO4b0ultRYMxIzeWkoGX/Pgi8AdNIEhLdU6CDRkYDXcerJKCN1NgucwpzjEoNpv9ODrCaTPcsmhMMV9x36QWuK4= 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 1773201123640675.835878960737; Tue, 10 Mar 2026 20:52:03 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AaI-00020M-BL; Tue, 10 Mar 2026 23:50:10 -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 1w0AZt-0001bg-C1 for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:45 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0AZp-0005DA-Lx for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:43 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62B0MxqJ1265877 for ; Wed, 11 Mar 2026 03:49:40 GMT Received: from mail-ot1-f70.google.com (mail-ot1-f70.google.com [209.85.210.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctpkfj63k-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 03:49:40 +0000 (GMT) Received: by mail-ot1-f70.google.com with SMTP id 46e09a7af769-7d4c7afa9e0so124477459a34.0 for ; Tue, 10 Mar 2026 20:49:40 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d76ae39b39sm946430a34.15.2026.03.10.20.49.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 20:49:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= +b8voobbRHB+fEzV3OFcGYw0x0PvxvjT9mR8Wf/yF+Q=; b=affTIOvpr+RYjKre ICSdVjoWVsYvBIir7DJNIDTPldgKEHOpYki1tAvF4b4s1iEYOfe4GHcKoiTRnUVu vl47TbkzJ457f7Q5bGyb39LNxXRkGUxV2eVnFCkJ/ucUT85LTCbnUEJVIcaSGO6D OWJtqG5jTMHJS/SxSy6B5iGgShsWSPg2yZ3baO5IGdFqJ/ZJoiPy4a2HRaidB/Z2 YCIPPUnMbSEuxiGVlzmaZ1Fem9aJReQB56o0ltT2UqgKrRL1whg3/VwYlhCF4lRo JypTNbvqKI5L2iuWFFiFRT508aIHm0iW9MeIS1OoBRNYboPrdr03+Z2crBiUvq+R 9LmqeQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773200979; x=1773805779; 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=Vge35bob70bTCRUXk+ZHChkagGX4y6/9lh+d7cTwHst51zbdj60eCa5ZYMVf+91wK3 FcD/Fb+CH9gL5Q+cc6htVWsAIuCjwpEhbWuUBmqStxmtB3QtlYmYkNZNQcSKKKpFya9O EhXfXnN+9u8bgWOQ2cTM+8vGTOt5yqtSL0skcTikEImWw2a6j+4ktsq3SCVG5qIXmtah UfAdBcWegg6EjSOuhQhE9VRIkrufpZyKA9LvuApdW/7dVoH/eAXdi8vkeylXwtJSurKy z1KhknRCKwiFpwMlv3Eb5o/FVPtL/lsqZgSB3kucPtMAMXUnPMduGk3klDji9u3FmqGS jSmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773200979; x=1773805779; 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=ud/CfUFP2lII9jsaLNvmsacxp2KHtaOIlQjKuP/CPg4GfvJ4cFmFaHBllkCnrOdDfw wdABP5ceOdliQS9LUxYNg7OfEp90vLYmTT/m1hw1PrvmMh6N+mfEnXGqqTNtlc0K5eAe AfGpPvesYYfwWRXXtAcv+4Yw8WLHwbcDfjfrtAY6190PG781Q7HiMPMbsjuSLyvj2stE PguKheTFQN614cfivai5uVI2d4lF2VMTOnoR/XuI5ILQsRh7PvHZBm6Mm+8nz86Om6Ct xChKk42eoZPuearTkyAXhwJZHccvqe0vsESLq2BBXyJFlDSmqH9gddXX9IQvy0l9Ichs XwLg== X-Gm-Message-State: AOJu0YxaoRqb19dqRNKK7/VNWGVe7nNT4yUyw0ca1lU/cwMJM/1Zke/1 Mvv5gvPEBI1gdep2JzGFM9uV7FxgPUrZ0l+xu5ArtMy9rmf1IKtw0jf/cQW4/80AIU7UYpQ+ubq LbXXVHisjTEXbFcYGYmTDeRBz2oBYn9McSQ8gW3xZ9po31ZVXAztjyaYO3s1fHxItxw== X-Gm-Gg: ATEYQzyQNQpRSDKqPx58OS4KoNE1lUgpVQ7qsg6mYW6jjOzVhy3KspuZ/g3n+DMnKmr yntcamYWYJYnFmRTzkSetDpIkndUXD974S9lpogd90+Msk82iT78X0a4Bs7wteDawVqdkG/BEUu VUUWVqnu54GDdfgvY6YaBgVYWYoZHFCFmkHzXELp6xaq5uQdrRnEVTSSyTmjWXQ/q8mUqUMHVCd zwpParFtw+NwISw9b+7hdTEdZBJvD9v+Grc6+xvkOb9mvcFa5U0vHfKFeLprGSVl1/qS/CYBoOy KHtcuxvbph2onxZ6eRWZn6wINlwYGU8qfAueiKorABdeVC/+F4qkPQD9krza2Z73zEQDM5EF2N0 8ZQeYlOmtxsqrP96X4pRf558rckyfy6S9Oa8wnqLpfBlKG14FoTfF4+OjShAu1XOHduEKlg== X-Received: by 2002:a05:6830:82eb:b0:7cf:d201:c32d with SMTP id 46e09a7af769-7d76a6bd5afmr1005805a34.3.1773200978809; Tue, 10 Mar 2026 20:49:38 -0700 (PDT) X-Received: by 2002:a05:6830:82eb:b0:7cf:d201:c32d with SMTP id 46e09a7af769-7d76a6bd5afmr1005790a34.3.1773200978498; Tue, 10 Mar 2026 20:49:38 -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 v5 08/35] target/hexagon: Switch to tag_ignore(), generate via get_{user, sys}_tags() Date: Tue, 10 Mar 2026 20:48:56 -0700 Message-Id: <20260311034923.1044737-9-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> References: <20260311034923.1044737-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: SmoCe7o6fG5IgLH-mbOiibUmyB-RFiG7 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAyOSBTYWx0ZWRfX+nvPB/0TP8Ps cWPODiBjUPJ5/3tviEalnt9Nszg0xvg/fvP04j2XX2duxjUiUlA6SyIfIhajDkJrzqa5Bd9f9I/ BCFT/FQWZTM/7aaVbO7HZz8vqvSP34nkDVgm9EYtJRXgmiy7u2LH6N8F0VSMCRdhw/pBRtJOumO tcQ7JRCkNWcBUPzUyw512nKvRQOHLmcyn3sdMlkDmSIslCdFXzH9orouSK8QO8Vx800Gfr3lZvd fHDdW1c2rmzZ973J2XAfv43K2wcg9FfssaKzQquWXGpBfjvsPdi9XKtJUDrWahGz/Oc1AHCqlSM joL+RUUi0yoIhjjuawhyFmxfhkmzgNp7tw3h/9kjiVrA20EXBgiifNwPvo1/nsnAlomx7EoQ1Tz UpoNCDWQtODyBwtaTC2Bll2Nkyh1JPU68XQkpXd08mtGElsXr9S83s1ouxmsBdoOZSVRrj8nlo5 /yMrzrd4hVhQrcAIfgQ== X-Proofpoint-ORIG-GUID: SmoCe7o6fG5IgLH-mbOiibUmyB-RFiG7 X-Authority-Analysis: v=2.4 cv=Gq5PO01C c=1 sm=1 tr=0 ts=69b0e654 cx=c_pps a=7uPEO8VhqeOX8vTJ3z8K6Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=orAq0Iv1PZLbcfkgE-4A:9 a=QEXdDO2ut3YA:10 a=O8hF6Hzn-FEA:10 a=EXS-LbY8YePsIyqnH6vw:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 malwarescore=0 bulkscore=0 lowpriorityscore=0 spamscore=0 adultscore=0 clxscore=1015 priorityscore=1501 impostorscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110029 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-to: Brian Cain From: Brian Cain via qemu development Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (found 2 invalid signatures) X-ZM-MESSAGEID: 1773201125075158500 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 8 01:18:42 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=1773201136; cv=none; d=zohomail.com; s=zohoarc; b=I6IOrNc12Rr0swkwgSK6bBIIHWtTxm8gDVn4ojjQSIAB5rr5tBVNHqIQmEbQ1ycRtY1jeeRN0j/FGiQ+pCSXRsfTZ1/Smq9qKr5jMXS4P9LqqPEYXcCLvXpuoSmh2gh45/duIM1UesO5Kf317Suul6qOcNpk0oI767Y+GoW9EQE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773201136; 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=CrXGGvOMbdP84B06JoxuSdnpr4Pi3MfH2G8elAr7Yew=; b=bjhMl6SZ0RQFPUUE6tY1fbwH3VHftzx0kXvWqFzxW245fcGdvEbhXnMWJfC9ZGj7fDllNqhSfzsX8jk890F9k39TuQ1hwsfKjcq+xSHeBGx4DrHuVxJe9TU/Wf44TGkQEAloaKpQPyd1Nia5Q78bw+IxHngpPmRJjOxVtcK1hvg= 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 1773201136318653.8542935266694; Tue, 10 Mar 2026 20:52:16 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0Aa3-0001eh-38; Tue, 10 Mar 2026 23:49: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 1w0AZv-0001cS-6i for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:47 -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 1w0AZs-0005DW-HL for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:46 -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 62B34KhN304472 for ; Wed, 11 Mar 2026 03:49:41 GMT Received: from mail-ot1-f71.google.com (mail-ot1-f71.google.com [209.85.210.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cthjf3h2y-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 03:49:41 +0000 (GMT) Received: by mail-ot1-f71.google.com with SMTP id 46e09a7af769-7d7521130b6so18030211a34.3 for ; Tue, 10 Mar 2026 20:49: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 46e09a7af769-7d76ae39b39sm946430a34.15.2026.03.10.20.49.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 20:49:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= CrXGGvOMbdP84B06JoxuSdnpr4Pi3MfH2G8elAr7Yew=; b=KQeI+SxMsiJr39cC He/mzqelP1yJBMybSxRiRgNnjuMYWaYrGipe1uFPGMzE3PUloT9iJKelLImHz7kB silwOzImFncmVP/cW8zj5SXUWkScteB+tT81M2zK0TBx3q5QuNxj8k47BlsGoIIi tFWEq+MxHOBLSUYVfa9jM90HTWlcFmqQOKo0/kPy1S1ZIYDxNRHUq4L23qDkEBDC VBdRor1SYBgjKJO+ufb1swczUcPsIk9wTvkf6CRWen6rEUF2n0+R/9fKg6a6yCjm 9Dju68yinImPN9oNHLtoibzgCy0onm5BPjwdS0+nMUxTjd2cXtaTNbOWjcEcUPBv BKgwXg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773200980; x=1773805780; 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=CrXGGvOMbdP84B06JoxuSdnpr4Pi3MfH2G8elAr7Yew=; b=X/OJ3HL9+wM5xJx3ITRVgMtZsXPWTvSwXL+jdJFs8+sg3A5i0MlQEdywJWOAz++Gt9 ThoWvNuXGXCYwS3A+xB3E2YcZxDk0IK8AMs0+0vzIsBaGBAmLcFJIbj5DcPVgrOzRx8B vOQ7DwNenH1OPrX8Yahyl320He8/kpNXuedvrrIW6XHU2KJxYIrKa9jNiWCCxmUeYADk Y8jAB7xjpyFJ/H6fjGs0EfbezTijFcAa3mJzd8RYDqCTp3swKhU5lLJ2XdliTslnMnL1 8FOjWjKW4K/uJp5Rb0+JMzsryLDK843UOK3OcYGLdPvzOKZ/74eaiwlmC4+PjUfSaYyn 4XVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773200980; x=1773805780; 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=CrXGGvOMbdP84B06JoxuSdnpr4Pi3MfH2G8elAr7Yew=; b=ej7pYQDx420hJ+phExyq9PPX9K+NyOGifTD9zMOzTlqrmqTbnwzju5eSbyM7am80G/ R/dzrpLKlRMp8T9uwJE4pXhUsWq5DPUwYOjJNRkTQjpuB8zgmYkHgF9M20ZnWpOEYyIz KsEOJCRKykje0qHtrQ+sBoirbpjfGUGQOcUYQsecb2p0N1DXDvD7btV4keUqHAp8gMjP s2o0OwHzb8Hf4UEZt+NA+EqIu0cXXVLKOA0dyCsG8+QaiG2oGLV/9oQAtVwRT6O9zb2a QkxqvTYJ8IUeBudLD9iX3RHbwTnqt8sKnkmj5/b21LXfqHPlAhd2USqzOM0pc4zohOeu wNlg== X-Gm-Message-State: AOJu0YykfYLcbjHoh3vx8I6KVBT6L8e68yBotV2+3zulUE0q5CpUpSye PHAWPqIqC5BU301LzHlzFhSP8BNhVF1nFAXwD49wadgbEDT7lSFIc4KjRhj8DOeeuLVyaHxjMtI rwM9Mvg1RMvMSFbjt9eVxQPju74sWAI3IdhywbpFasZtgNmko8N05WyoY0diJprDsWQ== X-Gm-Gg: ATEYQzztgB5wiXLfHV6njF1yCfH5rFCxAmU+4EezASxLctLM04JTDZCQQqbKrDit42u O3QEKyxIncjW/BqI04hQ4kWs84UH9DyCkrhePfeWNACeMMivzqY9qDYwSsAyDxira8qjqddGFAW 2bw7otfqcT/6fQ7fpYtWIYmpQnl5Cma79J2G9nHybG/RB5ZPkImODRKyP3BLBhHXgjaLNfY8V/w h53wO6dpqP6vk2mySmr48TV28x3xbFH4LBpf92rKcqAzi7oGcdDvsk5IGchbojz4OgELiDKYpJA DOFT5ZVm9vkYqDrFC0/P3FWVS3UZ+Mtdr1Ph1GkpkI6Y9IjXIoc0xxCHSzdTNpQFNzW/HYrusEa XzJuOPI1nA16bVOvQsy/O3aJUEe2N65P4purgRcUTqJU2wjh1905JCgLB3Sak2zj01mb3uA== X-Received: by 2002:a05:6830:258a:b0:7d4:bb79:65cc with SMTP id 46e09a7af769-7d76a748384mr840894a34.20.1773200980334; Tue, 10 Mar 2026 20:49:40 -0700 (PDT) X-Received: by 2002:a05:6830:258a:b0:7d4:bb79:65cc with SMTP id 46e09a7af769-7d76a748384mr840881a34.20.1773200979971; Tue, 10 Mar 2026 20:49:39 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Laurent Vivier , Pierrick Bouvier Subject: [PATCH v5 09/35] target/hexagon: Add privilege check, use tag_ignore() Date: Tue, 10 Mar 2026 20:48:57 -0700 Message-Id: <20260311034923.1044737-10-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> References: <20260311034923.1044737-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: EcwKW5UepZgj4puBz207IN-JgSk_zxjz X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAyOSBTYWx0ZWRfX8lni+KAKxfI/ LTnylYyJBVk7blNO4d5TAP49GWAt5BzMo8S5KWNHIYgLrbpja35W5kMRqtEFrm3qGfqnWD1aQQh 1jNIrZu2Y1uS063SojKVQl/x5keaoKt5GS80uAj+sYC6vTeHxCcFkOE9FzwlcDbfSMVG8cPu4iq KPaWPTFA2lQ8cLTwJa+MI6/MRWWj7uXbBOPgBzVHA7ZyOAGI1I3ZuaTVIH6309zsTxqoUldW/7A Myv9mTvbRRcRO4/Y6jIsNxWcSPd2xOeSDZOwjRCsn1sfsG9RETCT22uipDhym7noO96xa3bAdXW 7HeLH15XhqbWgLCBcDfVx+5G/i9zg9DuOD8mO8Yc13fKgsZNf8TYCIyZQakQrmrGBGt0q2b7byL vrxHGYQmxmiB2iEVc+8HaEm+qoTVBduRCXqO5LnTsxf/kNWQzUv7Y5/dHPa6Ya0A0HiSYAQ1+p/ 4RKnRERjKNqQ+Ojkyww== X-Authority-Analysis: v=2.4 cv=A71h/qWG c=1 sm=1 tr=0 ts=69b0e655 cx=c_pps a=OI0sxtj7PyCX9F1bxD/puw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=pksD3ONYjMjZD1LmeuAA:9 a=QEXdDO2ut3YA:10 a=Z1Yy7GAxqfX1iEi80vsk:22 X-Proofpoint-ORIG-GUID: EcwKW5UepZgj4puBz207IN-JgSk_zxjz X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 phishscore=0 clxscore=1015 suspectscore=0 bulkscore=0 adultscore=0 spamscore=0 lowpriorityscore=0 priorityscore=1501 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110029 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773201139056154100 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 e61ac10fbf3..1f172404608 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -306,6 +306,7 @@ static void hexagon_cpu_reset_hold(Object *obj, ResetTy= pe type) set_float_detect_tininess(float_tininess_before_rounding, &env->fp_sta= tus); /* Default NaN value: sign bit set, all frac bits set */ set_float_default_nan_pattern(0b11111111, &env->fp_status); + env->cause_code =3D HEX_EVENT_NONE; } =20 static void hexagon_cpu_disas_set_info(const CPUState *cs, diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index 18b38c285ed..571ba9cae41 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -65,6 +65,10 @@ TCGv hex_vstore_addr[VSTORES_MAX]; TCGv hex_vstore_size[VSTORES_MAX]; TCGv hex_vstore_pending[VSTORES_MAX]; =20 +#ifndef CONFIG_USER_ONLY +TCGv_i32 hex_cause_code; +#endif + static const char * const hexagon_prednames[] =3D { "p0", "p1", "p2", "p3" }; @@ -1153,4 +1157,8 @@ void hexagon_translate_init(void) offsetof(CPUHexagonState, vstore_pending[i]), vstore_pending_names[i]); } +#ifndef CONFIG_USER_ONLY + hex_cause_code =3D tcg_global_mem_new(tcg_env, + offsetof(CPUHexagonState, cause_code), "cause_code"); +#endif } diff --git a/target/hexagon/gen_tcg_funcs.py b/target/hexagon/gen_tcg_funcs= .py index 87b7f10d7fd..d91bbcf1dc8 100755 --- a/target/hexagon/gen_tcg_funcs.py +++ b/target/hexagon/gen_tcg_funcs.py @@ -21,7 +21,7 @@ import re import string import hex_common - +from textwrap import dedent =20 ## ## Generate the TCG code to call the helper @@ -49,6 +49,18 @@ def gen_tcg_func(f, tag, regs, imms): =20 f.write(" Insn *insn G_GNUC_UNUSED =3D ctx->insn;\n") =20 + if "A_PRIV" in hex_common.attribdict[tag]: + f.write(dedent("""\ +#ifdef CONFIG_USER_ONLY + hex_gen_exception_end_tb(ctx, HEX_CAUSE_PRIV_USER_NO_SINSN); +#else +""")) + if "A_GUEST" in hex_common.attribdict[tag]: + f.write(dedent("""\ +#ifdef CONFIG_USER_ONLY + hex_gen_exception_end_tb(ctx, HEX_CAUSE_PRIV_USER_NO_GINSN); +#else +""")) if hex_common.need_ea(tag): f.write(" TCGv EA G_GNUC_UNUSED =3D tcg_temp_new();\n") =20 @@ -100,6 +112,11 @@ def gen_tcg_func(f, tag, regs, imms): if reg.is_written(): reg.gen_write(f, tag) =20 + if ( + "A_PRIV" in hex_common.attribdict[tag] + or "A_GUEST" in hex_common.attribdict[tag] + ): + f.write("#endif /* CONFIG_USER_ONLY */\n") f.write("}\n\n") =20 =20 @@ -124,18 +141,10 @@ def main(): f.write('#include "idef-generated-emitter.h.inc"\n\n') =20 for tag in hex_common.tags: - ## Skip the priv instructions - if "A_PRIV" in hex_common.attribdict[tag]: - continue - ## Skip the guest instructions - if "A_GUEST" in hex_common.attribdict[tag]: - continue - ## Skip the diag instructions - if tag =3D=3D "Y6_diag": - continue - if tag =3D=3D "Y6_diag0": - continue - if tag =3D=3D "Y6_diag1": + if hex_common.tag_ignore(tag): + f.write(f"static void generate_{tag}" + f"(DisasContext *ctx)\n") + f.write("{\n}\n\n") continue =20 gen_def_tcg_func(f, tag, tagregs, tagimms) --=20 2.34.1 From nobody Wed Apr 8 01:18:42 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=1773201018; cv=none; d=zohomail.com; s=zohoarc; b=HeOB6WpvM78B9GC74MZU9Nm4A/zqdaRqc83i6ihW1v1JNpJN+AX52YTlkUzyalazrE9fo5Lat2kmdCETRt+DCA9v8qIzkZ7B64y4Rhryqq6M0lMB882OrT9lyq7QPrJQaiBehfQIA8rv3/gD7OygQaPiPl7YzXlZIPabv/7/uRA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773201018; 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=fYMnzp+yTlD0drQFWMAKDAz+jjufOeL4MLgQXv4yO07Q7OJkqwxVw2BWGlkOyh+WQFy2NrzTVa5vZm89axHVxo4uwJxsS0zLmSJhRMJUxkTK4gVSG4xwJ26VjP7Q50dF8sof+G6F0+qIDGlLq0x9OT+L+X/n+YN1L1OO3wBxfy8= 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 1773201018295720.9374800366869; Tue, 10 Mar 2026 20:50:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AaG-0001wM-F1; Tue, 10 Mar 2026 23:50:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0AZw-0001cv-0i for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:50 -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 1w0AZs-0005Df-Py for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:47 -0400 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62B3VDYP614061 for ; Wed, 11 Mar 2026 03:49:42 GMT Received: from mail-ot1-f72.google.com (mail-ot1-f72.google.com [209.85.210.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cu0jf01nq-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 03:49:42 +0000 (GMT) Received: by mail-ot1-f72.google.com with SMTP id 46e09a7af769-7d74d78c5f7so5574369a34.1 for ; Tue, 10 Mar 2026 20:49:42 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d76ae39b39sm946430a34.15.2026.03.10.20.49.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 20:49:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= EH4slYrH2tAurnh1B6qm7AwzqOtD9xGDq2yM4ABUAzo=; b=jcqaqlUP/dkfvol8 KUygFQTCZpJFdJZlG3im0hWm5omCK3SW1FN7BEMCnsp1X5YIhoa234U3tAlJYLqR ly1QNZsS5Aw+2F9p3XSKN9PCQbrzE9sKNoC2YR3d/dfWCHzHb2F2/iuL+kDCfBS2 f95YTtPCnBvQSZOxAZm+7ox5ewciiBJHXMVrA+s9mbbCpVvkiqzEK6RZ/fODAmXf 2QZzVE69T8+5YG4adAISnbXxqtn7r14ALly9KV/x93DyKDUHoYRYtPw4cWnACVLN X4Fw0nFjKdhUyJr3CkfjeR500QS3oxv/SkZPg2qrxj8RH7f7/76Kmgd7xzqi5ehT x9sgRw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773200981; x=1773805781; 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=WibSCNZVUbk/yiDc8reK3qBP32lpYoa6XF6IQGeiUnoQtDAFYxc0KstPf7nA05OEcC Xh3P/GRSRf+m1qcYOT8vbz6EjeUrZkc75j2ZI1+nH4L6wRff7NFHNqyttm9ZmMVCsZDg QAftbiP3i4KwStRMV13fZadBcvfTv7nfhOH/cN/wwKbSPLdNmQje4FexWnJToNUq5y9s xff/Q+Zb1zLLTUpwqE/rk11gSwQKiHZ1o/JyK40Yels/UzgbwsX+j3e4CQj4kzs++bdl BpN2I5dcKD2TTi+VgXHvExrsRHfrOJbQOa1A9VfQRbOd3/M0/oecQ2TDaK/ag0UaPw/p 4TJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773200981; x=1773805781; 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=LklwNoDyRsHQcAmlxX8uKageN+NvhXHJvFtra4vmaaK31bNiURgmc+GmjspGrnzaZg a8pRNeITGF/6gfl6JSubKlxN2mPVsxpyHm3vSgQMZWSobJQYVGZQE+pm/Ka1Y+iNMXfv I2WXzDPQYeNJxmsjZLsHII2/XTQtEURvI/WEmE/UWL9LBN9mbz8/B+seMtikjW6MlBY0 10Nj2ejQGp/+4wRlmN7lOe8RuuTVpxxgy2nsfwBGb9jzOJW2wrst5ZH6DgP7LLNMbKmB eZYs577V2sxmA8CW7DM+mQvrfiRRkXWt4ZjTdj01O7kskC7k9HyXNVhDg98U67/tGA+Y MsfA== X-Gm-Message-State: AOJu0Yz6Pj4x5zf6OuWqacfY+TgteRCfKtCi+YIAxUbwiEfHqX5c1eLS 4BQORkY96G3OYxcc3qf+GjYE2OpF1CL5gP5LgfXi4PEGfuWNkCkHEhhf/chvbROIGYJFz8vXN5Z Bilkq7x8xyy16IrZjHFk4Zv2RnkLfe+DftEnDBHPhFbkHYCHtqWL0C+giAXEux7rchQ== X-Gm-Gg: ATEYQzy7qibiwWVmHVNO2RO3AHavDejhbDjbG27w2RBYO0A1VXdpwTZSO+JR2Vm6VDe Eh0pZJIYasyJBvWoqxfj3mtp/4+mReA6UtBUekgUDLghS2KKBv6ecLdG2GMXCkMUXg//P1VmH7i bWSU6mkg3UzQl+qrqzWJdb1El8R2y83P8gGkxB2k8WJsEKyPHLYgfCbq/t3tSu9KhMhP/+1Jf47 syZUoAd399QzFqcxrnnCDjN+aFsXPr4VhOwK6UXjoQ266QoPjnPzYOpM6ijswMRWhlDOzSBVaQX 7d5Cy9Yc9xKT5y0yx31a+CKx+zrwke0fLVZzJgE7FNus+45oATZEmA83P8l+wwj013pCtYrMxCw X7VRtZYfq2KwPwzw99AXVO6rENE8QjgV1DcO9ArAxMxzr7JQBctrBlMqZ+coSdOPggzBj+g== X-Received: by 2002:a05:6830:6f49:b0:7d7:49bc:2dae with SMTP id 46e09a7af769-7d76b1787bemr856637a34.17.1773200981542; Tue, 10 Mar 2026 20:49:41 -0700 (PDT) X-Received: by 2002:a05:6830:6f49:b0:7d7:49bc:2dae with SMTP id 46e09a7af769-7d76b1787bemr856629a34.17.1773200981259; Tue, 10 Mar 2026 20:49:41 -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 v5 10/35] target/hexagon: Add a placeholder fp exception Date: Tue, 10 Mar 2026 20:48:58 -0700 Message-Id: <20260311034923.1044737-11-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> References: <20260311034923.1044737-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: XZcD5TBe_XLH7SgHASLG62L1BRMEQg2a X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAyOSBTYWx0ZWRfX0Z0UdQoxjm/q LoEY1Tba8aNnzcWzmQpAdKFddFnAN30ewI7VWb13GnVkBPsBS8tINKEOCxTpE1bRH5KF8c5mzlI mRh5olAcwASZ1SDQCmdua9LkbJLWtcuW4HLHs6ANZCeccmuv6F8UfpP9iB5I96e8GfoMSXzH6k7 sI7lIRs35mK4BvoZBPELn+QhHHdsHIEmWrojm0scwenukGxW245oEoS/xJH38Hpsp0KPcYT4cux mVb5dbvY7PMdoxWIFFk4RdbNYHzfSxUHvmkgnL8VRfCilAZrklpzCeG8MxFddlZ7uTJpzIPtqUS BekJs/XZwkxOD9gcCLEJLblDEuERijHPUhra8e5kPmul4MsNmUZ2BQUQ+JLnNLZm/hOOpKd7PXr LUVr7VPBI4SKXZJd5TVfzayrf017EqlpO0hN7v0CXLox/rXR8TZljCPIW2wQy4KtgUssBBqG1LQ +O5qY9zhSBzDwtQAOIg== X-Authority-Analysis: v=2.4 cv=FMMWBuos c=1 sm=1 tr=0 ts=69b0e656 cx=c_pps a=+3WqYijBVYhDct2f5Fivkw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=R5LHHePp8dzqxDYlWrYA:9 a=QEXdDO2ut3YA:10 a=eYe2g0i6gJ5uXG_o6N4q:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: XZcD5TBe_XLH7SgHASLG62L1BRMEQg2a X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 lowpriorityscore=0 malwarescore=0 priorityscore=1501 bulkscore=0 adultscore=0 clxscore=1015 impostorscore=0 suspectscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110029 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773201020714158500 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 8 01:18:42 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=1773201093; cv=none; d=zohomail.com; s=zohoarc; b=jLZ00bkePpt3/XcEF+PqiTPacRwNgJDaXj/mOJ6Rw4p7UCq9XYPHlvY53Yzc6CurZY4Koh3UfksXLJMEzXGi+2wXJ+m8d6Xx4O55xsSvcm3gZ/Hh7InRZ73D2TGBNTsmOW45KbVWhL9oVUt9MEvNxrSjlPf0w/nfq0aTmSEj6ww= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773201093; 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=BvVQyYlO7VkjHTCrN37M4+JBaKbzT5EUdxXh9u26ULx0EfmiMXXkIO6GYO/L/776UeHdwYWo/AO24C6j775sm4BlSlOwcrcYwEVU2Hz3rUT9wnNtjrYbhJpJo1jjHJQgnx0oRZ6kbnBLAFNPfBsCOqIiIa/+GP7lUJJ6CujkEm4= 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 1773201093885350.66895747556975; Tue, 10 Mar 2026 20:51:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0Aa9-0001iA-0H; Tue, 10 Mar 2026 23:50: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 1w0AZw-0001dA-EE for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:50 -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 1w0AZt-0005Dk-4L for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:48 -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 62B39cEQ248940 for ; Wed, 11 Mar 2026 03:49:43 GMT Received: from mail-ot1-f69.google.com (mail-ot1-f69.google.com [209.85.210.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctqv11ra6-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 03:49:43 +0000 (GMT) Received: by mail-ot1-f69.google.com with SMTP id 46e09a7af769-7d73bcdba71so39000079a34.3 for ; Tue, 10 Mar 2026 20:49:43 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d76ae39b39sm946430a34.15.2026.03.10.20.49.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 20:49:42 -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=JURDIw26Lsz0/rLS iGEfURtPA1ou4LRaPPOd6fs5UlhuDHUO8f3HuwZo04bJq4sclzGmGa5mwk5MgXj9 HGcXULGFTaijxOntUTVEU8pBzjHiJCsMbGHP8wki2mhHgFa3fsHvvkzcxjwrPjf3 SfK4+KlCy0l3CiPgI3dSLqMlr3CNSEC5MscbMPA0Ee1NgY/NaBJNRMyGmsCcDkan JkrhJ4UIkQCdA5oy8EaJDQo520TUyYiLsjJHzLavkewSwTyrlYUF/GC3VQwA+zit qZRYoaB4F9OQO0RhdzBoP1RMBbdd7Lt/tkok7g+j4vArr4k4sMkrTVB1y2tr8nc2 FT80VQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773200982; x=1773805782; 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=HFy0nDq91DBLCrEYEacMqkfqb73tnZrEGH/KHmm65OLZa+ru5aE0laPADORPLrK0Ly qo4JgBRQ3fD0NyVL851mZQJzgyVF+uZN8RSNQdCZPtA/mzPNu3G0Rj/YRrBNiRs05tNL VqfiDR9ZaUYUThb1XG254Qrm6/2HQP2klB/8a8QtthXRZmDwZCPzePMtKnLZGin0MrN4 tcWveGhZUl208xsm1qDGfrR3HHuuCauBU0lDm22Dd6MaKM+sByLqLKufqnDst3nOtfhb Xan+JqSD9orQkpedMldLii3dKn+ULCuOFCDz0ROfptNmOdWXnMy0zDqcixXJ5mBPfF6e DO9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773200982; x=1773805782; 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=xRnFleYj3mnijk7H6c+3lhsJH2StIVYaIT+ec3p2C7rMK0z9gWy6azEu9dvOkuUz47 RhluLCpGi7bN5hVei8F+FUV1TL+Hvh2cGPx/hSaCoL2NSOtWD20b9yYfJ8yo1fyWFTSM KJJUaZ8XTehiSfDI3fb0WpQ/Z7G5gGhCrL7HNn8GBLPq7FyP9ap7fpVF54HMlnJV7a1J 8RLz2O8h8aTOZ/jeTDfXtm8as5h1iiCByP5PYU51mmo6VnBV22LvlsrbKYy/S9if5vGc pn7FQdWxyycLx8Wh3GSfJyvlhREKZsnHbceWX9jfPggTyHzgjK5QE3LFaOS5n6sAcTno EdjA== X-Gm-Message-State: AOJu0YzkytAVgvaJAoybn+HF+k+9+GzzxA0cctOs8s2XvYxDR4BHXuw5 CjLzpDs7QB0AKAmeVhOCJ5uYX4Fi120yfxyAAarExnmadtBjrsuVvpZX5nhVayF4lslEBIJ8SV+ cIGCuUyfTyLU+MuJ8QKtKrE0TI+pQuhAKOxnbDbxq35ETNo+W0B+C8+rJj96TeRnlsg== X-Gm-Gg: ATEYQzzgImcCxcIjwWZqRJ3W7beDNFNI88WtWx59lT2zmWIp7bwW2BKZKyQ1uG7kG76 7yy/0jcwOIyrMQbJ08DWhRs9LUd6W87NR3z4Q4ecTmw4QCibCRNS/u2Rrw8vVz+shwO94hxYgCr eS2n90o6XL9rbgqfkfpN29Q+oqQasmzzAkmQtkAZ9zl06scVyW5w/I9pzb2L/Pq21AEK6XyVCqF T7CuhnL2gIira1iYyMLmmR/a9Hq+UMDdikKQtWVGd5TCtma2cf9ixXei8h3JPXWu7vhb2VFsYA2 Rg70O82grgFhQ5xoeXYuZsymENELlPlq6I0oXw6nOfmiOUKp43LidMfNpfGj79FDNkrIUiCGQWa U73mJ8aC6U16wZkQbH115gtxDsGOPitNVigzMEM7pIxQznv1s/LzI+Wwk+AvP/4micn46Lw== X-Received: by 2002:a05:6830:3113:b0:7c7:6558:277a with SMTP id 46e09a7af769-7d76a7a487dmr926098a34.15.1773200982742; Tue, 10 Mar 2026 20:49:42 -0700 (PDT) X-Received: by 2002:a05:6830:3113:b0:7c7:6558:277a with SMTP id 46e09a7af769-7d76a7a487dmr926077a34.15.1773200982417; Tue, 10 Mar 2026 20:49:42 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v5 11/35] target/hexagon: Add guest, system reg number defs Date: Tue, 10 Mar 2026 20:48:59 -0700 Message-Id: <20260311034923.1044737-12-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> References: <20260311034923.1044737-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: AW1haW4tMjYwMzExMDAyOSBTYWx0ZWRfX+SeQxQVLJpsh 7w2cAWNCOuyP4tJLRGq3cjTzTl7oIuffd3pPT6eiNUwZbU1wvbz+YS+v0KutocPYyG8zkJMTi4r GhMu8AzdbawSH0BNMajLE2bGFDPdTc+8Yv3h3CRDkVVzYU6g3UCqztsFzpV2wsl2wT6hvXoui7Y VFT5MaByjHkH87ZvBI3rwiksEyWJHYYAZTyA90Eo5VULjcs9Q7G/kbMxVt2zCrWMpCxEta8aSOo C5PWACaAkOn1xEOy+wIDe52+oRe9IsO9IcEDSAxu1kq/K2D2DJtpXu/58S8K1xW9a+s+GMpJGUx eTV6DUq3u7HMSdda4mnguwRvfJp2Aw5yUaT7vO7CZp3pbmGFv7fPUFEPSMsC12frVrfNB/rVa4a 1KjdH1b/AaerxbMuDhdlHUsKekJ4fKOVqBa5zFs2+kjr5B2aQfBM9E+iNGne06+0f2Gm12ATKyb uiYwnM9QAgYn84jW4ZQ== X-Proofpoint-GUID: NNOiHP5iJDN73dQtulT2YT9RarjPlpMF X-Authority-Analysis: v=2.4 cv=S5vUAYsP c=1 sm=1 tr=0 ts=69b0e657 cx=c_pps a=z9lCQkyTxNhZyzAvolXo/A==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=pGLkceISAAAA:8 a=pUoahe-fvFp-T0RBf7EA:9 a=QEXdDO2ut3YA:10 a=EyFUmsFV_t8cxB2kMr4A:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: NNOiHP5iJDN73dQtulT2YT9RarjPlpMF X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 lowpriorityscore=0 clxscore=1015 suspectscore=0 malwarescore=0 adultscore=0 bulkscore=0 spamscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110029 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UPPERCASE_50_75=0.008 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773201094851158500 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 8 01:18:42 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=1773201006; cv=none; d=zohomail.com; s=zohoarc; b=SOVlH5+AKBvAz+OE0MHDpC2NdpKnz9kMwnkHi55UN50QWDwc/BYXuTMraei47HB+Tw2gdauLD8Vjx3BXD+cNck4i+IxOv1xQUsTd/xzN/SvJ8ccnilvMi8aKuS44DrcvXEw7Y/4kedg3L74THJBo8/rAcT+9WbIiVHDnuccz2OQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773201006; 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=MPan3D+y3ONLjUyCU8kgpWedH9GrUvCIGlLg3gYTnTA=; b=ax6SKRANm1w30DcdQI0HQ6nKW+eG4hfm7l9d8hcUMALk89Nsq39AUId7/I/bxEVTbR5Jg40ARk0MC5HSUVKjx/lzuYL0ON6wiRcQuB8gXJA7eUFVVVoyBY8dnbET+FqCXhNgmW9H6bcy5gy2FWezt11o8huaQhEqqeJFjKKh6uI= 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 1773201006810435.5601093052592; Tue, 10 Mar 2026 20:50:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0Aa6-0001gb-HC; Tue, 10 Mar 2026 23:49:58 -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 1w0AZw-0001d8-5j for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:50 -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 1w0AZt-0005Dy-Ij for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:47 -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 62B2jWjs2179919 for ; Wed, 11 Mar 2026 03:49:44 GMT Received: from mail-ot1-f72.google.com (mail-ot1-f72.google.com [209.85.210.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctqvssryc-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 03:49:44 +0000 (GMT) Received: by mail-ot1-f72.google.com with SMTP id 46e09a7af769-7d73bcdba71so39000267a34.3 for ; Tue, 10 Mar 2026 20:49:44 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d76ae39b39sm946430a34.15.2026.03.10.20.49.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 20:49:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= MPan3D+y3ONLjUyCU8kgpWedH9GrUvCIGlLg3gYTnTA=; b=fNEuS7zecEYxvpbN C6LEc9XltIpjWaTwdL2QvMSaw4d/04utWhpmOWZEOnBuuc4/HsU7kDZ97LNSa+pO Zvrq5hxqpeb8Lwh5ZXJxJhU3YFn9k7q3jRP+PpXVnrlGaUtQTDs3nBNYjr2iEKET tEHzqoph68+nNT8aLm/+N3rcPrEWXPYV0Im67ZFnFAj4WNJlUl7TbMyeCCWVRQXU 2pNXOkqpfFf5nCCerU3lm29ZkRvNt/JzFECIadaLjC9mKfvFv5BZdk51QqD0HhgL IgiBKqPN2Y6++NaHLD9p1KCoaqzfFy2pmdN7EriR3Iv3oDE5StZQXGMyEtHfl+9T xTcZSg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773200984; x=1773805784; 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=MPan3D+y3ONLjUyCU8kgpWedH9GrUvCIGlLg3gYTnTA=; b=DGUDTwGR7wdhWKLJI9TWmsM7lfkRD2Z1yqz9at6dGbruv2guqaeEm7YDs8Mn9P+GiV QBKOYEcECJa63EK2g/ZgsNokMaAsROFoewI41h6kkwcFy0P/rO0TzwtKo70ViDXEf4Km OYUK9Ai8dEpQp9fh9S3LRTIPvCdvoqvYv79OZbK7qsyluiZbpfX0gROMhGxJPxdS5eEI Cj0NLWvPimfKCn54F2wgA6s46dSY7PVV3d0sua068l4lBhjCq3K8AbF6zgwDp8mOSUIS 6SsCaA7DkNyeB0CTlJDd5sKk6DTvsP69OkvRyGRoTLDgn1wPnAH2m0sId5bZXxugPgWS RSjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773200984; x=1773805784; 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=MPan3D+y3ONLjUyCU8kgpWedH9GrUvCIGlLg3gYTnTA=; b=qUp4EJTrD6/ytc3HcZ3NRWhmxQpTJQhGTpPBRnCiIT+NFbYzXtQVDJRn+zpuiW0RXl IZZu6wl23p+P7d5KPTyeoc1Wi0jqtbPXjd0ea0b2bldEUeejKTwTbbUahiLmtMg7k72n bIfjSzAw/BIoP4LoOGi0LT332u7I4BTjdkuiOunNiL9xdqHTkcW/MYX+elLpGB513ph4 1y9voR0RBujNm9woXFwCCMR+yI3xhdx6YzzmDv23csk5X/tSV4Qx3LLVHGaEhMwcjac6 gelvOcqJ5YmGZC53gzWlTXvvckEZ24ouRDo3wSqFvnkfSEiv/iXoo8WkjsEevEza9ON8 hUJw== X-Gm-Message-State: AOJu0YzziMYmoLm96TIJr9+O4AzVuXutjxWCDTWzCmxNDZURCpG4LIEd R0br8+eQPP9HJWi3weOzpV4zsRlpnuqxy8A+iNPOh3FtUYozGe/BO7Og3rJE9dqUXxi7feiSKHg Vc9ESVh4y6Z375qUJalk2uZwrLw47HBmh5FLw7xeVOMQtqV76hf8Vpf1rIPB5EgqJwA== X-Gm-Gg: ATEYQzy97n+2YIN3lPmmKR0H+MH/uMS6+lbxgpOzRAp9kEjNpfoc9cn647wK5CBvHf2 uIK/cBO70j69mGgumC8zqYzmd8I1jEowV9EYJTvpJWtM3JwKM+DozGUnKmgrAXNc3fhDyVrlUQe mG1MmlKwKnMoa4ltheCzCcOvP3RoW4BdFe6hmtQDVcN0/FXMaY5sFD2FtIvDIOYfg5KXB5Pi6Dw S5n6GJ91qmKaR1RForgkGkD5CqSEnAdYxcQFVvh8BzSMJo8mq4A19bfLRxmWEsEr7EfaKAly9Q4 ySDeqDOo8CJ40le52JzFijdrCHyNnrAqKHswlaseKKqsB9563s48xjAOzUIS40sQVNYqQR2HbaY jzY4nOFFxZLXB8KI3oxP4JxE90colqDSsiMUND3KW0fQyHJc9Y9Si7Go/kF6+CKpmGxi+5A== X-Received: by 2002:a05:6830:2a91:b0:7d7:455d:1003 with SMTP id 46e09a7af769-7d76a6bd729mr906345a34.4.1773200983855; Tue, 10 Mar 2026 20:49:43 -0700 (PDT) X-Received: by 2002:a05:6830:2a91:b0:7d7:455d:1003 with SMTP id 46e09a7af769-7d76a6bd729mr906333a34.4.1773200983554; Tue, 10 Mar 2026 20:49:43 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v5 12/35] target/hexagon: Add guest, system reg number state Date: Tue, 10 Mar 2026 20:49:00 -0700 Message-Id: <20260311034923.1044737-13-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> References: <20260311034923.1044737-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: AW1haW4tMjYwMzExMDAyOSBTYWx0ZWRfX1Q9C3w8aANPP LjjpLP9mx8+7YpFXG8b8RuzLt1lKmnQK29VkLGIiGybtSeqAWaO5JHXm6/hlPskMtP3dwNm9dwy bcxnzVIZHvb8Ynak3Ou66YhlXRXSR50kEU9AxYaDL5nlAwMi565Wr9SuN6xNLooLlJ7xquBJy0H FjhbupX1jIhU6B0mtgBwGXXcEFpNr0mM5AN66rPC8lKt9u21tvG/E5vJjFIY494MfIlUpSZsMhm p9yFnY8PDFQSWnm+vcCV8ulRCk6/X2nr8cGUYflbmgWPnGdxXen+RCyVhKyxUUPnyc+RhbKL4Xm tJtYwnSQKQpNdI9KxbLuIHd5HVxnMrhP6jvncPucyX01YNiMneOmRbWd+65Sbl73telxvaIGRTG yQ3zoNvmzeptNnoTCic3bbDNBN7O7c3u5baVHKUpmqYMQ4FU5dT2iNBIRs1I+LTJsbUefpuoIv5 9ajv4RuhX6AHyC8esaw== X-Proofpoint-ORIG-GUID: 3kHkXSgHznl3OVGbVhU439mmCzKgTvuL X-Authority-Analysis: v=2.4 cv=Lo2fC3dc c=1 sm=1 tr=0 ts=69b0e658 cx=c_pps a=+3WqYijBVYhDct2f5Fivkw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=ikZfMmNF8Hme0_TNbpMA:9 a=QEXdDO2ut3YA:10 a=eYe2g0i6gJ5uXG_o6N4q:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: 3kHkXSgHznl3OVGbVhU439mmCzKgTvuL X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 clxscore=1015 impostorscore=0 bulkscore=0 malwarescore=0 phishscore=0 lowpriorityscore=0 adultscore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110029 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773201009089158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 11 +++++++++++ target/hexagon/cpu.c | 5 +++++ 2 files changed, 16 insertions(+) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 3825de43ee7..3562965c88a 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -99,6 +99,17 @@ typedef struct CPUArchState { target_ulong stack_start; =20 uint8_t slot_cancelled; + +#ifndef CONFIG_USER_ONLY + /* Some system registers are per thread and some are global. */ + uint32_t t_sreg[NUM_SREGS]; + + uint32_t greg[NUM_GREGS]; + uint32_t wait_next_pc; + + /* This alias of CPUState.cpu_index is used by imported sources: */ + uint32_t threadId; +#endif target_ulong new_value_usr; =20 MemLog mem_log_stores[STORES_MAX]; diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 1f172404608..6fabfaad6d2 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -306,6 +306,11 @@ static void hexagon_cpu_reset_hold(Object *obj, ResetT= ype type) set_float_detect_tininess(float_tininess_before_rounding, &env->fp_sta= tus); /* Default NaN value: sign bit set, all frac bits set */ set_float_default_nan_pattern(0b11111111, &env->fp_status); +#ifndef CONFIG_USER_ONLY + memset(env->t_sreg, 0, sizeof(uint32_t) * NUM_SREGS); + memset(env->greg, 0, sizeof(uint32_t) * NUM_GREGS); + env->wait_next_pc =3D 0; +#endif env->cause_code =3D HEX_EVENT_NONE; } =20 --=20 2.34.1 From nobody Wed Apr 8 01:18:42 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=1773201038; cv=none; d=zohomail.com; s=zohoarc; b=K3DYnRqfj3GG1zV/bc0oyZrnhzAMX6heJFFfP1djYl6vrczK4P1+/IZ+4KKQLvLQ9g7HXTVCCZtdWO6fKSEqUNZv5oU+VPtIjApltlq5kPcCz9CkBllVwuHy5QO9j5Q3MhblwZJm7+zj7eMOZvF4iu2Gg3rIcOHIFeaKBetQLME= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773201038; 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=bU+8/MDl5aUXlgKdePuWGTSIIfR2CYnKAKReOD9QS0k=; b=FCRNpvY+09UxFq8RajPynXe3AyGcmHg5IHeF9nNr18nSJmSLVPUz+oFYcmeevgs0LbCul81Hs/aQweMsOG4OJCzKIOOIJISpEMLqy552kkH+ATQqmkQORc59YhqjkJutVuh8ojlzpw840jjNwBzDwfOhGqp5pWbkNpskdxGwfws= 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 177320103799891.47200476619571; Tue, 10 Mar 2026 20:50:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AaF-0001vB-UV; Tue, 10 Mar 2026 23:50:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0AZy-0001dK-LB for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:50 -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 1w0AZv-0005E7-5w for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:48 -0400 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62B3VDHM614058 for ; Wed, 11 Mar 2026 03:49:45 GMT Received: from mail-ot1-f69.google.com (mail-ot1-f69.google.com [209.85.210.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cu0jf01nv-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 03:49:45 +0000 (GMT) Received: by mail-ot1-f69.google.com with SMTP id 46e09a7af769-7d7510702e6so19075968a34.3 for ; Tue, 10 Mar 2026 20:49:45 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d76ae39b39sm946430a34.15.2026.03.10.20.49.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 20:49:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= bU+8/MDl5aUXlgKdePuWGTSIIfR2CYnKAKReOD9QS0k=; b=WNoPdEIadI5yc1q3 9yoP6mqErCBSl5YXXwWZWInlGlmhCUqABcLyfLi6wUWhplS2mmT9HrzCivTr+fHo mU6GGnW48uZWoG2wj8RuKOrYfQmzn20Jxfbank9ccOBUSZkuZzHMW5wmE6z7NtZR Mca0yn/qCLodPMVfXcahb8UmtzPxpPI2jnq22I3KHJd6qj0IvJEpJ09S0ht9E6f8 IkDK7AXZN023wmFELIB58yK65SPjH2PiR2CjXYhkeDeEV/0shLrN7xh3KbiPwI1m RGyasz9AWm1lxIr63x/npJV9RzQARKZIFiGmvPGDNmQiRKFLhGRoeHYvKDxt6+tw SQkZIg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773200985; x=1773805785; 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=bU+8/MDl5aUXlgKdePuWGTSIIfR2CYnKAKReOD9QS0k=; b=jGUGdyUbMTFJjWpaw9rPbYAZxBTpVdmJzdFVIW+u2rvnPRQYWRuJjRKlX2QzDtdQG7 v4i9eT0v3fAEt+6sl1Gb/J3PmFWNRt7GxFRWlaQmNASj3jr9Xg8tRfQg5Q18lTz7RkHS 0op7A03or4wuIhpshTUOxtlgbnioqlT4699wk3v/aGnx2X/qsF8epOjznKd+HAbEaczF QzkhqAKfs57wBg7FY0Dg5FYX1Qg9C2zl5YNxiDuEV+RK3IUtEA2KLbozm4EHYWKgFbyk kIm3St+0hR8Wm9aWuoIr9wu1ycU92uqAV1qEj8eS8pWq1n1AZGbPHYnbBq7K5VbTd+rK KJAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773200985; x=1773805785; 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=bU+8/MDl5aUXlgKdePuWGTSIIfR2CYnKAKReOD9QS0k=; b=ZVhcUFKheY0fO65g0sNUHs4BxeCBfig5YY6NvE7IFIs1diBnarWYpp9DrvOpRR9lbf lMmdMwdmp+yezhQUR9+l8eXcpxqJd+aqwR15z9nFfTyrrDnhvHoF9BMTy+iltGNpjLLC GCdL/RqWF8E7j65j/cmZeGAqrXIFpAtFl2Th/hYm5kaFyMmKodYp2uIoNnVamLb9ZfY4 hVjddqAps0lgeTIGEGxx7WeMJ2ECPCmHBE0Lsr98ft9YHQKYfg+dTrP4IpHQbI7fudB9 8QIld0/JlRQVJWku35fae7NWOepEXm9PJ9x93SFMSLXIFuf03OntFpiKricuxbXPw1Xs nzMQ== X-Gm-Message-State: AOJu0YymJiEPfkT++ftCBVsiV5nF4a+yidiLIP5mj1jlLz1Lcc00s5ta TqvO+2nT7ywQjiC1dDjVCCM93jKk+hOG9UiHK1a/A2pGA2Ueq7FtVZNHI1V7xaTVawirBoZzlbR pEeZNWImLamfVYJpq+F/42VbqEYVYIVU4lXk1e6HNMPTnNW4j7Q6dnUV0d6Xr51mFJg== X-Gm-Gg: ATEYQzzB3MjlBNx9yZHA8Msg7fne768ZyHSLgQf2v/MUPdRlBao+MZmPb0TDQXcpX+i 9jL8k4iXZeefT0DaA2kR0gipP5jDWdrD6EnVyQxRIkOj7I/SNdExKTZCZXCyz6+TFJ9k0yVqtRO rm214HjCWjh7aiJSP121l8NdzrisSZXRtsuWh5YZaO7Up9h/Iyy0ei3cg8hyPHNe2wUp7iPDDH3 sSgZatWowZJ2fLU9Zp2qLkMPD6FnoVJR/hwc2B319o0DmMWnine2I3rB/9miIQhBeUSYCONeOsG AGwQ6WmX+4kwRALeBQ000Pkv5nCMy8JhRlReDZRmoEiViakFSYt/1cMxEngZ63pOLU40BhR1c1Q fdm+NQ/Fk9cb/HYNlsGOdLIN4/zfP9YcmDeCYl0+fpBh3HM08wTZrGWXEIy2/vqQVKJfzBg== X-Received: by 2002:a05:6830:44ac:b0:7d5:a0f1:5c35 with SMTP id 46e09a7af769-7d76a94f528mr854369a34.35.1773200985021; Tue, 10 Mar 2026 20:49:45 -0700 (PDT) X-Received: by 2002:a05:6830:44ac:b0:7d5:a0f1:5c35 with SMTP id 46e09a7af769-7d76a94f528mr854356a34.35.1773200984661; Tue, 10 Mar 2026 20:49:44 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v5 13/35] target/hexagon: Add TCG values for sreg, greg Date: Tue, 10 Mar 2026 20:49:01 -0700 Message-Id: <20260311034923.1044737-14-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> References: <20260311034923.1044737-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: qWgsvpEmLdusGJ-P-5LKf9p9uBkOUARQ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAyOSBTYWx0ZWRfX46OhTODTyLsU 8HqUwwSeiVx3waWaRpkXrrf62skwFB86EM3mEIHQ0D+JI+ExBgdOfg3vPpAIgeqQyjCckj0+0YU foxzBMDd2beuwTxbPpCvwMF35SH86Ah+igdy8IjsGr74niLJbZ+/2u2kFiJN2YogKuWowHHPDH1 gqx5YUti9Nidt9X77bmwaQxCBNl5EbzklvESdc1k0AyMGTuuG79KNeFQ+2+jY485BXe1HlCX8xC eQk9FaLH4+f7xBby9e1JO0GaMjaQ8lAx28eYfTgoJz2y6QdGvCgq+Oer3PahUbYdrCZC8mBMClT KzRYWs/GEMcSvScKjW/IhQONvfQ5H/IX4KaioBZbbUFG99rUnbkpkaodLQkzGUuqpVSPOWnvTWw 3RXHbdi7EGpttBJT/YJ/jNojfaQuIStqlGZBPZFSCsarOChE9aseT2x8Zi2s62Mwkl1vlD5LEAm mFqA2aRTEPCyJAPA6wQ== X-Authority-Analysis: v=2.4 cv=FMMWBuos c=1 sm=1 tr=0 ts=69b0e659 cx=c_pps a=z9lCQkyTxNhZyzAvolXo/A==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=md9odPwznpFxaQMInv8A:9 a=QEXdDO2ut3YA:10 a=EyFUmsFV_t8cxB2kMr4A:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: qWgsvpEmLdusGJ-P-5LKf9p9uBkOUARQ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 lowpriorityscore=0 malwarescore=0 priorityscore=1501 bulkscore=0 adultscore=0 clxscore=1015 impostorscore=0 suspectscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110029 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773201041618154100 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/translate.h | 5 +++++ target/hexagon/translate.c | 16 ++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index 2804e08ce57..40d365f4250 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -281,6 +281,11 @@ extern TCGv_i64 hex_llsc_val_i64; extern TCGv hex_vstore_addr[VSTORES_MAX]; extern TCGv hex_vstore_size[VSTORES_MAX]; extern TCGv hex_vstore_pending[VSTORES_MAX]; +#ifndef CONFIG_USER_ONLY +extern TCGv_i32 hex_greg[NUM_GREGS]; +extern TCGv_i32 hex_t_sreg[NUM_SREGS]; +#endif + =20 void hex_gen_exception_end_tb(DisasContext *ctx, int excp); =20 diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index 571ba9cae41..cd6affa2f49 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -66,6 +66,8 @@ TCGv hex_vstore_size[VSTORES_MAX]; TCGv hex_vstore_pending[VSTORES_MAX]; =20 #ifndef CONFIG_USER_ONLY +TCGv_i32 hex_greg[NUM_GREGS]; +TCGv_i32 hex_t_sreg[NUM_SREGS]; TCGv_i32 hex_cause_code; #endif =20 @@ -1099,6 +1101,20 @@ void hexagon_translate_init(void) =20 opcode_init(); =20 +#ifndef CONFIG_USER_ONLY + for (i =3D 0; i < NUM_GREGS; i++) { + hex_greg[i] =3D tcg_global_mem_new_i32(tcg_env, + offsetof(CPUHexagonState, greg[i]), + hexagon_gregnames[i]); + } + for (i =3D 0; i < NUM_SREGS; i++) { + if (i < HEX_SREG_GLB_START) { + hex_t_sreg[i] =3D tcg_global_mem_new_i32(tcg_env, + offsetof(CPUHexagonState, t_sreg[i]), + hexagon_sregnames[i]); + } + } +#endif for (i =3D 0; i < TOTAL_PER_THREAD_REGS; i++) { hex_gpr[i] =3D tcg_global_mem_new(tcg_env, offsetof(CPUHexagonState, gpr[i]), --=20 2.34.1 From nobody Wed Apr 8 01:18:42 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=1773201331; cv=none; d=zohomail.com; s=zohoarc; b=GrVygGWDR5eCSdc0TEulkG8XoXowEDCHou2/VPdyoLpLVmc/0H7YVsV2dCwtTpxVmqAn8fN4Omv7A1WlqlB8xINtS4sA5VaXdFluj7f0TVQMNFu7jXj2qsSHwjliKkgh+u/s9qaRaT6iVBErBrIXJM+qFdUi2mBmJWluROHVIyU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773201331; 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=Ott7qO+OzFu8+SkG/2+/pz8y9i6QtsQzBh8bghqgtw+u340S8A48Lhncvc+D2m6LgO+oDWdaqMka/G77caCGnOmMBiCacrAiNwBEFhklGSah86GWpHIoGJp91zZXpUuaU/hWLeqYhCJFMWCfMSgStT9dgMTjG39KGwm/I3h3bMw= 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 1773201331740733.7342372918096; Tue, 10 Mar 2026 20:55:31 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0Aa5-0001g1-OL; Tue, 10 Mar 2026 23:49: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 1w0Aa0-0001ei-3Y for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:52 -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 1w0AZy-0005ET-D6 for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:51 -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 62B3G0YS303893 for ; Wed, 11 Mar 2026 03:49:47 GMT Received: from mail-ot1-f69.google.com (mail-ot1-f69.google.com [209.85.210.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cthjf3h39-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 03:49:47 +0000 (GMT) Received: by mail-ot1-f69.google.com with SMTP id 46e09a7af769-7d7536294fcso4614087a34.0 for ; Tue, 10 Mar 2026 20:49: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 46e09a7af769-7d76ae39b39sm946430a34.15.2026.03.10.20.49.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 20:49:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= Z8Us83zLUbX2M9VvBxeV8Cr0l/114WWLghqDSjaR9/A=; b=pkMjzO/OnP45BWbH FFbtmKgLDhhzFf+RSF6S9XQ9aDubH6rfUYC301I6EGXLGLitm6r7LEiLQhyTicwn 5W6SKK6VfSkhM2VmmHzw6vpCtgEVHPVZafkZzSGcanlAWYAVFQdIdv6eBCxNWDaE P9EY+WCPSETN4kASOCK8NVOzH7We2u7Dw1s2KAaXdSMpug30Tv2bUqaRcAYqEDKE yugKMP62Hm3fIKK+KI+D6cZg8a9dtdabd8Cylgw6ZrD7+Id/BUwHW8P8Zmu/znfQ lFt+dQcEERL1iro9vCdGD5uqcIhIXQPasD8Tbx2jLjzAr+pLAugMcuAP43iVUDt6 87j6iA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773200986; x=1773805786; 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=JLfGDF88oBM8o1Z9iBwcUv+NRG2ncKuKbPar/XblE33xtgiJkte9k3pSV8CmIyrJBT 0U18eO3UG0cQ9r1z3Krp3xdymD69COgP+EOKm7Ric/OhJ2DX1aSKAbrsZzri0GNIF7wo 6cECKMV42dNtgy29WbOP1Zl+zsI+v7iAB7FmzBkqqRpJUe8S3lWdLIZlfdo9WcjFDcg2 hPfHtZ+DxR8aSmaAqBvs9hqEYkymzgubFuqHCO0MC36pql5n4wHcPeFxQhVfhDvZtPSE ELdiyJuamg3wZuxhLq38y7guNWzspwtPqmIAHXgqyGHmFmyqc/VHK+qqtbvTJOsVXEMx X4zA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773200986; x=1773805786; 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=jW6MQGW7D3UWplE913YllUbK6JRX7NbmXFOa3f71RVrGlpadKRTFJKZX1t4by7CMG8 o3hyvs3NqzHuUkBUrOAUFVzeu1LYFiDibGJF32+3rExPFps4JHxaKd+d+MMQee4r1YiY 1otFOv6yaOfB+CAkEuUrGx6mYZUmYEPXokfgH60cHHfpqilfN5Jz1DxgYJ8z18BVBMaL t+lnEAqOFIs5ZUHfZWUbVBO7uVnmeOOPfL3yKu4td3UHRzImvN4W71PfLqEc5em9OVHy g53JzgFo/K8P6RwrWUsBYV+/h1fJa50E7diG6+bm/1A1eGImj9RjZ8qPmUNE0vpqZ13z o96g== X-Gm-Message-State: AOJu0Yyv48AIGQ0k4Or7XEnrAjuKcyb9ncdRBlvMV502EimQCyOhWIMg 3RsRPTWSlw1UpLEMrLA5bvvDcBjtjFrN3ieRuJSOwvJCw9iSSLphy6MgatWOMnCxyE9gjk0uTte kV3juJuqmEZTK8c+nxw8aQrkOM3oKD4r4iILBnfBMYrvvg2JQYCtGqdYt6Eai3suuDg== X-Gm-Gg: ATEYQzw86ws8rky1wLRlvhGfR8KhW6WbkQGqt6Q2A+yqauBrJBCaexpRMrRzbPujZBY zfx/buSzWxq/rYDM2tQgClSRQcna/HM/3m+I3c/MKA4QxA8UJkSNF0RtCdodWa6h48NUqK/pWqs OOo61NDr1m6apfxBlpgQupqEbKg4YACDo6NN5P2nNzcyaE3YjQrFRuC/wp+CNYp1AWTBqzM3aQt 8tsX7ANgDLC/PhboMuaT7uJPozkOvRBNX58tFyQz6IeETqt8wJ8kr2r7KpJylzc9poLU/6+lkKs X3ySsYU0SZHH9TAr04YDnGsrI8VjAmQcDz9Jh+RTYMyx8z6l98Fj58dgL5Hf4QIl2UOtbuUo6hn J0R5sRs9VBOk1ZuPHsaspkGyDLabhMJrf1vfJOh78Cu8zTHtV8unbcKO9lrVTneUhdCHgVg== X-Received: by 2002:a05:6830:8290:b0:7cf:cd27:57b9 with SMTP id 46e09a7af769-7d76afa8c52mr812897a34.1.1773200986111; Tue, 10 Mar 2026 20:49:46 -0700 (PDT) X-Received: by 2002:a05:6830:8290:b0:7cf:cd27:57b9 with SMTP id 46e09a7af769-7d76afa8c52mr812884a34.1.1773200985826; Tue, 10 Mar 2026 20:49:45 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v5 14/35] target/hexagon: Add guest/sys reg writes to DisasContext Date: Tue, 10 Mar 2026 20:49:02 -0700 Message-Id: <20260311034923.1044737-15-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> References: <20260311034923.1044737-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: o5bOxdCr3fOneFuvVJGjOtr9q9HxUGRf X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAyOSBTYWx0ZWRfXx/O2th7qCc58 6XZj6Irive7m6znEMzXw+LVV8vC8oVL0ZWz252lxQNfM3Ps0OGJft4Ub0RqN6NmCtJURx7P0wu0 Und0qq5ThK8vDrUdkp7q6OlzDJoXPiFAJ8UiB24QJ/ICODxPqJ9hlpE2PYP/aL2AlsEgb+TBdK7 mw69NWwppQYSvzRnCIVLg9j5QJ+7HeXuzeKrqMptQsfbpcgMnhzyo+Ew7fJly5x8RWtZ/cMD5ox 3rQfRX0oX6yRkBsRvHiEUkwdbyBEZOF44Prx5XwedynkL6ZjG/6VNOf7Ba8mqyddPg0t8cT+J/m wxJYR26f9ZXXoVzwl4Wa4OETzvKyathXwbVRquXBBZ+2dF7UdVx9OUwA6V2ywdmmnyD4mwtLV+A iZogWlehTqYvWHx0Eq5QarY7msfDy5pATKxsmrx40QcO4Fdn4FmfQzxZrux+ItdUdnGo8nfPfg3 zoGrfV8FlQJC1ZepP8A== X-Authority-Analysis: v=2.4 cv=A71h/qWG c=1 sm=1 tr=0 ts=69b0e65b cx=c_pps a=z9lCQkyTxNhZyzAvolXo/A==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=tdgd3nfel_K54e3JQaMA:9 a=QEXdDO2ut3YA:10 a=EyFUmsFV_t8cxB2kMr4A:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: o5bOxdCr3fOneFuvVJGjOtr9q9HxUGRf X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 phishscore=0 clxscore=1015 suspectscore=0 bulkscore=0 adultscore=0 spamscore=0 lowpriorityscore=0 priorityscore=1501 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110029 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773201333652154100 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 8 01:18:42 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=1773201081; cv=none; d=zohomail.com; s=zohoarc; b=HbSXo11DOSTkNmSAEsfbFNLsibvUWEudMTtKQ+mFQGpFUPQLLq2dyFABH99hx3WcRfeqAMta/2iM7IKrh3FjbTSQrQBo4YBM8t4UO+dE6KIk3w5X/ZascEXkedjcox/FZlDxYl4HYZYummBZadMfGSaR1RVyalgXVDDSjb+rVAo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773201081; 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=g9JtQMqhq+IaOBWY6EAaY2IFTblCnjQl4DhPCFYSDRo=; b=Nz3kL4yHZSIyyozSb0enRkl2htOQmSDZWLrxusfRtoPOGxpIGMKCL8huuWYBxJwiL0pafGPhfTmUceWInVq75+M7qNmPzX8Tow8B9jocHSUpkGexVuzTccYWaNM8j/dT3QzGzXi9bMjO0WXMNScYr/7Tn5L6MIU/2Yh6VHfMiKw= 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 1773201081876694.6444986942028; Tue, 10 Mar 2026 20:51:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0Aa9-0001iw-VE; Tue, 10 Mar 2026 23:50: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 1w0Aa3-0001fM-F0 for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:56 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0AZy-0005Eo-DR for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:54 -0400 Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62AIreYP3759032 for ; Wed, 11 Mar 2026 03:49:48 GMT Received: from mail-ot1-f72.google.com (mail-ot1-f72.google.com [209.85.210.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctk8uk2xh-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 03:49:48 +0000 (GMT) Received: by mail-ot1-f72.google.com with SMTP id 46e09a7af769-7d73fd3b35cso27482667a34.0 for ; Tue, 10 Mar 2026 20:49:48 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d76ae39b39sm946430a34.15.2026.03.10.20.49.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 20:49: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= g9JtQMqhq+IaOBWY6EAaY2IFTblCnjQl4DhPCFYSDRo=; b=R2g7aZNoJbJD9fhB Z4bhkwx0zXNqXU8Ya0nXjsiFYLB0JQcZH+/z81dTuKd5a3s3x8fNA61QAkaymBEs Bd+LctbMAZKb1e3CQrH+05sRdDZbP9SPHCYMhUmaaK7nIjIikGyMoj4iZ6aSfpJG OIe5Lw60VOyN3DSfRTAQRqrQWzKvY8rIGXW1anIVwmzY4Gbf6aiO4xJ+T1B4zIAF co9mYSQn7upW07+NZKdH4czx/E441zWBw5ZTwSbMKUUPliaahHK7gnmGECS2J7H3 CJgnIs+vkoddQNGKiNygMgwMuyu5+92/jpttuvz7zbeuiTqJllNSf61OQOdZmbrR e/Z+Cw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773200987; x=1773805787; 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=g9JtQMqhq+IaOBWY6EAaY2IFTblCnjQl4DhPCFYSDRo=; b=LKelX7Clrojk9l+vQ5HnhrxK+e7yfGyUX/EAwXe1ol+KCoz2jgYkA6dgh6djVfHrxt pcRvQhm8pxhANBz4Ib8CwGf8o5hub0ZN4rIZajxf2BUM5cW0jl2WY2ymezglE6Kdras0 f0bOQDve9fOYXx7bZGVZbnU4kIp9pvA44Mv8+YYyvauoeP+3W8GKFfWTCpMiuYqGOMaA WvzOFHWcyEmhuWudB7VOTuas8LVfnsshQg1hV0PvGwrSCYDbOGgUbYYAr60RmOjQp4G2 eNsqMkN2HPygrWmFYUCfpvLzFuaNQ1RYmhavGqbCJepGSjQOgpaEXZLYVj60l89ABH34 9Mvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773200987; x=1773805787; 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=g9JtQMqhq+IaOBWY6EAaY2IFTblCnjQl4DhPCFYSDRo=; b=h9CeMg2Fgwhk9hsa/1IgS4pwuIGYWfWZ5PYr5R8nz06ZowNv3n6YE57uU29EZbIGrC LDa3Kwd1F7WZjxhgu0JR3byRbMb0ezxbsJ2tcDcH6P/uoPTjRyMOMkr3F4+BQfiDh0rS XSipnVbgt2nnm1zXNZuWnAFqelthQt7kz72QKkv0sLzcL7CKJml2HNwoXJKHAKeQbSQA Tk0ownOaoHGXE1gTLuBoavCyaCq8FuCdYeH1X7200IQYyQOlNOrLChqDh5h4WmLvKhk6 S9CH1ixl9OSKAWGaLD1wZOBnUxIQRY1G/yyegRvTOOwol2ZPxK3pDXbn3zBYEFWrbzHp Bv3Q== X-Gm-Message-State: AOJu0YwIutvTF9AMJa4sD8tMdl8/MrM5as5gL530vzxkPx8eE1ffE71x dNAssapg5NXVLXy2aG3l3tSDCeLsnw/cvNp/AznE0CglaQsrm7bSbwQiUmm1XOOpb3GdQIQ4SCR vv0REs/cWTHqhpstpZVs/jG6XDYuYHoxWTOqg+zz9uUQmwyR4YT7ySpbxkvx0EmFj1A== X-Gm-Gg: ATEYQzxaHV2MD4ASonm3pDncErJvgiAx5O7Ma/S3X+jMQzMleuSXVFaHXkMRvtGy/Qf zKEnNmfZy5gCXpY3ue0CCayPqRntSFXsGsaduvx98M/wYuzJJ8U2veAKFpE/7Cr+HbkO/Ux92AV TjXXcTsVWm++vX3XgnbLEpZ3vM3JBWkoLiDFXwztvquW04yigtcp5iTSyZWoNbRWDJsgxDzwXvS iNpjgcMqHl2nHaGJJ2jwAj8Nd86Fq4oAdGf799wrDo5wO0vkkjVq/6T3ZREfRX6Kh0BfuUUbz/d RfydyZClR+gQ7J4vm0Op1vX9kdeqodBIj++A8hGZLRMGVYY9r7icwRtsrakBYM/fcdU+xbXzjK7 m1oZPkiozMS+oS5//i5k7iqYMeBRXBC9yzIX3aOrXURYBh02PngMMrAhpsLIK7wRSn91OIw== X-Received: by 2002:a05:6830:264a:b0:7d1:4d70:736e with SMTP id 46e09a7af769-7d76a822bacmr806933a34.35.1773200987403; Tue, 10 Mar 2026 20:49:47 -0700 (PDT) X-Received: by 2002:a05:6830:264a:b0:7d1:4d70:736e with SMTP id 46e09a7af769-7d76a822bacmr806919a34.35.1773200986989; Tue, 10 Mar 2026 20:49:46 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v5 15/35] target/hexagon: Add imported macro, attr defs for sysemu Date: Tue, 10 Mar 2026 20:49:03 -0700 Message-Id: <20260311034923.1044737-16-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> References: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: 3E7oFxOZJsaKta4lP-Yqa5IVB7dUpDS5 X-Proofpoint-GUID: 3E7oFxOZJsaKta4lP-Yqa5IVB7dUpDS5 X-Authority-Analysis: v=2.4 cv=YcmwJgRf c=1 sm=1 tr=0 ts=69b0e65c cx=c_pps a=+3WqYijBVYhDct2f5Fivkw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=i3OrD5w6cDdmGd68u_gA:9 a=QEXdDO2ut3YA:10 a=eYe2g0i6gJ5uXG_o6N4q:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAyOSBTYWx0ZWRfX+tICFOMshHrx +dZcHMXP1Z+LkvY9MGXUG9YErm2A9WH5coFDswA2KRgyRMrfLCc8Gi8ZRQ90lHiXkZgjbmkfDJU lsGzjDBgxa1QTGVIlsenkU3RXzk678VDVAA3R/BO8+JZny/Gj4Pj0wF7gcFIi9m1RwRFmThJjZA UgT0MqStMYPmjwaiW2JtWAKtHKedmsJrUwgpmQV5KrF50BSkdUsMm+T/xG5aV/ReBhIRg6v913x c+edSJsuupn03LKB7k53KhENhb7BhP3Chxfc7V1zFhyIAWD5y0+0qlVWMDxtsvtnsfIZJbAoS1R cjvKU0iY7o/j+JH2t+OQY/kQt/StV09VGxK6pnGcqEjbgUm2Gn8uc/m1TfkUOoaXnZJ7pMEFXsQ IlSKWiu32mjoCZvj4wcTaq57r8HeoWjxxxN9D8RADl5Hg44lYAsLVtDRh/mNN3EU3AEXJfbKAHK rFsuJh6dyWqt9rGqmPg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 suspectscore=0 impostorscore=0 spamscore=0 bulkscore=0 lowpriorityscore=0 phishscore=0 adultscore=0 priorityscore=1501 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110029 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UPPERCASE_50_75=0.008 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773201085869158500 From: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/attribs_def.h.inc | 49 ++- target/hexagon/imported/macros.def | 482 ++++++++++++++++++++++++++++- 2 files changed, 518 insertions(+), 13 deletions(-) mode change 100755 =3D> 100644 target/hexagon/imported/macros.def diff --git a/target/hexagon/attribs_def.h.inc b/target/hexagon/attribs_def.= h.inc index 9e3a05f8828..06ab826b49f 100644 --- a/target/hexagon/attribs_def.h.inc +++ b/target/hexagon/attribs_def.h.inc @@ -52,6 +52,9 @@ DEF_ATTRIB(REGWRSIZE_4B, "Memory width is 4 bytes", "", "= ") DEF_ATTRIB(REGWRSIZE_8B, "Memory width is 8 bytes", "", "") DEF_ATTRIB(MEMLIKE, "Memory-like instruction", "", "") DEF_ATTRIB(MEMLIKE_PACKET_RULES, "follows Memory-like packet rules", "", "= ") +DEF_ATTRIB(CACHEOP, "Cache operation", "", "") +DEF_ATTRIB(COPBYADDRESS, "Cache operation by address", "", "") +DEF_ATTRIB(COPBYIDX, "Cache operation by index", "", "") DEF_ATTRIB(RELEASE, "Releases a lock", "", "") DEF_ATTRIB(ACQUIRE, "Acquires a lock", "", "") =20 @@ -101,23 +104,44 @@ DEF_ATTRIB(ROPS_3, "Compound instruction worth 3 RISC= -ops", "", "") =20 /* access to implicit registers */ DEF_ATTRIB(IMPLICIT_WRITES_LR, "Writes the link register", "", "UREG.LR") +DEF_ATTRIB(IMPLICIT_READS_LR, "Reads the link register", "UREG.LR", "") +DEF_ATTRIB(IMPLICIT_READS_LC0, "Reads loop count for loop 0", "UREG.LC0", = "") +DEF_ATTRIB(IMPLICIT_READS_LC1, "Reads loop count for loop 1", "UREG.LC1", = "") +DEF_ATTRIB(IMPLICIT_READS_SA0, "Reads start address for loop 0", "UREG.SA0= ", "") +DEF_ATTRIB(IMPLICIT_READS_SA1, "Reads start address for loop 1", "UREG.SA1= ", "") +DEF_ATTRIB(IMPLICIT_WRITES_PC, "Writes the program counter", "", "UREG.PC") +DEF_ATTRIB(IMPLICIT_READS_PC, "Reads the program counter", "UREG.PC", "") DEF_ATTRIB(IMPLICIT_WRITES_SP, "Writes the stack pointer", "", "UREG.SP") +DEF_ATTRIB(IMPLICIT_READS_SP, "Reads the stack pointer", "UREG.SP", "") DEF_ATTRIB(IMPLICIT_WRITES_FP, "Writes the frame pointer", "", "UREG.FP") +DEF_ATTRIB(IMPLICIT_READS_FP, "Reads the frame pointer", "UREG.FP", "") +DEF_ATTRIB(IMPLICIT_WRITES_GP, "Writes the GP register", "", "UREG.GP") +DEF_ATTRIB(IMPLICIT_READS_GP, "Reads the GP register", "UREG.GP", "") DEF_ATTRIB(IMPLICIT_WRITES_LC0, "Writes loop count for loop 0", "", "UREG.= LC0") DEF_ATTRIB(IMPLICIT_WRITES_LC1, "Writes loop count for loop 1", "", "UREG.= LC1") DEF_ATTRIB(IMPLICIT_WRITES_SA0, "Writes start addr for loop 0", "", "UREG.= SA0") DEF_ATTRIB(IMPLICIT_WRITES_SA1, "Writes start addr for loop 1", "", "UREG.= SA1") +DEF_ATTRIB(IMPLICIT_WRITES_R00, "Writes Register 0", "", "UREG.R00") DEF_ATTRIB(IMPLICIT_WRITES_P0, "Writes Predicate 0", "", "UREG.P0") DEF_ATTRIB(IMPLICIT_WRITES_P1, "Writes Predicate 1", "", "UREG.P1") DEF_ATTRIB(IMPLICIT_WRITES_P2, "Writes Predicate 1", "", "UREG.P2") DEF_ATTRIB(IMPLICIT_WRITES_P3, "May write Predicate 3", "", "UREG.P3") -DEF_ATTRIB(IMPLICIT_READS_PC, "Reads the PC register", "", "") -DEF_ATTRIB(IMPLICIT_READS_P0, "Reads the P0 register", "", "") -DEF_ATTRIB(IMPLICIT_READS_P1, "Reads the P1 register", "", "") -DEF_ATTRIB(IMPLICIT_READS_P2, "Reads the P2 register", "", "") -DEF_ATTRIB(IMPLICIT_READS_P3, "Reads the P3 register", "", "") +DEF_ATTRIB(IMPLICIT_READS_R00, "Reads Register 0", "UREG.R00", "") +DEF_ATTRIB(IMPLICIT_READS_P0, "Reads Predicate 0", "UREG.P0", "") +DEF_ATTRIB(IMPLICIT_READS_P1, "Reads Predicate 1", "UREG.P1", "") +DEF_ATTRIB(IMPLICIT_READS_P3, "Reads Predicate 3", "UREG.P3", "") +DEF_ATTRIB(IMPLICIT_READS_Q3, "Reads Vector Predicate 3", "UREG.Q3", "") +DEF_ATTRIB(IMPLICIT_READS_CS, "Reads the CS/M register", "UREG.CS", "") DEF_ATTRIB(IMPLICIT_WRITES_USR, "May write USR", "", "") -DEF_ATTRIB(IMPLICIT_READS_SP, "Reads the SP register", "", "") +DEF_ATTRIB(IMPLICIT_WRITES_CCR, "Writes CCR register", "", "UREG.CCR") +DEF_ATTRIB(IMPLICIT_WRITES_GOSP, "Writes GOSP register", "", "UREG.GOSP") +DEF_ATTRIB(IMPLICIT_WRITES_SSR, "Writes SSR register", "", "UREG.SSR") +DEF_ATTRIB(IMPLICIT_WRITES_SGP0, "Writes SGP0 register", "", "UREG.SGP0") +DEF_ATTRIB(IMPLICIT_WRITES_SGP1, "Writes SGP1 register", "", "UREG.SGP1") +DEF_ATTRIB(IMPLICIT_WRITES_IMASK_ANYTHREAD, + "Writes IMASK for any thread", "", "") +DEF_ATTRIB(IMPLICIT_WRITES_STID_PRIO_ANYTHREAD, + "Writes STID priority for any thread", "", "") DEF_ATTRIB(COMMUTES, "The operation is communitive", "", "") DEF_ATTRIB(DEALLOCRET, "dealloc_return", "", "") DEF_ATTRIB(DEALLOCFRAME, "deallocframe", "", "") @@ -137,9 +161,15 @@ DEF_ATTRIB(RESTRICT_SLOT3ONLY, "Must execute on slot3"= , "", "") DEF_ATTRIB(RESTRICT_NOSLOT1, "No slot 1 instruction in parallel", "", "") DEF_ATTRIB(RESTRICT_PREFERSLOT0, "Try to encode into slot 0", "", "") DEF_ATTRIB(RESTRICT_PACKET_AXOK, "May exist with A-type or X-type", "", "") +DEF_ATTRIB(RESTRICT_SINGLE_MEM_FIRST, "Single memory op must be first", ""= , "") +DEF_ATTRIB(RESTRICT_SLOT1_AOK, "Slot 1 is allowed", "", "") =20 DEF_ATTRIB(ICOP, "Instruction cache op", "", "") =20 +DEF_ATTRIB(EXCEPTION_SWI, "Software interrupt exception", "", "") +DEF_ATTRIB(DMA, "DMA instruction", "", "") +DEF_ATTRIB(NO_TIMING_LOG, "Does not get logged to the timing model", "", "= ") + DEF_ATTRIB(HWLOOP0_END, "Ends HW loop0", "", "") DEF_ATTRIB(HWLOOP1_END, "Ends HW loop1", "", "") DEF_ATTRIB(RET_TYPE, "return type", "", "") @@ -151,6 +181,10 @@ DEF_ATTRIB(DCFETCH, "dcfetch type", "", "") =20 DEF_ATTRIB(L2FETCH, "Instruction is l2fetch type", "", "") =20 +DEF_ATTRIB(DCTAGOP, "Data cache tag operation", "", "") +DEF_ATTRIB(ICTAGOP, "Instruction cache tag operation", "", "") +DEF_ATTRIB(L2TAGOP, "L2 cache tag operation", "", "") + DEF_ATTRIB(ICINVA, "icinva", "", "") DEF_ATTRIB(DCCLEANINVA, "dccleaninva", "", "") =20 @@ -166,6 +200,9 @@ DEF_ATTRIB(NOTE_LATEPRED, "The predicate can not be use= d as a .new", "", "") DEF_ATTRIB(NOTE_NVSLOT0, "Can execute only in slot 0 (ST)", "", "") DEF_ATTRIB(NOTE_NOVP, "Cannot be paired with a HVX permute instruction", "= ", "") DEF_ATTRIB(NOTE_VA_UNARY, "Combined with HVX ALU op (must be unary)", "", = "") +DEF_ATTRIB(NOTE_SLOT1_AOK, "Slot 1 is allowed", "", "") +DEF_ATTRIB(NOTE_GUEST, "Guest mode instruction", "", "") +DEF_ATTRIB(NOTE_BADTAG_UNDEF, "Bad tag results in undefined behavior", "",= "") =20 /* V6 MMVector Notes for Documentation */ DEF_ATTRIB(NOTE_SHIFT_RESOURCE, "Uses the HVX shift resource.", "", "") diff --git a/target/hexagon/imported/macros.def b/target/hexagon/imported/m= acros.def old mode 100755 new mode 100644 index 4bbcfdd5e19..13eb13c71f7 --- a/target/hexagon/imported/macros.def +++ b/target/hexagon/imported/macros.def @@ -353,6 +353,12 @@ DEF_MACRO( () ) =20 +DEF_MACRO( + fREAD_SSR, /* read SSR register */ + (READ_RREG(REG_SSR)), /* behavior */ + () +) + DEF_MACRO( fWRITE_LR, /* write lr */ WRITE_RREG(REG_LR,A), /* behavior */ @@ -371,12 +377,36 @@ DEF_MACRO( (A_IMPLICIT_WRITES_SP) ) =20 +DEF_MACRO( + fWRITE_GOSP, /* write gosp */ + WRITE_RREG(REG_GOSP,A), /* behavior */ + (A_IMPLICIT_WRITES_GOSP) +) + DEF_MACRO( fREAD_SP, /* read stack pointer */ (READ_RREG(REG_SP)), /* behavior */ () ) =20 +DEF_MACRO( + fREAD_GOSP, /* read guest other stack pointer */ + (READ_RREG(REG_GOSP)), /* behavior */ + () +) + +DEF_MACRO( + fREAD_GELR, /* read guest other stack pointer */ + (READ_RREG(REG_GELR)), /* behavior */ + () +) + +DEF_MACRO( + fREAD_GEVB, /* read guest other stack pointer */ + (READ_RREG(REG_GEVB)), /* behavior */ + () +) + DEF_MACRO( fREAD_CSREG, /* read CS register */ (READ_RREG(REG_CSA+N)), /* behavior */ @@ -570,6 +600,11 @@ DEF_MACRO( WRITE_PREG(3,VAL), /* behavior */ (A_IMPLICIT_WRITES_P3) ) +DEF_MACRO( + fWRITE_P3_LATE, /* write Predicate 0 */ + {WRITE_PREG(3,VAL); fHIDE(MARK_LATE_PRED_WRITE(3))} , /* behavio= r */ + (A_IMPLICIT_WRITES_P3,A_RESTRICT_LATEPRED) +) =20 DEF_MACRO( fPART1, /* write Predicate 0 */ @@ -660,6 +695,7 @@ DEF_MACRO( ((size8s_t)((size2s_t)(A))), /* optional attributes */ ) + DEF_MACRO( fCAST2_8u, /* macro name */ ((size8u_t)((size2u_t)(A))), @@ -1532,18 +1568,137 @@ DEF_MACRO(fECHO, /* OS interface and stop/wait */ /********************************************/ =20 +DEF_MACRO(RUNNABLE_THREADS_MAX, + /* */, + () +) + +DEF_MACRO(THREAD_IS_ON, + ((PROC->arch_proc_options->thread_enable_mask>>TNUM) & 0x1), + () +) + +DEF_MACRO(THREAD_EN_MASK, + ((PROC->arch_proc_options->thread_enable_mask)), + () +) + + + +DEF_MACRO(READ_IMASK, + /* */, + () +) +DEF_MACRO(WRITE_IMASK, + /* */, + (A_IMPLICIT_WRITES_IMASK_ANYTHREAD) +) + + +DEF_MACRO(WRITE_PRIO, + /* */, + (A_IMPLICIT_WRITES_STID_PRIO_ANYTHREAD) +) + + +DEF_MACRO(DO_IASSIGNW, + /* */, + (A_IMPLICIT_WRITES_IMASK_ANYTHREAD) +) + + + + +DEF_MACRO(fDO_NMI, + /* */, +) + +DEF_MACRO(fDO_TRACE, + /* */, +) + +DEF_MACRO(DO_IASSIGNR, + /* */, + () +) + +DEF_MACRO(DO_SWI, + /* */, + (A_EXCEPTION_SWI) +) + +DEF_MACRO(DO_CSWI, + LOG_GLOBAL_REG_WRITE(REG_IPEND,GLOBAL_REG_READ(REG_IPEND) & ~((REG= ) & GLOBAL_REG_READ(REG_IEL)));, + () +) + +DEF_MACRO(DO_CIAD, + sys_ciad(thread,VAL); LOG_GLOBAL_REG_WRITE(REG_IAD,GLOBAL_REG_READ= (REG_IAD) & ~(VAL));, + (A_EXCEPTION_SWI) +) + +DEF_MACRO(DO_SIAD, + sys_siad(thread,VAL); LOG_GLOBAL_REG_WRITE(REG_IAD,GLOBAL_REG_READ= (REG_IAD) | (VAL));, + (A_EXCEPTION_SWI) +) + +DEF_MACRO(fBREAK, + /* */, + () +) + DEF_MACRO(fPAUSE, {sys_pause(thread, insn->slot, IMM);}, () ) =20 + DEF_MACRO(fTRAP, - warn("Trap NPC=3D%x ",fREAD_NPC()); - warn("Trap exception, PCYCLE=3D%lld TYPE=3D%d NPC=3D%x IMM=3D0x%x",thr= ead->processor_ptr->pstats[pcycles],TRAPTYPE,fREAD_NPC(),IMM); - register_trap_exception(thread,fREAD_NPC(),TRAPTYPE,IMM);, + /* */, + (A_EXCEPTION_SWI) +) + +DEF_MACRO(fCLEAR_RTE_EX, + /* */, + () +) + +DEF_MACRO(fTLB_LOCK_AVAILABLE, + (fREAD_GLOBAL_REG_FIELD(SYSCONF,SYSCFG_TLBLOCK) =3D=3D 0), () ) =20 +DEF_MACRO(fK0_LOCK_AVAILABLE, + (fREAD_GLOBAL_REG_FIELD(SYSCONF,SYSCFG_K0LOCK) =3D=3D 0), + () +) + +DEF_MACRO(fSET_TLB_LOCK, + { + if (fTLB_LOCK_AVAILABLE()) { + fLOG_GLOBAL_REG_FIELD(SYSCONF,SYSCFG_TLBLOCK,1); + } else { + sys_waiting_for_tlb_lock(thread); + } + }, + () +) + +DEF_MACRO(fSET_K0_LOCK, + /* */, + () +) + +DEF_MACRO(fCLEAR_TLB_LOCK, + /* */, + () +) + +DEF_MACRO(fCLEAR_K0_LOCK, + /* */, + () +) + DEF_MACRO(fALIGN_REG_FIELD_VALUE, ((VAL)<Regs[REG_##REG], reg_field_info[FIELD].width, @@ -1561,6 +1734,11 @@ DEF_MACRO(fREAD_REG_FIELD, /* ATTRIBS */ ) =20 +DEF_MACRO(fREAD_GLOBAL_REG_FIELD, + /* */, + /* ATTRIBS */ +) + DEF_MACRO(fGET_FIELD, fEXTRACTU_BITS(VAL, reg_field_info[FIELD].width, @@ -1576,6 +1754,174 @@ DEF_MACRO(fSET_FIELD, /* ATTRIBS */ ) =20 +DEF_MACRO(fSET_RUN_MODE_NOW, + /* */, +) + +DEF_MACRO(fIN_DEBUG_MODE, + (thread->debug_mode || (fREAD_GLOBAL_REG_FIELD(ISDBST,ISDBST_DEBUGMODE= ) & 1<debug_mode), + () +) + + +DEF_MACRO(fIN_DEBUG_MODE_WARN, + { + if (fREAD_GLOBAL_REG_FIELD(ISDBST,ISDBST_DEBUGMODE) & 1<> 1) | ((VAL) >> 2) | ((VAL) >> 4) | ((VAL) >> 8) | (= (VAL) >> 16)), + () +) + +DEF_MACRO(fPOW2_ROUNDUP, + fPOW2_HELP_ROUNDUP((VAL)-1)+1, + () +) + +DEF_MACRO(fTLB_IDXMASK, + /* */, + () +) + +DEF_MACRO(fTLB_NONPOW2WRAP, + /* */, + /* ATTRIBS */ +) + +DEF_MACRO(fTLBW, + /* */, + /* ATTRIBS */ +) + +DEF_MACRO(fTLB_ENTRY_OVERLAP, + fHIDE( (sys_check_overlap(thread,VALUE)!=3D-2) ), + /* ATTRIBS */ +) + +DEF_MACRO(fTLB_ENTRY_OVERLAP_IDX, + fHIDE(sys_check_overlap(thread,VALUE)), + /* ATTRIBS */ +) + + +DEF_MACRO(fTLBR, + TLB_REG_READ(fTLB_NONPOW2WRAP(fTLB_IDXMASK(INDEX))), + /* ATTRIBS */ +) + +DEF_MACRO(fTLBP, + tlb_lookup(thread,((TLBHI)>>12),((TLBHI)<<12),1), + /* attribs */ +) + + + +DEF_MACRO(READ_SGP0, + READ_RREG(REG_SGP), + () +) + +DEF_MACRO(READ_SGP1, + READ_RREG(REG_SGP+1), + () +) + +DEF_MACRO(READ_SGP10, + READ_RREG_PAIR(REG_SGP), + () +) + +DEF_MACRO(READ_UGP, + READ_RREG(REG_UGP), +) + +DEF_MACRO(WRITE_SGP0, + WRITE_RREG(REG_SGP,VAL), + (A_IMPLICIT_WRITES_SGP0) +) + +DEF_MACRO(WRITE_SGP1, + WRITE_RREG(REG_SGP+1,VAL), + (A_IMPLICIT_WRITES_SGP1) +) + +DEF_MACRO(WRITE_SGP10, + WRITE_RREG_PAIR(REG_SGP,VAL), + (A_IMPLICIT_WRITES_SGP0,A_IMPLICIT_WRITES_SGP1) +) + +DEF_MACRO(WRITE_UGP, + WRITE_RREG(REG_UGP,VAL), +) + +DEF_MACRO(fSTART, + /* */, + () +) + +DEF_MACRO(fRESUME, + fLOG_GLOBAL_REG_FIELD(MODECTL,MODECTL_W, + fREAD_GLOBAL_REG_FIELD(MODECTL,MODECTL_W) & (~(REG))), + () +) + +DEF_MACRO(fGET_TNUM, + thread->threadId, + () +) + /********************************************/ /* Cache Management */ /********************************************/ @@ -1602,19 +1948,49 @@ DEF_MACRO(fISYNC, ) =20 =20 +DEF_MACRO(fICFETCH, + , + () +) + DEF_MACRO(fDCFETCH, sys_dcfetch(thread, (REG), insn->slot), (A_MEMLIKE) ) =20 DEF_MACRO(fICINVA, - { - arch_internal_flush(thread->processor_ptr, 0, 0xffffffff); - sys_icinva(thread, (REG),insn->slot); - }, + /* */, (A_ICINVA) ) =20 +DEF_MACRO(fDCTAGR, + ({DST=3Dsys_dctagr(thread, INDEX, insn->slot,DSTREGNO);})/* FIXME */, + () +) + +DEF_MACRO(fDCTAGW, + (sys_dctagw(thread, INDEX, PART2, insn->slot)), + () +) +DEF_MACRO(fICTAGR, + ({DST=3Dsys_ictagr(thread, INDEX, insn->slot,REGNO);}), + () +) + +DEF_MACRO(fICDATAR, + ({DST=3Dsys_icdatar(thread, INDEX, insn->slot);}), + () +) + +DEF_MACRO(fICTAGW, + (sys_ictagw(thread, INDEX, PART2, insn->slot)), + () +) +DEF_MACRO(fICDATAW, + ({ fHIDE(); }), + () +) + DEF_MACRO(fL2FETCH, sys_l2fetch(thread, ADDR,HEIGHT,WIDTH,STRIDE,FLAGS, insn->slot), (A_MEMLIKE,A_L2FETCH) @@ -1635,6 +2011,12 @@ DEF_MACRO(fDCZEROA, (A_MEMLIKE) ) =20 +DEF_MACRO(fDCINVA, + sys_dcinva(thread, (REG)), + (A_MEMLIKE) +) + + DEF_MACRO(fCHECKFORPRIV, {sys_check_privs(thread); if (EXCEPTION_DETECTED) return; }, () @@ -1645,6 +2027,16 @@ DEF_MACRO(fCHECKFORGUEST, () ) =20 +DEF_MACRO(fTAKEN_INTERRUPT_EDGECLEAR, + { proc->global_regs[REG_IPEND] &=3D ~(INT_NUMTOMASK(intnum) & proc= ->global_regs[REG_IEL]); }, + () +) + +DEF_MACRO(fSET_IAD, + /* */, + () +) + DEF_MACRO(fBRANCH_SPECULATE_STALL, { sys_speculate_branch_stall(thread, insn->slot, JUMP_COND(JUMP_PRED= _SET), @@ -1664,3 +2056,79 @@ DEF_MACRO(IV1DEAD, , () ) + +DEF_MACRO(fIN_MONITOR_MODE, + sys_in_monitor_mode(thread), + () +) + +DEF_MACRO(fIN_USER_MODE, + sys_in_user_mode(thread), + () +) + +DEF_MACRO(fIN_GUEST_MODE, + sys_in_guest_mode(thread), + () +) + +DEF_MACRO(fGRE_ENABLED, + fREAD_REG_FIELD(CCR,CCR_GRE), + () +) + +DEF_MACRO(fGTE_ENABLED, + fREAD_REG_FIELD(CCR,CCR_GRE), + () +) + +DEF_MACRO(fTRAP1_VIRTINSN, + ((fIN_GUEST_MODE()) + && (fGRE_ENABLED()) + && ( ((IMM) =3D=3D 1) + || ((IMM) =3D=3D 3) + || ((IMM) =3D=3D 4) + || ((IMM) =3D=3D 6))), + () +) + +DEF_MACRO(fVIRTINSN_RTE, + do { + thread->trap1_info =3D TRAP1_VIRTINSN_RTE; + fLOG_REG_FIELD(SSR,SSR_SS,fREAD_REG_FIELD(GSR,GSR_SS)); + fLOG_REG_FIELD(CCR,CCR_GIE,fREAD_REG_FIELD(GSR,GSR_IE)); + fLOG_REG_FIELD(SSR,SSR_GM,!fREAD_REG_FIELD(GSR,GSR_UM)); + fBRANCH((fREAD_GELR() & -4),COF_TYPE_RTE); + fINTERNAL_CLEAR_SAMEPAGE(); + } while (0), + (A_IMPLICIT_WRITES_CCR,A_IMPLICIT_WRITES_SSR) +) + +DEF_MACRO(fVIRTINSN_SETIE, + do { + fLOG_REG_FIELD(CCR,CCR_GIE,(REG) & 1); + REG =3D fREAD_REG_FIELD(CCR,CCR_GIE); + thread->trap1_info =3D TRAP1_VIRTINSN_SETIE; + } while (0), + (A_IMPLICIT_WRITES_CCR) +) + +DEF_MACRO(fVIRTINSN_GETIE, + { + thread->trap1_info =3D TRAP1_VIRTINSN_GETIE; + REG =3D fREAD_REG_FIELD(CCR,CCR_GIE); + }, + () +) + +DEF_MACRO(fVIRTINSN_SPSWAP, + do { + if (fREAD_REG_FIELD(GSR,GSR_UM)) { + size4u_t TEMP =3D REG; + REG =3D fREAD_GOSP(); + fWRITE_GOSP(TEMP); + thread->trap1_info =3D TRAP1_VIRTINSN_SPSWAP; + } + } while (0), + (A_IMPLICIT_WRITES_GOSP) +) --=20 2.34.1 From nobody Wed Apr 8 01:18:42 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=1773201007; cv=none; d=zohomail.com; s=zohoarc; b=Kyl/UJ/Gwp9DmM6x71PdjE4A7/JX+SFb9SE+Fy9UF15tkISZBGLTzi86cxfeV1qVUVTjS4w+jXPmJNgzHNgsdeug0x+NuvO0I8bW/zGM+ZPwIpioSNBeLOgLKczll/zfpdCpFXPFS3eUooOWE3WM6RDFA1Kz4NfhUhaRKHjr2Pw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773201007; 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=Qu26NZ7o2mH4lW+67SjOjkDPMcJ/5AZ2dEJDmOr5A1A=; b=UdjzbaDDJs8nOFs8CjR/WMJJdMK1eUHW5MnSDIbiPgXsBVvbKsb/BXNGeesMXFhXThqFWEdawtmAYj+SkaRhtfGqfNGM4RmxKhg5MnCRJBZ/DJyC/8rAIw5DImbdLThmfNQSSaO4CJxMwORTpnc5L7PGNv63P+eHxMGwlP8AlgI= 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 1773201007064885.6933581029388; Tue, 10 Mar 2026 20:50:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0Aa7-0001h2-Ak; Tue, 10 Mar 2026 23:49: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 1w0Aa0-0001ek-Gp for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49: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 1w0AZy-0005Et-Db for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:52 -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 62B0ptKF508387 for ; Wed, 11 Mar 2026 03:49:49 GMT Received: from mail-ot1-f69.google.com (mail-ot1-f69.google.com [209.85.210.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctppaj3da-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 03:49:49 +0000 (GMT) Received: by mail-ot1-f69.google.com with SMTP id 46e09a7af769-7d742bb4003so13063089a34.0 for ; Tue, 10 Mar 2026 20:49:49 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d76ae39b39sm946430a34.15.2026.03.10.20.49.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 20:49: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= Qu26NZ7o2mH4lW+67SjOjkDPMcJ/5AZ2dEJDmOr5A1A=; b=PC3sDJxQW/8T94Jg jozXlianPxXGpXyDvNyx6E4iMTOWnV3NsZBmAfch4ZQ1BLDUIColA+7D3DxAgkCT 34tdn6GG9jjvxnCRXBXYRZxBVKw6rHXzhUq1dN02U3UCKf4M4YKHsjdesJdmPLoq jF8zV42WJBw5fO2goMaj4IUqNLffHf4NEp+cqih9GiKINQrRLxKyRZ2MHv0zLjsQ sSYX7ZwLG0OXFjAg9QgqDstagc2CHVF6yzog8R8dSx+FVT2FA0RIjuEPwYAuFufX nuwRTWN8jQTUlO5YMojKsQm9ZV2R+Yk3+x0LOBO1frhSJBeeHaX/Ty/rSdpGx0jj YvSo7Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773200989; x=1773805789; 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=Qu26NZ7o2mH4lW+67SjOjkDPMcJ/5AZ2dEJDmOr5A1A=; b=Xx2T8FqA84QoZsxmS/A7QhB4QhmE5xPob9FSJ1les55nvUIHZFRT+i8rVLqxN0fq0h /RU1GkqtfwvogDI/Y1ngIkP7TiZIN5RQNOPjCMz4iOMtLZrzFy417V24t7ZBsVV85Z6e qZXsRtLk9NjvknqMYHV/C5RVnu2s3oMjx1yO/tIXWH6xfdTSI8giiyxKAjtP108LlFYG rhMh9B5wH3N9xCjxJqTNeaw2q8f2Dt8iyqxOw7ZquobZCy3FN2Brsbfg3p5611HkQ2Vh 6GnSM7b8GKOA98btk7Vdl8mnd6CEUD3xhU7pf/GDjFa7MlEHNDSiUvQ+911k5ptWDdby N81A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773200989; x=1773805789; 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=Qu26NZ7o2mH4lW+67SjOjkDPMcJ/5AZ2dEJDmOr5A1A=; b=Njw8X8NElutL35n/EjpVj+WkuTqLQaO36FNcWKfLexJNO5GsIwsihiaUuzZibJV8Jt LLMzvkTVmlVdoRG+6wI1pifJJt7YjonUu59BvxQ79B+LPCgJRis6Wp2+pqcxYIkTjDHd bhq8t/9n+fIyali2bxeZakgfWArqKT1i4TW39/p4DSbvc3MGnPRtm3k3WBqCgASZB6g0 I/r/RIZG5tbpLECio7LbwaOEmZYKaOoCkxG7ilmn5DsNbPTOBTxp2jfwYm1mbQkrmeoL 8BiYpYCKdExDp/ecXi5F56S1AfqvtfK2FPQ85OLiAXNyW7UOwx+NZnmwHk9SHvAZBW+3 zJvA== X-Gm-Message-State: AOJu0Yw8QE6Ft6LD93NOd+RWe4ZzxEd0p6oWRVQF8QDuKI9BmdYQ01Mi NKUIZ50nXig75WHUy1PSZO0LHPfezzGt7WG5HS/b2lg6auupUROmRJau9KB4tToUG6yzdO1Ca9d l0y8dYXwgu7OjcAmKOlDzEOlYXAmmNBSGXoR7UF7xKp8mRqtWpFQ/T9uEMyuwpEfJqQ== X-Gm-Gg: ATEYQzzdnp1pGgoE+ww/TSf1hlxyI4PV179gDaTDW7/oEaWNzEjdfLNlT/zCvV+hEuU rYardQGuw1myrtE/FjR07NRrBc2iO9Onejli34Dj0ezOQnQto02LhOcFgSEFOsk8Dp74zbSNe/a wdY4m2lAJqOdOY9RMtNkRm27+BTRJXFSyBgedwLaAN3Qnk52ZvmkfKxkS1Snx9TZ4HJIPtSItFY xidXntRm4OIWNrMDtct4i1E9ERr+Y9KlalbeMI4WCnFYzbsKnOZf370R9BGc8SJdAMpzJyyYn6e qhHCBAAIZEpDF4xmLyVhz7ZUfjIwzKwd3pvvczOGHEsi0xVMLtTtwyEQDoJ7yoeZJaDqJDd/6zJ awlvbCjALJ+N4FJDuOtECYNxOVVcloOA3KO32XBKXeQV5YryWNudD4djVMvxZZctidtErBA== X-Received: by 2002:a05:6830:43ab:b0:7d7:57c4:3675 with SMTP id 46e09a7af769-7d76a800fc7mr829278a34.30.1773200988621; Tue, 10 Mar 2026 20:49:48 -0700 (PDT) X-Received: by 2002:a05:6830:43ab:b0:7d7:57c4:3675 with SMTP id 46e09a7af769-7d76a800fc7mr829255a34.30.1773200988183; Tue, 10 Mar 2026 20:49: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 v5 16/35] target/hexagon: Add new macro definitions for sysemu Date: Tue, 10 Mar 2026 20:49:04 -0700 Message-Id: <20260311034923.1044737-17-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> References: <20260311034923.1044737-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: Jgcx4V1rNP0fvtuYhwxX1J6cWIJEVTxg X-Authority-Analysis: v=2.4 cv=D7BK6/Rj c=1 sm=1 tr=0 ts=69b0e65d cx=c_pps a=z9lCQkyTxNhZyzAvolXo/A==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=VoFV4bgUeqxKQXHmsMYA:9 a=QEXdDO2ut3YA:10 a=EyFUmsFV_t8cxB2kMr4A:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAyOSBTYWx0ZWRfXzUmAhAxsZgvc PVc0y5C2NTABuY6dgTeFQCmvPjUa3f0Z5NFEPMRVAARgdKvCsXKxgL9KJ+ELx8nAesBc16PxJle wTnRE+9gWcwBXglpuFSBQZcYSkVqHzzNBR+YySOCNshLNGkgEyWIIYL49IuujAcRl3VsV+bHyXe tFjg4SyLdbn6nLGr8INU7f+CWGoRIs5mvaMilpuqQ026nZTHeiTuiWrTx3+PHcA1YCt3US9nVh8 Y55ePTcR8SN8YUfu1DsxH7+aBZAwTQwvBueoaFrgtEXqwYUQMl4PbU7i3tlOwWqxC+h8RV0/DVu yUvnRmM8lkdEcYt2nIe38DRnith7WVNRSOniDxKJG+fD4KGHQbqp2uhGKryeVoJIqBUar+ECyWs uTVw2t8aHVMWR0m91KCo4ix4CtE96eZaXvIzrl8D/89n2tgD6McyXUnW2HmdkY75ZHCN7PcgBOo TeUDFRly+Qp7KpUqHog== X-Proofpoint-ORIG-GUID: Jgcx4V1rNP0fvtuYhwxX1J6cWIJEVTxg X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 phishscore=0 impostorscore=0 spamscore=0 bulkscore=0 malwarescore=0 priorityscore=1501 clxscore=1015 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110029 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773201010211154100 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 7b96dab9185..bd04386d860 100644 --- a/target/hexagon/gen_tcg.h +++ b/target/hexagon/gen_tcg.h @@ -488,6 +488,7 @@ =20 /* dczeroa clears the 32 byte cache line at the address given */ #define fGEN_TCG_Y2_dczeroa(SHORTCODE) SHORTCODE +#define fGEN_TCG_Y2_dczeroa_nt(SHORTCODE) SHORTCODE =20 /* In linux-user mode, these are not modelled, suppress compiler warning */ #define fGEN_TCG_Y2_dcinva(SHORTCODE) \ @@ -1132,6 +1133,9 @@ RdV, tcg_constant_tl(0)); \ } while (0) =20 +#define fGEN_TCG_Y2_break(SHORTCODE) +#define fGEN_TCG_J2_unpause(SHORTCODE) + #define fGEN_TCG_J2_pause(SHORTCODE) \ do { \ uiV =3D uiV; \ @@ -1341,6 +1345,11 @@ RsV =3D RsV; \ uiV =3D uiV; \ } while (0) +#define fGEN_TCG_Y2_dcfetchbo_nt(SHORTCODE) \ + do { \ + RsV =3D RsV; \ + uiV =3D uiV; \ + } while (0) =20 #define fGEN_TCG_L2_loadw_aq(SHORTCODE) SHORTCODE #define fGEN_TCG_L4_loadd_aq(SHORTCODE) SHORTCODE diff --git a/target/hexagon/macros.h b/target/hexagon/macros.h index 6c2862a2320..e4bfea4923f 100644 --- a/target/hexagon/macros.h +++ b/target/hexagon/macros.h @@ -631,8 +631,18 @@ static inline TCGv gen_read_ireg(TCGv result, TCGv val= , int shift) #define fCONSTLL(A) A##LL #define fECHO(A) (A) =20 -#define fTRAP(TRAPTYPE, IMM) helper_raise_exception(env, HEX_EXCP_TRAP0) +#ifdef CONFIG_USER_ONLY +#define fTRAP(TRAPTYPE, IMM) \ + do { \ + hexagon_raise_exception_err(env, HEX_EVENT_TRAP0, PC); \ + } while (0) +#endif + +#define fDO_TRACE(SREG) +#define fBREAK() +#define fUNPAUSE() #define fPAUSE(IMM) +#define fDCFETCH(REG) =20 #define fALIGN_REG_FIELD_VALUE(FIELD, VAL) \ ((VAL) << reg_field_info[FIELD].offset) @@ -654,5 +664,18 @@ static inline TCGv gen_read_ireg(TCGv result, TCGv val= , int shift) #define fBRANCH_SPECULATE_STALL(DOTNEWVAL, JUMP_COND, SPEC_DIR, HINTBITNUM= , \ STRBITNUM) /* Nothing */ =20 +#ifdef CONFIG_USER_ONLY +/* + * This macro can only be true in guest mode. + * In user mode, the 4 VIRTINSN's can't be reached + */ +#define fTRAP1_VIRTINSN(IMM) (false) +#define fVIRTINSN_SPSWAP(IMM, REG) g_assert_not_reached() +#define fVIRTINSN_GETIE(IMM, REG) g_assert_not_reached() +#define fVIRTINSN_SETIE(IMM, REG) g_assert_not_reached() +#define fVIRTINSN_RTE(IMM, REG) g_assert_not_reached() +#endif + +#define fPREDUSE_TIMING() =20 #endif diff --git a/target/hexagon/sys_macros.h b/target/hexagon/sys_macros.h new file mode 100644 index 00000000000..f497d55bb81 --- /dev/null +++ b/target/hexagon/sys_macros.h @@ -0,0 +1,237 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HEXAGON_SYS_MACROS_H +#define HEXAGON_SYS_MACROS_H + +/* + * Macro definitions for Hexagon system mode + */ + +#ifndef CONFIG_USER_ONLY + +#ifdef QEMU_GENERATE +#define GET_SSR_FIELD(RES, FIELD) \ + GET_FIELD(RES, FIELD, hex_t_sreg[HEX_SREG_SSR]) +#else + +#define GET_SSR_FIELD(FIELD, REGIN) \ + (uint32_t)GET_FIELD(FIELD, REGIN) +#define GET_SYSCFG_FIELD(FIELD, REGIN) \ + (uint32_t)GET_FIELD(FIELD, REGIN) +#define SET_SYSTEM_FIELD(ENV, REG, FIELD, VAL) \ + do { \ + HexagonCPU *_sf_cpu =3D env_archcpu(ENV); \ + uint32_t regval; \ + if ((REG) < HEX_SREG_GLB_START) { \ + regval =3D (ENV)->t_sreg[(REG)]; \ + } else { \ + regval =3D _sf_cpu->globalregs ? \ + hexagon_globalreg_read(_sf_cpu->globalregs, (REG), \ + (ENV)->threadId) : 0; \ + } \ + fINSERT_BITS(regval, reg_field_info[FIELD].width, \ + reg_field_info[FIELD].offset, (VAL)); \ + if ((REG) < HEX_SREG_GLB_START) { \ + (ENV)->t_sreg[(REG)] =3D regval; \ + } else if (_sf_cpu->globalregs) { \ + hexagon_globalreg_write(_sf_cpu->globalregs, (REG), regval, \ + (ENV)->threadId); \ + } \ + } while (0) +#define SET_SSR_FIELD(ENV, FIELD, VAL) \ + SET_SYSTEM_FIELD(ENV, HEX_SREG_SSR, FIELD, VAL) +#define SET_SYSCFG_FIELD(ENV, FIELD, VAL) \ + SET_SYSTEM_FIELD(ENV, HEX_SREG_SYSCFG, FIELD, VAL) + +#define CCR_FIELD_SET(ENV, FIELD) \ + (!!GET_FIELD(FIELD, (ENV)->t_sreg[HEX_SREG_CCR])) + +/* + * Direct-to-guest is not implemented yet, continuing would cause unexpect= ed + * behavior, so we abort. + */ +#define ASSERT_DIRECT_TO_GUEST_UNSET(ENV, EXCP) \ + do { \ + switch (EXCP) { \ + case HEX_EVENT_TRAP0: \ + g_assert(!CCR_FIELD_SET(ENV, CCR_GTE)); \ + break; \ + case HEX_EVENT_IMPRECISE: \ + case HEX_EVENT_PRECISE: \ + case HEX_EVENT_FPTRAP: \ + g_assert(!CCR_FIELD_SET(ENV, CCR_GEE)); \ + break; \ + default: \ + if ((EXCP) >=3D HEX_EVENT_INT0) { \ + g_assert(!CCR_FIELD_SET(ENV, CCR_GIE)); \ + } \ + break; \ + } \ + } while (0) +#endif + +#define fREAD_ELR() (env->t_sreg[HEX_SREG_ELR]) + +#define fLOAD_PHYS(NUM, SIZE, SIGN, SRC1, SRC2, DST) { \ + const uintptr_t rs =3D ((unsigned long)(unsigned)(SRC1)) & 0x7ff; \ + const uintptr_t rt =3D ((unsigned long)(unsigned)(SRC2)) << 11; \ + const uintptr_t addr =3D rs + rt; \ + cpu_physical_memory_read(addr, &DST, sizeof(uint32_t)); \ +} + +#define fPOW2_HELP_ROUNDUP(VAL) \ + ((VAL) | \ + ((VAL) >> 1) | \ + ((VAL) >> 2) | \ + ((VAL) >> 4) | \ + ((VAL) >> 8) | \ + ((VAL) >> 16)) +#define fPOW2_ROUNDUP(VAL) (fPOW2_HELP_ROUNDUP((VAL) - 1) + 1) + +#define fTRAP(TRAPTYPE, IMM) \ + register_trap_exception(env, TRAPTYPE, IMM, PC) + +#define fVIRTINSN_SPSWAP(IMM, REG) +#define fVIRTINSN_GETIE(IMM, REG) { REG =3D 0xdeafbeef; } +#define fVIRTINSN_SETIE(IMM, REG) +#define fVIRTINSN_RTE(IMM, REG) +#define fGRE_ENABLED() \ + GET_FIELD(CCR_GRE, env->t_sreg[HEX_SREG_CCR]) +#define fTRAP1_VIRTINSN(IMM) \ + (fGRE_ENABLED() && \ + (((IMM) =3D=3D 1) || ((IMM) =3D=3D 3) || ((IMM) =3D=3D 4) || ((IMM= ) =3D=3D 6))) + +/* Not modeled in qemu */ + +#define MARK_LATE_PRED_WRITE(RNUM) +#define fICINVIDX(REG) +#define fICKILL() +#define fDCKILL() +#define fL2KILL() +#define fL2UNLOCK() +#define fL2CLEAN() +#define fL2CLEANINV() +#define fL2CLEANPA(REG) +#define fL2CLEANINVPA(REG) +#define fL2CLEANINVIDX(REG) +#define fL2CLEANIDX(REG) +#define fL2INVIDX(REG) +#define fL2TAGR(INDEX, DST, DSTREG) +#define fL2UNLOCKA(VA) ((void) VA) +#define fL2TAGW(INDEX, PART2) +#define fDCCLEANIDX(REG) +#define fDCCLEANINVIDX(REG) + +/* Always succeed: */ +#define fL2LOCKA(EA, PDV, PDN) ((void) EA, PDV =3D 0xFF) +#define fCLEAR_RTE_EX() \ + do { \ + uint32_t tmp =3D env->t_sreg[HEX_SREG_SSR]; \ + fINSERT_BITS(tmp, reg_field_info[SSR_EX].width, \ + reg_field_info[SSR_EX].offset, 0); \ + log_sreg_write(env, HEX_SREG_SSR, tmp, slot); \ + } while (0) + +#define fDCINVIDX(REG) +#define fDCINVA(REG) do { REG =3D REG; } while (0) /* Nothing to do in qem= u */ + +#define fTLB_IDXMASK(INDEX) \ + ((INDEX) & (fPOW2_ROUNDUP( \ + fCAST4u(hexagon_tlb_get_num_entries(env_archcpu(env)->tlb))) - 1)) + +#define fTLB_NONPOW2WRAP(INDEX) \ + (((INDEX) >=3D hexagon_tlb_get_num_entries(env_archcpu(env)->tlb)) ? \ + ((INDEX) - hexagon_tlb_get_num_entries(env_archcpu(env)->tlb)) : \ + (INDEX)) + + +#define fTLBW(INDEX, VALUE) \ + hex_tlbw(env, (INDEX), (VALUE)) +#define fTLBW_EXTENDED(INDEX, VALUE) \ + hex_tlbw(env, (INDEX), (VALUE)) +#define fTLB_ENTRY_OVERLAP(VALUE) \ + (hex_tlb_check_overlap(env, VALUE, -1) !=3D -2) +#define fTLB_ENTRY_OVERLAP_IDX(VALUE) \ + hex_tlb_check_overlap(env, VALUE, -1) +#define fTLBR(INDEX) \ + hexagon_tlb_read(env_archcpu(env)->tlb, \ + fTLB_NONPOW2WRAP(fTLB_IDXMASK(INDEX))) +#define fTLBR_EXTENDED(INDEX) \ + hexagon_tlb_read(env_archcpu(env)->tlb, \ + fTLB_NONPOW2WRAP(fTLB_IDXMASK(INDEX))) +#define fTLBP(TLBHI) \ + hex_tlb_lookup(env, ((TLBHI) >> 12), ((TLBHI) << 12)) +#define iic_flush_cache(p) + +#define fIN_DEBUG_MODE(TNUM) ({ \ + HexagonCPU *_cpu =3D env_archcpu(env); \ + uint32_t _isdbst =3D _cpu->globalregs ? \ + hexagon_globalreg_read(_cpu->globalregs, \ + HEX_SREG_ISDBST, env->threadId) : 0; \ + (GET_FIELD(ISDBST_DEBUGMODE, _isdbst) \ + & (0x1 << (TNUM))) !=3D 0; }) + +#define fIN_DEBUG_MODE_NO_ISDB(TNUM) false +#define fIN_DEBUG_MODE_WARN(TNUM) false + +#ifdef QEMU_GENERATE + +/* + * Read tags back as zero for now: + * + * tag value in RD[31:10] for 32k, RD[31:9] for 16k + */ +#define fICTAGR(RS, RD, RD2) \ + do { \ + RD =3D ctx->zero; \ + } while (0) +#define fICTAGW(RS, RD) +#define fICDATAR(RS, RD) \ + do { \ + RD =3D ctx->zero; \ + } while (0) +#define fICDATAW(RS, RD) + +#define fDCTAGW(RS, RT) +/* tag: RD[23:0], state: RD[30:29] */ +#define fDCTAGR(INDEX, DST, DST_REG_NUM) \ + do { \ + DST =3D ctx->zero; \ + } while (0) +#else + +/* + * Read tags back as zero for now: + * + * tag value in RD[31:10] for 32k, RD[31:9] for 16k + */ +#define fICTAGR(RS, RD, RD2) \ + do { \ + RD =3D 0x00; \ + } while (0) +#define fICTAGW(RS, RD) +#define fICDATAR(RS, RD) \ + do { \ + RD =3D 0x00; \ + } while (0) +#define fICDATAW(RS, RD) + +#define fDCTAGW(RS, RT) +/* tag: RD[23:0], state: RD[30:29] */ +#define fDCTAGR(INDEX, DST, DST_REG_NUM) \ + do { \ + DST =3D 0; \ + } while (0) +#endif + +#else +#define ASSERT_DIRECT_TO_GUEST_UNSET(ENV, EXCP) do { } while (0) +#endif + +#define NUM_TLB_REGS(x) (hexagon_tlb_get_num_entries(env_archcpu(env)->tlb= )) + +#endif diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 368391bb846..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 8 01:18:42 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=1773201046; cv=none; d=zohomail.com; s=zohoarc; b=HeFA76s50aLrwZyWuNadk76tePliuSItf3LrUKuBoA6k/bvbt8ezyXQp+hejNUVexwUrEudck7uzl/Y3U2Quj0070cKyi3gY68g4BKKpCUCYVb9T0WCUysXFhyirq6jxFzZ7Y60P9WDP43c2CoK3/7MnU+bjCBkPQ6B2mOxNMLw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773201046; 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=HzQWIkE9oS6tKwnbTfs8hmdlmjhd3dapnKsFKVGwGsM=; b=NGZHeWDjFosXaVoDwFyXr8YMtgC/1zyK2NI8xKvKDiPw+d2AIdawJDOxbVSsGhN+3+JVskpIPau+ULIL3lBoka2E4sVUKqLRNuHWet3AFmiIwRh5AFOZn8PQIbyd1g9KS4Xw/zmKxkcnDkyUCqM4U4Yz5Nvhv9ozLT+piH9aT0c= 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 1773201046127517.0145567019114; Tue, 10 Mar 2026 20:50:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0Aa9-0001iB-1p; Tue, 10 Mar 2026 23:50: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 1w0Aa1-0001es-Il for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:54 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0AZz-0005F5-Mf for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:53 -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 62B2KjCu248813 for ; Wed, 11 Mar 2026 03:49:50 GMT Received: from mail-ot1-f70.google.com (mail-ot1-f70.google.com [209.85.210.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctqv11raw-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 03:49:50 +0000 (GMT) Received: by mail-ot1-f70.google.com with SMTP id 46e09a7af769-7d7510702e6so19076590a34.3 for ; Tue, 10 Mar 2026 20:49:50 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d76ae39b39sm946430a34.15.2026.03.10.20.49.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 20:49: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= HzQWIkE9oS6tKwnbTfs8hmdlmjhd3dapnKsFKVGwGsM=; b=pYiU2XImAs7ghYDf uWqOUBrkmwv+nGyhRBCueu+KnHnxLRNC0lRb8wsoAb2U6DG5+mvf6u5TS5+8Z/dq Gc0O3ueovgSnhOPnqeCUCNrG+/LcEBSKFDuqdhbpmZjDkSdg+LlEoIGQnyIpbvNh zEENx+tSSBCkclL1pp0pZkIVqOBfLOc3skpEbZvGtbFO0BjcK5qFV59Bc4jCSd3h Jk/QrBcHDtaxjXTs7EiBl3MmMXDmV+jCh7ERprghpn8Kievq/SWd4cSNgnP1m44o uKTEQ69B2zBC9MNbqHz6QojA5IlLeThbpPO5YKEjqT0QubiFqH5KrEMn6i1kmq0L XPAUHQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773200990; x=1773805790; 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=HzQWIkE9oS6tKwnbTfs8hmdlmjhd3dapnKsFKVGwGsM=; b=TFZanNMpcZuGyyeNWSANadHP7DbV7THEWTeGVjpzr3x/TDHMxMT7PVSzYMyticMa4C KQ3Ds4X/P2OUeoVtipQ5qkPhggvPBUdMDQQjDFtdRAOA9fwhyozqwlov5Epz7D0dRbU2 /ZxDA+3FUKhQk6whUbGWM9XDBhh83G88aH8ui28khqZVemVCs5fMewhnymNgNN4TIH6d XfqpZw10ZzJyONMak82Fk+Du3Fd+SxjveMzATgVfRopB2sAg7221TUduabFlmiEy5lJG pBgWASiRB6kNRRpE8bVyj0tdXantEio75P3MS4A6VH3qRynF13R1FU2avoO4/AA9ne3q xazg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773200990; x=1773805790; 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=HzQWIkE9oS6tKwnbTfs8hmdlmjhd3dapnKsFKVGwGsM=; b=B/ZzD8zXC1cgOgbh7QINipQJPK6iUz+cXhfZ7PWEZ2FGLR2gY+G5PBDudQWhVB6SWG gc+xKVNP0ywc3is4WaNhEfM+g+jJakdWho1+DWzOIo7eEf7GklX5FMq76Yn2MEiBa3XZ zpw+yq5SqfBGTAc+Oa8+R3rIzK0XHFmt2xorKHCal76duFpo/hZ9NN9cTyc7mzRsQDTl dz1VMXneMQzWUnCCRm6C0m/lyefc1qiuvRhua+LSxCnwJrz+htd0pNdoyEQGJVfxQ+Sv mX9JkS5A5q+jc4+9ak+pMMzDHJ/kNR51R0y4pG5QJYIZRCIcj4dtUp3cc2QfHyOR+W7n QXZQ== X-Gm-Message-State: AOJu0YyP1EmZ0UT6TyK6vMO+dXTtHedV3SOul655sfCMSYjssA2Xjs3O nhkq3nHSarkZwbCdkvGoaoiXsxKKDOj3jYh+Y2r0we5/RTTJS5awynNS4WUfh2viKirjfLDLgB+ j1CjHCCr98KKj80MLBJ+CpJQWrHILQ+dVULG5gi4pzJzK4uuQe74nmXrr1ZuyZBx9JQ== X-Gm-Gg: ATEYQzyUM+FpdY5FFJ6axPjvYBQW9WGyE4t6P9mjDygWnW7/G8RRAvSa02EmZQtNjSN Onx7bJe10LIoo5eZs6dcWKxjmrxL9nI1wJ4t3Ni+4k6SIulkYcASi1U/4dR6nERzm0pAENlYlKj maSHRea25U9eoFOjzIgq0cutD3peyKtUZeADUPN3Xi/l1r43ONudB4vj2E5R3HQ7XQ1LqqOgrfy wDXeMlMawg0rdFD5Vc0yvONP3PaXNVI55VHbAAECeaA3dZC/UIVRl+BWAMeLxFgQ2T4GIGIhIZj DjBviY62tSWiPHKNs4Xgnpyl8OQtNq0Hy3TKZGtJ+ZhyYyLXHb290lvJXt9v6sLQBZHoXihRd7B cBde3tMSo8eWM32ikjXgCCloV/ftlyqSLb3j9f7cs2d6rHSQxFe/JXEzPD1ckOkRp3zdw+A== X-Received: by 2002:a05:6830:6601:b0:7d5:96e7:1509 with SMTP id 46e09a7af769-7d76a844436mr813860a34.21.1773200989776; Tue, 10 Mar 2026 20:49:49 -0700 (PDT) X-Received: by 2002:a05:6830:6601:b0:7d5:96e7:1509 with SMTP id 46e09a7af769-7d76a844436mr813848a34.21.1773200989352; Tue, 10 Mar 2026 20:49: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 v5 17/35] target/hexagon: Add handlers for guest/sysreg r/w Date: Tue, 10 Mar 2026 20:49:05 -0700 Message-Id: <20260311034923.1044737-18-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> References: <20260311034923.1044737-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: AW1haW4tMjYwMzExMDAyOSBTYWx0ZWRfX+vUgrsVDWbwc ClSBMZo0xGexLaJoMgMlW5YwRpP3Wux5B6DjUIiThm74QY829hpOx5MpjLv6Ly0d47Pu7U/5xqp z4dSoH6rq6PPlBZmWxceLgtl9Q1xbPok+h2axe24G68JBt7OvDVRCdgVnOVR2k/dd/CoB8a76yo bEWYhFKgIQAIKAhbBKlSL264kFVhPm31UKlDKaYElJ/L78HbMGNsLR2NUSDsy4oGyWLs1k6nnGI FozuZs0ghzgeLgt0pgvGlgRR4nCdnE8j5LjP+DN/gckOFtN1Lfd0JTMbnMafk8tktWVuLFSbHCy P0iFbAmd/AedpxfPG6sCASR5AHTSsG9PcuSc4hHOBPGW+jqwQDckxYSSwpw07QJyvHdxMhdBNDe sU6FQcsT20paQPNt2AQnLM3HciBfAxSQEvvNv3jjfHfx4V6VaAscdEbpuNZ3vM2mvq9Q7M77yVu INnET2EAejTq1Jf4hwA== X-Proofpoint-GUID: dWlzEamBjZEovrUk_zklHfdv6d5DKjDb X-Authority-Analysis: v=2.4 cv=S5vUAYsP c=1 sm=1 tr=0 ts=69b0e65e cx=c_pps a=7uPEO8VhqeOX8vTJ3z8K6Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=YS0KV4ZxTOLzYV__0jkA:9 a=QEXdDO2ut3YA:10 a=EXS-LbY8YePsIyqnH6vw:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: dWlzEamBjZEovrUk_zklHfdv6d5DKjDb X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 lowpriorityscore=0 clxscore=1015 suspectscore=0 malwarescore=0 adultscore=0 bulkscore=0 spamscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110029 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773201047645154100 From: Brian Cain This commit provides handlers to generate TCG for guest and system register reads and writes. They will be leveraged by a future commit. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/genptr.c | 147 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) diff --git a/target/hexagon/genptr.c b/target/hexagon/genptr.c index 9eb21da6f3e..2310b9aec3a 100644 --- a/target/hexagon/genptr.c +++ b/target/hexagon/genptr.c @@ -23,6 +23,7 @@ #include "exec/helper-gen.h" #include "insn.h" #include "opcodes.h" +#include "sys_macros.h" #include "translate.h" #define QEMU_GENERATE /* Used internally by macros.h */ #include "macros.h" @@ -120,6 +121,152 @@ TCGv get_result_pred(DisasContext *ctx, int pnum) } } =20 +#ifndef CONFIG_USER_ONLY +G_GNUC_UNUSED +static bool greg_writable(int rnum, bool pair) +{ + if (pair) { + if (rnum < HEX_GREG_G3) { + return true; + } + qemu_log_mask(LOG_UNIMP, + "Warning: ignoring write to guest register pair G%d:%d\n", + rnum + 1, rnum); + } else { + if (rnum <=3D HEX_GREG_G3) { + return true; + } + qemu_log_mask(LOG_UNIMP, + "Warning: ignoring write to guest register G%d\n", rnum); + } + return false; +} + +G_GNUC_UNUSED +static void check_greg_impl(int rnum, bool pair) +{ + if (pair && (!greg_implemented(rnum) || !greg_implemented(rnum + 1))) { + qemu_log_mask(LOG_UNIMP, + "Warning: guest register pair G%d:%d is unimplemented or " + "reserved. Read will yield 0.\n", + rnum + 1, rnum); + } else if (!pair && !greg_implemented(rnum)) { + qemu_log_mask(LOG_UNIMP, + "Warning: guest register G%d is unimplemented or reserved." + " Read will yield 0.\n", rnum); + } +} + +G_GNUC_UNUSED +static inline void gen_log_greg_write(DisasContext *ctx, int rnum, TCGv_i3= 2 val) +{ + tcg_gen_mov_i32(ctx->greg_new_value[rnum], val); +} + +G_GNUC_UNUSED +static void gen_log_greg_write_pair(DisasContext *ctx, int rnum, TCGv_i64 = val) +{ + TCGv_i32 val32 =3D tcg_temp_new_i32(); + + /* Low word */ + tcg_gen_extrl_i64_i32(val32, val); + gen_log_greg_write(ctx, rnum, val32); + + /* High word */ + tcg_gen_extrh_i64_i32(val32, val); + gen_log_greg_write(ctx, rnum + 1, val32); +} + +static const uint32_t sreg_immut_masks[NUM_SREGS] =3D { + [HEX_SREG_STID] =3D 0xff00ff00, + [HEX_SREG_ELR] =3D 0x00000003, + [HEX_SREG_SSR] =3D 0x00008000, + [HEX_SREG_CCR] =3D 0x10e0ff24, + [HEX_SREG_HTID] =3D IMMUTABLE, + [HEX_SREG_IMASK] =3D 0xffff0000, + [HEX_SREG_GEVB] =3D 0x000000ff, +}; + +G_GNUC_UNUSED +static void gen_log_sreg_write(DisasContext *ctx, int rnum, TCGv_i32 val) +{ + const uint32_t reg_mask =3D sreg_immut_masks[rnum]; + + if (reg_mask !=3D IMMUTABLE) { + if (rnum < HEX_SREG_GLB_START) { + gen_masked_reg_write(val, hex_t_sreg[rnum], reg_mask); + tcg_gen_mov_i32(ctx->t_sreg_new_value[rnum], val); + } else { + gen_helper_sreg_write_masked(tcg_env, tcg_constant_i32(rnum), = val); + } + } +} + +G_GNUC_UNUSED +static void gen_log_sreg_write_pair(DisasContext *ctx, int rnum, TCGv_i64 = val) +{ + TCGv_i32 val32 =3D tcg_temp_new_i32(); + + /* Low word */ + tcg_gen_extrl_i64_i32(val32, val); + gen_log_sreg_write(ctx, rnum, val32); + + /* High word */ + tcg_gen_extrh_i64_i32(val32, val); + gen_log_sreg_write(ctx, rnum + 1, val32); +} + +G_GNUC_UNUSED +static void gen_read_sreg(TCGv_i32 dst, int reg_num) +{ + if (reg_num >=3D HEX_SREG_GLB_START || reg_num =3D=3D HEX_SREG_BADVA) { + gen_helper_sreg_read(dst, tcg_env, tcg_constant_i32(reg_num)); + } else { + tcg_gen_mov_i32(dst, hex_t_sreg[reg_num]); + } +} + +G_GNUC_UNUSED +static void gen_read_sreg_pair(TCGv_i64 dst, int reg_num) +{ + if (reg_num < HEX_SREG_GLB_START) { + if (reg_num + 1 =3D=3D HEX_SREG_BADVA) { + TCGv_i32 badva =3D tcg_temp_new_i32(); + gen_helper_sreg_read(badva, tcg_env, + tcg_constant_i32(HEX_SREG_BADVA)); + tcg_gen_concat_i32_i64(dst, hex_t_sreg[reg_num], badva); + } else { + tcg_gen_concat_i32_i64(dst, hex_t_sreg[reg_num], + hex_t_sreg[reg_num + 1]); + } + } else { + gen_helper_sreg_read_pair(dst, tcg_env, tcg_constant_i32(reg_num)); + } +} + +G_GNUC_UNUSED +static void gen_read_greg(TCGv_i32 dst, int reg_num) +{ + if (reg_num <=3D HEX_GREG_G3) { + tcg_gen_mov_i32(dst, hex_greg[reg_num]); + } else { + gen_helper_greg_read(dst, tcg_env, tcg_constant_i32(reg_num)); + } +} + +G_GNUC_UNUSED +static void gen_read_greg_pair(TCGv_i64 dst, int reg_num) +{ + if (reg_num =3D=3D HEX_GREG_G0 || reg_num =3D=3D HEX_GREG_G2) { + tcg_gen_concat_i32_i64(dst, hex_greg[reg_num], + hex_greg[reg_num + 1]); + } else { + gen_helper_greg_read_pair(dst, tcg_env, tcg_constant_i32(reg_num)); + } +} +#endif + + void gen_pred_write(DisasContext *ctx, int pnum, TCGv val) { TCGv pred =3D get_result_pred(ctx, pnum); --=20 2.34.1 From nobody Wed Apr 8 01:18:42 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=1773201335; cv=none; d=zohomail.com; s=zohoarc; b=ABOOC1o7iCy+JWrFrz8cq0GAG0b9izcBJ2M83C2xl4blKRNlM7NMifGv53746ofKkXvxWQb79O3H5Rl10jkOT36yNOaSBUnVFEawtOqpO4YVvO26mhRrlaA3R1f+0XBBrMFAezQ0AOKGSw424CIQkzxw9byH9/+tsOqIIjDBvMY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773201335; 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=eYIZPvbpfpeWBtZ/7kbkFkBqe5mam+LLgcBFK/xJcQKX3c5atLygdVhc4ZTm+y30Ob7JAl9H7STZzvmAajRKa1Uw0lETn/98sJM4yCw6hxeN1Fdj7zeWX1YWdVAU3Vt1bpFaNyNPdT17xuuaKZv+8KqxArL5pZ1Ugx+8x9CR9AE= 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 1773201335880470.15967005629216; Tue, 10 Mar 2026 20:55:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AaA-0001jU-PB; Tue, 10 Mar 2026 23:50: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 1w0Aa3-0001fL-Ew for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:56 -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 1w0Aa0-0005FC-Hi for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:54 -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 62B39cES248940 for ; Wed, 11 Mar 2026 03:49:51 GMT Received: from mail-ot1-f69.google.com (mail-ot1-f69.google.com [209.85.210.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctqv11rb3-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 03:49:51 +0000 (GMT) Received: by mail-ot1-f69.google.com with SMTP id 46e09a7af769-7d74be44ccdso20894875a34.1 for ; Tue, 10 Mar 2026 20:49:51 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d76ae39b39sm946430a34.15.2026.03.10.20.49.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 20:49: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= 3X8bvXVW52I3fn1FyNjUiMXuaCQjKXZ/zTx+8O5PNqc=; b=ZuJr0I/fNYYWZjcj lDZMf7xJuclO9kXx9OvYK8iSMcvJP5ivt7fT0XoSjNX0Tjx9BphsYjnAmzNYHAOB BWMPkXvC3zo9Mrs3dCeR041fdbI3d+X7vumx1Yys9hBY+hhR6EYGyKYc5OZhKjak KgriWPgxYOyYOuZEKEUNlFvSv8Hpjuni98341UzWBR9k0B4N+XQL72aORrDMdP2i 2JXVidL1Jx/zi7FnaDB8fhhWSfm4Wx0yoWaNSB7PdnrvXyxMxNUGYfT/gYKsqCBf OK64bCvc/S9VhZdMwQ8WUtDHr7REHIttJwXakmuj10RTaVmPEDxN4M2Qh/r8DK4w leFEtQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773200991; x=1773805791; 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=MOHOrDbOiL/SPzoG+lfzcvzCabrwNgbqamDsPBxv7peDsxTU23x2a7YTDHNRMdTNky 7mQ8iNE6c15ULy/8+tN6jv0fCzNcMzPeJsisiWTeM+Rjnzl5jdIPG9HQj/h1CBorxtAU t35wZCBhQ8qszTzUDMOuNz2PGwio0DhRENKhXxmcAAyC4WoiGtocY8xo2YHey/bz2WsM Ef1AcNWH2NK3AFgHEaRm04cCkHtNpznRXLrhDDM8aYeB3A0cbkhzpRygPJkWWttP8SuH ozhkDzH8GaZw1A4ckZrGG+CiUMKhw7wYv7oRpSQl7ASYz+MnMcHHrgCYFotrtqn+c3N1 pdQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773200991; x=1773805791; 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=KNYQkijgJos0sFJszcB2PtX/ZgS4/9+wQq5E0dvTnKfGt5UrkR1eU7RkwTejyOtmkZ xcETzYUtr2ocHL+1s7srdaDryb9u74Gz7kOwm6TMbue+Vcbiwns7DilzYo1h2qa9HtD+ 62Hk0k2qqAjT+Cfmiq9iggBcmE70VXlP3ZgHWgwe8t4Td5I6D7Lc1xZ7FZJhptUxHWsG lnhNZ4+DajknGJm5BdxLzn1II92av2uIOrIlPpAEhf13elGc6zPOBSr5BZPsZRkZSOrQ WSZaDAwVuSukEwSqNJ2K1GkoI9LSRvlZ3+loxH+xreTsDL34lj/2QIYLRJxJbnakLFBP 4+lw== X-Gm-Message-State: AOJu0YyLX8VcKjiipna3hcyrvpGZBqDwqqWf2CjQtLXuCHerh9PzIRLV tHYmpqSWge9dH53YsSiS1Lssk7M33dt1BHhdqarSAA6eHgFaBFMBOPSbKoS0PLVNPWZmzCqTg/g /Eu32XhgyG5esMD0yz4ut22O9Z/FSG33lKqOlVPVH7ya78dFXrs3I0/QtrOxjkSKr8w== X-Gm-Gg: ATEYQzxtMOtpjjAHdb6HnR6AWPzii2tWFUxqdApXXy1v5+vv+FuBf0tjRk8D9KgB80S 69mZStb37WsiFgBrpl+nlALOoG2rISa8Btgc3kwRsmRJptz7Pkr23+avTd9qGlLuDDOCJ9xSs0O +aehSoM4CvzdZZpysjjfnpimjnH3fQCWk0GKOCLEQMpL+tTHuYiITDvGObmq4uAgkyUUu9DksGC 2uNwu2xm0SyGue/Rm5wMQ8F/N6XkiopNbTJR2WJoQIuHOxO2pp9bmNC8iaQ1pOdjXKb/2JK3fQY aDoBrK4KhIJuGLTmIBJiCN/Th7A39V990P6cx6ILEGa3Ezt8GNva8rOnB5zSiRBFpCrsnvw6e2Z B1iMvSxzXuD2hkwVWEUYeFv0zv6LNIpEk/Za7+UrkJ64vJsLVwSsupcAwWWcGyTnKaiE6jw== X-Received: by 2002:a05:6830:398a:b0:7d7:5073:fc45 with SMTP id 46e09a7af769-7d76a8b13c2mr911215a34.28.1773200990822; Tue, 10 Mar 2026 20:49:50 -0700 (PDT) X-Received: by 2002:a05:6830:398a:b0:7d7:5073:fc45 with SMTP id 46e09a7af769-7d76a8b13c2mr911197a34.28.1773200990517; Tue, 10 Mar 2026 20:49: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 v5 18/35] target/hexagon: Add placeholder greg/sreg r/w helpers Date: Tue, 10 Mar 2026 20:49:06 -0700 Message-Id: <20260311034923.1044737-19-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> References: <20260311034923.1044737-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: AW1haW4tMjYwMzExMDAyOSBTYWx0ZWRfXwyiPw35Yohsu 7lpdg1JHxYbj6/m0D/ORrE2T18YDIDUhMNo9pL9Ov8WWmxQm8CJQKiqeWgGVRlP7UicHGGzPJQA 2nTHbY88XV5nxohFsmpXCU4e4JGOTghl4dtV0gXArY24tz2/9V+n/AQo6cIsbWr1HURu0R0751I unqRnd34uwEfIQzVJduUbILaZPOgQfwTjPiPPk2MXFJKiSkc7WiLlqohpDnVnkebNECcxHIY0n9 Y1Iec1rwKooWmGicKxdJgd/otZ4OeCGpm7FLppUfdIoEK9Zc9j5X199TmQjA53mmIJD6excvb9d WJSSgd7vYgbP1J3N1f8pfnzBl4YQNZFOUGkjw86aan8rrfN2CUKbCvwuxbFzWbnrMNPL3udJ2R8 +hJ4F30z0LkP2UkEFSVrNl+Oq7VVx7iqXCQCtywZDXyQvT/ppx49XiNVS1+hPtuACNbV1XeeGNK XeUus5m3N4l0VR8oMYQ== X-Proofpoint-GUID: wgXDQ-BoyW-FrXWmzSXDlj4tfYwX0kIr X-Authority-Analysis: v=2.4 cv=S5vUAYsP c=1 sm=1 tr=0 ts=69b0e65f cx=c_pps a=z9lCQkyTxNhZyzAvolXo/A==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=wA0rHRt5QP8iJxr38i8A:9 a=QEXdDO2ut3YA:10 a=EyFUmsFV_t8cxB2kMr4A:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: wgXDQ-BoyW-FrXWmzSXDlj4tfYwX0kIr X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 lowpriorityscore=0 clxscore=1015 suspectscore=0 malwarescore=0 adultscore=0 bulkscore=0 spamscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110029 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773201337779158500 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 8 01:18:42 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=1773201116; cv=none; d=zohomail.com; s=zohoarc; b=ipHVGjqhbWnZGVNhaC00/01cSTZH1h4A5u4Rxzg0HmRxrj2uMFaJbYkYNj2kYomC6U7BfJuj1CBEn5mZ25A9W+Kregup7qYlNbGcXj/flhKt+UjQVFUo6B7MHPw4sjNSk5ZIHUaj/rnoOH8ccP+SbdLiKD1968jQt8jfqB8R4qM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773201116; 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=w5LEe8CK5a98CywVYut5O9H+/pZlvuY5A2kbN6aZ5lc=; b=OEG51BWrjBjEqRVLVi0l4rJLP9zrkhGC90EfaGizU1Y9I91KkV8auUzrwkGVX7FsdI7GpwdpKPAQ1K37lOqX2ni6TOlm4aFxe4Hp4k64iGKzWX/UE9sD270GpheQs6EGXmMk7ZWbDU3wunizXbKfsm0/WzadbOIjJTTebLO2QzM= 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 1773201116957755.881447263902; Tue, 10 Mar 2026 20:51:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AaJ-00021F-E6; Tue, 10 Mar 2026 23:50:11 -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 1w0Aa6-0001g9-2E for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49: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 1w0Aa3-0005Fk-6a for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:57 -0400 Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62B3fwh23760401 for ; Wed, 11 Mar 2026 03:49:53 GMT Received: from mail-ot1-f72.google.com (mail-ot1-f72.google.com [209.85.210.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctk8uk2xw-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 03:49:52 +0000 (GMT) Received: by mail-ot1-f72.google.com with SMTP id 46e09a7af769-7d75b6b8500so14278374a34.2 for ; Tue, 10 Mar 2026 20:49:52 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d76ae39b39sm946430a34.15.2026.03.10.20.49.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 20:49: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= w5LEe8CK5a98CywVYut5O9H+/pZlvuY5A2kbN6aZ5lc=; b=RlOI1CH3vtMLzQqt wobM1ikxELqFXSo+xwPh4cnSBF/xq6U7UzbKrvSTQTKimX1ECqyfj+4JulRftYNS +A/aSZ8F+YFpC6oH2CAFRvbZ0b9I40iXzCjtuVDqHmv88iHTyHcFPOvaOTkx3OeF tcMyaqep3BDue3gvsblSjtDvoNE1cILOC8Hqy8Ylb/azAviZbymRn7iO9V8qbkKo HyLGRQwNTAB4H/nb5hCaLI5ei6DledyujT+/DSczaJp6OcXAaYPAupqPnsaLq/l9 8gIUOvNwuf55n0KjlG3+RxanD5OHxXR0iMGrZq8Oi6N/Jl3fVeeGeFIc/7ypYTXL 1NHJcg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773200992; x=1773805792; 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=w5LEe8CK5a98CywVYut5O9H+/pZlvuY5A2kbN6aZ5lc=; b=GY8eveDL70qO55O4+a5YDDsVpwijQYlYulD6cNwuH3U8PYpf6RAkBm5P62i2Emcntb UYJ+zEkK2PgpKVAXG3xGABtpLziU6p3i6qfo7HUlgQ6y9pMH9q9Onxy/FG4PXftWNuFe 6wqemuHiYajSYwI30iA/rlpx/TH9Vf8//UE6+IiApRky7lwk8AZXtk9obOn341MoIMoX Qj+3+rHJHKZuzTrGBWb528sUEvAqMUWEAjpuCgdhxGaWv+QhuL0LKEcu0d+asQ9vGF3p EoCxRyF2AoxeQQLk78MFeUO4RfdMQx1KuknLszrVFj+mfhchAM76h9RnxTsJ+gWCw0bH a2eA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773200992; x=1773805792; 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=w5LEe8CK5a98CywVYut5O9H+/pZlvuY5A2kbN6aZ5lc=; b=RCsMbjGkIxyX2YGrUfzucYWrm/9RATA887t4VQhVUt62jrWPVgvW1lPYRmYzEKDAJo OeWQYXGNEZ0cOOJyUg+KcoGvgO1CwcYNXGy1aDwxQGHFq4rdIWPfN3jWE4W5MqC1q+PR hqgYy+wbqVqTJJhBPpTGvnzuY2KS99prj0VWYTQvskdQMAWDF1YpggzVe+OiCWA97oPj m4oSjhVy0Q0MV8Hj2MtuHE5P5Xvfjfy1sOZmv2P/PuhC8yk8go6r9UgM3FJpr6cW0uhJ 94dRP33PtKadme+pIjkCaS+5BGxaCGKN5eoVtmCciRpk3KLjPpzjuGCTk68AUGYu7SV/ dF7Q== X-Gm-Message-State: AOJu0YzlHYn4pgVnk6LQY28MZGbK2xjqa9yxpjWYtuZFFxFBACqYNyWj N3xtlMOLv1+g+rc9QWtvwUp85Ri0dN5ffkvRKETC76dW+LowJci9g93/jRaaAIB8hl6MBTl2RdL jh+r/viTgWwzDePgDl2tK+xzgfoQm0a3HhEyUC+nMZmHRQ/hyoMVCliub1Kd2rEBhqw== X-Gm-Gg: ATEYQzyArBsBOe5hybAQWCYyGpWUbqY7X2l4r/YX5uiTHY6/9pLg3PsNSmuyBtsNMMQ n59dXsoQui2NXHLLI9WI3zfSKR+ZVAcxDWaM9z9plLEK3Ivbk3P2mkd1Mq9+4KhtQcrsOAhNH0c EwQ68f92CyyVpN2rmJSdyZk+Dx697k4aq3Lai7YyAeh7W/JmLXSNA9rH6RtNm0otBdihYyGgY1f w6koWmyVmJkgawLbn2oDobw4jYaTkLoN8ULC/2EIw5wXgceNfAGv6a1dPPpZEbdnM6Gl3hhkWkg BwCT8SdEepmrwHIzzvtvkCjGOAV7mhCSQ2hG3eXg0u4E412nN0Hlc4fT3R82zAvoyrCnn4SCqrd Y8UE8AVSQnvDo97RWqWdhUVmoQ2YkI03qki2ypyKADZ3xDA6UJsPZQge9TjnoM2r/Nb2wzw== X-Received: by 2002:a05:6830:4423:b0:7cf:d213:7ecf with SMTP id 46e09a7af769-7d76a8f1e1amr1067816a34.32.1773200991994; Tue, 10 Mar 2026 20:49:51 -0700 (PDT) X-Received: by 2002:a05:6830:4423:b0:7cf:d213:7ecf with SMTP id 46e09a7af769-7d76a8f1e1amr1067798a34.32.1773200991678; Tue, 10 Mar 2026 20:49: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 v5 19/35] target/hexagon: Add vmstate representation Date: Tue, 10 Mar 2026 20:49:07 -0700 Message-Id: <20260311034923.1044737-20-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> References: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: 1p4srV8h4ru_XhhYkITHlq3D_DKOA580 X-Proofpoint-GUID: 1p4srV8h4ru_XhhYkITHlq3D_DKOA580 X-Authority-Analysis: v=2.4 cv=YcmwJgRf c=1 sm=1 tr=0 ts=69b0e660 cx=c_pps a=+3WqYijBVYhDct2f5Fivkw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=zFM9_BfjGYtbIq66ZkUA:9 a=QEXdDO2ut3YA:10 a=eYe2g0i6gJ5uXG_o6N4q:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAyOSBTYWx0ZWRfX1wdcwJAs5Nnf AMXrJcN7jdfxyJ+SHvJkrNPFKeq5R4YKsH56EX5fhFeynhJXJ9kF7FLU97V/ZvgdBgv19V4oFaI wCUgyIsnOuJ23qWXeAlJXTAGI9Y8GiBqy9JzjiQWcdUbXIQgc2PY9+Ql3yC2AXVCh1YcGZFycTw p6GhjbxJv5yRgu7cdaHo8g4PJnBQoVXxMvPftYvXkY/clI30GBRWHkwVRltHro11CQYujp2z3FG 4tK47JuAcgBnhkiHFYX1Howq91HhlhDemzi1lOsD6sR8TWma0X/q9HFEHh+7Zc9QfC/3zA/Nflv /r+07uE1/uvj2eV8EOzLhpbTAhhr1p+hrhbLhjqpz5LKzKSShDB6ohN4r1gw19e30i69Xpp9KNr GYX7qGhBzY0LklYMQs/jKpIK09yUe04X8ub9r7GF9VIRHONqNOUTmc8cj2vufcfNKYISJUONSaX xudm1HtOSK8tzTfFz0A== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 suspectscore=0 impostorscore=0 spamscore=0 bulkscore=0 lowpriorityscore=0 phishscore=0 adultscore=0 priorityscore=1501 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110029 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773201118665154100 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- target/hexagon/internal.h | 4 ++++ target/hexagon/cpu.c | 3 +++ target/hexagon/machine.c | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 39 insertions(+) create mode 100644 target/hexagon/machine.c diff --git a/target/hexagon/internal.h b/target/hexagon/internal.h index 5fc837ae229..cd06ff41d4f 100644 --- a/target/hexagon/internal.h +++ b/target/hexagon/internal.h @@ -31,4 +31,8 @@ void hexagon_debug(CPUHexagonState *env); =20 extern const char * const hexagon_regnames[TOTAL_PER_THREAD_REGS]; =20 +#ifndef CONFIG_USER_ONLY +extern const VMStateDescription vmstate_hexagon_cpu; +#endif + #endif diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 6fabfaad6d2..38d605b06ba 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -387,6 +387,9 @@ static void hexagon_cpu_class_init(ObjectClass *c, cons= t void *data) cc->gdb_stop_before_watchpoint =3D true; cc->gdb_core_xml_file =3D "hexagon-core.xml"; cc->disas_set_info =3D hexagon_cpu_disas_set_info; +#ifndef CONFIG_USER_ONLY + dc->vmsd =3D &vmstate_hexagon_cpu; +#endif cc->tcg_ops =3D &hexagon_tcg_ops; } =20 diff --git a/target/hexagon/machine.c b/target/hexagon/machine.c new file mode 100644 index 00000000000..d6dcd07dd4a --- /dev/null +++ b/target/hexagon/machine.c @@ -0,0 +1,32 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "migration/cpu.h" +#include "cpu.h" + +const VMStateDescription vmstate_hexagon_cpu =3D { + .name =3D "cpu", + .version_id =3D 1, + .minimum_version_id =3D 1, + .fields =3D (VMStateField[]) { + VMSTATE_UINT32_ARRAY(env.gpr, HexagonCPU, TOTAL_PER_THREAD_REGS), + VMSTATE_UINT32_ARRAY(env.pred, HexagonCPU, NUM_PREGS), + VMSTATE_UINT32_ARRAY(env.t_sreg, HexagonCPU, NUM_SREGS), + VMSTATE_UINT32_ARRAY(env.greg, HexagonCPU, NUM_GREGS), + VMSTATE_UINT32(env.next_PC, HexagonCPU), + VMSTATE_UINT32(env.tlb_lock_state, HexagonCPU), + VMSTATE_UINT32(env.k0_lock_state, HexagonCPU), + VMSTATE_UINT32(env.tlb_lock_count, HexagonCPU), + VMSTATE_UINT32(env.k0_lock_count, HexagonCPU), + VMSTATE_UINT32(env.threadId, HexagonCPU), + VMSTATE_UINT32(env.cause_code, HexagonCPU), + VMSTATE_UINT32(env.wait_next_pc, HexagonCPU), + VMSTATE_UINT64(env.t_cycle_count, HexagonCPU), + + VMSTATE_END_OF_LIST() + }, +}; --=20 2.34.1 From nobody Wed Apr 8 01:18:42 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=1773201079; cv=none; d=zohomail.com; s=zohoarc; b=lEdzBE852F4+B7LeTueJywR0zB93hqvGAuJIOZh36EAG/o06oejRTBgOQ8xMue6JdjUhUvNpwdGQp6fRGogNSApVC56tmBD6TnyXVkC2LKqAFdC3Yw1PxlNnAxtP/mql8BC5gUq0Xg5GRqsczOi+dFu8zt36xeMPaVtvEWsqleo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773201079; 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=QYxihSScHHfHbQxhvrCPd7SupuuEaqa+2XruKi95e4gcR6JHqQoDoMSdSP8vsz6U2bi2gUPPc/jVN0f+I2uQGGer1WiFZOx32NGedBjFaI34l5vpj6Xz+RxgG551lEQzArh4qXRO9kWDrjGEGRhR+SFReQE2Y7rlhrdMfEYNR4E= 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 1773201079154679.7729125033297; Tue, 10 Mar 2026 20:51:19 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AaB-0001jt-BS; Tue, 10 Mar 2026 23:50:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0Aa7-0001hI-JT for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:59 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0Aa4-0005Ft-IY for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:59 -0400 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62B3VKj3614148 for ; Wed, 11 Mar 2026 03:49:54 GMT Received: from mail-ot1-f70.google.com (mail-ot1-f70.google.com [209.85.210.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cu0jf01pe-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 03:49:53 +0000 (GMT) Received: by mail-ot1-f70.google.com with SMTP id 46e09a7af769-7d75b6b8500so14278572a34.2 for ; Tue, 10 Mar 2026 20:49: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 46e09a7af769-7d76ae39b39sm946430a34.15.2026.03.10.20.49.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 20:49: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= dEKo+PI+5OZkA0WTjHJsLVTWdm83mUoo/A8kK5cS4cA=; b=kN2aiifKz+v5m090 QtE7DUtcrl+ukrN5p2pxw6/63f8RmetQCHaFoSU9j7FIFy7Owv6UkqFSm5ENuDeD DutQP2cOL2xgxUXSSVAkqlkgzZcLkD1PojHO55b6/Zplesm6OpZ1RtyQh1afPzYj k97i2f2rnc0MnwE3oS8y94thnpM0Ga5R9ec3Xq5CKOQ0iniRl6sWcu6tyQuZVCyf HXBW8DGS2jSM0xijN9rKloOdnu4PfB05sYaoWEjhKfmoMv9jmptUMoJ2X/U7jDux w6liUb1gIKBi59/IblxpghPq6Jr4zi1gJ7maj7+HQ+nN6P0y/MP+E1LbbY9WOPb3 Ra+usw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773200993; x=1773805793; 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=VdaZZiJGqkgeXn9JwDGyKhPSyDbhSl3povaSaMY40vYYgiRWBefiP2PCnJL3hjan+G bsL6mlcShCVNmBISxdaCuLrqSXHdXHR0I43tV4kqv1zelNfutfM2mS3fRJiClKAlsgFm MHQdy3Dw1/XnpVDAPA11qvTa8sA8/SfYQ7u/IeHzmQZ2/TgtGkKOFXAE5Jh9twxdUvFF kHfAA7ppFWdqRzA+eC/E+mmB/b/bVuwOEU8LfP7jvSiykUiF2T6mw0Ar5wmGowDHn1iv x13uzDvgpkMFNSCdZ8n+YIq0WfqbjR6bW8CNyhYvU7fdyDFSXvanWZx7Zt3YaBxBQbj3 09HQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773200993; x=1773805793; 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=BVhJem/3zV/hpZfzjYZxeYceNNv7J7eKb0d24dwhGI6kNOrsl3Ltbui6tXkLF3pL2t SnEd3osyTTCbhuXU66nj87KTAkdAuhY7jHFAqcaFOVyhmt4AKYgRdvnM0GBxZuSrlbd0 OesN3HdSN+MXkFoX91erkfwgbd9PC371OeCMVYYzboWOlFMDybLqVppvGaytZOx+BQfV y5B9Fmt07buUcppxU21mtwUtT0eqWhWhEB9AmVDiJeCTG3QjtcToHtAtVYiq7ofIi+Av pxe2cVQFlC0i+3gJrBhIbr9PohrmOfZbIgyvRPhAyu2oy1F3pCcdfVceMuq+HQQYxCwA j3hQ== X-Gm-Message-State: AOJu0YyskxP8v/9m0J/n7FgU8BeVEzzrVlcrKYqflujtcyt6stnJeAHj GpzVsdfEhy7FdPkhvkPrFW+p1++NyWjwf+IEoYOLgQs02aG8lfPhchKz1dPt5+EieAac00eJF0Q VRUxK0HgXpW7EAWb9iLaOoq98qgq2k5LE0xiD4bgi+JI2t8x+MdzE0NEV04g4Kp8Wdg== X-Gm-Gg: ATEYQzxDp/Su+AE3BhuFcfCTU+UY/NlPLwW9PTeLuSKDoDgHofMJnKWUASVtJMxupPa GfO8677EfTv858StUFKLlvcnjYFZsCdCC2ZV8fpzeeW3J3fE4NaJ6A++lVLoaRcIXUVpfm2pObz H8ah9G5H+Uh/Iteg2k5weEtsaHJeCJUOeD+ZGLQ1voO6QZQIjo/AitoKtX8YGxWPVlbU7yXJtj/ xs3rC5caYtFbETER7+5Yj/7LRTS9hlBXirrC4icQeCkfupOlsqSi/0Zv6j2XVLOS8oCAFA7Z2ic PkbVmIFQKystTbjNunQDcMRHSztfhDZLk6CQgIiCn1N/45wrQ1x4YZo0zffyxPt+lCiz1nsmymr 57sE0jmOlW7CWbRZxtgXTC+FveVDFSP+eQjTdAPg1g+XVL6Pp0WuBIDkhobHZP86yS1FYyA== X-Received: by 2002:a05:6830:4988:b0:7d7:4b65:e8ba with SMTP id 46e09a7af769-7d76a8b098emr850774a34.26.1773200993131; Tue, 10 Mar 2026 20:49:53 -0700 (PDT) X-Received: by 2002:a05:6830:4988:b0:7d7:4b65:e8ba with SMTP id 46e09a7af769-7d76a8b098emr850759a34.26.1773200992822; Tue, 10 Mar 2026 20:49:52 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v5 20/35] target/hexagon: Make A_PRIV, "J2_trap*" insts need_env() Date: Tue, 10 Mar 2026 20:49:08 -0700 Message-Id: <20260311034923.1044737-21-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> References: <20260311034923.1044737-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: 9zdMdIxWo-1M-W1t-2zLfs-WjHr8CyqP X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAyOSBTYWx0ZWRfXwTs5g8T7rA2C YzOJZjd0aiCr6XkznjPf8Fzx3VC26vCgF7Aj4CS4KkYuffcNCEnrXXn5Cg0wm5YBxCkPegOGwTw BRgJl90+8mxNS6N20D/GKmXYSHyPmEpb0NNa/7jOwT7eyQsA1YF1pk+pfqSfoeqA12vzChcTg0V HLr6/FfGodsNJgOl4SkjcDcMbQzMkKAbg4Xzy7VQO2T1DeGIx0MU4Govh56bMgI2KlqWPhIryc6 OH4N8G86fF7ESyiP1svqEA375Nm2JtzR/uimPm3hOuRuVqKGbob8yiddoL5fwNFBotoK8Ns8iNn L4N/LYJhaEMzGOY3SOswVtRqqt/ac3qVx00u2srfNJcw19wvhxbZAwquR+GEik5SA87jjsUd5/c msuDSLy6EvDHAZRJgzWXwb7JxYR2TKyAqaeCsUCOXkEwdE6AQT9J+V5Y5bwro/0j9kUHtVEZM8n 6msZEySTF4a8E5Mq+0g== X-Authority-Analysis: v=2.4 cv=FMMWBuos c=1 sm=1 tr=0 ts=69b0e661 cx=c_pps a=7uPEO8VhqeOX8vTJ3z8K6Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=8AIcS7dZ67HrSpPWHdEA:9 a=QEXdDO2ut3YA:10 a=EXS-LbY8YePsIyqnH6vw:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: 9zdMdIxWo-1M-W1t-2zLfs-WjHr8CyqP X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 lowpriorityscore=0 malwarescore=0 priorityscore=1501 bulkscore=0 adultscore=0 clxscore=1015 impostorscore=0 suspectscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110029 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773201080188154100 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 8 01:18:42 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=1773201097; cv=none; d=zohomail.com; s=zohoarc; b=AULth9Bp6BCDE80POswSSkBQLz+n9QmM0j6xYQU9KEhGYZ07N+hwBbmCqJMUaZTsnEx0RRHdExQO/6eEcG9mm57RhIIlIad9gd8EZ4JJvAmEvgpzrEw2GcQO3Qabx6xjfPlVnU0SVQQxko/DAyPtmtwY4bNOx2IC7sJ3nI8PCOI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773201097; 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=Flmh0O/m9uapmiTe1fL/rdmxekHdPjrEJTAbvd0nFoTr5crC8TjLZANHAUyCPUgMRQZcDMXd5BjlvHi+aAzAQdnxblYJB6JmJGDk3RuQgGXO6oj9TQsFjF4xmgFYFMMjWaHndFYC9xJejHdEm7/sRg+hlePVdBwOI0t2cUltryY= 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 1773201097482298.4707241536523; Tue, 10 Mar 2026 20:51:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0Aa9-0001it-Mt; Tue, 10 Mar 2026 23:50: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 1w0Aa6-0001gR-76 for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:58 -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 1w0Aa4-0005GT-JI for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49:57 -0400 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62AJ37FU3417072 for ; Wed, 11 Mar 2026 03:49:55 GMT Received: from mail-ot1-f72.google.com (mail-ot1-f72.google.com [209.85.210.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctja2b8k8-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 03:49:55 +0000 (GMT) Received: by mail-ot1-f72.google.com with SMTP id 46e09a7af769-7d73bcdba71so39002268a34.3 for ; Tue, 10 Mar 2026 20:49:55 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d76ae39b39sm946430a34.15.2026.03.10.20.49.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 20:49: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= dGlGzUayTwiXC/bg5YrAB2T6871CPG9HNKS69hKBulU=; b=BrRj3Mb9dEE0uLBN QsJDNciWj7B4qlfUD1Qd3eyKAPgUwS+ldOWZb/333S0ZTFBZ12ajqOSTGe9K8fJP M/OUnrO00iRrbHVeJBOJRaM4tffMFZnNxZAmx0nFc3EX4mMm9tZH9TJO+8nBAKwU rx5vm0VBjC8f5B5IX/FHKjgH0OSbaQck6VOWqopI+HPwIozabFUgrCkUZO2t3/qV fvxDkzvhS3IgmvHXawDHuV6WBcCaz7BDaOOCNbaAHBHcS9O6l+GQJbZjr9XgvjXD iY4el6gOrQ6awxHh0565eA9u3R9Jo13IMmiUT16pNVXjyyg9/tGbaUz7gjQvAYed ErQOUA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773200994; x=1773805794; 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=U4a703qPYxrEGbQaSwIBwD/dfNFp5ALWk9TX3tRCLUgtYJ7awz9DbI78O/+pD280X8 WvKAlAgmbhTe688yrSb+4FQFP6MYglhh/2l0G6vkZUnnFPuda9moUJ52jpTRI9qJhtTM RqY6X4PsZ9t1AunaK7uGDbKdtn/pacBEHkjJgKOxgp2JBtBTNHv7zoDpYVxFfVwJ6imz U6vMDWpu6NwQ7rHIOEZp/sOx5c2NJrzXAi+NwzVJE2CmN6j+5aZt+VIO6toUW3bHVXOR Vfh9rIDWl55umNMfe4BxzDrgPfmM3TeNyqitxqcYyGHSSXg6p9USYyptvS7jowKMTNZU E5cQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773200994; x=1773805794; 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=RbweauzEZvz6PXeZKtsfhZRlJ82StyUK7yU96bIcIOwm06nu6NWWayedpJds5c/tb8 mHs22a4ZHUWswX2zcWlTenRoAbe+tx6543E/sBB54UBWKLKDVILBhxg+9pVgAKnSNAed L3jDIkvaJb9l+Vrowc3KQc5KhaKw3nhtsYpVaHfE+kc8iQeYLszFIwozeTwlp1HzStWC UFwpWt25t53U/Whgrr7TnrO18eIoHQXPaD8FQcBKAUbECh/lP95IDPSwn6k2pZD38wDk NEyQEmch7Q6J2MOEJPt0arZnvrfqAqvNh6uYByNSqZ4vfaH3/xzERpnUW9Mc+eJc8K8B el1w== X-Gm-Message-State: AOJu0YxVLsgdXYzimC/Qo2ntyU00y5Edv8gQWqhwaQIXJaWRArQxR33j +ZoT+aeh3aXbKJVcOmb3lk+r+fOYOvUOW3ou1q882g1EODgFDsrqLycJApy8zc1evybsa3vGDIl FCXpYte21aiLSZ7nLpFLiuLbBEvsbkITFUZHY4XkMMDG2NC5lqVNqV6GIbdZARNI33w== X-Gm-Gg: ATEYQzz7uJkjey9FM+TifrJfSVYQOT+cCUhtDFHv9VBNutlbj/d4jsXE6RbgcR0h/1O g2tWn6KuvfStDA097vkHJNFWJQ3rbY5A8x7uQ+KxAiNEDZfhDH+Fsn3sCWJwuAJ7/6pMEcA9qmu ApBtv+8RWINCB4vDGcthh/irEL5+6B99Ex6RQw9DSPT/9GJptxQoDYnPhuqfskYTFT8ITkcS7Fe i7uQxr83r6Fvttlf4V3bx1N4/zUME0/H3Y3+PDf7GQvxNDZ5TS9UrqqIUKaCqEO6QS+0mc+oODw mwnVQ10nu7ZO7Nl59gILPZryiuWBVzDfgBFVuI8Eljy1bGjVzYfLK7j//5m6CbvuzPrHL03VEMy u2DF2xojWfy74xs2+KPVuqoy57UF5hjOscGAOJDqmDeKCVjYAdj2hcqUxy2yfkUebxr95pQ== X-Received: by 2002:a05:6830:4392:b0:7c7:6977:17cb with SMTP id 46e09a7af769-7d76a84427dmr903685a34.21.1773200994362; Tue, 10 Mar 2026 20:49:54 -0700 (PDT) X-Received: by 2002:a05:6830:4392:b0:7c7:6977:17cb with SMTP id 46e09a7af769-7d76a84427dmr903665a34.21.1773200993952; Tue, 10 Mar 2026 20:49:53 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v5 21/35] target/hexagon: Define register fields for system regs Date: Tue, 10 Mar 2026 20:49:09 -0700 Message-Id: <20260311034923.1044737-22-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> References: <20260311034923.1044737-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=c9WmgB9l c=1 sm=1 tr=0 ts=69b0e663 cx=c_pps a=+3WqYijBVYhDct2f5Fivkw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=mmKuwxttERDeH49ycpoA:9 a=QEXdDO2ut3YA:10 a=eYe2g0i6gJ5uXG_o6N4q:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: XvPKEBqsnXohp_pS3vIZ5ssSrXGqtKmb X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAyOSBTYWx0ZWRfXzdabfJQrb56c gG7z9zfkHEZ6v4K6iVbsccP23boNDQqIRG2UaORmfBaPDOKOoA7e5/4wyvfMV/37ypr+7LGsgjo lWqwFPxMMQL6t8PF/IqjkVYJn0tLWxor529hmQW/1ZD6brCA7ClV9JQslfzZB03rzCYsswjvCUj abU9Xud/6BlP62OjC7vJhRpw26TD9OxXUxnP9sfq7E5WZm6qs9fxkxRGrnDjSKF0LAbYMKM7lwd Od/l2rMEUIPVINRGmycg/nQEG8MKvuv/1f6UfKky3DTW0zbqpBwPmD27I4Cqf1bKIYMJ8NENwMc L6sqMl+3TXVCbLsBS7g5OZ+6ZNG8EH6lHE4WCkdXghV/jOXs6piZlohULRx+rVpMIeLHEPZYq3Y wP6AGp2BByK9inUaWwKjVo1szs7svjQOBY/cTIaH2xQpA7Fwzs9x4Zf2YRCmu4un5siUV9AVPUn ANn9mRa0x5Lj8UWjF1g== X-Proofpoint-GUID: XvPKEBqsnXohp_pS3vIZ5ssSrXGqtKmb X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 malwarescore=0 lowpriorityscore=0 suspectscore=0 spamscore=0 clxscore=1015 impostorscore=0 phishscore=0 bulkscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110029 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UPPERCASE_50_75=0.008 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773201098422154100 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 8 01:18:42 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=1773201053; cv=none; d=zohomail.com; s=zohoarc; b=lWexnVSv4aCn3KY81F56Ke3YC5ywE8LRFVATOPExg/qTvtd8kQsU7ILjku96zrOPne4ejlBO8AMKKNG7DAQgAi8D94fj+yJ0WvoJfgA4fLtbEbD6xhfaFngvhMpEl7YWfhs3QWXl//7GRQ+iuISSMf5e7JNF6FmNIPjYGU5Z9P0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773201053; 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=UhQQTOeuOKvlUeCHuOHA6DQ5eJgXV2UT/7lCrkbPoZUmDoGmbIQS24PlHiffy88DcV9yU8yqIeZR/ijST8bVUBqwifeu3GXqU2s7V/95xnBbrAWApIffkuSIHvCWE2w6jVHsAsgN92l+OiEypvk6K7BYLI59WOwp7exQTZ8BKJA= 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 1773201053331899.84871239838; Tue, 10 Mar 2026 20:50:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AaL-00021w-RQ; Tue, 10 Mar 2026 23:50:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0Aa7-0001hJ-Jf for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49: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 1w0Aa5-0005Ji-6Z for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:49: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 62B17M5S508294 for ; Wed, 11 Mar 2026 03:49:56 GMT Received: from mail-ot1-f70.google.com (mail-ot1-f70.google.com [209.85.210.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctppaj3e6-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 03:49:56 +0000 (GMT) Received: by mail-ot1-f70.google.com with SMTP id 46e09a7af769-7d73bcdba71so39002492a34.3 for ; Tue, 10 Mar 2026 20:49:56 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d76ae39b39sm946430a34.15.2026.03.10.20.49.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 20:49: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= VD8bHDqIwxQ/ejdGEqcRWpPLOabnnnaX/QlfiL4OvyI=; b=OigGOZIHdYf1JVIa eAe6r6E2fqiVCX/qe5bNcm+TGSiQtrHC+gE9jzP9eoSR+fHZvXTqMYfa5VKQRCLK yuAwKBoxOYnLLfjfpV0lKwttreju4ZJTCde0kEf9swvUsbi90qoWss+LYYxays4D 6siwd4C3e0mqe0ZXnzG0qt75ZGRh/z/k+IQd/BpY4QtAL7Ys076LCAJdiclPWjyU MuxliBd1HO0ViWe3I2LR6V+KxM8suZoBavxgdfgOwoUyHOhDMvnv6gzwou90gYgv KVo9FgPFmkzxesF9KNI14gpmcogGxPXrxhweRjwx53Ichxq9detjRfoX57/KtvKo m4UQmw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773200995; x=1773805795; 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=aFuKBG7c66qJtU6HKJVusQeCNWEu7VxQ1oK6ZoNCRfEU6fHJDIYqZSmrGWTJo9pqGS lvLWqTjCyqPDgpdGpjs0YXM7+Q8qhM38dl5HFPNjhtULP8FCLVZWYArTwcliuDpXQ7/e BmpXllK3JHYulftvTBPhdebD1H9o3rV53y176obRYBMaPZ+ldclioSmVr9RhGKAAD5e5 3Jei2UBRPeaghE/mtHNamrrUx4YGFrjtFJdcR0UOlQpFLd/FP+rBUOnExy/c9+jR46SJ 7lDx85F0JMfIYjuDDWtVkqdiz4mPF7g7PY66QiebggZiMcMBWGJbxBCDzcbquRm0UayU jKxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773200995; x=1773805795; 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=sHRD6Mudk9D0/E42l9PKchjbtimhnw+mRClvUm1oEYvFfu28r3vBWzMoFuzt+8nfmt voHOfBQj+q8upbZZgrPwgeWjJTFlarmNnOz07Zz6p9dSGtr9l+yFTTgKXrht0zamRY8B xAzIBDFOHn2izOemiMtZNF6DTWc2fSBG4zDgFm7oCeyywu6+2jXr5rlBxxrOO8OFw6O+ EngvynLNJgQy7m5zn6pr10HrSqR1FfLluAK8RIpl06qLW7eezU/vip5986az/F1JxJK2 Nlk0KFyvpyYHhPZQzyBgttT5yqPzK9QpJQOnsCFb59lnGDIoeUa7J58fz48CGV1nyUNm FS0w== X-Gm-Message-State: AOJu0YzyDatq4Oa/KKeww7rqJyv170tZcXJ1NKrrmx6Rl0/WVz/njaI6 xDRWmllzubvu07FQnnVncE7lJOlScSdeAdpZPSK5mKsg9BxxNb7pwsWAA2irFzTXOdty3v8LpaP RT+qqHJDoFZAjaW2y+0paNtWiS+S9B5wxwZI7llSt0e762qUUJJLew450QcHQgyTyFA== X-Gm-Gg: ATEYQzzK/7DkW3GbZKU2j4p3mh9onW4kgAtY9SFI3enkZtMZj16OmITriVdcsZn21mc vylzm78wAf6/pawyFK9pj2OT7TygUSKuksGkx/1132q9W9Ln2goPJXTGrbdXUSgypN8sFDap92V UVf0wzWssNoTA7DK0Nup+h2CHLdoV3lSmHqjZ53o6lNeS0mgJJzXbTvlmXYID+pDMKe75q/azQN EK/M3E5dIy7FMhJ0BnI+qlBgQLghgdQseVOj3+ShNnkPM97ZEOeDIQ2M+PgWvY0wsjLxgQywts5 0GHUnRkJmf9f0fyaFegl9RxDtpl0jwjfzPonIGcaj1oppzvacuOVboX+011m5rJwtb2A/BuAUuh YcYiIa3hnE66DcF1K3fwrwiSmV6wC1hGY8ktNpbG+qGTHuU5O5TOSmaEtGnMJCK6tyJVZwA== X-Received: by 2002:a05:6830:449f:b0:7cf:dd34:8e1f with SMTP id 46e09a7af769-7d76a844224mr1056376a34.18.1773200995571; Tue, 10 Mar 2026 20:49:55 -0700 (PDT) X-Received: by 2002:a05:6830:449f:b0:7cf:dd34:8e1f with SMTP id 46e09a7af769-7d76a844224mr1056359a34.18.1773200995116; Tue, 10 Mar 2026 20:49: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 v5 22/35] target/hexagon: Implement do_raise_exception() Date: Tue, 10 Mar 2026 20:49:10 -0700 Message-Id: <20260311034923.1044737-23-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> References: <20260311034923.1044737-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: GkIPb3DSnpAQbWOoc3UwYmdsiwZpeVPN X-Authority-Analysis: v=2.4 cv=D7BK6/Rj c=1 sm=1 tr=0 ts=69b0e664 cx=c_pps a=7uPEO8VhqeOX8vTJ3z8K6Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=hK29HtBGQMdOITfcgGsA:9 a=QEXdDO2ut3YA:10 a=EXS-LbY8YePsIyqnH6vw:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAyOSBTYWx0ZWRfX/2gjeB2Y21nM TsmzcbOviLhWaQSOzNLHpvOjtisQ8ikAXSGZSiGAAHZpYYdRithi56cqncSiiKY6fQ9T9std2fX 7uVSqnkG5fXnhBTN0aHyzJlnRCiwEgUTLFvo/iZIbGkyAPFPwwxv2q+zfAGVrUFkJYFSRYetcvd g/l4iIuukDSZ789TZCLzt2f+LzbDBFF9i8Q+Ryv/MZtvkKfaxRbn+Apwx7MoeysizWRABbyVEwc 4HVzbMzgMW+WUVMCPRRhHburRKmcLwTz7dq8ov3CYfdeNTsiE4AWGDil3GZjaAK1LouxmnpJLPB itngaTrz0LbEiYHX9dm3cUHvR24mSw528ktOgYtspBABpC0PnK8fybw6YB0HVbFqjEYcKArDGTN wdxR9yq231a9tOH/3LVZnDGewQD3LC281OXwAEHvXZ4BumK6kTNk7CoqGCBHk7CG4MzlW1gxFol oyzvvm6GstBCqLvlepg== X-Proofpoint-ORIG-GUID: GkIPb3DSnpAQbWOoc3UwYmdsiwZpeVPN X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 phishscore=0 impostorscore=0 spamscore=0 bulkscore=0 malwarescore=0 priorityscore=1501 clxscore=1015 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110029 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773201055743154100 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 8 01:18:42 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=1773201069; cv=none; d=zohomail.com; s=zohoarc; b=HbKcl295Tryvbh1ArzokSA9NZTkoFjaEKEolSf6ncU2CSyfrP7zOSOeQXWAGfrHzYGY+QhD6yWHGsebY+Aunk+17Q0DuFAHAqRRzCwiP6zJI5mHBOsuNzSMdHUJOlQFJDLBzMm5pBW9IWE0N29U3wnKTxR1cW8dMW+OZzuGey2I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773201069; 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=JHLp9n1FeHla0FF5HfLNztGiVJR/G28ewWT8dL/3cBff20zQt9/6aC86sDUUnMvYE7h3qjHYxWO5IwYVijI7Oji4Tl3hYyzHfxdOXHSIQhMHnxvAmlVAMVIYEC8h6h3Z7I6n4RHYHdRALJgyLU7bb6q9ODP2ik8S1WqShBF5N+Y= 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 1773201069310560.6687348862094; Tue, 10 Mar 2026 20:51:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AaL-00021u-Df; Tue, 10 Mar 2026 23:50:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0AaA-0001jX-N4 for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:50: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 1w0Aa7-0005Ph-Bq for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:50:02 -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 62B3T2Jc248937 for ; Wed, 11 Mar 2026 03:49:58 GMT Received: from mail-ot1-f72.google.com (mail-ot1-f72.google.com [209.85.210.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctqv11rbx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 03:49:58 +0000 (GMT) Received: by mail-ot1-f72.google.com with SMTP id 46e09a7af769-7d73fd3b35cso27484137a34.0 for ; Tue, 10 Mar 2026 20:49:57 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d76ae39b39sm946430a34.15.2026.03.10.20.49.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 20:49: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= XZJ0htwWyjlKER61RlSDosBr7GDo0Kmr2Xx73B54Ye0=; b=ij7cIBAcqSrGBHin pbEzOJlcXrRMKm5g/zzIyhhaDfJ4bh1ZBWGBYQKnfASHQCo9FLpzzANmAm05xtBf c5+ibjeuRLO+ZpeYMTZ6Fqw5XyGhs1fpQviPmFgY1K+A9iMtYK8L/bx+G8xrJT2V hgLlf2s1JmA/SLJQPMiLuT0uto08vi7QeiOhrWjYnVmF2y72KKlhB5q1MZq+c2DL dMXiHQ35IYnyMAHudYFtl2FcpfD0cQeBXKCkr98FFg6UjjSaOi3uAloy6vjymFuw 4O/zhSa+4+cT0KtFPjYGGiLBUIsCGCygk2gOJ+DQfC2MjKxKOD/4Td6N1vjM4ZLS +qywdg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773200997; x=1773805797; 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=T27uxU+uCFcb7S5LoHqEPZfNc0E+CuqQRPNmz7bclQ/RZsKrkCaTu/f/z8iyOecozU XqkMXwshR6ZLSAzcsuMCJ1FxpTDbycgyp41K84f4br2GvBvp9SafB4mqpFyyXOUbO28/ +MWPdMdaEzlId7n+paAEbJTT/ub2DLP971X0+TqF831095jqWcluyAppcYQig9nNSWjf KpDpbe9ro3BY7QzRVLx9cjeuD6Y5Mbt3BhyY0U3HzsLWiha87uof6ZdXl0NtOB/8+hzD R6yoasroEBqCMqk2fOl1iHw7PY7/ZM5GLWPa77L/3ZgWfw/DbjpVGvr1HMGWqMbTvbER CT2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773200997; x=1773805797; 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=ebmFEJGXDaqn57Sm4RjSxXWOb8eLnhd6VcZDUDjU/ETcvBk3Wa2QNKj59FsvML40g2 oqGsJWHMkd+xw2WZBLFkE4fo5X2XdZRt4Gbe4uDc7/hevDbb226zG63+oIfb9OtINNQQ Q2rki5ohV1RCPuShHCknkbEqmvWGwXtGcfxNp2crGQIM/T5dShRI4NwzVs/ebaJfDlJY G4nh7Kd+OKzaRQDgC6hvsmwiWMB8hY1C00T1SCc3mUGQ0vTnW8jRd2wk+lfW+mwXRDHe xquXZQ5VVaPcbj/xP4MovnPlONrqrSZ+u/CzmiMU+0z73k1tSv9qQv1YTRJf17aKRT5p Cf3A== X-Gm-Message-State: AOJu0YxlziqOmBcmHcybxelDoMjK5gcEWv5fHtLeVulqi4I2YtoOjHwi 8yJ6YBpn9u1BmQ5q7LNtWv0QwuQnZimEdxiCVxXUvQtX+Mg17zTqRboLUEZpGeoduS4H7qX0I3W AnbuV2bwwipqJVdOXJ5yXhIBtlErDu1alm+sReexn+Ty9/ar4bYlfDHpamky97W0DYg== X-Gm-Gg: ATEYQzzLT8O2gRVBBJYEAFIcyN3vClA3W5OVei0x5a03VQBeeePNQSnv/Yvwl6Nvb1a LKS0HA6kq7ll/glJ01Ngi4hD50sVXdz5gZtat6puto1e/CeOSwiOThfDXl9YnrSGTitOvw+Y9Zl hauOqGdYaTZKWcq0V5KFyhfytOoi21gm1D84A0NdqmfV04UFmerrWFO+EuH3tl5h7AQbcRTeehz RjT9Q41oL19W4LZQ7CJ8ah9r+up0GBkqNR3VFkfFqL8liJ3j25tjdeYkojELRjvQZuM4Ne0YHbx 5bjf+y8A84z+dQfBPiTv8LJfUePsXKzDeKc+ySZ1z1fhY/8wgxZCfq1sP5czte44npoaMiR6KUs 3riOs6ZsiovOVCN99o+2GikRTKtJcbgp5Je3Md99OuBBJxyY+044QQxIK81gd0Bqk9q/EEA== X-Received: by 2002:a05:6830:6afa:b0:7d7:4280:94ff with SMTP id 46e09a7af769-7d76a64cad0mr879036a34.7.1773200997072; Tue, 10 Mar 2026 20:49:57 -0700 (PDT) X-Received: by 2002:a05:6830:6afa:b0:7d7:4280:94ff with SMTP id 46e09a7af769-7d76a64cad0mr879005a34.7.1773200996451; Tue, 10 Mar 2026 20:49: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 v5 23/35] target/hexagon: Add system reg insns Date: Tue, 10 Mar 2026 20:49:11 -0700 Message-Id: <20260311034923.1044737-24-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> References: <20260311034923.1044737-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: AW1haW4tMjYwMzExMDAyOSBTYWx0ZWRfX1Ep5r2zG/ATF c4OKDQlsyxgOcQcnA9lTbqEXMNzDkQcvA8TpQdgWOvE7eTXl3WFZcLxYMuTRAUgbpwWp1syO1Z9 LuUjYkdXCdY4K9SMhZQ+LAGKdhkF79gpdzcvCaD0RM1VZvgF2wnBVbATv3QoasBVPxua6rL2F1m i06pFqaPPVKjrFEIZTyV4nGcLaVPOGVFrXNWEqB2vDa/WnOrs1cUbKpj3s4ZDJyakjzZQ7u1oFc paaRiT9fFawBIanSniNmWO8HWpytP4yi66FrMeYP08G9Ngxw0toBzdAC3VjcSLO3h0ItWE6f3XO DrEihtBvkb3mfQfaAmen47cTAZGZgQmUZ6ZNxpjLREq7vFtZ6ISzjHEM0KxJRjiEuFjClwmjwXm h7ieBnPS0nUHCWIxYmJnB+qIbP/K+9NmQ2Cx2QOydtJsfqD43SABt/jnn7AvBcaWcsFfLX7aIiy 6Um2K7JS2iCb+s3ZtxA== X-Proofpoint-GUID: vX0JneOHG1A7W-Lm67Y9OJSCYEkMDWAV X-Authority-Analysis: v=2.4 cv=S5vUAYsP c=1 sm=1 tr=0 ts=69b0e666 cx=c_pps a=+3WqYijBVYhDct2f5Fivkw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=Lq-sf-uUdcGOnWOb84QA:9 a=QEXdDO2ut3YA:10 a=eYe2g0i6gJ5uXG_o6N4q:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: vX0JneOHG1A7W-Lm67Y9OJSCYEkMDWAV X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 lowpriorityscore=0 clxscore=1015 suspectscore=0 malwarescore=0 adultscore=0 bulkscore=0 spamscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110029 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UPPERCASE_50_75=0.008 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773201070111154100 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 8 01:18:42 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=1773201087; cv=none; d=zohomail.com; s=zohoarc; b=DLEvN7gtCo2SFgq2+GNI0hFw688Eh2bLmeEfTpnAY7Jquy+f2szESWbqhsH5QZhQ9IwIv/B/VYXDteup6LvoVQO2aPGFAT6AFaj0RNnnUyF/z12qkfg4DkCUydbUnvX9+nvWb72bUhC1fis/Fr0pRef2OeRrOt+IsZgAvmOWuPk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773201087; 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=6NgB2z7NZb0a2s5Fp/3KO9kvYYd07Hb1HFry6luwtds=; b=SHy2eBQSK+n+z9ClL1LrKFtl6IsMOSySehmC8Vh7gwuOALvgo5DCLCoHBpFFN+30Pp8mNeBFqeFVVzkYC3pfwnBRx311lGxi2lFnt19ak59Fxu9blaY0tD5jefn0/5fMFANDQTZJ0aDQEQ6wotHbPHsi17V/9OlRJXD2wuQ/LsA= 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 1773201087586173.01475286987693; Tue, 10 Mar 2026 20:51:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AaN-00022i-KH; Tue, 10 Mar 2026 23:50:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0AaK-00021e-27 for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:50:12 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0AaH-0005Qk-VD for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:50:11 -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 62B1m4Rn508450 for ; Wed, 11 Mar 2026 03:49:59 GMT Received: from mail-ot1-f71.google.com (mail-ot1-f71.google.com [209.85.210.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctppaj3eg-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 03:49:58 +0000 (GMT) Received: by mail-ot1-f71.google.com with SMTP id 46e09a7af769-7d76d83ffe0so976747a34.1 for ; Tue, 10 Mar 2026 20:49:58 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d76ae39b39sm946430a34.15.2026.03.10.20.49.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 20:49: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= 6NgB2z7NZb0a2s5Fp/3KO9kvYYd07Hb1HFry6luwtds=; b=Ai6W0jzP8zOT7lwK d5V30e/ElK1nBQYUAyFvL5c60UBFiiO1u+7CYiO7eqYUlTigfXuC7GJuRvQH7iu/ wQsAPJzQThcs1nhB0kY+kZ9+5CBQd4n6yDrEtYO1HZMqEdNPyH2talni95WYTc1l KqedmgaANIXb0VKx79CVy3OLmoZwAGdekOn5kOA1X8slY6u4ESrao2s9tkl4HJ0Z 7RCMCY9tG6gvoWudNEoXr7e5tqRG2q8Ef5qi8EvAZqaZXX1xmeLsICie3H3Yg2AK ougycVMC7D6zBY8NE57/HewsPo2w/SSd/ItyNLrJ+9zzIPPR9VUDSMI/SHumE+qs 6WOXXg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773200998; x=1773805798; 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=6NgB2z7NZb0a2s5Fp/3KO9kvYYd07Hb1HFry6luwtds=; b=EuelxoZ9DQdkpg1ow1r2ks9hdCdab40piMBJh9nG+pRvhH66ufYkz5A7M2Ub/XHhVe B2RnhszDQEx61/eatjJKT6VD/QfQs2KwUcTBpKK3rsf/tWGnHspEkLrBbJ+yhM2TCoKw MqU9YyHGVA5V4jSeu4b0kLkDbLHk7rJVD3Fk6d5Td8dBvMqHwuF3CJQ4gRKScENekj4E bt8GQgArBh8j7+kAWW/zPkKvyxCwJH6ZK7p802PBAT65N8uyrIp06GkgDP4/6YqY7fID TkvQLcvyj8nSbPHIfdqI90XoeeIrpEwNXB1D58IojhGouIU7Mg4+BfMfz2f7D5BWjk2r 6hSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773200998; x=1773805798; 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=6NgB2z7NZb0a2s5Fp/3KO9kvYYd07Hb1HFry6luwtds=; b=o3BSrZ4XKxCVNfVCWN/S7VERJH+YFnPVYw38HvFYFry42EmT0o8sBOaArMB7I5HLSp N6lBO5AfLuBzdQo3yUQGq6t4cGEkAr57IpSfevjQQ+lHNaDISnzdFR6BWNBYf5m0IjHB ArTol1Cd7up1YbKb672/CVQbJ0SiJmEvO+I7JMb4ClCBiSudLxgEPMv418NII70cg21r 7z1tCHRPfo/mAfp39vG/u3ACfv2eaah7izyYgGDefthJ2WWv04QEgpXfYWWTPAgaOKUK 4wt0AZpI+ZiiG24k8bWXHCaUW0Q+uvVOj5BdHCa9axtAvSvc2nc+bGNj0LrL4MBzCwD1 4DbA== X-Gm-Message-State: AOJu0YwBSB+T/bmoKgfvAlj3UiwsLFcI5DfubeIHATfFXYWFB4Mbzqkm wFe5hm0iV/xhx7Y9AWfe6cySFSlqTCagV0F6BOA7ruSG2WqEpkuQ4YiApcKRFR7pwOa6JQ/DWU2 fHKBgWGAcw/jRbsilnz6n7Tt4y72NGcDQjNCnjrE18tnhYmhEljkwhe7R2oLVRD1Hzw== X-Gm-Gg: ATEYQzzL0xJYFqy1EcdtHO0cY6kCXlSC+p+488oSJMjS0n8hzMWGKcKdiHZqwEKBcNc 8cZq22g82ZnuWk/0zfp4FtuNSkr7EpyqrcdFRXhTgOtPxn7dJC1pG3Dtp8hJpZajX3n30E+Gnx1 jx0QNco5axdmzzxZdo26wii9TPOgu94gus6ileDg5K96jdWQgnNB2yIytJnT+OqkOIKEXC4v8W5 lTTBRX867RB6k46RCYve+ppos1aI8x60uoc3Kx4AO77oWitCBvfilRGsiiWgdHUf9FUyMPvJGOr ldVke6KS8CGRVg0/Quu6fb19zYFHZ3IQABgYaE1/dnCaWcyHhoo/eU9AzxCjj4z34eGs5ApXaNs LC02ubit30KdalUlp2JbZgFb5t5TiN40O/rjyz8RewKcyj9zwgDwtVTrVMHOZ79H8yykPHQ== X-Received: by 2002:a05:6830:f89:b0:7d7:4e62:58d2 with SMTP id 46e09a7af769-7d76a5a2d56mr869905a34.7.1773200998054; Tue, 10 Mar 2026 20:49:58 -0700 (PDT) X-Received: by 2002:a05:6830:f89:b0:7d7:4e62:58d2 with SMTP id 46e09a7af769-7d76a5a2d56mr869892a34.7.1773200997667; Tue, 10 Mar 2026 20:49: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 v5 24/35] target/hexagon: Add sysemu TCG overrides Date: Tue, 10 Mar 2026 20:49:12 -0700 Message-Id: <20260311034923.1044737-25-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> References: <20260311034923.1044737-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: KMY1WWXVsmxhZRcFNTQrsxLABiLCQeDP X-Authority-Analysis: v=2.4 cv=D7BK6/Rj c=1 sm=1 tr=0 ts=69b0e666 cx=c_pps a=OI0sxtj7PyCX9F1bxD/puw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=c-qlsedbFlXwKLHGPykA:9 a=QEXdDO2ut3YA:10 a=Z1Yy7GAxqfX1iEi80vsk:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAyOSBTYWx0ZWRfX2qqn5uYCSMlw GySy9U3qezF3rYksFBeNAPql2mpgE/5wtfAio8PoVPPb95zowUjgpCVtcNVDj8sRTLJnZWztLaz UxQLCJhs0C2ESVv1Xl9g+uQz7+dtty6t+dRl7/kdQ1UnbKesu9ebhTCG4C6S4Ks3P+AihAAZhEb patdaIzDUQDdOUoPz3gfxBlRqPEPEKx6IrawxZ1WZFUZYYWn/6MGGOX28ME7cuOc5CUFjTpA/0+ wPwWGmTmqitzUjk0iRUCSmjAYmuTkiDW1ur9SzIAhv+ZZkg+VDuFGPzJ6AREPPsrXpBgCE3J0ta gW/33Gy9gY7etuR3MsgoN4sUq8Vb8xKXC7sj4sakz6oCTyTy2/vXKKP8PLF4uWisAQetiXGMjrf g0ZpzgTkAOdI3LUs5A/maR6UBB5JFZjrVuvWiLNwh3mPOAf8me7R3SKDdxqkzT2hPulmd2AH4if RFJc20QokGPzxRp4Gpw== X-Proofpoint-ORIG-GUID: KMY1WWXVsmxhZRcFNTQrsxLABiLCQeDP X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 phishscore=0 impostorscore=0 spamscore=0 bulkscore=0 malwarescore=0 priorityscore=1501 clxscore=1015 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110029 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773201088449154100 From: Brian Cain Define TCG overrides for setprio(), crswap(,sgp{0,1,1:0}). Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu_helper.h | 18 ++++++++++++++++ target/hexagon/gen_tcg_sys.h | 40 ++++++++++++++++++++++++++++++++++++ target/hexagon/helper.h | 1 + target/hexagon/genptr.c | 4 ++++ target/hexagon/op_helper.c | 10 ++++++++- target/hexagon/hex_common.py | 2 ++ target/hexagon/meson.build | 13 ++++++------ 7 files changed, 81 insertions(+), 7 deletions(-) create mode 100644 target/hexagon/cpu_helper.h create mode 100644 target/hexagon/gen_tcg_sys.h diff --git a/target/hexagon/cpu_helper.h b/target/hexagon/cpu_helper.h new file mode 100644 index 00000000000..1486a03c64a --- /dev/null +++ b/target/hexagon/cpu_helper.h @@ -0,0 +1,18 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HEXAGON_CPU_HELPER_H +#define HEXAGON_CPU_HELPER_H + +uint32_t hexagon_get_pmu_counter(CPUHexagonState *cur_env, int index); +uint64_t hexagon_get_sys_pcycle_count(CPUHexagonState *env); +uint32_t hexagon_get_sys_pcycle_count_low(CPUHexagonState *env); +uint32_t hexagon_get_sys_pcycle_count_high(CPUHexagonState *env); +void hexagon_set_sys_pcycle_count(CPUHexagonState *env, uint64_t); +void hexagon_set_sys_pcycle_count_low(CPUHexagonState *env, uint32_t); +void hexagon_set_sys_pcycle_count_high(CPUHexagonState *env, uint32_t); + +#endif diff --git a/target/hexagon/gen_tcg_sys.h b/target/hexagon/gen_tcg_sys.h new file mode 100644 index 00000000000..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 2310b9aec3a..bac63a42def 100644 --- a/target/hexagon/genptr.c +++ b/target/hexagon/genptr.c @@ -31,6 +31,10 @@ #undef QEMU_GENERATE #include "gen_tcg.h" #include "gen_tcg_hvx.h" +#ifndef CONFIG_USER_ONLY +#include "gen_tcg_sys.h" +#endif + #include "genptr.h" =20 TCGv gen_read_reg(TCGv result, int num) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 327c233c01b..d9d84f05553 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -19,9 +19,10 @@ #include "qemu/log.h" #include "accel/tcg/cpu-ldst.h" #include "accel/tcg/probe.h" +#include "qemu/main-loop.h" +#include "cpu.h" #include "exec/helper-proto.h" #include "fpu/softfloat.h" -#include "cpu.h" #include "internal.h" #include "macros.h" #include "sys_macros.h" @@ -31,6 +32,7 @@ #include "mmvec/mmvec.h" #include "mmvec/macros.h" #include "op_helper.h" +#include "cpu_helper.h" #include "translate.h" #ifndef CONFIG_USER_ONLY #include "hexswi.h" @@ -1412,6 +1414,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 8 01:18:42 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=1773201101; cv=none; d=zohomail.com; s=zohoarc; b=H6jahfCBCwMpHmd23PEEuLpDO9i9T64peokDeYv4TIRj++RuEkyJjRPSBwYBZ6OO9CFSM1g+HNwFv5oK/FMsVHwhlfOu8FlViChvb4q6o0pF7cXUBt+b6EaHBeP9otujPwt7Ig5ru8rkT2Xx7+ut/HttPJMUdYfF8PEfvQX5uIc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773201101; 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=MSAREvGC5EVkRCLKFi7ML4VJ/XDm/Uuyzy/JX1taOp7XW86hBmN17zIKhia5F4TDqvr31EubTVeKwYLDwHWrxcOBesrIepa/rZMwz98JlboxFQK2UbOD6JlJaJ3WJHpqyFA0XgIETtU8kBqHOr0HgWZYBzQdE4p6YLvUiWZy4q4= 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 177320110175660.32535808530213; Tue, 10 Mar 2026 20:51:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AaJ-00020v-22; Tue, 10 Mar 2026 23:50:11 -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 1w0AaC-0001kk-4f for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:50:04 -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 1w0Aa9-0005SZ-BB for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:50:03 -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 62AKJrCp1863458 for ; Wed, 11 Mar 2026 03:50:00 GMT Received: from mail-ot1-f70.google.com (mail-ot1-f70.google.com [209.85.210.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctmw82nfc-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 03:49:59 +0000 (GMT) Received: by mail-ot1-f70.google.com with SMTP id 46e09a7af769-7d742da766aso12917046a34.2 for ; Tue, 10 Mar 2026 20:49: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 46e09a7af769-7d76ae39b39sm946430a34.15.2026.03.10.20.49.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 20:49: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= KLyeJVWTlb4gtNJk7DgkzpygCPEbRzc6XmSLYTn5geY=; b=V1Ne7aaKYjHruUd+ VZIuOqEwUeCLFvoITA5F9mordS1eTQ3Q0NrTUYsPMQWgHFZoGDNmaTrQjPYoFCkN cYBwdNMYR8nunMgs3pjGIwyC0wZ9PCihLmMKQjmEzojxoWf3KYrpWsXIGVF+tQDD mrRvXzYuu//sjHn2TbhcZAPJLxAmk+itxAM1/QAq8JCTsCQjF111cnylx4Cv3Zi4 ETPjLFjQuvj6mujxSOD/QpMP9dq8+VoZQq+1xKi+O4dmMgEsh3vVhy9UvmJIS/VL qTSIkoGEgPgszyw4AvQxMy/dtKMnruqcBICgCDolSjNk26IB1fFEVy+Irg6BwWWA zPY28w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773200999; x=1773805799; 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=iLRKfUwME+Kscj+Dh4ZSKvnI8mmYP/WwFE48I3KmbbwavbrLooX1XL+Ockcy/8ub6z D74s7fqvPcyJ14qNMbucGAd8tRyXEVWsGzYfIc12/AyBS4WlakG6WMPwJC4Y4GfUH8UD RLcmFO22fW2ytdtP2ZDcqYFEwHQgh1HwclM+hWNtld9I20aRIOFn5IePu6yjEeo59U/o Lfss1E7KOsg/aCPxxgjLHLTKDixxlZBZuWllBvmjiaYJhQsHEdaB5Lak0YaeEu9rMSyz URoZFEz1yfHIgneUXeHUbJsCMr4qMJhumZEDnRcMyDEOYN2fqxo5sW7+XV3F09INh7E9 e3Ng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773200999; x=1773805799; 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=lq/RulInmfKbX6aYs+ROM05MIX2cgFD057w6Da8ey/YXu4r+jaovTe82VlJIus09LE d/CezvHZjXJZcjNcbNMGwPgS0cBPokZ6OiChzaVCRtX2GvWVMSamf23DlMjW4PwjWPPk Mn4agqbMOQFUYfpFLTxUsCH+013gFbx86KyHMk72EwEhVs1/hvCfg3YcV7G/IUzJjBTl RY8EodQiTuo1NQi+kJMMiG1jTOzm+h8rDfYaamT88vlkYl2Yexc7JRLXCAaBSX3Ssqfz yR9tcJjWDC8vX0jcZkD3jfVh3cNqaVXzhIiQo0XxN/kToGEAOkl8Slg0C7/lt4qKIf4T efMw== X-Gm-Message-State: AOJu0YzuvAX41r6+kTTahk1CuAxTk+4oZbzx6oGB91buU/pNHeXJFR9c Ts+V7PaQQFU16/QdrO0V7t2qjhm8fZFoDuRSWF5fuL9FFHFcAJ6Ios3rInG98tYYiFFZFO8IrS8 /lPFz0pLINiRHNoSJnHMEUQrz/3K5btx8ZHGXjGYgTdpD+LTXD4LWd5erEyR6r3LZcQ== X-Gm-Gg: ATEYQzxyGB2eHmPNd4mBLcC+o0d+22zYecT01vJRjrFW3sbpB8OsgfteEt7+1Sbtw4+ HCctYGvI13bu/JzeY+0U/725wstyeVZmEF2ipSrJiDLxroLzj41Fb+eXc5Em22HaI0ZBNpN7zQz 7/BCBAy+Pm8OIbKbzKVICb3K3O+r3Gh8T8cZKUwfqQ5vWrEQj++JhIHjj2tm2kmb0LEuuNlMW0M HGqECYKHsVj3NQSRUpx2zw+4+t8YWMmP1PSzNIrthmNFsKi1Hrx2DOm1mmzHyEN91mpAcu3d+Fr jPic70oAZdMBx7WPzgLZ2wV2mO2odaGlzpgB0RXVQjlRbpqkLxXWUb251NRCblaVvssMFDPH7ot gzSt8sAmvn0FoBvMcMN6B3mocc0y0Lk5LA+jwosgeDDryFiwXsCBBMElV2ZPhdbwbMz5dqQ== X-Received: by 2002:a05:6830:82e2:b0:7d7:5032:cc86 with SMTP id 46e09a7af769-7d76a7f2402mr843329a34.23.1773200999129; Tue, 10 Mar 2026 20:49:59 -0700 (PDT) X-Received: by 2002:a05:6830:82e2:b0:7d7:5032:cc86 with SMTP id 46e09a7af769-7d76a7f2402mr843312a34.23.1773200998793; Tue, 10 Mar 2026 20:49: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 v5 25/35] target/hexagon: Add implicit attributes to sysemu macros Date: Tue, 10 Mar 2026 20:49:13 -0700 Message-Id: <20260311034923.1044737-26-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> References: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: 583MpznVN_SohLJDGp3nQUZXsNorFUqD X-Proofpoint-GUID: 583MpznVN_SohLJDGp3nQUZXsNorFUqD X-Authority-Analysis: v=2.4 cv=PJECOPqC c=1 sm=1 tr=0 ts=69b0e668 cx=c_pps a=7uPEO8VhqeOX8vTJ3z8K6Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=QUxWXsmna62PihYCv0QA:9 a=QEXdDO2ut3YA:10 a=EXS-LbY8YePsIyqnH6vw:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAyOSBTYWx0ZWRfX6WAx3G19ilQ3 ngMaRzrffw87ZsWoEY2cmSi77tBhlOd/f+kqscOZ0t5WkFdkpfVYXpi/zc2lDSAH9lbtBe5/FCG urrpgV51qL8v/rZO6Bw6isEczoXLu9LYBvJAuIgEiPTXdpIRj4iQ4Kd94XmvNjwF4BidXmcfo+b gXZuKdG0WJZU5PuOSCx6A48UrEuJgij82tSeNHGVG38D9omEmS613GR+5wOWSMXzQGURrPfWQew tTd4C1jbyG06baqEllKJ7z6hl8wVbVa6JLhPa1Kul6NNOXPaCg0AN8rmzSnSQ9woICLw0wBDmTh ks9nT16kOnyV7dVNWkYI61OpktKy9+1xK69SRzgMqcpn/LZE3R3qDjZoWJVMXTK8Pu+AWwv9waP omMev8lnbNMO7wS9NssiqJeuKuhjqzFiis1XXqzAO0xR/JrDr1++mA6P/tKGuRHAystWYTRuugu WbbOyT8D+KRKBp2YjNA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 impostorscore=0 malwarescore=0 spamscore=0 phishscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110029 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773201102998158500 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 8 01:18:42 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=1773201199; cv=none; d=zohomail.com; s=zohoarc; b=lddPeVgkgaT3EOmN48B6kTroygfxW1Bg3uqcqY6mPb6ffUutGaEGqkO8/67cNKBv62HnbqL+RnMVprRJ9nn0llVZdnLKVSVui0zfATWwrKI0aIu/QxKDH4oXxiCYLt944qXZuinHu9Zg0wvalKuU/x9cDGA+RNZCcjRmhYKWsOs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773201199; 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=QdsFV6ZBShMBrX6Owyj7FwcRZtsraPXt2SNhQAW90TY=; b=C0vt3f+Xc5e0LzcYl60J7jTXgefsUjfOiQokSVlkdclYH/P6N0yEccLjgI8X4gGvnLBReDaIE6nB+w67PWwxuRFSVFEGgij+frLPd3RJh0rC5cdIztk/Jm3qkuHS9WC0EBlyyiociagM0B0bpVTXP9AIzT8OLJoxuh1NAnMsYj8= 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 1773201199685619.6325131071869; Tue, 10 Mar 2026 20:53:19 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AaP-00022w-1w; Tue, 10 Mar 2026 23:50:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0AaL-000220-RD for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:50:13 -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 1w0AaJ-0005Ss-Tk for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:50:13 -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 62B3NEOM2179278 for ; Wed, 11 Mar 2026 03:50:01 GMT Received: from mail-ot1-f70.google.com (mail-ot1-f70.google.com [209.85.210.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctqvsss0v-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 03:50:00 +0000 (GMT) Received: by mail-ot1-f70.google.com with SMTP id 46e09a7af769-7d74b41d74dso11904067a34.2 for ; Tue, 10 Mar 2026 20:50:00 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d76ae39b39sm946430a34.15.2026.03.10.20.49.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 20:49: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= QdsFV6ZBShMBrX6Owyj7FwcRZtsraPXt2SNhQAW90TY=; b=mYYH6Bj70C1tds44 PeUzSyTmNhCtVo1LcsIwRoFJAyvaN4PKBQOqbK+zP+2Q2WaYaOhax7qXWd3gOUys EFkhNPYLjKDJCCCDbgt0R9TaycUGOkJ1x64DWPIHwPGfyZfwhcgk+vxS4ukNY6aU h+PLJB1txwYaHI/aKFO2IMnYTuMJTIIBAux1wtQLYKaEV7shMLqUi85m7kaaCdtl dnMNJD8tOWpY4fUBJhH2J7YP/2Q63otjm/1u+jVBQewRhxXX7aaFjct6myMbxn1b plyOiVqmH6FJ8/9Y7jcgNqjuT6R0EwHT1nWYc9eK6SW7BPWRpiM9o6aAnGlZW56v ZBdZZw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773201000; x=1773805800; 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=QdsFV6ZBShMBrX6Owyj7FwcRZtsraPXt2SNhQAW90TY=; b=LtP8Itk3UjkU+Hi1mdZp6D3vlrsxkckqm1jYkqJ30u5d+jjNSDnBqPkD8XZDvCdwAd 7hjDYnZB1r6r2FuDTg/pqwH5dMgCdLYf640LxU+xZ7/Xl+XP9Wi1HObxujlmYfFzoLZc etTIr4JEAwFeuuQMLHdvMiMwMZ59Yp+1yimvYU1qgV7DUJoa9APw//yvXWj3/5h07VGg XtvPBVL4a/95ifIxN5aMBx5Wn+ESczMSnHQromh8KfpNT+wSIpRbGPP8qxCgLHjXrc7Y hFATKzi4b8L2moWiXpxNmPfiJxCM7PbSQj3zQbbOjO/uAbRvdvmPhOaXJ+RTy0n4w9rz Gqfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773201000; x=1773805800; 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=QdsFV6ZBShMBrX6Owyj7FwcRZtsraPXt2SNhQAW90TY=; b=ZLv211FVIY8DRX1jVozbt9/MoC/LlItWjxcqxWC3iYmCYscGb3JFgC3Gvke5y/hgzp GE0m3rRLW7vDKhA5v9WCFbZiGQHa4CzyLaBB83q3XoxP4gTPXGRQn5aNJ0BkE9NxF9eR fbjXAmnb1fzsLWUV2JdyOVpwG494fXPLaRIn7jKeYGp1pUqr95g27fyl4ZLtuvJOmiwM o9m0tjmmcoAFJmq80gQi6ahg5BIJhrEhcAMHJmmzgSonbj8l8Nw1OsEB4h5DKx0Es6JZ sLd7+paCtHJLdB9dUL1YKaxeLpPEhWYTt/c6ZTpxucTIjnHEQUaZmPCMkJ4jajRBZok2 AhNQ== X-Gm-Message-State: AOJu0YzftZHkPl2Yl+CpYYqY3BDumDz6/qjok/WI6CSFXHD1y+V1QEXu DNllujucbdWhgH1MLWWaDx1AmbzIElFEOguWFXAxOL9IK35aP1Wohfedw8ZMkJwS1IUwM7hoehM s2KVkL2tE6MUW28Qkjbd1SYfjfWgCkPjSZx6v10G/gGTw7QuZEDYfpWJ7YXw9BgccEg== X-Gm-Gg: ATEYQzxEK1rgA2VC5qvqAdnlRIGxCyXvL4tMMgUi73fRFtuyuMaLzTX64IJCW6kVDOs 8pDMcouXefBWP/TZlbqK3MApnt543LJ7Y97nNV5AFTV8rA1iqzraukPLgo/2viTnJW7yKiyXNvi SsZZ5jA9R0PgTW0VqPOTxWcbVV+5jHBB/3Rk6JGYJuL9CVUn2+m4vS0NryHnPoJlrZzyDLLJ4y4 MDAuwjuRj0BkCrO9plK+WI6W0ZCJij40wg/JnCyvyfbJYMdhQj7tZvfZPvzRnopZdC7nQ5ks83n TqfR6CS55BTV3DjRsrEoGOc+zg15WsOl0SznOkFXz3L+o77qzZmbEsOZpNAgOw/PYkNe8ggg7mg wEwozXN83BdnhwL7NBAdz8/1RSOjG3QBlyfzBKoicjOiy+VsusOXdk89r2w8sU8uCS5sB1Q== X-Received: by 2002:a05:6830:2a91:b0:7d7:4f61:b81 with SMTP id 46e09a7af769-7d76a7e9d97mr895207a34.28.1773201000293; Tue, 10 Mar 2026 20:50:00 -0700 (PDT) X-Received: by 2002:a05:6830:2a91:b0:7d7:4f61:b81 with SMTP id 46e09a7af769-7d76a7e9d97mr895192a34.28.1773200999972; Tue, 10 Mar 2026 20:49: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 v5 26/35] target/hexagon: Add TCG overrides for int handler insts Date: Tue, 10 Mar 2026 20:49:14 -0700 Message-Id: <20260311034923.1044737-27-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> References: <20260311034923.1044737-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: AW1haW4tMjYwMzExMDAyOSBTYWx0ZWRfX8fw9Ip1GzTRo 1ZALCxwgiv9FcNCIH+2jwSdzQD2CnT9E44Hq8YwyBe5ru+9S9BXJmjaPKsXslBeFIuwyHXMrdk0 7906yUrJFkC8EvjQL+qka8lv28wUBcDiwLtBBFFl8yK5wvD7j0T/IR9+10OPTDRH+5K1hk6RPwV +RSIm/xE5BkKYgR8C5hUIp1OeAxZBnfqHkHNR/7Tg7MmnqqN7Re4sOs3H9ZUV7Hx5u89pNvuFSJ h63fALv2zzdKRG/EVzjlGvBSfYzVvpH5Mm/Qelkx9OkezyGlaPczFKShkEpRJYmhikvEPmZ0FYW 7096lgg4ITcIyLBxrdgGERUdrIQb5LjgrXBJnRfcmiO920DfglPiXvxGX7tl5o4mTJubHurY2ip KX5NgZA+8I6zOGRvuoFy199jufmieYlnhEwcZkpyACl3qbZf8zHKCxKbqJfcqcFN7I50nTpdlmo o+169vQSEDHGGrQ5nqQ== X-Proofpoint-ORIG-GUID: 81WYJRxEsULo6j3MiFhq0gbR0BtX6Sz9 X-Authority-Analysis: v=2.4 cv=Lo2fC3dc c=1 sm=1 tr=0 ts=69b0e668 cx=c_pps a=7uPEO8VhqeOX8vTJ3z8K6Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=ncxFUDX8U6Z2rYVbhVQA:9 a=QEXdDO2ut3YA:10 a=EXS-LbY8YePsIyqnH6vw:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: 81WYJRxEsULo6j3MiFhq0gbR0BtX6Sz9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 clxscore=1015 impostorscore=0 bulkscore=0 malwarescore=0 phishscore=0 lowpriorityscore=0 adultscore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110029 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773201201851154100 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 d9d84f05553..e81e89b8bd9 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1390,6 +1390,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 8 01:18:42 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=1773201155; cv=none; d=zohomail.com; s=zohoarc; b=alj0sFh9TF86Ze5piCLFGJP98nm2ym9n53Wgw0kkE9H7HRBZD4H2s/dIi/VBvhsVnmAgT0VDOl5K1mTiLmZh1OPXfvAt9+M4f9F0vXxg37BbulWKqu5uHw9DcrAU2IwcybOM3t+ibiEDX2lmewaLSTOqqO8uCHWyUAelnOFqzIQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773201155; 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=4ubuonnIbgioCt0AFo7L5fPLuVKOnma6sTGNsKC0Pzk=; b=KH5ON2KiHnCsh9NtdQopNRGszqDCO037obqLuzD2ZTN0HlNWJaSMLWRHQQRybBm1rhYOwkOiDxNINH9468nfZBtap96RjyTeK/7weIPw/MnAAdKWmT5xfGoeHDsUTcat/55if7/rJiTIhkdpsI7xS7ctc3N4kBO1nkUc6FiBm6s= 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 1773201155647821.8163009393174; Tue, 10 Mar 2026 20:52:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AaR-00026X-FJ; Tue, 10 Mar 2026 23:50:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0AaO-00022t-R8 for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:50:16 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0AaM-0005aq-La for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:50:16 -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 62AJAinD303863 for ; Wed, 11 Mar 2026 03:50:03 GMT Received: from mail-ot1-f70.google.com (mail-ot1-f70.google.com [209.85.210.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cthjf3h4v-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 03:50:02 +0000 (GMT) Received: by mail-ot1-f70.google.com with SMTP id 46e09a7af769-7d7510702e6so19078288a34.3 for ; Tue, 10 Mar 2026 20:50:02 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d76ae39b39sm946430a34.15.2026.03.10.20.50.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 20:50: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= 4ubuonnIbgioCt0AFo7L5fPLuVKOnma6sTGNsKC0Pzk=; b=nUcbKh/LGFtb90KW DwAp4ZqzW2xvnBs/kYJDcBvyee4HIoZd2VgDD6s5hDUlVnjSGSsBBc3LH5hQC4Qq qksG2FGlEH4soE+ru8+zuylVvXfFd4OEkdCe4Q61RdLzPfos6rHupjWqKE26NDMm q4pSWLq35BJRehGVJHsyD42W+Blp7KHNdFjPuymY0flPUpYFVZwWwsgUtTZMY7ZF W08YOrL1855aXj1of0zKv0NUn4p94EBNNaGE0MmGbfnOWCE+OpfG9iTu1hwTEBWS JkVv3152j9nEp3K1yOIFq1XUaO4ZZIVl7jzpqS8+Z+LW64rteJ9dpuHxLCIpWTOT A6J1Sw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773201002; x=1773805802; 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=4ubuonnIbgioCt0AFo7L5fPLuVKOnma6sTGNsKC0Pzk=; b=NmVNM6vwQgaJkcK44656dfr0wY9/owrxCa1hDeoe7XW3p1oqtirt6UINijfCXuOMXp /ibhGhEklIujVXDym4lwtZhtCTwIJKZ9fKEZJrcaa/8qSGJtgozMrfTwBPLC6eF6m+YZ jAzLV0yOW/GqLkvAtidXwVWavMT+Fhfn0rBBcP6N7kFZkUjxlwWI5MU341GTRHZWAnS6 ZPCxyVc/QRfOBEHzGpV9iHw6lceOU70z2w1/kR00TrRT5pnDItwLKLpTZ+uSbxMgMDua StND1zVbLP4khTn47pPnxJXWbazbpzvCdnt9PWycTjT9tZLu9a+6Gd3lsebvAd6CVC96 +kOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773201002; x=1773805802; 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=4ubuonnIbgioCt0AFo7L5fPLuVKOnma6sTGNsKC0Pzk=; b=n7zvnqY15NUBZblazAiAGBK2KdIFIqq4tWjoyP/TZ//VNCxMjaqNbBFeaNgW0DIfh6 ynnvQYIwSrqukNR31CVNoMC1py3UDHe9syy0TFG5MAi/j3lYP5aacXEA6E3l5tq4NMP8 AZL+wExe+NaPH3org+Xexv3UdniO8aubbcN8MeZ62GEOnWsQriW6D+ayCt0LM4rfnvve VkZmu0jq/m3ZUOcR8IKwPJsiFjNoiGz3fquIOaW8B2cYu46KzIlvfQspaii98hH3Myx8 WRdsHgmLnql66HcedBsCBjUYSZmq1czrniRmqT59qsdP4m1IzsbjxapF3c8wGGQNe7qM +JgA== X-Gm-Message-State: AOJu0Yyot2hWp1MF47Z5sFAW42Dx3FSPa2XIISftVMwNR1CTnDim9hCu d8oCXUl5433++wG60GV1HJqVqFsGi2oFCqu7lwrJm7VipeY1Jq4uyuGJhnyr/myDFwlWptY4cdA aXrlji+hlPFlJpmlSn00B3qiJGqN4dzwkRwUNu0KXX/XkEkSnUoGHl1LfcFeUUW4WWw== X-Gm-Gg: ATEYQzwt4yez8w9gKp38PvvABUDJK5ogmiYyT4Hl1nrqNdae6LnlLDProqFZQcJBfM/ kU0W8+iI1NBpV8V189Qn3NCQX/78PLNqHQyYcElxvgkBmuqJRLfm6tWKhyUvPiVbzrEYbyE6G9L ZGhkp46q+lM9XCw2eZt9VQhQE7IGSugW+6owRmsvcqP8M1Jnt7M/kI/oyZEKds0OwYyHiQQF50Y ApGjtqhBWykoPHO+4Ugwm0KfX1lYSwEKuTDR06gZwMs5yMuxa+T2dXXYiczhZGomefW9hHnkQlN SVQ7rQr+JKFFPF3CQSlpnt+sMHpcX5GnbJYLpuxWSSc14hLO/CJZ1s8/9QO95vdVxy9NG9YmhYx y/h6SQJyK3NXJ85LriLp6E12lpVI8SPk2gxMkfE0Zd3O0Zbm3Pyu7rkavkm0CIE8iDD423w== X-Received: by 2002:a05:6830:6b04:b0:7d7:4aec:7ae1 with SMTP id 46e09a7af769-7d76a8e9bccmr837451a34.31.1773201001949; Tue, 10 Mar 2026 20:50:01 -0700 (PDT) X-Received: by 2002:a05:6830:6b04:b0:7d7:4aec:7ae1 with SMTP id 46e09a7af769-7d76a8e9bccmr837418a34.31.1773201001134; Tue, 10 Mar 2026 20:50: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 v5 27/35] target/hexagon: Add TCG overrides for thread ctl Date: Tue, 10 Mar 2026 20:49:15 -0700 Message-Id: <20260311034923.1044737-28-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> References: <20260311034923.1044737-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: DBZl-aUKwBJqXFPjdoAFO_DuPQT3drqz X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAyOSBTYWx0ZWRfX2LUlXoiDYeLb lOpeCbyzY/yQofvZKFTbnOMXAryLqkdvH0yndocVRFTTntt8nF76jtG80StKgeCGucG9C9fmlOO GRrDD1KxGrudLl+HKXhLlqHqt6mV4Jz+9X+gSIHE5icl0aB+KLAmbg7MV31cADPSHr7ZoBqd8j6 z+ij1KtGjwx7Q77mKHyzisW9uzRs4Vn75SK8vOv4MStjeYMr4Ml6rZXV/bjDADQPmTRxYTmLZ8y hqBqnBNl5sPfnWPMSdMn2cVdTupKQb6WERa715TepCUgZIzQKRAtNjzLzlvGDkV5EO1dD24uG01 VQ9ZIXdBOjwz994JQr2NPzJoBcwMhUJydqeAZLWG+W31KtJXV+1+8cbQwgCvf3DLytOVwHzrFEA 2HI0vW9chSBa3fkX0aoucp6/4AlCqZ9lMTP5N8iwg76aijXd6dbYrvu9cegTZpNdiaHeVcvUrcn 5dpOtHVVk88QDI5X98g== X-Authority-Analysis: v=2.4 cv=A71h/qWG c=1 sm=1 tr=0 ts=69b0e66b cx=c_pps a=7uPEO8VhqeOX8vTJ3z8K6Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=t9Y8JitlK4h6-XB8aEcA:9 a=QEXdDO2ut3YA:10 a=EXS-LbY8YePsIyqnH6vw:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: DBZl-aUKwBJqXFPjdoAFO_DuPQT3drqz X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 phishscore=0 clxscore=1015 suspectscore=0 bulkscore=0 adultscore=0 spamscore=0 lowpriorityscore=0 priorityscore=1501 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110029 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773201157193154100 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 e81e89b8bd9..eac6a22fd64 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1420,6 +1420,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 8 01:18:42 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=1773201163; cv=none; d=zohomail.com; s=zohoarc; b=MLrw60LRuO2BCN5n+FCsx9mLUSTvLToGXyKJZ3zqxM+yF2H5K5/22QFzVyiCgHKJnKBAXSO8sIgOMflwmSVeR99KemC3FmiJh1rz32I8m3uzqC9kT88QK8TW/MWDz9Gm3y3GCgftSHHGR8oDby/fJCDeasHFX4H6UWrNCSxvuJ4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773201163; 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=PjPaPqrhLT0yunV9ouaN6H60Rrbm7wBsFlGXscdhFO0=; b=jZJ8QVBcagXnuU9Fe6Tn2v5ki2sWWBi7b/6rcWbYWD/GSAoucVjYFKZCqOScP8liWt8VQbRHQ92C8pBFHE5CTeTZFrv8g2lkk6fgkkQj/Y7nxRkLz6zKAuDX7p6nq27QCUEjeF/3XkfYFg5TrJ25U0kf7Z2145KsBNQndtqhtgE= 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 1773201163943640.6366180935393; Tue, 10 Mar 2026 20:52:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AaR-00026Y-FH; Tue, 10 Mar 2026 23:50:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0AaO-00022s-R9 for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:50: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 1w0AaM-0005es-QR for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:50: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 62B2s8uR248601 for ; Wed, 11 Mar 2026 03:50:03 GMT Received: from mail-ot1-f71.google.com (mail-ot1-f71.google.com [209.85.210.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctqv11rcj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 03:50:03 +0000 (GMT) Received: by mail-ot1-f71.google.com with SMTP id 46e09a7af769-7d496d080d8so79932771a34.0 for ; Tue, 10 Mar 2026 20:50:03 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d76ae39b39sm946430a34.15.2026.03.10.20.50.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 20:50:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= PjPaPqrhLT0yunV9ouaN6H60Rrbm7wBsFlGXscdhFO0=; b=IBggoSxPT/QkRUvM tzXU6AqJOrkWIzU11hHEx1Z05crmfwl6P26ElcXf4Z2kSDYYtc8yTsXUL+3Xiil9 yMVx5quhtt+7g0PvFibwEBsQ1O8d231EndyLAGGd4nI857VMC39IEnb+xE4vW4wV rsoCHGYWdl/qqBtyaNSrb76eBHA0WDwbZKCOkVlNgSy1T0duYish4iime32pPSD6 3a/efk8Iagdob8lo6Dap0m7GULohi7hOdbZPlPrbzfboZT9oeE4rnkrVL9tbG9zq asLVt5icuncxs5QD19XxfusOMCUm3rVOq7qj3wlBnwfhn2nQEUR/86BdhxlLEL54 oDXOQg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773201003; x=1773805803; 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=PjPaPqrhLT0yunV9ouaN6H60Rrbm7wBsFlGXscdhFO0=; b=JkX6D5KJhj7OQdhVxGztac0YbPHTFI9pu7VHkJhSz41l2hmW0M3R7wmGV/IpVNm0eY jdD4m6Bs1rjbjuGebsxZ5X8ZxoVXc/IasUjLVt/D5Sry8DtuFYLmF8UUjduSUwXsmiPd +6cTsOZCwiZ08qILS0uxfUBg/UQT7eKNC/62vhOJxmBFSU93s0uTbBJYuCvgsqij78C2 nLROFNU4mma5XSsyyHZgZEpSNCOw8ZNqo3hX/+wcpcArGDfkFBWU4jvOgsb2978IBLIk l8jenvWuCx8vKdr1uPrLwUi8jwNmipkL+r9CVpo+pb4SGxeCVSl2LHmKSN//LYfNnkaF 67ig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773201003; x=1773805803; 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=PjPaPqrhLT0yunV9ouaN6H60Rrbm7wBsFlGXscdhFO0=; b=fpYD12L20tIJXtk3zi9td+xHhf+P2SZmhCAqCFy3raG3Y0FxSjTsrtmcMdo6aUozR7 R7SLXVcWCxW8BohCJCuX3ASA2MgAPv+E1nTZgczQ+p9USxHQxTDOOfKqeUyICJ7GP6a1 il+ce/QdG/dRBfMoLVObUwjESmoj6TIsXGen2swTV+cr4Q9BSEsSEs+TGWnvLjxexjKW xA4IZGKgt1ibGsSoiviBFHP0QwwBfX1IQUjZHANT1/kJ4e9U4H6GBAx8OxWhJSqMDuP0 +dORYY0KaQ1aEgrHx+GcmoI0O5gflYiI9UwSwj/GRgaVq4Vb+R0y4UPpvAW5ZMnN5jK9 11zg== X-Gm-Message-State: AOJu0YyKmycvHu+D3iYVYr+x2Q3MHjWJVm81t8aBbaxnfNfOajcXK2IE vU+EXA6xaaAxCcXEQMA6ZYUqpfORMSE5eW1VR86onzEFS0BZOQNxYAtX+RiqjLtYy7k1YCndHBs aaG4JFvgGL5Vlnrv0S/KfMys6FCG52gpX0MG041krhAh7z8CsMkk4yum8kfR0Ggtj4g== X-Gm-Gg: ATEYQzyPAM9cehHJUBoEYAT/rWduPLxueJ3d+ceL+bP0eELxc6ArMj17PygfWpLwDTY 8sWybKI06OJ2EXt+tJ0MrC7tu62AOA+7klN0qE0kISr2+KTBv9qtL4Nk2GmBoIi9rsrRB58Ixfg RaxsCq+8QBfsBriSYug/tuxL0hvlDjEIzZ2+5WiHdDEaJ4GwO8c+Re/sr540jY+Zmq93qiAsV7Z y0wWEhdSu/XTs9193Kb4PYBC7ZSaxGQF3v4j3lKWInqk0tLAqgNlaFuTOwBfSuPxfzN5jZ7cBEW I/fqBr/O/slRGnwXyUAgWe4dI2UBKKaAbaaNMgzAkkcRL4nntt2GLjnkKKyod3xEEb3WjmTvKX7 IlamBvb/A8fceZLwkdSU7iKpOFXZQZgEkthlgm8JFrYLpUxWNJzPJEWXtaCAJ1bu3FJFLIA== X-Received: by 2002:a05:6830:4409:b0:7cf:d119:9953 with SMTP id 46e09a7af769-7d76a6b5e77mr930014a34.16.1773201002849; Tue, 10 Mar 2026 20:50:02 -0700 (PDT) X-Received: by 2002:a05:6830:4409:b0:7cf:d119:9953 with SMTP id 46e09a7af769-7d76a6b5e77mr929989a34.16.1773201002315; Tue, 10 Mar 2026 20:50: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 v5 28/35] target/hexagon: Add TCG overrides for rte, nmi Date: Tue, 10 Mar 2026 20:49:16 -0700 Message-Id: <20260311034923.1044737-29-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> References: <20260311034923.1044737-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: AW1haW4tMjYwMzExMDAyOSBTYWx0ZWRfX+5NQxP2TlsQz Y1R+h87gfJCrvcXyds2OG9Am+nbqRSSOtBqwaeLG2cXxwziSb9IB2BriBmTu0Zn0N8q0ddE6SER /68z7ooXZ2YiTPLOJPvXMvmsVMYMGfv9RG2X2238AVWXzyPAFXbRsmPnh7bSjJxM7Y/RSpG9huY ousjgOPD+EdFTOpozj5JVSJXqKdTBIQ3KgWZkWOcNV2juWZF8iGuGoR6dCzsups/g121EzeyUf3 o/h+WCPjP8W9BVeFA5555fC0e4YgQjf5IwEey6L4YyLEWa7KmHlVQ0S+KDEt9YFWsQaZ+n+WsoP YH0NzySionKeYraBrNYLnApCSloLMmmP/ORtLM0hMtkqDVffQwE/AwXNu/DeiKcquWZpdN35X3E WURBKYsWWLxfaACJBR/+cJTparJC/o7oI/7EVf1q/1tvVLzqGMeBDQ9HwGmtwfAU6JICBL+Bu3s C3F6/wiMd0LMLFTIvNQ== X-Proofpoint-GUID: EMeD5coYO-ZhWsU4KW3yQtiIYIJqHZ1H X-Authority-Analysis: v=2.4 cv=S5vUAYsP c=1 sm=1 tr=0 ts=69b0e66b cx=c_pps a=OI0sxtj7PyCX9F1bxD/puw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=zRxYJKy5J8nCns2dKEsA:9 a=QEXdDO2ut3YA:10 a=Z1Yy7GAxqfX1iEi80vsk:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: EMeD5coYO-ZhWsU4KW3yQtiIYIJqHZ1H X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 lowpriorityscore=0 clxscore=1015 suspectscore=0 malwarescore=0 adultscore=0 bulkscore=0 spamscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110029 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773201165156158500 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 eac6a22fd64..af93be7a232 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1480,6 +1480,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 8 01:18:42 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=1773201171; cv=none; d=zohomail.com; s=zohoarc; b=MbaEQmrpvzW9I96IlLlZnOyk2e3spT2ZnkioBo65NIg80oFzQ5lAI+1hK8g+NXGiLITUyDNB4YPEOARpjdHqnXNAfvWXjadl3di1g57RD64GSID2APz0gCJoVe1izIhRwk20L4bsv4UZpSsC77e/xNuwYxKIYh79doqCTGHhpvg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773201171; 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=6sQN1OX8itAmeOsMG4EYtU2Hw93wfi1jWSB11v/dd5U=; b=gV2OX0oBLv+kg5PeKA1XC+HizkgCzzs2h6JZrj+JqYstYwGnzbbnaD3gLqReaCcL6eiN7s1veDuziAXuCTadoMnbxzefWRNr0Dx7ZmQnpcWdyGt/3jQ8nvq6ukVaFIOmM1j+wz6KfD/aGdOn3HbQyHcLuEJwzQ25v/udX6JKbhk= 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 1773201171564508.28360286782095; Tue, 10 Mar 2026 20:52:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AaT-0002Aw-6w; Tue, 10 Mar 2026 23:50: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 1w0AaQ-000259-BH for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:50: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 1w0AaO-0005lf-7j for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:50:18 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62B36N7p1573018 for ; Wed, 11 Mar 2026 03:50:05 GMT Received: from mail-ot1-f72.google.com (mail-ot1-f72.google.com [209.85.210.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctqgk9tmp-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 03:50:05 +0000 (GMT) Received: by mail-ot1-f72.google.com with SMTP id 46e09a7af769-7d7400fd1f9so26044059a34.2 for ; Tue, 10 Mar 2026 20:50:05 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d76ae39b39sm946430a34.15.2026.03.10.20.50.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 20:50: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= 6sQN1OX8itAmeOsMG4EYtU2Hw93wfi1jWSB11v/dd5U=; b=KAA5ts+BCtBdX9Pa v51z6Hqa+GrWOXvHaeP8M08rMpRJehWz29yoMXDjspkXtL4dtiT0/hQfbMY9Q9L/ 90ynxQnWgrD2vi57Xaj62gDspd45ruY7g5Oj2dkRkURFP5aiH8Z3nRXsiHOFBIdz l1fGm0df3I9ErUzQYd9+SE0Quxq5y9ihMuKHGLrBtYB1YkKpn+T6BbUqi0Ws6nRa W+JW6cCdoM8E4hIEpc1vipybAKHYyGsL12mdRHUCWI+PvNGGrUsG5+Ts0F8FlTvq IUtT34/b9zSp0ei/P3oocGTSuGyHlu+/vyVS8j2d9xlJ0ua1QwVNbg/2zCoYzxDS eIZcyQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773201004; x=1773805804; 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=6sQN1OX8itAmeOsMG4EYtU2Hw93wfi1jWSB11v/dd5U=; b=DWrooAxoTtC8u+64/uIyG9pwW1Ptr0BfjzrNjcTG1gnnXQE/7xzSpcuf/ilsAd+ilt Gj4Npzter2hj0bzWUg9v8eIMvJtIfxt7NoYert3LsEYJiTNmp5rd90mcQ0YdO7hOLEBQ QuBu8p0rFAVTEuu6vWQRcbypP/+I+I2gSpZJgaUgmg9DkHCT4ZV4oHPyet/h00ZQ5PHG EFIJWRg2O9oiwKtK+763+rWFzSIezokEaDmgnVnMTc7D8GNS/uyMQP3Be1LX4ZMCFdtr 4+f0EmsG9OQpifrppPrGpfxX6/8o5TfnY0o3Yo173Ui74iMdnh+YJoTHNgZMoPGziRbp 4Kww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773201004; x=1773805804; 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=6sQN1OX8itAmeOsMG4EYtU2Hw93wfi1jWSB11v/dd5U=; b=uWuoRprA6oY59XV0xOsImdqj5at2pIqJ5Vo+uBpKHu53eSyYcTy08I/e9DQ11TeloT ifa/lUZf6w5p6ossjGc7MojZ+l4qc5Ko27PDabQ/EImwpIjvOE82bRqN/UHN6GbmhwFw 93Kf2+INCk1LEnicsAjHmNBh+wT1Aysd38i/yPUp5HMoIV70h5Rx2YKeK/JvQjV2ipbs XxcI0lhfLoHY+T/a979QQCVqqzVmsCrsGYdR3WPOnG/X93F1Wvdc/XpqhrHCXLBHzPNM VVbl02ljEBaZbu7pVTQJggpsFLwFR0OoXCytb+ISbTIDreoBAKtgg6pa55/OkW8+zf5x U8SA== X-Gm-Message-State: AOJu0YxzW4eoZ/XuyIqC0jIn4MXhd4McOgMa5Y6/hbkYyTWo1UJRWKGu QoyfIeAeiTq+ZkE11dJTmYuihf7Dp2/YrLu5Oy0vafOacWumVe5rEM5Drvg938/Di5WBgGLPgX6 RaDHhcnz7IzROXOgwbQ0JoVeY3HXv2N+GUKcDh3D+CaAn8a+szjQ78mXPxxng+aML+Q== X-Gm-Gg: ATEYQzx+j+UouX+Ds4EWzblHQXTwD7Ks6yZUsCEEGvLS7EGd0x92ywfMG/Jsu4YZ8mQ Q2sIHqhpcH2cZbW4GYiYoXCKBPlIg3AE/H9+XmqY9ZiwZ46c/G59sxTs0KQu5BA5Kjk0uOMnYCB c+vR4GSkvh41jpfWXK7DdzBNfWqc4ptg3b95QvNuwiaBpFdD2pky0wLbXMpxzlJHSXFrjPTfXY3 8+X5SqZyoFH8lU9dhVW1zKIozFjgQiS13r2JkJTkrVJTXFlL40refevrmDhSWllPsrIFBmkHeVb BdLn90AnCvYGs8o6aLGfmwRQJUm7sy4X9PjIg+WeoPFIcBUb63f3AzJIxok9Fwb1Ods4dKEvn1Q RB5HnUBgXtZz8gQXQcwU8jjvDHEPjKC0tjYjQS4G2r2DUXpew01a61i64mWfxxlFEBswJKg== X-Received: by 2002:a05:6830:6601:b0:7d7:51af:4aac with SMTP id 46e09a7af769-7d76a7e8c8amr831036a34.30.1773201004463; Tue, 10 Mar 2026 20:50:04 -0700 (PDT) X-Received: by 2002:a05:6830:6601:b0:7d7:51af:4aac with SMTP id 46e09a7af769-7d76a7e8c8amr831011a34.30.1773201003819; Tue, 10 Mar 2026 20:50: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 , Sid Manning Subject: [PATCH v5 29/35] target/hexagon: Add sreg_{read,write} helpers Date: Tue, 10 Mar 2026 20:49:17 -0700 Message-Id: <20260311034923.1044737-30-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> References: <20260311034923.1044737-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: -mcud_D_YCrwGh9EjiTdb9FGWY9-IH5t X-Proofpoint-ORIG-GUID: -mcud_D_YCrwGh9EjiTdb9FGWY9-IH5t X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAyOSBTYWx0ZWRfX0FG08AyyAbM+ qKxvdcqMkGD3Q1BYKlsj0eApx6dx/IZ0mRipwAZJLWalBeE6DSWLZwtmEe+ASp9LyxLXx4F5In/ F/P894roeq5lLJy8y3Lr/ERmhJC9UwYlCYAA4Oby1dg4jgDU1q2i6QMvTBpDL1en5CEnEfgjW/0 uagcw27g+Fb0BRz3UBYMNjsajenJEx5V5s/tvH/3mR6Ogu3p/blWTz5OnlIDz585WKv3zcxgfuY d7pZQi2Wsn2lN0insfW1YXAu+OHVAD0o+kuWgyMuG4y5AuWvTrFw6QgSus8SN4Ujtx8lJ62LcCA 45fzHVftXd9IZSnUBdOPbo5sxDRo3MZauLe2rowcgkUkhsav5JLoqrlQOYPrMBY80xl7/bd7AZL pIXfXBKW8UlXpT9zjQPW7jezFUZHLPSoocXcdzLyI4bjYsrzXowwNZyNYtSTMRwjWyWuCi5R1ra aGy38Xn7i8FdWqsOh1w== X-Authority-Analysis: v=2.4 cv=M4JA6iws c=1 sm=1 tr=0 ts=69b0e66d cx=c_pps a=+3WqYijBVYhDct2f5Fivkw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=awtrkfjtPIBuNREMqawA:9 a=QEXdDO2ut3YA:10 a=eYe2g0i6gJ5uXG_o6N4q:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 adultscore=0 lowpriorityscore=0 phishscore=0 impostorscore=0 spamscore=0 suspectscore=0 bulkscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110029 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773201173242158500 From: Brian Cain Co-authored-by: Sid Manning Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.c | 1 - target/hexagon/cpu_helper.c | 60 +++++++++++++++++++++++++++++++++++++ target/hexagon/op_helper.c | 30 +++++++++++++++++-- 3 files changed, 87 insertions(+), 4 deletions(-) create mode 100644 target/hexagon/cpu_helper.c diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 38d605b06ba..dc3bd82bc05 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -339,7 +339,6 @@ static void hexagon_cpu_realize(DeviceState *dev, Error= **errp) =20 qemu_init_vcpu(cs); cpu_reset(cs); - mcc->parent_realize(dev, errp); } =20 diff --git a/target/hexagon/cpu_helper.c b/target/hexagon/cpu_helper.c new file mode 100644 index 00000000000..b8e0625e3f8 --- /dev/null +++ b/target/hexagon/cpu_helper.c @@ -0,0 +1,60 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "cpu.h" +#include "cpu_helper.h" +#include "system/cpus.h" +#include "hw/core/boards.h" +#include "hw/hexagon/hexagon.h" +#include "exec/cpu-interrupt.h" +#include "exec/target_page.h" +#include "accel/tcg/cpu-ldst.h" +#include "exec/cputlb.h" +#include "qemu/log.h" +#include "tcg/tcg-op.h" +#include "internal.h" +#include "macros.h" +#include "sys_macros.h" +#include "arch.h" + + +uint32_t hexagon_get_pmu_counter(CPUHexagonState *cur_env, int index) +{ + g_assert_not_reached(); +} + +uint64_t hexagon_get_sys_pcycle_count(CPUHexagonState *env) +{ + g_assert_not_reached(); +} + +uint32_t hexagon_get_sys_pcycle_count_high(CPUHexagonState *env) +{ + g_assert_not_reached(); +} + +uint32_t hexagon_get_sys_pcycle_count_low(CPUHexagonState *env) +{ + g_assert_not_reached(); +} + +void hexagon_set_sys_pcycle_count_high(CPUHexagonState *env, + uint32_t cycles_hi) +{ + g_assert_not_reached(); +} + +void hexagon_set_sys_pcycle_count_low(CPUHexagonState *env, + uint32_t cycles_lo) +{ + g_assert_not_reached(); +} + +void hexagon_set_sys_pcycle_count(CPUHexagonState *env, uint64_t cycles) +{ + g_assert_not_reached(); +} diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index af93be7a232..3517f3768fd 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1452,17 +1452,41 @@ void HELPER(setimask)(CPUHexagonState *env, uint32_= t tid, uint32_t imask) =20 void HELPER(sreg_write_masked)(CPUHexagonState *env, uint32_t reg, uint32_= t val) { - g_assert_not_reached(); + BQL_LOCK_GUARD(); + if (reg < HEX_SREG_GLB_START) { + env->t_sreg[reg] =3D val; + } else { + HexagonCPU *cpu =3D env_archcpu(env); + if (cpu->globalregs) { + hexagon_globalreg_write_masked(cpu->globalregs, reg, val); + } + } +} + +static inline QEMU_ALWAYS_INLINE uint32_t sreg_read(CPUHexagonState *env, + uint32_t reg) +{ + g_assert(bql_locked()); + if (reg < HEX_SREG_GLB_START) { + return env->t_sreg[reg]; + } + HexagonCPU *cpu =3D env_archcpu(env); + return cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, reg, env->threadId) : 0; } =20 uint32_t HELPER(sreg_read)(CPUHexagonState *env, uint32_t reg) { - g_assert_not_reached(); + BQL_LOCK_GUARD(); + return sreg_read(env, reg); } =20 uint64_t HELPER(sreg_read_pair)(CPUHexagonState *env, uint32_t reg) { - g_assert_not_reached(); + BQL_LOCK_GUARD(); + + return deposit64((uint64_t) sreg_read(env, reg), 32, 32, + sreg_read(env, reg + 1)); } =20 uint32_t HELPER(greg_read)(CPUHexagonState *env, uint32_t reg) --=20 2.34.1 From nobody Wed Apr 8 01:18:42 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=1773201114; cv=none; d=zohomail.com; s=zohoarc; b=OLLga95ZHcHIgiUuwsZVjl7Dm17NP8v5u5L5j2QZb0s7E7F0nEeBvBpbl8m/50cN+3h+tmxbnbPpRru7tX8wp/i0YHvhJg39ly5Bx5HxgjSAYw06Gs4mlFFtjhF7Wj+leeCssi52m9B98Hs07INOjODOU8azDkHFhJVe3L/jE7A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773201114; 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=/ZnXLXreRXZinzOrIobpoU6PRKGdpbBhwYdiapKuqRs=; b=LbvKMoyqPClVNx6AgcPrgtJt9j8Wrv6SYaN3bw5jbdwV9AbbD2BeMynTef/04TjoTtubo+bnJ8LE9j1MBExNU3R8eSqKFVUkmBabWL6WCL1LrqRhdhiYtDCDhmAzunE3dXg42InuMNUZxQYjubusMX08zM606clcy5AdkrsbtWI= 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 1773201114831115.6033450378169; Tue, 10 Mar 2026 20:51:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AaU-0002Ew-Mu; Tue, 10 Mar 2026 23:50:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0AaR-00026r-Ok for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:50:19 -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 1w0AaP-0005ml-R1 for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:50:19 -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 62AKN0nI1863463 for ; Wed, 11 Mar 2026 03:50:06 GMT Received: from mail-ot1-f71.google.com (mail-ot1-f71.google.com [209.85.210.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctmw82nfy-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 03:50:06 +0000 (GMT) Received: by mail-ot1-f71.google.com with SMTP id 46e09a7af769-7d74d78c5f7so5578459a34.1 for ; Tue, 10 Mar 2026 20:50: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 46e09a7af769-7d76ae39b39sm946430a34.15.2026.03.10.20.50.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 20:50: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= /ZnXLXreRXZinzOrIobpoU6PRKGdpbBhwYdiapKuqRs=; b=HXxUNvjjrFA3jRZF OeUrQlm7D7RhPQt2hcKW+5Z0rqtYhAJJjt0HBz8rUJB2zHnNqVyW5TnVkDL5Bub/ S4La99zjep5bYV/y/072lADmbBd7Or92KrFmlOQRqfCbngQ3jlAhFXJGR3ZVvbDg lrwBOB91n2UZVnpv4cyT0L1obiN7iIjB1RPY5ItJfTn4GTNX9hbhiTfk9oCFPC6x 0yybK8ybA4bTwkfpitbkETGJGAiVtcNIZH9Nhie5uAknRdarae4jMBB6Bg70UIs5 wOsIrRgxz+yUMB2+McwdTz66ic4WHLGAdQnBdr9R8Z0Ud77KMMLbQAmIqj3hUMyF ybn5mg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773201005; x=1773805805; 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=/ZnXLXreRXZinzOrIobpoU6PRKGdpbBhwYdiapKuqRs=; b=GjveeAlzIbeSLUkbVW/BWZJFTD268jsuMWT5W6ztJ4quqqNUiwZFYXPAdHibkRLbra EtljxRGETU7uEWC/uOatINwGDpIf8j3MQTjk0V+S5De31J4VaEYCl7NCltLnwkKezkG0 jkgR9Oer+P2JWtPKNlvealPwuvHnj7tLkoPgnBEmiPedfcaVaYPoOH/pqMVerSqnNWrl Lrf0eHMarIuemkO+rvXqN9J40H7MDuHHe0AFO5cM+I/ShDW9nQEBeuyclrQLmy14ylhS N+lkT5aRAm3LFR15TLNK4Bol7X0s9j5y64yv7Ao6CXGUxXFrfZlu+3eolQwrjLYsONSs oYkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773201005; x=1773805805; 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=/ZnXLXreRXZinzOrIobpoU6PRKGdpbBhwYdiapKuqRs=; b=joQnQPi2ZnbdZkH4PtSih6EhO+bL4AOteSnK4i0P3YA6NSM3cBKYKERFCiyTKHwQPM 1hmp3w5OjvovMY9V3eHj1aXjRZZjTGiFGcxM76SuA6WGJpexgNrVtcnFBCAFbpU+LKlD t26lgFh21+OELDDml4uujiBkJQMP3QB82v3PFX2awbe9oYqaHXpQmZdPT5pqqGtK30Sz 6O9ns9XpGUAHejHveuvkT2B2qyWc+64dVZDzvR1OUGM1fh55kcunAv5qcamJvzc3/XTv xt7I9TDTgsXd7kFb0pWpF+L+yWr8iPI0dg8BacYp88rV49coXJGolBKC083LWyYMInTy 4Aqg== X-Gm-Message-State: AOJu0YxheN1uwfp3/jAb8G1KtOrkqEPSBUdRRprJmCv/5R2PgYuiE9Hx DkMNp3CtyBn3ncSjlHLWePw2R6vPJhIBuICB/I3B2PsYgPzR26qz6KA2qyVP8T3T3PHfDw4Ay5E dwIB4KljVLxekAtRmb6FsINTMK2h8aeK5XDixmhNSjT9Vffq80LAH3CJ5fu4EfudQVQ== X-Gm-Gg: ATEYQzy7T3XD7i/msGOW/wnNO4gmmpXvKJpyRjodBRuIh2sxnB0aiGZ49oqZpOHbG7b MZwEExYNZSKR2URBdahkJFiwyfdTqgoJtTNT4ibAwl3V4OvOt5oPgC8G6z28ldMl6xAVypRkk1v TxN2YpTiiApK2o6g7Dk4Q052/pqOBtlBz3M1wqZzzSftVYe2tNt02yiLNHN6oliKhWifCQAhry2 lAF5oyrzAG6BuzsrswKWiZ97Y/GlciqXlDvUS5+PbCNouzFlsAfW/1DzOdAr56bSiG9tm9F0IAk TkC9O19s45f6jMf1iQaHA1SlQHgGmHvNr8JRWZ2sjfeSLLsdiU4psagHZLRcAV2H+Kqat2Ff8SW C6GpFGYRa1W5XEYw6wPxKLjKkGgMzNwBMcfzC2A3+ds775pDsc9iJitResMcSQYyKLWzNvA== X-Received: by 2002:a05:6830:13c2:b0:7d4:8c9d:dd2b with SMTP id 46e09a7af769-7d75989e741mr2357050a34.0.1773201005383; Tue, 10 Mar 2026 20:50:05 -0700 (PDT) X-Received: by 2002:a05:6830:13c2:b0:7d4:8c9d:dd2b with SMTP id 46e09a7af769-7d75989e741mr2357042a34.0.1773201005054; Tue, 10 Mar 2026 20:50: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 v5 30/35] target/hexagon: Add cpu modes, mmu indices, next_PC to state Date: Tue, 10 Mar 2026 20:49:18 -0700 Message-Id: <20260311034923.1044737-31-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> References: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: WzmjJNFBTUG4w7k4slSmNOFXYn8DbWYY X-Proofpoint-GUID: WzmjJNFBTUG4w7k4slSmNOFXYn8DbWYY X-Authority-Analysis: v=2.4 cv=PJECOPqC c=1 sm=1 tr=0 ts=69b0e66e cx=c_pps a=OI0sxtj7PyCX9F1bxD/puw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=6d93uPKVDIcG5a3x7xMA:9 a=QEXdDO2ut3YA:10 a=Z1Yy7GAxqfX1iEi80vsk:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAyOSBTYWx0ZWRfX1R3rwyKWdgoG 2e8E1Pmk7p4JFLPTw6bD/WEDgBXg0a5+L+eVNFmxMxZu3sLJYY+MbWKnsr3tAbYcglh7rYp8l75 nFAA/cBEwxvxQeayd4DKgPdnE5NFb1EDUDDjJ2DFgaQfY4V1ei2RKAs4wwT2rUltPr8GdkOS2vj xulzFAKk/ZnkPB5f+fEWxrHHmlaiJJQ+OLXVUWb0qHQkVOoMRsH/Di7eYA/l4IPlVolQF81H+2d sSu1sOTNTGv+GqSp6GXy4DH8O4NG8Gc7HWzUItquSyvvxYsj7WI5O9SxVpa5dqahB5GaavV2biW NGlSGhg3Lo1jEE0X9IKloeOz59C/k+d40gNp2sQ744RvcZQJoAz1Jv23A3XRKXvr7bAKa4IU3c8 VP5KTwwWWpJNZnetZRC6XC5XuT5uuiLFe2em33MhBLY9FZpcyB5E+Pyw4lirIf0leuXTwrxYPI6 Hqt5W01IFm+v2fXw+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-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 impostorscore=0 malwarescore=0 spamscore=0 phishscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110029 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773201116608154100 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 3562965c88a..9eb2d1bbabe 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 @@ -110,6 +128,7 @@ typedef struct CPUArchState { /* This alias of CPUState.cpu_index is used by imported sources: */ uint32_t threadId; #endif + uint32_t next_PC; target_ulong new_value_usr; =20 MemLog mem_log_stores[STORES_MAX]; diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index dc3bd82bc05..b1317f83ef4 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -310,6 +310,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 8 01:18:42 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=1773201070; cv=none; d=zohomail.com; s=zohoarc; b=b2pzpFcAY9KT6+q7o9SovfnuEFQ9goc01IA5N+bt+Jxd9+BjgfU+lM5tuILm5sPrpQrQ0dvTlxrBW+XxCUyel+gmko0MTStIpyKXQYGSqVl4tih4Rm0lW1BuZLipJHzx5qMxARARvTB48rv8IKMn8kGLXoPul+ERsgDWWCx3B4s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773201070; 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=sW8MW1L/qKJjbx9yOaOHfvrn+R+rAl/S8EvO1XBYITc=; b=DXkTaWF/vPk7a6Ya7fKIAqbFgMcl7o0DEthVfvtyIxZ5wZr+s/9KW3pT1JA4FpPOqXbuTZHztKuAoKLYq1MAW6B6aj5qX8KeBeMvY/mry+DHG8kNT1DdRFyCMQ7xCJ0umuLYn5oDSWCqYfnFegGNyOYSPiRMz80q2niqMSqMU98= 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 1773201070533484.69678138758513; Tue, 10 Mar 2026 20:51:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AaW-0002Ld-Q0; Tue, 10 Mar 2026 23:50:24 -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 1w0AaU-0002E1-8N for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:50:22 -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 1w0AaR-0005ng-9L for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:50:21 -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 62AJ36Wp3893457 for ; Wed, 11 Mar 2026 03:50:08 GMT Received: from mail-ot1-f72.google.com (mail-ot1-f72.google.com [209.85.210.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctkmytyv0-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 03:50:07 +0000 (GMT) Received: by mail-ot1-f72.google.com with SMTP id 46e09a7af769-7d496d080d8so79933156a34.0 for ; Tue, 10 Mar 2026 20:50: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 46e09a7af769-7d76ae39b39sm946430a34.15.2026.03.10.20.50.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 20:50: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= sW8MW1L/qKJjbx9yOaOHfvrn+R+rAl/S8EvO1XBYITc=; b=lqkST0uIk5ZD4CnK YR2agCV8S2mpNvVSSfxluX3WFBeEva0EcDMkBvI+JXTuDOHq/my4go1PFcq1PJe2 N9OIwRMIt7knDrfbB5Cvw/eyXxubH1O0FDJHiHokU1rwNWmv4IQ9V08fffZip3aw kgZ/xGPjKDDukvJJg1I6U25qXm9HnNHMmd89huSWMucUcX4zRZ3gQKw+XyuwjfWt DbaGPsFSkYeflsJMIRgsFQefEK9kIAc4gt/DsjEaMYgN/xHRMrhPwymHAgVxgvoo /AkAgJKCVxANA/jk3pG7h0GcvvtXOkFHYeGrVady9VkwKbwatXvLD3snnK/ByWZe WVXH1A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773201007; x=1773805807; 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=sW8MW1L/qKJjbx9yOaOHfvrn+R+rAl/S8EvO1XBYITc=; b=WdYibOFjMbPruSsHxb8Y3R7HdYAay8DSgB9Xz2u4aIEQdiRhV2To6CJ05VpJcDq4Rb PGUB6jdXxdGCmCtONYHkFjRxzxUTfbJnzuajDC7b4sIp7LVBzDr3S1tQ/OL8Wy7UWkDQ QPO6ULYqi60muj/jJIxCg+lKxL2g8XI++4RM4BIlgF2kyriuhY6r3u/VP8D+e9NWb+Fx 8NaMRaQmay1F7CKKlz+p7kWHJIhb9azyJT/57t2xYCTo0kFe0i4ZMsJD8GA43Ml3xk2U RmiTrjHec3tlACpcx3u9vLNYp7EtpVCV/vwZuRWXsC0jC35SdoLEu6Io/L6xcUc32Ec9 ZgSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773201007; x=1773805807; 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=sW8MW1L/qKJjbx9yOaOHfvrn+R+rAl/S8EvO1XBYITc=; b=sSC86qAn0Wosdj+IWuSvofPCbXpktZaWTSEJKTSMsb/jSooj1j42BU8ylcQCB9frHX Zxl/e2Iqu7Z3+DTU9DV/ItUq9ferWtDaGDnw6/CzTPoYkxvNcD1iT58DUd7qaVj4BhCo PYgd8M4Ias17PyKDWNi7/12YjsL4REOvn3kYA+99T3J5S36339kGSqYT6mnHHqN8NkKc LLdtsdIOG5Pqoy0wP0YnFaIReupZjsx7n63JDpFcS/ESW/eSbLVg3uSfDPR72vIKEr4N 0/mAwZrz4g9RW321bA/uufik2m/MB7Mr4QXA35SI39dQQMeYwgVGk4DTP9zzCyFqoHPL ZxkQ== X-Gm-Message-State: AOJu0Yzh6PF9I+PJnLzbKCRFAocx1uiBMulV0hlWgwkZGr3Ra+i5+MZY qn1FkjoV6za0F11HsKhTL31QdEP56FAILqiMcugjVhn5zRsCGFv7b5vXqAXkt7bquh6VC0iCDgI WA8XQuTrNFGcw6TKaTgJspvsKKh+NxDqA8MA0Gzd4X9IlkvahD+Rlx4owUrl2CH6EaQ== X-Gm-Gg: ATEYQzw6hkXkJSDAq/JC1KyrfK6TNgjk1gb5gBEy7HpDrV7YqtdRvpg8HR95a5g7faY T2XX7UWoANxrGvZtYV2HRSbB+nkJQG33iNNSk9yK4XISFgjaGuymN9j4rZ9kjABSyS9NU+/N6du 4Ovb8TdMf1SbovsBI4V9fkWZHu5hKzSQ5bUcOGBifN1qjCkS/mq4Rf3YWjBrcmWUw0Ef869jDQC f4zjCGwKbHdemoCdMZEUns1/lvEUL17AFkq6Jw+7DhB8Q48THBGc5cZ+ZWxrlkzIWur/mFpYOqD 2ODrvUPdSqKznlqH1AMdXZKR5WFjo+TDqIEUJiB5jh4zBWXu/MEzrgW+jPtm2k3YoU2Wn2IOqVc xdxkhxCkpKEtygg5227Jjbp6qXpYsZOzPHcaJ8a1gn/tghGNlS4dgcqz8A+K+Yyhy77jvcw== X-Received: by 2002:a05:6830:44ab:b0:7d7:57af:4435 with SMTP id 46e09a7af769-7d76a833e5fmr947553a34.30.1773201006752; Tue, 10 Mar 2026 20:50:06 -0700 (PDT) X-Received: by 2002:a05:6830:44ab:b0:7d7:57af:4435 with SMTP id 46e09a7af769-7d76a833e5fmr947536a34.30.1773201006271; Tue, 10 Mar 2026 20:50: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 Subject: [PATCH v5 31/35] hw/hexagon: Introduce hexagon TLB device Date: Tue, 10 Mar 2026 20:49:19 -0700 Message-Id: <20260311034923.1044737-32-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> References: <20260311034923.1044737-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=RYudyltv c=1 sm=1 tr=0 ts=69b0e66f cx=c_pps a=+3WqYijBVYhDct2f5Fivkw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=EUspDBNiAAAA:8 a=pGLkceISAAAA:8 a=sP_loDDXlKxngBex9BIA:9 a=QEXdDO2ut3YA:10 a=eYe2g0i6gJ5uXG_o6N4q:22 X-Proofpoint-GUID: 2aKQeyrgiMZfsav_FxsavuGXeQJqhlxa X-Proofpoint-ORIG-GUID: 2aKQeyrgiMZfsav_FxsavuGXeQJqhlxa X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAyOSBTYWx0ZWRfX+DGt23k9L8RP h9JQqmaOJJwfNBV212rilxRzQBrrb6dNb3d/DA4TWvgnd66Lz+80MJG/G56mMoCJXo1+qcl0lhi kmflaK9xYGA4oqgVbLC1ym8AYUuZi+UCc/V5q1bU5r/kudHZGhg/GPpNUYEON8cdGw0kM2QduP/ x6zLvSddbPlEpJhigMRkci6TnLLFqEnOqfh9VMsDccallq0uIPkE6oknUQ9gGefHM7hD4PIBJJN tBCo2mzasJ+ukU/1n+QwiFuAwTCy+Rot209xHKlNauEW8kcoZOkmI2UXjFQlp6B39RCdxZWVYrQ 9xPKL/6f3oMQX5PxnRx8TzHhTrJtb81Yd8Ur7KBtEopiXb5MPGyNB4C/GWVHT1a22bgVIJNyjve wNB6sKhc4YLD4xDw4d1wSSGJBc2FjZ2GwqrX9zxTP2JNNZDjqxIzgd25IGiEd8Zk67iZ2jwhOJs SdmUKGBoiroQj3tmgLQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 impostorscore=0 malwarescore=0 spamscore=0 phishscore=0 lowpriorityscore=0 clxscore=1015 adultscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110029 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773201072095154100 Add the hexagon TLB QOM device model. Signed-off-by: Brian Cain Reviewed-by: Taylor Simpson --- include/hw/hexagon/hexagon_tlb.h | 45 +++ target/hexagon/cpu.h | 4 + hw/hexagon/hexagon_tlb.c | 463 +++++++++++++++++++++++++++++++ target/hexagon/cpu.c | 5 + 4 files changed, 517 insertions(+) create mode 100644 include/hw/hexagon/hexagon_tlb.h create mode 100644 hw/hexagon/hexagon_tlb.c diff --git a/include/hw/hexagon/hexagon_tlb.h b/include/hw/hexagon/hexagon_= tlb.h new file mode 100644 index 00000000000..bcb387aa24d --- /dev/null +++ b/include/hw/hexagon/hexagon_tlb.h @@ -0,0 +1,45 @@ +/* + * Hexagon TLB QOM Device + * + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HW_HEXAGON_TLB_H +#define HW_HEXAGON_TLB_H + +#include "hw/core/sysbus.h" +#include "qom/object.h" +#include "exec/hwaddr.h" +#include "exec/mmu-access-type.h" +#define TYPE_HEXAGON_TLB "hexagon-tlb" +OBJECT_DECLARE_SIMPLE_TYPE(HexagonTLBState, HEXAGON_TLB) + +struct HexagonTLBState { + SysBusDevice parent_obj; + + uint32_t num_entries; + uint64_t *entries; +}; + +uint64_t hexagon_tlb_read(HexagonTLBState *tlb, uint32_t index); +void hexagon_tlb_write(HexagonTLBState *tlb, uint32_t index, uint64_t valu= e); + +bool hexagon_tlb_find_match(HexagonTLBState *tlb, uint32_t asid, + uint32_t VA, MMUAccessType access_type, + hwaddr *PA, int *prot, uint64_t *size, + int32_t *excp, int *cause_code, int mmu_idx); + +uint32_t hexagon_tlb_lookup(HexagonTLBState *tlb, uint32_t asid, + uint32_t VA, int *cause_code); + +int hexagon_tlb_check_overlap(HexagonTLBState *tlb, uint64_t entry, + uint64_t index); + +void hexagon_tlb_dump(HexagonTLBState *tlb); + +bool hexagon_tlb_dump_entry(FILE *f, uint64_t entry); + +uint32_t hexagon_tlb_get_num_entries(HexagonTLBState *tlb); + +#endif /* HW_HEXAGON_TLB_H */ diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 9eb2d1bbabe..e39e6e39fec 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -46,6 +46,7 @@ #define REG_WRITES_MAX 32 #define PRED_WRITES_MAX 5 /* 4 insns + endloop */ #define VSTORES_MAX 2 +#define MAX_TLB_ENTRIES 1024 =20 #define CPU_RESOLVING_TYPE TYPE_HEXAGON_CPU #ifndef CONFIG_USER_ONLY @@ -174,6 +175,9 @@ struct ArchCPU { bool lldb_compat; target_ulong lldb_stack_adjust; bool short_circuit; +#ifndef CONFIG_USER_ONLY + struct HexagonTLBState *tlb; +#endif }; =20 #include "cpu_bits.h" diff --git a/hw/hexagon/hexagon_tlb.c b/hw/hexagon/hexagon_tlb.c new file mode 100644 index 00000000000..90f319f56d3 --- /dev/null +++ b/hw/hexagon/hexagon_tlb.c @@ -0,0 +1,463 @@ +/* + * Hexagon TLB QOM Device + * + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "qemu/log.h" +#include "hw/hexagon/hexagon_tlb.h" +#include "hw/core/qdev-properties.h" +#include "hw/core/resettable.h" +#include "migration/vmstate.h" +#include "qapi/error.h" +#include "target/hexagon/cpu.h" +#include "target/hexagon/cpu_bits.h" + +/* PTE (TLB entry) field extraction */ +#define GET_PTE_PPD(entry) extract64((entry), 0, 24) +#define GET_PTE_C(entry) extract64((entry), 24, 4) +#define GET_PTE_U(entry) extract64((entry), 28, 1) +#define GET_PTE_R(entry) extract64((entry), 29, 1) +#define GET_PTE_W(entry) extract64((entry), 30, 1) +#define GET_PTE_X(entry) extract64((entry), 31, 1) +#define GET_PTE_VPN(entry) extract64((entry), 32, 20) +#define GET_PTE_ASID(entry) extract64((entry), 52, 7) +#define GET_PTE_ATR0(entry) extract64((entry), 59, 1) +#define GET_PTE_ATR1(entry) extract64((entry), 60, 1) +#define GET_PTE_PA35(entry) extract64((entry), 61, 1) +#define GET_PTE_G(entry) extract64((entry), 62, 1) +#define GET_PTE_V(entry) extract64((entry), 63, 1) + +/* PPD (physical page descriptor) */ +static inline uint64_t GET_PPD(uint64_t entry) +{ + return GET_PTE_PPD(entry) | (GET_PTE_PA35(entry) << 24); +} + +#define NO_ASID (1 << 8) + +typedef enum { + PGSIZE_4K, + PGSIZE_16K, + PGSIZE_64K, + PGSIZE_256K, + PGSIZE_1M, + PGSIZE_4M, + PGSIZE_16M, + PGSIZE_64M, + PGSIZE_256M, + PGSIZE_1G, + NUM_PGSIZE_TYPES +} tlb_pgsize_t; + +static const char *pgsize_str[NUM_PGSIZE_TYPES] =3D { + "4K", + "16K", + "64K", + "256K", + "1M", + "4M", + "16M", + "64M", + "256M", + "1G", +}; + +#define INVALID_MASK 0xffffffffLL + +static const uint64_t encmask_2_mask[] =3D { + 0x0fffLL, /* 4k, 0000 */ + 0x3fffLL, /* 16k, 0001 */ + 0xffffLL, /* 64k, 0010 */ + 0x3ffffLL, /* 256k, 0011 */ + 0xfffffLL, /* 1m, 0100 */ + 0x3fffffLL, /* 4m, 0101 */ + 0xffffffLL, /* 16m, 0110 */ + 0x3ffffffLL, /* 64m, 0111 */ + 0xfffffffLL, /* 256m, 1000 */ + 0x3fffffffLL, /* 1g, 1001 */ + INVALID_MASK, /* RSVD, 0111 */ +}; + +static inline tlb_pgsize_t hex_tlb_pgsize_type(uint64_t entry) +{ + if (entry =3D=3D 0) { + qemu_log_mask(CPU_LOG_MMU, "%s: Supplied TLB entry was 0!\n", + __func__); + return 0; + } + tlb_pgsize_t size =3D ctz64(entry); + g_assert(size < NUM_PGSIZE_TYPES); + return size; +} + +static inline uint64_t hex_tlb_page_size_bytes(uint64_t entry) +{ + return 1ull << (TARGET_PAGE_BITS + 2 * hex_tlb_pgsize_type(entry)); +} + +static inline uint64_t hex_tlb_phys_page_num(uint64_t entry) +{ + uint32_t ppd =3D GET_PPD(entry); + return ppd >> 1; +} + +static inline uint64_t hex_tlb_phys_addr(uint64_t entry) +{ + uint64_t pagemask =3D encmask_2_mask[hex_tlb_pgsize_type(entry)]; + uint64_t pagenum =3D hex_tlb_phys_page_num(entry); + uint64_t PA =3D (pagenum << TARGET_PAGE_BITS) & (~pagemask); + return PA; +} + +static inline uint64_t hex_tlb_virt_addr(uint64_t entry) +{ + return (uint64_t)GET_PTE_VPN(entry) << TARGET_PAGE_BITS; +} + +bool hexagon_tlb_dump_entry(FILE *f, uint64_t entry) +{ + if (GET_PTE_V(entry)) { + fprintf(f, "0x%016" PRIx64 ": ", entry); + uint64_t PA =3D hex_tlb_phys_addr(entry); + uint64_t VA =3D hex_tlb_virt_addr(entry); + fprintf(f, "V:%" PRId64 " G:%" PRId64 + " A1:%" PRId64 " A0:%" PRId64, + GET_PTE_V(entry), + GET_PTE_G(entry), + GET_PTE_ATR1(entry), + GET_PTE_ATR0(entry)); + fprintf(f, " ASID:0x%02" PRIx64 " VA:0x%08" PRIx64, + GET_PTE_ASID(entry), VA); + fprintf(f, + " X:%" PRId64 " W:%" PRId64 " R:%" PRId64 + " U:%" PRId64 " C:%" PRId64, + GET_PTE_X(entry), + GET_PTE_W(entry), + GET_PTE_R(entry), + GET_PTE_U(entry), + GET_PTE_C(entry)); + fprintf(f, " PA:0x%09" PRIx64 " SZ:%s (0x%" PRIx64 ")", PA, + pgsize_str[hex_tlb_pgsize_type(entry)], + hex_tlb_page_size_bytes(entry)); + fprintf(f, "\n"); + return true; + } + + /* Not valid */ + return false; +} + +static inline bool hex_tlb_entry_match_noperm(uint64_t entry, uint32_t asi= d, + uint64_t VA) +{ + if (GET_PTE_V(entry)) { + if (GET_PTE_G(entry)) { + /* Global entry - ignore ASID */ + } else if (asid !=3D NO_ASID) { + uint32_t tlb_asid =3D GET_PTE_ASID(entry); + if (tlb_asid !=3D asid) { + return false; + } + } + + uint64_t page_size =3D hex_tlb_page_size_bytes(entry); + uint64_t page_start =3D + ROUND_DOWN(hex_tlb_virt_addr(entry), page_size); + if (page_start <=3D VA && VA < page_start + page_size) { + return true; + } + } + return false; +} + +static inline void hex_tlb_entry_get_perm(uint64_t entry, + MMUAccessType access_type, + int mmu_idx, int *prot, + int32_t *excp, int *cause_code) +{ + bool perm_x =3D GET_PTE_X(entry); + bool perm_w =3D GET_PTE_W(entry); + bool perm_r =3D GET_PTE_R(entry); + bool perm_u =3D GET_PTE_U(entry); + bool user_idx =3D mmu_idx =3D=3D MMU_USER_IDX; + + if (mmu_idx =3D=3D MMU_KERNEL_IDX) { + *prot =3D PAGE_VALID | PAGE_READ | PAGE_WRITE | PAGE_EXEC; + return; + } + + *prot =3D PAGE_VALID; + switch (access_type) { + case MMU_INST_FETCH: + if (user_idx && !perm_u) { + *excp =3D HEX_EVENT_PRECISE; + *cause_code =3D HEX_CAUSE_FETCH_NO_UPAGE; + } else if (!perm_x) { + *excp =3D HEX_EVENT_PRECISE; + *cause_code =3D HEX_CAUSE_FETCH_NO_XPAGE; + } + break; + case MMU_DATA_LOAD: + if (user_idx && !perm_u) { + *excp =3D HEX_EVENT_PRECISE; + *cause_code =3D HEX_CAUSE_PRIV_NO_UREAD; + } else if (!perm_r) { + *excp =3D HEX_EVENT_PRECISE; + *cause_code =3D HEX_CAUSE_PRIV_NO_READ; + } + break; + case MMU_DATA_STORE: + if (user_idx && !perm_u) { + *excp =3D HEX_EVENT_PRECISE; + *cause_code =3D HEX_CAUSE_PRIV_NO_UWRITE; + } else if (!perm_w) { + *excp =3D HEX_EVENT_PRECISE; + *cause_code =3D HEX_CAUSE_PRIV_NO_WRITE; + } + break; + } + + if (!user_idx || perm_u) { + if (perm_x) { + *prot |=3D PAGE_EXEC; + } + if (perm_r) { + *prot |=3D PAGE_READ; + } + if (perm_w) { + *prot |=3D PAGE_WRITE; + } + } +} + +static inline bool hex_tlb_entry_match(uint64_t entry, uint8_t asid, + uint32_t VA, + MMUAccessType access_type, hwaddr *= PA, + int *prot, uint64_t *size, + int32_t *excp, int *cause_code, + int mmu_idx) +{ + if (hex_tlb_entry_match_noperm(entry, asid, VA)) { + hex_tlb_entry_get_perm(entry, access_type, mmu_idx, prot, excp, + cause_code); + *PA =3D hex_tlb_phys_addr(entry); + *size =3D hex_tlb_page_size_bytes(entry); + return true; + } + return false; +} + +static bool hex_tlb_is_match(uint64_t entry1, uint64_t entry2, + bool consider_gbit) +{ + bool valid1 =3D GET_PTE_V(entry1); + bool valid2 =3D GET_PTE_V(entry2); + uint64_t size1 =3D hex_tlb_page_size_bytes(entry1); + uint64_t vaddr1 =3D ROUND_DOWN(hex_tlb_virt_addr(entry1), size1); + uint64_t size2 =3D hex_tlb_page_size_bytes(entry2); + uint64_t vaddr2 =3D ROUND_DOWN(hex_tlb_virt_addr(entry2), size2); + int asid1 =3D GET_PTE_ASID(entry1); + int asid2 =3D GET_PTE_ASID(entry2); + bool gbit1 =3D GET_PTE_G(entry1); + bool gbit2 =3D GET_PTE_G(entry2); + + if (!valid1 || !valid2) { + return false; + } + + if (((vaddr1 <=3D vaddr2) && (vaddr2 < (vaddr1 + size1))) || + ((vaddr2 <=3D vaddr1) && (vaddr1 < (vaddr2 + size2)))) { + if (asid1 =3D=3D asid2) { + return true; + } + if ((consider_gbit && gbit1) || gbit2) { + return true; + } + } + return false; +} + +/* Public API */ + +uint64_t hexagon_tlb_read(HexagonTLBState *tlb, uint32_t index) +{ + g_assert(index < tlb->num_entries); + return tlb->entries[index]; +} + +void hexagon_tlb_write(HexagonTLBState *tlb, uint32_t index, uint64_t valu= e) +{ + g_assert(index < tlb->num_entries); + tlb->entries[index] =3D value; +} + +bool hexagon_tlb_find_match(HexagonTLBState *tlb, uint32_t asid, + uint32_t VA, MMUAccessType access_type, + hwaddr *PA, int *prot, uint64_t *size, + int32_t *excp, int *cause_code, int mmu_idx) +{ + *PA =3D 0; + *prot =3D 0; + *size =3D 0; + *excp =3D 0; + *cause_code =3D 0; + + for (uint32_t i =3D 0; i < tlb->num_entries; i++) { + if (hex_tlb_entry_match(tlb->entries[i], asid, VA, access_type, + PA, prot, size, excp, cause_code, mmu_idx)= ) { + return true; + } + } + return false; +} + +uint32_t hexagon_tlb_lookup(HexagonTLBState *tlb, uint32_t asid, + uint32_t VA, int *cause_code) +{ + uint32_t not_found =3D 0x80000000; + uint32_t idx =3D not_found; + + for (uint32_t i =3D 0; i < tlb->num_entries; i++) { + uint64_t entry =3D tlb->entries[i]; + if (hex_tlb_entry_match_noperm(entry, asid, VA)) { + if (idx !=3D not_found) { + *cause_code =3D HEX_CAUSE_IMPRECISE_MULTI_TLB_MATCH; + break; + } + idx =3D i; + } + } + + if (idx =3D=3D not_found) { + qemu_log_mask(CPU_LOG_MMU, + "%s: 0x%" PRIx32 ", 0x%08" PRIx32 " =3D> NOT FOUND\n= ", + __func__, asid, VA); + } else { + qemu_log_mask(CPU_LOG_MMU, + "%s: 0x%" PRIx32 ", 0x%08" PRIx32 " =3D> %d\n", + __func__, asid, VA, idx); + } + + return idx; +} + +/* + * Return codes: + * 0 or positive index of match + * -1 multiple matches + * -2 no match + */ +int hexagon_tlb_check_overlap(HexagonTLBState *tlb, uint64_t entry, + uint64_t index) +{ + int matches =3D 0; + int last_match =3D 0; + + for (uint32_t i =3D 0; i < tlb->num_entries; i++) { + if (hex_tlb_is_match(entry, tlb->entries[i], false)) { + matches++; + last_match =3D i; + } + } + + if (matches =3D=3D 1) { + return last_match; + } + if (matches =3D=3D 0) { + return -2; + } + return -1; +} + +void hexagon_tlb_dump(HexagonTLBState *tlb) +{ + for (uint32_t i =3D 0; i < tlb->num_entries; i++) { + hexagon_tlb_dump_entry(stdout, tlb->entries[i]); + } +} + +uint32_t hexagon_tlb_get_num_entries(HexagonTLBState *tlb) +{ + return tlb->num_entries; +} + +/* QOM lifecycle */ + +static void hexagon_tlb_init(Object *obj) +{ +} + +static void hexagon_tlb_realize(DeviceState *dev, Error **errp) +{ + HexagonTLBState *s =3D HEXAGON_TLB(dev); + + if (s->num_entries =3D=3D 0 || s->num_entries > MAX_TLB_ENTRIES) { + error_setg(errp, "Invalid TLB num-entries: %" PRIu32, + s->num_entries); + return; + } + s->entries =3D g_new0(uint64_t, s->num_entries); +} + +static void hexagon_tlb_finalize(Object *obj) +{ + HexagonTLBState *s =3D HEXAGON_TLB(obj); + g_free(s->entries); + s->entries =3D NULL; +} + +static void hexagon_tlb_reset_hold(Object *obj, ResetType type) +{ + HexagonTLBState *s =3D HEXAGON_TLB(obj); + if (s->entries) { + memset(s->entries, 0, sizeof(uint64_t) * s->num_entries); + } +} + +static const VMStateDescription vmstate_hexagon_tlb =3D { + .name =3D "hexagon-tlb", + .version_id =3D 0, + .minimum_version_id =3D 0, + .fields =3D (const VMStateField[]) { + VMSTATE_UINT32(num_entries, HexagonTLBState), + VMSTATE_VARRAY_UINT32_ALLOC(entries, HexagonTLBState, num_entries, + 0, vmstate_info_uint64, uint64_t), + VMSTATE_END_OF_LIST() + }, +}; + +static const Property hexagon_tlb_properties[] =3D { + DEFINE_PROP_UINT32("num-entries", HexagonTLBState, num_entries, + MAX_TLB_ENTRIES), +}; + +static void hexagon_tlb_class_init(ObjectClass *klass, const void *data) +{ + DeviceClass *dc =3D DEVICE_CLASS(klass); + ResettableClass *rc =3D RESETTABLE_CLASS(klass); + + dc->realize =3D hexagon_tlb_realize; + rc->phases.hold =3D hexagon_tlb_reset_hold; + dc->vmsd =3D &vmstate_hexagon_tlb; + dc->user_creatable =3D false; + device_class_set_props(dc, hexagon_tlb_properties); +} + +static const TypeInfo hexagon_tlb_info =3D { + .name =3D TYPE_HEXAGON_TLB, + .parent =3D TYPE_SYS_BUS_DEVICE, + .instance_size =3D sizeof(HexagonTLBState), + .instance_init =3D hexagon_tlb_init, + .instance_finalize =3D hexagon_tlb_finalize, + .class_init =3D hexagon_tlb_class_init, +}; + +static void hexagon_tlb_register_types(void) +{ + type_register_static(&hexagon_tlb_info); +} + +type_init(hexagon_tlb_register_types) diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index b1317f83ef4..32d158684a0 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -23,6 +23,7 @@ #include "qapi/error.h" #include "hw/core/qdev-properties.h" #include "fpu/softfloat-helpers.h" +#include "hw/hexagon/hexagon_tlb.h" #include "tcg/tcg.h" #include "exec/gdbstub.h" #include "accel/tcg/cpu-ops.h" @@ -50,6 +51,10 @@ static ObjectClass *hexagon_cpu_class_by_name(const char= *cpu_model) } =20 static const Property hexagon_cpu_properties[] =3D { +#if !defined(CONFIG_USER_ONLY) + DEFINE_PROP_LINK("tlb", HexagonCPU, tlb, TYPE_HEXAGON_TLB, + HexagonTLBState *), +#endif DEFINE_PROP_BOOL("lldb-compat", HexagonCPU, lldb_compat, false), DEFINE_PROP_UNSIGNED("lldb-stack-adjust", HexagonCPU, lldb_stack_adjus= t, 0, qdev_prop_uint32, target_ulong), --=20 2.34.1 From nobody Wed Apr 8 01:18:42 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=1773201116; cv=none; d=zohomail.com; s=zohoarc; b=QwsvQhMtxq+rEHxh8pnpK1gliVnO3v+Gcwr/zLs/G+anjBEzLzAvLHUVuFwksFT+uiqvlOqj2XikaxhMp0otMTk2dh/o2IbJFutEtkonTFLFImX0N2/co55aYJ9ipV948Bh4Tm+DwXbAnkPiBNbW028pl3kLT0ywIwpbijJPApA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773201116; 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=dZkbCGEE82n37HUmY7NOHqXAn8+Vs0cvdT6iMiBagLw=; b=QCq3+mJYT+YzkLFGLQT+mjjQHaR79jwOZj4jHaMFaTdjpqtx+E/oY8CuEzZoCtLe7/7xQjDM4dYVpNVWbi+kdwSBTxYlElQehlvgr300NvG5ihuuKK4XaU/IWaa4JCb2AW582DTB3w0BkDEtiCv1iMzSeQsdHkYqDjuupBgI3j4= 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 1773201116756394.35599609106487; Tue, 10 Mar 2026 20:51:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AaY-0002Ng-Md; Tue, 10 Mar 2026 23:50:26 -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 1w0AaW-0002L3-Cx for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:50:24 -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 1w0AaT-0005rB-3t for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:50:23 -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 62B2s8uT248601 for ; Wed, 11 Mar 2026 03:50:10 GMT Received: from mail-ot1-f71.google.com (mail-ot1-f71.google.com [209.85.210.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctqv11rcs-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 03:50:10 +0000 (GMT) Received: by mail-ot1-f71.google.com with SMTP id 46e09a7af769-7d740d7e5a3so29720985a34.2 for ; Tue, 10 Mar 2026 20:50:09 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d76ae39b39sm946430a34.15.2026.03.10.20.50.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 20:50: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= dZkbCGEE82n37HUmY7NOHqXAn8+Vs0cvdT6iMiBagLw=; b=LWTPmPSSUl91LdCw CRuZJf6ByJo7Oc5Y5JG4ZRqfsT4E6WIfop+S4jsn8NMwf+j4zTCwINqO4S5l09r+ JNljcFVk8zqzVxh9Iq+zMCUpRW+89KH0RVhJuZI5YviTU4UuVO2yXGSjrc7Gwp+x v5vGQzTUAdTwt2bivN7Mui+rlsAGbsboxvJ5OF743+EEtxg5KMLfh9WIWQXJTvWK vIWrHqiSgR5vXL6RJlt1e4r9gulFsLJbFLCH+1PS8iZfRQ9Uwnp2Nl1dt6zDPUKp ibGYIPnFG8iQ7Hy+ZkfPPA783PKOi7fLqHu773GHCuqzl4n6cwPybIEkcS5BuHEv dRx6Ug== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773201009; x=1773805809; 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=dZkbCGEE82n37HUmY7NOHqXAn8+Vs0cvdT6iMiBagLw=; b=MgXXX4pQ17CiJru21hI1bGXXgDQh+qtb1scbDV6tLwIeaCr/mas4TyGOzP/ZmU/iJ1 ElCz+EydgdTQxINw92yAVRZxf3mjJ8jZlvi6ekYIpweMwKAuAyN+KB0GkZ680Ix+zIoJ 073blhd9RdXgSeN8hUat8nPKRgO8noa503nCQ9dPBSgUaMUccIXCS3CMI1F5WskNS+4H W1UYpvDR54wfeu9nJ5N1dGo9eSlMyKzVJnLMSFyR5lzpMfcDN+v3XU7jSSrOA8LCT63l bB59mNOpUJ4nEMV+HP5LYF76K9scBG1mHYt4nXBbMgTEfrjDVIuUV1LuGNaSrxRp+OMG IdgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773201009; x=1773805809; 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=dZkbCGEE82n37HUmY7NOHqXAn8+Vs0cvdT6iMiBagLw=; b=nI/KOWhDmaFWNOO7g059sbTEFxw8jgnZ3KmuG3SkpyxqNFCa/PrcIWwOYsakre8N5A 7GYCKbvS9hG8mCJNplYLfqXXL3GcE9aiASFFaSHp0ZBAc1eLCMRZ8tEkOgNueXUMPzJ2 whKJS5NDFx3x3J1mc8goGviSHYRF8s8I/sNpc5tGSILTvLSJ8F3itk99PUmLvSm6pRO/ ArUQF9olcX4vMroScJwuBPSpbhRvNaxSKFdlfZN23n9JtZFgQp82GDn3mOkLkic+5dzB eVJghG6+hW4HxqrtssP5refTmQKbsftZ+ruIfkF1UmJ8sBp8Zjl8B2zuQwWs1scOwlNM YIyw== X-Gm-Message-State: AOJu0YyAdml10G1LmgXdqhp4qgDObbmh1x5ONlboWDaVryKPHszI0nG8 b4swJ0ndBtAuh6VCZO52spsG5zd6p2+pUryaayouJKvtfktR4bAv2J9xFFc9WBafCiV8bzJsa6H t8a4EwYhmbjoXsoIsHqgcDY5MVlERHcCCssKSEsDAEU/4XbNLREX69ushXrspqNILJA== X-Gm-Gg: ATEYQzwfH79Mv0nsY9HOjJu7RuDRqIbrpSzwd3vB+qk6Yog1ipGVaRv1zn3YnCgsaGE P2Wy9xBoUKGx2jSyE4KsWf5ugO6DzYF0GHv7FeOZqgj7X6HJN4sx3IOM7tZYDphBDM5VYZu06Tn C0dojh+K7QvNusxj8EfFAmlJMhLqrNqj+fJNcmqJw69WKBe+wU8+/ksDJNEU7kBsCMR0h78tCNJ nwuIUiv0yVwvu/IqTZ79lvSS+QYzdcw299ICtqjof/FxM07MsFpcpxHlk4uumUD8N3mwuCLA1mi XC/1zkRi76uelx+j5J3rYQESGfiopvuBwmJOKx6yUJgka/lkfYfOzMHR63VvzZ+o/Cx9rdOGpCW zV+PfOtm6S2c2W+TazrlltaQYt4rnbMugGbSxHxSwYp1E24u+YJBzpUXkNRUF/jrxpL7hrw== X-Received: by 2002:a05:6830:6c17:b0:7ca:c7a2:c935 with SMTP id 46e09a7af769-7d76a79e74emr933953a34.35.1773201009185; Tue, 10 Mar 2026 20:50:09 -0700 (PDT) X-Received: by 2002:a05:6830:6c17:b0:7ca:c7a2:c935 with SMTP id 46e09a7af769-7d76a79e74emr933903a34.35.1773201007636; Tue, 10 Mar 2026 20:50: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 Subject: [PATCH v5 32/35] target/hexagon: Add stubs for modify_ssr/get_exe_mode Date: Tue, 10 Mar 2026 20:49:20 -0700 Message-Id: <20260311034923.1044737-33-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> References: <20260311034923.1044737-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: AW1haW4tMjYwMzExMDAyOSBTYWx0ZWRfXxxSNxQLvzfrn qEXcS9s1H97s3RqFQm8ryxFHxrtBvJpJlEyGR+9SqXS/ft+NAZyEzcVyktzrFBphEIxYemhPGaN x6Pba5ALwHnwu7Ca9RsXQT6iXfCH4HDfZSUV01/xLjal7shdRJrme89FIhID8drHkFLf2Esz+Ru DhK0z3ZS6a0tMWOxVqWh60/BdAjtd4kWjkhDARZZeN8wxo2qMCVdMP8E50BOcbuBojO+MQC8uv0 +26dWs0NQ6F36cUj0viS5tTQnnEbc4uT8XmtXfVtTwySrVGzNWvq4NMQolrGQqyuXnDPtgnEXUF MlAE1AgAtzKxdYoHRDaaBji1tZ4EX9GGi3pTl4x8dRorvJd59siXhdUt6GDdrBdJQCaiO5xEbUi JZxBEQvRIfFPRBocHhGSiGRmDbafmYjOVTkZb5jeu70u0FwAj1Nymrm6PrJZ9hnZvB3ywUIQTuj J/ABg+7mZmaM7HiD7VA== X-Proofpoint-GUID: Kjee3esQ9WkrMuAJ0caUIk9OGKeic1T_ X-Authority-Analysis: v=2.4 cv=S5vUAYsP c=1 sm=1 tr=0 ts=69b0e672 cx=c_pps a=OI0sxtj7PyCX9F1bxD/puw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=wSQl6HbG2_iCLujeRWoA:9 a=QEXdDO2ut3YA:10 a=Z1Yy7GAxqfX1iEi80vsk:22 X-Proofpoint-ORIG-GUID: Kjee3esQ9WkrMuAJ0caUIk9OGKeic1T_ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 lowpriorityscore=0 clxscore=1015 suspectscore=0 malwarescore=0 adultscore=0 bulkscore=0 spamscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110029 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773201118780154100 Add hex_mmu.[ch], cpu mode helpers, and additional includes/stubs that integrate the TLB device with the CPU model. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu-param.h | 4 + target/hexagon/cpu.h | 17 +++ target/hexagon/cpu_helper.h | 2 + target/hexagon/hex_mmu.h | 25 ++++ target/hexagon/internal.h | 9 ++ target/hexagon/sys_macros.h | 3 + target/hexagon/cpu.c | 25 ++++ target/hexagon/cpu_helper.c | 10 ++ target/hexagon/hex_mmu.c | 277 ++++++++++++++++++++++++++++++++++++ target/hexagon/translate.c | 2 +- 10 files changed, 373 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 e39e6e39fec..d8092cb6fe7 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -38,6 +38,9 @@ #error "Hexagon does not support system emulation" #endif =20 +#ifndef CONFIG_USER_ONLY +#endif + #define NUM_PREGS 4 #define TOTAL_PER_THREAD_REGS 64 =20 @@ -51,6 +54,8 @@ #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 @@ -67,6 +72,12 @@ #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 @@ -128,6 +139,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; #endif uint32_t next_PC; target_ulong new_value_usr; @@ -177,12 +192,14 @@ struct ArchCPU { bool short_circuit; #ifndef CONFIG_USER_ONLY struct HexagonTLBState *tlb; + uint32_t htid; #endif }; =20 #include "cpu_bits.h" =20 FIELD(TB_FLAGS, IS_TIGHT_LOOP, 0, 1) +FIELD(TB_FLAGS, MMU_INDEX, 1, 3) =20 G_NORETURN void hexagon_raise_exception_err(CPUHexagonState *env, uint32_t exception, diff --git a/target/hexagon/cpu_helper.h b/target/hexagon/cpu_helper.h index 1486a03c64a..18300657f3d 100644 --- a/target/hexagon/cpu_helper.h +++ b/target/hexagon/cpu_helper.h @@ -14,5 +14,7 @@ uint32_t hexagon_get_sys_pcycle_count_high(CPUHexagonStat= e *env); void hexagon_set_sys_pcycle_count(CPUHexagonState *env, uint64_t); void hexagon_set_sys_pcycle_count_low(CPUHexagonState *env, uint32_t); void hexagon_set_sys_pcycle_count_high(CPUHexagonState *env, uint32_t); +void hexagon_modify_ssr(CPUHexagonState *env, uint32_t new, uint32_t old); +int get_exe_mode(CPUHexagonState *env); =20 #endif diff --git a/target/hexagon/hex_mmu.h b/target/hexagon/hex_mmu.h new file mode 100644 index 00000000000..99ddb3736a2 --- /dev/null +++ b/target/hexagon/hex_mmu.h @@ -0,0 +1,25 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HEXAGON_MMU_H +#define HEXAGON_MMU_H + +#include "cpu.h" + +extern void hex_tlbw(CPUHexagonState *env, uint32_t index, uint64_t value); +extern uint32_t hex_tlb_lookup(CPUHexagonState *env, uint32_t ssr, uint32_= t VA); +extern void hex_mmu_on(CPUHexagonState *env); +extern void hex_mmu_off(CPUHexagonState *env); +extern void hex_mmu_mode_change(CPUHexagonState *env); +extern bool hex_tlb_find_match(CPUHexagonState *env, uint32_t VA, + MMUAccessType access_type, hwaddr *PA, int = *prot, + uint64_t *size, int32_t *excp, int mmu_idx); +extern int hex_tlb_check_overlap(CPUHexagonState *env, uint64_t entry, + uint64_t index); +extern void hex_tlb_lock(CPUHexagonState *env); +extern void hex_tlb_unlock(CPUHexagonState *env); +void dump_mmu(CPUHexagonState *env); +#endif diff --git a/target/hexagon/internal.h b/target/hexagon/internal.h index 33d73ed18d1..4338914efb5 100644 --- a/target/hexagon/internal.h +++ b/target/hexagon/internal.h @@ -36,6 +36,15 @@ void G_NORETURN do_raise_exception(CPUHexagonState *env, uint32_t PC, uintptr_t retaddr); =20 +#define hexagon_cpu_mmu_enabled(env) ({ \ + HexagonCPU *cpu =3D env_archcpu(env); \ + cpu->globalregs ? \ + GET_SYSCFG_FIELD(SYSCFG_MMUEN, \ + hexagon_globalreg_read(cpu->globalregs, \ + HEX_SREG_SYSCFG, (env)->threadId)) : \ + 0; \ +}) + #ifndef CONFIG_USER_ONLY extern const VMStateDescription vmstate_hexagon_cpu; #endif diff --git a/target/hexagon/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 32d158684a0..5c937fa1cd1 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -27,6 +27,13 @@ #include "tcg/tcg.h" #include "exec/gdbstub.h" #include "accel/tcg/cpu-ops.h" +#include "cpu_helper.h" +#include "hex_mmu.h" + +#ifndef CONFIG_USER_ONLY +#include "sys_macros.h" +#include "accel/tcg/cpu-ldst.h" +#endif =20 static void hexagon_v66_cpu_init(Object *obj) { } static void hexagon_v67_cpu_init(Object *obj) { } @@ -54,6 +61,7 @@ static const Property hexagon_cpu_properties[] =3D { #if !defined(CONFIG_USER_ONLY) DEFINE_PROP_LINK("tlb", HexagonCPU, tlb, TYPE_HEXAGON_TLB, HexagonTLBState *), + DEFINE_PROP_UINT32("htid", HexagonCPU, htid, 0), #endif DEFINE_PROP_BOOL("lldb-compat", HexagonCPU, lldb_compat, false), DEFINE_PROP_UNSIGNED("lldb-stack-adjust", HexagonCPU, lldb_stack_adjus= t, 0, @@ -280,6 +288,13 @@ static TCGTBCPUState hexagon_get_tb_cpu_state(CPUState= *cs) hexagon_raise_exception_err(env, HEX_CAUSE_PC_NOT_ALIGNED, 0); } =20 +#ifndef CONFIG_USER_ONLY + hex_flags =3D FIELD_DP32(hex_flags, TB_FLAGS, MMU_INDEX, + cpu_mmu_index(env_cpu(env), false)); +#else + hex_flags =3D FIELD_DP32(hex_flags, TB_FLAGS, MMU_INDEX, MMU_USER_IDX); +#endif + return (TCGTBCPUState){ .pc =3D pc, .flags =3D hex_flags }; } =20 @@ -297,6 +312,7 @@ static void hexagon_restore_state_to_opc(CPUState *cs, cpu_env(cs)->gpr[HEX_REG_PC] =3D data[0]; } =20 + static void hexagon_cpu_reset_hold(Object *obj, ResetType type) { CPUState *cs =3D CPU(obj); @@ -315,7 +331,15 @@ 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; + + HexagonCPU *cpu =3D HEXAGON_CPU(cs); + env->t_sreg[HEX_SREG_HTID] =3D cpu->htid; + env->threadId =3D cpu->htid; #endif env->cause_code =3D HEX_EVENT_NONE; } @@ -344,6 +368,7 @@ static void hexagon_cpu_realize(DeviceState *dev, Error= **errp) gdb_find_static_feature("hexagon-hvx.xml"), 0= ); =20 qemu_init_vcpu(cs); + cpu_reset(cs); mcc->parent_realize(dev, errp); } diff --git a/target/hexagon/cpu_helper.c b/target/hexagon/cpu_helper.c index b8e0625e3f8..b6a8bd35309 100644 --- a/target/hexagon/cpu_helper.c +++ b/target/hexagon/cpu_helper.c @@ -58,3 +58,13 @@ void hexagon_set_sys_pcycle_count(CPUHexagonState *env, = uint64_t cycles) { g_assert_not_reached(); } + +void hexagon_modify_ssr(CPUHexagonState *env, uint32_t new, uint32_t old) +{ + g_assert_not_reached(); +} + +int get_exe_mode(CPUHexagonState *env) +{ + g_assert_not_reached(); +} diff --git a/target/hexagon/hex_mmu.c b/target/hexagon/hex_mmu.c new file mode 100644 index 00000000000..1cdc92fdc31 --- /dev/null +++ b/target/hexagon/hex_mmu.c @@ -0,0 +1,277 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "qemu/log.h" +#include "qemu/main-loop.h" +#include "qemu/qemu-print.h" +#include "cpu.h" +#include "system/cpus.h" +#include "internal.h" +#include "exec/cpu-interrupt.h" +#include "cpu_helper.h" +#include "exec/cputlb.h" +#include "hex_mmu.h" +#include "macros.h" +#include "sys_macros.h" +#include "hw/hexagon/hexagon_tlb.h" +#include "hw/hexagon/hexagon_globalreg.h" + +static inline void hex_log_tlbw(uint32_t index, uint64_t entry) +{ + if (qemu_loglevel_mask(CPU_LOG_MMU)) { + if (qemu_log_enabled()) { + FILE *logfile =3D qemu_log_trylock(); + if (logfile) { + fprintf(logfile, "tlbw[%03d]: ", index); + if (!hexagon_tlb_dump_entry(logfile, entry)) { + fprintf(logfile, "invalid\n"); + } + qemu_log_unlock(logfile); + } + } + } +} + +void hex_tlbw(CPUHexagonState *env, uint32_t index, uint64_t value) +{ + uint32_t myidx =3D fTLB_NONPOW2WRAP(fTLB_IDXMASK(index)); + HexagonTLBState *tlb =3D env_archcpu(env)->tlb; + uint64_t old_entry =3D hexagon_tlb_read(tlb, myidx); + + bool old_entry_valid =3D extract64(old_entry, 63, 1); + if (old_entry_valid && hexagon_cpu_mmu_enabled(env)) { + CPUState *cs =3D env_cpu(env); + tlb_flush(cs); + } + hexagon_tlb_write(tlb, myidx, value); + hex_log_tlbw(myidx, value); +} + +void hex_mmu_on(CPUHexagonState *env) +{ + CPUState *cs =3D env_cpu(env); + qemu_log_mask(CPU_LOG_MMU, "Hexagon MMU turned on!\n"); + tlb_flush(cs); +} + +void hex_mmu_off(CPUHexagonState *env) +{ + CPUState *cs =3D env_cpu(env); + qemu_log_mask(CPU_LOG_MMU, "Hexagon MMU turned off!\n"); + tlb_flush(cs); +} + +void hex_mmu_mode_change(CPUHexagonState *env) +{ + qemu_log_mask(CPU_LOG_MMU, "Hexagon mode change!\n"); + CPUState *cs =3D env_cpu(env); + tlb_flush(cs); +} + +bool hex_tlb_find_match(CPUHexagonState *env, uint32_t VA, + MMUAccessType access_type, hwaddr *PA, int *prot, + uint64_t *size, int32_t *excp, int mmu_idx) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t ssr =3D env->t_sreg[HEX_SREG_SSR]; + uint8_t asid =3D GET_SSR_FIELD(SSR_ASID, ssr); + int cause_code =3D 0; + + bool found =3D hexagon_tlb_find_match(cpu->tlb, asid, VA, access_type, + PA, prot, size, excp, &cause_code, + mmu_idx); + if (cause_code) { + env->cause_code =3D cause_code; + } + return found; +} + +/* Called from tlbp instruction */ +uint32_t hex_tlb_lookup(CPUHexagonState *env, uint32_t ssr, uint32_t VA) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint8_t asid =3D GET_SSR_FIELD(SSR_ASID, ssr); + int cause_code =3D 0; + + uint32_t result =3D hexagon_tlb_lookup(cpu->tlb, asid, VA, &cause_code= ); + if (cause_code) { + env->cause_code =3D cause_code; + } + return result; +} + +/* + * Return codes: + * 0 or positive index of match + * -1 multiple matches + * -2 no match + */ +int hex_tlb_check_overlap(CPUHexagonState *env, uint64_t entry, uint64_t i= ndex) +{ + HexagonCPU *cpu =3D env_archcpu(env); + return hexagon_tlb_check_overlap(cpu->tlb, entry, index); +} + +void dump_mmu(CPUHexagonState *env) +{ + HexagonCPU *cpu =3D env_archcpu(env); + hexagon_tlb_dump(cpu->tlb); +} + +static inline void print_thread(const char *str, CPUState *cs) +{ + g_assert(bql_locked()); + CPUHexagonState *thread =3D cpu_env(cs); + bool is_stopped =3D cpu_is_stopped(cs); + int exe_mode =3D get_exe_mode(thread); + hex_lock_state_t lock_state =3D thread->tlb_lock_state; + qemu_log_mask(CPU_LOG_MMU, + "%s: threadId =3D %d: %s, exe_mode =3D %s, tlb_lock_state =3D %= s\n", + str, + thread->threadId, + is_stopped ? "stopped" : "running", + exe_mode =3D=3D HEX_EXE_MODE_OFF ? "off" : + exe_mode =3D=3D HEX_EXE_MODE_RUN ? "run" : + exe_mode =3D=3D HEX_EXE_MODE_WAIT ? "wait" : + exe_mode =3D=3D HEX_EXE_MODE_DEBUG ? "debug" : + "unknown", + lock_state =3D=3D HEX_LOCK_UNLOCKED ? "unlocked" : + lock_state =3D=3D HEX_LOCK_WAITING ? "waiting" : + lock_state =3D=3D HEX_LOCK_OWNER ? "owner" : + "unknown"); +} + +static inline void print_thread_states(const char *str) +{ + CPUState *cs; + CPU_FOREACH(cs) { + print_thread(str, cs); + } +} + +void hex_tlb_lock(CPUHexagonState *env) +{ + qemu_log_mask(CPU_LOG_MMU, "hex_tlb_lock: " TARGET_FMT_ld "\n", + env->threadId); + BQL_LOCK_GUARD(); + g_assert((env->tlb_lock_count =3D=3D 0) || (env->tlb_lock_count =3D=3D= 1)); + + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t syscfg =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_SYSCFG, + env->threadId) : 0; + uint8_t tlb_lock =3D GET_SYSCFG_FIELD(SYSCFG_TLBLOCK, syscfg); + if (tlb_lock) { + if (env->tlb_lock_state =3D=3D HEX_LOCK_QUEUED) { + env->next_PC +=3D 4; + env->tlb_lock_count++; + env->tlb_lock_state =3D HEX_LOCK_OWNER; + SET_SYSCFG_FIELD(env, SYSCFG_TLBLOCK, 1); + return; + } + if (env->tlb_lock_state =3D=3D HEX_LOCK_OWNER) { + qemu_log_mask(CPU_LOG_MMU | LOG_GUEST_ERROR, + "Double tlblock at PC: 0x%x, thread may hang\n", + env->next_PC); + env->next_PC +=3D 4; + CPUState *cs =3D env_cpu(env); + cpu_interrupt(cs, CPU_INTERRUPT_HALT); + return; + } + env->tlb_lock_state =3D HEX_LOCK_WAITING; + CPUState *cs =3D env_cpu(env); + cpu_interrupt(cs, CPU_INTERRUPT_HALT); + } else { + env->next_PC +=3D 4; + env->tlb_lock_count++; + env->tlb_lock_state =3D HEX_LOCK_OWNER; + SET_SYSCFG_FIELD(env, SYSCFG_TLBLOCK, 1); + } + + if (qemu_loglevel_mask(CPU_LOG_MMU)) { + qemu_log_mask(CPU_LOG_MMU, "Threads after hex_tlb_lock:\n"); + print_thread_states("\tThread"); + } +} + +void hex_tlb_unlock(CPUHexagonState *env) +{ + BQL_LOCK_GUARD(); + g_assert((env->tlb_lock_count =3D=3D 0) || (env->tlb_lock_count =3D=3D= 1)); + + /* Nothing to do if the TLB isn't locked by this thread */ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t syscfg =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_SYSCFG, + env->threadId) : 0; + uint8_t tlb_lock =3D GET_SYSCFG_FIELD(SYSCFG_TLBLOCK, syscfg); + if ((tlb_lock =3D=3D 0) || + (env->tlb_lock_state !=3D HEX_LOCK_OWNER)) { + qemu_log_mask(LOG_GUEST_ERROR, + "thread %d attempted to tlbunlock without having the= " + "lock, tlb_lock state =3D %d\n", + env->threadId, env->tlb_lock_state); + g_assert(env->tlb_lock_state !=3D HEX_LOCK_WAITING); + return; + } + + env->tlb_lock_count--; + env->tlb_lock_state =3D HEX_LOCK_UNLOCKED; + SET_SYSCFG_FIELD(env, SYSCFG_TLBLOCK, 0); + + /* Look for a thread to unlock */ + unsigned int this_threadId =3D env->threadId; + CPUHexagonState *unlock_thread =3D NULL; + CPUState *cs; + CPU_FOREACH(cs) { + CPUHexagonState *thread =3D cpu_env(cs); + + /* + * The hardware implements round-robin fairness, so we look for th= reads + * starting at env->threadId + 1 and incrementing modulo the numbe= r of + * threads. + * + * To implement this, we check if thread is a earlier in the modulo + * sequence than unlock_thread. + * if unlock thread is higher than this thread + * thread must be between this thread and unlock_thread + * else + * thread higher than this thread is ahead of unlock_thread + * thread must be lower then unlock thread + */ + if (thread->tlb_lock_state =3D=3D HEX_LOCK_WAITING) { + if (!unlock_thread) { + unlock_thread =3D thread; + } else if (unlock_thread->threadId > this_threadId) { + if (this_threadId < thread->threadId && + thread->threadId < unlock_thread->threadId) { + unlock_thread =3D thread; + } + } else { + if (thread->threadId > this_threadId) { + unlock_thread =3D thread; + } + if (thread->threadId < unlock_thread->threadId) { + unlock_thread =3D thread; + } + } + } + } + if (unlock_thread) { + cs =3D env_cpu(unlock_thread); + print_thread("\tWaiting thread found", cs); + unlock_thread->tlb_lock_state =3D HEX_LOCK_QUEUED; + SET_SYSCFG_FIELD(unlock_thread, SYSCFG_TLBLOCK, 1); + cpu_interrupt(cs, CPU_INTERRUPT_TLB_UNLOCK); + } + + if (qemu_loglevel_mask(CPU_LOG_MMU)) { + qemu_log_mask(CPU_LOG_MMU, "Threads after hex_tlb_unlock:\n"); + print_thread_states("\tThread"); + } + +} diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index cd6affa2f49..4df4226cbcb 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -987,7 +987,7 @@ static void hexagon_tr_init_disas_context(DisasContextB= ase *dcbase, HexagonCPU *hex_cpu =3D env_archcpu(cpu_env(cs)); uint32_t hex_flags =3D dcbase->tb->flags; =20 - ctx->mem_idx =3D MMU_USER_IDX; + ctx->mem_idx =3D FIELD_EX32(hex_flags, TB_FLAGS, MMU_INDEX); ctx->num_packets =3D 0; ctx->num_insns =3D 0; ctx->num_hvx_insns =3D 0; --=20 2.34.1 From nobody Wed Apr 8 01:18:42 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=1773201146; cv=none; d=zohomail.com; s=zohoarc; b=hUnOzIlCeb89/dtVQxbGOqymezp+yM3WpSwlMtG9n/GILR+3hyfmtftpK+EohmTkshjAJpGlW6ZPucEOGchCyH/gZnOJGUqgn8I52ORTGpwH1lkx7bwdDXrmRgarWzaBVtasZIJkm0Iiwjep8JDTW+rdBJZQ4XeYiidnSP01ze0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773201146; 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=tJveh2KGypLiC/uLliLXyoDSyHx/mEveAKl7HLv78Ko=; b=dsKQRs7KlUmUuqlpBPBXfNYJJC7X+rWr3Jk2o+OO8Sqe6lH/5eQo9sqO43z3oNVUS56/eXSLaNW1mYVTbivKD5dawPU5iUEmVlkDWpXn1XPg95qvd/eaHP2fGySzdbquPTyZ/ELWfz38yjQUKOHdGVjToQPD52p2qLdGaqNu3Sg= 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 1773201146501588.3791653011149; Tue, 10 Mar 2026 20:52:26 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AaX-0002Mn-Vh; Tue, 10 Mar 2026 23:50:26 -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 1w0AaV-0002KN-Le for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:50: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 1w0AaT-0005rD-Mw for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:50:23 -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 62B2pZl43295832 for ; Wed, 11 Mar 2026 03:50:10 GMT Received: from mail-ot1-f70.google.com (mail-ot1-f70.google.com [209.85.210.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctg1muuyk-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 03:50:10 +0000 (GMT) Received: by mail-ot1-f70.google.com with SMTP id 46e09a7af769-7d73fc43561so27815538a34.0 for ; Tue, 10 Mar 2026 20:50:10 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d76ae39b39sm946430a34.15.2026.03.10.20.50.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 20:50: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= tJveh2KGypLiC/uLliLXyoDSyHx/mEveAKl7HLv78Ko=; b=FKDllY6gvqQPNVQJ QuwMA/bXIfHPomW9NdZxwuQK/Hhe4Yvgc2s8hztbFjTDx7iXPZ6jEXJN+UOOVFEI z84udUpvdy8+X/pqWCIXGAI2YLS6qoMzNByabgWurMhfT+fTUFbHPWfARhNleLrS Z1KqJWtK9A2JgmZ5bMdliRmg3P4grBEo6x+bwZzrrlNK8CzRhadung1fumIpONdF oddWMM+5FAqeZPzat4sENtIC4NDOGNu9QKx5ELQOtZXLXb7HP93Y9l5foDJ8vWFt 6jA59m1/EGD86wq2Q8c291lgqlISyhUkz+iTcHxWu5NfEJ8JIX+443ViJG3mHkHk XHlD+Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773201009; x=1773805809; 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=tJveh2KGypLiC/uLliLXyoDSyHx/mEveAKl7HLv78Ko=; b=CzN/INDBzwq1z4JNkZDinFpAZdrdTvkGuzlryNXFtFKnu2hxXHUfzIncBpQQ85ASqU MKMtufaH99ILhYwqVCasuR0X2ZuaWBtmfF02YpcX1v2J8USEtW6FaktcwNhmOjJi7Kvr yWpxYsiiBYVplgeQGjA/behT6XfVWOIgXOdeDjEtz3QDYil+n3KgOJu7Vf8Qi72TTJ6Y y1btSzt6HUpwaT+EGLExnP/xASXBTMItWpsJKaey7TYyTxugeE63YpXppYV3p8K/W4NF hJLDcaWEnOh7xFVOYC9RF/U1jhXi11GJNt1SY+kCLGKcVVD511zpL5Lw6IIB0aJnKFDE gdwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773201009; x=1773805809; 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=tJveh2KGypLiC/uLliLXyoDSyHx/mEveAKl7HLv78Ko=; b=ZXDoNfqBvD9tixyRJwRqznBQ9e6gXxO7Nz9gHeb3wwj/+ta0JF/KBoUwpsEdMgUNc6 Jq8KE1nYZ7HDEKlIObAMDR4027HROL5sFZBd0jXmmWj6zLYkuCgw6UB59cy9G00O4EGf Fb8YkKkhKV7ZWaBurnACEAM3kTofvy2V13JhUm5Rtidd0ufpwQFw8BKsE+bRPVfmbur4 kajEmblfpBvqURIuG1IFQCZIPUtLsxPzeHPZR7WX4heGRK4cZV+0d3x9q5ZdQVlLeB0q a/u9YDmdcEZ0Mb6xEUEaz+A3FmNIx1kbf95avEbVF5RpZ5x6B5xdjlHiQw7DJIUjH01H 0Vew== X-Gm-Message-State: AOJu0YxhEnONSFoR28cT4AMoJjk6z0AprXLIb5aJHKkYW2iRKsRCSirI DvQ4YL8ZlL2OofMSPcMzFKV1bIgg4v5ioVH6Ezk+lgkEBnzJi+Ssr/RqsHuTzl+ctrR72EK8hoX zzyFrXYWbLCm2OST9T4Q8+Mrj1psZ7Up8ME+JZA3HcHm9JTYj0VS6oaXV97ycIoN8Fg== X-Gm-Gg: ATEYQzxkpZX3lnyWgO+HDkNKtN8my1qKlDDpFW7Qwcm1ADGFZAuJ4rqUa8wGziYjOyK j5urz7dnUXhr0GBnu0RAvHbe5SZF72TmW3YvCKpxtnhMy6jYxzDU1qSfTXqPyWBNCPTWxC1QCcL 4fiTtsPfIWFXIrvOZwvvnoxetp98VoiYbhMGtAIiagH4R2JObeTMlTDm1WFdRfFTTZViKbrOx1z n2+MYH0a9iAFd9KdHCi5ZUAmHBhITA2mAMiTgX0xeWo+vCqJZ9j2L8eAFPb7JujoLOwNsdW5TOW z6Q7nzzF6rOFUKCZXvst/bz2mNK/rBFduR1SHHZP7WxHlsaL8u7FiSJA8xSHuV9B6CbeuIiup1R CS+sRpbMfOJLoKTsyP0o/rfgPrJ6HlCB+o1pwuHnK82XK/DHKvI8COr6pgjqvd0IgngcLng== X-Received: by 2002:a05:6830:6d11:b0:7d7:5d9c:26c0 with SMTP id 46e09a7af769-7d76a5dd99cmr967548a34.11.1773201009683; Tue, 10 Mar 2026 20:50:09 -0700 (PDT) X-Received: by 2002:a05:6830:6d11:b0:7d7:5d9c:26c0 with SMTP id 46e09a7af769-7d76a5dd99cmr967520a34.11.1773201008833; Tue, 10 Mar 2026 20:50: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 v5 33/35] target/hexagon: Add clear_wait_mode() definition Date: Tue, 10 Mar 2026 20:49:21 -0700 Message-Id: <20260311034923.1044737-34-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> References: <20260311034923.1044737-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=YOeSCBGx c=1 sm=1 tr=0 ts=69b0e672 cx=c_pps a=7uPEO8VhqeOX8vTJ3z8K6Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=InO9qlFFT13rIqmD9gwA:9 a=QEXdDO2ut3YA:10 a=EXS-LbY8YePsIyqnH6vw:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: puYvt3ras63eZtwH7JuBVnontA1FXfph X-Proofpoint-GUID: puYvt3ras63eZtwH7JuBVnontA1FXfph X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAyOSBTYWx0ZWRfX1Nc32CmxpjSM pw5YdKqgRCVyy9yWHhRjOhYAyxIsX8XkI8/wkTGLOOjwJrPluwrZ+ZsBvlX6uUdmqBqtTs5AS7z DfqdAe8VQt2/RnM/oYvGBTguDfJFQ1nuyu/AlGc92+chILgw193n9gBgwIlaucNyzzTx8dikQVN Vk+OZ0PWVCq1vgyJYM7jqc/QQSvlb71HSXfGPYGrHvLsdVVKlE8lKCHJ9RSm3qHmVAh0pPric+X vxQPBaA4v6SMI/Gcvh5mqFrlY/dXkW/LY1GHIGaT6Lv0JbK5bkCuOhxLxMxKAxrY3qxIy3pahmx ZS/yXjGbadh9Zwdfp8wepfNwUQ2w2aIl9ciAzV0J+l3gptlCqPv5l0ezJhZ0YqCZYL6ORP74mG4 PIYJDXUOEUumH1pFe5WkkehAYnLJLkklfedZvfWGEmyJKmlVQ5v6grt1kxWCUZdA3VjRcPtNUrX wfvu5hyx6U7SOk/Ycyw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 clxscore=1015 spamscore=0 bulkscore=0 suspectscore=0 priorityscore=1501 malwarescore=0 phishscore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110029 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773201149091154100 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu_helper.h | 1 + target/hexagon/cpu_helper.c | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/target/hexagon/cpu_helper.h b/target/hexagon/cpu_helper.h index 18300657f3d..d15385daf83 100644 --- a/target/hexagon/cpu_helper.h +++ b/target/hexagon/cpu_helper.h @@ -16,5 +16,6 @@ void hexagon_set_sys_pcycle_count_low(CPUHexagonState *en= v, uint32_t); void hexagon_set_sys_pcycle_count_high(CPUHexagonState *env, uint32_t); void hexagon_modify_ssr(CPUHexagonState *env, uint32_t new, uint32_t old); int get_exe_mode(CPUHexagonState *env); +void clear_wait_mode(CPUHexagonState *env); =20 #endif diff --git a/target/hexagon/cpu_helper.c b/target/hexagon/cpu_helper.c index b6a8bd35309..6fbf5fc8e2f 100644 --- a/target/hexagon/cpu_helper.c +++ b/target/hexagon/cpu_helper.c @@ -64,6 +64,21 @@ void hexagon_modify_ssr(CPUHexagonState *env, uint32_t n= ew, uint32_t old) g_assert_not_reached(); } =20 +void clear_wait_mode(CPUHexagonState *env) +{ + g_assert(bql_locked()); + + HexagonCPU *cpu =3D env_archcpu(env); + if (cpu->globalregs) { + const uint32_t modectl =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_MODECTL, + env->threadId); + uint32_t thread_wait_mask =3D GET_FIELD(MODECTL_W, modectl); + thread_wait_mask &=3D ~(0x1 << env->threadId); + SET_SYSTEM_FIELD(env, HEX_SREG_MODECTL, MODECTL_W, thread_wait_mas= k); + } +} + int get_exe_mode(CPUHexagonState *env) { g_assert_not_reached(); --=20 2.34.1 From nobody Wed Apr 8 01:18:42 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=1773201236; cv=none; d=zohomail.com; s=zohoarc; b=Kgjyf6ZMNfDPlOK7XTrUBBqGiWU+QbZpfjCnM2LncuZN7ZGfSQY2hjlfoPCuUQKrblijo/26LnT2UqnP5NfEf0n1DdUFG7E5h5FfMvT1bKrNcNeyvrcPnTCnj/4HsiwqQXF8GBj3Spl2kZdijgAp3ls6YvbYS1Nw/j4pizAfVfA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773201236; 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=JACmdjcE3xS/cqKmX1U+f7IcHwY9huvw5ubnQpozFXAAzd055jK1mQtg4swbde8Cp0a6Is7OsS9d1eKEwYUPfD+CWbJGC+UsM/9lewewb9GA0mPVfJt1uWo9ZO08lF5Kogav0+dUg/AkuCc/800Bmu01fstm9rVpI3K9vL+xnFA= 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 1773201236862255.14333934501394; Tue, 10 Mar 2026 20:53:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AaZ-0002PU-OY; Tue, 10 Mar 2026 23:50: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 1w0AaW-0002L5-Fp for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:50:24 -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 1w0AaU-0005rP-CP for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:50:23 -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 62B2SDb82179907 for ; Wed, 11 Mar 2026 03:50:11 GMT Received: from mail-ot1-f70.google.com (mail-ot1-f70.google.com [209.85.210.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctqvsss1f-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 03:50:11 +0000 (GMT) Received: by mail-ot1-f70.google.com with SMTP id 46e09a7af769-7d73c71f9faso29749493a34.3 for ; Tue, 10 Mar 2026 20:50:11 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d76ae39b39sm946430a34.15.2026.03.10.20.50.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 20:50: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= 6ZZDuz6n4mV1vg7UyXtzywWZTFyf36zcYE/3mP+wDMo=; b=MAZyH1wSSTFt64sQ b5Wv5kOOwMw6jvt3BI3WF38SrFdmqoeROiYUM0O1UmNDklvT1q6fVJ4rtGzHbrip 6mJQmL+b25zxAE9au4O4Mn1N5hYknbom+z9jf5h/ddyT/0gQTu13pR2FXhOZW+4M qlyDJ/eBBXVj/MWW5vEaHwfH3FdX6hFhI/EvR3v6VKinxv4n6PMPFlsESyWrqnJu Q2CQNaGUMh+aF51VteX52+S7bVmVvxyIJMMvxmI+FxyfLTWUydqeYnft5NAzGRE9 x5GDQxPt0qrL8SIKQvYlP+cJssOPwy7NVckrG+XkpBm9aUpPk03YrQtmVSh48HSh 77caZQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773201010; x=1773805810; 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=PNxz5lo69QA8Q0cKUc678rBm7xN2s/Pm3QmTEhqtogzcWxRYe0GXzMjyVZ6jkNQsa/ v+cLD0mHO3NiYwokhgbWkfUMPPkXL39g/XldCHfPV3DVTCYHkcn6QGPhpDyu7nCXw+P3 O/Tr9t09ygeUT7aUd0BPw0w+giazG1TbZlDY3trcDAUEMmId1eA5v5y2M2SWiZMkg5u5 2fJIuUG4bVGd6O1PHQRO94GoTegFDeQyBjo8MOIVllxo0h7aweVccBY0Q0S+cN/di71y vIvss8+QDsBPDm/VtBw6+cRLcgplK3YvvOZow1LOhMxCYwjLoxvdUuei+YuAFDa4KSyE s9Hg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773201010; x=1773805810; 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=DMxKwtoXkp/13VY/z6gb1HQ2XacTDtrEJwlwUONybmboiEBe45MAZdgvNtDisDwG+i 0I4HDCk9iMywrBcKNlCjhgewi8EkkmotvKCN7a9cidqj6HBvS76qTFlTiOCwgrHY34a3 YBlxR7EcJM9GHnczc1QPG0uX0csZoNFoyJsHPdQCPpuuAfLOiAfKeeKvNUd5VSu+6KHx Cue7AIX49ZzPwDB0dipntv3MhPYNAU2VzrPpz8NWm0RsZdKjL2A5bY9s+cXCMLf4kh2P WfbwlIo25RtDvvvDmi9gQk/U6diluMTcG6MJjwAEA0ChmRVNPZJZbowS4ArAnSkx4U6f klcg== X-Gm-Message-State: AOJu0Yxk9KYf2D5Y5pAAhz4yR6NNgJW8jHc6XT8cL1xQFuDhqcOA4EtG ngdhWb10x46hY/X1yOWa56S9H3toYK2ZU0mOe6VF4nmEQCIfkM69FrVUGyGEV0yPd/qp8VgDmue mRGMrLjhNf511H0BiQOLGNralJOtiQEBx7+00jym98vNylBsYomi4WakBIrFTYRnTPg== X-Gm-Gg: ATEYQzxIhx7nr8QYPoj8Yo+e5eqh8PguaVGzPu3dHXrLtOAlcH864WrKO+C1Q2+sTaf vKIhOUO1d8q+UriS03cvXExDZUYwsR1NHVVBj2GXm6aJWJ/M1Ebo6VncDkZcK2Ob2MtDMh3KTyh YSQVK4OtopvwZ3+voZfWLZQ1xmhFEdN+QeV0B+cxVRehi9AUAIOmvS+GKyhGjL3tEqAmcAEZzaR rS8Ke6ktkhsbkYEIUx32iYurT3aqxBP9B2sS/s0W7qyxDskPkuDWGljINXteN+JYMd6yPSup9nS GlzHpbYmN+BxfOyZGxnAOQc4Z+6EMb/1Xj3jB1K474EjC05oetknjGfYqB2Oy0kFdncqW7DlF66 9pXAf+KtsQ4g95k9us1K/ye+ESqs9u+PtxFwBOLB/EuTVmO9EEvaqvdlKM30A28cfd341VQ== X-Received: by 2002:a05:6830:828d:b0:7d5:96a3:f7a5 with SMTP id 46e09a7af769-7d76a6887b4mr1060161a34.18.1773201010513; Tue, 10 Mar 2026 20:50:10 -0700 (PDT) X-Received: by 2002:a05:6830:828d:b0:7d5:96a3:f7a5 with SMTP id 46e09a7af769-7d76a6887b4mr1060152a34.18.1773201010225; Tue, 10 Mar 2026 20:50: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 v5 34/35] target/hexagon: Define f{S,G}ET_FIELD macros Date: Tue, 10 Mar 2026 20:49:22 -0700 Message-Id: <20260311034923.1044737-35-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> References: <20260311034923.1044737-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: AW1haW4tMjYwMzExMDAyOSBTYWx0ZWRfXw8BFzZ9zx6z+ dXzu8yZwCH/aRE0vVMI3cYuLFm5V1RUdxgQWGrklwmXVHs1Bsm8yKHrsf2VY9ySdg/ExDrgzTaN YjcMN6Zu1f0j7EK40ltDoIMORplIHqbQY5OfKieHLAtCz1TEXevjmnIlZ/5HLvrDZu8w42RYNEW RQrDNZkpYnjUFNQE4B7fujxqIcMCuNQFEGkfEPZFfrPHxny7/a0I/43NUdVvb7pAKwOiS/Iy13o jyR0dX6cqjkOzPBsj3yyqkoFq6iQ3GrwhxrY4ul/M0qQi2o1owDSglwelMeZ+eBY2h/bmX2T9wk 1F6e50kmEqoPrH2XnC/9v7+trNG5HHMewmCAphTqf9CoGaTNB1dPqVdZkWI6dK2F55KfAQ2T500 d4u9PQY8QNENfw0aMGFs1waDcfpRiySgFvhhJLcXTJuiGC0x5fQAuWcJB0giDlFeT0Ha4KQs8TW jnYJbFuXZrgX0kr7/hA== X-Proofpoint-ORIG-GUID: cOXrE3jxfSuhxjyH3dDD-5KY0MtN8cdh X-Authority-Analysis: v=2.4 cv=Lo2fC3dc c=1 sm=1 tr=0 ts=69b0e673 cx=c_pps a=7uPEO8VhqeOX8vTJ3z8K6Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=OC-ZKJ6AczBSh3OnBRYA:9 a=QEXdDO2ut3YA:10 a=EXS-LbY8YePsIyqnH6vw:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: cOXrE3jxfSuhxjyH3dDD-5KY0MtN8cdh X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 clxscore=1015 impostorscore=0 bulkscore=0 malwarescore=0 phishscore=0 lowpriorityscore=0 adultscore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110029 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773201237455158500 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 8 01:18:42 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=1773201160; cv=none; d=zohomail.com; s=zohoarc; b=dyr8YRykmyd5Vxp/T5RaYWqbibzxDc67gTPvgoZ7jh82zHrBzlsQY/iJUSiTG9qXHMdoebwKlDDYyQpnGfe8Qh4cR/6I5FNh4DQOWz+OvMDFGohgOw2Zo5beqtqewvTG0IGyrCx/KarFknMdPLsgSK2bixrK0aKlGPE3qXple0M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773201160; 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=P960Aj+YzPqe0+w+nYrgmvQVKhgR7nVEIv2EF4vRAaY=; b=W3ohOCm16/ZBADkshhcPMI29ZJCGqFng8/e9QJf8o/JaqQTRXIb9iTgHZ6fqjPdymDn/TZL/NiOnZ1m3ZgDRkQ/I//WBqzqTntCHXGyfisc0hh3T4Mitn6X+48f/JToJTImzgFxH7RneZJWtIXgRh05aPn2awzbfA6kbHZFu/1I= 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 1773201160190843.9212975211428; Tue, 10 Mar 2026 20:52:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0Aad-0002fg-Co; Tue, 10 Mar 2026 23:50: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 1w0AaZ-0002P0-7f for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:50:27 -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 1w0AaW-0005rb-Mu for qemu-devel@nongnu.org; Tue, 10 Mar 2026 23:50:26 -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 62AJ18dZ304483 for ; Wed, 11 Mar 2026 03:50:13 GMT Received: from mail-ot1-f72.google.com (mail-ot1-f72.google.com [209.85.210.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cthjf3h5j-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 03:50:13 +0000 (GMT) Received: by mail-ot1-f72.google.com with SMTP id 46e09a7af769-7d7510702e6so19079717a34.3 for ; Tue, 10 Mar 2026 20:50:12 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d76ae39b39sm946430a34.15.2026.03.10.20.50.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 20:50: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= P960Aj+YzPqe0+w+nYrgmvQVKhgR7nVEIv2EF4vRAaY=; b=DWfDsPYaiwQwrHZh Wjey/VfC3Gy0bmXnWNRoZs8x1uzBZq1b+3qQk4bROVLl57suSdxv12D709xDm2BR +ZtiooSXwVd9pS5TtH3LshxQznUr38mYNKZ/Agkm1HKhEWlu2aQcocEILJpSdPWv wxOuXILj/ngL+R2VL+CJ2AQeR3c+oYuj17hcMX/DNTlQZYHBuBlDgAq1xdu8wDhn SN6sqGl1HEs4DqVtzEah6tTvvxD2+lFbSEw40kf58Dr6o3A1LjuSfg8xEublZv1m BfUekVQv1ngfAlXW8sEV3MlW8t5bj+PAu4Ul5Ea1ENokSurABzvC5l9LmN1adJNi WBdIsQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773201012; x=1773805812; 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=P960Aj+YzPqe0+w+nYrgmvQVKhgR7nVEIv2EF4vRAaY=; b=cM/v8Hio51DhfFffDFNW3n2QiEr1GSisb/2/JszVJ2+EH0IbhIEfLHejKe4LaRfNlo z/c8WI1ZPdiQWZkfmr0U8LioOTmp56z9vi5qZCRDYGcwSD89aGpJilne60/nt5UUTxjH 5zrrWCQiLZ5zjrUJqjRPkr516tOGwQLriCoGf2xiF34UyvguZy1eH/vCu7NQwtZWemfk T0H5Kvp8L47iWhZO67sN9ebhUF0dQ93RGcYzjOeUrxWj1PvjY75a4BzzwPubwGmX9ZUf ZbJpMkV579inU6s0LqNPwcg9LJ3ndskMqJTuRTvU58mKnTMsZqiwb3K6wRC4hp6oeqlT VXsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773201012; x=1773805812; 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=P960Aj+YzPqe0+w+nYrgmvQVKhgR7nVEIv2EF4vRAaY=; b=fcqlounEkX0ORljcEbY6oqkMyk89A07ExoDVQucfZTETeu9T/Ou/XcMkKCUQ4pyRiK pf+jVWmmERMzpBztVnkvA8wTI2nxg1LACFqln6Qhm8zp/9dKsTl28pHhzi6LlVR/4++b ftRVSvb47lcn33mkSudY30aFyg9dVfw9wSrTFXpvZpUJJ9WeIzXfOUIHihRxOpIcRWhN UZ1jEpJodRFFL3VsNelmtawvFQwDq6m3gjYmHD88JybxW9Pbq4catn9t2MxRpJatu2sZ fYdWZcWzTVbgUSHl4AMcJcb6U7aRUPlB0PNpZDp7zJhPmu/mUAODpHfX2FoPvPjDx6V9 4uag== X-Gm-Message-State: AOJu0Yzw362e9ucvv8kfhxWT96aIACnz6sKgoXmqUws8RSAd9dfdfe4M MZ1MVc5TzfxrnsEFYNr1329GeCSsNATQISTdLb+JsvncEYsVTrn6wq8lrrHpJXmJ3jh3r3RDnxH SEfD66TObN1vit0w8k1h/ylLXRugKpzONPCXpf3+9N+KflirH3iBi+OcfNStMfNPsww== X-Gm-Gg: ATEYQzzU7U5YTlzzmYHS19kQSkQJETWpvoo4bU1uzie/cziZyQAlG4TCro94iwWrtCd TESEArZoohkxMEwg3wCqsuZlIEINdm388Czvsy8A7Z/DV8wnK6dHg0AoVV2zSAdldAKKkNYr2sV 0929jQ6A0QzBLMUTNub0HtbhExOx53Nxraq3Xby6O05VKxfKAaLwcAfpuWJXzsvGZJqsH6MIb9S LATSO9bilbAy47ADMygyGuGOo5lwlI/1TQTz29pI7AVydmRYKGOGy13O2qfZPl8Xv32S+ot0Fb/ VZbAadD9s+Bs/eOMxV3v0j0MSmWD6vLWQkaWRdn5l6Ssr48T6O76+kcmUDXBOulr30LDPXib9g+ sQaGLHEGTCDiuBdl0KU0pC2zdY7T1eC31m5HXEJYNn868FDsBeL/w6vIeDuhViuC+sAEhGA== X-Received: by 2002:a05:6830:6f8a:b0:7d7:39a9:4c32 with SMTP id 46e09a7af769-7d76a6b276cmr1130282a34.3.1773201011980; Tue, 10 Mar 2026 20:50:11 -0700 (PDT) X-Received: by 2002:a05:6830:6f8a:b0:7d7:39a9:4c32 with SMTP id 46e09a7af769-7d76a6b276cmr1130253a34.3.1773201011545; Tue, 10 Mar 2026 20:50: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 , Michael Lambert Subject: [PATCH v5 35/35] target/hexagon: Add hex_interrupts support Date: Tue, 10 Mar 2026 20:49:23 -0700 Message-Id: <20260311034923.1044737-36-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311034923.1044737-1-brian.cain@oss.qualcomm.com> References: <20260311034923.1044737-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: kyw1peMTUN8Jri0tsWHiHo34aBlFrVZg X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAyOSBTYWx0ZWRfX7qsSx19D1W4N cz+EC7AaIquWotUXMMz+akAdJsnyWDnCOn9Oo0jbIw4JQss/b5BZ3EFYPXraCs819kIZPCbOK8v ZLQ1NkncE+Sqjkf9Wj/yHwyLc4CqQg50d5DOafMkNfkVwq9TTCd7FgrE1OlrmvHiHdNJtN2AYW0 7v7D3pjOWiaEoZlcnnHwoOqaVeZDhuoF7qoKLzIrHIMchC4bCluYjdjInfPdrSKD11XMMzpbTwb WUwgl+XKR3PqTU7ZHDWOp3wg3umhL5pG0tdBs2bAhuCEgh0vs9m54cBIPOt2RhOVmKOlSYfaOMR 4AAh0aDgNp1Eelk2r2cYAApR4LIOnfN7QXUPdSVnEblCAlVoI8KaDtWIbZVkUnL/krOheFeDKcO eZMh1+6f83QR2st5W1Q4eRjTcBB0tuqemK+Ts20HKChZTpvMfSZgpULiGbPRmTdbsA+X7G3luQm E/HxDbgvPVFjhoiZ93g== X-Authority-Analysis: v=2.4 cv=A71h/qWG c=1 sm=1 tr=0 ts=69b0e675 cx=c_pps a=+3WqYijBVYhDct2f5Fivkw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=Wgxd2PEYNp06QwGkU4EA:9 a=QEXdDO2ut3YA:10 a=O8hF6Hzn-FEA:10 a=eYe2g0i6gJ5uXG_o6N4q:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: kyw1peMTUN8Jri0tsWHiHo34aBlFrVZg X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 phishscore=0 clxscore=1015 suspectscore=0 bulkscore=0 adultscore=0 spamscore=0 lowpriorityscore=0 priorityscore=1501 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110029 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773201175982158500 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 | 375 ++++++++++++++++++++++++++++++++ 4 files changed, 396 insertions(+) create mode 100644 target/hexagon/hex_interrupts.h create mode 100644 target/hexagon/hex_interrupts.c diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index d8092cb6fe7..0017be9dff7 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -192,6 +192,8 @@ struct ArchCPU { bool short_circuit; #ifndef CONFIG_USER_ONLY struct HexagonTLBState *tlb; + uint32_t boot_addr; + struct HexagonGlobalRegState *globalregs; uint32_t htid; #endif }; diff --git a/target/hexagon/hex_interrupts.h b/target/hexagon/hex_interrupt= s.h new file mode 100644 index 00000000000..6b6f5403633 --- /dev/null +++ b/target/hexagon/hex_interrupts.h @@ -0,0 +1,15 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HEX_INTERRUPTS_H +#define HEX_INTERRUPTS_H + +bool hex_check_interrupts(CPUHexagonState *env); +void hex_clear_interrupts(CPUHexagonState *env, uint32_t mask, uint32_t ty= pe); +void hex_raise_interrupts(CPUHexagonState *env, uint32_t mask, uint32_t ty= pe); +void hex_interrupt_update(CPUHexagonState *env); + +#endif diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 5c937fa1cd1..938492897fd 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -61,6 +61,9 @@ static const Property hexagon_cpu_properties[] =3D { #if !defined(CONFIG_USER_ONLY) DEFINE_PROP_LINK("tlb", HexagonCPU, tlb, TYPE_HEXAGON_TLB, HexagonTLBState *), + DEFINE_PROP_UINT32("exec-start-addr", HexagonCPU, boot_addr, 0xfffffff= f), + DEFINE_PROP_LINK("global-regs", HexagonCPU, globalregs, + TYPE_HEXAGON_GLOBALREG, HexagonGlobalRegState *), DEFINE_PROP_UINT32("htid", HexagonCPU, htid, 0), #endif DEFINE_PROP_BOOL("lldb-compat", HexagonCPU, lldb_compat, false), @@ -340,6 +343,7 @@ static void hexagon_cpu_reset_hold(Object *obj, ResetTy= pe type) HexagonCPU *cpu =3D HEXAGON_CPU(cs); env->t_sreg[HEX_SREG_HTID] =3D cpu->htid; env->threadId =3D cpu->htid; + env->gpr[HEX_REG_PC] =3D cpu->boot_addr; #endif env->cause_code =3D HEX_EVENT_NONE; } diff --git a/target/hexagon/hex_interrupts.c b/target/hexagon/hex_interrupt= s.c new file mode 100644 index 00000000000..f1be67d5116 --- /dev/null +++ b/target/hexagon/hex_interrupts.c @@ -0,0 +1,375 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "qemu/log.h" +#include "qemu/main-loop.h" +#include "cpu.h" +#include "cpu_helper.h" +#include "exec/cpu-interrupt.h" +#include "hex_interrupts.h" +#include "macros.h" +#include "sys_macros.h" +#include "system/cpus.h" +#include "hw/hexagon/hexagon_globalreg.h" + +static bool hex_is_qualified_for_int(CPUHexagonState *env, int int_num); + +static bool get_syscfg_gie(CPUHexagonState *env) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t syscfg =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_SYSCFG, + env->threadId) : 0; + return GET_SYSCFG_FIELD(SYSCFG_GIE, syscfg); +} + +static bool get_ssr_ex(CPUHexagonState *env) +{ + uint32_t ssr =3D env->t_sreg[HEX_SREG_SSR]; + return GET_SSR_FIELD(SSR_EX, ssr); +} + +static bool get_ssr_ie(CPUHexagonState *env) +{ + uint32_t ssr =3D env->t_sreg[HEX_SREG_SSR]; + return GET_SSR_FIELD(SSR_IE, ssr); +} + +/* Do these together so we only have to call hexagon_modify_ssr once */ +static void set_ssr_ex_cause(CPUHexagonState *env, int ex, uint32_t cause) +{ + uint32_t old =3D env->t_sreg[HEX_SREG_SSR]; + SET_SYSTEM_FIELD(env, HEX_SREG_SSR, SSR_EX, ex); + SET_SYSTEM_FIELD(env, HEX_SREG_SSR, SSR_CAUSE, cause); + uint32_t new =3D env->t_sreg[HEX_SREG_SSR]; + hexagon_modify_ssr(env, new, old); +} + +static bool get_iad_bit(CPUHexagonState *env, int int_num) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t ipendad =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_IPENDAD, + env->threadId) : 0; + uint32_t iad =3D GET_FIELD(IPENDAD_IAD, ipendad); + return extract32(iad, int_num, 1); +} + +static void set_iad_bit(CPUHexagonState *env, int int_num, int val) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t ipendad =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_IPENDAD, + env->threadId) : 0; + uint32_t iad =3D GET_FIELD(IPENDAD_IAD, ipendad); + iad =3D deposit32(iad, int_num, 1, val); + fSET_FIELD(ipendad, IPENDAD_IAD, iad); + if (cpu->globalregs) { + hexagon_globalreg_write(cpu->globalregs, HEX_SREG_IPENDAD, + ipendad, env->threadId); + } +} + +static uint32_t get_ipend(CPUHexagonState *env) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t ipendad =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_IPENDAD, + env->threadId) : 0; + return GET_FIELD(IPENDAD_IPEND, ipendad); +} + +static inline bool get_ipend_bit(CPUHexagonState *env, int int_num) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t ipendad =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_IPENDAD, + env->threadId) : 0; + uint32_t ipend =3D GET_FIELD(IPENDAD_IPEND, ipendad); + return extract32(ipend, int_num, 1); +} + +static void clear_ipend(CPUHexagonState *env, uint32_t mask) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t ipendad =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_IPENDAD, + env->threadId) : 0; + uint32_t ipend =3D GET_FIELD(IPENDAD_IPEND, ipendad); + ipend &=3D ~mask; + fSET_FIELD(ipendad, IPENDAD_IPEND, ipend); + if (cpu->globalregs) { + hexagon_globalreg_write(cpu->globalregs, HEX_SREG_IPENDAD, + ipendad, env->threadId); + } +} + +static void set_ipend(CPUHexagonState *env, uint32_t mask) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t ipendad =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_IPENDAD, + env->threadId) : 0; + uint32_t ipend =3D GET_FIELD(IPENDAD_IPEND, ipendad); + ipend |=3D mask; + fSET_FIELD(ipendad, IPENDAD_IPEND, ipend); + if (cpu->globalregs) { + hexagon_globalreg_write(cpu->globalregs, HEX_SREG_IPENDAD, + ipendad, env->threadId); + } +} + +static void set_ipend_bit(CPUHexagonState *env, int int_num, int val) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t ipendad =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_IPENDAD, + env->threadId) : 0; + uint32_t ipend =3D GET_FIELD(IPENDAD_IPEND, ipendad); + ipend =3D deposit32(ipend, int_num, 1, val); + fSET_FIELD(ipendad, IPENDAD_IPEND, ipend); + if (cpu->globalregs) { + hexagon_globalreg_write(cpu->globalregs, HEX_SREG_IPENDAD, + ipendad, env->threadId); + } +} + +static bool get_imask_bit(CPUHexagonState *env, int int_num) +{ + uint32_t imask =3D env->t_sreg[HEX_SREG_IMASK]; + return extract32(imask, int_num, 1); +} + +static uint32_t get_prio(CPUHexagonState *env) +{ + uint32_t stid =3D env->t_sreg[HEX_SREG_STID]; + return extract32(stid, reg_field_info[STID_PRIO].offset, + reg_field_info[STID_PRIO].width); +} + +static void set_elr(CPUHexagonState *env, uint32_t val) +{ + env->t_sreg[HEX_SREG_ELR] =3D val; +} + +static bool get_schedcfgen(CPUHexagonState *env) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t schedcfg =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_SCHEDCFG, + env->threadId) : 0; + return extract32(schedcfg, reg_field_info[SCHEDCFG_EN].offset, + reg_field_info[SCHEDCFG_EN].width); +} + +static bool is_lowest_prio(CPUHexagonState *env, int int_num) +{ + uint32_t my_prio =3D get_prio(env); + CPUState *cs; + + CPU_FOREACH(cs) { + CPUHexagonState *hex_env =3D cpu_env(cs); + if (!hex_is_qualified_for_int(hex_env, int_num)) { + continue; + } + + /* Note that lower values indicate *higher* priority */ + if (my_prio < get_prio(hex_env)) { + return false; + } + } + return true; +} + +static bool hex_is_qualified_for_int(CPUHexagonState *env, int int_num) +{ + bool syscfg_gie =3D get_syscfg_gie(env); + bool iad =3D get_iad_bit(env, int_num); + bool ssr_ie =3D get_ssr_ie(env); + bool ssr_ex =3D get_ssr_ex(env); + bool imask =3D get_imask_bit(env, int_num); + + return syscfg_gie && !iad && ssr_ie && !ssr_ex && !imask; +} + +static void clear_pending_locks(CPUHexagonState *env) +{ + g_assert(bql_locked()); + if (env->k0_lock_state =3D=3D HEX_LOCK_WAITING) { + env->k0_lock_state =3D HEX_LOCK_UNLOCKED; + } + if (env->tlb_lock_state =3D=3D HEX_LOCK_WAITING) { + env->tlb_lock_state =3D HEX_LOCK_UNLOCKED; + } +} + +static bool should_not_exec(CPUHexagonState *env) +{ + return (get_exe_mode(env) =3D=3D HEX_EXE_MODE_WAIT); +} + +static void restore_state(CPUHexagonState *env, bool int_accepted) +{ + CPUState *cs =3D env_cpu(env); + cpu_reset_interrupt(cs, CPU_INTERRUPT_HARD | CPU_INTERRUPT_SWI); + if (!int_accepted && should_not_exec(env)) { + cpu_interrupt(cs, CPU_INTERRUPT_HALT); + } +} + +static void hex_accept_int(CPUHexagonState *env, int int_num) +{ + CPUState *cs =3D env_cpu(env); + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t evb =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_EVB, + env->threadId) : 0; + const int exe_mode =3D get_exe_mode(env); + const bool in_wait_mode =3D exe_mode =3D=3D HEX_EXE_MODE_WAIT; + + set_ipend_bit(env, int_num, 0); + set_iad_bit(env, int_num, 1); + set_ssr_ex_cause(env, 1, HEX_CAUSE_INT0 | int_num); + cs->exception_index =3D HEX_EVENT_INT0 + int_num; + env->cause_code =3D HEX_EVENT_INT0 + int_num; + clear_pending_locks(env); + if (in_wait_mode) { + qemu_log_mask(CPU_LOG_INT, + "%s: thread " TARGET_FMT_ld " resuming, exiting WAIT mode\n", + __func__, env->threadId); + set_elr(env, env->wait_next_pc); + clear_wait_mode(env); + cs->halted =3D false; + } else if (env->k0_lock_state =3D=3D HEX_LOCK_WAITING) { + g_assert_not_reached(); + } else { + set_elr(env, env->gpr[HEX_REG_PC]); + } + env->gpr[HEX_REG_PC] =3D evb | (cs->exception_index << 2); + if (get_ipend(env) =3D=3D 0) { + restore_state(env, true); + } +} + + +bool hex_check_interrupts(CPUHexagonState *env) +{ + CPUState *cs =3D env_cpu(env); + bool int_handled =3D false; + bool ssr_ex =3D get_ssr_ex(env); + int max_ints =3D 32; + bool schedcfgen; + + /* Early exit if nothing pending */ + if (get_ipend(env) =3D=3D 0) { + restore_state(env, false); + return false; + } + + BQL_LOCK_GUARD(); + /* Only check priorities when schedcfgen is set */ + schedcfgen =3D get_schedcfgen(env); + for (int i =3D 0; i < max_ints; i++) { + if (!get_iad_bit(env, i) && get_ipend_bit(env, i)) { + qemu_log_mask(CPU_LOG_INT, + "%s: thread[" TARGET_FMT_ld "] " + "pc =3D 0x" TARGET_FMT_lx + " found int %d\n", + __func__, env->threadId, + env->gpr[HEX_REG_PC], i); + if (hex_is_qualified_for_int(env, i) && + (!schedcfgen || is_lowest_prio(env, i))) { + qemu_log_mask(CPU_LOG_INT, + "%s: thread[" TARGET_FMT_ld "] int %d handle= d_\n", + __func__, env->threadId, i); + hex_accept_int(env, i); + int_handled =3D true; + break; + } + bool syscfg_gie =3D get_syscfg_gie(env); + bool iad =3D get_iad_bit(env, i); + bool ssr_ie =3D get_ssr_ie(env); + bool imask =3D get_imask_bit(env, i); + + qemu_log_mask(CPU_LOG_INT, + "%s: thread[" TARGET_FMT_ld "] " + "int %d not handled, qualified: %d, " + "schedcfg_en: %d, low prio %d\n", + __func__, env->threadId, i, + hex_is_qualified_for_int(env, i), schedcfgen, + is_lowest_prio(env, i)); + + qemu_log_mask(CPU_LOG_INT, + "%s: thread[" TARGET_FMT_ld "] " + "int %d not handled, GIE %d, iad %d, " + "SSR:IE %d, SSR:EX: %d, imask bit %d\n", + __func__, env->threadId, i, syscfg_gie, iad, ssr= _ie, + ssr_ex, imask); + } + } + + /* + * If we didn't handle the interrupt and it wasn't + * because we were in EX state, then we won't be able + * to execute the interrupt on this CPU unless something + * changes in the CPU state. Clear the interrupt_request bits + * while preserving the IPEND bits, and we can re-assert the + * interrupt_request bit(s) when we execute one of those instructions. + */ + if (!int_handled && !ssr_ex) { + restore_state(env, int_handled); + } else if (int_handled) { + assert(!cs->halted); + } + + return int_handled; +} + +void hex_clear_interrupts(CPUHexagonState *env, uint32_t mask, uint32_t ty= pe) +{ + if (mask =3D=3D 0) { + return; + } + + /* + * Notify all CPUs that the interrupt has happened + */ + BQL_LOCK_GUARD(); + clear_ipend(env, mask); + hex_interrupt_update(env); +} + +void hex_raise_interrupts(CPUHexagonState *env, uint32_t mask, uint32_t ty= pe) +{ + g_assert(bql_locked()); + if (mask =3D=3D 0) { + return; + } + + /* + * Notify all CPUs that the interrupt has happened + */ + set_ipend(env, mask); + hex_interrupt_update(env); +} + +void hex_interrupt_update(CPUHexagonState *env) +{ + CPUState *cs; + + g_assert(bql_locked()); + if (get_ipend(env) !=3D 0) { + CPU_FOREACH(cs) { + CPUHexagonState *hex_env =3D cpu_env(cs); + const int exe_mode =3D get_exe_mode(hex_env); + if (exe_mode !=3D HEX_EXE_MODE_OFF) { + cpu_interrupt(cs, CPU_INTERRUPT_SWI); + cpu_resume(cs); + } + } + } +} --=20 2.34.1