From nobody Mon Mar 2 08:45:39 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=1772224665; cv=none; d=zohomail.com; s=zohoarc; b=oFNmwUND4lXBxNNxomutNcEVLlHU9lP06MkQUUQR8iTs7WevR6X3Js3zIAh78zW//LGGkiYueRrO/JnOp/AL7pspt1dOJg6mugRSdK6FygNKGN+tv3YlPXcKAA+CH5MGZuI9a6Gpp1RuZlB/ma/RSTZgzrmBGJCCM9n5A9F18BU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224665; 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=eovgl4R87XsMdbACoOP5vjmzCjuKIwM5P4q7ZX0Tlso=; b=jQjHNlR4fTduXku021udDzXbE/i+tvRXbfaDXMb3AbFlzxHsXA/zBPj5zXvDOg3vwxgi5p9RrgOSwgVB3KXd0Cu3qV1oxrhUM6kuF42xCyUQ4YLmv1fTCddNHBb967D0ryO9rcA9IkYdyFQNhM8LSuQpC5KC0FgdBaA7o/Ri1+4= 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 177222466567684.57809878922001; Fri, 27 Feb 2026 12:37:45 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4Zq-0006n8-MJ; Fri, 27 Feb 2026 15:36:46 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4Zn-0006lG-0F for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:36:43 -0500 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4Zk-0006nH-59 for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:36:42 -0500 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 61RIm5kb3733232 for ; Fri, 27 Feb 2026 20:36:37 GMT Received: from mail-oi1-f198.google.com (mail-oi1-f198.google.com [209.85.167.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ckgv509sx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:36:37 +0000 (GMT) Received: by mail-oi1-f198.google.com with SMTP id 5614622812f47-4648b7ada07so35406329b6e.1 for ; Fri, 27 Feb 2026 12:36:37 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.36.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:36:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= eovgl4R87XsMdbACoOP5vjmzCjuKIwM5P4q7ZX0Tlso=; b=YCd6ROmTKyGoq5Q/ K95Dtrbc8i921ts7AGivceZ9LgZ3om7RWyhJJUKn1rx4E/fvhPLd/ZHRbAQiBTOj 3xxbVNAq/WEczlhNjdjCz9KoSNFmisuP7ReqmUyYpqaFA+YliTzBEZ9yv7F61wVn mCB4skLw1wNbFo6oR0L24BM5vb+7qXP9DGs5llqj+xv3q4HFIwNjFtFLEnQEeFeF Rq6r2gyqUuMhz3gqrFPlopsk6fs+dgkc1wIq1kbyr7Kbub8zh7YlqkQYVyARz7ZK OVqU7mkRLtwyzflNgnurYIcSxmGeDpS5hHytHAkGcf2Nu8JklOUv8/L0hwrkc2gV sTqiXg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224596; x=1772829396; 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=eovgl4R87XsMdbACoOP5vjmzCjuKIwM5P4q7ZX0Tlso=; b=MwehHyytFinMFgjyLf5FzgaDAZuR7cDWYudH570Xf9rL/wx/jhPHTtO4rsRp462hhu 3XX0z1TXLSF5N98ojCyq8z4Twkm330TEz0jcde7zBzPzjwkjpu0o4/6M7w88OZMEEDQy Lr32IjbGq1US+v7R5OO7Qs+6WfwALt1Egmq5Us6WvVcizHmD+HPjY+0dURavs593KKBe LHzBa7CJRj4Q0Aqys7DfRf4xXFrprPGL6XJaptmaLct+/qHEc/HZLO0vjgBSqMs027nf C1IRaqWwm479Lx2ax6Q4bwYIsPGo/0510FoRLwQC60MaOFWXlj+LzAo6U9gS8RfMxDFY az+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224596; x=1772829396; 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=eovgl4R87XsMdbACoOP5vjmzCjuKIwM5P4q7ZX0Tlso=; b=uO2iLEp4fUxryiicrQ4xUFD2lg1qkKX+r+A/qAlDA+ilxoK0PB3KBWHthq2nC6R4es OV1xbd+b2iaJly0456RyI6KXf4PoS0jCYRtpiY+9oZWVPotjX3gjEHz4hVzUkHPpBw2D +xVsYvTArYCbvLe2tiDG0jzuKYi6q6GFEd4RTyvlgLrS1olTUiu1MUWCpQzgyVP61IWa 1GCpNRg81j/eufZOvXkHhAJIO4vikdt8LPzRQ8cNU5Phem0iEBeNrq+WIoM5jvfKIcqh MdeSryXspYdL3rHFqQtQxT/8lHnNzIP7aa/yFbfpGCDUnIuNVFnBvznn7Gfg4CnKZxwk 0qPw== X-Gm-Message-State: AOJu0Yyw8l2X31bHyeJSbfuC/vf+ZhQWfdPfNnQQxrWgr779o2hQqZER iKyNqToY3IAZmU1q5ZbIdGe2ILCJRr9OAQI28oEx+wa6oRl0rask+6zZkQ2sI3zSF1V/I8QcnPN AxzXgxa2f9Sxmda/O5CvamlGPzC4I4iwsNWJb+zufwsmCOAh+qLEMEHcueqw2zU97Aw== X-Gm-Gg: ATEYQzznexG1SdyfOgoWYdmIP3jK7ClO+YxUp46vUByVKzJfANx7RV/W/nB2cuoPxRg d3EiKosd7gcqsbL2QrZnrDOrGqlhd/Lis73HNkMB+tNfNnneYVUOrMVF30UNnydO2Kd+qzZbeNb iBb/fDG7QK7m/48nRpTbGI9q2sgRiXCNstan50OopU9kBkUMEKMgeyCgaO+EBaMH0uDZRJ7nZFH hwpbtSCsFp6oKkR0E+p1oloz3+7A4wemtDVla+pBl9XmHtAZujxbKX0dE9wpF+YMRLnvCVWKiCP lnANH8kcEwPd6ewXe/0ZrCVZRE8pfamNBxFCrSloP1IATtwgFHPQAEMURm9dTlynARHgzm2eF3x hrl3YGTiTln58YGxZcoJTLyjZKRLEfZeJDr8/Q3aNWRUfqEggX5Xfk/dFNAd37QQ256OkSg== X-Received: by 2002:a05:6808:1719:b0:450:bc64:d159 with SMTP id 5614622812f47-464bec10c9bmr2299877b6e.54.1772224596067; Fri, 27 Feb 2026 12:36:36 -0800 (PST) X-Received: by 2002:a05:6808:1719:b0:450:bc64:d159 with SMTP id 5614622812f47-464bec10c9bmr2299858b6e.54.1772224595615; Fri, 27 Feb 2026 12:36:35 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 v3 01/37] docs: Add hexagon sysemu docs Date: Fri, 27 Feb 2026 12:35:51 -0800 Message-Id: <20260227203627.932864-2-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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: AW1haW4tMjYwMjI3MDE4MSBTYWx0ZWRfXwMxlFBQ2mZC6 cIZEjuamrRDK9CFT63yRsotDzQUzbpGnKI9hIut2HIo21LTkkNKvfdP1pmK7tlUkIWN4s1IvE/3 x+rb0ZI8ZE2/vopbBtaSyVMIuRNTNoxMJNQhCYqkjj/lawG176uF4NKCQZh3i/FghyWJRcwbSgg iujIEqzitOvDLYMW6h3gAYUtJ/2G4izCCWt2nTzSkH+iuf5BUv/QQQMICN3bAMdJSaZahln5HDy HrOlqpJuIhY9QS9jKaM8vUXCpR2n1WYk2d4S7HM9Sd7UkP1DSDWNx+hfPBmvINQxwmCYV5f68Nl bQ2rPU16VsGQGiOCeujgy5EvAHbhmN6ai8xiS15bpNEsQjXj4B3SLVtGVvjT0zBCQnyDEDmR/Ts Cr1I2qakrb+aKlxk0yybHnWYnY34z7SWBeyHWxsbWYAr0EkgP8CLtmNL8ZL9n0mjoh+/SAJWqbP cuhIoZOBzQKq47qEvKw== X-Proofpoint-GUID: _bdnBtz4LP1nf4LJ1ovDGMnV98hm35Bd X-Proofpoint-ORIG-GUID: _bdnBtz4LP1nf4LJ1ovDGMnV98hm35Bd X-Authority-Analysis: v=2.4 cv=Z8Hh3XRA c=1 sm=1 tr=0 ts=69a20055 cx=c_pps a=4ztaESFFfuz8Af0l9swBwA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=NEAV23lmAAAA:8 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=fXLLft-zuLPsu7fQao0A:9 a=QEXdDO2ut3YA:10 a=TPnrazJqx2CeVZ-ItzZ-:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 spamscore=0 phishscore=0 adultscore=0 impostorscore=0 suspectscore=0 priorityscore=1501 lowpriorityscore=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-2602270181 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224666632158500 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 e0c481e2125..69cb6b8a7b5 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -246,6 +246,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/cdsp.rst +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 Mon Mar 2 08:45:39 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=1772224741; cv=none; d=zohomail.com; s=zohoarc; b=fVMpAvYiBK38kPNXUIHNXDPJSdiZ9cLT41kPWYF/zYpBHn0a0X5Yam26QxXamydtNv9a1REQtuTgePVEiQ1PkoWdQccEpObxpWMdI3YbWXXw3+L7UvlqlBV13pEudbPCbyYN3xd9SjVEWIL5O+qIeo+nBVv21Kt8IjNaC4z81WU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224741; 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=NLem7dzS2/UxKAytBWCpP9voigW0PRMqSjkapE2L9Co=; b=b5lEfx4cf/bwhhJZFqG5EHzMA6Mg7zKogtYt1yFnIFoX9byW0yFEAKm0ouoLnhtsaoa1/RuuL/6X7dplFkDhKXzoxQjFNB8at/wSGBK8PO/78o+6dGDovKxMUpALP1gkGcjryu29UgIjtHoCGVjpRxLSkR7HrkFRL4Azt+6VpIs= 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 1772224741607485.62527498936845; Fri, 27 Feb 2026 12:39:01 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4Zo-0006m2-Q0; Fri, 27 Feb 2026 15:36:44 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4Zm-0006l7-Bb for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:36:42 -0500 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4Zj-0006nN-R2 for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:36:42 -0500 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 61RIejrL373359 for ; Fri, 27 Feb 2026 20:36:38 GMT Received: from mail-oo1-f70.google.com (mail-oo1-f70.google.com [209.85.161.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ckgrtratj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:36:38 +0000 (GMT) Received: by mail-oo1-f70.google.com with SMTP id 006d021491bc7-679c6ef1538so51004384eaf.3 for ; Fri, 27 Feb 2026 12:36:38 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.36.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:36:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= NLem7dzS2/UxKAytBWCpP9voigW0PRMqSjkapE2L9Co=; b=n6nEx4dLECFUpR42 EOTxGEckr3RNgabX3B+tlsiwEImotvZSy3JIXtYWSh+g6NaGdgyQ17kw7x3uYOFO rJ/6/0VTyl7PUPllpvjLetfBX9O3fplMtwBg1AB6jjbgq7sWL8RVyiG2ECIT1U/W MixKX8j+NyUG3aqBvMX/jD7Lj8Bp/aa89PRipOMpXV1lyY/wp0QFrkzlQqbxAiYm cV6UTaNJZ5jlSOggXZRPPaEnlQrwNkG+90RXj2jsX3UEUEEE1WbX+6ZaGSbRrfyA rPJ2KT7xTSnEQnW2b9OTqrFPPqW3h1DAyYwof/dDuq4mus1DuiD7DOjyAIJDcM7j gVDhBQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224597; x=1772829397; 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=NLem7dzS2/UxKAytBWCpP9voigW0PRMqSjkapE2L9Co=; b=cH25hPO2mCmsaJFrUyYuK10mPEa5IPMdNaqbdxN1wOMby13j+rjyrDoHIabmhev34U dXpdIt+b5smfk/m7m+iWpN8hrosEUi9+rDu1GYJlAU5X7zArWApK23TMDhgRLQBgEjq1 YuNdFdlsLhpOdFKixwezlqKd1anYteMJShCDYyDQ904Gu8J2F+Ds0Nf1X7KgcSemjn+V 789K0B1qzKvEt5BALUv6N7Ba/kPCA3BREPU04sHg8YN78v8P2KCIH+LxS4DxfywLw3/8 WHHOlrlcXKvy3MpuKG6tDS5TfunIK2DD2bziA9VGt9CeREILAXHP2mwUSxybAL+A0EaO XhCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224597; x=1772829397; 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=NLem7dzS2/UxKAytBWCpP9voigW0PRMqSjkapE2L9Co=; b=m+hCnEu0Mhi0F835OIzvICEpHQxirXPrHXKLM3RHvtD7ftV+sFrR6I86Ay1U0aKw0v cxk5AdA3fnTgxRmetoUocTsGJUi5jCmhyEiTon0xG2cQwYoneQ54UYMyPEGwo4dYx+GS YeOaM019MFRIrjpN//g3RP8OI3r98t40TBYRasfaWSkpAHyEPpz+i/db+VprKj76wD94 zxJAg/BZTnUwxh1bSi/Ei4eh/S2xyRiBk+5iFZmBkxdEBZg4/3Jickn2sJYNXO+iV16E bPxJtLTywwNn7WVGjDB8TpLgIaUW4FrnQoY3VxU0RP5q6CcKmfr1ePz72WaCvArMTP6/ OgoA== X-Gm-Message-State: AOJu0YzJE49I1wcbcuQ1DwrsGWU2+cnFZlv/AHDLGOzonEspuz47nONv 4NMtXCOfA+sdUYhpCTiwswVVkJeuLtnZUC/TkYdmiddeTANdHH/nSarl1vqBPr/LCLPE6vmmUjH eRDhNZ9WHaUXvqbxnfMcP6ESR5J2A/D2AeCVPCdwYWaPwqUffCJIMjzreGK602kMAYg== X-Gm-Gg: ATEYQzznDhPZuTdyTw7BrwhUBFPJcY0E7RdRdqRRkIbiWIJM37y/Q/UftjND/33qRD9 9v4CVCpO0kU0octqa6/rRDnBkgm5GagTmN4+wuiqWIhOUd6MqkcN0MciJtzPs2ShPqbC5nwdmyA JaiVC1K90zMTIvrPTYiMvOYpO1yh17eCzN1eupfuA0dMMB7AzIaBGumPmMUdt0/znf+VJaYMfPH hAI1nqjby315Mu7kaBLhruPVjYFbdGSNoR3L3nX0svP0gACWoqEkOI5D5n7xgG7RbHeLaTTrWVw akZuOcvuZAm3UAERH4c40y3YH1S2Sq+llUz2msO7ZZE26rIntD4uLtQYJ8g6/MxoWgrar5vgl8c I52XkXX9UnpRH17QdQvaTqnbcOIIu63XXjLR4gWlpTivGanB8sKobGYUZjQewErPh1HTXYw== X-Received: by 2002:a05:6820:f031:b0:662:f61e:75a8 with SMTP id 006d021491bc7-679faf7f00emr2703055eaf.65.1772224597521; Fri, 27 Feb 2026 12:36:37 -0800 (PST) X-Received: by 2002:a05:6820:f031:b0:662:f61e:75a8 with SMTP id 006d021491bc7-679faf7f00emr2703029eaf.65.1772224597124; Fri, 27 Feb 2026 12:36:37 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 v3 02/37] docs/system: Add hexagon CPU emulation Date: Fri, 27 Feb 2026 12:35:52 -0800 Message-Id: <20260227203627.932864-3-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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=C8jkCAP+ c=1 sm=1 tr=0 ts=69a20056 cx=c_pps a=lkkFf9KBb43tY3aOjL++dA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=NEAV23lmAAAA:8 a=EUspDBNiAAAA:8 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=2pVdXvZyqgCw3DkElpQA:9 a=QEXdDO2ut3YA:10 a=k4UEASGLJojhI9HsvVT1:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: EU__QdDsZF1j2svAaE0CDvy5J7qffi7u X-Proofpoint-ORIG-GUID: EU__QdDsZF1j2svAaE0CDvy5J7qffi7u X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI3MDE4MSBTYWx0ZWRfX0o01vyH2Cl0C +mUMVcgoeTWWBSPybufqHntbwaWiUTFVHNNZqnKNwXoRVywTTjAMak4h/isIj2A0mS3U2uiAM9e 5AdVUy3oGZVGb0Op8+MAkVkjjVOtg4IeirUDNvaRzVB4iiRhDZifLO8505IePjb1WMWiUBrKywq aGnfrmPjaVNlJpAAlIy5eETyVrCDIJDP7jfrBdKC/NjQUqIg4DAOQ+vGDgBwpwBzvVpV33poUAw Q4NJ+QmyLt6nqnYxQewmeTn+7sdULX75jK3Ymn55jAeuoq7BSsFh4sITY8DlKU7rl/OyJPDo321 rLW9BeFD3jO6axdjLNPg2yeA2l8A4wNTWmf56JilAPdpIBacwD5dck/MrTcY/YpLe/dOTvcT9ro jMonBjYemq3dTk8coY/QDrz7KxEKlCn2Ru2p1zisDjY7fHTohyPd96Q2nh+YIXsP+Cz1WjptDcG 8ApY1p98C1FmaGVbivg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 impostorscore=0 spamscore=0 phishscore=0 malwarescore=0 clxscore=1015 bulkscore=0 suspectscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2602270181 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224769494158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- MAINTAINERS | 2 +- docs/system/hexagon/emulation.rst | 15 +++++++++++++++ docs/system/target-hexagon.rst | 1 + 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 docs/system/hexagon/emulation.rst diff --git a/MAINTAINERS b/MAINTAINERS index 69cb6b8a7b5..38ccea96b93 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -247,7 +247,7 @@ 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/cdsp.rst +F: docs/system/hexagon/ F: docs/devel/hexagon-sys.rst T: git https://github.com/quic/qemu.git hex-next =20 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 Mon Mar 2 08:45:39 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=1772224866; cv=none; d=zohomail.com; s=zohoarc; b=AezAYpVIHGWRyjyN1XA2WBJnRWBtux18ubPkqGZLSAYHlrzehVcRXBl09zEgH/lJQ8OZF7vJcscBe8Ckv48p8x4tKwKIINnfEZt3QqTNAJMkFftUvrZIRo2hilmfVd+OFhcccZiJjiIepWXZHh0JBQiWMUfPsnDpdKcqElbTZSk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224866; 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=fAcYWPNnMw3SI5yftuBtoBojs6xkQ5SwYGBh8nP3FXU=; b=OOm1pBdlIXV75tSqdxd4TiiOZR5wVGw0mrsyqpzdBl1gpsphV2NjmbtcmvOYjRw22Oky7CQ1e/llKWBU3p76JdpUb32SBZGS08qvP3jpd28SX7eAo862UMQora5wxHNyllE2zMtZLTkeS5il3p+1ayc0eymvWJ6SbEl6mOY6MgE= 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 1772224866955337.3637954365413; Fri, 27 Feb 2026 12:41:06 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4Zp-0006mO-9F; Fri, 27 Feb 2026 15:36:45 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4Zn-0006lQ-G7 for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:36:43 -0500 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4Zm-0006ng-37 for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:36:43 -0500 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 61RH0HPu3944632 for ; Fri, 27 Feb 2026 20:36: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 4ck73q2d5k-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:36:40 +0000 (GMT) Received: by mail-ot1-f70.google.com with SMTP id 46e09a7af769-7d498212845so14402802a34.3 for ; Fri, 27 Feb 2026 12:36:40 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.36.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:36:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= fAcYWPNnMw3SI5yftuBtoBojs6xkQ5SwYGBh8nP3FXU=; b=PaR6Iu4JS0v/BUJr 5PR1TgIIoRXqMgihvk7s73BdcIJufHRYe5kg1quxl4x7BCvCcObRF5vwYnamAe2F qwdm3cibUderRKv5MfjCicAPlczgkUfWjg421PF4dhYzXpEqRxQC8e3Ts97CZHq4 856tF8hwukynrCa0QrKYJ78romLZED/8+LE7zJXKM071PvpJqdrMTf6RHeYQg+pI O2dxzcRIb51zt2RxZXGg5XYzqrlrCN7nsGxknEZqYrTXShutdY0X47xn/jpKVbUa WQmopZKaJ46f9QvHPQjSfUu4q4kON7IjG3lJW4X15D8dXLBi2gCpb3vsndFfJ55M Vyb7TQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224599; x=1772829399; 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=fAcYWPNnMw3SI5yftuBtoBojs6xkQ5SwYGBh8nP3FXU=; b=KY9ZM6hs1AbQWzt/KIHh4sivfliwrJadgee7Dsj7+Zpqd87++MQ7mc5M9QNDAjUZ8f sLldjSTENrD0/4B9xoXDyIFeeyDFHaLP5KT1EDs04fhujyB6EETo+RbsWUoobTkhqKLn LLzeRsRqcNX2czHaVUGI8xuDNJFVP7fGiKCKYamB71yQ/XrjLVMw3DbXNjKr/KyVuqfL pp2SxDgwVkqOVPuyPeIHtRpsvdL4n9so1vNytTvmDsRiKlHOY4+GK4GLl9pTaW3H2ccF x2u2jZXe/HVowWR0ZM7jFTinORALgcNOoGH/kzHtx1eEfjHGI22KnRAwXeTdi34yQo9c 9O8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224599; x=1772829399; 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=fAcYWPNnMw3SI5yftuBtoBojs6xkQ5SwYGBh8nP3FXU=; b=SawYWXbdHtROlPEuP31Qc8sxGrGNKWRGdRnCG5uEhAn/IalXarHVN7XnwwUz6+xnH1 4jUELJNjdh4JRS9lbjPMA/TFqP74BBwMffhaGfcVAT5hcT11Dl1hEwu+ykM+bwOs8F0Q MGV19jAlxkjQkODf8mlYJrsNRhhvHpvBoE18xD/+GNtXkw8BaVEpZN1t7vuu6Umma+Jp yU90rHW0u4QGE3S1if/jt3R1bvDARcCPmMkD8FMNl9oLY8TuyAWYN0/2wAH3lfDUbsOX 1dF5QnptMLZlBajy5sy3btIIsvaN06mcyT0PsvYRyDHpoMMxzMUcuGg3QJAR+ErI4fp/ Km8g== X-Gm-Message-State: AOJu0Yy2iTVvThXRgV6/QZE1G3kpx/z5sbwa+UgDi+4o4/V2YtJKKqn1 y8JVYzIBNtGHGlLxKGl0o6yWuvteAA9rSU+TZGjOsg1cd9wZxH66PNa/aSEO+XtkXwo3uwUxHbx 17ZsRm7zRqFl917weHdsE6/y8GBecjUb7RyrWIjQhfTXFML3F5jnovR+upVwPjq+XYA== X-Gm-Gg: ATEYQzyxhiK1hBZoKqHONFf8+9Q+hPCjdE6MfjvfkulFojSsFTQTryk4TbvFIBSYVJU MfdQDn5f93YTQPNKQgk0vxxz6sDdqnO78rYUdZ+ERoUgXBqS2VJ5xNhmn1u/DOqYfZlNaJadL3x MEAtVM5U+F0iUt+o//t0fzLp4IVqrueMbSRXSLdK08rUX0Kt8BgNJqPK5c2MVB10bs/N8OM/o/G AsE3EvSC2eMlKYsnhwbqlSW63BAeVafTulwOVqAvE7NcRH5e73yHLG7UFl36A7TkHwd8WfcUZkD pL92qL+voL1Pc5PfIPAmRqrPQDnihk5G4crsp6yMH38faRubMYB8ZtcayBaw+iKbEssqBtcQtGv S/dxwAarvqwcFnLtuJr2wx6dnMOE76gMezr+NfXRpcY4oTd/hIJcPNrULTJT6RGvX8Xhm3w== X-Received: by 2002:a05:687c:40a1:b0:40e:1eb5:73e1 with SMTP id 586e51a60fabf-41627093a33mr2811025fac.44.1772224598814; Fri, 27 Feb 2026 12:36:38 -0800 (PST) X-Received: by 2002:a05:687c:40a1:b0:40e:1eb5:73e1 with SMTP id 586e51a60fabf-41627093a33mr2811002fac.44.1772224598282; Fri, 27 Feb 2026 12:36:38 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 v3 03/37] target/hexagon: Fix badva reference, delete CAUSE Date: Fri, 27 Feb 2026 12:35:53 -0800 Message-Id: <20260227203627.932864-4-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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: AW1haW4tMjYwMjI3MDE4MSBTYWx0ZWRfX3GcO05LGqgw7 LyNypIRAkx9498dxDwWlDGVoKDVwSBfi7HdLizBznXVuqK2tOAD7Ei/I9nM9zNsEbTqBSFbB5Yr I7F10qpBjOa7akkbLv+0cHtr+NDpXq5Gmfai1JM8GOlDZkh0fxAa0caR0dYm8+ax92TFUNiim0q lOWrUv9kdHKQN8O2J5PE6jMf1xM69l7vKYI/TRgTN4jAj3ZcDXh3GyT561W0vtjMDSIml8W4smx StqOvEoJmRnI2aNfhFkWdbL3IuT3XULroK6pkbeniycKVr+o3Zy3ayoeJTZcZXWBldPDt7ob0ZL D0oRT3RM8e91J9MvkCjucN6zx7xs2zL2pihHaq/aWqKuNw9hlAmsF+/DA/ignPBb5VkSY9CpCb3 M7WH+PEX7Kwn6IYv37o5t8zjxJi7oAAak678/1sNGZeNbUm/9UE03AFEbv0VKQZUcQZ7/Eh0VT4 +TgTuwhdQ9++OC+iC+Q== X-Authority-Analysis: v=2.4 cv=KL9XzVFo c=1 sm=1 tr=0 ts=69a20058 cx=c_pps a=7uPEO8VhqeOX8vTJ3z8K6Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=OkFKjDXjCESYpyaXCIMA:9 a=QEXdDO2ut3YA:10 a=EXS-LbY8YePsIyqnH6vw:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: ji2_mjD9aGNyg4hbqBCAMAhvRQabbd5I X-Proofpoint-GUID: ji2_mjD9aGNyg4hbqBCAMAhvRQabbd5I X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1015 malwarescore=0 priorityscore=1501 adultscore=0 bulkscore=0 phishscore=0 impostorscore=0 lowpriorityscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2602270181 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224867334158500 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 --- 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..82c726139f7 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_sreg(FILE *f, 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_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 Mon Mar 2 08:45:39 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=1772224844; cv=none; d=zohomail.com; s=zohoarc; b=FbTbIjlmY+lx4Xsuj0bNk1SxTzOxGuXJYxna+X0hhwlG2irNzGZxtfpleI16G9lZs0pdSxEGKf+xivm9e9is8Y4veZDVOT+EBJEC37wTnTYt8OfkmCn6Htz2XOmMgT1uOjXp68SaOjeIyT6BMMyxZTs95kaC5jiQmskaxTsXL8A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224844; 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=fwKGE8PtYgXXAM4TboOYlPrze7hGIXNlT1jwkhANj+4=; b=f3MieD4dReAtb2mmMouG3Q0fpvuA6Th25ibijFyWZDcLnEz8e2T0SZGhlvyFiCfazdusqz8diu8f8WY4YroqLvDRTOllIYUcJjkR5t02uPgKrl+rb9GH5IwPBQmU+ZxtrBNoD81SbmMal8xGpULdB/sAFxbvR+uqquIVxHmzixk= 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 1772224844668321.20566009489835; Fri, 27 Feb 2026 12:40:44 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4Zq-0006nK-Ro; Fri, 27 Feb 2026 15:36:46 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4Zn-0006ls-Vy for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:36:44 -0500 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4Zm-0006nm-K4 for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:36:43 -0500 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 61RIm7pU1713233 for ; Fri, 27 Feb 2026 20:36:41 GMT Received: from mail-oi1-f197.google.com (mail-oi1-f197.google.com [209.85.167.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ckgv5gacm-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:36:40 +0000 (GMT) Received: by mail-oi1-f197.google.com with SMTP id 5614622812f47-464a2e39173so24779244b6e.1 for ; Fri, 27 Feb 2026 12:36:40 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.36.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:36:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= fwKGE8PtYgXXAM4TboOYlPrze7hGIXNlT1jwkhANj+4=; b=QaGxnoTobRFii9J2 9evkPBsS54TihS1clLvM+n1uZIir8M0kMWf6LACYGj7eCAAKKl7Z4C5IhelxkvW1 +ORmBpwM3leVxMPIQExSkUDeJWd8zPVOof0aQJvawYLJ48IhbNR9cQ+D0Tyq2ncj QDdgvP9UQbqVA98b5w5oYJb80/mNy0iUn9p+TJSL9fweaOarbOktQFyV6KDJ8NX5 86RURSasqr8bp2ON5r99fN3wOHpfv3WEmGwk6YkdVROi8C+6YAClnzPWB+tHqwRG HXdVxk3L14cVTJl/+iKbXIBTftxz2f4j5iOOw/et/D3XEE1sRmdgdME9AgELjHd6 kgpLgg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224600; x=1772829400; 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=fwKGE8PtYgXXAM4TboOYlPrze7hGIXNlT1jwkhANj+4=; b=FjYdf3ctl2fJjsQB5NdQgkvF8ra7VRtwetgDSyJFUM/1OD/2b4pKsQ7PLgnOKvwbz8 E6aGbqv+XtTO6nDAmXlgTNrK9bl/VVA5jv83HlfXs1MS3OV9T5ZHaBwdZ5NyuL1Fj5PP 5vrvW/xoXoY2FamW25yvYEBvEpF+NWfDeEy8T6eU+y63s1VWXK/AY4M1eGUr0UjR/It9 MUk85BEpwMSBdlxvpB+POSbdIrzlSj/CENyONwLVZGySdRg9Ay/vtR9xoqm+TVq/UIgZ Ydd1nX+2lqTWOysKuHQpNOrcM2LYfE2l4V2mWCc9RWBuAOSU7DADvlh4BvYIFnH0p/wX MT+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224600; x=1772829400; 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=fwKGE8PtYgXXAM4TboOYlPrze7hGIXNlT1jwkhANj+4=; b=rM94yHeAt43Nj4eyz77LRT3P13YcNgTdlFTB7ugujtyh6ZfgBIN5ygrEqgdJaYWuHQ cxn2pdldTccs408z82rMRfiHUE0rjowUin3zXYwBArikxMfEPLqgNOknGu0TBQuTXHGF E6oKn2cxTnEqBl8k0zeTjPGTy8cxci6OgBgwhfjwjp5S4w1DgMSc35N7mo/MUkjA50Mu atnY25WCT9wt8sCaO9krMGdptQk0MfITbGe/kGOGEE6ImxGmOg/jLgIYoPQsK/W3r6LR shRd+B5m6U3Q60hVvNaSrx6Z0MdjcufZoctngMj2xXnehGclVJDEGx/Wv9WK0y/aBaEt NCBA== X-Gm-Message-State: AOJu0Yzu1pgJR6BCsAu+a/Oly8QM4oAcFuBqrOLSMBdRvrvzicNlNbQo aM4LW99iChPrt6ArO/PHrfWSel4PJtq07cPmdqeZVFOLd+tV+iRkMJp+R1EkLHzSI54SFboU8xi o6XD1I/qxZCbcpoPvCcJB8WthjYhN1VHsbwlk8w24Q1CttuCUon1aMUvcFowNW2XPtQ== X-Gm-Gg: ATEYQzxRGo96ZUQ8ibty91Y/IsTwK/3gRqjybV34ZgaOLEIeu+FaOx6WBhM+KDu1aMG Qo+/GZj15Ki0TN33g7PIgmkYBh4jRI3e1X+GgjaFdu/lVwGqrdaWZ7RigJzIZEHBq0wodbPzKrx mQeGXXGoy98+cnp3M8lw9eIRYYUm9cEA1EHxqGDMuJn+YHSwnqwRdC41wEevAl1UI00JtST5v8d dD+Tvcmacwtt8FZNjjzo/pOopkFo0f2yE3TRHXeC99JtE96fcfYTRRonZzIxo7fYOgbDlyOf4H9 AhnOE6Ps15jeQJiV4XaotYMCl/sr1bp0b9m/Xh6/jzo7NAiYFm+nr4PFY/K/iRLdDrEBHjbnrfg /EQdNt7OjAfZsJph/DiJHcrfCdrgRs4TQBRRsAzbCWKWrKqs/4rsTwddJyU8UjQN576cfoA== X-Received: by 2002:a05:6871:a193:b0:416:402c:822a with SMTP id 586e51a60fabf-416402ce97amr476458fac.25.1772224599958; Fri, 27 Feb 2026 12:36:39 -0800 (PST) X-Received: by 2002:a05:6871:a193:b0:416:402c:822a with SMTP id 586e51a60fabf-416402ce97amr476439fac.25.1772224599522; Fri, 27 Feb 2026 12:36:39 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 v3 04/37] target/hexagon: Add missing A_CALL attr, hintjumpr to multi_cof Date: Fri, 27 Feb 2026 12:35:54 -0800 Message-Id: <20260227203627.932864-5-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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=RPq+3oi+ c=1 sm=1 tr=0 ts=69a20058 cx=c_pps a=WJcna6AvsNCxL/DJwPP1KA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=UrstOHIbV4iY_BwJnwMA:9 a=QEXdDO2ut3YA:10 a=_Y9Zt4tPzoBS9L09Snn2:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: NmbH6-28N0R1ZTu89uXo5TfTEVvMu64- X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI3MDE4MSBTYWx0ZWRfXwRw6Ah1WEt4w zPOolRQeN5Lq+vFTCMSJOq0kk0eh8xgT31agtPlnhs8Xw4DkDQqy92omUe+tR3RBCXuJYc4BnS7 V4kjxkCvDF0icnUS4Z6KHcPcSweMyBJh9DHDh/zPyUiyNzfv1/b2DwwCOQ6ix8dkp0AWmPt5L1X MND+0COFY8VHpC/HZp2MIZE/OOnvMvuxDMH4RfUAyHEx2vQmPkEXxLBwzAUATFMgHlpdJA3/X1q 5/hw1TISAoCdSIH42lWkpM7akQe6+z3GCksbRWz3cQ1yuUyZbHxq1LtzVtF/w31lSxELLjBm7BO maktxSbbc81+kIBjDrZJkpH4fRdWqZOSogfIKcxW36E901Rq9Ae/AQILIm1MTnDtoOkx6BCrsCk mguFJbDSm7b0ImT1EFzD3efjPTAliCprV3eOBADbVR4rGTKhPs6RbMtyC3wZTpgTxpy5UI0Wl99 x/0yIQNXR1IWhGLbffQ== X-Proofpoint-GUID: NmbH6-28N0R1ZTu89uXo5TfTEVvMu64- X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=0 adultscore=0 lowpriorityscore=0 suspectscore=0 spamscore=0 phishscore=0 priorityscore=1501 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2602270181 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224845208158500 From: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/hex_common.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py index c0e9f26aebe..63f83a8de2a 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -247,7 +247,11 @@ def need_next_PC(tag): =20 =20 def need_pkt_has_multi_cof(tag): - return "A_COF" in attribdict[tag] + if "A_JUMP" in attribdict[tag] or "A_CALL" in attribdict[tag]: + if tag =3D=3D "J4_hintjumpr": + return False + return True + return False =20 =20 def need_pkt_need_commit(tag): --=20 2.34.1 From nobody Mon Mar 2 08:45:39 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=1772224757; cv=none; d=zohomail.com; s=zohoarc; b=B/7pnnI1gjBBo0ZS50IQv0QVXCH+LvnXP9bm/1gK43iOtjj0UEmq4dzTywtckjxcIZTfTIl6m4i0HDzZCd0iJNXri2rpH9+Ya8BePpjSPPNXQaVOXFDhTDeadVwS3PpAt0CU6s5QUbYGuTtoNAKPn06OwgL8ge8UrRKi8RORksg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224757; 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=lSpgyCdJNRAMDXpg7VQ9b0fkT9+gYtxLzlO7L2ItFho=; b=XFdM4lIYcOjfX7tyKZfz03LzG5m5mCMGBuUYkHq+14Gw+OB/fk5aWuce8vaRiS6XZJwYF+FC2F3QX2DbtOpSaiPfgg+wyIQjpIT9/R1De6RDCShDQ2e+eWtac9t1iGgcukK93dWVHYmI7Ay03gXqcDSgz/+m5MzoozRGda8CcJA= 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 1772224757604577.0653707001075; Fri, 27 Feb 2026 12:39:17 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4Zt-0006nq-6l; Fri, 27 Feb 2026 15:36:49 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4Zp-0006mY-C5 for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:36:45 -0500 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4Zn-0006o3-I5 for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:36:45 -0500 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 61RIeo5a373459 for ; Fri, 27 Feb 2026 20:36:42 GMT Received: from mail-oo1-f71.google.com (mail-oo1-f71.google.com [209.85.161.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ckgrtratq-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:36:42 +0000 (GMT) Received: by mail-oo1-f71.google.com with SMTP id 006d021491bc7-679c448d15cso30032856eaf.3 for ; Fri, 27 Feb 2026 12:36:42 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.36.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:36:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= lSpgyCdJNRAMDXpg7VQ9b0fkT9+gYtxLzlO7L2ItFho=; b=jCSZK2SZyhJ4KS3c nwwAsHVjxIevccMfrZym+9/kz0A8hyp4RsfIDhkug5EIBpoGOauDIBPL9/wOs74B 1p7yQ1voBtchrdJlLfELbPNzlh8Jfi9QER+rp40zXxMP0fElDDIsnTB7bZGTwhvI HXHYErKrV1qJq53GMcKkWgC2GBbfnmQ/JeTwl3bZBQ9NJs1MaELvwkqCkyVOCpzG g6YOl4gSguhRl/oLrO4s/dLU9E+bZgZH9j6BADLTSd+qs5/zctP+BXSc+TfrOJZE SwlLeOb4BoFchrBatuupdXmo30AmUQprsaDsijOjtHsyk8nIgE+WIwGry1iJEZR1 guG5ow== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224601; x=1772829401; 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=lSpgyCdJNRAMDXpg7VQ9b0fkT9+gYtxLzlO7L2ItFho=; b=IzQGZ/g22OyunkJcUmZ/Ej7WFlPIJPeg6TCQ8wiuWII2UG0Gjtt88H0KFYgoAoxzzo zEA07ChyBomW31MPeCOeQUip2iy++YGGYT4XGwcJX5WuMzvYVGdLFGVseeIWgNIhMIph q/aVgazxm8EO5E9InU/2GccKodBglVjjAjHyI+wkF3ABAIG9miO5qiOz1watUC9k1xeI xklHJRWEQZ67t/q82PfUHYJgRcL4SVwlxB56kTOi9H9OQAbJW6fc9dWDwhHMXBDQRYFz mbsSJ/UwAj+vCg+OEdtJfh83xunnCzY/E1xfGf2XVKN8JPiTS+a1qKPwCri/0C3YUH2g Fi4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224601; x=1772829401; 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=lSpgyCdJNRAMDXpg7VQ9b0fkT9+gYtxLzlO7L2ItFho=; b=ie8KgO13asZpLvZ45Zsk3A6eY8k8uguDf6lsxzaLQo68cm67/slQX6oSj6S0n60KWF svvKDF0mDY56YWJkshZdtCenZ+APChLiY4W2IK0HvgrkcDzF3W06v/0Rwbs8IHT8lrMF /HUi9Udaf7HDaDgEgY61VT0G2rmBL16kHQV6neIi4lYYNRBpdW8s7tH8ree/iG9aMnsm KDsTJ/dMR0IkhUwbcpC3AnoHkGfAu+UjJ1OWV922gNaGP4FELYYkVzcU/jKxmDd3vzMM HM3CJwRr0LBTjkwvQ/SGzSWT1QmSbpjqHmApAU/t3AqV89cJZOe8RYG2v/jRq+i4TGog RreA== X-Gm-Message-State: AOJu0Yw5h9KFWVB8avqmMUrEQ8DgXAyPu5lvwVeEZTNMRh8CCezNv5Sk /tiTGpw36BQapu4fV444Povmawe5pVO2arqXI2uJTum292T1qqiQBiL/S566VY6QwSWYitIvgOF 1nUE1hzdoeeTJYIQ9xrsIMBTy+YQlqRfYgLYFJoXZvPgjPGylYY+wEIItfOai3NLaBw== X-Gm-Gg: ATEYQzwNjezUuVdF9qhDQZ/Vli1uAi4Ly/hSknnYb3HZDb48f78h6Dx3w2uX/HyxZFA FYNHNds/lxNurscLtu2gHyl1izage8md4GRI9n758yOCDGPdhyNfHHC/+24DjgaWzCFkXpyWQkG kWEeti4KMhMDClPwLxaBSVJqYCldOL4yiIEkuFTD+urCOks19m4iN/PQtSvfMdGMdTwjzOx1kgl wklxaTWZo+wLwqY+dHSwcmMl6w8QR2TWsLubNeg8nebMkAvI7z7VmZHwDYfVosQnxT08wWAYmG/ DVTGRZ6t/FJ8+XaRVNDY2B4u70fe52Gbw9Gecdi1KniSFDGEabsDUXFeH9G2xEMkenCXN00U5ZO jB+ppCg7sU+gzferfeiRceY7Cbi+UhFd2SIa8IRbppDx/GuRnmW1iO/a7w8oo+DMCXZoIag== X-Received: by 2002:a05:6820:81d2:b0:679:de9b:4869 with SMTP id 006d021491bc7-679fae11a25mr2570793eaf.24.1772224601216; Fri, 27 Feb 2026 12:36:41 -0800 (PST) X-Received: by 2002:a05:6820:81d2:b0:679:de9b:4869 with SMTP id 006d021491bc7-679fae11a25mr2570782eaf.24.1772224600759; Fri, 27 Feb 2026 12:36:40 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 v3 05/37] target/hexagon: Handle system/guest registers in gen_analyze_funcs.py and hex_common.py Date: Fri, 27 Feb 2026 12:35:55 -0800 Message-Id: <20260227203627.932864-6-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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=C8jkCAP+ c=1 sm=1 tr=0 ts=69a2005a cx=c_pps a=V4L7fE8DliODT/OoDI2WOg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=-IRm0M9p1sl727KxlF4A:9 a=QEXdDO2ut3YA:10 a=WZGXeFmKUf7gPmL3hEjn:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: mQL1e52WgmNGNGrPcIhC5DYdBbsk8yF9 X-Proofpoint-ORIG-GUID: mQL1e52WgmNGNGrPcIhC5DYdBbsk8yF9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI3MDE4MSBTYWx0ZWRfX20Q+6L8kj55R TZfRuWE8zhXi8OOJ1Wz1/GRgPikWoXtHj9/qM56n8Uh7ns0v8IV60FNLxRJzsHWBeo3O0b5Pqvn oYOe7A8zze4lDyrtECAUROCp8TlD92dRc+EC8nBtRhfvDOCMf1F6pb03omfcgPeKkQ9d90UpELN VUCF4SfHSv2MeWE9V/DwYbwJJAqSigeXfyYd3BRjrWW6iamHmS2j6YI/ZMm5GMx/W8mEB7qYK+4 uSYoECQ5IoEIm0Heo5GRTKFlzPdhq90D2tOK1wiDxqdSorJESM/ZmBDOrld4OQ8XsKK90NbRpYH FhVMYa9oTZmRLVKh2YT5S5L2d+LEdFKnm89vDfcPiiHIKeLkwrgWGQyYuRDxk3RJ9pun98cD2FP rTby5QnIiC/Wl0ekHuhc/DICnEj2PKcd3nrPnb7aJvjcpbBr5JsRulxSScXg0GXY3Ug3rQdH9J3 EB9E80x2uHrXarvmq4A== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 impostorscore=0 spamscore=0 phishscore=0 malwarescore=0 clxscore=1015 bulkscore=0 suspectscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2602270181 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224758946158500 From: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/gen_analyze_funcs.py | 21 +++- target/hexagon/hex_common.py | 161 ++++++++++++++++++++++++++++ 2 files changed, 179 insertions(+), 3 deletions(-) diff --git a/target/hexagon/gen_analyze_funcs.py b/target/hexagon/gen_analy= ze_funcs.py index fdefd5b4b36..985386c1309 100755 --- a/target/hexagon/gen_analyze_funcs.py +++ b/target/hexagon/gen_analyze_funcs.py @@ -22,6 +22,8 @@ import string import hex_common =20 +def has_analyze_func(reg, mode): + return callable(getattr(reg, f"analyze_{mode}", None)) =20 ## ## Generate the code to analyze the instruction @@ -42,6 +44,14 @@ 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 ("A_PRIV" in hex_common.attribdict[tag] or + "A_GUEST" in hex_common.attribdict[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,13 +68,14 @@ 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 has_analyze_func(reg, "read") or has_analyze_func(reg, "write"): + reg.decl_reg_num(f, regno) =20 ## Analyze the register reads for regno, register in enumerate(regs): reg_type, reg_id =3D register reg =3D hex_common.get_register(tag, reg_type, reg_id) - if reg.is_read(): + if reg.is_read() and has_analyze_func(reg, "read"): reg.analyze_read(f, regno) =20 f.write(" mark_implicit_reads(ctx);\n") @@ -73,11 +84,15 @@ 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) - if reg.is_written(): + if reg.is_written() and has_analyze_func(reg, "write"): reg.analyze_write(f, tag, regno) =20 f.write(" mark_implicit_writes(ctx);\n") =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 diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py index 63f83a8de2a..b5ab2efa5a5 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -33,6 +33,42 @@ overrides =3D {} # tags with helper overrides idef_parser_enabled =3D {} # tags enabled for idef-parser =20 + +def is_sysemu_tag(tag): + return "A_PRIV" in attribdict[tag] or "A_GUEST" in attribdict[tag] + + +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 \ + any(attr in attribdict[tag] for attr in 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): @@ -371,12 +407,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): @@ -1012,6 +1052,117 @@ def analyze_write(self, f, tag, regno): ctx_log_qreg_write(ctx, {self.reg_num}, insn_has_hvx_helper); """)) =20 +class GuestRegister(Register): + def gen_check_impl(self, f, regno): + if self.is_written(): + f.write(code_fmt(f"""\ + if (!greg_writable(insn->regno[{regno}], + {str(self.is_pair()).lower()})) {{ + return; + }} + """)) + else: + f.write(code_fmt(f"""\ + check_greg_impl(insn->regno[{regno}], + {str(self.is_pair()).lower()}); + """)) + +class GuestDest(GuestRegister, Single, Dest): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno) + self.gen_check_impl(f, regno) + f.write(code_fmt(f"""\ + TCGv {self.reg_tcg()} =3D tcg_temp_new(); + """)) + def gen_write(self, f, tag): + f.write(code_fmt(f"""\ + gen_log_greg_write(ctx, {self.reg_num}, {self.reg_tcg()}); + """)) + def analyze_write(self, f, tag, regno): + f.write(code_fmt(f"""\ + ctx_log_greg_write(ctx, {self.reg_num}); + """)) + +class GuestSource(GuestRegister, Single, OldSource): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno) + self.gen_check_impl(f, regno) + f.write(code_fmt(f"""\ + TCGv {self.reg_tcg()} =3D tcg_temp_new(); + gen_read_greg({self.reg_tcg()}, {self.reg_num}); + """)) + +class GuestPairDest(GuestRegister, Pair, Dest): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno) + self.gen_check_impl(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) + self.gen_check_impl(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}); + """)) + +class SystemDest(Register, Single, Dest): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno) + f.write(code_fmt(f"""\ + TCGv {self.reg_tcg()} =3D tcg_temp_new(); + """)) + def gen_write(self, f, tag): + f.write(code_fmt(f"""\ + gen_log_sreg_write(ctx, {self.reg_num}, {self.reg_tcg()}); + """)) + def analyze_write(self, f, tag, regno): + f.write(code_fmt(f"""\ + ctx_log_sreg_write(ctx, {self.reg_num}); + """)) + +class SystemSource(Register, Single, OldSource): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno) + f.write(code_fmt(f"""\ + TCGv {self.reg_tcg()} =3D tcg_temp_new(); + gen_read_sreg({self.reg_tcg()}, {self.reg_num}); + """)) + +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 init_registers(): regs =3D { GprDest("R", "d"), @@ -1058,6 +1209,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 Mon Mar 2 08:45:39 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=1772224676; cv=none; d=zohomail.com; s=zohoarc; b=TioRd9GnDDsjrodescqWC3wCrM2o1sin4+NWaL0fM9SbWHzrHg5o4hxufW4unb8qSwoGPr251bZOm0kgrs3//cFaHZ5lMUWEQefmTeNu7yeFAJQhVCG+usPFvCa3CmCbWeEwsgZWTHMYY7j2BWWWz3VGwCe62cdRpYfiYHa3/wU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224676; 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=zqBYBLZUS/PTyeb/BYo6MbQkmUruROsWYFTRwF4oTEs=; b=gBTdikB9k4A5hUUSMNLZS7zeVgiH319GUZDx/IMOcxECfacDOMeFkX81xBVVkca3NxAQZDEUtko17l1gsQZBXRR6PwzkyjVhjP+2fEobu7Zg3Br+xlt76u/nvD6tT58Lh9BrXsFh6xe9h5ivA7SHgVhAwEc3P1wa7qKBPNmgtKQ= 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 177222467683340.11111888794187; Fri, 27 Feb 2026 12:37:56 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4Zs-0006nb-9B; Fri, 27 Feb 2026 15:36:48 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4Zq-0006mh-0S for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:36:46 -0500 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4Zo-0006oL-J6 for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:36:45 -0500 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 61RH0Q6j702328 for ; Fri, 27 Feb 2026 20:36:43 GMT Received: from mail-oo1-f72.google.com (mail-oo1-f72.google.com [209.85.161.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ck8x8a30m-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:36:43 +0000 (GMT) Received: by mail-oo1-f72.google.com with SMTP id 006d021491bc7-679c6ef1538so51005858eaf.3 for ; Fri, 27 Feb 2026 12:36:43 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.36.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:36:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= zqBYBLZUS/PTyeb/BYo6MbQkmUruROsWYFTRwF4oTEs=; b=K36AD/LHpzrUjus0 lp+uKiEzIpojlNFfJ13Dc4vXV9nfOvwmw6BDsDgVuanYf6XGjZtbnJC9WvAIjaU4 Cjl0go0s2DhuafcgKR7nMyzboybT9ZZgsgaAPwi/MHDbjs9TGV0CCKeulga2OT9w cdZglYdWZcR8n3TXRC/ktZjyiEXgTj+cpG3zRsNYXCBLlhDNa1gYKUnGBmy5qH0T wPsat9yDLKNzhaSai3DwosS5/nCA2vaxVsUKpIkAqNOjFtRlkeXHLEKflhD0/lgG DthhMPriNmyRpL9NmufRwBu2aqhPtveV2S8aJIHkyU+OfRAkOTCJJRYHxrHl3MnG 6mAlcA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224602; x=1772829402; 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=zqBYBLZUS/PTyeb/BYo6MbQkmUruROsWYFTRwF4oTEs=; b=IJTiqmw6mM6yVbrQ7c68Dn4OG/J4RWle6B7tCi3TdEbMiYVLti1t2O4DlkFNYdWuPe +TWiFi59IlUiLEY6aWT87zVgzrcRVattwAEDjBdwU1zipUW/S3QdyAAZxF3xPIAKO1Sj LNgCwZRBs8NpNQj5lcBa99S2k24ecSs+nT89SIknsxTfSOGuJ9ZMiNSoNwnrua97Y5SK uLnNMaPFx8jLhMJDKaxxvhVtnr3PIHRMHdV4WBkPiFSxR60cr7/DYq3Kd3EHXdV83338 BFl2HGC/KaDgJn9i9E8G96EdPsxMPkUrga2IzTfa53g6K5QSV4a7+pr9mYECI+CeW8Og 2PsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224602; x=1772829402; 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=zqBYBLZUS/PTyeb/BYo6MbQkmUruROsWYFTRwF4oTEs=; b=DGsSf/ZLrQhHm8M2v67XarHeT6XA/oj5LqmNp6MP4a/qOOvIGHD3W7v8rQzwFbpvcA xbrcMGXsOH8g53yF4awS0rGEXgsLAnEjNBI77VV4Zv+jsOosgMiDhdgAf7RvLvOkP6G8 VVOdmfmZpfYcH6leMBdZFzOaKn78OlTcsBDA6Ekvd913p+IBOcARUGlED6nS+PCldcxY BckUcsKOGKfhOiI9cYZEWgE6i5cATq6sHUq7QGhP3f5yOp7i5uDodBlP7hIW9RpA+muW XiYNpD17HtPJm+7uyKLxd1XWhOLFzr/7HSji7gow/TR2sWe8xP8ASTrfyoNql7VZiPUn 4Bjg== X-Gm-Message-State: AOJu0YxA404YP7a9SgWSX22nSxzltSJhDW63iNQeYYSzfYYea9VvRewQ 3ltzEW7a5K6hGfpnPtw8pcj0M+tQGNv+GJSZWoNlpqhRNuaoEJLWsBO7ysdVY5gSeYEWEQlUZFz OQcXr1caqTyUnTdNPMxabip7RHGe7WPZi57Kl9yJ0d8hZycE4U/UNtzZaeOskttbmng== X-Gm-Gg: ATEYQzwTdQL8+WcdEOdg6f+rBsBBU5L3HLALW8AMV54aABKT6sn+Y3NaWTLOvkjaEQZ fpZi49GPhqOe8q2y9+YUTfCzRIuwL5BqdMcqDAzZ31KrMie9efiLpxLFAX2lF5jyokweK4DvAWY wS2TO7w62BaEQUnBudeYeO+SsOPFybNGV4txNwfV063Igiv2rLjVfnFxE7iHdwdwe+ZTKpi/urP dRYyoYUF6O4SlZ2Vf9dTeLpm/MgZyUn8fe9sVMFkNeEJUDAkwaPj6+77HFcqSY3FGG2wf3ziW0D lsHCaoSopyxD2Ej56fbDCtqq3VQmYEj6moaCpY2OJfWBShfeyYbO6Yna8rBJvawbVUKyC8HvqDY r71Vf8kFadDB5FzhvCn2ZJfAZpPH9hIEyoNhduFjlaMwAMoY+5m9PRcQY/19Qtq8h0egqfg== X-Received: by 2002:a05:6870:2b08:b0:409:76e0:bd84 with SMTP id 586e51a60fabf-41626f24988mr2510363fac.24.1772224602375; Fri, 27 Feb 2026 12:36:42 -0800 (PST) X-Received: by 2002:a05:6870:2b08:b0:409:76e0:bd84 with SMTP id 586e51a60fabf-41626f24988mr2510347fac.24.1772224601955; Fri, 27 Feb 2026 12:36:41 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 v3 06/37] target/hexagon: Make gen_exception_end_tb non-static Date: Fri, 27 Feb 2026 12:35:56 -0800 Message-Id: <20260227203627.932864-7-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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=WZwBqkhX c=1 sm=1 tr=0 ts=69a2005b cx=c_pps a=wURt19dY5n+H4uQbQt9s7g==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A: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=_kTDFcnIhj0vC2WMYgMA:9 a=QEXdDO2ut3YA:10 a=-UhsvdU3ccFDOXFxFb4l:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI3MDE4MSBTYWx0ZWRfX6/6cBAGAQKTC NXtjRuQLt2AQpZfbJs4o4SaLM6Ak44STv9smYbBHr/o3DsbncjsoUWgOBFnSZ1go9EVgegEQhZG Y+IWz9K3MGL+SoGUN7sDH/7vnb6t0JDSwvDHH+oPQKpDlg9NNRdwyu1MEYJtL3fKV/PxxbHJJDC goqa+utfGZUFEjyPKA66Tild5vzFsJ9ud5gfPOPf8aOKRgdsslvsSpapI/ZSgY1khj3j4oOJnBI 8ifgrs0KFjTOjitWX3EzsyIHlRav8vJ6STPIr+8oIG8njvudtQAmi6RyIxY70GiAiCnWO9MhXis NvFQdMcYaI9bwxdQbLyZCZCmKvf1g2C3rOp2b0h+jp9ofxfPuOD9du0Cn+D2IHUbHLGA8orE0VB dv0GEAxaDqv/B7puefTdnsaeyRyBVLI/IHHH+yTGtUNbLHr4SwNuuSjE8IESKCW4znaqaTXaKay wVDnWPfNzc2GFnDrGOw== X-Proofpoint-ORIG-GUID: WLFre0a932fRuQ4MXFg1mkfLujB4l13K X-Proofpoint-GUID: WLFre0a932fRuQ4MXFg1mkfLujB4l13K X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 lowpriorityscore=0 phishscore=0 priorityscore=1501 bulkscore=0 clxscore=1015 malwarescore=0 adultscore=0 impostorscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2602270181 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224678685158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/translate.h | 2 ++ target/hexagon/translate.c | 6 +++--- 2 files changed, 5 insertions(+), 3 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..877cb38ae77 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); @@ -207,7 +207,7 @@ static void gen_exception_decode_fail(DisasContext *ctx= , int nwords, int excp) =20 gen_exec_counters(ctx); tcg_gen_movi_tl(hex_gpr[HEX_REG_PC], fail_pc); - gen_exception_raw(excp); + gen_exception(excp, fail_pc); ctx->base.is_jmp =3D DISAS_NORETURN; ctx->base.pc_next =3D fail_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 Mon Mar 2 08:45:39 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=1772224643; cv=none; d=zohomail.com; s=zohoarc; b=QYRaKzl9lzf/LkoCL+GpnRd6ar7jfYW92EZJS5v/01ORClNDGZ1DFx5Lcwd+HNObaN2iMG2dR5i/o5cmMgMZUIOihXEmEHlWv5wrIha3NZ1daj3hRCW8SagHV0kWmBfomdzNOxnyCSZJCxHeFqJMqwksGwBt5s6rZ3LTX2TFOpw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224643; 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=MwRTZ944cCzC7sNlQRLIjZQwXW3NRcr8MEy9smiEVqw2VCI8nrJbtDVBwchiV9RBLnrRX4n98pP5eR60uSQa4mYfBSoeAAw3hYcO2hh98rLs4BfCnVyYYvC9P9s+RUPob2S3quVQkzaGrzG6wLx3exIEka6AKFeVFTCrwZh5r0M= 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 1772224642968185.89318624733062; Fri, 27 Feb 2026 12:37:22 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4Zt-0006nu-LL; Fri, 27 Feb 2026 15:36:49 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4Zs-0006na-5K for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:36:48 -0500 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4Zq-0006oj-DY for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:36:47 -0500 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 61RIeoRe373460 for ; Fri, 27 Feb 2026 20:36:45 GMT Received: from mail-oi1-f197.google.com (mail-oi1-f197.google.com [209.85.167.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ckgrtratu-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:36:45 +0000 (GMT) Received: by mail-oi1-f197.google.com with SMTP id 5614622812f47-45f0bfd68a3so14395608b6e.3 for ; Fri, 27 Feb 2026 12:36:44 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.36.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:36:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= +b8voobbRHB+fEzV3OFcGYw0x0PvxvjT9mR8Wf/yF+Q=; b=D2fpoSja4rRO/6bn e+KfK4E2oqloHlRk5RdL6VqmHgEvWtGVzTI27/6SpYHlvEZg3XQygYXsMkFiEXDz naQL2sioEON4Dxd8McLPpTPPhR6Z4HzjSZXjpY3ubfebQrqifVVNAwMJzGBFb/wM q5a86VwJc7IzBoUxfHQ0f/ua2CSQVk3cNLjMtCPCasTxg4uL5YWvWo3m8BZmZwa+ 7D843T1J0fWylI4DzLcgDiJXKs0rQQFPNt//oNe73oiYXhLh9HR0OXOeG9OUJ3I2 IgibMYbk02ICNGFV95u3OSB+wZqDi2Hs9x4rJRIeKVOnCqaYNuLEKJ+LbLXYTUi6 H+l3NQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224604; x=1772829404; 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=ftgCDQUQORNKSq0HHIGaetK0xSrba+bhe+bkoJOc7qPcRvT1OIdVcXMmWZqBRql/tT IbNQvhDUcAf/MRMNcX5le+pLGBvhZW7tc9wYSNPORWcSDgLctPltSxeEe6ca++daHDLD oSMWYtJAFhFX5MPUNC5lMGM/Qn9Qze/eG2ynnnx7LX3oFfKJIhuB3BeqEoRYkRDSduyP 2M7KaBfAR+UPm4CDyR/cfxbnCBWxOo8w9pE8Kc7O42xUJcVdNc/jM9DCLGSWQR2e6xUe IrHUB98Gz3ELF0y3SyKOqMpG4NHwDSYok9NCZ7t5iOqPGPyPEmDRhOeh7GVn3aaS2hVZ 4BAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224604; x=1772829404; 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=V72B+kdHC0c5xQsC39xTC48FFI0SIwdniVxUtu3eY/w5jlTe/y8nwQ5kTI9MMsdpkJ N1pazzspctoXxXcl/9O+fpI4LnxEkdl3NMXtfLmh1c0R8Tq+eFxj6zcOucncAXJ9NzN3 WTbSrVdu/IjHSseRIAZXuS8wUaI5aWdP/neI5yOlsDSkuvLZ5zpwCQEcjCi5RUFEGZM9 Vlu5B0ZS90SsxYipGscDFGjxFvmAZoCVF12SC5W1vNGALMCWZ7LJf3hKYMMnyVOymfCk ZdnVhX/sNP8YIhCXImVbMveNT8IiPzmD4tCE/Fwxp0eToLntDPXUFBF3O6gkcp8X77rI +2mg== X-Gm-Message-State: AOJu0YxPlizIy501McafUxvlh/rQPe1ar2bncr4/U9CHWcvXs+ZXa7F7 8BAcSd28T93ULjOGAMkqEQHFVE9E9S7sqEBlx3JBSF4zm8ksN+ab05SoBqSXsH0LXkVl7vl4Blq QPchfQt3mVR9R5pDjowntPH5R8KBFXRbMyvpW4+sbYK0jEOAZISxkhPsTGt3QUvfxEw== X-Gm-Gg: ATEYQzwOXB3+w0SMzQXxf0q6FxiM3P003mTaV8LzBrCbUmAD+BpCbaksAWroKWLEwXW kDjOlKXtIZBd5H2Y4xVnEt0pDISwLNVVbHtY4ztpErbt1F+w4t8ujQq8hZcT/7sGie4fp1A/H4D rZGaqO+Od7te9dw178SEO5a/RYKXinKIHH6u8y+U398ycZoqfXqKS+FQq9DDz8eDnBiYEiM4FWd zNt3HBEqqKGtf9yYxE1rR6W7C6jScXHxHScRKvasvINfjx2iYKIOW/4/hcv4b2OFHw/11xddlxi PClySkljwsM8LlMVCPWAClzHoSP5P3SDBQLl+8oMCe83hWek97LWLMc2Kl1Xz1VKjcIIXHFkAxG JXx0Gjy10PeGdxY+Ea8OMaMXqZ0CmsvZj2c0hlDZ+tCHGGJXtUO+xQOdu5tkatIiV30CEHg== X-Received: by 2002:a05:6808:3a1b:b0:450:3e21:f567 with SMTP id 5614622812f47-464bef821d4mr2303300b6e.56.1772224603859; Fri, 27 Feb 2026 12:36:43 -0800 (PST) X-Received: by 2002:a05:6808:3a1b:b0:450:3e21:f567 with SMTP id 5614622812f47-464bef821d4mr2303285b6e.56.1772224603426; Fri, 27 Feb 2026 12:36:43 -0800 (PST) To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 v3 07/37] target/hexagon: Switch to tag_ignore(), generate via get_{user, sys}_tags() Date: Fri, 27 Feb 2026 12:35:57 -0800 Message-Id: <20260227203627.932864-8-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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=C8jkCAP+ c=1 sm=1 tr=0 ts=69a2005d cx=c_pps a=WJcna6AvsNCxL/DJwPP1KA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A: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=orAq0Iv1PZLbcfkgE-4A:9 a=QEXdDO2ut3YA:10 a=_Y9Zt4tPzoBS9L09Snn2:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: JD6VlIC7zGNKIyJfGmRu2oRvzjZLkfhX X-Proofpoint-ORIG-GUID: JD6VlIC7zGNKIyJfGmRu2oRvzjZLkfhX X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI3MDE4MSBTYWx0ZWRfX5p+j3k15SHTR tsnhtDuCHAJcXkN51Oc3a9P6BrLH0VSyWyuAn42T603Trv/mFAkn4EWGeu5m4RKD18bI8e6GU2Q TqQPuMDo3UTdg1QhQin5py1b8M8T2kg7+dI0W1awuozHjyPs2Ji7XQOEz4N3casKmet1G0VbtBV KDta5NuB46WgibswPuj1cRW1y/izX+K33fqU8f6yG7FcNSGgN+kktSTDzxSM+BlbTcRZnHtM2cj reE2x8RQASiMbf/Ma592Rg+inGvWO63MAczOF/iwHblP9eJAZW1D91bNoz4dR69cDbnY+2BhQab c/lYQQ29+4wcc1loA1y8qz7FctK104uvJDOlB4/1rwNLxvS7H5wGD5qD8tl3CwmVUsw0a7hpIPN ftUU0hjGH/M4KVE9lzeFCVPdt/u5lCLgUsaDk4NxdJ6TYDABeFbdwVeColn2+TL+hrV7p0wlmN5 tLIeNkyPZPtDhEQuVmw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 impostorscore=0 spamscore=0 phishscore=0 malwarescore=0 clxscore=1015 bulkscore=0 suspectscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2602270181 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224644832158500 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 Mon Mar 2 08:45:39 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=1772224867; cv=none; d=zohomail.com; s=zohoarc; b=SF4Om0omsFJyVScu+F09z5Sh1/nbuqLzMgcF2LDv6AYru//b6MTuePq6rZ9pSPGd0++EVcejPqSESY7i6jDT7pi06DdiyJmj0Q6bNeh9rv8aiRojwzBW5D96SuB+fPo5hce/arKebyqosURWjPJ5LNzeWKpFUdyOK7vjebaCguU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224867; 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=SGXkHyQer2bycGWbJ3CzK4wUhxTssj22khADz27YlKg=; b=kzRzVbn2+NhXBhRgTI36Wvq9aDtbwJNZmmV1UYw57LxyFZCy5yCYpONKn7VV9auves5ao8pgXz2crX0cL2WRfZfNHstIQtTdc7gL6QD88x40Z+z7mGmRwXUp9UrYt7aZdqoJxL2dlHPHWRfspak96thCcTGTJo4Oiqsm75zPU8s= 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 1772224867948334.7725085447047; Fri, 27 Feb 2026 12:41:07 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4Zv-0006on-Mu; Fri, 27 Feb 2026 15:36:51 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4Zu-0006oP-QE for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:36:50 -0500 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4Zr-0006oy-U3 for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:36:50 -0500 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 61RIlrg21712871 for ; Fri, 27 Feb 2026 20:36:46 GMT Received: from mail-oi1-f197.google.com (mail-oi1-f197.google.com [209.85.167.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ckgv5gad0-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:36:46 +0000 (GMT) Received: by mail-oi1-f197.google.com with SMTP id 5614622812f47-463a075e079so13196001b6e.1 for ; Fri, 27 Feb 2026 12:36:46 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.36.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:36:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= SGXkHyQer2bycGWbJ3CzK4wUhxTssj22khADz27YlKg=; b=dDx/ArY7G/i4VJ8W 3wv5PGH1uPu9hdSFMqjwMY+gRNyTbFXFC9nlkUsESLjR48BM3tampNsGFy9fSaUY fLFIDCxw01+nk9joK6FOgfYfPMNPnY3pLkP/oFOx9j4Rxhf303AuHAzGtxR4Z3pZ rhtBkpyBw6/SeyOvVpGrzQdTRoosBPwMFsbWGIOzUtPSg0UTtST02QnI9cKrBlLH AkCnh70f/U3Rq2q/riZM74FK0eNoGs3r6Led2PLq2RsXwAgktmAXwFeRlCuoATQs vHUZENb9Wtzw9BW17854JfOmUdZR9fLPGdzKKMWsH8vUmT9BWNT1FghkjuaC+EjH F14tng== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224605; x=1772829405; 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=SGXkHyQer2bycGWbJ3CzK4wUhxTssj22khADz27YlKg=; b=Hoa2PDnSvSBwouXaG3vjSLPmUrMIeu217tfSIxOX+NipY/D97fK+hPaC7acUhKnBa+ iFGTVVWzArre8CaeFg+wEkOIJ1UIfX4zkLPLKMdZYGMST1pB0o+b839xQ7QhcghgUngB 6+jJYMEDW0JzcKedpSir/bamoG0T59uGmmH7IRpehJ/cw/LzbCzJPwg9jD+ZXFvp8lZu lN1Eq9L72z7SlHk3lthLALehuHEL1PAx8KIlPOXZpSD/K4ATXv4tXnR3wn6m3r1L6vXf GvXaPu+NUUHtOzrL7iUziTQPcY+xdYMVSDJOMmkt7ydQ7beaFMx8N4Ab/zibVm3eHYnU yDiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224605; x=1772829405; 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=SGXkHyQer2bycGWbJ3CzK4wUhxTssj22khADz27YlKg=; b=eOgqCkNA5eeusO6+27QcDOP9j8WbAwXKELdZD5n7Mdo+wSe/OIH7c1F6P46eu5g76Z mrjd0sabBzb9LbvrAYlN/0uBqJfw1YM5OZhvZZXYWPBclI4TYZ0Gs501WXQ7vkLpmRJM 4P3HvoXyYaTq90ttsqTbr7T6XnZEYoAvdEOHNx9A0MXe4h5TrAMlZup0R/sAr1mZO5rr ILr2QBXm4augtGt7sN/lA4Lt0l3ImZmIaMKyjXIE0n2VYO70txCTYGSTciZyhXFeAltx 0BbwPf/VvLl4GfPKZydSYZuzBgxA8U8gRAuedNt0IuftpMGVlEWcQZh1N4VDNmWRLc+1 CR0A== X-Gm-Message-State: AOJu0Yx6wit3GDtFDwb3HGfQjzRA3OtknFgLUeC7oaD0c7OtL5BywUdN +JN89FDXjT9vjAnAIKZX8bCqg3w+AjKZ5mKJz/X8Q1k5Ji2ZrmHyUaxhaSFTZvNOyXLlNMN+tzi bAo6gKojqDk20DE5D/llpdwJEEyFbsaOVXZ6erouZb2Zq2OaMYOsMl8yfeL8p+1KO4Q== X-Gm-Gg: ATEYQzyNYpoNNrC4TF6r+QRswSbblzY/p7HT3WqC+EccAXTHa5rVEtlqQQGtkditt+l T7uz9X2hAtpTbL8wLTdn2QFIUwAzDfj5adJmHZR2PWct2B7VyQZc9jRsQodSE+EYeJoydD56PDB gRwx7rnuQYd/dhaZxvXOWH0+edQ36PMvJUlScIUdJ3nRsfyVnxNLxhjjx1FgNka1+TMRrhoMwpW q0ampyrqE8xPkpwrAXEXz4cNQgdLhR2n1rpToeByRg3m/vrL3XevF8Pt9+/AEGlmDHBRIecyo+T lNZkFt8ySQXm3sADsre6OoNsNRH4Yss5p9CMDWPIYCUkgrPAJYnsz+kmf0cRXw5x/VR5U53xJCk kPAZmZfqIcKbMB7wCU9rqNr8yR7Y49v+4Cb3KNQLeWUrArBkBg9H4RCfrDgQq46bf3cY6Gw== X-Received: by 2002:a05:6808:518e:b0:45e:6697:b7cd with SMTP id 5614622812f47-464bea288a5mr2266924b6e.20.1772224605547; Fri, 27 Feb 2026 12:36:45 -0800 (PST) X-Received: by 2002:a05:6808:518e:b0:45e:6697:b7cd with SMTP id 5614622812f47-464bea288a5mr2266902b6e.20.1772224605053; Fri, 27 Feb 2026 12:36:45 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 v3 08/37] target/hexagon: Add system event, cause codes Date: Fri, 27 Feb 2026 12:35:58 -0800 Message-Id: <20260227203627.932864-9-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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=RPq+3oi+ c=1 sm=1 tr=0 ts=69a2005e cx=c_pps a=WJcna6AvsNCxL/DJwPP1KA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A: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=XVQBMALLqD4WjdKg770A:9 a=QEXdDO2ut3YA:10 a=_Y9Zt4tPzoBS9L09Snn2:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: 00jNnpxmOfNB-C4PnPuPzMhTc0TRBjwL X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI3MDE4MSBTYWx0ZWRfX62FJfZvtTink TN3gd/nE7Lfp8PyaPj+YkRYlW4rPCOIrQYFUlmXM5DRcdMdFVu32ZNaCOd1cKbbb6QJmpxn6lov PgruSWR7pAMHh1lprgqkUYLvkCs3HLdEyq4nepma9sqSDAohYP9zbKZa1f8euMTbaKzN3gqy2jH 33k7/+08zit7psmaLE8N2/RU3v1DyKbQ9k57oBE0N0UIJL3OVPB4DQkbBQNuybzoFqJRGq4ARQ5 fb4p91YCLvtm/hcV4ks8U7MlpaFZp/t1PbPQ/Rprd1R/BNW8cCo6u8jGP//nFUC+ef4pwcoiiwt d5klzImFN/8kR7JI6ztuQG/GkxjiLP0Uz0tX/+E7bGEk1vL0odSuM99KDBE6l2gwVdHU0SsyU3E x5zX76wCS7QiHAX68UXCfoiiFMEc2SDdz+Cm+5lHTW7m/ntq1gsLLQbvnWtWZKwI2xFtpzPYg4P 5yVhO7F8vUTDYPHUAEg== X-Proofpoint-GUID: 00jNnpxmOfNB-C4PnPuPzMhTc0TRBjwL X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=0 adultscore=0 lowpriorityscore=0 suspectscore=0 spamscore=0 phishscore=0 priorityscore=1501 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2602270181 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224869322158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 9 +++++ target/hexagon/cpu_bits.h | 75 ++++++++++++++++++++++++++++++++++----- 2 files changed, 75 insertions(+), 9 deletions(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 85afd592778..049856e7cba 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; 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 --=20 2.34.1 From nobody Mon Mar 2 08:45:39 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=1772224775; cv=none; d=zohomail.com; s=zohoarc; b=N0j0o/j5yg8dvvqljijgUk8kvseQqlspUmlH2bqZeC0dTrcOMzRvattNS1AWbBLCQrJVk6Wyy0JBtuctajrjiaGAz04qyPsamqC5FkcAnGNS8r7mtgRbmExOdNqdBWw6Y87koBUhXtBo0Kknl7iIrN4H+fllvClsyO1dQZ0iQ3o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224775; 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=aYnAQp5+e16XfFimqdWu5tDNoQnvxHUBT30sT8aTEfE=; b=Ybz6qMbFIaj8fOSGzEzJXmt0j8aIOh6tABJtA8xAv5GiOmeMpyE8SkGL2RtDpk8i6ef6BwN6BVkh5U4kaxs46wmeMQJvh41pbXJADx/jwFRWdUOvjZuij9kM8cZ5gBOBr2QXDQwYWUAKtN8yCG8EljAKhfe/dH1h0oybr2gSFlY= 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 1772224775790668.0847281786022; Fri, 27 Feb 2026 12:39:35 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4Zw-0006p4-3H; Fri, 27 Feb 2026 15:36:52 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4Zv-0006oX-45 for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:36:51 -0500 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4Zt-0006pG-6M for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:36:50 -0500 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 61RH0H4r131540 for ; Fri, 27 Feb 2026 20:36:48 GMT Received: from mail-oi1-f197.google.com (mail-oi1-f197.google.com [209.85.167.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ck43rb2nq-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:36:47 +0000 (GMT) Received: by mail-oi1-f197.google.com with SMTP id 5614622812f47-463c4133ccaso35007139b6e.2 for ; Fri, 27 Feb 2026 12:36:47 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.36.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:36:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= aYnAQp5+e16XfFimqdWu5tDNoQnvxHUBT30sT8aTEfE=; b=fkMYxOjyPD7KigYz hxqE2mRLkECts3JVtO9YOoGVm6s9p9e+jZ1R49G4cWbHmlhFES0jntBtCLUNT+LP HZRBrYMbxyC6fMS7UWt0H9+F4oLACav6IOl/CSkarvVVSysL6GrTRrMn9yNYQCDm EiI9CB8olP7yeEYEfM82iEVM9v7ZU5kw1xtulNqnetPFtd8uFZXhPpTsBileeqFs Q4YLb7cjZQQDpYDQc8OFe4iKhG37i4MyR2FhFc+FtiC7blyxImQ3F4khjvSTLpzx kLbwNxxdBiiQssHa0zaM1iBligxcf/kzenqO7hxPYr/PG5VJzeSDWXO4yo2O94Np fsnjug== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224607; x=1772829407; 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=aYnAQp5+e16XfFimqdWu5tDNoQnvxHUBT30sT8aTEfE=; b=kFqH3OX9c9iTBRpehuC/iAu2Aszv0dyBZc4gQsD6iKapXLuHwHPaes4lP0frH4Sp/b NcwdBU8uHd5vAOe57eXkPj2s1f94frBzfazj6LqJzNJ1b8Caz6dPthEJEZrEoDlMNthk mV835Vy0FIBZFr0XIKegTrlczhjB39XxcI2ha8PxD/sMuut2evVrKZw1CpL9001bgGnH VtMEMicGLcvzhxuD3vCB+5295twJ4PMCWNRTFcvqj2BYfsAigcK1qm3WJI4Z+0SfV2tt TNADGrLYtA37GTyBn9WNJ4pQZQIyqVDvl/chetVlVmLOrfjeDLhtEzb/70Ubkb2pAJ/K HClg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224607; x=1772829407; 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=aYnAQp5+e16XfFimqdWu5tDNoQnvxHUBT30sT8aTEfE=; b=IE00hX+tNQCOY1ZOFORknfbRIHkuEYLyHW6GQ6J9C3U1Hc+YRyFVLWPufxMP9yM/oE Q3b7TCAty9eLym1ANYRhMe2E6SN3qQM0exgZGRML13iQmUwvkt2ZcnkuZnIKExZC8w/p xewQTAXuHImA79RuVXKia5qqB3a0UVYthp3aSH0iHwINwwsbZTHZUzbDdWR5wOjXOl2l sqQeK9HrmaZFZJZs+bpPaEVFmZr04q8dyTndb5mvxw/IF77BGcZY2vTdQ0dBkoJOxufT 6wd0595Ss6Z0rrEfmg33U0S6iB33iCgaaPgKrqFMWytUVkLzl1md0XXgRQa4P44iVrrm WfOQ== X-Gm-Message-State: AOJu0YxKxv4pbbMaeZKGz1pbX2aDnbFPVgr2aYP4LkYArPbJtYrITOwl JeY9zjjtzkSK+qi59faWvvJ6bxIAJXCRM/RogF9Tk6NCrQ4GVsJHtsNam3MT1NfKd6BDew2It7q SxGNf6wJgpfVmkiugoaP7Ety5ghf/b4N/FBJ6x6/NMhZbyyQFPDTPoJCQXKEYjIPD4w== X-Gm-Gg: ATEYQzwMsjfWGZk5+Es2E920H2FqyuZg2Wxg4q9YTNR2Byn8ttqiPx4+lxA9lZ05jnr zJf7OuK5ZE4hGGtt1GBUZsF75rralxENwHtG25fDMH1TVDFTIVxPBdOgc496cVVwRmbrAS2x9Ce zXaGZyNBdA2/ywJ09B7M22cCJYbnXAUV0PxtBEEuVx/coz/6Vw8TsnbPhdgo6WCad9NPMOBpMqy CBWcgYuLpXIjfIzzM+f9PFP18vKDcpZ3tR5Y2/IeUf9oCgw894fryil0UA/vEs88eG4GFbGZy0Y Ph/pDrSPFw2Xrr61lGkgW/BWySkbG5nWQE17bP/ibLrglx+qikfH1YikjF+Si/Z4VrouoQKPI8x S5Bd8h6Lx9YE7JaVI5EFSVfj0WFSOVxnVqYBFnNvh2Y3mFQKZq/VCONLZhTLyI83nzuj4rg== X-Received: by 2002:a05:6808:2292:b0:463:b5dc:11ea with SMTP id 5614622812f47-464be93c96fmr2334175b6e.5.1772224606875; Fri, 27 Feb 2026 12:36:46 -0800 (PST) X-Received: by 2002:a05:6808:2292:b0:463:b5dc:11ea with SMTP id 5614622812f47-464be93c96fmr2334155b6e.5.1772224606436; Fri, 27 Feb 2026 12:36:46 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 , Laurent Vivier , Pierrick Bouvier Subject: [PATCH v3 09/37] target/hexagon: Add privilege check, use tag_ignore() Date: Fri, 27 Feb 2026 12:35:59 -0800 Message-Id: <20260227203627.932864-10-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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: f_vBEV0_nl5QTezkZjGpEgTNtQkGj30W X-Proofpoint-GUID: f_vBEV0_nl5QTezkZjGpEgTNtQkGj30W X-Authority-Analysis: v=2.4 cv=DOqCIiNb c=1 sm=1 tr=0 ts=69a2005f cx=c_pps a=WJcna6AvsNCxL/DJwPP1KA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A: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=VlJJRYDoeMviBMv8l8cA:9 a=QEXdDO2ut3YA:10 a=_Y9Zt4tPzoBS9L09Snn2:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI3MDE4MSBTYWx0ZWRfX5D8bYgfCXNFS Yck4+I6jhGgf78vgnVJQo+6XLWPI3x4im33PO74tYFlFjxa6AmCQMB22KZXLcbHxOl5Kttnvdb6 /I4LlZruu5vYRn7oYGF0Eo65qOB3l9Jd2HmOBbAldC012GxM91IonT5tQa2q2MXvnDSYnxWL1Vy tcbgG9lpVTbOzWuhhiD2c+VZT/6Ln+gJDUpFuznnmbeGAy7oMBbGTRqyNSGSP/gw1Vo2Hqogqoi 2EDCNirSqnydMZlVO2D9aetGX1Ux3FicPudvAF54mLm7hnC0MHaFUNnKzgNnSa2iBKxYvoS+1MP oJj5nwyHPlHpn8pPZPqi76hOLtEWTLtP6F/FF2jEdlfXyPHQNiNPifRacVs8d0o9XhT6msRfbUj R1ZOGmRd+cxUif1YtGpAOgd6DRyUg5U54FBpapRiwcKdsk0yDcVZkRwRW5jm4CQ9yN6ScRsQ38G d5aSdr1Htol/Zrb+XSQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 phishscore=0 malwarescore=0 adultscore=0 priorityscore=1501 clxscore=1015 suspectscore=0 impostorscore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2602270181 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224776977158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 1 + linux-user/hexagon/cpu_loop.c | 16 +++++++++++++++ target/hexagon/cpu.c | 1 + target/hexagon/translate.c | 8 ++++++++ target/hexagon/gen_tcg_funcs.py | 35 +++++++++++++++++++++------------ 5 files changed, 48 insertions(+), 13 deletions(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 049856e7cba..9fd69c7453f 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -85,6 +85,7 @@ typedef struct { typedef struct CPUArchState { target_ulong gpr[TOTAL_PER_THREAD_REGS]; target_ulong pred[NUM_PREGS]; + target_ulong cause_code; =20 /* For comparing with LLDB on target - see adjust_stack_ptrs function = */ target_ulong last_pc_dumped; diff --git a/linux-user/hexagon/cpu_loop.c b/linux-user/hexagon/cpu_loop.c index 5711055aff2..b63990663ab 100644 --- a/linux-user/hexagon/cpu_loop.c +++ b/linux-user/hexagon/cpu_loop.c @@ -22,6 +22,7 @@ #include "qemu.h" #include "user-internals.h" #include "user/cpu_loop.h" +#include "target/hexagon/internal.h" #include "signal-common.h" #include "internal.h" =20 @@ -60,6 +61,21 @@ void cpu_loop(CPUHexagonState *env) env->gpr[0] =3D ret; } break; + case HEX_EVENT_PRECISE: + switch (env->cause_code) { + case HEX_CAUSE_PRIV_USER_NO_GINSN: + case HEX_CAUSE_PRIV_USER_NO_SINSN: + case HEX_CAUSE_INVALID_PACKET: + force_sig_fault(TARGET_SIGILL, TARGET_ILL_ILLOPC, + env->gpr[HEX_REG_PC]); + break; + default: + EXCP_DUMP(env, "\nqemu: unhandled CPU precise exception " + "cause code 0x%x - aborting\n", + env->cause_code); + exit(EXIT_FAILURE); + } + break; case HEX_CAUSE_PC_NOT_ALIGNED: force_sig_fault(TARGET_SIGBUS, TARGET_BUS_ADRALN, env->gpr[HEX_REG_R31]); diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 82c726139f7..a38568a2857 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 877cb38ae77..f44080608b5 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 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 Mon Mar 2 08:45:39 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=1772224782; cv=none; d=zohomail.com; s=zohoarc; b=UP07rHfaxbDYueIWNYxVOZ7qdMn/bcqA3iSFrAdRnKAIESqyep0UBzSka984HsD0EYe8yE7HNoQV/s6c6KZk71KgI0VpfG/Qd6hzv5OMGIiS8Ou8vvozWypXiJiQtGPmgvnqjMmhwpJM8oXjugI/H5iAXsd14dA1Q+eYlS/QU8U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224782; 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=5YH3xpSNAAZZ79w0uJkjUF2He2ZiaPFZXERY1SdonwA=; b=m1UpFN+yUg6+14vfdfTpD+Oac4KUICyf4oyzpn4Skryd/1xUB+bV/aubw15/L2HEiG6yu/C3itmBsL2d1NqBXReqO2m+1YHvIyCNI+2oF92QpFETzA+9lYyLk5p6SsJzOTqVcN9KBIaqGnDOUomAfcGukmY27+CHAmWQhSddaGs= 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 1772224782892786.0049647308142; Fri, 27 Feb 2026 12:39:42 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4Zw-0006pJ-Jn; Fri, 27 Feb 2026 15:36:52 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4Zv-0006om-KB for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:36:51 -0500 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4Zu-0006pM-3D for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:36:51 -0500 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 61RH0JK5131873 for ; Fri, 27 Feb 2026 20:36:48 GMT Received: from mail-oi1-f197.google.com (mail-oi1-f197.google.com [209.85.167.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ck43rb2nu-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:36:48 +0000 (GMT) Received: by mail-oi1-f197.google.com with SMTP id 5614622812f47-45f07dad7a8so11333356b6e.0 for ; Fri, 27 Feb 2026 12:36:48 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.36.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:36:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 5YH3xpSNAAZZ79w0uJkjUF2He2ZiaPFZXERY1SdonwA=; b=UMWuYVL6MANKo+u3 532yFQTqSx8/5RPi/elKQSGF+64//DLHxF/FcLnti7MYy5lXZtTKK4vpFUc9Ylcf euFmaqXeC7SCoPho6N/zDmai/eKciNweW+8+YIsLO+RNqBjz+hMb1pKPpIFv2/JS ZmjJyOkN3Ckvzv2/7CnrN4Om174y3mHdtWIYRTky1opi3HYMJ/dU6o4E7jZ9KScA Uz2oFG2emzavxMF8j6bW6lkUw6uRmSpo/656YsnGKGIKqykhIbq0VDiMCCYToqzq mMWZoGzPAadUqG7i/PaBzyb2uCgsJJqRWaD1UTz7mUs4nrv7dW4D5xadTiAeTtuH g0BdLA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224608; x=1772829408; 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=5YH3xpSNAAZZ79w0uJkjUF2He2ZiaPFZXERY1SdonwA=; b=ASd0MwbqXALzDhv43/85+X2TXDTzpKm9XGsNDJ7UHLB3ERw/Lap3MVqebOXjX5uTjG 1GXn452oD8u+4gRL+6haXPHufnvyR532HoOHUlL5hy/05X47nl/rTYcVb6gYhdOkzISm MM28AobbbGiihBR3TSBrTvRfcVvdQFAOjMT13ujTmIR8wd501fgUWz1IAYl38kqPZBeE 2vAcH7SALCw/50CMZXv7Bf7sDlldfzDMexPCM4YrrZninglns0HjPhuG3IlFBpYaEA2U 1758SXYakQy/U6bUFCNxTbtwsr2sopLZKD3IDE2Tpkn9+9AQD4qbS4Yw2xofmbJguTIB pb3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224608; x=1772829408; 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=5YH3xpSNAAZZ79w0uJkjUF2He2ZiaPFZXERY1SdonwA=; b=cZE/rKYSkGBqeSMFO/8USUM9UEI2q0dPSePyYZUrJNafCMGJg7SC7lh53nQAXyRxJg 0183EQwXwpa+g0NyTq4zd+2YX1Bm1VC9xJjxGNkxgKxdB6djei+nYisnFv4c0gTmCYWn DlDgsVfvkjVdovlXYHntmSRmxk3a61zhm7lM/fBJoU5nziTXgsYrFZCAJCkGeCjiq/k/ ptFygy3fAze/jgPIm7qjxubHU1/WjoDyyXc//Pvv2WMfYnfeLUIdtlHVEZSce0svg74V OhIw17f3DcJCcVAQ1JPMBClfqBBFhKHDLCxnECZbTHoKm5QI35UhcQenAIYirhlbQHJr AeEg== X-Gm-Message-State: AOJu0Yxc09DbPD8Z48bYf/BWMszzs+gPRax5uz+Jcm7ImBR3jCFugkM+ GB9lXiCeEPhKE3dpvHw7K7RLWrXAgHFqJgVLuLCpN+5I5nGqSEtTk4OGAolGtXPMgg3bh8YYYhD VsTOF9qvzLUqFC0F8bsMEmc3Y0bKfjGxHSqdTnwuFxTvQ4i9L7JC78CGDPVn/n0PmvA== X-Gm-Gg: ATEYQzzaF7vSFTt+WvdfON2t1X/US4pNl3geaSEja9TC99ot/TPb2dFR+7S7QtiJW5i thWTUfyYPakYLUZCEb0kAnGImnc3UQ0RO0z05+IVQYcc/4oJTrQVNH00hrD8iIzwJbz+DdCxFmX hhsLTB8FoEnc4HVVL6IW8VGwALIvNFZ5//rKv895WJSjVWKIHKoDI8lb5PkSo68XQXdwUH/dCJ9 LwPcQyOiC/qzo4kUstJfJiV4uIif4qCg6oMwZ/2h72m1oY/nzqvPwI3SmjSPwMHshcq9VWv3vsY d/A2H86TE49rAdTVTElzGyedWItFK8KO2ONijEQ7V48ShYCj2PHO1aLouG7wp6PdSmR1+zSaeP8 Zam9/yLWc7PcbsELLUUW4oZrnluuU7K7QOhFT19FYrzZ7UOGjpfCzXidYuyikqk7mV4+JDg== X-Received: by 2002:a05:6808:4f53:b0:450:b8da:b800 with SMTP id 5614622812f47-464bef4dc12mr2526998b6e.47.1772224607947; Fri, 27 Feb 2026 12:36:47 -0800 (PST) X-Received: by 2002:a05:6808:4f53:b0:450:b8da:b800 with SMTP id 5614622812f47-464bef4dc12mr2526988b6e.47.1772224607593; Fri, 27 Feb 2026 12:36:47 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 v3 10/37] target/hexagon: Add memory order definition Date: Fri, 27 Feb 2026 12:36:00 -0800 Message-Id: <20260227203627.932864-11-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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: JT1592ZHN9c6GY68_FbiMvAwGMhnwPrh X-Proofpoint-GUID: JT1592ZHN9c6GY68_FbiMvAwGMhnwPrh X-Authority-Analysis: v=2.4 cv=DOqCIiNb c=1 sm=1 tr=0 ts=69a20060 cx=c_pps a=WJcna6AvsNCxL/DJwPP1KA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=SgXgUqScEDldHOCFpxoA:9 a=QEXdDO2ut3YA:10 a=_Y9Zt4tPzoBS9L09Snn2:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI3MDE4MSBTYWx0ZWRfX2TWHfUtrX83R IPjGQ9aLy5pyaEnTXL4ytB//SyYnEMx5N6ti99ZvR/FpNgAGADCxYF7riC8w4YX3tW6432BcCgR 9AyePh/Qji95bPFFc3xIq1fckx6uBbPkG/j6441Exi1ahCc1rRvK/kINtKU9prUt4BUJH8vCF3G Kau+lqCnhXptiIKYPG4Tm3CwjSN69ElySRHA4fpjTp6k6FfsvI7aZPgyTFJcDszOyqMhQ1q24Fv np9Q9aGpxoRxPW7k+DAxXNz8t8WkunjbH6AePqchD6wBWAxwSIJ+jyWPA4MFT7PWboLPKo3zkbm Kkrg6SAkJrb+xG/osZ361UDNCqzYIg+QRBlvgudi7zj1waxT3PoJQuw9uWDl8hd61/jqIEEGIVQ Z2W5UmW2baziRLllRVDYqMmu+Dfe6Q1lfptokraEQE5UFwGyXY/5Oy2gW00pOoU2DFSCHd3/4l/ 1Dd1a7JV4IfSkbnDc7g== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 phishscore=0 malwarescore=0 adultscore=0 priorityscore=1501 clxscore=1015 suspectscore=0 impostorscore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2602270181 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224784914158500 From: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/cpu-param.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/target/hexagon/cpu-param.h b/target/hexagon/cpu-param.h index 45ee7b46409..ccaf6a9d28d 100644 --- a/target/hexagon/cpu-param.h +++ b/target/hexagon/cpu-param.h @@ -23,4 +23,9 @@ #define TARGET_PHYS_ADDR_SPACE_BITS 36 #define TARGET_VIRT_ADDR_SPACE_BITS 32 =20 +/* + * Hexagon processors have a strong memory model. + */ +#define TCG_GUEST_DEFAULT_MO (TCG_MO_ALL) + #endif --=20 2.34.1 From nobody Mon Mar 2 08:45:39 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=1772224809; cv=none; d=zohomail.com; s=zohoarc; b=g5UR6OE5yALUjjaW2lgqV2duM32OI9jE5gu6PXzMlzbmGeVrVtExLWutI5nvm40Au4+MTfRYmceLQ6RZK1w4HcX0WYP6jjiU62pnvPapbOHniCjpBHlj2Qt/XeiwmbujXRM+/xx9y4RrR1anPg+ecSMujtwoIo6g8TK/4AIvZe8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224809; 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=aJpDVV48hnmkuPK2ZP5bwVokPF/Zq6+pRbRYLQqXs+YEOZ/2qM/jamYTHIbBKa2AiAYGJS+xrBcEz2bEIWTuR3gI0WVm0eDAPoHEtwE55ceM8PG0PphVhX2nYZGStDrDduPNiqW6AMNw+dvuHCH27gyge+f6v5OpNxmsHwrZtY4= 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 1772224809163247.6837433155381; Fri, 27 Feb 2026 12:40:09 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4a0-0006qe-EJ; Fri, 27 Feb 2026 15:36:56 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4Zw-0006pU-Sj for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:36:52 -0500 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4Zv-0006pe-HB for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:36:52 -0500 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 61RKF0GB2595723 for ; Fri, 27 Feb 2026 20:36:50 GMT Received: from mail-oo1-f70.google.com (mail-oo1-f70.google.com [209.85.161.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ckj4xg1px-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:36:50 +0000 (GMT) Received: by mail-oo1-f70.google.com with SMTP id 006d021491bc7-679c6ef1538so51007794eaf.3 for ; Fri, 27 Feb 2026 12:36:49 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.36.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:36:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= EH4slYrH2tAurnh1B6qm7AwzqOtD9xGDq2yM4ABUAzo=; b=KdyzzL3ZVjeuhCtU Ff4744GjKLPbKy2zPexJGmmgw7vogQcPQTaNGYljKf//2RFGuew52p/1Yade3dfn gQuKnXZcCnDogZputNU54CO5QPhHJSUgPFsdLD52l5iZPQFS0AqLv454xr4Ur6jH vIZ1O0Celb3rjZasIrtHTa1toJn5IXZy5aNed6EFburAshB/JvIDFtjUyrl0QNZ4 Ng1R/nGktyF+FRB3mpeVRY3PQXOXIQhunwyXtJxoC/6yCzYElDywTDfIPfjcOTcO QWdFcXJYPRuJLXod9OBKSWrXrBT1aZfu3ZwR95IBsi/4Q+cPdgDxL0Kk70Eiks8N 31RExw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224609; x=1772829409; 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=AR7nHJZabn+PY3HnGUjKehdDYpkDLbbY461fOJjNmYJRG51Aa2zf0s9DmtEQuHXRUI c4rnLF4eZDvwHOrDa2f/dSrYTpYmX8kzcFzPT4/t6NkRBqfPxSTxIv+DoFZtaPtAyF79 JudwJk67cSEx0ltEGC4g6jo2x6zLsBNKo7U2BOuXtGTwr2fbrhX1RF/iow/hRIhiS6GV YtMbo8871k4KbD/bX0MPy8Qp2J9kB64cN/BiysEMGoL5wXO5Jo+dgXe7RTceANJown5V W+L+BJQjrEuAAYY1Y75otnRJzHZNpi2OpLUv0N3m3Rd7U3TxJXlHVHq1xeQ1IrHHyU+0 Od+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224609; x=1772829409; 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=mwcLO3WbCfyXgsAohXIwKjif7bpY3GXxXD7+CWBaXkkJx2B/ueYHJqRrl3PqErMEV9 xsD94QnfYynM/oWp1KTMojXsZl9rvbETjPAOFSFSt5fCCpQlS5x6DJbAg+v8DZmNx8Wn LYOwYQ3Ca1vEUL/WA7AOuEufT35gm0jUkrup4ag51OOcaRPK0oOZ0FwyvSVRVBpgs9rp 2ntbhrxeje0Z4wUW10lq/lgBPlmTyKmyRozl7xqZTqbsXOWI92s9tVqsro1O2PIuVOh0 D+91aotKILGNgy560YCo+qyL3msXujL3YyEJhKlQRmEHRnDGvjo4wNSpm5JH0yyN38lz HCJA== X-Gm-Message-State: AOJu0YxBm+UzZf6KuxhebRZ7/7uAP8z40q+kGHZFN0DJceeexDSZBggs EHAfaUrRGDVPE3Rw1IQ+LpxrLigl2X3QnCxOlgByjBGrri5FPGs6KGHc+qWM86/UYl4VaeihoOP WjRnNpr71xXQlZyMYNyLW2T7o2jO1EGeTNW3oPqW5aBQy9pascGMAkYFBdqh37D6qFQ== X-Gm-Gg: ATEYQzyTXvYy+nf4dnbLlQY36u8hUzEAoa0Mx9xS0wkTxmRRaFuTaLovuknBHK68H2J czJXj/ODMI1D9KHESXcvrANHMm0Utso7fJnxg9qAHc7nbERi5RRtc+hTRoei27oVMdeX0Xr9Hoy VTWYbIW5NtXfoxvMw00xJtpzfEEJy1qhS4iPxBBuRCZlVvKtq9IgJc4Jd7WT/OMlbcq10SnCiXA 4lFqF4ICo15w9NLAigOabvCw4ua+ResfWakpeXg4iwSUUlXBV4xUNuQM0HWziCZnfQBErnOlpcx D8dtLv8W65S1QrezskH8r30qMmmQweAQLBv1jYfqf16WFJ1U4igX82LWuhC+jUjK+bVR4+Fgiht Nk11mQaMv8cF9Klt3ZPI0q4yLHk9NlBJsUZrCAGboiuheagDwno92lxe12leqx/gIDUNfrw== X-Received: by 2002:a05:6870:ac0b:b0:409:62c9:5cc7 with SMTP id 586e51a60fabf-41626eb8629mr2559750fac.15.1772224609108; Fri, 27 Feb 2026 12:36:49 -0800 (PST) X-Received: by 2002:a05:6870:ac0b:b0:409:62c9:5cc7 with SMTP id 586e51a60fabf-41626eb8629mr2559735fac.15.1772224608720; Fri, 27 Feb 2026 12:36:48 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 v3 11/37] target/hexagon: Add a placeholder fp exception Date: Fri, 27 Feb 2026 12:36:01 -0800 Message-Id: <20260227203627.932864-12-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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: AW1haW4tMjYwMjI3MDE4MSBTYWx0ZWRfXzZrBCJPBQzND 56eQ1lBNc/GEU3oWtS3plXS+1ynQ2u2TwGoj1qUD5WSA9dLjW5Jco+EivRBerwbztLGWzMMdHFg zTzTKLZiyuhorg/8scZJYxkTuUrtACP+xBn/tPCyyeNKmyv25oGoMdjFdVWyweTnkMnjF0WHyss JBLCt656L7csh/OEnjtZvs22bPsVqCV5XS1fVAjs6HZTLpYvXGYgcjJE0W0fOUC/3vytvYmlWI1 maJ366GMmDqxvjHq7lAxkszcvMqHZ2fUo934MlPnzJRbCs0/tVQti99ve7ogtxTSBJknAaa2+3k I7g0c5tu3Ytaw8PbP6qvgnxi7WRPccHawZCjCSY2AoA/HPlpO6Af82211iiVEWjde5fU9rKjGV7 N4gXqnkS3yOAp8kpMzgsPm8bsXkUUj+WmnU5c0l+YJGm/3FEizGzXlYmiPiQw8bOYW3/h/o1Bwd 73sPUYJy4EXgUmPdyaw== X-Authority-Analysis: v=2.4 cv=QppTHFyd c=1 sm=1 tr=0 ts=69a20062 cx=c_pps a=lkkFf9KBb43tY3aOjL++dA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A: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=R5LHHePp8dzqxDYlWrYA:9 a=QEXdDO2ut3YA:10 a=k4UEASGLJojhI9HsvVT1:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: tpLj4EnKCUVn5byc2EX4xvEmelL1xJ4E X-Proofpoint-GUID: tpLj4EnKCUVn5byc2EX4xvEmelL1xJ4E X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 clxscore=1015 priorityscore=1501 spamscore=0 lowpriorityscore=0 malwarescore=0 adultscore=0 suspectscore=0 bulkscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2602270181 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224811044158500 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 Mon Mar 2 08:45:39 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=1772224789; cv=none; d=zohomail.com; s=zohoarc; b=WpAkb9teSGn7PnSpSlutSNH/4vemToH4RrkiHuhVpjYMYpdNBBs0UJA17AUMaCJOwV4kU4i0YgxpPwJ8laQ/94U7//ZVSrhbVTSlTOhs3fX9WkwFyqZPpxAb8mIR44sC4eLXWCjZbqaC9HfOy+gMxUbZXnviXtUmd8XH/YOLGh4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224789; 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=YKR23nZ8dCEe8hjzUpFqK8UeOeIiyzfFZP9fn+3mKco=; b=fN4hXNS4IFE3N0MV6M54fcyw/nZmOeFZ9fDZwiosfEzq234TldBTGqI5Pk5CoNqHGKXmZXY0iZB73b7KU22egkzIft/YRQyoIuA2l3sUcruvvVVJmLpVnCViBB/UbGXniToWCc7D8YMZfcB6JYGnbvQ7jMVvNFcTC77ui7/SDE0= 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 1772224789888666.697093915472; Fri, 27 Feb 2026 12:39:49 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4aD-00077m-Gy; Fri, 27 Feb 2026 15:37:09 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4a9-0006wq-Hg for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:05 -0500 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4a6-0006q4-HV for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:05 -0500 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 61RIlvSP3733135 for ; Fri, 27 Feb 2026 20:36:51 GMT Received: from mail-oo1-f70.google.com (mail-oo1-f70.google.com [209.85.161.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ckgv509tr-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:36:51 +0000 (GMT) Received: by mail-oo1-f70.google.com with SMTP id 006d021491bc7-679dcf1f680so60055918eaf.0 for ; Fri, 27 Feb 2026 12:36:51 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.36.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:36:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= YKR23nZ8dCEe8hjzUpFqK8UeOeIiyzfFZP9fn+3mKco=; b=MHMXUZDKrOAxK/zE xNXru1Rt6R74MrOkKlKkLnP5QvEGw8FQzzyKJR0pfcACDmZBtwAx5bMYzY7ufvXh QZQVuGELRgf0PjyE63SSY/XrSyo5VGwA35Y4WcnpO9N/9wxhhiy269nrTGbA9n3Q DtOxkxFy5RNNGewZ4I2eeE9frLo27/O1dD4baOLXjUmcL2FbWgPSMB5Qv3BI/oFc 99SvapxAU+Zkuhmff0FQAxvE+lLyi+rqca89Ubb9kNDWFZB/i/z1phPvc8NulNnX +FLUxaloKGB2n7wtKsSLvh2r2p2aYYiSm/potgiB+ayHOafNwGVsC/NKA9KvFiQx dHHYRg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224610; x=1772829410; 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=YKR23nZ8dCEe8hjzUpFqK8UeOeIiyzfFZP9fn+3mKco=; b=KcdGCpD1/8boAu4+fsXfIAkCjqCYrqowUzdqFOu5IIGdFw0wXnb6OQ+OwCXletJ6Q5 RTCF+QA+Q4O8+apFnJD3slvPVoYQbg0Iby1X27ma5uKxGOiNVaBQzdjClcp6teRDKtaD 3MQggyVpHTly5SgBrU3LQUH53vO343jfSpIA8kbmaeaoNx2VYinrl9kSubDTK3f1Yq+V Rnx0+RQeEUsgskH8m5OYQo+KnFySarrY6a52QLLzs0pEa8wDnhgeOtdfUFx2m8xrpker vxEY+MSxl4sgLlaPvZ4UAlCbqKEi6X4FKZeQMJDol8YVTxHPumrvbBri48o4ExlCw+Qi iVkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224610; x=1772829410; 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=YKR23nZ8dCEe8hjzUpFqK8UeOeIiyzfFZP9fn+3mKco=; b=V5QwyDhmqFsZ2e9EuuKKBBjMj5Uc/EfFfaHWz0LIQZEpuhY3ZGgIs8by4g8sIgp5GO SrvYPwW2741xnnvfu2lTEcsA75fthO8JjxiaXsNxqymVnC4u20gPV2q7ZiHCh+fjUFZG iA+gzQG5bkN7ir4e7pyqQvM2gY2j/0C8fUW1Owlxz69ltcau+juAkVdq3SdqPHcTFqrR B1D5bZ+bXwEyU0q8+RyfuqfpDrI9pDJ2mmtxPPKrvBbLVl6b1c9qtEf9bjRXvEp2WaWj uVFrUtcyxjmxDrf56/vqu0yDhiKgpgYPNuBZE4VHnddMVQISBfPjwY0T6Jb9U2KdFvmS rIzA== X-Gm-Message-State: AOJu0YyPEpQ3+D2vi92efH5A4mEKcwLqdHnG22nBEhceosaHYLx4FMRg oYt6VGsgPwZUIhjKPwQEq8JXyo4RrdUl0bj5sqo1fHQ69i1sjTmNHJpCj1HAzsYvFJ4njmFJumv yi35DtaXKrHzM7ATCAJUzGyyODdT49b5+CFeB6lniQOnr3IRlnClCb+klbJfeFubBtA== X-Gm-Gg: ATEYQzy6Bmx5WA4zt1KObpmWxm1Ye1SRZZqOgZEpl4af8bAmkjJ7PC9mMKTKMGj1aRz fk6X6QHDIMz8WfhNvBt3Kj9DSasG5tVQs6lyS0TVhAyJjciggYjBZgx0M4uHspq2lgZwzFPHfY9 4W5p2wpjcgXkdM4J3MaRQkYsHrfMS3e2k/cf/v/LGRd/TuhiVVeyxzBkaxYsCwiSm6/4byeJ9+7 Jup9V/xedCuPRjF6mh1aS0mAMcQJFd0vH57inYtO3WE+UcmQKTsT1lJ6kyyUhRYbhmnBpRgvhED Zgn6/OGbBwOwiomfavxX/hicV9rbDwR5c5RhEhspgub+QsTlg/QZ5qOKxjQpNwd4F4yocaK/TUp V8uYIK0Vlfiv0g7emGIbck0EAXLMm+g7AMmmsF1Uj6u4rw/MeFHjuOtBs51+hgVMhrdifsw== X-Received: by 2002:a05:6870:610a:b0:409:8e36:e7de with SMTP id 586e51a60fabf-41627069b58mr2738535fac.26.1772224610182; Fri, 27 Feb 2026 12:36:50 -0800 (PST) X-Received: by 2002:a05:6870:610a:b0:409:8e36:e7de with SMTP id 586e51a60fabf-41627069b58mr2738520fac.26.1772224609804; Fri, 27 Feb 2026 12:36:49 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 v3 12/37] target/hexagon: Add guest, system reg number defs Date: Fri, 27 Feb 2026 12:36:02 -0800 Message-Id: <20260227203627.932864-13-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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: AW1haW4tMjYwMjI3MDE4MSBTYWx0ZWRfXztWs4yOu6Kqd VlMZlUfzGVLFsXz3KGAk/UJFWpmvvvtlLv7Pj2a4EJkKVjXPmcuQEpC6+TclSsBpy5GoJzc/Fhg 3xvRkg/m4kIPoFJ7sxUNiID/2AVWHJQxIBvzvuQHIVIZnqimpCbcYLCtG+O3PhaMShxo75JPRcJ fd5kHc/nj5y1sXK2GoU4qqIuob1f3QvipO6ou55aCFy0ykdi3G4y+QFL+XAznSFfVun88yO7gmo gnYUjhQkSypsHSpHh/dGxU/yjO9zoivkTrkz0OY7gW606n7fZqvKfw1wFiG6/wAUYwIP/5PdLaj +1hp5br39et7UgLitiB9xMBE5tk9tmXKHG16QdayR8L0LlLSbrPEUTvegjkeBORIZ2ymiuU6rRu vgRcQAGJjtTd0wX2dJawcG/7fbT4j3VjKN+YEwOO3vyYNS5SGeQ1/4nkXRz0aRAdFZXfOuNXtfS KlIGep7zMw2w0cB+knQ== X-Proofpoint-GUID: YEcTAyPEM7Mzy4HAfd6zt7NJnuPrH95M X-Proofpoint-ORIG-GUID: YEcTAyPEM7Mzy4HAfd6zt7NJnuPrH95M X-Authority-Analysis: v=2.4 cv=Z8Hh3XRA c=1 sm=1 tr=0 ts=69a20063 cx=c_pps a=lkkFf9KBb43tY3aOjL++dA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=tCkOjFGBvLAhDY2OQcYA:9 a=QEXdDO2ut3YA:10 a=k4UEASGLJojhI9HsvVT1:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 spamscore=0 phishscore=0 adultscore=0 impostorscore=0 suspectscore=0 priorityscore=1501 lowpriorityscore=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-2602270181 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224791047158500 From: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 5 ++ target/hexagon/hex_regs.h | 115 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 120 insertions(+) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 9fd69c7453f..3619eaa1a52 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -20,6 +20,11 @@ =20 #include "fpu/softfloat-types.h" =20 +#define NUM_GREGS 32 +#define GREG_WRITES_MAX 2 +#define NUM_SREGS 64 +#define SREG_WRITES_MAX 2 + #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..ea8c62eba9c 100644 --- a/target/hexagon/hex_regs.h +++ b/target/hexagon/hex_regs.h @@ -81,4 +81,119 @@ 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 */ + +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 --=20 2.34.1 From nobody Mon Mar 2 08:45:39 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=1772224868; cv=none; d=zohomail.com; s=zohoarc; b=ioF7Xg3C+y2wtPJXPbklQeEHHkS24w9up4f++9vMJ0M5lKHxndtnBIBmLdEa2yd6WuwkYC2f0JFyqPvdAt8npizSrmk18bhZLRt6EiQt0IuAwtlREV1RftgJgCul+ud9a6wIMqx2dfiYCYCmfvUW1hvI8WiaRen7OIyFUTx/moY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224868; 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=NdOehtuRBcPgvbCc8MTbGPeDzqk+1UZPxnybEHlpT2s=; b=Y0s7rgPeOy+TJ342X2H44OfjTQkm3+88UGQxvGyOdCz98VvqrpMsJOLR6ruI3Gm0rktkez2aG/biXi9/eBgOGrIazJDeU8b2VOhTM3BYNmKRM400Ae7xB9rHOqnHLpaU4+1Bqi82y8ednkgJ2VgUbYlEGlRte2+g1Zb7oe5MYLs= 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 1772224868755628.2882290718364; Fri, 27 Feb 2026 12:41:08 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4aL-0007Nr-1Y; Fri, 27 Feb 2026 15:37:18 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4a9-0006wr-JF for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:05 -0500 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4a7-0006qB-JI for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:05 -0500 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 61RKEuk82595609 for ; Fri, 27 Feb 2026 20:36:52 GMT Received: from mail-oo1-f72.google.com (mail-oo1-f72.google.com [209.85.161.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ckj4xg1q1-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:36:52 +0000 (GMT) Received: by mail-oo1-f72.google.com with SMTP id 006d021491bc7-679c5ed0942so38286969eaf.1 for ; Fri, 27 Feb 2026 12:36:52 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.36.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:36:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= NdOehtuRBcPgvbCc8MTbGPeDzqk+1UZPxnybEHlpT2s=; b=Q+VESUC2Jev7p+Xn odL9zAs6nD0BeZ2+RPRgSBLqtHLdl9UQ1FCdGtNs9VLOdeBs+8hWxUvqzC3HMd8m x1feqVgYWMLbYM3jpcY/6RUAcTl4ui2Yh3eUpavQttEVCt47GrIoVJapwd0gN+X1 zYFCDpruE3bwGri5Pre5xlAnjqUvf+bLZ3fIWJQfxfh8QedX83h79yrsIBmE64eQ gzW0HHC4b42PbFEA1Ra8N1KoWAPelHHJKnaEGAQpDsyblVibZZh3ZfwnEHAFOdW1 HzUDyOrOElD3Ke2Vha480+xTnqqlzXH36zSmoxy5SXXMaFu7HyazkWjTz3HcC0sT oQfzNw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224611; x=1772829411; 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=NdOehtuRBcPgvbCc8MTbGPeDzqk+1UZPxnybEHlpT2s=; b=NO4H1v3Jef0Sk82hTUex4PQcJjLvomLpcr3LcvEPuXRkUiHFP9WVp/MSqYjhPA/SD2 RoXQvKgCzLbgLYDPx0IJQiJblyQaj6Kf1CEvkvTy/CnpJPr/hJg5EoWpiFjv6yiE6Hrh xLoaoD/P+wzB77wJ6ofAgoKrWu2u/WaI4wG1Gmh79y/vtIG/SMS0y8ZRMeQaIKnqLOxV fqU87P3EoD5uraAl8c0ivNjndStA39uQIbuwrGLQMFwB7ectFkQZ+5XklZ/VbAerMGfo Iq7rgiY/GyzUsSdsilVypp6T+ki6RK2kQv9pwVcds6FoqLIs5L8+0VMwBTJ0BuLETder Rn1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224611; x=1772829411; 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=NdOehtuRBcPgvbCc8MTbGPeDzqk+1UZPxnybEHlpT2s=; b=adENaTRK3VCefVzm934zmMrrs6XfeNLGK61U7mhOBhExlDCjy9Frss606mkfKvFloX 9fAk7qYbgJdpFSNDQXTcmATD0brqC11/rNywlBdKK098ouBKV2QcpR7FpgGbttqoIMx1 rpBsI3RjTLmzz4V+ikB3Bjo69UPzbbXjGfrbc22rZZwz1ZTXBcYFl9c66rTRrPhooCZp d9X82i3IS5ydMQZfWUYPTGpjHPCT+qbXeW0h1ij7kxDJauATWaB2M43gXvM1SNpy4W9d BOQVNuANi1ciG1uqGaV1jkAK6I9flcclwPGoL71MHTRWxssGzQG9g1T45qFIdb9FE9tS AhMA== X-Gm-Message-State: AOJu0Yx8oyJWbJVoVZyrszh9LhfGRtz7Nv0GafEwsTd8s8YjrnPBmKqb WJ4IvDkfRLm7JK15ACecyk5Bo6PJKUbuSPsOvm1kOhLaU9ab1kml5OLXX4e2LtqtZGF3a6pG1mq PSpyn8GQvCv4KAxXxeXLml7XG5LpHUOgb+vU8KRajBOOzwArN/Fd2wMcCsJQMIJ65IA== X-Gm-Gg: ATEYQzzd9KU2mckVrY/iNgAIc05jpVd/FRwMwMH2jkRuha9t5RBM7Dwehf/BMMK8SMY wsSk9CAqduNf0XQrGsn65w6kKDLEFlgpA9/efTN+v8FMa9zv/N5w/TlDieD9JKHZmWUcVDsrsg+ C8qJduGMgeoLE7Ek7AoOJQMTOq9nH5Hl7+fNxEHRH1M7u8DDIa3TcYpJHkr3f/7bzWcv97+QGd/ 6CeZhpkmG2clkaTIFQ4eUepGHMNEmTsltGhh6+nsNg0yCdSA4LAAEN0I1KDxeSKsMzWCKWyF1FS Y/xq3AIH0G6fqFn8m0VgpQmCjmQlCvNVQ8uWBE1kVLgtPqprT3/je2ehBjl9TJhhBvmgbdprVkc RI7Z1BlmqHZ9k56RWAg10/ZzXyWjFF9dwnwbogCThNzxSUZdf718DiW/WICuvyM7Vix9gKQ== X-Received: by 2002:a05:6871:a868:b0:413:9a9f:9714 with SMTP id 586e51a60fabf-41626e388f6mr2715471fac.23.1772224611394; Fri, 27 Feb 2026 12:36:51 -0800 (PST) X-Received: by 2002:a05:6871:a868:b0:413:9a9f:9714 with SMTP id 586e51a60fabf-41626e388f6mr2715452fac.23.1772224610977; Fri, 27 Feb 2026 12:36:50 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 v3 13/37] target/hexagon: Add guest, system reg number state Date: Fri, 27 Feb 2026 12:36:03 -0800 Message-Id: <20260227203627.932864-14-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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: AW1haW4tMjYwMjI3MDE4MSBTYWx0ZWRfX5aIyOGgOELzC O0ObtuUGK3ORIvvZpyGD63YhO1bN/5wW2na9KzTzJkMyi2lg39u/eKrVND2v23BpgCGhOVafavr PnlDI0bumNOK0l0l5Z5JLBAVZicsPAJhyTEaH6MKxPWj6cDOzHPuithYCJbxGBQ5wCPTYAyiasu thvCRW1TK8fe0fNCfXk7QmkJf88R8V0QM1e+qUBKioldrnZ2S5AxhnbaRnl1UpvQnQ4HrylSCm6 le8tiWEvreJ12YThw8/lo0oQ9E1NLyFVsB5xTko+bmrbWM/L1qzqU0uKb2TZ9TMLe0PClr4MTFs WA1po3oGfbQ8xnPqU/4rLM5wnUz6i+qCpgkFbGDazmj8YFxqK0LoubKFT2n+vk2iWoLJfF8QI8c jkPuKQ9PSqYLzxyUCCxWXnkfBDJFwTh2jYQgxQsx7jPXDjGFBG5m66DsnhEJyjisEUYtS/Y4E/e zUt3lfqr1tyMBpcr/lg== X-Authority-Analysis: v=2.4 cv=QppTHFyd c=1 sm=1 tr=0 ts=69a20064 cx=c_pps a=wURt19dY5n+H4uQbQt9s7g==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A: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=XLwm3O5UTDZd0TI6FywA:9 a=QEXdDO2ut3YA:10 a=-UhsvdU3ccFDOXFxFb4l:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: lspwOaHU67NCcXOzTtq2Iio8FpfvN16S X-Proofpoint-GUID: lspwOaHU67NCcXOzTtq2Iio8FpfvN16S X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 clxscore=1015 priorityscore=1501 spamscore=0 lowpriorityscore=0 malwarescore=0 adultscore=0 suspectscore=0 bulkscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2602270181 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224869345158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 7 +++++++ target/hexagon/cpu.c | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 3619eaa1a52..057a5f20a67 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -97,6 +97,13 @@ 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. */ + target_ulong t_sreg[NUM_SREGS]; + + target_ulong greg[NUM_GREGS]; +#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 a38568a2857..c4df7cbe30b 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -306,6 +306,10 @@ 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(target_ulong) * NUM_SREGS); + memset(env->greg, 0, sizeof(target_ulong) * NUM_GREGS); +#endif env->cause_code =3D HEX_EVENT_NONE; } =20 --=20 2.34.1 From nobody Mon Mar 2 08:45:39 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=1772224782; cv=none; d=zohomail.com; s=zohoarc; b=g0YbtIAoetRxP2efDm6sRgxPA6Lw7lCkdN26/J6FfnzeaOTJXyABD8axlcQEqePo7qgOmXYX2vudN1zJOMqdkUwW1/lCKzWcXEVDn1Zpi8tRaduI0fv4BVSP4fE9xVBOO/Cd7l6MtIV4tyQ6Y9fFZeYZwZdL1LmUPQNXZ1n1zPI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224782; 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=1ipGTmwBUIHsvO9gHMp0sw4dbfVX9NwyZgocijKBvqU=; b=BhScTa1XQxcaRmGYqe458z43uHOkafOcSePL8adPFmDbJN0aywrDYS/uDtsP4ZoM2ghpsrsnMJdFuBVRzlIb9ssDKxUdpLPhqJMW8bMYBFMltwqksq5TGOVPbHg+xR3JVLewKSIQvD3SsGNszQCK7VnFnhtDpzaKmPgAkGownAc= 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 1772224782373864.4881052643261; Fri, 27 Feb 2026 12:39:42 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4aJ-0007KQ-A0; Fri, 27 Feb 2026 15:37:15 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4aB-00075Z-Qm for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:08 -0500 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4a8-0006qO-Rj for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:06 -0500 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 61RH0Gg7702145 for ; Fri, 27 Feb 2026 20:36:53 GMT Received: from mail-oo1-f70.google.com (mail-oo1-f70.google.com [209.85.161.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ck8x8a318-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:36:53 +0000 (GMT) Received: by mail-oo1-f70.google.com with SMTP id 006d021491bc7-679c51b2d6cso40568719eaf.2 for ; Fri, 27 Feb 2026 12:36:53 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.36.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:36:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 1ipGTmwBUIHsvO9gHMp0sw4dbfVX9NwyZgocijKBvqU=; b=g0qJzIIVwh1jmrjw D2BPdE4BfJvTl3lg7Ri6BG62rNYRVdzEjdy2VU58by36pHUQmDwVH2hfnIrhmlHu Q5qgc5nYjDFwqA0y8Qu2GyQ57vHiQ+mt1Ivi/FEqOYjLjrQb4kDA+MlA1F6WhVIV TXn3nDiZQhqt1NociL9ZmDbpehs/Y/RgztuXGnkI85aX5avYjGUdONlO1tE5bwp9 7lbu4eDbrvNKyzla869oMzxunwy8503wn+uP+KM0EBlJiHHixHMHgRCiHoy9i7+5 1QpFcL38/pCGQQjYNm4ImGDi//X3V1Suvwk4E1R43xM7Cx4clFVIEOCWmGhrExgY PFRGUw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224612; x=1772829412; 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=1ipGTmwBUIHsvO9gHMp0sw4dbfVX9NwyZgocijKBvqU=; b=SzpPUWy5cUaShzsg8FGvtYITB7fNlNWUlRjqCEWaMAdEd5QcAnqDpFYtf2EcAUwxv+ qQfFpymPE2h6X1owfcfyFSJbE80V39akpEW9cIekmSLKhY/2rhDcUENUDHJQAXQYmfLe NY1E80i97krSuPORqhExuhMmSYa6wezOpuatMPyqtN3thaYiOxmpFPk+rj6aHrYASQ9l Zp1DdWPBxg0KFXAOJdlagvoX/Vs0Xjqv//ZEs67jlnYaYkzSAKBVP9Rb7owhFYphNpki nLOPbEklPlO+WvW5vHVrQz9JOgqhVCsX/QCAJ20lRN6zNq0v9FHwFmgB25XWMqsWIe1v sMdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224612; x=1772829412; 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=1ipGTmwBUIHsvO9gHMp0sw4dbfVX9NwyZgocijKBvqU=; b=tNWeSjr9waZ14JRv7yBuXvG7nBXNAIlEFH7UuOAxaKxpH416Dh0CajBwzrsMNYgruZ qzSo/c8UF6I8t1zCuKIlJbpGgIFXoZDeE5++yHI+H8EwkUGu7XHdjNLEVV/LjZamWaKb rvlziRoTVSyhz3o1rbUVkCLqMGjVwyPA7eJcu2J+wDyeA1rRucTZl0MD156a+HO8d/wO We8N5hdEuMqv+tpSgNUJgEKzsIqzJ1zzn8F0Hk+El+ZMzZs7bCFnCwFF+9b+dQnGp31w hmya33zwH+rY28sPzMwsJvgVv0QPrLm592+w1mg9kSX+nD9C8hyYUGLORc7WGdXZAbWH N5jg== X-Gm-Message-State: AOJu0YwA+IFjQd6t2HZRyussHTW31Wq8zFrp5wiHw9iTRBLtczV96atJ Q8viCWQNoTWv4Lh2TvqtR+v369wn6C8cgVoSoZd0p5GTGj3bbhRqIpt9rGDno4hUmKpZosH3HUQ goNOWW5kLhbivAuNQTbDH5A0mn2CavZ6K+8ugKO2Oa+0E04qXZRh8dT7s7k73bt2rmA== X-Gm-Gg: ATEYQzy4oNTiyocq4XpdhX4AqpfgM2Mf4mhT89QHnpyTOhyqFbkg/pRbaBYk7x27BGk oY0qsN/PPHhY+i7S//hvpTYAL94iW6R1c/TUmnPPkFSDJNL6mEXj/NF11f0deudYyVnrlBWJEkO KNJ2QyucZlulthu9stVbGD0fRIro5+NdNqddfoai8XzhOrVjaaQQiRQKYcx7PF3etRrJsFhQEVC m0jl7/VA/6GksRXB9hAfN5nlGqpDszLp9sTL9d31wyvK3YVtKX9j3OS6JdubAY2LbOspL5O8LDs xjfGvEjtgRWxHerSgla4RjHqs9ThcW6EVkLvA/DOGPNufYiDby2YujS8+6UtlnPq9v1vg98aO5M IgoBJWbNdgfglZW5juDM7SGny6DHDyrOp5A7dXgyoe7oGqFDxS4LEmQex7R9vMRy4QODiSQ== X-Received: by 2002:a05:6870:7207:b0:3f5:694f:9362 with SMTP id 586e51a60fabf-41627069b67mr2734444fac.29.1772224612582; Fri, 27 Feb 2026 12:36:52 -0800 (PST) X-Received: by 2002:a05:6870:7207:b0:3f5:694f:9362 with SMTP id 586e51a60fabf-41627069b67mr2734433fac.29.1772224612176; Fri, 27 Feb 2026 12:36:52 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 v3 14/37] target/hexagon: Add TCG values for sreg, greg Date: Fri, 27 Feb 2026 12:36:04 -0800 Message-Id: <20260227203627.932864-15-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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=WZwBqkhX c=1 sm=1 tr=0 ts=69a20065 cx=c_pps a=lkkFf9KBb43tY3aOjL++dA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=md9odPwznpFxaQMInv8A:9 a=QEXdDO2ut3YA:10 a=k4UEASGLJojhI9HsvVT1:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI3MDE4MSBTYWx0ZWRfX8C/RbpU4QfrR 3YZpYQWhGU9fsANM5zSPcJ8DqUKsKzMKETwo42Bj0DBy3Nr2TcfFbBxI39PgJu+jYlCcb9MSkUm su6L//Lcgx/Y9w79uZOvwk8Ekn/Kt2o5bmPYZ+0WYxh/coZr55J15c7UNd6KbPc2S9BvIzJpEoH V0OYa1WBydSDFpUAPitiPDsD74FR9qZTcLslsG63Q4Wplw9kFkBoUR+ver2Kwol3E05uzk2Jhez 7J7l/m8gEGGsD1BupomJDZ6vbuBv975iZnrg1QFiyDtQFZJe1u0uv8cKxqCbR18/ZrN4hJrEKcN nWyHg0v7aQzCZ2fnMA//7KCt+h/MpkU9kSsmwqd7pcH7/TyjcCLRDfXK/OXOfS2NQxNSfsLiU6U kazQJ2VR4X/4RYyh8ovJtw9r2Zc+7aNleRJRVXLB8t2IlyD8RfipPKgn3pskW30o86K3rTn4NTe 9mU8m6JvV2KSPl+G+Tg== X-Proofpoint-ORIG-GUID: EgJJ_6Y4N0TVc5X3ZHJ3CERIN5ByNVgv X-Proofpoint-GUID: EgJJ_6Y4N0TVc5X3ZHJ3CERIN5ByNVgv X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 lowpriorityscore=0 phishscore=0 priorityscore=1501 bulkscore=0 clxscore=1015 malwarescore=0 adultscore=0 impostorscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2602270181 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224782937158500 From: Brian Cain 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..f80830f5f16 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 hex_greg[NUM_GREGS]; +extern TCGv 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 f44080608b5..f3dc62cec1d 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 hex_greg[NUM_GREGS]; +TCGv hex_t_sreg[NUM_SREGS]; TCGv 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(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(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 Mon Mar 2 08:45:39 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=1772224837; cv=none; d=zohomail.com; s=zohoarc; b=O3XdiDBGcuNRMl39vZJEn0RiXydSKBD/iiswRn6b8TgGE+KRCx/00xoVcKeuuW9+EZCt6GRTGeAa8HxqQ7nbh2MrjZnghrTQwViaHdDnBSTKl+1Jiox05jQ73cHhPwLZ+VDGDnt36cx9bEIPDf7OCn32P7mi57lJSpYfUEgIdbM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224837; 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=0f+FJCFsf70CC5AAEHTrBHtVYoTcDTK7Ue15AlmnhwE=; b=ZYTe49p5V8kg7bHgFYzHKDpTTmdB3Q3e7sHe6lTu2fYZohIc1ZLrcmyOFT2kgTouYujG72WF5yOoKtMdkJpRC28fwbqYZP2i1PP7FQvQzEtI52QbD22PI/ubWWNbvmCkuiFt1BgMCOpen6ddrrb0W89AF0MOKtxZ5q8/pVR/utw= 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 1772224837447464.5569746166483; Fri, 27 Feb 2026 12:40:37 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4aF-0007En-6a; Fri, 27 Feb 2026 15:37:11 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4aB-00075Y-QO for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:08 -0500 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4a9-0006qY-T3 for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:07 -0500 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 61RIeop2373465 for ; Fri, 27 Feb 2026 20:36:54 GMT Received: from mail-oo1-f72.google.com (mail-oo1-f72.google.com [209.85.161.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ckgrtrauf-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:36:54 +0000 (GMT) Received: by mail-oo1-f72.google.com with SMTP id 006d021491bc7-66b612efb4aso36283148eaf.0 for ; Fri, 27 Feb 2026 12:36:54 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.36.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:36:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 0f+FJCFsf70CC5AAEHTrBHtVYoTcDTK7Ue15AlmnhwE=; b=CI/mrZeRdTifcTZK SnCIYBniz3r5aqXoXmuU3RIj7QZ66Mq4NMMNqO1bSAM024vWJduD3UCDyyUczUWG 51U16mISWkH1bzYO+1TTQTPB7VnOgmxoX0+nuirequrX1IAXxoe1IHSvy+l8F5Wa QURz4AggOTdyqEcelHpNauL2MBkQBJN8dryLab5H6NvXlH65rnVrylYpJjhnatXk 1wOJX+M9PqowLou7YgX5MMtNA+DZRO7SMnEh7vtejJatYt0eoIv/Q7Qegt9l0dTc CP9SS3wZA6FnjpvdcbQ/33BIFExvwFo+IweAabmxjHMqrpTANLYD+C8Xom+WVjpZ 2A4thQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224613; x=1772829413; 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=0f+FJCFsf70CC5AAEHTrBHtVYoTcDTK7Ue15AlmnhwE=; b=hHLnAWYgjt0WtrQZEeW1WlLX3KC4KfzJNa6iR16N0kSJGo7X/e5lr2blguTlqZvsUi Df5lDz2VB7vRvtsTViW+CCpwfHp3mZs+X40L4tMMMz1KsanmHc5t8fYFkgqUUrrUmtik h8xaERxxuvq9+UJljArImjGgKGZ+ZYPX8k+RNKrpKILe7eqiXXZbk5Spq0/ZKk2BVQfX TO8Dux81hzHHAvEgnGqylc1Y8YhMlKJQP701sTvpVIS2DsoVp+pbjAdxkc8nwNPHrbnH 8C9P8cM9mou8AkXkq+nf0bNnKZ240iJzu4ABPN1cKRM6ivAxOCMj9XfUCjjLN1XtM6/v 49lQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224613; x=1772829413; 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=0f+FJCFsf70CC5AAEHTrBHtVYoTcDTK7Ue15AlmnhwE=; b=v/MN8F128D+42bbYXl/Gp3A7cNwEsZh80zfd9r18gUl1AvjhoHb2qDpV5kKdSI48j8 /oPfpTsZIYpdn3Es9LT1/+PgSXAgjhLyiYkvkHgA/w7maRxV57ju+Iuu6f6h1tNONtqG KQORKXxDI16TRD6zD2dWD5IXi6oZljafJZv7hTKB3tkTOKeg8443oIhEU0HylOmxhF4V dSIRIHDe0Uld4I/TF5DWBeIoOcf4TsxUMysO4AdHk7RRTLRhy/nMbXiWAA63cRihGgRo VhzLZ72OWIsyDueoa5VNtYk62I1rrNRanY2Q8a9ICD5lEGDbXY0cWHPNvng/tTqbaV2I 6DVQ== X-Gm-Message-State: AOJu0Yw03KlT9rBVU1eqK7FDtsLM0QepepcbhbTRtvVtPq7NIQpcuMZi JcKsCbHH54PolLUY4uetlNGpDCIYept1A/HUAFkY6VQN3SjNO65UyprvEZKS+Ca9cxuZqQT/FCs VUzkjW6toAMtpuee6TgwuHsO8gVeDTThZjF6JMSyD3nAXmpijFkwPZdsJeaJT3f6cLA== X-Gm-Gg: ATEYQzxQNwk7q7xuJWlJwt965RUAt7oYI0FaDp5Mvyk9H7E8P52PH51YsWjTIXI/DP1 yUZIeHJq6Xf6xYck2P7SpANgWCgiUA5NT9T+fq3SLB9xy/aFn2vIAPB9iTBbzwFKxsQwuV19KUj LU240DAihv1AxVoLC932M7EmWzzVufmZrUOshXEpV/mtz+kT9Dr2+7IJn5oosyE9e/i2Ona2r1+ Vp7ti1wcSKCQkqvCv2x3hZt97Ess5TyS9HYMHQOTIZ5ucQSADK2QD2Kd3e9wGhb/ai8f9jfiRMk hjjpze2YGCklOWoqCs258w++n37MetgLd2slDSE142pH4O43QyrAZp2NUir93sihJNqtvlb7kG2 9w0X7kOqPLN2uOT0WLqO9Im+5sQkdnhpeaACqZAGCPvc5LPlIsf5acZ7+03hOREgzEtV2Lw== X-Received: by 2002:a05:6820:208b:b0:679:e58d:bb54 with SMTP id 006d021491bc7-679f2213e1cmr4843170eaf.5.1772224613680; Fri, 27 Feb 2026 12:36:53 -0800 (PST) X-Received: by 2002:a05:6820:208b:b0:679:e58d:bb54 with SMTP id 006d021491bc7-679f2213e1cmr4843150eaf.5.1772224613328; Fri, 27 Feb 2026 12:36:53 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 v3 15/37] target/hexagon: Add guest/sys reg writes to DisasContext Date: Fri, 27 Feb 2026 12:36:05 -0800 Message-Id: <20260227203627.932864-16-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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=C8jkCAP+ c=1 sm=1 tr=0 ts=69a20066 cx=c_pps a=wURt19dY5n+H4uQbQt9s7g==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A: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=tdgd3nfel_K54e3JQaMA:9 a=QEXdDO2ut3YA:10 a=-UhsvdU3ccFDOXFxFb4l:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: gRvwf9TOsZpvvkEGe4oPgopjPpvVPzAt X-Proofpoint-ORIG-GUID: gRvwf9TOsZpvvkEGe4oPgopjPpvVPzAt X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI3MDE4MSBTYWx0ZWRfXw2lUYeI2PLXn 53L9g3FCjSglrftGwx+SS6+U9chxQMjMTIfPnV4T+Ovh4OrbQVYn2fLJqh6CH2W2zNQll/Vgo0e L8HSHADOcFcmY58tokdIUybvme2Dv2+MN3dOP0/PYACoKqrJ/WB0xHsSdKQBn+5TuhvfXsB/LEO 5ZN3Tv80ePh+HhEJxBuPQ17gsiQL0JSgY841K+5Mmj5Z5gBQoOVfjBaoB7RyjUvOdy9G/wXrirZ r64zl/kOSnQvJ/GQAdTx1EaybfPvv8BghzAZSEr7q3GZMS3S3xN2NfaXBb3ZlmA0kR5gpzd360Y wWqBBgJIHNLyd3izNY++LV6mrNIsF+HhWDpL0pfbIiWdzqygZLLKpadK/9frBxhqG8BRDioxsGW S4ARarR/nNJHwmS4rgU2ls8i5c8JCwFrjKJEsu5MQSYj2KT/yg5ZgBtFrKH0ywDZG0G4BoEYvjh 1KVgavcEV72Q5oxMobA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 impostorscore=0 spamscore=0 phishscore=0 malwarescore=0 clxscore=1015 bulkscore=0 suspectscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2602270181 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224839220158500 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 f80830f5f16..6e1008b363a 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 t_sreg_new_value[NUM_SREGS]; + TCGv 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) +{ + if (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) +{ + 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 Mon Mar 2 08:45:39 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=1772224828; cv=none; d=zohomail.com; s=zohoarc; b=bWNbgq8l6Ze4ydVhr/IQRH98TJk7GnqRFRDPjNpxIJjC4T6+PwJ/4foigHucwhX7dRivh87AjXz5HLYWo05uYY9osKvIopqJApkZNo3R4z51YWNpJCC+pfC/ueLZalxolgEgKmDsqzeuocefFoES29LhX1vJXp5To7SWPTZ3hxU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224828; 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=/zusz6m+LZc5mv6o/Cqvd0Mvb1DzGPaFhQKINRsmK0Y=; b=LZnYuu5GVygpDzSNu8tn8myNTu43y+SlX5duL87soUyLx2U6T7CngmztqXuG6DSsDuHyQPe8SRnBSJSVWCjH+soE9TcDhFywVWKAtREFk4A3lXgob+7X2ZjBk7WYfe0GMysITXoZyBmQ5P7wN723UCU3PgTLDFERCmpn7nteKvY= 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 1772224828675601.6096749073172; Fri, 27 Feb 2026 12:40:28 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4aS-0007X6-Oz; Fri, 27 Feb 2026 15:37:24 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4aG-0007Gt-22 for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:13 -0500 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4aC-0006qf-Fe for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:11 -0500 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 61RH0RgN702353 for ; Fri, 27 Feb 2026 20:36:57 GMT Received: from mail-oo1-f69.google.com (mail-oo1-f69.google.com [209.85.161.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ck8x8a31d-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:36:56 +0000 (GMT) Received: by mail-oo1-f69.google.com with SMTP id 006d021491bc7-672c40f3873so51528401eaf.2 for ; Fri, 27 Feb 2026 12:36:56 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.36.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:36:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= /zusz6m+LZc5mv6o/Cqvd0Mvb1DzGPaFhQKINRsmK0Y=; b=RFx0Z+LmbvksOURC O4qrphHmVSnLE1MfLlcf4BVVcEXUddUhswZUFkDP5AM92kqr84tLI9W05YXIC4B/ JPrgi1oMFyFpd/7X/eoQJXBJybKYqFuK5p51mRZ9Hq21L8W0UgYhQejhW1WZMZWY D8Zsz7Ga2wBOa+07wcyFC0sUHneun21NomHyPNOzm/VAaW3SbtnenvK0HugRWCbc PpRLqPGZxWfqbhwhqATk/xoJn7Ey8Qhfxwi8IqYaJD5yg0wEgecfHD7+nD5qcRJA bXfNQBOxWJDMwbZNBSvL5MMWtpKxFQjtSU1XNsgxp9SXILeBUWaOBjT8tfYI8rKY AvyB5g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224615; x=1772829415; 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=/zusz6m+LZc5mv6o/Cqvd0Mvb1DzGPaFhQKINRsmK0Y=; b=j0AptahGb5A0ntwVRgrXmZEUIY4pJtJHkMJXQz20A7cruKal7TWmVVvGL7hDFF96Vz iKUl7T2WEN1Vjug3ko2FqzbLs6mGI6VxouGAG2Qbd1Su0bAWjESguuQ62z7DKCzZiLbq qkBtlAqOBeix3PHLKlS1tAEMHHHPIKVGnFsn3L62F4ijyQtIOfh1QXlR3x7keiN62Yzo 4Vplngo7laOkmsJ6qlIbbWIbk3eFMFFt0MzW58waqr2Ggu5y9VV9Wq1BIyGdg85hFYOJ gShjqV/MttifjrMvdHVHoVIKtD0kajdymItkJ+ItQ/QTieXUnRuTh8LHsUdYuNguB4ke Ix1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224615; x=1772829415; 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=/zusz6m+LZc5mv6o/Cqvd0Mvb1DzGPaFhQKINRsmK0Y=; b=F9bcWOcinKp23SA+g6VRXmQvPC5sxPhnEpVQQwWYNxuLmVyF+GQseNvkYUWm6LkQAK lqdLR2S5YVbmsWNmAigFTFzRilbYvtdYPPdQZ7+o8ToLYdmCFYB5czacoWV5zcX3SFE2 JoQRt8stpkvGVIH/WCqM1qXGqaNdkCKFSyHxt/XiY3mAFcJcTPcv8EHtVQ+CJs3OD8l9 c3oEAiLDtGuPsp2AdQ7ky6Q05JOJB05MYg5ovSDMeuqpXo2EK944S5T82ODHjoR7HR0V LSPwat9as18qV/lkV7rKkU8wbgJOiZFsb0/jomVbn6Bfpf73ip4x2PUx1fvxymWry+Wo M2cg== X-Gm-Message-State: AOJu0YzAgxp+B9VYsnCqVtsSsyAY6C9EichzoShkiQ6zhy0k3zaHTNTV pgqOPoLTv4B7K7MymmXTJxk1ndmS4zM9c0sYMwh4Hmm7UD8RM0UDYCk02gy/sGFOQqGpUJiTUxk hTROXy5eP2XN3OJVrdXUDYG9m8CtDtJm+hezEUS3lq/rsqLLk9YGnyrVwsYbX0954cA== X-Gm-Gg: ATEYQzwu5XkixwJzKe7laYSDxhFJiDtg/hHVh+rGyVvuP6YhihNfhPAHvWAt9nIpQxB ROvdN8tv2obIaUFKiVmEhMdFALQH15cxbRernk7HxwPDl6n3SFY8q9owheQHzJnP/7+YFEPf14E UALO5TQDXdtstSYCkZET1uFso7Yl1qJWhJGW9Kk6tMZYDeOY4PTfIr6VB631vrE5G7llLAWp39y FtZI/ZS+fIQxQdVW87iOOONBErMxf67V06KrSVzOG387/ocV2S2WGdotYkD4uokk7nyO4nYqr5i 6rk9z0VmPwx5wW7V2IAO64dLrddQ2Lyg+Lg/hoOJhrpmjSNNjt5dkdw6R7DNZ0BD4M0vkpM7/jc tk4nFuM3ioVOV5KohPbI03Ml+JQy4pDJUquzv8GiZEBRkz3/W7mX2Vh2n1ORJ+Y4y2oj2+w== X-Received: by 2002:a05:6871:3309:b0:3fa:ef4:3e3f with SMTP id 586e51a60fabf-41626f9aa80mr2818573fac.33.1772224615156; Fri, 27 Feb 2026 12:36:55 -0800 (PST) X-Received: by 2002:a05:6871:3309:b0:3fa:ef4:3e3f with SMTP id 586e51a60fabf-41626f9aa80mr2818551fac.33.1772224614579; Fri, 27 Feb 2026 12:36:54 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 v3 16/37] target/hexagon: Add imported macro, attr defs for sysemu Date: Fri, 27 Feb 2026 12:36:06 -0800 Message-Id: <20260227203627.932864-17-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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=WZwBqkhX c=1 sm=1 tr=0 ts=69a20068 cx=c_pps a=lVi5GcDxkcJcfCmEjVJoaw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=Qb_ubwlFxJMmFhvAiBAA:9 a=QEXdDO2ut3YA:10 a=rBiNkAWo9uy_4UTK5NWh:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI3MDE4MSBTYWx0ZWRfX8CyQCOdcAGsa t4+Hl5eFC2Mz6u2mlHEILMqyna2jm/wx4dHFz08jGaEJ9SXjbkzZyVUDQOeHRfJWZ2AFA5HKXRU EeRnlNiD7p5XEPs8IH6MCylpB9o8hPoy4XBCGebpfHCkGcNhSjTfX25aSyuDTksbjeJvxuDNkXv vMErSS87+0IsD+LC9STX8z5UHGLBCstrjJsy+jjo6qUARqKilutch7IIi91SOatgIqNOEU2sMpe 1G+N11idpH9w4HVn6gXE5/AmL2CcNZQKw+vcrqbVyPMUPOmZ0xlc5btpowgcQTXS/fHUE3bZNLe 4Mu0/Y4kI+lM14CE65aOAH0pXfAzJ3kGfZmoVrzkYhGAjey6V3ommAfe8w0k++UWmRozFTX9Byw pV+7ZnJWLejAO4duwWh4n7orb8XpPEgR8y5FjRCQ/y6whtyKHhQaWZchAwrpQu5EKtJ/xGrigNc XPSBDKIvQ83AIMKD4GQ== X-Proofpoint-ORIG-GUID: epwPQWunSvdBSlUl6yOKtkXc_GP58Nox X-Proofpoint-GUID: epwPQWunSvdBSlUl6yOKtkXc_GP58Nox X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 lowpriorityscore=0 phishscore=0 priorityscore=1501 bulkscore=0 clxscore=1015 malwarescore=0 adultscore=0 impostorscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2602270181 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224829314158500 From: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/attribs_def.h.inc | 49 ++- target/hexagon/imported/macros.def | 558 +++++++++++++++++++++++++++++ 2 files changed, 601 insertions(+), 6 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..f24f89f3612 --- 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,209 @@ DEF_MACRO(fECHO, /* OS interface and stop/wait */ /********************************************/ =20 +DEF_MACRO(RUNNABLE_THREADS_MAX, + (thread->processor_ptr->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, + (((TH) >=3D (thread->processor_ptr->runnable_threads_max)) ? 0 : (thre= ad->processor_ptr->thread[TH]->Regs[REG_IMASK])), + () +) +DEF_MACRO(WRITE_IMASK, + if ((TH) < (thread->processor_ptr->runnable_threads_max)) { thread->pr= ocessor_ptr->thread[TH]->Regs[REG_IMASK]=3D(VAL & reg_mutability[REG_IMASK]= ); }, + (A_IMPLICIT_WRITES_IMASK_ANYTHREAD) +) + + +DEF_MACRO(WRITE_PRIO, + { + if ((TH) < (thread->processor_ptr->runnable_threads_max)) { + size4u_t tid_reg =3D thread->processor_ptr->thread[TH]->Regs[R= EG_TID]; + fINSERT_BITS(tid_reg, reg_field_info[STID_PRIO].width, reg_fie= ld_info[STID_PRIO].offset, VAL); + LOG_OTHER_THREAD_REG_WRITE(thread,REG_TID,tid_reg,TH); + } + }, + (A_IMPLICIT_WRITES_STID_PRIO_ANYTHREAD) +) + + +DEF_MACRO(DO_IASSIGNW, + { + int i; + int intbitpos =3D ((REG>>16)&0xF); + for (i=3D0;iprocessor_ptr->arch_proc_options->thread_enable_= mask>>i) & 0x1)) { + fINSERT_BITS(thread->processor_ptr->thread[i]->Regs[REG_IM= ASK],1, intbitpos, (REG>>i) & 1); + } + } + }, + (A_IMPLICIT_WRITES_IMASK_ANYTHREAD) +) + + + + +DEF_MACRO(fDO_NMI, + { + int i; + for (i=3D0;iprocessor_ptr->arch_proc_options->thread_enable= _mask>>i) & 0x1) ) { + if (SREG & (1<processor_ptr->thread[i= ]); + } + } + } + }, +) + +DEF_MACRO(fDO_TRACE, + { + fHIDE(HEX_CALLBACK(thread->processor_ptr->options->trace_callback, + thread->system_ptr,thread->processor_ptr, + thread->threadId,SREG);) + }, +) + +DEF_MACRO(DO_IASSIGNR, + { + int i; + int result=3D0; + int intbitpos =3D ((SREG>>16)&0xF); + for (i=3D0;iprocessor_ptr->arch_proc_options->thread_enable_= mask>>i) & 0x1)) { + result |=3D (((thread->processor_ptr->thread[i]->Regs[REG_= IMASK]>>intbitpos)&1)<processor_ptr->options->swi_callback, + thread->system_ptr,thread->processor_ptr, + thread->threadId,REG)); + LOG_GLOBAL_REG_WRITE(REG_IPEND,(GLOBAL_REG_READ(REG_IPEND) | (REG= & GLOBAL_REG_READ(REG_IEL)))); + }, + (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, + {isdb_brkpt_insn(thread->processor_ptr,thread->threadId);}, + () +) + 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(fINTERNAL_CLEAR_SAMEPAGE, + /* force re-xlate at next fetch, refresh of in_user_mode, etc */ + /* Permissions change too... */ + sys_utlb_invalidate(thread->processor_ptr,thread), + /* NOTHING */ +) + +DEF_MACRO(fCLEAR_RTE_EX, + { + fLOG_REG_FIELD(SSR,SSR_EX,0); + fINTERNAL_CLEAR_SAMEPAGE(); + }, + () +) + +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, + { + if (fK0_LOCK_AVAILABLE() && sys_k0lock_queue_ready(thread)) { + warn("k0lock: T%d: PC=3D0x%x: PCycle=3D%lld",thread->threadI= d,thread->Regs[REG_PC],thread->processor_ptr->pstats[pcycles]); + fLOG_GLOBAL_REG_FIELD(SYSCONF,SYSCFG_K0LOCK,1); + } else { + warn("k0lock_waiting: T%d: PC=3D0x%x: PCycle=3D%lld",thread-= >threadId,thread->Regs[REG_PC],thread->processor_ptr->pstats[pcycles]); + sys_waiting_for_k0_lock(thread); + } + }, + () +) + +DEF_MACRO(fCLEAR_TLB_LOCK, + { + int i; + fLOG_GLOBAL_REG_FIELD(SYSCONF,SYSCFG_TLBLOCK,0); + for (i =3D 0; i < RUNNABLE_THREADS_MAX; i++) { + if(( (thread->processor_ptr->arch_proc_options->thread_enabl= e_mask>>i) & 0x1)) { + thread->processor_ptr->thread[i]->cu_tlb_lock_waiting = =3D 0; + } + } + }, + () +) + +DEF_MACRO(fCLEAR_K0_LOCK, + do { + warn("k0unlock: T%d: PC=3D0x%x: Pcycle=3D%lld",thread->threadId,thre= ad->Regs[REG_PC], thread->processor_ptr->pstats[pcycles]); + sys_initiate_clear_k0_lock(thread); + } while (0), + () +) + DEF_MACRO(fALIGN_REG_FIELD_VALUE, ((VAL)<processor_ptr->global_regs[REG_##REG], + reg_field_info[FIELD].width, + reg_field_info[FIELD].offset,VAL), +) + +DEF_MACRO(fLOG_GLOBAL_REG_FIELD, + LOG_MASKED_GLOBAL_REG_WRITE(REG_##REG, + fALIGN_REG_FIELD_VALUE(FIELD,VAL), + fGET_REG_FIELD_MASK(FIELD)), + () +) + DEF_MACRO(fREAD_REG_FIELD, fEXTRACTU_BITS(thread->Regs[REG_##REG], reg_field_info[FIELD].width, @@ -1561,6 +1808,13 @@ DEF_MACRO(fREAD_REG_FIELD, /* ATTRIBS */ ) =20 +DEF_MACRO(fREAD_GLOBAL_REG_FIELD, + fEXTRACTU_BITS(thread->processor_ptr->global_regs[REG_##REG], + reg_field_info[FIELD].width, + reg_field_info[FIELD].offset), + /* ATTRIBS */ +) + DEF_MACRO(fGET_FIELD, fEXTRACTU_BITS(VAL, reg_field_info[FIELD].width, @@ -1576,6 +1830,185 @@ DEF_MACRO(fSET_FIELD, /* ATTRIBS */ ) =20 +DEF_MACRO(fSET_RUN_MODE_NOW, + {thread->processor_ptr->global_regs[REG_MODECTL] |=3D (1<last_commit_cycle =3D thread->processor_ptr->pcycle_count= er; + sys_recalc_num_running_threads(thread->processor_ptr);}, +) + +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<processor_ptr); + } while (0), + /* NOTHING */ +) + +DEF_MACRO(fGET_RUN_MODE, + ((thread->processor_ptr->global_regs[REG_MODECTL]>>TNUM)&0x1), +) + +DEF_MACRO(fSET_WAIT_MODE, + {fLOG_GLOBAL_REG_FIELD(MODECTL,MODECTL_W, + fREAD_GLOBAL_REG_FIELD(MODECTL,MODECTL_W) | 1<<(TNUM))}, + /* NOTHING */ +) + +DEF_MACRO(fCLEAR_WAIT_MODE, + {thread->processor_ptr->global_regs[REG_MODECTL] &=3D ~(1<<(TNUM+1= 6)); + thread->last_commit_cycle =3D thread->processor_ptr->pcycle_count= er; + sys_recalc_num_running_threads(thread->processor_ptr);}, +) + +DEF_MACRO(fGET_WAIT_MODE, + ((thread->processor_ptr->global_regs[REG_MODECTL]>>(TNUM+16))&0x1), +) + + +DEF_MACRO(fRESET_THREAD, + register_reset_interrupt(T,NUM), +) + +DEF_MACRO(fREAD_CURRENT_EVB, + (GLOBAL_REG_READ(REG_EVB)), + /* nothing */ +) + +DEF_MACRO(fREAD_ELR, + READ_RREG(REG_ELR), + () +) + +DEF_MACRO(fPOW2_HELP_ROUNDUP, + ((VAL) | ((VAL) >> 1) | ((VAL) >> 2) | ((VAL) >> 4) | ((VAL) >> 8) | (= (VAL) >> 16)), + () +) + +DEF_MACRO(fPOW2_ROUNDUP, + fPOW2_HELP_ROUNDUP((VAL)-1)+1, + () +) + +DEF_MACRO(fTLB_IDXMASK, + ((INDEX) & (fPOW2_ROUNDUP(fCAST4u(thread->processor_ptr->arch_proc_opt= ions->jtlb_size)) - 1)), + () +) + +DEF_MACRO(fTLB_NONPOW2WRAP, + (((INDEX) >=3D thread->processor_ptr->arch_proc_options->jtlb_size) ? = ((INDEX) - thread->processor_ptr->arch_proc_options->jtlb_size) : (INDEX)), + /* ATTRIBS */ +) + +DEF_MACRO(fTLBW, + do {size4u_t __myidx =3D fTLB_NONPOW2WRAP(fTLB_IDXMASK(INDEX)); + TLB_REG_WRITE(__myidx,VALUE); + fHIDE(HEX_CALLBACK(thread->processor_ptr->options->tlbw_callback,t= hread->system_ptr,thread->processor_ptr,thread->threadId,__myidx);) + fHIDE(sys_tlb_write(thread,__myidx,VALUE);)} while (0), + /* 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, + fLOG_GLOBAL_REG_FIELD(MODECTL,MODECTL_E, fREAD_GLOBAL_REG_FIELD(MODECT= L,MODECTL_E) | (((REG & ((1<processor_ptr))), + () +) + +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,6 +2035,11 @@ DEF_MACRO(fISYNC, ) =20 =20 +DEF_MACRO(fICFETCH, + , + () +) + DEF_MACRO(fDCFETCH, sys_dcfetch(thread, (REG), insn->slot), (A_MEMLIKE) @@ -1615,6 +2053,34 @@ DEF_MACRO(fICINVA, (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 +2101,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 +2117,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, + { sys_siad(thread,INT_NUMTOMASK(intnum)); thread->processor_ptr->g= lobal_regs[REG_IAD] |=3D INT_NUMTOMASK(intnum); }, + () +) + DEF_MACRO(fBRANCH_SPECULATE_STALL, { sys_speculate_branch_stall(thread, insn->slot, JUMP_COND(JUMP_PRED= _SET), @@ -1664,3 +2146,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 Mon Mar 2 08:45:39 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=1772224871; cv=none; d=zohomail.com; s=zohoarc; b=nherJSWbuj/8ija5I/d1BFzsNsmLhZLpvP1TRncZF8E8pnJRXlYyNUz3fiYIXAj8dOHV4aVturlTbR0EUTFzT0XspV9jKbT/4PIkj4eEe9Src4pk3KU6wzD0MMr/fCl6jWow+xnj4f1KXGcH/bT/sUfDQt5gvZoWrZzzhXl0Au0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224871; 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=2u4EO+OmFJ9rTSJvyCJJWfW7oScisJtxu228lrrBlx0=; b=MIx6mu/W+GiALujQLI45kPC9PQbtKkavQJ30N9eBDmmQuCZ4QJ1Bdj8ceJeACuFSaSpLa9wXjhDJtnWmtCpskDxHZAD+KdRAY1awSYpgXHFL8CrzYmiC7UQZWRBd2pj85iEBsnTKIYEUTF5m7DqiWhmeoSnRHIoq/crz3XY8OiE= 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 1772224871382374.7850625846859; Fri, 27 Feb 2026 12:41:11 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4a5-0006sS-S7; Fri, 27 Feb 2026 15:37:01 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4a4-0006sE-P6 for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:00 -0500 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4a2-0006qi-E7 for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:00 -0500 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 61RH0JwZ1912525 for ; Fri, 27 Feb 2026 20:36:57 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 4cjuur4ghy-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:36:57 +0000 (GMT) Received: by mail-ot1-f69.google.com with SMTP id 46e09a7af769-7d1950b48f3so25099829a34.0 for ; Fri, 27 Feb 2026 12:36:57 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.36.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:36:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 2u4EO+OmFJ9rTSJvyCJJWfW7oScisJtxu228lrrBlx0=; b=jJpNinZMuK6MMG8m QocCy90VDhWAJs7Vang8p8Ffcj+zOk52T7asEKD42UCD0OYDd2cqVu774N1dmjyb GjBlYSdh3QhMkwPGQVpmOTuaQ6VOBLW9n6mouAECSrN4erj3nxNQUEm8tDgfKZJx bHTtFeHHsmkS5on3CtrxH6v9tdgWlpK7AQ2R59nEuEXxGelEzq286o2s1HYSToYL 4xZefnS3IGnQEXcGpDdIibFSAhdCWB/lAgv5HuVUNqQNFs9n4p4NAfwKjDVDTgM9 3F40J2ttbSa7uIJ/FOCPweoBwpxoBh8yyGZIA5Hhjv8WwhAnI41iki0Rx+8vnRtu t1j/Ew== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224616; x=1772829416; 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=2u4EO+OmFJ9rTSJvyCJJWfW7oScisJtxu228lrrBlx0=; b=gps/voCSHxEY+UJMRggoOlMyu9bbP+F2443dhDIO8prPJSl8WtmIeEn7OadtHblwXg NiiyApMhu2I5pzj/yhTIn+4eNI9WUa+10A/XnxGm4NKm7UU9fe+03FXRoyIxYLq07vlp 92wCM96DfSXlOHIGoSA5Q/qC5tmao7zBAfYy+iKomsr06CoRqxjiaZyKxknfkp4PvYGB 0/foG1nyL8GYvmS3J9Wa3fNqvmE+soZBzWp2PvSkSI3v5fNQfMaMws2SlcjwnghqlA9S G7K9X0HxN3Xu9Gu1LLtdHHBWTx1AF+l6b4oaf06xonqsGxMLkkO3sZMxw1A41aKf5HKX cQBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224616; x=1772829416; 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=2u4EO+OmFJ9rTSJvyCJJWfW7oScisJtxu228lrrBlx0=; b=s0t5R1dU+ILTuk0BkHNz2W2ypdPwBQXVEwQ+FzHPiuNMwS722W9qoRTt1HI5IlqKlp ljMYtf7ucrdIi0HsfYmAl4r6sIWG+gQXKJvCX5bBr3auQszC7HZDC0lx/cvrbGKp02l6 7myQSD1SA3exuP1mta2esVUDcpLWcoNepvw20NySxjPMMTlBeohkgdvbNI8jS3Su23Sz 56tEeZIl8P9yqng1BI5JnjdxGJ3UVzO4QE2NlLaI2kQzUiGx2qVB4iN7ED6z+1oiFgEB l/cc4Khj/R/38Y3uMOsNOG0Syv+XLOPWMwHnETqEbJ6XSD/hdA9byoLyU7KbhW05Fmfc mEcQ== X-Gm-Message-State: AOJu0YzqsIZVTtaZ5hyCUIWzUgCks0jY/RuXV2y61oJ2BkG+Od7ZSXwi l10njto0KB1C3uKYx9NgzmFBK8M/9gTOfKva/EOSmxoau3byTE0q5d6Q4aDxNfPe4rPbEmqUZW9 XYHwrvrS83as86nNntvS2eDkzAYvMoledi4yVtfWWcso0eeKr7ZQvGL3izudHvC3ofA== X-Gm-Gg: ATEYQzwHJezEUiRBF8rpdhhS7cvLxuSPsZrQaoZtZOCpAtx+rH25ml88WwsvTxTLdUx FFy5HhiSWdsay80N8OC0zUbZnT2S0aXj/xqshn3L+LMEY2NT+ZdJG2AWv5AjFnqO7upkGqfdfcB GrVk3Nxn+JWW/tlKyv4lrB8qC+Qg/t63hlbOaUdccQnpolXAuFW6OAsCuihRNJPPJ74uvqqgIXF TAYND3zMiz0NG4dmULwP01TkSO4vf3A5LkUCblm5fjrKih+8CMSIdh2xDPGnVB+9hNYWZKroFYy edC0++B5QOxiI5++OfJ7t9Z2KBQTOamMFgAumsWPeXu7mauwBxDX1hq8WP2++QEoVswH+NPAKGr 6+qUx5RVIRelTZL9KxeDdveGORP778DSno68vCo03UWduk7PeEWiIp/GiNnfovT+KoDCAlw== X-Received: by 2002:a05:6871:6908:b0:3f1:6d93:4386 with SMTP id 586e51a60fabf-41626de47d5mr2662877fac.1.1772224616438; Fri, 27 Feb 2026 12:36:56 -0800 (PST) X-Received: by 2002:a05:6871:6908:b0:3f1:6d93:4386 with SMTP id 586e51a60fabf-41626de47d5mr2662865fac.1.1772224615922; Fri, 27 Feb 2026 12:36:55 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 v3 17/37] target/hexagon: Add new macro definitions for sysemu Date: Fri, 27 Feb 2026 12:36:07 -0800 Message-Id: <20260227203627.932864-18-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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: f1IPRsIfp9kqJ1QuBOiXRAh96-P2ri1Z X-Authority-Analysis: v=2.4 cv=PN8COPqC c=1 sm=1 tr=0 ts=69a20069 cx=c_pps a=z9lCQkyTxNhZyzAvolXo/A==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=VoFV4bgUeqxKQXHmsMYA:9 a=QEXdDO2ut3YA:10 a=EyFUmsFV_t8cxB2kMr4A:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI3MDE4MSBTYWx0ZWRfX1at4PD4HtwU/ SPtaZdm0ciu9uYFo+mPOc9SFQQDZvRgXLR2Ly3RhPlf0FkNoJPQgQwFk9eJXhJtauPQ3jZMXpa8 kG8OaNzB5HnKd5OpE5hsmm1+p8+85QBzBoR2L2B3uDssIH9Glu+0UrFzwWw9BWvJvdh+PI2+GMr ZH7kU8sfbzy+F04DbPdjwilZylNVcYYX1L0ER4vSmtZXJSpPQRImDXGjOWGzRs/OUfHxNMw+ozt l6mFgyxMC7TeRRQDc+tArmG0FkArUHaH0qDV4HwZIIA3NGyOp0YJbQ/ILWr2Vhx6Z/gANl83qfT oiRxYx98svD7P80XXwYEvHvpKojU2Ox7vkR0B/evDlGyRHg/0ySetzJswbPEl72s10qDu4abzVn Uxcur3hl2XFN6j7x/TA09YN+utckvR7fN48hppTfqBoDrKMdU+c3ZAMG2v6gdk3GVjS3lS7fRq2 u78P7ojka/fgjmQwKjQ== X-Proofpoint-ORIG-GUID: f1IPRsIfp9kqJ1QuBOiXRAh96-P2ri1Z X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 clxscore=1015 lowpriorityscore=0 adultscore=0 spamscore=0 phishscore=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-2602270181 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224873478158501 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. Signed-off-by: Brian Cain --- target/hexagon/cpu_bits.h | 7 ++ target/hexagon/gen_tcg.h | 9 ++ target/hexagon/macros.h | 25 +++- target/hexagon/sys_macros.h | 237 ++++++++++++++++++++++++++++++++++++ target/hexagon/op_helper.c | 1 + 5 files changed, 278 insertions(+), 1 deletion(-) create mode 100644 target/hexagon/sys_macros.h diff --git a/target/hexagon/cpu_bits.h b/target/hexagon/cpu_bits.h index 91e9da09e03..3cbf8b7f570 100644 --- a/target/hexagon/cpu_bits.h +++ b/target/hexagon/cpu_bits.h @@ -97,6 +97,13 @@ enum hex_cause { HEX_CAUSE_INT7 =3D 0x0c7, }; =20 +enum data_cache_state { + HEX_DC_STATE_INVALID =3D 0x0, + HEX_DC_STATE_VALID =3D 0x1, + HEX_DC_STATE_RESERVED =3D 0x2, + HEX_DC_STATE_UNUSED_WT =3D 0x3, +}; + #define PACKET_WORDS_MAX 4 =20 static inline uint32_t parse_bits(uint32_t encoding) 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..3b66b83695c --- /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 + +#define READ_SGP0() (env->t_sreg[HEX_SREG_SGP0]) +#define READ_SGP1() (env->t_sreg[HEX_SREG_SGP1]) +#define READ_SGP10() ((uint64_t)(env->t_sreg[HEX_SREG_SGP0]) | \ + ((uint64_t)(env->t_sreg[HEX_SREG_SGP1]) << 32)) + +#define WRITE_SGP0(VAL) log_sreg_write(env, HEX_SREG_SGP0, VAL, = slot) +#define WRITE_SGP1(VAL) log_sreg_write(env, HEX_SREG_SGP1, VAL, = slot) +#define WRITE_SGP10(VAL) \ + do { \ + log_sreg_write(env, HEX_SREG_SGP0, (VAL) & 0xFFFFFFFF, slot); \ + log_sreg_write(env, HEX_SREG_SGP1, (VAL) >> 32, slot); \ + } while (0) + +#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 { \ + uint32_t regval =3D arch_get_system_reg(ENV, REG); \ + fINSERT_BITS(regval, reg_field_info[FIELD].width, \ + reg_field_info[FIELD].offset, (VAL)); \ + arch_set_system_reg(ENV, REG, regval); \ + } 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 fSET_TLB_LOCK() g_assert_not_reached() +#define fCLEAR_TLB_LOCK() g_assert_not_reached() + +#define fSET_K0_LOCK() g_assert_not_reached() +#define fCLEAR_K0_LOCK() g_assert_not_reached() + +#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) \ + ((GET_FIELD(ISDBST_DEBUGMODE, arch_get_system_reg(env, HEX_SREG_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 HEX_DC_STATE_INVALID | 0x00; \ + } while (0) +#endif + +#endif + +#define NUM_TLB_REGS(x) (hexagon_tlb_get_num_entries(env_archcpu(env)->tlb= )) + +#endif diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 368391bb846..39f0c0445d6 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -24,6 +24,7 @@ #include "cpu.h" #include "internal.h" #include "macros.h" +#include "sys_macros.h" #include "arch.h" #include "hex_arch_types.h" #include "fma_emu.h" --=20 2.34.1 From nobody Mon Mar 2 08:45:39 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=1772224645; cv=none; d=zohomail.com; s=zohoarc; b=IghjSFmsDrgTdb3Q8Qa/sunr4Xte7cQgP5v7PBZ7UDyRYLjsV23NNkNWPax/LjOPnkunKNtUX/xTFasNjZvGmh/UbGZg8p2XeDGmlDOPCS5D5ymu8go0pNEOYWBf2grZjqKE7lycjJYZbmchMbhWksi0hJBWC9EV+N3o78bSvbI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224645; 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=N3opY5fPwfaoLumja3ySo6JzezpNfxkIXTil/1+MMug=; b=jHKEzBWn2ZnoGKSvY77lRV/SrWBRn2iHWZJljNROw1h2RTyFvE0eZQB0Ado+iUXo6f83/SibhRYiCw61kZkIivmI8moN8o4JscNBXK5/gjwjy5IDU3OQUl38juaqlyHSiQOmHPjSYRK0P6AMDXxU11M2Y0F+JrTFVIc5+OL4pZs= 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 1772224644994841.4990584524752; Fri, 27 Feb 2026 12:37:24 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4a8-0006tF-0P; Fri, 27 Feb 2026 15:37:04 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4a6-0006sp-CH for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:02 -0500 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4a3-0006qp-Dp for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:01 -0500 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 61RH0HXw3944640 for ; Fri, 27 Feb 2026 20:36:58 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 4ck73q2d6h-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:36:58 +0000 (GMT) Received: by mail-ot1-f70.google.com with SMTP id 46e09a7af769-7d498212845so14403067a34.3 for ; Fri, 27 Feb 2026 12:36:58 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.36.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:36:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= N3opY5fPwfaoLumja3ySo6JzezpNfxkIXTil/1+MMug=; b=QhDPUjoXc4GprWbg 57NlbbNkqlghiem19Yc01feAycJwjJnD8/9ktwD4LfGczXzjxEV+AvcdAihQUUqd xR+7rR0ZeMyZCnzKgsjKCFQr8QtsPh1Uiv6eecn3tQYPoY41Brobqmar3ugOv7Xc W1XgOliEPNMjkLGHZAZ0wbUhHacWB3OXAf3XPoiZeglW3UFYGWNxbolFkWmwlAYd ocdXKAtzJfWzf2T/e1YFFl7kz5l9+2jVXRE9yFs2qtJrOMCAhZFP/ywbuCaMbZY1 IExkDOrRUbhQs8H+ZGN83F4Fv5VzBZJ1h0oCgIcJqvVX70WcZLhfrmY6pF5qU2gj qRhzDQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224618; x=1772829418; 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=N3opY5fPwfaoLumja3ySo6JzezpNfxkIXTil/1+MMug=; b=jrpkBeBbD2xR5h9fQKotyu/R7XCey9I8xMQJD267pyblc8UNGI2s1P0FXn/M/EoZ9q P/v7wIp8HrhxOba+Qqll9752zekaN+hT0FRcO9h6/OjowHMshwisO60lPjRNCL1A4QIN K0/aEncPCxzCjtXBOCWmPkAz8tC7ujF5DkKG+cl4JXK/M2SYhxgQttIUz3vbcQsDg8Jt ZqJTIoXMswk9fdHFMUKVcObf1Eg9CWX1QntJsU5NNxKrJXU7BeCZ56WpwDfhKf3toNgj 5O4s3vBsw4Wi+clpW3mfOa4WEP3snuiknESItF3Ff8HkEE7r+Qrha4J3PcKY224JMZ6L CDjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224618; x=1772829418; 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=N3opY5fPwfaoLumja3ySo6JzezpNfxkIXTil/1+MMug=; b=CFBCQHz+OrN4UsUHZuEOE0ATpmHYfuClkU9RiGdT9eLmakek8fcuNcv7ZFiwn7pPes eLjbUeK3nQB9WI7HsVEihkRSPZhHQvfCM3RaaRgW42b+UlVTUIn+MPQLRJCj+vm3bIiU KZleOtiee8LA5NS5UaNKQ7paEQAZdY5wbJ2B+DvYnxTwIU1cMuqsXaw/fwrfnkjEkOjx mtMi59KcN2rPuu6qyGHMwJNRdHCaY2QHFppHyxPg0xAuW/mS/8crwqf5V3gQViPuLRCa wYm6LxBsPsVfQFnHOSWjFhiOMZDwPZbgYiw/nhv3yK8e9BGBYd0nOckuR6CrA/IZP1Gh YeOQ== X-Gm-Message-State: AOJu0YytNt9kvO7s3wHVo/2KoqKBIOMcu5C4fpZGHM9+sAHVUlNz1BV5 0w+eBxFmtLWRT8oSP6Hi5eNGWznaonHArvAM3TRp6xwKEYYDp8kcUaiMA3ZTCh+j6GmiMcdsmyW JT79acKJrJiE2h6Z32hIe4s/xX3UZHI/q5UDavfT5ZSIDV8EmHDEzEORWOp4byyqj9w== X-Gm-Gg: ATEYQzxhV2GC42ksJ5+V02L+oy8GoPxmERHyV7aAj1Z1L8wNbTv7lqpy6jVYxRVOjqO UIfXOUH53CU+wG7UlO/DEL+QHPWRIkYhw+w/nCuZnA8TYg+Jrzt6HWyrm64puaLwJ17Lr2/gJZs 1WdjioVZPV/0WftbdOulPARI9E3UopNCqTLoinBjPJDAeEGoYdMBu8OYskOh0Zl/pcH6uEvUyNu YMDoKKNwk5meRG0rQr4d1vOYq9voZ3H2rfhpEu5KZ1QoGEn1HFl3zaTQ/4D/yrXGYp6I3SQ1X0I Y5qEi+IIkP2p65ne72NyEl3oaEqho7x4NgHy6JgSOcUEKjZ9qu6be7w5SZal9XK6QNI0g1BaFQR 2MHOTgX4bmknHWUA297rjluSUtx6x9OGGlXsTkCOP61pmnW9D3Jio0LFY2nCTdTI3z0zj5Q== X-Received: by 2002:a05:6870:6195:b0:415:60c9:a41e with SMTP id 586e51a60fabf-41627039d0fmr2877745fac.33.1772224617657; Fri, 27 Feb 2026 12:36:57 -0800 (PST) X-Received: by 2002:a05:6870:6195:b0:415:60c9:a41e with SMTP id 586e51a60fabf-41627039d0fmr2877725fac.33.1772224617229; Fri, 27 Feb 2026 12:36:57 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 v3 18/37] target/hexagon: Add handlers for guest/sysreg r/w Date: Fri, 27 Feb 2026 12:36:08 -0800 Message-Id: <20260227203627.932864-19-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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: AW1haW4tMjYwMjI3MDE4MSBTYWx0ZWRfX2nnEdNIQfmSz iwLda/9ieJtX5psvK0XbBqx27rGOAMJVBcXt2bQobMVEkF1tbYqAqMK59tQnGLqdWGAcbh75BYw 4IUIa2tC81g2jAT43cLCW2J+V6IbwX1sfLCPsCCp3AAmfZKnJKuwtJkreH6OzaRpJX0NbABXXve pW4CRqW9t9N1q0e9Hp41jOOHEUYSGxxUekoSldDRV6m0tfK8xE+PaDTHlLc083LuBnt3nJhRe+w lJTObisbbBcaeoe/qcvhef6bHlNjGmV1vlhucnpQrW/R0Rxy5Kzfyd+0MtMg/wzXnUiCJyMgFSS RhxRfLhnIjFn1xZS1BTjPcPUNS+b3nvooK+d+kTUvvReMHFYsNT6mrhbMtad6jTswwBraA6Wxkd SVUeaRsg58rafbfVaCkpTElp19twVSNVBz4j4JDCewK5x2Al5ASSc2s0m8xSvgByy7wLhAgSCL3 6o8+8gsgIiVt8cbBbVw== X-Authority-Analysis: v=2.4 cv=KL9XzVFo c=1 sm=1 tr=0 ts=69a2006a cx=c_pps a=7uPEO8VhqeOX8vTJ3z8K6Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=YS0KV4ZxTOLzYV__0jkA:9 a=QEXdDO2ut3YA:10 a=EXS-LbY8YePsIyqnH6vw:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: IMIvd3Ch15zpfC9B7bNorc84S0t_oYFH X-Proofpoint-GUID: IMIvd3Ch15zpfC9B7bNorc84S0t_oYFH X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1015 malwarescore=0 priorityscore=1501 adultscore=0 bulkscore=0 phishscore=0 impostorscore=0 lowpriorityscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2602270181 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224646479158502 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. 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..908f7e5e2e5 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 va= l) +{ + tcg_gen_mov_tl(ctx->greg_new_value[rnum], val); +} + +G_GNUC_UNUSED +static void gen_log_greg_write_pair(DisasContext *ctx, int rnum, TCGv_i64 = val) +{ + TCGv val32 =3D tcg_temp_new(); + + /* 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 target_ulong 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 val) +{ + const target_ulong 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_tl(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 val32 =3D tcg_temp_new(); + + /* 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 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_tl(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 badva =3D tcg_temp_new(); + gen_helper_sreg_read(badva, tcg_env, + tcg_constant_tl(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_tl(reg_num)); + } +} + +G_GNUC_UNUSED +static void gen_read_greg(TCGv dst, int reg_num) +{ + if (reg_num <=3D HEX_GREG_G3) { + tcg_gen_mov_tl(dst, hex_greg[reg_num]); + } else { + gen_helper_greg_read(dst, tcg_env, tcg_constant_tl(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_tl(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 Mon Mar 2 08:45:39 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=1772224851; cv=none; d=zohomail.com; s=zohoarc; b=M4asAZgbXIWjR/X9kJw5CBXnRUB4K/+Y7Ti3JXgXH+GV8IXbSvgJjQZ/C4E4UQSoDxomRwOiblukA4HqgqpcuqIaaRbVcESoZduwENdfKIQgXtC6L+2fhqoQWIMC5FF70qbOiN45ga7u74rl2uvHdcttcBNpsoGnjpH1r17TsgM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224851; 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=uOmQcfvtUBhmLpHpjOqkH06FAc9fEZSVWLmdbdFVvs0=; b=MMreKJnK/q2wETOng8Pm4itQJjp2hEhwOv6LoVRW+rOPBvo3IDMXGn1XRGnqcPc2nJLy6uoyE9Z82iAoSSPZFeseYyiihudBJdjc7hmjfMkxFs/D6Y8W/ZuMauZ+Z1kW04l1UkM1+susu17Nz++zI1oJYcekOE6/xsTPP4rHPuA= 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 1772224851454423.3625046396827; Fri, 27 Feb 2026 12:40:51 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4aY-0007qD-8Q; Fri, 27 Feb 2026 15:37:32 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4aH-0007JP-Em for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:14 -0500 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4aF-0006qy-9b for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:12 -0500 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 61RIetZx373605 for ; Fri, 27 Feb 2026 20:37:00 GMT Received: from mail-oo1-f70.google.com (mail-oo1-f70.google.com [209.85.161.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ckgrtraur-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:36:59 +0000 (GMT) Received: by mail-oo1-f70.google.com with SMTP id 006d021491bc7-679f6f264ceso30893228eaf.2 for ; Fri, 27 Feb 2026 12:36:59 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.36.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:36:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= uOmQcfvtUBhmLpHpjOqkH06FAc9fEZSVWLmdbdFVvs0=; b=IsEV7R197+GpRRLP N97TQ/vrdEoHGwb8qi12P04OwXtBB74JUwhuhCZ/pqOevnSrnYNHWGMz9xFjs1um oKhT380M3/Ehe3K+WHZEBEV8qIA/wA8GroCoaCrUZzFzmEIHIV3Z7vtWFPkbJdAi oFTinJj43eR3kCBIxXRw3SogKfGJLbta7Uky+2/dc1tVqiqcxyzSVGmqfpvK1Qkq JbMwKfwQoPK0ZII/+RG/IAQyd9QSvrLmnF1lHVuh25YMYZiHIHlmzvWdQPwU7ZdS 9fRh9cdkuyxplKRnjtQqNbzckpHyf3mC4uNGGS2tbBkPDtK7IFCA4/KsxnwpL5Yp bAlhBQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224619; x=1772829419; 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=uOmQcfvtUBhmLpHpjOqkH06FAc9fEZSVWLmdbdFVvs0=; b=kawIVMv4pJya5Hghvu9jBSzmPvp52ZEAppVOhen7YV2AxUJ6iFrxLvUlpyxzRTwQlR 8J6NwmEpnMD3aVemPjManjdrVnw7dip4rJ70A4EafU6btn/+I7/SoweVvWtDrfQrQoGO v4SkYrCKjmbwHvTSHanBmjl9lpZOX77qYkyws+TiazSa/hfPfdzgaKqhKzHWR2P6q9wV +rbkDslO4C6HAhrgI45BnbrXVwQ3rSRANiMOiLQMkrIeX/GtnDoCc/SDRVBP1nOqSx5h 4uUK86r1Zz+yl/Wm+d88m9owhZ9eWwaPADinsVV4naXcgsqJw5l3lts1z4WjYJMzbGQp oRYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224619; x=1772829419; 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=uOmQcfvtUBhmLpHpjOqkH06FAc9fEZSVWLmdbdFVvs0=; b=mwvCnuzk5EFA6qwF/8PLGbDca6FZrL4Jt8ENYzdHuzMAFpPj7SmK+TxfU42hwh0WFp GG1lckoLtKF6Zolt0iBhmsrkEEbTlsIwR6qY+N0fKHTfvVcxIOq2aq11xihh0EPv8k7S w4nPlKJPTiMg8pYGCPPPRgWUvYHQA0zy+V7m6G/w7lxZocWKu+z1LlCy/Lj3JF6GXdKm 9mGfWfn0FsbUMA87zg4uYnybF5PjkySk4GTxU681gtHZwKzfvcQBLz3CdxfbM/ES8Z91 UObVvTFfYwsNUah/V0dP8cdRoMhwvrZkN6EdNUBfU0ONBnWPFcBTQUgPbph63K20iTbU TXxQ== X-Gm-Message-State: AOJu0Yz6dbMPsIQZOiTli6wXK86e88vRXAxgPwPz78GDQdk76MJ5koF/ AhGE/bk5psUV7GuOe1GIGdD5Ffuvx9ujMGh8vzlVSJI33naEJ4cMYldBITtWIIp6xTYiPhpv45M 72+nc0ccZH3PTbTJ2W/zRyErYCnrk1e9gLvh1UY/++X7zLt0P/Nwm0oDl/zGzsW4vVw== X-Gm-Gg: ATEYQzyn5Fdvh/DuVPAVT+OII/QRjNI7bANnFoz0OC98zg/owpVvKl0xeUzOI0dwfpz qylWdDS1kS8VfLFabZZLXD/YiU1K+3QaLWfbER4XsetDdh+W69PACb00MB2MffJwZLyLhBq2vuH L9GynbSVqZSTf94y16S3B+5m/Ak5XAfkWYDrnH2X1CRvrVW4cQ2uGUIkC7NH9XhAt7bfcY5p00L JFcJoVuQoIoeDY2W5Pez+wF7cUvFkkXzSMVSZCLJ9Rv5gFm748C2IxxcP8RZ/aE3m7fUfFUtuFh zJN/rxjy4hAZ3LX7F1yZjSUX/qJhD4JI9cDJGOOjV7oOYCLByGYIR+LYIM6wzj/zCs7dvVtXRiV zbIlOfvzPs+eLx8lBV6mmLv/+jtxIroKyhTn2IVcKo6raWArvXO8WbLN32ingvMeyG2kvzw== X-Received: by 2002:a05:6820:8108:b0:659:9a49:904d with SMTP id 006d021491bc7-679fae0a4c4mr2964205eaf.24.1772224618825; Fri, 27 Feb 2026 12:36:58 -0800 (PST) X-Received: by 2002:a05:6820:8108:b0:659:9a49:904d with SMTP id 006d021491bc7-679fae0a4c4mr2964186eaf.24.1772224618446; Fri, 27 Feb 2026 12:36:58 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 v3 19/37] target/hexagon: Add placeholder greg/sreg r/w helpers Date: Fri, 27 Feb 2026 12:36:09 -0800 Message-Id: <20260227203627.932864-20-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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=C8jkCAP+ c=1 sm=1 tr=0 ts=69a2006b cx=c_pps a=lkkFf9KBb43tY3aOjL++dA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A: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=oSs-Am0MwCqMoGAbxz0A:9 a=QEXdDO2ut3YA:10 a=k4UEASGLJojhI9HsvVT1:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: Yb8-m1XRyau5QJqZl36D-cv-ByYbXvqB X-Proofpoint-ORIG-GUID: Yb8-m1XRyau5QJqZl36D-cv-ByYbXvqB X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI3MDE4MSBTYWx0ZWRfXwVdbySPzoKzz TaNt3giFZaFzVHggmuJenWrpNi4P3jlvsENvYM/GURvoo150MZcDui+hJ7mDb9XbUS3a/uLamhd MyMp4ziUchweBzyERTzBj/caFtjv42j99vwStVW/0HzT79+wd365DTaNLUxl0KuY49TV2tbHkIL Kw2liV0KSjs7SPz32/C9Lgn2NDkcJt+6d3BRGVUeCYG1Hos/0LNqpqdEpD9+NgwmouSUWReowCw ILYRDrUCrwt9V5/4SaE+JCmgQ+pmN1GBoz9b0b6QwZ9QB+YpnYAVULO+OMEPzInV9W2p6KXT7tL TceMk3yTGzCOeMva4ekv6lrrcxYiDOV6PYG9k5CKRmeL5EzBFHqYYRribgF7W/mp4xGHlpQF1wY NsWY5HGL6aE9gzxF+bnQMQwRDRxA4XtKNSqGYGYHC4z6hzxSjsVcscbf//Ct4BoFbMaAcLpt0YC a3XXiUceMkyasH+YgRw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 impostorscore=0 spamscore=0 phishscore=0 malwarescore=0 clxscore=1015 bulkscore=0 suspectscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2602270181 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224853246158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/helper.h | 9 +++++++++ target/hexagon/op_helper.c | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index 64456822bc1..85dba2f4291 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -107,3 +107,12 @@ 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, void, env, i32, i32) +DEF_HELPER_3(sreg_write_pair, void, env, i32, i64) +#endif diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 39f0c0445d6..13e3c2c3a41 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1370,6 +1370,40 @@ void HELPER(vwhist128qm)(CPUHexagonState *env, int32= _t uiV) } } =20 +#ifndef CONFIG_USER_ONLY +void HELPER(sreg_write)(CPUHexagonState *env, uint32_t reg, uint32_t val) +{ + g_assert_not_reached(); +} + +void HELPER(sreg_write_pair)(CPUHexagonState *env, uint32_t reg, uint64_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 Mon Mar 2 08:45:39 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=1772224700; cv=none; d=zohomail.com; s=zohoarc; b=GLoOAKpYuwcK2v1s5ucLT+VI5If3hG33TUxcspeD6N4OA0m4+jFEbrXJRE/7O75XrM8ZEz1+oL1w/tvle4GByqDmDCKxeEz+9pc5K/lomEjQ4S2nxwJ0j70WhDYqqlBXEb2+RV2KAj1LAlqLeTjY5NcmB9L0TbunZMfxLzxVK8s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224700; 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=5DjSl/WAiUXF3sCokY21sPk5/qzDZaPC8uNY5QkMM1Q=; b=JXhlF3tL+4mLQvnerukOMEFntFV9ZNi9HwsOWQ6ADc4Dw+Iu5pnFAAY1E4STUbXdXFXl+0zzaKvK0x2pz6TNxLQBiOtubRlbqvccbEVSPGyJ2gto5xbU+GBm9TSPuTB0hDXslDsWEQiVluBD1xTgfi3uWvNMm6m0oTuCVZsOIdg= 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 1772224700193696.3226635144997; Fri, 27 Feb 2026 12:38:20 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4aC-00075a-ST; Fri, 27 Feb 2026 15:37:08 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4a8-0006wb-6v for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:05 -0500 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4a6-0006rB-5D for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:03 -0500 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 61RH0HFI010544 for ; Fri, 27 Feb 2026 20:37:00 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 4cjuytvg18-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:37:00 +0000 (GMT) Received: by mail-ot1-f72.google.com with SMTP id 46e09a7af769-7d194b631d6so1925482a34.0 for ; Fri, 27 Feb 2026 12:37:00 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.36.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:36:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 5DjSl/WAiUXF3sCokY21sPk5/qzDZaPC8uNY5QkMM1Q=; b=cq1AK2ZbQbytXDUd FObYWqeVD678ALqKJCs2zg5EybmcrtrOjWZsBbXSTBWOdzBkvhwq0FIwF72CWy5Z muIfpdr7iPEREf9bdxMVH81srW/EZ4Mqt06xl7p9G3BH0Y155wxE9CJlWZIPvNzl 9LPZJXZNZz+UTCRZwg54YRxgdLmnm5tqScT64Rlz/I6L1WC/f4wJQ87CM0HbGaoh jvnA06HqiMr8SEv5KYqVo582xQrdk1VlEpgkNOdMb1MU5zLb83iZ60h+pXW0hdWz h+h68T1kDTXbdCWgssLXwXUY+LQQd+b/M5BtVy89BbDo9+Geb3+l9LXA0nZfBb7w EI3mTA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224620; x=1772829420; 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=5DjSl/WAiUXF3sCokY21sPk5/qzDZaPC8uNY5QkMM1Q=; b=ONwD6dRO1kCgKMc1T5SF+NT7RacbAw3FKJ2si0wQ8ByjvYj3Oj6GVkIvW7xO2bWRu6 PYcYhFaJIaxLKvtYf50dxu3BkBEaFxqMfy+UIOGP7SJ5R4eON0aWCnGa+WgqBPJntg4E ezmVokSWJFtiGEFJng5EVvwCGEYUUgtflM1/tYprcv5jgr0CnasRF8FUVNjxF4jxkOrJ FdmkiNgyeZIb9Qmoe6N0WK55/nO49OibyAgyEWVtN/fXm2f562pny8w5UIoJmi2gPBN2 II11drxLm5en/END98jGnYIv/2o1FoxAi7cdUMXhA7ZowxJxdUGNIcaUmGKVomA0WYjg Rkrw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224620; x=1772829420; 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=5DjSl/WAiUXF3sCokY21sPk5/qzDZaPC8uNY5QkMM1Q=; b=LxAjQ4mMiGoO5cghf5o3qSZOGGBwYz0S5YcZy7fk7HH53waAmw6CGOymSqijmmjG70 HOsaw0nsLbXRgf2jIzr+DJqbaoplaQcS3MwMtcNTZZ6JE0JARrlZkpjKnt2uaoII0ZqH eOW3O0uZIfk9JuOU88ls0i6VC0stHxd4k9+lmRnTxc/PB44ml7f/u4VvIPvf8hh+kOIo ATBbXNJjHVHVbADeXKhFX7ThsvTBlTcEj1c4B9zui4M0PfGKDotOacyyK7gXl+/JdI4M SsI7YzvLT2qhvlXk9Lv5GP2r5bsSKjtjaBHqmqOEjOXtTBasCa9Yx4rQbOlrdKchm+zK TnsA== X-Gm-Message-State: AOJu0YyAlF38pfpkEFG2BhfpauF9tqIS697SGOr1PsEh/Z60P46/+G1L wMf3uqETYSzApBdpnt1VQHLc3aPu1Aw8bi50KDslXRcJeD9w7YUUBOyWXWKlz1diTpPAd0GvSh/ Pjb7tTW7X9G/yfhYTkVud2WWtm2YFSoZtRR9j0Isudv9MjSNR5gDoKrnfNKzaaN0gHw== X-Gm-Gg: ATEYQzwbwI+wnW59kQbDmelCnfuxWKW8AbgmL3z6VTfqBF2cel57jc5p9+GNqITzkVS 1wX9383BnipVsvChUEVe+KRMGKIpCz0k0kDYyehbJ43vDf3P2xTSICWY6ruTp2upG5Uj3yVMnf/ qZfh68Oneq14jeXet5RNaWNjsoLkNmPmDqFXBCFTJiyBGDo+e2HpGKEIer6wsUw6skpv9C8dn6f gcZ94JM4UowHIAwQfS7c8ewbJWJuUnixgH1JT4mb6s4d2BD9HA+LIw7I7XTm6bj4olznWy3TD1y aIIV7IP6YaJf+AF7CSZpFOhjxJHW+D4BOgRy3KEygD5UCLLRa7j8FlQb4SWi1sQtbVIvEOP3n+K 2XtVqcMuv/MdxkH6k0B8N2NqLuVy0lIv3F7jZHRPuatT1QNmk3RIJzJ/K+q/51rr/ll5mvQ== X-Received: by 2002:a05:6870:16d2:b0:404:2e96:8140 with SMTP id 586e51a60fabf-41626ffd0e6mr2863763fac.44.1772224620023; Fri, 27 Feb 2026 12:37:00 -0800 (PST) X-Received: by 2002:a05:6870:16d2:b0:404:2e96:8140 with SMTP id 586e51a60fabf-41626ffd0e6mr2863740fac.44.1772224619603; Fri, 27 Feb 2026 12:36:59 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 v3 20/37] target/hexagon: Add vmstate representation Date: Fri, 27 Feb 2026 12:36:10 -0800 Message-Id: <20260227203627.932864-21-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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=bJIb4f+Z c=1 sm=1 tr=0 ts=69a2006c cx=c_pps a=+3WqYijBVYhDct2f5Fivkw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A: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=zFM9_BfjGYtbIq66ZkUA:9 a=QEXdDO2ut3YA:10 a=eYe2g0i6gJ5uXG_o6N4q:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: 2z32UvPJaSd4R1mFiy4jKru_WARBKqcn X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI3MDE4MSBTYWx0ZWRfX5pwJuDQQtP7m EQRVx9DthnZqhTKoKy8KzGz4ZlhAJlwlXxPJsngtHCy4aGzDwqJCn+pYMB9uw9hr8sNeeXA6KAt 02tnMMXU9u/294wyw9bphZwxyH6pnCfc8pU+VpxOHtg2Z99WsiNvaLIjWkRZTM3j3+sMMYgj36T PkAdsRG6RJBLEAEOunInBSWL1Pys1lz2QxAfgrJ1VSobxTwkCQ80Bq/TwVqKVmlCb/cUIAZD3nc TC2jGNuh+wEjjHyzSDOGcgQcc+FH+JKljUH1qcSdQjFbzexK4LmxbN/BhaKHz/WxNRusFr4tiqv BZSQ3RTzX9TSee5bq31OWF0WutiWrTKx5SawezHKpIQSVmuo8MDB2BZHHVw4oGuyJgJwhqP6c3a WvlycVgINM851z/piWMYo60UAVCwR0H2oFGseYjJfPv/GcnGJk6KBT0Ke9CSncXqqj3YbbQUVH4 uBzh4oyvc8oNIDXLniw== X-Proofpoint-GUID: 2z32UvPJaSd4R1mFiy4jKru_WARBKqcn X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 bulkscore=0 adultscore=0 phishscore=0 suspectscore=0 impostorscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2602270181 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224700676158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/internal.h | 4 ++++ target/hexagon/cpu.c | 3 +++ target/hexagon/machine.c | 23 +++++++++++++++++++++++ 3 files changed, 30 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 c4df7cbe30b..a8f2f9e238a 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -386,6 +386,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..89a2ca0bd94 --- /dev/null +++ b/target/hexagon/machine.c @@ -0,0 +1,23 @@ +/* + * 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_STRUCT(parent_obj, HexagonCPU, 0, vmstate_cpu_common, CPUS= tate), + VMSTATE_UINTTL_ARRAY(env.gpr, HexagonCPU, TOTAL_PER_THREAD_REGS), + VMSTATE_UINTTL_ARRAY(env.pred, HexagonCPU, NUM_PREGS), + VMSTATE_UINTTL_ARRAY(env.t_sreg, HexagonCPU, NUM_SREGS), + VMSTATE_UINTTL_ARRAY(env.greg, HexagonCPU, NUM_GREGS), + VMSTATE_END_OF_LIST() + }, +}; --=20 2.34.1 From nobody Mon Mar 2 08:45:39 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=1772224719; cv=none; d=zohomail.com; s=zohoarc; b=dTYExn2/aZaUlxro/5PbVYj+HuIJQS5urtNxZgvnwD/4jyUfw3zjzk1BQRZal6I0UOV9BiG7834YYssYbQAI49mrNRojw+ouBb5YgJiT7d7oc8eF6lJT9Q9ZBUGKY5cp8HadPuG+lWKTjoT8cFV0/sKvExkEyR5/2jynPhnEP7E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224719; 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=sqRRg1wDPGhWBNP8ztWtT0khSUeHahQhAnQ3t76w0zA=; b=GRvzguScbi+pDTKW7+iHCCBuTD+6PIVSLt2PeqxGmfbsBZFiaPztzdjHUcNycs2Mj91X21yI2sEWUcBCiT9wCtk7TtXy+GYZyl8DKZJwBwGYtCi/vMwet9wEnGWn6qLFrskBypU+q2Ippc9BWw2ybn/1vICGGH0zutXPKEYjLI4= 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 177222471928318.032854174698286; Fri, 27 Feb 2026 12:38:39 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4aW-0007pH-F3; Fri, 27 Feb 2026 15:37:30 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4aJ-0007N5-HM for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:16 -0500 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4aH-0006rT-V4 for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:15 -0500 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 61RIeop3373465 for ; Fri, 27 Feb 2026 20:37:02 GMT Received: from mail-oi1-f200.google.com (mail-oi1-f200.google.com [209.85.167.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ckgrtrauv-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:37:02 +0000 (GMT) Received: by mail-oi1-f200.google.com with SMTP id 5614622812f47-463905cb295so14493874b6e.2 for ; Fri, 27 Feb 2026 12:37:01 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.36.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:37:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= sqRRg1wDPGhWBNP8ztWtT0khSUeHahQhAnQ3t76w0zA=; b=f2n66LcEc5KYtKtD fdX4cqk6YjaJUpgMBjOyM5xSTXVk3SO74/QBrJethHj6YUCAOV3hS92ZXfyBV7Dq WugU1IF7+ifsXsAqMMaTftxE5LsQaTmb4jbm/LyLkiyo2Mm7rJ7ymSPmWmUYBMg9 WZ6t6lgFbI6HaZNUGFMhdC6N8bUqUhQog0yTGdDPrwE8ioWDCBkv3JlURvinQXea TKSwptEi8WtG0SfsND/dtbSxN4C6m6MITlQ3F76FUeSvEZ84PLsZHe9bEY3bR8FD Tw7Vw2KY5lFhQ/9twAoH1d7JEjkrrACPl+a4g+4gDwutNwO6/MK479/x8Cms+Ve6 M/1LtA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224621; x=1772829421; 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=sqRRg1wDPGhWBNP8ztWtT0khSUeHahQhAnQ3t76w0zA=; b=NnVBWEmYKgw8oXYWVPXEuDrwCLWxCZ24ikMn0f/oJsuirhE/CrwqKYx1Z9Ep6C/OaR fZWdcCoOjCYDHlMlKa7PSZuRfA+G9h5UDx29E+oepxTtynoqMoOUOKMOHA6g8SL8kbFH 8tfJ3Y6pWZBcl8y84g8xX7+EbaoTsQwe/nl6G+6WTkE7+P1+xjmqql8dNva426BeUCgH N7YpA4nR6uDalMi4rGEfTucAinqx7+WnKPfMRWB8/NL8GZkw/EllWkioXY0m3RhMCVYB M+pLU6kclZs/Zx4rYedysMjNmqDZrU2LgM1zggVSR58J44W+mvJ4WRQCLfKhBDJCH1i3 Z23Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224621; x=1772829421; 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=sqRRg1wDPGhWBNP8ztWtT0khSUeHahQhAnQ3t76w0zA=; b=uTIAakHEKIKXQ4W0DIUUdODdn2bLuq5dsGzqgSmkJvnobD7azm58RVq5Yg2aUZYJhI SwrRA5nygUtAyxjZ6FjG94+Uo4pfnFXJLWZKjJB+bi+i0/Sr8mVgm+Zo7vXKy60loaJV PAVRacv2dYyP7w9Yy8j1JCDH7YrilkD/piEUWaj83iofDd6IUlCbsyPwV9n1yLME0ovl ZScgMTPnsP6y/eFhnTElM83y3Q7H1ulblAqxLOcxUqZFOQMJMcwTOVrROnq5+DqNg6py uNT/GFdtXR9B/JvNyb9u441u/fbzRTmaAOxbosMjbquoCLS2AAjVCXW/Bu6rfZti5u5v QiBQ== X-Gm-Message-State: AOJu0Yy1dlV4iOwt4gtzRnuy+f8O0Hz1KCk8cV9jgk46JN5Gg2OdXAlg urxEN1gfroNVRuAxDyZ620gfuobpg1VHi11EbDTxAr8qSj6VCyssOBbUvid4CmFPF7GR9to+/1Q QHNGPAiUt19BjT62wRr6aLGS7k/wKg7UcydS0B++ScrNwy/c2ZxTdhkjjGME3pUeeXQ== X-Gm-Gg: ATEYQzxa/ij1Gs6xUtwxMDeCrrfbRYOxqUJ2aNyLSeVxbldRAF+z69a7F8HGcs5ViYL deICKkSSPgAzj/4RqV7ZGeib0uAEWo+Y8sGCAwzH9Six3aizdNxs/yPttB6/Vg8ZUC0Br5DRf68 r09W8IMHG3wOFHH3YMJj4jOJPAO+AitqxcLwcFSobvW6iNCS0z1nz3uL6kuF5qOxdP1LrEsZ9AD wmhW2nbWj4pCVPtEMnmWFzqxBJ9KLrdFdT/ZjleXqrJQPSjz0RcjrNzxBVPF7fZQo5hJRK5iM4t 1yrCIRQNtp/sdK8Jtx/Uk+oi0Y9I4D/nXJGvi4XA3TrxkxKl4Vf8RKtZgP9cLui7z+2nzuoOVKe 7Tw5B7i8Wmobe1+WapjczqvcG5y0VipST+IW/SWmWMlVzqyBuklRvytsjrFwj4qlWOBul/A== X-Received: by 2002:a05:6808:c1f7:b0:464:82b8:efff with SMTP id 5614622812f47-464beb5e545mr2400819b6e.29.1772224621121; Fri, 27 Feb 2026 12:37:01 -0800 (PST) X-Received: by 2002:a05:6808:c1f7:b0:464:82b8:efff with SMTP id 5614622812f47-464beb5e545mr2400800b6e.29.1772224620770; Fri, 27 Feb 2026 12:37:00 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 v3 21/37] target/hexagon: Make A_PRIV, "J2_trap*" insts need_env() Date: Fri, 27 Feb 2026 12:36:11 -0800 Message-Id: <20260227203627.932864-22-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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=C8jkCAP+ c=1 sm=1 tr=0 ts=69a2006e cx=c_pps a=AKZTfHrQPB8q3CcvmcIuDA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A: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=6bn1J2MCOTMSxonSgdkA:9 a=QEXdDO2ut3YA:10 a=pF_qn-MSjDawc0seGVz6:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: pBiVFFUPFzlTkLmx3oyEsyWHlciAkCT8 X-Proofpoint-ORIG-GUID: pBiVFFUPFzlTkLmx3oyEsyWHlciAkCT8 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI3MDE4MSBTYWx0ZWRfX70if8BcTz7Lp F+CNn2GGTVQ8D/E85UDOvLDmOermXgew7c972O6/mJ5PLrd6XL2Wd/3t+O+xYrv4Jr6/bpc1V9I 1yBfuqar0b6DjabSlZKcjprCY14qa1aUwMIn+Epgb5tdI8QxJKDBPTRr1jhcCmcCdSI3iGc/r45 UhKQGTKYmkgn1OCiEukEIbgxb3xXlyPWYZjlY+qbG/Dz8vt87XQXnrDt42CaU214mfIdG1Qzhto qgQ0Y9m+VyeIjQQYHYzEG8Kn2YKKYkOX6g8+4H0ISDLs90bn7guLo9zN+9fzOgw8sgsKOWBwq46 4gEu/MinPmIBPUh439znrthHGQMok7e7AOf4+emYBHhzlkBxhM6BGt3o7tBg9CQp76GclYlx3Z7 E4xYGb1XZfhGLtjWt/KMy58sfYH0iH1U1pp6kH0F7m6DZ6xQwNco60884b7L4+ykElM4xQxXCSd Ah0RiSVlRVniLj5vhPA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 impostorscore=0 spamscore=0 phishscore=0 malwarescore=0 clxscore=1015 bulkscore=0 suspectscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2602270181 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224720671158500 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 b5ab2efa5a5..ec504389faf 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -251,7 +251,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 Mon Mar 2 08:45:39 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=1772224712; cv=none; d=zohomail.com; s=zohoarc; b=gM8akD+jr8HvoJX/X0HEHQVptyiPIu86n/FJ/sxlpy1uNtD3r2TP59wjYLSBclGsG2h0fxQeqQ5nIq6ldO04cXGzJ8aQOGgiR23NCzsKqWqU+3bbypnAqOS5tQcdwODUtzwk04z1I/lp/0Ur1NraqURM4YTN07yS3i3yH0oumcw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224712; 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=mQaoFANjfVOiAun+epM0/ajp8KeKLYBa1rjWKHr9tpO1TZxb2H48DDn6+9qgRfP9jep2qfhvtXB9gTNY4ifOCTWkwAn9VKrcaUaAk8d9tlZEO2yqupP21PWORo8cgd5ryEGyD8fBeN4dDelfvBceXCSFPKdynUTsIv1t85QZMBU= 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 1772224712235217.85061191742727; Fri, 27 Feb 2026 12:38:32 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4aH-0007Gu-Cb; Fri, 27 Feb 2026 15:37:14 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4a9-000719-Uj for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:05 -0500 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4a8-0006rZ-3B for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:05 -0500 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 61RH0HwO3944649 for ; Fri, 27 Feb 2026 20:37:03 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 4ck73q2d6u-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:37:03 +0000 (GMT) Received: by mail-ot1-f69.google.com with SMTP id 46e09a7af769-7d4c2b7f4caso20723053a34.2 for ; Fri, 27 Feb 2026 12:37:03 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.37.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:37:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= dGlGzUayTwiXC/bg5YrAB2T6871CPG9HNKS69hKBulU=; b=ku+CMhEGsZs4+Xew Oo+TxrCp6XfVayrmAHHfdLSK7X2was+am6AsSOETyuz3wJLTuN8ubG6uWJS2abhl cA0HAvYmLBq75czV8Lbv+qjLWdwXhRCV3w5GbXGpWQxLqwpAbAfbObm0X+l28//7 Tx1FN9Ct/N4fiPpCoQNw31AbGuPasKfmYVufozExqeq9h+P5M9c7s1D35ZOVFod3 kxtjczKZjfBrHXxcfOFbW5Tw9j+SUI0b25nls5fEbvtiZNj7EZoBL5NxMWBkxiv4 icS1nDQCF2yBH5tPuNB6joGYYarfZsfNvPqJsJLCAV+2/Tn7MWxn5idqB7MTYcJr sLiFRA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224622; x=1772829422; 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=P+BZENPS0Nss0WkIt2jEOWWz7/EF+ItryyH53aGV8Z6f055CjViRCC6WZsuziAkO7s /7DJfaW0p2HFurpDqyV8zfv+RPEJX4eKbWAG391JvMVMIFs7sfmdZAsTkh0qKWxT2AmI PT/yKd2tzD3P/9clBUheom1rAmCyBgg/htloBRIDYR0JekoUZQcQlMbBMZ7s8xh9PxQ2 S1jZxG2nFTBHus+pGq07poHZbe5UH3nwY4Ccs4ywwRLOGhfGNPYpWTHErs48bmrTFk72 Ld4jXNB+vkVJLzwkt+Qi9II9GOvVtRcbpPu+OW2HNJTbSq4gNCN4RqMrIS3JULCezFng w9WA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224622; x=1772829422; 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=rPpyuDW2lUuPqamRZjwvLePsSm6pJBsNhiDfdrZWuS0zTdEfYoHmTRySXwzHh71sB/ 9LLsSk51zKdMXy2rchQcPfhQrjxEWBZOW5ZAzYogpD9Su/prVqvyyRF4mm5qLwRz10VN MICNdz7KVO7iEaCO7KO/HFwdYeJI4WEFHRROsFAvjdb0v4dxen9XFiT5aLGlz23Rn58d 3rUaYz1keYL/fZZq3roH4W1PcALyuFlR9nePoAX3gu7KYqH7o9Armn4wa5gXlvDWz3m5 Pip+mzjFdUcohFFdgW6T9RSfS3/XY/EAvkvycZEe/gkwQv0wXz6UcatR6f8++KDkah+4 hX7A== X-Gm-Message-State: AOJu0Ywifq5X0l1uf8jXM40RQr5yuzgTMZzsMTQPq/+ewi1bFBoUOTsn WPI2E5Qa735LvibmHYHXCKHdraijY+1mlNqsNDxD7bp/hXuqAyCk4G61J7vY+IEYuuswwCPJ03z 9RVzff12okyUMafrpkfwuKuNsVlR/jTYPqfVsSk8u2TsbWcWQ7iKHFoTBxLHc1WcE1w== X-Gm-Gg: ATEYQzwENhF4Du7IFnVRaP1Mfj5ySHUefzpvMotII9u/08CW/NLr1Dr/+38ZwVgVWlo rLzvhIQGCEl8lRzULhIcgpSWgTNYUm/yoGT5IwC75jr9adSiUFcr4/HAxKImlXtrapz5fAs6mr1 HxMxj1j+DvTMmu/FJlGc4o1Kruo7YjAUpJIwE8qXCSo7DssiJ4P+RLCqQZzkNUZvWQNCbKLGIjk Yey7QYEH1EIYw8sN9/G1sQYbA4yDWMZLiEWaqmdaNL7LVEccIBflIIK0iQfTy0/thNxi9dM7jD+ 5ppO8ntwl9QfgU/rybXYEYTPSL1ZNQeqtcUuvz2rG2mrfwtXuSp6zgpNIS+eDpwFRqrFsJ/cRrP w07af1HJldWm7KpvN2NPHKY9je3g/f/4hbFF4qaq+nPsdfphtpTMuS50HKfEgkv0sYqiwAw== X-Received: by 2002:a05:6871:289:b0:3f1:664f:e8db with SMTP id 586e51a60fabf-41626ede05fmr2610121fac.23.1772224622334; Fri, 27 Feb 2026 12:37:02 -0800 (PST) X-Received: by 2002:a05:6871:289:b0:3f1:664f:e8db with SMTP id 586e51a60fabf-41626ede05fmr2610102fac.23.1772224621860; Fri, 27 Feb 2026 12:37:01 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 v3 22/37] target/hexagon: Define register fields for system regs Date: Fri, 27 Feb 2026 12:36:12 -0800 Message-Id: <20260227203627.932864-23-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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: AW1haW4tMjYwMjI3MDE4MSBTYWx0ZWRfXwPJHqJ+vs1GX dZf/JbKsoJ1fD762OUlgmqBykfnuUMybIaWWXUt25j8X4ec+zRc6i16TeN65ErwL+s2TS4zkebF j2eEMXqTD67N66K2NYmodUNlDh00wCVHorHbtaAECOlC01A9cWHvG2EOqzLhsszQeYF1SoZNDG5 h9atX8R2YdWUck3i97RCx9IYMx6lg2mboIyEpdqTNY0ttfWXuVHXhIyTm45hL2b5/2bjKmbrYJA eFwTRbTBpC6AnxUPTzhFobILNEzBS6m7tLZP3rByUWT0M0CdI9c8ioTIiU0+cPpvO4VjUdiLfqt zTpr44dh7Rs8QRcCXU0H0/VN1TiDgAYsyJb2xTpHUWRmSuBHDI6fQDx6pOrzgbL8eNkXcN0d9GE bKUTsIqxXyCLseFTBfVJ0NRr3/spJg3OUtqphOFeoKz7Or3c4hl9DGmmAMK79i1rhLtDqDyDzIv il7ziTqJCEtG3jrctVw== X-Authority-Analysis: v=2.4 cv=KL9XzVFo c=1 sm=1 tr=0 ts=69a2006f cx=c_pps a=z9lCQkyTxNhZyzAvolXo/A==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A: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=EyFUmsFV_t8cxB2kMr4A:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: q0jjkWfUFnebro_wNCM5NuLNEYHd2h9N X-Proofpoint-GUID: q0jjkWfUFnebro_wNCM5NuLNEYHd2h9N X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1015 malwarescore=0 priorityscore=1501 adultscore=0 bulkscore=0 phishscore=0 impostorscore=0 lowpriorityscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2602270181 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224712652158500 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 Mon Mar 2 08:45:39 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=1772224839; cv=none; d=zohomail.com; s=zohoarc; b=Djgr3nE1ljcOTuYBP1J7qpvKmWbXuLakiyMpwi75FgdS17gjJsHilR0isrGe9encgYtaSCyAmJC2KVdTd9R8jLfdpzAUw0ERX5TMFFC0YSVYCYrvqycpV30lLGrC8pFZXPfj4ONblH2zWrQzRNqEv03/rr1GwfWpa7z4oMkDVFI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224839; 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=9RZyc2UsUqKVP+qIYyd0htB9SvGTLxy1o1epcMNgoWY=; b=juUbfbHxHKacYfFGrd1EkIyUB0QGrpyELOB6Q35CIboOdAo+QkF7bMT5OzbtmSTPaGMAR4kO0LxPmuQ7rinCk7VBswv8SeOdk//rAxIAp5YDGTa8R1uqwK9nxk+67YVExRZd4RuBxJocr/QTP9qL5R4d1jl7Ht9qLyBdTBf9ZII= 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 1772224839848681.8962847822511; Fri, 27 Feb 2026 12:40:39 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4ab-0007xr-Rn; Fri, 27 Feb 2026 15:37:33 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4aN-0007QC-06 for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:20 -0500 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4aJ-0006rp-Nl for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:17 -0500 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 61RKEvX42595614 for ; Fri, 27 Feb 2026 20:37:04 GMT Received: from mail-oi1-f200.google.com (mail-oi1-f200.google.com [209.85.167.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ckj4xg1qr-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:37:04 +0000 (GMT) Received: by mail-oi1-f200.google.com with SMTP id 5614622812f47-45f11f18a89so25104804b6e.2 for ; Fri, 27 Feb 2026 12:37:04 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.37.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:37:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 9RZyc2UsUqKVP+qIYyd0htB9SvGTLxy1o1epcMNgoWY=; b=QqxmdQn1qSlOY1+a FrmrYU9T0sLrPfIyNrpZgyMB20py32pQZsBFpNk0rcqP//xcgWTPqzGQQlojsV+L UWv3rqCTX+asxiWv44gHKma+CpzPzRvuUAqXufalzWcha+ehKj7+2sfmMbsy+nMd jMbGhMwjWChq4rfMJDEPAGUnhtS9WQDpDBN5sPUBu9CDom4Z89XrHTapcjyfRING K8pK+6+afBGq3TRPhk7xpYZcIAsU6LthqwOUH2Pd0rrBUkvFfm1NRpnYjArXyHe4 sIf7Lon3zrwl4Njesv9Vr4yxYdZoT7+zqzfSFUYiyWkwGFo6dIgsJ/9p7bODREYL 8rxAtg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224623; x=1772829423; 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=9RZyc2UsUqKVP+qIYyd0htB9SvGTLxy1o1epcMNgoWY=; b=BqyUBTUbBHTlVos8c5kT1bexZtY6KAaziOGnXBSGMEdCvR8G/RVN6nBG5E09oX7ykA Z1R4GsvD29+aLo1pbbcwhVoso+kp/Xc5BNkfKpAbs9sGiqgtMaENyfD2Xj/39deIwfuy uHRog5f3z8YJc2nmLqBJdLc1cXkDzcgYtZY/jJVkxoJwWUu0lyQBh9Hj/b0Lk7Xkx3HW HpY3XfMIXe8HFagBHUvLCeeJD+aDoH4GOdtWpaQlB6vNksVEI2Xh7lQUHZDOrmiqElR3 RfRBY3Bs8gC4RQJohVmQyXc1ULEtn+SKyv6Wn6Nbu5qtss4ky+qhHrmInCdofQ7m45i+ JmHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224623; x=1772829423; 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=9RZyc2UsUqKVP+qIYyd0htB9SvGTLxy1o1epcMNgoWY=; b=X03zD/qKesdYKYn0atS8167gosppWVJgVOqXgrFmA/LWyVICv2LuK9NlrURENz7I3j VFzcjAksRvxPHh0OcVHg2p0KR0QirwM/zxZRRR5RWSfv0uGEiDgNIc2lSN5DrYR0RXR2 EmrrMibmhhPJgVNcvdmS7Ou5gb5pP3dtOEDzdTxIAdP9xQTyRY4BYQx7Zsa3tROuqxsb 64AdZ8ZwS00y5vm/EthG53ZyX4CVT00TX7G04E+9VmM4E0fTSx+KZTgNz1u9a42SNSdi 0zAmgCCetx9ZRiR5G9srdXbrgjH8imgJINdHnkCobcjMtmiwK8SzqmKjDIcllDQu1CCd Glnw== X-Gm-Message-State: AOJu0YwdJ8pyFwOQ1wx1fiPOpowHkFrbJT0FSIcB1qjMZ9AuZk4wQCQn BpJXi9aBp9QVZKQufPj4Is1SCVKU4wBQBtgGav/CO68xZhYk0rquvO/COMOPnm4QO/+BZ0OT4SW hdkzHC44j6TM6SpqMaK9zAqTYldfkcWF9PIZS4RcHyTLgLo0slIN3rppJYfRqSZI1YA== X-Gm-Gg: ATEYQzwjpEvSGl9xBfIfZMyBHzNDZjJBLBBDYXWjezyBgGsJAGbQBKmNrKmlzXlPEij xP93AfW5M8HWSrvcOCaVcMPnEFXNNIJRxfeGdvcKuucY11eRbbN14Y7MUrCi0s6E5U5+oP3A0BP dq6dVsWoSx5/oyHwbXamoY8MgwCqq7KaSGNlqqc8/MiscSD4Us6e/OW/lfBTh2Hhxaek3IpTOad AifgAGBc5pDL4fUZgPSdwTdiUNRDZ+itJEaGHjb3+D4v5MDVSt4c8vB4leYfoBTcQRL7AJQj5EF rG4mr4kQb+aAP3kdDfcGKy6BVWJGbqFpi3dmeCOZ1DeVFRqiGJI+YX+k+HihoMK9bE12UI5Xw9U riKu7hdeVkDjEfS6wQLsLU0cXAbbPsyMoSCoLlYsFFzcGDGTKRJ/COaoY4DVGbP9EQNm/qA== X-Received: by 2002:a05:6808:1a29:b0:462:dd4d:7679 with SMTP id 5614622812f47-464bea41239mr2371370b6e.7.1772224623509; Fri, 27 Feb 2026 12:37:03 -0800 (PST) X-Received: by 2002:a05:6808:1a29:b0:462:dd4d:7679 with SMTP id 5614622812f47-464bea41239mr2371351b6e.7.1772224623146; Fri, 27 Feb 2026 12:37:03 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 v3 23/37] target/hexagon: Implement do_raise_exception() Date: Fri, 27 Feb 2026 12:36:13 -0800 Message-Id: <20260227203627.932864-24-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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: AW1haW4tMjYwMjI3MDE4MSBTYWx0ZWRfX1AMYVHDwNgl4 Q3lOeZeo+Y5/erG84RRH9yVXx2+fGS01iaiYFCtpf82MinEWWye+yyCACahYVqJCReyx0prfKKO RpL0R+R+WK2YOK9CkoMUpDCkBu9n8PaXzDDCWrnylsjY71TP/Tf4k8Le4xUT/0HwNcAOV4mzp/4 5DORMc9Bv7DJgT5JTEMiLLqxEZzyFKaaMqM2ol6mx1kM52udA2tN5wHQl/QS4vtGVLVdMY14FVg RJpP+9VKc2GKmA7oKApbhlX/tcesV/TwNYiCvidadWHyfo5ybMvl2BL27flK46xWVMMAyFywmFQ smvGPo7gEKay16YKDcqmpNmJedX2hsCZQFNOZ7KuLQLxN313zzsZ0W5pIy3rX7gDs0yJuydKDYY N2culCuoUigcZfxXYeCST2gQyYejL44AIb5w2y+K29eNDP0SMrbQUSZcLfvVpS4hWTwBqfrl/Nt c0wNiu4WIcb9dmr/uwg== X-Authority-Analysis: v=2.4 cv=QppTHFyd c=1 sm=1 tr=0 ts=69a20070 cx=c_pps a=AKZTfHrQPB8q3CcvmcIuDA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=hK29HtBGQMdOITfcgGsA:9 a=QEXdDO2ut3YA:10 a=pF_qn-MSjDawc0seGVz6:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: z2Q76NVu4GirgZFe1DuDP_WiEjKIpAba X-Proofpoint-GUID: z2Q76NVu4GirgZFe1DuDP_WiEjKIpAba X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 clxscore=1015 priorityscore=1501 spamscore=0 lowpriorityscore=0 malwarescore=0 adultscore=0 suspectscore=0 bulkscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2602270181 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224841252158501 From: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/internal.h | 5 +++++ target/hexagon/op_helper.c | 19 +++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/target/hexagon/internal.h b/target/hexagon/internal.h index cd06ff41d4f..d94f84b46a7 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, + target_ulong 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 13e3c2c3a41..54b22f2fee4 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -37,6 +37,25 @@ #define SF_MANTBITS 23 =20 /* Exceptions processing helpers */ +G_NORETURN +void do_raise_exception(CPUHexagonState *env, uint32_t exception, + target_ulong PC, uintptr_t retaddr) +{ + CPUState *cs =3D env_cpu(env); +#ifdef CONFIG_USER_ONLY + qemu_log_mask(CPU_LOG_INT, "%s: 0x%08x\n", __func__, exception); +#else + qemu_log_mask(CPU_LOG_INT, "%s: 0x%08x, @ %08" PRIx32 "\n", + __func__, exception, PC); + + ASSERT_DIRECT_TO_GUEST_UNSET(env, exception); +#endif + + 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 Mon Mar 2 08:45:39 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=1772224732; cv=none; d=zohomail.com; s=zohoarc; b=OAGt3vOaImeepeEitGA6PzbeqfpBVWdx8bETeaPZa5fvCvMME16VO17YKQ5KOLm0GsBTdWVoApJFtEYwl5mzDDbIXoorSikEGSXd59JFKYXPTV/7qxcbfRwbRclB0SZ1ymI0Gr0dhCZfxCgdEWp2CKMdrOpGigPsd45jMxI1wq8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224732; 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=a4evnh1nrOySX7njDmTmtQ9/c5SvNZmjG0zxUwtBkhE=; b=Ffn4SDG8w3IOc/RD+ZtXWcd28oNmoZs9G4u0u/D74DwTVvY7osCa573Su1VHZVxBl5fmSnwq0POmYjqpXLo9YhvfMkKXIW7oWWB4l/JuhHzQnHNXPf244RJeP6oElAdZdUpP7XBM60BjKAQfzMJf7rVRufdhwMaITo4MtC5/y3Q= 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 1772224732781588.9028220075105; Fri, 27 Feb 2026 12:38:52 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4aW-0007pG-EQ; Fri, 27 Feb 2026 15:37:30 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4aE-0007Em-PU for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:11 -0500 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4aB-0006sL-RN for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:10 -0500 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 61RH0IHi065323 for ; Fri, 27 Feb 2026 20:37:07 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 4cka2xhqtv-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:37:06 +0000 (GMT) Received: by mail-ot1-f71.google.com with SMTP id 46e09a7af769-7d4cdc32cdeso53150410a34.0 for ; Fri, 27 Feb 2026 12:37:06 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.37.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:37:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= a4evnh1nrOySX7njDmTmtQ9/c5SvNZmjG0zxUwtBkhE=; b=aehSgpIDQKkJcapQ D92DrnHly7F5XFYRlVk+0CaOR4HMPnB0ekphaFwYmTAHc/3Z1vyGRkge6l08Hvpg z0nXsaEFV/CKnIkKfB4/WDUfnhVxyxpfYn+8+p8NDP7U7lajWwoWKR8dGy/BeGYr 7AD5Vtp5x0MSx2QfTTMsQ87PwUZ0uSAzbwrAOCW2w6JyvHgUhhy+JLpgU93pc/hH QkLrP7R5DAd5ZsxE7AHl9erpOo9XHkwRhR4KNLzPrbZyF9mAmf5FvR6yfgGfCsbY m+UtjFc7CQLLCtxUTC3toEAsCnxvjpn4gydFb843qk/Z/S707IxHdfM2eLcPDR0s fFmuUg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224626; x=1772829426; 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=a4evnh1nrOySX7njDmTmtQ9/c5SvNZmjG0zxUwtBkhE=; b=OoDT3y0LOMlfoQowyZZoNfpNxQ6fnrBh6ox/+gZk/1WHW9+UCnPekkPwUsMJ1p05ky rHg1pQch+slbEq9woDXQCRJIbQ1E3KGWUuoBV8xwNXag1QtNIcJoKXAtEgAznkeTE2MD lDQeazM0viL3c0V1OPbxTcgVVAtDnI7rIhSM4ZcjlhDutMM/C9U1XcQckD6pbFNJAxPj CCTl6Sm5RuzeD4GfHSxnUzE+MAr1mBdvm6BegqAS/2Jge5BuftAvJYE3D5hvdpIUswn/ mqe0xNj4V0Ju7ZyE4K3zvXAsm6E8vBqjA744fIObwjJsh/hAM7pt8ZliMQw1NyrVYiwf 7UlA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224626; x=1772829426; 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=a4evnh1nrOySX7njDmTmtQ9/c5SvNZmjG0zxUwtBkhE=; b=WrCeXPD8bPBT2KZnSrnmnb8YiGY9ko63XLHssM2/h+UjBvCFh3h4+1QKhOjBjE/I5Z zsxY4RiQi7l/y/Rr5Y8X3dtDtVHxqysRcXrCWEeCEKpMoNF+XzZ8zWAVfIxbe1Ymy91X ZdTaobd0BL7ZbOUPCi/E4T5MKX/CtFCB6TeRxfd6vbK5dSbpS5gtcnYyUkTVTtmZttD+ 74fqadFJ4iQMU/enaM94tT3glBaxtTxaTaV87o//UhvDA8ZOuCptPE9sp04A7uk0Q+Qz BmKuCui7T/ADJY72rxH806VF6xUm9SQdT9ypDtnQ1M3C8zOTIvKgTa6Pfkd9SvBal0LP zP9g== X-Gm-Message-State: AOJu0YxCc7rgQs2bJw6vdnhr8KbA/z9Emy7LGIXj4FjobbgJf5rkImuk W+sIuUixDvkHCAqWqhMHRhAgxgPwN17e5vBie/U7W/oQ3iKFEAwHvVXDYIULDmZn0Xc4G5+KC++ 2LCAFMKuC5cqWx+w+jlDPjc+HMQj/5SNaiW7zLJIKPLNDW9yFVSPRAefBQTfSktuF3g== X-Gm-Gg: ATEYQzwSK+MUlRkbW2moVndLkY9SWm7UJ6D7fFARtQSX6L3IigtMgfpQnIed9eBMqy9 KVXByDqejjcGymewY1Q8JNU9c1VEEL2olinwnPNZCM5ZirG5+15G3hkWvtbKjmkwl7nY9N9F+06 jWGXIVUMVQqJqDuR9Ha5cdmkIXz7k4Z51V/fwlZbD78TZNLlM0f8kBFaT4j4ayecf5jzGL+6O1z 8nf1ycdO5XvZthOXPMTJqnryEC7/TASPo7tzQvdELNHghTp6MmDDbFxSTDUKunwaRoyICYl6ug/ VTxDzcRJB3kZEN468gmFqa1ZvJsCGEomGFtKTo0jaeagwAToFHlR5JYVBa1L1Y7zx8V4a9Hcx1w 0j4nG5UmrbP8i6rFTvwc4NZeJMw1z+9MfHyrhUTxB2ubub0YxzLMSBmsyZijJuluSIbF5xQ== X-Received: by 2002:a05:6871:80c:b0:404:1ec2:562c with SMTP id 586e51a60fabf-41609cf5865mr4854019fac.6.1772224625384; Fri, 27 Feb 2026 12:37:05 -0800 (PST) X-Received: by 2002:a05:6871:80c:b0:404:1ec2:562c with SMTP id 586e51a60fabf-41609cf5865mr4853979fac.6.1772224624351; Fri, 27 Feb 2026 12:37:04 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 v3 24/37] target/hexagon: Add system reg insns Date: Fri, 27 Feb 2026 12:36:14 -0800 Message-Id: <20260227203627.932864-25-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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=BOC+bVQG c=1 sm=1 tr=0 ts=69a20072 cx=c_pps a=OI0sxtj7PyCX9F1bxD/puw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=Lq-sf-uUdcGOnWOb84QA:9 a=m0Y5ZLAfIdnrfHEg:21 a=QEXdDO2ut3YA:10 a=Z1Yy7GAxqfX1iEi80vsk:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: eNAKpBS0FY-Gtc80CA1snJrdoIqZMq3T X-Proofpoint-ORIG-GUID: eNAKpBS0FY-Gtc80CA1snJrdoIqZMq3T X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI3MDE4MSBTYWx0ZWRfX9Lcus/1sn/Dw Dh7yONW3ztAp/Tl/24SdFC58+4M9xGoog+Vkcm7hdZpBu1CWMnVwz6B8q9f9MvUKGjd/5wfhg9K OKN9p2y44c8hH+i7+3WYwvFIVKzrpfJCNCNusYFpR7xvgCmhSq1R19W1NIw6I8eKFALsTog6j7q TlvlUH5qC8jbj57MDaBXKyn3tyY9GRHm/nm0clUE4e3OekwAuusuVllciCqgowbuQwsUniPmeDu s3qx/Jmn7Gxjb5nEUKaD4+FMP/KgkAb0PZKFUshL1tFp8ecRbKscIkQ6Cw5J9c4iNNTw1y6/Fyz /Dga3ElQjI5n+L1QAqI4xJ/uH90bpbbcuSamdhEekTKBS88/LT3d0ESw/YIIBf+3bYKfk0fGntB fHgizZOSKEqKE1pUzf3DyuEy7lQF7cyxs0lfGykBsrXX2feUbTSEpu3NloSaQMRf4+bK4vSg5Kj M3PUw9Ai7uewLmIXVvQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 impostorscore=0 spamscore=0 suspectscore=0 phishscore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 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-2602270181 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224734703158500 From: Brian Cain 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 Mon Mar 2 08:45:39 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=1772224700; cv=none; d=zohomail.com; s=zohoarc; b=JrdOZz/i8Zb/pGUbusmJe1mmID4TTutSjwtSDvuycJ+Ss/OaT9EQMe6whnTI3+SAq3u6GdhUlnM+kbtzYfFbQGnwpqovr3z/5j9OFH8k3TtGfQ7WSKxjehTgIhhlldFVnU4g9NabNfSPDpXBAMZI7FX3SJ4ltxaXNxydhnN7/m4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224700; 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=Sc+77wZ/sf9ek0m639yFvgRDrEV2SKXcXMDFUgtX5RM=; b=VxjZk8L2Vj7tnuwgcu3UNj2sIVFCdLo7165jxFGN+aDkUCsFVDhG81x61oNhWdj01CvTmP6qP5kIL6Q++EKEVdDzq3LGWlSC7Nzr+4yt54uzcs2l6alRGZzs0BIWe7MUF/SFCsjA+uuMRBUuJiqlr+WsVWEDsVJsFSuftIEorwk= 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 1772224700326963.7099197073064; Fri, 27 Feb 2026 12:38:20 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4aH-0007Gs-DQ; Fri, 27 Feb 2026 15:37:14 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4aD-00079b-LS for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:09 -0500 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4aB-0006sJ-QU for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:09 -0500 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 61RH0Gut1912472 for ; Fri, 27 Feb 2026 20:37:07 GMT Received: from mail-oo1-f69.google.com (mail-oo1-f69.google.com [209.85.161.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cjuur4gjt-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:37:06 +0000 (GMT) Received: by mail-oo1-f69.google.com with SMTP id 006d021491bc7-679ca40278bso48186255eaf.3 for ; Fri, 27 Feb 2026 12:37:06 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.37.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:37:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= Sc+77wZ/sf9ek0m639yFvgRDrEV2SKXcXMDFUgtX5RM=; b=pzR7/HfJgvXEmePO 02UUFLg3c3us9s3nbPRG9FP8aOqaXwDVzQCZ5cyzEs3UAMWm0e3hzigUga/L7hKp 482iGr8YNmBC9Nldm79XT6KMJcKRTeWb7Q0h3CvB8ySV8EGjlaXxIQTwC3Tb2YWu YbA8nZlpaTloN4vQnke/0LTz8hV/yDrMUfUC2ehWaa3P8tkWOrTOV3jzPg6Wzfgv 8Gfz3at0Es83elEHtUsJdEfNibxC8AL1q7NvCSIQG7V0pMGC00NcxVfhAtUwp6Z2 NjGc1MjsjG2FyOsqvoAqFqkkOXUIYyj6t5/5D+PwrKO7Qs7eEyy91+MK68DSizoz XLSvpA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224626; x=1772829426; 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=Sc+77wZ/sf9ek0m639yFvgRDrEV2SKXcXMDFUgtX5RM=; b=kZbGecxkOUfMutjQMAnzlCfA0lohpMF+szbL4+c2HQoLsKy89pJaJNzdbtJeSLrOwM vKcSJs2Z25S0FuQ64j+UjBsjv0eKJ/xthv8H77lpEpXye700PbMjZliuka9fJWrCtx21 IWj9r3P62BEf6qU99vjnqg9RYhYkg1Ct8xVb5kUee2PM/NlrRPxQghs2jqs6jl0oXEQV 4te4QT1JFU70dmFJsJ0gz6Foayb4OokrgGIb6XZCo673OVfaSssNiTl7JyaJ06dkIaHH LoENhjAaWfNRw2MKE/lAFwsx4geIUeLe0hsLq9MgGGTK/y1fjzJxbYmI683NFVq8ewl2 j0nQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224626; x=1772829426; 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=Sc+77wZ/sf9ek0m639yFvgRDrEV2SKXcXMDFUgtX5RM=; b=cz45kia3fgiz4EmtPfoejgqejQwLTSbN6qYqcuOr5TtDCEgLNubOWd7XmATPKucDDh kPEBp0xyb49UCcyZtIWDIK9oFM30tU3RByCgHFw5/G3o4KMoo8npTnaHdEeVCxcH21m4 VQEJMf9Fi/0yahpkDogRDjuvbz+1CfkiRhj54RzehD09napLsQOatQqX7vI7BtaFS4vW GZf2qt1Op5bjlb/9qo37YvnVB9TqIC328IL/U3v7A9aMVXbC7zPag3xgqO7RsjPmTw5x 4TJ3W4l/I/utWvcKl0LUYPnvAjxPXsvpTRfskjvFZ33MKd7bhc64wUAkuNgQe0ac6Hzn 7PBQ== X-Gm-Message-State: AOJu0YwIV9EVLsTD41kljUmEVfK8y8rdXTHTLHYXT0M4LCjE4I14dy/B zg8VOSOr1RFkGTurmXvRKEz2XOzcmYqYAho4gdJsLL8mJJAn/gcPb8iVvpRVU41D/f3tPfPA5tp zkSSijKh4qY0v9IMCFjPV6D/wtZv2DY3lCSC1BblXj24Ephz8xFxDtWBBQQGf9f26lQ== X-Gm-Gg: ATEYQzwC1cLxGHtvPZiKZnCiqTcG354JvNiDTgLl0Pbrl1xq7v5QqCGoMi5vX0mfKLs cVgHQMpZMHnAChEuQPMh3SJQh0b5lZXEAlTu7sKOwWA4DQWAHyxxsIYScNXzF+GthtHv6i8pSyJ mKctkTGVoSwNeavJHlfRxGidkNEsHOuf3GuuQNDBqNpVeJZp+h1gpEJcXAQrYrVAh/wrSADAI88 fb9OCtx66TIZfkZpLb5IVYym6EviFp//RPammgdXjvtQJHni3UUdCMPl4uSZG3UhwVFXeSsCO7D 67xqtB649DNB+e1mNzgpmxLvjBs41eJFilngp62ynCGn7FIEA9S5FPca00UJCAQseZofJWKtThp JByEkE/CnYiPJf5M5zAY6Wlt/3ahLfwJZzVEgMBBeZYW4BqktesbJ/rdwy6r6R/3urgEwiw== X-Received: by 2002:a05:6871:726:b0:402:17a4:96b7 with SMTP id 586e51a60fabf-41626e056b5mr2331322fac.22.1772224626060; Fri, 27 Feb 2026 12:37:06 -0800 (PST) X-Received: by 2002:a05:6871:726:b0:402:17a4:96b7 with SMTP id 586e51a60fabf-41626e056b5mr2331301fac.22.1772224625541; Fri, 27 Feb 2026 12:37:05 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 v3 25/37] target/hexagon: Add sysemu TCG overrides Date: Fri, 27 Feb 2026 12:36:15 -0800 Message-Id: <20260227203627.932864-26-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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: mpcSnb0kbOGfuYBnFilYhteD5nYSGkBY X-Authority-Analysis: v=2.4 cv=PN8COPqC c=1 sm=1 tr=0 ts=69a20072 cx=c_pps a=lVi5GcDxkcJcfCmEjVJoaw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=pmPLFm_we90XqOt_wqUA:9 a=QEXdDO2ut3YA:10 a=rBiNkAWo9uy_4UTK5NWh:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI3MDE4MSBTYWx0ZWRfX57EnjnwmRNIi EEEctyd2y83MxcjjspLzC8432IxRUU+6Rc5A13ioQNeqQbsUZbCRNALSzEQkjyEVlyU/5rFAoMz DtmH7Hyo9Q+0u+AGU3PjFac8j0wwN3D0G7zhponVLsfbJZ9J7kvunReloBU7GYJgKTQOeScNsx3 3EOojlt/tuFNKQrzJdwIFjNWC63kXBTVBFXTE/HF1jzDGVTrVtFXOzvYUDEEjasUHtCaCPcrylB W/b2/a6KLctawMt+RtOC22evFxmQJ9KG2vdhEFgFTY6PFQnZaQN1JPuXd1HWU54fPHL+DcmPoBb AQq+9VEdWwaLQJcmnIVPKGECA0CXqlKu9m5ajgMln2QhaaINhqMph4M42wqY1UYNvpbxRg+n5bY y8KP3Y5HdHRH91zKSoFGSlk3vX3cEG1PAvEqSnSLyB4y8JIOy3YmWWgkrSRbv6yYx5TXBTV1KAh YSDITPjVE8FGac0AMCA== X-Proofpoint-ORIG-GUID: mpcSnb0kbOGfuYBnFilYhteD5nYSGkBY X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 clxscore=1015 lowpriorityscore=0 adultscore=0 spamscore=0 phishscore=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-2602270181 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224700643158500 From: Brian Cain Define TCG overrides for setprio(), crswap(,sgp{0,1,1:0}). Signed-off-by: Brian Cain --- target/hexagon/cpu_helper.h | 34 ++++++++++++++++++++++++++++++ target/hexagon/gen_tcg_sys.h | 40 ++++++++++++++++++++++++++++++++++++ target/hexagon/helper.h | 1 + target/hexagon/genptr.c | 4 ++++ target/hexagon/op_helper.c | 7 +++++++ target/hexagon/hex_common.py | 2 ++ target/hexagon/meson.build | 13 ++++++------ 7 files changed, 95 insertions(+), 6 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..8c79a4cea13 --- /dev/null +++ b/target/hexagon/cpu_helper.h @@ -0,0 +1,34 @@ +/* + * 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 + +static inline void arch_set_thread_reg(CPUHexagonState *env, uint32_t reg, + uint32_t val) +{ + g_assert(reg < TOTAL_PER_THREAD_REGS); + g_assert_not_reached(); +} + +static inline uint32_t arch_get_thread_reg(CPUHexagonState *env, uint32_t = reg) +{ + g_assert(reg < TOTAL_PER_THREAD_REGS); + g_assert_not_reached(); +} + +static inline void arch_set_system_reg(CPUHexagonState *env, uint32_t reg, + uint32_t val) +{ + g_assert_not_reached(); +} + +static inline uint32_t arch_get_system_reg(CPUHexagonState *env, uint32_t = reg) +{ + g_assert_not_reached(); +} + +#endif diff --git a/target/hexagon/gen_tcg_sys.h b/target/hexagon/gen_tcg_sys.h new file mode 100644 index 00000000000..2410ac82c96 --- /dev/null +++ b/target/hexagon/gen_tcg_sys.h @@ -0,0 +1,40 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HEXAGON_GEN_TCG_SYS_H +#define HEXAGON_GEN_TCG_SYS_H + +#define fGEN_TCG_Y2_setprio(SHORTCODE) \ + gen_helper_setprio(tcg_env, PtV, RsV) + +#define fGEN_TCG_Y2_crswap0(SHORTCODE) \ + do { \ + TCGv tmp =3D tcg_temp_new(); \ + tcg_gen_mov_tl(tmp, RxV); \ + tcg_gen_mov_tl(RxV, hex_t_sreg[HEX_SREG_SGP0]); \ + tcg_gen_mov_tl(ctx->t_sreg_new_value[HEX_SREG_SGP0], tmp); \ + } while (0) + +#define fGEN_TCG_Y4_crswap1(SHORTCODE) \ + do { \ + TCGv tmp =3D tcg_temp_new(); \ + tcg_gen_mov_tl(tmp, RxV); \ + tcg_gen_mov_tl(RxV, hex_t_sreg[HEX_SREG_SGP1]); \ + tcg_gen_mov_tl(ctx->t_sreg_new_value[HEX_SREG_SGP1], tmp); \ + } while (0) + +#define fGEN_TCG_Y4_crswap10(SHORTCODE) \ + do { \ + TCGv_i64 tmp =3D tcg_temp_new_i64(); \ + tcg_gen_mov_i64(tmp, RxxV); \ + tcg_gen_concat_i32_i64(RxxV, \ + hex_t_sreg[HEX_SREG_SGP0], \ + hex_t_sreg[HEX_SREG_SGP1]); \ + tcg_gen_extrl_i64_i32(ctx->t_sreg_new_value[HEX_SREG_SGP0], tmp); \ + tcg_gen_extrh_i64_i32(ctx->t_sreg_new_value[HEX_SREG_SGP1], tmp); \ + } while (0) + +#endif diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index 85dba2f4291..a18cb9f79ad 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -115,4 +115,5 @@ DEF_HELPER_2(greg_read, i32, env, i32) DEF_HELPER_2(greg_read_pair, i64, env, i32) DEF_HELPER_3(sreg_write, void, env, i32, i32) DEF_HELPER_3(sreg_write_pair, void, env, i32, i64) +DEF_HELPER_3(setprio, void, env, i32, i32) #endif diff --git a/target/hexagon/genptr.c b/target/hexagon/genptr.c index 908f7e5e2e5..f86bba4f08e 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 54b22f2fee4..8d60610b3f9 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -31,6 +31,7 @@ #include "mmvec/mmvec.h" #include "mmvec/macros.h" #include "op_helper.h" +#include "cpu_helper.h" #include "translate.h" =20 #define SF_BIAS 127 @@ -1420,6 +1421,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 ec504389faf..ad60e978685 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -1364,6 +1364,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") @@ -1371,6 +1372,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 Mon Mar 2 08:45:39 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=1772224774; cv=none; d=zohomail.com; s=zohoarc; b=Xg3y1HOm1/Gx21PY7TgnzUlAadWSJEca8RJhvvPIsxN9XZfepkfZ4JHBSci5sImgQvKPSDbnVHI241iOq/H7x1g01tFqcd1jBqG7+3ob89SAqTj41ZaSSLEglIzYBALdo1mNhFihZvcvKflmG74VyKFo8RoJK1kO0x7q+Mh7Gl8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224774; 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=nDQl3+A1Glkk+mJbt31qfycz/0M5aapDfOrU62HMrpw=; b=Cbqmd/ihADbA6y+7n7ZWALAoN5Aaj6mWumhk7Iu1ijSg1kyTf90hbqg90S/g3IGCCrut5isE1hBKv+c0fKKTXs9hL/Yca6jQp5r40wlOwcJ3mGkPmtTTwaQezQjC6zhLxjwbmFlRqrd0Y4XLN+CE6MaV/DaVIWW1BBhh0jV5y9I= 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 1772224774835984.8266396115996; Fri, 27 Feb 2026 12:39:34 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4ai-00086k-JK; Fri, 27 Feb 2026 15:37:40 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4aP-0007Th-Vx for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:22 -0500 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4aN-0006sb-C0 for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:21 -0500 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 61RIevhr373651 for ; Fri, 27 Feb 2026 20:37:08 GMT Received: from mail-oo1-f70.google.com (mail-oo1-f70.google.com [209.85.161.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ckgrtrav5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:37:07 +0000 (GMT) Received: by mail-oo1-f70.google.com with SMTP id 006d021491bc7-66b612efb4aso36285882eaf.0 for ; Fri, 27 Feb 2026 12:37:07 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.37.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:37:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= nDQl3+A1Glkk+mJbt31qfycz/0M5aapDfOrU62HMrpw=; b=RQ1e8+KJDnrL6Y5t lWg/Mg3AaaeSwufeP6njM6j4yGwFbrJ+53dZe6llw2J8Z/IykboEvytD7gNGDSJT a+1Z1saaWj3oPl0G1qBzLSLvcPyzIHyUEvNYdvMAtnUNnuLhWm/F9YKnw/GhCuus 8GlU3IPFSfkNbzujww/VMpYDJmLd3sUZ1OKqojGScO+iKNtyKNCvvwndhjIkwzMS ExsA6RAyiGn4r3a65Lv0XXFrUbcwQyfLxifyUuXfNYZPIFgCvuGakOjxCEOznb/X d5BaeXlmx+pDS9XCmWKStjGcos/GUD6F+cDyq/LWyQ1IEIU9HJ/I0rdag0kNbkB6 sReyoA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224627; x=1772829427; 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=nDQl3+A1Glkk+mJbt31qfycz/0M5aapDfOrU62HMrpw=; b=kjgovohIMFUVH8PC/bvDTYJbpNRscr8JwjYZ0t/5g2efe8XF0W7p5au3WwWKRjPXp7 F2JFJ1NelOQVTNmUFUUixgJuQvKOEBUiqWbkh6oMrnRVfkM0wqQUiWVKK4f4HtK6CC6h zOe8768OfIiXgTjRMrJhUxHpSDQC7h6fbg6e3Inhlakkqgo7p4QgUsoUqjCFmTL4ElJ1 dSvRai5ixDnBqBoegVPziKFmpUThrSoq1M95ooBIes+HOCeCjAs8Zbx6xKFvoEj6QuUB D7RdhRVpQH+w3Hj4eQcWbhJ0YSA7QeYJu985FIP0Qknd1t22jJVDEZd67GSBevIpsZom GDnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224627; x=1772829427; 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=nDQl3+A1Glkk+mJbt31qfycz/0M5aapDfOrU62HMrpw=; b=hq/mGoz+RZx8dS3sLhJEHuVSBsMwZji+OC7zjiLY+tCWM0WvspZtmCOT151l843wtH 7btuf4u09D8nFbkYmRhHBzNtgDf2y0DZHv9MlBSWg4/jEjBcJ7W9/ccPMzyViPeokTXp dBHwCsXVZYSEOIkoD+Y8FpfowrODaaIhITTCDebfIY0175yekFYkzgqZduJstNmunZMY sp00zfjmMB3YEPZ9L/e9jtyFIjQYt03YRzTd4MawH6GRl5eXvZjxqwg5UMipYygHZaFU 4KN3h/zWs0N0e7Y00lTjjSzbyMqXkgpbC2csPJMtc6Vg4zzkRLmI+ql7JY0CTR1cdOZY dNLA== X-Gm-Message-State: AOJu0YyQX9Y4FiVrJZ3GR9CJWfSivxZF112dOYfWkMPgRDETRyKWSHb/ gNmvXASXtkYUKmp02MfCDA7gV1xvvwj/SLgiKKMLoC5v5nd/cjYe2z9CcnZVIT14ll81GRTHAnD E35Ot7JT+JalxDC6PP1tVSO6PnimVvSOMHNg/AfP8BWFrqJrXdhVrjnzz1LkDamY1GQ== X-Gm-Gg: ATEYQzyr4BxnNcO5YP1dPQf6teTJcJlB6ohTHLnnuyadDezZ6/K5QDhJ1Az6az7uRce sr70SfZI/MamYuoUd3e5SgJ6B06e9+Yqspgd+jZbeICur0Kduhetxr6YKs3iCJ+gvvTAXWGvj9b s4fLVi/KIVu7OMR37E9ZrM1YvqsXScqZyS6mv6tiVeqd8AGGRrdlc8U11IO8ptd09gCCJeNQcUD nRge2gprgzvc2CgaVaa2vQwee5RwUPMGcY/Ev4q8cKMw9wZnlslLR1RSwglJIpyuzvAABbl/TBE Jef4RUhYS9U/Bo/GPRJCgo0v6OTiVbPypuEPddQ4P7jS4mm/SYyhMioTsVH38UozpsR8MRI0lKI fHUUsSZOVGLXCEH0/xOxViBYznZon1AspdrWCqCG0cStx2creOiMCfwq0amOA0je3EKLAxw== X-Received: by 2002:a05:6820:2215:b0:66a:e8cd:4954 with SMTP id 006d021491bc7-679f2211fd6mr4692058eaf.7.1772224627201; Fri, 27 Feb 2026 12:37:07 -0800 (PST) X-Received: by 2002:a05:6820:2215:b0:66a:e8cd:4954 with SMTP id 006d021491bc7-679f2211fd6mr4692041eaf.7.1772224626803; Fri, 27 Feb 2026 12:37:06 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 v3 26/37] target/hexagon: Add implicit attributes to sysemu macros Date: Fri, 27 Feb 2026 12:36:16 -0800 Message-Id: <20260227203627.932864-27-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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=C8jkCAP+ c=1 sm=1 tr=0 ts=69a20073 cx=c_pps a=lkkFf9KBb43tY3aOjL++dA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A: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=2tsdG8XDORIkKkt9vG4A:9 a=QEXdDO2ut3YA:10 a=k4UEASGLJojhI9HsvVT1:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: ijK3WtEUS9vEbvwh9SumCTC90JLWoM4u X-Proofpoint-ORIG-GUID: ijK3WtEUS9vEbvwh9SumCTC90JLWoM4u X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI3MDE4MSBTYWx0ZWRfX5C3jM8YjTjFy odRrqn5cbfC7v/1GZWCmEx1/KP4OADjWJctcwJUsXbHxYoaYB3nzH7w2QVLdmmeEBrou3x143hX hoFRNE+oewKrF8OL8n82V0yIYyeJ7BMSbWUG19t3d9k+nDkCkWTGiRlWj5GLuhp4ZcHw7oTdDyv wjXSZtOBlc6LF8LI1Tqu/IJ/ocMUpFll3q2mM2zjrJnVZHw6Yu4jV2ANoYFuF98G8pvMMvIvbRs tL6+1dIOt74alMtUti/HLKowdibsZ0nCp9aqfpBhNmBpMI4QnUJklJg3ujrLYKTk4uZxvgyr2AI +8oHpkAFA6AIB49j+B2ZsMeCgBoPqdoO5DOjP3SUCEGFpR0oEG/HQkZgFjz7H39nXXgsJJf2JJc HA3My7LCkG+FIiJO392drb4HOc+fBNVOtiGpLAlI8o6opFhVWWAuBcJg/Vq17BCSo5rLR0G324V 7iwQtb7lQ3YSCRAZYLA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 impostorscore=0 spamscore=0 phishscore=0 malwarescore=0 clxscore=1015 bulkscore=0 suspectscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2602270181 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224776919158500 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 ad60e978685..f02ad788f85 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -129,8 +129,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 Mon Mar 2 08:45:39 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=1772224711; cv=none; d=zohomail.com; s=zohoarc; b=FmITfW4e7VKdLP6yO9+pUEXVv4FF3ANceu+7Y8Ws46jF6PjhC4Zy3GBZaITjLkCut4oSR+lGI6IvPXIMJ9S4Te46hzK/rm6BgN3+GWU72vJZraofuwmxvaRx/WqDoaHiyWUjjrp7fxAN9Lb4LNfhYops3M+jo/Dvh45iejAQphk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224711; 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=aoF+8J2llt32v4C4s338dYpdv01ITZWS7hOMYM+lGOI=; b=eFJUhxVDbl5P18eOti8AcR+WIPb2Kew37U7JnN4wLaJd6N2eH2KBJgx0JhD2S015MF8XcHN+wqXrc1W+ax84CBB8xtfX3lI1m5oxTi4NRSrzftesO8N//gUJua95oJ6ozLLMrWoYFwPimgKxTqRId8WWdKa77HBA/oAb/ywJsb8= 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 1772224711907586.9406987982926; Fri, 27 Feb 2026 12:38:31 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4ac-0007yN-0i; Fri, 27 Feb 2026 15:37:34 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4aG-0007Gr-0Z for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:13 -0500 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4aE-0006sp-Da for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:11 -0500 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 61RH0FIu1365555 for ; Fri, 27 Feb 2026 20:37:09 GMT Received: from mail-oo1-f69.google.com (mail-oo1-f69.google.com [209.85.161.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ck9f01w71-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:37:09 +0000 (GMT) Received: by mail-oo1-f69.google.com with SMTP id 006d021491bc7-679c5ed0942so38290547eaf.1 for ; Fri, 27 Feb 2026 12:37:09 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.37.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:37:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= aoF+8J2llt32v4C4s338dYpdv01ITZWS7hOMYM+lGOI=; b=EMW56hTbdKFQtIE9 4u9LQ1f9L5ocA9jloSLc12NmAvMWp79Op5f9MZgqtcOsfIOT9rKKSZ0K7EiTuRvz lPDXZAFxhVyFxdAU+3l7MELkpjjO2RH5y8pxACDjZ5IERURsYPsgEysTrlB3p++v QlfsQQmlUVRRZRmoauzgeJjfCiXA8nLBni1XKLr1nO8viiplENyTBlpz8U7Sb7UL JowCjp4jPXCcKkGkAK6ScZhhv72uaXKVUWFRhydKkvrGfJknVA6kqjdlRKlHIuK2 Yl37x32YYWXMw/D4PTZE0WBZyQf/8ptRdZUbVXhvmQtOqH45YfZc19YiD+odUWnW azal7Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224628; x=1772829428; 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=aoF+8J2llt32v4C4s338dYpdv01ITZWS7hOMYM+lGOI=; b=AC0UxfJeE9wzfC6Ob2kjVo9p/578WKi8cEHMmNYJUiVi47sSM9yfombq0CRXGqW5MB Tx/2ApgzyIVoi5LnfUwSpW8Ae0UjMYZ4LgFfLxqcvIVjbbW1MXG5kpkdKTAx7AqovdQf 2PetEr/BLVfZx0m4p1MXPuONhkaU3yPBYheqltFUGwis9YUSLHMYj2LXVJix1Tdjb2CK RwAq2cmECZojFxvqi2hzkj2tOuBKzVhClDSuwEG3IcYIvYBUNMVuK/hxIkUDJ0bCaDAq dxeWHTJYYlu9QRU94+eH0FpPh1z7NAMkSO1cP+OBXP6I3C8+sWQV5PSBSMIwAL5PiTts vX2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224628; x=1772829428; 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=aoF+8J2llt32v4C4s338dYpdv01ITZWS7hOMYM+lGOI=; b=HXkpCUB0wisaqiMvjYaAC7Wb/8z5mbvwNFYKz94qxE+YYZHLuwi9D+mAGxVT9KIXej eal4qXCw4vSBAcp/T6gikLgWR1jPkgVEvTuXt7SoG0dgBC85PjMlr7UMdHAPNzCu0FMM KiL8dfZbAoAfU3gLQJU7K/lP3TDLmsWQM6Q28DWvtcYByYQfNbGrdeT6krE7Th8im8YU X1bgqu5ybukVVm5AxwB2gF0DJLEeUWExdNOOUs0dqOmMe0FxMTLMFsFynw+iqUMzICLG MqVSeWYO7cbratslntu0b4yGTKwo9WstssYR2a5YAqnFTIwJjmZryX2u/qUm7ckjf3s7 UMKQ== X-Gm-Message-State: AOJu0YxCIzAnzYUHtzv02nITCSNwJUJyOGatw+uppCxpwn1HIjy7Cgt0 gz/EO/79cfhHhf9w7Kp33io1Ec6iy++UO4TfVGR+UQb3bFTMKQZ/m/EQMXzCddIJOZkv6DbtMSk M6/WY5Ex9yJPdFSHy4EaUHYruELngG2Rz2UD77Jy2lpbbegz3wpESqk7Ex6sMiXYVWQ== X-Gm-Gg: ATEYQzyliNdp3LeMVeOKENg4Ok1xblXN+oSDHgsZZAQrypUeQxgCAd3yMrmbiSA46GS hwCOvxKktVhfTOaAgOw7EkAJm8jCIYfSmzbDMyeTiqP1KK7oTF3bXOiBLjnnMA8JtId1WGS5Nw0 zkupwAygCKBLF+KH1CnrSCujGJZANqRN8JyFS7buEpjWsWfT732MBCwXvfn3AK2lkKmJqvY8eOR FBsFo3B7ZH6jzud+VwjcCM82HS79PIG/4l1yreWrhcf6yOpFP0CYaTC+6wPQmnqdAOYaPsRaaWF zICvIlM67QGg+8fsyaqFCyCzndHtS2JcWVYSRF+9BqN6IpVVkpw5a779cfgo28FggYHptlPvBOq 9ZMZx735bTpWWizx3C6J21cqZHHVLPxKf48engBahjcfS2yz68oFmF4pZBRma/kQ4axQPGw== X-Received: by 2002:a05:6870:3044:b0:409:99bb:1eae with SMTP id 586e51a60fabf-4162706478fmr2747951fac.53.1772224628444; Fri, 27 Feb 2026 12:37:08 -0800 (PST) X-Received: by 2002:a05:6870:3044:b0:409:99bb:1eae with SMTP id 586e51a60fabf-4162706478fmr2747938fac.53.1772224628004; Fri, 27 Feb 2026 12:37:08 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 v3 27/37] target/hexagon: Add TCG overrides for int handler insts Date: Fri, 27 Feb 2026 12:36:17 -0800 Message-Id: <20260227203627.932864-28-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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: AW1haW4tMjYwMjI3MDE4MSBTYWx0ZWRfX9k7C/4Lb38Q3 oYDVTo11tzJ0hJShSZt2TKlyw2m/ltEBnNMSnwrlzqEFm46rRSQrO+0NQNB+ZFnSbc7cg2r9lql 6Z6wL5Qxrm5Pq2aHDRnVqZ76M6doubrw8ma2ltDu5KUnt3Tq11DyAqtdFB9Z8CDJt4Irr0aYyKq j0KopIGLcJbkDlzuqZErQmSw7cNArQ3s636LgX122B98lCeS4/N8KAmIB4ZJ0/11Xmh37LPevOK KcMD8TdxTvRdxcXcT9vRAywdJ0t4750u7jbW7gaN3PICT9EVDtokVLoFT3xdaPi5ECb9NanZLyv WcrINQNKjQnymOtclqAH/M/mwlyAamaWA27lWykOlVVeZ23i3P+4rDAyIZMraVSJL3PzgbtyT9Q SlOCnf23OpOG5u4jReGH+CGkyOqzspwrisK4RaT3FgzQG4LEHBSx/iyhYNJKRs5buZ+O+vPulIG ur8iqXkg/bFenkB/qjQ== X-Proofpoint-GUID: t1knQkXiSx-4TptFW2QSzRw8lmdZDXtd X-Authority-Analysis: v=2.4 cv=bIsb4f+Z c=1 sm=1 tr=0 ts=69a20075 cx=c_pps a=lVi5GcDxkcJcfCmEjVJoaw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A: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=ncxFUDX8U6Z2rYVbhVQA:9 a=QEXdDO2ut3YA:10 a=rBiNkAWo9uy_4UTK5NWh:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: t1knQkXiSx-4TptFW2QSzRw8lmdZDXtd X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 spamscore=0 phishscore=0 impostorscore=0 suspectscore=0 malwarescore=0 bulkscore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2602270181 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224712652158501 From: Brian Cain Define TCG overrides for {c,}swi {c,s}iad, iassign{r,w}, {s,g}etimask instructions. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/gen_tcg_sys.h | 25 ++++++++++++++++++++++ target/hexagon/helper.h | 8 ++++++++ target/hexagon/op_helper.c | 40 ++++++++++++++++++++++++++++++++++++ 3 files changed, 73 insertions(+) diff --git a/target/hexagon/gen_tcg_sys.h b/target/hexagon/gen_tcg_sys.h index 2410ac82c96..7f223ff3884 100644 --- a/target/hexagon/gen_tcg_sys.h +++ b/target/hexagon/gen_tcg_sys.h @@ -7,6 +7,31 @@ #ifndef HEXAGON_GEN_TCG_SYS_H #define HEXAGON_GEN_TCG_SYS_H =20 +/* System mode instructions */ +#define fGEN_TCG_Y2_swi(SHORTCODE) \ + gen_helper_swi(tcg_env, RsV) + +#define fGEN_TCG_Y2_cswi(SHORTCODE) \ + gen_helper_cswi(tcg_env, RsV) + +#define fGEN_TCG_Y2_ciad(SHORTCODE) \ + gen_helper_ciad(tcg_env, RsV) + +#define fGEN_TCG_Y4_siad(SHORTCODE) \ + gen_helper_siad(tcg_env, RsV) + +#define fGEN_TCG_Y2_iassignw(SHORTCODE) \ + gen_helper_iassignw(tcg_env, RsV) + +#define fGEN_TCG_Y2_iassignr(SHORTCODE) \ + gen_helper_iassignr(RdV, tcg_env, RsV) + +#define fGEN_TCG_Y2_getimask(SHORTCODE) \ + gen_helper_getimask(RdV, tcg_env, RsV) + +#define fGEN_TCG_Y2_setimask(SHORTCODE) \ + gen_helper_setimask(tcg_env, PtV, RsV) + #define fGEN_TCG_Y2_setprio(SHORTCODE) \ gen_helper_setprio(tcg_env, PtV, RsV) =20 diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index a18cb9f79ad..6d148460385 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 8d60610b3f9..74a135fc7ff 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1391,6 +1391,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 pred, uint32_t imask) +{ + g_assert_not_reached(); +} + void HELPER(sreg_write)(CPUHexagonState *env, uint32_t reg, uint32_t val) { g_assert_not_reached(); --=20 2.34.1 From nobody Mon Mar 2 08:45:39 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=1772224858; cv=none; d=zohomail.com; s=zohoarc; b=OX5VpBcFO+eO+TzcHGJVl4dx/DpAKIMS9f2SaaBTnHpV+PgRpx9sT3qkv6UR25Os96W5XbNKEFXYFmGz9LpSdAFdh88WHdlpFqNfAn4VKWHiBYXJv3MSKUSqg7o7Polqwhe2sV1WPHOnElnJ1ewYKG1fb4n5+CWiv5AaXoohRH4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224858; 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=vee/O2pPgEzEo3KC9cS6hP6BP+Mdhv5Br7i//thT9yU=; b=ZcdKp+eoMm6IHdlVmUfCyvyIkqbkkZUUpLXgobhvbqdDU8lsRrSvjj0oObmT7wJdyVXzeznB/9yDHQlTCO+EoA3BkDli/nE+QYA1D3jvNA/mn0K7fO8Vl9O15EZ2M6/Ve1DDP1syKluOEX7FBLjfdi5p1ST5RKSiaA3uBbbQoAU= 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 1772224858443142.733052798269; Fri, 27 Feb 2026 12:40:58 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4b6-0000UW-Cj; Fri, 27 Feb 2026 15:38:04 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4aH-0007JO-FP for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:14 -0500 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4aF-0006sz-C3 for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:12 -0500 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 61RH0G3F065287 for ; Fri, 27 Feb 2026 20:37:10 GMT Received: from mail-oo1-f71.google.com (mail-oo1-f71.google.com [209.85.161.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cka2xhqu0-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:37:10 +0000 (GMT) Received: by mail-oo1-f71.google.com with SMTP id 006d021491bc7-679a47a1febso52222951eaf.3 for ; Fri, 27 Feb 2026 12:37:10 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.37.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:37:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= vee/O2pPgEzEo3KC9cS6hP6BP+Mdhv5Br7i//thT9yU=; b=CZJknqrRt470aN98 4eOHH4KBapa2oDSMEon2QehYrFNnYRm66E/G3c+ZxO1AGEBYPnjc+nT5BPNBIvMg s/Jrpt1Onkr9fSxz28SgrwtUq+Q8Wfw82zkwqm5eNoXTsWia3Y8U6sjODjAN6J/a PE4V12swznqJbW4eUH1X0z4MFIIFqbpWuUJjoUPLPSufWAITJj4IR87rv0uSXur1 bcJiDd+/KExHherCNNtRwwevpH69istWVAQyB3UBW6teMlPLw0v5Tm27cOSGwzP4 ZxRMZdaf6t/n/hlOTt5tlDbpCmZokD9fBwOUtY4Og247xv4kNfPu5WLKVFHDOM1K zF9Jeg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224630; x=1772829430; 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=vee/O2pPgEzEo3KC9cS6hP6BP+Mdhv5Br7i//thT9yU=; b=jG2nLcuzXLIiR0g91TDzVxEwMBKuKeNQQDnCXlWsNtBxaXGt+LeqsDbUNQ4iC7L8A6 FZM+Dx5xjsZQq76KR5cbEen2FHWFYfncS0XIod4HSJuxEaqw3ALlbgJsUWeyiQ1OeAjF FIf19pWU66pEEM70QmVjBTKm1HEaqS9cvpZoCSdlKKi20JUOUWQ13FOJdCFb5JDzM470 MpHfh003ocmvqx3N/3HiIeReemvUK+rgSB8ON9RxMdsT+s2l9Oq9Rvw9rLdGkTJQxTex 6zejGWxAjQnM7Q7+Br4fsp5YWi9n2Rl+wnn326HPIWGb8P2yzaRvpvXIFzZVWVMOdSg2 6mlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224630; x=1772829430; 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=vee/O2pPgEzEo3KC9cS6hP6BP+Mdhv5Br7i//thT9yU=; b=jLU2FG3Lcq+LeQh6ctOFAhsTR3yZNWyIJa76AKAOOnVbeXPHT52JyqgMTqi18TKF+P bi7rCg12jETLuPQ1zRnT05bhdIsYOvpEl2/oj6YZQUx46V+H6t3gDHnAqM9g+IoMHI0G b+KcBPVX7LBo7Y+Zw1cBIxxA/bfFZP796sUB/s5KUfQ4mD415wl763f7S8rvc4qErBVs sB8K0g12DcVD+5Bb4EQ7SwRRNkKbtaDUKIDUQlypb7fi1KiRAOVr5Djf/YjCd3UxC8Ky /UQJaUZ2jhNUBKUqmt9q/2N5GDPe2/0EsxSMmr6SAkac2LhDve1rZ20BVngmXPJme1Uj XxMw== X-Gm-Message-State: AOJu0Yz2o5JkDZ77kcFQsCTH+Lv8nYs8YzXYeyTpUsarbdgPaBzJN06n c/CYnLovtunJHDZBYxbwLGg+Zz9jQGtNg+3rx9tupGgMEphtFVPsHc5mbtbfy2fm6Yk8UN6ITzi gMRWoAdNbdAigxa9AHqLtyHcUfsZqB0XVep45Y3ZyvElJrPGNqslgmsYLQz98JnPPOg== X-Gm-Gg: ATEYQzyq6G9NFmjDQUngkyMDbAASK0Td/IiVGp0ObYslLbSYEGkaYu3jYUl+dwpe1yF PgchR6tcH3/IGhFHDZbw7nLWyrc523UWIgFDE72NOrhClNePiu1RXFymh/hJdt810wcME9U0+RZ 1nOq/R1hJb8ImXxyq5/HYZdVBQ9I+xO9zZx5IQBceRtTUWzBt/lxdbdVRe1sNnMu2HhkzGET6bk NDnDlGhSsTFpMqve/3MXyOPGa8ba48aiobonMiyaqQIkg5+p1zqRONAHJkOH5YpNI5D8tZsTHXE C/UXWkB5vZI959bx1DQ014uweuls2DkhWRH/xxJjH1ZYUifZF5n6zZs5eY2wV5T+JbnwGXcaDB6 g/X0r4fYa9JrR6tqjsMFOWgutxQRF9xpgYy0kiinKk1wLhxh454loacqpoC6OxV3nt95PtA== X-Received: by 2002:a05:6820:2081:b0:679:f08b:5379 with SMTP id 006d021491bc7-679faf9c624mr2594731eaf.71.1772224629595; Fri, 27 Feb 2026 12:37:09 -0800 (PST) X-Received: by 2002:a05:6820:2081:b0:679:f08b:5379 with SMTP id 006d021491bc7-679faf9c624mr2594722eaf.71.1772224629219; Fri, 27 Feb 2026 12:37:09 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 v3 28/37] target/hexagon: Add TCG overrides for thread ctl Date: Fri, 27 Feb 2026 12:36:18 -0800 Message-Id: <20260227203627.932864-29-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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=BOC+bVQG c=1 sm=1 tr=0 ts=69a20076 cx=c_pps a=V4L7fE8DliODT/OoDI2WOg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A: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=t9Y8JitlK4h6-XB8aEcA:9 a=QEXdDO2ut3YA:10 a=WZGXeFmKUf7gPmL3hEjn:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: 24htqPeOiUZ0oopj-boqSPmJFCYFJ6PK X-Proofpoint-ORIG-GUID: 24htqPeOiUZ0oopj-boqSPmJFCYFJ6PK X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI3MDE4MSBTYWx0ZWRfX+kE0CisBtZYt m/JkiGiWVTHEvzfmOImcBGym4KpnFsFDSZC0jBjXnmZUMEXR5ecA5Tj7zQH3lmYp8sLfp96shc4 MCJ3+vInuCnYDYT4ZPM/pC9KERzuDAAxT7xl1SQtTj+KChMC66G109G8/bBcerQA2uLIDgBJ2gT io8Jlrmjqe9YVSBla7diNGjE1Cvao1OkK3D6/bSEdDT3DYiVit+fqz1mb5cxOUo4nuk4dlqAIIw EmA0+fd+b0rnU+sAnOvSpzSkfdI0S0Yr6chXNmZBgDiYVC2v6Yr4P9PcIVNFWJX7nj+io1rjYxS qqS5UY9T7Z5L9a6EIFVt2HUSj1ATPobx5AB6vqOJaBw9vfOTUTGiFqQKPr9qjpIZo95IVMZ6xyA mX42+OJjhbUBpGFyPToN12IF3c/jhPPzE6xCJ+bzpQ39u2NnhLTTdTVFntydb+7PM12aZ6tl642 SaE3A7zy06yt36uS/Dw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 impostorscore=0 spamscore=0 suspectscore=0 phishscore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 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-2602270181 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224859267158500 From: Brian Cain Define TCG overrides for start, stop, wait, resume instructions. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/gen_tcg_sys.h | 18 ++++++++++++++++++ target/hexagon/helper.h | 4 ++++ target/hexagon/op_helper.c | 20 ++++++++++++++++++++ 3 files changed, 42 insertions(+) diff --git a/target/hexagon/gen_tcg_sys.h b/target/hexagon/gen_tcg_sys.h index 7f223ff3884..0453e3bb2c4 100644 --- a/target/hexagon/gen_tcg_sys.h +++ b/target/hexagon/gen_tcg_sys.h @@ -62,4 +62,22 @@ tcg_gen_extrh_i64_i32(ctx->t_sreg_new_value[HEX_SREG_SGP1], tmp); \ } while (0) =20 +#define fGEN_TCG_Y2_wait(SHORTCODE) \ + do { \ + RsV =3D RsV; \ + gen_helper_wait(tcg_env, tcg_constant_tl(ctx->pkt->pc)); \ + } while (0) + +#define fGEN_TCG_Y2_resume(SHORTCODE) \ + gen_helper_resume(tcg_env, RsV) + +#define fGEN_TCG_Y2_start(SHORTCODE) \ + gen_helper_start(tcg_env, RsV) + +#define fGEN_TCG_Y2_stop(SHORTCODE) \ + do { \ + RsV =3D RsV; \ + gen_helper_stop(tcg_env); \ + } while (0) + #endif diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index 6d148460385..b2cce4b47ba 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -124,4 +124,8 @@ DEF_HELPER_2(greg_read_pair, i64, env, i32) DEF_HELPER_3(sreg_write, void, env, i32, i32) DEF_HELPER_3(sreg_write_pair, void, env, i32, i64) 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 74a135fc7ff..689e79d83e7 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1421,6 +1421,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 Mon Mar 2 08:45:39 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=1772224836; cv=none; d=zohomail.com; s=zohoarc; b=DaOTvM3ZEyYwLK2TFsMS4i/Nf60qFMLkgQl3yuO39z3BFuBUDgGTkJhRdDVI5MGLK/uj6v02A2VphRfceLW8coULYJTCJ7c5OKNVOnPyCQKUNYSYUACmGlEtKuKxgoJpyToGeYY3yY2llKTj2Rw3RAS8r2Q3YnshAWvQXOJ9amQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224836; 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=W7+bXpvCeyS6OfLlZNZAmQmj+Ty2xeRkND9UhhfsRJ8=; b=dwC1MXHtfBHSWOiIhPOgbT7xD/uVTWxxpQ1pbxGU1mntYN6W4nzGRuT77FdA9S+iY/q+KiHcGKi2Mkw79LPUyZOQj/6DLgRIQycq7WzCjVBwOy+K+XAKRX/7+jvo0bim+6/rjDSHdE2snWVrzL3go8nEYXHfUn9bb+v4aAj+MwU= 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 1772224836408142.44490256268068; Fri, 27 Feb 2026 12:40:36 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4aS-0007ah-Rx; Fri, 27 Feb 2026 15:37:24 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4aH-0007Jn-Qc for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:15 -0500 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4aG-0006tC-BW for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:13 -0500 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 61RH0HnY527514 for ; Fri, 27 Feb 2026 20:37:11 GMT Received: from mail-oi1-f199.google.com (mail-oi1-f199.google.com [209.85.167.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cjw23c93g-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:37:11 +0000 (GMT) Received: by mail-oi1-f199.google.com with SMTP id 5614622812f47-46393ffb94eso31428120b6e.0 for ; Fri, 27 Feb 2026 12:37:11 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.37.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:37:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= W7+bXpvCeyS6OfLlZNZAmQmj+Ty2xeRkND9UhhfsRJ8=; b=BvQKTxu0bkIL4o8w jtRN5lOcj64VF9qRpOqvwtiRSLomzCEqC2edQEf0lwOFaGhkLDZLE8VrmyX6nVsK Yl1w0nfseM4GZy7w8bXNGlr1ziMF1mS+79I5IIKKzj94VwsBROvICRWa65gWDpge h/qwuq1YSZHzc/XL+0d/iDjhzlp6bNFECV+Uxd07KezNbIv2hj92lh+srNJ1LbAT pYcBsP/zhzC60KCrMjl8O2Kx8elMGXS+WA3gZTvkdlPl/5Idf4quhbcRnoBNEUW6 1KVulByxrsEaqsTQohcPGL4SGBnomaKRDwuPz2nzrccEu42hQIPKqq/y4SOmYlcj bIcjdg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224631; x=1772829431; 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=W7+bXpvCeyS6OfLlZNZAmQmj+Ty2xeRkND9UhhfsRJ8=; b=Q80h2UkhGjukoSJgiLvnk2kitFE4Z/jpByFmspmywQeu+bMmC5EIvVXJtmgln1krLA CHC+srTbljxBF0He/gTazm3WN96h/YbkaPv1NeVJAyaAhKyn1ZYqdK3X/WsHjyGTUQg5 RshVGnlUxLiLGYj76tRS5KBFVh2D398I+JlVz+57AIEKn8orcLMxLECHKjRp3fR8lxRK Q/p6dTFno73FKhSULy0J8KhTEevhJMFjs6JGL7Wx1bHPCNOkEA8YjuI2RaNzXgwU+8ep PqrcTxmt7FisqwnFfGPBYKc7D3cGoBpkHCn47WzQ6RPWxiM9EQVZmaY1ENH8inKcfYr0 AW1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224631; x=1772829431; 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=W7+bXpvCeyS6OfLlZNZAmQmj+Ty2xeRkND9UhhfsRJ8=; b=bxL7Zk7vs7zNEwfWPxzlrjxrJlqeoLMHOdmjZ7RSLvVjZ79YERdb/r2/hfdiMDzkJA WnxHFXj9/UY4HR0ZlTNaFX54bv07wJAD7FK1RDjfJCaHySqFyhs6mfvn5x3jZAV4kTYA +d/gBrF607t8EaUbbj7eJEolczjmHdQ1seFltGu1FPCBy62nndKaH/HdACf34nNjIuhH Pn5IE8icuhfn6pqxiSDGftwCPSL0+XuYkJJgdmAlKfmPLfE6AregVfzgZzDA3rif3/CR 30D5foUpjnxvmIOkdpaXK72cx56WAnovqw5vVAC+kggB+h27/yiE/nEwXOtxvZOJrWa0 xjyA== X-Gm-Message-State: AOJu0YxFDPXpUH8LtSeAXNZy2IMZccKzIq9KgsS99InwajqzFRzfkqtr wDy1KGxaGA540WNSGXAOuxgtlK+K/XNtFj8De/f2cGwqgkvjCv9juTDyuEbOaH1Tx0R5culBzhE UKSolMt8yD/dkqLbyPBGy2sqsMsYZmnfWWhhKgcp0ufWrmrDhUgqSiTyOXHy1MM21sQ== X-Gm-Gg: ATEYQzz25GjIuvEqm19Z+VnVHWlgOGtCiY0ioMDqqezyB9izJqmQWZk/0ZqN1YA8GkK NIyW6XxldSZF4N5DuRUe6YtQO7rvQASgESYOkC0FdzGVQaKjaWgZGzJ7yPzUhPKweaLtSuDjLk5 4dYXlpVLofQ91XYkz5OAHvjRiDgiqZTimcDJwyu6cohoNpta0k8PQUb0TNPZMu/ZGRSeF1DqSgb 96oJqh4XstquwvkleZIDjb89IA0G3xFPqjsF341D7NImldMRtzwgWMMEuTRUkK4a30LjEX8vw0l 2J5p/8nfmzaUQTNbzinVtJGR0MPPk3IkM2luet8CrGpm3h5wtuiRd+TRIJZjVx0s/MTL74ZkZQm R53L8bQbnX04jGPZMHrKYJ5X7TmDX1FcFWzVblr0q7V1q3G7WjMfTXsE2rQ/Rou2meDm1Gw== X-Received: by 2002:a05:6808:1645:b0:45a:6adf:4d44 with SMTP id 5614622812f47-464a5dac614mr4128741b6e.12.1772224630745; Fri, 27 Feb 2026 12:37:10 -0800 (PST) X-Received: by 2002:a05:6808:1645:b0:45a:6adf:4d44 with SMTP id 5614622812f47-464a5dac614mr4128731b6e.12.1772224630379; Fri, 27 Feb 2026 12:37:10 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 v3 29/37] target/hexagon: Add TCG overrides for rte, nmi Date: Fri, 27 Feb 2026 12:36:19 -0800 Message-Id: <20260227203627.932864-30-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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: bBaJG8_RRodk_0Yk70hnJfJ0NxwZySaK X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI3MDE4MSBTYWx0ZWRfXxtWe4nSApLBp w79RLtmK3Lk60jwZ4FTV3KedXlRzlVICzrrKLfQdNCgotZUPh4ISz7w4boM9h8pitOTFHQfgwxS AY3WUY/xvW5Bu0sGD022LEkFdfVzFoD200ptJw66862D87oSdm5aDM3FnJPTggUTljiLxHhgpu6 qKavrBvQJ7B/QbHSADKag5J0AQ/7UKAyqI+JPbv4QulnY0VYvk329VUevOnHiIcz98ICrnjLmgu d7odE+WgzBuUJ/0TkI0KejReL3uAUl7k97xI4CI7Mq6bhQxO66bAi58t/d8FK0VzB0VbRXq1F2v oOUxoRyfn7SeKsuIINvdBcxxX2XK753O/bptMUR70Pojx1PoCyelshC7QNwV4iYynJ6uWeyWw6X KPJe+Cl0sHsGkqLwDJeP8uAYAUU4nmXSrl0O2WOqjOyLoP2NOacpSg6SKSaPGheDxsBzSI2Sndr /aDlmCSWmmq6Ysa528g== X-Authority-Analysis: v=2.4 cv=cJHtc1eN c=1 sm=1 tr=0 ts=69a20077 cx=c_pps a=yymyAM/LQ7lj/HqAiIiKTw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A: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=zRxYJKy5J8nCns2dKEsA:9 a=QEXdDO2ut3YA:10 a=efpaJB4zofY2dbm2aIRb:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: bBaJG8_RRodk_0Yk70hnJfJ0NxwZySaK X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 impostorscore=0 lowpriorityscore=0 phishscore=0 adultscore=0 spamscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2602270181 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224837180158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/gen_tcg_sys.h | 19 +++++++++++++++++++ target/hexagon/helper.h | 1 + target/hexagon/op_helper.c | 4 ++++ 3 files changed, 24 insertions(+) diff --git a/target/hexagon/gen_tcg_sys.h b/target/hexagon/gen_tcg_sys.h index 0453e3bb2c4..85602f1e3fd 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 new_ssr =3D tcg_temp_new(); \ + 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 b2cce4b47ba..04c01649683 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -128,4 +128,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 689e79d83e7..6754c491ff5 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1487,6 +1487,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 Mon Mar 2 08:45:39 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=1772224809; cv=none; d=zohomail.com; s=zohoarc; b=YBnMoxRakIbMzo2G4T50QlzpF0PLktNXI9dAbf3KJY1fvf5nrpD34e/dIb3VcSDDpzaBcvIVSsQtfy2TUw+iaVwdAOm7NhwU8R4oPPwnU+X5ALwynVrhB5sHzfe6xY5ByGhHbSn0q+PRRpO9jQRLz+82AQwOXRcCnXu20glro4I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224809; 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=BpzSpRoWzKDgTdKjw/554JXJPh0WcKHoU8zEsjmcLec=; b=kaS9vSs0HQ3tjZKYxup4RekgU4iFFKJgn4s5uG9P4GstExiS0w8b7OC8/q6sSKwcft9F01HaA8mz9OO5evN8dgJi9yZcG+vPnU0RYZQvuRMSnS79tUue4iZPQrcaVRCBfGAA2KCnsJXgntgFwraZoCSnb4R0QmUEIvygHALyuEA= 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 17722248098301023.6440366413591; Fri, 27 Feb 2026 12:40:09 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4aj-0008BQ-7P; Fri, 27 Feb 2026 15:37:42 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4aU-0007eM-6c for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:26 -0500 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4aS-0006tk-Bi for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:25 -0500 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 61RIluZM1712906 for ; Fri, 27 Feb 2026 20:37:13 GMT Received: from mail-oi1-f199.google.com (mail-oi1-f199.google.com [209.85.167.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ckgv5gaem-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:37:12 +0000 (GMT) Received: by mail-oi1-f199.google.com with SMTP id 5614622812f47-46335278e7bso67600592b6e.0 for ; Fri, 27 Feb 2026 12:37:12 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.37.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:37:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= BpzSpRoWzKDgTdKjw/554JXJPh0WcKHoU8zEsjmcLec=; b=edCvdq0qahu4ZOoY GNHnDs6of1SNHcocAv2AvZrBspsOMTP3MBW2vgWUgC7rQb1GrWCB+cuqXkDrGRUh HHZyDbJpe4bX7iJHR8hiwwgOL5bGafQ1vFQdAt/TyY6/ohlUMMiJzfYABGKTdoes QZs1bQDDc/P6JH6yRA7T46qFMua1kHeKe3BY9491gSFA2F7wk7nwdaNyVbNFCU3Q tkjExdmoY3MBLmXGk7vYioHCAkLAQ+qLxzV2al9n8NOPjqF4qUhpuzxz7RQsQdKo ttEQ3/HdhzD+Qj475eHX4qaXOXz/We+LJLN0CgUCIBoZL5Yup31cMAsEVGXUEB4X Q+fe1A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224632; x=1772829432; 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=BpzSpRoWzKDgTdKjw/554JXJPh0WcKHoU8zEsjmcLec=; b=dLL9Zfq78dn3vnSP93tmXhpWhfQTImSlvrfoIucuFP7ZuqySwEMjCBdJ45iIgdfemg pCmQCz/JPUdvIyO53tQtYcCH9qN++6vFpPvBHEeQpRU/tneZ8A/rs+WAZjXVeYCXr/g7 Dkr2sNou6niTiMJReGXemhnA69CM9CBg0Uo2b6OF0yYE64VBI1iFf3X70p085ImehRk7 TWjZv1IZNMEAx+sRplx2ULaNx17YSEWOaLlSTUkYLxSSYl7/xO+xVhEBJg9WW24XdwUj xxj57m9PgZsRdfW6Pr8YMZilDG+imByxTkf8q/n6teKol5JNopNGtOjruHq7R303dIjb J/eQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224632; x=1772829432; 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=BpzSpRoWzKDgTdKjw/554JXJPh0WcKHoU8zEsjmcLec=; b=bPVBaOjTHhRwD6NnxoJY//SzL8BdPY0ZisREPo5ee+SvmRmrWvbdrtbcMLybojQWfw /0r4CCwn7UWaLXNosq9UhgdSgn0j/2lSBALIYowN9zdzIqKzQNEqZcah6EJkERtSal3v tziqUPMvQSRAddm4Wf7FUtnKHEjakbRRYdl38R1GHKGGq228crF92ylYfYKFzLwAdxFH eLsp2Kj069cbv5PxLpBFfJVhGfsBOGP6rSKNtq7YNJVuz4/7xNWv6r3/u3dpIJFpf/eC D5LetrcluJ5LmkUbb+V1hB2pkZwGd0aBYfmJOD3YGEcMURJfLOp0rtmblcpXODoNAEbo nFCA== X-Gm-Message-State: AOJu0YwIblfKnEq9ffAXo0FUwMepa7/F9QXP2kGUJpTh3+2RWFQHONDc syTS5xmK1X4MNIiQDPSEAfbG0nbf4D1/cnM3WzYLtS4I2SS0Y0/wRzT3Pkgb1ds5CK/1kuZTRUK tNqHTufc11vRuyJ4DghvjLHW7I+KW2yLCOhTWW6dFrEXjxyOuu2ebRQmrv0tuUG0A/A== X-Gm-Gg: ATEYQzzBvcwJKWzDyhMsmhiYVT3qO4cGykYD7sfP7NiiOF+TT0LLfnSxG3EuPVAt6lA 8TJHuNOufQoffCin+3L/ahEnIG8LSn/kbJjpsSD4tleyhG/j724mWGwSFVoULBAnuYR2+lJSIHj xF1RTythihdmfci4M2M07EKZ3TxDP7sRLjQP+2GPlZ5dYwGSPCDvs3z9xBJmIQ1zeDpo3BnJZ7k xSuy6ktoaEaFIT3zWcMpftadh7GwHvYCXrmOp93xg3+lz2oxemMom0XBM706zJHV5Q7vUCJdu29 L1yMRVP6AUCIadSLGomyVDd7DKKukqFYoul8BaqRCrRnCHQTjt+/RXGq6zjBnJmf+FJTpn3zT66 boAtT79C4xKnwEL24MQ85Rwq/fE6nLuXMKm4vLmlze2PeKd8/Wu1k1eXWhE7NHJ/bD+ycpA== X-Received: by 2002:a05:6808:10d0:b0:464:5a7:7cd6 with SMTP id 5614622812f47-464a5dd5854mr5343047b6e.15.1772224632021; Fri, 27 Feb 2026 12:37:12 -0800 (PST) X-Received: by 2002:a05:6808:10d0:b0:464:5a7:7cd6 with SMTP id 5614622812f47-464a5dd5854mr5343030b6e.15.1772224631597; Fri, 27 Feb 2026 12:37:11 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 v3 30/37] target/hexagon: Add sreg_{read,write} helpers Date: Fri, 27 Feb 2026 12:36:20 -0800 Message-Id: <20260227203627.932864-31-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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=RPq+3oi+ c=1 sm=1 tr=0 ts=69a20078 cx=c_pps a=yymyAM/LQ7lj/HqAiIiKTw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=_Ci8evVdfDH29BE0TZkA:9 a=QEXdDO2ut3YA:10 a=efpaJB4zofY2dbm2aIRb:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: cAVUsjd8GokIbzgdGkto9QPXtDoJbG7y X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI3MDE4MSBTYWx0ZWRfX6tto17EsELQS 8nm5m6CUTBMDfXyaVyuK7UqlaL8GgwzsLf0rb3UwMc30v03YBf+gIYAK8phZenxwPDw5l1PLccv id6WQy6Wdmr5bdgJVCduEL2o4QYFP8w5ASNxbs3CCYLOZsrCfcydBAdh9GBP4lnDA/unpvqqStK dmPoUdQ2qHpJ+jn+d1ELLZ2fft3ETFNLF0NSw9gf1x4ec8Xoq48TLz/TvS7u8tKF1iaVt8lGxAu tDlURwKuLI4h465s0ul/xYG66vTu8ZtX05k9p6z9AYQ0lt8lcZ/s6W68degEw2/zXA+yPcOoqZf hz03gKX+BTptB2dRbMG5jkFIh9W94eRqPyMR97iNUz+VVxrnq0nckEdDcW0IEFESk8H8QUO7EnV hh8Z/lzTqFnpsGxrJmI9aTiRk3Jxq40WCjd6ymm4aE2dczKgDGJQXI8BjvTib+nQ9CCtusm5Cai j0gc35FfpHrYB2+4rkw== X-Proofpoint-GUID: cAVUsjd8GokIbzgdGkto9QPXtDoJbG7y X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=0 adultscore=0 lowpriorityscore=0 suspectscore=0 spamscore=0 phishscore=0 priorityscore=1501 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2602270181 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224829707158500 From: Brian Cain Co-authored-by: Sid Manning Signed-off-by: Brian Cain --- target/hexagon/cpu_helper.h | 8 +++++ target/hexagon/helper.h | 3 +- target/hexagon/cpu.c | 1 - target/hexagon/cpu_helper.c | 70 +++++++++++++++++++++++++++++++++++++ target/hexagon/op_helper.c | 28 ++++++++++----- target/hexagon/meson.build | 1 + 6 files changed, 100 insertions(+), 11 deletions(-) create mode 100644 target/hexagon/cpu_helper.c diff --git a/target/hexagon/cpu_helper.h b/target/hexagon/cpu_helper.h index 8c79a4cea13..3d7238c3b06 100644 --- a/target/hexagon/cpu_helper.h +++ b/target/hexagon/cpu_helper.h @@ -7,6 +7,14 @@ #ifndef HEXAGON_CPU_HELPER_H #define HEXAGON_CPU_HELPER_H =20 +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); + static inline void arch_set_thread_reg(CPUHexagonState *env, uint32_t reg, uint32_t val) { diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index 04c01649683..9ca87acfe63 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -121,8 +121,7 @@ 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, void, env, i32, i32) -DEF_HELPER_3(sreg_write_pair, void, env, i32, i64) +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) diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index a8f2f9e238a..1010fa866b5 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -338,7 +338,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..8e11cbb20dd --- /dev/null +++ b/target/hexagon/cpu_helper.c @@ -0,0 +1,70 @@ +/* + * 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" +#ifdef CONFIG_USER_ONLY +#include "qemu.h" +#include "exec/helper-proto.h" +#else +#include "hw/core/boards.h" +#include "hw/hexagon/hexagon.h" +#endif +#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" + + +#ifndef CONFIG_USER_ONLY + +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(); +} + + +#endif diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 6754c491ff5..9b9655da961 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" @@ -1451,25 +1452,36 @@ void HELPER(setimask)(CPUHexagonState *env, uint32_= t pred, uint32_t imask) g_assert_not_reached(); } =20 -void HELPER(sreg_write)(CPUHexagonState *env, uint32_t reg, uint32_t val) +void HELPER(sreg_write_masked)(CPUHexagonState *env, uint32_t reg, uint32_= t val) { - g_assert_not_reached(); + BQL_LOCK_GUARD(); + arch_set_system_reg_masked(env, reg, val); } =20 -void HELPER(sreg_write_pair)(CPUHexagonState *env, uint32_t reg, uint64_t = val) - +static inline QEMU_ALWAYS_INLINE uint32_t sreg_read(CPUHexagonState *env, + uint32_t reg) { - g_assert_not_reached(); + 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) diff --git a/target/hexagon/meson.build b/target/hexagon/meson.build index 528beca3cd0..9aabf5dd3c1 100644 --- a/target/hexagon/meson.build +++ b/target/hexagon/meson.build @@ -240,6 +240,7 @@ hexagon_ss.add(files( 'cpu.c', 'translate.c', 'op_helper.c', + 'cpu_helper.c', 'gdbstub.c', 'genptr.c', 'reg_fields.c', --=20 2.34.1 From nobody Mon Mar 2 08:45:39 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=1772224748; cv=none; d=zohomail.com; s=zohoarc; b=HrISThHWHNis5pBBNF7Wo152V/ndLlN0ar8HILirldI9UW1SadjAEFm7PntG9dg5NFdgBx6zdQie0XK5b3L+NOH84jSStt7MCmsn299CG/ANw4UiQPTVMzJxlUWipvyGfUHFiFr7fd1PkKZGUegeE8yhzlw8CJ3yui6r27zGMy8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224748; 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=uLPw4FwljkfsImqDUHdjW5rBM4kfdKQT8zsW7RcBLQQ=; b=hqDGjXIl+y+QHTLDjILup/3Zwg091zapZoe0XbeSAUmGuuNzsmsCpVhEMhJBxpbXa8WLLoRhhcu9CHGCS064y+Ys1yaBwAIZnIt46z21VILKybO3b8SUYXn/IR7gBETSyHBYDF0cbZsgyEwDkz7KhnsjtB9CzZR7nNzddBcZPe4= 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 1772224748455755.7563366825086; Fri, 27 Feb 2026 12:39:08 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4at-0008Rj-EO; Fri, 27 Feb 2026 15:37:52 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4aK-0007OX-2t for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:16 -0500 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4aI-0006ty-K6 for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:15 -0500 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 61RH0TSV527624 for ; Fri, 27 Feb 2026 20:37:13 GMT Received: from mail-oo1-f69.google.com (mail-oo1-f69.google.com [209.85.161.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cjw23c93s-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:37:13 +0000 (GMT) Received: by mail-oo1-f69.google.com with SMTP id 006d021491bc7-679c54e29f6so13899185eaf.1 for ; Fri, 27 Feb 2026 12:37:13 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.37.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:37:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= uLPw4FwljkfsImqDUHdjW5rBM4kfdKQT8zsW7RcBLQQ=; b=VlueWgFq3z3QmQ43 DWVLu5NNoLU5zh54LmTVjFxUF7+Sdp+qhYmznXRnRr3kV9o5RbI7NoJ5AAvvKXAd GzB+LruioMbp0b8aPvhcealYd17hKRxjQxm5iuyaBHi/I3iMIdYF7IWVUJ7GNvu6 Aj2iaDaTeIIpIMYYSbXus2Sr9dSyrGFEX9QiJgJOXDMMGqHheNicTbXnWPPgfjB1 V4h+GM7BlS3Vy+m7OauSl4+ZjbE0tY1oPvcU7nVZ/VJRLyZLNoYbF6BdNh5RHhNa jpl52pdYE4a4pSHOK3e7oQQkJJL7lx3rMS0zB8j+0dnHOL16sIYN1BoJdWR7rlIf RAkgLQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224633; x=1772829433; 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=uLPw4FwljkfsImqDUHdjW5rBM4kfdKQT8zsW7RcBLQQ=; b=eYq+ALxDLNHVM++hCSXxumIa7zvl9/ndPiqstWU6STdCzOFMJ+8Zhwv4Uiz6U1c27q efZWYl29Uoo8fcje7G6Ka9RByrl+tx3hWTJmHav8SYDICwvi//GiRZhLU91meZNR79ll h567phCDSt4hdNzxGTfV28pbrbnoLwXhnJF20wrkK++FRrcwxjoY9mYyNIWk5T/1yOPR vAGvOtVs8DI8kH9c+DDQTo2OUU6rd5YsZ3+N38OmMFiCy3dOeoBgBCOpeHlXWmiDUo2Y bp58ilZRmz6jy4YxgAmQ6GTlDYHSaLesxMVhxKQQxe5xFStWDJuTTRWqUYge/qB+GYx+ WVGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224633; x=1772829433; 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=uLPw4FwljkfsImqDUHdjW5rBM4kfdKQT8zsW7RcBLQQ=; b=BC3XcFMBEHLZulzeoMUTdSKSmQutPUt49mD3MBR9/NENBxAS/oHQtBH3zWz0gtCtYZ PfrBss4PGfpJ/huTVypql2adgLCad31Ktvhpgvqgpy+Lr+kSSdmBAhY3KgRAqssdmcHt TFtJ7RAiF+vCmRV2eMcCOS4N3B/cTsRL97bKslpoXLyRL1mgpkdQ63aIGcHcVX8uTaFk ZM2Pr15rW/iT89BVAk9Giw4Dr+2CMB1JAJa/Gd+zJ6LnA1Fu9veNmtixOOrrY+sIMnfg ooTtbTzb2xSwyMQDz7FF33YGvrBx8Y/PXAMg54D5GRBr19ZUI3KhBfYVcqQhY6yrb2Hc QXcw== X-Gm-Message-State: AOJu0YyrEdrV/FrmHmxYpJUMcuqg/tzNKEg6UGUVBrtspVXF7zOGJP4s qu1Ma654PnmIUUItbISdWLZzJS+wdBPLpeoScwnpXsLg1LOQLu75p+N1YTWzjcz0wk9chvntz6e 5vIUxv/KwnMr3M0rrQkLBaYlpvfjBGzQg4Igle5SG0EoFeeF/kWrhUkEnA0Dyd0R5Aw== X-Gm-Gg: ATEYQzwxbSqCx6EF2LfA1MGmAIM2jS8Jp4AfOTMgoP3QY1bBd93FAZQXaw/Llcpw5KP tD52UtNkaK3qXAQN8pxa3lfomxV9moVuuEkX+BBVUB7fxe6SDnZ4J/2s4Me3s1gdx6yp+PwzNvr LT+RenFGn3GXCgZ23mfKdloiF7ODdayQw3aN1T8rnJUFQrx9LkrcBLp47/rr4NVRXfbvIXp5yUo fc3ZzLVvWl63XWSz7jsx55OrgRgMGzlU9JxGm8Ulg+P5c7JuGCBwDa1rKEV808RMi5EMWhifLiB 6r10rKCZOmwPLa2BgKCbY7GvKkfNRx/MNBqW086C/uSWJzhgqpdJG7NXO+dBzodv4xkD9bRJO9Y umeK3wahIAaDifjjytj1tm+h44fb1pI/R4zsP1sVh9bGH6G39if26SklqwDc4+U6VJJpQlg== X-Received: by 2002:a05:6820:808:b0:679:dc40:7b85 with SMTP id 006d021491bc7-679faf46c14mr2625310eaf.60.1772224633001; Fri, 27 Feb 2026 12:37:13 -0800 (PST) X-Received: by 2002:a05:6820:808:b0:679:dc40:7b85 with SMTP id 006d021491bc7-679faf46c14mr2625294eaf.60.1772224632672; Fri, 27 Feb 2026 12:37:12 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 v3 31/37] target/hexagon: Add locks, id, next_PC to state Date: Fri, 27 Feb 2026 12:36:21 -0800 Message-Id: <20260227203627.932864-32-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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: duiFJrY7LR6Tzw8imHu5ZadWKFTmkvLl X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI3MDE4MSBTYWx0ZWRfX9N1HE2RKNBNB I8p0dZ8ZtiL2goSfpd2vEqEGFI5hovNpgLvanLo6Xg/ItlSA5yVj6VkzemL18fcYT5MHxcOybet xd3+lEn5a5Iy5BJP1VyDiNh2SETfPnSLoFFaJXB8rikW9dLP9rckYdGf39foBMb2ocWJ2FWQbdZ rG6FVz31024xzVxK8pr5LDcjmtruYEos2u1aWlPbZoc7/ZuJy+00H8nUQZSUKJ3Yk6QUiiipTxD tVbphJDAQK5STvrc5ePz8VtgHgz7n/DrBu8EPoK4/GlJfxMAK6d3I4Fxyb8L+wGbhIIW5NDJ+X1 P0HBiVwH727d7kPZa6DpSKx3NeIzapkGupn51t/48u/sZPUoz8TsYOaIjDtY6zyOEPpeZLMTWwA NYPWhe1RXnzy8xIaP+obLMY1ORlQ2btgqjEImQ2qFbcRWE3oWHoJdPi2Bd/Sn3ndqW2BWWRRskS ztZ4GxvixCXY2Zr7anw== X-Authority-Analysis: v=2.4 cv=cJHtc1eN c=1 sm=1 tr=0 ts=69a20079 cx=c_pps a=lVi5GcDxkcJcfCmEjVJoaw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A: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=3yPDquGOu9_QmsYTTv0A:9 a=QEXdDO2ut3YA:10 a=rBiNkAWo9uy_4UTK5NWh:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: duiFJrY7LR6Tzw8imHu5ZadWKFTmkvLl X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 impostorscore=0 lowpriorityscore=0 phishscore=0 adultscore=0 spamscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2602270181 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224769513158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 34 +++++++++++++++++++++++++++++++++- target/hexagon/cpu.c | 4 ++++ target/hexagon/machine.c | 6 ++++++ 3 files changed, 43 insertions(+), 1 deletion(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 057a5f20a67..76ea37271ca 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -46,8 +46,34 @@ #define VSTORES_MAX 2 =20 #define CPU_RESOLVING_TYPE TYPE_HEXAGON_CPU +#ifndef CONFIG_USER_ONLY +#define CPU_INTERRUPT_SWI CPU_INTERRUPT_TGT_INT_0 +#define CPU_INTERRUPT_K0_UNLOCK CPU_INTERRUPT_TGT_INT_1 +#define CPU_INTERRUPT_TLB_UNLOCK CPU_INTERRUPT_TGT_INT_2 + +#define HEX_CPU_MODE_USER 1 +#define HEX_CPU_MODE_GUEST 2 +#define HEX_CPU_MODE_MONITOR 3 + +#define HEX_EXE_MODE_OFF 1 +#define HEX_EXE_MODE_RUN 2 +#define HEX_EXE_MODE_WAIT 3 +#define HEX_EXE_MODE_DEBUG 4 +#endif + +#define MMU_USER_IDX 0 +#ifndef CONFIG_USER_ONLY +#define MMU_GUEST_IDX 1 +#define MMU_KERNEL_IDX 2 + +typedef enum { + HEX_LOCK_UNLOCKED =3D 0, + HEX_LOCK_WAITING =3D 1, + HEX_LOCK_OWNER =3D 2, + HEX_LOCK_QUEUED =3D 3 +} hex_lock_state_t; +#endif =20 -#define MMU_USER_IDX 0 =20 #define HEXAGON_CPU_IRQ_0 0 #define HEXAGON_CPU_IRQ_1 1 @@ -103,7 +129,13 @@ typedef struct CPUArchState { target_ulong t_sreg[NUM_SREGS]; =20 target_ulong greg[NUM_GREGS]; + + /* This alias of CPUState.cpu_index is used by imported sources: */ + target_ulong threadId; + hex_lock_state_t tlb_lock_state; + hex_lock_state_t k0_lock_state; #endif + target_ulong 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 1010fa866b5..968df1b76aa 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -309,6 +309,10 @@ static void hexagon_cpu_reset_hold(Object *obj, ResetT= ype type) #ifndef CONFIG_USER_ONLY memset(env->t_sreg, 0, sizeof(target_ulong) * NUM_SREGS); memset(env->greg, 0, sizeof(target_ulong) * NUM_GREGS); + env->threadId =3D cs->cpu_index; + env->tlb_lock_state =3D HEX_LOCK_UNLOCKED; + env->k0_lock_state =3D HEX_LOCK_UNLOCKED; + env->next_PC =3D 0; #endif env->cause_code =3D HEX_EVENT_NONE; } diff --git a/target/hexagon/machine.c b/target/hexagon/machine.c index 89a2ca0bd94..e6e420b9899 100644 --- a/target/hexagon/machine.c +++ b/target/hexagon/machine.c @@ -18,6 +18,12 @@ const VMStateDescription vmstate_hexagon_cpu =3D { VMSTATE_UINTTL_ARRAY(env.pred, HexagonCPU, NUM_PREGS), VMSTATE_UINTTL_ARRAY(env.t_sreg, HexagonCPU, NUM_SREGS), VMSTATE_UINTTL_ARRAY(env.greg, HexagonCPU, NUM_GREGS), + VMSTATE_UINTTL(env.next_PC, HexagonCPU), + VMSTATE_UINT32(env.tlb_lock_state, HexagonCPU), + VMSTATE_UINT32(env.k0_lock_state, HexagonCPU), + VMSTATE_UINTTL(env.tlb_lock_count, HexagonCPU), + VMSTATE_UINTTL(env.k0_lock_count, HexagonCPU), + VMSTATE_UINTTL(env.threadId, HexagonCPU), VMSTATE_END_OF_LIST() }, }; --=20 2.34.1 From nobody Mon Mar 2 08:45:39 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=1772224839; cv=none; d=zohomail.com; s=zohoarc; b=dvTY4bFTlqf3ZJuO469J7THhfjg58I79+uUK3jKu701O4Y32fBDVRvLWC7XNju6TdkokNFLXtQ3eLyElpRLw9KjIeJRr52yZtH2YQSjLIgSTDqdEV8RnREJOss9xtCqec1GH5zhohjkFBfeVD1i5JC0YRNwvR6ICavpUMPovFY4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224839; 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=5mEhb3HljndXAyE8QX75Y254zPaeDGDFK7PEh2xH1rs=; b=GjdlfWWLVUO9Z8jbiQwPiHjLLtPleKXbfzDE9C5b7tbgSUFy2lXnNCn14ZRGaYOUMCsorj0irTWdEwNxudMekdSBzvFhPeEGGTmyylnaTK3FEMbmDtGRnHCpMxEtREbHta8FVoEADZJ0kK3bLjVaSHyf5rCRGYH31IQHSf5/vTQ= 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 1772224839695615.6860248399511; Fri, 27 Feb 2026 12:40:39 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4az-0000EU-Fw; Fri, 27 Feb 2026 15:37:57 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4aV-0007mv-Ce for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:27 -0500 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4aT-0006uE-On for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:27 -0500 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 61RH0Jwc1912525 for ; Fri, 27 Feb 2026 20:37:15 GMT Received: from mail-oo1-f69.google.com (mail-oo1-f69.google.com [209.85.161.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cjuur4gkd-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:37:14 +0000 (GMT) Received: by mail-oo1-f69.google.com with SMTP id 006d021491bc7-6799654a158so21383848eaf.0 for ; Fri, 27 Feb 2026 12:37:14 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.37.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:37:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 5mEhb3HljndXAyE8QX75Y254zPaeDGDFK7PEh2xH1rs=; b=hwSwc8PawXtHHmhs KldJzo5guYVHp5HkbaGjnPax+kEr57fbbwUep9xIH+13Bcs/UUlHkxoUgbkPDFaz Kz2Csfhb8GlrGANyWeC3VYJIg2mlqHVKj3cTSWNb2w0ckfMC40K4TNOYj83gYPjt Ebw8P2B+8Ku8CE+vbWvVpjfRImRDOXmliaN9Ks4tOgKVrciyx+VmdH5BOOzhR952 xZX2TmYTY0OzOj1zU+DxA33zF1ngNzMfGqF/GySe+Kgj3Avz/a7H6RYLjM5Z4Rd5 jt+MLjd2e3r9iQe0tV6h+dJlrXlAZSxiyC3usRJdDvzHy/krrndzOD3i9t6mXdyj /r8TNg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224634; x=1772829434; 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=5mEhb3HljndXAyE8QX75Y254zPaeDGDFK7PEh2xH1rs=; b=UtordEesd3c0PIUZk5pLC/RzRTQNYWMzStI0KSRbUkOLQG4ICEQH0ZkZZOwVDaxEgv nuUdE3rXH/UXtAWnCQ/JlmmSm6A0x2GQ4F4UMS8NGw3us3ZYpeZgGaRpUAzAl7P6MvP3 iyk/N7JLCtTLcDqEQv5TkjHlj+4VQDiG86cPuBTpNv+IDu5AXkJPmakbxLZ605KmbI6i YuVUDHcgjwQ4+d5E5GouHejv/fyW9EjmoqO+o//m5yp/8kPh5x826/pHCFA4zS2HhfdR zV1dLJ4kxMKq8i55J9GPGX4vgHpIYCQmYnw3PvbzksQAxKUprarh/EfarcsVW3pAbHnH 4MJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224634; x=1772829434; 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=5mEhb3HljndXAyE8QX75Y254zPaeDGDFK7PEh2xH1rs=; b=WV4yV4Zw7IgpdnKw0d697yUVK4uUQGMV3yrVCNFCTWazOCYHUAYpQV1dHDgO5zEscO uSC7WhFSOWuAI30frFupqirF7eHNM0xYDBQN0aBLMoopYvG7qxdx2/Z3J5pviXrK9O0D tr3+SX010joMHqx2tZFkioM+3xuuszEdtZloyr5AXO5ryy/TffpGuFbJKJtuE3uSHaBa x+w450Jx6YyQyPZ/cqfw2ZIBYTX914FxvmqjaRdsaTpV8b3jqx5pDWUsMggVfPh6+AvO hMlCnvHzy8dGt9JTnPCTcgZBtjwPqqihTUGynHJn2ysAHesyiNuFwqZRz9nBSboZyuwZ Erxw== X-Gm-Message-State: AOJu0YxmAiBiEqLzIiibMLAHFQ6DiLDDQrZQ/E9ngIHV8RWb1MRIL3e4 uJk8NqWGo5T3avG6tHBhY+GdC8OoRpPQb5+YRlIdVZb4rw/IKsFiwOsmdO5nnmt09Myjaw41oKd zor7mFRcgMe2hRQOgDfIoUwMoDPZxejNq3j+M0D2TOcf/UYtaXcIIXb2kn2gjiw88GA== X-Gm-Gg: ATEYQzybPqh7rJcBliLoqC/jyxhYrbkmrHojkp9xEIR+mFKBdKXiQOZduvGwTe8VehY XIuIO+oh49G+chVWWk8UhdVbYIGLr00VIpfuPv3rVkQw6VGzCDxMtDbptn2Uc18JGTtB9Jy6m4E TZH+5vRGLd/xc+J7HVDH+CHCJCTdJGcKQ202+OVA5zPduwdH3zg2O78ExNRHQh3AIo+YNIG+AMU zxcA8bt1oW1a26Aq1V6MzP7mJSE7ERfJ5motrXqqXNRc+UNk2Fly6fuhZuE7di7vvdflxW6guuc o8RizoJxfReFTkjiXYoJ2fHMX6/uwTxzzcgLzJenokj16GFZZBjBnS1zW2AVgxMm9x60jJ8fmQC 9Apg/HXCJ2Yj0CxXDpF0N/Dd4HAzqKeGSxsR6d3Rv45KDYEBmPaxidXQtaNClflAXB1PkSg== X-Received: by 2002:a05:6820:1747:b0:66e:77ff:4f25 with SMTP id 006d021491bc7-679faf91349mr2222888eaf.72.1772224634154; Fri, 27 Feb 2026 12:37:14 -0800 (PST) X-Received: by 2002:a05:6820:1747:b0:66e:77ff:4f25 with SMTP id 006d021491bc7-679faf91349mr2222873eaf.72.1772224633793; Fri, 27 Feb 2026 12:37:13 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 v3 32/37] target/hexagon: Add a TLB count property Date: Fri, 27 Feb 2026 12:36:22 -0800 Message-Id: <20260227203627.932864-33-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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: -sCKspYy-axEaD-GHO9YjmAQs5QxCRgu X-Authority-Analysis: v=2.4 cv=PN8COPqC c=1 sm=1 tr=0 ts=69a2007a cx=c_pps a=lVi5GcDxkcJcfCmEjVJoaw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A: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=azW6tTbyexnVTLMhPEwA:9 a=QEXdDO2ut3YA:10 a=rBiNkAWo9uy_4UTK5NWh:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI3MDE4MSBTYWx0ZWRfX6IvOUgR7WSbf z7uFwKQVxeNn/O4/3ZBcSJ3kxUcxwqHJsZ0ZlKoxC2wb+S+w4CEf+knLZuDHLSXHEipmT57uIwv 3FXGVfi3PbFa5yJjE1vkQlsWPNV3aWvnVQ/aNJWr7B/DL5FjdvqFIiOYhwkXhR554RMxsiBUtg7 uFENut/1JG+lkxI0ai0BkgEm1xBDNlW4besyobbaVdQBxjU8AGMfsDyJgGTFbExs8iQK2qIvK2w tzVj9AsQFCBT6oUEcwEQTmbAJ7R9d5deFaUjDZeSxytxNH6zNLHR0u1xS4AXSakV7boJKMcGuqw /AmZ8TQc/Oc93UEXZBpi9Ewu+QlrRXKEiglaEh0cVHDu5NU2VL4mQyjyXm8j41pNdF1PkMyR5tI kelY0wBo03OyE2e/ugH3dp3u/eoznOEmhLGVGhAysLrWi1E15OR18cl5MZNvomj3+9fnWCz5Hyj +Od4KcDTDXxk6SljkVA== X-Proofpoint-ORIG-GUID: -sCKspYy-axEaD-GHO9YjmAQs5QxCRgu X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 clxscore=1015 lowpriorityscore=0 adultscore=0 spamscore=0 phishscore=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-2602270181 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224841252158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 2 ++ target/hexagon/cpu.c | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 76ea37271ca..e1c654dc93e 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -44,6 +44,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 @@ -181,6 +182,7 @@ struct ArchCPU { bool lldb_compat; target_ulong lldb_stack_adjust; bool short_circuit; + struct HexagonTLBState *tlb; }; =20 #include "cpu_bits.h" diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 968df1b76aa..a8904b651ac 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 Mon Mar 2 08:45:39 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=1772224828; cv=none; d=zohomail.com; s=zohoarc; b=OVfPdbRu4BZn6tX5LfY5ZqD4kSrLrhAYplNzYhQwjSWXmI6B+EWyo8BNCfchycf2mfZ/cn0izfJd0/cTF9cMYpwJBtjjSRfpUSnK8F43TJ6OEAlWMKU4IcE4wRqQnvQDT3tIy4KnYWkFq1udyn0x66rnShMA2XYOZTgERlTklf8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224828; 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=YodTnD6ppu2DH51r6DbFKbb1zgfn589zceRlGO5MluQ=; b=bFAdeF7wafiBBtydiuSyFPXVMuF2aFWfT+09WWpKkQR9Jddkcs3/POqNagzwfl0OrIZSNrMSDPAlzYT5h/oBXwSvCkVjZo8KBY0bzNg/N8Aw6nHP0FoZ7kWkXkpViKtesas8ZnxbJ4+UZlE7bMfYfxohcy1dRfxiqB03goxF7NE= 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 1772224828163987.2937268332305; Fri, 27 Feb 2026 12:40:28 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4b7-0000Zk-6e; Fri, 27 Feb 2026 15:38:05 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4ac-00080W-7T for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:35 -0500 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4aW-0006uU-Mn for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:32 -0500 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 61RH0HY13944640 for ; Fri, 27 Feb 2026 20:37:16 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 4ck73q2d7n-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:37:16 +0000 (GMT) Received: by mail-ot1-f71.google.com with SMTP id 46e09a7af769-7d4c1b2651fso14980409a34.3 for ; Fri, 27 Feb 2026 12:37:16 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.37.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:37:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= YodTnD6ppu2DH51r6DbFKbb1zgfn589zceRlGO5MluQ=; b=RUzEBe183cGHFVYc 2qjY6nsmKhKB6htBUEF3+U6HnBNAXHChlxy90iOOptdr5P67PdIp85m3SjJ7KVER /WLRrpTsRxc8M0sUS2O1B+XLwUOG59uI8l9aH0r2Qxt5LFO/Vy6VmMYXxclZ/b6e MTPFk/s8EpJ05hC4sAhga3MtXkwy0K4pWWjHqHixf3qum2hPF5OZrWRjdhWi7pfd ifGo4AF+jC+Ggmf8gvRiC/ZodUgJRIWhGg9Ev+jiXvxzQHBI/yisbfqpPsQ3XIZB 7xGG5w+M+x0IGYLYzIPJImIxUlNOzT/9AE5pLiPqhKkLgaEEBDAUX4FJpaZb3yOF EbkQYQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224635; x=1772829435; 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=YodTnD6ppu2DH51r6DbFKbb1zgfn589zceRlGO5MluQ=; b=EeB+avTrCTDf6ljhA21To+smoTWyV777rLT51SevTYIPE15edIiQHb552vkG8+bqPA eAo3GqScpYPSm3N67zXMcOcAt0vGLh/5sNqHSGm1PjSCH1ssnTAIz9LjK2UNUJN5SI6Z WYzTu8cA3psYIEr83jCqbNmjQAhP0pqYdzfG1E/h9zzXabnxIKhzc73VB/nNYSSyesJf 4T10EaKed5YTR2vxsG7pSiebN098JMDhIveOSBdwFD4sWPogmG6yxhAfFya/rmAXQ+my wc51u8VwaaneBU08FuZmE/zpljjXZ+Tkh2p0rUd3uqHjjAa3pLKstHqg9It/bnRyL3Bb UG+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224635; x=1772829435; 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=YodTnD6ppu2DH51r6DbFKbb1zgfn589zceRlGO5MluQ=; b=goPA0Jig9hHnM2VN4yUSTiYeMztQ5QfN0yyqBRwsLi59/eGoOtURWkJ1C4td+5o6OT C7eEIxD+8awUetSoJuV+O4lDtKRpQT+4DUZ3x23sc4StkuQDvVW39RJHxWEGVqqT3Dy+ cpoWKWjBVO9rZTFKL+Onj8rmJA9M7ZZuv1MLrp8VjdCw6xAPPYLA4C0QhSleO9Q/6agf tWLW4Utuioeq/zikMuW1PjbufyHJT+8tRlCAyx63XtYarSecyz4YS7xPlC2pSJNTZbp1 6w39kSWln+UEgRCvII9cuw3/HelovutFg5BTwiaPVo0i4xEhHD9Cf1PlNJFa+aDiTeR+ Pq8w== X-Gm-Message-State: AOJu0YythZJ1opPAAwxgLatpHdWhZicCYjChrqtJfr948Q/f0/cBSPZs JQyFIbYxkOnHIkWT2QW1rmC0TmOslYPcX7eWtnUHSKU0k7PFD7Gj4DB9ZtuAe0zJpI2V7Wb7xlv XOBJh1IUBDFF6Q2xKoAJWLvYmICyo8wzxGZlsxFBIJ7aGbs+cVFkQbyxYfBICnaaHNw== X-Gm-Gg: ATEYQzys7t14aG432j88yv9Y0EKa70KJKbbvDaNjwuOeRbBqsX0CV4rpFrQMKbs6+Nz 7wcjiAOHaqciYrOEGjfxhUTGvTL4VghSGMGMrxGJeq/mg41WKv/ycbe9hZKltVqOxGgvq0xmZ8i JxwwiOY4rQUOF1mdy5FDgN19eYbaTgTcmUw4bs1RiEH9Zi1EZCS05BCEwR/GCoVac2CWxXBV5bk 3y/PzGDTo4rSUNZxZOCLdGyNh76HldaOpytZzG5waHVKJ+x0bqu/hLxjsgl7J/FnnvbScjmIrcN F9PlW/2losq5DG5K4yVROI7I1qoIfmxyTB90i080GErFDSLYch+1itNB7Y4Ji8ZUr5KpU1hL66/ Yuclz+4nk9W1gIYsIcesWGjUAHL9xpKwge3qxHWNUJP5S/Pj2ysmjJsOnzxI8Vhp98Je9BA== X-Received: by 2002:a05:6870:b30f:b0:404:3ecf:9ae5 with SMTP id 586e51a60fabf-41627093766mr2746396fac.40.1772224635405; Fri, 27 Feb 2026 12:37:15 -0800 (PST) X-Received: by 2002:a05:6870:b30f:b0:404:3ecf:9ae5 with SMTP id 586e51a60fabf-41627093766mr2746382fac.40.1772224635005; Fri, 27 Feb 2026 12:37:15 -0800 (PST) To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 v3 33/37] target/hexagon: Add {TLB, k0}lock, cause code, wait_next_pc Date: Fri, 27 Feb 2026 12:36:23 -0800 Message-Id: <20260227203627.932864-34-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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: AW1haW4tMjYwMjI3MDE4MSBTYWx0ZWRfX4Gg5piZ09fnO cRjemtkpgkypuQNYGu9COgNXqbJEc348bDKgs01csQA1S+tCu2lqr5O2LLNcedzQlfWF5XMQGUT 9zAU/9ok/xMDcVUvsamxj62cCOqkQC2k0OMnzwbPDHHJd9ETLVLTf9yYXhT32HGmUPbT2dnMm0A lcPbbtDZ3bXRo0kQRu2v5YORT3RdPX6sb4UtVCueGwuHFkJMenO9kj88cFqqWTTYEjqY+D0RcER o/nX9ULE/OntLevDCek+I96uSs+PotEgA846DhKu1NmZD9hB8rj5BvVkGG6ZFdXhWeOUZPdc11m WCqXTLi+H8mnfh1Q2WlAFcqFM/3qRF1oawyLvSmGL8rI524khlCjed9oca5NwrrRS38N6DY2ywL HIlXILuHaNdwM2nVfNH99joqzbtnRtzVmL/CaY0jV4RR2LdsTanDOIRdfTijfh6Pn68fvr4YwQ5 WZWN8oEie7JNPoYtR8Q== X-Authority-Analysis: v=2.4 cv=KL9XzVFo c=1 sm=1 tr=0 ts=69a2007c cx=c_pps a=OI0sxtj7PyCX9F1bxD/puw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A: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=u-CS0nqVCHpLmCmQHcYA:9 a=QEXdDO2ut3YA:10 a=Z1Yy7GAxqfX1iEi80vsk:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: mB2UYlTQGeROqXLXuN57Mvp7qj08cW6d X-Proofpoint-GUID: mB2UYlTQGeROqXLXuN57Mvp7qj08cW6d X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1015 malwarescore=0 priorityscore=1501 adultscore=0 bulkscore=0 phishscore=0 impostorscore=0 lowpriorityscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2602270181 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224829164158500 From: Brian Cain {TLB,k0}lock counts are used to represent the TLB, k0 locks among hardware threads. wait_next_pc represents the program counter to set when resuming from a wait-for-interrupts state. cause_code contains the precise exception cause.This will be used by subsequent commits. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 3 +++ target/hexagon/cpu.c | 4 ++++ target/hexagon/machine.c | 2 ++ 3 files changed, 9 insertions(+) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index e1c654dc93e..41865d853eb 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -130,11 +130,14 @@ typedef struct CPUArchState { target_ulong t_sreg[NUM_SREGS]; =20 target_ulong greg[NUM_GREGS]; + target_ulong wait_next_pc; =20 /* This alias of CPUState.cpu_index is used by imported sources: */ target_ulong threadId; hex_lock_state_t tlb_lock_state; hex_lock_state_t k0_lock_state; + target_ulong tlb_lock_count; + target_ulong k0_lock_count; #endif target_ulong next_PC; target_ulong new_value_usr; diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index a8904b651ac..7469d8a1966 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -317,7 +317,11 @@ static void hexagon_cpu_reset_hold(Object *obj, ResetT= ype type) env->threadId =3D cs->cpu_index; env->tlb_lock_state =3D HEX_LOCK_UNLOCKED; env->k0_lock_state =3D HEX_LOCK_UNLOCKED; + env->tlb_lock_count =3D 0; + env->k0_lock_count =3D 0; env->next_PC =3D 0; + env->wait_next_pc =3D 0; + env->cause_code =3D HEX_EVENT_NONE; #endif env->cause_code =3D HEX_EVENT_NONE; } diff --git a/target/hexagon/machine.c b/target/hexagon/machine.c index e6e420b9899..78152184569 100644 --- a/target/hexagon/machine.c +++ b/target/hexagon/machine.c @@ -24,6 +24,8 @@ const VMStateDescription vmstate_hexagon_cpu =3D { VMSTATE_UINTTL(env.tlb_lock_count, HexagonCPU), VMSTATE_UINTTL(env.k0_lock_count, HexagonCPU), VMSTATE_UINTTL(env.threadId, HexagonCPU), + VMSTATE_UINTTL(env.cause_code, HexagonCPU), + VMSTATE_UINTTL(env.wait_next_pc, HexagonCPU), VMSTATE_END_OF_LIST() }, }; --=20 2.34.1 From nobody Mon Mar 2 08:45:39 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=1772224994; cv=none; d=zohomail.com; s=zohoarc; b=nR5bfCvYKyd2+5uCYLYsRQLRK7o2+BV7TIOK44aCXQ11lQQUprSmJ679krNFfnCe7GL3Vcgyd+mjPsGza2hs3NvUsXGaCWakfS2GLm/H82EsStyyWv3QsnTwFzgR2ptwYSqAnEvZ4UzX8H6ffFhixHgFwhWWitsIy9w0wwWbHiY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224994; 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=jy7uPdmBgbV3uI3kaPdBjYLn/nxeGlD4FYLXnBxCOiA=; b=ItIUR8EK4GOpTjnckJ52dQj9hLRidMqx2hfZJDliYR6LoiBvaRVUE+WQWVq9G1lCwYJzbBtnGagDXKlMFC5m3kCpqoci4cG4E7AOQD2Utk5a8E8/JJbrBuxLeG5XElJou7RbjQQ2X5/EHdDVqEG4rH9GMLAIvrdFQAFj+lwmAmg= 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 1772224994827468.89216233083243; Fri, 27 Feb 2026 12:43:14 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4fu-0001re-HJ; Fri, 27 Feb 2026 15:43:02 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4ft-0001rV-CN for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:43:01 -0500 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4fq-0007d7-9v for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:43:01 -0500 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 61RH0M1O527576 for ; Fri, 27 Feb 2026 20:42:56 GMT Received: from mail-oo1-f72.google.com (mail-oo1-f72.google.com [209.85.161.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cjw23c9gx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:42:56 +0000 (GMT) Received: by mail-oo1-f72.google.com with SMTP id 006d021491bc7-679dcf1f680so60171216eaf.0 for ; Fri, 27 Feb 2026 12:42:56 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.37.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:37:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= jy7uPdmBgbV3uI3kaPdBjYLn/nxeGlD4FYLXnBxCOiA=; b=TLsnhXGkw4yiaptA CD4GQjDd1a1za7oseS8/WjLtZfiMp1KbJFCftvA/BKVnbUF4SHSLnbrxTfyeVSPf gcD4P/zxEbqazD8tuLRXXYHozCXIW7Si+fLEa/Kfo8YziqkvkH0ZzE8aNFCtgMtN cpYBvX3NdohT7bjL0au7Oes4xJt9Ccy87ZceUPtBQiCt+nWHp3P/Vhf/Vr3UlV3x Lme8hzAqElqlb74KK3MnMfijpj1xYBhUAESu+24x81bQAxy8UnvingbGeS09Nd/t sQMFNA9OCHHHiqo4+/PZj2/NerkY56t0idPGHZJUaQmI+H7UuuHJA0PPCZhxu/GV NyWwgA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224976; x=1772829776; 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=jy7uPdmBgbV3uI3kaPdBjYLn/nxeGlD4FYLXnBxCOiA=; b=gfFb7cc8ogjT98hfm0J/RckncgtnuwV36J7hY/WS6EoCoTV//ELR6q0Io4YUkORpWb 3qgDqT3t2uiCkn5xZ9AuVFdGjmzp5neDg2T+Q8rh0r1V25biYFrpiE1xbF4Sri6e9VmL 5jDT4c7UF7kQzEp6XRDAmf2ymJJUI756afeOzgAH4DBNvb6yx61ItEmnRHrp2oTeiN0g hpGvzFb4tcAGp5+DfEi8Dm8Bt3N5GSxiLYI7cGPR02jlj5zaSoVr0Uxox+Vqzp95QhX7 WjH7mMMMLN/PxKyeYIV2T/SLAbGC5A/lAbPZMm4jFcgR0iTv3rbUtU/J38MPCV+aXN0y 270w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224976; x=1772829776; 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=jy7uPdmBgbV3uI3kaPdBjYLn/nxeGlD4FYLXnBxCOiA=; b=BvWwyD8ZfGFSH7UvoxIpNVIlj8lRkZzH/U/gDLcwfEw1C7kQYr9UEKgEpxdlR90E5D u++5Dx46S6nkx7Jt9QVScq/wLndQw+sMrX365VGGY7Pl/Qmj/8Nx446x/Rn6cH82nce0 SImBnnMA9/d4mOWpvYI4FXKD8qt0LYSGX4cPWuJyvW3ME4ZwkANadGx2wqMZM2jowoPv sd91Wz+QM5hj+kcMAKIYxEQ0wahLE49IAQwp6Xx+Ik3upW/hTWSH6RkgGwIEeu/TnLvr jaN/SJWFTk9+ipzD6UZd3tH8M4kzjOcJKkoxkywXdVNSQpqfSjQSnpoMLAGQe1EGmRfB 3xew== X-Gm-Message-State: AOJu0YxLwQhylDjBMtPy5bDBVXTOM8RGHAqOgg+LtVtpqiuMuvi3Gr1q /mLLo+qjNEaEQAEoqWYn2jqqlfVIP6kIz2cdp2W1chL+j9hVtMx6xRBYNLNETqhaovWfdCc+MID VhzMLfCbt/L8XM9pWXEAMXAI334wJgTLwXXxSVx6uupWzuCRbFdK1epVOS/Ey0qx8PA== X-Gm-Gg: ATEYQzxfqdl7TQcmAtPbqjDyNziDCKH0Zd2b7Sq514yWGA4IJ4Gj4yFybplsRiErwFG 48ZzCgMm25SRsS4ME2ayfVGO/svSUnfgDdVowJJY1kKwdQvu6PWDd2o0b5Nc5kLcEuYewThBa4e as1ARPQ7cOuWyuKAusIABenosLawQIafht5SmFRBZ9277ShVuWQ8CzwlI/B24FIkX8IEUKiuHSX 2QlHQZV9c/rL31WPX0nGnQFvQetQcFktWp4Bx5AoIDnqFv9rONUoGAjb+Ng19IyuxwWyk6W3C/q WEERMYAWfGKy6EgRejfFSCX5B9WfpgmmCIutG+bL3Rnz57Ps+wWk8P+llpz/jlqVK/XmMs/VIlw jiMcZDWhFpsKe9tO+CQjDnrNAiEHWV7VIZxshv3dvO5SqL8aBq++bNgKoxQMeAJbyyLNgAw== X-Received: by 2002:a05:6870:a451:b0:3ec:7649:f843 with SMTP id 586e51a60fabf-416270c8b0cmr2503481fac.38.1772224975507; Fri, 27 Feb 2026 12:42:55 -0800 (PST) X-Received: by 2002:a05:6871:7424:b0:409:71aa:aa90 with SMTP id 586e51a60fabf-41626b17ae9mr2586799fac.0.1772224636419; Fri, 27 Feb 2026 12:37:16 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 v3 34/37] target/hexagon: Add stubs for modify_ssr/get_exe_mode Date: Fri, 27 Feb 2026 12:36:24 -0800 Message-Id: <20260227203627.932864-35-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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: YlEsQwF1HPpWPHH7F60D7F0ZG0j6zKOT X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI3MDE4MiBTYWx0ZWRfXyLOvRWoIvz2N 7zw3zOulrHiv8ZNspc9Xpb8tInpokAyD3AEqgLN8m0kiLN4md31rz1U/mz7GBMOynm0PXrXbNKq BQDIdWkCvFgy2EtrgRNDL33nKlwITB+/iv+xiS6dRU5H9Jf+cji/5ecZ8+VbuHsximJyNEia2N3 6DkBlKZ52rd7mN0nTqGxpp4mT6ctXN/EoPJt/Myvbzkgiv6dtP3d3CYF94IAe/ijjwYSpHCiLbx QCi7guUaORPniXofwmYyojgpFzsAMF+T80W2U8ZQXJg1niVOgkI349W6HCx5Okp1pmWUAx9YPro nHLeOUpirvouqaQQIEgZB46BSmkmpp9/4VXhNIHe1rPU6MTF9qfciXvutUfuBFjE/RRfRDIH1tH QrwAJ/J7DMZizCkpfqLvHE2kKNLYOf/dd0aeExLxBPqG6Y4WZxF5OSvEjAiz6HWD6aHomT6sJXS /lLRn6651Nus4tLMrcA== X-Authority-Analysis: v=2.4 cv=cJHtc1eN c=1 sm=1 tr=0 ts=69a201d0 cx=c_pps a=wURt19dY5n+H4uQbQt9s7g==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A: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=wRG_beYuZUMGsIG6Vl4A:9 a=QEXdDO2ut3YA:10 a=-UhsvdU3ccFDOXFxFb4l:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: YlEsQwF1HPpWPHH7F60D7F0ZG0j6zKOT X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 impostorscore=0 lowpriorityscore=0 phishscore=0 adultscore=0 spamscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2602270182 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224996059158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- include/hw/hexagon/hexagon_tlb.h | 47 ++++ target/hexagon/cpu-param.h | 4 + target/hexagon/cpu.h | 7 + target/hexagon/cpu_helper.h | 2 + target/hexagon/hex_mmu.h | 25 ++ target/hexagon/internal.h | 8 + hw/hexagon/hexagon_tlb.c | 457 +++++++++++++++++++++++++++++++ target/hexagon/cpu.c | 24 +- target/hexagon/cpu_helper.c | 8 + target/hexagon/hex_mmu.c | 273 ++++++++++++++++++ target/hexagon/machine.c | 1 + target/hexagon/translate.c | 2 +- 12 files changed, 856 insertions(+), 2 deletions(-) create mode 100644 include/hw/hexagon/hexagon_tlb.h create mode 100644 target/hexagon/hex_mmu.h create mode 100644 hw/hexagon/hexagon_tlb.c create mode 100644 target/hexagon/hex_mmu.c diff --git a/include/hw/hexagon/hexagon_tlb.h b/include/hw/hexagon/hexagon_= tlb.h new file mode 100644 index 00000000000..799234f5074 --- /dev/null +++ b/include/hw/hexagon/hexagon_tlb.h @@ -0,0 +1,47 @@ +/* + * Hexagon TLB QOM Device + * + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HW_HEXAGON_TLB_H +#define HW_HEXAGON_TLB_H + +#include "hw/core/sysbus.h" +#include "qom/object.h" +#include "exec/hwaddr.h" +#include "exec/mmu-access-type.h" +#include "exec/target_long.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, + target_ulong 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-param.h b/target/hexagon/cpu-param.h index ccaf6a9d28d..d414ca89d69 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_PHYS_ADDR_SPACE_BITS 36 #define TARGET_VIRT_ADDR_SPACE_BITS 32 diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 41865d853eb..3f4f8516f2f 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -36,6 +36,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 @@ -185,12 +188,16 @@ struct ArchCPU { bool lldb_compat; target_ulong lldb_stack_adjust; 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 3d7238c3b06..95928fcd060 100644 --- a/target/hexagon/cpu_helper.h +++ b/target/hexagon/cpu_helper.h @@ -14,6 +14,8 @@ 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 static inline void arch_set_thread_reg(CPUHexagonState *env, uint32_t reg, uint32_t val) diff --git a/target/hexagon/hex_mmu.h b/target/hexagon/hex_mmu.h new file mode 100644 index 00000000000..32a99b64ff1 --- /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, target_ulong 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 d94f84b46a7..1ab50828f26 100644 --- a/target/hexagon/internal.h +++ b/target/hexagon/internal.h @@ -36,6 +36,14 @@ void G_NORETURN do_raise_exception(CPUHexagonState *env, target_ulong PC, uintptr_t retaddr); =20 +#define hexagon_cpu_mmu_enabled(env) ({ \ + HexagonCPU *cpu =3D env_archcpu(env); \ + cpu->globalregs ? \ + GET_SYSCFG_FIELD(SYSCFG_MMUEN, \ + arch_get_system_reg(env, HEX_SREG_SYSCFG)) : \ + 0; \ +}) + #ifndef CONFIG_USER_ONLY extern const VMStateDescription vmstate_hexagon_cpu; #endif diff --git a/hw/hexagon/hexagon_tlb.c b/hw/hexagon/hexagon_tlb.c new file mode 100644 index 00000000000..6b676fa6593 --- /dev/null +++ b/hw/hexagon/hexagon_tlb.c @@ -0,0 +1,457 @@ +/* + * 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/reg_fields.h" +#include "target/hexagon/cpu_bits.h" + +#define fEXTRACTU_BITS(INREG, WIDTH, OFFSET) \ + ((WIDTH) ? extract64((INREG), (OFFSET), (WIDTH)) : 0LL) + +#define GET_TLB_FIELD(ENTRY, FIELD) \ + ((uint64_t)fEXTRACTU_BITS(ENTRY, reg_field_info[FIELD].width, \ + reg_field_info[FIELD].offset)) + +/* PPD (physical page descriptor) */ +static inline uint64_t GET_PPD(uint64_t entry) +{ + return GET_TLB_FIELD(entry, PTE_PPD) | + (GET_TLB_FIELD(entry, PTE_PA35) << reg_field_info[PTE_PPD].width); +} + +#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_TLB_FIELD(entry, PTE_VPN) << TARGET_PAGE_BITS; +} + +bool hexagon_tlb_dump_entry(FILE *f, uint64_t entry) +{ + if (GET_TLB_FIELD(entry, PTE_V)) { + 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_TLB_FIELD(entry, PTE_V), + GET_TLB_FIELD(entry, PTE_G), + GET_TLB_FIELD(entry, PTE_ATR1), + GET_TLB_FIELD(entry, PTE_ATR0)); + fprintf(f, " ASID:0x%02" PRIx64 " VA:0x%08" PRIx64, + GET_TLB_FIELD(entry, PTE_ASID), VA); + fprintf(f, + " X:%" PRId64 " W:%" PRId64 " R:%" PRId64 + " U:%" PRId64 " C:%" PRId64, + GET_TLB_FIELD(entry, PTE_X), + GET_TLB_FIELD(entry, PTE_W), + GET_TLB_FIELD(entry, PTE_R), + GET_TLB_FIELD(entry, PTE_U), + GET_TLB_FIELD(entry, PTE_C)); + 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_TLB_FIELD(entry, PTE_V)) { + if (GET_TLB_FIELD(entry, PTE_G)) { + /* Global entry - ignore ASID */ + } else if (asid !=3D NO_ASID) { + uint32_t tlb_asid =3D GET_TLB_FIELD(entry, PTE_ASID); + 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_TLB_FIELD(entry, PTE_X); + bool perm_w =3D GET_TLB_FIELD(entry, PTE_W); + bool perm_r =3D GET_TLB_FIELD(entry, PTE_R); + bool perm_u =3D GET_TLB_FIELD(entry, PTE_U); + 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, + target_ulong 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_TLB_FIELD(entry1, PTE_V); + bool valid2 =3D GET_TLB_FIELD(entry2, PTE_V); + 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_TLB_FIELD(entry1, PTE_ASID); + int asid2 =3D GET_TLB_FIELD(entry2, PTE_ASID); + bool gbit1 =3D GET_TLB_FIELD(entry1, PTE_G); + bool gbit2 =3D GET_TLB_FIELD(entry2, PTE_G); + + 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, + target_ulong 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 7469d8a1966..69b5c56b55f 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); @@ -312,9 +328,14 @@ static void hexagon_cpu_reset_hold(Object *obj, ResetT= ype type) /* Default NaN value: sign bit set, all frac bits set */ set_float_default_nan_pattern(0b11111111, &env->fp_status); #ifndef CONFIG_USER_ONLY + HexagonCPU *cpu =3D HEXAGON_CPU(cs); + memset(env->t_sreg, 0, sizeof(target_ulong) * NUM_SREGS); memset(env->greg, 0, sizeof(target_ulong) * NUM_GREGS); - env->threadId =3D cs->cpu_index; + + env->t_sreg[HEX_SREG_HTID] =3D cpu->htid; + env->threadId =3D cpu->htid; + hexagon_cpu_soft_reset(env); env->tlb_lock_state =3D HEX_LOCK_UNLOCKED; env->k0_lock_state =3D HEX_LOCK_UNLOCKED; env->tlb_lock_count =3D 0; @@ -350,6 +371,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 8e11cbb20dd..cab40b36cdc 100644 --- a/target/hexagon/cpu_helper.c +++ b/target/hexagon/cpu_helper.c @@ -66,5 +66,13 @@ void hexagon_set_sys_pcycle_count(CPUHexagonState *env, = uint64_t cycles) g_assert_not_reached(); } =20 +void hexagon_modify_ssr(CPUHexagonState *env, uint32_t new, uint32_t old) +{ + g_assert_not_reached(); +} =20 +int get_exe_mode(CPUHexagonState *env) +{ + g_assert_not_reached(); +} #endif diff --git a/target/hexagon/hex_mmu.c b/target/hexagon/hex_mmu.c new file mode 100644 index 00000000000..d130a46c285 --- /dev/null +++ b/target/hexagon/hex_mmu.c @@ -0,0 +1,273 @@ +/* + * 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 "reg_fields.h" +#include "hw/hexagon/hexagon_tlb.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, + reg_field_info[PTE_V].offset, + reg_field_info[PTE_V].width); + 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, target_ulong 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)); + + uint32_t syscfg =3D arch_get_system_reg(env, HEX_SREG_SYSCFG); + 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 */ + uint32_t syscfg =3D arch_get_system_reg(env, HEX_SREG_SYSCFG); + 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/machine.c b/target/hexagon/machine.c index 78152184569..50e2e420182 100644 --- a/target/hexagon/machine.c +++ b/target/hexagon/machine.c @@ -26,6 +26,7 @@ const VMStateDescription vmstate_hexagon_cpu =3D { VMSTATE_UINTTL(env.threadId, HexagonCPU), VMSTATE_UINTTL(env.cause_code, HexagonCPU), VMSTATE_UINTTL(env.wait_next_pc, HexagonCPU), + VMSTATE_END_OF_LIST() }, }; diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index f3dc62cec1d..1341720831b 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 Mon Mar 2 08:45:39 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=1772224898; cv=none; d=zohomail.com; s=zohoarc; b=koVMesbHmu6TL++CUDXfGXcV2NMTITxBODrs9nckozB6nr53U/SLacW284em5V7V2W5eqe6Ny/JL05RIBo4XJ482eq144OmC+mrA0PMvQMZqOi199znE4MCKyyk7ag5pO4zruq2c06F5By68RFi5hQ+MDucP7XvNB1j9aKdQI4A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224898; 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=XruJprU6aeeyyvkA+JkFG2kI3SjO3ayzcX4W88MzOx8=; b=W51l547QXEzMx4c/l0pYN0D9XT5PFyH00C5A4CKDNMylX691PtWtUJlemBsYcIYoYK347n1w0xfh0sy3sSYXTNYaDJzFwM1NpLP2fGdGV04nQ0aUnv8NEAACJfCNw2DDyi2/2aHflhSkeaYESNVEvMVWMOM3A9j39fc5JoGNUw8= 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 1772224898803460.2314023936856; Fri, 27 Feb 2026 12:41:38 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4b5-0000MU-Jc; Fri, 27 Feb 2026 15:38:03 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4ac-00080V-6k for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:35 -0500 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4aY-0006ul-Hs for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:32 -0500 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 61RIeta5373605 for ; Fri, 27 Feb 2026 20:37:19 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 4ckgrtravm-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:37:18 +0000 (GMT) Received: by mail-ot1-f71.google.com with SMTP id 46e09a7af769-7d496d080d8so20115539a34.0 for ; Fri, 27 Feb 2026 12:37:18 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.37.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:37:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= XruJprU6aeeyyvkA+JkFG2kI3SjO3ayzcX4W88MzOx8=; b=Ac1gNI+np2yxXMaL iwdzhTwCsUuMCkXdsscf+rw/Po7cY/xrCDLnNrNIrz35/zECfVzjfc1dH/qHJubo fv2fJjZELUWqOFghQHdM+M6VxqwNUIoqz6AeaY8ji+tYtZpZrHmbrPdRlzoZCyJj iONeamWRGKkN80yCMPZs58sIxRJ2mNCt+FlbgAlqMDgWWecdZQWZrMG6JhjP7cA4 IEs6XUK8wxGmE5UhToUkYoUtUkNg3RNy7kDgeO8QWuWF3Y2pZh1IXi2Ayv09NOnl aD+Lgy9BZ1focrfy/ITuOz8WgVSjdrNin9oicuvKvurUk/ISd5xGFPZlUgJTu/6R Wri75Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224638; x=1772829438; 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=XruJprU6aeeyyvkA+JkFG2kI3SjO3ayzcX4W88MzOx8=; b=F574/7x7Sdi6AWjLkWKT7BzuNIOf1M/RvXy1n27FSqVRQKUfufnyVzY/E1kJucHmz6 rZFZQW2ozvwHURbXFunrzPuA/zZLe/LrGkmRft/gNhUj3fEWDHqnfAziB7VQz5eMBF9k oZjtlm2rrAy3rU7/ZLw3c62OW6KSubpVtfmqgzJBtPh8io47cfd6zsggUZd0UP4tP0SM 3JkIT+QiUjRpr6bKsLI+BdXzBtQsEiajfeGFqpsu27W6zlYl9tzcjwG54uj+VzPasbj+ dFvgA90dSt/Mp3zcqR/lNlYjaOs9lKzFZQoFd63wGfSnFytwUSV74MgxI9NiPys2Yq1d DqSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224638; x=1772829438; 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=XruJprU6aeeyyvkA+JkFG2kI3SjO3ayzcX4W88MzOx8=; b=L+b9Vg+trRiTpnyGJItulHk1d2N1BXDDzpJG40STVsqgJhd+K4Jd7L1SNfdksk0QRE 01bVu1zeC1YuiZ5Qts0WMP5QDU6vgc+xc1GHUr0Lzprx3zPoOqEk9BbWdSHksi7SkEIq YDgEUNhEgGiY1gM0aBO4feMFTziZAZlla6JZacDetjijpK/amMMSKaCwVaSI4yVZaK7B qpnmQrhYoLOUy8weHOk01GeTDc2qn3Xgwat8QSHchSjV7jOBODOTQ8sqawf2VaBiz5no f0UFI5sqmtxcasUTu/gei1Aai+Y3RNK4y0PN8dkwnAP0SgJ3ltPy5IdZe9Ft/QbmtUvB WOaQ== X-Gm-Message-State: AOJu0Yxhb7zi7V8M+ZqEoYiy/mH3ROY6DdC5Tq6YhYTBOPJzZSDVy5Vi G+w5E4K3dWn7HE3jz+ayYzTAMMLL/WClfMtHml5ClhqKsc/9PqyNkX224/Kk0qIvCA3u9AA4onU NnAuxhq59pUaik6AJYxHmV8Mc7ktMgtLg2e6o2XHaFPFp8J5A6BfM8mYQkR/aCFw5XQ== X-Gm-Gg: ATEYQzwomZyNDHVXmNzoC8L04xkIeDtVDPTAn/LNakNriTEvVC55bSq13n3zr6Z/CaJ ljV3x/37luKSr3QHBiPhLI2FquxLzxjaA8/GfUJzYvcH6r0y6gFvodjPJpzDUsbz5DDn4dky79l ziAIGvwL5Orh3MrjbuNaoLxDD6v1rkGv7jlT/KZ2VK8j0jk147W/oSnsBviVTiIxSZ7mLU+bJlq otosF/Wal7KnLfvdDH7KKtNYB3yKUopodanLtT7twFDY9s0lmtqj7A699eZWql1n5b9tj/Ggo0q ON1XNRPIyomM7n6CFNjnnZfMD4aQ+MgPZqO4Ylbidys+dSQOv+l4ZhTIdgtVfSmuyCxf3fSiJqh roLh5i5taj+McmR31fC1V6fNbziVvVMTDSrR4bCBFyRyad8PK7jaKnZ0YhaI2W0SUrfSnQg== X-Received: by 2002:a05:687c:20ea:b0:409:6862:abad with SMTP id 586e51a60fabf-41626e8a9b6mr2507524fac.20.1772224637933; Fri, 27 Feb 2026 12:37:17 -0800 (PST) X-Received: by 2002:a05:687c:20ea:b0:409:6862:abad with SMTP id 586e51a60fabf-41626e8a9b6mr2507509fac.20.1772224637522; Fri, 27 Feb 2026 12:37:17 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 v3 35/37] target/hexagon: Add clear_wait_mode() definition Date: Fri, 27 Feb 2026 12:36:25 -0800 Message-Id: <20260227203627.932864-36-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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=C8jkCAP+ c=1 sm=1 tr=0 ts=69a2007e cx=c_pps a=OI0sxtj7PyCX9F1bxD/puw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A: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=InO9qlFFT13rIqmD9gwA:9 a=QEXdDO2ut3YA:10 a=Z1Yy7GAxqfX1iEi80vsk:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: QvUSdq0ZoNLKxkwvrUTFU1QR3d8Zc_5- X-Proofpoint-ORIG-GUID: QvUSdq0ZoNLKxkwvrUTFU1QR3d8Zc_5- X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI3MDE4MSBTYWx0ZWRfX5X4vi6UPl5cA ARIZza0UcClvPtsOoweSk9QjubWfw97qT1FbMLB7oigkt9LdYCDTncUfPTWxoLV2MtZJbHywSoQ SINrq4Y+zLD4cBCI52VeqqaO8e+rU8wZtMJs86EPpFasErZaL7SPlVZaq6zhFaakaMZ0xMBboI7 8TzPWQknfxPxai6ya+uRZPmGiHQ3yQvT0XPfFZo4jGGvG2lzKMSPf+CPrAattd5ShIjB/iIotPW dJwyHSt07h6pJQ8ATZL3bZd3mT6wGYgStdFrmBQInWl45NlmiakegugURD+nwd1m9RniZm1XR1c s0xW9udU0MHAVoGHHI7DI+8c2rVJVy50cWJhB+j5ivsZtzs43o+ptlNT8j6D3YMO8bJx/yLw0rd 8MZeIz2ls2ufk3k6yCMxOL4FHMR8xdz1JWCkp90Xw7JoZI3enWBTXGvEQJUTHvsINWlztRJuHMP dIyTq3lEpBoVsNLi6rg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 impostorscore=0 spamscore=0 phishscore=0 malwarescore=0 clxscore=1015 bulkscore=0 suspectscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2602270181 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224899497158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu_helper.h | 1 + target/hexagon/cpu_helper.c | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/target/hexagon/cpu_helper.h b/target/hexagon/cpu_helper.h index 95928fcd060..30a3205957a 100644 --- a/target/hexagon/cpu_helper.h +++ b/target/hexagon/cpu_helper.h @@ -16,6 +16,7 @@ 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 static inline void arch_set_thread_reg(CPUHexagonState *env, uint32_t reg, uint32_t val) diff --git a/target/hexagon/cpu_helper.c b/target/hexagon/cpu_helper.c index cab40b36cdc..b6ece785adb 100644 --- a/target/hexagon/cpu_helper.c +++ b/target/hexagon/cpu_helper.c @@ -71,6 +71,19 @@ 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 arch_get_system_reg(env, HEX_SREG_MODEC= TL); + 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 Mon Mar 2 08:45:39 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=1772224758; cv=none; d=zohomail.com; s=zohoarc; b=k6q70iNDhBzFEDkNWI6a8y6Bmk6KTqMK2Ss/bd91nSEPtSXQO2a5khDZEbbCTYQrZ7m7nXOs0H7aIajY9XATeL6rclG6S7QhTJupGqbm/c6FH7POVQZNDG8Py746+Mcvly2UO5giDyR4/aVxvbDE1w345blC9wsdiO+rvMfacOg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224758; 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=cA45oX7qK/I4EtehbooaUIz5xP4PdTbx15+Pn4N0/nsr3U42zrOG3a1rrGK6vERB9oIDI+hCShdWB04uV0375aTA/GOzlbWyrssmKxxYjY9FUKAY6WN/eaNyist8Rd/rU6a+TLECv7R/Eg6PMEL1wQnbCvfpxkprE+c38Y0KY2Y= 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 1772224758804454.15964011300207; Fri, 27 Feb 2026 12:39:18 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4ak-0008El-3P; Fri, 27 Feb 2026 15:37:42 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4ac-00080X-97 for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:35 -0500 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4aY-0006uq-NG for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:33 -0500 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 61RH0GYR527234 for ; Fri, 27 Feb 2026 20:37:20 GMT Received: from mail-oo1-f71.google.com (mail-oo1-f71.google.com [209.85.161.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cjw23c940-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:37:19 +0000 (GMT) Received: by mail-oo1-f71.google.com with SMTP id 006d021491bc7-679f6f264ceso30898748eaf.2 for ; Fri, 27 Feb 2026 12:37:19 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.37.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:37:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 6ZZDuz6n4mV1vg7UyXtzywWZTFyf36zcYE/3mP+wDMo=; b=mFOOU7zktR9W8oPz JLdudF5quqpi9C47cJ/Ilw85jFWdtM9kMeKkyF8YqTPZIVdtV3VrH6+rIFAWzdvK ByLCj0QPFFx5b9bcNyA39ou5ho7Bm/hm2/i0FqfXuer5PjLZtSQ6mZ0S2e/x/mzi hs4QagzHak5fh1spzPZgK1nuHmFRpxayUoc+ftjPGShtQnwj36vaQ++VHVra7Hcj XvefTo71lri+kC2ZBTraIeDKZxPrsDIjWKAWh9ctm/rI1obdaZoengXrQnrZ34KN 39dLqrvdpfJmvrqP16LBOaxxfUIQdHGeBYRnrr+lkWWd6i0iM7NnByl75pjJKudq o9RoNw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224639; x=1772829439; 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=ewKVHC6KVEiKUkxjVC09u0MJotC1gAGVYuv6NHbpooSw6mjkBVw40z554ZpYmaOtSv PdztzwpNNFP711prDlKqgQ4Hd0If68QCndST2qwYzjisKLU+U+zRqlri0xk0WgRfhWqZ R5frNDnxqnsuiIIA1tyeYuP716VtM2IfK+AnoKZpugxrsf6+436KSrL+b04n8SlYz8GJ iukOa1yY1V4m4f++HxgmkR2NcXmuuVKhsei1iSBEHZz6l5dG5ZY+BLdMt5yg3bjgw2Ov rbgIvbCBAtZvPuxPYlGnW+cV+yaPX8j1g99Au6mdFEEj5e4acRWTGzeR5cmVV+PTOCN+ 4VVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224639; x=1772829439; 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=osfy8wH1Q0wugh6Dhizc/xWlzzcZWlV+Qd+996N6EfNfBAM5H5+Ike6wifUNnwJPAK FTx8+xPhEW9hdZRmHyO7EzXjSyD3cafGj0XS7LcwARiOR+X5FQBoZeS66JRrO+I01I/K RaWT+3tKxfSKJt47dvgP3kKAdxMrtXmYT66n8yBPl2Um5Vet4TTqLOZ923XINM/FYU7D snVkw5bjCZ1NQ5IhChzT1zZBFARbw1T2WNSyp/FiS//msLBH0pFeLr7yAYG4J3/0PF2c GMof+1gnwFQCsV20GDFT3Y7Z5ZkxeImylnesvs9CIxJ9b4f+qLQzQH9jvoJ4Szc8ohS4 GSyA== X-Gm-Message-State: AOJu0YyLdA7DRSvZGV5TV8XvnL27ZQmkbZS/tXal1AgP6pf3H63Q6daF Ln5rNU6G361DmpMnEaBvicXWGHT99RJa4D3ZRtIL8PvtWjN2GsQWo5zVG0nIHnqG8Fk8TDEsxU6 9rkGvYJTN0Urvx+WJU+GFZFay1zM6NMSP81rstEMRXKy8Rrf6U3vfcuS6sbBsq0qh7w== X-Gm-Gg: ATEYQzzbiZBIHub03CFR1yJeFfJ8+pKePAhgAeUH4h1y5VwEV3pWWgVGUs6E7Cgg+xm +LSWeziI/50aOFG4lDVIIodgaSi2041LCakQkiGTOs2YVg/wsCRpOwD7vR/0pzj30Rsv8ftvZGE p35pJbEMsvn9V1KMPNiiiAd2wHkt/TqL4CsliFcbwLpRH7adQpHk6OKGxR1OK1L2Mqm0TFG4cVZ kO4g2GuW83gkedXaTVaBHN/C+EiGj2QtQdH0WuwX2L2qXwXuXaVxbkDWXCYGnvIa9klXe6nSHNK uZNChclaPekMiaxTTM5R/WNuN9ZiseEZywJ6i4pVbo4uWd+PQgwk8QXUgb/ANIGlrDZtsI8BkDw b+y0p5nY7GSruX8bmLEdFucHTCCoaM9fPRmHyabs+sE5ZJG95NSCdBjPC5RigpooxenBD6A== X-Received: by 2002:a05:6870:142c:b0:3ff:4b26:c40f with SMTP id 586e51a60fabf-41626d5d991mr2970521fac.4.1772224639022; Fri, 27 Feb 2026 12:37:19 -0800 (PST) X-Received: by 2002:a05:6870:142c:b0:3ff:4b26:c40f with SMTP id 586e51a60fabf-41626d5d991mr2970499fac.4.1772224638616; Fri, 27 Feb 2026 12:37:18 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 v3 36/37] target/hexagon: Define f{S,G}ET_FIELD macros Date: Fri, 27 Feb 2026 12:36:26 -0800 Message-Id: <20260227203627.932864-37-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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: Uo6MIGIZ7nuhrZntn99nAwjds8q7eO4_ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI3MDE4MSBTYWx0ZWRfX5ZLJmH8k8khF j/T6+tiHh+xDPW68z4RX1hT2Pyr6qRjQyvCoNcUPsCyZPLQyt7IdezA1+MiLGhaprnyBmazsTfW WNylWH+SEUUKdYS+oX/spVVKro3jtLyjrB4klhkEl/cWo3khmc7MfQoXwzlvQ9BjsinMJ45mu23 bmojP2xA45ccaEkuLjJhTkll1f+6oNiUfOaL8x/uJm4bwQ0ZdJghbwo3TI4JkWO3XlaJ6f73QrG qgpxOtCQSYjur+y+p/1V5OO+L0BnfIgSf/SD2HT1HxVYKOSZvg2rVljoQ2Bw1z9Hmp0G1Vk/Yni x99U3slLX/iZy9IGJ0FVPYwwbZwEs6yMtiqwboMJMJX+k+eHQM9tzBm6GUxrMIWryZXqxumeb2V tw7GAazUIbvfDaFa0fxTXS9/WjYKHTfHniNQDeknULQ4BLPSZsA9xjSod87zs1geuG4/Yu5SMnb gM3MgQ81ENHEnxzXSyg== X-Authority-Analysis: v=2.4 cv=cJHtc1eN c=1 sm=1 tr=0 ts=69a2007f cx=c_pps a=V4L7fE8DliODT/OoDI2WOg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A: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=OC-ZKJ6AczBSh3OnBRYA:9 a=QEXdDO2ut3YA:10 a=WZGXeFmKUf7gPmL3hEjn:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: Uo6MIGIZ7nuhrZntn99nAwjds8q7eO4_ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 impostorscore=0 lowpriorityscore=0 phishscore=0 adultscore=0 spamscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2602270181 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224760851158500 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 Mon Mar 2 08:45:39 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=1772224716; cv=none; d=zohomail.com; s=zohoarc; b=TX487h8dVhvmCqwfwflYsj+oQDFTC+auuFfm/WRec7nLuFTigGzzNVZOcVCakyrrHlSRenKj/gksV6oYYUPFmpI3gyQcxiQzyU11cXoeWwoF8lbmT6MZ8D9229/Z5jMBFZoqwmRw5LmIH5YKWN9giG1/t032w6z0o+oAN+V/19I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772224716; 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=+X0C0xxCVzhLKpIRh7AkXpOgS9oeObeSDfyHdKQWOYU=; b=Y/e8o5YbtFQnTDa7g/u9ZtpJ52IDvLohsHVY9inlKMKOgCrL89xDuiU6i4ImLEAAKzUrhkkA4fQYaQbRWGrl+DY5nqipCOG8y4pG2yyrp8Yt5vW2F8b56piJV9avgiK5LU3MtIQYU52t/ndO8/68I1ErVL4yh6t4JgfjQ8eS+W8= 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 1772224716583106.42254178438156; Fri, 27 Feb 2026 12:38:36 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vw4b9-0000oA-2j; Fri, 27 Feb 2026 15:38:07 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4ad-00081u-Uk for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:37 -0500 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vw4aa-0006v1-6T for qemu-devel@nongnu.org; Fri, 27 Feb 2026 15:37:35 -0500 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 61RH0HY23944640 for ; Fri, 27 Feb 2026 20:37:21 GMT Received: from mail-oo1-f71.google.com (mail-oo1-f71.google.com [209.85.161.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ck73q2d7v-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 20:37:21 +0000 (GMT) Received: by mail-oo1-f71.google.com with SMTP id 006d021491bc7-66308f16ea1so25560937eaf.2 for ; Fri, 27 Feb 2026 12:37:21 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4160cbd405fsm5762935fac.0.2026.02.27.12.37.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 12:37:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= +X0C0xxCVzhLKpIRh7AkXpOgS9oeObeSDfyHdKQWOYU=; b=I4w0JzGe6roRbKbY u28dnEnFPz/c32oAMsOFJR3xPk4/57YJmF4uVFSxWGhZ92K2UbrtIwWk695aI8fd fvisADpWZXEL4CNAT2m3yieI4VPqoqOF8FbEOzMefYhNovEC3wV9cQyaN/JQDmjE OBoexKppJbSZeA8Bpo+DSgSZUQFsP9rzHheqP07yqkukZVqymLTeJoSbk7d8jh8O dgcT43HSLXZtj3+Iw/oD1GfZtzSCGH/+hwvnjSzz7B4Zmds+8m/57/KfvCvKX2tm FDkVdiMG8y4gJqHv/cNJN0I7+dlMqcAl6bvf1ifn3mFiKakfXUpOdvi7ExZ9MJ1u acprzw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772224640; x=1772829440; 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=+X0C0xxCVzhLKpIRh7AkXpOgS9oeObeSDfyHdKQWOYU=; b=etBIuRvWTLcfPFIjKk2zG7lGaqN8+SGqOcAw/LJdLOWMBQfmgKNGLpqRD9XGARfYMd 4O+mI8WpSKO5SKz5wbdqv0zOVECRvMeBSWO87rXZSVVrggVkH6uxX+dT983bZT1xosNs /lnPoc4uvJasbDsURYswhqyN2pANalFChEa6Byh87JG7KinZaR0y5uLsHGecr18uwtRi PXg4jVHQPoM/eiR3Whe1erXxjRSwovYoWJfRhYC6pHmAI80Eti/YT7z0nsDz+3kpWLy3 JOPrL4sunr1+TA1dCKDBEKsvau5XPhdsDffvWWYbHaht4x+73137iZoguJaatUOmeL3P Oqig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772224640; x=1772829440; 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=+X0C0xxCVzhLKpIRh7AkXpOgS9oeObeSDfyHdKQWOYU=; b=tvd608EIyUdltT/t4eTS+313sAIl+uUKmKKYKY/mS+DGv5XfJxveEuEH4CgaAnd0M9 hJa+hwcRH12nVMjfGl8qFeAKMiV2mhb62qJwQCtSC7CEPC/yitCGVh6CdYuTm4kxEM/m mkcNljJbiyOKnfyieQ6i8J3nlcHx5FkwUYkFboSJijU+dclBc8yt6NAve7yhpboLwBrJ lyDbUEecRxhHmRD26A1eiqYt4cOX2bBjZeNk5Zr3YQ6b6g8SsrZ4/nIxjF+qyxsx7WA4 lySHncj/pzZBNdq+ACHstDje1QvokmGgv2ZjrGXMGa1rM1XbZrJ6Kh+HTbVLKBxeHsAh zikw== X-Gm-Message-State: AOJu0Yw76KYR6hoX25g36XZZm7E6i4wwI2L2P2YMREBgzwnehM6VPUK6 Ltd7enPs/kOS3RlNQdc6EHWw8tBY2ausQiMOuR/PFKpZGChByuZNTiXzpn/1GgpeZgTz781siRs w9FgLuHo8I2XgGEMOBs/B1xa1pafNsuxHL9Lw9TjLyn4zthGQr3DBArmL4eOjtB4cIw== X-Gm-Gg: ATEYQzyH9TvPj3dfcBgvZhTzPmSfW0XbuolWQ2uIwOCok0LBOkIxs1QFzNJU/Ff3jrP 0Du8fLD8bbptpg6MdlTgDIaIRcVg2gIUC7s+2vewhtSkHZPKqqORYAeb1UHhNAtr8AU0aKPbC63 NJ834ZcwEsEMBfXZ1VHpKS48/875UABB+D5CInl5KdmKY54gIwMD/Xt02/Q6ZV7srp2NKRq0akO aRUANL3Kpq27uQE6U5s8/l8qegyPmIUsg2CD1sVXkl9wJaqE1txaIHKgT81O4MunyYqmrv53Yh7 WeSxdNs2z68xFIt6jZaPRRFVkCeg4jrrp6tkDQ9e3XP/meLnrdb6MyXQHUShynpIBZS5jp/h9YM yOqSQbfBF1l/cAR6t9XDi2VmLd0loVKkaXqwAh8iAKsy5yuofpjEsQwizxteBq65Yc2eZIQ== X-Received: by 2002:a05:6820:2006:b0:679:a6b5:bb9d with SMTP id 006d021491bc7-679faf64809mr2833865eaf.65.1772224640385; Fri, 27 Feb 2026 12:37:20 -0800 (PST) X-Received: by 2002:a05:6820:2006:b0:679:a6b5:bb9d with SMTP id 006d021491bc7-679faf64809mr2833836eaf.65.1772224639922; Fri, 27 Feb 2026 12:37:19 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, 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 v3 37/37] target/hexagon: Add hex_interrupts support Date: Fri, 27 Feb 2026 12:36:27 -0800 Message-Id: <20260227203627.932864-38-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227203627.932864-1-brian.cain@oss.qualcomm.com> References: <20260227203627.932864-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: AW1haW4tMjYwMjI3MDE4MSBTYWx0ZWRfX8+COOiNmGyI/ JXJHtemp3JJ35QxqjDibZi+Dc4zNjB8YPikuSWUEPmE4Kirw+wS65LYUEGd5IWhxsfvxjsFC5Nm 3EAy9EbbWE6JXWkpLvKg7W2o6v8v7+wsqUYPvL0bLfGLHZ+KDX9eFymkbpf0HCEcnEMg80jpzXA AKFnmlkhKDavG8oNcrJltLmj3RssnQ1cWwnoYrwzcezBZNbXCz+EeRuAQCHCGHRNCfdqX3AKuZ/ 5iWorcvpkv4W7C8BO7lDD48GWZYneIy8itcs9nAw3kT9miHI1o0E01lcmU4MYTZ+yC7BxvInAfS qc3rhxklCj4MeJ4tur8KJF6tRq52tt5COErpj/uF+RccXQ4EkZLcn3Ab+1ps9MeE+c6T7XjHTVp qi4gpBFfmhACN0x9rShqZtWYU2m/FVfl9YZoqCcjANR+OWeTYcUcWqiFFh6JQVGQ+CKo1wtpfI+ 5ctlMEK6eQ+7p7bQB3A== X-Authority-Analysis: v=2.4 cv=KL9XzVFo c=1 sm=1 tr=0 ts=69a20081 cx=c_pps a=V4L7fE8DliODT/OoDI2WOg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A: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=zxlTluI1IHozTE2Gj6wA:9 a=QEXdDO2ut3YA:10 a=WZGXeFmKUf7gPmL3hEjn:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: cn85DQz5lR1OyZgUFHKZ3UFyOgpDNSUB X-Proofpoint-GUID: cn85DQz5lR1OyZgUFHKZ3UFyOgpDNSUB X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_04,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1015 malwarescore=0 priorityscore=1501 adultscore=0 bulkscore=0 phishscore=0 impostorscore=0 lowpriorityscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2602270181 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.706, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.401, 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: 1772224719136158500 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 | 1 + target/hexagon/hex_interrupts.h | 15 ++ target/hexagon/cpu.c | 2 + target/hexagon/hex_interrupts.c | 332 ++++++++++++++++++++++++++++++++ 4 files changed, 350 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 3f4f8516f2f..99150aae753 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -190,6 +190,7 @@ struct ArchCPU { bool short_circuit; #ifndef CONFIG_USER_ONLY struct HexagonTLBState *tlb; + uint32_t l2vic_base_addr; 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 69b5c56b55f..a1ca4075472 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -61,6 +61,8 @@ 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("l2vic-base-addr", HexagonCPU, l2vic_base_addr, + 0xffffffff), DEFINE_PROP_UINT32("htid", HexagonCPU, htid, 0), #endif DEFINE_PROP_BOOL("lldb-compat", HexagonCPU, lldb_compat, false), diff --git a/target/hexagon/hex_interrupts.c b/target/hexagon/hex_interrupt= s.c new file mode 100644 index 00000000000..6cbc5840af7 --- /dev/null +++ b/target/hexagon/hex_interrupts.c @@ -0,0 +1,332 @@ +/* + * 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" + +static bool hex_is_qualified_for_int(CPUHexagonState *env, int int_num); + +static bool get_syscfg_gie(CPUHexagonState *env) +{ + target_ulong syscfg =3D arch_get_system_reg(env, HEX_SREG_SYSCFG); + return GET_SYSCFG_FIELD(SYSCFG_GIE, syscfg); +} + +static bool get_ssr_ex(CPUHexagonState *env) +{ + target_ulong ssr =3D env->t_sreg[HEX_SREG_SSR]; + return GET_SSR_FIELD(SSR_EX, ssr); +} + +static bool get_ssr_ie(CPUHexagonState *env) +{ + target_ulong 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) +{ + target_ulong 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); + target_ulong new =3D env->t_sreg[HEX_SREG_SSR]; + hexagon_modify_ssr(env, new, old); +} + +static bool get_iad_bit(CPUHexagonState *env, int int_num) +{ + target_ulong ipendad =3D arch_get_system_reg(env, HEX_SREG_IPENDAD); + target_ulong 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) +{ + target_ulong ipendad =3D arch_get_system_reg(env, HEX_SREG_IPENDAD); + target_ulong iad =3D GET_FIELD(IPENDAD_IAD, ipendad); + iad =3D deposit32(iad, int_num, 1, val); + fSET_FIELD(ipendad, IPENDAD_IAD, iad); + arch_set_system_reg(env, HEX_SREG_IPENDAD, ipendad); +} + +static uint32_t get_ipend(CPUHexagonState *env) +{ + target_ulong ipendad =3D arch_get_system_reg(env, HEX_SREG_IPENDAD); + return GET_FIELD(IPENDAD_IPEND, ipendad); +} + +static inline bool get_ipend_bit(CPUHexagonState *env, int int_num) +{ + target_ulong ipendad =3D arch_get_system_reg(env, HEX_SREG_IPENDAD); + target_ulong ipend =3D GET_FIELD(IPENDAD_IPEND, ipendad); + return extract32(ipend, int_num, 1); +} + +static void clear_ipend(CPUHexagonState *env, uint32_t mask) +{ + target_ulong ipendad =3D arch_get_system_reg(env, HEX_SREG_IPENDAD); + target_ulong ipend =3D GET_FIELD(IPENDAD_IPEND, ipendad); + ipend &=3D ~mask; + fSET_FIELD(ipendad, IPENDAD_IPEND, ipend); + arch_set_system_reg(env, HEX_SREG_IPENDAD, ipendad); +} + +static void set_ipend(CPUHexagonState *env, uint32_t mask) +{ + target_ulong ipendad =3D arch_get_system_reg(env, HEX_SREG_IPENDAD); + target_ulong ipend =3D GET_FIELD(IPENDAD_IPEND, ipendad); + ipend |=3D mask; + fSET_FIELD(ipendad, IPENDAD_IPEND, ipend); + arch_set_system_reg(env, HEX_SREG_IPENDAD, ipendad); +} + +static void set_ipend_bit(CPUHexagonState *env, int int_num, int val) +{ + target_ulong ipendad =3D arch_get_system_reg(env, HEX_SREG_IPENDAD); + target_ulong ipend =3D GET_FIELD(IPENDAD_IPEND, ipendad); + ipend =3D deposit32(ipend, int_num, 1, val); + fSET_FIELD(ipendad, IPENDAD_IPEND, ipend); + arch_set_system_reg(env, HEX_SREG_IPENDAD, ipendad); +} + +static bool get_imask_bit(CPUHexagonState *env, int int_num) +{ + target_ulong imask =3D env->t_sreg[HEX_SREG_IMASK]; + return extract32(imask, int_num, 1); +} + +static uint32_t get_prio(CPUHexagonState *env) +{ + target_ulong 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, target_ulong val) +{ + env->t_sreg[HEX_SREG_ELR] =3D val; +} + +static bool get_schedcfgen(CPUHexagonState *env) +{ + target_ulong schedcfg =3D arch_get_system_reg(env, HEX_SREG_SCHEDCFG); + 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); + target_ulong evb =3D arch_get_system_reg(env, HEX_SREG_EVB); + 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