From nobody Sun Jul 26 12:31:36 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=1781910087; cv=none; d=zohomail.com; s=zohoarc; b=lxqp7oL9CF9N/C2A/zlsEuOdDEjaXgr+ItopKI+B6ofalmbqzXun3ti2fT+2UyxnINGLn3lINVIOAs+7O6/Zj7nTf0Krzh3j9KREeXqF2OhIgOnbubNeFfG7JWdTn3rW3hUBf2yHonEiZ16MNIpZUpkuKu3PRnVnl0GVtNv761Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910087; 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=JbLoyRM9H7NCFOwvGLkDMRFWqFmzR5imiiFSxclX5P8=; b=bEM8Wda8+qdqGVnRWsbNoHTqc3b4Eng/q2ABjr1Tiqk1LnRInjJAJXDhqxXTda4xyJ0pFCKIYUWgaV8IXxICAUL7O4JUdajwV5v2rE8ziZCEuqYIW/+EYTcivFqnKmXtUofZpMMHsYyYjfA9+a7kdopKAj9SNIWDViYefrmRRGY= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781910087453327.50622447111823; Fri, 19 Jun 2026 16:01:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiBJ-0001Zt-1n; Fri, 19 Jun 2026 18:59:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBF-0001YR-ID for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:21 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBD-0001Tq-3O for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:21 -0400 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLXmRs1251420 for ; Fri, 19 Jun 2026 22:59:17 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ewbgp8n1y-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 22:59:17 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30bc5f826f2so4609404eec.1 for ; Fri, 19 Jun 2026 15:59:17 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.15.59.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 15:59:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= JbLoyRM9H7NCFOwvGLkDMRFWqFmzR5imiiFSxclX5P8=; b=OZxQTT/JLGbSFebn ffiNysTf72E7uKPY66nQNlFNR2HTUQKAuZTUhZyKKQovgWEWjdHmkaz5keIhPS51 JAfBmCmeloSVNgxHD0xHoX9kjgjS5q854yfjqSHlTJDQAI8F3U+EwJUPikTTcBLU wAjHz+aSpoK/yZOtavHsNCcXxh3875KaQSfYH05+jkV/5FWP6zzKa7Uj2DVkmejE 8YONOx6jUcEMludoNLSAZywUaINoS4V6ntS0PzSe0N5NX7ZsAvy4cMRiPARPywT/ px8QBvshaM85flS41LVstvg9JKIEcXzV+L6CF+Dk66MD0t25x0eeg1dkoq1S0AEa GX8BrA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781909957; x=1782514757; 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=JbLoyRM9H7NCFOwvGLkDMRFWqFmzR5imiiFSxclX5P8=; b=ZVlg8/RzhP1Yet+slAJfj451RYXmlu0Vjtu8ckAEAMID8sw9vB2Q/z43r7pAvl+Jpc v+XWO1iWHMdAlj1gtCP5lUBp10sd4p+tgWgI+BTKVC9rbSj10R0CcCht/Z83NElHFved kXjaNbHm2fzioM/1TE8P2gAQnWHQLxJMBFbMJTUOC0icKkCQ+5ZfNaxvVFwPBnkzbIsC 3CiXeRf0yptzE1pmvQxbBslobqXr2zVf0Ebsd4q3H7nS8++R8ogMuAugLDTF6gdimbyO i8TmjBKgpG1B/bhGTRLV8S+4DAUPulqkNELdU8jbRiL4II6QEKZhwPsnkW2fLFoIhJdL b9ow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781909957; x=1782514757; 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=JbLoyRM9H7NCFOwvGLkDMRFWqFmzR5imiiFSxclX5P8=; b=kPSLVB2CGKJ+jKOD3zQ3pRM1aa4oHr+GkTn6xC56GDJDN6kkhCz8WaUeHMrQ/bdSzw HOAewIVXkLDPJq/6eDPUdAhtvcxN5l4J3LV9nPrbwu7/zURU8Ut01R5ylGr32a9KQM7y FzLmS+7cCBGtOYYIhifqIKxvfugdc2n09lNEMkjvx6/3a+d1S24u2Am4f6dZebAUmOX4 AIDAh+J7RksmR9e/r6vd02H9gymrx65rv1FVWfafpBTHLeszCFDB3F4X/5qN/yku64M/ pelNk8XMTDnRyy3tXBTjqG4C94pUyI+26MbB/fZ4sKFypULHsXByVxdNvd+QktQlr4xP Kczw== X-Gm-Message-State: AOJu0YzC0OZGyoh12bBm2h+1l9F4jPZiOzBwB8+TodPZRN+tXn0ecugP PKVGa+IIYEKK8EoDO46fXAY+1PJ00sSW7CS1nXIU29zwZr7qX3aE34TrJ3lPDjBsPncVe1dCO6F 1bJecGAF3n/KcRPCckE590EpyLLi8OKB2UPVFco+Cxrxl/i+hoo5XwM3DMKfSa1udAg== X-Gm-Gg: AfdE7clFsiHYkcXMaoqhPW08LRmP+0kjKPUVzAfswjp6vHRqYCzIW2rYNt4JQXuMGYR sbs5P7Bm38VpMyLWRjgmpGFPzIlStWT+Av8Cl6CLRNboIqrRXC8eQg7BH3ry0pCTFJqrKLbtx62 ro5gqVio3dAT2RKL3cPzZmBvry4BdCUUIkdaiwf8MoZRKOnyJyXUm3GLGg9P0JCUWYxGHcIg/pS yd71wJ0pCsQp+hi64Aj2qnHKj9gbmDyHEvkxODut3b1cHGCJ5+ACynwdu4mFYBblpIou4mo/VL0 xVgG353ZpZ+57gTlRWvNnGuF0Dk/2lZa0uwCzajCAxnnMJK2kStWxkK1an7B5i6CtR4PGNjhfue LSeOZwFdUxkWmUIYGI8s7y9yZdPFk+Q7iPOryinhtaNMhqUtdSqn9bt2yr7Q= X-Received: by 2002:a05:7301:4b18:b0:30b:8860:94c1 with SMTP id 5a478bee46e88-30c0d1060dbmr2266746eec.23.1781909956782; Fri, 19 Jun 2026 15:59:16 -0700 (PDT) X-Received: by 2002:a05:7301:4b18:b0:30b:8860:94c1 with SMTP id 5a478bee46e88-30c0d1060dbmr2266728eec.23.1781909956159; Fri, 19 Jun 2026 15:59:16 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 01/74] docs: Add hexagon sysemu docs Date: Fri, 19 Jun 2026 15:57:58 -0700 Message-Id: <20260619225911.159473-2-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: Tmn9zPDdXKGEYecGyN5JTZio058V6qly X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyMCBTYWx0ZWRfX+1fung5BbNPz vwHgiCnT242fpU8WVl1tBdnBFheEeKIK5TjK6tEPQbMDU3Ee4X83+5j9xzmHLkrUwBR8FeOT+ob Y9Afpt4iNE25y22Nj7zBhSd1mc99bJB9SeAQrt5E/RxuHvTitp/UwbEDJ+KSxsqr+9F7oxrFL/q kZ9O1gEEwMR6tfkuQw5hrRbDVciHg5CemNCmFTaIGkeCJ+b9VHsmOtGiR4Yb98Lx1VpcEGzDqGU ad/Bo/jEoGjIUqkpdE9IrYfCDh/7jP6jszYN5t5A9vZDZRwraJ+m1yB7DhqeS8IMfwnJPbWnKmN bSDbXfGPtx1HxytUpmhiTNcsY/Aby9YD/BrjXyX0hjdJJyuYYFUtx/Lp3b5ipeZkXPcKykJs9Ut xGOPhNJdCMWb+H+uxkln3zhv+7H/KJALuUajgnPx+r7GwPFAGEh/+0MRJBl0Ue7Wim69KfICpZe 976JVNtdF5GHBPpBaCg== X-Proofpoint-GUID: Tmn9zPDdXKGEYecGyN5JTZio058V6qly X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMCBTYWx0ZWRfXwiXEGZtPHVZe LINEAVuRIfOZHgUnENnLnCVHtK5avv9zWTPXOG6F7I/fYj/W3vtYrx23liSDXTUVAd4YZ8lkpc5 qhMRCdJ1O6M9kkCFwTy74TxecMD+dl0= X-Authority-Analysis: v=2.4 cv=d8vFDxjE c=1 sm=1 tr=0 ts=6a35c9c5 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=NEAV23lmAAAA:8 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=fXLLft-zuLPsu7fQao0A:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 priorityscore=1501 malwarescore=0 spamscore=0 phishscore=0 impostorscore=0 suspectscore=0 clxscore=1015 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190220 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910089943158500 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 93df53d87f6..9d195e56ce9 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -258,6 +258,9 @@ F: disas/hexagon.c F: configs/targets/hexagon-linux-user.mak F: tests/docker/dockerfiles/debian-hexagon-cross.docker F: gdbstub/gdb-xml/hexagon*.xml +F: docs/system/target-hexagon.rst +F: docs/system/hexagon/ +F: docs/devel/hexagon-sys.rst T: git https://github.com/qualcomm/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 Sun Jul 26 12:31:36 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=1781910170; cv=none; d=zohomail.com; s=zohoarc; b=MDRitsaSwu6c9UQjxUixdxlSTG1Ko26P5xWlQ+YrOpGCwtD/J7sY1TVqnQO6nK1enNoxkv/thmYOQIqohuqh3CDM8/6neMQieVZOgLIHx5aI5a26TbVAIJNRtJxc1EFtWwqvchln+WDmQLorMzzbSWmOb4MVpBzwtlxFu9CExA4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910170; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=jvNSC8poP+qwYtz1xZbovXiJMkmoZCU6yMIg796FAUw=; b=lb4PiodpRdl+7ry0VIT9YapAD3gekeSAYRFI9gm+Q8fyTIjHbv1zckqokoSirYf0LRf49CT1K+n+bTyGKav304FAVgJ5qqY9wTdLCurSATdSPKekuTUlPP2fIrRMKWPXkwkanDnkwsOCfO9dhzkX/A+4eoMJQ8h4mA4SXLCZxcs= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781910170880793.2040983600237; Fri, 19 Jun 2026 16:02:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiBH-0001Yu-3d; Fri, 19 Jun 2026 18:59:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBF-0001Yi-UR for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:21 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBE-0001U1-6G for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:21 -0400 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLYQ3w1337250 for ; Fri, 19 Jun 2026 22:59:19 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evp67554g-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 22:59:18 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c04cfaaf2so5435490eec.1 for ; Fri, 19 Jun 2026 15:59:18 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.15.59.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 15:59:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= jvNSC8poP+qwYtz1xZbovXiJMkmoZCU6yMIg796FAUw=; b=kh1wpF3WWhCoHCHg Rr0AGLpQvTob3NFn6Y3supUJVTOoqAGz4vSf12XWGY/iCBRSaqYgXhub6rQBf2ia 5RHiBauHUYRdrG2bsPZ9amqalRzywr2jFGyaskxCc4czD2tUXoaeRpWhRXp7exmv 1uHTTbhHOsEpZ2sxDui1r8YU5JqXM4ljNgl2qxxZi4DBkA5g7/oazK5pci7U70xO cGGVa8ujL3GwQP7XtsiVpgFNiXZHdrS9yRc9ef4VV3AyfGPUUB1ItkLfg6maoOCW hBGI+SZn9V9bokpVgcFQc7JSKSD9PL4SzRoS15x1Uvgz3SjXNruZn51JbxSAuPWG 8eL5nQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781909958; x=1782514758; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=jvNSC8poP+qwYtz1xZbovXiJMkmoZCU6yMIg796FAUw=; b=FwXnDqzCJPBpZYBjXH+TNaf/rALDZPLuR22o7PqQUc777RNmjg6j1UdODPLkA+40jL vyv0527IiFdb6CrSTigeto6tPfk++GU1WtCsx8AHPS4bQrSMzBLz8mfh/SUk4Hc96q4k LOvCGmWYvibuu42MZ96MGA0ul+xzRJMRljoCAwzTJQASaPfTXT57acVaAZ6mDuOtBgYY yfjNARxeZyxLmbbhDbHPSUsaBjETm5tPkp+/r53567aVPUYy9t8A+0Y8HmsE6vSpH19n ZZuqpLCh3nKCThYgrp7ngHr/ZPYDvHRj3OGXwIE7eDB622r2ATG+RqioVUJ6MB9fps0h j2WQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781909958; x=1782514758; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=jvNSC8poP+qwYtz1xZbovXiJMkmoZCU6yMIg796FAUw=; b=m6x/KD4kBJvGtyASqrE22XIRoRJ/y8va4oBiCOI4iZNywZcQIgcU5ztdNx7wUFkrfz ZRVmiQPaLMdGvfoaDGWNR7N46lqGDjdwh2ttwGWu6qBelsx9TP77G9kZ5k8wIM5bb5f5 yvrHePAu8ocMTDLHlriUCjMLC3HtesLTU19JZBKd9Cg9P2lSSZ22qJu6+7qhl4HqeM+7 yWBGKMNEuciWEJ8d4GQIJ9zTN2PtGj6wrL9S2sxCpwqTXrNRqHWnadsirM8G+zG1ASYL scvJ/K98tr8Aen7Xh8WMdZbg1ols0UNM6gwFxqOsIUJHfGTNrGo10Bh56Y3ossbFe00I JEaA== X-Gm-Message-State: AOJu0Yx/d14V4uArqc1fIo1oPVfvVgZ35vh8WQNQHzGlr8RvnW28Pm6I 6YsRSpxSMO1iGpXBZmk8wcNWnvi/XLjTtxNjqdrX1cBVGBveciy0R1d7wh8s7narLVLP75qsUbZ 2DY1N/o5aIEZuWzVKgw0KBiW/FsB7ylKHpMsGqIsfOJuzKzGX++CTb9Nys+JDhGL/4w== X-Gm-Gg: AfdE7ckDkAkNBR4QQRibSX0SYucH4zQofm1KmlZUGtxyMA0kTx6QLVWCyX/8vKG51MW ng7MdaCBcz9I14G5Fy1AW2Y4ZMBVMUltngAzdKumO4WLyfSFEMqGChpQ9zI/lUah/OS7xRsvQce Q1zQKkC+EkH+pXd5LeSBJRRnL7+Nx8jm0y/khGKydvhYKHerG4j1wcsyxthkOow5z7n2sgKHXKp o5C6zZ1omLmJB4ZWvuJBoZjVrOQ5zAH/ufC7Qy4HisOfZ77kJQMn9d37MMJA6Urgowuxu52F9u2 E6R208PftyulEhSE9IsAS1N/4dpfQ9rR1sSDz7Qg4XGtMdBN3bCoerFQLsNMGcCAAYgFmCPDTey u7W7MYswWV8qcke2M1gzkrT9js6PaI0gIH11lee0G9MHbxdX5z3b4GqTKDRw= X-Received: by 2002:a05:7301:38a4:b0:2f1:496c:94bf with SMTP id 5a478bee46e88-30c0711f426mr3491802eec.16.1781909958133; Fri, 19 Jun 2026 15:59:18 -0700 (PDT) X-Received: by 2002:a05:7301:38a4:b0:2f1:496c:94bf with SMTP id 5a478bee46e88-30c0711f426mr3491789eec.16.1781909957666; Fri, 19 Jun 2026 15:59:17 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 02/74] docs/system: Add hexagon CPU emulation Date: Fri, 19 Jun 2026 15:57:59 -0700 Message-Id: <20260619225911.159473-3-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: zPazZBEuRrCwSGl8_hBbswDbjZN2yRhJ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfXwY/juZ8PIPQS gVtjnJG5qj3hmKed2Q5fpCSNA9AIk9PBSwky/fCmdx/wGqKXp52XGkn1OMJTs4qi6O3SN67h3Qe 3WbCy5WzJ3GSWEcWUIlWaUPpoQIBVnGponTaRiZ2jv1HPPrp/sx/1z3mfg7gMi0PXla7+1s4T8b nvNPWsl6CH/9FRGMI+5nx/y3E5zCoDKueznEBLDG41YUGR26tn4jZ0AdbuKDFvdwL6G/980Bv/i qMrNmHTeiFRTdYVi36WEru9d7ccPL0cBYOYsuwZW/o+rku0sI/YNsnJkC7QdRJoQjS6vjUYqX1T sUGXoVHNb8LBtNxaVcaTKOE+C4Juh4XrwEswlDkZZWEvPxPgGF04KdwaTuH7kIvGKA1PkIPQHCQ 9UxscAytfacxEUV38vcCNXepnzT27pvyEk+SGA+V7fRfKU0tOmeTOgtnBoPP8A4kFJWnMzyF5Nb LlDar4vsv+oes2djQAw== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX092KZnkpKC99 ta3RqNo4MfxtdkyIiZXPQbe7ngXLX9bMPU+Bj+o4jAnGDqng/LkHwRxsCbGfBDc2AC6ZUKES3o2 uCgVJJw5bQWiaFd1goMy/ZhN/NizC5Q= X-Proofpoint-GUID: zPazZBEuRrCwSGl8_hBbswDbjZN2yRhJ X-Authority-Analysis: v=2.4 cv=TdOmcxQh c=1 sm=1 tr=0 ts=6a35c9c6 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=2pVdXvZyqgCw3DkElpQA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 impostorscore=0 spamscore=0 phishscore=0 malwarescore=0 clxscore=1015 suspectscore=0 bulkscore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190221 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910172101158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- docs/system/hexagon/emulation.rst | 15 +++++++++++++++ docs/system/target-hexagon.rst | 1 + 2 files changed, 16 insertions(+) create mode 100644 docs/system/hexagon/emulation.rst diff --git a/docs/system/hexagon/emulation.rst b/docs/system/hexagon/emulat= ion.rst new file mode 100644 index 00000000000..36f54f058af --- /dev/null +++ b/docs/system/hexagon/emulation.rst @@ -0,0 +1,15 @@ +.. SPDX-License-Identifier: GPL-2.0-or-later + +.. _Hexagon Emulation: + +Hexagon CPU architecture support +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D + +QEMU's TCG emulation includes support for v65, v66, v67, v68, v69, v71, v7= 3. +It also has support for the following architecture extensions: + +- HVX (Hexagon Vector eXtensions) + +For information on the specifics of the HVX extension, please refer +to the `Qualcomm Hexagon V73 HVX Programmer's Reference Manual +`_. diff --git a/docs/system/target-hexagon.rst b/docs/system/target-hexagon.rst index 5f7084a6a08..416b8f7be76 100644 --- a/docs/system/target-hexagon.rst +++ b/docs/system/target-hexagon.rst @@ -98,5 +98,6 @@ is not yet implemented in QEMU hexagon. Hexagon Features =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D .. toctree:: + hexagon/emulation hexagon/cdsp =20 --=20 2.34.1 From nobody Sun Jul 26 12:31:36 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=1781910049; cv=none; d=zohomail.com; s=zohoarc; b=DfQRH7NFVWdzQ4onVoNelRM8HZdntcbZ2nI9aBopSCqap0z0dZtPxYtVZCENrNytD3yndEw+sp16LB+70Dx3+zn87XUPQe/MEx3ICwOJtC9Klr4lj2tl9sn0f9Tzq968LVlK2KA8WbJsuFNAYU6DWc2hKFTnD6X80xxXjZGumg8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910049; 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=IkxVmrZuFWa1Fs3sFSDNQQouCUhLSalQWx3BbBytT1I=; b=KXS5Lx56OvP/45QCi4rYvqdxmXotGSfHLGmsIESNQD7S+pcXb343V/eHc2AAr/5v+I1r9AoHeWu0YFM/iMxb5PVYXHy4sXouHBqCqG691UP3MuvexkkjscOyu40Ockz7g2mZ2DsXXGXd8R2Pi13GfaXsNXlU+zDKik/K1Mj3Uoc= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17819100497221016.6061216036774; Fri, 19 Jun 2026 16:00:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiBL-0001af-FF; Fri, 19 Jun 2026 18:59:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBH-0001Z1-9l for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:23 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBF-0001UB-Kq for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:23 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLXg4C1285925 for ; Fri, 19 Jun 2026 22:59:20 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evy72k80q-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 22:59:20 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30bccca5620so3385078eec.1 for ; Fri, 19 Jun 2026 15:59:20 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.15.59.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 15:59:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=IkxVmrZuFWa1Fs3sFSDNQQouCUhLSalQWx3BbBytT1I=; b=Be 79M+aq+1QfMcTKOy+SOudPZYXnK8QL3FRE/7HLeTSSt+9GSSlRBEgHD4U5T19tSR DUjf3eWRYnlefoFWriQ9rHpglxjW+ME7Zcj9yLeU9z+EILwRpHljwuKeJpoO7RA2 mklt/AMUCH+ldbMQ2P9qNNhaeQEoLmJUCo0TO9m+9YEZfco9hcIVF6SB+jV9IdR8 g4Nwqh38QFN52go7Yyz5+0IzOHEScrsh7OJ/YOwLiV5S0VMaH3u+FEJcSD3xJLOS /xTwPCS7aTlEBAIDpk8BZzsdMn8utFumvMHZyYigCwG0jrXR0o6AWoEadOeQIL0v bnSr5SKdu9Ou6J8WZhtg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781909960; x=1782514760; 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=IkxVmrZuFWa1Fs3sFSDNQQouCUhLSalQWx3BbBytT1I=; b=ee2dT45Y1EaTrz60TTUcRzYam9OPzZw5pNe0RtrspqtAWcNuSAkCrRSXXvnq/MBfXJ yVUcoSwMDVskbJ900onAugLIKS8frBAdPSw0kTpO/zpi55c/KsSLR/ZTXIPLSIgKIW+7 FMYQ/9BUiVTcMHU3I03CMx6asMcj2FrDC8Cx46kbV/Zd+/fB7qYMNedGiYvulXNLkvtk 5GS2vOYqYncyVHwEOLdY01teCL91AZ1acqX0lMFiq6Eyq73ied0tI02zxQGyTk2Zf8Nc JKXiugT8mXzc1dSNlCnZ6wnnJO91QHz9BpVoqKoGpUmg6xSwN7PWYPCuU3YiYGG3Wrox XbEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781909960; x=1782514760; 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=IkxVmrZuFWa1Fs3sFSDNQQouCUhLSalQWx3BbBytT1I=; b=o7+aidWVFBxN23KF5pCGfh8uUw12V3LShgFC2sJDbYLIvjZZ/lW7SiBkDDCmeml2vK I6ARZbvGbwCJ85Mi/Ov8H6napNEl3dHDKvgFXvVeKR/jqn2G4D+KzITjz63IDJnhCQFu X1hhd7oLhAwHQ5OkQwl0w++LojRWPN9FN42Zi9RdPwKMkjZrvygpqbJgIWaSYb80JSn5 ZVlT9OHotFMKREzE60rY/jtdF5e1zSwTqbTLvFWzVtnkW/Li3VGyBarE4VX4FiLlijm6 008qUtKFqBql1dIpiUmchEjHB2rOK/U2gh4HACuB03hn/jhvxqdB7kCBN44MwJG5//Gj Y1pQ== X-Gm-Message-State: AOJu0YwzXygu/yCvrcYBfq8b+PoJdx3uO9goukT0Jku7zMJiyzLzViR3 j7k/KhO+0MjlCuTxrkBZ9m2PeyMbvdJcamWxi4QsxK3VSaAgelpXJC35XmooJ+PwPKmf2wqJJ9P 3fmy/Oqdw183kroCnwJqvWg+SOTek8jOCGd6doyK+etHDvWjOTaZzACIF+TUzgbpcSw== X-Gm-Gg: AfdE7cnaGDACTJJ8BT8hrzFkSaH21+UluyFDNk7nrh2HtbZ4tTRkYd91cHkOzqL8iOJ rSmcHR8k1HL/efzWkAK8cBt5fMGXM4ktzpGcA1+2oa/6ITCWIxZTBu/hW2wCu+gUH5Y3t5AQOIC Eq142g7XhMMRF0nFkeUDuffbSeFW31WAx9P3JnpX7edzfqHTN9ZRMFawOv6m0AwxMFHwjR12BgW NXpioOgZn6VrKAOhzKUyRAkBti9MFWLfKoTX0UqhPMYE5HjNS0H8eOBOnfW2Wh42uPdVxacmbYy dw+VwVFxot6G55NOZtZrgtBcc2T5NkGJ5Qm1dN0EKePkVGHaqZLCwKnc5yrUJ3iy2pM4Gk5dYal fSj1QnwkEETKGM8MYCXEL+wPKQldzOYc02rqSBcc9m/n5OnG17Z+m9dYa3P0= X-Received: by 2002:a05:7022:ef0b:b0:138:4e1:4701 with SMTP id a92af1059eb24-139a37f5e82mr2339314c88.7.1781909959595; Fri, 19 Jun 2026 15:59:19 -0700 (PDT) X-Received: by 2002:a05:7022:ef0b:b0:138:4e1:4701 with SMTP id a92af1059eb24-139a37f5e82mr2339303c88.7.1781909959063; Fri, 19 Jun 2026 15:59:19 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Taylor Simpson , Pierrick Bouvier Subject: [PULL 03/74] target/hexagon: Fix badva reference, delete CAUSE Date: Fri, 19 Jun 2026 15:58:00 -0700 Message-Id: <20260619225911.159473-4-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX7XLSlxFCBp/T QciPH2G6L+83yOVn0u9QbatSx+8ZrN8m4xPA2Szv5KuRgEPT/RPeFDB/nL6Ed8E0UlE/bpKjfoo wJPOYsqwmIr32IlDWt8KssIkz7qJSkYZhmubcTMRRD70yUbJYSoNYCpKaDlfntRtdK4+GAoMMfS +UUUzgz9LdBrmuEEMHIDRr8ckVrW0a6mtiljTJpCyH9EPC3Z6SgHJGRWLOoBnvkPVrloBG74x6v 46ff12qsZvThnebi+ySMQmDb20I+anF+Ur/1p4RAa2X9fJYiFFeDBBNjwikzQb59n9X4/ZOjPdp wvb6899zVrDxFkWiG42Ez21A5z0OFxG3QKg/6ek0g6AbHvFu1tMKBlbU4IJELBMqIXA3vfSBXD9 SKZw9bBJ4tY0wxKOCX6ygkjgVKCLUGpxL4Xkw/I3snPw0UuKxhwHEin4yOXXYsdvnJigrM9MapE neaDrpGu4LKejWVoV9Q== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX6ejTLzkHGR7d fbq5eNswvHC6cZAQCDZJKTDaRzZQT0sF788bgVKdIQMMZgfxxgc4OtWsB3vBNy6MwNSbUms+uQ1 g+q8w/nqvkKakQoaYUEp8nclGPX0pvY= X-Authority-Analysis: v=2.4 cv=I75Vgtgg c=1 sm=1 tr=0 ts=6a35c9c8 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=pGLkceISAAAA:8 a=YHbvUooXmMNqKe3LDhEA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: GpMsrYtwySRelK3LTrDwG-fWpTGYUt-P X-Proofpoint-GUID: GpMsrYtwySRelK3LTrDwG-fWpTGYUt-P X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 impostorscore=0 phishscore=0 spamscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 bulkscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190221 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910051690158500 Content-Type: text/plain; charset="utf-8" From: Brian Cain The BADVA reg is referred to with the wrong identifier. The CAUSE reg field of SSR is not yet modeled, we will dump the SSR in a subsequent commit. Signed-off-by: Brian Cain Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- 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 2c53f2c2836..bd568bdd871 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -110,6 +110,14 @@ static void print_reg(FILE *f, CPUHexagonState *env, i= nt regnum) hexagon_regnames[regnum], value); } =20 +#ifndef CONFIG_USER_ONLY +static void print_t_sreg(FILE *f, const CPUHexagonState *env, int regnum) +{ + qemu_fprintf(f, " %s =3D 0x" TARGET_FMT_lx "\n", + hexagon_sregnames[regnum], env->t_sreg[regnum]); +} +#endif + static void print_vreg(FILE *f, CPUHexagonState *env, int regnum, bool skip_if_zero) { @@ -209,8 +217,7 @@ static void hexagon_dump(CPUHexagonState *env, FILE *f,= int flags) qemu_fprintf(f, " cs0 =3D 0x00000000\n"); qemu_fprintf(f, " cs1 =3D 0x00000000\n"); #else - print_reg(f, env, HEX_REG_CAUSE); - print_reg(f, env, HEX_REG_BADVA); + print_t_sreg(f, env, HEX_SREG_BADVA); print_reg(f, env, HEX_REG_CS0); print_reg(f, env, HEX_REG_CS1); #endif --=20 2.34.1 From nobody Sun Jul 26 12:31:36 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=1781910094; cv=none; d=zohomail.com; s=zohoarc; b=L/q8EavLH/XeT3y8FGEvmNcXXcHpw52A8eYcPr7mpIG15NRUo2mBxd+vqZNftISQHLqT21hTAn+qHqGvNUxXCCCL/cJtP6xA5+h5fcr2PRRdOKVYXkR3NdlhSH4GERtZ8AqyYs4NPFdA/nzXZavlQjnStFF7m/dVRZ3/8AapbY4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910094; 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=akHFVisJDbmBFFMLQN2z4af12XW5M1jZKu+CQ2LFdG0=; b=B8HnRSr9Hb3SPuVK7VkHnnvUo5t6DBaTxWc5/nmB01P3qd+GdueBR8dr3PScC3rjJ3T2vi8lAQyQuumAiVvo1XIVNL1RS82UM+0re2TrDDG10Df9wdpoG0PptrJK1Tu0nsSpn/LG/sFvFR8059D0QxoNQ3xpcQAB/qKniGy0rr8= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781910094675155.33686305010497; Fri, 19 Jun 2026 16:01:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiBJ-0001a3-Vd; Fri, 19 Jun 2026 18:59:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBI-0001Zd-MF for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:24 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBH-0001UW-2t for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:24 -0400 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLXdvq1251243 for ; Fri, 19 Jun 2026 22:59:21 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ewbgp8n24-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 22:59:21 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30bcbb34e57so4147745eec.1 for ; Fri, 19 Jun 2026 15:59:21 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.15.59.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 15:59:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= akHFVisJDbmBFFMLQN2z4af12XW5M1jZKu+CQ2LFdG0=; b=SbyjIlvf1QTguikk NnicwKhQsfFFwEJvv7pjkx6F0fsCvFwn42kQxbC+Zh0hp1ERMYEisANq2wcNp2p9 mDEHvDQdwPUhwNm2/TO6gChqTFHC7VIPJBlcW9jT0aWF5IICGP18Npp7VM5h1RNQ HkwFaWVDTh0gJ52Zlegm6U1wmoxWaZWDjhsD26V6V7I04w4agHG49joXmZIPL16P zc45+dr7IoveodKbx1Q2hWJW0sUuO0gAh+HqLEzGcFUZdIGSkJOoUvtqRk+51Ihs ez5A0on+gC1TQqTEEddl+iAWSzUWQdwEdhw/XxpMe6A4kIOnQK6k1lAnjhddDv3O cwlcNA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781909961; x=1782514761; 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=akHFVisJDbmBFFMLQN2z4af12XW5M1jZKu+CQ2LFdG0=; b=B2NtCQNG8K5tSpmg2A73nZaaJx9fibphdf1sVVptMED2X0k3a0njUKPkK+LcckA/+R cX1ZOMQE9+iGWf2vhzLye6DFON2qAVTOgDsg78GykgSpHmfm71jY65Hfd9jN0mLQgOwx vUBfVqzMYuplxT0dHG0HNlo5GVxU6hDZKBPSvUxtS1DnCSCCXqP+MtAnTKKmIWJgHTrG seQjfGzLRqXKrF00PXwtGR9OtSQKYaMqlb43h3FVVkddo4HNIoxAGLrb4qsjVgr0ygFh /gENIpvuBKBf+mRIphMS6rKpX4gBoVp0+Q+ESLG8xfrbfOTIUuF3wuTa8s67KLk5vxH9 LVvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781909961; x=1782514761; 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=akHFVisJDbmBFFMLQN2z4af12XW5M1jZKu+CQ2LFdG0=; b=snH5kTb8NnA7WujfgyQu/QE/uAuLOffm1+CU0duW70BNZBH43LvGtjFQZsnhS/FBpq aQH0NtgQ8ZMeMEbGrqFZmKX8oyWOJyUx7YdU7q7kZ8bzovSmTMgumIVNPp+zzh7V22e0 FvbaLJlYHJiO3w5HtUEKmNATb0YNaCQCnb7liZXdukBiYAci2LhTQh+uTud4zica4J7A nHwV+hAYW4lNvHJJB+PF72kVyKpxvr+1EI9V9rCpIPLy5UXb6tKCAYhlLdoBvVzSp7/R gmqxV0JRv1aYsjIEervWX18ZFCFo1NRpxzUPdG7UgIpT5AAJlndi/kOaG5itpjDQ8Jct WCiA== X-Gm-Message-State: AOJu0YyOcI+CJYopULW12Dl0g6dY/fWGtz6XFwkQWrdnFe8HlWjiY+gG Qse3wBfRbNJV1/ekpHHwSS5H8Z4gDG3zps8Q0rXEP066SW/riX86R8lLBCQsI1lp8ToA0E7oqlC 5UfyCffUcMWTx2wwURx3I+vlM4nKS3eD6anp4hjNhmHj1T15WRT2mGcF1eaz8aNz1fQ== X-Gm-Gg: AfdE7ck8dGKtqEJ56cV9jKCIxnMperCpthCdqc4vceGz/+fpZM0TD9PlJoAa+TRvZl5 uRCG82Y+qT27IhyRteh+2yXfoyL58uBYtskcHkpvrz3dSFDaT923MKXRpv8tSI/FYJzIiJKhric /pjysoxXpehuX/yPQalGWLcj9eY0P3XhnwO20BwdMRBweHC+KqrNvW8Xxi94ntAKsgnIarf4XHt tAqotIv5IEdIesEO/jLbaz51QpZubokWb2AcKZM4zbTllqyExlZwG9fZBzeChXGgtrSG6RF6WMd AAVJ3BTtJo+g0rh42KQPMwctNfBcAJswGl4KdfW0bfcAWzjSkKa3/9QlsGeiCBtE/LjnSTPS5py fihmda9i+HkPn+T7iN9icrKcalLT2S1jv1BJTNiR6bpxIgdVbiJZSQWK7aT4= X-Received: by 2002:a05:7300:6c9f:b0:2ea:c085:44b1 with SMTP id 5a478bee46e88-30c071533c3mr3332556eec.19.1781909960723; Fri, 19 Jun 2026 15:59:20 -0700 (PDT) X-Received: by 2002:a05:7300:6c9f:b0:2ea:c085:44b1 with SMTP id 5a478bee46e88-30c071533c3mr3332542eec.19.1781909960234; Fri, 19 Jun 2026 15:59:20 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 04/74] target/hexagon: Add missing A_CALL attr, hintjumpr to multi_cof Date: Fri, 19 Jun 2026 15:58:01 -0700 Message-Id: <20260619225911.159473-5-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: 6c-ehlLKEEhz-fEho7I8p_V9OyKBCILC X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyMCBTYWx0ZWRfX9WMSpihXdYXK H7GPxeb2aauZlb1ZfUz22P9er7fB9oKNEdvkPPZA7aRgQILiYljRUEtos8qdGxF3p82UM4Crukr 6jWXhnktd1DhCYM67iFVFBiFOEsPlRhzHfczVcAvL37CX9CWe0+gjlF/TZ9loIQ+6s9tC0BbweG rnoU7cyHjywKf8CUlODIAisgQwchaswVSj5+qR+5YjPvmLSJAywbFTGrkIThp6I4kxXRsfAjKhA 5Qi2sA0KAegXq3v5gCzctHfttWjEAfIu8ZuhNugSTfZofg+2AxoVvLfQBQed+An0gecmrn7nMQu s/nrnhXsDtk1adSnRDfsJFwsv3E6kUuN3kFjUCQvtQ68S3/R1sa8WH8FfRH1vt8rR9L6LfpHbxi moDby7i5KbEKitLGmazenZbR3cpeF2rYyeEPU63rw6VmRptlbSwu+n7bNiUkMcLPNn5rHYnfsih MCumx7KsBauGBIM/EOg== X-Proofpoint-GUID: 6c-ehlLKEEhz-fEho7I8p_V9OyKBCILC X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMCBTYWx0ZWRfX/tFg1WpZfjSj 9epEVgDgp4TC01xV9xeO4i42NCvfMeP2kLPGsJRM5c5H4/MGNbkyC/tuc/EvvSkipuFwS0084Lm 3Tk8/1beBzuBB6rrqzd/MFlVn2WGVtk= X-Authority-Analysis: v=2.4 cv=d8vFDxjE c=1 sm=1 tr=0 ts=6a35c9c9 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=pGLkceISAAAA:8 a=ZLKCIdW5I75hk_SXmpcA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 priorityscore=1501 malwarescore=0 spamscore=0 phishscore=0 impostorscore=0 suspectscore=0 clxscore=1015 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190220 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910095620158500 From: Brian Cain Signed-off-by: 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 e37d5a514f0..280aef0df3f 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -247,7 +247,9 @@ def need_next_PC(tag): =20 =20 def need_pkt_has_multi_cof(tag): - return "A_COF" in attribdict[tag] + if attribdict[tag] & {"A_JUMP", "A_CALL"}: + return tag !=3D "J4_hintjumpr" + return False =20 =20 def need_pkt_need_commit(tag): --=20 2.34.1 From nobody Sun Jul 26 12:31:36 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=1781910106; cv=none; d=zohomail.com; s=zohoarc; b=jMkZx3KLhPmHLccAbs/3BUWRJQO02pnQDxAI0PrMuoSI+wu2Aikx5P53ID1xHu5P3bj/69+4IWExuUlge5SDBl0+W4bidngKQC+8eE2VWhkNUTpJ3H0h7pBLTrY27i2Jgn+BuzI26hcGtozz+OCvp8F4Z61ZCiXSJ59DlDJweVs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910106; 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=3PJq1TG0I8TU78Tf0jGrc0eZLiVvKT6OxHA758wVFTs=; b=GvpmamWnH1tTRY7CQLQ7yb/U7zVBcEFvyT/pjpYuyd1Iv0hG4qFSwfX+g6Ds7ZmvunJ9Wz5ApowhmcZyk8DO/skcNtYh73iWRI51AVyFErJSBiS3WSonEbTgzf1SjmCWroIwmk5CI3sHljFjpEbxz2gX7YAzSkpPzR1VONXdRao= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781910106124557.5533768004366; Fri, 19 Jun 2026 16:01:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiBL-0001ag-Ha; Fri, 19 Jun 2026 18:59:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBK-0001a4-6i for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:26 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBI-0001Uy-8e for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:25 -0400 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLXdvr1251243 for ; Fri, 19 Jun 2026 22:59:23 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ewbgp8n25-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 22:59:22 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c03c1dda3so2094381eec.1 for ; Fri, 19 Jun 2026 15:59:22 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.15.59.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 15:59:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 3PJq1TG0I8TU78Tf0jGrc0eZLiVvKT6OxHA758wVFTs=; b=boRzvrdDYbUPaeta esyZNO8Kkd+dfzk77m6bD5qhf04eTdOyWzi0AFZLM5SvvuhjESGPwjP9B+J+d9Tc VLuNSgbQDJ1I6/Ktc7R9+DLd785MvxLTUx9cer1xRiGKxHVb2xZmlw53IsrhX2vC 9yVD3bLc0aoQJVU5RKdmUpx+QGIZcuBNU2gFhzN6b6er/j+QiH0+9dHuh3fxyrYy FZuIyrIRErP9v2sig8iLqxBrfoSPdYB2HmYFtalMIjYiAhl8pSiVc+3j0K08axvV DLqQ4CQSoTPijYDau+2u4av+3rlxJLYbXO2ZOvXhdOzKfNUrz5HbTnP5jl7ecZ9A khrFLw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781909962; x=1782514762; 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=3PJq1TG0I8TU78Tf0jGrc0eZLiVvKT6OxHA758wVFTs=; b=NK4BF30wQzIU91Bix7a0KjYbyKEXQJePtcv0qt1nhPlM2B0rRc70+bVkDDajP+0cO+ u9prR1ondga0CJ+R5o4JD/asGy1stXBvptSorC88L9NKbpd0CxOgXe9QeTOZxHnSN1oW T+laLFRyZ0TQrYcD/aE/nIC705G/ol61NP+ZYfRccw1DwD0WIEf5r0AN1xQytDVU78e9 2qFSUTOg8XCDzmrPO/1lErDIWjAmaqvnC2TJdJ1yxjCIndj+F3vUIqBej5INy8GUaP5C VfaukIALJ1u5T/gRZTJWMKYnUsWLWAUbNMWls2+gDWFJgTPF+WLaVd1bhOv8olBLHYZl KWVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781909962; x=1782514762; 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=3PJq1TG0I8TU78Tf0jGrc0eZLiVvKT6OxHA758wVFTs=; b=atnY6aVwNjhFxWDg4SyuwjM+1m2rfX81liHioQTjjs/Ike+497XDNHS1JhN6ktGgAn /HbkNV8PIeThSHjwY/3ifRI58HsCV0RC6KKCc0G72HZP3DuQwX2ACf6QoF5j3z1NPRpz cJuXXbsbgWfAQqrthu+nMKncN2vFyxT58VrypUK7rYD2xzBKMiPGyU/uTieLOu7YktVD WvoZGJWPyz0CwXU6qTotq4rGxG+t3Dt0OpuI0OCN77e6le+qwPkGmbcQJtXdhzGrdOcM k3WkVUArQJLpjnaDpJwEzF6ticxDKYJNtmqkBThLYqnSCy7I3OV4esavbJJxwhCLGLmn XHZw== X-Gm-Message-State: AOJu0YwCswVWT7aAy49l+Ny1UkzeJkqZz22mi1IZNUSoMb9OSpqc16Xh knyYRgyN5f5Fl88X1G9wrir6eRm7g8giYSa04tNP1CYkLYgKizUIioIrk5oKyZMzMPU15rG5Aqn deIsMC6sndHcXeH6SJ/ULoP6bRBGLgC+c9AfCMgYSU+pEpy9IIChxXN326hjKNdDBXw== X-Gm-Gg: AfdE7clrJ2qthHfTMflmRYcMC97/NZeCSBumtZ2Jdyz24iXum9QsJ1110bRTAILvZbp 0WmBOI6zSKgftIJUCnFnfM7VZLIyYUnsAX+BBqfzM5p8jBrGHBSESwzxTsT5Yhl3PVpgzsiwDXp 8Ppf/M4u2LA6Z2MRpPMz2o6st5N0R83+LcnqaDNKQnBD7n82zaLgM/u2GFUJ71TIGpAvpDuv86z ajszC+90sHFw6Z9JbwkpSKM53Ba9tVxqiaPuab9YEDvJU8Rz3WNPspMKcTNrFR6rJ8fOalDKxVN qdb5U0nLLnh2ZavdS6r2QxtOxmoVIOb5B1lVtEoQE4Gv03Kiu8JxgaIlO2SBHm7QbwluJ9/mbPZ W96MH5UX6lEN6MELMZ0wo48mSGiib8beiwAiPh8Q1nVULPjPNFwdVgqc4zXo= X-Received: by 2002:a05:7300:ed0e:b0:30b:dd58:e134 with SMTP id 5a478bee46e88-30c1dbd387cmr704242eec.21.1781909962185; Fri, 19 Jun 2026 15:59:22 -0700 (PDT) X-Received: by 2002:a05:7300:ed0e:b0:30b:dd58:e134 with SMTP id 5a478bee46e88-30c1dbd387cmr704225eec.21.1781909961688; Fri, 19 Jun 2026 15:59:21 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 05/74] target/hexagon: Handle system/guest registers in gen_analyze_funcs.py and hex_common.py Date: Fri, 19 Jun 2026 15:58:02 -0700 Message-Id: <20260619225911.159473-6-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: 9IKX0u0C8OksnIyO3rfOBh0l-STaog_q X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyMCBTYWx0ZWRfX2MH5/d46vz5w x0TP6bosXNpcuWBZ/Tya2ayFSRbey2pVUx+JXSJ10T/UI6pA1O9p1Zx0oqBmTjJuljri2daakPC 53AtQs24h5fRWQTxB+FnEu2qtShpIOIOaqGmbUwkkF6t0X4FUIY4saryEo7vdzD5Oz9LtA0brhz TifRdJrML/EkuxNdQTt9FWuH6ltWT9ID6C0xsTPsORoIG/NyMZTKFnU+SynkDfDCW7ivHWiWuWe A76iZigMOOgVJYr2heV2/fbfZNGkFCc3d8E1ypFm+veIJUPYvEGd6j/MV/PtuQbCSdZWPGO8/uw 2vgwryAvStkjhxjrI4JUmvOK/DFBliUmyL+Kq1pkxc2RGmjrzS4y2O6daAg7sEhOlF+4tfR/KeW 5Bbs/w4MEu3pqWxX8L1CXvl7Ky4WM3+bZMHvXtJvdW5KH7VvEe3slbQXWgu2MwE0QT3895ZTohN /QeJCl198/F5xUfmKbA== X-Proofpoint-GUID: 9IKX0u0C8OksnIyO3rfOBh0l-STaog_q X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMCBTYWx0ZWRfXzzsHiDe/4BBV KWEpq947QSDF96q1RzbNhh13z3+E3RlziBmP7a3YQ5lDtZHFp1+g81aQ8D3eNeLApN6t6KHi9QP VXigMsqtZHOK5qv0TTbR9IGoqE7sx/Y= X-Authority-Analysis: v=2.4 cv=d8vFDxjE c=1 sm=1 tr=0 ts=6a35c9ca cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA: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=-IRm0M9p1sl727KxlF4A:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 priorityscore=1501 malwarescore=0 spamscore=0 phishscore=0 impostorscore=0 suspectscore=0 clxscore=1015 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190220 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910107749158500 From: Brian Cain Add register classes for guest (G) and system (S) registers to hex_common.py, and update gen_analyze_funcs.py to handle them. Guest and system registers can only appear once per packet (one transfer instruction each), so there is no read-after-write hazard to detect during the analyze phase. Source classes (GuestSource, GuestPairSource, SystemSource, SystemPairSource) provide a no-op analyze_read() since these register reads do not need tracking. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/gen_analyze_funcs.py | 14 ++- target/hexagon/hex_common.py | 152 ++++++++++++++++++++++++++++ 2 files changed, 164 insertions(+), 2 deletions(-) diff --git a/target/hexagon/gen_analyze_funcs.py b/target/hexagon/gen_analy= ze_funcs.py index fdefd5b4b36..44bb22ed927 100755 --- a/target/hexagon/gen_analyze_funcs.py +++ b/target/hexagon/gen_analyze_funcs.py @@ -22,7 +22,6 @@ import string import hex_common =20 - ## ## Generate the code to analyze the instruction ## For A2_add: Rd32=3Dadd(Rs32,Rt32), { RdV=3DRsV+RtV;} @@ -42,6 +41,13 @@ def gen_analyze_func(f, tag, regs, imms): f.write(f"static void analyze_{tag}(DisasContext *ctx)\n") f.write("{\n") =20 + if hex_common.tag_ignore(tag): + f.write("}\n\n") + return + + if hex_common.is_sysemu_tag(tag): + f.write("#ifndef CONFIG_USER_ONLY\n") + f.write(" Insn *insn G_GNUC_UNUSED =3D ctx->insn;\n") if (hex_common.is_hvx_insn(tag)): if hex_common.has_hvx_helper(tag): @@ -58,7 +64,8 @@ def gen_analyze_func(f, tag, regs, imms): for regno, register in enumerate(regs): reg_type, reg_id =3D register reg =3D hex_common.get_register(tag, reg_type, reg_id) - reg.decl_reg_num(f, regno) + if reg.is_read() or reg.is_written(): + reg.decl_reg_num(f, regno) =20 ## Analyze the register reads for regno, register in enumerate(regs): @@ -78,6 +85,9 @@ def gen_analyze_func(f, tag, regs, imms): =20 f.write(" mark_implicit_writes(ctx);\n") =20 + if hex_common.is_sysemu_tag(tag): + f.write("#endif /* !CONFIG_USER_ONLY */\n") + f.write("}\n\n") =20 =20 diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py index 280aef0df3f..79436ee29d7 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -33,6 +33,41 @@ overrides =3D {} # tags with helper overrides idef_parser_enabled =3D {} # tags enabled for idef-parser =20 + +def is_sysemu_tag(tag): + return bool(attribdict[tag] & {"A_PRIV", "A_GUEST"}) + + +def tag_ignore(tag): + tag_skips =3D ( + "Y6_diag", + "Y6_diag0", + "Y6_diag1", + ) + attr_skips =3D { + "A_FAKEINSN", + "A_MAPPING", + "A_CONDMAPPING", + } + return tag in tag_skips or attribdict[tag] & attr_skips + + +def get_sys_tags(): + return sorted( + tag for tag in frozenset(tags) if is_sysemu_tag(tag) + ) + + +def get_user_tags(): + return sorted( + tag for tag in frozenset(tags) if not is_sysemu_tag(tag) + ) + + +def get_all_tags(): + return get_user_tags() + get_sys_tags() + + # We should do this as a hash for performance, # but to keep order let's keep it as a list. def uniquify(seq): @@ -369,12 +404,16 @@ def helper_proto_type(self): return "s32" def helper_arg_type(self): return "int32_t" + def is_pair(self): + return False =20 class Pair(Scalar): def helper_proto_type(self): return "s64" def helper_arg_type(self): return "int64_t" + def is_pair(self): + return True =20 class Hvx: def is_scalar_reg(self): @@ -1010,6 +1049,109 @@ def analyze_write(self, f, tag, regno): ctx_log_qreg_write(ctx, {self.reg_num}, insn_has_hvx_helper); """)) =20 +class GuestRegister(Register): + pass + +class GuestDest(GuestRegister, Single, Dest): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno) + f.write(code_fmt(f"""\ + TCGv_i32 {self.reg_tcg()} =3D tcg_temp_new_i32(); + """)) + def gen_write(self, f, tag): + f.write(code_fmt(f"""\ + gen_log_greg_write(ctx, {self.reg_num}, {self.reg_tcg()}); + """)) + def analyze_write(self, f, tag, regno): + f.write(code_fmt(f"""\ + ctx_log_greg_write(ctx, {self.reg_num}); + """)) + +class GuestSource(GuestRegister, Single, OldSource): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno) + f.write(code_fmt(f"""\ + TCGv_i32 {self.reg_tcg()} =3D tcg_temp_new_i32(); + gen_read_greg({self.reg_tcg()}, {self.reg_num}); + """)) + def analyze_read(self, f, regno): + pass + +class GuestPairDest(GuestRegister, Pair, Dest): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno) + f.write(code_fmt(f"""\ + TCGv_i64 {self.reg_tcg()} =3D tcg_temp_new_i64(); + """)) + def gen_write(self, f, tag): + f.write(code_fmt(f"""\ + gen_log_greg_write_pair(ctx, {self.reg_num}, {self.reg_tcg()}); + """)) + def analyze_write(self, f, tag, regno): + f.write(code_fmt(f"""\ + ctx_log_greg_write_pair(ctx, {self.reg_num}); + """)) + +class GuestPairSource(GuestRegister, Pair, OldSource): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno) + f.write(code_fmt(f"""\ + TCGv_i64 {self.reg_tcg()} =3D tcg_temp_new_i64(); + gen_read_greg_pair({self.reg_tcg()}, {self.reg_num}); + """)) + def analyze_read(self, f, regno): + pass + +class SystemDest(Register, Single, Dest): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno) + f.write(code_fmt(f"""\ + TCGv_i32 {self.reg_tcg()} =3D tcg_temp_new_i32(); + """)) + def gen_write(self, f, tag): + f.write(code_fmt(f"""\ + gen_log_sreg_write(ctx, {self.reg_num}, {self.reg_tcg()}); + """)) + def analyze_write(self, f, tag, regno): + f.write(code_fmt(f"""\ + ctx_log_sreg_write(ctx, {self.reg_num}); + """)) + +class SystemSource(Register, Single, OldSource): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno) + f.write(code_fmt(f"""\ + TCGv_i32 {self.reg_tcg()} =3D tcg_temp_new_i32(); + gen_read_sreg({self.reg_tcg()}, {self.reg_num}); + """)) + def analyze_read(self, f, regno): + pass + +class SystemPairDest(Register, Pair, Dest): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno) + f.write(code_fmt(f"""\ + TCGv_i64 {self.reg_tcg()} =3D tcg_temp_new_i64(); + """)) + def gen_write(self, f, tag): + f.write(code_fmt(f"""\ + gen_log_sreg_write_pair(ctx, {self.reg_num}, {self.reg_tcg()}); + """)) + def analyze_write(self, f, tag, regno): + f.write(code_fmt(f"""\ + ctx_log_sreg_write_pair(ctx, {self.reg_num}); + """)) + +class SystemPairSource(Register, Pair, OldSource): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno) + f.write(code_fmt(f"""\ + TCGv_i64 {self.reg_tcg()} =3D tcg_temp_new_i64(); + gen_read_sreg_pair({self.reg_tcg()}, {self.reg_num}); + """)) + def analyze_read(self, f, regno): + pass + def init_registers(): regs =3D { GprDest("R", "d"), @@ -1056,6 +1198,16 @@ def init_registers(): QRegSource("Q", "u"), QRegSource("Q", "v"), QRegReadWrite("Q", "x"), + + # system regs + GuestDest("G", "d"), + GuestSource("G", "s"), + GuestPairDest("G", "dd"), + GuestPairSource("G", "ss"), + SystemDest("S", "d"), + SystemSource("S", "s"), + SystemPairDest("S", "dd"), + SystemPairSource("S", "ss"), } for reg in regs: registers[f"{reg.regtype}{reg.regid}"] =3D reg --=20 2.34.1 From nobody Sun Jul 26 12:31:36 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=1781910168; cv=none; d=zohomail.com; s=zohoarc; b=jFf2/K4V2b3kvGON5cSteghhE9Ph0Y7rZmFqUc8wuq9pi5yDzC5rlf4Xnd9T0/t8fZBNp0cQFG/LEN7BliTV6Uw7lYEjWN9vW41yJ3LEHvn+wkBHixB1Cn38SGuGCKcsu+dV8ihgWir13L0XysQFwyjQXq3JW3Qajw53KPPz5L0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910168; 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=lcxOkFKNgQXZO0voxWGA9hyffwnAo/o2WwcbX7ewzeA=; b=jdF7wGsfACviriNqjWKsK64oMiYDVNf+oYO5lYTKM3mtyl8IjQY6MX+W1CrZqDOnTuOJEYDaRoGZwsLtSUbxT3l7EuMJ5DiJXs9sVtAsx+yAuMuVMfl39bm1aAUpt4T6uX6SNpyi5W3CmU6ie1UROjw/UM28ysw18LflZ7MBXXg= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781910168702400.78890352569795; Fri, 19 Jun 2026 16:02:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiBN-0001bJ-0V; Fri, 19 Jun 2026 18:59:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBL-0001aX-06 for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:27 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBJ-0001VP-AO for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:26 -0400 Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLYi3D2934914 for ; Fri, 19 Jun 2026 22:59:24 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ew5qsa2v5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 22:59:23 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c1f6c5559so530227eec.0 for ; Fri, 19 Jun 2026 15:59:23 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.15.59.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 15:59:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= lcxOkFKNgQXZO0voxWGA9hyffwnAo/o2WwcbX7ewzeA=; b=NxRhyO5G8+07tuRN Kcxwxw4trvNw1LtLi3iwoAC/PV4D37DYrZTdERMyt6NdLtQKutoZyQPsCfx+TqBV ZX13R2O6Palcq4vVz4Uvhp8qI9sCP3lIGqR1ThNMhpkllkpa1OWt4k3T7hjvoYK6 1EF7FXxJxWu9IIh4kK/vdEhq60Jod3a8GrHztjU9cHc77SKA3WxDrdzmqay3nPOi g7t98noqWZWtM6ZGCkOWM1ivM65NNsnFwJLIrRJCWbv80M8iubUgFwSEFRtatFXw cMGW+yw+qLgq4KjKy0UWCymQa2Ud4h9LcVF0uo/q8zKw6bQbk13ApX5SU3RMarLW y3QgaA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781909963; x=1782514763; 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=lcxOkFKNgQXZO0voxWGA9hyffwnAo/o2WwcbX7ewzeA=; b=BBhxgKRzHQ9Zv1V/SRWmXJy0bE/lgmdl8OEfLWLVo9VYY8h+USXA6ZlMRJhbiv9AEk jr4KYvf4YbnOPX1mBM67L/ISB29kDwtMy8/j+Y48mlYE9GxzdsO3zYClUC30JYF2UOYE 5qYohbZE6PqIn3tZIYaOmLOOzc5YnMse1NgifKbiq94tb4OpwECnWxD6JII2geVAHiwd O8+Frxq5uMF5zCgNRrDILVHia2WN204ivhuOEQhj1C+vHEAgm2sH1vmzkLcJUKoStqRy 5lb3fFXZ4kBaSb1WySlTBv0WjSS2unj6fdxHllyJ9X6pjCE7zfQHkJJfBZGmfaH6oPcs Ufhg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781909963; x=1782514763; 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=lcxOkFKNgQXZO0voxWGA9hyffwnAo/o2WwcbX7ewzeA=; b=cGLKedYzuSD0gVO6mHrwbFMy33jdesdvCiQkRf7r2FhiLeHDiMk4UWKOiBMh5OJxv2 1LGIWGAUtt0d7Ro6Y4+xE1/H57vhiTX7ZpngbGBZey0Qsmied06wukbyHT42TATUEumT xC4isJGehH4Cq8ihSa4YImpV2bTfTeX9w8kTQXX0ZbzrbMFkq/kUvm2H6z+tTre9TZW2 XVRjdS1tETlegFiVC/wUWdS8guy+91iT4yYzpjjV7G+6cYV7fM6QBvAL7Ppi4Yb8y0cQ ExWg/6ozH7hb4FQTxHNq/i29HyXECWfbkt8R83OT9oQJNfTPHVV36FBAyqWk9UeVb8Sx IGyA== X-Gm-Message-State: AOJu0YydKSxIRXFSknX3mjCZgRuIoqBnUPxmYxdMCoHA/DGhRUnXaMHt 611hxk4ERFQAmx3SUPm1eSNH/0MNJqMxThymtfE65BG4EC9nAHgUpkPYkjdET6GIZMV2cgntzUT bxixsfmZCmdCbKX6+NrYfGirmn2kkRK2FbCkNNcToWwCDdbsorM0QQYA5wsnmCUZj0g== X-Gm-Gg: AfdE7cnLlUi4M/Gvq6GC9YA4sp1Wy2DOUyh89+EVdLImX8ysSvlIhvkUWYDn3RI4nKH LIObH+ArTgdYnS0yOU5yB5bjMYB4yD323JYSvqZDpr4h6MYVQnRcpcA9g95QpUdfMvm6N5gUEAg eTmXqJuIuNcm+AkRgIsYFZ4IWRsW8/zsIlkUK1pME9m2STMU3Z+WoGr3QNeEhG+jbKA+2v7VUvR nzx75agShGuKxphO0TY3Rxsde6neJvli5nHduISHWZ3RdAbAeYClw4DddpPcMmqfDAffczfXOJM DUXlHdPhAGRqh6+soP+d3FJgn5ktlfeMDwJqRHgxJ00kCaGFwyUEx0uczl6N1rVTtTXouJ9NLys kGiAW05jWPevNmz7jgQZmITAbDXIUVbFhYBsX4OtlUhTDzAYasIhptm0LARg= X-Received: by 2002:a05:7300:1905:b0:30b:f4e3:a2b0 with SMTP id 5a478bee46e88-30c07156f4amr3411311eec.21.1781909963325; Fri, 19 Jun 2026 15:59:23 -0700 (PDT) X-Received: by 2002:a05:7300:1905:b0:30b:f4e3:a2b0 with SMTP id 5a478bee46e88-30c07156f4amr3411295eec.21.1781909962805; Fri, 19 Jun 2026 15:59:22 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Taylor Simpson , Pierrick Bouvier Subject: [PULL 06/74] target/hexagon: Suppress unused-variable warnings for sysemu source regs Date: Fri, 19 Jun 2026 15:58:03 -0700 Message-Id: <20260619225911.159473-7-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX97FvwIy3Mrek taG8g26VxlZH/EFINKu5CTojJV7dR4+lnU0r6vUogOGKWStLLnqof4FwVGkXnH+8m/eGubMlUcW enQll1Lkjha7JxmznQ+2Jxb7GYPn4fdkZvFeYtOT4fH3yQAplIR7ZWVmRMXNeszTDwBnzZ9VRcv DhVTcKFDaBRxREwy+UZW2+7hwAnO2OZxMZpY1KSFJHZKQocUe9vChi/mp130Lzy6ovnzvOXDjCc D09HKmGgWKZ8xkKnzjZkF0cqzqffnVBCjNaq2JVoUxDNZZZHhj8bFy8hubo+CCAJopSdfkizZnM sB/vf4budIHWaC1es4wuTImpFq5Nu0Hk6LzawRKIrgZsUwAreO7roXu2kFLTSLmryvC1Rj67vuh X7YLeIXSbz4Lxc2O1VLxjo4T1vIw0Nt1/nVVOxAKsiwGtM4ErK3FwTh/0AqRHv4JoJpVyISBN5E OMZJyRpaY+o8OC35ZmA== X-Authority-Analysis: v=2.4 cv=M9R97Sws c=1 sm=1 tr=0 ts=6a35c9cb cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=dvhcR3axvtdXbCCTPW8A:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 X-Proofpoint-ORIG-GUID: TsNaOJtf8pIuBcizOTPszIcD1ye1e1bk X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfXyD2PxEM2tFpo UYhpTPrtqPlFlfi4oS+G5G0oX726eHT+06K2IQpv6YqNExWieKGGwJaO6EZBVqlhR4+ux3jrHwp +3znkNw2qrqUpOvuqgwGbGJVtPDnUbU= X-Proofpoint-GUID: TsNaOJtf8pIuBcizOTPszIcD1ye1e1bk X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 malwarescore=0 bulkscore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190221 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910169942158500 The analyze_read() methods on GuestSource, GuestPairSource, SystemSource, and SystemPairSource were no-ops because these source registers do not need read-tracking in the analyze phase. However, gen_analyze_funcs.py unconditionally declares the register-number variable (e.g. GsN) via decl_reg_num() for all registers that are read or written. When building with hexagon-softmmu, the generated analyze function bodies are compiled (outside the #ifndef CONFIG_USER_ONLY guard), and the declared-but-unreferenced register-number variable triggers -Werror=3Dunused-variable under both gcc and clang. Override decl_reg_num() in each class to declare the register number with G_GNUC_UNUSED, suppressing the warning. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/hex_common.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py index 79436ee29d7..df8d3ba6586 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -1068,6 +1068,10 @@ def analyze_write(self, f, tag, regno): """)) =20 class GuestSource(GuestRegister, Single, OldSource): + def decl_reg_num(self, f, regno): + f.write(code_fmt(f"""\ + const int {self.reg_num} G_GNUC_UNUSED =3D insn->regno[{regno}= ]; + """)) def decl_tcg(self, f, tag, regno): self.decl_reg_num(f, regno) f.write(code_fmt(f"""\ @@ -1093,6 +1097,10 @@ def analyze_write(self, f, tag, regno): """)) =20 class GuestPairSource(GuestRegister, Pair, OldSource): + def decl_reg_num(self, f, regno): + f.write(code_fmt(f"""\ + const int {self.reg_num} G_GNUC_UNUSED =3D insn->regno[{regno}= ]; + """)) def decl_tcg(self, f, tag, regno): self.decl_reg_num(f, regno) f.write(code_fmt(f"""\ @@ -1118,6 +1126,10 @@ def analyze_write(self, f, tag, regno): """)) =20 class SystemSource(Register, Single, OldSource): + def decl_reg_num(self, f, regno): + f.write(code_fmt(f"""\ + const int {self.reg_num} G_GNUC_UNUSED =3D insn->regno[{regno}= ]; + """)) def decl_tcg(self, f, tag, regno): self.decl_reg_num(f, regno) f.write(code_fmt(f"""\ @@ -1143,6 +1155,10 @@ def analyze_write(self, f, tag, regno): """)) =20 class SystemPairSource(Register, Pair, OldSource): + def decl_reg_num(self, f, regno): + f.write(code_fmt(f"""\ + const int {self.reg_num} G_GNUC_UNUSED =3D insn->regno[{regno}= ]; + """)) def decl_tcg(self, f, tag, regno): self.decl_reg_num(f, regno) f.write(code_fmt(f"""\ --=20 2.34.1 From nobody Sun Jul 26 12:31:36 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=1781910129; cv=none; d=zohomail.com; s=zohoarc; b=KfaVHf8XiNelFpdl+Wq0kdyfNLfspYwNAeB3rtERi8CwbN3KiGK90gjCMa4Z5yg/+c8bxAYbd5tQOM1MzMFl6a6BlFTYhKCt78SbDJYQEo6XD17yz1lJO3jy0uqeNXO6QD5PunX5zvjwJ8393PEX0vuTPKxtqZzqvm0NE7ePQ9k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910129; 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=MvTpA6L11eFRnorpEDVsd4RbvgUTEeBhboD0ssCuGZdJ2Y1D6Ju+zryJtxBGzwm5mPy7lF/PGuLnot8k+LlSSXERGdcqiwh46MKfGXrsuVbBYr937hBe16q4gXV/4vPd9C39JwKhZ67A9vOwWYU1W+h+3NQPJJworCBFHahhnxs= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781910129310549.0160017914097; Fri, 19 Jun 2026 16:02:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiBO-0001bh-J6; Fri, 19 Jun 2026 18:59:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBM-0001bH-TT for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:28 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBK-0001W6-Tj for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:28 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLXg4D1285925 for ; Fri, 19 Jun 2026 22:59:25 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evy72k80x-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 22:59:25 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30bfe262ef0so1134344eec.1 for ; Fri, 19 Jun 2026 15:59:25 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.15.59.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 15:59:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= +b8voobbRHB+fEzV3OFcGYw0x0PvxvjT9mR8Wf/yF+Q=; b=hC7v3DBfsoaw1Awa Nf7gV8y+vJu6RcCFkjhm87VrQRzmtn+ZAJmYrFlZFgkBKOghiT99zYG8ys9MB2Cn fi6g5X1SCqcUyLJ5jc30QxDzWJApMdj2omXlfA3NZLHMpttMwTKQkiYxCrnH8bao WM9Fck81PaK67Ro7dTztq42NnDGHTbK/pbG3q1WN5V7+35or69jU4PZ82QQ8n27f vaKuvRejl2z/FLgV3WvdH64kSB1HA9f3eiFk/u44xQ+UgJN+P1is5QQhRpQIuuvK JJbxX/2fOdGvyM5vVcw0khsvpsndtEsL5Og+69NCIV2Ux7A0q3nAUgqXUpSd88jL koY5yA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781909965; x=1782514765; 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=HDsHzRTqBjqOJ+7ZzTN6YVkb4K4SEM9TxHxq9xriUOvVOkR7+iNML5T1Sg1gck4L+m SWh3Q78/U6OQ3Y3tromN3FEkzzEX1xIRRU3XQzmoVSi66ip70fddZBAKCE5D5Exzx/D2 dnNLNYhe8id30D9QuY3L4yHMQOTspvbL2jLmAVbHHxmCmOJcXT/P3dpPWtLQXSQIvkUr WMy0H3b0pVhYMkKLjgUu4Vxg/ZGC9XlRo1O+67ixG+wW4EsR0xYClZFU0EFva3RRd3h+ 5apDWmgBmE27PYpUui4EhxFh+TSZVTx48s9fpdOT+IQ/5ea4n72JD/K+PqWkS16QZ6cA SP1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781909965; x=1782514765; 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=exJOaxs/tntgQWrlU9hdPxXn8KsFiXfndRmw2UcMRzR8MpIePUPznjUutIRw8Q8riF aphCWJNKgo5Z1sN2d495cDmK+J52n9nFvl7S+KbDXwhjLnnvz/fHd5VqSpC0I4OsTnj+ JrBlY4r01bQSmyoiZtWHGs86jf5fGSr66HemUAL84IEUNb+YsJJeSY4HYuH470l454MP Rgn1ROk+5A+wLxv3pTQI2TDPWte4og/KMUOMP9HdtUn4qvOk72R9BMvUkvU3ECfEtCV7 DGjSXOmErtYvoPWxjvXNFi2QgR+q58PCO91fukSH/0Arh7idRO7YGKxa34r0Hpb/v9Em FKGw== X-Gm-Message-State: AOJu0YzbEE+7o8kdQwMQjiJHXupwu0UKwmAYFq36rwjRANAKfsHLowwk nLWig/whCN9eRg2Mc428zga1+vGUUsGvmIXjhsqkYOiXuvetexXGILRE/gj1DVH2/JqXJJJGw8o uKTsD4meg0YhnZxcJ36sX+SGZg4MZ3dl6QYhF+X++SCV6oIhXLD22q14+idsZcP0hpw== X-Gm-Gg: AfdE7cnfTKsw5HZPqzzT69gOg+xZIGRGj75O1x2UcAXlNBHX9UDqA4KjfcTOZ1gXQP3 BGk77C8vpHW9sDbxK7OHTHOGelYtDJoOSSoCdmR1lEkztyHF8ZlvE+Vy4awyeumf0lerGKJ108y 5PArtMymwCMGGhBvEA39ev1YjOvRAG3mVurggETzPTl6AZE2fwxH01zIdI6slfuYFUzWjF9DUPZ 06bRpCkOdxHq2M7C2xg9Twp1yxZVFIiO0d5j8stUtevgA3NxOwWXbl2Xq+UbMkTGWlSYOUBDXwO 6UGHR19MnS2+HLr4EdvmcJTnp4MFaWogVZi5AHKMP7t3vU7AAoq6qY6qoeVQoU4cJTx+1xTd8di kbqMnsbRhH+1cTZkjNzSNu3ydY5u1v1+m//r1em49rQDe3InWLMnyUD9r7Qs= X-Received: by 2002:a05:7300:cd8d:b0:30b:8878:9c8e with SMTP id 5a478bee46e88-30c0782f9fdmr3026500eec.2.1781909964830; Fri, 19 Jun 2026 15:59:24 -0700 (PDT) X-Received: by 2002:a05:7300:cd8d:b0:30b:8878:9c8e with SMTP id 5a478bee46e88-30c0782f9fdmr3026488eec.2.1781909964282; Fri, 19 Jun 2026 15:59:24 -0700 (PDT) To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier , Alessandro Di Federico , Anton Johansson Subject: [PULL 07/74] target/hexagon: Switch to tag_ignore(), generate via get_{user, sys}_tags() Date: Fri, 19 Jun 2026 15:58:04 -0700 Message-Id: <20260619225911.159473-8-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX+6JKeQWQQUk7 FTooNoKaYxmB2PKv3yQehWi8TteHXNVwksqpZjYpKnEEYmsWdSo6W/zr/jhB9icI1kVppDUAK+K BIRm02Y0cFatPb/+25dfjpKePSnZg/F8x7kBO2fyH3HQlMBK8teIfnYqB4K3MKgiPXxyFPwJjRT bqnU8qfMyME457Yr4V2cJ1jYXCGD4Uy+oKyVEI+gq+ItW88FHDWquE3U8vhtXtQnHb2yWowp3hF 3J8EVzRKmNkvTwFfQOa2e/6V90VMi+EwzE2FKmmTwQ3N3iZUajZKS2Cz8ONlEU5KUqON0rpSBih QvYy1ejnKoJxhW8c01J1XrMqDKsowKfGhl8HNHv3YpsX5K6YCNv9Nqxq7QJcCByGU5BgGjthc/t 3ld/gdhuDkrkNe6bNsf9YUo12wSxvUvwrtZ35twovw3b3lvcQTydCdoV7nc8UsswjkB26ojlxec qNamXE6uChxkqbmkQpQ== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX4XwJwdXHaCtR t9j2EU0yxO8nbjB0h7WzLptDgEaVeP1/7pwkOGPgHIbvUn+DZB6IUM1afwwr016iddEpFHmIdL8 SY7sWmcu/fKZU0OIbe7Ks+tgV3fNrO8= X-Authority-Analysis: v=2.4 cv=I75Vgtgg c=1 sm=1 tr=0 ts=6a35c9cd cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=orAq0Iv1PZLbcfkgE-4A:9 a=QEXdDO2ut3YA:10 a=O8hF6Hzn-FEA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: hL6tfgPizm6dmSFQrywUpKHR4l3Ng6Zf X-Proofpoint-GUID: hL6tfgPizm6dmSFQrywUpKHR4l3Ng6Zf X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 impostorscore=0 phishscore=0 spamscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 bulkscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190221 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910129803158500 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 Sun Jul 26 12:31:36 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=1781910250; cv=none; d=zohomail.com; s=zohoarc; b=GJT+BgP+U2+nXIC+FJdMvrt3E/RJX/xgaW2duf2euAViglRAUg/mJ02PrbXjLoyEQ0XFJB1ml5rBQ07GrLoCJGp/wYIm+KtEXRom9X7xXd9CSYyeclpWWfQGZ74fmmZie9e+gauVjtS22momplcZHlfuhDyko9AH8JDzlufykk4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910250; 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=U0YIrWOgJadDyhJIcIFlA8Ek4kYkhreGdWe9fXSI7qc=; b=HFGGu4Wu5x1jIo8CITJxVKTgxJRGF9drSxSMCbSed4AE36IMzHcZ8UOY2dCQ4cNbOxnLQnYpVm6pojRKH0WHve3AYNod3gx6/FkEVHwLQ5UlamtfjcmLjSvcUhgSwKa1IHCa9wBxVdskkRGywykExgV2N91ijl1+sZEx9vXpeA8= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781910250126414.26350184878834; Fri, 19 Jun 2026 16:04:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiBQ-0001cC-4Z; Fri, 19 Jun 2026 18:59:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBO-0001bj-K5 for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:30 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBM-0001WM-Cf for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:30 -0400 Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLXtsl4085230 for ; Fri, 19 Jun 2026 22:59:27 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evmyrdj1p-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 22:59:26 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c0c489e72so971467eec.0 for ; Fri, 19 Jun 2026 15:59:26 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.15.59.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 15:59:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= U0YIrWOgJadDyhJIcIFlA8Ek4kYkhreGdWe9fXSI7qc=; b=DfWzr/Rh93g+jA96 T3b4DVzqeiOdulCvbMVAUGBHozVZFroTdp695o/+aQcsz2ye3d0mKwzXLaGSfcK7 G5Ev0ZEyJ+XNvQdDHDKuL2kuBjyBVp/uNg3EPotN4fkGrNPvgsGJnGX/EMwQy9bt Hc7yloaLuQ8a1APUzS+3ldA/sl729F1R/aW9ldIFPa5BOtn5KE4hMriLlGzt0juy ireD/8UJLLCqMUQpBTCnk2aDdgG7P/UU8cNY2aGwc7GPWNikTIeaUjraVTDxGSmG fpF3bFJFIb47nGLTCrp4vYaLMtEL1hVjzYjOOZh1haF/qjyx0KFtAsbmUWv8WcNm cy/NGQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781909966; x=1782514766; 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=U0YIrWOgJadDyhJIcIFlA8Ek4kYkhreGdWe9fXSI7qc=; b=XcCiptxovN7syS1Zzm/R+nuVLHBtCgVG2ijfN+6cBXthofGn+wDZcrDOiSXz/XmqWl AhF5WZ9WI1U6kWgpDJi3OfAi/763I0vWZD7wiroWeyaxn0Gj4esCta5OZolRE5O7yTau xRsu8dqyKRJN6ZZKBEvk9MCQRMB1g3cXOFBTSq4xgG2WnX3glpGdpyNVcFHx84KGFDeM iYC2P6Y6MfiN1WtpPF89HOsTO/GAxhZqSVWB6gYaOU90EHtme4/2K6RdqY981FJk3dLx b1Bk37LD8OVbBIty4IymNxzJ9yq4XqBaPhifTshlUskd8RVZsfXeAYKD45kkpMPlbBDJ lKMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781909966; x=1782514766; 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=U0YIrWOgJadDyhJIcIFlA8Ek4kYkhreGdWe9fXSI7qc=; b=FjrBOIp73H4ljihuTxcUNr7DqU9TnQIuza3biC248+uSSnBmXvy8RA3l9kiP712xLz W06mRmCM8yh3dTowpoJuxonNx4yiaSMXsYZwqVI7j2g+0nMu3ijFnhFgBSuI1FYVG7UL 9j0EVH864X+UOKsL8K3iyEoMfy0Xd564DNGEVvUloyGdIKo/tu42enMewaAZLMOUivZh Ua/4+gUKpwD/s6df3hH5xycIYZHqcJhpLgw8Quu2Sd+nSfvRDydF/+ZloG8QcYfMEvlH 4rGyYp1Tl+KWxukykgnPLrpL9B/LMU+mruMqGnheBNky7rFK4wTP1RCKWFxbdcBEFVGz tkkw== X-Gm-Message-State: AOJu0Yz+col091s8jHfNgUHBFD6Df4+1bvOsXzffZJgOsGiGSSgXz/wW Ml8yaylYhEyT7RyDOeFK1bvqO0EICLGhoDfnZH0rVSNjNtWMW3FjDUWH8sduIcCVjZHlmm6jJcm gJZytVeg9q1zli92rZ3RFWehjVcK9GBFXIJ3KDyhRFjEEcGa+/TDQVSe+lENP0RiapQ== X-Gm-Gg: AfdE7ckdZ0baac10ls/a4RWpmExzNqT8OG+wAOIGE+u4e3SED35C0wpvX4pTXmKncSK qz9QVNzuIHWe3MjUnEGqpTzpWor+NTZvX8Tf+WhRdYtsPojY93j2oz1L36VlxvpEhurHqvn5SPp /tBGXcsAbHjJswy3jBNTRizZTM4bq3Qo8u9C3k2Wyll2eBCI7iOH+8UhTqnHrOG5auBvSNxtEgz drdCJmIOFF07v4fmgLCVV1FJs+2r2cnAeZX8pAPfhxhsdO9HOgo1HqM3quA42J0AxIAJXCtQR4J vnDS/panRM0AW9jj8rROahr7Z0oDXnpFO7vpXOfMzWwarAVGIE4V/VipFtmwgF+GNFntF0SEXB6 VOm9FdSqYUfgX8KUOWbqLmSSkSHATm9cua61F+znmRXmDldO22YdpOqTEK7k= X-Received: by 2002:a05:7301:9f17:b0:30a:e5d4:22a2 with SMTP id 5a478bee46e88-30c06fa51f5mr3291085eec.34.1781909966148; Fri, 19 Jun 2026 15:59:26 -0700 (PDT) X-Received: by 2002:a05:7301:9f17:b0:30a:e5d4:22a2 with SMTP id 5a478bee46e88-30c06fa51f5mr3291069eec.34.1781909965513; Fri, 19 Jun 2026 15:59:25 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Taylor Simpson , Pierrick Bouvier , Laurent Vivier , Helge Deller Subject: [PULL 08/74] target/hexagon: Add privilege check, use tag_ignore() Date: Fri, 19 Jun 2026 15:58:05 -0700 Message-Id: <20260619225911.159473-9-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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=RZWgzVtv c=1 sm=1 tr=0 ts=6a35c9ce cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=wr4TPrvmPTm06inSG8kA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 X-Proofpoint-ORIG-GUID: vQYclcmJAxGIpQ1-LC5HaJNzgeTTjlAx X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX4HxM5CnX21fr hZjU8bNSYvRXndxwnDfjrTkHqM1I9RqvNDX47kX5tWLdWICsz/CB0yvG3TSlkhQ/h4uTTv3AUkc zrOF/52SYyBTEaDRdXAmEbR44/tp92FjXcF4/Quzjf1cpFN4yEYaHCj2j6rNZofIVzM3Y5felcF MOZVuPe59nwNjMEPKVyT0HAADaFC12hqosJOEYMrTssHssN1SpHUPb0yXmS9rn2u6MXLf2vLHFw SmLIRXflq52ECOhJPCcpEBY+jCVcee60rUliVWS0K/BcRXdYtWGwOElnGdwVDVjCmUqgCX1ZMqL yw43T5/GFeG2D8NpzGmnau5sqZF6sXEbbb8p4R4MkM5tiNRW6t4oeMZpyeyiR4TcJh1ePIXmb4f PYEDpWJr4kI7PLtisKI91L2l9gY5qi+TB9x7Trtx0Uz4+ZGPJPBnAg0ZTaKO44/GOgzSzMrNJtj 4VSDSBjhUiNu2ShxPAw== X-Proofpoint-GUID: vQYclcmJAxGIpQ1-LC5HaJNzgeTTjlAx X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfXzoqn1p3PoZtn 9tpEgzYqDg4Zz0R8H4r4n6QpJiUg2XBaIHlVsF+UsPNNeOWYQr32PgqPtFMuZsFqTc5BwMntRWV YwPheHM+0QDoQJCCgEU5nppsub46Coo= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 clxscore=1015 suspectscore=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 bulkscore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190221 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910250365158500 Add system event and cause code definitions needed for exception handling in sysemu mode. Add privilege checks that raise exceptions for guest/supervisor-only instructions executed without appropriate privilege. Expose hex_gen_exception_end_tb() via translate.h (previously the static gen_exception_end_tb) so that it can be called from the generated privileged-instruction TCG stubs. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 10 +++++ target/hexagon/cpu_bits.h | 75 +++++++++++++++++++++++++++++---- target/hexagon/translate.h | 2 + linux-user/hexagon/cpu_loop.c | 16 +++++++ target/hexagon/cpu.c | 1 + target/hexagon/translate.c | 12 +++++- target/hexagon/gen_tcg_funcs.py | 35 +++++++++------ 7 files changed, 127 insertions(+), 24 deletions(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 7c09c97db85..e22567d8e67 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -45,6 +45,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; @@ -77,6 +86,7 @@ typedef struct { typedef struct CPUArchState { target_ulong gpr[TOTAL_PER_THREAD_REGS]; target_ulong pred[NUM_PREGS]; + uint32_t cause_code; =20 /* For comparing with LLDB on target - see adjust_stack_ptrs function = */ target_ulong last_pc_dumped; diff --git a/target/hexagon/cpu_bits.h b/target/hexagon/cpu_bits.h index aaac6b9ea64..164e74c782b 100644 --- a/target/hexagon/cpu_bits.h +++ b/target/hexagon/cpu_bits.h @@ -25,20 +25,77 @@ #define PCALIGN_MASK (PCALIGN - 1) =20 enum hex_event { - HEX_EVENT_NONE =3D -1, - HEX_EVENT_TRAP0 =3D 0x008, + HEX_EVENT_NONE =3D -1, + HEX_EVENT_RESET =3D 0x0, + HEX_EVENT_IMPRECISE =3D 0x1, + HEX_EVENT_PRECISE =3D 0x2, + HEX_EVENT_TLB_MISS_X =3D 0x4, + HEX_EVENT_TLB_MISS_RW =3D 0x6, + HEX_EVENT_TRAP0 =3D 0x8, + HEX_EVENT_TRAP1 =3D 0x9, + HEX_EVENT_FPTRAP =3D 0xb, + HEX_EVENT_DEBUG =3D 0xc, + HEX_EVENT_INT0 =3D 0x10, + HEX_EVENT_INT1 =3D 0x11, + HEX_EVENT_INT2 =3D 0x12, + HEX_EVENT_INT3 =3D 0x13, + HEX_EVENT_INT4 =3D 0x14, + HEX_EVENT_INT5 =3D 0x15, + HEX_EVENT_INT6 =3D 0x16, + HEX_EVENT_INT7 =3D 0x17, + HEX_EVENT_INT8 =3D 0x18, + HEX_EVENT_INT9 =3D 0x19, + HEX_EVENT_INTA =3D 0x1a, + HEX_EVENT_INTB =3D 0x1b, + HEX_EVENT_INTC =3D 0x1c, + HEX_EVENT_INTD =3D 0x1d, + HEX_EVENT_INTE =3D 0x1e, + HEX_EVENT_INTF =3D 0x1f, }; =20 enum hex_cause { HEX_CAUSE_NONE =3D -1, - HEX_CAUSE_TRAP0 =3D 0x172, - HEX_CAUSE_FETCH_NO_UPAGE =3D 0x012, - HEX_CAUSE_INVALID_PACKET =3D 0x015, - HEX_CAUSE_INVALID_OPCODE =3D 0x015, + HEX_CAUSE_RESET =3D 0x000, + HEX_CAUSE_BIU_PRECISE =3D 0x001, + HEX_CAUSE_UNSUPPORTED_HVX_64B =3D 0x002, /* QEMU-specific */ + HEX_CAUSE_DOUBLE_EXCEPT =3D 0x003, + HEX_CAUSE_TRAP0 =3D 0x008, + HEX_CAUSE_TRAP1 =3D 0x009, + HEX_CAUSE_FETCH_NO_XPAGE =3D 0x011, + HEX_CAUSE_FETCH_NO_UPAGE =3D 0x012, + HEX_CAUSE_INVALID_PACKET =3D 0x015, + HEX_CAUSE_INVALID_OPCODE =3D 0x015, /* alias: same cause as INVALID_PA= CKET */ + HEX_CAUSE_NO_COPROC_ENABLE =3D 0x016, + HEX_CAUSE_NO_COPROC2_ENABLE =3D 0x018, + HEX_CAUSE_PRIV_USER_NO_GINSN =3D 0x01a, + HEX_CAUSE_PRIV_USER_NO_SINSN =3D 0x01b, HEX_CAUSE_REG_WRITE_CONFLICT =3D 0x01d, - HEX_CAUSE_PC_NOT_ALIGNED =3D 0x01e, - HEX_CAUSE_PRIV_NO_UREAD =3D 0x024, - HEX_CAUSE_PRIV_NO_UWRITE =3D 0x025, + HEX_CAUSE_PC_NOT_ALIGNED =3D 0x01e, + HEX_CAUSE_MISALIGNED_LOAD =3D 0x020, + HEX_CAUSE_MISALIGNED_STORE =3D 0x021, + HEX_CAUSE_PRIV_NO_READ =3D 0x022, + HEX_CAUSE_PRIV_NO_WRITE =3D 0x023, + HEX_CAUSE_PRIV_NO_UREAD =3D 0x024, + HEX_CAUSE_PRIV_NO_UWRITE =3D 0x025, + HEX_CAUSE_COPROC_LDST =3D 0x026, + HEX_CAUSE_STACK_LIMIT =3D 0x027, + HEX_CAUSE_VWCTRL_WINDOW_MISS =3D 0x029, + HEX_CAUSE_IMPRECISE_NMI =3D 0x043, + HEX_CAUSE_IMPRECISE_MULTI_TLB_MATCH =3D 0x044, + HEX_CAUSE_TLBMISSX_CAUSE_NORMAL =3D 0x060, + HEX_CAUSE_TLBMISSX_CAUSE_NEXTPAGE =3D 0x061, + HEX_CAUSE_TLBMISSRW_CAUSE_READ =3D 0x070, + HEX_CAUSE_TLBMISSRW_CAUSE_WRITE =3D 0x071, + HEX_CAUSE_DEBUG_SINGLESTEP =3D 0x80, + HEX_CAUSE_FPTRAP_CAUSE_BADFLOAT =3D 0x0bf, + HEX_CAUSE_INT0 =3D 0x0c0, + HEX_CAUSE_INT1 =3D 0x0c1, + HEX_CAUSE_INT2 =3D 0x0c2, + HEX_CAUSE_INT3 =3D 0x0c3, + HEX_CAUSE_INT4 =3D 0x0c4, + HEX_CAUSE_INT5 =3D 0x0c5, + HEX_CAUSE_INT6 =3D 0x0c6, + HEX_CAUSE_INT7 =3D 0x0c7, }; =20 #define PACKET_WORDS_MAX 4 diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index 1fc185e3edd..d80bc532e24 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -283,6 +283,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/linux-user/hexagon/cpu_loop.c b/linux-user/hexagon/cpu_loop.c index 9464246e9e3..9f54c7b3f96 100644 --- a/linux-user/hexagon/cpu_loop.c +++ b/linux-user/hexagon/cpu_loop.c @@ -22,6 +22,7 @@ #include "qemu.h" #include "user-internals.h" #include "user/cpu_loop.h" +#include "target/hexagon/internal.h" #include "signal-common.h" #include "internal.h" =20 @@ -60,6 +61,21 @@ void cpu_loop(CPUHexagonState *env) env->gpr[0] =3D ret; } break; + case HEX_EVENT_PRECISE: + switch (env->cause_code) { + case HEX_CAUSE_PRIV_USER_NO_GINSN: + case HEX_CAUSE_PRIV_USER_NO_SINSN: + case HEX_CAUSE_INVALID_PACKET: + force_sig_fault(TARGET_SIGILL, TARGET_ILL_ILLOPC, + env->gpr[HEX_REG_PC]); + break; + default: + EXCP_DUMP(env, "\nqemu: unhandled CPU precise exception " + "cause code 0x%x - aborting\n", + env->cause_code); + exit(EXIT_FAILURE); + } + break; case HEX_CAUSE_PC_NOT_ALIGNED: force_sig_fault(TARGET_SIGBUS, TARGET_BUS_ADRALN, env->gpr[HEX_REG_R31]); diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index bd568bdd871..5bf6e85b939 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -299,6 +299,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 0b9337d9120..d61658a798c 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -65,6 +65,10 @@ TCGv hex_vstore_addr[VSTORES_MAX]; TCGv hex_vstore_size[VSTORES_MAX]; TCGv hex_vstore_pending[VSTORES_MAX]; =20 +#ifndef CONFIG_USER_ONLY +TCGv_i32 hex_cause_code; +#endif + static const char * const hexagon_prednames[] =3D { "p0", "p1", "p2", "p3" }; @@ -187,7 +191,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); @@ -580,7 +584,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 @@ -1138,4 +1142,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 e7f90a0da11..6d5d99cee3a 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 Sun Jul 26 12:31:36 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=1781910057; cv=none; d=zohomail.com; s=zohoarc; b=cAnG+BneujDfnjS+KZvv5DCvXGh1/9ljvx6GWTAW9mFAaz//OCW3UozPSqsdr4ruaiiWlbBpaF0hCUItiPHTnFpu4eUtmt01EPd7ybQmpBQ4Xw+YjZX6xWCGJMdLzCCNuS6KWOtRQNR4/YJIQzfmQ0aOmQXYdbMy8/YjFWxJirQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910057; 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=qd0MRjIIozbImbBr0lnxAdZmpDNRrMGNSs+reFaWXjE=; b=AVaov1W+fTty6q+ghdaq+4GwUnJXRyQhh4XOqJUGAPEBtoa5qGN38JA+afy77g3VG9LYQg6U68Hd7Jq1aCn6MY+zYMYwsG1nH62ti+UsRWV4iqfpWwI+d1rHg2Zf7hoJiwIX18ncFnXFcpXDYENYJiwm6HAquE1xDcc0EfbVyl8= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781910057420873.7811552747959; Fri, 19 Jun 2026 16:00:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiBT-0001cr-IE; Fri, 19 Jun 2026 18:59:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBR-0001cb-S9 for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:33 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBQ-0001X9-Bm for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:33 -0400 Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLZQhi4088148 for ; Fri, 19 Jun 2026 22:59:31 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evmyrdj1u-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 22:59:30 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c0c489e72so971481eec.0 for ; Fri, 19 Jun 2026 15:59:30 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.15.59.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 15:59:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=qd0MRjIIozbImbBr0lnxAdZmpDNRrMGNSs+reFaWXjE=; b=IZ kgCxThqEfDUcTMGy+0/AnqUXEyH+PFfMZJe5oYgvvU7SBaZrpxII2GLZifwFQrpv TzClUoMnf+mU+CF9nC9IBxZLWxUGWw18YO1xx3njgQJb7GRs5h9b8Pk49cq4NQIO 1hRGNQVI8FAo+vAgE33i1Yl8ObPmtZPiJJSQmz2x7DCCcCwhoujv710uroH6aJA5 cyIl6/80Lmf+dZeRR3wN0G7wDDmLw7BxrZar2xeiIkDOcWZN/YsHm2+4M07RJldO 9Jml2W0eXiXLmgL7ORq9IotuQKvMQV6RiyskFS4Fuo8YlAsT7knmN4tCD3sFUV0b ea2ku1yegaVd6xKPkUSw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781909970; x=1782514770; 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=qd0MRjIIozbImbBr0lnxAdZmpDNRrMGNSs+reFaWXjE=; b=WOBbWQ1P00hkX0JLSAgW5kCMr5eC31Hj1tuu+Nx9tEsHlfZ7CfHJAyITgcHt98fJOy VT2iQ1LeD5Zy8Lj0s+VxPyNJnFz2J2rF0Tr+czX4IGH1PnQw8tUQ3l5gZaLsSIP1G89T b+4AevY/+KpKkETkyDX/LHAbEH5Mw1Ex5VFRbqqZF+Q2HpmXTWVRkGIiDkUKHP/2Acy0 zWdq6ahKoNQ9VPQp8YQRpv30Hkpp6DQs6dTfOQWCfKZKllN81ZQXbsOIpr4fWi+gOEE/ LdkeENNe/y+0byp3OG6iuv4c5ndzKM4aeqgV2P7SMQWgmxSHobzZxRlT3gBV3TjojWBP JkBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781909970; x=1782514770; 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=qd0MRjIIozbImbBr0lnxAdZmpDNRrMGNSs+reFaWXjE=; b=Pv75lXnhg9tb9zyhQj2Q0Apt9JOETAnOqlBBE2mpkcDkux4BscN11Zw2b/EA77j5ir 8JAedrDf8IpMAUjP4asTut6QMVnF6oIDmM5oS3n1+lWWYhGE81NHQfzZWM0J+q2/zCAt 5zKEFhZMD0gaf3sZcMDmjP1rsnFHrREHmYCjHy2Ze6K0VC1fxGblqxST8VdY90NQm15W WqKTEMfeYr73iNNUA+2Eq7RupWPLLxgFV9At7FB6GVkacoIAWRwptwfyrUGhN2ZlEzpO NbtHzlcdIuqrU+3rIdpd4kAtddKof7VGjb6cBI8cIKu8mFtINlLKV3AYX31oCf8B/c44 E/fw== X-Gm-Message-State: AOJu0YxOTslmCRY4XJU1JfnUF5JkUpoTf1Q+Ba+if8WV6vLtNtjVGHZT 3sHsu9ZslHt4LR4GMVzIK0lS6Y2eIDV/9TxTBoVEmIMBP0inLEWuntgRihWoiEAI0X6B7Lp0Y2M idAIJCNy+fQKnobVzpi43XjPwUKKwllEEPpWFVZp50TC4epfAq98MGtp4cavk7ACIeQ== X-Gm-Gg: AfdE7cnf8kTAHZCfWY2XKQB8bz6LQnavp4zyrTWVGrd18c6lBg1x7MGzPKgcT4r05QC 8xzEUyPe2rMZXnkx4e7VEV56uxhZmYOq8mjjVxTxfLmIhFcBilgi4m7TnFZSHmOtT+am2bH7Jj0 Jkf6cV/OUdg4WLcSoC8NuIHEXV9My7BFx19eeCLODtU2TXEtuY0bhw2ItmVWi/EFeKyffYnopiB CWwJtIxCmPQnKVF+63tDgzrX46y3izqkQw+wT5VimXkPRY5IJWHH6aositVLACfCCxrnsgXFM0N GIN7hI9Rv5X/c118e8qX+zEtX9ntDHwDw5FwvjIGMuJYOlg+GGq3NMDS/Xu7Jdy5kA/xiN4EeP0 Ev1VAEnmyTFf1LowtsbVfNvrVBvfbfI3CnC41x9/C+HnpwlP515Zknrfpk3g= X-Received: by 2002:a05:693c:62d2:b0:30c:1739:67f7 with SMTP id 5a478bee46e88-30c173968e6mr968992eec.35.1781909969988; Fri, 19 Jun 2026 15:59:29 -0700 (PDT) X-Received: by 2002:a05:693c:62d2:b0:30c:1739:67f7 with SMTP id 5a478bee46e88-30c173968e6mr968982eec.35.1781909969522; Fri, 19 Jun 2026 15:59:29 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pierrick Bouvier Subject: [PULL 09/74] target/hexagon: Add a placeholder fp exception Date: Fri, 19 Jun 2026 15:58:06 -0700 Message-Id: <20260619225911.159473-10-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=RZWgzVtv c=1 sm=1 tr=0 ts=6a35c9d2 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=R5LHHePp8dzqxDYlWrYA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: aIII47b7hIJQ5_4p5SH-RzpTk_2TPZhH X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX9l1Cj5sgowFR H6hHg+sNSW7T8U/CCWw/qBsEnAt52ApUK3EdwLa7LbU1Yv+kszzAVTPqh90ybRbyBjpd2YzR7q/ BM/mrhE0DGn42972ucRIPG9l1OZK83twVlqvOC5bKddB8QBUGGWO9GruuzfafhwAAlrBxmFXDX3 jW6gtWWna58ITMidhLK0ON0ZBOXf1SUC5McyNWalM6aZxzCRGCk/SN1Wg6aoIU65UYBH3p3ZdCs LS+XMUUYNhIViQXZYFqL3xOpJADaDGi7bkywgpyE4dkUALhYd4dcS/qVll7rUmgoNQUfiC2aTRD fIGmRKZienuUtS4HV6/A3T/ZmA0JO3l00vraWasYQNSbn8zgtH1qLRnaxbxdOCxm9kmyQ3CTVyB C6Q9awf7Gke/q0dU9sKQjYLVSVzpUxGzmEYPUakldGhqLqWsjWErot8fibi30fGUKFiCsTdGRek peLwTRhiJUGi53F/qdQ== X-Proofpoint-GUID: aIII47b7hIJQ5_4p5SH-RzpTk_2TPZhH X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX1nt3ayXYKr77 L1L1AcmKXHepkBY9/IGpoA+0aWAgtSjgmCiGUee4O8gMwXGG6W1cqe0OEEkj2PLXUXtBlPti93Y kVStCparivHp4VqBRky1TmS/9BT3fj4= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 clxscore=1015 suspectscore=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 bulkscore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190221 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910059432158500 Content-Type: text/plain; charset="utf-8" From: Brian Cain Reviewed-by: Taylor Simpson Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Brian Cain --- target/hexagon/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 Sun Jul 26 12:31:36 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=1781910085; cv=none; d=zohomail.com; s=zohoarc; b=A7/OtA8v/mADy0fmsbTgQJxDzH9iHA+tFiQDTLrUNKT/RmCMcp+Dg3upPsxxAXC5IkDMghUoodXbpjyvTkOryAaDlQypBM5/Tbf0A25oubw7zdbbVJGyFAw9HL7JvavhZ/CZCwT9egEBS1laJnYmunKxlCzLiq9LoUorkJuYaiQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910085; 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=ThmCBEUUn0U8qb4sT7PqDbrtmt1EHLpETdzQjy89vaA=; b=n3vACgF3Ylw57nHZhQBuVEREd7S62m0m4Qb1c/N4+ShcpbfSTqo7TwId5I+UeZe65At2MCs21tvg5pu0OGGeLIWa4X3lSO5utJkQauszsxoynjpKn0wpTp6JFTXq765rFOrBjgn4w2WNx8hlH4mBrHEAXsmjuOSb0IgWbYziNEs= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781910085302777.5152626871235; Fri, 19 Jun 2026 16:01:25 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiBU-0001cx-1e; Fri, 19 Jun 2026 18:59:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBT-0001cj-04 for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:35 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBR-0001Xv-5f for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:34 -0400 Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLXi291368803 for ; Fri, 19 Jun 2026 22:59:32 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ewcy30brc-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 22:59:31 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30bccca5620so3385215eec.1 for ; Fri, 19 Jun 2026 15:59:31 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.15.59.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 15:59:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= ThmCBEUUn0U8qb4sT7PqDbrtmt1EHLpETdzQjy89vaA=; b=A2dl6BfKLCDkS5oW XzCWSMZI5eFDJ4eLKwjmFvl0eYqsK5qEEjTioiZmJOHfrOhz2Nk/Qn5nSbGGs0hU kLLXIPz19hnRONidWYW98LUibhPMutdJ67LC5738DHb7xuP7GP0K9UsoYaVXziaa rGIWUb+WtXLIKP0ca2u/+5iZCGtp0Nrjvf48cABkoK0rvRfq/T4rG8UW0xcaCqws NF36TNUpBbXjRw5O/CcgiPAKJSawujx95nNtj+KqbFEeyk2Jv73IdjdBtOekHOSt uLqRp+RVB95wkxjxX9wWlQchlpkwbFJKJcTSy1mBdMM+h0piO9W7DpbO49SmLuOn 206kRQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781909971; x=1782514771; 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=ThmCBEUUn0U8qb4sT7PqDbrtmt1EHLpETdzQjy89vaA=; b=IOs4lL2fFLjGUW0Ka4e7VQnXlwO1i7SEiEV99qyxLsvsG1YBcxBKhUMLHFLv2/mBCG GZ6m5AxNFXg0qC6QouLB1dbVGh0ioX4n66MM4Fk23yP8ejl1zZ0S/tDJD5fz7GkFQjly BBreLJnIlnkuzvGVxwrofqKX1olgq+/7yBulPJ4nnHharq46E0fKnOF5KXgUm7VP0jTL WZACn96wvsZ5tcvb/lZ9eFh3dDDAGyNJy/iL3OZ3luTYFC6/NoP3EsFk8v3AZTh8ORSj WdaPOhxSgAAqtlqAk1A/Bdmb1mg0Lb3+v0cL82dOT0KAoQvT1SQcCmKz1OEQj8ZGOH01 gLXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781909971; x=1782514771; 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=ThmCBEUUn0U8qb4sT7PqDbrtmt1EHLpETdzQjy89vaA=; b=ZhnZR5iybXyXvACe5Ot6iOI5ELkDaZgyDImn7xwoRQ60rjirxr65tIr9JVHjkLZgnc 2KkmihDHwaoQhOD/XWwFgeunXCgLYrHkN0SrGqgzsYXC8mSjuZK7h6uxsMMWpGK9JScQ 0HCVP0l3mv5kMgXtQGjLj+IBbNM4F2ZTgViTPSuEavUlQzKoe7JaOUojZ4XBsBTs+w2l 5DoYjJ49/QEs4OTIz12oQ6QDaAi4sRc7o3qY35xDomFmehwS3UULoq4HtyA8Wgaal2jY A1sM0CV8KlOJx8cC0SLQ4Pux1tRHGJaD8IdYsCZO3Qdhh5wWM7k07uEn6bIMcIYfCr4a dQtg== X-Gm-Message-State: AOJu0YxN8XLtXxob0t3/ul74p+xZHd3CkAK48OBljwwGWKBoy5+3uPw6 5UTF7OpOHs1Lx3D0gX49oBzftOw6v7/VgwOVEqyfQe9K3b5TVDXDnth9MUtIc72qYGFFgI2dWOA nKVN1FR85Jd505vH72AVaczOfxlLiaPAdRp/7/1ogudmb96/pPMG8BJ5yibE4Na+LnA== X-Gm-Gg: AfdE7cl2K/Jnu7eISBp+CXp5ruaJ0CW+PJMIU9T7Igd0mNXErHgWM6KrVcdsh+gYY+J oH90318h7ERiImzWt850Z7DNyM4gPWynNVPKphHZ+uHlY55qS7AtWukDs29tjQ3FcB1tI2U6FgO SN2YIFD9EuRJQ55A5tc4emIyty295e5ilozSdeojgYx7CXrYetqzZHO2G8c7pkDpDdrvThuLL5k lINxwHvCFe0A87JSncWqsPdFHrNVOWV/FWxkfK2CEJOL5N8SCJyJFqtr9OndAWZ2aQeONsvJXee kTZP2UZXtJ+cPOOzDx3nKw8gTI41jQxiWWOp0/xnlNmxQ3MA/zL2J38NGFBFP2eg26EEr/duO8G Y2ariEWPROYQZQLztbETSI3NGQ159ki995jYh09PDRpeY8ZxGJk5nISqzaX8= X-Received: by 2002:a05:7301:6084:b0:304:bce9:25fa with SMTP id 5a478bee46e88-30c06e0e5d3mr3200785eec.4.1781909971312; Fri, 19 Jun 2026 15:59:31 -0700 (PDT) X-Received: by 2002:a05:7301:6084:b0:304:bce9:25fa with SMTP id 5a478bee46e88-30c06e0e5d3mr3200770eec.4.1781909970777; Fri, 19 Jun 2026 15:59:30 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 10/74] target/hexagon: Add guest, system reg number defs Date: Fri, 19 Jun 2026 15:58:07 -0700 Message-Id: <20260619225911.159473-11-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: Gom8XFXEyc0NLeQAlkMvpi86CvrM38R7 X-Proofpoint-ORIG-GUID: Gom8XFXEyc0NLeQAlkMvpi86CvrM38R7 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfXwvM/snK0rkvt FK1xmPh0PWbEQoPe0th/qqx0gQDbNGoRzc5x6pYl/SAZkwYET32pEar5t8UmcaH35ctwVD9IkdH U1N31nK/ed9SkIOBkQv6c6sDZhNlqAwh2f2lRBRawI6m8KN1Ew/SCdDsmYB9ay8xmgWuKF1DgkG hGJgA8dyDPPwDWzD+wXXwQJcijkJA1UCXgY1xksi8mCPk1UCoDtKUcpD2zJrfnDJdmWJYutOhU7 yV0AAvxHvrmPtPsb0FCbyPAZt8HTQO3CYa1nlqE5cLMVsIYv6wS+sabopfO/nNLjgLUAaM3WsU9 iI0ulqc90XRn/qCdwuwfgCoaVofW8e1aAcRRbSMmzF/uNTDWGKoxDyPk/blxxCgDc3ePYl06AFJ itTTNmWOrwRCuLRhdmdK32FhIa7aRrbf37fTmr/R+OIVmy0hSKjXmLF46XfIFyy8o43DCLi9X6n Kz4OVJa+bSN5QkfcT9g== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX5jqwQeXClKxh uOMd4HckdHXpVosXK8I/SPrSzVWBen+U1+yYlce5ULM9+xko2kMGQmZxPpj7lrPhewsWj2vfnCK 7Ogq0U3YefKLoFMp3yAbhmoZS78oCVg= X-Authority-Analysis: v=2.4 cv=ZOvnX37b c=1 sm=1 tr=0 ts=6a35c9d3 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=pGLkceISAAAA:8 a=tCkOjFGBvLAhDY2OQcYA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 bulkscore=0 clxscore=1015 suspectscore=0 spamscore=0 phishscore=0 malwarescore=0 adultscore=0 lowpriorityscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190221 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UPPERCASE_50_75=0.008 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910085732158500 From: Brian Cain Signed-off-by: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 7 +++ target/hexagon/hex_regs.h | 117 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 124 insertions(+) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index e22567d8e67..e0cf87e5a4c 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -20,6 +20,13 @@ =20 #include "fpu/softfloat-types.h" =20 +#ifndef CONFIG_USER_ONLY +#define NUM_GREGS 32 +#define GREG_WRITES_MAX 2 +#define NUM_SREGS 64 +#define SREG_WRITES_MAX 2 +#endif + #include "cpu-qom.h" #include "exec/cpu-common.h" #include "exec/target_long.h" diff --git a/target/hexagon/hex_regs.h b/target/hexagon/hex_regs.h index bddfc28021c..214b7b8fde8 100644 --- a/target/hexagon/hex_regs.h +++ b/target/hexagon/hex_regs.h @@ -81,4 +81,121 @@ enum { HEX_REG_UTIMERHI =3D 63, }; =20 +#ifndef CONFIG_USER_ONLY + +#define HEX_GREG_VALUES \ + DECL_HEX_GREG(G0, 0) \ + DECL_HEX_GREG(GELR, 0) \ + DECL_HEX_GREG(G1, 1) \ + DECL_HEX_GREG(GSR, 1) \ + DECL_HEX_GREG(G2, 2) \ + DECL_HEX_GREG(GOSP, 2) \ + DECL_HEX_GREG(G3, 3) \ + DECL_HEX_GREG(GBADVA, 3) \ + DECL_HEX_GREG(GCYCLE_1T, 10) \ + DECL_HEX_GREG(GCYCLE_2T, 11) \ + DECL_HEX_GREG(GCYCLE_3T, 12) \ + DECL_HEX_GREG(GCYCLE_4T, 13) \ + DECL_HEX_GREG(GCYCLE_5T, 14) \ + DECL_HEX_GREG(GCYCLE_6T, 15) \ + DECL_HEX_GREG(GPMUCNT4, 16) \ + DECL_HEX_GREG(GPMUCNT5, 17) \ + DECL_HEX_GREG(GPMUCNT6, 18) \ + DECL_HEX_GREG(GPMUCNT7, 19) \ + DECL_HEX_GREG(GPCYCLELO, 24) \ + DECL_HEX_GREG(GPCYCLEHI, 25) \ + DECL_HEX_GREG(GPMUCNT0, 26) \ + DECL_HEX_GREG(GPMUCNT1, 27) \ + DECL_HEX_GREG(GPMUCNT2, 28) \ + DECL_HEX_GREG(GPMUCNT3, 29) \ + DECL_HEX_GREG_DONE + +#define DECL_HEX_GREG_DONE +#define DECL_HEX_GREG(name, val) HEX_GREG_ ##name =3D val, +enum hex_greg { + HEX_GREG_VALUES +}; +#undef DECL_HEX_GREG +#undef DECL_HEX_GREG_DONE + +#define DECL_HEX_GREG_DONE 0 +#define DECL_HEX_GREG(_, val) (1 << val) | +static inline bool greg_implemented(enum hex_greg greg) +{ +#if NUM_GREGS > 32 +#error "NUM_GREGS too large for greg_implemented(): update `impl_bitmap`" +#endif + static int32_t impl_bitmap =3D HEX_GREG_VALUES; + return impl_bitmap & (1 << greg); +} +#undef DECL_HEX_GREG +#undef DECL_HEX_GREG_DONE + +#endif /* CONFIG_USER_ONLY */ + +#ifndef CONFIG_USER_ONLY +enum { + HEX_SREG_SGP0 =3D 0, + HEX_SREG_SGP1 =3D 1, + HEX_SREG_STID =3D 2, + HEX_SREG_ELR =3D 3, + HEX_SREG_BADVA0 =3D 4, + HEX_SREG_BADVA1 =3D 5, + HEX_SREG_SSR =3D 6, + HEX_SREG_CCR =3D 7, + HEX_SREG_HTID =3D 8, + HEX_SREG_BADVA =3D 9, + HEX_SREG_IMASK =3D 10, + HEX_SREG_GEVB =3D 11, + HEX_SREG_GLB_START =3D 16, + HEX_SREG_EVB =3D 16, + HEX_SREG_MODECTL =3D 17, + HEX_SREG_SYSCFG =3D 18, + HEX_SREG_IPENDAD =3D 20, + HEX_SREG_VID =3D 21, + HEX_SREG_VID1 =3D 22, + HEX_SREG_BESTWAIT =3D 23, + HEX_SREG_IEL =3D 24, + HEX_SREG_SCHEDCFG =3D 25, + HEX_SREG_IAHL =3D 26, + HEX_SREG_CFGBASE =3D 27, + HEX_SREG_DIAG =3D 28, + HEX_SREG_REV =3D 29, + HEX_SREG_PCYCLELO =3D 30, + HEX_SREG_PCYCLEHI =3D 31, + HEX_SREG_ISDBST =3D 32, + HEX_SREG_ISDBCFG0 =3D 33, + HEX_SREG_ISDBCFG1 =3D 34, + HEX_SREG_LIVELOCK =3D 35, + HEX_SREG_BRKPTPC0 =3D 36, + HEX_SREG_BRKPTCFG0 =3D 37, + HEX_SREG_BRKPTPC1 =3D 38, + HEX_SREG_BRKPTCFG1 =3D 39, + HEX_SREG_ISDBMBXIN =3D 40, + HEX_SREG_ISDBMBXOUT =3D 41, + HEX_SREG_ISDBEN =3D 42, + HEX_SREG_ISDBGPR =3D 43, + HEX_SREG_PMUCNT4 =3D 44, + HEX_SREG_PMUCNT5 =3D 45, + HEX_SREG_PMUCNT6 =3D 46, + HEX_SREG_PMUCNT7 =3D 47, + HEX_SREG_PMUCNT0 =3D 48, + HEX_SREG_PMUCNT1 =3D 49, + HEX_SREG_PMUCNT2 =3D 50, + HEX_SREG_PMUCNT3 =3D 51, + HEX_SREG_PMUEVTCFG =3D 52, + HEX_SREG_PMUSTID0 =3D 53, + HEX_SREG_PMUEVTCFG1 =3D 54, + HEX_SREG_PMUSTID1 =3D 55, + HEX_SREG_TIMERLO =3D 56, + HEX_SREG_TIMERHI =3D 57, + HEX_SREG_PMUCFG =3D 58, + HEX_SREG_S59 =3D 59, + HEX_SREG_S60 =3D 60, + HEX_SREG_S61 =3D 61, + HEX_SREG_S62 =3D 62, + HEX_SREG_S63 =3D 63, +}; +#endif /* !CONFIG_USER_ONLY */ + #endif --=20 2.34.1 From nobody Sun Jul 26 12:31:36 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=1781910147; cv=none; d=zohomail.com; s=zohoarc; b=A6Q4SOM2FRHTfJ1wDtqeF3oAmS4/FvmZPWJeUA/MBZJkENBuzorCHuTRbvMrvReg/Vn2fBzm1Di44DEUutDz5lprE68H5kSnaStfLGCzn1VFRVVJ0Zu60sWOQvSOKtCqmx0RRJENYsnElTv6dec49UQwpNJGeNQk9gzJJoNo0QE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910147; 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=X1535rWHbX3maN5NHx9P8KfIpPdOoals3VppoQq+RNI=; b=ThtQIjZhKX/hLwhNprkHlCCXw5g0MMXCZ+b7EY/g8D+MwViJjYxVUiG/Y5EXv3/59UmHnfR0u4kyEsydqEMEB8mdeAWQkjqf7W7/NUpjQHFfxA4sLVyK0vNfgjjn271BaKG7mnV54HclyKPBwYozkN/bISbUhqMRcG15Q1My3MI= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781910147784551.4528151526259; Fri, 19 Jun 2026 16:02:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiBV-0001dv-TE; Fri, 19 Jun 2026 18:59:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBU-0001da-J9 for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:36 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBS-0001Yj-VH for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:36 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLYeGA1907824 for ; Fri, 19 Jun 2026 22:59:33 GMT Received: from mail-dl1-f72.google.com (mail-dl1-f72.google.com [74.125.82.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ewb9wgqne-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 22:59:33 +0000 (GMT) Received: by mail-dl1-f72.google.com with SMTP id a92af1059eb24-1370417c0bfso1904512c88.0 for ; Fri, 19 Jun 2026 15:59:33 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.15.59.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 15:59:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= X1535rWHbX3maN5NHx9P8KfIpPdOoals3VppoQq+RNI=; b=W8HVDvurz8EiZTK8 JEzO9M6J2Cz/re3BOAbQOEUI5aGfL6CY4OvlrRl2nyGf68pMIhVQR1E8G/CP3MxY ZjxyVGZ5beGLnZ9YCo88oROjS6KDJQInDBYztvxWaRdBES4byqdocLEtOtvUmUSR AK4S9tnqGht4XHA/8w5UWkJi28jqhP7PFbyrp4Q3PWwwQMEQtkCEhLYYOnxFRhWw 5MkRDHn0Cc28Xrin9ITGHa0i3xT5jd0BpDxOMIGAHNEwsjlqDDIcYV9dQ+ZbQfmp wWVM735N4zaXbn8567/6EXks4qVwHUVlDT7u7bi9S829zxvfpACwQZb3k90VOFwE bKCsQw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781909973; x=1782514773; 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=X1535rWHbX3maN5NHx9P8KfIpPdOoals3VppoQq+RNI=; b=M4+EDT7LyX7RWi7NxjQQ7b98zcLnz1OchCrCoxbKAb/RaICDTKlDYJTjZPa+6khFSe sClNQHdLCz52RfEVuMK1yPlzsBnoB9JXKTMB52hyQgZR8M/MOiwkyX7KLpdfPIkJFjOK JiKJ0FEG8Z1B03JHTFS2xgZCsh0bnSUEQHpfKGYiLIGX5Xek7uCRasaRb1wVlNGj9yHn 9lSTCxwtvPcDpAeR7nYBKzxpb3lyPwhm7wZyiuv+AcTQL61E8mmu90fABl5LQOfZ3h+e ojXReAJTuOmewFE1EnEM3B8t17/uH3FxDDzyI/FsS3+SCya8qOeDglBW967wGE9WqXhr Slng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781909973; x=1782514773; 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=X1535rWHbX3maN5NHx9P8KfIpPdOoals3VppoQq+RNI=; b=SbXmcqoZv35isLaAeqDUaL4IuJi3KFRlTFw5be8C6asNXVMunABIgYK9FsdQrvrRlY 3vCIL/+ykMLs/xGpF5eQjPu/1APZLR3pUs+tQDQECdJMat1Qpg4kpuEEgW6N7pUhBAXH cgBV0JU6MxbVhde2q/EgCcbDSwd0XWUbc7TSsFnHi27c4JtRO2p2HX7wY43KSsRbV2F4 DSf9Sa2WyMaYy79MvsTIxtzkbeejkcmLIysKYoVEWTH8Ns+sF0Zwc8fS7iXG90Xz5PDa zDmsZhLOUIA+L0r/EN0LNvYDKJRyhoIU5RubXqbfQ5uWMN8dh1EWfAT/8U6JKD9YL/t8 QKFA== X-Gm-Message-State: AOJu0YxyWebOT5JvpqedXETR1O8fw4O3JvVzoRyWSvKwSEa0e+r8WIo8 9oSF7taEPRddch6Uvby7ZaCnbEGbJsM+qdQROhbm+vVleZ/rMP5DrddNonfuMt5ZLLkJZsKlyqy xWYjIgB0XRaVy5jcALJ+V/Vtu2NXL6+ptnh0+3NTFYl+9hC1ySfx4Qyo3YVgNCAcLDQ== X-Gm-Gg: AfdE7cn/mDlsIWAObJah0LMfhYEe2GvQ8hia3IU3RklsOUuCxAnQROhiqG8ZMcOUUhV +L20f5fuiIuDokj6C5WSlDtChNe5v/s2EbNvlgLToXIkSCil5ndeo6wnOKuYQtQKO8SNZTIfWUy Ekr9cbVXrrl7bJe+EfFKc8Zu57++TzwEUgN8MLYbwV3h47qynGsHfSJwcfMftcgAqZNn4KdOp+7 hynsTeX8AnBr512iyYCB3aVwx8N7fJ7SNwRwdVUaaNQTBsNLKFlNMOxcn8H2i9OIUe5TeC4iePy hmIcLOl2/+Djf/ggCyaq8HjEa17Er2OJ1z4e1MDMS3pgdVhrXlPRUAaHXppLWjQZ0lWk7shce/K ISu+qa+qi1g2vu0DoFjbYszC5cvSij+bGHsfuUg91z6aRCOoNk5NIHSzEhjE= X-Received: by 2002:a05:7022:69a6:b0:12c:15ce:a71b with SMTP id a92af1059eb24-139a31478e5mr2843943c88.25.1781909972819; Fri, 19 Jun 2026 15:59:32 -0700 (PDT) X-Received: by 2002:a05:7022:69a6:b0:12c:15ce:a71b with SMTP id a92af1059eb24-139a31478e5mr2843929c88.25.1781909972343; Fri, 19 Jun 2026 15:59:32 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 11/74] target/hexagon: Add guest, system reg number state Date: Fri, 19 Jun 2026 15:58:08 -0700 Message-Id: <20260619225911.159473-12-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: JdO34PRIDC-EzbYnJ1FuOkKOeIZ0IKB4 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX81pu+lfc0e/G 6xGlPPG/pH92sdc36xol0u/mxN727ZOLBNl6GZESA3z3WCg4tJPJy0hKTxdbQ2RTLkDETKxvHF6 wgm+EYJUiXh2SmosEYI5p8zEv6WFQaE= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX5nkowvK/0412 XxyFh/b42goVTs1A/JKRJsTx6aXLkWMVDNWG5A5tAijoGR7B6m0immTl5N0jdftdwjulJ8L4DjB MmPUQYqVTlPv/uG0K9aWAd2FUYaO+iakbxWpLJBBGdmcwQmvIIVe50o3xZPQ731nVCHeVdAWOvD U0qCeEg3gxnWorKYXFMfV2v8RXyAx55/bKTbd8ojKetl/FFkD23c9iXvYTh0zi73T4HWBnHFlkm bIT0cKn86gUvINbJYiadKTEJNtfYmt7pv+2nsuVtmkMPk3BWRFCH0k8oVUMhtRSzf7YAz1RxYHd ijWYjbcXtZUzPcpNlpBsgvUoIHiKjFbClEQaSdNmng55Uq5gQ7NlPo0FmyCWknunpKAR8bCgekD NXdtxYiiTeZLMueZepNbC4fRhher9yGN/KVlUWoMnQQriRTe3UwK960eqcGyQq8mCkrY71I3rvM 4Q/fr3PBfGwaKIjVSAw== X-Proofpoint-GUID: JdO34PRIDC-EzbYnJ1FuOkKOeIZ0IKB4 X-Authority-Analysis: v=2.4 cv=D5R37PRj c=1 sm=1 tr=0 ts=6a35c9d5 cx=c_pps a=bS7HVuBVfinNPG3f6cIo3Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA: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=ikZfMmNF8Hme0_TNbpMA:9 a=QEXdDO2ut3YA:10 a=vBUdepa8ALXHeOFLBtFW:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 adultscore=0 lowpriorityscore=0 spamscore=0 impostorscore=0 bulkscore=0 phishscore=0 clxscore=1015 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190221 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910149890158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 11 +++++++++++ target/hexagon/cpu.c | 5 +++++ 2 files changed, 16 insertions(+) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index e0cf87e5a4c..4bea953ac73 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -100,6 +100,17 @@ typedef struct CPUArchState { target_ulong stack_start; =20 uint8_t slot_cancelled; + +#ifndef CONFIG_USER_ONLY + /* Some system registers are per thread and some are global. */ + uint32_t t_sreg[NUM_SREGS]; + + uint32_t greg[NUM_GREGS]; + uint32_t wait_next_pc; + + /* This alias of CPUState.cpu_index is used by imported sources: */ + uint32_t threadId; +#endif target_ulong new_value_usr; =20 MemLog mem_log_stores[STORES_MAX]; diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 5bf6e85b939..d30e5b64eac 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -299,6 +299,11 @@ static void hexagon_cpu_reset_hold(Object *obj, ResetT= ype type) set_float_detect_tininess(float_tininess_before_rounding, &env->fp_sta= tus); /* Default NaN value: sign bit set, all frac bits set */ set_float_default_nan_pattern(0b11111111, &env->fp_status); +#ifndef CONFIG_USER_ONLY + memset(env->t_sreg, 0, sizeof(uint32_t) * NUM_SREGS); + memset(env->greg, 0, sizeof(uint32_t) * NUM_GREGS); + env->wait_next_pc =3D 0; +#endif env->cause_code =3D HEX_EVENT_NONE; } =20 --=20 2.34.1 From nobody Sun Jul 26 12:31:36 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=1781910237; cv=none; d=zohomail.com; s=zohoarc; b=HHCp6qO7gJsiNKN2GsXVPGm4GR11YN4uanilFTwsCvMpwcu09s5D3eolMPv/JVV7zfT5/Et+1nmWH1dICbY/51p0GfxJBqFCrvJRTjWTLzoBQNUhKat9exmAx25q2pgjUBZQpwFCO5/yaHZx5Z8HXDcGkXPX2Zv1g1TQZ44fbZc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910237; 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=AWqgRF4Ibw8S5E/4OIgHvd5Hhd9R0yIZ8RFAsz/XZEg=; b=eIispO9SxxUfWj2EntzfwbZ79IRinVgO5bMoGrquy5hynNnuApSBpQOFQvLWZZYbRCP7LuQHHxURc3D8OlW7CKNog7Uq6tcFhL4KhWenQC51qXMj2YM+N9osPvREAkPj9XtAKoM5mAYhZHzdxZib0Yga8RbSbMa4wEGbwy6vqbE= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781910237459562.4068870949701; Fri, 19 Jun 2026 16:03:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiBg-0001jt-9o; Fri, 19 Jun 2026 18:59:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBf-0001jk-Gk for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:47 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBd-0001Yz-Vf for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:47 -0400 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLY5gT1336362 for ; Fri, 19 Jun 2026 22:59:34 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evp675557-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 22:59:34 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30c108c19d4so1091062eec.0 for ; Fri, 19 Jun 2026 15:59:34 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.15.59.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 15:59:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=AWqgRF4Ibw8S5E/4OIgHvd5Hhd9R0yIZ8RFAsz/XZEg=; b=DE LAbBcUm+Jf3T4rtslWXArs2YadIUCr8FXRNkx/uscNIPKGsK/wmle0Gu7nyn+ptk Arcq225jeVMDC2xzpkIBDlmLIs5DSpccK6PRv+fmjlaPkOA3NtxabjcHsF0wwu4c HwJtV0R9f9EBW3HRyepw3WiGvAdRFWZ2/9gdyJP4iLMCpY2gWjGH1kRN+KBD4eYR /m0UzsKVDWgB+nBlJtD1kgBHsqa7pTmjC0RxMXeMtSvA3iDckVmRDYDmqBbnlUVi AYavLhV5+rL21BaWwhIa0wf1jX8Ac/lmHCtjMw17+pICu1P+gfAVPCeKN42LBk98 wTuEZbFQYcwg3mEyTb6A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781909974; x=1782514774; 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=AWqgRF4Ibw8S5E/4OIgHvd5Hhd9R0yIZ8RFAsz/XZEg=; b=eZ/62IN/gSS4VmhDPuHTeS+cE2dB5KZ9uWox/UklpAANhyrfzz4UrFDIfebId3vKl0 i7SpED25oA3Y8JDz8tq1Q8xR8MpOQ2JnjtPyC05TlNFDdzshMLf0xDgexSfhkm9wBoNK 2i438MVZoNJytk6nBFL+gCXPssk5YrmhxIhkSwESZVKfrwLQAny1vHK8Bto3KOTmB86p gCFqHQLBCEfACIRpZOEOQJS4ZHsvD2zs740LfayNUSNGNQCyCTzRSYglUIL0vthL39IZ fAq8HryO8a2dxN4kfeIyu3QJgSCSyxv+AMuU+JmwLspP1lkxGu1xg3yduhRYu0XzrWNq Zd+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781909974; x=1782514774; 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=AWqgRF4Ibw8S5E/4OIgHvd5Hhd9R0yIZ8RFAsz/XZEg=; b=ADlD2p5f12yYv+KpBz5SWpQ9CHSwfFaQ8BrSdke/5jKxhGs0wX39pieezzT22YnGbq phSniC36DwcaIWBS43IVRl1ewf7Ca2GMoIB4OspViceuJX4e8Tqa2gc2GSvrRb/Qcpue DKQpzPlnDRwUMoxWUY4a0HvZtnOKq1B7dq26AaaVrFGYkDu/1vZiQdvv2RYIvseHO31r 3HTB2kStnlT1TOSh4kRE+M/MXwBocmkjPATNnN0oS9n1723EeKldiVs0QhydQPH4c7An ZtWb94km9MItLcbBy8pGFrFz7TBub3C89CB4PriENuD66P3iX10mlTbgDrYcEKEJkHbr y9Xg== X-Gm-Message-State: AOJu0YxbgQ/zI95XY16twrf/wLTs24NWlHNNTzobbLlKf+LTT7e5g0An pPIJNi7JZD7s2MA4UXaYX7ndOy472Wt9KrL4LTrYCzrXzhgAloaDlqz6x+aHMxxb9kfa7vwINRP joXgw6knoaqcupYz+53tejCDJh3tsv85FgUfRkinGG6eCgwd9XPCGTowL8/OREsmTsw== X-Gm-Gg: AfdE7cmyoS4wHljIRgLERGAve4MfqSYLhdVyNeNjhN2I2l5TGaOLY3bCcqYqWwgUm9O npiiQci4qMap5TxTZqql+jxkku1okPGCi9snliyOUL1tb2S78JLswk15oLputmaAqObJf7z9yi9 Ht/6ZBjZ+B6Zz+dF5BviZ809lk33XWj4SWCkJUZe3ThNq2W2jS+VV8cwa+6v5xlGAdo2/rsdwv8 bC4ONDFU+5DkY0DdxoSjLZjXilV6PxqZHGoNptKdJAFizn3RNPInzNhvr4ztF104GomOx+JPX1N 7gjDEcHCR46QoqW0oMF/QswfP4PnOkphEkQkA2tep/68Rj7LQA2ICDWlxETO+X4j4CulEibGm68 hKv/A3qRlIyc7v0aCJJYTNUC+BUlHsyb1nVjtF0ddmdT3U0M31V7HK1swUbw= X-Received: by 2002:a05:7300:3c14:b0:304:d75b:f5df with SMTP id 5a478bee46e88-30c070018bemr3415456eec.19.1781909973961; Fri, 19 Jun 2026 15:59:33 -0700 (PDT) X-Received: by 2002:a05:7300:3c14:b0:304:d75b:f5df with SMTP id 5a478bee46e88-30c070018bemr3415449eec.19.1781909973498; Fri, 19 Jun 2026 15:59:33 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pierrick Bouvier Subject: [PULL 12/74] target/hexagon: Add TCG values for sreg, greg Date: Fri, 19 Jun 2026 15:58:09 -0700 Message-Id: <20260619225911.159473-13-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: 9g78Ib8KgFK7qzunnWdjuvAQrZcOg01m X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX1KKF+N6tRfCi Zccx50zCxpzBrJXzF1I6uZtI3gxoevm3WynLSAhj1O7LrV9Aw8yxF6SNWzeGXosyBHOjlLEyrtz yQb1xkn9PpGOqAvmrsVQeuqj1Uqj6wrUMy/I9Hfx3NGPrAE3QgKj+1KZSwdmKicWBQ045D56LWm 1xXk7BzP18wr/fiwDXnMS6Mg+czvmMc+dryMucn5/HubyKgZl0ahGVV2I9tIYeqOiqD7fg4FOz9 D8YXauitY9YO3WobAoIyo0W3hBXUUjgJQyNOJho8Wt0B/DcAeCX4DDYkNr6q4v0dfBzB0mLkyGw XwlUxDLYXf8gZQZ5F/E87+ilxXsGEjc8rIWdGXN/13Z29Xq67x+COsqI+2hFsp9g2qtzOz9nmc3 eJJKZPLnf+tDCQ7kZ9igfaf2L9c2AT6vqkKWSIMWLnnEs+PHMMUqi1bnOoaZ/si0x2aR36HbOAo J3iBYP+vlmKofXE3rwg== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX2qOyiu/ofJ9X 8/b/sIIq9o2e/PfxNeBmr1IdcV+OsGLo2P84ekDVn/coFoR9jm/f/CpTdn6R7THNS9dBCcIJ/UI vvaK/TiPjeY/NhgWEkwdQH3nogBeyOE= X-Proofpoint-GUID: 9g78Ib8KgFK7qzunnWdjuvAQrZcOg01m X-Authority-Analysis: v=2.4 cv=TdOmcxQh c=1 sm=1 tr=0 ts=6a35c9d6 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=8kp5zrIFwsha1M26KQwA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 impostorscore=0 spamscore=0 phishscore=0 malwarescore=0 clxscore=1015 suspectscore=0 bulkscore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190221 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910238240158500 Content-Type: text/plain; charset="utf-8" From: Brian Cain Reviewed-by: Taylor Simpson Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Brian Cain --- target/hexagon/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 d80bc532e24..d8eea56191d 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -282,6 +282,11 @@ extern TCGv_i64 hex_llsc_val_i64; extern TCGv hex_vstore_addr[VSTORES_MAX]; extern TCGv hex_vstore_size[VSTORES_MAX]; extern TCGv hex_vstore_pending[VSTORES_MAX]; +#ifndef CONFIG_USER_ONLY +extern TCGv_i32 hex_greg[NUM_GREGS]; +extern TCGv_i32 hex_t_sreg[NUM_SREGS]; +#endif + =20 void hex_gen_exception_end_tb(DisasContext *ctx, int excp); =20 diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index d61658a798c..97849ab861a 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -66,6 +66,8 @@ TCGv hex_vstore_size[VSTORES_MAX]; TCGv hex_vstore_pending[VSTORES_MAX]; =20 #ifndef CONFIG_USER_ONLY +TCGv_i32 hex_greg[NUM_GREGS]; +TCGv_i32 hex_t_sreg[NUM_SREGS]; TCGv_i32 hex_cause_code; #endif =20 @@ -1084,6 +1086,20 @@ void hexagon_translate_init(void) =20 opcode_init(); =20 +#ifndef CONFIG_USER_ONLY + for (i =3D 0; i < NUM_GREGS; i++) { + hex_greg[i] =3D tcg_global_mem_new_i32(tcg_env, + offsetof(CPUHexagonState, greg[i]), + hexagon_gregnames[i]); + } + for (i =3D 0; i < NUM_SREGS; i++) { + if (i < HEX_SREG_GLB_START) { + hex_t_sreg[i] =3D tcg_global_mem_new_i32(tcg_env, + offsetof(CPUHexagonState, t_sreg[i]), + hexagon_sregnames[i]); + } + } +#endif for (i =3D 0; i < TOTAL_PER_THREAD_REGS; i++) { hex_gpr[i] =3D tcg_global_mem_new(tcg_env, offsetof(CPUHexagonState, gpr[i]), --=20 2.34.1 From nobody Sun Jul 26 12:31:36 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=1781910224; cv=none; d=zohomail.com; s=zohoarc; b=KDU1tylj5LUGmx3ZiwGUrdV3QnyGKC6Eccy2OLBXDNAr4wClEly3uROw9/n1dZ6xW0PBLDN6qh+r1p1BeWgGhymI8jXwoksumIzcFhft93Ys8dk9l7tX2KE/+VOffp/odWR1LqJZdAJQYi8ODKxMAsE+ERwaO9mbd7aGpBj/h2M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910224; 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=3FB08ozXJ75KuaQ0Uu8ai6pxj0RZ56tBJAjvVwXnq20=; b=eTtl/alpIHkj0ayTVwvG2a1ETm8T8ac62N9L9yoMvX6nFJTrUtwLbu4euo1sliEcGsL4cXDa82WzlPXCBA65LXNbnt6++0ccTp7uJKjhUEMFVlGW+zcJYQORxqqovxcgNAYCLDJGovk8RWNFZzWGpkaEDgo6abjX+Oky1ZVaOWA= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781910224153986.8193830065854; Fri, 19 Jun 2026 16:03:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiBh-0001kR-Ux; Fri, 19 Jun 2026 18:59:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBg-0001kH-Sm for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:48 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBf-0001ZG-BF for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:48 -0400 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLXchp1251161 for ; Fri, 19 Jun 2026 22:59:36 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ewbgp8n2n-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 22:59:35 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30bcb065bfdso4413327eec.0 for ; Fri, 19 Jun 2026 15:59:35 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.15.59.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 15:59:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 3FB08ozXJ75KuaQ0Uu8ai6pxj0RZ56tBJAjvVwXnq20=; b=Ak2dELeZzh8etEQ4 mBMMkTwaCuIt9/4n1b2bIafIrK2pIKta7kyVvv0rCO9JGU9XFaNLg1koOKxizyHG GbkKJjW+Ql/eWyuAM8qfSVQBqJ6RDm+1A4oE7yNTn98PV50TginAmDyYm4PmxFSC 0AqSo6KWEakOwc6hq4gNHoCUe3swFgLltAgLXzq1VV+BxYL6wvTbyYp8CVAoAfAl 5j3eIAk6MUEkORUZeEYcfg83E8+A4myLqfyGXO5Ura4J0dy3bXMyUeNF940+2DTc FHbsBo87qwMZKXPCWlL9SwWn1xFqeilhbiAH/s0S0inHFXa0dfiuk6EoxhevozSY zRfIAg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781909975; x=1782514775; 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=3FB08ozXJ75KuaQ0Uu8ai6pxj0RZ56tBJAjvVwXnq20=; b=G0FUMbRlYfC3p0dXtxfiVyuE1ynLkVNgGmds1LjpACSLURf+L6XjvQAZwLAMTzALHB 8NNiARWVL81IfO7Fjx3LMFvmSwsM7sKrjOkJmLfTAIoX+zEbuf4akCpm0jOvXgaE7Rct UEgYhxjlGawTzSh835C05+WiySQRy2cdK2hWUI5gPgW5Dfm+WJRGskdcNxNBQtd05Byk zycfr5kFJR4Iv0YfMOhJkTRnGJxjGDO3XE7uKUMUN2TS0NRlcYLisXrLjV5vGSOkNtni GVuVtcZg7ZbDoGC2JmNBftNfuGIxG6pl6uRdQ3N7mUE0j7pxlhkLqciME+bY27s88Cpe rXKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781909975; x=1782514775; 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=3FB08ozXJ75KuaQ0Uu8ai6pxj0RZ56tBJAjvVwXnq20=; b=UPJtqqSCV03m+awpWnlDA+WEVUBJ3USwMxkTJPjSDDHz+sErcSKIW+ebyLuvRoCPbb UpIgMhZr0al1rMCmVnjeywAgh7vAUgkf3Qq0pJUuv680avUYImVvA49OqKbVKl0ltx6D smFPJETGHmiEXP6xELlheJ02qCxz7Q7cbVdsGl1q3MUURt01+hgQXrraQyPFWtAMVDx5 TdxX8+8jUCOT+RXBtjF4THpMkXNb8PHEp8fcZ5omqLrp5wLqSg6/dnKatZSPvcqED/Y6 1BkYHBuMSeJSMRQcjmshS5D9vq1kats+Jitxpm2+L7j/HU057a/GV2XprJQXzuNgt+QG TMhQ== X-Gm-Message-State: AOJu0Yxa4TG8b918IB4HGwiUN3Ir2T8wAZV4uA0FPOKrGXP5Vo3j/0y6 xRo3fYR8JGw/Igh8KKVI5lYHKD92jcj8qHyx6ND9Bq3J+5xt75IwJqBHLt5Xa4xbU7WsdhaMhfv RynL6FXycw7HYGJc9K2XAApKEwhPWUivJ2hPpp+KUb6WoNcLlDRszdl21ijYgFtfb5w== X-Gm-Gg: AfdE7cmog8DFGJKB5+8eMVd4tG6Kct6jiPjUdzJ4NJmE9r36zJL2l+mygnrYxLUEz1E I2yuOTk09TeJdUJskMIgTeaAkTo3/4yya/yyAa5hUM++d6t1BDb7yTnV102715Heag+cttG76rl pm9xzkoQO6fn8KUx3YuyN5tSQY3zhhxKPEd0i+8SSI5drwd5GZqwY29IFhgnl9GcSjFrPmFmAZ9 vxtWNMCD8/JalwvcUZKzjfyOoOPRU/NXkrdbI+GydcWJyZpY4bz/+wvXfPMobEs7Ckn77E+U82f fPpee+G2WEsQUwEDkscGqaE8qUpQtbdkkWLaQD5QSNhP2uaHXRIiBY8bS5PR/M5nNbVrKS4aBvL xxr2dPCBTVCqEDMUFAWU7Bs/66ZjABPo8NKVhTbg4reGPS3jxGziNCpymwwY= X-Received: by 2002:a05:7300:7fa7:b0:2fc:9d97:d59a with SMTP id 5a478bee46e88-30c0d17fb0emr2348653eec.32.1781909975325; Fri, 19 Jun 2026 15:59:35 -0700 (PDT) X-Received: by 2002:a05:7300:7fa7:b0:2fc:9d97:d59a with SMTP id 5a478bee46e88-30c0d17fb0emr2348633eec.32.1781909974824; Fri, 19 Jun 2026 15:59:34 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 13/74] target/hexagon: Add guest/sys reg writes to DisasContext Date: Fri, 19 Jun 2026 15:58:10 -0700 Message-Id: <20260619225911.159473-14-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: fzQji_Z7qMsT-3rYqeULG3v6sU6eZH3M X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyMCBTYWx0ZWRfXwUU2pnFOuVv4 bel/4lLueFBqoyeMHZECFGB4Db8lTSdEBjyWxwAdWJkrAIY740SbD4XZ8UukVaulke4aYflVKdT DZP/GQu7enL8jwmsUswuS92MxQEhJam5VFkswuCYm3XqodlVCh/C3Xz2AljY9TQB1B8+JXe1dCD 0faF5Ntg2Ky6jSI+DcvSIClfsx6m/5pMNHQA8kLsjZgEjgcTE/kMjxGIiMp0zE4HMbyPHdPaTRV Y4x1FccPuSUgmoR9zozLDthmEcYoMEhbDnGyBhMmyh9Ffd/yiO0v7zP1gV0k410OOfF4npfJpSN lesWenkOM5qf1STleGJZHz1Y+iAE6l4ePLJOnBHmKaMTtAuIqlniCI7TlcsbwgmDPYiw1p5DUNG tqM4iTufl1iFGf+uUG2uvt2GmRjWeGJTIDuYqcalgJeMT1S0OiwY8nNcNG9RAVKfn3JSBwyCkRN K1el7LWt/DCDf9Eo8gA== X-Proofpoint-GUID: fzQji_Z7qMsT-3rYqeULG3v6sU6eZH3M X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMCBTYWx0ZWRfX0C1TrS+rJ7Eb c4R7o4lPRN0fW4q4JvQaFbwxALhCEQBIaRkAbsRPCSGrdiI2P9MS8o0swH7CMK4q/OA2LkBa/ht k5okrKA3jH6GSr+pXzZqKtXMoGEEbvM= X-Authority-Analysis: v=2.4 cv=d8vFDxjE c=1 sm=1 tr=0 ts=6a35c9d7 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA: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=tdgd3nfel_K54e3JQaMA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 priorityscore=1501 malwarescore=0 spamscore=0 phishscore=0 impostorscore=0 suspectscore=0 clxscore=1015 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190220 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910226155158500 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 d8eea56191d..57767acf002 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -41,6 +41,14 @@ typedef struct DisasContext { DECLARE_BITMAP(regs_written, TOTAL_PER_THREAD_REGS); DECLARE_BITMAP(predicated_regs, TOTAL_PER_THREAD_REGS); bool implicit_usr_write; +#ifndef CONFIG_USER_ONLY + int greg_log[GREG_WRITES_MAX]; + int greg_log_idx; + int sreg_log[SREG_WRITES_MAX]; + int sreg_log_idx; + TCGv_i32 t_sreg_new_value[NUM_SREGS]; + TCGv_i32 greg_new_value[NUM_GREGS]; +#endif int preg_log[PRED_WRITES_MAX]; int preg_log_idx; DECLARE_BITMAP(pregs_written, NUM_PREGS); @@ -81,6 +89,34 @@ typedef struct DisasContext { =20 bool is_gather_store_insn(DisasContext *ctx); =20 +#ifndef CONFIG_USER_ONLY +static inline void ctx_log_greg_write(DisasContext *ctx, int rnum) +{ + assert(rnum <=3D HEX_GREG_G3); + ctx->greg_log[ctx->greg_log_idx] =3D rnum; + ctx->greg_log_idx++; +} + +static inline void ctx_log_greg_write_pair(DisasContext *ctx, int rnum) +{ + assert(!(rnum % 2)); + ctx_log_greg_write(ctx, rnum); + ctx_log_greg_write(ctx, rnum + 1); +} + +static inline void ctx_log_sreg_write(DisasContext *ctx, int rnum) +{ + ctx->sreg_log[ctx->sreg_log_idx] =3D rnum; + ctx->sreg_log_idx++; +} + +static inline void ctx_log_sreg_write_pair(DisasContext *ctx, int rnum) +{ + ctx_log_sreg_write(ctx, rnum); + ctx_log_sreg_write(ctx, rnum + 1); +} +#endif + static inline void ctx_log_pred_write(DisasContext *ctx, int pnum) { if (!test_bit(pnum, ctx->pregs_written)) { --=20 2.34.1 From nobody Sun Jul 26 12:31:36 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=1781910050; cv=none; d=zohomail.com; s=zohoarc; b=DUzUvqtH7t2srRIUd7+ZOv4WVxdWkcpxbBNGnyiDnpzsfidK58ceakP++HXkZU2WblxDTCAYy/N2lpT/InklfxoUn3YgWoo1tLzY3vOZyFYhrRVprnwcjKLndDTjIrcdqx8r1+386UvI/K/tj3R/thcwViARgznVpfYVYtXXDa8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910050; 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=hhoakWVabZ7IJR8eGDuXPSShTsj/f5bhJiXKe7ZTYNg=; b=lYGvBk4mW+c81EnYqM0673HykjFaN0gVZCgyEHzG3jnYQaQlVhherf0PaivsJ5prTjJFvINFl6HyeW87WFtVD4XTNn2lpqJXRg7DUHPKSLIcy2sTwUSRSjE5YELGfWlCzdc1+0FPQfASRY5RkRbUrJmYNHbVayxOSgx29vbPr9Y= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781910050909405.87113762938554; Fri, 19 Jun 2026 16:00:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiBk-0001sQ-Ic; Fri, 19 Jun 2026 18:59:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBj-0001nw-HI for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:51 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBg-0001aG-Po for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:51 -0400 Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLYMb04086594 for ; Fri, 19 Jun 2026 22:59:37 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evmyrdj29-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 22:59:37 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30c011c7cb9so6267189eec.1 for ; Fri, 19 Jun 2026 15:59:37 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.15.59.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 15:59:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= hhoakWVabZ7IJR8eGDuXPSShTsj/f5bhJiXKe7ZTYNg=; b=l06ZZAKmJDCIBjL7 1OHVRuwoPP1u/YwkzVd96XSqMN9z344bJZgO6ux2TRmiaBIRdgm9uiOPJ2BE1aP9 91HAPt89SQtnPUMXrlBlSiyd8mI9jg6DtFNPbTWcgO6w4BEpSD+XRtLUEk5t+WpE sUeOihklVg5GDRpaQanLut3s/HkomYbH1pvUR5BHWq15gHh9HTveoIsMYx+fk7X+ D/Ghr4NAr6vKnSScElT99OnyftXtB2O953OAIsTUyEN8aGGBGRLQ4zsOoUq39215 l7g7PJufdDBHyAQmMjbiTNiY5aFYyEQeaZr8j12v4sicURBhxrmDAnH5l0FHcUFG ZRta9g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781909977; x=1782514777; 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=hhoakWVabZ7IJR8eGDuXPSShTsj/f5bhJiXKe7ZTYNg=; b=AtOvQSywAqxxd+m6+LQ9l6rhmVJFRLVuIyGsk5+WR3F+AnLeZpaVAi/GuvQAOHlyV0 eTIDnRGAFPjbcxzgnawN4zLWWqjYAN5XzukBJGdddijKfxvWvdK9uD15Gs7ybdq9ar/U VI92523FhPwPIFZg/VlJek5mptTGdqoKRWsL8r9CtUY9QjytFB2LfU6egjH48CINb5us wmeWE1yNe6q7Tr4nfPxDuL69GphLG1THkMJ4FXeMmNsVmKgm33sWruCfkn3qBV5Ih4ym QWnXbLbb2ep1qqcYc919alA61f9sdpIJ5A3bZwltvwviwSjciQg8HNP7kRmhzZ7F6Wsd ikZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781909977; x=1782514777; 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=hhoakWVabZ7IJR8eGDuXPSShTsj/f5bhJiXKe7ZTYNg=; b=bBMkDRlabWyR60t1sOpxR3InfPmpAPODzXTHLbIGP440myDI1JpFFF6Sp/vdn1UhdX KtlX9bMMItLzBDVQLm+yx2IW0t1UxFtqvQOaXRUjvoAcg0OSg+y6ZLTT7LQ6JBFQN1mX 35QPYQ3fghXc4GRsQLI7kinDuKCdO2CydQFI9lnYM54tOBXRBDI9QNuyeFvle3/6PaFV YDfmHTlxD1659yBnvxBipnfFzWzIB1n2gVmBakeXVG5821NegmY2swJZpv3wMhE0dWXa uaVwdEAHngHsqWfMloSBKumZ/oq+jP384bZHgOHszlSsnhUaS3YvlY8BUy9S3mtu3rIp LKBQ== X-Gm-Message-State: AOJu0YynVCQwCKZMVYzJtI7o+MmgQ8mu1RSqR3LhHzHVoZKMC8B6GbPb CctCEff4+tIT/LqWDB968uedS4cN0XK9RUhiZo5N7gRHtdA1913FpX+VdnP4BMynebwZ8X7l48+ nJdElHWDJ/0SDUGsSnOFNuUZmhGF7Yuk8E6tAnYcZGORI5UtF07l+eXFku9nuK7raSA== X-Gm-Gg: AfdE7clvnBPMkAjQQPZaWR8IQ2wQuXbkNBMm19JcUzUPJlXsxlQ90idxEwaNNa/0x5b AJ+tEI6hJeGt7UH8gLqbuv6xXNAIKrmIAGfWxgYh6Wxlctg1ORLNqBw+SrplSy5+/2zp5MUQorY A59KfeN0YSjgfjBYjUZzi1z8kfIdrSL5lCqZxQVAS7jsLzSxNlOm4MlZ9PXEGpsp30upCyedDhs CySJLPq9oiim9haEXZi9xT5n3Ln7LM22WiAomSiLSyXvnXakI9Jowm4EEbH0NApWwCOVgM2hrV9 SSAuSSo2UNAco6BQ5ZsgUyLUmy0sBNuTXKL8jgCgM0uD9QD7O6ZEUWY3KsIqEImsH+xklofIQcR 0B6jygyy7aaqVdpfAmKQjQjj7c1UqiuCwwN2KLv1sk+jBAXFJhauHkF4LW6I= X-Received: by 2002:a05:7300:3c15:b0:2ea:ed3e:13b7 with SMTP id 5a478bee46e88-30c06e03dd3mr3845401eec.7.1781909976595; Fri, 19 Jun 2026 15:59:36 -0700 (PDT) X-Received: by 2002:a05:7300:3c15:b0:2ea:ed3e:13b7 with SMTP id 5a478bee46e88-30c06e03dd3mr3845386eec.7.1781909976022; Fri, 19 Jun 2026 15:59:36 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Pierrick Bouvier Subject: [PULL 14/74] target/hexagon: Add imported macro, attr defs for sysemu Date: Fri, 19 Jun 2026 15:58:11 -0700 Message-Id: <20260619225911.159473-15-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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=RZWgzVtv c=1 sm=1 tr=0 ts=6a35c9d9 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=9WelToRRDTwRCstGtewA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: 1sANbnEc6XGhjB0qvUUBVeyKzS0n8Qj6 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX7XV3WkzgmKx7 YM3id/dGUP0s9D+SfXbcS0oukO391dJqn8uOuLn+/i3VPYDIZByI6/oRqB4zbNlHuWrkOtukMND 6doAxy3264YUdxVfeyx2OkCBzqzqPnKj9R41pgzGsXOk1+yRmH4a2GOLNsHEip8cdOhjcerhQrr x00W/7F5toPZmtJmg3Moj9TKIZEQcXHsxqIS2ptQVeQhVEbhMaqE3CEUpiK6UkhdyKergPAGCnG 9IYKnCWkiwL+TFtT2k9LjT9pVQyvHDFHxd1k3S3j1YxXkg4si4vdLpocO2cAJkIZsDnnR0rRyHD 86xqRfQI617qqk2SLRur/ML2IF+UHLO+cMimga3yFNS1Pynz5AeYv7mhA5uigLAXdcn0EZLVRMl UHQaIIFDuBqJ3ogPPyU3PMNK2bgnqd1+AE9P45ajPStXxTf24sfM8qh8M/uanJmw2HzWht4VH3p v3yZ9GGOjPhydX2O3vw== X-Proofpoint-GUID: 1sANbnEc6XGhjB0qvUUBVeyKzS0n8Qj6 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfXy/9QrpSqloTo K9QOPglEgyZCTerAPqqlzR41bJJQFT+GF0tQLdNBC7vsyP2TqHLewYXkDagxpqZPxq34zeTCYzQ jfmh8G8NhxsHFW4l4jv6OaYPo+dREGw= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 clxscore=1015 suspectscore=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 bulkscore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190221 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UPPERCASE_50_75=0.008 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910051840158500 From: Brian Cain Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- target/hexagon/attribs_def.h.inc | 35 ++- target/hexagon/imported/macros.def | 482 ++++++++++++++++++++++++++++- 2 files changed, 504 insertions(+), 13 deletions(-) mode change 100755 =3D> 100644 target/hexagon/imported/macros.def diff --git a/target/hexagon/attribs_def.h.inc b/target/hexagon/attribs_def.= h.inc index 9e3a05f8828..6c55063a309 100644 --- a/target/hexagon/attribs_def.h.inc +++ b/target/hexagon/attribs_def.h.inc @@ -52,6 +52,9 @@ DEF_ATTRIB(REGWRSIZE_4B, "Memory width is 4 bytes", "", "= ") DEF_ATTRIB(REGWRSIZE_8B, "Memory width is 8 bytes", "", "") DEF_ATTRIB(MEMLIKE, "Memory-like instruction", "", "") DEF_ATTRIB(MEMLIKE_PACKET_RULES, "follows Memory-like packet rules", "", "= ") +DEF_ATTRIB(CACHEOP, "Cache operation", "", "") +DEF_ATTRIB(COPBYADDRESS, "Cache operation by address", "", "") +DEF_ATTRIB(COPBYIDX, "Cache operation by index", "", "") DEF_ATTRIB(RELEASE, "Releases a lock", "", "") DEF_ATTRIB(ACQUIRE, "Acquires a lock", "", "") =20 @@ -101,7 +104,9 @@ DEF_ATTRIB(ROPS_3, "Compound instruction worth 3 RISC-o= ps", "", "") =20 /* access to implicit registers */ DEF_ATTRIB(IMPLICIT_WRITES_LR, "Writes the link register", "", "UREG.LR") +DEF_ATTRIB(IMPLICIT_READS_PC, "Reads the program counter", "UREG.PC", "") DEF_ATTRIB(IMPLICIT_WRITES_SP, "Writes the stack pointer", "", "UREG.SP") +DEF_ATTRIB(IMPLICIT_READS_SP, "Reads the stack pointer", "UREG.SP", "") DEF_ATTRIB(IMPLICIT_WRITES_FP, "Writes the frame pointer", "", "UREG.FP") DEF_ATTRIB(IMPLICIT_WRITES_LC0, "Writes loop count for loop 0", "", "UREG.= LC0") DEF_ATTRIB(IMPLICIT_WRITES_LC1, "Writes loop count for loop 1", "", "UREG.= LC1") @@ -111,13 +116,19 @@ DEF_ATTRIB(IMPLICIT_WRITES_P0, "Writes Predicate 0", = "", "UREG.P0") DEF_ATTRIB(IMPLICIT_WRITES_P1, "Writes Predicate 1", "", "UREG.P1") DEF_ATTRIB(IMPLICIT_WRITES_P2, "Writes Predicate 1", "", "UREG.P2") DEF_ATTRIB(IMPLICIT_WRITES_P3, "May write Predicate 3", "", "UREG.P3") -DEF_ATTRIB(IMPLICIT_READS_PC, "Reads the PC register", "", "") -DEF_ATTRIB(IMPLICIT_READS_P0, "Reads the P0 register", "", "") -DEF_ATTRIB(IMPLICIT_READS_P1, "Reads the P1 register", "", "") -DEF_ATTRIB(IMPLICIT_READS_P2, "Reads the P2 register", "", "") -DEF_ATTRIB(IMPLICIT_READS_P3, "Reads the P3 register", "", "") +DEF_ATTRIB(IMPLICIT_READS_P0, "Reads Predicate 0", "UREG.P0", "") +DEF_ATTRIB(IMPLICIT_READS_P1, "Reads Predicate 1", "UREG.P1", "") +DEF_ATTRIB(IMPLICIT_READS_P3, "Reads Predicate 3", "UREG.P3", "") DEF_ATTRIB(IMPLICIT_WRITES_USR, "May write USR", "", "") -DEF_ATTRIB(IMPLICIT_READS_SP, "Reads the SP register", "", "") +DEF_ATTRIB(IMPLICIT_WRITES_CCR, "Writes CCR register", "", "UREG.CCR") +DEF_ATTRIB(IMPLICIT_WRITES_GOSP, "Writes GOSP register", "", "UREG.GOSP") +DEF_ATTRIB(IMPLICIT_WRITES_SSR, "Writes SSR register", "", "UREG.SSR") +DEF_ATTRIB(IMPLICIT_WRITES_SGP0, "Writes SGP0 register", "", "UREG.SGP0") +DEF_ATTRIB(IMPLICIT_WRITES_SGP1, "Writes SGP1 register", "", "UREG.SGP1") +DEF_ATTRIB(IMPLICIT_WRITES_IMASK_ANYTHREAD, + "Writes IMASK for any thread", "", "") +DEF_ATTRIB(IMPLICIT_WRITES_STID_PRIO_ANYTHREAD, + "Writes STID priority for any thread", "", "") DEF_ATTRIB(COMMUTES, "The operation is communitive", "", "") DEF_ATTRIB(DEALLOCRET, "dealloc_return", "", "") DEF_ATTRIB(DEALLOCFRAME, "deallocframe", "", "") @@ -137,9 +148,14 @@ DEF_ATTRIB(RESTRICT_SLOT3ONLY, "Must execute on slot3"= , "", "") DEF_ATTRIB(RESTRICT_NOSLOT1, "No slot 1 instruction in parallel", "", "") DEF_ATTRIB(RESTRICT_PREFERSLOT0, "Try to encode into slot 0", "", "") DEF_ATTRIB(RESTRICT_PACKET_AXOK, "May exist with A-type or X-type", "", "") +DEF_ATTRIB(RESTRICT_SLOT1_AOK, "Slot 1 is allowed", "", "") =20 DEF_ATTRIB(ICOP, "Instruction cache op", "", "") =20 +DEF_ATTRIB(EXCEPTION_SWI, "Software interrupt exception", "", "") +DEF_ATTRIB(DMA, "DMA instruction", "", "") +DEF_ATTRIB(NO_TIMING_LOG, "Does not get logged to the timing model", "", "= ") + DEF_ATTRIB(HWLOOP0_END, "Ends HW loop0", "", "") DEF_ATTRIB(HWLOOP1_END, "Ends HW loop1", "", "") DEF_ATTRIB(RET_TYPE, "return type", "", "") @@ -151,6 +167,10 @@ DEF_ATTRIB(DCFETCH, "dcfetch type", "", "") =20 DEF_ATTRIB(L2FETCH, "Instruction is l2fetch type", "", "") =20 +DEF_ATTRIB(DCTAGOP, "Data cache tag operation", "", "") +DEF_ATTRIB(ICTAGOP, "Instruction cache tag operation", "", "") +DEF_ATTRIB(L2TAGOP, "L2 cache tag operation", "", "") + DEF_ATTRIB(ICINVA, "icinva", "", "") DEF_ATTRIB(DCCLEANINVA, "dccleaninva", "", "") =20 @@ -166,6 +186,9 @@ DEF_ATTRIB(NOTE_LATEPRED, "The predicate can not be use= d as a .new", "", "") DEF_ATTRIB(NOTE_NVSLOT0, "Can execute only in slot 0 (ST)", "", "") DEF_ATTRIB(NOTE_NOVP, "Cannot be paired with a HVX permute instruction", "= ", "") DEF_ATTRIB(NOTE_VA_UNARY, "Combined with HVX ALU op (must be unary)", "", = "") +DEF_ATTRIB(NOTE_SLOT1_AOK, "Slot 1 is allowed", "", "") +DEF_ATTRIB(NOTE_GUEST, "Guest mode instruction", "", "") +DEF_ATTRIB(NOTE_BADTAG_UNDEF, "Bad tag results in undefined behavior", "",= "") =20 /* V6 MMVector Notes for Documentation */ DEF_ATTRIB(NOTE_SHIFT_RESOURCE, "Uses the HVX shift resource.", "", "") diff --git a/target/hexagon/imported/macros.def b/target/hexagon/imported/m= acros.def old mode 100755 new mode 100644 index 4bbcfdd5e19..13eb13c71f7 --- a/target/hexagon/imported/macros.def +++ b/target/hexagon/imported/macros.def @@ -353,6 +353,12 @@ DEF_MACRO( () ) =20 +DEF_MACRO( + fREAD_SSR, /* read SSR register */ + (READ_RREG(REG_SSR)), /* behavior */ + () +) + DEF_MACRO( fWRITE_LR, /* write lr */ WRITE_RREG(REG_LR,A), /* behavior */ @@ -371,12 +377,36 @@ DEF_MACRO( (A_IMPLICIT_WRITES_SP) ) =20 +DEF_MACRO( + fWRITE_GOSP, /* write gosp */ + WRITE_RREG(REG_GOSP,A), /* behavior */ + (A_IMPLICIT_WRITES_GOSP) +) + DEF_MACRO( fREAD_SP, /* read stack pointer */ (READ_RREG(REG_SP)), /* behavior */ () ) =20 +DEF_MACRO( + fREAD_GOSP, /* read guest other stack pointer */ + (READ_RREG(REG_GOSP)), /* behavior */ + () +) + +DEF_MACRO( + fREAD_GELR, /* read guest other stack pointer */ + (READ_RREG(REG_GELR)), /* behavior */ + () +) + +DEF_MACRO( + fREAD_GEVB, /* read guest other stack pointer */ + (READ_RREG(REG_GEVB)), /* behavior */ + () +) + DEF_MACRO( fREAD_CSREG, /* read CS register */ (READ_RREG(REG_CSA+N)), /* behavior */ @@ -570,6 +600,11 @@ DEF_MACRO( WRITE_PREG(3,VAL), /* behavior */ (A_IMPLICIT_WRITES_P3) ) +DEF_MACRO( + fWRITE_P3_LATE, /* write Predicate 0 */ + {WRITE_PREG(3,VAL); fHIDE(MARK_LATE_PRED_WRITE(3))} , /* behavio= r */ + (A_IMPLICIT_WRITES_P3,A_RESTRICT_LATEPRED) +) =20 DEF_MACRO( fPART1, /* write Predicate 0 */ @@ -660,6 +695,7 @@ DEF_MACRO( ((size8s_t)((size2s_t)(A))), /* optional attributes */ ) + DEF_MACRO( fCAST2_8u, /* macro name */ ((size8u_t)((size2u_t)(A))), @@ -1532,18 +1568,137 @@ DEF_MACRO(fECHO, /* OS interface and stop/wait */ /********************************************/ =20 +DEF_MACRO(RUNNABLE_THREADS_MAX, + /* */, + () +) + +DEF_MACRO(THREAD_IS_ON, + ((PROC->arch_proc_options->thread_enable_mask>>TNUM) & 0x1), + () +) + +DEF_MACRO(THREAD_EN_MASK, + ((PROC->arch_proc_options->thread_enable_mask)), + () +) + + + +DEF_MACRO(READ_IMASK, + /* */, + () +) +DEF_MACRO(WRITE_IMASK, + /* */, + (A_IMPLICIT_WRITES_IMASK_ANYTHREAD) +) + + +DEF_MACRO(WRITE_PRIO, + /* */, + (A_IMPLICIT_WRITES_STID_PRIO_ANYTHREAD) +) + + +DEF_MACRO(DO_IASSIGNW, + /* */, + (A_IMPLICIT_WRITES_IMASK_ANYTHREAD) +) + + + + +DEF_MACRO(fDO_NMI, + /* */, +) + +DEF_MACRO(fDO_TRACE, + /* */, +) + +DEF_MACRO(DO_IASSIGNR, + /* */, + () +) + +DEF_MACRO(DO_SWI, + /* */, + (A_EXCEPTION_SWI) +) + +DEF_MACRO(DO_CSWI, + LOG_GLOBAL_REG_WRITE(REG_IPEND,GLOBAL_REG_READ(REG_IPEND) & ~((REG= ) & GLOBAL_REG_READ(REG_IEL)));, + () +) + +DEF_MACRO(DO_CIAD, + sys_ciad(thread,VAL); LOG_GLOBAL_REG_WRITE(REG_IAD,GLOBAL_REG_READ= (REG_IAD) & ~(VAL));, + (A_EXCEPTION_SWI) +) + +DEF_MACRO(DO_SIAD, + sys_siad(thread,VAL); LOG_GLOBAL_REG_WRITE(REG_IAD,GLOBAL_REG_READ= (REG_IAD) | (VAL));, + (A_EXCEPTION_SWI) +) + +DEF_MACRO(fBREAK, + /* */, + () +) + DEF_MACRO(fPAUSE, {sys_pause(thread, insn->slot, IMM);}, () ) =20 + DEF_MACRO(fTRAP, - warn("Trap NPC=3D%x ",fREAD_NPC()); - warn("Trap exception, PCYCLE=3D%lld TYPE=3D%d NPC=3D%x IMM=3D0x%x",thr= ead->processor_ptr->pstats[pcycles],TRAPTYPE,fREAD_NPC(),IMM); - register_trap_exception(thread,fREAD_NPC(),TRAPTYPE,IMM);, + /* */, + (A_EXCEPTION_SWI) +) + +DEF_MACRO(fCLEAR_RTE_EX, + /* */, + () +) + +DEF_MACRO(fTLB_LOCK_AVAILABLE, + (fREAD_GLOBAL_REG_FIELD(SYSCONF,SYSCFG_TLBLOCK) =3D=3D 0), () ) =20 +DEF_MACRO(fK0_LOCK_AVAILABLE, + (fREAD_GLOBAL_REG_FIELD(SYSCONF,SYSCFG_K0LOCK) =3D=3D 0), + () +) + +DEF_MACRO(fSET_TLB_LOCK, + { + if (fTLB_LOCK_AVAILABLE()) { + fLOG_GLOBAL_REG_FIELD(SYSCONF,SYSCFG_TLBLOCK,1); + } else { + sys_waiting_for_tlb_lock(thread); + } + }, + () +) + +DEF_MACRO(fSET_K0_LOCK, + /* */, + () +) + +DEF_MACRO(fCLEAR_TLB_LOCK, + /* */, + () +) + +DEF_MACRO(fCLEAR_K0_LOCK, + /* */, + () +) + DEF_MACRO(fALIGN_REG_FIELD_VALUE, ((VAL)<Regs[REG_##REG], reg_field_info[FIELD].width, @@ -1561,6 +1734,11 @@ DEF_MACRO(fREAD_REG_FIELD, /* ATTRIBS */ ) =20 +DEF_MACRO(fREAD_GLOBAL_REG_FIELD, + /* */, + /* ATTRIBS */ +) + DEF_MACRO(fGET_FIELD, fEXTRACTU_BITS(VAL, reg_field_info[FIELD].width, @@ -1576,6 +1754,174 @@ DEF_MACRO(fSET_FIELD, /* ATTRIBS */ ) =20 +DEF_MACRO(fSET_RUN_MODE_NOW, + /* */, +) + +DEF_MACRO(fIN_DEBUG_MODE, + (thread->debug_mode || (fREAD_GLOBAL_REG_FIELD(ISDBST,ISDBST_DEBUGMODE= ) & 1<debug_mode), + () +) + + +DEF_MACRO(fIN_DEBUG_MODE_WARN, + { + if (fREAD_GLOBAL_REG_FIELD(ISDBST,ISDBST_DEBUGMODE) & 1<> 1) | ((VAL) >> 2) | ((VAL) >> 4) | ((VAL) >> 8) | (= (VAL) >> 16)), + () +) + +DEF_MACRO(fPOW2_ROUNDUP, + fPOW2_HELP_ROUNDUP((VAL)-1)+1, + () +) + +DEF_MACRO(fTLB_IDXMASK, + /* */, + () +) + +DEF_MACRO(fTLB_NONPOW2WRAP, + /* */, + /* ATTRIBS */ +) + +DEF_MACRO(fTLBW, + /* */, + /* ATTRIBS */ +) + +DEF_MACRO(fTLB_ENTRY_OVERLAP, + fHIDE( (sys_check_overlap(thread,VALUE)!=3D-2) ), + /* ATTRIBS */ +) + +DEF_MACRO(fTLB_ENTRY_OVERLAP_IDX, + fHIDE(sys_check_overlap(thread,VALUE)), + /* ATTRIBS */ +) + + +DEF_MACRO(fTLBR, + TLB_REG_READ(fTLB_NONPOW2WRAP(fTLB_IDXMASK(INDEX))), + /* ATTRIBS */ +) + +DEF_MACRO(fTLBP, + tlb_lookup(thread,((TLBHI)>>12),((TLBHI)<<12),1), + /* attribs */ +) + + + +DEF_MACRO(READ_SGP0, + READ_RREG(REG_SGP), + () +) + +DEF_MACRO(READ_SGP1, + READ_RREG(REG_SGP+1), + () +) + +DEF_MACRO(READ_SGP10, + READ_RREG_PAIR(REG_SGP), + () +) + +DEF_MACRO(READ_UGP, + READ_RREG(REG_UGP), +) + +DEF_MACRO(WRITE_SGP0, + WRITE_RREG(REG_SGP,VAL), + (A_IMPLICIT_WRITES_SGP0) +) + +DEF_MACRO(WRITE_SGP1, + WRITE_RREG(REG_SGP+1,VAL), + (A_IMPLICIT_WRITES_SGP1) +) + +DEF_MACRO(WRITE_SGP10, + WRITE_RREG_PAIR(REG_SGP,VAL), + (A_IMPLICIT_WRITES_SGP0,A_IMPLICIT_WRITES_SGP1) +) + +DEF_MACRO(WRITE_UGP, + WRITE_RREG(REG_UGP,VAL), +) + +DEF_MACRO(fSTART, + /* */, + () +) + +DEF_MACRO(fRESUME, + fLOG_GLOBAL_REG_FIELD(MODECTL,MODECTL_W, + fREAD_GLOBAL_REG_FIELD(MODECTL,MODECTL_W) & (~(REG))), + () +) + +DEF_MACRO(fGET_TNUM, + thread->threadId, + () +) + /********************************************/ /* Cache Management */ /********************************************/ @@ -1602,19 +1948,49 @@ DEF_MACRO(fISYNC, ) =20 =20 +DEF_MACRO(fICFETCH, + , + () +) + DEF_MACRO(fDCFETCH, sys_dcfetch(thread, (REG), insn->slot), (A_MEMLIKE) ) =20 DEF_MACRO(fICINVA, - { - arch_internal_flush(thread->processor_ptr, 0, 0xffffffff); - sys_icinva(thread, (REG),insn->slot); - }, + /* */, (A_ICINVA) ) =20 +DEF_MACRO(fDCTAGR, + ({DST=3Dsys_dctagr(thread, INDEX, insn->slot,DSTREGNO);})/* FIXME */, + () +) + +DEF_MACRO(fDCTAGW, + (sys_dctagw(thread, INDEX, PART2, insn->slot)), + () +) +DEF_MACRO(fICTAGR, + ({DST=3Dsys_ictagr(thread, INDEX, insn->slot,REGNO);}), + () +) + +DEF_MACRO(fICDATAR, + ({DST=3Dsys_icdatar(thread, INDEX, insn->slot);}), + () +) + +DEF_MACRO(fICTAGW, + (sys_ictagw(thread, INDEX, PART2, insn->slot)), + () +) +DEF_MACRO(fICDATAW, + ({ fHIDE(); }), + () +) + DEF_MACRO(fL2FETCH, sys_l2fetch(thread, ADDR,HEIGHT,WIDTH,STRIDE,FLAGS, insn->slot), (A_MEMLIKE,A_L2FETCH) @@ -1635,6 +2011,12 @@ DEF_MACRO(fDCZEROA, (A_MEMLIKE) ) =20 +DEF_MACRO(fDCINVA, + sys_dcinva(thread, (REG)), + (A_MEMLIKE) +) + + DEF_MACRO(fCHECKFORPRIV, {sys_check_privs(thread); if (EXCEPTION_DETECTED) return; }, () @@ -1645,6 +2027,16 @@ DEF_MACRO(fCHECKFORGUEST, () ) =20 +DEF_MACRO(fTAKEN_INTERRUPT_EDGECLEAR, + { proc->global_regs[REG_IPEND] &=3D ~(INT_NUMTOMASK(intnum) & proc= ->global_regs[REG_IEL]); }, + () +) + +DEF_MACRO(fSET_IAD, + /* */, + () +) + DEF_MACRO(fBRANCH_SPECULATE_STALL, { sys_speculate_branch_stall(thread, insn->slot, JUMP_COND(JUMP_PRED= _SET), @@ -1664,3 +2056,79 @@ DEF_MACRO(IV1DEAD, , () ) + +DEF_MACRO(fIN_MONITOR_MODE, + sys_in_monitor_mode(thread), + () +) + +DEF_MACRO(fIN_USER_MODE, + sys_in_user_mode(thread), + () +) + +DEF_MACRO(fIN_GUEST_MODE, + sys_in_guest_mode(thread), + () +) + +DEF_MACRO(fGRE_ENABLED, + fREAD_REG_FIELD(CCR,CCR_GRE), + () +) + +DEF_MACRO(fGTE_ENABLED, + fREAD_REG_FIELD(CCR,CCR_GRE), + () +) + +DEF_MACRO(fTRAP1_VIRTINSN, + ((fIN_GUEST_MODE()) + && (fGRE_ENABLED()) + && ( ((IMM) =3D=3D 1) + || ((IMM) =3D=3D 3) + || ((IMM) =3D=3D 4) + || ((IMM) =3D=3D 6))), + () +) + +DEF_MACRO(fVIRTINSN_RTE, + do { + thread->trap1_info =3D TRAP1_VIRTINSN_RTE; + fLOG_REG_FIELD(SSR,SSR_SS,fREAD_REG_FIELD(GSR,GSR_SS)); + fLOG_REG_FIELD(CCR,CCR_GIE,fREAD_REG_FIELD(GSR,GSR_IE)); + fLOG_REG_FIELD(SSR,SSR_GM,!fREAD_REG_FIELD(GSR,GSR_UM)); + fBRANCH((fREAD_GELR() & -4),COF_TYPE_RTE); + fINTERNAL_CLEAR_SAMEPAGE(); + } while (0), + (A_IMPLICIT_WRITES_CCR,A_IMPLICIT_WRITES_SSR) +) + +DEF_MACRO(fVIRTINSN_SETIE, + do { + fLOG_REG_FIELD(CCR,CCR_GIE,(REG) & 1); + REG =3D fREAD_REG_FIELD(CCR,CCR_GIE); + thread->trap1_info =3D TRAP1_VIRTINSN_SETIE; + } while (0), + (A_IMPLICIT_WRITES_CCR) +) + +DEF_MACRO(fVIRTINSN_GETIE, + { + thread->trap1_info =3D TRAP1_VIRTINSN_GETIE; + REG =3D fREAD_REG_FIELD(CCR,CCR_GIE); + }, + () +) + +DEF_MACRO(fVIRTINSN_SPSWAP, + do { + if (fREAD_REG_FIELD(GSR,GSR_UM)) { + size4u_t TEMP =3D REG; + REG =3D fREAD_GOSP(); + fWRITE_GOSP(TEMP); + thread->trap1_info =3D TRAP1_VIRTINSN_SPSWAP; + } + } while (0), + (A_IMPLICIT_WRITES_GOSP) +) --=20 2.34.1 From nobody Sun Jul 26 12:31:36 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=1781910103; cv=none; d=zohomail.com; s=zohoarc; b=j5ZjLS1CjnfVZuJsRbksUFh2rZzIvbzKwqRgwb7YllHsE+BFW9E8PyyhJqGqGoADpAL9mmp4d/zV3DKK82o1HFQav+77CsPgL+xhhjwpFKygoKzI4eXOHP4bSGb5TwGtvFXsCmfVIvaEJWhx+dtR0PTeHRhQG3jnPueed+dbAyo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910103; 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=QOPCxfzT1avmaDDfh5FOnklE9vds5SWBGBuv99jugao=; b=JBDSkKBEpY/usXAXISfJDQ4smDWueXVI/S8IQx9LhZh3aKtjsrC214EjNaJWLOUXi4dPCL9pYi6IgP10RpapEj3xJozW+JlzQgqYrhN3DgcYQVmLLJfh1ryXe8K5SLaPIMpBre3zhUPZmwMje1109WR2W4/djHtpojwkZjxPiVw= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178191010314898.65417416056607; Fri, 19 Jun 2026 16:01:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiBm-0001zW-Fy; Fri, 19 Jun 2026 18:59:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBk-0001st-K5 for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:52 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBi-0001aK-9w for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:52 -0400 Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLY7bD4085515 for ; Fri, 19 Jun 2026 22:59:39 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evmyrdj2c-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 22:59:38 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30bcbb34e57so4147979eec.1 for ; Fri, 19 Jun 2026 15:59:38 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.15.59.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 15:59:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= QOPCxfzT1avmaDDfh5FOnklE9vds5SWBGBuv99jugao=; b=hlcgF2hz+ZMUAo4I 2Bf5GXDvTZmwYbE+EX24smd0SehIVJOeH+8IECLF9yMpxD54tQJ9ad4xJrOL6LBc 3BSx2FDgEZ3VPvMlOAPEWou+XWjMq9uHZu/Qn+tvHzZZgym8oO/N1YFmLMfwbbcb 6jaMhMfVakrT8gECCTR0xmgY9+B/2a+Yc2tZF+3Vj6SxlTl0faocHOhH36PlGEai Uqx7OFMGbnfdrwhtpm9HgO/MNJuUi2MMhvo9XHOYTqVpHmsefIHQL/FT8TefUSax f3y6QLJK2Mbbd/IeCJD3VNqZ2qrLWi5RzPaP/TIXOqqKsuDF6kpqPmNhcjdJd0lf aiaEMA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781909978; x=1782514778; 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=QOPCxfzT1avmaDDfh5FOnklE9vds5SWBGBuv99jugao=; b=kSdk9k2ORPqN25rb5g1ye3OjXLUgsR9HtTD9yvGIWxb2WlCMxzNwl7+4rA3XrvSacK 85Ogc82zB5JBH7bJVaQJlY8Ydtwe0sV6UlTvpOJ5aqh5F1Mu69ZFsI0xvo/G5NqRE1gf XvE3AvmdgxiMMbEk6EoqbMykxDhYJ3V3rHU2ZJFQ/vHjUC4WOagvWe1DpXglVsIA1n6D 2g1xrdrqpXjntdXVbs+tY1nGFwVsjvf0tx8yg9pHnS2M2ofrjebS3SJ3YzblpO8IKQIl 9vVyUT5So8Q+saOaKE8ca7DOpAvJciAm0ABO7kKNRHgfuMJSrhLdyUuyjtIGleEECfBu hXOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781909978; x=1782514778; 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=QOPCxfzT1avmaDDfh5FOnklE9vds5SWBGBuv99jugao=; b=MDPV46TBxq1+6MIoV35M6NDfPS/JFMnX7rjngi3B5xJrq+ay2FEmvB4NAyQjFPbSLF BqW2Y4NaLS087pJ3FIfvhbWQM3N7Jk403IB5VN63QAqOmc+r8UqLyteLB0Lzl1PEvmH1 geKyA17nyNdvMnuhOVP9TjlYT0WXkRhXVutDubfdfseOxKPiU1U6nOiqB535qguoaN/d eGwJjch41+5ktLe01+h216UXOlWPKTDUl7WEQkur2IrD/NiWDjSHE1yT8n7or63wEF6p w4DV+fLWYIhcU0RiDgMLkznLl6C0KbjoFAo3e2sCkxgtxcH4LC/wzMvayg2XX1G5fDkB xYAQ== X-Gm-Message-State: AOJu0YwfcfpsMVLnniYcpWwkkuTZLYXGl1UU5g35rrWX2kA1rf+RArsm GRM4kq/CNFdsEZ2i9q8OuLo0BAnVprmAjPyIP4VZp4EwaunZdofK1+wkoyMTr38LKMMPksyNAnn pDWAl+iFdkJrJOV3JtZRMyDb3JMRxMAJJp6eTt1gnS2XkE0EG0atpQXXHRYUT3nLFtw== X-Gm-Gg: AfdE7cmJy+9c9N0lrmAPIG1u8JlDNMqtvg4BIysWEwf6ET+F0vVVg1ktcED2MP+vOXa wUf7Xco7Ge+Ms8knAsCheqq4D4pU30DMeF43kn7UKnSX81zXcXv81ptKVOoKElXnw0dWZ31P5OQ zFO94LoPU1v8GeRWpiflxf5SM4IAC3p3B7Hry7W9uLETaM10mV7lwZe0iI94Dcgrp6EYC6RvvfI uI9ctGP4ddjvIDtCwS5XhDuKa+npNbqScQIlErjHSCKX2BndIq2oteTK+UwXx2V+rJ5ptuyUzM/ /CP4rK7jhpvg2VYFEh2y9JVWGzULrKTmrHiyNuawSIp92Q8LosTaHykZ7KO9Q+j4WYpAypIHmc9 jXTEWnEuA/r0xEmKh/NW/GaIXuU+ZYX4S5GXOW5+GYUg8KaACROirgjZ0oHQ= X-Received: by 2002:a05:693c:3105:b0:304:dd1c:737e with SMTP id 5a478bee46e88-30c07156ec1mr3408517eec.16.1781909977873; Fri, 19 Jun 2026 15:59:37 -0700 (PDT) X-Received: by 2002:a05:693c:3105:b0:304:dd1c:737e with SMTP id 5a478bee46e88-30c07156ec1mr3408502eec.16.1781909977295; Fri, 19 Jun 2026 15:59:37 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 15/74] target/hexagon: Add new macro definitions for sysemu Date: Fri, 19 Jun 2026 15:58:12 -0700 Message-Id: <20260619225911.159473-16-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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=RZWgzVtv c=1 sm=1 tr=0 ts=6a35c9da cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA: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=VoFV4bgUeqxKQXHmsMYA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: _Fi7HOY7O0UEHEV54xqoj0PR-iTbraiA X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX2UMhwMt188vx JycinipK7sx2bQuK+46Knzufau1ZXOxx/L5rA2DqZwxU2r7BsEtUWPl4a3YBChvL975vGeWg5o/ PEANVesU0/iS56rj4yTf9sEMj3zjRucUEkoXe26SBJVqnugJXBCI5Oxq8XAkxhbEntl4BusICHi NuvmtkLFCrRMjdFXOJ/b1RNWPkYus+q9Vcr6igl/ZatfDb/tPQ35mUBqExoYNLfIjmuGB5yQ+Xl MpSGbkOohglVw11loX01eJeXcIKrzKy5HbGsr03A1Y+GcelGAzVQfAOcRpfiC304fYUEvZYZXf5 q1rhQ2WiZ14Dq28FUaOyR8qGjoHR2Ag7S6WBpwOB2gI2QAiIINcAvYRudh8wC2steAwHwsmY+FR IMhZIJCwM5CGpM8mib2nl8t7W/15ed5bL1fVE2YOVKJz86l2Wt9uBuSXa28qA651B39znTYtEr3 tHqKrZyd865Ztth9Wtw== X-Proofpoint-GUID: _Fi7HOY7O0UEHEV54xqoj0PR-iTbraiA X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfXzgYo86dZ6oen liM1rLLYCbu069vfmMT7vCe8ykP88Xjva68Zncz9sq9sutSVdWQ5Ww7nmd///p2vz0k/CdNgHy6 Ly4a7KsseZlvQ3GcROHzdS8jqPVyW6c= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 clxscore=1015 suspectscore=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 bulkscore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190221 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910103763158500 From: Brian Cain Also: add nop TCG overrides for break, unpause, fetchbo; add TCG override for dczeroa_nt (non-temporal variant of dczeroa). break: this hardware breakpoint instruction is used with the in-silicon debugger feature, this is not modeled. unpause: this instruction is used to resume hardware threads that are stalled by pause instructions. pause is modeled as a nop, or in RR mode as an EXCP_YIELD. This instruction is safe to ignore. Since prefetch functions are not modeled, fetchbo is safe to ignore. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/gen_tcg.h | 9 ++ target/hexagon/macros.h | 25 +++- target/hexagon/sys_macros.h | 239 ++++++++++++++++++++++++++++++++++++ target/hexagon/op_helper.c | 4 + 4 files changed, 276 insertions(+), 1 deletion(-) create mode 100644 target/hexagon/sys_macros.h diff --git a/target/hexagon/gen_tcg.h b/target/hexagon/gen_tcg.h index 0159e5c2d5f..4a58ead877b 100644 --- a/target/hexagon/gen_tcg.h +++ b/target/hexagon/gen_tcg.h @@ -488,6 +488,7 @@ =20 /* dczeroa clears the 32 byte cache line at the address given */ #define fGEN_TCG_Y2_dczeroa(SHORTCODE) SHORTCODE +#define fGEN_TCG_Y2_dczeroa_nt(SHORTCODE) SHORTCODE =20 /* In linux-user mode, these are not modelled, suppress compiler warning */ #define fGEN_TCG_Y2_dcinva(SHORTCODE) \ @@ -1112,6 +1113,9 @@ RdV, tcg_constant_tl(0)); \ } while (0) =20 +#define fGEN_TCG_Y2_break(SHORTCODE) +#define fGEN_TCG_J2_unpause(SHORTCODE) + #define fGEN_TCG_J2_pause(SHORTCODE) \ do { \ uiV =3D uiV; \ @@ -1321,6 +1325,11 @@ RsV =3D RsV; \ uiV =3D uiV; \ } while (0) +#define fGEN_TCG_Y2_dcfetchbo_nt(SHORTCODE) \ + do { \ + RsV =3D RsV; \ + uiV =3D uiV; \ + } while (0) =20 #define fGEN_TCG_L2_loadw_aq(SHORTCODE) SHORTCODE #define fGEN_TCG_L4_loadd_aq(SHORTCODE) SHORTCODE diff --git a/target/hexagon/macros.h b/target/hexagon/macros.h index eebfe1e5ed9..38a43647dd9 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..4de4d53823a --- /dev/null +++ b/target/hexagon/sys_macros.h @@ -0,0 +1,239 @@ +/* + * 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 + +#include "system/physmem.h" + +#ifdef QEMU_GENERATE +#define GET_SSR_FIELD(RES, FIELD) \ + GET_FIELD(RES, FIELD, hex_t_sreg[HEX_SREG_SSR]) +#else + +#define GET_SSR_FIELD(FIELD, REGIN) \ + (uint32_t)GET_FIELD(FIELD, REGIN) +#define GET_SYSCFG_FIELD(FIELD, REGIN) \ + (uint32_t)GET_FIELD(FIELD, REGIN) +#define SET_SYSTEM_FIELD(ENV, REG, FIELD, VAL) \ + do { \ + HexagonCPU *_sf_cpu =3D env_archcpu(ENV); \ + uint32_t regval; \ + if ((REG) < HEX_SREG_GLB_START) { \ + regval =3D (ENV)->t_sreg[(REG)]; \ + } else { \ + regval =3D _sf_cpu->globalregs ? \ + hexagon_globalreg_read(_sf_cpu->globalregs, (REG), \ + (ENV)->threadId) : 0; \ + } \ + fINSERT_BITS(regval, reg_field_info[FIELD].width, \ + reg_field_info[FIELD].offset, (VAL)); \ + if ((REG) < HEX_SREG_GLB_START) { \ + (ENV)->t_sreg[(REG)] =3D regval; \ + } else if (_sf_cpu->globalregs) { \ + hexagon_globalreg_write(_sf_cpu->globalregs, (REG), regval, \ + (ENV)->threadId); \ + } \ + } while (0) +#define SET_SSR_FIELD(ENV, FIELD, VAL) \ + SET_SYSTEM_FIELD(ENV, HEX_SREG_SSR, FIELD, VAL) +#define SET_SYSCFG_FIELD(ENV, FIELD, VAL) \ + SET_SYSTEM_FIELD(ENV, HEX_SREG_SYSCFG, FIELD, VAL) + +#define CCR_FIELD_SET(ENV, FIELD) \ + (!!GET_FIELD(FIELD, (ENV)->t_sreg[HEX_SREG_CCR])) + +/* + * Direct-to-guest is not implemented yet, continuing would cause unexpect= ed + * behavior, so we abort. + */ +#define ASSERT_DIRECT_TO_GUEST_UNSET(ENV, EXCP) \ + do { \ + switch (EXCP) { \ + case HEX_EVENT_TRAP0: \ + g_assert(!CCR_FIELD_SET(ENV, CCR_GTE)); \ + break; \ + case HEX_EVENT_IMPRECISE: \ + case HEX_EVENT_PRECISE: \ + case HEX_EVENT_FPTRAP: \ + g_assert(!CCR_FIELD_SET(ENV, CCR_GEE)); \ + break; \ + default: \ + if ((EXCP) >=3D HEX_EVENT_INT0) { \ + g_assert(!CCR_FIELD_SET(ENV, CCR_GIE)); \ + } \ + break; \ + } \ + } while (0) +#endif + +#define fREAD_ELR() (env->t_sreg[HEX_SREG_ELR]) + +#define fLOAD_PHYS(NUM, SIZE, SIGN, SRC1, SRC2, DST) { \ + const uintptr_t rs =3D ((unsigned long)(unsigned)(SRC1)) & 0x7ff; \ + const uintptr_t rt =3D ((unsigned long)(unsigned)(SRC2)) << 11; \ + const uintptr_t addr =3D rs + rt; \ + physical_memory_read(addr, &DST, sizeof(uint32_t)); \ +} + +#define fPOW2_HELP_ROUNDUP(VAL) \ + ((VAL) | \ + ((VAL) >> 1) | \ + ((VAL) >> 2) | \ + ((VAL) >> 4) | \ + ((VAL) >> 8) | \ + ((VAL) >> 16)) +#define fPOW2_ROUNDUP(VAL) (fPOW2_HELP_ROUNDUP((VAL) - 1) + 1) + +#define fTRAP(TRAPTYPE, IMM) \ + register_trap_exception(env, TRAPTYPE, IMM, PC) + +#define fVIRTINSN_SPSWAP(IMM, REG) +#define fVIRTINSN_GETIE(IMM, REG) { REG =3D 0xdeafbeef; } +#define fVIRTINSN_SETIE(IMM, REG) +#define fVIRTINSN_RTE(IMM, REG) +#define fGRE_ENABLED() \ + GET_FIELD(CCR_GRE, env->t_sreg[HEX_SREG_CCR]) +#define fTRAP1_VIRTINSN(IMM) \ + (fGRE_ENABLED() && \ + (((IMM) =3D=3D 1) || ((IMM) =3D=3D 3) || ((IMM) =3D=3D 4) || ((IMM= ) =3D=3D 6))) + +/* Not modeled in qemu */ + +#define MARK_LATE_PRED_WRITE(RNUM) +#define fICINVIDX(REG) +#define fICKILL() +#define fDCKILL() +#define fL2KILL() +#define fL2UNLOCK() +#define fL2CLEAN() +#define fL2CLEANINV() +#define fL2CLEANPA(REG) +#define fL2CLEANINVPA(REG) +#define fL2CLEANINVIDX(REG) +#define fL2CLEANIDX(REG) +#define fL2INVIDX(REG) +#define fL2TAGR(INDEX, DST, DSTREG) +#define fL2UNLOCKA(VA) ((void) VA) +#define fL2TAGW(INDEX, PART2) +#define fDCCLEANIDX(REG) +#define fDCCLEANINVIDX(REG) + +/* Always succeed: */ +#define fL2LOCKA(EA, PDV, PDN) ((void) EA, PDV =3D 0xFF) +#define fCLEAR_RTE_EX() \ + do { \ + uint32_t tmp =3D env->t_sreg[HEX_SREG_SSR]; \ + fINSERT_BITS(tmp, reg_field_info[SSR_EX].width, \ + reg_field_info[SSR_EX].offset, 0); \ + log_sreg_write(env, HEX_SREG_SSR, tmp, slot); \ + } while (0) + +#define fDCINVIDX(REG) +#define fDCINVA(REG) do { REG =3D REG; } while (0) /* Nothing to do in qem= u */ + +#define fTLB_IDXMASK(INDEX) \ + ((INDEX) & (fPOW2_ROUNDUP( \ + fCAST4u(hexagon_tlb_get_num_entries(env_archcpu(env)->tlb))) - 1)) + +#define fTLB_NONPOW2WRAP(INDEX) \ + (((INDEX) >=3D hexagon_tlb_get_num_entries(env_archcpu(env)->tlb)) ? \ + ((INDEX) - hexagon_tlb_get_num_entries(env_archcpu(env)->tlb)) : \ + (INDEX)) + + +#define fTLBW(INDEX, VALUE) \ + hex_tlbw(env, (INDEX), (VALUE)) +#define fTLBW_EXTENDED(INDEX, VALUE) \ + hex_tlbw(env, (INDEX), (VALUE)) +#define fTLB_ENTRY_OVERLAP(VALUE) \ + (hex_tlb_check_overlap(env, VALUE, -1) !=3D -2) +#define fTLB_ENTRY_OVERLAP_IDX(VALUE) \ + hex_tlb_check_overlap(env, VALUE, -1) +#define fTLBR(INDEX) \ + hexagon_tlb_read(env_archcpu(env)->tlb, \ + fTLB_NONPOW2WRAP(fTLB_IDXMASK(INDEX))) +#define fTLBR_EXTENDED(INDEX) \ + hexagon_tlb_read(env_archcpu(env)->tlb, \ + fTLB_NONPOW2WRAP(fTLB_IDXMASK(INDEX))) +#define fTLBP(TLBHI) \ + hex_tlb_lookup(env, ((TLBHI) >> 12), ((TLBHI) << 12)) +#define iic_flush_cache(p) + +#define fIN_DEBUG_MODE(TNUM) ({ \ + HexagonCPU *_cpu =3D env_archcpu(env); \ + uint32_t _isdbst =3D _cpu->globalregs ? \ + hexagon_globalreg_read(_cpu->globalregs, \ + HEX_SREG_ISDBST, env->threadId) : 0; \ + (GET_FIELD(ISDBST_DEBUGMODE, _isdbst) \ + & (0x1 << (TNUM))) !=3D 0; }) + +#define fIN_DEBUG_MODE_NO_ISDB(TNUM) false +#define fIN_DEBUG_MODE_WARN(TNUM) false + +#ifdef QEMU_GENERATE + +/* + * Read tags back as zero for now: + * + * tag value in RD[31:10] for 32k, RD[31:9] for 16k + */ +#define fICTAGR(RS, RD, RD2) \ + do { \ + RD =3D ctx->zero; \ + } while (0) +#define fICTAGW(RS, RD) +#define fICDATAR(RS, RD) \ + do { \ + RD =3D ctx->zero; \ + } while (0) +#define fICDATAW(RS, RD) + +#define fDCTAGW(RS, RT) +/* tag: RD[23:0], state: RD[30:29] */ +#define fDCTAGR(INDEX, DST, DST_REG_NUM) \ + do { \ + DST =3D ctx->zero; \ + } while (0) +#else + +/* + * Read tags back as zero for now: + * + * tag value in RD[31:10] for 32k, RD[31:9] for 16k + */ +#define fICTAGR(RS, RD, RD2) \ + do { \ + RD =3D 0x00; \ + } while (0) +#define fICTAGW(RS, RD) +#define fICDATAR(RS, RD) \ + do { \ + RD =3D 0x00; \ + } while (0) +#define fICDATAW(RS, RD) + +#define fDCTAGW(RS, RT) +/* tag: RD[23:0], state: RD[30:29] */ +#define fDCTAGR(INDEX, DST, DST_REG_NUM) \ + do { \ + DST =3D 0; \ + } while (0) +#endif + +#else +#define ASSERT_DIRECT_TO_GUEST_UNSET(ENV, EXCP) do { } while (0) +#endif + +#define NUM_TLB_REGS(x) (hexagon_tlb_get_num_entries(env_archcpu(env)->tlb= )) + +#endif diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 0a946433644..5b9c266d02f 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -25,6 +25,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" @@ -32,6 +33,9 @@ #include "mmvec/macros.h" #include "op_helper.h" #include "translate.h" +#ifndef CONFIG_USER_ONLY +#include "hexswi.h" +#endif =20 #define SF_BIAS 127 #define SF_MANTBITS 23 --=20 2.34.1 From nobody Sun Jul 26 12:31:36 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=1781910252; cv=none; d=zohomail.com; s=zohoarc; b=YseJodG6ZRa0+eUQ9RWeB3HAdljc4cxGiJl29t/1tOFsaxly6mosnDzisgYzModKt0kOW12hXwpE54PoSmFrEMpjePTPkeq/dNjFSj/GLHGQmMiGLqHUADFnQTjAvepU0bKW5zmyD+G5eVzoTcz3X5gDoc7x9LGrsAeo2OF7yMw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910252; 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=93NO5nTkqSLKhLHTshorCnrOXtq4w0A1wRQSw+4IeFU=; b=fyAjeGSrgMSVebr1anSlRgJj3r+cNs6THDPYzQcf4NrssVE7HAXBj+n9hPHuTio0srUq1ifdmE8GaD9fwmLNhX7JCGCSmc3tw40Z0iSH/Zc/KRuM8m//mYA/zO4y68lFW/SmJ9LQpT/Gl88X2AyFjYo2K9MkwL2MA3frdvddNDE= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178191025270163.839345486121374; Fri, 19 Jun 2026 16:04:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiBo-00022N-0G; Fri, 19 Jun 2026 18:59:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBl-0001wO-Lj for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:53 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBj-0001aX-LQ for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:53 -0400 Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLYE6a4086103 for ; Fri, 19 Jun 2026 22:59:40 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evmyrdj2f-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 22:59:40 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30bcb065bfdso4413369eec.0 for ; Fri, 19 Jun 2026 15:59:40 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.15.59.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 15:59:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 93NO5nTkqSLKhLHTshorCnrOXtq4w0A1wRQSw+4IeFU=; b=fxJdy7qWCea7MoZ8 Zwxl538h8bjSfq+OZKxLspASbd6qTTWsvlzUITavcH5fYm7N0KMw46uTLTKvqg2U clFEIuZhdC7AzO87tXPj+YluqMxPTTW5uKQxBQL3hbtTFwQxF+8jCE3wV/aGUHfm vPhZ0MQlmXc0S8TS/RAFh5t6aqqa0ZZprCmjmws7YYEpoHieRCAxlHhsjay6AuLk jfsdLDYNkGLswuziPNWIxxeG91n+jF+9VXW9o7ystpdbsLlODIFgx1bLH0w56Izh EmEj0HEQ6hySEltCq+N1+rAn8ivM0L+4sfHBxMjyLNq8oEEe3aOxzVE57BQE1vvo n18OoQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781909979; x=1782514779; 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=93NO5nTkqSLKhLHTshorCnrOXtq4w0A1wRQSw+4IeFU=; b=gnQEPI+xPGAK1UHKzqHB28EKrywy0CLZz3T2jk3VRw2tQwLSBePgMI622okguLAnWq /J8CCnp4LFT4+AoD9xfjrOTQpjPO3czBeSWQqaR4JBxjip2HCbLppbGhxJXle84b1f9g lg72zq4pKqJcLQL3dhfN4kINWk284/pFi+4mCFCdLxRYAJSWyuCByhf1qWiRd3666NCL t1IXm5PuuS5+HsbvmDSaXZmqYN25tY+RcZ3QEVB1RhiuQW5TsYIzlASv+dTHXyX9fdl1 uoyCl59WCs/X76RAc2X7hzV56TCJyI1lorVtVqoYDEzbccIDaL5UtnpzF1xehqY3Jfia GAwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781909979; x=1782514779; 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=93NO5nTkqSLKhLHTshorCnrOXtq4w0A1wRQSw+4IeFU=; b=fzJpP0CkTpzzCGpV3WOKUdYPCH5gVm1h5+yt4oqObqNuzuY3sD8I5HCE769sfrSq1T 1Es7cUyTmZBQo+LDmsPpRnDcxlflqA98+k85L28ZPU25wdRBSCyCaVkqf5gDbfxDeDKt m6bX/2bYTEicXKTWIUeW1TfkEk6Q14kjEq0XYQQ0NiM92See56tOFxov2xhXe+apyi1n pul9aH1y4XLW4rPy9BmrPHWPuc6Vb1TYkItOvjhhuONgGasE8Lma0Qf5gDeVWokFHugX Wpm5U6AvMLwYwG6TwwIgNiC/JL+UELxW0Me5IKAYOlLKTTU3dDQiBpSC2ACQ9YxAR6m2 JNKQ== X-Gm-Message-State: AOJu0YxF7FGv7zACxM8fVvXPSftLhrI43dePWGoxi+hNSTAuExFow7n3 WFKt9L3UN9XmMh7b0JhFvdhWk8oosnPq0ird4f/r7WC7D5tzVgDkJXOL2WQS0aCQ3nz0co/lkkv MtQ2JZs41/olp2rgUIFXqQEnAoxTgdqj1Cww1vl6RaLwlvs/Xlg0Qe4EOnkfwVtqZSw== X-Gm-Gg: AfdE7clb1ozUUbxG31McYFVMqvYp9dp8myUc5fehkxBLmkpHgZU6coS+OmME1eNsIzQ yWyHU6as8V7ijE770KSDzLzkBBYOkrLkDXsRSiwfq+FflPcqq5Bj8fUid4TR+zSH+1lBaYti9+I DaFgGNLZhhZaIN3y8P4Bn2nPI/3ndJ8HMyqzEqSOwOIQRIL7RDF7YZxNKkAqbMOo/w8ZiU5S4/D aoPq9lvhwRgc8ftzqzj0UEezGSLea9VSpTFV+lsFyXGMGH28znKza6w0kCVn74QhAGeFhg7UpP6 Qs53as6b2ajyyo8WqJ+C6n6dvsspnpCzKX6NHEHADjGChiWWleHi9V15b6i1UhL9b9dNGAMkzXJ R9BBnikN4yNrmFubBl9RfwbqzX7GbFeBtScLrcdR6K6WVisxLsSpyS8yC9AE= X-Received: by 2002:a05:7300:e125:b0:307:91f5:92e2 with SMTP id 5a478bee46e88-30c0ceaa95fmr2070981eec.4.1781909979497; Fri, 19 Jun 2026 15:59:39 -0700 (PDT) X-Received: by 2002:a05:7300:e125:b0:307:91f5:92e2 with SMTP id 5a478bee46e88-30c0ceaa95fmr2070965eec.4.1781909978982; Fri, 19 Jun 2026 15:59:38 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 16/74] target/hexagon: Add handlers for guest/sysreg r/w Date: Fri, 19 Jun 2026 15:58:13 -0700 Message-Id: <20260619225911.159473-17-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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=RZWgzVtv c=1 sm=1 tr=0 ts=6a35c9dc cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA: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=YS0KV4ZxTOLzYV__0jkA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: K4kgJQAPRUNNn8U41Qmm6Ob0CNOUJnad X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX0vBxZAfMTcrJ NVcN8KJFN+wH+ItQXraHLsJtUSly+NkUs1jBZ9iBcN5hkEV0z0Kyv2W8hVv8Gi11rcxpLh2Eeku 2vqSUAUrkr8b2d6wzSIow4BUo0xiQzN7MP2xwGuxJI6GpxdGFMTznydaM9j1B8xl1PEqTsn/Sjn 7hRw5K/p0CVLic8bEODQuZKvgN4Xi4YsDRVSc6+BUB0ytwU3khp9Ge7cEMAq1dYGP95g/MeSv14 vEo3JiHUKKZbGwqXDgTz46rPcoF8esDXqXd1KBMYoEVwyxfLNTXQGAFYKPt0/9E5KkqnskwZi7q RK7s0VhKZp/V6X4VVeCs3Th1f1XVPiYs8dQJBy5dmEjlOev7UuTW7y7c7EBB43/8m/QjjodUJQI /x8jsTe1sSZ9P7NBjcnC/1XJ0w4d+RkzTDoGF0fNsoeseQ9zADrL9WH82urHI7ePHU3PMTXSf51 3WCcAf8DFkakBbcbuzA== X-Proofpoint-GUID: K4kgJQAPRUNNn8U41Qmm6Ob0CNOUJnad X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX84kADb0uLpuy OwlT1oaVinoObvHl9wINJzWUYPtBZWkLfBcj4JPGfGof0iBAh+WuiBAUx4DhQqhbxsXyRUv3Efd GZqJg5yl5KCeLVXvEd2fft6XgU4gBUY= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 clxscore=1015 suspectscore=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 bulkscore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190221 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910254234158500 From: Brian Cain This commit provides handlers to generate TCG for guest and system register reads and writes. They will be leveraged by a future commit. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/genptr.c | 151 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 151 insertions(+) diff --git a/target/hexagon/genptr.c b/target/hexagon/genptr.c index 5d5adace4b3..8f191f80619 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,156 @@ TCGv get_result_pred(DisasContext *ctx, int pnum) } } =20 +#ifndef CONFIG_USER_ONLY +G_GNUC_UNUSED +static bool greg_writable(int rnum, bool pair) +{ + if (pair) { + if (rnum < HEX_GREG_G3) { + return true; + } + qemu_log_mask(LOG_UNIMP, + "Warning: ignoring write to guest register pair G%d:%d\n", + rnum + 1, rnum); + } else { + if (rnum <=3D HEX_GREG_G3) { + return true; + } + qemu_log_mask(LOG_UNIMP, + "Warning: ignoring write to guest register G%d\n", rnum); + } + return false; +} + +G_GNUC_UNUSED +static void check_greg_impl(int rnum, bool pair) +{ + if (pair && (!greg_implemented(rnum) || !greg_implemented(rnum + 1))) { + qemu_log_mask(LOG_UNIMP, + "Warning: guest register pair G%d:%d is unimplemented or " + "reserved. Read will yield 0.\n", + rnum + 1, rnum); + } else if (!pair && !greg_implemented(rnum)) { + qemu_log_mask(LOG_UNIMP, + "Warning: guest register G%d is unimplemented or reserved." + " Read will yield 0.\n", rnum); + } +} + +G_GNUC_UNUSED +static inline void gen_log_greg_write(DisasContext *ctx, int rnum, TCGv_i3= 2 val) +{ + tcg_gen_mov_i32(ctx->greg_new_value[rnum], val); +} + +G_GNUC_UNUSED +static void gen_log_greg_write_pair(DisasContext *ctx, int rnum, TCGv_i64 = val) +{ + TCGv_i32 val32 =3D tcg_temp_new_i32(); + + /* Low word */ + tcg_gen_extrl_i64_i32(val32, val); + gen_log_greg_write(ctx, rnum, val32); + + /* High word */ + tcg_gen_extrh_i64_i32(val32, val); + gen_log_greg_write(ctx, rnum + 1, val32); +} + +static const uint32_t sreg_immut_masks[NUM_SREGS] =3D { + [HEX_SREG_STID] =3D 0xff00ff00, + [HEX_SREG_ELR] =3D 0x00000003, + [HEX_SREG_SSR] =3D 0x00008000, + [HEX_SREG_CCR] =3D 0x10e0ff24, + [HEX_SREG_HTID] =3D IMMUTABLE, + [HEX_SREG_IMASK] =3D 0xffff0000, + [HEX_SREG_GEVB] =3D 0x000000ff, +}; + +G_GNUC_UNUSED +static void gen_log_sreg_write(DisasContext *ctx, int rnum, TCGv_i32 val) +{ + const uint32_t reg_mask =3D sreg_immut_masks[rnum]; + + if (reg_mask !=3D IMMUTABLE) { + if (rnum < HEX_SREG_GLB_START) { + gen_masked_reg_write(val, hex_t_sreg[rnum], reg_mask); + if (ctx->need_commit || rnum =3D=3D HEX_SREG_SSR) { + tcg_gen_mov_i32(ctx->t_sreg_new_value[rnum], val); + } else { + tcg_gen_mov_i32(hex_t_sreg[rnum], val); + } + } else { + gen_helper_sreg_write_masked(tcg_env, tcg_constant_i32(rnum), = val); + } + } +} + +G_GNUC_UNUSED +static void gen_log_sreg_write_pair(DisasContext *ctx, int rnum, TCGv_i64 = val) +{ + TCGv_i32 val32 =3D tcg_temp_new_i32(); + + /* Low word */ + tcg_gen_extrl_i64_i32(val32, val); + gen_log_sreg_write(ctx, rnum, val32); + + /* High word */ + tcg_gen_extrh_i64_i32(val32, val); + gen_log_sreg_write(ctx, rnum + 1, val32); +} + +G_GNUC_UNUSED +static void gen_read_sreg(TCGv_i32 dst, int reg_num) +{ + if (reg_num >=3D HEX_SREG_GLB_START || reg_num =3D=3D HEX_SREG_BADVA) { + gen_helper_sreg_read(dst, tcg_env, tcg_constant_i32(reg_num)); + } else { + tcg_gen_mov_i32(dst, hex_t_sreg[reg_num]); + } +} + +G_GNUC_UNUSED +static void gen_read_sreg_pair(TCGv_i64 dst, int reg_num) +{ + if (reg_num < HEX_SREG_GLB_START) { + if (reg_num + 1 =3D=3D HEX_SREG_BADVA) { + TCGv_i32 badva =3D tcg_temp_new_i32(); + gen_helper_sreg_read(badva, tcg_env, + tcg_constant_i32(HEX_SREG_BADVA)); + tcg_gen_concat_i32_i64(dst, hex_t_sreg[reg_num], badva); + } else { + tcg_gen_concat_i32_i64(dst, hex_t_sreg[reg_num], + hex_t_sreg[reg_num + 1]); + } + } else { + gen_helper_sreg_read_pair(dst, tcg_env, tcg_constant_i32(reg_num)); + } +} + +G_GNUC_UNUSED +static void gen_read_greg(TCGv_i32 dst, int reg_num) +{ + if (reg_num <=3D HEX_GREG_G3) { + tcg_gen_mov_i32(dst, hex_greg[reg_num]); + } else { + gen_helper_greg_read(dst, tcg_env, tcg_constant_i32(reg_num)); + } +} + +G_GNUC_UNUSED +static void gen_read_greg_pair(TCGv_i64 dst, int reg_num) +{ + if (reg_num =3D=3D HEX_GREG_G0 || reg_num =3D=3D HEX_GREG_G2) { + tcg_gen_concat_i32_i64(dst, hex_greg[reg_num], + hex_greg[reg_num + 1]); + } else { + gen_helper_greg_read_pair(dst, tcg_env, tcg_constant_i32(reg_num)); + } +} +#endif + + void gen_pred_write(DisasContext *ctx, int pnum, TCGv val) { TCGv pred =3D get_result_pred(ctx, pnum); --=20 2.34.1 From nobody Sun Jul 26 12:31:36 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=1781910266; cv=none; d=zohomail.com; s=zohoarc; b=WEZw7ddTLvAR1GYPWkkS66xtPZK3c6iOoRY2ijpN0fKGb4uC4PtVJJbL5U2CCA+H4xLfRPqJNcg2x/+kTwCsr959/98Hg+vKZ9v3SIR3EFqfkDFjHGrR62aSUuX8H5lJANLVHawL0fXW6alO+M2Sw0TlUWdL5NNtsOJcfsQdv4s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910266; 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=wO8Hpccix22tZFHgyU0VgMmMK7ZQOufSmnr3QdC9JmM=; b=WrAodKnuwvt6mUsrpmgKX5Wtcvay/rXmbvKLW07fG58YhqoTx2/9M0Du11W0uLJHk/tTNDnxjeHYcFHie03dgsOAy95M0gd/yxGdU28+GGhiN++bm0xc66dufeuZR5lqamjG7wWLF5hrzQpvAdXFR+kGLee1sGkG1qXB/rPkcs0= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781910266076830.5595331547123; Fri, 19 Jun 2026 16:04:26 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiBo-00022V-EW; Fri, 19 Jun 2026 18:59:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBm-0001zq-Ia for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:54 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBk-0001b6-Ut for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:54 -0400 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLYdwT1253233 for ; Fri, 19 Jun 2026 22:59:41 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ewbgp8n2t-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 22:59:41 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30bef75a41eso1996141eec.0 for ; Fri, 19 Jun 2026 15:59:41 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.15.59.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 15:59:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= wO8Hpccix22tZFHgyU0VgMmMK7ZQOufSmnr3QdC9JmM=; b=lQGe8/c7IH72F4Om z+7FWsopDE8kflfwvlg830BpIAp8YYRjLemoRVXfEBPhzeUC1Zhe7/71KBpYktf1 8Oh5fzHcyIz6j4FlnsNsgYZFPhiASokVHvR1x0vacRra9LkxtdcC5YWf9iLC+YoI qP5zHq0fM+Qqgk3JrdNAOud2L5D0ndHOh0K7qFOJZHFjgHDjrv9L33AhpppTkfnf q+HSK8xStPKh0uZbKp6PVUn868fRiYw7HHQjyOj5PkDoOoBnBapU9hPYKgU3XPBk VuOQ0S0xuNUAsacD9zBI9EfZRNXnHINLyAvOeCtss6y49i55AoTTt61jYN3Gb9UT Nn1kyg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781909981; x=1782514781; 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=wO8Hpccix22tZFHgyU0VgMmMK7ZQOufSmnr3QdC9JmM=; b=YHwTx1BQg2COVtuamEAzJPkNUawldi08nfJ9zbgBlYMbas9I2gvj8jCmfk7o4xLhnM nEbDLNAL9kafwfm1sl9yi3LEc/da4xreDucw8WnLfJa/sXTsICcT2Dyx6xyhCGm1sAsQ rO8vdRpboK2fUjXNLijhUpexShJ0MUxtzvaBTgyLYA6mdFn96+aaovEebMIv4Ni9LETN 7jrq/Kd2GDUS2quD1yEjlMUzB/RSV4jnMBHUeT7xBK/MzLlLfXiTt9iHORb5As/8gG/2 5HBZPvfhUFC21VkK9baD/hzBiAlS5UUH9nw4/OZCFEeiPxCRhdWWZYXfo5oDWSUtjVAQ mmDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781909981; x=1782514781; 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=wO8Hpccix22tZFHgyU0VgMmMK7ZQOufSmnr3QdC9JmM=; b=nLRJftx7/Gje/CAga4jk8PWuxs3hNif84XAosQhaJ+Yfz2J8w0SJRIc+QROcfXjMC8 ZubKTmE7hb/TXcLybjOHATRu4FCk04/aAYQDLaCniTT7oPcx5nHrsMayjyjaF2vv1OgH ROHLjn8loe3ZSi3va0E+m5i8zkkphDQle9UvkZxO7JwzRKzzJGI8a8nHg6MMVY5T/V4h PjzKB19gs/Ng5723iOj6dIUj/T/5egW9hDWs9ZWfeghjgID/e/fxQ7gJ0Z4ABZl2+zzc 0pqpYA6PWsx3cwMWkOXDYLxsXGRmpb0tIeMiQJHJvpa+ppgbnqyBcPxKgl5zgfhX1l7O bxYQ== X-Gm-Message-State: AOJu0YyvFGxTMakJuQMY4jk/bgtrMRt/ReixG4bfceH0UOsRM13rvAkH wcPX8IBfbC/LxOT5cock3Obror1TP6KQtxZCpcPoggSVbii7sWs0YFFHkOctI8DvaglFMB1jDWc dPe43D5Nwc2jBKJAJgP5ZQ82rjtx7m6m04xS7WOvUVyZgYzndlHc3xl/ZBeynDpQwAw== X-Gm-Gg: AfdE7cngVz/svX+q6GR9nDEoqytzQFTmvhKUHBrO41MujAIVSLccuFk/WQrCBgkQaBW mAB+Zgxbf79i7YSzU85OCL2ysSPMGNVH0GyJDvnkVuee/2IUhkR5fNDuSPyTpsB4cJmoPiFYajY KHFojhsCStiln41cha69NPXQuPrMhf0pFJzX//hbSHJ6rAA8YZRcm2a5l62tITvR2kbFJzoOoAJ rz0tiRGXxuycmEjKMzTaBlcLWq6WSYWrmljjQj4jStIGwZWZD74b1swf5l7A2WY8PjgBOutYBhf bGX82gvOQwtecQg70QNK3p4RYIwkugmgi5CZ6cz9NY1hmevirhaVDHy9uR1guCErZQTyeY2zVTV PNexM8C/cIjzDKM8MtuTYQXZb4oVHifyjG/UmZJ5rwQuTAcvC3zsuJfzCb6E= X-Received: by 2002:a05:7300:fb8e:b0:30b:f73f:ff6e with SMTP id 5a478bee46e88-30c1d9c7fcfmr786034eec.11.1781909980783; Fri, 19 Jun 2026 15:59:40 -0700 (PDT) X-Received: by 2002:a05:7300:fb8e:b0:30b:f73f:ff6e with SMTP id 5a478bee46e88-30c1d9c7fcfmr786021eec.11.1781909980261; Fri, 19 Jun 2026 15:59:40 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 17/74] target/hexagon: Add placeholder greg/sreg r/w helpers Date: Fri, 19 Jun 2026 15:58:14 -0700 Message-Id: <20260619225911.159473-18-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: SjZnV5fDt26mgeIcIYdV2xat6-HJZJDM X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyMCBTYWx0ZWRfX3XPSJsO7Qg8W yoMhFEYAwGbDvPFsxW4c0dAP5fH0w3obLPx4GTNUuWLL/LQ04VufRc2Njz1uD4dzCmBOw69VOkf j0af0wEw+u+VjxeSO6AOvcUmiaKzOoy4ePyFwxPEApYVV9V+1AqI+duSm8M7Qxn/8Ht/Ty2uPFb sALKgtqSyP27l3fcaU7q1aiPTrUTZBXN3LqkV4bCE6zyS21hFmODhbEXRxlJ5T3T4jqueKtzo3X C2ShQnbMgmajCLQrc/dhxNmzzac+u5+xUdJ9ia4+I30SGS4lEd+mNzGKcdT6E6N0+ft2LDQcRJu chifdN6Vzy+GymgqpMBOzN9f6sBw79RQKeqBor3CbaHTUo3NQBlvtiWhz7ldWQoe9Sk1B1XPuTo xa+AUimu5BzGzR2LuP+HKFdmlbPRz1PFH1lXmOQcvTn4m9miZKbrwhS45u17bUIgUn1uu64plro HOhvgwtQ2KWR88EWAKw== X-Proofpoint-GUID: SjZnV5fDt26mgeIcIYdV2xat6-HJZJDM X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMCBTYWx0ZWRfX8PPjlI8c98zT FXrZaJUkqVHyPXzs1X6zOP1jFeTUjLHw1aEmFXnEjG+C0sExItsnjD2JXvMr7qkWPoAGPlR0qpX f0G4lzWzn5bm68JCRlyQIf8U1qXj3Ro= X-Authority-Analysis: v=2.4 cv=d8vFDxjE c=1 sm=1 tr=0 ts=6a35c9dd cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA: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=wA0rHRt5QP8iJxr38i8A:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 priorityscore=1501 malwarescore=0 spamscore=0 phishscore=0 impostorscore=0 suspectscore=0 clxscore=1015 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190220 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910266293158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/helper.h | 8 ++++++++ target/hexagon/op_helper.c | 28 ++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index 64456822bc1..28b9b59e0f2 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -107,3 +107,11 @@ DEF_HELPER_4(probe_noshuf_load, void, env, i32, int, i= nt) DEF_HELPER_2(probe_pkt_scalar_store_s0, void, env, int) DEF_HELPER_2(probe_hvx_stores, void, env, int) DEF_HELPER_2(probe_pkt_scalar_hvx_stores, void, env, int) + +#if !defined(CONFIG_USER_ONLY) +DEF_HELPER_2(sreg_read, i32, env, i32) +DEF_HELPER_2(sreg_read_pair, i64, env, i32) +DEF_HELPER_2(greg_read, i32, env, i32) +DEF_HELPER_2(greg_read_pair, i64, env, i32) +DEF_HELPER_3(sreg_write_masked, void, env, i32, i32) +#endif diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 5b9c266d02f..cd324c19a9d 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1374,6 +1374,34 @@ void HELPER(vwhist128qm)(CPUHexagonState *env, int32= _t uiV) } } =20 +#ifndef CONFIG_USER_ONLY +void HELPER(sreg_write_masked)(CPUHexagonState *env, uint32_t reg, uint32_= t val) +{ + g_assert_not_reached(); +} + +uint32_t HELPER(sreg_read)(CPUHexagonState *env, uint32_t reg) +{ + g_assert_not_reached(); +} + +uint64_t HELPER(sreg_read_pair)(CPUHexagonState *env, uint32_t reg) +{ + g_assert_not_reached(); +} + +uint32_t HELPER(greg_read)(CPUHexagonState *env, uint32_t reg) +{ + g_assert_not_reached(); +} + +uint64_t HELPER(greg_read_pair)(CPUHexagonState *env, uint32_t reg) +{ + g_assert_not_reached(); +} +#endif + + /* These macros can be referenced in the generated helper functions */ #define warn(...) /* Nothing */ #define fatal(...) g_assert_not_reached(); --=20 2.34.1 From nobody Sun Jul 26 12:31:36 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=1781910227; cv=none; d=zohomail.com; s=zohoarc; b=kiJ3L/kdtF+4AztN1H3wyiCrGBk43IzORE+lDzMz/2U63cvhHx7x2L9zjlBaoxW4dM5k7/ZmBDujUhErg1Qp27DQZfuRRsPwIQUtaDaMX/U3BGY7bcefON3DvKBdm6R+j3uwC6ePJaKYeH/AoMqqNm0P77/q5hxfXuLVC5/Iytw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910227; 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=qFYqNPPFISG4W33OXfV6Z2hBY6Ip8YqwFk+1NFRkGKE=; b=N2bd3QcaS6V+f69ac62Hs7RL6thVwdVfnA+Y8pGK3gPzNocZtWgR1WtyhNL/YDxkuMtzOKrCpY2nU7oSZqlxcgjoa6jvAb9/aGNMvAwblymw8GQR1MWU4steidrDPlfYifrSgkUkU74u+f4vT8KLNbXy4YTMhwZrJZD1nVER17o= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178191022770262.655447489217636; Fri, 19 Jun 2026 16:03:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiBo-00022n-Ro; Fri, 19 Jun 2026 18:59:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBn-00022E-K8 for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:55 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBl-0001bo-UD for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:55 -0400 Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLXpPK1368898 for ; Fri, 19 Jun 2026 22:59:42 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ewcy30brv-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 22:59:42 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30c03c1dda3so2095516eec.1 for ; Fri, 19 Jun 2026 15:59:42 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.15.59.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 15:59:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=qFYqNPPFISG4W33OXfV6Z2hBY6Ip8YqwFk+1NFRkGKE=; b=Wd O8fR/M43CWr07gc8b8LX/ptcjEloJYx0f/EeaNLhXel2MwsjtlghLhO4VcFf/AOB rxsW07Y4pJYgqSIDq3rc3D+WWI3pvCu9uE0R9O9RYT1K8Qf3mmkcozpPLlbJKbs9 bMIG9kJvm4orjIWeXUdgI0KXzSIDJU7McH2xVCkeWfwfVhJq6k2BmFzMyQu9oU5a HzUxuQMu1K0oT8ThM8iIC8NtrvH4lsoyumK9+ETbyd7+Bj2VHRrewlJUAIz2RsMO kNPKw/vnW5pWqQJOUY952Z7fKRSelWS230EEmI3DyQGaqIMUGIa8m39yorPrHAf8 nNUJEy0M6rdzf1KyQAaQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781909982; x=1782514782; 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=qFYqNPPFISG4W33OXfV6Z2hBY6Ip8YqwFk+1NFRkGKE=; b=N/qoZFu2s3wzMTZwlpPd1uaEO1lS5K06v0gq6Os8i60ARsZYgnM8FwZwCNCgFaad1w cIsV2mQpC3F+TVfOEFFeKOj2Wi0i3Bxygh5fI1tPVylY+GNCGPWCv5XBuBS5w3xcbqVg mtNnLfIIuG0Q62+iyhhw5eXhGz9tB5lIeEtj5asD2uWXpPY08hDcFY7w4SuhKRvror7J UHbIy9/0x9Dbr1KntGUTnVYcyjMi+krdf4tdciaLy7t3FsG5MeWWywohpQ6LzaO85qFc kq5treWuv79NaZV1l/K3X25ooPdW7YMtn3+pXB40qu7JYDluA85LmszBkR6ALWoYkpC9 AUfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781909982; x=1782514782; 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=qFYqNPPFISG4W33OXfV6Z2hBY6Ip8YqwFk+1NFRkGKE=; b=PMmt6RO425gqiqDfnkEqArrtiXFAD06Nay73Lu68/rqeYrzTP6FkVwsBZDNfm4hoV5 EIVwMZ8SbEqV8ranJsk0EpHe6zB9OLrhop9WyTzHsFPzlxkU9A/lHTdkQ9Pcz2HBGO+l SlamCZ+3GOTLVAsTqsx9XLnCxa31JWo4by/yMLWy6h+VD9uQDDTEYRyZzMPfMgwN8oZL Km4zUdYePAggNEPIXL01HXd3sfS706BTV+6gvOymkjk6h34ztcKdjKcq9YVRfnXDe+Xn srBiVwASRMtYALoPz602DL7z7ULSR2MVLNpRuH3ZIt/JqiSFCiS9CynNVbykDIZ+Rmoi ZHQQ== X-Gm-Message-State: AOJu0YzLLN4Se6MMyJCusLBG8g+yMKwdMujdS+RqbD/oasxCKmsTIJqx Mf0wAGZCc8nWmwGxPuGetxFQAwdv8PZY31YO4+7n+KBTOqTiK9i2mulygyQ4XOCYe+dpRdxtfv+ 6cDUPzLnMK6yu8oNMvq8fLqo1qqAbjUvJZ2BXNunOO10CCeEL5tstmRXVeBrOUrLxvg== X-Gm-Gg: AfdE7ckxoSkQ4xYdRRYvlAb9rf4+I6Reg3sExyr1A+oDtr6rZFjT1fXyIZhkjU9GH75 RXKEF3EruKt9byqinuXRWX5+zemVdmoV4ovx4/3INilNQKC1FaegH0Z5GWbFw2o62lJaT+8pax5 IpcVLvg0dmJJc9vy72br8eBZF9OWcrKdiCdngytQ1xyAhLfoYBIc05Izy0gj5+23gK6PUQwa4rI lCAGyp5eT2UKlPK88i++UPqH9HxIrGrmcslATMrsConJTresef/IBp5Pz1XDIkp/pVo+9t5Z6R2 /xQ8G73CfAEogcxOjyjTqE3Xr5DqJ3pQT2+wWz6Mf2TJNmyKn8hhOa/vVF87t3gy8Tth4ZNHlEg hqF9WeOXruHxB60jh5HKXPKowTxuvs3FcHVxYHtJlkq4WxN0+Yc5QKNOnZzI= X-Received: by 2002:a05:7300:ac8a:b0:30b:f5c1:4484 with SMTP id 5a478bee46e88-30c1dcc6923mr667975eec.35.1781909981977; Fri, 19 Jun 2026 15:59:41 -0700 (PDT) X-Received: by 2002:a05:7300:ac8a:b0:30b:f5c1:4484 with SMTP id 5a478bee46e88-30c1dcc6923mr667953eec.35.1781909981535; Fri, 19 Jun 2026 15:59:41 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Richard Henderson , Pierrick Bouvier Subject: [PULL 18/74] target/hexagon: Add vmstate representation Date: Fri, 19 Jun 2026 15:58:15 -0700 Message-Id: <20260619225911.159473-19-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: -TZEJykyoXlivK-mUX-nIA--4XXnsugr X-Proofpoint-ORIG-GUID: -TZEJykyoXlivK-mUX-nIA--4XXnsugr X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX3GVJIgqSzLH9 yUWEls4BddPxp3S7Y9/bv7De74KUfPAuI0i4YZvsQ53lpoJkNLYbKq2jUgnJjvVeAlUhglhpqKE 48tuqqXZ1vnDxY1hEreY3Z3Xkzwtbu+3FU6EUvvOqST0AikOMu0huNT+AGD3WbUX7VNY+EwHfvu bYZB5+hdkKBjbq4DFE0EAXZIt1bKTYV5llPo1Uxp+zw+hh+KO6b95bDTlFgg26TVki9NA2d4MBR NGCqB+E6CfxDdszKHCqGHl2bD6iqx2/XunO3Fn+kUoxbqORKaGjKa2DU3FG8UfBkH/ivTM3MlI1 joRx+Eoh0/4dCQ+UZPzNRcHj+lkctXDMuivQWq7y4OrqA9YkzFOWqgebA0OkdCsrVCOHWIFViQ6 7AiWljSIhqE5bqHhSIfSFqDekL3U4ysS5ObHwEECKqG3t04ScWX6eXAAVsvKG9jVgJ56TXAuuzi MY5xlz46ejaLHra1G1g== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfXyb+XDPB5aOEJ 4biFy8O1Kkq8OHqPD5PRzdgJX0xdrrl91T5T7ZwwlIxrLIC5h4N/yrIU/PiP29FdQGqzOZ8OIBx seQmWnod+enQJbmdVa1mYS5XCiZa3Oo= X-Authority-Analysis: v=2.4 cv=ZOvnX37b c=1 sm=1 tr=0 ts=6a35c9de cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=pDBHowQsxXgegazyqkAA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 bulkscore=0 clxscore=1015 suspectscore=0 spamscore=0 phishscore=0 malwarescore=0 adultscore=0 lowpriorityscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190221 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910228200158500 Content-Type: text/plain; charset="utf-8" From: Brian Cain Reviewed-by: Taylor Simpson Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Signed-off-by: Brian Cain --- target/hexagon/internal.h | 4 ++++ target/hexagon/cpu.c | 3 +++ target/hexagon/machine.c | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 39 insertions(+) create mode 100644 target/hexagon/machine.c diff --git a/target/hexagon/internal.h b/target/hexagon/internal.h index 5fc837ae229..cd06ff41d4f 100644 --- a/target/hexagon/internal.h +++ b/target/hexagon/internal.h @@ -31,4 +31,8 @@ void hexagon_debug(CPUHexagonState *env); =20 extern const char * const hexagon_regnames[TOTAL_PER_THREAD_REGS]; =20 +#ifndef CONFIG_USER_ONLY +extern const VMStateDescription vmstate_hexagon_cpu; +#endif + #endif diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index d30e5b64eac..3059196bcac 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -382,6 +382,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..2dd95466e7d --- /dev/null +++ b/target/hexagon/machine.c @@ -0,0 +1,32 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "migration/vmstate.h" +#include "cpu.h" + +const VMStateDescription vmstate_hexagon_cpu =3D { + .name =3D "cpu", + .version_id =3D 1, + .minimum_version_id =3D 1, + .fields =3D (const VMStateField[]) { + VMSTATE_UINT32_ARRAY(env.gpr, HexagonCPU, TOTAL_PER_THREAD_REGS), + VMSTATE_UINT32_ARRAY(env.pred, HexagonCPU, NUM_PREGS), + VMSTATE_UINT32_ARRAY(env.t_sreg, HexagonCPU, NUM_SREGS), + VMSTATE_UINT32_ARRAY(env.greg, HexagonCPU, NUM_GREGS), + VMSTATE_UINT32(env.next_PC, HexagonCPU), + VMSTATE_UINT32(env.tlb_lock_state, HexagonCPU), + VMSTATE_UINT32(env.k0_lock_state, HexagonCPU), + VMSTATE_UINT32(env.tlb_lock_count, HexagonCPU), + VMSTATE_UINT32(env.k0_lock_count, HexagonCPU), + VMSTATE_UINT32(env.threadId, HexagonCPU), + VMSTATE_UINT32(env.cause_code, HexagonCPU), + VMSTATE_UINT32(env.wait_next_pc, HexagonCPU), + VMSTATE_UINT64(env.t_cycle_count, HexagonCPU), + + VMSTATE_END_OF_LIST() + }, +}; --=20 2.34.1 From nobody Sun Jul 26 12:31:36 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=1781910051; cv=none; d=zohomail.com; s=zohoarc; b=krBshpWWhca//eIBYpvpCVzanPuf9d01gOwL5C7rr1nJJeQ6mqSUvXXZ9B5cajeZa91u7HGdrDlDsVe/2vdLni02ic7i5RfywuFSYjbj/xB5At38mbJiEnmpR4gB/a4slnuYr2s4RU3N4lG9UvNYFI+Er0RXxeQMEqv2EdXIK94= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910051; 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=YSGjopxVE+rdAilYCXMYF1ogegIN4PeOYEB5C/MYTiE=; b=JxMq85yziRnBHKYrkzVuelAWIpvBaR6DHY4RjYCLWBz4QuUZvVySym9fMkEgS5Fl0zAQNu8NutST0E78cDfMQXJ+O47YT9BWo5LyGL14iwrysNIrVj5guexWgwmciklJmjvW2KRa1O2KRTewE6M55KPe9VL7345paLmH8LosTz0= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781910051183145.50230336481604; Fri, 19 Jun 2026 16:00:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiBq-00022w-5N; Fri, 19 Jun 2026 18:59:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBo-00022a-MY for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:56 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBn-0001bz-94 for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:56 -0400 Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLYE6c4086103 for ; Fri, 19 Jun 2026 22:59:44 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evmyrdj2r-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 22:59:43 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30c17f62afdso445438eec.0 for ; Fri, 19 Jun 2026 15:59:43 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.15.59.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 15:59:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= YSGjopxVE+rdAilYCXMYF1ogegIN4PeOYEB5C/MYTiE=; b=iOQ7g2nK+B0Jpna4 uR+F+cUMiA8dwifxKNf/dABV4Sld8OJF36qiPf3l/1LqiKD5oskwxBTv4oURA71u 7kKV9wO6KsJnZRzUpPnyCmNrfj5UOyqUn9cCRX3XCyUTxXZEtK+rrcD/M7y4LEEE /8O4b6QW5tVy3lxSaKa3ln4kJZHZVbmAxNhBnNUVaHZpGgqrmFh/5u+E4mJQ+6XL Hke72nJzBLi8JqsSK2MZPUa3IJ52teaqo2rTvSjegwXv0RP9FCZN57pI1BbaIe69 zehOC7ECRGUzIaryhPn78dIakGMoBe0/OCHYDuiGCz4BVyz5+kAdemGQR7Ud9cu/ ISKr6A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781909983; x=1782514783; 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=YSGjopxVE+rdAilYCXMYF1ogegIN4PeOYEB5C/MYTiE=; b=X9VALAJUufZmkP4ywBTAerXL3awIDnal27oh1ZdPpuu2LIIPxuZq2zLKBibM5sWGzI 8HBQPnSwReX1U2JT1ACfXFgT26QTmi1NYQkegMJ4QdhBurIgpxxtngq4vZHohY3NBSAZ IdyFNpWko+e/IdMK5C4ca367cJ15ILuXtkoM1q/e52IDHDfynLE7cYrKpqlwn6I4ZJeT Nn8oCKS9L2H3tKl87v1QZm20igldu9bBQp87OXvJnMKcIyfOaFeBpVMVc6T70ztLmZVm u9FGLF/6Ft/L/kIM3JhXMKJ2/zFClbo8PdA2LXtbvgvrYyjhZhUghfDJPtV67+IFZB2m HLjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781909983; x=1782514783; 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=YSGjopxVE+rdAilYCXMYF1ogegIN4PeOYEB5C/MYTiE=; b=pqUmsPo+wWIg8+TKETpfO9/CJFc046BEcG8kXtrM9sexqcfiPruMb7lCGGP+yBHGyi KhNEfxGkn43zEUCgTD7hF6ywXZFxA1qEwjBdjqg3iINf8ZjCYigUKP+fxq3uRzCl8OHi huCdeij8kdR9IAP7ssduWvxllh7QAIyOQmLgnDO9sf/ekRI8h/mIKH5pJi7zBZHlB/lN fQwYHK0G5eethT0RrJtPQvXvaTyiE8jYms5/us4A2mgaHuL6AT2Hn8mG7WNCTBkgUYR6 GKG5uM2ZZZVfi9XX98dGD5+yP9OpkhuPsYUC7I36ayVLODYxZMRynM3KlTCELyQj8biW hBhA== X-Gm-Message-State: AOJu0YwyN5oh78ZGFwmhQjF7v7pHehUfyNqqzAXJNyke7j0o0w202vNX nfx+ZMC+jHx3v+i1dUnL1c4meqqXwz9u9tNpO5UwVRPw3EnOuUVLCDMqMMb39nQm2Y/fvsXu3Wh RN18+3PcqS4yXf1QnwHUDugQhACMa70yCxJAeP28WBxb1tnTaiYQxFDg7ZTatYBu8fw== X-Gm-Gg: AfdE7cm9AEnigl/BpTGEAVIdbOyJ0Q14n5k4dKflDkopyXDAdTrjWfa088XZ9Pgkcn+ B4o2C+57PuR81ykDVjCetBIQ0NWD9tC28tdRwCnJK1yDHQqMNEtpnrQPBxh+xYp4HRyiHhElI08 +yLu0FbMjrOA3XfFSn2ngMvqD4FkeIVEKFOYd/6aWZcNeNYSXHiknObO+fVIVvYqi/vEQ/SDmiL 5EqC9bn3C4kFtLHHn0urVhxi7Oxy+w6xoGLcYDG8QceJThfB3vSE9LWuhv5LuMPN+teId0d8C9C i+oIQUagLjkUtnMBV/21iDxJymGConT7/frxCk2ew4xSVmss1wFGf+dcvkEEMv8vxwsWfx/jrHJ m5M5OvZ5YcUsLL23BAyKP2XFJc3KtJP7e0/pT6qNx9U7Xz6xJeiHM8bx70wA= X-Received: by 2002:a05:7301:38a4:b0:307:3a74:749a with SMTP id 5a478bee46e88-30c079dcc04mr2470594eec.16.1781909983304; Fri, 19 Jun 2026 15:59:43 -0700 (PDT) X-Received: by 2002:a05:7301:38a4:b0:307:3a74:749a with SMTP id 5a478bee46e88-30c079dcc04mr2470579eec.16.1781909982766; Fri, 19 Jun 2026 15:59:42 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 19/74] target/hexagon: Make A_PRIV, "J2_trap*" insts need_env() Date: Fri, 19 Jun 2026 15:58:16 -0700 Message-Id: <20260619225911.159473-20-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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=RZWgzVtv c=1 sm=1 tr=0 ts=6a35c9df cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA: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=923NME1-z-asBZaYXDoA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: 9K0u5efaHyJ6Vfoh20OaL2QKGlPt7uQh X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX6yKMmpoOZ2+o r36/RnLx43mSNmssLskIFfW5tMcpdRGeiYOOQVenP59KaRuVZKXsqt1m5s952bWYCJo7twDCoZb iz/Is9khvU28B0RERBF1dFBjK1GddsG/Keg6A66HUT0xnZiS0E4GXRWYGfgMvRgZoVU5JaW3aBN Ku4KEfiZTptsfWnxRmZAbqKYn4O4VFsnbkpUcNT0+UxShcKrK8eFX5BWBJJ5yevdheqj1cF+if0 CUtWKtfiqwZmToJ/+9oxzvdo7t2uiZkV9eKm45vDwK4ycsAOmHwpEVdLTi4sJ4egGp/3FPzN4Pi am7CiJIR0fX2wNEa2BiE7hDR3kmAlaPQgqDj5WU1DifMa+YmDtm4nr8AsJzvj1sggIqit6blNKL N0CQnvuhNv6doHbpCm+0zmr1ir0pxIm/xaIlTCMmBxbU+6r/OvlyRBGM0SImy5uTv+Aho4NXqHH ubd8WSTABPor/6pI9Vg== X-Proofpoint-GUID: 9K0u5efaHyJ6Vfoh20OaL2QKGlPt7uQh X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX3aAY4CE+H0iL nlnoxIyaSlSPwyScDscnAERoczxUBse0RveIEEP2aZURKndSKbzCC/gc15oBdkJHkofmIDUy76Q xy0Sox3gAlx4FFOoFS+JxERSILcHP4Q= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 clxscore=1015 suspectscore=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 bulkscore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190221 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910053502158500 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 df8d3ba6586..b555e2b663b 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -250,7 +250,9 @@ def need_env(tag): "A_LOAD" in attribdict[tag] or "A_CVI_GATHER" in attribdict[tag] or "A_CVI_SCATTER" in attribdict[tag] or - "A_IMPLICIT_WRITES_USR" in attribdict[tag]) + "A_IMPLICIT_WRITES_USR" in attribdict[tag] or + "A_PRIV" in attribdict[tag] or + "J2_trap" in tag) =20 =20 def need_slot(tag): --=20 2.34.1 From nobody Sun Jul 26 12:31:36 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=1781910196; cv=none; d=zohomail.com; s=zohoarc; b=nE+3WdK8AMhyGdJtRL1o9X0JHVJY7n0qRa/7fhxNvwjX3S8TsdyJ3/3NfTBqm/Vr4DAOYNKzQc9NBb0dko6Wb0ZMlI9ase++IohjOevE2gVsHXc6ZcFLRcS9yPbmuqEF1ErCPPygKH8K3Ju2NYcPpeKKIJTLLN421vnHItL3Gh8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910196; 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=gR7dx5FAHey0hvTHweaG0/Fx4UXE1mDGyZgCKofpSwQ=; b=fusQPW3NQMgALQitJECgGl5nDF3zBtWydmyC4EAxEwbbKRb1JVSp6gdaZN3WLmIljwxS57Tgu/KbDMu48xGfutA0NGMZV2ZLe+QXdZ5zJpGeywLZHicw1fm0IF7TqH5RqVmga0Dc4JSjqhZ404HGrK0IZxOH2Xupe4JGrhxAHqE= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781910196242851.7189002186846; Fri, 19 Jun 2026 16:03:16 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiBh-0001kU-VF; Fri, 19 Jun 2026 18:59:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBg-0001jw-9r for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:48 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBe-0001c5-Mc for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:48 -0400 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JMwVYw2081768 for ; Fri, 19 Jun 2026 22:59:45 GMT Received: from mail-dl1-f72.google.com (mail-dl1-f72.google.com [74.125.82.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evm22e05c-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 22:59:45 +0000 (GMT) Received: by mail-dl1-f72.google.com with SMTP id a92af1059eb24-137e49e896aso2474905c88.0 for ; Fri, 19 Jun 2026 15:59:45 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.15.59.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 15:59:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= gR7dx5FAHey0hvTHweaG0/Fx4UXE1mDGyZgCKofpSwQ=; b=DbV7TXPgHu52wz0N fm0qnUFN9JwZFmBg4rXq1PMx1LGqA/NOZ/IvygsXl8Ji6/z14B+AAxJt3yv09cCp 2a8wDTPCd4G7wPEjA071M/1fczg0cYZcB/ZHSGB6clNd5I43QSkNOp15PC7rRKn/ 6+oCUo0AApx3B4HrRPyL7Sltt1BZfPcByYJX2bRTt8gFo6quShaJhgWaNjdiDEbe K+nnq7r1rBs2+BWG7VxHsMEJVMSp0p/9S/YDaGEanXCpLjSLf8Le0dSU2iwmEvmL rx620UQwZbYNs6xzie5+FUelA+ycz9h5UlMpbiganjj6gmwaxtQejpuQ98mhjswV p6wZBg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781909985; x=1782514785; 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=gR7dx5FAHey0hvTHweaG0/Fx4UXE1mDGyZgCKofpSwQ=; b=dF5iPD2ZLLnkQozY3fWP40C9+KZ6KUqhfbt0q8KQ5B/FzfVoJL6RoyjPJMc64f4J4d t7QwHmJqE+3BsXgtbIfRZzKzVUvjo3V8KUgfplwH0MlsuPldcf/DgHa0mjIk+XkXmOD7 P/6r2dz29etEjxz8J2rT1mieBB9oGBlawdb/n9WY39l2WxMycVNnRSKTTf7n8td6oBxg ohJjhSwd90SnZLn5PRD5J18KcOhsOZyEtk7ckxsjp2RixoQJRjpNZw1Qu6u4uispGLca ow7eAUTnP+IDUU6Xr8ElkyQA7xQ+yoJHn5mwQCEMkKV8uiNDMnV+eeTsxftCTZcnYQYl R2OA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781909985; x=1782514785; 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=gR7dx5FAHey0hvTHweaG0/Fx4UXE1mDGyZgCKofpSwQ=; b=N43/p67MUXDA3f/8/yui7AqLOvAz9Ez6w1Hmxoz3h/rUWbtrq4xLCsNmva4/A9V6y+ 8BLNs6ygGbT2PcAEkMvNdf4oEBWkFNHZH5sQIy37nIXjHbkTCk4mTOzEx+i/VL3qRfVt K+ASh2/vwPOcWSm8lmUBg7ZFF10k+HHmMJuQUaRRy3X2K4y9rVkHv1AoJkv022zqAcgx 3zh3uM03Wr8qXzTGPdP/mGCcF3+6T2B+Cr/OHDxL0BYs+9YHcv23oW662zzphrGpZvmn VhCYeN9KZBr6oFsqvfm05n/Lm4ogaYxD7E65LB8Uu+5oFAnzyaqdhKkinHO8/r0LZhCm s/gg== X-Gm-Message-State: AOJu0YxCNnLGmlB/Jt2b1CNFurQWZA4mMyeFJf/5qFNAgdotvfCmvSZL bMM2kDl9mtDX5nBRFTpO2pWR39WoTltaQTBn3Z+jUNtxFh4s3no/daq5GZs0VcLRTg2I4XiE+GM D4m9RMGYbTUsiYJ+oC6UB/Xh5/GymtGdrrSUEqgMj1YULk8h1t6m9jx8FAM4GWJdI6Q== X-Gm-Gg: AfdE7cl6x0bBuqk2x2YphYQRQ/T8jXg4dhD7ZdLh1x4HRJYuKf0KyKubYICeyHjoXrH b3gGQh38i2oYxN4iTWsbqCg2I+W1JVlMjtp4gk+L4Q5HS6tmwbZbIkhnQdSg3UfroslkapES3eP +0WPXH4dwyVrxZotIC+YeZSxnKPJIdU5za5ibpWeAFOIouSAdEvkQcN7iEayLF2eRl0in/y3VC5 YfMkltv8kXB3sNAp44oTxhCUlb7RIvKPOIVN1R2rbvDaU4ZW4h6SY0zq4Hj8xa33ywtyUvhck4q aEh38I+J2zmpNWZSJQ2GBetA81Ww2dCzohFZaCpqz3yQPoWL7b+gNRt9oRpdt7nbIKWJMoEHSX0 g4sI/+sWgMQva/HiquNc7eKLXHuAn1JsXz9zxEV+5/rUID1lM2yr+H70PQd4= X-Received: by 2002:a05:7022:78c:b0:12d:c3d8:1f95 with SMTP id a92af1059eb24-139a3020c97mr2488578c88.4.1781909984610; Fri, 19 Jun 2026 15:59:44 -0700 (PDT) X-Received: by 2002:a05:7022:78c:b0:12d:c3d8:1f95 with SMTP id a92af1059eb24-139a3020c97mr2488564c88.4.1781909984084; Fri, 19 Jun 2026 15:59:44 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 20/74] target/hexagon: Define register fields for system regs Date: Fri, 19 Jun 2026 15:58:17 -0700 Message-Id: <20260619225911.159473-21-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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=YN+vDxGx c=1 sm=1 tr=0 ts=6a35c9e1 cx=c_pps a=bS7HVuBVfinNPG3f6cIo3Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=mmKuwxttERDeH49ycpoA:9 a=QEXdDO2ut3YA:10 a=vBUdepa8ALXHeOFLBtFW:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: aZhdU0zyZz4-RCoAUHp8vONW0zdc5CGp X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX+f4kudhS80kn HEtbz98SSS5BJA5GsPUNclrGhyBKVeBeLlLKThKZltofGOD0N+uMh3Mofevto8IAYtK4WTBAwUa VgJUhY0izoA2SvjaOhYENHOy4rzLrPw= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX0RzaT8fGZwW3 emM56UuD9UtF6V5Tc84qNHrH98RUqRIMO8mlyfaGeyNtPeWgAy6zX51C3PZ24/WcrKhhvQucS7y YqUyIzne+kAaH8820Mhhfi/VJB0jj2uv5ltZREo80t1EEOpTpef8wExJ4htFR1gaI02JhQCnROO uTaJrP4Wj5Pmgr6RBAHXkNfTC9zmD3O8bODfK2JOzjnEgSCp1b7pkcqfn+29F67np1KoKW0hCBQ BLqwZ5y3o8YyF3jBijemjy3UYqRqX7crpjsHJNTukkQKTYjV6IT1DhCt21ypVkvO8Xz1VLlhKzs RfCbrdM9nGY09jJ3w961BtfOCQ3iJsVii1VWuGMNhVB759viOqNWPbAiUKnZJFlofSTORCJYAJY EPCuy99aX965JHAlOU81zSyYL5r396U/X1kMnXYqS28Iv61hlXMc0BPk31BRJQi/UrRN1S3n9Ct Rh+RXitSo1wmYWxw2nw== X-Proofpoint-ORIG-GUID: aZhdU0zyZz4-RCoAUHp8vONW0zdc5CGp X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 adultscore=0 clxscore=1015 impostorscore=0 phishscore=0 lowpriorityscore=0 malwarescore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190221 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UPPERCASE_50_75=0.008 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910198056158501 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 Sun Jul 26 12:31:36 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=1781910284; cv=none; d=zohomail.com; s=zohoarc; b=FDJfVR3u54dAXnfres7fHTCWY3svcK6W0QNO/s16XoUAPNmq7914OneCA5H0dztlZIXjEkCxz15ysw4ZOG7oIv/Ikw3mFaFHs8toPdOG8dpB6rGzU+OahSlNGip1SywYDuXU7ABwAz81qHCdIvuPi29Db7vkT8MTpO5f+i1kJYU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910284; 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=iyq7LBA9ReIYZhusAxIzcfXUYATt4rc1w494jGlIN/c=; b=W2JjRu4wept6zL5zZPtZ3LH83ifC9+KRyFWr6uV6yMtEXYjsjgUKRZ6yOXNZdW2lBNvi1URtUesUQIIdP2K+Ssi8kifxevsZqao7Ao27PCzr3KEkB9ApWs/wMD0CFLPvgzJDCIf3KtIkpgwXjibXvGzwZNVn0+T/AOf4TigHKVM= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781910284061758.5148993262245; Fri, 19 Jun 2026 16:04:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiBu-00025X-CU; Fri, 19 Jun 2026 19:00:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBr-00023K-AH for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:59 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBp-0001c9-Qq for qemu-devel@nongnu.org; Fri, 19 Jun 2026 18:59:59 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLYkhe1287266 for ; Fri, 19 Jun 2026 22:59:46 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evy72k81x-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 22:59:46 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c108c19d4so1091133eec.0 for ; Fri, 19 Jun 2026 15:59:46 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.15.59.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 15:59:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=iyq7LBA9ReIYZhusAxIzcfXUYATt4rc1w494jGlIN/c=; b=nM b5+HPovzAtddGxgPkz9s96CZGO+5Fig3pJvLl/xVzvzHPoauWMvl8eZnHJaoLeoh ap/FRFjKQ8y97Wz5l2Dns1pG8MC44oMmTh5iiEJ0SZXQUTS2tyltzFvGP407hNnd egxslSCLCOh8wL/5s1LXllO+X07G6HCA+Fqc4AhvBhYClBCp9uw5g1zNuYGfV5M7 zilpCsJtM7hezpDy76tmU5FSPJry8B8jZVsvS/aRnq+jVa35kjUsh3OzyJrWGjSx xRZaLbqsG6AAqIU00Xk2uDTi8T89NCUQhDyM5O6Vi7kiwhp9Wl/y4jC8JGtXG9D6 OCkvffEFohO+ssFqOJBw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781909986; x=1782514786; 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=iyq7LBA9ReIYZhusAxIzcfXUYATt4rc1w494jGlIN/c=; b=KWP68ECk5k5Pv5CxqsNJOT1RC6WCF5X/cEolWx8vQmx8KQ7GsuP/vSfi049K3p/p02 po3rsPB2XkcGerAfcgLn9LkrcxuTA8qGQ3rkT1geBYtbEwxCVKt6kQYNFItDerfzdiJR tIWS+5aX1Xth4aD0tYwEj+QM8oXUYtisNU6H2lXQNx+C3+4tEz42yjUKtgqE+Qnkf3uS q3Nbk1McIRWo1tO1wbHIWmt+qm0SCIuUk7jXnbtYf0CbouAlts+ipHvIy65zqG06DPQW QratDihrkVTVVHPH0W8YxriUAjuoBGBclNbDsSW2FTWtKmMyhcI9FaI7Sg1MMsRUM4dS Hs3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781909986; x=1782514786; 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=iyq7LBA9ReIYZhusAxIzcfXUYATt4rc1w494jGlIN/c=; b=LTu+0zYwI9KbzHMCunAJxc1mX8p9HwJgC+d+WhvH6dEgELlHqu/SGIDMW8/u4DvY1v HZLgc8wpU3eXZw+CdzH/PI738GWQEhfuhn+ACBezTk8sraSvKx1DzyS3BJvFLG9M7/qD x8KMTS//bt+BK1jp2OWeR322rcHPZtVfkPkRnIkXox4lnMEBDwtbVoESuTHqTkIqQN8E FJEsK9Ha3OwolFSc4BWQFhTaKyWpRiIRCe/K+dKKtKqOtfwO4LdP+Y6o3HbD8SIBQqwc CBUAgNDXF339AT1as83HhBMaaMHADmyNzkpivUAR4aQMW0nvJ0sgePapA9mHX4wBxx5n bXfw== X-Gm-Message-State: AOJu0Ywyt9X7Hyl3HERx56bcvgsHMrxQknozb4CXHbpgLL8/Z30If9gn V+djLR+UhR2O1kPaJ81b8+T60pKRFw2DKBVpZJ1fbiocZf/uCeIIyzOzqhUDpTPTtTrdrnWCXsK ppiBJ8O6q8FUDGYMreZp0bkNZVieJZwwQGBtD5pZsn/cXbsd4dgPZETN7YvYW26C8xg== X-Gm-Gg: AfdE7cm0xpDp1QgjEQKXpqkU1f1ePrHWwX6m2NiuSjngX3Z5Uxx4a0+cDhKGY2syD/D GSuXHUeat1Oqx9F4kRg/RyvzrZHd5MNOuRhzCnSMCc6b28F1dEJ9T62kyr/m9wGwe/CwfLFf8YV 6cdu1JlqN+2o9IPU1lg26nrR4SBbCDvehGRiJsks61XDXwWoAbWoD3XjJZ8/1+xuJMT5UTpvHYH w0zylw2uLOQWNxWVGoNpwyF8j8vMVhRUMLiwu3f1REljPqjIXuZjK+tPg2rCpD48YrPWR6qAraw O05eqOWzmkmwWWJ7c5KZ2VKCWzeZX4SXm7P5ZCSMPwK3WkIT32uZOVsGPFeCVqD9oVFoEmjon5h okh2BX3Dnnbo+cWxKSPuXfin86azi/mwkj7+zOUPzanZ98b2kqRVmCw4lGhQ= X-Received: by 2002:a05:7301:2f8b:b0:307:91f5:8eee with SMTP id 5a478bee46e88-30c06e33661mr3421792eec.12.1781909985820; Fri, 19 Jun 2026 15:59:45 -0700 (PDT) X-Received: by 2002:a05:7301:2f8b:b0:307:91f5:8eee with SMTP id 5a478bee46e88-30c06e33661mr3421779eec.12.1781909985350; Fri, 19 Jun 2026 15:59:45 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pierrick Bouvier Subject: [PULL 21/74] target/hexagon: Implement do_raise_exception() Date: Fri, 19 Jun 2026 15:58:18 -0700 Message-Id: <20260619225911.159473-22-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX5UZKkEs0qaLC HwgZjwPv1PTm1MpZgI7QEBXgJITWjYhFddemYSrUXNG6en7BUziibvsipRNaJj7gVwV71LLqK99 jN1FnQ+vM7PeRddbJf+QD/jrb2rruGjVaEiyoDViW7MhdiZEr2XSDXtIoyJfWnjBdPVwbLu+FJq 3ifs6bbGSSh/ZXbiecV0fZcfDc3dwPo/0xh0RYUEC6fGhGAAVsvRCK+PHvhYnz65QA7Rw6PnwLX J1jMzFpeGvOfEWcU4Bx3uQDONZ7S1ZuNcjQF+kEFQ6qLALAjxGHXDlgTvl+kppC0B+XPG6yEccc kPwiFOT6i9PZztD34LCry1PyerNpE9eQYfH5+WQfJoM+cNsuRPHjPbrjFPnW/pEnJUZZVHegkdI kJGWRGF5epJjuFasw3vqBTujemkhU2quQs+rJEfDYItz2AP8oKj26VOk2XErTM5PurjyUkE9vp6 RgQqKgZuxoawQLorv7A== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX9e5WPeNJXoji qDkEOFz/0sCWI631GajrmAV97R17H+tGEGxjvjbBglGRQmgeFArHkWoZT6134amiQja1wUyrfT1 HAYL5Yb8QKN5YrNd2KAkixO0bONhAMo= X-Authority-Analysis: v=2.4 cv=I75Vgtgg c=1 sm=1 tr=0 ts=6a35c9e2 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=hK29HtBGQMdOITfcgGsA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: 4IZq540jm7yFXG3ErPrR8IM5IVVC-93b X-Proofpoint-GUID: 4IZq540jm7yFXG3ErPrR8IM5IVVC-93b X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 impostorscore=0 phishscore=0 spamscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 bulkscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190221 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910284369158500 Content-Type: text/plain; charset="utf-8" From: Brian Cain Reviewed-by: Taylor Simpson Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Brian Cain --- target/hexagon/internal.h | 5 +++++ target/hexagon/op_helper.c | 14 ++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/target/hexagon/internal.h b/target/hexagon/internal.h index cd06ff41d4f..33d73ed18d1 100644 --- a/target/hexagon/internal.h +++ b/target/hexagon/internal.h @@ -31,6 +31,11 @@ void hexagon_debug(CPUHexagonState *env); =20 extern const char * const hexagon_regnames[TOTAL_PER_THREAD_REGS]; =20 +void G_NORETURN do_raise_exception(CPUHexagonState *env, + uint32_t exception, + uint32_t PC, + uintptr_t retaddr); + #ifndef CONFIG_USER_ONLY extern const VMStateDescription vmstate_hexagon_cpu; #endif diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index cd324c19a9d..0f43a666341 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -41,6 +41,20 @@ #define SF_MANTBITS 23 =20 /* Exceptions processing helpers */ +G_NORETURN +void do_raise_exception(CPUHexagonState *env, uint32_t exception, + uint32_t PC, uintptr_t retaddr) +{ + CPUState *cs =3D env_cpu(env); + qemu_log_mask(CPU_LOG_INT, "%s: 0x%08" PRIx32 ", @ %08" PRIx32 "\n", + __func__, exception, PC); + ASSERT_DIRECT_TO_GUEST_UNSET(env, exception); + + env->gpr[HEX_REG_PC] =3D PC; + cs->exception_index =3D exception; + cpu_loop_exit_restore(cs, retaddr); +} + G_NORETURN void hexagon_raise_exception_err(CPUHexagonState *env, uint32_t exception, uintptr_t pc) --=20 2.34.1 From nobody Sun Jul 26 12:31:36 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=1781910176; cv=none; d=zohomail.com; s=zohoarc; b=ftHmO/lOr2/E8i95B+hAijKMZWYfW74jJSaJeFAPLxcQ1ZGYXiJKxodd2o8R7HR0/UaWG8cCKRFOqafuKqSQlvt3+pqFNR0XKEWm+Kl40NnzfJ+E2RzC2EL9bSn+vpmb6avgt+oH7Cp9sJQlO4gbAKPhPT2VbQEhUkZiTaakQSY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910176; 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=rkJVz+7Ob1j1iubY29B1NZ8jMktfLmq3iVf/PzHu0xg=; b=LHfsSrTAsupL2zqoBjvEenvWn1sTyFi7+mIUuyCcNgVqdNrUT5K7VwvSwD8M1VFI80FfCQJkvkiYS8xV0xPonaP8JxYGtUiHV7xo/n9eGLpQcnoMdfVYqCJ3U4k7irZ3oWlF+Ss2RzT4zyREKtY8IwPqTQ2ub7NRelJHAFcLrUw= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781910176704901.1801590081075; Fri, 19 Jun 2026 16:02:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiBx-00026n-GW; Fri, 19 Jun 2026 19:00:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBv-00025t-RM for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:00:03 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBs-0001cb-4s for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:00:03 -0400 Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLYE6e4086103 for ; Fri, 19 Jun 2026 22:59:48 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evmyrdj36-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 22:59:48 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c04cfaaf2so5436714eec.1 for ; Fri, 19 Jun 2026 15:59:48 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.15.59.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 15:59:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= rkJVz+7Ob1j1iubY29B1NZ8jMktfLmq3iVf/PzHu0xg=; b=LL+1V0K5AdIqx8mZ 2E20qyxTbFavqNArmEiU0cMKVgnK9MRaFX8yIhYy2nG2aW0uxsl4cyP25GZoeAyn 0ihCTdtEPhgxNEv1UkVfH7u7zJbJvzdxLjdQFqioOcKVxt54ewz1lNePDQ/meGQh mEvA+OE+2SwSkfcjQd3dQKAH9b/RHrmjJU5AtVNlN1UVTVhWvnXJCekwURwThAwt KjOdbW7XboQVn41ARaRYRNjA+uQcUgHVQXN7WYIVLlnfbQDALRPKAGzrBFpLFGzW lp0A45y4YLdgm864a0UAgcYL6/uI/VJ9Nhn7YQxhnMSF2/PQ0wkLve7elrXZ1VCc YMjOXg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781909988; x=1782514788; 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=rkJVz+7Ob1j1iubY29B1NZ8jMktfLmq3iVf/PzHu0xg=; b=Fh5w3/tp2JzI1EIn974cbaKtFexEXfr4Nw0MTIg67Fdit7pHftCbaw/SZZX837kDT5 J6TtODmT6ej+zDLdUORjrjgnUMV/Wx73knZiencZF97UkdCQ7QhAJnpQx4w0VDOKdlDj +LDqHWfyWOzMTZzKmWf/wJPqcLNgsT7bur/+jH2Pym+Dt1OkXdxUrmoL/Gb0/Q0DoH5e xIhMovnyw7PjeDqxR9gMTF1Js+mTnmkAbaZMUU1KPc/0+YW64Ebv/Ufj5bs3tugEZ2LT Q62n3/KoTq8YdtfmYKN6aM1sIK5+hQZv2Q83GzqZrs2IIweufm8xQYmZugM1MbckcDpy lwKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781909988; x=1782514788; 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=rkJVz+7Ob1j1iubY29B1NZ8jMktfLmq3iVf/PzHu0xg=; b=B7dM98Jv1cT0TIHCF5ySae5UjTycxGPdAEkYwgi8syCpF+l/rqeJnneY5TDCvY1juT b7n5c5lu6ZAfspbE1BagOcz+Ew+nVUUYt57s6jfi5VAbjlVrB8Q1gy8MtzF7YNqD8Rvg bl5h2Z3KmVcH3df5HRcd/g2q955KQqDA2FqmMO8rAWG6uDno9mscQHxu7nxc5tOHnEUj 05g6h5d6ucEig1C6Zp8ZMyUUFZrTID4nlsmzs5FAlON7kEkSrTafbXqTCWFGigt208s2 qI3cJ18ysnMacMy8Sp7hZKpaooP3AZ9LLO8MP76DYfTiMAp8YIANCRSNDY5tSIForjpQ aEfQ== X-Gm-Message-State: AOJu0YzIF8b3SQktADnInNN7Diqr+YCUPILdmhEzGhC3HXqEJlQyIyot KFjQtkCJc6LbjoaTXQkAYY7YyPAhCyberI8lk4C6XUXgf9VqYe1+2ZKoOKBDv6UFl+KF6iQK+5r G+5FhkZCf6CjFcwgkSy0b/qOCXn0Wvxm9vZYbMeCUa6C5qQtLS1Etp5K1WgUW1Kly+w== X-Gm-Gg: AfdE7cmkdD+WgUjU/OmUUFMTJDdqyXen6JP/afPGWTjRoTb4rk7ZBQrTCgaOQSpfS2L QnLF5WflXJFIxPXT79fOtz2Dp/hNE/Kpa1Se4WLrKH0aMGcSFUkSnpzGAO6w7IMBRyqi/U42fs6 13WqfhWOo1LyLWJeaKwtj1l/RCx6LrKgrtnM3CFR1X1IHPBTwpZN7QvFq0K5Wb/soLM1HWqjWxu PHRqCOoSwM5gM3alhqb0/oMIC0H0Y4Vs5trGEwgV5xj3zMrOYQ0QLV0b4/v5pQwwoq3J6MqKrMG hpFaJ4ASiD84hDFZv6OvwYvJEvgsyqRbxPqQkMX9KPMgwPRi2YZOH/fD5bVwHNOtmIqZrTD63B8 pcvgOE7piIVsbk8dqOgXDhyK27UfVBDeajaD/VKIPPaVSHI8gI5LgfYxDih4= X-Received: by 2002:a05:7300:8188:b0:2c5:b23e:48a6 with SMTP id 5a478bee46e88-30c07169376mr3500605eec.23.1781909987630; Fri, 19 Jun 2026 15:59:47 -0700 (PDT) X-Received: by 2002:a05:7300:8188:b0:2c5:b23e:48a6 with SMTP id 5a478bee46e88-30c07169376mr3500580eec.23.1781909986774; Fri, 19 Jun 2026 15:59:46 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 22/74] target/hexagon: Add system reg insns Date: Fri, 19 Jun 2026 15:58:19 -0700 Message-Id: <20260619225911.159473-23-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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=RZWgzVtv c=1 sm=1 tr=0 ts=6a35c9e4 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA: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=Lq-sf-uUdcGOnWOb84QA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: c0K7zh-doDHcHeP-Wx83rx8efp07_WJF X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfXzAMIZcq0Pd7Y 7gZ9PSGPcRJv91JgthnPKuHYebFR2FvczQQu0Y3e/5dGPISu1Sga9WxkZUn4dmnUueFJZK/UEQF dw0ZrIv7P3CfTwS0zg58yscVjea+GG53Pl1DHt3upTmA3nBNTd6ueV77Y07AruEf8iJOX15Wnhi TRCn0yyWwWdOeG0UfThADBAV+9UJKzTbpSMDB58NEGBp88MCDFerIE/I5StPWfG/OilnACGBlEY o13Whm5aCqEXVppUYYQU3g4boFbc8pG/xrIksvgTjKD2Ay6OSd3RBoCAps3ENuCa01HGyC3POHO V617IXt1w6X6XW5+F+MWLraCbZCUbkcswILNeU/ooM/S8BveXysxMRQEXzYYFKu1qjdpjc/6OvN AcfmhRUKk/iA73bVt8lwyqxmiALzqmiQ9Gq/pnzAxIYxO3UQimNx6jMAM97ABIgHnLRebee4o5M cqZD/er997ZTyp3Lfdg== X-Proofpoint-GUID: c0K7zh-doDHcHeP-Wx83rx8efp07_WJF X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX2spwcyWm7NAC GOYHvAMIn/gxFGZhJk6dQTAWAJsBSNDOeHFSz4vCcWhaMYpUyVmvpHLVVWy/cbVt//MigYoEgef pQbaGVuvtFyJQaSWydzR1ers+72XGFk= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 clxscore=1015 suspectscore=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 bulkscore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190221 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UPPERCASE_50_75=0.008 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910178063158500 From: Brian Cain Acked-by: Taylor Simpson Reviewed-by: Pierrick Bouvier 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 Sun Jul 26 12:31:36 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=1781910262; cv=none; d=zohomail.com; s=zohoarc; b=eo86ffZ2DHtshu/hmkc1BQA4p1Lily1/uAKbRl584Nhqu9UbBQa9SKXkX0rVomlCI7dPzB2yh9adXXIfOXR4KJHhW4GojDpi8e8BK35V04fmSmoN8KAqW3UizojCSCOXZS+PQIwCS1odx4up464PrdJuz1csmBdn+CP43IvSEHg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910262; 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=fDaERk0pcWi2Vino7JK4SGo8FEH93QHSMD/a+0Nw9n4=; b=c0WD7DYS/sPHl5nxBG0SGazWy2WBhRhUBbt+7QPAk0LcSirNKiIo0lI46iuIQdiO1Njzp4wJaQtcbfpR5ojfZvByVXfSRiUfBowuALXGSm7pG54tvYqr0/lusUT7r7WM9f+02D65tNRy/81+rPAPgOt+Ndu8Y0hH4b5bqDFB+Bw= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781910262033129.25254949338546; Fri, 19 Jun 2026 16:04:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiBy-00027W-0L; Fri, 19 Jun 2026 19:00:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBv-00025d-KF for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:00:03 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBs-0001cd-Ch for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:00:03 -0400 Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLXi2G1368803 for ; Fri, 19 Jun 2026 22:59:49 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ewcy30bs4-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 22:59:49 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c0c489e72so971540eec.0 for ; Fri, 19 Jun 2026 15:59:48 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.15.59.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 15:59:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= fDaERk0pcWi2Vino7JK4SGo8FEH93QHSMD/a+0Nw9n4=; b=LAibb2hZ5D8mKKxA OOaObNbN3NreNvmwpXPmyLZru6BZ6S8UUL0f6wSKz4squqXn+Hs1fUOcEsXHdhvD NrqjTkzDlo6ZEq2p6nBTSHy5MVI2rVwmil1pmNwJWrPiwnOPZaX7hANIesYIZW9t R4R7ZaKgbe81eBXOjCGRXSswec429Dr9POZP+iORL6SHDHH8+1KUW3GpOO4w7naV fUhLtm5huOEYIym7fzAL//C8riMuOBzIHEvRCjG8Q+kUiXzXkSKreVxsJEUUCqpL Y8xmS35XGNVo1DGZHuVOopFweLTXfRyNqHI6I/LhocUjo2lYFTzJz49Ji9bR39ux uUtZ5A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781909988; x=1782514788; 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=fDaERk0pcWi2Vino7JK4SGo8FEH93QHSMD/a+0Nw9n4=; b=SegnCXzr1qpKn/jBKkFL26KG4f2SNCOLK+ouaWkpY02ifsz866hKptswlUAJG8v7NV mmR/6ICDlUbp2XSZZ+dsjFKHOiAGpnio4iHMysVFKQbhrO/nzHX6jGdPnIuT591/GhZI uPwbl0R3+TI897or2uZ5aMMiutomQT9tSM3EcHma+xhEMDiZZZuEdZMQnGx/RSQTxlMG bjE67ledHXO3POvMHQGKGVNTrweovzZ+FYYlJoAYvgB/+YiIuCGHOmPVBr5vv+/XN1KW 6KrZTtOIvfXMqVT3HojZa9w80x0xMh4LLMPRPVcjrqrqfo+QJXMxF5oOkFPWgjv3HkPu gNYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781909988; x=1782514788; 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=fDaERk0pcWi2Vino7JK4SGo8FEH93QHSMD/a+0Nw9n4=; b=Sx8ZLLPg6xGeHUpW2nkNSaFvpXHPPQ2+OK9CM+bAfSCXRevZO9imWqJ76rdGATjH0h SBqFwC18PTBg5IuTr+N0cohL/xNLsMC+k2vwiGYlxu9uIve9aZv3jRrKLJ52NzzxzUBL tdBxDpY+I1VWa1E4PScSFRhRljlCxWBFJGFpyrVAzgvWkgG3ERrzaGJRdDaxyFCbTHJa n53eSTWlOFjv4PXHNm4gTXjCBGFFiIZvNAQMeDHAa4UTsBaEd5+mFkOD+iJZqLnITjdn pemwEjQlQ2OqgtSPwcdiMjQ1cbobJD/oRvsI3zSMv9rUjtKpJNJB/jDWd3frF068omAq UhAQ== X-Gm-Message-State: AOJu0Ywn4NessOXMrAweXC+EoHw5yFl/EBWJJt3o0VKqlfzQPC0iN8Oo 1ly4c5fS/abfuwHWQhMvEcAQVl4cVAlP5nz3zJTiC1R1v/G5DvjWfpkWQj8iN6SrpNDsJ01sijA 533vTd5U7gpTw87rvhxenrF0EaT8q1hxS6tSurzU+LDNkUrR1ZlkTr7hS4+YXZ/T7VA== X-Gm-Gg: AfdE7cl26taBkV6CW3Hxi78YLKuRiGs57V2pDbWmVOcFr6uLx+BKw2TE82Tb+WT2KWO RH9y2bGDm/8MeHB38H58nanMmzeoqh90E9qyiX31M96WdbEgpL9V0atDLFl8MHVaprqle+9PzUB sY/ffj6foC0Mb2CtmVLcwJxXIQC00Q9uoNqls9+0xo+iwWq/nq/0rGx35ltoBrVu47VIOj34yDr Bzqd2blDtjn5sG0fLuY3yGxFBs/qOIw5oNj5sw0qmMfeKfinUdC2mwBLTq73Zml5PDFYSZ7Y2/c RTiib3Cqj/RUIVoRqwafU9wLeWXyTBmWgyT8RCtVQkqMcROHDxbFToEmMA7GIR21JpaaRuoWcjX WZCtC7jj49WQhpWqaEvgm4hEHzqaipzV9oVZTTQeNLIu24+Rq4ezahzIMJ70= X-Received: by 2002:a05:7300:dc10:b0:30b:f6cd:fdcc with SMTP id 5a478bee46e88-30c06e14e26mr3120759eec.19.1781909988352; Fri, 19 Jun 2026 15:59:48 -0700 (PDT) X-Received: by 2002:a05:7300:dc10:b0:30b:f6cd:fdcc with SMTP id 5a478bee46e88-30c06e14e26mr3120749eec.19.1781909987830; Fri, 19 Jun 2026 15:59:47 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 23/74] target/hexagon: Add sysemu TCG overrides Date: Fri, 19 Jun 2026 15:58:20 -0700 Message-Id: <20260619225911.159473-24-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: 9jZzGvgmR3QX4HMiw4yh2TDbm1VbiWH8 X-Proofpoint-ORIG-GUID: 9jZzGvgmR3QX4HMiw4yh2TDbm1VbiWH8 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX+k0Q0y1QZkQD 2XswOwroNDPEtoNY30qXR1hdATSlSRS197eW8wmDpot8Y4vMRbxoVp2g68gDUNessCm2qav5H1g yu7Z3oHH4mFFWKspLXkK3ot7F+HXflBG2KKHRlGqLstskqjtX96lhj6gSWlnwLtXwQTHc7lxINd KmsK+RXlfdVlg8hI3F1NreMg8egq3JLR/ocDkO+/bK5E09HSybSpp0uUQV03V9jnYDlOIbOgfVd jjj29C1b4xdgPWt/5duHpbsLj13KJuv0USaFly5K26L6lbqs/fo08/xVObsorS3CLVSfpMhCgVz 3cM4BBfC5ImuJiFKHeV9nir/Kl+2cJ7Uzy/xRKwYo58O5jwUarF0bT1E/Gl6JJm2RM917i7c6gf Nho+KtUSFXjbr8fYwVrwiWeDwLvxVItC4/GKLa6dZYsgPvYBUN8IYVSlqx4lTRvVM06p+5//r9L /Wahxb3nfWIuyv0Rikg== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX0ZfvxqzUTeVC eC0vZ89l1DvJqQ41zI9922LG2dPQkDvPBHlONN9Hg9eLfOdqzBSVy8Bmu6KikNUFXq77oCmdA7u icPy+gyTX9/Xx3sjF0ahsdIwzDeKlIk= X-Authority-Analysis: v=2.4 cv=ZOvnX37b c=1 sm=1 tr=0 ts=6a35c9e5 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA: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=dSil3A76VgRsV-fRJqMA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 bulkscore=0 clxscore=1015 suspectscore=0 spamscore=0 phishscore=0 malwarescore=0 adultscore=0 lowpriorityscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190221 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910262265158500 From: Brian Cain Define TCG overrides for setprio(), crswap(,sgp{0,1,1:0}). Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu_helper.h | 18 ++++++++++++ target/hexagon/gen_tcg_sys.h | 55 ++++++++++++++++++++++++++++++++++++ target/hexagon/helper.h | 1 + target/hexagon/genptr.c | 4 +++ target/hexagon/op_helper.c | 9 +++++- target/hexagon/hex_common.py | 2 ++ target/hexagon/meson.build | 13 +++++---- 7 files changed, 95 insertions(+), 7 deletions(-) create mode 100644 target/hexagon/cpu_helper.h create mode 100644 target/hexagon/gen_tcg_sys.h diff --git a/target/hexagon/cpu_helper.h b/target/hexagon/cpu_helper.h new file mode 100644 index 00000000000..75a28fc10f9 --- /dev/null +++ b/target/hexagon/cpu_helper.h @@ -0,0 +1,18 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HEXAGON_CPU_HELPER_H +#define HEXAGON_CPU_HELPER_H + +uint32_t hexagon_get_pmu_counter(CPUHexagonState *cur_env, int index); +uint64_t hexagon_get_sys_pcycle_count(CPUHexagonState *env); +uint32_t hexagon_get_sys_pcycle_count_high(CPUHexagonState *env); +uint32_t hexagon_get_sys_pcycle_count_low(CPUHexagonState *env); +void hexagon_set_sys_pcycle_count_high(CPUHexagonState *env, uint32_t val); +void hexagon_set_sys_pcycle_count_low(CPUHexagonState *env, uint32_t val); +void hexagon_set_sys_pcycle_count(CPUHexagonState *env, uint64_t val); + +#endif diff --git a/target/hexagon/gen_tcg_sys.h b/target/hexagon/gen_tcg_sys.h new file mode 100644 index 00000000000..f78c9635c3f --- /dev/null +++ b/target/hexagon/gen_tcg_sys.h @@ -0,0 +1,55 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HEXAGON_GEN_TCG_SYS_H +#define HEXAGON_GEN_TCG_SYS_H + +#define fGEN_TCG_Y2_setprio(SHORTCODE) \ + gen_helper_setprio(tcg_env, PtV, RsV) + +#define fGEN_TCG_Y2_crswap0(SHORTCODE) \ + do { \ + TCGv_i32 tmp =3D tcg_temp_new_i32(); \ + tcg_gen_mov_tl(tmp, RxV); \ + tcg_gen_mov_tl(RxV, hex_t_sreg[HEX_SREG_SGP0]); \ + if (ctx->need_commit) { \ + tcg_gen_mov_tl(ctx->t_sreg_new_value[HEX_SREG_SGP0], tmp); \ + } else { \ + tcg_gen_mov_tl(hex_t_sreg[HEX_SREG_SGP0], tmp); \ + } \ + } while (0) + +#define fGEN_TCG_Y4_crswap1(SHORTCODE) \ + do { \ + TCGv_i32 tmp =3D tcg_temp_new_i32(); \ + tcg_gen_mov_tl(tmp, RxV); \ + tcg_gen_mov_tl(RxV, hex_t_sreg[HEX_SREG_SGP1]); \ + if (ctx->need_commit) { \ + tcg_gen_mov_tl(ctx->t_sreg_new_value[HEX_SREG_SGP1], tmp); \ + } else { \ + tcg_gen_mov_tl(hex_t_sreg[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]); \ + if (ctx->need_commit) { \ + 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); \ + } else { \ + tcg_gen_extrl_i64_i32(hex_t_sreg[HEX_SREG_SGP0], tmp); \ + tcg_gen_extrh_i64_i32(hex_t_sreg[HEX_SREG_SGP1], tmp); \ + } \ + } while (0) + +#endif diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index 28b9b59e0f2..5405342f798 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -114,4 +114,5 @@ DEF_HELPER_2(sreg_read_pair, i64, env, i32) DEF_HELPER_2(greg_read, i32, env, i32) DEF_HELPER_2(greg_read_pair, i64, env, i32) DEF_HELPER_3(sreg_write_masked, void, env, i32, i32) +DEF_HELPER_3(setprio, void, env, i32, i32) #endif diff --git a/target/hexagon/genptr.c b/target/hexagon/genptr.c index 8f191f80619..ee69feae4b0 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 0f43a666341..3236ce0c8f0 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -20,9 +20,9 @@ #include "accel/tcg/cpu-ldst.h" #include "accel/tcg/cpu-loop.h" #include "accel/tcg/probe.h" +#include "cpu.h" #include "exec/helper-proto.h" #include "fpu/softfloat.h" -#include "cpu.h" #include "internal.h" #include "macros.h" #include "sys_macros.h" @@ -32,6 +32,7 @@ #include "mmvec/mmvec.h" #include "mmvec/macros.h" #include "op_helper.h" +#include "cpu_helper.h" #include "translate.h" #ifndef CONFIG_USER_ONLY #include "hexswi.h" @@ -1413,6 +1414,12 @@ uint64_t HELPER(greg_read_pair)(CPUHexagonState *env= , uint32_t reg) { g_assert_not_reached(); } + +void HELPER(setprio)(CPUHexagonState *env, uint32_t thread, uint32_t prio) +{ + g_assert_not_reached(); +} + #endif =20 =20 diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py index b555e2b663b..8c6a0589f88 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -1369,6 +1369,7 @@ def parse_common_args(desc): parser.add_argument("semantics", help=3D"semantics file") parser.add_argument("overrides", help=3D"overrides file") parser.add_argument("overrides_vec", help=3D"vector overrides file") + parser.add_argument("overrides_sys", help=3D"system overrides file") parser.add_argument("out", help=3D"output file") parser.add_argument("--idef-parser", help=3D"file of instructions translated by idef-pa= rser") @@ -1376,6 +1377,7 @@ def parse_common_args(desc): read_semantics_file(args.semantics) read_overrides_file(args.overrides) read_overrides_file(args.overrides_vec) + read_overrides_file(args.overrides_sys) if args.idef_parser: read_idef_parser_enabled_file(args.idef_parser) calculate_attribs() diff --git a/target/hexagon/meson.build b/target/hexagon/meson.build index d169cf71b2f..528beca3cd0 100644 --- a/target/hexagon/meson.build +++ b/target/hexagon/meson.build @@ -20,6 +20,7 @@ hexagon_ss =3D ss.source_set() hex_common_py =3D 'hex_common.py' gen_tcg_h =3D meson.current_source_dir() / 'gen_tcg.h' gen_tcg_hvx_h =3D meson.current_source_dir() / 'gen_tcg_hvx.h' +gen_tcg_sys_h =3D meson.current_source_dir() / 'gen_tcg_sys.h' idef_parser_dir =3D meson.current_source_dir() / 'idef-parser' =20 # @@ -337,12 +338,12 @@ if idef_parser_enabled and 'hexagon-linux-user' in ta= rget_dirs # Setup input and dependencies for the next step, this depends on whet= her or # not idef-parser is enabled helper_dep =3D [semantics_generated, idef_generated_tcg_c, idef_genera= ted_tcg] - helper_in =3D [semantics_generated, gen_tcg_h, gen_tcg_hvx_h, '--idef-= parser', idef_generated_list] + helper_in =3D [semantics_generated, gen_tcg_h, gen_tcg_hvx_h, gen_tcg_= sys_h, '--idef-parser', idef_generated_list] else # Setup input and dependencies for the next step, this depends on whet= her or # not idef-parser is enabled helper_dep =3D [semantics_generated] - helper_in =3D [semantics_generated, gen_tcg_h, gen_tcg_hvx_h] + helper_in =3D [semantics_generated, gen_tcg_h, gen_tcg_hvx_h, gen_tcg_= sys_h] endif =20 # @@ -356,7 +357,7 @@ helper_protos_generated =3D custom_target( 'helper_protos_generated.h.inc', output: 'helper_protos_generated.h.inc', depends: helper_dep, - depend_files: [hex_common_py, gen_tcg_h, gen_tcg_hvx_h], + depend_files: [hex_common_py, gen_tcg_h, gen_tcg_hvx_h, gen_tcg_sys_h], command: [python, files('gen_helper_protos.py'), helper_in, '@OUTPUT@'= ], ) hexagon_ss.add(helper_protos_generated) @@ -365,7 +366,7 @@ helper_funcs_generated =3D custom_target( 'helper_funcs_generated.c.inc', output: 'helper_funcs_generated.c.inc', depends: helper_dep, - depend_files: [hex_common_py, gen_tcg_h, gen_tcg_hvx_h], + depend_files: [hex_common_py, gen_tcg_h, gen_tcg_hvx_h, gen_tcg_sys_h], command: [python, files('gen_helper_funcs.py'), helper_in, '@OUTPUT@'], ) hexagon_ss.add(helper_funcs_generated) @@ -374,7 +375,7 @@ tcg_funcs_generated =3D custom_target( 'tcg_funcs_generated.c.inc', output: 'tcg_funcs_generated.c.inc', depends: helper_dep, - depend_files: [hex_common_py, gen_tcg_h, gen_tcg_hvx_h], + depend_files: [hex_common_py, gen_tcg_h, gen_tcg_hvx_h, gen_tcg_sys_h], command: [python, files('gen_tcg_funcs.py'), helper_in, '@OUTPUT@'], ) hexagon_ss.add(tcg_funcs_generated) @@ -383,7 +384,7 @@ analyze_funcs_generated =3D custom_target( 'analyze_funcs_generated.c.inc', output: 'analyze_funcs_generated.c.inc', depends: helper_dep, - depend_files: [hex_common_py, gen_tcg_h, gen_tcg_hvx_h], + depend_files: [hex_common_py, gen_tcg_h, gen_tcg_hvx_h, gen_tcg_sys_h], command: [python, files('gen_analyze_funcs.py'), helper_in, '@OUTPUT@'= ], ) hexagon_ss.add(analyze_funcs_generated) --=20 2.34.1 From nobody Sun Jul 26 12:31:36 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=1781910155; cv=none; d=zohomail.com; s=zohoarc; b=aLAEDElegjw8rdBtbUhSQk/rLVMbN1BSYaDp7vmKubPH4sr8lBWEAIB0Wl5PINuQ2nsDSOY8cx3+AuDso+hkvOobbVjPrU5zbyZL96B2Kw7AYrvC4hBiXK7cDr3QbwX/HdIMCMd7Th/oue6sDMHo0jwIIrtXWJcgtQ9DE6KaGlI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910155; 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=A6hX7dXQXO1+fIeZgKUska/ZVbxUwMZyizq5wXsBD70=; b=ZgWaogfPPKyUkmj399/B6UzuYvpXW5IXHOHYzyDd9cIu2SEuoM3OO1mN1dBp17nL2b7E6YKHVrdQbNgmfVrCsmOlejuZScvx0VK0MGDm+5qrKCPTKUG/E2uas9i+zcEBzyeIk1ny0oSMtxk46bNfu4jVN89YO4YzC34+2ELxoaY= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781910155145389.4082784245287; Fri, 19 Jun 2026 16:02:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiBw-00026Q-U1; Fri, 19 Jun 2026 19:00:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBv-00025c-GW for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:00:03 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBt-0001cj-Md for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:00:03 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLYCb91286378 for ; Fri, 19 Jun 2026 22:59:50 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evy72k826-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 22:59:50 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c0a27ad86so3761037eec.0 for ; Fri, 19 Jun 2026 15:59:50 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.15.59.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 15:59:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= A6hX7dXQXO1+fIeZgKUska/ZVbxUwMZyizq5wXsBD70=; b=fGsjYnvjJLt5rSoR 30b3RWsvnOx1OaaN94cASWDrvjza7bzYVhROkr5oEWi7ljpBRrT5zydmyiV3omOc xwf9X/QyZUYZe1KbEWzbNneUT2UI4i+mUHRitIwnr/UJ4ZpsCJJ6Ywy9PsjqYUQl nk3mQxtc2iuQrW3nBc75ZiR6tGerUwwPuQ10Y1RkmcWK5FyHjZ3Cyeot8NnKJnh0 wyc0M20Yrj51FdNsPMPtknlVgVMJdLS8d/q1owpdKvAO/jcpWKDiNtXHdMkw4u9W A8hPP+iW7XuwwhkHFw9Oor34FVkTuYWqspXc/y3SApINj1U3aUbW3PldQwwiHnpp FII12w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781909990; x=1782514790; 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=A6hX7dXQXO1+fIeZgKUska/ZVbxUwMZyizq5wXsBD70=; b=OYJuZMZYpx1w8qwbxHAdX5B8qkAOVYT75LRpxG0Uqy0xD5bDSiQFwEezk7ST9/rooT eR03k9l65n8WRwLkGigxqlDCGoS5/yKcUHAoykb6qA1xuDPuDoLjNt4X+UlWTaoq4iLE oEUXRAOb9dbeit/TomtZYKGH8/hD/JBdrBuz29+YOKeGwQjG2xETZHaK879Ve6wz1SvN xoaEdnffeh/jDB2sUI3oxRzIFS1vTgFk4QmYfph1oSTfPIybVjqLdUjvYUbP64CwkaBS cbomODA0UXCfy/zzCVqUqcnTqXEp6ilVuAo0/jPq+ngEplRK3GSs2ID0FWL7L4TfEsTA l59g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781909990; x=1782514790; 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=A6hX7dXQXO1+fIeZgKUska/ZVbxUwMZyizq5wXsBD70=; b=TMGmqNg831WnUdMXw6SBCFo3ag+gnuveT/bnF9NEHK7Ux+/Fe3ddW/R9kNyvZAjhMj p6i+QsI5YejbJAxBrbGCYU6Ut9IoKiGPt5VP82mh+rs6PT2WQfksat+jEmWQpfM/5Et5 Nqyz7ZYJ9CebxiJd0GajLwudVvfEUyC6fxSXQPm0MqZ2VflIjhcnoiAu2nRQ5bO/qBHY gqt+nWEhcHs4zpZ4Mzr5ixP5qyq+T/g6SMX4ZOfDXPaeKcTkRfEpT+Y1QWAwl+A0yhjH 7t1Jd6FuKw8DgK7Y5l16Wz/WHm001T1DjxoNQN0hP6U7y80DpdD9YqevvvD3dsdr2lSg ztsQ== X-Gm-Message-State: AOJu0Yw3aZ7CpJpGU+J/OwVymah3qsJx9kyiuyHi2d3C7At8rkWnV6Ht e1wEIVPlQnfjdyhOQ5Yx0tkU5j3vG8zrsjfvNa0E37gLFA9GR8pJ1pVcyjHTqPaj80/3DzZwvty 4E9HUI4bWQDCP+mW7pGO6DM1TvVO+XkTc2d5V01zrkxbTsgBomO7KmCvoz95ANB04HA== X-Gm-Gg: AfdE7claamKaUdNhJLHIjTRWIs0QSwl/fbdUqYFgdt7qkbpe8xn6BOwGGuMWBTQshdI AZf0QilwDuTYTZjx4Bdcu0hdx0cObaQ930kcvGq+sgtFqnNzDkFbUzJn+DZFBMIsZYfd78MfDLB p21KPFr1aU8YWsZS05L9hI7PShLYWv11zKaH4/ZBuuwfYHD6qmxP+zIee4sitB5X8EM0Z1nV7fM Zq1APL7R1KU2tUeiF7LYqsWX56pdykoEtyR+3AYaa5Q3f9BHkCaXxtc90JyJD/Hctaf65f587l8 5KRu3ire6UiXmZeIPe6jZ5c399IyY2wCj7QrsiEOxViVerD9r6LioZ32265SyjKYhkvwgP91LFg eGtsqWg3Ytccru1smAuJ5CydoRDdMftaNWPUq44NqHJkEDzX2qUNYIN6XW0Q= X-Received: by 2002:a05:7300:fd0f:b0:30b:dd58:e167 with SMTP id 5a478bee46e88-30c07038f73mr3254055eec.29.1781909989708; Fri, 19 Jun 2026 15:59:49 -0700 (PDT) X-Received: by 2002:a05:7300:fd0f:b0:30b:dd58:e167 with SMTP id 5a478bee46e88-30c07038f73mr3254046eec.29.1781909989291; Fri, 19 Jun 2026 15:59:49 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 24/74] target/hexagon: Add implicit attributes to sysemu macros Date: Fri, 19 Jun 2026 15:58:21 -0700 Message-Id: <20260619225911.159473-25-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX7k91HXueJPP1 D3THjUxnBz2jXWaRHz/nDt11eKzBMLy6E/JWVtN2SIjBsWd8TEymm9T0CGQw10QdiamqUPVEhux JNRk4Ss17BPwlwbwbrRlPZQ6klqTd8LZB1Dh/e0nkwyvqyP95Tbo6GWY4iV/6BYtt7fwdpIeEc8 2CoHwNhjSrXGcCtphOFDtpzKl+ogJp2NFiQO97vdh5olTnmXoLoeBbY/vfPDsvOP2XU/VFn92vZ Tdwwpfv8ShJle639DF59GRWueboID//3D/h4ZfnKXO40wgME+aJEIzsBUzO9icE1UPEIhBt00KA R1bLbd4KWeAEq1fymUsOIm0pAE4dUa1MsOnAwYPqGQVB3+//4qHI3NhV8SrO8Ob9Ch5RZAzZHyQ mJxz8jstL/pqCDIASJEME7q6WH0+in0DGvlFr6v/Ce8XkbVYQ9/k6isn/kXttq5I3wxl2GTwakz LjuVowvGQ9RTLDCWkcQ== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfXw9eHdF8oh6u9 ZNXXYxqbl3Ff3o9PRtEfXT3r4ufmjnJC4AlaQiYdZ8cWt41jdyLK4lyk2nm7ceI6XFcuqqNWw/Z BHpTwTWGpQDCmqaqRieZZwSHqdmuQmk= X-Authority-Analysis: v=2.4 cv=I75Vgtgg c=1 sm=1 tr=0 ts=6a35c9e6 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA: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=jiUnMIOmsb6gMTORg9AA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: 61GAHI6xrip9vjb5N9OE_kJ0eahN56rp X-Proofpoint-GUID: 61GAHI6xrip9vjb5N9OE_kJ0eahN56rp X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 impostorscore=0 phishscore=0 spamscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 bulkscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190221 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910155848158500 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 8c6a0589f88..acaaa3c944a 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -128,8 +128,11 @@ def calculate_attribs(): add_qemu_macro_attrib("fTRAP", "A_IMPLICIT_READS_PC") add_qemu_macro_attrib("fSET_OVERFLOW", "A_IMPLICIT_WRITES_USR") add_qemu_macro_attrib("fSET_LPCFG", "A_IMPLICIT_WRITES_USR") + add_qemu_macro_attrib("fCLEAR_RTE_EX", "A_IMPLICIT_WRITES_SSR") add_qemu_macro_attrib("fLOAD", "A_SCALAR_LOAD") add_qemu_macro_attrib("fSTORE", "A_SCALAR_STORE") + add_qemu_macro_attrib("fSET_K0_LOCK", "A_IMPLICIT_READS_PC") + add_qemu_macro_attrib("fSET_TLB_LOCK", "A_IMPLICIT_READS_PC") add_qemu_macro_attrib('fLSBNEW0', 'A_IMPLICIT_READS_P0') add_qemu_macro_attrib('fLSBNEW0NOT', 'A_IMPLICIT_READS_P0') add_qemu_macro_attrib('fREAD_P0', 'A_IMPLICIT_READS_P0') --=20 2.34.1 From nobody Sun Jul 26 12:31:36 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=1781910103; cv=none; d=zohomail.com; s=zohoarc; b=kHTtZEyyJ6L6qdGfo3hmtaQ6PWLOfb0Rv3OPscaz68W4v0VOK7V3THyDYYbuGSX9v0wN8aWJeKX8IEv/k84gcooJm3MVzX4taF8j4nRuJOkSs1Vvc4QrIkKMkhNli91OxODcH1un+2f4zKurz2Dza4psKLc3d/jAoMeaMgkvZBk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910103; 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=SxgjDN8stbE6SIBeFPtrecas0sgHajmcu/RG683JGPg=; b=fuqf9tRYZm+HhKFHQFG0d2FNVk4XCL8JvCLwrk6bmjUftZDVLTlCpTAfvJZO3HIxIxc1+wRO2vrq/btvENKN4UqEIOMNoGg511SE+QGsypQq9mu9sM+jctJlezvNJobq/YWbBJKf9evC6OZvoB/mvMDTqidP5t5ofcHyjIccDnM= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781910103505587.0417492068757; Fri, 19 Jun 2026 16:01:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiC0-00028x-3x; Fri, 19 Jun 2026 19:00:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBy-00027k-8i for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:00:06 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBw-0001dH-BV for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:00:05 -0400 Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLXlNJ2933110 for ; Fri, 19 Jun 2026 22:59:53 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ew5qsa2w6-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 22:59:52 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c03c1dda3so2096100eec.1 for ; Fri, 19 Jun 2026 15:59:52 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.15.59.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 15:59:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= SxgjDN8stbE6SIBeFPtrecas0sgHajmcu/RG683JGPg=; b=VAdfXAY9xOvJ/670 RdP2lOqgmYqhw2PBcLyLAkEAZjnXn0s1+vM545/bEUR7io7xLoMX3yKmu5LaUA5N heBp3PAPDUM47BBoCx0wYn3BKkV5LtkU++XlHoQ8Qbvh5xgXx2s29Ds3LEjwbFis HF8xQtGQAzEexKnktajld7d0uMTfgfJ04VI9GyLPGTgchVHfLGtx/oW2+Sme31+5 kGVEVdvkLylTvohlka46WZssrockgENlYYS9cL2eIw6reRSIa1bU/vMXVI7EbWJn 0PxjGv3qsxacFqCAyB7fKEnMwZKAtPnp9YtPQEPRbP2HL17jVG33fzmcNUqXGUMH OeB4Jw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781909992; x=1782514792; 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=SxgjDN8stbE6SIBeFPtrecas0sgHajmcu/RG683JGPg=; b=E+4aSEc2EZIrLUdHD5Sjvctjy/i7q21Re5zxgrPmXM79mpHIzap2gcvyhA+vk8jXBB ZOw+7NBPlBmwQtO1jvrq7scfgWpdwE4x+BU0jfjIvwDumVoCIJWBLM17MTp1nDfGdLEX K48qTdLZjND0xEyubzMkK4iGwO+Rc9//kVycwJz8AuEqgB9OdMC28dZrlyVycn7jWZQO Pa9JesYFaa07707dP3T96vAbYiHIs6w04enMTaDGbkxszVlQow71gUZ8tXnNq6oZVoms OHGOY/YDec4/OKWtoJxbvDMjAE6tCy6OnWHzSanlZIWOIkkGbAGCCqcHc/7q9k+mnGSM OPIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781909992; x=1782514792; 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=SxgjDN8stbE6SIBeFPtrecas0sgHajmcu/RG683JGPg=; b=tIOL9lVX1N3N0ZKeiKareD7n3x/xXC5iop8FTIdVBehmiqhh66BGcP+BrSB+lN7hBP AvCEVU8DIWUpPKf/y9gsZt+YGq5EXF2We+goWV4rVcjY0zL9T5JER/3brmY6e3JbRu0U Eu5x2s4p/8h6Ha5y/66lM/KvLPJ2mGZBjep5dqKy0ge0A1OBZP80k+kAN2oEeWo93O12 eJjgQCYihimzUmwnP/LGpe7jFYGsWYHyGpr0nevY5IEyN/RxufhGhRxNbd/kqlATr5xO 0yKxeXyDUlYrhX+7T5VEJLKKRJ6HjyIL4JuQ2CiXjiMedyHO4nWwp9tsc4zvSzY5xppf NtJQ== X-Gm-Message-State: AOJu0YyJx2gDrqWL3/WKX5xGJzQaze8eo2jMmfjkraWBZKC9Sz52I6SG A92XaC99pUJKJaKmYJ5S03mUClQ/xvacyWasXv8xxo5kAMEoH/NLbENLsLALytdjXNAZqyi4lfp oYjOEzwxmWA6Iz0t0VzNOg3K9q5sFL4HKgjH27V1qUL9LTxp7yen9LkmVsRgBspF2fQ== X-Gm-Gg: AfdE7cmqsHtvVma7V/jpuevMhWCEBRHFKE9qLjZwy4tOfkZU5w9ZOnJZCg0fSKafhhC GdeuJp7iHcFW00QbD5oezgdeLyAIHmnalvb+uEhw/p+XVolIFqBN6XrAD8hRZNlLqToRPximlNp qZ3oBdxEYCFLJou0bSiK+QdQ9bK199EezHvDX39wFwrC2csor2WER0GH7YMUPcsF2GE5gV0/6QT ldao3MtciQ8h3MT4sSCNbwfcgMzJpruHPjdzL7nfqfBxI7v+F7NQsRcNQMYFY9sLDBSe8dGEc2A ygn7Pzm7BPfEeuX43FkvUO6Nt8M+ZoU4XHEYJ61VVpNIibhgyIh95D6xdp94baDF2F863bHZ85A yAYdaIEuWFfSV+0ASgFVUYFlvyYMIFXNB12pQmusegAnaglwTQTx3BqN3dGg= X-Received: by 2002:a05:7300:fd08:b0:30b:f8a0:58d8 with SMTP id 5a478bee46e88-30c1dc5de4cmr768567eec.29.1781909992237; Fri, 19 Jun 2026 15:59:52 -0700 (PDT) X-Received: by 2002:a05:7300:fd08:b0:30b:f8a0:58d8 with SMTP id 5a478bee46e88-30c1dc5de4cmr768555eec.29.1781909991698; Fri, 19 Jun 2026 15:59:51 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 25/74] target/hexagon: Add TCG overrides for int handler insts Date: Fri, 19 Jun 2026 15:58:22 -0700 Message-Id: <20260619225911.159473-26-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX7o0DmuHck1wH x15MbgWU3AsjPRdFALPuRwd56p3f3eqWozBOJvNBAw4fwcdaRxw4xQmsuM+05rlSOA6NkF7yfrB 4S2va1CUAfhmUoGRXFBd/HUsKXVkKO3xVw/09iyTbPlde754Mo5N9ivKDgbb1VBm3dEaf9h8Zmn aR6wWC6oyEWK+0psHQY6KYsdDR92DYOIh5ku6X4+60lJ4ocjVBv10ErgBQsx+ZLKC6Th9ttMwwo ENyKm7TLSB2HmrN3WWhF9LFV++F6H6IffaYt5I5rUsuTfJxXCv3eaCVcbGEmRfqBJ4beO5pAE6G u/btu1/rYl8tK64FtZbzRdqRv7a/VJnSrIHSqDwXx7u6HubGRawNA9mMwxNVlpKC3tG7Tv0FFK6 oxh6v4Fiiqa9KNPsMLr/EO2duM1ODr8jT0Zy4BkjsyE4cu9rbatI03S6OkfbZJZIgy2O1lWaUIB btSQzojqbDrr0tzbzLQ== X-Authority-Analysis: v=2.4 cv=M9R97Sws c=1 sm=1 tr=0 ts=6a35c9e8 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA: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=ncxFUDX8U6Z2rYVbhVQA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: z6IVC_QxFJN30bIK3nJXUHFb-f3f_FCb X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfXzgIFftf7x2Fb YjF7GpkwDs4Qn44v8yWNWblsA4Z5DiHXdpWSZodtYCTtzDz3sq1NYoMHCdI4PsTaeZObZ+bVJ8a Mr0nJ59iG3yjViRph+9eX524Sw9zd8k= X-Proofpoint-GUID: z6IVC_QxFJN30bIK3nJXUHFb-f3f_FCb X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 malwarescore=0 bulkscore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190221 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910103624158500 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 f78c9635c3f..4cbbdd1f70b 100644 --- a/target/hexagon/gen_tcg_sys.h +++ b/target/hexagon/gen_tcg_sys.h @@ -7,6 +7,31 @@ #ifndef HEXAGON_GEN_TCG_SYS_H #define HEXAGON_GEN_TCG_SYS_H =20 +/* System mode instructions */ +#define fGEN_TCG_Y2_swi(SHORTCODE) \ + gen_helper_swi(tcg_env, RsV) + +#define fGEN_TCG_Y2_cswi(SHORTCODE) \ + gen_helper_cswi(tcg_env, RsV) + +#define fGEN_TCG_Y2_ciad(SHORTCODE) \ + gen_helper_ciad(tcg_env, RsV) + +#define fGEN_TCG_Y4_siad(SHORTCODE) \ + gen_helper_siad(tcg_env, RsV) + +#define fGEN_TCG_Y2_iassignw(SHORTCODE) \ + gen_helper_iassignw(tcg_env, RsV) + +#define fGEN_TCG_Y2_iassignr(SHORTCODE) \ + gen_helper_iassignr(RdV, tcg_env, RsV) + +#define fGEN_TCG_Y2_getimask(SHORTCODE) \ + gen_helper_getimask(RdV, tcg_env, RsV) + +#define fGEN_TCG_Y2_setimask(SHORTCODE) \ + gen_helper_setimask(tcg_env, PtV, RsV) + #define fGEN_TCG_Y2_setprio(SHORTCODE) \ gen_helper_setprio(tcg_env, PtV, RsV) =20 diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index 5405342f798..955287133e4 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -109,6 +109,14 @@ DEF_HELPER_2(probe_hvx_stores, void, env, int) DEF_HELPER_2(probe_pkt_scalar_hvx_stores, void, env, int) =20 #if !defined(CONFIG_USER_ONLY) +DEF_HELPER_2(swi, void, env, i32) +DEF_HELPER_2(cswi, void, env, i32) +DEF_HELPER_2(ciad, void, env, i32) +DEF_HELPER_2(siad, void, env, i32) +DEF_HELPER_2(iassignw, void, env, i32) +DEF_HELPER_2(iassignr, i32, env, i32) +DEF_HELPER_2(getimask, i32, env, i32) +DEF_HELPER_3(setimask, void, env, i32, i32) DEF_HELPER_2(sreg_read, i32, env, i32) DEF_HELPER_2(sreg_read_pair, i64, env, i32) DEF_HELPER_2(greg_read, i32, env, i32) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 3236ce0c8f0..c90b7572419 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1390,6 +1390,46 @@ void HELPER(vwhist128qm)(CPUHexagonState *env, int32= _t uiV) } =20 #ifndef CONFIG_USER_ONLY +void HELPER(ciad)(CPUHexagonState *env, uint32_t mask) +{ + g_assert_not_reached(); +} + +void HELPER(siad)(CPUHexagonState *env, uint32_t mask) +{ + g_assert_not_reached(); +} + +void HELPER(swi)(CPUHexagonState *env, uint32_t mask) +{ + g_assert_not_reached(); +} + +void HELPER(cswi)(CPUHexagonState *env, uint32_t mask) +{ + g_assert_not_reached(); +} + +void HELPER(iassignw)(CPUHexagonState *env, uint32_t src) +{ + g_assert_not_reached(); +} + +uint32_t HELPER(iassignr)(CPUHexagonState *env, uint32_t src) +{ + g_assert_not_reached(); +} + +uint32_t HELPER(getimask)(CPUHexagonState *env, uint32_t tid) +{ + g_assert_not_reached(); +} + +void HELPER(setimask)(CPUHexagonState *env, uint32_t tid, uint32_t imask) +{ + g_assert_not_reached(); +} + void HELPER(sreg_write_masked)(CPUHexagonState *env, uint32_t reg, uint32_= t val) { g_assert_not_reached(); --=20 2.34.1 From nobody Sun Jul 26 12:31:36 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=1781910092; cv=none; d=zohomail.com; s=zohoarc; b=XEPqZ1uexZafTBhNP3/mXWYfuZ8hmC7TcxpbeZ40a2jDxh9+8mAXccU7r/NBLPz7d5PHkaS8VNtyC+FG27ZfUnyZfQNVjmuAzqixlTkzvFEf+8D0iuVd78fDA/JkAytBcvOVu4dUqt1fTOLAO7MfuRwYzfjTk+8wdSo/wdeDTgs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910092; 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=N0iAGziQ+4iP1vKIbJyLWLa6evXdgIMUYRbL+wxICtw=; b=gDTwkCWipiLYYtE8J/pQNHNRUtv3DYQHrDOXUnumuT02pBfVZRoOlzDlyypbMlWMFHnxEvpQeewcdaJ5ht4m97QgQqS2wQ3hKy1fghSi8+hQDZUgBdop0j4a5pfOjCjK89b5TMs2igVn5H/mGPS82hwa4nOzgpOjEbfMkV0u8jU= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781910092480335.4135498573995; Fri, 19 Jun 2026 16:01:32 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiC0-0002B5-Ln; Fri, 19 Jun 2026 19:00:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBz-00028P-6c for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:00:07 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBx-0001dX-G2 for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:00:06 -0400 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLYSLn1337254 for ; Fri, 19 Jun 2026 22:59:54 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evp67556r-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 22:59:54 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30beab99453so4056129eec.1 for ; Fri, 19 Jun 2026 15:59:54 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.15.59.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 15:59:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= N0iAGziQ+4iP1vKIbJyLWLa6evXdgIMUYRbL+wxICtw=; b=PSyzgqlg3Y4D5iHm 2K2vekI2kIQACfx7yg+DIfkHr0sMYuuX8GSBErx/htWCaZ34xqmzw4wYWGE/kWYl ZomfR6p+pXRMOZ6Hpu1/C6zOy5VgKR57oVUK38EMMIzcxd1YeNRsEf/ptUlrri24 j2bC+U+2uHL++w48Y4ghvTO7GbeN9OBJS0jSl3CY/enbV/l8Tzx8Jc1XkTGaGenf x2y5dLlOHiflqBBsA9mejVuhe3EyMHv1TfiA+bFWNMJuc5teLUfkI0HhHxnJYAQC C0yG3ktWzHp4+tgSbMLCIbVwGqlQbUYbqo8T+ria9UTcc/FlSON756uMVTn8jgpn 0jRgbw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781909993; x=1782514793; 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=N0iAGziQ+4iP1vKIbJyLWLa6evXdgIMUYRbL+wxICtw=; b=ZwMxmJ6Zdxfuc61quF8XHKS4jr+HyOMNTO2++92dFbYtABDnEkM6sZePxmdsxSqXmR 8l3oHizFvqS+iKzmo5Svrl8GtJ3xLaGijiTKkDpFT2puPR9GP7rFAYkbKdixgz95Huh7 Ax+7PARUqi3Pg2RkApe6i+e9mSEPriel3CqDGAhs0xs5rfryM3EWpmHAXcbv7isTw3tH 390G0Lj1C+Q77SA52EQxi7qGwM6ULH4+inmGv4EhAmTrF9618C2aAs+ayMPIC2373l5y eFEXmQdrgsVsJDkXmRlYHLB4/zooD8Db0P/It6EiTtzpcYmYUAQ4Ih9qHfpXcesmuxHw tEYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781909993; x=1782514793; 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=N0iAGziQ+4iP1vKIbJyLWLa6evXdgIMUYRbL+wxICtw=; b=LbLEPFS2zEqOllP7rnWq3Cny+PX8R8oDiv4WzbbdmwnaBsP7Cmud7qSXACOjbA6exm HaZwzsmMIYlbiafE7/4r2VY+/8XbYWRmYdWl0wQoxhqnMLmVW3AHrnvter4SF/6xmrHC tETgOpH+yeLQRTfMtJ0TJ6RCh98cxKZnMgLuc/VXjJlpAuISLXz8fJ9J8Auvwbf70Yh+ lUc0jvKz2DYvoaDjlVGZb9gluxXYExP2t/S+M+zlReISVxvFYV95typDKObrIa1eiU/h 80Ok1QZ0L+m6opvCDYjVFxWeoSxf+S4ZI7KIy7LAwnyQ1xWR8bOMGTqS6WmAp+pvbHTx +0Ww== X-Gm-Message-State: AOJu0YyfM15towsZVlri+PRgQoRlNN6Xb1wJ3Xz2Z2niU+7PLNNECuS/ Nn68NII0vTb8/jzY68EU0A+MpwsTdRx8/4g324bmGhUTjL/W0gBxl3h3JDXxKitxehTl+L4P4EA OZQldcQR3gQGYqMqrGeFRSPOIhgkzUmOKnU1TaCD8KByYQd0hUsIvz1V4fVDjXdlC2A== X-Gm-Gg: AfdE7ckrrJf0VL1Oi0h39OzmecqDwRsdw0pnAjG5S21dDNrNsr/oyv89cZuhf+ip1d1 UVJwRDE8XAejK2fJAmwZ3UJlYPJ1qrlOnaVapOqnVnFFgHMfJQBOMykUveBejjzH80a19OoxUrZ vD2zeYcMAGUO3ti5/wI5Q+ATKFNSfAUGS/2c2kp0e9OIobpoHukt7259stR4FRFgXfrElDTTCbd mdI7WNCFBCKBp1KjK91wtFEROIPwH0QXOJ5E95+MC3X9gdP4ec71t47ngv4AWoAD4baw44Awod+ fiug2ZvIWEk6ar9UKoi+NGcIFoHjLi0REjuknsv4Ks9n0fTvmw8gS0affJq+7LVJuBpvKW+jWj+ U1773eSrGLVZakC0se9Loh8vM/5vB911d1H/Ph65nrWJVZ6EcvdWNh8bwgYs= X-Received: by 2002:a05:7300:80ca:b0:30b:f3b8:3e7f with SMTP id 5a478bee46e88-30c06fb6af6mr3449043eec.1.1781909993450; Fri, 19 Jun 2026 15:59:53 -0700 (PDT) X-Received: by 2002:a05:7300:80ca:b0:30b:f3b8:3e7f with SMTP id 5a478bee46e88-30c06fb6af6mr3449030eec.1.1781909992976; Fri, 19 Jun 2026 15:59:52 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 26/74] target/hexagon: Add TCG overrides for thread ctl Date: Fri, 19 Jun 2026 15:58:23 -0700 Message-Id: <20260619225911.159473-27-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: CK1VY7PKLXkTI1rtqHJfjfHsftZfbixB X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX50kde5LiFdxX P9Yd2bEU8iIy3mMvuj1FFeLz2H4aE/k7zN3JsFPgFUri5fUvyfMxsALHgr6Vd9Q782tmMWD1Uoc iPlF7FlpCh0SWsHQ9DroxRn6U8nzD6vYpGDS6Tf9+k4q/VAujbKtFfQVybs2NnmHKk6oIiZH7jK 91pbwwYCfZ/gt2h3p9XCv+lT3+vS/4gP93F4ckdFU2wTW64h5OKIC/zlQpZq+jwMwYBe6NRKWjf EwtWgzCiZcMxcGnheg0MNy3S1x/2Hjc3stwwTx+jQlwl2AsLPiu4T76vqd6/J8w+3A3MtMpfqF9 Ws3+5oZWS1dEUWSVABJqJ6jofHqPGj8QCS7qK/jKm0LS5xFnYl6XxSwPfSaewZwBqRkpmXEfbrg eRU7FKgi3VI8FfxlyOZUSiJM9czScO3D0TDjVE+PfXcTznUy9+62ax70ydd7YcaB56y1lvkNBK5 ep5ooXJwnLCKiU6UeHg== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX4QT6Gg94E6ds 5Q6eY7yOrfIgLBP+ENKmMUTeNt0l1yWZTN9sTcWK14scDvCS8F7HWcq20lLQ2nDt26qwCqupq1Z DJSuPv1CaBii6c1JJ7waU0CvMopieug= X-Proofpoint-GUID: CK1VY7PKLXkTI1rtqHJfjfHsftZfbixB X-Authority-Analysis: v=2.4 cv=TdOmcxQh c=1 sm=1 tr=0 ts=6a35c9ea cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=t9Y8JitlK4h6-XB8aEcA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 impostorscore=0 spamscore=0 phishscore=0 malwarescore=0 clxscore=1015 suspectscore=0 bulkscore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190221 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910093656158500 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 4cbbdd1f70b..8650f64a6d4 100644 --- a/target/hexagon/gen_tcg_sys.h +++ b/target/hexagon/gen_tcg_sys.h @@ -77,4 +77,22 @@ } \ } while (0) =20 +#define fGEN_TCG_Y2_wait(SHORTCODE) \ + do { \ + RsV =3D RsV; \ + gen_helper_wait(tcg_env, tcg_constant_tl(ctx->pkt->pc)); \ + } while (0) + +#define fGEN_TCG_Y2_resume(SHORTCODE) \ + gen_helper_resume(tcg_env, RsV) + +#define fGEN_TCG_Y2_start(SHORTCODE) \ + gen_helper_start(tcg_env, RsV) + +#define fGEN_TCG_Y2_stop(SHORTCODE) \ + do { \ + RsV =3D RsV; \ + gen_helper_stop(tcg_env); \ + } while (0) + #endif diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index 955287133e4..682f0c6c26e 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -123,4 +123,8 @@ DEF_HELPER_2(greg_read, i32, env, i32) DEF_HELPER_2(greg_read_pair, i64, env, i32) DEF_HELPER_3(sreg_write_masked, void, env, i32, i32) DEF_HELPER_3(setprio, void, env, i32, i32) +DEF_HELPER_2(start, void, env, i32) +DEF_HELPER_1(stop, void, env) +DEF_HELPER_2(wait, void, env, i32) +DEF_HELPER_2(resume, void, env, i32) #endif diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index c90b7572419..c620a5b8636 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1420,6 +1420,26 @@ uint32_t HELPER(iassignr)(CPUHexagonState *env, uint= 32_t src) g_assert_not_reached(); } =20 +void HELPER(start)(CPUHexagonState *env, uint32_t imask) +{ + g_assert_not_reached(); +} + +void HELPER(stop)(CPUHexagonState *env) +{ + g_assert_not_reached(); +} + +void HELPER(wait)(CPUHexagonState *env, target_ulong PC) +{ + g_assert_not_reached(); +} + +void HELPER(resume)(CPUHexagonState *env, uint32_t mask) +{ + g_assert_not_reached(); +} + uint32_t HELPER(getimask)(CPUHexagonState *env, uint32_t tid) { g_assert_not_reached(); --=20 2.34.1 From nobody Sun Jul 26 12:31:36 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=1781910101; cv=none; d=zohomail.com; s=zohoarc; b=ESKofbIEW45zPNY/eaiDgqppbvtg+oiz3JWCWAa0n1O5exxsbBb2o3phUoPOg+k+/1s0lbmZ4xTvohji9zjTcvWIHIHUv1y3WmWLOuSPZAWoiEx+uAJ8DWb0NvNwdk7ysJVnDuzaBF5IvseEkfSsxlpBvRjN54VaBJgXtGfbekw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910101; 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=2jO0e8rIhKLjhW5IYHunqKRgXza1ukawimSTttXDmgI=; b=BlgWsHsy7wsJSPR2049QXsanHMj3Aeg675FhwU3fgxDtLjEG3Pq+vRqQJ9UUNskTujX9OMGf+SPFL4fgPL28xZ2ScKkmFMvj/oQwS5MTQ6HxPHu+dFSJoF0VU+ufyOS15KwvKKYsxNGjmDJSRjQ6UjH/S6T2M/t/02XI3Wp+9QY= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781910101210171.274662179237; Fri, 19 Jun 2026 16:01:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiC2-0002D5-50; Fri, 19 Jun 2026 19:00:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiC0-0002BC-PF for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:00:08 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiBy-0001do-UT for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:00:08 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLYdkF1287187 for ; Fri, 19 Jun 2026 22:59:55 GMT Received: from mail-dl1-f70.google.com (mail-dl1-f70.google.com [74.125.82.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evy72k82d-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 22:59:55 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-1370417c0bfso1904589c88.0 for ; Fri, 19 Jun 2026 15:59:55 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.15.59.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 15:59:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 2jO0e8rIhKLjhW5IYHunqKRgXza1ukawimSTttXDmgI=; b=FyqKh2s0aRdSt1Tq DU9Ali2K1nucuvwA4Hj9mtBr1KjuJvRMAcDP7kVV6TVVyyw0U0giJrdtiA5vQiCo iLHwJzNP9rH9b6VXR2c+fiOoybBCfoDhBANwNgb2GvDZmN6nanVk/YDA9tSM4lTR Rlv3KX8jDmw6K/Wnx+9j2S6JD0UwLz/BlzNLafsupJWlGhTydQqLfGydSwy1sfED MDVt/GGD4wztJHzV3Z7Wds4PMtZUkdjkiAe8plMVHSkyr6sr2yMOxZhgz6rOgxr7 KG/Sw7fyQ1JAqfcq3t5uIj5NmVujIG6pNnvfhmmeBYhFUhBCl1E427Rihoy8XU5v M9Q/vg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781909995; x=1782514795; 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=2jO0e8rIhKLjhW5IYHunqKRgXza1ukawimSTttXDmgI=; b=EA2dWGPocDvSbEwxAtLH1J3TAZ/i6s78IXLN5VpWk0N7Mv4iYYm8BXCU34ROFedhSt 6Zypob580E4NmziJw+T4pEss8jneEVy8BO99tyuu0+TCCcFAaOyIFTL6lh6ffrjvBctd rYhyKjqVqmDo5wwur3fmcOzraMOvPcGpOJxIkxRimNqlibomuWUhxt4z0rBnWyvgF366 +yxo4xU4uK9BqGOSjUaPZFNh6ueQsPDI0iA19I8htjhCRgfrpiD+rC+KSJ3a8cBAqQgw wmti/n61F1w1vMgb6Uk5FXeIge+gOrlykibEeORj9xwv96d4PIT++q09+kc0HlUJEpbP 7O7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781909995; x=1782514795; 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=2jO0e8rIhKLjhW5IYHunqKRgXza1ukawimSTttXDmgI=; b=gvsqjkkJkevHbeyH4WDGE6fbl+XelKfvKDxYGi/w9wCGM0smgIYd80xnki6ZpOQtFi N0RiJkaGd16SoSkqFlEGca8onpiT+hjJU213dgcd5sfLKCHDRpzlpt0o/zIJQWacCo9T iq5JtmdMD4giSTgdmI5KRLMvfoSeYmb6jSc0sZRlSImEj5+sXr/7a/yIBNQsCQJiQ1m6 Qqu1XJ+R/Er6Mt+MLymicHCuHkkkd0Do98nWBRde/o2JafB2MqrnSGLM6vO8l3MNLyWK 8op7JJFGqHCOeKUZHBCW206vTYK8tMa4E0fsznmuZU1lH/NOZe1F4lQ3rRGZuNawomAY c1VQ== X-Gm-Message-State: AOJu0Yyc4S8OvZxjsKUEgfmebPWKwzhMECkWUE4dt68kUHWG1kO0d/Xf O/6vCsQ4DTpKqMpeRE3ibAJ02IHwVe2Zoaf922YvPIwdXGEHNDg5Nze5v5ZZrIMWSgxdM2M3mJh pHHF3G935+3uny2NDK6Lk4EafqBsR6/2ySgtXywmkmqK7c2uPj3J8KwyvsS4qNNECDQ== X-Gm-Gg: AfdE7cmUZi7qXbmBEHZim0c9nPUdXYRjsSxs6uDl9o/nQgRP9VyX1ixp2C9nKvASQb5 J+2+5KlnfrBDl49aRDpvBfU0OJ2S5wi8/lP5PoHXTpj45POelUjv6gXSicsj7nZ/xmRUv3yysCi xXy3Yk3p0HWPHGPEfb5R5hbNmpYX1pQaWPKoEIlflPO7ZVfkaqfuhoLD7ssWyIAPkiMmqiCeZ08 XIo+stqjKiMM4cNJml6Gx+65DBdY/lA7NbEfADneuwUh/HxsXGOzgCQb9MRWq8T9xaupV+qE+Ch 3u5vP0um0zQM0v4CnCUnCkMxfh6i/TDIIx3Qdan6aL37QQjY+YMwrMruqtfeapG9kxbibhBMBXx /UU9t3HOvJsH+DqDupnyTIGdsoTGXbQ3AvQFAGiMctgczNBFe7zkN5nL9i1w= X-Received: by 2002:a05:7022:49d:b0:139:85c2:d7bc with SMTP id a92af1059eb24-139a3047c50mr2559252c88.6.1781909994836; Fri, 19 Jun 2026 15:59:54 -0700 (PDT) X-Received: by 2002:a05:7022:49d:b0:139:85c2:d7bc with SMTP id a92af1059eb24-139a3047c50mr2559240c88.6.1781909994297; Fri, 19 Jun 2026 15:59:54 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 27/74] target/hexagon: Add TCG overrides for rte, nmi Date: Fri, 19 Jun 2026 15:58:24 -0700 Message-Id: <20260619225911.159473-28-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX6xI9+1psWjty e5LH95FJGKnLyNSSPQRxqiJyBfnrE+/WKmDbG843/nuf2S80LiLEvUgZaOoQbwVPTcdAyXLYbEV TFxGP1UwR7jngVAwi625QrB2Prt1Jva8OFcGZyPH0zdAH6lmUbBQtI9azBBZR4M/t3LJXwtdoBM GDe4Klvn2+OASOZH3fqyueiNkE8Oz4SOS0SZH8k/3tAAXVpEo9tu/GqM/b0Jjq9me7p3NzknZlq HjfEH2NxwUNgRiwAPrz97HeQedFW2bJa5JtO/QEYrfQeaQ0K1h9GpnhBGhvqmfbTkwUsg9xxwxN mwY8k8Z9CtfVUD+TJfSqGPtJRibDfskbrGVNFQjGWoCXFuTpDq+CxevBlvCtgzzezjp7J4cRbhU dhjoPWQbCCo8P4vSTjScjpKmuB806bMVRYIhr5EeraCBLI+w8DmVoKhZkFEBPE0d0ETNn7jrbq+ 4v65fF1Nb4tlVfV6Ocw== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfXyiHNQlfcWJyR xARGJD4B2jnATt//m9+IVwDp5hoD2RnZXzYmvn+QwzvHO3GTeZj2BpOUX21Y8ZJN48dDSG08qAL IGEI/4wBtjttjAJTc+QGA26AeOjsuIg= X-Authority-Analysis: v=2.4 cv=I75Vgtgg c=1 sm=1 tr=0 ts=6a35c9eb cx=c_pps a=SvEPeNj+VMjHSW//kvnxuw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA: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=QG2uPxDT_WX1JUO730YA:9 a=QEXdDO2ut3YA:10 a=Kq8ClHjjuc5pcCNDwlU0:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: 0JEmp3fU_KRLkf8siI7EdcltektiOp-_ X-Proofpoint-GUID: 0JEmp3fU_KRLkf8siI7EdcltektiOp-_ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 impostorscore=0 phishscore=0 spamscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 bulkscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190221 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910101710158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/gen_tcg_sys.h | 16 ++++++++++++++++ target/hexagon/helper.h | 3 +++ target/hexagon/sys_macros.h | 3 +++ target/hexagon/op_helper.c | 6 ++++++ 4 files changed, 28 insertions(+) diff --git a/target/hexagon/gen_tcg_sys.h b/target/hexagon/gen_tcg_sys.h index 8650f64a6d4..264ea02752d 100644 --- a/target/hexagon/gen_tcg_sys.h +++ b/target/hexagon/gen_tcg_sys.h @@ -95,4 +95,20 @@ gen_helper_stop(tcg_env); \ } while (0) =20 +/* + * rte (return from exception) + * Clear the EX bit in SSR + * Jump to ELR + */ +#define fGEN_TCG_J2_rte(SHORTCODE) \ + do { \ + TCGv_i32 new_ssr =3D tcg_temp_new_i32(); \ + tcg_gen_deposit_tl(new_ssr, hex_t_sreg[HEX_SREG_SSR], \ + tcg_constant_tl(0), \ + reg_field_info[SSR_EX].offset, \ + reg_field_info[SSR_EX].width); \ + gen_log_sreg_write(ctx, HEX_SREG_SSR, new_ssr); \ + gen_jumpr(ctx, hex_t_sreg[HEX_SREG_ELR]); \ + } while (0) + #endif diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index 682f0c6c26e..0ec3a099cb6 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -127,4 +127,7 @@ 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_1(resched, void, env) +DEF_HELPER_3(modify_ssr, void, env, i32, i32) +DEF_HELPER_1(pending_interrupt, void, env) #endif diff --git a/target/hexagon/sys_macros.h b/target/hexagon/sys_macros.h index 4de4d53823a..e8bbeadfdfb 100644 --- a/target/hexagon/sys_macros.h +++ b/target/hexagon/sys_macros.h @@ -236,4 +236,7 @@ =20 #define NUM_TLB_REGS(x) (hexagon_tlb_get_num_entries(env_archcpu(env)->tlb= )) =20 +/* NMI routing not yet implemented; Y4_nmi is a no-op for now */ +#define fDO_NMI(THREAD_MASK) do { } while (0) + #endif diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index c620a5b8636..2cd7f48ea2f 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1480,6 +1480,12 @@ void HELPER(setprio)(CPUHexagonState *env, uint32_t = thread, uint32_t prio) g_assert_not_reached(); } =20 + +void HELPER(pending_interrupt)(CPUHexagonState *env) +{ + BQL_LOCK_GUARD(); + hex_interrupt_update(env); +} #endif =20 =20 --=20 2.34.1 From nobody Sun Jul 26 12:31:36 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=1781910260; cv=none; d=zohomail.com; s=zohoarc; b=TK0DP3QeqsCuWQ1Uzz+dZXea4iltVHztaxjlvPicYISmeUst6DFw+qVt8gGuEqCUMLaMwP2H3pVvkwx6f9uO+GXD2rKCGfkHOld+TCfA3X8PghBE0WoKqauCPFEy2xqoi9iPtXVFFyYbMJEIhMiIP4UMqqkq3AZj/jMENI+kcfw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910260; 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=ydI56hjj1K3zzOwtbWnVUpF9xkvs46kCuETc/C2W1YE=; b=PZmEDyEBLQkOMPtL7wesnsN+HhF/Pellxl7/ZclbSb+pNcIBU6tXB8xGlgEYRjndyONhcmSLLSlgT9XCrPgPZxHBHubfkQYaesfqypXPn3zY2MhkOK9IIHGo2MSnlBx7h98TQFEfOtAncvyNdCZ/vQY93sxM1q1x8XhmVWZcUUo= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781910260052247.98778391145515; Fri, 19 Jun 2026 16:04:20 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiC3-0002Gp-KG; Fri, 19 Jun 2026 19:00:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiC2-0002Dm-I5 for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:00:10 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiC0-0001dz-47 for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:00:10 -0400 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLYAI01336520 for ; Fri, 19 Jun 2026 22:59:56 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evp67556x-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 22:59:56 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30ba395b047so9989585eec.0 for ; Fri, 19 Jun 2026 15:59:56 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.15.59.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 15:59:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= ydI56hjj1K3zzOwtbWnVUpF9xkvs46kCuETc/C2W1YE=; b=WHOFFhKE+nqjB6Gj SNynNL054aL6u0/K8/nRUcx0QeewbrN3uDTLuJLnzyG/+e+Zb1F/6pEEv16snFEi JnCA7O7Atxs7K1t3IcdDYKgalrXj1hIrghAypuOqfutfKX8MVnqYZgvZm1whxasA OSRjGofu/jjsr6GrC5MGckIbXRHoFxPCA96PuGuBhJkF9PwmN75OtkV6Ryq6iBe+ QalM/j7PaRUCH6LveXo3u+zO7u2aqEgSQ0Sbr+eOfQmaH15Tys7JxxIkEQKLbtPb T6jPg9MjP5lRGA8Yg1DaK38RsI+8uB6MF3XXFyYqyQq1a13XNgv2INxktwd7DCeK Pc6cyg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781909996; x=1782514796; 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=ydI56hjj1K3zzOwtbWnVUpF9xkvs46kCuETc/C2W1YE=; b=FBy8obVv9Ose6xprWa2Iv/d9bCO/oypxZbB9N7A166UWTe6OIJqJFjXi5wyQNHsxow +X8vtvxEJ+3qHdgvybGX2bTIsqvU7T8qv01gnTpkYdru0MO1rIORmbF7A2ndfm8vL19M MK/IDxekcT57KUxxywA/K5KTjZLR2mCebf1isitHC7UTbMkG1TpEKZfsE/OKWV65Sf7t jRs7AV6U5B09+18xbWnnOknMBw/E1u+w8uy8HCIzHMDjfz04ela6NtoDiqM3bgXAWLfy ld2e2E6LA7SSzjr3tJwiG74jnE3G4uinE6NqmxVRaShvHduRBRzCtBHvcDJdwd8nAgB5 mNow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781909996; x=1782514796; 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=ydI56hjj1K3zzOwtbWnVUpF9xkvs46kCuETc/C2W1YE=; b=bXX/A42nBN4QpbIa9i74/7bhGC77l4GeN6BTBYdvpI0zfOKnCC5hVyrRBgVm1LPX6u n2BT1JcDQJuIVE2EBbYNJQquT2QlAXkCaR58PhctSqBajzcsHHx/GCm0m6ktnN4q/ntM yBrnB2mzVqOH/qx/SR6BZCY6cmQcGMqJWx1q4xI97wNG+WTvrJ94oxPQ2wGEI3wjOB/C Uw/pqzANw+Dos3yc+orTELpJaTmnGNsCskMriy7krW7yQhgX3C6lX/4a4BECov2Rrn7j n88FFHcBTMRYihGCeNJxL0BV01HFMrDue7TGy39yGgl6xZUvG71QVXW9bgiUcWcdzvyM YteA== X-Gm-Message-State: AOJu0YxfcjA4buVsHD9JLELxGphgOWu7jZAHr0h/dTKjFiCUNNmIftLV 8dj11uJ5NT1//FCGMlNlW9Enmkgxu42BthnCGZkHQZe0UmWyLUe39YU0T/FskSv3/J+pOogRDfx ZQCq3qYARlRqoVjHm1tny7pX2ayV/TdZUFWdJcCTzkNuwEyo5yLgy6rrenYSQJ7shdg== X-Gm-Gg: AfdE7clhv2sCC0b3Q7225zQCyxZzoVF4NVAlXiFxgZXeKIj5KRS3xw5shvG+MrOBwrw gqyMXHUMoP3TMbrTxqW6Cbx9HrH4lAQdqjODEHHkvb3B1ZSXZw9ROkiD8b15wpmfiZUzJex65Sf t3qxIpJF4AnGGXof4ra4x9j6bUI7Ukm36wSI8bVdzA2koaM25Pcma0+6px3e0Wmbv15YsTGBII0 SK8YQIHZjetw90mVlhOCe+yFRNztuHGGM0e+pwI8lC+jBIvTZ5uHnhWdMBdtiyXyQq4ybzX2wbh 6iq8GgdjRd8S2y/dFvSlEwp8If4/e2BFMHDDEV4pGXvHSyXTJRFFOEZrpcjLrGZ03EoEYCignrU M/H93SxEHMIDABidTnw6Ror00fyqJRq9UwTpKAlY68cLtuU2BDcPGn4pzsi4= X-Received: by 2002:a05:7301:4083:b0:307:4797:ccb8 with SMTP id 5a478bee46e88-30c071ea4e4mr3204538eec.32.1781909996013; Fri, 19 Jun 2026 15:59:56 -0700 (PDT) X-Received: by 2002:a05:7301:4083:b0:307:4797:ccb8 with SMTP id 5a478bee46e88-30c071ea4e4mr3204516eec.32.1781909995452; Fri, 19 Jun 2026 15:59:55 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Sid Manning , Taylor Simpson , Pierrick Bouvier Subject: [PULL 28/74] target/hexagon: Add sreg_{read,write} helpers Date: Fri, 19 Jun 2026 15:58:25 -0700 Message-Id: <20260619225911.159473-29-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: nGynqSDWjwjrKwVJ1QoF5ZRRkiDbVNmD X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX5N4reQEWUsGV e7iTGC05LyTqKO2tnt2qdc3eQPLBV3feDWqnFKVzZj1rsXZ2DbTkulckdwzfyYYUtKFas3Zb06i p++vPKdmgHVfNkvkcKNL5ceuQRS1rP9UetilMwudRMfxal7vF/p1Y9Pvb5rr5NRqRu3ONFjRqZq dV3aKMQLMb1gVWqA2n4dY42KoRZerW2bCa7q38QBxGNevuex0zFZLwfC3fHv83qAxbBc1lppZeZ v1CHI8Kk6ULHwJ2Vv45PYfW/q6Qc0KJYT9Cmttttj1tVHp2sIYszVmETb0Z/F/G3b3mfx4Y9IFr 7F5fozeBjRIItHjE525lh7egLLO1AJsu682BdqZA6oI4cz9wkAHZ5AdsPXZswm3WSENigMMZMYS RAtS2r6+XN6ZZkOmOOoHxG5uIX6IL65Wf92qQr/Bodw0qJxtOAoHjM1jnU4bpZJ+xdrVdFX7Yut DWH9XH3Iox1R27IAYHw== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX3pZtrG/pFGHY 9sOpq+4dBuJXTqOW3YRWdnQy4+Ea1ygYUGr/RJ5IqHjS40H11enJkhSUABYBwMCMz952I/hTfbT fOCXzrBEGj5Y/pH0VBwUWH6TqMCpD8Q= X-Proofpoint-GUID: nGynqSDWjwjrKwVJ1QoF5ZRRkiDbVNmD X-Authority-Analysis: v=2.4 cv=TdOmcxQh c=1 sm=1 tr=0 ts=6a35c9ec cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=rqZXtLhFGwB6yMrbUaoA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 impostorscore=0 spamscore=0 phishscore=0 malwarescore=0 clxscore=1015 suspectscore=0 bulkscore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190221 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910260394158500 From: Brian Cain Co-authored-by: Sid Manning Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.c | 1 - target/hexagon/cpu_helper.c | 354 ++++++++++++++++++++++++++++++++++++ target/hexagon/op_helper.c | 33 +++- 3 files changed, 384 insertions(+), 4 deletions(-) create mode 100644 target/hexagon/cpu_helper.c diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 3059196bcac..a08083ea290 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -334,7 +334,6 @@ static void hexagon_cpu_realize(DeviceState *dev, Error= **errp) =20 qemu_init_vcpu(cs); cpu_reset(cs); - mcc->parent_realize(dev, errp); } =20 diff --git a/target/hexagon/cpu_helper.c b/target/hexagon/cpu_helper.c new file mode 100644 index 00000000000..a2b486f4bb5 --- /dev/null +++ b/target/hexagon/cpu_helper.c @@ -0,0 +1,354 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "cpu.h" +#include "cpu_helper.h" +#include "system/cpus.h" +#include "hw/core/boards.h" +#include "hw/hexagon/hexagon.h" +#include "hw/hexagon/hexagon_globalreg.h" +#include "hex_interrupts.h" +#include "hex_mmu.h" +#include "system/runstate.h" +#include "exec/cpu-interrupt.h" +#include "exec/target_page.h" +#include "accel/tcg/cpu-ldst.h" +#include "exec/cputlb.h" +#include "qemu/log.h" +#include "tcg/tcg-op.h" +#include "internal.h" +#include "macros.h" +#include "sys_macros.h" +#include "arch.h" + + +uint32_t hexagon_get_pmu_counter(CPUHexagonState *cur_env, int index) +{ + g_assert_not_reached(); +} + +uint64_t hexagon_get_sys_pcycle_count(CPUHexagonState *env) +{ + g_assert_not_reached(); +} + +uint32_t hexagon_get_sys_pcycle_count_high(CPUHexagonState *env) +{ + g_assert_not_reached(); +} + +uint32_t hexagon_get_sys_pcycle_count_low(CPUHexagonState *env) +{ + g_assert_not_reached(); +} + +void hexagon_set_sys_pcycle_count_high(CPUHexagonState *env, uint32_t val) +{ + g_assert_not_reached(); +} + +void hexagon_set_sys_pcycle_count_low(CPUHexagonState *env, uint32_t val) +{ + g_assert_not_reached(); +} + +void hexagon_set_sys_pcycle_count(CPUHexagonState *env, uint64_t val) +{ + g_assert_not_reached(); +} + +static void hexagon_resume_thread(CPUHexagonState *env) +{ + CPUState *cs =3D env_cpu(env); + clear_wait_mode(env); + /* + * The wait instruction keeps the PC pointing to itself + * so that it has an opportunity to check for interrupts. + * + * When we come out of wait mode, adjust the PC to the + * next executable instruction. + */ + env->gpr[HEX_REG_PC] =3D env->wait_next_pc; + cs =3D env_cpu(env); + ASSERT_DIRECT_TO_GUEST_UNSET(env, cs->exception_index); + cs->halted =3D false; + cs->exception_index =3D HEX_EVENT_NONE; + qemu_cpu_kick(cs); +} + +void hexagon_resume_threads(CPUHexagonState *current_env, uint32_t mask) +{ + CPUState *cs; + CPUHexagonState *env; + + g_assert(bql_locked()); + CPU_FOREACH(cs) { + env =3D cpu_env(cs); + g_assert(env->threadId < THREADS_MAX); + if ((mask & (0x1 << env->threadId))) { + if (get_exe_mode(env) =3D=3D HEX_EXE_MODE_WAIT) { + hexagon_resume_thread(env); + } + } + } +} + +void hexagon_modify_ssr(CPUHexagonState *env, uint32_t new, uint32_t old) +{ + bool old_EX, old_UM, old_GM, old_IE; + bool new_EX, new_UM, new_GM, new_IE; + uint8_t old_asid, new_asid; + + g_assert(bql_locked()); + + old_EX =3D GET_SSR_FIELD(SSR_EX, old); + old_UM =3D GET_SSR_FIELD(SSR_UM, old); + old_GM =3D GET_SSR_FIELD(SSR_GM, old); + old_IE =3D GET_SSR_FIELD(SSR_IE, old); + new_EX =3D GET_SSR_FIELD(SSR_EX, new); + new_UM =3D GET_SSR_FIELD(SSR_UM, new); + new_GM =3D GET_SSR_FIELD(SSR_GM, new); + new_IE =3D GET_SSR_FIELD(SSR_IE, new); + + if ((old_EX !=3D new_EX) || + (old_UM !=3D new_UM) || + (old_GM !=3D new_GM)) { + hex_mmu_mode_change(env); + } + + old_asid =3D GET_SSR_FIELD(SSR_ASID, old); + new_asid =3D GET_SSR_FIELD(SSR_ASID, new); + if (new_asid !=3D old_asid) { + CPUState *cs =3D env_cpu(env); + tlb_flush(cs); + } + + /* See if the interrupts have been enabled or we have exited EX mode */ + if ((new_IE && !old_IE) || + (!new_EX && old_EX)) { + hex_interrupt_update(env); + } +} + +void clear_wait_mode(CPUHexagonState *env) +{ + HexagonCPU *cpu; + uint32_t modectl, thread_wait_mask; + + g_assert(bql_locked()); + + cpu =3D env_archcpu(env); + if (cpu->globalregs) { + modectl =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_MODECTL, + env->threadId); + thread_wait_mask =3D GET_FIELD(MODECTL_W, modectl); + thread_wait_mask &=3D ~(0x1 << env->threadId); + SET_SYSTEM_FIELD(env, HEX_SREG_MODECTL, MODECTL_W, thread_wait_mas= k); + } +} + +void hexagon_ssr_set_cause(CPUHexagonState *env, uint32_t cause) +{ + uint32_t old, new; + + g_assert(bql_locked()); + + old =3D env->t_sreg[HEX_SREG_SSR]; + SET_SYSTEM_FIELD(env, HEX_SREG_SSR, SSR_EX, 1); + SET_SYSTEM_FIELD(env, HEX_SREG_SSR, SSR_CAUSE, cause); + new =3D env->t_sreg[HEX_SREG_SSR]; + + hexagon_modify_ssr(env, new, old); +} + + +int get_exe_mode(CPUHexagonState *env) +{ + HexagonCPU *cpu; + uint32_t modectl, thread_enabled_mask, thread_wait_mask; + uint32_t isdbst, debugmode; + bool E_bit, W_bit, D_bit; + + g_assert(bql_locked()); + + cpu =3D env_archcpu(env); + modectl =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_MODECTL, + env->threadId) : 0; + thread_enabled_mask =3D GET_FIELD(MODECTL_E, modectl); + E_bit =3D thread_enabled_mask & (0x1 << env->threadId); + thread_wait_mask =3D GET_FIELD(MODECTL_W, modectl); + W_bit =3D thread_wait_mask & (0x1 << env->threadId); + isdbst =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_ISDBST, + env->threadId) : 0; + debugmode =3D GET_FIELD(ISDBST_DEBUGMODE, isdbst); + D_bit =3D debugmode & (0x1 << env->threadId); + + if (!D_bit && !W_bit && !E_bit) { + return HEX_EXE_MODE_OFF; + } + if (!D_bit && !W_bit && E_bit) { + return HEX_EXE_MODE_RUN; + } + if (!D_bit && W_bit && E_bit) { + return HEX_EXE_MODE_WAIT; + } + if (D_bit && !W_bit && E_bit) { + return HEX_EXE_MODE_DEBUG; + } + g_assert_not_reached(); +} + +static uint32_t set_enable_mask(CPUHexagonState *env) +{ + HexagonCPU *cpu; + uint32_t modectl, thread_enabled_mask; + + g_assert(bql_locked()); + + cpu =3D env_archcpu(env); + if (!cpu->globalregs) { + return 0; + } + modectl =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_MODECTL, + env->threadId); + thread_enabled_mask =3D GET_FIELD(MODECTL_E, modectl); + thread_enabled_mask |=3D 0x1 << env->threadId; + SET_SYSTEM_FIELD(env, HEX_SREG_MODECTL, MODECTL_E, thread_enabled_mask= ); + return thread_enabled_mask; +} + +static uint32_t clear_enable_mask(CPUHexagonState *env) +{ + HexagonCPU *cpu; + uint32_t modectl, thread_enabled_mask; + + g_assert(bql_locked()); + + cpu =3D env_archcpu(env); + if (!cpu->globalregs) { + return 0; + } + modectl =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_MODECTL, + env->threadId); + thread_enabled_mask =3D GET_FIELD(MODECTL_E, modectl); + thread_enabled_mask &=3D ~(0x1 << env->threadId); + SET_SYSTEM_FIELD(env, HEX_SREG_MODECTL, MODECTL_E, thread_enabled_mask= ); + return thread_enabled_mask; +} +static void do_start_thread(CPUState *cs, run_on_cpu_data tbd) +{ + CPUHexagonState *env; + + BQL_LOCK_GUARD(); + + env =3D cpu_env(cs); + + hexagon_cpu_soft_reset(env); + + set_enable_mask(env); + + cs->halted =3D 0; + cs->exception_index =3D HEX_EVENT_NONE; + cpu_resume(cs); +} + +void hexagon_start_threads(CPUHexagonState *current_env, uint32_t mask) +{ + CPUState *cs; + CPU_FOREACH(cs) { + CPUHexagonState *env =3D cpu_env(cs); + if (!(mask & (0x1 << env->threadId))) { + continue; + } + + if (current_env->threadId !=3D env->threadId) { + async_safe_run_on_cpu(cs, do_start_thread, RUN_ON_CPU_NULL); + } + } +} + +/* + * When we have all threads stopped, the return + * value to the shell is register 2 from thread 0. + */ +static uint32_t get_thread0_r2(void) +{ + CPUState *cs; + CPU_FOREACH(cs) { + CPUHexagonState *thread =3D cpu_env(cs); + if (thread->threadId =3D=3D 0) { + return thread->gpr[2]; + } + } + g_assert_not_reached(); +} + +void hexagon_stop_thread(CPUHexagonState *env) +{ + uint32_t thread_enabled_mask; + CPUState *cs; + + BQL_LOCK_GUARD(); + + thread_enabled_mask =3D clear_enable_mask(env); + cs =3D env_cpu(env); + cpu_interrupt(cs, CPU_INTERRUPT_HALT); + if (!thread_enabled_mask) { + /* All threads are stopped, request shutdown */ + qemu_system_shutdown_request_with_code( + SHUTDOWN_CAUSE_GUEST_SHUTDOWN, get_thread0_r2()); + } +} + +static int sys_in_monitor_mode_ssr(uint32_t ssr) +{ + if ((GET_SSR_FIELD(SSR_EX, ssr) !=3D 0) || + ((GET_SSR_FIELD(SSR_EX, ssr) =3D=3D 0) && + (GET_SSR_FIELD(SSR_UM, ssr) =3D=3D 0))) { + return 1; + } + return 0; +} + +static int sys_in_guest_mode_ssr(uint32_t ssr) +{ + if ((GET_SSR_FIELD(SSR_EX, ssr) =3D=3D 0) && + (GET_SSR_FIELD(SSR_UM, ssr) !=3D 0) && + (GET_SSR_FIELD(SSR_GM, ssr) !=3D 0)) { + return 1; + } + return 0; +} + +static int sys_in_user_mode_ssr(uint32_t ssr) +{ + if ((GET_SSR_FIELD(SSR_EX, ssr) =3D=3D 0) && + (GET_SSR_FIELD(SSR_UM, ssr) !=3D 0) && + (GET_SSR_FIELD(SSR_GM, ssr) =3D=3D 0)) { + return 1; + } + return 0; +} + +int get_cpu_mode(CPUHexagonState *env) +{ + uint32_t ssr =3D env->t_sreg[HEX_SREG_SSR]; + + if (sys_in_monitor_mode_ssr(ssr)) { + return HEX_CPU_MODE_MONITOR; + } else if (sys_in_guest_mode_ssr(ssr)) { + return HEX_CPU_MODE_GUEST; + } else if (sys_in_user_mode_ssr(ssr)) { + return HEX_CPU_MODE_USER; + } + return HEX_CPU_MODE_MONITOR; +} diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 2cd7f48ea2f..4dc2b8e63a7 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -20,6 +20,7 @@ #include "accel/tcg/cpu-ldst.h" #include "accel/tcg/cpu-loop.h" #include "accel/tcg/probe.h" +#include "qemu/main-loop.h" #include "cpu.h" #include "exec/helper-proto.h" #include "fpu/softfloat.h" @@ -1452,17 +1453,43 @@ void HELPER(setimask)(CPUHexagonState *env, uint32_= t tid, uint32_t imask) =20 void HELPER(sreg_write_masked)(CPUHexagonState *env, uint32_t reg, uint32_= t val) { - g_assert_not_reached(); + BQL_LOCK_GUARD(); + if (reg < HEX_SREG_GLB_START) { + env->t_sreg[reg] =3D val; + } else { + HexagonCPU *cpu =3D env_archcpu(env); + if (cpu->globalregs) { + hexagon_globalreg_write_masked(cpu->globalregs, reg, val); + } + } +} + +static inline QEMU_ALWAYS_INLINE uint32_t sreg_read(CPUHexagonState *env, + uint32_t reg) +{ + HexagonCPU *cpu; + + g_assert(bql_locked()); + if (reg < HEX_SREG_GLB_START) { + return env->t_sreg[reg]; + } + cpu =3D env_archcpu(env); + return cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, reg, env->threadId) : 0; } =20 uint32_t HELPER(sreg_read)(CPUHexagonState *env, uint32_t reg) { - g_assert_not_reached(); + BQL_LOCK_GUARD(); + return sreg_read(env, reg); } =20 uint64_t HELPER(sreg_read_pair)(CPUHexagonState *env, uint32_t reg) { - g_assert_not_reached(); + BQL_LOCK_GUARD(); + + return deposit64((uint64_t) sreg_read(env, reg), 32, 32, + sreg_read(env, reg + 1)); } =20 uint32_t HELPER(greg_read)(CPUHexagonState *env, uint32_t reg) --=20 2.34.1 From nobody Sun Jul 26 12:31:36 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=1781910179; cv=none; d=zohomail.com; s=zohoarc; b=Sy+0+yYjUMEmihK2HFGCUrg/8YlVSPCYMjcxU2IKfHq4uEqLHqMQXkdHLKxn1UFQjhmZMBbFWtU1ZfZmdPtVgfeNNfhN+LA4ZW3pf/1VpfVR3XB5bszjWyIiTUROiyqWeMP/TrmscUQmAWmU/+Xv54EADqLwZOO6NK8FIbU1+ow= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910179; 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=xnSW3oZuwood08ngSSOR1Dm8XpJbybm5vIaVrHhZrro=; b=nOLnEqeOaDzNW3tyVdbWoGN7tBRN4aDnWOQNHGRPpD+45WJl/OcPd5R+fGjp89Z3KBSzZ/Vgl+YuX3YO2dy1exkfv0/UiCfoJxRLmpSFHCkz4R5MHHiVloVe4Xngv+M2tdCHtA7yRAGlxtTlRcHniTW8XbrbeSnEPZb7OsAUHD4= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781910179533874.6623645629638; Fri, 19 Jun 2026 16:02:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiC8-0002K9-Gf; Fri, 19 Jun 2026 19:00:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiC3-0002GT-1D for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:00:11 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiC1-0001e7-Ek for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:00:10 -0400 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLXfeJ1251256 for ; Fri, 19 Jun 2026 22:59:58 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ewbgp8n4g-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 22:59:58 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30bc5f826f2so4609848eec.1 for ; Fri, 19 Jun 2026 15:59:58 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.15.59.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 15:59:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= xnSW3oZuwood08ngSSOR1Dm8XpJbybm5vIaVrHhZrro=; b=BSAS4M9DpFi79eNs eN2R8zJACJvUktZfJ80WaDEGWOtjWc2KyWIYpG1sfvhx9sFI49xlYCzrG50LaXFJ kuF9B9PPzE2NSsSO7sEl6C/zKwlrgPYtqwT9Xha8bJywdYzqT11p3v06M0LdKmGR WDbMGh4lOInDSAD0BVhz8HeW6P881gG/ihr+oTPZm9/Gzrp4TYFIzKfcQvVgCyBE 1JQxZtQKZnAxPdbLFVxYA02ncn+QtyCP6zdetnSXSUtK0Ei20hh6xzdl/LXjPi0N +yzVEJSEpwGdHhpehoRrNLh1+Pv2DuxWc1uvx0u6H1FL8OrqgrODpwopkPoeKsU4 89X05Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781909997; x=1782514797; 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=xnSW3oZuwood08ngSSOR1Dm8XpJbybm5vIaVrHhZrro=; b=ix7fYuDaDifygJnB+zJFqAkvSi3ZEkort+S87+Uc3YTm8TDKeDeX/FWnYKMC7Q0L2k BYYtzcIgXJElz5G4xIb5SBHA3pIYcN2Q2L4J0b9eSyM+NhFQcyThEPTk29oZtiyhWq8z MfV8OdOgFoUQruL+grzQFwLMmK8QR/D+kRIUT+LlDXVPFSClLkzQ2aEB7sEtZ1sSUVcQ quFcqJobHF5H2dQVP4qhgILYru8mOaYwLZeou6rJrv0rZGOgjjwchS65E+Zb26SuZMQ1 yg5qHp3Ro5G+2Gf0ls3UAZtxyjWfWaMDiFyT3V704qr0fFCnSkvEuVRBt6hne7JVUlsC hkBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781909997; x=1782514797; 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=xnSW3oZuwood08ngSSOR1Dm8XpJbybm5vIaVrHhZrro=; b=naPuedIrddWxabi3NJ6uAzyD/Ht/406/5SCaqueTS0S+//Ga3ji0YaN39e1WhYpm5s bamU0BcOnAm/zEGnXO/RnYDy+RanoFuODoL7Kt3/dE8szT0W6oOD6cAUUxB3xDsfGG94 2dsiwm25NghqM22RSqaWtzXX2SxfuPyh7i5puzblz/pSXbpIzIpxQyEy79CqfThDY6p8 K0n0587gz4/WTWTreZILYjbBOBnQ6ZWgHNAAlYhOSsNZX66geOsLNQYt64Wdqqr/acnC mCzzUqIY/78jHBAPoB5R+u5rp7CDKCyGm30/wXjOcb+1ahNzGU4VB+drCd7FszuNclJW 0DNg== X-Gm-Message-State: AOJu0Yx7SAoPbb3HQnHp3h4/u6F3Th8wR8K4DjVUBRrGpxgkpRU7TVYs Tgpotdx+GC83LLfhml8FdWOcB2Q90I6rmRvBL89PUZOMAaYJC5ukg6w2YzpEsEhzBswBOP8wZri dXQwqs5YtgdAW1Kg0yu6iE0xb6VbtWln02ASFY7/5TMkbA9e8aMDkmuFlB/5+KSSSUQ== X-Gm-Gg: AfdE7cnnbaHbCJrneBlp36kqFrT80UEV0szJEQSDkNnm7mnhVsND95p3OA+ItXEO6FB bfyqGvCH61+jLaz9EK/ZCQk23fGW9fR5NRINhnHZfh1IERCE1zfxEg5+aBX1vnuUfStCLPcUyQ4 7/WIiiLmn5nYwI16RoG1Cek45potFtJSJtPcszoBqt5SNbPaQk8Z+/vsrJgCPhw2TslR3ohA3tA w1VTblr4k/Y8sBcXqrShADqYSfxRIpyj+BaHW/x2gB9DOAFiDgpM09eiZSsfNSU/qlkdGDEvdTg oMDX+B1dRqwczvlMFLz/YwXfKyFwrrHsUuxvPxBzSaOxi/WHdZCLgqsam6ulrU9QgqCDcq+l6h6 8lMAOhTu8C4L5IlyS02h6K+H87QWSRU2bAPDVTbASgseKFlQLI7XgeF4auQI= X-Received: by 2002:a05:7300:a886:b0:307:3a6c:ece9 with SMTP id 5a478bee46e88-30c0d014ae5mr2317851eec.15.1781909997493; Fri, 19 Jun 2026 15:59:57 -0700 (PDT) X-Received: by 2002:a05:7300:a886:b0:307:3a6c:ece9 with SMTP id 5a478bee46e88-30c0d014ae5mr2317843eec.15.1781909996978; Fri, 19 Jun 2026 15:59:56 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Taylor Simpson , Pierrick Bouvier Subject: [PULL 29/74] target/hexagon: Add representation to count cycles Date: Fri, 19 Jun 2026 15:58:26 -0700 Message-Id: <20260619225911.159473-30-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: 9aq3m2rzyObw8MxTq_UAe_n_VRub1YQa X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyMCBTYWx0ZWRfX+RAghKwyeh2Z PPv0SbsTZcTP18Gqc+b+KVlz3Oapsj+eHDpnOvHPFwspQLWOaoYGy+iqbG6h1VZ8wEDCZXDSI90 bHD5qQ5OCam+w4tjHYBLmZz3DQUt9OItf4k6hkVLR2PTSwL6KkJmkA33yFgu47+8ztkToQ1TE1b dENm6mIdR9xXIVss6BmdJ33LbiX08Wru/c1Z/b4LN+VEcIQXLuc2g3yQUYqT5HnyAT9Vu0nD6zF qXCHSgEXM0Wi1mWNJlaZSVmIKYlGzWNVeAwIay9YF6RTWPKmAN8B0SD6m9WFVOTOW54sCUP3Zgu 842NmiBsHBDgZca4gETXfYgk9HxQaFH9QuGkD2MTZKKjAvZDrpcCARunV6qISYQ0OuDfNmrEW9+ qc/s2OBsrHBQo3r4wI6jc97P9CatLKJvA6dKRj7kVnCTvs41jTa/01sTl6DVAbaQLPZmEZ6ut0n Yyq0A+C3mxbcePK1cZw== X-Proofpoint-GUID: 9aq3m2rzyObw8MxTq_UAe_n_VRub1YQa X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMCBTYWx0ZWRfX6CgIjt5qQwSL rc4a5/GhvhOvOAtF5WmIb7myGiW/D+HiquIOd3hQDgVJU4/FmMvE4HODu5/wpcrF3Q5fmrLyv2E nOfdVJVsSufTqG/rqGGEMQuE9AEPM8s= X-Authority-Analysis: v=2.4 cv=d8vFDxjE c=1 sm=1 tr=0 ts=6a35c9ee cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=gmA5YO3DfmenxuRff1QA:9 a=tsLLKIjAKpJP5df9:21 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 priorityscore=1501 malwarescore=0 spamscore=0 phishscore=0 impostorscore=0 suspectscore=0 clxscore=1015 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190220 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910179952158500 Add t_cycle_count to CPUArchState for tracking processor cycle counts in system emulation. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 1 + 1 file changed, 1 insertion(+) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 4bea953ac73..2540458b370 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -110,6 +110,7 @@ typedef struct CPUArchState { =20 /* This alias of CPUState.cpu_index is used by imported sources: */ uint32_t threadId; + uint64_t t_cycle_count; #endif target_ulong new_value_usr; =20 --=20 2.34.1 From nobody Sun Jul 26 12:31:36 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=1781910138; cv=none; d=zohomail.com; s=zohoarc; b=ngESSyta8x04CDz7CvthUscz47NcA/bthXcQ770FfKn5LIkZ5uYZI5h/6RCxilYUhBseEbMBOXYNz0JJMcWIbcIwueHvqb8/tf68eYu7GOwpZiZZfuoNfpWYkXjifRAbOAY+EpG0Bv0KluRQawW/PPx7fidVu3WxDUtHYcHl3o0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910138; 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=dY/1s85TBUfEZ6DKxNXbQLtO9YNnO553PDpX0fAztOM=; b=jsDPwMcj3CXL0bOJvRQiVTCqzAPyguaSbvlZF4mQVOpwRtWUHooY3jiS6GWTgHpn2MTplCOaY3ZuCtgo49OIBYO8m9zw+mdLkLIvLc5KuqN7dATMulr2P5/sOjeFc9MIKLO9MgtlOSrhnL+NG1AiWfoVkqaBN4vlwmQicKQ6s8c= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781910138628276.5006753440324; Fri, 19 Jun 2026 16:02:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiCG-0002LW-2N; Fri, 19 Jun 2026 19:00:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiC4-0002HL-T9 for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:00:12 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiC2-0001eO-Ud for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:00:12 -0400 Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLY7bG4085515 for ; Fri, 19 Jun 2026 22:59:59 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evmyrdj42-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 22:59:59 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30bfe262ef0so1134485eec.1 for ; Fri, 19 Jun 2026 15:59:59 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.15.59.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 15:59:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= dY/1s85TBUfEZ6DKxNXbQLtO9YNnO553PDpX0fAztOM=; b=KUxMg4AIo8fLQzsj QD6oU5lP8KRzdh1Mh8BOJ9r6RCrGkq437WQSI+TEygi+4YelKZclzKX4Db3+6+ku biNPibCGL5GebLDRPlcz+fnCwUWCAux0oNch4ody70oJCQb3ImTcFfljdCVrN3tp /4rQQQ/sseTNIawJiCkla3I0KiOZJJuXNwbMrlRAtuj/CC3tNH91f40CPiWRqEUk KeyjyzvB0xl5QFU6oDh1it/1Gh/icVgX0CsJCSRwN/yjXIwKvgp94XYUOgDRls+F rTa9swlhhLY7MY1kfb4R4Czx4LRi4WH2eaMAJ6oqHIfDBb3Mxx5oognZfy13uP8x oCSLhw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781909999; x=1782514799; 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=dY/1s85TBUfEZ6DKxNXbQLtO9YNnO553PDpX0fAztOM=; b=ioHDWHsus8Tv5eic2DX3VmGaHBnVLP2AjkZMHpGp+XYYIud2J2Lruo1pZ9G8sZ590B VV3B83rFABAlBkJPK6TUJhMHY2UyDhr2UwbhLY6lBDs2bGb+Pas9k6WUxRREVq/sB/KJ XMYTb43VZ++rP4LSip+0lDHVecUsEDKU8IIQZHLEFe7HcWUmzJ/PZZ95rtszwyRECXuy ULZK7Atx5z3lu9+skQMynj6y9Q2RxipIQGg7YLGnME5jiJ/BnmiE+2Lez4/opoOoi9qR ZmR2RYaSVjnd3Vm7HafJaN2/bs11OgmC9GWMv+I4MRMdHD6+3dsjr4NTkyGD5g+7Vdub jD2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781909999; x=1782514799; 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=dY/1s85TBUfEZ6DKxNXbQLtO9YNnO553PDpX0fAztOM=; b=PvM7SXSRB2eMA4gYpe1VisHBfX2KyCIvKhbrf3XXjBEvqhLD26dxRBMs1hquJuM8Mz ykTGYsqlZOe2TXv1l8JWCTV3vMZQ/nYIfUunjCW2jadtnVG4ex0rs8UaNkBslxyTGcD0 c8aNeAlBAfaEdZpOC/rSB5Qn+zf46OZHqnJ3zf88ZAJYzcH7a4WwN0w7ZFYdY4KMe+hv CE+/upkp5C5zt/mMxVYDR+qf6LTvjo0j9s5GK5rC348CZs1O4k2gQ3iPZP8SL6xBGGiP xva65oRxWVCp+9jt1YYuWgIbyaQMBix03wXRmMwwkvrI28L1tpQpUjTk6JJ7kaNtr/t2 fCmw== X-Gm-Message-State: AOJu0Yz8Eig6s5D3aHhMhX6mNESfJb9iOwBnd04d+ZOOObghH82BBDoV YunBMHfFKLjmLCEigcSRQ1BFtPHYipUZm0sF5nFk4AOQ1on5FyC8e7qwg0eseC0v5JuWZXiblXM YKbg+TjY+26GZkrE5+u3WevTf+tz7Yt/FINhE8tEZUKXD/2ydi3v9WuC7BUCcOkiXZw== X-Gm-Gg: AfdE7cnq4bRuRTuiMLgvQ8lUhwp/vzgASIJSCPVEedjVZB1go6YZ/o8ctJISddr7lGy 7pUYvKUDYcwBTnu0v8fo1Ihs/yGuk50i86PNztgOoXHIO6LabE0XsR9INHfJj15PCeZuv17WfBE 5/5lyWNWugEKesf4d4mU5qv6HkIretveFpRSGI0TYp1I3N2wwTmSlLAzNPKMvSDF3MO9rWlZXSa 6VzRDZKFSD2tKpCoTtlYro1VE4C9fyIgTvZUAJ8HwFM5lTUCO8bUIaUjp5cui6OEgv/nIV3+6Ha au0VR1C5PWr9cA57KJu26vSokXXqqm2x9vvU/6FoEqzr62UkN7YCE/jm6k19Hachh8GiLCFdyZB 8Ck2krob4UW1/MJX6mtOS/f7lKOr9j+upbFQJIhUSrqS3WT3r7mB1+olaB4Y= X-Received: by 2002:a05:7301:6f0b:b0:30b:cc4e:6396 with SMTP id 5a478bee46e88-30c0787e57dmr1800753eec.7.1781909998917; Fri, 19 Jun 2026 15:59:58 -0700 (PDT) X-Received: by 2002:a05:7301:6f0b:b0:30b:cc4e:6396 with SMTP id 5a478bee46e88-30c0787e57dmr1800746eec.7.1781909998161; Fri, 19 Jun 2026 15:59:58 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Taylor Simpson , Pierrick Bouvier Subject: [PULL 30/74] target/hexagon: Add implementation of cycle counters Date: Fri, 19 Jun 2026 15:58:27 -0700 Message-Id: <20260619225911.159473-31-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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=RZWgzVtv c=1 sm=1 tr=0 ts=6a35c9ef cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=Bw4caLd0n_0OF-yX4NUA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 X-Proofpoint-ORIG-GUID: J8KCreqXSvJsgSAJZWKhUI0mbjQt1Zj2 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfXyYbAeYZO/9yg ZzIf+02PAUlYPxTRSKQXhNJ0YfK04JM4HJ7YYCt5sTZv2DcHA2IZKW3I0lim/WS3lSUAAy1ucEs joNhjYCyv9yXD55l9AU3ato3bctivqBtMizRrzuEb8uYVZc8vGd/T26YQiq4qQBhbyw5xWFBzhK Hbtn1MTFtJmRrDIXedEs4olhXg2U6B4BzNtuD1pI4FCaz84A12fRDvMyevsxp03qapXWPh+H7p/ R04MFICdl115Od/M+RRCSMjn6UN5EgofQM/IhkUOpS4PYo+/lIZzGpl0Gwsxq7aYhoFsRppIVrB IeL1byy8bBEsd1LuDyBiqNcM0D/kyfPP1+3Uue9kMd6p9GDh41SIcXXWxE0pmsELk1VroA/H90f XH8k58LQMAAY+9EIBP7dVUT7P6+OJKSp0Ms9oIXTlntj9kbYq+kJcA2m5ModS/l3/0JAzyk/Bfn KitkqAUdGL1/sADN84g== X-Proofpoint-GUID: J8KCreqXSvJsgSAJZWKhUI0mbjQt1Zj2 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfXyMgVHAtEAvrJ R+I9X6OZFlOgoKRrIXKAsm5IgM//8kbwLqIv/YMTgkHBk0NJGc6YwP4xa46hQ7PV7HktXzGWr2v NtOxx0It2JffkUPneT0/EjUFAhqaBLQ= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 clxscore=1015 suspectscore=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 bulkscore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190221 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910140034158500 Add cycle counting infrastructure for system emulation: - PCYCLE_ENABLED TB flag to gate cycle counting - gen_pcycle_counters() to emit cycle count increments - Real implementations replacing pcycle stubs in cpu_helper.c - hex_cycle_count TCG global for t_cycle_count - pcycle_enabled context field in DisasContext All pcycle code is guarded by #ifndef CONFIG_USER_ONLY. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 1 + target/hexagon/translate.h | 3 +++ target/hexagon/cpu.c | 4 ++++ target/hexagon/cpu_helper.c | 14 +++++++++++--- target/hexagon/translate.c | 26 ++++++++++++++++++++++++++ 5 files changed, 45 insertions(+), 3 deletions(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 2540458b370..ddf6da78c18 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -164,6 +164,7 @@ struct ArchCPU { #include "cpu_bits.h" =20 FIELD(TB_FLAGS, IS_TIGHT_LOOP, 0, 1) +FIELD(TB_FLAGS, PCYCLE_ENABLED, 4, 1) =20 G_NORETURN void hexagon_raise_exception_err(CPUHexagonState *env, uint32_t exception, diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index 57767acf002..208cf141e7e 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -85,6 +85,9 @@ typedef struct DisasContext { TCGv new_pred_value[NUM_PREGS]; TCGv branch_taken; TCGv dczero_addr; + bool pcycle_enabled; + bool pkt_ends_tb; + uint32_t num_cycles; } DisasContext; =20 bool is_gather_store_insn(DisasContext *ctx); diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index a08083ea290..0773ef8fe79 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -268,6 +268,10 @@ static TCGTBCPUState hexagon_get_tb_cpu_state(CPUState= *cs) hexagon_raise_exception_err(env, HEX_CAUSE_PC_NOT_ALIGNED, 0); } =20 +#ifndef CONFIG_USER_ONLY + hex_flags =3D FIELD_DP32(hex_flags, TB_FLAGS, PCYCLE_ENABLED, 1); +#endif + return (TCGTBCPUState){ .pc =3D pc, .flags =3D hex_flags }; } =20 diff --git a/target/hexagon/cpu_helper.c b/target/hexagon/cpu_helper.c index a2b486f4bb5..bb991a671e8 100644 --- a/target/hexagon/cpu_helper.c +++ b/target/hexagon/cpu_helper.c @@ -33,17 +33,25 @@ uint32_t hexagon_get_pmu_counter(CPUHexagonState *cur_e= nv, int index) =20 uint64_t hexagon_get_sys_pcycle_count(CPUHexagonState *env) { - g_assert_not_reached(); + uint64_t total =3D 0; + CPUState *cs; + + g_assert(bql_locked()); + CPU_FOREACH(cs) { + CPUHexagonState *thread_env =3D cpu_env(cs); + total +=3D thread_env->t_cycle_count; + } + return total; } =20 uint32_t hexagon_get_sys_pcycle_count_high(CPUHexagonState *env) { - g_assert_not_reached(); + return (uint32_t)(hexagon_get_sys_pcycle_count(env) >> 32); } =20 uint32_t hexagon_get_sys_pcycle_count_low(CPUHexagonState *env) { - g_assert_not_reached(); + return (uint32_t)(hexagon_get_sys_pcycle_count(env)); } =20 void hexagon_set_sys_pcycle_count_high(CPUHexagonState *env, uint32_t val) diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index 97849ab861a..ed96d9a66b3 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -61,6 +61,9 @@ TCGv_i64 hex_store_val64[STORES_MAX]; TCGv hex_llsc_addr; TCGv hex_llsc_val; TCGv_i64 hex_llsc_val_i64; +#ifndef CONFIG_USER_ONLY +TCGv_i64 hex_cycle_count; +#endif TCGv hex_vstore_addr[VSTORES_MAX]; TCGv hex_vstore_size[VSTORES_MAX]; TCGv hex_vstore_pending[VSTORES_MAX]; @@ -128,6 +131,15 @@ static void gen_exception_raw(int excp) gen_helper_raise_exception(tcg_env, tcg_constant_i32(excp)); } =20 +#ifndef CONFIG_USER_ONLY +static void gen_pcycle_counters(DisasContext *ctx) +{ + if (ctx->pcycle_enabled) { + tcg_gen_addi_i64(hex_cycle_count, hex_cycle_count, ctx->num_cycles= ); + } +} +#endif + static void gen_exec_counters(DisasContext *ctx) { tcg_gen_addi_tl(hex_gpr[HEX_REG_QEMU_PKT_CNT], @@ -136,6 +148,9 @@ static void gen_exec_counters(DisasContext *ctx) hex_gpr[HEX_REG_QEMU_INSN_CNT], ctx->num_insns); tcg_gen_addi_tl(hex_gpr[HEX_REG_QEMU_HVX_CNT], hex_gpr[HEX_REG_QEMU_HVX_CNT], ctx->num_hvx_insns); +#ifndef CONFIG_USER_ONLY + gen_pcycle_counters(ctx); +#endif } =20 static bool use_goto_tb(DisasContext *ctx, target_ulong dest) @@ -810,6 +825,8 @@ static void gen_commit_hvx(DisasContext *ctx) } } =20 +#define PCYCLES_PER_PACKET 1 + static void update_exec_counters(DisasContext *ctx) { int num_real_insns =3D 0; @@ -829,6 +846,7 @@ static void update_exec_counters(DisasContext *ctx) ctx->num_packets++; ctx->num_insns +=3D num_real_insns; ctx->num_hvx_insns +=3D num_hvx_insns; + ctx->num_cycles +=3D PCYCLES_PER_PACKET; } =20 static void gen_commit_packet(DisasContext *ctx) @@ -978,6 +996,10 @@ static void hexagon_tr_init_disas_context(DisasContext= Base *dcbase, ctx->is_tight_loop =3D FIELD_EX32(hex_flags, TB_FLAGS, IS_TIGHT_LOOP); ctx->short_circuit =3D hex_cpu->short_circuit; ctx->hex_def =3D HEXAGON_CPU_GET_CLASS(hex_cpu)->hex_def; +#ifndef CONFIG_USER_ONLY + ctx->num_cycles =3D 0; + ctx->pcycle_enabled =3D FIELD_EX32(hex_flags, TB_FLAGS, PCYCLE_ENABLED= ); +#endif } =20 static void hexagon_tr_tb_start(DisasContextBase *db, CPUState *cpu) @@ -1121,6 +1143,10 @@ void hexagon_translate_init(void) offsetof(CPUHexagonState, llsc_val), "llsc_val"); hex_llsc_val_i64 =3D tcg_global_mem_new_i64(tcg_env, offsetof(CPUHexagonState, llsc_val_i64), "llsc_val_i64"); +#ifndef CONFIG_USER_ONLY + hex_cycle_count =3D tcg_global_mem_new_i64(tcg_env, + offsetof(CPUHexagonState, t_cycle_count), "t_cycle_count"); +#endif for (i =3D 0; i < STORES_MAX; i++) { snprintf(store_addr_names[i], NAME_LEN, "store_addr_%d", i); hex_store_addr[i] =3D tcg_global_mem_new(tcg_env, --=20 2.34.1 From nobody Sun Jul 26 12:31:36 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=1781910050; cv=none; d=zohomail.com; s=zohoarc; b=PRGCdoWsi1h4KvXWyAL2Vqa7Olb6IOLF9ux9eM6KtCVnaMzW38EYb4wxuDNyBU1iyTKu37Epppibzgv8VDuCj96ZtKax+KjTO5T4gxiIwmOqPPwXnFcAvTa97fRVEWcrVwjEb/KyaFyLsbZp37PLATmP417fvzGx5VmnbqoD67M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910050; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=MzvUFKvc+sUpWvc2016FnOxj5PhtBZkyxIiMWx3S09s=; b=YgTQQHGHxa3g0UlrkJuFYAlir9qw1/JyiZzHuvz0JBEUzwerRraDt6MUnpwJ8uyA/vP3qwxGc0g089T+DqKY4Dfxhs+zx2ktXIX9Klo6SiYUgeTXR1Wqaf/LifttLMZUVkyetQ3H2LkAPyb+HhIl45BpUzizGfGUFVi3cx8sPKQ= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781910049901784.8156935177312; Fri, 19 Jun 2026 16:00:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiCJ-0002fy-0A; Fri, 19 Jun 2026 19:00:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiC6-0002Je-1m for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:00:14 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiC4-0001eZ-E8 for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:00:13 -0400 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLYCBk1336529 for ; Fri, 19 Jun 2026 23:00:01 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evp675575-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:00:00 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30c17f62afdso445506eec.0 for ; Fri, 19 Jun 2026 16:00:00 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.15.59.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 15:59:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= MzvUFKvc+sUpWvc2016FnOxj5PhtBZkyxIiMWx3S09s=; b=G4d6C9CeKkNlaO7I iOkkW5Sg4B35iYFoiTz8HPIuLw58DBRwm1DJm5xkMj5WvRfiZhmBZ1Kdbbq+Ph0X vZ06R0OSxEcSgMIYFEmyiE8BpbHNmcjuwIkGq9Zloo7GFHdqH1noUiLGchdf95Pi 7XrWMPKIHSaKXJzoxK3roWIMh2utzOPTfquVnNnjWC8kEh1a9fOZiOgsqp7A/xo3 wDSv2CxT9c4bGKG40gE4cTxFAUmzM1wCFeIKgmmjRb41fVm/6JZkwKN2d7zro/IA 5Zfq0mhqGPD96cd2XSI4X0D07IMqvlM6z6l8ErCtNaojMEfKBFSV+krFjLZSXYu0 tXCz/g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781910000; x=1782514800; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=MzvUFKvc+sUpWvc2016FnOxj5PhtBZkyxIiMWx3S09s=; b=hRWzRetOTQ4PWUdSD1Yzw5kG7z/fyVkeBBbTh0BneqQYpWXeSHE8xAbd8UqnDj83ed 9maJSx0I2lPE2xPTADiCTbfujygI4LAQPrYuXTNIVxCjXMBgk9RvORR8gupuR8+PBVG+ kRDH60G2EjIuW82mSo6JMLzJSkEz87Ve8pWDX8dbMpbJPTSZXsBr5muVk2s0QxjFAXRy pgbfrIKMNmIFH5adabDTMmEMuy7sLUlKm4rOusPNNn6iAzYjcgvTiNqmgWyf0Ay+w/P/ lA+YhrD+eA8qzKdhHqZGcwr2jJP+R4MQ+pOIGvYhXxfDFjVcNlrx8m0vt6DV3EhSjbAR JcTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781910000; x=1782514800; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=MzvUFKvc+sUpWvc2016FnOxj5PhtBZkyxIiMWx3S09s=; b=GbNjmTnt1IijL7LsRs7Q5kaEunMxZ7W8t9IkEagdqUVGh/cY7g2suRhb/6HuwstWRJ s7DlpJP3B3bPHMLSaAA2CXz+w+nRkyDJd6UliIb+3ebhRC406NAxoPDL6q85xeO0pEUC LDGAARHoW5e3pS3+Hl6Be+Qlr8Xx9rHN2wG0jdfjwL3l8idYR6Jjo7+B7MWDCIoUk1O0 D5HKJDhXUtOhP5LmI4bVlPJKfFF6zXDa1zu1vZynDjXAx8L1s2PMk1w9y/BA6YAmUSTX 6PnYJVQWD6mHs8oC4cb0nYCTtwyaJ3D+sSJzsY/pSjeJ2hF8X3I2kSlIZig9zZI3A22h /5xQ== X-Gm-Message-State: AOJu0YygbxLkSa4AP7Lud7D5w4TZwoLTb3NScmXikvtS/31ceh2xOlia W/o9p/DM1M9Cdkd1jyFV8UgmmNBYnpvnOHoOgg0d2/VNpHshQryd2ZVlaJmLibnwdb14O6zJYrL ZUMhG1889PjAxDZKJVMmkGylfaELtH5R8fOoc80CsHYjQpRKhMI14iJLAbohVWY+MBw== X-Gm-Gg: AfdE7ckXQGJEUA9BObaRZcyhpmiURRorzILk55GNefZJ9ooGrGsXy/c6i8pRdMqN7zD l1dHcf96PP00vVZAsEW6fvoZda5MzQ2BlaSiPjj3WGjpkWyXOCS3jm00XQR7tHXFTOzKkbs2u0x ZeGHg9q6DcrfRQBb7CaAvgEfdPEZ1ixJAMQwKC4jTgxWyH2MS9pezBh6V5tROArkeGLeh6OGNez 2Qy/Tg4FXHpR7Yn2yQuFxnACeL0KtIkUD1IlVJKT4fzgIrtgiFqJSR2/DMuyVhkekbCzSKcembP 9LkI/1BGqpDtd+63G/Q1CsitwdbaO7ZF0GUCBlazY9KmPM8QMWdnJSi19gERUb+qjuMsbhsbhbb iqRKEYfuW78GoYQh6c6Ul4joxGBFugdm7XrTlUfj6QW+pnEDzfMjTa4cocLo= X-Received: by 2002:a05:7301:750f:b0:2f4:d190:37bf with SMTP id 5a478bee46e88-30c079daeffmr1892896eec.16.1781910000017; Fri, 19 Jun 2026 16:00:00 -0700 (PDT) X-Received: by 2002:a05:7301:750f:b0:2f4:d190:37bf with SMTP id 5a478bee46e88-30c079daeffmr1892887eec.16.1781909999533; Fri, 19 Jun 2026 15:59:59 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Taylor Simpson , Pierrick Bouvier Subject: [PULL 31/74] target/hexagon: Add pcycle setting functionality Date: Fri, 19 Jun 2026 15:58:28 -0700 Message-Id: <20260619225911.159473-32-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: 6_RY5lNTCb7rOE1yT-HNhpwa2fOiYfe5 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfXxOrxJrnACI8R VON244+JrdFd2coewcUigWkf6uzyTnNYrzdP1tk4MMlxB+/j/1Zxl7YdwqgVwDMIzocJp/ceig/ XVCGtOK2UJbo6MugbfEjDmIsXm4zqnYX2QjsvHmBlixDVGUZJO/kGztJaFrS4HamnN9uorDkI8D RQyOKX/1WE+GoK1jdTvT2o2tEmxt8S+RZeYN9daYy+zt/7/gY/x112TB3Ux78+yhUSakYw5x2OW 56IdtPPZ510IcZv3Z2+wUki1tV3HC10JPjPwBkV0n5e//qWk5/x696MrO994MsE/qyi1q0F9jcW evyc4ZhcDp+RMn8UZT6WiiGlrHUomTZtSaMxFP4x5Qiq3Q3j9ko+r8QYRkjPsVCH/B8g9Zz7NDr I6Wy/MYlFBhttx9Zy3ZOIQ6OFuImdx1tY9NpZiCtMmLKt++nJTa7buGumsEUiGaZ8i1nmrOV2/V zVvI7rBxy3SqOqZd9NQ== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX0/OXZ0I0elku 8GR+kV89x+STuv3TGHUtJzk3FspeAtfLZVe/TcGFtK9bzhdCwPXMEDwJKEHrdEm3JKFqRzNHpPN OkQ6LQ2qiHZa6IUv7kWsC69RRRByYlk= X-Proofpoint-GUID: 6_RY5lNTCb7rOE1yT-HNhpwa2fOiYfe5 X-Authority-Analysis: v=2.4 cv=TdOmcxQh c=1 sm=1 tr=0 ts=6a35c9f0 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=OF6xqQKflNrgTLtdKXcA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 impostorscore=0 spamscore=0 phishscore=0 malwarescore=0 clxscore=1015 suspectscore=0 bulkscore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190221 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910051695158500 Replace pcycle set stubs with real implementations that distribute cycle count changes across all active threads. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu_helper.c | 43 ++++++++++++++++++++++++++++++++++--- 1 file changed, 40 insertions(+), 3 deletions(-) diff --git a/target/hexagon/cpu_helper.c b/target/hexagon/cpu_helper.c index bb991a671e8..64c5746c6d9 100644 --- a/target/hexagon/cpu_helper.c +++ b/target/hexagon/cpu_helper.c @@ -56,17 +56,54 @@ uint32_t hexagon_get_sys_pcycle_count_low(CPUHexagonSta= te *env) =20 void hexagon_set_sys_pcycle_count_high(CPUHexagonState *env, uint32_t val) { - g_assert_not_reached(); + uint64_t old; + + g_assert(bql_locked()); + old =3D hexagon_get_sys_pcycle_count(env); + old =3D deposit64(old, 32, 32, val); + hexagon_set_sys_pcycle_count(env, old); } =20 void hexagon_set_sys_pcycle_count_low(CPUHexagonState *env, uint32_t val) { - g_assert_not_reached(); + uint64_t old; + + g_assert(bql_locked()); + old =3D hexagon_get_sys_pcycle_count(env); + old =3D deposit64(old, 0, 32, val); + hexagon_set_sys_pcycle_count(env, old); } =20 void hexagon_set_sys_pcycle_count(CPUHexagonState *env, uint64_t val) { - g_assert_not_reached(); + CPUState *cs; + uint64_t total; + int num_threads; + int64_t delta, per_thread, remainder; + + g_assert(bql_locked()); + total =3D hexagon_get_sys_pcycle_count(env); + + /* Count active threads */ + num_threads =3D 0; + CPU_FOREACH(cs) { + num_threads++; + } + g_assert(num_threads > 0); + + /* + * Distribute the delta evenly across all threads. + * Any remainder goes to the calling thread. + */ + delta =3D (int64_t)(val - total); + per_thread =3D delta / num_threads; + remainder =3D delta - per_thread * num_threads; + + CPU_FOREACH(cs) { + CPUHexagonState *thread_env =3D cpu_env(cs); + thread_env->t_cycle_count +=3D per_thread; + } + env->t_cycle_count +=3D remainder; } =20 static void hexagon_resume_thread(CPUHexagonState *env) --=20 2.34.1 From nobody Sun Jul 26 12:31:36 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=1781910321; cv=none; d=zohomail.com; s=zohoarc; b=hW7KNl56iI9WbeYm/3Qa3B1HzdxuPympmZRTtcPk6EslDaEohaJ6qTdZhBkduxTvBj/xPQW77So+HTNz0In3t2fl17Mjo8bATTTh5mzcJ7LXJPTtDD04DILgsJjdru27/HqLJ1j/HXvN6V3vJhI5UJlRUlkoH0kQzlRHB+MJzeI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910321; 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=RwPVW3CwUQS2/lnObn+K7hYU+7Hhy6ohC8oxC7MFC5M=; b=Fv686gDgtzmFTE4LHwMxbhbXDzNgeJkhEbgeKmvGo+mg7hs8LoGz2L4c8LKX23qKnsDLM46YRxnTva+t5rt9YjbG/vrjyE5kUAfUj55P+eMPLsRZ1NcI1K0raF/sHb44rBF6UxXX4edR9kYNMQC/8n192KoalBWQMpAWjBgEgyQ= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781910321989232.0776790313181; Fri, 19 Jun 2026 16:05:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiCQ-00034K-Q1; Fri, 19 Jun 2026 19:00:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiC7-0002K8-GB for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:00:16 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiC5-0001fn-Kl for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:00:15 -0400 Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLY2JY2933379 for ; Fri, 19 Jun 2026 23:00:02 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ew5qsa2wj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:00:02 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30c13bb8ca9so1225473eec.0 for ; Fri, 19 Jun 2026 16:00:02 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.15.59.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 15:59:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= RwPVW3CwUQS2/lnObn+K7hYU+7Hhy6ohC8oxC7MFC5M=; b=SskkKHaViyHzvbZy xnX07d/cfJihTpher3Xd4A0AxnD001muO0ZBDJhq91EosDxufRGLj164SFTyPeHG 22LQgiGoYdhkBk6cXCEbEN+1JHIClcI8rChFrLMdrZ5kQBclLQWHSjI6NAmiJlQh m6eWhjMApy0UmX1EhuN2OExQONXx+Qb4ehdQiiMXrWjEbAZZBkgKucdFPA154IUU DfhJaGGRTlHdPL4rEtllYm/vvxRmX/R7jQMwc37OTGk5j3I+sT5voHE2O0bXykWm kb06ogdOeI7xD+EJ2na6fNj0OobDgA+c6s6AQlWSrGERct4tmUKAKY0+1WNTQxCR oWNmVw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781910001; x=1782514801; 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=RwPVW3CwUQS2/lnObn+K7hYU+7Hhy6ohC8oxC7MFC5M=; b=iINh14CV8G0TtoMLDhEc5bAJZEHFpzpdt2tX3BWKpihqO9Z4nmD+XhYHSq+0LFOfRZ nmYQtT8ow0T9FHcwN+SM6d38MIaUWhA5DO97g5mHfi8ZhnHVxDrj3A1ZgDllyp8y1spc 8JQJEku+CUV77O1U/tlqQxhsOTYtcF/LPhQ1xFL5eFHx0p6cCraEpvxU4N9VJaJeSGj1 jSolqfTRpY6vBJdnFreF54pKnOtq/G/KF02pAH6KJbvaWYEH6BjpyELcrSh97/Hq7M/5 dAHc8ABqr9GHtWrgcUtd+Z/ELcTPBdhsXb+lnPqhjRuya3117Z8xl2AJuewoTshak9+G RFzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781910001; x=1782514801; 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=RwPVW3CwUQS2/lnObn+K7hYU+7Hhy6ohC8oxC7MFC5M=; b=GBmtGUADgzjNKHrBadRyq498DGPK3awq5mmYORiwTHOSCZMzzO7W9zOe6KpC4nu5px U+q3cR++08F49xK+VLvwG/H5YBzI+sNOfk0gMR8eelPoP7adDfrijONThw5fkKOfSa5l UNlpRXxidcpPYy3vO2CL6GGMkSYwWLh9u3VTkjbr1Zjd0pjd9rv2cNc8itxWF6AmT3YG a0oMZGnxUpQTWg7cwVmKvdUcLV9Et4ikUvsKackOVpiz4BMLXs1c2aNZlQJS4QPZA1ME 5WpSkofB44XUFj5pt465vy88cdgjDOBY5rbEB7h9xsZyWXhGFsgUGExiZ3jKoTQd6dTb fnrQ== X-Gm-Message-State: AOJu0YxZsbm405YTpkeZAa8Ut1huCsYE8WQbMQea49fwTtbt/GkSknrK MCcppLzwf2iXsfcWGG2atg4TNSxkvEDj3bSxb6YAwvPR3rx9xn2oIVga1nquXzorFSlX7jFsI27 gS8otq2ES3Dr4KozPX1TXRPuyodEz7dUSSWKi8gcJGYSQXZcPu26Hj9XFCUSkBjOOTg== X-Gm-Gg: AfdE7cnxSQ32V8WRktaYlkj5ppwWRMPOAGxel4Mc3CisWK3wr5QVPdFdbZjYOux3QGf mKEzAx/fGpV3i8btjnZ0vUG5TE1ixpH9TkO6UQN5XcZAjxXFINQTNkRH7I7YOJ3TjUSaS2ZH+Pg NOwiom9sKAz0EyXlX529nuB8YUdhDml4LSpqnxb+/dfbLNv+w3zzYC+ZctpjHstbmFQRqjueLbs M8DW+O9iGESBNFo5VPBJ1EN2eTkuVh7IrGVxu2JvSiwHTdKE4UcRHdnSaWW2UQUZLqqKXSBRsIf jQ2lZSXGeCJ2XmxeF06NEKwG2fvr8yMkhxD8GE5AHXV3xh3j377BM6hyJJIeEhsP3ad4kYQPNIx Yoifczb+oHPVb9J+jJ1ZrSvF/IiOCajTzGsfFJkb4RjXGH8ryRnkJoXJibrk= X-Received: by 2002:a05:693c:2d8f:b0:30b:eb27:d415 with SMTP id 5a478bee46e88-30c070edf73mr3481260eec.22.1781910001459; Fri, 19 Jun 2026 16:00:01 -0700 (PDT) X-Received: by 2002:a05:693c:2d8f:b0:30b:eb27:d415 with SMTP id 5a478bee46e88-30c070edf73mr3481252eec.22.1781910000917; Fri, 19 Jun 2026 16:00:00 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 32/74] target/hexagon: Add cpu modes, mmu indices, next_PC to state Date: Fri, 19 Jun 2026 15:58:29 -0700 Message-Id: <20260619225911.159473-33-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX8sLq+FBZGvjR HfbJHfO2LFjYevVnT0Oq8pULP0en6+qisXXHHLEICcVuagBsk/bdzCqNZMawSt47SXwxGiW0W+7 +OtYtdevPRVtTDNGbKybAhPkUSTAzr26LV2aSdm7Wg3qXzB5XEBpqzq8qnDWAv3xOxjkgix6TBM GSMVkkRXyPOotH3hx61L3ShEcdMn1pRghia5OjQG8/qmeuiBXHCmA000Qje8ASDCoA/R07+EXjC Yv4JyP1iSF295+T9+o/m9eAceittcEH0Jf1WjuQwjkFMHWSBfVR7+oxtw+1c+ovprYknixiSzqE oocDrNwS1ukNmA4tGgdLdGAfshZKiAdQ0KD8PtWlDbSUN0vqZL3ftuxMsb05+q5m7CbO6gkUCFl XwvGbGnVeATjgYXCKilBMiv9wJUmIF9ZMItIs8373cEmaVpeUwnQE84Q2B7oPUIgxviHG72ld1v z/lHbKA6KTYTpcbUGQA== X-Authority-Analysis: v=2.4 cv=M9R97Sws c=1 sm=1 tr=0 ts=6a35c9f2 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA: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=StfCoqezVcLOyubjZekA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: aJMFyXr1W_wJS3PLRiiBwaXyddK1GFLI X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX5RxGao1OIH9m 6wz3mFo4hiYKnDdEVn47X15ztTqESiAQV6VR92PP1sYdvhvxnW3jgVUr7xlXIaIfSBG66Ymf0Nx 1Du91u95JtvCxPHLLQRWlxGEBt3b+b8= X-Proofpoint-GUID: aJMFyXr1W_wJS3PLRiiBwaXyddK1GFLI X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 malwarescore=0 bulkscore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190221 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910322533158500 From: Brian Cain Add cpu execution mode (user/supervisor/guest), MMU index, and next_PC to DisasContext and translation state. Declare the MMU_INDEX bit field in TB_FLAGS and use it to propagate the mmu index into translations. Reviewed-by: Taylor Simpson Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 22 +++++++++++++++++++++- target/hexagon/cpu.c | 1 + target/hexagon/translate.c | 2 +- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index ddf6da78c18..7ba1d3047df 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -49,8 +49,26 @@ #define VSTORES_MAX 2 =20 #define CPU_RESOLVING_TYPE TYPE_HEXAGON_CPU +#ifndef CONFIG_USER_ONLY +#define CPU_INTERRUPT_SWI CPU_INTERRUPT_TGT_INT_0 + +#define HEX_CPU_MODE_USER 1 +#define HEX_CPU_MODE_GUEST 2 +#define HEX_CPU_MODE_MONITOR 3 + +#define HEX_EXE_MODE_OFF 1 +#define HEX_EXE_MODE_RUN 2 +#define HEX_EXE_MODE_WAIT 3 +#define HEX_EXE_MODE_DEBUG 4 +#endif + +#define MMU_USER_IDX 0 +#ifndef CONFIG_USER_ONLY +#define MMU_GUEST_IDX 1 +#define MMU_KERNEL_IDX 2 + +#endif =20 -#define MMU_USER_IDX 0 =20 #define HEXAGON_CPU_IRQ_0 0 #define HEXAGON_CPU_IRQ_1 1 @@ -112,6 +130,7 @@ typedef struct CPUArchState { uint32_t threadId; uint64_t t_cycle_count; #endif + uint32_t next_PC; target_ulong new_value_usr; =20 MemLog mem_log_stores[STORES_MAX]; @@ -164,6 +183,7 @@ struct ArchCPU { #include "cpu_bits.h" =20 FIELD(TB_FLAGS, IS_TIGHT_LOOP, 0, 1) +FIELD(TB_FLAGS, MMU_INDEX, 1, 3) FIELD(TB_FLAGS, PCYCLE_ENABLED, 4, 1) =20 G_NORETURN void hexagon_raise_exception_err(CPUHexagonState *env, diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 0773ef8fe79..626100d43fd 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -307,6 +307,7 @@ static void hexagon_cpu_reset_hold(Object *obj, ResetTy= pe type) memset(env->t_sreg, 0, sizeof(uint32_t) * NUM_SREGS); memset(env->greg, 0, sizeof(uint32_t) * NUM_GREGS); env->wait_next_pc =3D 0; + env->next_PC =3D 0; #endif env->cause_code =3D HEX_EVENT_NONE; } diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index ed96d9a66b3..ce5bbe92d5d 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -988,7 +988,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 Sun Jul 26 12:31:37 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=1781910244; cv=none; d=zohomail.com; s=zohoarc; b=DpN7JJ+xE/GTvdi7g5UCO7e8YHHnrBaJ+Udwd6DL2JTS+vR89LJ+yHjwfEBahndm3Ok/iQk9qGKaGLa8hBbQW/dhum0/0EnCpgOegDidaZb9eTkdQW/59xR0Qg6Kl4MjuPY2eSpMcsY62I7Tt40R+p6SYlFTIgvWaNC+JEThWzQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910244; 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=T4QeLlBFUTpGlmsbriWoI9s9TWXslg2oBf/G9cVJFSw=; b=Vmw9D4sBPQtOmFhvMEeRTUWlatEy2wDluMoDR3d2Pbw7zVpCWQAFFkMr3Y7ne7h/OOYe+kCtF+ED84YdvqUSnOI3as53Ump8L6xVMFwGOZ77hy40036HFitxZSqc3ZNd/RL73M00ApGaaAudPyzdIpUneMrtV8IH7WMugfvaQ2Y= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781910244397105.91647013347585; Fri, 19 Jun 2026 16:04:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiCQ-00030g-E3; Fri, 19 Jun 2026 19:00:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiC8-0002Kf-OS for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:00:16 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiC6-0001lF-RP for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:00:16 -0400 Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLXprU2933183 for ; Fri, 19 Jun 2026 23:00:03 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ew5qsa2ws-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:00:03 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c1f6c5559so530714eec.0 for ; Fri, 19 Jun 2026 16:00:03 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.16.00.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:00:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= T4QeLlBFUTpGlmsbriWoI9s9TWXslg2oBf/G9cVJFSw=; b=IeySzHzlAmnEdQXM RklJB91J2USaguleIO8GNgZWj5Graz4Idf+kIb/kphR9BEn+RaXyD8ZmzU+ymYql y34mMI69TfDUY6u5nM9JoIb6zPJWSOh2yxCcAxNjSQaGwju2XvZMTRpHXlB+fmAm LzfeA8o1c04cwMcA2XYAAhioOKUH4ANzXlmpta2xx4DcZ6o6TttmFIOCBtdiKnsN YtbpJ9fkfqPRr1CnDoG+RY8XqF4Ijsk4ZcvNpASMab0+pRtsmg+TPUS1OZ/UfDo8 0pC2TslvjaYCgrzgp6p5gKleuAUxBCcFyK9jqNHvxXkF83TdBy4Xh5u/4jVuhgBL S0DpZw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781910003; x=1782514803; 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=T4QeLlBFUTpGlmsbriWoI9s9TWXslg2oBf/G9cVJFSw=; b=D1kDsvknw8yJwvsHir2FH7uZd2SHpGm4wGUIN0jLMNNzW/LSLo/nZ3gvAr2PmLeuWi J8aF4UIgdpwuvSEreOkkJI0xW52t7WhlbTtNptzxxViDvMMCotSYynQDp1t5eIapTPb2 lwuZNDeTh4UmFT/4zgeP6adMGcSFKu3wiKIppyjo9UqW4F9sqN+KDORe1iX8ywQ856// SUpoD9mchZ8pNTTd2gGiRuXn9/DWp0+I5cxnBwEu22uHTrAxYnCz6T5yjq3vAb3l+y7S YNb4XiLlagVLaA5rusCm2uRieJVMwqijwyT7u1k0HuYU9Ljl48gvkFztdOu0z/Uw6xKN srlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781910003; x=1782514803; 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=T4QeLlBFUTpGlmsbriWoI9s9TWXslg2oBf/G9cVJFSw=; b=IlhdKrwaOg3nUSLR4uEdJe9m7fd2mVYfdYB9i0J9YlvurwfXIyKVOSryIuaFTNJmD1 YjoPReYuM774sZQNO/fetdMbJFTCW1zUz1G2kErVDLQpa7W0ZyHOZ8tVoZ2H4KqdtxYY w24QNWqQSzE2XazvCMX5B6tcMo1ye98NlbkmbYJq8UNS5IqVoMs+LBJ5EnJfsY/GJ2ve jeqi5jw9QywzqmCu3qzN9+gCSl0d8mQv9y9sdE/goNq90GcZaDCXUuFMcNnn4lP8X01l nQxySRGff1meb+uujrEJk4Bki5bkQMmxCCSnPIZbCZCGCHtvcHIcvwzch1oN/gkwtvF9 aSzg== X-Gm-Message-State: AOJu0YzHeF66+sc/7WOVoNB2eu60ayB+o7Ws9a4CIKU6ETbFm+3PQ+KU LtX1UPv6p06m2MdCS7Usbi+QUI0MoJcOiRocCbERUd6NbhSG8p/vv9n3Q3ugcVWtJiDoBFZjvWK 0A3RvvQNBTeS+w/m8w+SyTRiR2t4VSpJc9e0Qn3UxCDySDYIM/Z9bqPTE4slfllDCFQ== X-Gm-Gg: AfdE7cnUqX7lIdHGdyQGB8bt0ytzTZNI1Ny/kYy4757ajDK5c+10Hq4Yr3HqglGFFtx nHXueZTJHMib4r6G6GVChaTXyXFLqgIOVbfDJlQZymoSG4Qkpo5aGM6GHXGUcIBsZERDtyriZqC EBYgebaSpDm/49UgzHvFkNuhym+w2gDEBDfPsp87p+gARUxE1bg2iWSneQ4qewBw2EeZ4YDdDch L8SgcrBrD6kSrIkXsKRAnDq5NtyRXp/msKUso7y/aVD3BBzRHMgdix4HyFOATq9Eg9LqV7MhYpK 4Q7oKQ7yce5O3er0k9W6dOdxhEpT2/ZtgjyYnVz1EKSGnnzgH2vAN54vHnb/EwIIGEMT27daFGc dE8qNfyf7NoMzxtFeMvOznYRtR9h+E0zlX1TORezdIV/f7l8GSaAqLcqxfqA= X-Received: by 2002:a05:7300:1905:b0:30b:f4e3:a2b0 with SMTP id 5a478bee46e88-30c07156f4amr3412109eec.21.1781910002757; Fri, 19 Jun 2026 16:00:02 -0700 (PDT) X-Received: by 2002:a05:7300:1905:b0:30b:f4e3:a2b0 with SMTP id 5a478bee46e88-30c07156f4amr3412093eec.21.1781910002255; Fri, 19 Jun 2026 16:00:02 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Pierrick Bouvier Subject: [PULL 33/74] hw/hexagon: Declare hexagon TLB device interface Date: Fri, 19 Jun 2026 15:58:30 -0700 Message-Id: <20260619225911.159473-34-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX/hExlftVjjuB rsRleJGVd1qmg6S+X7xGipmlkRcYyhmEuPJAF4Rk13jlXWeqEM4BU7H9e4LW+iHQ/Yfd45TEA8+ 8pFXMf8rqfGapTUoIzhTQN12FZneaeER96A4csXk44xsR7iZOT6dwStYSVTM7gfK9BPobwtM9+f 3NO/p+iLEiaYrhA2RGWJ/pJzn90gyCtzZ21Cp7mKVwY6dsH1IFy/XvxWnabaH5YTsYK9xm4eNpQ ff1CxuDQvafYNTA7kZPBJxwKSIDuqCGKN8bl8mv0eLMMwwcxs3HzCvVwoC1UOL8ATbeV5t4FSS8 14j09wkL2Mfrqjy5VBCBnQaqMnX1q7e1G5LpzmCZF0FC4+tWz1qAXE15GD/perNgHqdf3tv81gi 2dDE2QcALKuFhoT0zWO7HXqe/PrhkFHgXnyPn3Ch2EBvZkpGDrwLTxIn/o3UqFY81NbVa0lUEHq A53HZXDexrPG7GduBtQ== X-Authority-Analysis: v=2.4 cv=M9R97Sws c=1 sm=1 tr=0 ts=6a35c9f3 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=EUspDBNiAAAA:8 a=p_7iY2stt2bzV07uMJkA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 X-Proofpoint-ORIG-GUID: ZIWWDuJzCBx9WbiqEIkG1Pqmj4EaMs9_ X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX+aptZY/YuX6c JxoAjMTkTXoEFBF7t+sZQksD4PMQJFeMcTu4gIGL3V5GzanbjjY3OjUsH7LVDf0nHKKbbTfzxO+ DH6gj+vyOi1ZC3gJbIdFSXDvLoDzLdE= X-Proofpoint-GUID: ZIWWDuJzCBx9WbiqEIkG1Pqmj4EaMs9_ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 malwarescore=0 bulkscore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190221 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910246228158500 Add the hexagon TLB device interface header. Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- include/hw/hexagon/hexagon_tlb.h | 46 ++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 include/hw/hexagon/hexagon_tlb.h diff --git a/include/hw/hexagon/hexagon_tlb.h b/include/hw/hexagon/hexagon_= tlb.h new file mode 100644 index 00000000000..90d9ed84043 --- /dev/null +++ b/include/hw/hexagon/hexagon_tlb.h @@ -0,0 +1,46 @@ +/* + * Hexagon TLB QOM Device + * + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HW_HEXAGON_TLB_H +#define HW_HEXAGON_TLB_H + +#include "hw/core/sysbus.h" +#include "qom/object.h" +#include "exec/hwaddr.h" +#include "exec/mmu-access-type.h" +#include "monitor/monitor.h" +#define TYPE_HEXAGON_TLB "hexagon-tlb" +OBJECT_DECLARE_SIMPLE_TYPE(HexagonTLBState, HEXAGON_TLB) + +struct HexagonTLBState { + SysBusDevice parent_obj; + + uint32_t num_entries; + uint64_t *entries; +}; + +uint64_t hexagon_tlb_read(HexagonTLBState *tlb, uint32_t index); +void hexagon_tlb_write(HexagonTLBState *tlb, uint32_t index, uint64_t valu= e); + +bool hexagon_tlb_find_match(HexagonTLBState *tlb, uint32_t asid, + uint32_t VA, MMUAccessType access_type, + hwaddr *PA, int *prot, uint64_t *size, + int32_t *excp, int *cause_code, int mmu_idx); + +uint32_t hexagon_tlb_lookup(HexagonTLBState *tlb, uint32_t asid, + uint32_t VA, int *cause_code); + +int hexagon_tlb_check_overlap(HexagonTLBState *tlb, uint64_t entry, + uint64_t index); + +void hexagon_tlb_dump(Monitor *mon, HexagonTLBState *tlb); + +bool hexagon_tlb_dump_entry(Monitor *mon, uint64_t entry); + +uint32_t hexagon_tlb_get_num_entries(HexagonTLBState *tlb); + +#endif /* HW_HEXAGON_TLB_H */ --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781910328; cv=none; d=zohomail.com; s=zohoarc; b=Wvh0LkDIZeZ5tzvnoNPayfXQINjggEdq8XvAS+AdYLUKwzufrXRU55hFouhXJKgKCJRcc9SvGxVM1wFIoDnek2Ch4TYZGb6v2msclrsPKNW9zO1Q0O8FUUNF+jCSps+GqcVD9mC/hB0pTbUniLs8nXSgmj/GLpzvXfvbUAEBJSU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910328; 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=7mMKASCyM5y7fHIpILH7Fqqeizn/+r4LwxCWOb6jddk=; b=J8OY3xuPCapR4ObEcxG+mU0AE9NXZKAFV6oA5cSwtZSKBhnuvxvsPurH8toa6JeotaNspVlvnJMXIS01pcTK9APSHTtSxA3vi05xFZ1Vapf2bB5WQwIQ/0cjq1uLdaBKyO7XY71OpYmKXZoTjF8cjLeNAtcl/mdNtGPkDV0xn9I= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781910328369137.25781322782655; Fri, 19 Jun 2026 16:05:28 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiCR-0003Cy-K5; Fri, 19 Jun 2026 19:00:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiCB-0002Oj-Dn for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:00:23 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiC8-0001rt-Ip for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:00:19 -0400 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLYQ4V1337250 for ; Fri, 19 Jun 2026 23:00:05 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evp67557n-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:00:05 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c0c489e72so971606eec.0 for ; Fri, 19 Jun 2026 16:00:04 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.16.00.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:00:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 7mMKASCyM5y7fHIpILH7Fqqeizn/+r4LwxCWOb6jddk=; b=Q5a4X4ZrYsfth8P7 YALgZnnV2Vm1O/VdAQtTfpjU3FWx/Zm/VJzWNlYThHZFI86YuSAmII44IDJeeOSQ KCisH/5jgn8rqaD/CtInkR/SWvKp+FFkGoGdCBsxwJkVAaTH+RVDy5P86h7UV+ox srEjdYVCxM+Qm5Z3yWH9A0RSpz6Xy0Gog8AAVkZtC0An7ZWgHrgiYqyLNfBDm1gA /K8gTYN5UwHsvCLcCLco9E1vbSaeDk0Zl7VGgoL/d0Dw6UWpOgP5rlUv41/s96pM Sjx82JH4SLMDwKNOHSV12DRAlNVQRiSzmBbTsvDpxJKLvNh1VwANGkjxCODxevsA KbfaYw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781910004; x=1782514804; 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=7mMKASCyM5y7fHIpILH7Fqqeizn/+r4LwxCWOb6jddk=; b=T6/i5mw1rGwdp03s8831BTpCBJdNnIovPx5Z/KJH9nNkDIcEFkb3e6XZxNXLmnQo6Q EfkVMeKWohXl7YMt/V6PtTX091mxuQ6FBLQTUl5E+1lXQefBLRtnlkTlDHa/lG7uVHa2 DRhx4dCjLRbApOQOY2mfFVyXAZw1CEU5Bu/7fZQw4PgryrcOVs1fc1Vb9JBsVTrXKhRO 4H51BeZt8w8P6JF/5eOfE8hrr72viANgbt4vf+IjOBiAoIbZqNh3zjLhcvVgIpNY6LWp +DC1+a1z2jdsJj6NjoPoOXcvXedRQFoyivzCq/FUzmrO9vi2qqCAKX6Yi+vYSWvKutGc TJgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781910004; x=1782514804; 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=7mMKASCyM5y7fHIpILH7Fqqeizn/+r4LwxCWOb6jddk=; b=oHQGyTnT85a1LO3j6Ls7GGCnfNpTMmvh7AGcKfWBG7EyJWs2pVH+JOcmTHdrj19q+V j80pG/O42AjJxjVRzGu4A+oNo6cSZ0XIFrR8IpyP6DjQ8SABfWZBy8NFgklyHG/mkEA7 Nk+pQRJI/suQCjdXZRJ747cunMVNRtcjJC9NQh2IRxyNeF/MI84Q6GRKI4iefEIuRKxt KKKLEeNLzsmE4QFn0tea7RBT5h7xoE4buBWnEDvfvePsvnxqXybLDIirV19f7fc04/hB 0OTU97biJ6zxDwBNWvByJrv4tps88N9yw7tSdeRgURbMIzauAb9DgjrFCPpSDuPzGAlk kbxg== X-Gm-Message-State: AOJu0YzDaX8w4A5R8mV5kISMKqyjbH8fGWTvEUasvumgpyVZGXzymofZ kImPOUjO+AB+vG6+twWUSlCIAUrY4o5vJXI8Xt2KtpDdoLjIDZwG4Ji8MbeCJCxvBfoPTN3qDWA MUNdgUhxcSkqGhTbXbEQssNtix7EMMSs3sfsJ0unseo9iG7VSqNnZowxdrg0LE0i07w== X-Gm-Gg: AfdE7cmd13SeBIHqJ5YUbmVLyaVd6Fvs6IAaLjQcm1aVjqs4AF4/10ih5hIP+tZFzzG 2hV2rDqVLMOlUxE/Fhn11P5DgeXxOwQJQ7KvtC/Q5WusziPDb6Z3yUOkF6TwNJ4YfFmQY3PwnoW Ryk2mAo+LvntemkPpCP2XyfX20EE7OyEuOcY6ZVGO4FI2EZu9Q5vQIgszXZVouOwVhrv0NfAay9 71viyR65XGzE8rdIRBgyN+leWZE6xMqXhkMhRV46Q8li4yZHnSnf5cJNOvGeSgJuwcgfg1EEBxz x7SxcKGcuutu6ZUHmJSZABmypStdorH4iNsxaUCvch63jaHk70rYwDr79qk0hW19qpYLyQUzxMe ERi53XVjtEYTlh7v01FsrxM6uCPXtreFZH5VrrN7xb+G866ZrUfPK7ueZIhA= X-Received: by 2002:a05:693c:2d8f:b0:304:5a9c:644c with SMTP id 5a478bee46e88-30c06d8dc28mr3515012eec.15.1781910004166; Fri, 19 Jun 2026 16:00:04 -0700 (PDT) X-Received: by 2002:a05:693c:2d8f:b0:304:5a9c:644c with SMTP id 5a478bee46e88-30c06d8dc28mr3514998eec.15.1781910003559; Fri, 19 Jun 2026 16:00:03 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Pierrick Bouvier Subject: [PULL 34/74] target/hexagon: Update TARGET_PAGE_BITS, stubs for modify_ssr/get_exe_mode Date: Fri, 19 Jun 2026 15:58:31 -0700 Message-Id: <20260619225911.159473-35-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: LHU-3cIxz7BxaBihW1heH7gtk3Z9eV3U X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX7kSb2fJZrtqa oU37Nz69jMOJqScfdqQ4aRmVfRGpEvEVj+n8FXNyC6tbFFIbWvfHU6Wpkvx1BbYg9cE4yz0e+kD IvDyvS6BxOV/f7IgVLW5nWO/Eql/OeO+2pf5D42WPn7IhNF+Q5hVD88HrVtrhz7Y0rvKRv7mK1K arEZWlH2HREO5YZAqAd2hGAljQHtPYqLAQQF0QYDyG2YTwU+MzRqOuFS5V0ZYxHxBSfZrvUaoNR cKHz64UCGqjmKrDAUg7LlifXAOjP9AWUOw0NF75Vt90wYIF2Dmc4C1ZgXb94bzKn1ljMM+FFxr8 FNfCbV5l520kDne+r1D1xyNan22S6+XiMk6YOT0T9J7w/5uLT/ebHHlRXR+ywcSyyolNnpXBbDP DjQ5J5i54xYc2aFWA3QgHgifMEwoIckHqyeLBYaM62tAVNCbwTw+z4K20Rz897/a5KU2DTzw/OK xWxBK943zX8mhzv4yqA== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfXxR7pbZLIEXOR /JpODaNLLImepjHUKg45HnWDarXFPpXg+BAVVtU/nJOsyRyz5R8mPMSa07fSiJPVswe8FV18eq6 s7rGpkLeJFDvHU+H778kg2klQuuT2ho= X-Proofpoint-GUID: LHU-3cIxz7BxaBihW1heH7gtk3Z9eV3U X-Authority-Analysis: v=2.4 cv=TdOmcxQh c=1 sm=1 tr=0 ts=6a35c9f5 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=1eS9DRoYkSOUxsN_X7IA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 impostorscore=0 spamscore=0 phishscore=0 malwarescore=0 clxscore=1015 suspectscore=0 bulkscore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190221 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910331042158500 Add hex_mmu.[ch], cpu mode helpers, and additional includes/stubs that integrate the TLB device with the CPU model. Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- target/hexagon/cpu-param.h | 2 +- target/hexagon/cpu.h | 21 +++ target/hexagon/hex_mmu.h | 26 ++++ target/hexagon/internal.h | 9 ++ target/hexagon/sys_macros.h | 3 + target/hexagon/cpu.c | 36 +++++ target/hexagon/hex_mmu.c | 270 ++++++++++++++++++++++++++++++++++++ 7 files changed, 366 insertions(+), 1 deletion(-) create mode 100644 target/hexagon/hex_mmu.h create mode 100644 target/hexagon/hex_mmu.c diff --git a/target/hexagon/cpu-param.h b/target/hexagon/cpu-param.h index 1f0f22a7968..bfe9a868d63 100644 --- a/target/hexagon/cpu-param.h +++ b/target/hexagon/cpu-param.h @@ -18,7 +18,7 @@ #ifndef HEXAGON_CPU_PARAM_H #define HEXAGON_CPU_PARAM_H =20 -#define TARGET_PAGE_BITS 16 /* 64K pages */ +#define TARGET_PAGE_BITS 12 /* 4K pages */ =20 #define TARGET_VIRT_ADDR_SPACE_BITS 32 =20 diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 7ba1d3047df..dbdc456d732 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -27,6 +27,9 @@ #define SREG_WRITES_MAX 2 #endif =20 +typedef struct HexagonTLBState HexagonTLBState; +typedef struct HexagonGlobalRegState HexagonGlobalRegState; + #include "cpu-qom.h" #include "exec/cpu-common.h" #include "exec/target_long.h" @@ -39,6 +42,7 @@ #error "Hexagon does not support system emulation" #endif =20 + #define NUM_PREGS 4 #define TOTAL_PER_THREAD_REGS 64 =20 @@ -47,10 +51,13 @@ #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 #define CPU_INTERRUPT_SWI CPU_INTERRUPT_TGT_INT_0 +#define CPU_INTERRUPT_K0_UNLOCK CPU_INTERRUPT_TGT_INT_1 +#define CPU_INTERRUPT_TLB_UNLOCK CPU_INTERRUPT_TGT_INT_2 =20 #define HEX_CPU_MODE_USER 1 #define HEX_CPU_MODE_GUEST 2 @@ -67,6 +74,12 @@ #define MMU_GUEST_IDX 1 #define MMU_KERNEL_IDX 2 =20 +typedef enum { + HEX_LOCK_UNLOCKED =3D 0, + HEX_LOCK_WAITING =3D 1, + HEX_LOCK_OWNER =3D 2, + HEX_LOCK_QUEUED =3D 3 +} hex_lock_state_t; #endif =20 =20 @@ -128,6 +141,10 @@ typedef struct CPUArchState { =20 /* This alias of CPUState.cpu_index is used by imported sources: */ uint32_t threadId; + hex_lock_state_t tlb_lock_state; + hex_lock_state_t k0_lock_state; + uint32_t tlb_lock_count; + uint32_t k0_lock_count; uint64_t t_cycle_count; #endif uint32_t next_PC; @@ -178,6 +195,10 @@ struct ArchCPU { bool lldb_compat; target_ulong lldb_stack_adjust; bool short_circuit; +#ifndef CONFIG_USER_ONLY + HexagonTLBState *tlb; + uint32_t htid; +#endif }; =20 #include "cpu_bits.h" diff --git a/target/hexagon/hex_mmu.h b/target/hexagon/hex_mmu.h new file mode 100644 index 00000000000..4f556c715a9 --- /dev/null +++ b/target/hexagon/hex_mmu.h @@ -0,0 +1,26 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HEXAGON_MMU_H +#define HEXAGON_MMU_H + +#include "cpu.h" +#include "monitor/monitor.h" + +extern void hex_tlbw(CPUHexagonState *env, uint32_t index, uint64_t value); +extern uint32_t hex_tlb_lookup(CPUHexagonState *env, uint32_t ssr, uint32_= t VA); +extern void hex_mmu_on(CPUHexagonState *env); +extern void hex_mmu_off(CPUHexagonState *env); +extern void hex_mmu_mode_change(CPUHexagonState *env); +extern bool hex_tlb_find_match(CPUHexagonState *env, uint32_t VA, + MMUAccessType access_type, hwaddr *PA, int = *prot, + uint64_t *size, int32_t *excp, int mmu_idx); +extern int hex_tlb_check_overlap(CPUHexagonState *env, uint64_t entry, + uint64_t index); +extern void hex_tlb_lock(CPUHexagonState *env); +extern void hex_tlb_unlock(CPUHexagonState *env); +void dump_mmu(Monitor *mon, CPUHexagonState *env); +#endif diff --git a/target/hexagon/internal.h b/target/hexagon/internal.h index 33d73ed18d1..4338914efb5 100644 --- a/target/hexagon/internal.h +++ b/target/hexagon/internal.h @@ -36,6 +36,15 @@ void G_NORETURN do_raise_exception(CPUHexagonState *env, uint32_t PC, uintptr_t retaddr); =20 +#define hexagon_cpu_mmu_enabled(env) ({ \ + HexagonCPU *cpu =3D env_archcpu(env); \ + cpu->globalregs ? \ + GET_SYSCFG_FIELD(SYSCFG_MMUEN, \ + hexagon_globalreg_read(cpu->globalregs, \ + HEX_SREG_SYSCFG, (env)->threadId)) : \ + 0; \ +}) + #ifndef CONFIG_USER_ONLY extern const VMStateDescription vmstate_hexagon_cpu; #endif diff --git a/target/hexagon/sys_macros.h b/target/hexagon/sys_macros.h index e8bbeadfdfb..ade57290166 100644 --- a/target/hexagon/sys_macros.h +++ b/target/hexagon/sys_macros.h @@ -141,6 +141,9 @@ #define fDCINVIDX(REG) #define fDCINVA(REG) do { REG =3D REG; } while (0) /* Nothing to do in qem= u */ =20 +#define fSET_TLB_LOCK() hex_tlb_lock(env); +#define fCLEAR_TLB_LOCK() hex_tlb_unlock(env); + #define fTLB_IDXMASK(INDEX) \ ((INDEX) & (fPOW2_ROUNDUP( \ fCAST4u(hexagon_tlb_get_num_entries(env_archcpu(env)->tlb))) - 1)) diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 626100d43fd..73aca0a4217 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -23,9 +23,17 @@ #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" +#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 ObjectClass *hexagon_cpu_class_by_name(const char *cpu_model) { @@ -43,6 +51,11 @@ static ObjectClass *hexagon_cpu_class_by_name(const char= *cpu_model) } =20 static const Property hexagon_cpu_properties[] =3D { +#ifndef 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, qdev_prop_uint32, target_ulong), @@ -269,7 +282,11 @@ static TCGTBCPUState hexagon_get_tb_cpu_state(CPUState= *cs) } =20 #ifndef CONFIG_USER_ONLY + hex_flags =3D FIELD_DP32(hex_flags, TB_FLAGS, MMU_INDEX, + cpu_mmu_index(env_cpu(env), false)); hex_flags =3D FIELD_DP32(hex_flags, TB_FLAGS, PCYCLE_ENABLED, 1); +#else + hex_flags =3D FIELD_DP32(hex_flags, TB_FLAGS, MMU_INDEX, MMU_USER_IDX); #endif =20 return (TCGTBCPUState){ .pc =3D pc, .flags =3D hex_flags }; @@ -289,11 +306,15 @@ static void hexagon_restore_state_to_opc(CPUState *cs, cpu_env(cs)->gpr[HEX_REG_PC] =3D data[0]; } =20 + static void hexagon_cpu_reset_hold(Object *obj, ResetType type) { CPUState *cs =3D CPU(obj); HexagonCPUClass *mcc =3D HEXAGON_CPU_GET_CLASS(obj); CPUHexagonState *env =3D cpu_env(cs); +#ifndef CONFIG_USER_ONLY + HexagonCPU *cpu =3D HEXAGON_CPU(cs); +#endif =20 if (mcc->parent_phases.hold) { mcc->parent_phases.hold(obj, type); @@ -307,7 +328,14 @@ static void hexagon_cpu_reset_hold(Object *obj, ResetT= ype type) memset(env->t_sreg, 0, sizeof(uint32_t) * NUM_SREGS); memset(env->greg, 0, sizeof(uint32_t) * NUM_GREGS); env->wait_next_pc =3D 0; + env->tlb_lock_state =3D HEX_LOCK_UNLOCKED; + env->k0_lock_state =3D HEX_LOCK_UNLOCKED; + env->tlb_lock_count =3D 0; + env->k0_lock_count =3D 0; env->next_PC =3D 0; + + env->t_sreg[HEX_SREG_HTID] =3D cpu->htid; + env->threadId =3D cpu->htid; #endif env->cause_code =3D HEX_EVENT_NONE; } @@ -337,7 +365,15 @@ static void hexagon_cpu_realize(DeviceState *dev, Erro= r **errp) hexagon_hvx_gdb_write_register, gdb_find_static_feature("hexagon-hvx.xml")); =20 +#ifndef CONFIG_USER_ONLY + if (!HEXAGON_CPU(dev)->tlb) { + error_setg(errp, "hexagon cpu requires 'tlb' link property to be s= et"); + return; + } +#endif + qemu_init_vcpu(cs); + cpu_reset(cs); mcc->parent_realize(dev, errp); } diff --git a/target/hexagon/hex_mmu.c b/target/hexagon/hex_mmu.c new file mode 100644 index 00000000000..1c8ccec69ef --- /dev/null +++ b/target/hexagon/hex_mmu.c @@ -0,0 +1,270 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "qemu/log.h" +#include "qemu/main-loop.h" +#include "qemu/qemu-print.h" +#include "cpu.h" +#include "system/cpus.h" +#include "internal.h" +#include "exec/cpu-interrupt.h" +#include "cpu_helper.h" +#include "exec/cputlb.h" +#include "hex_mmu.h" +#include "macros.h" +#include "sys_macros.h" +#include "hw/hexagon/hexagon_tlb.h" +#include "hw/hexagon/hexagon_globalreg.h" + +static inline void hex_log_tlbw(uint32_t index, uint64_t entry) +{ + qemu_log_mask(CPU_LOG_MMU, + "tlbw[%03" PRIu32 "]: 0x%016" PRIx64 "\n", + index, entry); +} + +void hex_tlbw(CPUHexagonState *env, uint32_t index, uint64_t value) +{ + uint32_t myidx =3D fTLB_NONPOW2WRAP(fTLB_IDXMASK(index)); + HexagonTLBState *tlb =3D env_archcpu(env)->tlb; + uint64_t old_entry =3D hexagon_tlb_read(tlb, myidx); + + bool old_entry_valid =3D extract64(old_entry, 63, 1); + if (old_entry_valid && hexagon_cpu_mmu_enabled(env)) { + CPUState *cs =3D env_cpu(env); + tlb_flush(cs); + } + hexagon_tlb_write(tlb, myidx, value); + hex_log_tlbw(myidx, value); +} + +void hex_mmu_on(CPUHexagonState *env) +{ + CPUState *cs =3D env_cpu(env); + qemu_log_mask(CPU_LOG_MMU, "Hexagon MMU turned on!\n"); + tlb_flush(cs); +} + +void hex_mmu_off(CPUHexagonState *env) +{ + CPUState *cs =3D env_cpu(env); + qemu_log_mask(CPU_LOG_MMU, "Hexagon MMU turned off!\n"); + tlb_flush(cs); +} + +void hex_mmu_mode_change(CPUHexagonState *env) +{ + qemu_log_mask(CPU_LOG_MMU, "Hexagon mode change!\n"); + CPUState *cs =3D env_cpu(env); + tlb_flush(cs); +} + +bool hex_tlb_find_match(CPUHexagonState *env, uint32_t VA, + MMUAccessType access_type, hwaddr *PA, int *prot, + uint64_t *size, int32_t *excp, int mmu_idx) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t ssr =3D env->t_sreg[HEX_SREG_SSR]; + uint8_t asid =3D GET_SSR_FIELD(SSR_ASID, ssr); + int cause_code =3D 0; + + bool found =3D hexagon_tlb_find_match(cpu->tlb, asid, VA, access_type, + PA, prot, size, excp, &cause_code, + mmu_idx); + if (cause_code) { + env->cause_code =3D cause_code; + } + return found; +} + +/* Called from tlbp instruction */ +uint32_t hex_tlb_lookup(CPUHexagonState *env, uint32_t ssr, uint32_t VA) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint8_t asid =3D GET_SSR_FIELD(SSR_ASID, ssr); + int cause_code =3D 0; + + uint32_t result =3D hexagon_tlb_lookup(cpu->tlb, asid, VA, &cause_code= ); + if (cause_code) { + env->cause_code =3D cause_code; + } + return result; +} + +/* + * Return codes: + * 0 or positive index of match + * -1 multiple matches + * -2 no match + */ +int hex_tlb_check_overlap(CPUHexagonState *env, uint64_t entry, uint64_t i= ndex) +{ + HexagonCPU *cpu =3D env_archcpu(env); + return hexagon_tlb_check_overlap(cpu->tlb, entry, index); +} + +void dump_mmu(Monitor *mon, CPUHexagonState *env) +{ + HexagonCPU *cpu =3D env_archcpu(env); + hexagon_tlb_dump(mon, cpu->tlb); +} + +static inline void print_thread(const char *str, CPUState *cs) +{ + g_assert(bql_locked()); + CPUHexagonState *thread =3D cpu_env(cs); + bool is_stopped =3D cpu_is_stopped(cs); + int exe_mode =3D get_exe_mode(thread); + hex_lock_state_t lock_state =3D thread->tlb_lock_state; + qemu_log_mask(CPU_LOG_MMU, + "%s: threadId =3D %" PRIu32 ": %s," + " exe_mode =3D %s, tlb_lock_state =3D %s\n", + str, + thread->threadId, + is_stopped ? "stopped" : "running", + exe_mode =3D=3D HEX_EXE_MODE_OFF ? "off" : + exe_mode =3D=3D HEX_EXE_MODE_RUN ? "run" : + exe_mode =3D=3D HEX_EXE_MODE_WAIT ? "wait" : + exe_mode =3D=3D HEX_EXE_MODE_DEBUG ? "debug" : + "unknown", + lock_state =3D=3D HEX_LOCK_UNLOCKED ? "unlocked" : + lock_state =3D=3D HEX_LOCK_WAITING ? "waiting" : + lock_state =3D=3D HEX_LOCK_OWNER ? "owner" : + "unknown"); +} + +static inline void print_thread_states(const char *str) +{ + CPUState *cs; + CPU_FOREACH(cs) { + print_thread(str, cs); + } +} + +void hex_tlb_lock(CPUHexagonState *env) +{ + qemu_log_mask(CPU_LOG_MMU, "hex_tlb_lock: " TARGET_FMT_ld "\n", + env->threadId); + BQL_LOCK_GUARD(); + g_assert((env->tlb_lock_count =3D=3D 0) || (env->tlb_lock_count =3D=3D= 1)); + + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t syscfg =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_SYSCFG, + env->threadId) : 0; + uint8_t tlb_lock =3D GET_SYSCFG_FIELD(SYSCFG_TLBLOCK, syscfg); + if (tlb_lock) { + if (env->tlb_lock_state =3D=3D HEX_LOCK_QUEUED) { + env->next_PC +=3D 4; + env->tlb_lock_count++; + env->tlb_lock_state =3D HEX_LOCK_OWNER; + SET_SYSCFG_FIELD(env, SYSCFG_TLBLOCK, 1); + return; + } + if (env->tlb_lock_state =3D=3D HEX_LOCK_OWNER) { + qemu_log_mask(CPU_LOG_MMU | LOG_GUEST_ERROR, + "Double tlblock at PC: 0x%" PRIx32 + ", thread may hang\n", + env->next_PC); + env->next_PC +=3D 4; + CPUState *cs =3D env_cpu(env); + cpu_interrupt(cs, CPU_INTERRUPT_HALT); + return; + } + env->tlb_lock_state =3D HEX_LOCK_WAITING; + CPUState *cs =3D env_cpu(env); + cpu_interrupt(cs, CPU_INTERRUPT_HALT); + } else { + env->next_PC +=3D 4; + env->tlb_lock_count++; + env->tlb_lock_state =3D HEX_LOCK_OWNER; + SET_SYSCFG_FIELD(env, SYSCFG_TLBLOCK, 1); + } + + if (qemu_loglevel_mask(CPU_LOG_MMU)) { + qemu_log_mask(CPU_LOG_MMU, "Threads after hex_tlb_lock:\n"); + print_thread_states("\tThread"); + } +} + +void hex_tlb_unlock(CPUHexagonState *env) +{ + BQL_LOCK_GUARD(); + g_assert((env->tlb_lock_count =3D=3D 0) || (env->tlb_lock_count =3D=3D= 1)); + + /* Nothing to do if the TLB isn't locked by this thread */ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t syscfg =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_SYSCFG, + env->threadId) : 0; + uint8_t tlb_lock =3D GET_SYSCFG_FIELD(SYSCFG_TLBLOCK, syscfg); + if ((tlb_lock =3D=3D 0) || + (env->tlb_lock_state !=3D HEX_LOCK_OWNER)) { + qemu_log_mask(LOG_GUEST_ERROR, + "thread %" PRIu32 " attempted to tlbunlock" + " without 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"); + } + +} --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781910321; cv=none; d=zohomail.com; s=zohoarc; b=KY03VXDZEOr8CsKZCEWbToySSUfxteNZW3zUwOzY4+w7j19sSBa+yNCrUzOBe0ItEuz/acB4fTw8H0JM9Q3J+YHqD19jAXsMc6cs9pmUOSXwmYHmGdvd40WhyZZdyEtBCskPAkh6JH8fcT2UBb+eAG1CJawe0Myl9393Ptsq3ks= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910321; 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=ohgluABwS6D8saHfHv2eOLCkXGQOTd4JgFhw3pUO1aE=; b=YrfBZFSj9i+SyT2JoFKNWM2IBOb55xWvZV0kQXQ7HubZXwmJbgbfMN/KSTfQtU6l++8LRNOoUNCgAsHCJg2D/nc/bmqfI0ncvQDTq7OYFpDX2dSDXJuoZm8yiNfOXkAjqhF/uix0WZtQs0vf6c3YIxI+MRc3kKFdtKA/6k5NW3A= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781910321986946.2011007199615; Fri, 19 Jun 2026 16:05:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiCR-0003D0-Jf; Fri, 19 Jun 2026 19:00:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiCB-0002RL-QN for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:00:23 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiC9-0001sL-EH for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:00:19 -0400 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLXdvx1251243 for ; Fri, 19 Jun 2026 23:00:06 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ewbgp8n54-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:00:05 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30bc5f826f2so4610050eec.1 for ; Fri, 19 Jun 2026 16:00:05 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.16.00.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:00:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= ohgluABwS6D8saHfHv2eOLCkXGQOTd4JgFhw3pUO1aE=; b=UKuRGX9sBD/+zt4c REpcicQIm6X5+RypXEfbFibu3VJiqdb0xa9fLJVu7XiiyPvLiXtRhsNgMq5zfZpi 1llH98LB8Bmf7oNbCu6XQrWXJussUy1XLp3X/8+Vl1c7h5IibOYOcaWodHaZePRz U3seVSFiC1I87b3j63ab5ocJDTUP/W/LuApuTn6KKF3rJ3kzR9iKEVtZiIIIEnwc 7W49r+k8sEuAt6HkududdVk1d2ENpPsYNT31va4oF+HbIWTe7zJw3KkvYSEU5PCx t9ktJvhTn7Tb5U8pg2495S/9ZEdMXlsYEpOJhQVeOpnneCdp8S23XqaZLE+Pg2ER qXISUQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781910005; x=1782514805; 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=ohgluABwS6D8saHfHv2eOLCkXGQOTd4JgFhw3pUO1aE=; b=GqTPOpyovx2xncYn2UaQRkNYIJQfBQ4iRzKm9v4ZIkpyYPsNO8SnMIA16J9VrPqvlK ylA/oKxqsttTczLLWR+ubq3RrWnER95z32dwBFnhiF4xZbpeSyzlOBa2yRJQ/JgQdblQ E0LZNQWTj5A/8A/af809qUX3IMqSNNUoiX/zr6mAYvrcjI4nnADkpi2zMaCd7/3Pjrcd EL624oTN3cqmASVbcH/x/oMNfjmcwvkha/gqxpqXJuoie8JBput9MwAcXt92vFr5Xk5b SAShWwuJj1JOeT4UvnC+Y6Avq0L533DrbRIWVRmA9+/3cI8rop7Zp9ej4aaSoKQCOusU PL6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781910005; x=1782514805; 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=ohgluABwS6D8saHfHv2eOLCkXGQOTd4JgFhw3pUO1aE=; b=UzozMJKWujqh8l3411RU6TpV27k+H3Li4PjfUYBm08r363WTY4KepRdA5uTFZv+Mpv cwpc429JumXzlFF/wAOrE2KmcLGynwCulYyGUgMHJos5NnTLxd0HtdqrUQKxleHvLcBG exJq1fxzvqg6ILwVmWtgvKB5GzhPhqrwhwb9OKMG4F/hRg1TPLqChU3eseUBOtGsBIdg o6eOnmsdxKNDuhBscpvWYNySMfrbvyFdO9dVQOMQ6Ba31lveNHDr7ohaSO314TV3a3Dl fNUM2pHv4/rBAID7fH/JLaLW0NILG3VBkSJyQONB7WQ/Ob4Dmmvqi5BBe0QYqTzHQC+G +xXg== X-Gm-Message-State: AOJu0Yy7Qkwg65dvH7Uo6H+RzMMPZOdiGZN5yP/Y4+x4qejZuRS6bnjW MY1SkAyaCWl7ULqSBotyxpIIqUQNiyM0Q/mmSOJfLNANFzg83T+Z7igJjx1U9blJAWFe0/HUpn2 WHu0ryZzUecGJh982Ox1BYwNfXr+6PA8ID8eaX0REV0JoA2TYmk+IJ98qSZbbDTRWLA== X-Gm-Gg: AfdE7cnWlXJBuRnE1vNmk+hk2gR6PQqJ9U1VK1DDY694g/L//oSKchDcbjuvJBeQ1YC 9AfGCcSEHzJcDcOSDAK49O6bQPI+n3+asTctQ/9CEIpiyv0fi7opzQkTm0pr7c22kgU4/9ViZWQ Wu6uuO5iihkpjaFDuzYHhJzikeE8Sr++4EwHgTKQAPqk7cdwLPbcy8OuDLvw3Lj8XQDdZ1GS1/n ow3k8yKIJuP5UHcJTJJZHREWbwWrR5u5Tx0R3RqCQpW5rhyHLJ2YsG8aXnzCqMyCblrwEApC04U t+Y8wghyYCcc6k4mGPVqdNLkam4TNOYP2mneWVB9z1uM342HiIyNgceadF2sl2Wy8OpusGmwuFj haDIi/TItJdrJIhmEJpvq4cbcD3wdQrPLeSytBli243ocIIkB64GQtdXl2fw= X-Received: by 2002:a05:7300:7fa7:b0:2fc:9d97:d59a with SMTP id 5a478bee46e88-30c0d17fb0emr2349410eec.32.1781910005340; Fri, 19 Jun 2026 16:00:05 -0700 (PDT) X-Received: by 2002:a05:7300:7fa7:b0:2fc:9d97:d59a with SMTP id 5a478bee46e88-30c0d17fb0emr2349388eec.32.1781910004864; Fri, 19 Jun 2026 16:00:04 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 35/74] target/hexagon: Define f{S,G}ET_FIELD macros Date: Fri, 19 Jun 2026 15:58:32 -0700 Message-Id: <20260619225911.159473-36-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: OLClz8mOFXtG-Ax1vHbr_2Gc8zRKwz04 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyMCBTYWx0ZWRfXweCU+6Budjdt 8KW/uOmXqwxUrM5AQBvOLtXqXsXdfjjfCJ8yBrtjz977XkcDjYSBe/xRChwSs4vnGzo10MAtBYu Wb/80Dl6bvtTnLkxv0tbFwZ7N7UjenK3J8F6PVPmzB9ZXEU0TkEcj+yr5TVj7WA2r8sQ96/srJj siq5A+Th2eoU6GoxcWKXxmJd98u7NPZhin1ZaVm0whvS92NakSYqt2TlTl2f56nIkyDdLxLb5tV O1lkzL0wPUVqKe/vktukMQr3tXCmJyqKueCIyYKTTIgUU5DnHVwTQEQ59ffZLeexRnMMk9HMOYT DkB5LaweVTmE91bm5JgY9Nwo38316kKL/QQNeI6dwEiWnoIQpHnqsvb9Xk1AL5DO6ViU19O6hcL XyIIfextsEavDAYKz0SwGyWOGq/WrLC8vpbG8NfgzVlPSORA1oZbjJVQfA1iXB3FV9tzEZZRwi/ j7zL1qla9MJLBaucoDg== X-Proofpoint-GUID: OLClz8mOFXtG-Ax1vHbr_2Gc8zRKwz04 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMCBTYWx0ZWRfXw4bdVfDwruYH qWCfngWKb9HMh4n6tej9/YRpA0YwEhWBQdvKzBWTt0mhfEgVF6lNNDAHar5cGbHOxpcmxqON9Y+ pmDYfCaf2UAvR1ofsDzl5mdKLE3sImY= X-Authority-Analysis: v=2.4 cv=d8vFDxjE c=1 sm=1 tr=0 ts=6a35c9f5 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA: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=OC-ZKJ6AczBSh3OnBRYA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 priorityscore=1501 malwarescore=0 spamscore=0 phishscore=0 impostorscore=0 suspectscore=0 clxscore=1015 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190220 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910322500158500 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 38a43647dd9..041e68a150e 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 Sun Jul 26 12:31:37 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=1781910128; cv=none; d=zohomail.com; s=zohoarc; b=KwCIhbFB82ABKpMXWpzi6rncqYl0jDFqsukbmzHFySqr5+vM8HAYtxbVJwPtbQzLp28adpeAL9cbcGhyX9NdeVtPNtIBKYyPND/3EQRjI9I6hBagLeBes1JbQUSqAB2mDOAkoqQF+s887iTtg6d7v1hbTjyyrQz6VTllQV2gEx4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910128; 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=G8bosUNkIisGhuX8AG1Z5l9LVe/reA0/IE25v64WV3U=; b=GUJlo9kJ/O0IEAiaAa89ly4je2GQeWWO/RMLvcp3lW1by/2fJDeBValUClTFwXfo5bQxQ75WJzZA9dnNkKeL+R8ZHSGRc1az9DzB5evxkF5f+LhtT3fWbPKjZec+zlNMKJ4l4kq8frg/KHbzwsbHl38v15VsBeCX4oLpWBXtQgg= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781910128884961.9149980720883; Fri, 19 Jun 2026 16:02:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiCS-0003IP-Jp; Fri, 19 Jun 2026 19:00:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiCH-0002iP-8Q for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:00:25 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiCC-0001sz-6o for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:00:24 -0400 Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLXfP42932967 for ; Fri, 19 Jun 2026 23:00:09 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ew5qsa2x1-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:00:08 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c17bc96afso1428441eec.0 for ; Fri, 19 Jun 2026 16:00:08 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.16.00.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:00:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= G8bosUNkIisGhuX8AG1Z5l9LVe/reA0/IE25v64WV3U=; b=P0gQPj5SV8IgM0+0 CTT24DcSwzZHBjCSyhkJX2f0S+4i5daHAv/vRn40GohB1era2kTiYAGHF3Bd5USP /g4zrPfsexz2/fzaS6u5T8FoiN5WuLu9oUwmz9GOSYmlanqgK9YETYUMrwmlBjQ/ R8lxANDftDSipw8OsE6FjNRf4iGH8bO82OXzf7rsYmW0C2RN+lmpxQzeqpQlLHXZ vLRtFWTDLSrGe//tI/Gxs1d3BD71SEc96bmuhqepJfxDYKL7wfTjByDZIP51FGU4 kEBqVwpVIhfpBPlgwFKymSVR+4zCMRKT8PnAaHQsjRMZXoh0lX04uTkq/Wtf3KMt shFLqQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781910008; x=1782514808; 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=G8bosUNkIisGhuX8AG1Z5l9LVe/reA0/IE25v64WV3U=; b=Y3kpFq4kOT1CbANDmc4nwncmgtYFVKSJUPyi7OlFYo3aoq+UMl+LTs9Ztr/OGzBZQW aTOjk4H+fjtyIENys8JpDAKKLgUSBEwVUf6kg9QTZ0B93/nbltYW7+DylD4qaE67zD2Z Sa3OuyN/70wPOx/SkfyvZGeCuyzIQrMRgZp8l2GcUmTdvIAZ479jrS3UZLD73Ps7AasD sUB35k0pzcIonP5Bjfi0Jd7tTPRQqbrDFH+h5QEYA5looDaQXJ7E/Y6ViL51dNcfYblf NYn1FAoDry6LaNkpIWbg5F5n0MBfbo7mDmndLBOZAnsGkGW1tNNNcn9CdVrfX98NZ9UF r63Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781910008; x=1782514808; 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=G8bosUNkIisGhuX8AG1Z5l9LVe/reA0/IE25v64WV3U=; b=SHRltAP0Zb1YmMSltZv6Nl/MWyDgzZsP+XC1WxeLaWTT4iYw0iIxDTORyEsPApO9xn r1Ojwe1UleMSCzJa5XqiiWsnYy7Hcfadklw+/wrxMDemkStD7tUAzGNO6ddc8M1V+rEv yMYjrHG9/r9oSeuX67VUtHY3PyrdzaK0D0YUxKDrEFwy3Tyk0nuMkhtO1XIzJVjoBxNH NJnhFpbA85M6QDyK39jdHXUJITmu6eW1KRbT+HzF9Q17idoFifIZLky4W7TQbsiB7HZ6 JZp1OVD2vCmdP0+JZp9AjxZvKgah3Tdvof5h1GWAztveJU7MtQuzeZ00aap4pYCuz0Wa l1Gg== X-Gm-Message-State: AOJu0YwOk+d3EEI554eILTSOl8Lk9C4AB63ysZW6EhU/6Xz473EvSnag Hn1hHGVFHBx5KWEqP+DZwdwbeWF2q8igLYE9lp4/LJf/7h7Lqplw5tZyDtwsFr/c1U3vfWmUewz PrKkP2o0+DkhFxaqM6Y5CXAsciLawEONb7Z1g55XahW00szdQ14AmOyTMAioZ4RE2yQ== X-Gm-Gg: AfdE7ckKBiyQMSkuGH5ubQqYqorE8zKvAtFRQA1JdJRGeHVJ9h9C5Jb65Z3jwrsWT2Y Y5WIJO3kqd3wjG77AI0DhRrFTrgS1+pCTwdqA+S1HHmj13mkueyr4zYJ5dChcyS9I3gHkVoomEv GSaSidomc7PR3xJnrrf0PypXTKRWIK+glymzw7q6V0RaCFAcOwTIYlIitzsoAooPhTD3lVvnLoC ePqBq53Hp83BZD4r+t6IT6hNNX+dqJNvBWACFJul+dn28tfweSsBEhQDdrP4UfVUfPODI7xAa0R RqW+tdyliGdVecPTETV9yPz+PgWHey8DfBTYVLQoHGg9cNlufSZjqkRWNJPk8ZSa4E8piy/m2YN Yk/mHwIvBGEoQsM2et5xMZvH+PqwEL6CZKJrLDM2lV8WxNWu384qmA/yFupU= X-Received: by 2002:a05:7300:2216:b0:304:e72a:d4d9 with SMTP id 5a478bee46e88-30c0d065622mr2452644eec.19.1781910007943; Fri, 19 Jun 2026 16:00:07 -0700 (PDT) X-Received: by 2002:a05:7300:2216:b0:304:e72a:d4d9 with SMTP id 5a478bee46e88-30c0d065622mr2452620eec.19.1781910007357; Fri, 19 Jun 2026 16:00:07 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Sid Manning , Michael Lambert , Pierrick Bouvier Subject: [PULL 36/74] target/hexagon: Add hex_interrupts support Date: Fri, 19 Jun 2026 15:58:33 -0700 Message-Id: <20260619225911.159473-37-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX4ezyZAiecGQB Jj5rf7uOGtPkShPuTVg2U3theIbFU60lr1+li0Ky7nw6imvS5lA10hbKyfVYBFAEKUOTW/ItiDo vgD96FrObDlKJVcGDcdSFlfA7N+745Qikz192AfnQ+2oGBX2CnkzdTCWfaU6yHXwC37dz/DFJ3f +eeMjax28wwAtMnG3Cirnxq70ISYPuz9LhRo3V7XxzIJq1QgwnsjfKLsj5MLC9mNet2svGA96j7 8VF9x/O3QnsTHiQy7pfdVmETzD2XVeiajAvGR+bY3vtVoXXLBOHw7FwIXDZqJ3IRhFExGa9wzYw gC/2tGMQEI6Xz4v4B6PS8sknKsTaZw4wSRxW0of7Tlvzm/xp5ZZolcXaExrvfvMv9KC+503UGmw hk2sLvYvHPJPHRrUzgSjgO00yuScDmgM6UmffEmCXEG95fiesAHL7xmUESK218FTmtJgMKOs+0r o+rKSr+xVIC588mv8HA== X-Authority-Analysis: v=2.4 cv=M9R97Sws c=1 sm=1 tr=0 ts=6a35c9f8 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA: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=_4Jc8uW0NYDJnYJF3oQA:9 a=QEXdDO2ut3YA:10 a=O8hF6Hzn-FEA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: D-kVuxGPvkKr9Z5utquyja4UqMkQXZRq X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX5f7UnCTAMd16 cSCqLKxmV8bZta/m6GR7aoeKXAu/peBJaOTJPSVSOM3vicrXq7Ecm0l4p01SR5hrIqiH0GgABfy QklcHreEp0DFe8k6c6UmoTZaH5AXKzU= X-Proofpoint-GUID: D-kVuxGPvkKr9Z5utquyja4UqMkQXZRq X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 malwarescore=0 bulkscore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190221 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910129739158500 From: Brian Cain Co-authored-by: Taylor Simpson Co-authored-by: Sid Manning Co-authored-by: Michael Lambert Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 2 + target/hexagon/hex_interrupts.h | 15 ++ target/hexagon/cpu.c | 4 + target/hexagon/hex_interrupts.c | 371 ++++++++++++++++++++++++++++++++ 4 files changed, 392 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 dbdc456d732..1b225e35abc 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -197,6 +197,8 @@ struct ArchCPU { bool short_circuit; #ifndef CONFIG_USER_ONLY HexagonTLBState *tlb; + uint32_t boot_addr; + HexagonGlobalRegState *globalregs; uint32_t htid; #endif }; diff --git a/target/hexagon/hex_interrupts.h b/target/hexagon/hex_interrupt= s.h new file mode 100644 index 00000000000..6b6f5403633 --- /dev/null +++ b/target/hexagon/hex_interrupts.h @@ -0,0 +1,15 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HEX_INTERRUPTS_H +#define HEX_INTERRUPTS_H + +bool hex_check_interrupts(CPUHexagonState *env); +void hex_clear_interrupts(CPUHexagonState *env, uint32_t mask, uint32_t ty= pe); +void hex_raise_interrupts(CPUHexagonState *env, uint32_t mask, uint32_t ty= pe); +void hex_interrupt_update(CPUHexagonState *env); + +#endif diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 73aca0a4217..eb1f7049298 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -54,6 +54,9 @@ static const Property hexagon_cpu_properties[] =3D { #ifndef CONFIG_USER_ONLY DEFINE_PROP_LINK("tlb", HexagonCPU, tlb, TYPE_HEXAGON_TLB, HexagonTLBState *), + DEFINE_PROP_UINT32("exec-start-addr", HexagonCPU, boot_addr, 0xfffffff= f), + DEFINE_PROP_LINK("global-regs", HexagonCPU, globalregs, + TYPE_HEXAGON_GLOBALREG, HexagonGlobalRegState *), DEFINE_PROP_UINT32("htid", HexagonCPU, htid, 0), #endif DEFINE_PROP_BOOL("lldb-compat", HexagonCPU, lldb_compat, false), @@ -336,6 +339,7 @@ static void hexagon_cpu_reset_hold(Object *obj, ResetTy= pe type) =20 env->t_sreg[HEX_SREG_HTID] =3D cpu->htid; env->threadId =3D cpu->htid; + env->gpr[HEX_REG_PC] =3D cpu->boot_addr; #endif env->cause_code =3D HEX_EVENT_NONE; } diff --git a/target/hexagon/hex_interrupts.c b/target/hexagon/hex_interrupt= s.c new file mode 100644 index 00000000000..3534481da24 --- /dev/null +++ b/target/hexagon/hex_interrupts.c @@ -0,0 +1,371 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "qemu/log.h" +#include "qemu/main-loop.h" +#include "cpu.h" +#include "cpu_helper.h" +#include "exec/cpu-interrupt.h" +#include "hex_interrupts.h" +#include "macros.h" +#include "sys_macros.h" +#include "system/cpus.h" +#include "hw/hexagon/hexagon_globalreg.h" + +static bool hex_is_qualified_for_int(CPUHexagonState *env, int int_num); + +static bool get_syscfg_gie(CPUHexagonState *env) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t syscfg =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_SYSCFG, + env->threadId); + return GET_SYSCFG_FIELD(SYSCFG_GIE, syscfg); +} + +static bool get_ssr_ex(CPUHexagonState *env) +{ + uint32_t ssr =3D env->t_sreg[HEX_SREG_SSR]; + return GET_SSR_FIELD(SSR_EX, ssr); +} + +static bool get_ssr_ie(CPUHexagonState *env) +{ + uint32_t ssr =3D env->t_sreg[HEX_SREG_SSR]; + return GET_SSR_FIELD(SSR_IE, ssr); +} + +/* Do these together so we only have to call hexagon_modify_ssr once */ +static void set_ssr_ex_cause(CPUHexagonState *env, int ex, uint32_t cause) +{ + uint32_t old, new; + + old =3D env->t_sreg[HEX_SREG_SSR]; + SET_SYSTEM_FIELD(env, HEX_SREG_SSR, SSR_EX, ex); + SET_SYSTEM_FIELD(env, HEX_SREG_SSR, SSR_CAUSE, cause); + new =3D env->t_sreg[HEX_SREG_SSR]; + hexagon_modify_ssr(env, new, old); +} + +static bool get_iad_bit(CPUHexagonState *env, int int_num) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t ipendad =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_IPENDAD, + env->threadId); + uint32_t iad =3D GET_FIELD(IPENDAD_IAD, ipendad); + return extract32(iad, int_num, 1); +} + +static void set_iad_bit(CPUHexagonState *env, int int_num, int val) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t ipendad =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_IPENDAD, + env->threadId); + uint32_t iad =3D GET_FIELD(IPENDAD_IAD, ipendad); + iad =3D deposit32(iad, int_num, 1, val); + fSET_FIELD(ipendad, IPENDAD_IAD, iad); + hexagon_globalreg_write(cpu->globalregs, HEX_SREG_IPENDAD, + ipendad, env->threadId); +} + +static uint32_t get_ipend(CPUHexagonState *env) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t ipendad =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_IPENDAD, + env->threadId); + return GET_FIELD(IPENDAD_IPEND, ipendad); +} + +static inline bool get_ipend_bit(CPUHexagonState *env, int int_num) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t ipendad =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_IPENDAD, + env->threadId); + uint32_t ipend =3D GET_FIELD(IPENDAD_IPEND, ipendad); + return extract32(ipend, int_num, 1); +} + +static void clear_ipend(CPUHexagonState *env, uint32_t mask) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t ipendad =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_IPENDAD, + env->threadId); + uint32_t ipend =3D GET_FIELD(IPENDAD_IPEND, ipendad); + ipend &=3D ~mask; + fSET_FIELD(ipendad, IPENDAD_IPEND, ipend); + hexagon_globalreg_write(cpu->globalregs, HEX_SREG_IPENDAD, + ipendad, env->threadId); +} + +static void set_ipend(CPUHexagonState *env, uint32_t mask) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t ipendad =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_IPENDAD, + env->threadId); + uint32_t ipend =3D GET_FIELD(IPENDAD_IPEND, ipendad); + ipend |=3D mask; + fSET_FIELD(ipendad, IPENDAD_IPEND, ipend); + hexagon_globalreg_write(cpu->globalregs, HEX_SREG_IPENDAD, + ipendad, env->threadId); +} + +static void set_ipend_bit(CPUHexagonState *env, int int_num, int val) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t ipendad =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_IPENDAD, + env->threadId); + uint32_t ipend =3D GET_FIELD(IPENDAD_IPEND, ipendad); + ipend =3D deposit32(ipend, int_num, 1, val); + fSET_FIELD(ipendad, IPENDAD_IPEND, ipend); + hexagon_globalreg_write(cpu->globalregs, HEX_SREG_IPENDAD, + ipendad, env->threadId); +} + +static bool get_imask_bit(CPUHexagonState *env, int int_num) +{ + uint32_t imask =3D env->t_sreg[HEX_SREG_IMASK]; + return extract32(imask, int_num, 1); +} + +static uint32_t get_prio(CPUHexagonState *env) +{ + uint32_t stid =3D env->t_sreg[HEX_SREG_STID]; + return extract32(stid, reg_field_info[STID_PRIO].offset, + reg_field_info[STID_PRIO].width); +} + +static void set_elr(CPUHexagonState *env, uint32_t val) +{ + env->t_sreg[HEX_SREG_ELR] =3D val; +} + +static bool get_schedcfgen(CPUHexagonState *env) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t schedcfg =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_SCHEDCFG, + env->threadId); + return extract32(schedcfg, reg_field_info[SCHEDCFG_EN].offset, + reg_field_info[SCHEDCFG_EN].width); +} + +static bool is_lowest_prio(CPUHexagonState *env, int int_num) +{ + uint32_t my_prio =3D get_prio(env); + CPUState *cs; + + CPU_FOREACH(cs) { + CPUHexagonState *hex_env =3D cpu_env(cs); + if (!hex_is_qualified_for_int(hex_env, int_num)) { + continue; + } + + /* Note that lower values indicate *higher* priority */ + if (my_prio < get_prio(hex_env)) { + return false; + } + } + return true; +} + +static bool hex_is_qualified_for_int(CPUHexagonState *env, int int_num) +{ + bool syscfg_gie =3D get_syscfg_gie(env); + bool iad =3D get_iad_bit(env, int_num); + bool ssr_ie =3D get_ssr_ie(env); + bool ssr_ex =3D get_ssr_ex(env); + bool imask =3D get_imask_bit(env, int_num); + + return syscfg_gie && !iad && ssr_ie && !ssr_ex && !imask; +} + +static void clear_pending_locks(CPUHexagonState *env) +{ + g_assert(bql_locked()); + if (env->k0_lock_state =3D=3D HEX_LOCK_WAITING) { + env->k0_lock_state =3D HEX_LOCK_UNLOCKED; + } + if (env->tlb_lock_state =3D=3D HEX_LOCK_WAITING) { + env->tlb_lock_state =3D HEX_LOCK_UNLOCKED; + } +} + +static bool should_not_exec(CPUHexagonState *env) +{ + return (get_exe_mode(env) =3D=3D HEX_EXE_MODE_WAIT); +} + +static void restore_state(CPUHexagonState *env, bool int_accepted) +{ + CPUState *cs =3D env_cpu(env); + cpu_reset_interrupt(cs, CPU_INTERRUPT_HARD | CPU_INTERRUPT_SWI); + if (!int_accepted && should_not_exec(env)) { + cpu_interrupt(cs, CPU_INTERRUPT_HALT); + } +} + +static void hex_accept_int(CPUHexagonState *env, int int_num) +{ + CPUState *cs =3D env_cpu(env); + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t evb =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_EVB, + env->threadId); + const int exe_mode =3D get_exe_mode(env); + const bool in_wait_mode =3D exe_mode =3D=3D HEX_EXE_MODE_WAIT; + + set_ipend_bit(env, int_num, 0); + set_iad_bit(env, int_num, 1); + set_ssr_ex_cause(env, 1, HEX_CAUSE_INT0 | int_num); + cs->exception_index =3D HEX_EVENT_INT0 + int_num; + env->cause_code =3D HEX_EVENT_INT0 + int_num; + clear_pending_locks(env); + if (in_wait_mode) { + qemu_log_mask(CPU_LOG_INT, + "%s: thread " TARGET_FMT_ld " resuming, exiting WAIT mode\n", + __func__, env->threadId); + set_elr(env, env->wait_next_pc); + clear_wait_mode(env); + cs->halted =3D false; + } else if (env->k0_lock_state =3D=3D HEX_LOCK_WAITING) { + g_assert_not_reached(); + } else { + set_elr(env, env->gpr[HEX_REG_PC]); + } + env->gpr[HEX_REG_PC] =3D evb | (cs->exception_index << 2); + if (get_ipend(env) =3D=3D 0) { + restore_state(env, true); + } +} + + +bool hex_check_interrupts(CPUHexagonState *env) +{ + CPUState *cs =3D env_cpu(env); + bool int_handled =3D false; + bool ssr_ex =3D get_ssr_ex(env); + int max_ints =3D 32; + bool schedcfgen; + + /* Early exit if nothing pending */ + if (get_ipend(env) =3D=3D 0) { + restore_state(env, false); + return false; + } + + BQL_LOCK_GUARD(); + /* Only check priorities when schedcfgen is set */ + schedcfgen =3D get_schedcfgen(env); + for (int i =3D 0; i < max_ints; i++) { + if (!get_iad_bit(env, i) && get_ipend_bit(env, i)) { + bool syscfg_gie, iad, ssr_ie, imask; + + qemu_log_mask(CPU_LOG_INT, + "%s: thread[" TARGET_FMT_ld "] " + "pc =3D 0x" TARGET_FMT_lx + " found int %d\n", + __func__, env->threadId, + env->gpr[HEX_REG_PC], i); + if (hex_is_qualified_for_int(env, i) && + (!schedcfgen || is_lowest_prio(env, i))) { + qemu_log_mask(CPU_LOG_INT, + "%s: thread[" TARGET_FMT_ld "] int %d handle= d_\n", + __func__, env->threadId, i); + hex_accept_int(env, i); + int_handled =3D true; + break; + } + syscfg_gie =3D get_syscfg_gie(env); + iad =3D get_iad_bit(env, i); + ssr_ie =3D get_ssr_ie(env); + imask =3D get_imask_bit(env, i); + + qemu_log_mask(CPU_LOG_INT, + "%s: thread[" TARGET_FMT_ld "] " + "int %d not handled, qualified: %d, " + "schedcfg_en: %d, low prio %d\n", + __func__, env->threadId, i, + hex_is_qualified_for_int(env, i), schedcfgen, + is_lowest_prio(env, i)); + + qemu_log_mask(CPU_LOG_INT, + "%s: thread[" TARGET_FMT_ld "] " + "int %d not handled, GIE %d, iad %d, " + "SSR:IE %d, SSR:EX: %d, imask bit %d\n", + __func__, env->threadId, i, syscfg_gie, iad, ssr= _ie, + ssr_ex, imask); + } + } + + /* + * If we didn't handle the interrupt and it wasn't + * because we were in EX state, then we won't be able + * to execute the interrupt on this CPU unless something + * changes in the CPU state. Clear the interrupt_request bits + * while preserving the IPEND bits, and we can re-assert the + * interrupt_request bit(s) when we execute one of those instructions. + */ + if (!int_handled && !ssr_ex) { + restore_state(env, int_handled); + } else if (int_handled) { + assert(!cs->halted); + } + + return int_handled; +} + +void hex_clear_interrupts(CPUHexagonState *env, uint32_t mask, uint32_t ty= pe) +{ + if (mask =3D=3D 0) { + return; + } + + /* + * Notify all CPUs that the interrupt has happened + */ + BQL_LOCK_GUARD(); + clear_ipend(env, mask); + hex_interrupt_update(env); +} + +void hex_raise_interrupts(CPUHexagonState *env, uint32_t mask, uint32_t ty= pe) +{ + g_assert(bql_locked()); + if (mask =3D=3D 0) { + return; + } + + /* + * Notify all CPUs that the interrupt has happened + */ + set_ipend(env, mask); + hex_interrupt_update(env); +} + +void hex_interrupt_update(CPUHexagonState *env) +{ + CPUState *cs; + + g_assert(bql_locked()); + if (get_ipend(env) !=3D 0) { + CPU_FOREACH(cs) { + CPUHexagonState *hex_env =3D cpu_env(cs); + const int exe_mode =3D get_exe_mode(hex_env); + if (exe_mode !=3D HEX_EXE_MODE_OFF) { + cpu_interrupt(cs, CPU_INTERRUPT_SWI); + cpu_resume(cs); + } + } + } +} --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781910302; cv=none; d=zohomail.com; s=zohoarc; b=ZbxS3PbXA73FdutLyilL4JBVlDUUMkRaDFijso/I/SnK9VseMIsn/V6GR0FQktOUc6zsScZBLyv+tc/eLi3NgjgnO6O4Kdanoyqhm9Pdl5mbFInPxiIiqDg5F/onKE7FSbQizbagZLjOJbSWPr8ZbdHnv0HO1CwCd7SbEPVEp+4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910302; 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=oY8qK4LAUtINTePvitXB1Xfo61hqyHEyBFAF6Gss008=; b=kPC6ci3gmgDH1mwKHH0/NkVkMSNmBj2M8rqKsqKJUzq8dTKeoiaaR3aR3/XasX3f80Y4t12HZR82TWHBg5dzchcrLM+VWYy/ffDEElAlKTHFXKr1LyNERmcxSA8MXu5a1xY0Yv3q5y0ZsCELrxfB2aTpRB4/nFA8M7GgbBt37RY= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781910302114639.2352740712199; Fri, 19 Jun 2026 16:05:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiCQ-0002ze-B3; Fri, 19 Jun 2026 19:00:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiCF-0002b2-D7 for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:00:23 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiCC-0001t4-UY for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:00:23 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLYCbA1286378 for ; Fri, 19 Jun 2026 23:00:09 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evy72k838-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:00:09 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c0c489e72so971646eec.0 for ; Fri, 19 Jun 2026 16:00:09 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.16.00.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:00:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= oY8qK4LAUtINTePvitXB1Xfo61hqyHEyBFAF6Gss008=; b=KHlvzW1j63PLdwGa at5kSd0L0uxSHU1MVCNVOi/UKbIXTY/XA0wIW85dTrsEIxC7o0omfReKhLU1iVOZ iFogt8OMK0pVQPdC4J9G7tv23V/VUwYk26RuOh7bUUhfZs9GT/CyWQN9h6ebx9Tx Fyz9620DXhGqcmOloBeVbGStbji/g3kpTVmOMAK8Go1p4l/A7rbmW2KmDNqsu1r2 u6YOwqc/IZaPeUxYD+oJeAov6HXD0e9BICEBVPoRr9RsXGYNzDIIOAorI3yS+J5I svcn6OiC4wPf5c5ORyq6Ycy1HYSOsFrxLwQQYxbNx7SOeQKFtA4QnWNCbp6Fso/G QasZCA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781910009; x=1782514809; 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=oY8qK4LAUtINTePvitXB1Xfo61hqyHEyBFAF6Gss008=; b=bYBhLj8mPl+hnvqVNEpHLzVtRsoNCNerAz4wUt/uxV68sBGK7JJ+VuHkRbkqhEFrYC wg6eQNjBZHNSpmsCuuKCv+JZ00BjT31Qv8O37PMwASfxp2nOoT1eiih8DD0pv7lD0wBz UWwop4P6AYXWGy6VPH9VLeDe22DB00KKOUyYKVUJPenvPtkNsQ2g1Oh2dBOVp1hJwQdS r2U5jtgjIvBWO+fwPeh4t+Q8LN6r7wZul3ZVOim8zN6N9OlxD6XhBhCfo+CGyWh76Fll s6QtDNg7KFlCVi+bMhrmNIwFgFmNE4t+gg2KV3LtQYwGjE06yyq7uuRo1p3inpaAc2Mg MBZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781910009; x=1782514809; 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=oY8qK4LAUtINTePvitXB1Xfo61hqyHEyBFAF6Gss008=; b=A41wQa6IW9wA4LeU2TskN5rKKtUJUmigIs6ZPC1rF3b77Q+yezQMOPDsJ2LA81f6q2 rHoo+bO4UvnNq1zhmgjyC1uQSRMAQRmQRNsn0d39S98YxxBzD80mvyD7A1k2PPGfig7X GJQjczSmj1HwpSGRA9FUmTA7KpO9lDsJaexX+MG64602GMRPptzDLXskwJmwUZ8K56Nl G96BPhcK6ZPkxwvHcNJf8sbEGgOgaVLWp+G9qW1N/XV/eIvAV6OwBv6oXiruZg+ZhXSm 8xy6prZowtN3hs6vluA53GtTXuVbwDHNLiD23qg1JB/BN+L0WVS03j0JHwO9D/ekleU9 GiEQ== X-Gm-Message-State: AOJu0YxLRfYaq5vYxuHHr1I64Az7Xf76VZNzXbmAogflIIQCSfy+BLAN +3pnmOJBX4/TmAujf9pL0lx7e/tF6urnL2DZS+LYY9yuKGhhdUXDUxuKQUWAkKFPbtH9DhMmnA0 SoGZBv6AbllIfeLgzTxjU+61yqZLxGka9pCKQIk5RHgxE4+CxhAxKIJE2TdiOdpxGgw== X-Gm-Gg: AfdE7clD/izA8UEfry4MjHedGpKqm0vhJIFGdrGavWXdrQvd/5nKZ2cM8XTi+BMsYIx H8c8kVn4PXVTPKjbofG1JNn7+ANEg++VTfevpRuwvWNu8i40YZW0pAczXd/2X7zAL+rYFhMsjBg tSVavX7RJ9SF68NJpXURVHZsvwiKlpAW/D0Ej68YCLhRDzee/IuzK1Iq/sba5whOt8yHN1JWGf9 ZspwjR7SmnFw4Yyd/WjAplQq60LWxOop13cvePPsmLZsNLIAsrpVZNu1DF+VeQMMmELJgb3QrsW xs1EdDhxWvB0bIvA64VbAYjq+lTSN086eAq+sdOUZvNvbcWEdL3OV0MKMn6gcw5cGr9QtVDjWaP 7zOMx0uBYK5pH/WPiPDinmCKe5XxyWYPXjBj4M3wM6ZU/AFvoznI0Tow4A8U= X-Received: by 2002:a05:7301:3f09:b0:303:f26f:df30 with SMTP id 5a478bee46e88-30c06e31061mr3278207eec.23.1781910008855; Fri, 19 Jun 2026 16:00:08 -0700 (PDT) X-Received: by 2002:a05:7301:3f09:b0:303:f26f:df30 with SMTP id 5a478bee46e88-30c06e31061mr3278177eec.23.1781910008206; Fri, 19 Jun 2026 16:00:08 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 37/74] target/hexagon: Implement {c,}swi helpers Date: Fri, 19 Jun 2026 15:58:34 -0700 Message-Id: <20260619225911.159473-38-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfXxLLB4qx5TD+y IgaQavqCgbDfGsspvXKKYkg1Z2ndPV7fvzwhA4NF8Tmff48Zt26NBixEzO+kpTwh9LSRGpzBrvg KmEptpqN9uYzdvGca5rbQH36wjKJkGFRkxSAmnrqkmbOF5JP5sXhv0SNsxH5xBA53zo/X2gKHPl +UzujfXkTWN0ME+tf5a3dnonomTw4g2jnIWGXD/N/3oTYX6Gtmr5CnGUy+WgIAOWQKWBzm/gcxw rqgOz6vUmbx8IdlCeFM4PvUs88/DA5FPozkTd7w+eZewOrMOPhFMZEu5OgZyKKlG6rV0somXBSx ImAEMfXoVZXnKgvbNBn7rn2gQueYiDaosSLHadEZdWotBWrDJdIKYOe4XLFxb4AW7bPeqvbcFwf HN0+stCDtvw6WZBQXmVuh+EemD4N1BLZKdK+j82oJU5G909oIpVPZGdhv9dlnSEZK6LtxmJzLIy nbeZlqgdTY+vsqI1lCA== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX7VOac4c7EM05 VZ0trWH4mDcSBIrPdqSBQH7zKFQFVUcFirt61rNHLD1Nv8kxxy1vnh6+OhilocgV0hkjFBjpG4p 4px0xiKCas0SWHC0afDf7z+vu3mqlEE= X-Authority-Analysis: v=2.4 cv=I75Vgtgg c=1 sm=1 tr=0 ts=6a35c9f9 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA: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=KN34Fzpn9o_w8YhA2GgA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: fW7Ll0dQR2k_BJfDA14GiNMG15AT5bdi X-Proofpoint-GUID: fW7Ll0dQR2k_BJfDA14GiNMG15AT5bdi X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 impostorscore=0 phishscore=0 spamscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 bulkscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190221 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910302433158500 From: Brian Cain {c,}swi are the "software interrupt"/"Cancel pending interrupts" instructio= ns. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/op_helper.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 4dc2b8e63a7..7827696c6b2 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -24,6 +24,7 @@ #include "cpu.h" #include "exec/helper-proto.h" #include "fpu/softfloat.h" +#include "exec/cpu-interrupt.h" #include "internal.h" #include "macros.h" #include "sys_macros.h" @@ -36,6 +37,7 @@ #include "cpu_helper.h" #include "translate.h" #ifndef CONFIG_USER_ONLY +#include "hex_interrupts.h" #include "hexswi.h" #endif =20 @@ -1403,12 +1405,14 @@ void HELPER(siad)(CPUHexagonState *env, uint32_t ma= sk) =20 void HELPER(swi)(CPUHexagonState *env, uint32_t mask) { - g_assert_not_reached(); + BQL_LOCK_GUARD(); + hex_raise_interrupts(env, mask, CPU_INTERRUPT_SWI); } =20 void HELPER(cswi)(CPUHexagonState *env, uint32_t mask) { - g_assert_not_reached(); + BQL_LOCK_GUARD(); + hex_clear_interrupts(env, mask, CPU_INTERRUPT_SWI); } =20 void HELPER(iassignw)(CPUHexagonState *env, uint32_t src) --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781910317; cv=none; d=zohomail.com; s=zohoarc; b=dMnsLEl2qCnFQCfHOJgtnhyzryusuvACeJVKMp04BxxGpd05eMtMzUwWleYAxtqUQEmlHW8u9m4hxt84xJ7mLRSvG7LtmP98MYMPXnSrcLYQTbv2Q8W0LNBOqRtYu347iBqTSwiSOzHGswLKEYsieomAGn1g9c+mAUYKNIp3itg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910317; 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=4QO0cWAkJ+q+F3pETQo9dtN15DOJjfUdoMf8+Tm9oak=; b=FKYK4wgjQM8Wvl9tyrxrtDUVZY7PhwyhG1tLywdX0GfTT76USUWtbR+4WGQhseiUHNx9Uf+uMUHTGybjERiBNstGBMpiwhrqznN3gygTBaMECNiZuZ5SGHvrEEUI8Uu0MapKM1ilgVhuhZ2bok3nWVTVHA66M7NJCJYApGDJAII= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178191031731099.17050236928822; Fri, 19 Jun 2026 16:05:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiCR-0003EI-Tr; Fri, 19 Jun 2026 19:00:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiCH-0002iR-8U for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:00:25 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiCE-0001tL-2k for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:00:24 -0400 Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLY2Ja2933379 for ; Fri, 19 Jun 2026 23:00:10 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ew5qsa2x4-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:00:10 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30bc5f826f2so4610330eec.1 for ; Fri, 19 Jun 2026 16:00:10 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.16.00.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:00:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 4QO0cWAkJ+q+F3pETQo9dtN15DOJjfUdoMf8+Tm9oak=; b=aAe6zb+JUQd1igbA p8yc8782F2V+hBzW5/6TIqOZvEQljZXd40vwiAfk1lPoEVtiZCa0W5Ic9KEvRVsL oj31sC4WSRdzf8xG573tycGs123nzwX0oVS674zH9cKWwaFXtEGDsVZQsELcxjkm PwOAeYCNIL/C+EfyIuifr78mfbDGliyMpQOGxT1QAu932akuyxNMsk0h5xw9rDdm AOjLHKzkcqB8i7p5AEUqfCiVZnVykWf1W9lAll1eEFP5P/XCZrJDs5d3BtnA/P46 MFcmajqWiFmQnRK1I3qvhqm3RXI5nUOxmAlsFi/tvXf5P/yfBKEbUGTPwFmVj1SJ FaulGw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781910010; x=1782514810; 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=4QO0cWAkJ+q+F3pETQo9dtN15DOJjfUdoMf8+Tm9oak=; b=UwiB68rxbSssmT3ERQpq241rmL7/mKJXTjtpnKacaqEpNEcHdhwSm2Nj+tzZUtxGow 0uwBDpy5CCNEtC6axsYZqDgPj6aLBGiLoX4ikX8Flkf7pom+Snw365fPwbWoL9gov2It QW9OvYrs6gdRcZz1ickMqj08ew5yvH3T/Pto4QNTlH36fQhihYqVr8WIkzEisDWab3zF 1N0vfQuG3RJZEdVEVSD+BXKUWO9NhVbl6I2C0rKwZPtymY3Wgw06PzmlJjjo9GKYQ4nH syOow2QPEGVr+IInhvUuyR8NJJFnJwQXoJRvAu06AvmKk8heS/ddu/AuofmgAkZtIOjp ibeg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781910010; x=1782514810; 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=4QO0cWAkJ+q+F3pETQo9dtN15DOJjfUdoMf8+Tm9oak=; b=nYlEGB1Hf6CBeBEH3zjN8sIUCB3aIs05G9Hf6n45cMWMuCU5pgCDwobD1gi7ByYuj2 reMf60yNoLKm1Nt6dlui8abAjjCXOfb0V5t4KXjL3nvKKDcMtNo75a5Qvs8k0cT/f2aj SSbDODuv2xUGkIK7mV7EgdL1d72PTMjAx2JPtVTHWH5ZUW+zAHGRlnKNXKGbpfiQ/uC0 P+rKHJpvwdsGqu9mk+LkdFmARP4WT+OXCCy/hndAWb2SBbtlkQNW8GWdILUuhad3R03O nJjuRhlYOfGaLJpb+Wb39zEgBLVObRlbt37P4ZX3n/UWNialJRDBdm0eeVdts64hp8sr e9+A== X-Gm-Message-State: AOJu0YyA/fbRt4R1p1V1nWe1CfVhp6lIef9851+J60clswPXD7ZDg4cR r4aYZq+TVfrd9Xy0FptByPxw3e6UUEyMv1BURby8crUWYMdjq2+uIQd7qkDdzFnmEDG6xXINE8+ RNXLorHqUqeZm3Fz1y6flUHLCGY1AqRFP4iLBX/eej3jXBrpyAwhmNDLQoTN2VrPJiA== X-Gm-Gg: AfdE7cnoOqr5EBmgi5f8m2nfam9+TSPdngfa7RpRTQG9+8BqDIDOgWkPq241oVtDmJW wW711+cU2HCH/+v2v9XPrmwmVm8cm+IsGBR6YZfpn62weK2OAQtzmVGAcMQUf5PLB1s44v33prG GTKhTVmMVqKD5uwd6dm59ePEdIsspWaFISbUri64bndz6yjAzmP76Tryrtzm5eJQk6WnGf2YHV7 TuHbOKb6k0BOUbK4X2R6VD4Cg4WD/mu9UlX99DQsma6s/jiMnm0cRv2AWPPAdnxMp/qnKPw5Z4V /DmKUq3Mo7VSxJf8sPzTQIOfEP8cwBaS1ESn8b1NaY/XazlKYLGLTudOfguc+DRb8I3libp6Ftq LItlYwBKjuUZmuxiH0vYFDDPMuFBoKCLBnPXyTvYvt4Pe04QSoduAFH5YeSg= X-Received: by 2002:a05:7300:5b95:b0:304:7a67:6104 with SMTP id 5a478bee46e88-30c0ceaa96emr2242130eec.7.1781910009644; Fri, 19 Jun 2026 16:00:09 -0700 (PDT) X-Received: by 2002:a05:7300:5b95:b0:304:7a67:6104 with SMTP id 5a478bee46e88-30c0ceaa96emr2242106eec.7.1781910009080; Fri, 19 Jun 2026 16:00:09 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 38/74] target/hexagon: Implement iassign{r,w} helpers Date: Fri, 19 Jun 2026 15:58:35 -0700 Message-Id: <20260619225911.159473-39-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX9LgmmNYxDp2J rhaWnfpUbdK6DVf03up150Mn2zQQpzVJySC7W2xfcH4cETUgMNKG6D+tVA8V1Y+eAoLHzjQi2Vb KalWhvE87nxjUSDLx6iuZacoop7YRQ0ot0WvsijG9SzlzfCKxl5452OAajO0nuuhMtVhtKyuoGT MYQeV99ZcpfMo2wV4zpcGfF02lE2oS+rPBHP39j2hJvGimdCLW8HJMXWWdpL6hdpvElgLgO/qjn qEaE6EcNl7OLSIOkTJgJYx/nMRtNNysDI0HEI3mymf0h4i5ZDFbhUltfjIP142iwIdxGBB6MDp3 pPyzDuFZBJlSqx6e329sG6PTPCCxuf+InVN97wBtyVQSZ68tiWdLOmrj9mMe55OOob1a/IDzAsR TGr3GfLqFZYcpIOtqeiTJr+IHKiXnzwEDcRwXtwErtMRBo9XZP9GmRx77qHIK1WwhpTyXj/Ezfe cDlZJWeyz1eCLvorN7w== X-Authority-Analysis: v=2.4 cv=M9R97Sws c=1 sm=1 tr=0 ts=6a35c9fa cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA: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=VnV9S1Uu6eltRR5mmX4A:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: JNWpdfNh3sQa7MEFPLFilhBg253XWsfL X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX3y0SAlLVRLIC tmn8zHEU6T60ilhKnMBlnZP+1/LW7xX5cjr9xs0sO20GM0BMScWoCa84tHLXzsM+5jD3eEWiRw/ bOGvH/JZ+WktM+mXlQu22A4C70xoS4E= X-Proofpoint-GUID: JNWpdfNh3sQa7MEFPLFilhBg253XWsfL X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 malwarescore=0 bulkscore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190221 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910318631158500 From: Brian Cain iassign{r,w} are the "Interrupt to thread assignment {read,write}" instructions. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/op_helper.c | 56 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 54 insertions(+), 2 deletions(-) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 7827696c6b2..6f01f3b91d8 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1417,12 +1417,64 @@ void HELPER(cswi)(CPUHexagonState *env, uint32_t ma= sk) =20 void HELPER(iassignw)(CPUHexagonState *env, uint32_t src) { - g_assert_not_reached(); + uint32_t modectl; + uint32_t thread_enabled_mask; + CPUState *cpu; + HexagonCPU *hex_cpu; + + BQL_LOCK_GUARD(); + hex_cpu =3D env_archcpu(env); + modectl =3D hex_cpu->globalregs ? + hexagon_globalreg_read(hex_cpu->globalregs, HEX_SREG_MODECTL, + env->threadId) : 0; + thread_enabled_mask =3D GET_FIELD(MODECTL_E, modectl); + + CPU_FOREACH(cpu) { + CPUHexagonState *thread_env =3D &(HEXAGON_CPU(cpu)->env); + uint32_t thread_id_mask =3D 0x1 << thread_env->threadId; + if (thread_enabled_mask & thread_id_mask) { + uint32_t imask =3D thread_env->t_sreg[HEX_SREG_IMASK]; + uint32_t intbitpos =3D (src >> 16) & 0xF; + uint32_t val =3D (src >> thread_env->threadId) & 0x1; + imask =3D deposit32(imask, intbitpos, 1, val); + thread_env->t_sreg[HEX_SREG_IMASK] =3D imask; + + qemu_log_mask(CPU_LOG_INT, "%s: thread " TARGET_FMT_ld + ", new imask 0x%" PRIx32 "\n", __func__, + thread_env->threadId, imask); + } + } + hex_interrupt_update(env); } =20 uint32_t HELPER(iassignr)(CPUHexagonState *env, uint32_t src) { - g_assert_not_reached(); + uint32_t modectl; + uint32_t thread_enabled_mask; + uint32_t intbitpos; + uint32_t dest_reg; + CPUState *cpu; + HexagonCPU *hex_cpu; + + BQL_LOCK_GUARD(); + hex_cpu =3D env_archcpu(env); + modectl =3D hex_cpu->globalregs ? + hexagon_globalreg_read(hex_cpu->globalregs, HEX_SREG_MODECTL, + env->threadId) : 0; + thread_enabled_mask =3D GET_FIELD(MODECTL_E, modectl); + /* src fields are in same position as modectl, but mean different thin= gs */ + intbitpos =3D GET_FIELD(MODECTL_W, src); + dest_reg =3D 0; + CPU_FOREACH(cpu) { + CPUHexagonState *thread_env =3D &(HEXAGON_CPU(cpu)->env); + uint32_t thread_id_mask =3D 0x1 << thread_env->threadId; + if (thread_enabled_mask & thread_id_mask) { + uint32_t imask =3D thread_env->t_sreg[HEX_SREG_IMASK]; + dest_reg |=3D ((imask >> intbitpos) & 0x1) << thread_env->thre= adId; + } + } + + return dest_reg; } =20 void HELPER(start)(CPUHexagonState *env, uint32_t imask) --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781910140; cv=none; d=zohomail.com; s=zohoarc; b=bQviWCZDLkk1KVKxYDoetuENSYWhvbDCF8752QiI/IzkYQE5GNdH3Z/eZZOfcTxCCsyvoQVptcnczTmvkQgpDCDT8FekFdP+nCuzKtnWP/GDgmcX8PrSpZRp4Cin0RugpbhgJrp8lXD+LM6Wkzme8JBXnsu/n3fJNg3rGgK4+5U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781910140; 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=TfVBLrLYsvAhGMAw1f7WT0DQu5QIyyTkxXEQsAXLmCA=; b=KGBVMBFeAt4Y2V3YPbjxAEIZnvTVJm13l6SQuJ+ICfzHBwEL6Z6EXDJGjLrzt+i7o1RpjkBDFUEfaJwLz8zqALHruciiWzLQ2C+6qJdB6JLXOGYpTfY3ahtfP4ms0EayxJYYC7xKWOnhZLzspLgIB7J7p+qSk3p4rpJPpzGwsoA= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781910140749852.5071229532494; Fri, 19 Jun 2026 16:02:20 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waiCS-0003NN-T3; Fri, 19 Jun 2026 19:00:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiCJ-0002tJ-TS for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:00:33 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiCH-0001uI-Uq for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:00:27 -0400 Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLY5BF1369135 for ; Fri, 19 Jun 2026 23:00:13 GMT Received: from mail-dl1-f70.google.com (mail-dl1-f70.google.com [74.125.82.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ewcy30btx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:00:13 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-138455d7e20so4396860c88.1 for ; Fri, 19 Jun 2026 16:00:13 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1b4f7d81sm1309510eec.0.2026.06.19.16.00.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:00:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= TfVBLrLYsvAhGMAw1f7WT0DQu5QIyyTkxXEQsAXLmCA=; b=VENmky/z8h+GWv0o LJFh1dtZO8vFhjFVqr9hLat7F7bcvqJNr+6mRD5UJ4OIYIJqDWBybJid3etHUfMV dny3SMgxe0WYuPtRV/W1EZBHfjjq3zccpJgW2Z/AXJZXfWHIo2OwQRkAvqFzJjQm 3jE+4Vd8mthTdfG3oQAVA9QExgZxb8NCWEKjAQr3B2Ghpa6A9e1PiAG3/aD6pwVo ec2MILw90SPPDU9BgHujyUqbrnfnc5yAfMoMHoFVWDC/4osAeoGN+ZB8gs0Uz0Zn 24lh8ehuwGNbjRXmnui87hiIDDZcXls+WY0V4v2lMhbSjnYgnqVnFekU9OyuQT9J 7Zrazg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781910013; x=1782514813; 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=TfVBLrLYsvAhGMAw1f7WT0DQu5QIyyTkxXEQsAXLmCA=; b=ICSu55plrivxA83bTj08stkWdtMcx9PL3p0hqxYtTe/xfqjMnITmBRSdXl2xDkBBy/ pi42fIK48YNPJU0MFKWKQHcgf+/TXWZ0ugicWybSMM7MCQMA4v+olB6nTDWLFQ97r2V3 iA0qJbOEb9YII+nMKHBXO1sf+IEL/jbv7qldflWia1g5GeQvqpbFFNEopG2HkJKWwx4p 45OnPDsZKxk/921N+xKuNFJrERzNu47T3CvNuhbJSz4O9k0mPteIY3M21KiEeEh2kBh9 OVFOlnnH5zTP53jctOaUKJkfjh+Zdxsl207sBD8tNIJMx4g+syI4TvOs/elDtkI5qRJE yDiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781910013; x=1782514813; 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=TfVBLrLYsvAhGMAw1f7WT0DQu5QIyyTkxXEQsAXLmCA=; b=UpsshGs8cgod4B4+TitQA5+fa0xFI27gYsnCHYOFP/ZRbQfGPok2Sb3utnMtdWU+66 cOinPcgYQtQX+XWge3lpj7k2JKl03Ci33VvIwxnVeqIprCZ0BGaNTB9RqJ6gpbClUZ1e QdeSbtSs1XqcFt/CsX0eTPb7gJZwJHM2smJ2/R0HVHpGgPxTOQb1ZwGF0TAPUwWJ4HSJ ABwJQ4LK5znl/VOtCRHi1k1pFtcjyN+T37vqRiwBQqjUYUgOqz2kM8uuUw+LnYPhm0EO IN+InDEMO1kxsdUs7ZU1ATzyHzM85xWtsD1vvonoNLRBG99t3OTgzSBSMDkPZPWSF1Y9 p/kA== X-Gm-Message-State: AOJu0YwNTRxCOGn/t5MDOARnpF6kbSz1DISkcrEQ7isR7ldM66kV14dK SJi3Km4z6F+rPlHOIsfrvJNDQAryWlTa8oxDxJrjlx386UQ7pmEJTDWTJwJ/rEiL2xjts7Ame2r XlBNfHt3/mw+UczPBqlDkr05P4cYu6TErnpZnmWJm/3OrmEdyPU4UN+e2gYC7bQzMjg== X-Gm-Gg: AfdE7cnZFDacuaqT5M6+c6vs8mjIiWutKa8BPdsDhB1QsI4FLzbjoL1gnBLK/VDYUb7 SXVEyDU6G9SZWPy5yMrWBuYmXtttEqluUIBAEDRoL6AK76hYacKc/8qno+FiTHsKojSs968seYX yf0epMR/l6vWc3urMpMB5/GdI8EAOeDJZvCnZOSuh4cMh7M5OM7VAQV8cqbiyrLYUTU9rFyxM2l PudjDEBhZZwm9xFx9kkGK3EK0C2jnX25JenKG8lYpqfyBlvujjoGMy3BwRdCDmA+e7dRFVlpbjB vPyfEbYJ+mRyDmMDE1gMQEFi3kl+Gbt0HMr01a9BtxKK0xw1yCu6MUGEJu3/pkmZRMb1A/EFRF9 NmzzcqWg5DHTiA6W0fJEJEK2vFinQxVau74f4o4K+XY8U5M4aXHqjTQRxq1A= X-Received: by 2002:a05:7022:f99:b0:139:8172:76b2 with SMTP id a92af1059eb24-139a2107105mr3424034c88.21.1781910012480; Fri, 19 Jun 2026 16:00:12 -0700 (PDT) X-Received: by 2002:a05:7022:f99:b0:139:8172:76b2 with SMTP id a92af1059eb24-139a2107105mr3424003c88.21.1781910011928; Fri, 19 Jun 2026 16:00:11 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Pierrick Bouvier Subject: [PULL 39/74] target/hexagon: Implement start/stop helpers, soft reset Date: Fri, 19 Jun 2026 15:58:36 -0700 Message-Id: <20260619225911.159473-40-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: 3iHvtnom9nuxo5VbpS9KyWsGvB316mKB X-Proofpoint-ORIG-GUID: 3iHvtnom9nuxo5VbpS9KyWsGvB316mKB X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfXx8wdW6kWxLM5 AeTI6HLiDsjbgCXu9riYD42CDYiKRCoeJqljqAe7Y15ZeO2iWNTpnCJJMTsY3cYl4AKAQe9I2HZ l+fipOhmqlQCjraSqsEWART9bjczF0DCKEWU4uyaq5xXi9y1f0KyhPGbzIo30gPkvnJazRtnu31 fBXb+AAp6vtKSRTgURN/4q06vD7cjLBVaFF2/D/flQm2LdYj3yN3G47kkkzsBEiN9H7iAWCTT9o gLwVwq9wb1mLuoYTGfJw3SqMP9oeFj/G4UgUBC/6NqINnsbMF2ncNkl4aNgurGuBgYVDKmszElN pfnddLK865SpN+DFcLOS4mOp7n9QNOj6uRiVE3AYRsujwBb5AAkcjaCYjdXos4TAa3had6bW2fN n+Qa+Z4XbXM6zcD8WpPev8JpETKfJSON3ZRgh7du8Nd61r0Txq9Cjnokoh7kNefPD9Be0CiSTL+ UXWpoPzXY26PZBUCSLw== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyMSBTYWx0ZWRfX9sCXSFxUacOM GLXnIgdmJICbFxBvtCXSIBl/ydQXmRqVH4VfHgfVY53QxyrtcGUtqBCOxIsmFFNzcmrUOyNSKkl YnYFrGS7WVp0audy3WgjZqr3QM9zdM0= X-Authority-Analysis: v=2.4 cv=ZOvnX37b c=1 sm=1 tr=0 ts=6a35c9fd cx=c_pps a=SvEPeNj+VMjHSW//kvnxuw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=mCWuZxMSpaUKZHDxuVkA:9 a=QEXdDO2ut3YA:10 a=Kq8ClHjjuc5pcCNDwlU0:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 bulkscore=0 clxscore=1015 suspectscore=0 spamscore=0 phishscore=0 malwarescore=0 adultscore=0 lowpriorityscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190221 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781910141842158500 From: Brian Cain Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 9 +++++++++ target/hexagon/cpu.c | 28 ++++++++++++++++++++++++++-- target/hexagon/op_helper.c | 4 ++-- 3 files changed, 37 insertions(+), 4 deletions(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 1b225e35abc..92d4bb97129 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -213,6 +213,15 @@ G_NORETURN void hexagon_raise_exception_err(CPUHexagon= State *env, uint32_t exception, uintptr_t pc); =20 +#ifndef CONFIG_USER_ONLY +/* + * @return true if the @a thread_env hardware thread is + * not stopped. + */ +bool hexagon_thread_is_enabled(CPUHexagonState *thread_env); +void hexagon_cpu_soft_reset(CPUHexagonState *env); +#endif + typedef HexagonCPU ArchCPU; =20 void hexagon_translate_init(void); diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index eb1f7049298..27f0ef50df2 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -33,6 +33,7 @@ #ifndef CONFIG_USER_ONLY #include "sys_macros.h" #include "accel/tcg/cpu-ldst.h" +#include "qemu/main-loop.h" #endif =20 static ObjectClass *hexagon_cpu_class_by_name(const char *cpu_model) @@ -310,6 +311,28 @@ static void hexagon_restore_state_to_opc(CPUState *cs, } =20 =20 +#ifndef CONFIG_USER_ONLY +void hexagon_cpu_soft_reset(CPUHexagonState *env) +{ + HexagonCPU *cpu; + + BQL_LOCK_GUARD(); + env->t_sreg[HEX_SREG_SSR] =3D 0; + hexagon_ssr_set_cause(env, HEX_CAUSE_RESET); + + cpu =3D env_archcpu(env); + if (cpu->globalregs) { + uint32_t evb =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_EVB, + env->threadId); + env->gpr[HEX_REG_PC] =3D evb; + } else { + env->gpr[HEX_REG_PC] =3D cpu->boot_addr; + } +} +#endif + + static void hexagon_cpu_reset_hold(Object *obj, ResetType type) { CPUState *cs =3D CPU(obj); @@ -339,9 +362,10 @@ static void hexagon_cpu_reset_hold(Object *obj, ResetT= ype type) =20 env->t_sreg[HEX_SREG_HTID] =3D cpu->htid; env->threadId =3D cpu->htid; - env->gpr[HEX_REG_PC] =3D cpu->boot_addr; -#endif + hexagon_cpu_soft_reset(env); env->cause_code =3D HEX_EVENT_NONE; + env->gpr[HEX_REG_PC] =3D cpu->boot_addr; +#endif } =20 static void hexagon_cpu_disas_set_info(const CPUState *cs, diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 6f01f3b91d8..b9cf1f188bb 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1479,12 +1479,12 @@ uint32_t HELPER(iassignr)(CPUHexagonState *env, uin= t32_t src) =20 void HELPER(start)(CPUHexagonState *env, uint32_t imask) { - g_assert_not_reached(); + hexagon_start_threads(env, imask); } =20 void HELPER(stop)(CPUHexagonState *env) { - g_assert_not_reached(); + hexagon_stop_thread(env); } =20 void HELPER(wait)(CPUHexagonState *env, target_ulong PC) --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781912015; cv=none; d=zohomail.com; s=zohoarc; b=Q7LAroC5gEFiRtHUNp7ZLVXgYToZhsEH4bV0ZYFgSkorrPYutNp08EdjOYKewkG6Rq/9tNqU+fQkTYLFxsfTzXBypkNqJxd4L6lWdLK0BLz+8yWRW5QbcFePYZOfPtrmIXyafP6QFkLvrAVFQjZWsapMfMI3VPdNx4Rq900wsEQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781912015; 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=i/UBxztk9FzNckObXXg5AeElk2tIk+IMNK3xdbJ6LSM=; b=V+h/nUH2CpeBA4uUqseCiAp79fYv0f32NQK6dCekBl77EUI8Q5WwYHEH8qX+le0/iXPcxfwwgGrhTqujeM4w1e1u0ppKFPX9VFgxg0xMpLYSGrnSlhBAy4g5CLwbpFz8d9ZmZ+5pqgWpiA3OAvj9Y8Nz1FWLyw2dKf7wr8N5Ooc= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781912015737181.19957289510228; Fri, 19 Jun 2026 16:33:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waifN-0003p9-NH; Fri, 19 Jun 2026 19:30:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifC-0003mC-Ue for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:20 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifB-0007NU-B8 for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:18 -0400 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLYSNE1337254 for ; Fri, 19 Jun 2026 23:30:15 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evp67578s-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:30:14 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30c1f6c5559so568290eec.0 for ; Fri, 19 Jun 2026 16:30:14 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d75csm1212646eec.15.2026.06.19.16.30.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:30:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= i/UBxztk9FzNckObXXg5AeElk2tIk+IMNK3xdbJ6LSM=; b=cJXH211dMPQhcXb0 77ZmFpmCmcESdoxJxYxVSf4wi5IsE1dhFftJDAScUdSdqe+/ar+jW78Y+obdOMB/ ltpfYNTrG8Vwl/XA9phsjWgvIPpi+GHeSp4tLOM3BnFV0fE4byKP/st704B/8Y7A SAR4SZZzYdLWqWy/gC4BIC/jt2FwEB0ldGXRk+pKZB6BgsxmPQmiqlU+o4zBQyQB kNYWX+/5OYlzQGGVI0vt0ryVn++5lMnwSkF2Dw2KM7mWZV/6c1wecPhlJCIUJasF zFntxhzFXd/HU8CgM93k61a3u8ppK+z1XmsANA6BZCy8VHK8uodgXU3CdUh/hHBZ RVwFtQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781911814; x=1782516614; 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=i/UBxztk9FzNckObXXg5AeElk2tIk+IMNK3xdbJ6LSM=; b=UPBGbjtSl9sbrL/72Eg1SvoBDXB1Cn+x8wlJa6QFrFxDHJpjOhijCbk8r3LLlZl9VW eIz/t14UJaO79AZPjVWOZ1g9TW8PpfFx1TCWPYkqbfopE4cy1mPP6h+0RoFsIiwS4iSV xrM72iXwEs3S10j32wF1OPp/fb3gMcsTUeuQLlYfjCwdoccNQjBn1ls4uNxaPMhrjJaL Fjkt9IKmu72R9bbnMccbLILZUKARZKk5WT3tPwrdYUET06EB2Yv5U0Dql/RXultL0IsI 9cRNxstBb1g55GmD3vEtZVYrka+Z6oDI2eJC7cPK3/ckVHNnnBtLSxPvKh649kjMHDQ1 kRyw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781911814; x=1782516614; 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=i/UBxztk9FzNckObXXg5AeElk2tIk+IMNK3xdbJ6LSM=; b=gA6MtkaAxS5dqYI4RXYTvgVZNUjo3owi4ZfE1J9OzKhbl1Z1zA42SfKaJ01IjCFN5h phTjEhfbabwE0K/GRuwXY8Pt7XuaPD58l92jkIG2peBAOaY4A1C5oSSyHuLfq+SmyIje iePf6U5dZKZA+eyWTZC+mWwUTDQUdOxRGWsbrx4PRXie0DAK8WV5oieRW3qtCj20d5HK gtBQJ5DUXNKDssFsq3HCHREjdzXwSwFUct1u8zShfiz6rPmx5Gi3VH9OEvrbyCL+vwVi 0FqBkm/0u9vaslSP8ClE0jYA5O7A2t3fHQTW1edII6AamGjwHmYfggIijnA5UOpo3+nR Zwsg== X-Gm-Message-State: AOJu0YwcbPZcc00FLSbTNvZsQfYTSn8ul/A6xgJrLmwWyS5gzdV6U3c2 Z4AccjmAW2WgRzP6B6qY8kB+rACNTFXiZ78gAjBTByB9AhktU+RHaOLqosr3cjFwhg8dfpndSum zLmdZbiuM3ALBSWvu4exNtXDlsWNCKHB4UiZ3ZvtKOgO/836Vwl/VpIyiA+1aDpUv2g== X-Gm-Gg: AfdE7ckcOouUcwy5LgN+Xnj3691hDziYAmelorlLlunCOGQprqTOH40Bj6ROAtyYJAW JRF6HMdGoJJWhzQY3Zfq+KGCEc1EbFfK24aQXz/2ajiZkc7NYh/Qf69h66UeVev5PrKec4nH4++ B+C6dEkoHZhBGY/afKPhTbf0vw8LT31bLkeVWOnO4H3mHpv6Xd254naqmuGunxdKg9meX+v8WjN U7MX57YlWOR7jqo15dKFUC0pPUNlkRIsBMO8FdCLF2N1UqpKBj03EpYOu1K2QCt7qw2Ku6RlszA CxxPOJ4SVhH9KIQeXUoI1anUw5F1QJK4uck48nbaSDE2fOCZ3TC8Jb4AnniCSStdGqr/z7wzA88 UbygMysgjlsUnHu9PP/0tLNWurllogZdBdDFfZtIbEdIp0N6wqe0qfJKiw80= X-Received: by 2002:a05:693c:3105:b0:304:dd1c:737e with SMTP id 5a478bee46e88-30c07156ec1mr3453578eec.16.1781911813977; Fri, 19 Jun 2026 16:30:13 -0700 (PDT) X-Received: by 2002:a05:693c:3105:b0:304:dd1c:737e with SMTP id 5a478bee46e88-30c07156ec1mr3453559eec.16.1781911813424; Fri, 19 Jun 2026 16:30:13 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 40/74] target/hexagon: Implement {g,s}etimask helpers Date: Fri, 19 Jun 2026 15:58:37 -0700 Message-Id: <20260619225911.159473-41-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: o_WirfrDw_yJoCtz-OA0gAy9iiAd8LF5 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX7BfMHFWu+ODJ U5n4MzkHRenaVPaQ8ErsZ43aLVHCSNHcgmiMoNRYebeZb6VtAiPQJmnW0gUjGi/yNydMe7DV29E 6F1lLDU9hE2Ug796mRFgkj++/JFICVb2qlj2k6aVcZbnUqcZ2d5/1GTVeZ7gC03FyCMIffSE1wU crcyOabatpnuinicbSHipABEu8dWswvgI59vtQH7vW1QEQQYxKxa7VwzHwmpJ+ShOSB8R7UlJLs FSzfHUKJnTmw/23gclZmUeLf6yb6FGzL9wSeonj+44ExyLy7BiE4dSh8re9Onrb7U/BSEJ3Ih5z uN71H2hurIWqqLRCxmK3Is6L/Il9/PLfQawum/GceCH9nQJbTBNElZ6rkgnrLvC5f2yzRPMBFAG mQTC9+Ktrip5UKSM1LcD0WG7WfJHb0Kue83g85sjfxJ49EfNXMhXcCVp8wm85Xiau32cCg0L5lr A1Pjo7ZAT9xMYilYaRQ== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX5w0F7gvqVRBw DlMqgL0mSFmApJiI2DnUc4zdhUoIO3hJhtw/9Q1WKADmi0C2WaND97UOJ5+zZM7f9Yhezp3JOSp KXwxgnMAWR/urCFJWM9jzdU45odiIcQ= X-Proofpoint-GUID: o_WirfrDw_yJoCtz-OA0gAy9iiAd8LF5 X-Authority-Analysis: v=2.4 cv=TdOmcxQh c=1 sm=1 tr=0 ts=6a35d106 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=he7afFXPmx5H4pWyvLYA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 impostorscore=0 spamscore=0 phishscore=0 malwarescore=0 clxscore=1015 suspectscore=0 bulkscore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190226 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781912015846158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/op_helper.c | 36 ++++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index b9cf1f188bb..1680e300ec4 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1499,12 +1499,44 @@ void HELPER(resume)(CPUHexagonState *env, uint32_t = mask) =20 uint32_t HELPER(getimask)(CPUHexagonState *env, uint32_t tid) { - g_assert_not_reached(); + CPUState *cs; + BQL_LOCK_GUARD(); + CPU_FOREACH(cs) { + HexagonCPU *found_cpu =3D HEXAGON_CPU(cs); + CPUHexagonState *found_env =3D &found_cpu->env; + if (found_env->threadId =3D=3D tid) { + uint32_t imask =3D found_env->t_sreg[HEX_SREG_IMASK]; + qemu_log_mask(CPU_LOG_INT, "%s: tid " TARGET_FMT_lx + " imask =3D 0x%" PRIx32 "\n", __func__, + env->threadId, + (uint32_t)GET_FIELD(IMASK_MASK, imask)); + return GET_FIELD(IMASK_MASK, imask); + } + } + return 0; } =20 void HELPER(setimask)(CPUHexagonState *env, uint32_t tid, uint32_t imask) { - g_assert_not_reached(); + CPUState *cs; + + BQL_LOCK_GUARD(); + CPU_FOREACH(cs) { + HexagonCPU *found_cpu =3D HEXAGON_CPU(cs); + CPUHexagonState *found_env =3D &found_cpu->env; + + if (tid =3D=3D found_env->threadId) { + SET_SYSTEM_FIELD(found_env, HEX_SREG_IMASK, IMASK_MASK, imask); + qemu_log_mask(CPU_LOG_INT, "%s: tid " TARGET_FMT_lx + " imask 0x%" PRIx32 "\n", + __func__, found_env->threadId, imask); + hex_interrupt_update(found_env); + return; + } + } + qemu_log_mask(LOG_GUEST_ERROR, + "setimask used with an invalid tid near PC: 0x%" + PRIx32 "\n", env->next_PC); } =20 void HELPER(sreg_write_masked)(CPUHexagonState *env, uint32_t reg, uint32_= t val) --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781912023; cv=none; d=zohomail.com; s=zohoarc; b=P9xGP+W0HA/jBxS5C2weJ2Uu9hLW9eDpzWD7jlGHAN+nZ+ZApiEVgAOPPj/aQy20fFEx4g22BX9/9XblwUrW8zIiDfGRj8q1v35VLdqKrGDc1u/LptOCOC/DEbxsAtFvHuHC5sPLS4E6G14BWZLwy2JUpXFqTg4MqM4T6GJSqgE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781912023; 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=HfSshN2DTXGV0fIztvVhxkGkdYU5fHFXewTdLdv52c8=; b=IfymGCPcMYJsYY3QRScPM7nFtwV3+ELPAI4hmR+58sMXIF1I7+5V8tpJmdZZkVgsF5HdkBZWo2N1IcFcIsLZNJlL6XyMwGCQlST0tY1v4QjhrYEA2AUtV6YjCLXaPU7xL7lWtMwOz6UXW6LlInXBSUfxF9ogDcTj56oxlwwkf1E= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781912023315261.8846389603855; Fri, 19 Jun 2026 16:33:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waifN-0003nC-AQ; Fri, 19 Jun 2026 19:30:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifD-0003mD-1I for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:20 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifB-0007Nr-AX for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:18 -0400 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLYCDW1336529 for ; Fri, 19 Jun 2026 23:30:15 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evp67578w-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:30:15 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30bef75a41eso2060800eec.0 for ; Fri, 19 Jun 2026 16:30:15 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d75csm1212646eec.15.2026.06.19.16.30.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:30:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= HfSshN2DTXGV0fIztvVhxkGkdYU5fHFXewTdLdv52c8=; b=giwdmLaoj5VPZXWm +/miD/DhAF/+vX7Qt8QgejNtChZRJwhUAny5wlZYZxHTj7XuN8+ePwonvX66hi/s KSJCSI+QAkEmn9as2btKaC9pGcgjc5U9HL9sSAUqiMrxz+WNSka28e58OAcAWLz0 3mlXNy6XmxqmcvrUzZD+oZE7ikIOS5xsZ98kKPL3O3kXEN8MYNO9jFN2Z6Ka+lOL 8++v+7SPpd7ky0iUe2U9i/6sjNQgv93ebCQSd+SewLC77qO3ARuaZAFV37sc3djf 12M+Zogwyy6456hWZm92vISIHwNLuHFA9adV6Aa3kgOk7WKtL2pdlBCcTPfc/DjU ytL+hA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781911815; x=1782516615; 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=HfSshN2DTXGV0fIztvVhxkGkdYU5fHFXewTdLdv52c8=; b=Skxe1OnRZNtUeTQdPWQSnjxUG7A3lTU0QmJYEa6tnkrRgsfdSZYos9LF5YSwSwS59d Wb20NaUG6ZToE4WUQRWkW3rjuGNdTPZPT6HYmx8p2/NjExF3jyuMotX7+0X7mhiCKFE3 PsXeyshok2fs2ZhO65xDLjq2MzwNUV7JjqpIiRlnE7YJXsalyZwi0ikk+VsHz0TuEkdC GhgITInYB6/WeTDTMAcd0RgB5SYRAl7kVm0rVjJZCTPtKfv7ttpd5P1styXywdGEAwkx 0e7zib8FEM2DkLL12sH8LXKQ4uCngQvBSGk7DeaGSkw7Gx2pIJdwDAhz7n9Ka/MbRZJp jlyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781911815; x=1782516615; 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=HfSshN2DTXGV0fIztvVhxkGkdYU5fHFXewTdLdv52c8=; b=GFkYNJNwVFslgNHMkZwESiKy7UrXYABRW84ZDpX7hLPiQcAJKyhRI/2Gn5hYgFFoQZ fAhVpE/QNq6RGX7G6dPU2Zdp1y7+0wL6FoX9GZx3zlP3j+Ttk4qdpOAKTA9VW7HxJ9L4 MevqM5hNLnABMjxIiVswkRJhiqE6C7ahUAXEA6ZhpvC7Agj/1dSuSrd32fiQh+ncuSoF pdP6AqEw1R08gugf0zyBddtEX/f9KZlvRIGJ3Fjx21Rlx3UO9agBQ4OzPS5ZtqaIMdXR nSjdb/rio959pSjtyBr1/7A9dr69c930ve2gwXMjRs4oXGT9EhLNhO/uWZMqwENP7gSa xpXw== X-Gm-Message-State: AOJu0YzdfWCpBMsluUUcHlR4iqMb7Tcnv5on2VA+49NsKDRSsCqvQXNo jOB4pCllmA7aliehWuE0DSxsu2VOxvbT5WsKNS8S1TiZflGfw8P5RokOI5aICWsXLpHw5jTmiqg ibWKtJgpU5Hmta3e9RgzyMgCygUTxUk6ob0NLFeckAl1kIyhrdQ1yGqmmCSHbI+EY7A== X-Gm-Gg: AfdE7clhTdEtyDHVsBxG7ZBa3FpCyTvWq9lMmcS6GWHGDohuD8pnz6Laf1iSusR5Gck nbjF1PSSjOkXnaQ7yi3vHLma/kUqGYEHOXGihGOm8qt7UcJD0YN601LDbLBUPnOmkEGehWwiz/u YweE1rb2m3FznPP1EZldNTmJXlC5g/C1ORY40//uc/DbC81XeSqM4gZU0ycrq2MJ2D0TjPjBmqG j25PGwGDuMMkQuHyeHHsedMWkbkRF+QaCte03cnr5oRANKMTsZI7BVfqOYmL9vOkapaQ7/09TkB LHHPkkm3SI7FxFAjpdKKW9O9KyHdzZfT/7KeAXFmnT0s3y9SxGKbmYO2Tv8AXxZcUIU5CrconYM ldgWa1QrlteMaz/7A16ZLVvF5kG1cTaGNwVa6RJxr5k29GQSJvVNhz2BKBm4= X-Received: by 2002:a05:7300:80cb:b0:2e7:c701:aa85 with SMTP id 5a478bee46e88-30c1dbd3d85mr898467eec.17.1781911814813; Fri, 19 Jun 2026 16:30:14 -0700 (PDT) X-Received: by 2002:a05:7300:80cb:b0:2e7:c701:aa85 with SMTP id 5a478bee46e88-30c1dbd3d85mr898440eec.17.1781911814316; Fri, 19 Jun 2026 16:30:14 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 41/74] target/hexagon: Implement wait helper Date: Fri, 19 Jun 2026 15:58:38 -0700 Message-Id: <20260619225911.159473-42-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: HJY8nt5pEvnrMR_mdZdzzvaoOwhHCZEs X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX4KSZm8XVALSH tMd2E9Bjd9HCUxTQ7RmkEwR38wP6I/Zank9IaikakOgZkE9VmyJA+A4/kXAROsJQmysO5kkQq8/ M4AGPHJoLtQUdEyhXqwYLiU/MJXkJpCta5mW9XFnog9kVWeK9J/3YKT2NmomN5Iah+5rZGn2jf3 bmXvr7/VE95aJXsQ756sAH6BI5cGEWgKJa7h+/9F4J6p+zaX8+6U7exKQwVNXbpYfOOOZsyv5+C wEiLRUEfNd7trny9yx9CUxCnAUyOliNUVspD34IpL3gO92StlnBZF3obJWm1bv2MPGplDEzTz9J GtKpq5nUttwemzyRhGQketpDHp0w14+uzoA/TFJ/fAJ0p1PK9FAcLnABwoliBVZzbcrd8ZQDdft YScVOToB4hPOiksC5NEI9kLdx8l8sqIDapJPsVgSb93fj1Nh6d6AFjMhALHSxhkifGl38RNshK/ yvDlFAInb/risrQO9tQ== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX5D0KgosJH1bE pBi/SDWzDVRd5LjHRUqvdbOU7hGLZ8mabDKr1pK+wo+aJgXeAGaAogj9Vgqz6eEGRUhgrUfYMyc /9737O1c2WvtmjP0EIgZ7YmTtTnVo5k= X-Proofpoint-GUID: HJY8nt5pEvnrMR_mdZdzzvaoOwhHCZEs X-Authority-Analysis: v=2.4 cv=TdOmcxQh c=1 sm=1 tr=0 ts=6a35d107 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=UWtQ3YZIe0Xef7kIUYIA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 impostorscore=0 spamscore=0 phishscore=0 malwarescore=0 clxscore=1015 suspectscore=0 bulkscore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190226 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781912023891158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/gen_tcg_sys.h | 2 +- target/hexagon/op_helper.c | 60 ++++++++++++++++++++++++++++++++++-- 2 files changed, 59 insertions(+), 3 deletions(-) diff --git a/target/hexagon/gen_tcg_sys.h b/target/hexagon/gen_tcg_sys.h index 264ea02752d..68b23895428 100644 --- a/target/hexagon/gen_tcg_sys.h +++ b/target/hexagon/gen_tcg_sys.h @@ -80,7 +80,7 @@ #define fGEN_TCG_Y2_wait(SHORTCODE) \ do { \ RsV =3D RsV; \ - gen_helper_wait(tcg_env, tcg_constant_tl(ctx->pkt->pc)); \ + gen_helper_wait(tcg_env, tcg_constant_tl(ctx->pkt.pc)); \ } while (0) =20 #define fGEN_TCG_Y2_resume(SHORTCODE) \ diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 1680e300ec4..9d50e6ef882 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1487,9 +1487,65 @@ void HELPER(stop)(CPUHexagonState *env) hexagon_stop_thread(env); } =20 -void HELPER(wait)(CPUHexagonState *env, target_ulong PC) +static void set_wait_mode(CPUHexagonState *env) { - g_assert_not_reached(); + HexagonCPU *cpu; + uint32_t modectl; + uint32_t thread_wait_mask; + + g_assert(bql_locked()); + + cpu =3D env_archcpu(env); + if (!cpu->globalregs) { + return; + } + modectl =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_MODECTL, + env->threadId); + thread_wait_mask =3D GET_FIELD(MODECTL_W, modectl); + thread_wait_mask |=3D 0x1 << env->threadId; + SET_SYSTEM_FIELD(env, HEX_SREG_MODECTL, MODECTL_W, thread_wait_mask); +} + +static void hexagon_wait_thread(CPUHexagonState *env, uint32_t PC) +{ + CPUState *cs; + + g_assert(bql_locked()); + + if (qemu_loglevel_mask(LOG_GUEST_ERROR) && + (env->k0_lock_state !=3D HEX_LOCK_UNLOCKED || + env->tlb_lock_state !=3D HEX_LOCK_UNLOCKED)) { + qemu_log("WARNING: executing wait() with acquired lock" + "may lead to deadlock\n"); + } + g_assert(get_exe_mode(env) !=3D HEX_EXE_MODE_WAIT); + + cs =3D env_cpu(env); + /* + * The addtion of cpu_has_work is borrowed from arm's wfi helper + * and is critical for our stability + */ + if ((cs->exception_index !=3D HEX_EVENT_NONE) || + (cpu_has_work(cs))) { + qemu_log_mask(CPU_LOG_INT, + "%s: thread %" PRIu32 " skipping WAIT mode, have some work\n", + __func__, env->threadId); + return; + } + set_wait_mode(env); + env->wait_next_pc =3D PC + 4; + + cpu_interrupt(cs, CPU_INTERRUPT_HALT); +} + +void HELPER(wait)(CPUHexagonState *env, uint32_t PC) +{ + BQL_LOCK_GUARD(); + + if (!fIN_DEBUG_MODE(env->threadId)) { + hexagon_wait_thread(env, PC); + } } =20 void HELPER(resume)(CPUHexagonState *env, uint32_t mask) --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781911857; cv=none; d=zohomail.com; s=zohoarc; b=esmWA7sx3azbr/b10V7duHe3aNKGFV7gEo9gLak01tsBnhCwGM0JzNhm1UckWUCUpuWzt8okSfG+4y5FLcN9BveSkchlGHR15frhvsK7hV4iQAVyqBCDTohdIzAvLnJvEU0hEJkTG76cnHH9BRjKpRqdWq940/2xJHHJuC1lNt8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781911857; 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=UbuzJ7YCQZGqOoiI5HAt63RuanuV51wqRpzkdURFyKo=; b=Ut5g0wYZVsdtSpjdmfO+Z0q+K5GnkbCv8CPxsc+P+rWIv8ZLf6ytg6T22d2g/i0F0odiUSkMs3nOS9MZmZinfF0qUaIYbSJLBLb59S0W/dAw8YvKUoz9zNfE6DW+tUnTaRUbkowouQkQuWV+14dptIIBdkil7vDiwgO4qXmud6A= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781911857357351.232949782324; Fri, 19 Jun 2026 16:30:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waifQ-0003qb-7Q; Fri, 19 Jun 2026 19:30:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifE-0003mQ-UE for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:22 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifD-0007Oj-7Q for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:20 -0400 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLYd0t1253233 for ; Fri, 19 Jun 2026 23:30:17 GMT Received: from mail-dl1-f69.google.com (mail-dl1-f69.google.com [74.125.82.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ewbgp8q6q-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:30:17 +0000 (GMT) Received: by mail-dl1-f69.google.com with SMTP id a92af1059eb24-138156c0492so8941761c88.1 for ; Fri, 19 Jun 2026 16:30:17 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d75csm1212646eec.15.2026.06.19.16.30.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:30:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= UbuzJ7YCQZGqOoiI5HAt63RuanuV51wqRpzkdURFyKo=; b=ZrNWYo0pN/1yh+Xw 489b07TsJYIYWbfUnNNqEU6TR4l8dq7CZbo99Yx0VB9EJQMod79WhC+sTcpgd17k s91I5ha4nuVSLKMdeIPHwbCKenDTopFvsHdMcKn93OfJ+nO16KFJbC0/jWzVqagV 1LjQ7oWd64o6WUEx2kJRNE68bActDRe92tZcMhdSG5xokqjo1ciTiIJy4WUeYs6e ULDxLbOLlEr0qKo7S0P6u59KD8mG/3SZBi4UQqd0JBL5+mysGLMGVLXMq1dcCt1y LBW6IYe/zWEzGtP+5tLrLjwb1IxsrkZASAqf/1rjOie/YrB8OBhymFrkYpB7ANf4 vhrd+w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781911817; x=1782516617; 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=UbuzJ7YCQZGqOoiI5HAt63RuanuV51wqRpzkdURFyKo=; b=FY3wSx/+u4vxg8YcbYXG8f1Al+Lk+eINZ/IO7+43h7oURkmkhrj4TR7xuUztwTfA2Z 0DAG/4J9rVdG7dS/MUypNgbf9dU1OR+Vzib2tuMvjhiw+2lbwQw+F+jIAfP2oUYgue5v 8Dbig+5M4hHG1ITC4JLL3ngLC6ndbfN9taom9PBnsxjptFZ0vmWoWhnuDiJzWnVLkNtw hXt+pi+dW7PS1YJfsB9nsKjNuA9AX5dMC6iiZ4+GOuRu1fqI9QOlYKQPGTITsWug0bps Q/SYr7XjjuOy6T5epEoF0Xq+6JWjZUYXOAQfvdzARyHkSBZMEpjxEqhOQyBXwZMk2NZA youA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781911817; x=1782516617; 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=UbuzJ7YCQZGqOoiI5HAt63RuanuV51wqRpzkdURFyKo=; b=Q9lb+ym4jKG12i0A/jNIiQudwLGrG6b1NFmypR6wxAjDGP66M59U/v9dClbKqGFoRs sq+v6bcAzT+LPaVK66Pgox2V+NPHdhO9rbT/MF2+18vaW/xEKPKkGVzeA8lnd0yhkYdT EA7A1VVYDUygSKJwO9uP1ONVfdq0OK4bwfn0sLRRHbwGelfLpWJz7eoiP2EQsrDK1SaZ CzR7sD04Rkn75orv8fdRFD9ocQz3jIWSxXHieYh7Q5g8CjhGpy89zzE4da5oaUMZt6+F BqAw7aMex7MolxhqsTeZWPOW/EAbX6j+J2FD7pncqzlI8DfFOL9MCzeIJemPyXPisdtA VEag== X-Gm-Message-State: AOJu0Yyy9+9jAPeKZDvXFJyG3G2HtwOKVWzHEaEo61CcJiGNdrxqMpFd F9NHtlXYG0QBi4dkLMxzjOdvbkYIJRA7v18aMvaVKvjEFw/plH1s6QQ7NAGv30Y2ysUaCtBsfzS 96dp8A4nvTMyyZQBQYDHYtk8sMDe52Ws2rmazJhGNms1p/M09SwligdRvkxNPwDZCZw== X-Gm-Gg: AfdE7ckCGDwg4DlhhtZJENwZIDrFL0UoCkrilfJK8Wf9eVzk3qx93ouw45tBsB1gVYC FXocM3x9T4Shxb3TA3s9SDLYC8Pz1tTbbMEw8ZB79ZAA1D9tWexQoWyAutCwhB9bnCFJjYcE5pH T74vvueki0qiuDop2gBxSy1YiuVh5KeHc/uppwSqzGQkAA2pKLzSnOWcN1UlwF/lrA39iOz1V+l Nh1uzAjWxllpngaKCkYJBSUYcEMtXxkH3ieW2KPwVSEi96KcMSbCiSPiPkcSkSOhAoHsuuQiHCc Fvp0qsi7P2wwTwv5XHhqFZn4bcvQNSL+yHu44neCTcE5CyR7QsFaHlwSJiXmoePzs+EKoo0obPY KmNRm8yGjzyzwmt2H+QiIU7O5qHNBGldrPtPKby4ZtfWZZNOe9Uu0h6XOtm4= X-Received: by 2002:a05:7300:80c9:b0:2f5:5dd3:1fd8 with SMTP id 5a478bee46e88-30c0cd8b940mr3072204eec.8.1781911817075; Fri, 19 Jun 2026 16:30:17 -0700 (PDT) X-Received: by 2002:a05:7300:80c9:b0:2f5:5dd3:1fd8 with SMTP id 5a478bee46e88-30c0cd8b940mr3072182eec.8.1781911816559; Fri, 19 Jun 2026 16:30:16 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 42/74] target/hexagon: Implement get_exe_mode() Date: Fri, 19 Jun 2026 15:58:39 -0700 Message-Id: <20260619225911.159473-43-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: qhItzqeq4zqvU19X8KYNiXgFJ_ysxIJa X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfXwZs2litz6ukW Kb7axZTpN6qBgbMzyFy9kkPPd8tffFpAJ+W8wT3xanIAcCCjW1+kQAwYtriQ0XIZNADrvdKIItS tW66dJSWjd1m/pArkeCDkDJITKWqfyzqiEouVvtRGJpv69tV9rK1kjsY1/KBwYWyfCiTg7ug53S I3uoRSRzUoNysNw8kMBVyHRPgJ8v+c3Ds2i2vygbmtDdNblcrQcGc8vkzQ9xHIwbkCUfRNRQH22 UU1IdHa/JXWWvu3/4ZJsAdCMpnuhknQMJg3NWD09Nhjl9JUUNoNl2yDoOENx3s8TzL0gMIGPqPx 65q5Nq+MtQdyv/bUMnhnPG7imkrBPXGEqksFdxzt6CJkusZ+iAFYUV54i7WjZmoQ8wviIU1q9CB 17dXVB+hrM8x+C56J05tcsEDWrLTszD/7Zw0yON40Mf1N2BNhnKSPLBkSfRF6aLnf2qQYafSQLk Jx33zNdJaUJlMBm+F3g== X-Proofpoint-GUID: qhItzqeq4zqvU19X8KYNiXgFJ_ysxIJa X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX/jRBXd3RD8Zm 2cMmc+L9YY2B/5D6kt1b4dY8FhBlqz1dQ/sOnuc5lNBXbK/Vpeb3K8gmRCjqBBX6Ah3ttNtRh+6 9AV9Fll+ALFiG4H8UYYYjRI3L8WPXcQ= X-Authority-Analysis: v=2.4 cv=d8vFDxjE c=1 sm=1 tr=0 ts=6a35d109 cx=c_pps a=kVLUcbK0zfr7ocalXnG1qA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA: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=4_WtjC8beq4VSFaiBQMA:9 a=QEXdDO2ut3YA:10 a=vr4QvYf-bLy2KjpDp97w:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 priorityscore=1501 malwarescore=0 spamscore=0 phishscore=0 impostorscore=0 suspectscore=0 clxscore=1015 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190226 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, TVD_SPACE_RATIO=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781911860230158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/reg_fields_def.h.inc | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/target/hexagon/reg_fields_def.h.inc b/target/hexagon/reg_field= s_def.h.inc index 9b112ccec64..d2c706d56b5 100644 --- a/target/hexagon/reg_fields_def.h.inc +++ b/target/hexagon/reg_fields_def.h.inc @@ -135,3 +135,14 @@ 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) + +/* ISDB ST fields */ +DEF_REG_FIELD(ISDBST_WAITRUN, 24, 8) +DEF_REG_FIELD(ISDBST_ONOFF, 16, 8) +DEF_REG_FIELD(ISDBST_DEBUGMODE, 8, 8) +DEF_REG_FIELD(ISDBST_STUFFSTATUS, 5, 1) +DEF_REG_FIELD(ISDBST_CMDSTATUS, 4, 1) +DEF_REG_FIELD(ISDBST_PROCMODE, 3, 1) +DEF_REG_FIELD(ISDBST_MBXINSTATUS, 2, 1) +DEF_REG_FIELD(ISDBST_MBXOUTSTATUS, 1, 1) +DEF_REG_FIELD(ISDBST_READY, 0, 1) --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781911857; cv=none; d=zohomail.com; s=zohoarc; b=FntX7aNzSvbD4wSZFZUcmg86A/tr9ZpphCy+AX5526Q8INhOMUeNKBoODP9KHrXfn1SbxW+c2Ok622UKl5lHIsN7SxR8Tcg8+XvWcl9diYrX4TcXOQ4TRqpVjQp9u7BcQeJmG/8HCU1s5kyBzc3rvYKuEeBaUVTqKrHV/NiKOcU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781911857; 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=4hsqE0JDPfvXJ30nhCZ/CCXuACFuBC+IpE9moxChOvw=; b=IQlvJVPXjKYYi0RH95uasfhFOBYuCqxIvb65iNZm1BnBmI3o+FcG9qWspgyRJLWLAEu5xGq1iTVVK0Fb+9khlQNyB2JnCYMFFd05Iir8U9MCv0bTf9luBpinW686wCweMeqCPIR221QxJHT4DPr9QF/ruWDgqeDd1vSPavRPyXs= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781911857169922.1041581689722; Fri, 19 Jun 2026 16:30:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waifQ-0003rB-MZ; Fri, 19 Jun 2026 19:30:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifG-0003mk-Mb for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:24 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifE-0007Oy-FD for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:21 -0400 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLYGe31252439 for ; Fri, 19 Jun 2026 23:30:19 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ewbgp8q6t-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:30:18 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c108c19d4so1107612eec.0 for ; Fri, 19 Jun 2026 16:30:18 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d75csm1212646eec.15.2026.06.19.16.30.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:30:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 4hsqE0JDPfvXJ30nhCZ/CCXuACFuBC+IpE9moxChOvw=; b=XYyO8XqODDnm5tEl hRDugpzlsjr3IzGIjXATS8/W+IGt4+jTrTA8ubpKAcMYUcaqYgmWfWg9IVVPeVqt 3F9TABdFgCmB8Qyphv45Gf6O8CHCoKmlvT502VZLjPdvhem8Z31cdDVOrqqEZ+8h XGEu1EwltSXjnxkJbj/1ijqnKdLvPKI+fniWa4BmRy5CaMDXFRxv5o3IVBDFnGId hMA4iTIGXNXl8EP7k8SpPwHO73nwHLksLgYgQfHgfc7fy8kzEGjAwcY0yE5jcuXj 1/jcWldmfNHaed2LU5oH6Uc4lAnF149cGIrLkFBcOVEELBI1s6GUkBrpDfbGHA3u 4XsL+Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781911818; x=1782516618; 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=4hsqE0JDPfvXJ30nhCZ/CCXuACFuBC+IpE9moxChOvw=; b=hx74zGBfetlB0eRKfX2owBUwSZwOR20E7itzRN93Vk0id1nYa54Ko7waQ4OUDZHZln wHBvufSVEAvQ6fxZFG5X5or7ABs5cK21EizQWneM+B/Z21vW5ToGSbs/SyHKwcUKepbG TvbojzpHlEpixRVtZBVuXzsJ9n9RLhk7FQvr6sHmhYHm7VuVX7U6ZRxCxO3uPlBFuUpe mcfluQZnuhlSvQF6ikbaV7bmgJNvKsHQY2NUbppMVfWj80zIN5+6kh1WezyAt+jtIYTp 5G9lWnexEqwyUc0U2cT0p2U6BROd39oNCKmtJH4I0HKadqTZmcr18PD7mGZa/AYg5rBU tqxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781911818; x=1782516618; 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=4hsqE0JDPfvXJ30nhCZ/CCXuACFuBC+IpE9moxChOvw=; b=rbCjAua7LyznKSsiVf2dVAuCx7bXQdN5zvZQx/F+xFTalYBp8gP2dIxcAvqhCLfeaD QWvSIqw0rzpPxVsKMsHcN00K/8sU3qfrbRfZeU7ZVpn/6PNZHaLJQDv8cTz9rRpzxKAm xTJIp/mMD/3dWf0QShWpQb1HEGIU7sxZHfwe+EwwsOPYy8nT1VVJ72++V6TKuwYS3/cy MFMGpINADzBZb9R3DW5gB9xbbziUD6/5bUkQ2+Dc1Y6Wc8eyUGQavRLWi0JzFemPXwbu CaVmgbSTb8y7CPh8rM4qpjqcA5jNK+2tX/j0QljJwfXGr6XtW7BE0dVh8pMOiQXnFHGU khAA== X-Gm-Message-State: AOJu0YyGNhjZu0yhDYEky4ib1bCWhB+EmoeaiiufQGCbks327cln6oLk EEzEXhnKw6dw0LqvF37Iy0t25VmGNszvKVHj8GcJltuEchBLr6tPPZUSQjhh/oeEgYI2UEenaJA pRmiy3cIbFatDPDRKCq/mesNJgjsNAJWWu+D/whtSsFMfRNQ6ylrcQjD32GrsQJnhFQ== X-Gm-Gg: AfdE7ck39cC+DONUXbvCmTkhShl0M8G6KsEKnsoz+7HPUhUeazOwdUoJoSAjbJrgJ2f Q4gOETF1czRMH/tcHJhugrOfx3x+u2K1jDC4pRtHX7L8MvIfkRSEeXh9MwyM6s8jzuTsdteGU+R VWWBddY85qWJbwwshalmaaC63aH/rT7DPrdApmM3yDDENuVzMZyB1itIygToNnrHD6h0mtcvrCd tO2lotvXy4OC15OQxBiTLaJNip2fdZhCihPAppzp5xoFlA+3zTvQbbBWRxnEmt8MgfMxNl0GOHK 8SEaL1n+Qmg5KEZ71MuIj6vkb7AC75ojmsvnyPZxYhVmfVR2tGKBlIBX/7AeqFOInZLQZ14kr5l i9spXXKbQvai3hc2Yyq+llvfEbjYGElbj+Kx8xI/TxE2bL43epqirCdhWZi0= X-Received: by 2002:a05:7300:a987:b0:2d2:96e8:1bf5 with SMTP id 5a478bee46e88-30c06e0dff9mr3018783eec.3.1781911818252; Fri, 19 Jun 2026 16:30:18 -0700 (PDT) X-Received: by 2002:a05:7300:a987:b0:2d2:96e8:1bf5 with SMTP id 5a478bee46e88-30c06e0dff9mr3018752eec.3.1781911817682; Fri, 19 Jun 2026 16:30:17 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier , Laurent Vivier , Helge Deller Subject: [PULL 43/74] target/hexagon: Implement hex_tlb_entry_get_perm() Date: Fri, 19 Jun 2026 15:58:40 -0700 Message-Id: <20260619225911.159473-44-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: s2qmbSEicOi66KK-HdJqSEWnF09S7ixp X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfXzMKBiCXscywe ORNCJZ7x7LB6s1h1H7DyVpwaNSiGBhuJ9UmVIliSIMZOZjRrfVszevvQ+kM7zfMmkwkgOQjfZ6v oofOvZBZvhefBEveJaJeCnFME8MpCWaVveuWUjCnG8mo85eEDGDg8oXIo8/YYcUHtpAj3VvGw0I B5yu1iCyG9OYU4vvfGPDedunIcChQ9TkQy6uL31KGokkJNDmPHWkrWHPKIjjt5Bvb5jVuZoorJp b6MsTiR1YQN3LSZhkJoyNYZWzVoFknlxMrH42ekxtxL66aXayeF2EmiGzfxBUpnGxB/zGCi3LkB w1bQxf4nB7EUkAFiIDEnpO0246HvEbbpDUCy+PG5nJ2QejUk8a4cMGBA0ZSUgbk9uav7j917vnL GUTCOsy3gkr1kbKaQnHhhy+xqC8UvUYlnDOTpisdv4jo4CwLweLrbsdplpOetBelvBeiOHlURpR DFzpYduOsRJZJqL1YGg== X-Proofpoint-GUID: s2qmbSEicOi66KK-HdJqSEWnF09S7ixp X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX0rieNwBfLQeS 8eTgXjB38c2qszrjOs2jIdCmGIrNfI1enphHFObEDGCAOXrUqMr1HVQzDUhDoFw+7y06FRCfAHK h/wHkuFtmLt1e3WUCTYUhrHHv0++v6I= X-Authority-Analysis: v=2.4 cv=d8vFDxjE c=1 sm=1 tr=0 ts=6a35d10a cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA: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=RKVJoAg1yBLoogzcrgwA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 priorityscore=1501 malwarescore=0 spamscore=0 phishscore=0 impostorscore=0 suspectscore=0 clxscore=1015 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190226 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, TVD_SPACE_RATIO=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781911860009158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- linux-user/hexagon/cpu_loop.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/linux-user/hexagon/cpu_loop.c b/linux-user/hexagon/cpu_loop.c index 9f54c7b3f96..0958c51fbb3 100644 --- a/linux-user/hexagon/cpu_loop.c +++ b/linux-user/hexagon/cpu_loop.c @@ -63,6 +63,13 @@ void cpu_loop(CPUHexagonState *env) break; case HEX_EVENT_PRECISE: switch (env->cause_code) { + case HEX_CAUSE_FETCH_NO_UPAGE: + case HEX_CAUSE_PRIV_NO_UREAD: + case HEX_CAUSE_PRIV_NO_UWRITE: + force_sig_fault(TARGET_SIGSEGV, TARGET_SEGV_MAPERR, + env->gpr[HEX_REG_PC]); + + break; case HEX_CAUSE_PRIV_USER_NO_GINSN: case HEX_CAUSE_PRIV_USER_NO_SINSN: case HEX_CAUSE_INVALID_PACKET: --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781911892; cv=none; d=zohomail.com; s=zohoarc; b=YsBa4W15cwWAckmOhG5tAYq38VzGcO5aJ7atEt0MHpA9cxsD8GpkpePDTSnQAa3w17WJXQXNxnL9er9YMiveofYg9I2bdJ9DjZhfO110hybyVuF+8j64vKsyBvXo/ql/nta41XdVrT1ykVWsvUez3z945MU68iaZZEKkWUPJBak= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781911892; 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=aIbWXnylGEOIxNE7Hh9Cxzq5WDrKFEMpHLRhBN9RrG4=; b=il2P74uz1t+cyterf1NiomhPxXKaVhlbX5o1y/B4fbubOcopx4DJKLt5NS78oI7OYwK/cev6figyl+MQlmdp8hFoThcpL+ZyERAKOT4Ry5ZQR7FJ4hsD7IPVH3z7QwPd7CGLG3C0RaI2HXWHWgnzzruDWRGfPKwaKfnrShAKydc= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781911892863496.9764080518893; Fri, 19 Jun 2026 16:31:32 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waifO-0003pp-UC; Fri, 19 Jun 2026 19:30:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifI-0003nD-Pm for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:27 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifG-0007PN-EQ for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:24 -0400 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLZFf91253955 for ; Fri, 19 Jun 2026 23:30:20 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ewbgp8q6v-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:30:20 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30ba395b047so10086065eec.0 for ; Fri, 19 Jun 2026 16:30:20 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d75csm1212646eec.15.2026.06.19.16.30.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:30:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= aIbWXnylGEOIxNE7Hh9Cxzq5WDrKFEMpHLRhBN9RrG4=; b=fR458NBrXw70nnic dHyzUHn5wVm9IGAOCEDHNFMSowX0hpy4jNzzHfton6e97mcbUSNZC9bJDBlASy9h 4YKu2NLueGiIZTLwlVfF9NkwCSUnXfX1zDiw524WpnQHcGHiIwzqvUU3tbd+y41m cYX/9nCRHd8xFSkGkrBaZXPSDZZbMGMQgQY5FaW9OI14B5yd1anqrmDM7kTvFCKL iHFO2bZ/69DMXQgu+zjZe6OzfJmLcEv1K9FkIllsmcQsh4dPT/NVrcMrrKYYyFGg a5XysYFcZIi/PbZb/pogFvmy7Sp9kjDejULmy2F8a8zhLTpB3zxtrQHgTci8ALQ4 WJr3PA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781911820; x=1782516620; 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=aIbWXnylGEOIxNE7Hh9Cxzq5WDrKFEMpHLRhBN9RrG4=; b=P+mhvZVpsCKeg20CPs2EpHFXgMIICxpbO43I/JrzK1+dLO3xCLtoBpclFVAWQYnGjh ttdRTNsyPVeCtpVPDZ5ajNb0GL0yFxaICCx1g9e5t+BdGx+3GyIHQyDCAGS/GP3RUh3E rCZ21yIDBXyjZtPwAMjs3+z49Hask92OAiE++A574jZAbianPM6sGkZNgXob5MtNYRoU R9ckWBCGGQbnZI9uy01c7YCXITxPWPV9VacapP2xmeS3tUjMQUVKHJMarXbmwsEhd7vV MM6K2zGlTFCtxhPHbx3OpV9mj80iPLx08l7keVzEfbgUpPwkBADBPjIRfCzC4030MBKd Wuyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781911820; x=1782516620; 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=aIbWXnylGEOIxNE7Hh9Cxzq5WDrKFEMpHLRhBN9RrG4=; b=CeBk6X1LCT7NMfmcQSaMLFSExmacQOYxEoNv3xF2SJFfu2uWhBYWbc92C8LkidemRL jhea/nbiNNXSVREIOl387AZpjZlrL21TL7Bkwhwc1hWj2lKkxh8HUH8uvsZ0AOpDxIe7 rzS31x0JseebzQoS+yn4UXDkYhFTPvXp6Vo6ict/e2E33lQpqYmtOHDflGbnbhRIbMlP lTcu01ycKmm5THHVUgDbj0obp56r3MUWmyOtnwY0CfkZIx68bibfPGI7XUlID4eR/Yjj lTu9OTf4grFXGIqd4CKRpCo3GTrm2XMBpjHpg5prC2EGp9mOE/oHR3ycXj/iYnAoT2L8 jE6Q== X-Gm-Message-State: AOJu0Yz+bStXJ5Fsb9+GJwDdCl12DkUnChZeUcHuLgTT/7dx5KlHtqQc rbuZPb0xeuLAH/u4xuKuF0gigq97n540RAvptpo6stl/W3cPXuQ7GnT7HW+fJQjepaldgYPo6wD GokuGC7qmMcF4vpm0Yc8MGLHugo0e5/jvP7D3o+LpPgjRtvuPn883UtpByZdVTwgqqg== X-Gm-Gg: AfdE7ckDcnoaqaFuOr7SiCHgOUdwYIBUm35A73vOqC/mwe1dYa8XqagpLc+sg3uWGPU SpI3jXT9pBTeFdR71CkQM1OY6K6/HVdsrJCisxxr3AYvNQXFw0WDJURUx3/TnBd889qfu14t0lq YLF0RFZThohBHjz0rkJLjnQhEx6nC/Pw95Sn879p2YL8ilEOCxaqSsnQjd1pHXfLcOcoJxCDsvi jFHusUdYiBCom//ra1DSHNV92WNF5SZMHqUPX/NyZAtgPxwfU21VfmMD36uXhreIJ0gsTFzQNb5 yVCau+evXhzI7xuSk8usGa56vsaQ5SBwC+l6bltpznr19bovmUJK3zSqYbL+es7V544nIvRvx5M LSEZVpprtfB+KDSIvKxGkO3bhlHn/vmb9whflAoZucyhKSQF5YWMSTRzn4QY= X-Received: by 2002:a05:7300:8188:b0:2c5:b23e:48a6 with SMTP id 5a478bee46e88-30c07169376mr3557483eec.23.1781911819843; Fri, 19 Jun 2026 16:30:19 -0700 (PDT) X-Received: by 2002:a05:7300:8188:b0:2c5:b23e:48a6 with SMTP id 5a478bee46e88-30c07169376mr3557456eec.23.1781911819206; Fri, 19 Jun 2026 16:30:19 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Mike Lambert , Pierrick Bouvier Subject: [PULL 44/74] target/hexagon: Implement software interrupt Date: Fri, 19 Jun 2026 15:58:41 -0700 Message-Id: <20260619225911.159473-45-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: OVanrADrKPbfbRtNR3o7y1WItkRxvRFO X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX3Wo4mHqdJB/l iCxrqeXTuKv33lw6mcngPOCXGyYj/Pcjq9sCdjU7XECLXnBtgUmrFOZy0G8Dpfd6AIwkDSMC/gX E0FjqJ9hgR5yCJYlowqWzmLSBUHAzG5ALFvHTKODg65U0qv8JY2IzE7kR7ED85BA3tWnkGaGgEu 2VzDzK0A4lA2KVh0nRZGinQVVDjLiACk4OuvO6IwunkFEdWaxrgC6XQH2G140GI3B8SLD3MFfoj 8tisjWLo1vgKgNtemT3UqZd5y2EjPHnfYY0clcMq6i/tqM5yk0Mfxj4FeEvwdXTx9AWnYTKHrX5 apwjb54zfNElSxQomOTAAcTMXThflBVF5CpqrYkkGHr8oBHJDRb+w+LLT3Jb75/yiRtViLByQiC ecANrynkHQnd3VYbXmlNgs0N0XyeJNSs9NkUl8OWjrjEN1wZNYpWDxuuLl4SuS9DPSs/X6ptfS6 wVaKNxaYOw0P52IbzXQ== X-Proofpoint-GUID: OVanrADrKPbfbRtNR3o7y1WItkRxvRFO X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfXyXWlUOIe77BN 1VuNAWwuruF6s+nnmAb2n1srQpBxKszs+hd/qjxIs3PKddkv2olotsJldsg+1oRG10dAuzcuMqO 6LRGWoVcDKvelwCRtdS3kv5SyZ5hNgE= X-Authority-Analysis: v=2.4 cv=d8vFDxjE c=1 sm=1 tr=0 ts=6a35d10c cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=tNsvDMl9nzr4Tn7f5JwA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 priorityscore=1501 malwarescore=0 spamscore=0 phishscore=0 impostorscore=0 suspectscore=0 clxscore=1015 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190226 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781911893422158500 From: Brian Cain Co-authored-by: Mike Lambert Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- target/hexagon/hexswi.h | 17 +++ target/hexagon/cpu.c | 1 + target/hexagon/hexswi.c | 271 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 289 insertions(+) create mode 100644 target/hexagon/hexswi.h create mode 100644 target/hexagon/hexswi.c diff --git a/target/hexagon/hexswi.h b/target/hexagon/hexswi.h new file mode 100644 index 00000000000..48c1ae6e4c1 --- /dev/null +++ b/target/hexagon/hexswi.h @@ -0,0 +1,17 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HEXSWI_H +#define HEXSWI_H + + +#include "cpu.h" + +void hexagon_cpu_do_interrupt(CPUState *cpu); +void register_trap_exception(CPUHexagonState *env, int type, int imm, + uint32_t PC); + +#endif /* HEXSWI_H */ diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 27f0ef50df2..ec0ca3ee678 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -34,6 +34,7 @@ #include "sys_macros.h" #include "accel/tcg/cpu-ldst.h" #include "qemu/main-loop.h" +#include "hex_interrupts.h" #endif =20 static ObjectClass *hexagon_cpu_class_by_name(const char *cpu_model) diff --git a/target/hexagon/hexswi.c b/target/hexagon/hexswi.c new file mode 100644 index 00000000000..43c373ea2ee --- /dev/null +++ b/target/hexagon/hexswi.c @@ -0,0 +1,271 @@ +/* + * 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 "exec/helper-proto.h" +#include "qemu/log.h" +#include "qemu/main-loop.h" +#include "arch.h" +#include "internal.h" +#include "macros.h" +#include "sys_macros.h" +#include "accel/tcg/cpu-loop.h" +#include "tcg/tcg-op.h" +#include "hex_mmu.h" +#include "hexswi.h" +#include "hw/hexagon/hexagon_globalreg.h" + +#ifdef CONFIG_USER_ONLY +#error "This file is only used in system emulation" +#endif + +static void set_addresses(CPUHexagonState *env, uint32_t pc_offset, + uint32_t exception_index) + +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t evb =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_EVB, + env->threadId) : + cpu->boot_addr; + env->t_sreg[HEX_SREG_ELR] =3D env->gpr[HEX_REG_PC] + pc_offset; + env->gpr[HEX_REG_PC] =3D evb | (exception_index << 2); +} + +static const char *event_name[] =3D { + [HEX_EVENT_RESET] =3D "HEX_EVENT_RESET", + [HEX_EVENT_IMPRECISE] =3D "HEX_EVENT_IMPRECISE", + [HEX_EVENT_PRECISE] =3D "HEX_EVENT_PRECISE", + [HEX_EVENT_TLB_MISS_X] =3D "HEX_EVENT_TLB_MISS_X", + [HEX_EVENT_TLB_MISS_RW] =3D "HEX_EVENT_TLB_MISS_RW", + [HEX_EVENT_TRAP0] =3D "HEX_EVENT_TRAP0", + [HEX_EVENT_TRAP1] =3D "HEX_EVENT_TRAP1", + [HEX_EVENT_FPTRAP] =3D "HEX_EVENT_FPTRAP", + [HEX_EVENT_DEBUG] =3D "HEX_EVENT_DEBUG", + [HEX_EVENT_INT0] =3D "HEX_EVENT_INT0", + [HEX_EVENT_INT1] =3D "HEX_EVENT_INT1", + [HEX_EVENT_INT2] =3D "HEX_EVENT_INT2", + [HEX_EVENT_INT3] =3D "HEX_EVENT_INT3", + [HEX_EVENT_INT4] =3D "HEX_EVENT_INT4", + [HEX_EVENT_INT5] =3D "HEX_EVENT_INT5", + [HEX_EVENT_INT6] =3D "HEX_EVENT_INT6", + [HEX_EVENT_INT7] =3D "HEX_EVENT_INT7", + [HEX_EVENT_INT8] =3D "HEX_EVENT_INT8", + [HEX_EVENT_INT9] =3D "HEX_EVENT_INT9", + [HEX_EVENT_INTA] =3D "HEX_EVENT_INTA", + [HEX_EVENT_INTB] =3D "HEX_EVENT_INTB", + [HEX_EVENT_INTC] =3D "HEX_EVENT_INTC", + [HEX_EVENT_INTD] =3D "HEX_EVENT_INTD", + [HEX_EVENT_INTE] =3D "HEX_EVENT_INTE", + [HEX_EVENT_INTF] =3D "HEX_EVENT_INTF" +}; + +void hexagon_cpu_do_interrupt(CPUState *cs) + +{ + CPUHexagonState *env =3D cpu_env(cs); + uint32_t ssr; + + BQL_LOCK_GUARD(); + + qemu_log_mask(CPU_LOG_INT, + "\t%s: event 0x%02x:%s, cause 0x%" PRIx32 "(%" PRIu32 ")= \n", + __func__, (unsigned)cs->exception_index, + event_name[cs->exception_index], env->cause_code, + env->cause_code); + + env->llsc_addr =3D ~0; + + ssr =3D env->t_sreg[HEX_SREG_SSR]; + if (GET_SSR_FIELD(SSR_EX, ssr) =3D=3D 1) { + HexagonCPU *cpu =3D env_archcpu(env); + if (cpu->globalregs) { + hexagon_globalreg_write(cpu->globalregs, HEX_SREG_DIAG, + env->cause_code, env->threadId); + } + env->cause_code =3D HEX_CAUSE_DOUBLE_EXCEPT; + cs->exception_index =3D HEX_EVENT_PRECISE; + } + + switch (cs->exception_index) { + case HEX_EVENT_TRAP0: + if (env->cause_code =3D=3D 0) { + qemu_log_mask(LOG_UNIMP, + "trap0 is unhandled, no semihosting available\n"= ); + } + + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 4, cs->exception_index); + break; + + case HEX_EVENT_TRAP1: + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 4, cs->exception_index); + break; + + case HEX_EVENT_TLB_MISS_X: + switch (env->cause_code) { + case HEX_CAUSE_TLBMISSX_CAUSE_NORMAL: + case HEX_CAUSE_TLBMISSX_CAUSE_NEXTPAGE: + qemu_log_mask(CPU_LOG_MMU, + "TLB miss EX exception (0x%02" PRIx32 ") caught:= " + "Cause code (0x%" PRIx32 ") " + "TID =3D 0x%" PRIx32 ", PC =3D 0x%" PRIx32 + ", BADVA =3D 0x%" PRIx32 "\n", + (uint32_t)cs->exception_index, + env->cause_code, env->threadId, + env->gpr[HEX_REG_PC], + env->t_sreg[HEX_SREG_BADVA]); + + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + break; + + default: + cpu_abort(cs, + "1:Hexagon exception %" PRId32 "/0x%02" PRIx32 ": " + "Unknown cause code %" PRIu32 "/0x%" PRIx32 "\n", + (uint32_t)cs->exception_index, + (uint32_t)cs->exception_index, + env->cause_code, + env->cause_code); + break; + } + break; + + case HEX_EVENT_TLB_MISS_RW: + switch (env->cause_code) { + case HEX_CAUSE_TLBMISSRW_CAUSE_READ: + case HEX_CAUSE_TLBMISSRW_CAUSE_WRITE: + qemu_log_mask(CPU_LOG_MMU, + "TLB miss RW exception (0x%02" PRIx32 ") caught:= " + "Cause code (0x%" PRIx32 ") " + "TID =3D 0x%" PRIx32 ", PC =3D 0x%" PRIx32 + ", BADVA =3D 0x%" PRIx32 "\n", + (uint32_t)cs->exception_index, + env->cause_code, env->threadId, + env->gpr[HEX_REG_PC], + env->t_sreg[HEX_SREG_BADVA]); + + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + /* env->sreg[HEX_SREG_BADVA] is set when the exception is rais= ed */ + break; + + default: + cpu_abort(cs, + "2:Hexagon exception %" PRId32 "/0x%02" PRIx32 ": " + "Unknown cause code %" PRIu32 "/0x%" PRIx32 "\n", + (uint32_t)cs->exception_index, + (uint32_t)cs->exception_index, + env->cause_code, + env->cause_code); + break; + } + break; + + case HEX_EVENT_FPTRAP: + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + break; + + case HEX_EVENT_DEBUG: + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + qemu_log_mask(LOG_UNIMP, "single-step exception is not handled\n"); + break; + + case HEX_EVENT_PRECISE: + switch (env->cause_code) { + case HEX_CAUSE_FETCH_NO_XPAGE: + case HEX_CAUSE_FETCH_NO_UPAGE: + case HEX_CAUSE_PRIV_NO_READ: + case HEX_CAUSE_PRIV_NO_UREAD: + case HEX_CAUSE_PRIV_NO_WRITE: + case HEX_CAUSE_PRIV_NO_UWRITE: + case HEX_CAUSE_MISALIGNED_LOAD: + case HEX_CAUSE_MISALIGNED_STORE: + case HEX_CAUSE_PC_NOT_ALIGNED: + qemu_log_mask(CPU_LOG_MMU, + "MMU permission exception (0x%02" PRIx32 ") caug= ht: " + "Cause code (0x%" PRIx32 ") " + "TID =3D 0x%" PRIx32 ", PC =3D 0x%" PRIx32 + ", BADVA =3D 0x%" PRIx32 "\n", + (uint32_t)cs->exception_index, + env->cause_code, env->threadId, + env->gpr[HEX_REG_PC], + env->t_sreg[HEX_SREG_BADVA]); + + + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + /* env->sreg[HEX_SREG_BADVA] is set when the exception is rais= ed */ + break; + + case HEX_CAUSE_DOUBLE_EXCEPT: + case HEX_CAUSE_PRIV_USER_NO_SINSN: + case HEX_CAUSE_PRIV_USER_NO_GINSN: + case HEX_CAUSE_INVALID_OPCODE: + case HEX_CAUSE_NO_COPROC_ENABLE: + case HEX_CAUSE_NO_COPROC2_ENABLE: + case HEX_CAUSE_UNSUPPORTED_HVX_64B: + case HEX_CAUSE_REG_WRITE_CONFLICT: + case HEX_CAUSE_VWCTRL_WINDOW_MISS: + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + break; + + case HEX_CAUSE_COPROC_LDST: + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + break; + + case HEX_CAUSE_STACK_LIMIT: + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + break; + + default: + cpu_abort(cs, + "3:Hexagon exception %" PRId32 "/0x%02" PRIx32 ": " + "Unknown cause code %" PRIu32 "/0x%" PRIx32 "\n", + (uint32_t)cs->exception_index, + (uint32_t)cs->exception_index, + env->cause_code, + env->cause_code); + break; + } + break; + + case HEX_EVENT_IMPRECISE: + qemu_log_mask(LOG_UNIMP, + "Imprecise exception: this case is not yet handled"); + break; + + default: + qemu_log_mask(LOG_UNIMP, + "Hexagon Unsupported exception 0x%02x/0x%" PRIx32 "\n", + (unsigned)cs->exception_index, env->cause_code); + break; + } + + cs->exception_index =3D HEX_EVENT_NONE; +} + +void register_trap_exception(CPUHexagonState *env, int traptype, int imm, + uint32_t PC) +{ + CPUState *cs =3D env_cpu(env); + + cs->exception_index =3D (traptype =3D=3D 0) ? HEX_EVENT_TRAP0 : HEX_EV= ENT_TRAP1; + ASSERT_DIRECT_TO_GUEST_UNSET(env, cs->exception_index); + + env->cause_code =3D imm; + env->gpr[HEX_REG_PC] =3D PC; + cpu_loop_exit(cs); +} --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781911920; cv=none; d=zohomail.com; s=zohoarc; b=GtkmXlef2cdyLrlR1OPtKVNTfS676YjtTar2DiJJ1xfeC9HDcRCWpOLuGHqDK5hWAuXguGuMsVFZ1SFsdCoE7X8EWdhBvVWPj0Jo2KQFdtWKIthnAOqFa9h/FeVYLxReQaQH+e+8hkCxx90H8J+pUq+Z08IyKnJw2fLKIvD+Ryg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781911920; 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=6s9XZ/nLEOgw9bOPHjCnqUR35YzhNIE5sWEtOxfe0pE=; b=H14RUrA9wri1wwII/WrCN9b2uuZZ0e1I/ojXakPp2pCLOrtyTiIz8Uvnm9sZqbqvIr+jl93gnFise+ZQcVzd9amjIPJlrC40sVOpJ1ahqXpxiRUNq7uhQ20DkCoCz+YDufJ7X5bLplPIDYf6CAbNTSMPybyWPaMtuGUYDEysHBA= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781911920229783.8746248360944; Fri, 19 Jun 2026 16:32:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waifP-0003qL-EF; Fri, 19 Jun 2026 19:30:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifJ-0003nT-IQ for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:29 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifH-0007PV-BN for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:25 -0400 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLXcj31251161 for ; Fri, 19 Jun 2026 23:30:22 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ewbgp8q6x-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:30:21 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30bc5f826f2so4640925eec.1 for ; Fri, 19 Jun 2026 16:30:21 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d75csm1212646eec.15.2026.06.19.16.30.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:30:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 6s9XZ/nLEOgw9bOPHjCnqUR35YzhNIE5sWEtOxfe0pE=; b=LvICFJnKc414TdtK QUIZGUKDkuuv5FTx5qKDfV/eBEp15dRJiMVhzoPPqztC2152WVHxKus/ZERLPmeB oLJUBET/GUrQpBwNrbfJfacax3frft75BFI19EtB0zYurPPuBXcbYkJa3dJSZAYd 93SR5xaQH4JYOVwxXH4mLqzDcxoO8VDaXmdH0V/oUE/HA8eGXaxL8Rly0oVyceHi zbEf1tMMtzXD1IUtfwdSTqE1gsW8uxY8/PCu/0YXjUwiHWaXlw4Peo+6dIm7B0k6 Wkq9OMQqH26FxpdooWLrW2S2FeCn0AY8OOU2sO12eEzn7yW5P9GaFpqzz/6OqepV e0qNJA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781911821; x=1782516621; 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=6s9XZ/nLEOgw9bOPHjCnqUR35YzhNIE5sWEtOxfe0pE=; b=f4wgJHwMxIF9F9RAgYcqsp3kIbyORIsRAVFGfFM2Iu9gezuPMOFY9M6g5CNnY+4Y5a HC85/Rh3mTWYyQTx4HMoY7uTj/qVJmiU1PZAoQKr7UAM4wHsxOA8pWQk5K3dHDtQWJb9 0x5iVrawR4gqdZjQjuM3RfPVZoERkDa4KMU5FcrfTDhqoerE+NncbWm/SAM52JgQS8Y0 XAC+s2OHLBGAnWIEuj1id3f3RmLOUQV7iowpe7NZsTAJ4ksHUslVxeCo9W9b6uHen/yd mGMeK5J08tX1DblrmmPVSUS4vbU88msycYZLUwIXu+sFSw44kICHXmNu3jmdjaHEui00 GFvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781911821; x=1782516621; 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=6s9XZ/nLEOgw9bOPHjCnqUR35YzhNIE5sWEtOxfe0pE=; b=tKmk3onpD8fJBvdt2XyzlRSd5e9kVpJ1mqRwzl0yvvJ8PEje05DXFHWyR1xSRVNXYg Krc5Imh6YRMQV5+YuqryJLpVQzRRb995EX1fW3m4kWZZHLkC0tDIbd/mP1gEDKYwqBju zhljhpZgQNf4EdRZKYLVSwO6X6H4DCY1i9hMtLM5ZPSvoEtOmZN0z2/SmocQnx7bI9RY Z8G+Z487veh73vBiERiLO/UbaoijXgZQg/btWaN9nvTqDBEXpLYFWkUcgxO7pEBKROzp sAam9Y+EuCNalUCHEy4xAJQzS5T3FxEIks7knjzsONSZoQo6hxl9UN5FIrqtNSI4/TbK g5pQ== X-Gm-Message-State: AOJu0YwbhlKG+sMkjMm4+8way1PUJx83eTuY00rFqUbECYwnJJKT7mCl mUBqOlSMDD7KDaLIF0fmEWx4K4cHuWCoE74glWoc1awRDxYbo6MoVT/VoJ6jkGMDxH3r4KGVKSC 8TxAScQu/AA5Oxs9MvoXKspxsjUPW/HS5aNW1vu/QJCZajXNsJVd0c9NceBL9bpYmEA== X-Gm-Gg: AfdE7cmXfFyTB6mhGEssr8E275TIF/jyynGMW3fAMrJvwtd2UxHHu0zHZdUYzHPUr6M bfuMedmgqUrUz7Q2WjVGPunQC0HHMc1CJ74z/zkPjNW0bvCjMbrxU0hyINSIJ9MmsTzNXAahdTd xeaBV+e2fmB69G6QHMoU0iNntj4QMuibAVuU3WOZP/P9Xr79/WHnaf2IkgQH7YjlDLVCxFbzELh VzuZSwDUXUAND5xiG23BJdc02UP7WnAgbYSGuBJk5AYCx2T435rhz6INrBnLPUpukrVkF7CX8vl p4DKUnd/PcsgNUvytTwkj7hhIDf8HZIW+Grj2D/AQRhZLkUkNckT6GVXqiP21lfZ0QKuDDByoIo S0Kx+hiC2HMTeTVvMZyWgLIS2lIp7tQEI3T6e4SCfIAPgAxeP8JXGYryKu0c= X-Received: by 2002:a05:7300:cd96:b0:2d0:239a:23cb with SMTP id 5a478bee46e88-30c0d0c7b78mr1956417eec.16.1781911821055; Fri, 19 Jun 2026 16:30:21 -0700 (PDT) X-Received: by 2002:a05:7300:cd96:b0:2d0:239a:23cb with SMTP id 5a478bee46e88-30c0d0c7b78mr1956396eec.16.1781911820505; Fri, 19 Jun 2026 16:30:20 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Taylor Simpson , Pierrick Bouvier , Alessandro Di Federico , Anton Johansson Subject: [PULL 45/74] target/hexagon: Implement stack overflow exception Date: Fri, 19 Jun 2026 15:58:42 -0700 Message-Id: <20260619225911.159473-46-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: AqOdzdgEGSsPwualti0lg-X2K4RUiSdr X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX0OkDVpLnX8H9 NYB8xjA2k33l7VKV79EthExNwAxRHyO6lQcbIAqbjulUKT5vrNdCg3/GcxlQudDTllEhYmrVJHv oKs6nSUx7QdtMFjZzoAM32o5AbkDk5eojcq9fcpPuX7hlBImqHwOzwxwQANNnnq0A57UOB5aVuq s0XynPzgtRHVPEBAUYKVGxo0SuY0F3dmzbEr9s8DmTdq7pPq8iW5zFwIm55mULOKumL2qp8hGBj QQEpsQMnuMFyjvUz9MxyDemkVQMs+yGKYVPBUzWyCeEksqB6fQWYZHTF9a0uN0S0N9ECBZQlGGb CL85zL7qlTfDHRH+OGHAd3fd8MYNYynaJM3gbfuOLwH85X2wF5W/ouIHYlRNsw3Yc7sQf8CCHpe 8e7um5KN4r2GHEr4UvquTxhMlzXzUpAVVN7V7Aeu1tEHnjzSwLfLNYT9vaxcTq8tBNv8PAOKn7N Gkn2QcHe4xONnRoAI3Q== X-Proofpoint-GUID: AqOdzdgEGSsPwualti0lg-X2K4RUiSdr X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX42WJOwg+GAku Kqix+FVLJUNf+XoDEk+6Bn2icfmHuexd5VtMQG57lRspA06s/jfN3F6Qc2xi0+P2KsvXYFLQ+Nh jAcZJfHfZ+kHfkRRpoZJ4CKvDRnaS4s= X-Authority-Analysis: v=2.4 cv=d8vFDxjE c=1 sm=1 tr=0 ts=6a35d10d cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=DTjK4E8Rq4C45BV92HcA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 priorityscore=1501 malwarescore=0 spamscore=0 phishscore=0 impostorscore=0 suspectscore=0 clxscore=1015 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190226 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781911921983158500 Implement the frame limit check for system emulation mode. When allocframe computes a new stack pointer below FRAMELIMIT, raise a precise exception (HEX_CAUSE_STACK_LIMIT). The check is skipped in monitor mode. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/helper.h | 1 + target/hexagon/idef-parser/parser-helpers.h | 2 ++ target/hexagon/macros.h | 3 -- target/hexagon/sys_macros.h | 4 +++ target/hexagon/translate.h | 2 ++ target/hexagon/genptr.c | 18 +++++++---- target/hexagon/idef-parser/parser-helpers.c | 9 ++++++ target/hexagon/op_helper.c | 36 +++++++++++++++++++++ target/hexagon/idef-parser/idef-parser.y | 3 ++ 9 files changed, 68 insertions(+), 10 deletions(-) diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index 0ec3a099cb6..aa3604dbdc5 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -109,6 +109,7 @@ 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_3(raise_stack_overflow, void, env, i32, i32) DEF_HELPER_2(swi, void, env, i32) DEF_HELPER_2(cswi, void, env, i32) DEF_HELPER_2(ciad, void, env, i32) diff --git a/target/hexagon/idef-parser/parser-helpers.h b/target/hexagon/i= def-parser/parser-helpers.h index 2087d534a93..d3dfcec5690 100644 --- a/target/hexagon/idef-parser/parser-helpers.h +++ b/target/hexagon/idef-parser/parser-helpers.h @@ -295,6 +295,8 @@ void gen_cancel(Context *c, YYLTYPE *locp); =20 void gen_load_cancel(Context *c, YYLTYPE *locp); =20 +void gen_framecheck(Context *c, YYLTYPE *locp, HexValue *addr, HexValue *e= a); + void gen_load(Context *c, YYLTYPE *locp, HexValue *size, HexSignedness signedness, HexValue *ea, HexValue *dst); =20 diff --git a/target/hexagon/macros.h b/target/hexagon/macros.h index 041e68a150e..21ab8ae5bbf 100644 --- a/target/hexagon/macros.h +++ b/target/hexagon/macros.h @@ -538,9 +538,6 @@ static inline TCGv gen_read_ireg(TCGv result, TCGv val,= int shift) =20 #ifdef CONFIG_USER_ONLY #define fFRAMECHECK(ADDR, EA) do { } while (0) /* Not modelled in linux-us= er */ -#else -/* System mode not implemented yet */ -#define fFRAMECHECK(ADDR, EA) g_assert_not_reached(); #endif =20 #ifdef QEMU_GENERATE diff --git a/target/hexagon/sys_macros.h b/target/hexagon/sys_macros.h index ade57290166..707afc53e1f 100644 --- a/target/hexagon/sys_macros.h +++ b/target/hexagon/sys_macros.h @@ -97,6 +97,10 @@ #define fTRAP(TRAPTYPE, IMM) \ register_trap_exception(env, TRAPTYPE, IMM, PC) =20 +#ifdef QEMU_GENERATE +#define fFRAMECHECK(ADDR, EA) gen_framecheck(ctx, ADDR, EA) +#endif + #define fVIRTINSN_SPSWAP(IMM, REG) #define fVIRTINSN_GETIE(IMM, REG) { REG =3D 0xdeafbeef; } #define fVIRTINSN_SETIE(IMM, REG) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index 208cf141e7e..f79bdedd7b6 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -341,4 +341,6 @@ FIELD(PROBE_PKT_SCALAR_HVX_STORES, S0_IS_PRED, 3, 1) FIELD(PROBE_PKT_SCALAR_HVX_STORES, S1_IS_PRED, 4, 1) FIELD(PROBE_PKT_SCALAR_HVX_STORES, MMU_IDX, 5, 2) =20 +void gen_framecheck(DisasContext *ctx, TCGv_i32 addr, TCGv_i32 ea); + #endif diff --git a/target/hexagon/genptr.c b/target/hexagon/genptr.c index ee69feae4b0..1ebc7471409 100644 --- a/target/hexagon/genptr.c +++ b/target/hexagon/genptr.c @@ -893,26 +893,30 @@ static void gen_load_frame(DisasContext *ctx, TCGv_i6= 4 frame, TCGv EA) tcg_gen_qemu_ld_i64(frame, EA, ctx->mem_idx, MO_LE | MO_UQ); } =20 -#ifndef CONFIG_HEXAGON_IDEF_PARSER /* Stack overflow check */ -static void gen_framecheck(TCGv EA, int framesize) +void gen_framecheck(DisasContext *ctx, TCGv_i32 addr, TCGv_i32 ea) { - /* Not modelled in linux-user mode */ - /* Placeholder for system mode */ #ifndef CONFIG_USER_ONLY - g_assert_not_reached(); + TCGLabel *ok =3D gen_new_label(); + tcg_gen_brcond_i32(TCG_COND_GEU, addr, hex_gpr[HEX_REG_FRAMELIMIT], ok= ); + gen_helper_raise_stack_overflow(tcg_env, + tcg_constant_i32(ctx->insn->slot), ea); + gen_set_label(ok); #endif } =20 +#ifndef CONFIG_HEXAGON_IDEF_PARSER static void gen_allocframe(DisasContext *ctx, TCGv r29, int framesize) { TCGv r30 =3D get_result_gpr(ctx, HEX_REG_FP); + TCGv_i32 new_r29 =3D tcg_temp_new_i32(); TCGv_i64 frame; tcg_gen_addi_tl(r30, r29, -8); frame =3D gen_frame_scramble(); gen_store8(tcg_env, r30, frame, ctx->insn->slot); - gen_framecheck(r30, framesize); - tcg_gen_subi_tl(r29, r30, framesize); + tcg_gen_subi_tl(new_r29, r30, framesize); + gen_framecheck(ctx, new_r29, hex_gpr[HEX_REG_PC]); + tcg_gen_mov_tl(r29, new_r29); } =20 static void gen_deallocframe(DisasContext *ctx, TCGv_i64 r31_30, TCGv r30) diff --git a/target/hexagon/idef-parser/parser-helpers.c b/target/hexagon/i= def-parser/parser-helpers.c index 70bfa64432d..b942d9ea16b 100644 --- a/target/hexagon/idef-parser/parser-helpers.c +++ b/target/hexagon/idef-parser/parser-helpers.c @@ -1731,6 +1731,15 @@ void gen_load_cancel(Context *c, YYLTYPE *locp) OUT(c, locp, "}\n"); } =20 +void gen_framecheck(Context *c, YYLTYPE *locp, HexValue *addr, HexValue *e= a) +{ + HexValue addr_m =3D rvalue_materialize(c, locp, addr); + HexValue ea_m =3D rvalue_materialize(c, locp, ea); + addr_m =3D gen_rvalue_truncate(c, locp, &addr_m); + ea_m =3D gen_rvalue_truncate(c, locp, &ea_m); + OUT(c, locp, "gen_framecheck(ctx, ", &addr_m, ", ", &ea_m, ");\n"); +} + void gen_load(Context *c, YYLTYPE *locp, HexValue *width, HexSignedness signedness, HexValue *ea, HexValue *dst) { diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 9d50e6ef882..a8bf89ab996 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1393,6 +1393,42 @@ void HELPER(vwhist128qm)(CPUHexagonState *env, int32= _t uiV) } =20 #ifndef CONFIG_USER_ONLY +void HELPER(raise_stack_overflow)(CPUHexagonState *env, uint32_t slot, + uint32_t badva) +{ + /* + * Per section 7.3.1 of the V67 Programmer's Reference, + * stack limit exception isn't raised in monitor mode. + */ + uint32_t ssr =3D env->t_sreg[HEX_SREG_SSR]; + CPUState *cs; + + if (GET_SSR_FIELD(SSR_EX, ssr) || + !GET_SSR_FIELD(SSR_UM, ssr)) { + return; + } + + cs =3D env_cpu(env); + cs->exception_index =3D HEX_EVENT_PRECISE; + env->cause_code =3D HEX_CAUSE_STACK_LIMIT; + ASSERT_DIRECT_TO_GUEST_UNSET(env, cs->exception_index); + + if (slot =3D=3D 0) { + env->t_sreg[HEX_SREG_BADVA0] =3D badva; + SET_SSR_FIELD(env, SSR_V0, 1); + SET_SSR_FIELD(env, SSR_V1, 0); + SET_SSR_FIELD(env, SSR_BVS, 0); + } else if (slot =3D=3D 1) { + env->t_sreg[HEX_SREG_BADVA1] =3D badva; + SET_SSR_FIELD(env, SSR_V0, 0); + SET_SSR_FIELD(env, SSR_V1, 1); + SET_SSR_FIELD(env, SSR_BVS, 1); + } else { + g_assert_not_reached(); + } + cpu_loop_exit_restore(cs, 0); +} + void HELPER(ciad)(CPUHexagonState *env, uint32_t mask) { g_assert_not_reached(); diff --git a/target/hexagon/idef-parser/idef-parser.y b/target/hexagon/idef= -parser/idef-parser.y index c6f17c6afa7..22070d8c3fe 100644 --- a/target/hexagon/idef-parser/idef-parser.y +++ b/target/hexagon/idef-parser/idef-parser.y @@ -404,6 +404,9 @@ control_statement : frame_check ; =20 frame_check : FCHK '(' rvalue ',' rvalue ')' ';' + { + gen_framecheck(c, &@1, &$3, &$5); + } ; =20 cancel_statement : LOAD_CANCEL --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781912049; cv=none; d=zohomail.com; s=zohoarc; b=EfKrczEa73fEmmq3aqBOB3fiZKhB/5YnJVISgdakIyT5MHsg6VEvM9XZCo0o3c+/yOxfX0EbGrvmK2tj0+hzYkXKBypCEHdXsrHWISb9aujnwwL8TsSQxOgnd+VXHfgVsnBBHGJtGQZKvWY0EEKa74E+DU3xOOAYaEx2GAhl7DA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781912049; 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=zeFyaaj9ezk3dMnLRJvqloiuq+fIgJ0YErhEi239GAY=; b=KzBEZW31+MVVH2t7Fddhum68KSoMufcsYVGkXx8BmhbHLOgBeEtsZ76wDnfyjFlREsYSM0EUjpDpm92RHAMPuG8ftT0RZZ9knNJvMj6y4B6jTu9glI0oX+XHUYKH1wg8Ozid2URIvfQsv29fffZWDXb0Q7RrsHECBo9F9fTQRaA= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781912049354474.42467782221865; Fri, 19 Jun 2026 16:34:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waifR-0003rR-DW; Fri, 19 Jun 2026 19:30:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifK-0003np-RE for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:29 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifI-0007Pj-NQ for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:26 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLXkoa1286035 for ; Fri, 19 Jun 2026 23:30:23 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evy72ka9d-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:30:23 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30c0d568830so4715307eec.1 for ; Fri, 19 Jun 2026 16:30:23 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d75csm1212646eec.15.2026.06.19.16.30.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:30:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= zeFyaaj9ezk3dMnLRJvqloiuq+fIgJ0YErhEi239GAY=; b=EZc2lijcUzgunSDH YKbJWMpolhmEMBGqqSXG8o/spFqLJAxil2Hi3GKGRQk3P5z0KaSoULYzWgkmdz55 WlSDPqQiImMKvCWzSMZQpBMxBLjjeRQ1fubOm8YWTvzeel3xDFVQk4ugnsrQrlvm BiIFjZbTnMRtn5d0NyZ6ddL7X/tCqIEz3l8bl0i3AEMsY8aY3pzGcnl1xwgdtpJd inZiBsiVvAtpVUaYnGsFxP4DP6EFkz2s0YEkKZzkYE59oLdzTHmOnhPdR+hKZ2RG Q6xAQtxZvWM4Pr5eAJB6+Ut7JTgskHP5892FGG/qNQhCXpHQUjiiIm1DWnc2Udah 7zD6Cw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781911823; x=1782516623; 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=zeFyaaj9ezk3dMnLRJvqloiuq+fIgJ0YErhEi239GAY=; b=Kr0ZMTFJ2m/aFVaAZBAH3jMD8pzf6PL1DZ2zDSEY3E0EM4UrL+EzvNGp8JqiNNjPMT tO5ixDXPCdbVM9qeCsC/NZje6wy7eKDdbgGMLRq7xopev0wMjk0vvwA50QrnPn2SZlF2 U9+zc34/EFkt1CTWsk69/d4mYzRKlCdAvzLW9enx9Y5t/kozh5k+VV4hirPJR+/gRqGA lbfkxIcABZCKEW4ZDchvpK+XpdIun2KiuT0lG5+fXPD/Zpihf42zmRUWAkB+KiujoXzD xtnChAx+VlnzptBpEAW6rbDOeA0jCRVJbhTIBMGOvwmGvVpnLfvTDH7172jqt9MPZ1l6 V3Bg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781911823; x=1782516623; 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=zeFyaaj9ezk3dMnLRJvqloiuq+fIgJ0YErhEi239GAY=; b=E5Zbt+RVPT1FbhCfkXRb1/2W84FPHOccP+JXQbXBGBNGGxX/y+YG9M4N1wiwB49CjL XMGyIfx7TWfspaYEOIzcKeAbEE6V/DeeFgqrdvVYbxERUKcF5dTZpWhIpCAZVYYFKGoE qTsymVoj8YByZGdPfgQ+2PxBldckkxgFwHSPlV/LjkLE6RcAB5bvIQ2yaQbOdMJNy6X9 wWa1hJW1QXgP87G7L2YHt7FMiXl9DMomDD8ihSjnu9U4csWNdtm4Gl/ILEA+Q1JEzR9I E/QZKypOCdn29PkWpsjs5D6YHV6trI7uSxbAA7e1+fyZUoLMYV43PUnDpjxwPytZdAiD Cm4g== X-Gm-Message-State: AOJu0YxQ4l72ALmx5ahyMX6SLWrwg1czRFAI1w8dgqoUN15GAKddNUiV RYiXBPcxBu0AKnrlKFk1R8NaQ0y2VsWee7Q9Fj94p6VVfFnH3L+EMUgfaV9lHBcMq+KO9MXM/JI kqkURyzB7ZwEuU4hvVVEQ+R7KzZ7RddtyKiyvBNWD5OP7rk+4bmC9ynLn7A2lcUWY4Q== X-Gm-Gg: AfdE7clAm6Z5q2WnXFsbpjd+0zytmSsYQ4GY/IExvOiOqKevmjdMBu8Y4nV21VANAWj 0dj58jF0O1iJ0UuwXR625odqmkyhvDXjS8LAZnN3h78UnACVb0TDqGYySMznUMqpqZ+UZn/wxLv L7+EVHDFXYPkMY0V1IvU5VhcA5+P+HRYUBR1Yp3xhDzzYD0qQp/XgeFTY5mUVa+c8utwA9RwZ5f Nk7Wm5d9EqYVSO+kK+GaR9AeQLCFmQMCtOuxl+m4QD8JpNVnnsV1YZ5CbtiaVZOwsXQUXm1q6OF YAmT+pvhtEuxeSGsJAW0SETApJfW3R5z3fvtk/dr2QpvOAeLouPGqZ84fPNsW53BMopyNSSrUOP t5fkcr2xY52pUTiYHko9uouebQhFhDecXArI2i19oy2ZFTZjRDhd3a5jKmXU= X-Received: by 2002:a05:7300:bc05:b0:30b:d344:abcf with SMTP id 5a478bee46e88-30c0cd3bd41mr2564626eec.5.1781911822619; Fri, 19 Jun 2026 16:30:22 -0700 (PDT) X-Received: by 2002:a05:7300:bc05:b0:30b:d344:abcf with SMTP id 5a478bee46e88-30c0cd3bd41mr2564592eec.5.1781911822070; Fri, 19 Jun 2026 16:30:22 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 46/74] target/hexagon: Implement exec_interrupt, set_irq Date: Fri, 19 Jun 2026 15:58:43 -0700 Message-Id: <20260619225911.159473-47-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX7shCZ5yec9iF ZYpOt6kdDppMULGrNJSfGwH7Omz7UL2aqrz57aeJm+sDS9fjJP85FSf0ucSt/A1Hz8aEz4JWG65 A1/TKfMZ0ybhaGwL2Kvs8wK387xLnIKteDPNR/eJWxqSTapFn5aGshGRhcmAivLdWgc1tw4HzbJ bsd92me47fPBI2IjQvb8999pzPImAGXSZErUmj9IjB0NrrZarD/QCbadVmbLqcnVTHWPU0RXEys Sn4kk5cBbG8aYexfadfuFCJYP6jw63N61WZR7S8eFH4OzxWhPnCe/JPrxqvwuOVwhmjtNW8e7j6 dhPTN1Xpj4gjXU07MvlluyIjZrx/wBkJQ4yEVddYoXosXxVAyk1H+iwVEaOCFRkcrqlWGE3itw0 f90CG+d3PQAbtCwFOWNCIht9GzghvKe0aOO2S2jAbs7go86spEw0cv5hpLlG/XFdYSyOCtF2erf s/xSxDqhgf7XDHhO7/Q== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfXxKXMYFWjRwAC RRpznolibYMbWEqmUms2MIesXAOsAauqNf+6uLTmcpv6PBKNavZjC4gCXFg2MWjBTrK0SJ3Jg6m a1feEMYyLs+gKQAaEDB/vZs+3q6Q/+w= X-Authority-Analysis: v=2.4 cv=I75Vgtgg c=1 sm=1 tr=0 ts=6a35d10f cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA: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=GA9jbsKyPMLDJDmtv64A:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: bZuD7nMwmRd-OG-3leq7pmSbGkoAgwrF X-Proofpoint-GUID: bZuD7nMwmRd-OG-3leq7pmSbGkoAgwrF X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 impostorscore=0 phishscore=0 spamscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 bulkscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190226 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781912050074158501 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.c | 84 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index ec0ca3ee678..0d6551dd5b6 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -16,6 +16,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/log.h" #include "qemu/qemu-print.h" #include "cpu.h" #include "internal.h" @@ -31,10 +32,12 @@ #include "hex_mmu.h" =20 #ifndef CONFIG_USER_ONLY +#include "macros.h" #include "sys_macros.h" #include "accel/tcg/cpu-ldst.h" #include "qemu/main-loop.h" #include "hex_interrupts.h" +#include "exec/cpu-interrupt.h" #endif =20 static ObjectClass *hexagon_cpu_class_by_name(const char *cpu_model) @@ -304,6 +307,36 @@ static void hexagon_cpu_synchronize_from_tb(CPUState *= cs, cpu_env(cs)->gpr[HEX_REG_PC] =3D tb->pc; } =20 +#ifndef CONFIG_USER_ONLY +bool hexagon_thread_is_enabled(CPUHexagonState *env) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t modectl; + uint32_t thread_enabled_mask; + bool E_bit; + + if (!cpu->globalregs) { + return true; + } + modectl =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_MODECTL, + env->threadId); + thread_enabled_mask =3D GET_FIELD(MODECTL_E, modectl); + E_bit =3D thread_enabled_mask & (0x1 << env->threadId); + + return E_bit; +} + +static bool hexagon_cpu_has_work(CPUState *cs) +{ + CPUHexagonState *env =3D cpu_env(cs); + + return hexagon_thread_is_enabled(env) && + (cs->interrupt_request & (CPU_INTERRUPT_HARD | CPU_INTERRUPT_SWI + | CPU_INTERRUPT_K0_UNLOCK | CPU_INTERRUPT_TLB_UNLOCK)); +} +#endif + static void hexagon_restore_state_to_opc(CPUState *cs, const TranslationBlock *tb, const uint64_t *data) @@ -412,10 +445,58 @@ static int hexagon_cpu_mmu_index(CPUState *cs, bool i= fetch) return MMU_USER_IDX; } =20 +#ifndef CONFIG_USER_ONLY +static void hexagon_cpu_set_irq(void *opaque, int irq, int level) +{ + HexagonCPU *cpu =3D HEXAGON_CPU(opaque); + CPUState *cs =3D CPU(cpu); + CPUHexagonState *env =3D cpu_env(cs); + + switch (irq) { + case HEXAGON_CPU_IRQ_0 ... HEXAGON_CPU_IRQ_7: + qemu_log_mask(CPU_LOG_INT, "%s: irq %d, level %d\n", + __func__, irq, level); + if (level) { + hex_raise_interrupts(env, 1 << irq, CPU_INTERRUPT_HARD); + } + break; + default: + g_assert_not_reached(); + } +} +#endif + static void hexagon_cpu_init(Object *obj) { +#ifndef CONFIG_USER_ONLY + HexagonCPU *cpu =3D HEXAGON_CPU(obj); + qdev_init_gpio_in(DEVICE(cpu), hexagon_cpu_set_irq, 8); +#endif } =20 +#ifndef CONFIG_USER_ONLY + +static bool hexagon_cpu_exec_interrupt(CPUState *cs, int interrupt_request) +{ + CPUHexagonState *env =3D cpu_env(cs); + if (interrupt_request & CPU_INTERRUPT_TLB_UNLOCK) { + cs->halted =3D false; + cpu_reset_interrupt(cs, CPU_INTERRUPT_TLB_UNLOCK); + return true; + } + if (interrupt_request & CPU_INTERRUPT_K0_UNLOCK) { + cs->halted =3D false; + cpu_reset_interrupt(cs, CPU_INTERRUPT_K0_UNLOCK); + return true; + } + if (interrupt_request & (CPU_INTERRUPT_HARD | CPU_INTERRUPT_SWI)) { + return hex_check_interrupts(env); + } + return false; +} + +#endif + static const TCGCPUOps hexagon_tcg_ops =3D { /* MTTCG not yet supported: require strict ordering */ .guest_default_memory_order =3D TCG_MO_ALL, @@ -426,6 +507,9 @@ static const TCGCPUOps hexagon_tcg_ops =3D { .synchronize_from_tb =3D hexagon_cpu_synchronize_from_tb, .restore_state_to_opc =3D hexagon_restore_state_to_opc, .mmu_index =3D hexagon_cpu_mmu_index, +#ifndef CONFIG_USER_ONLY + .cpu_exec_interrupt =3D hexagon_cpu_exec_interrupt, +#endif /* !CONFIG_USER_ONLY */ }; =20 static void hexagon_cpu_class_init(ObjectClass *c, const void *data) --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781911910; cv=none; d=zohomail.com; s=zohoarc; b=OjI+xd5EPhcyV+YG4wu3XGLSZM1N7nRlZ+EPaeKHtQbJTLAGMYi/8XbUW20E0sObGjVOZwNUsiAY2MwdqUDARtp4tq2h2Ox+5xhsLPM2YatD5exNLI0QsM2lOkYyiucpkvsh6u2sw8itGaVZnbGRkOlXEVMcnLs9oCX5NNsy3/g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781911910; 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=X05v3GkLKVJ5oepV5+STkOz6Fp+VxO6RAfpTWbT6B70=; b=XeQC+zdoyxlAk/EpIew+Web9KDx8Z88vXS96L5xHAAJgzPXD0E+X1Pq7mQkF6AhzeUWfe8HUUZE+mSxQ9uiH7K4qf198gXPhqHG/HIRRFrsJGlmmMbzzx1QqCdhMOqVUxZBHMnNRkRo4c1Ai9O9ciW9btOLwkVYnjwhtTVRV98Q= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781911910815691.6272470558216; Fri, 19 Jun 2026 16:31:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waifP-0003q8-8w; Fri, 19 Jun 2026 19:30:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifM-0003nw-2O for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:29 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifK-0007Pv-3e for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:27 -0400 Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLY6MI4085475 for ; Fri, 19 Jun 2026 23:30:24 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evmyrdm93-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:30:24 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c0f4950ceso1010025eec.1 for ; Fri, 19 Jun 2026 16:30:24 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d75csm1212646eec.15.2026.06.19.16.30.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:30:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= X05v3GkLKVJ5oepV5+STkOz6Fp+VxO6RAfpTWbT6B70=; b=T2xWqmonRaVmsSMt ZE+9CaZjOzuAByuTIJIE4kCTgeTtZy0kCeJIJcPFY7Xzkcj8tPC8rHDPbmM8xd1o uU5E30l4s6jLzMICx8MAnfc0DeRfVjQQU5PbwM0bAWPNpzufmDk9Yq1J0aeq/pa5 BbKfj+5REvBSJaLPn7kFWeP4P4vTHSC8IGQ7AjHXa+LcTH6QyYinakdBfYnFsVDt mjG8AQZmsvtIATE5trkV8JpnXSF8c3Y6GgCOXJP3qdyBV3So0t6V3tJbyRTUASXT z8R+wZ1xxESVUMPrC8Bkji0ivqDZfUkzhNkkkdhIANICpeENXzgeYWAbTLk6fmi3 SC8yIw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781911824; x=1782516624; 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=X05v3GkLKVJ5oepV5+STkOz6Fp+VxO6RAfpTWbT6B70=; b=AxEL9lKb0f/l26QHoNI9ix/nECn4T8WEHbuDxf19asxOQ5CgVHdEBu8wu2/ashxtpN aYnUbMxHOyNaaOcnppUiYGkhimXkz3iyUHgL0GiAt/likuTijo2syx8/YSS6RPa/3VHo YuVQ8c+a+JUbESfY/z01XWNCPWCHCCqthw6rxnnHBm0LzxkggQc8JBGek9d3qyz7JgV4 PY8XAMuuuBS/mK/faYjM6pTP1EbozaFaCwrui/Y0+T3D+FvUH2KhBP7VB2w2bQ7n0Jtw g+sxH7YIAOcNC0agoSdRq7018KRZGttwcxz1oeW+yfnPCcIdyGEaOhNW/8QNMxdOXjVO jD7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781911824; x=1782516624; 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=X05v3GkLKVJ5oepV5+STkOz6Fp+VxO6RAfpTWbT6B70=; b=M+i1+gdRpRMs+qpOHj+Co1sJfhsnADDOjNY7L81jRfkPY2nWW0EU6eArAgRei/X/WJ 9kMi5F41ddc6B7H25OKcaSL7AxLprhAyXorJTu+7DM7VCoB6ClvgUZq0d/UURAdPnW5t ALPjdLVQsdMPw/fAMolyKafJTq7sRevF77MC/We8aP5lAf9HFiyH0aoHkoDuzojK2aHy Gch+sbwt7LK3rR7GKaNL+nppyR7Dp2tNTP29VjqZBTMo2+p44fJIE4kQcxFh9B/4e1vN Ho9UBuYxfKqmX+mlunWVCUitSDpEjdUToCttwU1I6U202hlDGOKKNoNDAYuWTrf9LSMh ndQw== X-Gm-Message-State: AOJu0Yx5bAyxBq/GUIdh96u4f54oOV2bVPXckrir8od3gi8llmpnqXzJ 5yXOORwggnqviNUfdzLHmLNSkpoPgxTLBg41As8z39LdJe/yR1qtMDPgtt+idFLkYUgNXSkRRuS NIJCsUR/MdDStXj7/ITWqPndXjhsmbPEIeJFhpEyO0jlF0aYzRaWO61GJdmUCEZ1JcQ== X-Gm-Gg: AfdE7clqgwl1P80tUoEcPGcAUBZqero0T7rHsFfQKDQf2ijxg+WJQmBskA+taGc5r7C eWAACsXGWyJ4N6/5SYuUsRPaWULn7G3R5ogyIYfWTTWDh2A3BA79KvQyV/lcGbkYHE8KUyUrFxy 2cnzSCcjQzpU9BeTJUauh0mH3vWCtdn+1n9NIf21Z3X5eP2uNImeAXhw5/QBjqRTIzxDFHwjBB8 rVONstb/1t2SMsLuKgF8o17vgni3CP8v7GHY5rDbSWTBJE6q6T84i1wwCXrWpDp6Rbr2tuON2AZ urgKCy2n3Xk7u9oCDE5Hsjal2AXlcoAPDfDwMDzIBoYD7pPTS94Un39dSTl3ddeW9rnFCtFD2MP 1XJoit/hVumX7EoyuvN6oF9ADEgwNee9B2ecjshdXNuSCYtHVtwW52afgflI= X-Received: by 2002:a05:7301:4b01:b0:30b:eb26:7330 with SMTP id 5a478bee46e88-30c06807dafmr3487688eec.0.1781911823717; Fri, 19 Jun 2026 16:30:23 -0700 (PDT) X-Received: by 2002:a05:7301:4b01:b0:30b:eb26:7330 with SMTP id 5a478bee46e88-30c06807dafmr3487671eec.0.1781911823214; Fri, 19 Jun 2026 16:30:23 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Matheus Tavares Bernardino , Taylor Simpson , Pierrick Bouvier Subject: [PULL 47/74] target/hexagon: add simple cpu_exec_reset and pointer_wrap Date: Fri, 19 Jun 2026 15:58:44 -0700 Message-Id: <20260619225911.159473-48-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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=RZWgzVtv c=1 sm=1 tr=0 ts=6a35d110 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=pGLkceISAAAA:8 a=O9wV_FzQyngHLK0UYg8A:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 X-Proofpoint-ORIG-GUID: sXXst0VppW0Ca6r4U4l6OVXwQTS0nL60 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX618ny6QReZjg 5Q11XRKeMdfx36ShqYXhL39B2SH883j5NrAsO8ts0PRkBiJDELha1Y6pAsq059wvpArB5YSUWTq oXSlRlE1A9C4AdCppxaPY88Bcih74/qzwP88sNWOcJDGTleGa2iLDrL6errAXFluML0oNNk/VeH n42XZyS8hdhuKVJ/IqfmHYl3jz2h4+S08q9ZnpkIwkVudS/wONUTiAC95PonnrdPLyvcbT4HHjR NQqFzkK6h36e1IvTIUNADQf/Y0utkxXpfVBl+3AfpAMKWVQDpY/9mqQMSX2aVl6q7o+64pbaNgs V//YF48TZWY+ebvQpkrcAnSNNaEp3AKoT9DruTiC3mquU8FFLfdAmow4fINpG3INHWWBuhIkZQZ aO+JiYDMyMMHBINCtw4Wqm/7LBwEtPxhbwpOyzzve5zLTU9JP0Mxi5xDd8t/RxZipkjtixqIm1a n/DGJOGQqzW2CA4gqUg== X-Proofpoint-GUID: sXXst0VppW0Ca6r4U4l6OVXwQTS0nL60 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX+CYmLAw9yl6p B5N+V4lvDkMirIAv9Cga/MQ5PauzNaXH+eZBR3o62XV5lk340zup0Z8hR1zY5uK+X0p5aC5OOUn Egi7UDQxqICdnR2bh6arJNDA4Ypi8Qs= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 clxscore=1015 suspectscore=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 bulkscore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190226 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781911911509158500 From: Matheus Tavares Bernardino Signed-off-by: Matheus Tavares Bernardino Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 0d6551dd5b6..edde4b1db84 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -495,6 +495,12 @@ static bool hexagon_cpu_exec_interrupt(CPUState *cs, i= nt interrupt_request) return false; } =20 +static vaddr hexagon_pointer_wrap(CPUState *cs, int mmu_idx, + vaddr result, vaddr base) +{ + return result; +} + #endif =20 static const TCGCPUOps hexagon_tcg_ops =3D { @@ -509,6 +515,8 @@ static const TCGCPUOps hexagon_tcg_ops =3D { .mmu_index =3D hexagon_cpu_mmu_index, #ifndef CONFIG_USER_ONLY .cpu_exec_interrupt =3D hexagon_cpu_exec_interrupt, + .pointer_wrap =3D hexagon_pointer_wrap, + .cpu_exec_reset =3D cpu_reset, #endif /* !CONFIG_USER_ONLY */ }; =20 --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781911978; cv=none; d=zohomail.com; s=zohoarc; b=eKoM2TF8ZUrPtegTgEmfx/Zv3cq06Iq7JM0hgSrJWW5aZUxwQ5gDvEa3u+UkOozxl3bs2x0rYyq5N3u6y7n7g44oypEhGAcDPlaCmzkUpDIPiuiDzJGroag4+Vnw7mrcbtR6fnnt773FbkZp4Uuavc3zGWqml8CEWJy+qzvHAUk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781911978; 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=jw9yZ1Fa+tyKZPk60MTE6s7LkPtVtmumQCTRRtdnjUc=; b=n/pIzgXTmWxv8/aIgUy1Bua3OSqzymwDht6Ps6jY8XbTzk6Y1nXao9vT3CAxGPu0MD4JmrxU6rmymBEprDY9uwTeyeiamkBFkdEMxumZtl8K7yuTmgGu0cQPepUgxUMvppj4oFgHy8Kl2qWmBaJXcloR/qvcJgQ9mAgpEHJe4X0= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781911978036920.3673272538063; Fri, 19 Jun 2026 16:32:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waifP-0003qP-OT; Fri, 19 Jun 2026 19:30:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifN-0003p6-GL for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:29 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifL-0007Q9-Fz for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:29 -0400 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLYSNH1337254 for ; Fri, 19 Jun 2026 23:30:26 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evp67579q-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:30:25 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c0a27ad86so3821801eec.0 for ; Fri, 19 Jun 2026 16:30:25 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d75csm1212646eec.15.2026.06.19.16.30.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:30:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= jw9yZ1Fa+tyKZPk60MTE6s7LkPtVtmumQCTRRtdnjUc=; b=Kg+NvDuYJU/+KRGP ixR5iYdBbPXQOD3OjXqZySMOj2J2jVQE/KTOGRpmH/i7aIO8P5SDNkCgh1n9wPbj edqJ64lSYs02BBoxNL7Sg2DTk4JjE2ZnMagtuQjXI+EK9kFweHUkTt1ZNlr4cNWW ETTuc5ZH0Okx3xJKvpH3OigejidpqzO6Itxfd0HRC+phh2vIsgk03mor2bMK55jm ISzWpT+5dQi/tdIFSU95s3BMV6jyRQXm6TL7d0IojH9M5+KWo4sKffKXGep1hugI ysor63olHjwJYlQSZT4b5i6fX2mDNZ1GPnWsPJlmjoRDaKWcTU41zDO8wLCuCBw8 HkbNJg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781911825; x=1782516625; 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=jw9yZ1Fa+tyKZPk60MTE6s7LkPtVtmumQCTRRtdnjUc=; b=OGyu0Ut0Ng0b3oZ/xoZwrLIX5/PCthzy3zfm9q7mTRD0FdapKjzMxl0TrNnwyhIFY6 DTmIP7aPlYE+3tbAHy7h4m9r3sa7MRNEasltCBu0RhdaR8QMeIBqCqkg5Zq8I1mw2c79 jrkjuntF2DzSIpelRcznqBz8jOj32BPSQTNQ3RjqQBC8nRRaw352jLkIxxS4Lo9qWIy9 2TkvhJ/7S//5yo1FUsqRTu9oEDtymLNC13mB+X7gSPNR29YGjqLpy6I9ddym++h4OfDK zW0uRAOYiBLIJ8fwCxar+UimY5s5lZc1tFEhoCtKdHLw/ELSxRoa4yfUQs504mFMiWi6 K5zg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781911825; x=1782516625; 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=jw9yZ1Fa+tyKZPk60MTE6s7LkPtVtmumQCTRRtdnjUc=; b=crBd7YRTRrmF/g1PB7uKyzkR+I4ipvpmyF8d3VPCki5eAsv/FSVPR39amSW+LwMvwd amFll1YDm0VFijW2y5gjIlcobMgmCr5JpQjRrLHV3p2TrlYtR9TlGiA3NVMn2m8DepJC YEyjnEEWoTFapnXwZl8wa8bUn94lg5tUHR1+gdxHyX4ns/XveNPdVaduIW4op8T2Lbo4 IyWCZybuE+j9kCdAYBE+xIjmtu4TK8+1CancGQKSZd/+X+yCvapL4EBtTzvNJKMMO8Kd D4nVrcx8mJoDRty+w/14EW+JL740lLxbtZfD1GBxXXIHc3AZzRItzel7iSCmqw+0ASaN /L7w== X-Gm-Message-State: AOJu0YxEJ3r1Ojg9++gF9ksjWeRBR2fB80o9R4VhgCoIlrvgXXI6/D6V ymiUugJRn3JdxviKa7fWArSSRo40idcZUuQWICeWPgE0t74lzIZY/ym7oTX7bZOyCEZOQulydgP b9/IuisYq/rM3w/DncgqLfU3eazk0cz8Bvu/CgZPhq8QhbFY2AWSorXYaMXcbH59FaA== X-Gm-Gg: AfdE7clBrOpkaNv+bVaT74qOqKzH4cr7ZMRtiCBow8mqvcXz1RHMIt55Y6AIxzmERwe mxSFN6pXxCyMquQs07UuDITUDNMQEPpP491kAfYO/etZgzBOkZ7hFA8/z+lSZeORwAFpzOrjklj mAFgvCOYuxkUDHgZAIBwd6RLnm1ZoZnJD13a59LCQm/X6beUfUTQcnNaHryTwfSD68QUh7HYI5P 5T45v5qI+a+4NHrgt2YURKqsNpA1dwEGTCmceokv2gLUh2ZAW9dlPUPJ7Gho+I6IkxsJTb8KP9M Ky727LCqNUGyPaI/XUKGlcXGFLN2b9puMg+KZpF5kqUlASOjfqI1wHOQwDHQmYaVCubXig9IWg0 mac2/QULltWrU/+OeLA9QHIKG21rywOQjm17ESVegnCvV8jXCkLD5u9pacL8= X-Received: by 2002:a05:7300:8c2c:b0:304:6448:dfea with SMTP id 5a478bee46e88-30c07076582mr3504241eec.33.1781911825338; Fri, 19 Jun 2026 16:30:25 -0700 (PDT) X-Received: by 2002:a05:7300:8c2c:b0:304:6448:dfea with SMTP id 5a478bee46e88-30c07076582mr3504217eec.33.1781911824717; Fri, 19 Jun 2026 16:30:24 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 48/74] target/hexagon: Implement hexagon_tlb_fill() Date: Fri, 19 Jun 2026 15:58:45 -0700 Message-Id: <20260619225911.159473-49-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: rG3wJOdRauA-aBzml620QTPUIPzLRbB9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfXyuJ5/3gLF+VY SYtwdbcSWrYmM0xMv/Spm7TWU/xEp3ibe6tyicgKo9yzBNFEcPLgxzlYqG4KgH9ijrApMvd827s p00R5JxIBSIt5RCKDplbnH2g9ubYKYgn4ZWyX76KWnavc0jymtS4aCiWMolJ1Zkj9lIwIjd5F6Z M72oHrCqL/K6Vk0NmTBnjq04gR7kQvFR3lWbBbFx9owOr+dFqRkZ9j78rZ39BFCm8c+ZFz4FyS4 z9KJl4IfP74HZZyKS5ruL8vKe0OA1rOluAGu/MTdqWiXdnWBQv708wprfRfGGctM4ESkkCtiowh zn8wh/wxbdHg73q7w76Ifu3fTF6RzHSRQY+SiQSbKzPTyIvNaGcD1jrJDPRRmnIubLRdXZsE9p/ c4KJvB1k8+sKjSCkt/tzdzWvHi7rMXovAptovtMDzpIZRrt45SEr6k1OPRpJlbDcZfbydOhVzCK gMaUtB6LWqx1NeTKDnQ== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX8Xj3gwz7SNqO c9ucAVJVfe5fEOCBP+wE3FAwOAF6p6/nYJWUribHE04Oca15aoOQuDurshhVuy8ScL69mY1biR6 Py8NeTLYQc1vJns8D2JcskHGJsNXFYk= X-Proofpoint-GUID: rG3wJOdRauA-aBzml620QTPUIPzLRbB9 X-Authority-Analysis: v=2.4 cv=TdOmcxQh c=1 sm=1 tr=0 ts=6a35d112 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=yz7b9sy1sBSXNk6fZdQA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 impostorscore=0 spamscore=0 phishscore=0 malwarescore=0 clxscore=1015 suspectscore=0 bulkscore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190226 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781911979724158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.c | 136 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 136 insertions(+) diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index edde4b1db84..4e5a25744a1 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -38,6 +38,9 @@ #include "qemu/main-loop.h" #include "hex_interrupts.h" #include "exec/cpu-interrupt.h" +#include "exec/page-protection.h" +#include "exec/target_page.h" +#include "hw/hexagon/hexagon_globalreg.h" #endif =20 static ObjectClass *hexagon_cpu_class_by_name(const char *cpu_model) @@ -475,6 +478,138 @@ static void hexagon_cpu_init(Object *obj) } =20 #ifndef CONFIG_USER_ONLY +static bool get_physical_address(CPUHexagonState *env, hwaddr *phys, int *= prot, + uint64_t *size, int32_t *excp, + uint32_t address, + MMUAccessType access_type, int mmu_idx) + +{ + if (hexagon_cpu_mmu_enabled(env)) { + return hex_tlb_find_match(env, address, access_type, phys, prot, s= ize, + excp, mmu_idx); + } else { + *phys =3D address & 0xFFFFFFFF; + *prot =3D PAGE_VALID | PAGE_READ | PAGE_WRITE | PAGE_EXEC; + *size =3D TARGET_PAGE_SIZE; + return true; + } +} + +/* qemu seems to only want to know about TARGET_PAGE_SIZE pages */ +static void find_qemu_subpage(vaddr *addr, hwaddr *phys, uint64_t page_siz= e) +{ + vaddr page_start =3D *addr & ~((vaddr)(page_size - 1)); + vaddr offset =3D ((*addr - page_start) / TARGET_PAGE_SIZE) * TARGET_PA= GE_SIZE; + *addr =3D page_start + offset; + *phys +=3D offset; +} + + +#define INVALID_BADVA 0xbadabada + +static void set_badva_regs(CPUHexagonState *env, uint32_t VA, int slot, + MMUAccessType access_type) +{ + env->t_sreg[HEX_SREG_BADVA] =3D VA; + + if (access_type =3D=3D MMU_INST_FETCH || slot =3D=3D 0) { + env->t_sreg[HEX_SREG_BADVA0] =3D VA; + env->t_sreg[HEX_SREG_BADVA1] =3D INVALID_BADVA; + SET_SSR_FIELD(env, SSR_V0, 1); + SET_SSR_FIELD(env, SSR_V1, 0); + SET_SSR_FIELD(env, SSR_BVS, 0); + } else if (slot =3D=3D 1) { + env->t_sreg[HEX_SREG_BADVA0] =3D INVALID_BADVA; + env->t_sreg[HEX_SREG_BADVA1] =3D VA; + SET_SSR_FIELD(env, SSR_V0, 0); + SET_SSR_FIELD(env, SSR_V1, 1); + SET_SSR_FIELD(env, SSR_BVS, 1); + } else { + g_assert_not_reached(); + } +} + +static void raise_tlbmiss_exception(CPUState *cs, uint32_t VA, int slot, + MMUAccessType access_type) +{ + CPUHexagonState *env =3D cpu_env(cs); + + set_badva_regs(env, VA, slot, access_type); + + switch (access_type) { + case MMU_INST_FETCH: + cs->exception_index =3D HEX_EVENT_TLB_MISS_X; + if ((VA & ~TARGET_PAGE_MASK) =3D=3D 0) { + env->cause_code =3D HEX_CAUSE_TLBMISSX_CAUSE_NEXTPAGE; + } else { + env->cause_code =3D HEX_CAUSE_TLBMISSX_CAUSE_NORMAL; + } + break; + case MMU_DATA_LOAD: + cs->exception_index =3D HEX_EVENT_TLB_MISS_RW; + env->cause_code =3D HEX_CAUSE_TLBMISSRW_CAUSE_READ; + break; + case MMU_DATA_STORE: + cs->exception_index =3D HEX_EVENT_TLB_MISS_RW; + env->cause_code =3D HEX_CAUSE_TLBMISSRW_CAUSE_WRITE; + break; + } +} + +static void raise_perm_exception(CPUState *cs, uint32_t VA, int slot, + MMUAccessType access_type, int32_t excp) +{ + CPUHexagonState *env =3D cpu_env(cs); + + set_badva_regs(env, VA, slot, access_type); + cs->exception_index =3D excp; +} + +static const char *access_type_names[] =3D { "MMU_DATA_LOAD ", "MMU_DATA_S= TORE", + "MMU_INST_FETCH" }; + +static const char *mmu_idx_names[] =3D { "MMU_USER_IDX", "MMU_GUEST_IDX", + "MMU_KERNEL_IDX" }; + +static bool hexagon_tlb_fill(CPUState *cs, vaddr address, int size, + MMUAccessType access_type, int mmu_idx, bool = probe, + uintptr_t retaddr) +{ + CPUHexagonState *env =3D cpu_env(cs); + int slot =3D 0; + hwaddr phys; + int prot =3D 0; + uint64_t page_size =3D 0; + int32_t excp =3D 0; + bool ret =3D 0; + + qemu_log_mask( + CPU_LOG_MMU, + "%s: tid =3D 0x%" PRIx32 ", pc =3D 0x%08" PRIx32 + ", vaddr =3D 0x%08" VADDR_PRIx ", size =3D %d, %s,\tprobe =3D %d, = %s\n", + __func__, env->threadId, env->gpr[HEX_REG_PC], address, size, + access_type_names[access_type], probe, mmu_idx_names[mmu_idx]); + ret =3D get_physical_address(env, &phys, &prot, &page_size, &excp, add= ress, + access_type, mmu_idx); + if (ret) { + if (!excp) { + find_qemu_subpage(&address, &phys, page_size); + tlb_set_page(cs, address, phys, prot, mmu_idx, TARGET_PAGE_SIZ= E); + return ret; + } + if (probe) { + return false; + } + raise_perm_exception(cs, address, slot, access_type, excp); + do_raise_exception(env, cs->exception_index, env->gpr[HEX_REG_PC], + retaddr); + } + if (probe) { + return false; + } + raise_tlbmiss_exception(cs, address, slot, access_type); + do_raise_exception(env, cs->exception_index, env->gpr[HEX_REG_PC], ret= addr); +} =20 static bool hexagon_cpu_exec_interrupt(CPUState *cs, int interrupt_request) { @@ -517,6 +652,7 @@ static const TCGCPUOps hexagon_tcg_ops =3D { .cpu_exec_interrupt =3D hexagon_cpu_exec_interrupt, .pointer_wrap =3D hexagon_pointer_wrap, .cpu_exec_reset =3D cpu_reset, + .tlb_fill =3D hexagon_tlb_fill, #endif /* !CONFIG_USER_ONLY */ }; =20 --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781911983; cv=none; d=zohomail.com; s=zohoarc; b=gkR5Hj6QZYDulAEAxD+Jqa4cwvt3S0/Gg+0NxlF1JtR4wjC1IOksF7ZN/WBxdAYJ0TGq3OzdlrHx/VSf6mXTqz9xgpCdkO4q3G4Spj3r7icrK28wMqcjrKtQ6c8bXBWR+hB6W6xChJHQEejg29GBJFPD2vxH/HVjhBqetdeKL1E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781911983; 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=WYScGZeBQb/FybxxD9F89fJ15bRXNrsuCqPgSPyLkDw=; b=KAfeD7tjSak+BX1dc719ZSvRlsXMyaBGaaZDplv6cHtS1jAnM+5wXrcI+ngbKIovVEhGuO3nkXYzO73oKZld5BrNxBwKd3zyykQbYzm93fm9cbLFHs6DzFpQGgVrnOxL1UGPekTv2KOU0igTLEw4RmRrxuQCWTxRW7eVj+f1gDk= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781911983391808.0434240086157; Fri, 19 Jun 2026 16:33:03 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waifR-0003rQ-62; Fri, 19 Jun 2026 19:30:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifO-0003pf-MZ for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:30 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifM-0007QI-FQ for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:30 -0400 Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLY81G1369194 for ; Fri, 19 Jun 2026 23:30:27 GMT Received: from mail-dl1-f70.google.com (mail-dl1-f70.google.com [74.125.82.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ewcy30dwq-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:30:27 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-1384427c3efso9179928c88.0 for ; Fri, 19 Jun 2026 16:30:26 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d75csm1212646eec.15.2026.06.19.16.30.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:30:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= WYScGZeBQb/FybxxD9F89fJ15bRXNrsuCqPgSPyLkDw=; b=NtizHW+aR/wX1B/o pJLmNi4ERilD9PRBFwNQducshg3dBn5/VDogEHbAkW8iF3vbOAdZmfLTo2SkutrJ JNAfQ1n9n5aFId5VQFZBlo9Z+OAUn4U/jj+OyBnpcKhvEGEtkOQBqmBEMiLLYx1i V4bxwcMl2q5HB6pv1m7TukIV/omyJF5Z4IIH3P0BwZJZEpH4bnO0WW1YKZfkRpmL tFI6cwrWMoar1eGgVzx4HcD4K9piqzjg8XCGBTz8cZSCQmWOyWFgj18ZoyQIJT5/ Vxiu04J9MuZoAQXW/9d5r0qJTRZmwbZsRHcn1PB2HteXB1WhPqxzF7j+BVD/b5fJ 4HL2SQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781911826; x=1782516626; 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=WYScGZeBQb/FybxxD9F89fJ15bRXNrsuCqPgSPyLkDw=; b=ZQ57Tsdds/9MscAwzFrTdIwYn93u22Xtsztd01HtxV251elT/WXr6fdGI9pmYOp33M FFVth/SpX4nSAvrGNalbkGqZHW4xFGmSmGfZdjkTDFVOVGEC4LDsebwErUIqO2/csV+m 7mynJq4o03v/1+Vhhe+skpZnPETi8428T4pLGo39zag/m4syHoDNwl94uFgAGodjqP4L Mi49HI1zfC6q1QNGeNOUCeKPI9AooAF0++y7ElBGWNvW8kmQO/DPSPVbUavlZmYYzL94 NKDy168K8yEJ1fLhEHAgZ7bqr4EHOh15MoqspTgjsAtgRewKIBUjYh0Sle9/zXwOxrTh tmxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781911826; x=1782516626; 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=WYScGZeBQb/FybxxD9F89fJ15bRXNrsuCqPgSPyLkDw=; b=dBFn1pNnF2f7BlGTxpmeqDexee3p+NanIV3bpsZnlJzfgdU1CwnbkICCJQP0ro2SUM aYi9OSJMV108XCia45n1KNeVjPe+Dbchmadh5ypz5o7p5Gb4CmDI2M5mI106ddWYC6YQ Tm1IYjNTsLuxJfTsBgbJ8BlwMCPwxzJ+XKkOYRQ5d+q6QFvMh4QtT5BOQNFPIwMReMDM Lx2hKD8QOC6R+D+gXTkITc0ok2gfHdSc/ieSMNNbEGKbdhGpIHN3KygU/oLMpWO2oYFE 5uEdMuuSL24L4kTR3pro7opqEvPmH90+3Zq2pGqynnTqa8RtcLn/OTr7ctDH5s51+8Ol Xfbw== X-Gm-Message-State: AOJu0YzVeJvCSa10fPzo+McX8lTicmdUKzfJF0NwSVOtKFmOcHMhTApk TaX0LPoxf3dlQxYgXZvOil4AbAqgTXDo8II+DfIOlH0ZrGS/58Ve4cQloUT/U2qfXLLubGwFGwh RaIgc1l9GJuXAAbAQey1W6Oku4ctBPN10xq/izUGS+1eZm9Q7eTOcLUPGi/wsEu7R3Q== X-Gm-Gg: AfdE7ckpAKF6ucFuCYWtsBDiI7NUD6CXKiFL0hf4qVb/Rs1SCtptGPdFnHpdO580cEI rtdhMG+2nV6qY6Sj8SOS+nvCx+E0NmW8JEhPyxQGpKAE9ABbGUdAYpyibp8+SghHZHb1YNbEdyU VJ5uz61a3joReudEXqEbhRPpPgAuwYJbvi6cysMD1hJgKj6IbLuT9Iwjc+5VMaq1XRD3Gb1Caza ORf8ruRQ+XkwKjhI74V8zJ7z3GucpXjQkWxmjNvO2ym7FV5HejniEOxwcGJ24sJRgRp39JvBfo1 siR9rnJpAoLRHMgeXDE+OuqsLVcM6uMf/QIR4Rfk2ER8AC+A30FRBwNhttOhAuiIQGfWQcXsEk4 1wrKYvCZCR5QFwUHziOrZqTUBCoIbqrlw7iv6foNvKMzDyZ0HMG7sWkl2yys= X-Received: by 2002:a05:7301:19ac:b0:2e2:3381:2fba with SMTP id 5a478bee46e88-30c0cd3e894mr2224208eec.3.1781911826451; Fri, 19 Jun 2026 16:30:26 -0700 (PDT) X-Received: by 2002:a05:7301:19ac:b0:2e2:3381:2fba with SMTP id 5a478bee46e88-30c0cd3e894mr2224199eec.3.1781911825965; Fri, 19 Jun 2026 16:30:25 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 49/74] target/hexagon: Implement siad inst Date: Fri, 19 Jun 2026 15:58:46 -0700 Message-Id: <20260619225911.159473-50-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: fc5BYUYqwC5mLdho9Qb-DFL0oRshSRNB X-Proofpoint-ORIG-GUID: fc5BYUYqwC5mLdho9Qb-DFL0oRshSRNB X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX3kvNkFcH0MC+ eppRjGtdv+nQicgv6OVpEfZspPSRiZhkc3KEOpOS7XS7W4aB98/9/HqUKpAPnOZLbARcR0mxecs dddCDIsLOyEJ9xQ+ZRJiqQMDfrSAuMFT9zXWaeeKMDlK5RzggUM5RB1NFrFeHL0Ox5B2wvEVUmR cs7F8pkKTO/6NR6DozBm7wOM8k6WzfOLAEyWUzqqiWs6LvSs8xHJJOt6m+Y0O6bYBIOFP0iNHP+ SLTymqZ+b6QxdXfhvrSemxP4Xe6oQettM8KI7Vl83vEdiU+pLCMTAHF6wt4nfDddVua+g3p1dZY geG4MU//kwWBYsqcyag5bMNdYX5tpcOu1z0n7a+5RYwTAVVxccy6++DFUhCr97oQkXtZKjeXLDl 9E8VAX2PD1p2tLFMwO6cYV1dscXN64mV7b+4oKOP6Le6jLpZ06kmwebmKZ6d4PWuClFWcJcp9AH 3zkooe6cgQCN2xg7lEA== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfXw2AFaNjFCG5B 6eFhu0OeEP2UVIqz9FsnHI3Fp8ia755OtHn8kFpn8j0TStpUe5kCDVsdabhxFjSeXLtmIMcWgvP jkyKx+Z3/xS+iOEJF0Zsv8OK/4SjXLM= X-Authority-Analysis: v=2.4 cv=ZOvnX37b c=1 sm=1 tr=0 ts=6a35d113 cx=c_pps a=SvEPeNj+VMjHSW//kvnxuw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA: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=HdTxHAvixyPUp6pof0EA:9 a=QEXdDO2ut3YA:10 a=Kq8ClHjjuc5pcCNDwlU0:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 bulkscore=0 clxscore=1015 suspectscore=0 spamscore=0 phishscore=0 malwarescore=0 adultscore=0 lowpriorityscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190226 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781911983744158500 From: Brian Cain siad is the 'Set interrupt auto disable' instruction. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/op_helper.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index a8bf89ab996..4d319a2637f 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1436,7 +1436,22 @@ void HELPER(ciad)(CPUHexagonState *env, uint32_t mas= k) =20 void HELPER(siad)(CPUHexagonState *env, uint32_t mask) { - g_assert_not_reached(); + uint32_t ipendad; + uint32_t iad; + HexagonCPU *cpu; + + BQL_LOCK_GUARD(); + cpu =3D env_archcpu(env); + ipendad =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_IPENDAD, + env->threadId) : 0; + iad =3D fGET_FIELD(ipendad, IPENDAD_IAD); + fSET_FIELD(ipendad, IPENDAD_IAD, iad | mask); + if (cpu->globalregs) { + hexagon_globalreg_write(cpu->globalregs, HEX_SREG_IPENDAD, + ipendad, env->threadId); + } + hex_interrupt_update(env); } =20 void HELPER(swi)(CPUHexagonState *env, uint32_t mask) --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781912058; cv=none; d=zohomail.com; s=zohoarc; b=CUsILOdp/Bd4Aa3LZws0546it6Jb/52tJsHmEB0zeiixFYsuH2K/Y4QbEviLAq/0Mw9Uvk3IcjpNr8I8On5LPeqVKoh+QXlM+dAeBg85GpfLz2lZzter8+gWQYqZOeyhaGBeFRvbXF2vINJtcu2Q4pNJI27AJz7MSx+gb3egcec= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781912058; 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=JvcaRvjzOPnVsLj+Umjxfrn/9XQNcxuKMqpMR7fRmpk=; b=EeII4ZnKJjFP3l9BiYUKXtsiFiOmoKyk2AZ1KPUI0XtpyIgS6iZ/3m4UvLU2gZwSiNpKguLVg6/D+c2bMG+XEAQ+qB8FnHNS+06Lk2I5nuDFVvP6P6j9ckFi92lMUBCVB4VEQsSvmWrNDQOmZKroafW/jbCf3hElE9saz3m0UeI= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17819120583911018.9908577271898; Fri, 19 Jun 2026 16:34:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waifR-0003rS-Ik; Fri, 19 Jun 2026 19:30:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifP-0003qQ-Oc for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:31 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifO-0007QR-4D for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:31 -0400 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLYSNI1337254 for ; Fri, 19 Jun 2026 23:30:28 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evp67579u-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:30:28 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30bfe262ef0so1143391eec.1 for ; Fri, 19 Jun 2026 16:30:28 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d75csm1212646eec.15.2026.06.19.16.30.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:30:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= JvcaRvjzOPnVsLj+Umjxfrn/9XQNcxuKMqpMR7fRmpk=; b=KJHYCLU4Qnu5DmbH hYWdQYYldNGouXMlYLDCJml2ty6ZWtrw0OWqqp7xtB+Ogtc1WGBsihaqBhLEvSim dixyIrte0jHn/PE8LhVKmi2goYOo1LPVFmlL+UKMz94voMCJ9EUezQXucKEa4bhJ jK+69tafglOiCHdAfuG9Md040Ccb8R8YBSfu7QmSPlgyllqwrLvjeuT542dSc0Tc pnJh2cMiPr2YR/jasgLTHHl8GlaqAGOxdhnofOeHRdQHqiYIkeV6ZPMqN+dhrh0r mI6TC//TynWyvCLijfPBzXhtOg/aPEcUjJAt84LPlfiKyJpzhNoIz/5vFDW5nSUG kaTmQQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781911828; x=1782516628; 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=JvcaRvjzOPnVsLj+Umjxfrn/9XQNcxuKMqpMR7fRmpk=; b=FeYCQdp5ABhkv6XnnsMriJtcKYMUh/A/z9/m0vJDrzyiffyO/X0Wbp9gKovCO66Bsz allErlOgtG0H0iPmJmn/4OHrvDLMh1ESl4HGjo6IjWDIy0sfg78QW06Z3Cug6RMb9cVd 3Djgf132Gid21qjADiu6p+aKGbgj4N/uJ2qF9x0HjlyiJFYpLsdvDfKZiEtlOISlP4S3 mTYOMga6NLVVlANsBfpKgXIWDZhpdD0jG0jlKilDvSfJHS+b65bb7ZPA/EU/fztFjKTf Btr1uMqutfzjkjU+gybETWj4CHz5ZLyifaiukhmirSPsHgPPWRnH6gCR2luS1K+YCaJb ZPsw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781911828; x=1782516628; 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=JvcaRvjzOPnVsLj+Umjxfrn/9XQNcxuKMqpMR7fRmpk=; b=jyGpNAoVYSRnarV4o1iLWx0AWbg4rVSNuiFUW90maU3BA1Ae27vJSXYcdqIoyHA3c2 wULs9ErAlHpnIqqvCukZZgyYGGz3gHAibA8g+n1nVAkq2Q+f5fL90s2uDeSX2ktUC7Ok V35TDK/fOXlIYKm1HUape+YbJjlXbrxKb0aPhytvVNyePcuytgBn5UhRl1zRnPu5+iRR X1agcW+77X0VZazb0G/URIfE+hLzWu2MhRQH2CvdzU1aE9HT+VYnTvtFGrQLojdtsr8J ewWq/TkHqyPPDOhLRDXa3FRsI2ZL337ilz61gXB8fW78caJnTtjjuuaFxuv0IzdkzAgK /N2g== X-Gm-Message-State: AOJu0Yz6K6jiehX6fTM1sCGlgxoNA62KsoAqDhPoCXQxlHQOoxPl4O/o HxsFTWoV/mfw2/YIXWtDRWxeXn6HxF93SUNjSNXmWkVVn5I+MEC/SzO/R7/MX7nhpR3KhSQsDFo cVIMESsuXAac+3t5np3L24CV2KgYrKerlIbAeg3AYsMBvUTgnrbtUtqof0Eau4NFspw== X-Gm-Gg: AfdE7clUlHSDdb23HdmkjKTA68Tx7ZU7uxGfSIhfyOnf6R7fn7czsIrJf7l8+wjZAKA 5nyqdt3nQ21/lIPc4M3Y6Gq3bpOUfjHGyS1bpyHQu9mUxHklimAICcHYUOU12XJAcria59aODNO /Qf/VLbyppcxY6Kpz4Aek/IxiI8AwR5QKfo2NZtm0l22jxHLq2JBmxgu8c8qJguTT0X2BTt5KeA KOnmY0AC+nfTk2VJuhecEEtyZr/ecRKoBO/C0wtNwwQWoyuJeou+w79JjKwXXzoqMtGBSU1CHRX LoWbaDMNsmP1N78L1EF0wl5IIODzHcH4OgCo8au+oSbfZVRvGN6o6YZ3vVZgv1FY8j0BRscwbuE eSivMyC3BXsbeIUPOJGK7++v2VA/LTAoSvDIDW8ob+X6/l+yMfaRv0SVA+H0= X-Received: by 2002:a05:7300:80c6:b0:30b:ec2c:26d5 with SMTP id 5a478bee46e88-30c079d08d0mr3362114eec.15.1781911827949; Fri, 19 Jun 2026 16:30:27 -0700 (PDT) X-Received: by 2002:a05:7300:80c6:b0:30b:ec2c:26d5 with SMTP id 5a478bee46e88-30c079d08d0mr3362101eec.15.1781911827453; Fri, 19 Jun 2026 16:30:27 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 50/74] target/hexagon: Implement hexagon_resume_threads() Date: Fri, 19 Jun 2026 15:58:47 -0700 Message-Id: <20260619225911.159473-51-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: 1hNJ9BKOVeYr559eSELOKbxZH3ydArrI X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX0K3DiyX9ToY5 I1EwyH8N6M32/wH3PF5fa2qL+mRMIS27DQJFmNvmlPoXfIohrv39DC0NZaLRk67b+cU51nCFJUh a090o1+WJ9D54PIxEIDv9uCjeKyl8YFz/HpqUE18AjcrpIoU7X9b3G2KJPe19HK0fSXjTmGa4gd +/BDia8sIYknRfL+xsnPB72xoQBVGs8ITz8RlDuuVMN3BehTnLSwVXBjm4ftA4cuwpej/2CvT9X q+yBqtIJ/Eyp3e2a4FFkrXPIsIf/xIzE/bm8PT13S+VTP3UE5SQX/3XEtXlshuXbWnQu2FwcbQ6 pdx99nfCBf+gJJtluOfEa1tS/XgNc6ZeYK7+IAe9+K5/PL0XWI+q8QsYRlQ71GPKEtZ8rfv7Bvv L+Te7JbhrLJsAVagclg3s27YfWOBzh0BcXwASXwW1yiy3z/VSOXUdioGbbFGaoZSUQMB/1erFo7 0ysCwp/X+GNNXg1fbTQ== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX9KgBw4Zml/B/ QCZG4FfJT+Sdpjesn6I8F9zZIZeiILApZqM7ftBEVQdltiFNQpnRNBrOIThz9vu3V0+jSHMmTvP 4ghck4X/4lC89ENHeGRhJuTb7xR2gsA= X-Proofpoint-GUID: 1hNJ9BKOVeYr559eSELOKbxZH3ydArrI X-Authority-Analysis: v=2.4 cv=TdOmcxQh c=1 sm=1 tr=0 ts=6a35d114 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=uy5dMy9T3THg1DqjAFIA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 impostorscore=0 spamscore=0 phishscore=0 malwarescore=0 clxscore=1015 suspectscore=0 bulkscore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190226 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781912060005158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 1 + target/hexagon/op_helper.c | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 92d4bb97129..6a95a6bc5b1 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -52,6 +52,7 @@ typedef struct HexagonGlobalRegState HexagonGlobalRegStat= e; #define PRED_WRITES_MAX 5 /* 4 insns + endloop */ #define VSTORES_MAX 2 #define MAX_TLB_ENTRIES 1024 +#define THREADS_MAX 8 =20 #define CPU_RESOLVING_TYPE TYPE_HEXAGON_CPU #ifndef CONFIG_USER_ONLY diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 4d319a2637f..34c55b560ca 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1601,7 +1601,8 @@ void HELPER(wait)(CPUHexagonState *env, uint32_t PC) =20 void HELPER(resume)(CPUHexagonState *env, uint32_t mask) { - g_assert_not_reached(); + BQL_LOCK_GUARD(); + hexagon_resume_threads(env, mask); } =20 uint32_t HELPER(getimask)(CPUHexagonState *env, uint32_t tid) --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781911940; cv=none; d=zohomail.com; s=zohoarc; b=kDU9eJNDhQvlclviZ9cDpRJbk8eSCUmvx3KL2/fXZ0XO2QEJjDXHuCqcSou3doCbPEsPfbmzag7JwjmRxj0+kv+B/PQXwXfOeR2bMQs694VJMIg+5+oFc1/bNtzcH63POZNumirSPJvdRl9EbjJrU+L0w+/rCOUpMy9qj9FSJpk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781911940; 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=J1aA0AXcl1R5eWizmiiFdBlejhKxkpocBp47xOiaUuM=; b=FsPk5gx838irbNGRvdhxHjh9y2qqW6INkX+InNZ6WhuSEdW1VHcj2gKkZTiiE1eV42egt+kWoQukLlr1a56ekVn1czHQyeADgCt0zr3cgFEUbFEd5aw96aR/PIe9AG9GCzAgltjx22VftqJd7JqqY7ldj/GQNSoIuOdowL3PEyU= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781911940063407.3322207495471; Fri, 19 Jun 2026 16:32:20 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waifc-0003u2-LF; Fri, 19 Jun 2026 19:30:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifa-0003te-JS for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:42 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifY-0007Qh-Ta for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:42 -0400 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLYAJJ1336520 for ; Fri, 19 Jun 2026 23:30:29 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evp67579w-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:30:29 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30bc5f826f2so4641065eec.1 for ; Fri, 19 Jun 2026 16:30:29 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d75csm1212646eec.15.2026.06.19.16.30.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:30:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= J1aA0AXcl1R5eWizmiiFdBlejhKxkpocBp47xOiaUuM=; b=AjXIKFvkTUqNEye8 qSPJW/ombn8CVdri08VJr4kvrMe9fSI+ig5eYg6VaF184Gmyg7iETyYu8ayCpI0t 4clDKilqgm4h+bhZ1JyZTvo323B0SV1DKftnEF1wgCQW7exI0vThgrm4YAVJJhEb 4cZDOi7r/3FUMkuegWbPtvgErEvnMcG7wdRJetvFRnCCS+BIhvShRyOt/beOnBR2 gMeQyhiu3KEwPpI7N69B198aHQ0HvwmF0xLZq7gQm0nC98KeXrPcQYVL4sqOBB4s aZ7AbICX/N5MIy3cO+qnMDrE/SKiJDmjQBuC+pzDofqtDjkfvfhyYHJwjKIm2aqf JF977g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781911829; x=1782516629; 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=J1aA0AXcl1R5eWizmiiFdBlejhKxkpocBp47xOiaUuM=; b=YBGTBhN6R1+dnjwB5CC9up9NClJW7GVa2Ptx96RAZTOb8p5UBGs8QrInUia/tIXR3Y 3v4dAagOHbKotKMKDBz7quzrq4AOlmO6XF4r6zd+l650MZ/EFkC3sGSk+YuKTKryHBLj FWPNCofvswYncr9t6bth4GdMefBWzHrjgRfL++DnHfnMkFIQL6KWicvWzvMmMXOWZEC4 uvRgS/90qZ+EFDExEAQgpwlDQKpgsM4DIyK1qOaHSQd71zdP3GerqojIX1Jz29HUrOLz 3Tjye5yfhMdlrb9tEzLG8n/XZFXa3eolKE9/Q96hAIpKMx/mpHwcf4Ax9xvlgh1T+xL0 jABw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781911829; x=1782516629; 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=J1aA0AXcl1R5eWizmiiFdBlejhKxkpocBp47xOiaUuM=; b=V7eUvHCvx1+K5eELen8hFK5FXosPLu/3+8s5wRA/Aq8C1cvQ3p0nSCHp+XuxZ8r/+O f8lNOiDkT/94qTOW5B8Gkq6JUXg1M2XlnxKk85hDgrtEsVP0tFBF7p1WUMTMvzED/Vi6 A3CU0fuRfX5o9IAvXnmjrbvm/0kaIgAq2kFgie/hh7kT1zO3VzvVBHga0ERcKQZJsbvP q8uwriv5kJCI0bD8xc4HJFpXD4rs1TmljG5L6Viq/+iHgDAv5hCX1J3Xuu8ANAerSpid 3FgEfphoswCSIU2wxxkrpPJooesNzNUee7A78BaWx58PPLM5RtnsjUCPvh+K+JZ+14cD nxMA== X-Gm-Message-State: AOJu0YxieNBbBS6aGfHgwRFcymn3pIs/hTUi+R5iTc8dvFu8DuwIsod4 YATQvhSHzXF0fqdoXqxkTHH9vHTuHlDfIROCs79MGMNYGxIvV+vl14yrAYt6sqkYdSiAw3MTMqq D/4DRo2vQFUeV7+xZV2qrq7UVWZruOcZ+7tV0paq64FvfCXJ8+PeCvGKlEw4/QYm0iw== X-Gm-Gg: AfdE7cmuXrHAgCE5dH69GwEMsaaLDQ6xSebDt1O6NR22zGXhQm1o1+x0ThnbD+Xl0Ba QHe7D+2+gm7c8NQCZTecA/287Y49QJfS0rEPyf8CzWDVWCcxO3X7PAgbvyR9Ny6NoxE1Bi55gHW zh39oafx04hgLGs5QCj/v6KJwxaiqIAM2rpz496gGOUWBRwq3nOdTrnRuU0ivAAukbZ0g7JcEYn nYXHsOqnnIfJkggiHdWhkYlOaDQ5eaYFFZEiznblAJ0TESC0XH1xJE+pTT/B2pClfPPM/kGYt8o yqj3rWq0OENYm72OYPyD2P34KbZtEjPGysIk8KppMiaPWY9dRewTUtlewoUHiMp0J71m+a6vtls Ld5G0AxHexHU3KWy7N8oizmZJckSRD394bWxQzjZkyTfzykqoshQd4SikjiQ= X-Received: by 2002:a05:693c:830d:b0:30c:1707:e4b0 with SMTP id 5a478bee46e88-30c1707ea2bmr938634eec.25.1781911828854; Fri, 19 Jun 2026 16:30:28 -0700 (PDT) X-Received: by 2002:a05:693c:830d:b0:30c:1707:e4b0 with SMTP id 5a478bee46e88-30c1707ea2bmr938625eec.25.1781911828287; Fri, 19 Jun 2026 16:30:28 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Pierrick Bouvier Subject: [PULL 51/74] target/hexagon: Implement setprio, resched Date: Fri, 19 Jun 2026 15:58:48 -0700 Message-Id: <20260619225911.159473-52-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: oRQc-Z7ZMvCLW3Q8GJkgmZUWy4YAveiC X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX89Ley1n/QgH5 pOOigtjM7anP4+fozaQkAvnEV2eVOFfgFQ0xOkinG3iDpph+ATOBECn59hlSOSpDMINbkZHtfM0 vigw4v289zXwPmFYQdS/LiSSVyHdV+nCJbs6IutKRkFjKkHKyZajomDNVij4jjuZgqjO4mq3dU0 sJB3opLZs+jXtluDpL1jSvxooaM69Y3UyrFJ7LG3QugupEAlWjlJpQ9qxm5mqf+DKrBhpt5/X7V bBK5QRKPW9aLSp3He2UKQnhGfuwdMM56UWDWjb09pCFtH4g/UZ8+0L0LWA+6V64olOpVGY5FcGU j7eQ2mi81pO30jfuSL/wQk/RT9Kt5F3JU/5dspI9DNR1Iu9Fxixo3sVs7kExFeVn/g7QkJKgioJ pviycaSWo3Rvb+xDfRXOOKrg8wArpxPSiBVGXls+qq0pIZECzpYulad9n7nMHTg/bC9UnjXzfk/ MRMagWGhymywz02HLvA== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX4RDo6X8MJwtN YgdzBi2YRSCIp/k/gPeOS/aE29p4MHakcycBIziis0qUOzDiOR+ZKxBPnFY5kvMJfD52C7WNj3Q /e9u9YsaA/6wnSqw0FDL1j7VBmtYJh8= X-Proofpoint-GUID: oRQc-Z7ZMvCLW3Q8GJkgmZUWy4YAveiC X-Authority-Analysis: v=2.4 cv=TdOmcxQh c=1 sm=1 tr=0 ts=6a35d115 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=9hY_xzidxOicKg_qOOkA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 impostorscore=0 spamscore=0 phishscore=0 malwarescore=0 clxscore=1015 suspectscore=0 bulkscore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190226 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781911941814158500 From: Brian Cain The hardware-assisted scheduler helps manage tasks on the run queue and interrupt steering. Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- target/hexagon/op_helper.c | 77 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 34c55b560ca..3c253b391e7 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1590,6 +1590,64 @@ static void hexagon_wait_thread(CPUHexagonState *env= , uint32_t PC) cpu_interrupt(cs, CPU_INTERRUPT_HALT); } =20 +static inline QEMU_ALWAYS_INLINE void resched(CPUHexagonState *env) +{ + uint32_t schedcfg; + uint32_t schedcfg_en; + int int_number; + CPUState *cs; + uint32_t lowest_th_prio =3D 0; /* 0 is highest prio */ + uint32_t bestwait_reg; + uint32_t best_prio; + HexagonCPU *cpu; + + BQL_LOCK_GUARD(); + qemu_log_mask(CPU_LOG_INT, "%s: check resched\n", __func__); + cpu =3D env_archcpu(env); + schedcfg =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_SCHEDCFG, + env->threadId) : 0; + schedcfg_en =3D GET_FIELD(SCHEDCFG_EN, schedcfg); + int_number =3D GET_FIELD(SCHEDCFG_INTNO, schedcfg); + + if (!schedcfg_en) { + return; + } + + CPU_FOREACH(cs) { + HexagonCPU *thread =3D HEXAGON_CPU(cs); + CPUHexagonState *thread_env =3D &(thread->env); + uint32_t th_prio =3D GET_FIELD( + STID_PRIO, thread_env->t_sreg[HEX_SREG_STID]); + if (!hexagon_thread_is_enabled(thread_env)) { + continue; + } + + lowest_th_prio =3D (lowest_th_prio > th_prio) + ? lowest_th_prio + : th_prio; + } + + bestwait_reg =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_BESTWAIT, + env->threadId) : 0; + best_prio =3D GET_FIELD(BESTWAIT_PRIO, bestwait_reg); + + /* + * If the lowest priority thread is lower priority than the + * value in the BESTWAIT register, we must raise the reschedule + * interrupt on the lowest priority thread. + */ + if (lowest_th_prio > best_prio) { + qemu_log_mask(CPU_LOG_INT, + "%s: raising resched int %u," + " cur PC 0x%" PRIx32 "\n", + __func__, (unsigned)int_number, env->gpr[HEX_REG_PC]); + SET_SYSTEM_FIELD(env, HEX_SREG_BESTWAIT, BESTWAIT_PRIO, ~0); + hex_raise_interrupts(env, 1 << int_number, CPU_INTERRUPT_SWI); + } +} + void HELPER(wait)(CPUHexagonState *env, uint32_t PC) { BQL_LOCK_GUARD(); @@ -1698,8 +1756,27 @@ uint64_t HELPER(greg_read_pair)(CPUHexagonState *env= , uint32_t reg) g_assert_not_reached(); } =20 +/* + * setprio/resched - hardware-assisted scheduler helpers for managing + * the run queue and interrupt steering. + */ void HELPER(setprio)(CPUHexagonState *env, uint32_t thread, uint32_t prio) { + CPUState *cs; + + BQL_LOCK_GUARD(); + CPU_FOREACH(cs) { + HexagonCPU *found_cpu =3D HEXAGON_CPU(cs); + CPUHexagonState *found_env =3D &found_cpu->env; + if (thread =3D=3D found_env->threadId) { + SET_SYSTEM_FIELD(found_env, HEX_SREG_STID, STID_PRIO, prio); + qemu_log_mask(CPU_LOG_INT, + "%s: tid %" PRIu32 " prio =3D 0x%" PRIx32 "\n", + __func__, found_env->threadId, prio); + resched(env); + return; + } + } g_assert_not_reached(); } =20 --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781911908; cv=none; d=zohomail.com; s=zohoarc; b=fD09uTgdznb6TfuAR4ZDrq10dyWQZhGvss3HW4Y5dMWAw8ghmyV3Eg9EHH4XA01JigQ4AYWwWpFE2WHFefUhckwldQPdftbi1swbAD38dlDkRb1xqQlAXi5IYbm9TW9Wn9ugLVkFK302ZyLCCIOq4bTsAo3je3ER8ELdqcZUY9A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781911908; 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=HRwBm1PEj4CfI6jfh+n9tz4eTBvdQkmFIGL8YkDQmso=; b=KBGw6ySlGLRmA+88UpgFoGOIh0nE7gF005BDeJ9impCEKAavjfNRkgk0fQDGDWf8Gm1lJoEXFyOCpYXB18RILF0viKcn2gEQAxsodEM62Stfd+/osK8LixcsMKgmsLmKZdpxgJRedeGMRUk6EE4S9JTrExvwM9+JWsaK2SK77ac= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781911908910392.41450519273224; Fri, 19 Jun 2026 16:31:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waife-0003vk-3F; Fri, 19 Jun 2026 19:30:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifc-0003u3-Uv for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:44 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifb-0007R0-Bk for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:44 -0400 Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLYcBA4086912 for ; Fri, 19 Jun 2026 23:30:32 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evmyrdm9k-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:30:31 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30bfe262ef0so1143435eec.1 for ; Fri, 19 Jun 2026 16:30:31 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d75csm1212646eec.15.2026.06.19.16.30.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:30:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= HRwBm1PEj4CfI6jfh+n9tz4eTBvdQkmFIGL8YkDQmso=; b=W59544d3sCXmGygD fDZSaRryFYKWSYm25ah27z/aH12133JGNntAJQJmPdcGy+OdSYGw869nxO0iijS5 59kzgNA1vCry2bl2V5mCUmCfNPZbfvWeCU520Ahyx6EIxX0pJ/6ggfgq+SseQ25N r7pI2PeNPXqE/LML8yTxqIFhu0USNwNQGgkskSbhuV0VXcQGOUzHhxT0xKUEnvj0 u5EAB7ezOcahqsDIx5BpDN4bmvDOvqNimJ32e/DZQ9eCKpnWZNKn2YcnfFslbB5e SP5QxB6+ydzTn0BhBbfNuIXFDzQzxZpRsjNgLfmI5MKTPC9cxQvvcHSIW0QPavBs dKtNdw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781911831; x=1782516631; 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=HRwBm1PEj4CfI6jfh+n9tz4eTBvdQkmFIGL8YkDQmso=; b=hfy9Wpy8CLP2qZ77F+1P/pZp6qAy8GWIBZKe/1gVm8QMY1WDxJxndaxjTycuOFxRC0 yHbmiU7iThL3KcdndMsO8asIt8yyz4uw/Ta0cIMzT49VSDYQeWqKGSo9V+xkL4kecUoM G1y/r/yCeDx/yMQRfoX4L9cBb9SrsiwHGEtgF9B9udPCU5Wf8X9PV7PpDZjtwsgDi0E6 +MtF7r8bK/5AIKN8LXqkCsJyWmCWjR3UOQW79X+wGnXL+kQeUvRCRUgHiREIi5vBBou5 US7NRnNKibPeELa04mkeeCMS8biF2beyRBcrv1lj/zCZXM3I+dOdUVvOp5xBJzC9gEBr qFlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781911831; x=1782516631; 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=HRwBm1PEj4CfI6jfh+n9tz4eTBvdQkmFIGL8YkDQmso=; b=GNmn5ktTMFxDNp8ZASAlPwGQYCbikAnO6LudY0W97OspC90mwcgEhvPEQMGNOyVFYY DQAGV1F2wzt+tS+yicF3N7tYFRY/kYKiyWzwWMcy+3ksHs697oYrnZKiw4fGEOE6bBpo qDDg2ZhbXDlnSBCVkxdgIAymx0+5szFBTZABduuvHQSpMqZILLCP2Fqn7yAXMPm9UGg2 ew79N1xNDw6yxnnn9rhi84WcAewrGDyK35549reZNrhmIlTtC8fdvbyt+cYUxzlIA2ff ATcoaPuDpp4KxNolXAXiEZKU7C4m08tkpKakUBUB/f8s0kr3ircqcMxpt+peqRtAPBNt gAJQ== X-Gm-Message-State: AOJu0Yxu3f3pOp44EmLGzW1Hbwh5usySGCBWps25p3GfsCmlU9RZnwEB obo7MlsX/LeVSI3G3X4Ks8rrd4tUHm4RdHbXzWFeWZ/2QZct3Cz4btpYbqChCEgl2bOl/x9pld9 OWw+ecPNOHMA23izF5wpoNPmvVwofKwY3U5HY5b1T1UujEAGc5hU6+YOrUH81zHvEUA== X-Gm-Gg: AfdE7ckidjI7YFVtodbPbSYZniRlmNTFSPFRqqI2/Hr+gLqRPF421i8rJImWLWrEZTf SAYtMTkQl2ZZV8jj3NvqxL+r8zCr60roLGKFkokp1iAcBQymUs12Q0bRlGbxbU0ZkYbjFGFdaHV rCZOvkElC1QxZCQQmylQp8H/AYEA0Imm9mT3QDs7GOJm4d02HhYG3FcVdqjh4UMOr2lkdcpTzVk K+JVpzU5fbOw9aaZEdLDn3H+jOYLZYT7JLHr2QXyLbnuAkpIUiMjrEWhbWQwqzeRhNvsZqtpBii 5xV8CsWv8JS0CVSxmP6kywKeH8TUwxW+7tDtJb91klBKu305bfNz8O/MGxAVI49eePhXo57t3Zf HxTW036IDQHWOv6ESIPRBy95OT+Pag6sURvQiUi8ND8PeSv/s69sm1T7f7+M= X-Received: by 2002:a05:7301:100f:b0:30b:fb88:f059 with SMTP id 5a478bee46e88-30c079dac1emr2579660eec.15.1781911830775; Fri, 19 Jun 2026 16:30:30 -0700 (PDT) X-Received: by 2002:a05:7301:100f:b0:30b:fb88:f059 with SMTP id 5a478bee46e88-30c079dac1emr2579641eec.15.1781911830010; Fri, 19 Jun 2026 16:30:30 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 52/74] target/hexagon: Add sysemu_ops, cpu_get_phys_page_debug() Date: Fri, 19 Jun 2026 15:58:49 -0700 Message-Id: <20260619225911.159473-53-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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=RZWgzVtv c=1 sm=1 tr=0 ts=6a35d117 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA: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=fg0LxJQkbHe3Ved8Rg4A:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: iG5Jvm5Q_bWKWGnfzsh21avLAJRVfUaY X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfXw8X2f7pLgpnk /92WnVj8vwRjdhXI/3fW5DRfcld21EtVzBSe+lGjHA4hvY8L/K17PBu/CDjEnLI77neKG1JM4+V S/PPULMX8LR6XMeh3qo2b3mP95QF15nRXN2dILRriboz4hY17DjsyEu+BU8mTXdK0yDivomKI75 BugqNvAx9FC52DTkVPp5MS90/C0PiSGAxmLtLFsODBuuJJHddnfK2zH+3FZ9L3aCncGphBIDkEi R9m1w4jEuBK2ZxU6l7KPEmUA7RGUtKhv4AqYhbZnnhhAJSo37s1ISHtmhQOIjHIE60QRS/qX2oS xHmk5hjvl/eBZD+RiTvPQwyHqJbs8Ze8MKCfqAit5B2GQQhc4aTDz4P5OZmJn00g+DFrlerUI75 JTJvd9hAM8wQrMNeGJmZCuCxw5LFfQUavQ02a9AvqYqjC87a6ws/LKvFiL1FEoaDyjW/GQvWXT0 4pqYYG95ey9q5kSs1wg== X-Proofpoint-GUID: iG5Jvm5Q_bWKWGnfzsh21avLAJRVfUaY X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX/jKt3wlCOjIN MCJvcd1bgpyUuKwAksAY8T4TuHQ/FuJWIh7gVVbVc5gyLxiowKsL1t+YGLesalPEhxh++sSpjEK ggysWVL0jLZIcT3FHuUVdV8tD+vM7EA= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 clxscore=1015 suspectscore=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 bulkscore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190226 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781911909630158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 4e5a25744a1..670668808a8 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -20,6 +20,7 @@ #include "qemu/qemu-print.h" #include "cpu.h" #include "internal.h" +#include "exec/cputlb.h" #include "exec/translation-block.h" #include "qapi/error.h" #include "hw/core/qdev-properties.h" @@ -37,6 +38,7 @@ #include "accel/tcg/cpu-ldst.h" #include "qemu/main-loop.h" #include "hex_interrupts.h" +#include "hexswi.h" #include "exec/cpu-interrupt.h" #include "exec/page-protection.h" #include "exec/target_page.h" @@ -504,6 +506,24 @@ static void find_qemu_subpage(vaddr *addr, hwaddr *phy= s, uint64_t page_size) *phys +=3D offset; } =20 +static hwaddr hexagon_cpu_get_phys_addr_debug(CPUState *cs, vaddr addr) +{ + CPUHexagonState *env =3D cpu_env(cs); + hwaddr phys_addr; + int prot; + uint64_t page_size =3D 0; + int32_t excp =3D 0; + int mmu_idx =3D MMU_KERNEL_IDX; + + if (get_physical_address(env, &phys_addr, &prot, &page_size, &excp, + addr, 0, mmu_idx)) { + find_qemu_subpage(&addr, &phys_addr, page_size); + return phys_addr; + } + + return -1; +} + =20 #define INVALID_BADVA 0xbadabada =20 @@ -611,6 +631,13 @@ static bool hexagon_tlb_fill(CPUState *cs, vaddr addre= ss, int size, do_raise_exception(env, cs->exception_index, env->gpr[HEX_REG_PC], ret= addr); } =20 +#include "hw/core/sysemu-cpu-ops.h" + +static const struct SysemuCPUOps hexagon_sysemu_ops =3D { + .has_work =3D hexagon_cpu_has_work, + .get_phys_addr_debug =3D hexagon_cpu_get_phys_addr_debug, +}; + static bool hexagon_cpu_exec_interrupt(CPUState *cs, int interrupt_request) { CPUHexagonState *env =3D cpu_env(cs); @@ -653,6 +680,8 @@ static const TCGCPUOps hexagon_tcg_ops =3D { .pointer_wrap =3D hexagon_pointer_wrap, .cpu_exec_reset =3D cpu_reset, .tlb_fill =3D hexagon_tlb_fill, + .cpu_exec_halt =3D hexagon_cpu_has_work, + .do_interrupt =3D hexagon_cpu_do_interrupt, #endif /* !CONFIG_USER_ONLY */ }; =20 @@ -680,9 +709,12 @@ static void hexagon_cpu_class_init(ObjectClass *c, con= st void *data) cc->gdb_core_xml_file =3D "hexagon-core.xml"; cc->disas_set_info =3D hexagon_cpu_disas_set_info; #ifndef CONFIG_USER_ONLY + cc->sysemu_ops =3D &hexagon_sysemu_ops; dc->vmsd =3D &vmstate_hexagon_cpu; #endif +#ifdef CONFIG_TCG cc->tcg_ops =3D &hexagon_tcg_ops; +#endif } =20 static void hexagon_cpu_class_base_init(ObjectClass *c, const void *data) --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781911875; cv=none; d=zohomail.com; s=zohoarc; b=bO92sNE5wPYJic7P6e6v3vgfB0nWImzxftOK/EgFW7aFMi7PJv4kJJnWNQvPeYYSvcMbur59/GPUz0BUXkjbx+nCXShe9ev/yfg5mUveziJaEDy0qtVt4i4zYNZKimfv+4wpUKNYshT8Kf7fVr0wex5/PtJWvhZUQil11XHjPm0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781911875; 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=pn/yqs889jusoL8Cmra03kW8nABJmbmt9+r6zbgwxKs=; b=i4jTgGf3B11UQDHds+yBr2sc+dp2AodhFshAOyopaP+PrwytSc0ujHZumjh5/XO3mJjx11mJHxGMNzJeIOTVwVR7vEzPaifPH/kJ0RKkcMKgV4kH0MVB/+D3HQWl21ZAsRedONyVhLAuFJWRHC8vrgrBqBi0F7L2YlqZ9DXbvdE= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781911875067115.69207787841606; Fri, 19 Jun 2026 16:31:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waife-0003w4-Iq; Fri, 19 Jun 2026 19:30:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifd-0003uA-89 for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:45 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifb-0007R2-JP for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:45 -0400 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLYdKM1337398 for ; Fri, 19 Jun 2026 23:30:32 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evp6757a4-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:30:32 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30bc5f826f2so4641153eec.1 for ; Fri, 19 Jun 2026 16:30:32 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d75csm1212646eec.15.2026.06.19.16.30.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:30:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= pn/yqs889jusoL8Cmra03kW8nABJmbmt9+r6zbgwxKs=; b=e7ANLWD0K+pyxo+R wlUxSU8nAS5iaG9NBgaWv+QVU0m/CIF76VtaHwxG9qUWEnkBRfICR6vUIFGhTL0+ 59W+SJUsRPDfX8iOhEjBrHXW8rNSVCyAYs2v0hFYl4DHRnaQtMW4aESVwEPEW2Na 6MUVww5ACWMW+StO2gGPkRybhh8GlbVMschXTaVchTMXSBk4TezvCsMZEGtMIzcm m2G798qZQCYKjoYFLhDKOGdVMuu6uJtbBXOSyag09rDtRBRwWhcNu5uTWYbGHI+H 3cc1nGJsk9DvJlmf8807rvb7RZjY28Uop+r8drzWSJJA6lheTKZw1aQBaa3zdVIt TdGA0g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781911832; x=1782516632; 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=pn/yqs889jusoL8Cmra03kW8nABJmbmt9+r6zbgwxKs=; b=XyhRXV6Gk17I6/fOBAbiCTohZTKQ59Hkkue1iJLWxYKRHJH71HWsJgTkA2dRrpkzU5 /Hkb9GrTUN9qeqtllj/g6JBqmzunaC+O+PT1xnO3bAgP/fYhtTz8U2Lt1iyMaFmkHX2I 8dQotu/qlEsi542tc4nJi5rsquwhzGuRjua5DUHeWbhGXbf7KL5t4MDRtOJhDKg8EsSp zx9jVFHPcw/0eSUN0H3gbAzY7E8QS582THvhLGpJwCJxhZmg9TmE2eu4++dJeh2zvE/x dDRrS5VMmaSRiRuZhCM/I1aKRD6HGTU14yOmVdqkfrTQLDO4Z9H5ORkde5JD2AZnQhG2 cv+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781911832; x=1782516632; 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=pn/yqs889jusoL8Cmra03kW8nABJmbmt9+r6zbgwxKs=; b=QIXyIuLeJD6lLb4FA+JmeOR39OyfcxRqkTF/ai+4OPV4ye/EfUowKH83NML0t6ND/M n+7J3JMvY8xLN4B4FbN4NZoCrk01cvPGdBO9VS/BwL3dfm89/c+fkSFH5p0mwYmv+sLo 4Ryifhh2wrqSgUUx11GBN5dF0NcEZlXz7b3ObA04mRd5lHLsO+zq+fstPdJX9jLJZTyp Zmgii/6aRr6X0CK3jvW/BOE6O5MC42JcTNq/yj4p3FxFC0k2jceQZ5Nm4ZGUW8Snu4bH Nlb8wZ/4yjKeHb+CvIqTCfy+zEg4LRofbLXLOa8wcRh2ifqhAvwZM33ynW7xxKI4xx3J MbNA== X-Gm-Message-State: AOJu0YzkvYX9Hc8YmEp15XVdxeRuEfw4l6DsPvbyZj2Qn4X/D75aC5ad YPgu+puBnQHn3F2s0ggihvDjEcGpm2WUqN+zJFZkEHgMS1fBEajuR6YeCEwqhUOtlpIa1dQpdjv ksGpQeOpbqJ9UvYma7Pdt+BIi3TzXIjsX5rZxSunuNkt9Cbp34QHKEVKqouFumPqUBg== X-Gm-Gg: AfdE7ckXRUVY57EkdAnNnPwDWhHAwRa6LUuiwlUzjPcf1h0hwlT0JWnoEYx9QnHQ+im 7eSwC6bX4ZrH47r2+IxXOgi6aMzyFmyfvmuADtS2VsCMWY6IGleTG2UbZVzfsM/ejxeDT/iIIU3 imaP9TBdyJYkEOefvFU8lJU6frKlNEmOpCyWQrd3ZrHHp25VcmeRw3aSAmsWaDSs+VHrPLkHCy/ 1nD+aZRdYFsUplgHBxLzEfMyGAnDxKElmHXNIJNGrWdSEyu6hqwFARWpsoELO1gersruVk7wR2r s5AqrqSvakJsO+oqLERDNfvKjgw5FVy2GXtrUUbKCAx7nbGtMsNmEhmc28UEj7edNaOUjcgP3vN MjUz5btFg3NqwCLSgqF/EK74x43eAimuO8yc1o9k+u8hs047X1pWQ5LbdFpM= X-Received: by 2002:a05:7300:3c2b:b0:30b:e14e:b5e0 with SMTP id 5a478bee46e88-30c0d2a4bf1mr2171805eec.34.1781911831554; Fri, 19 Jun 2026 16:30:31 -0700 (PDT) X-Received: by 2002:a05:7300:3c2b:b0:30b:e14e:b5e0 with SMTP id 5a478bee46e88-30c0d2a4bf1mr2171787eec.34.1781911831077; Fri, 19 Jun 2026 16:30:31 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 53/74] target/hexagon: extend hexagon_cpu_mmu_index() for sysemu Date: Fri, 19 Jun 2026 15:58:50 -0700 Message-Id: <20260619225911.159473-54-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: 2WJOIA3b8CBum0QoluvtH8mGe9S1CMaT X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX1bl7cbTg21om ZTT22/XdjH+X93ZcriBuknweEO6MmTo10ua+On9V6JrjepZdwpTkWIV14vtPNAk6t1uaOaPTLhh 6Q6ibY9WwJWVdJ/c80M3kJpCihWBIC9p6NvHp8k110OyHMhow8UkcNeOizOYF+InqP5QDWzoDwX E9i1Hqu9E/MhYiMz9EaYRXpFp1Uy08OTgbVxqro7OmhJgFahntChYeTdqESZZ/hdmjEivtBXg8g nxKu5BVCMbBGKanhKx80h9fldUBE0BLGIPk8vUxt5g1DsayqM2uN8dLmDh6QAtw4xBaHb9L1rwm qiitB++bQ3y4Fqh8V2zHMWzQUE/iFfufjatyfPrC5h0gDI1KPoOl6fZtJNezJaQ8DPlTEYwY93v ycIAUO/a36WXsxe1e6Yljkh2Zfwuxt1FgGTne34WoeadbZFer+tvfgMPRf7JgJzdc+0FzLprQeg eiXjZ405nTc6T5Aj9DA== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX0PvYy069KAhb kwUrK4prBHIa8z07k0Mr9cbDUUZygaDuYK9v+wBNV55aI8COY5tGbMbOF1ZSkm+9VRtCHBsfuAP 7YA/p50SgV+TQoeJAUttGaiq7ZwTxWY= X-Proofpoint-GUID: 2WJOIA3b8CBum0QoluvtH8mGe9S1CMaT X-Authority-Analysis: v=2.4 cv=TdOmcxQh c=1 sm=1 tr=0 ts=6a35d118 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=hUoHZ09r4jABJgGRQWAA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 impostorscore=0 spamscore=0 phishscore=0 malwarescore=0 clxscore=1015 suspectscore=0 bulkscore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190226 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781911877611158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu_helper.h | 8 ++++++++ target/hexagon/cpu.c | 24 ++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/target/hexagon/cpu_helper.h b/target/hexagon/cpu_helper.h index 75a28fc10f9..d1767503156 100644 --- a/target/hexagon/cpu_helper.h +++ b/target/hexagon/cpu_helper.h @@ -8,6 +8,14 @@ #define HEXAGON_CPU_HELPER_H =20 uint32_t hexagon_get_pmu_counter(CPUHexagonState *cur_env, int index); +void hexagon_modify_ssr(CPUHexagonState *env, uint32_t new, uint32_t old); +int get_cpu_mode(CPUHexagonState *env); +int get_exe_mode(CPUHexagonState *env); +void clear_wait_mode(CPUHexagonState *env); +void hexagon_ssr_set_cause(CPUHexagonState *env, uint32_t cause); +void hexagon_start_threads(CPUHexagonState *env, uint32_t mask); +void hexagon_stop_thread(CPUHexagonState *env); +void hexagon_resume_threads(CPUHexagonState *env, uint32_t mask); uint64_t hexagon_get_sys_pcycle_count(CPUHexagonState *env); uint32_t hexagon_get_sys_pcycle_count_high(CPUHexagonState *env); uint32_t hexagon_get_sys_pcycle_count_low(CPUHexagonState *env); diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 670668808a8..3af90e30b0f 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -447,6 +447,30 @@ static void hexagon_cpu_realize(DeviceState *dev, Erro= r **errp) =20 static int hexagon_cpu_mmu_index(CPUState *cs, bool ifetch) { +#ifndef CONFIG_USER_ONLY + CPUHexagonState *env =3D cpu_env(cs); + HexagonCPU *cpu =3D HEXAGON_CPU(cs); + int cpu_mode; + + BQL_LOCK_GUARD(); + if (cpu->globalregs) { + uint32_t syscfg =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_SYSCFG, + env->threadId); + uint8_t mmuen =3D GET_SYSCFG_FIELD(SYSCFG_MMUEN, syscfg); + if (!mmuen) { + return MMU_KERNEL_IDX; + } + } + + cpu_mode =3D get_cpu_mode(env); + if (cpu_mode =3D=3D HEX_CPU_MODE_MONITOR) { + return MMU_KERNEL_IDX; + } else if (cpu_mode =3D=3D HEX_CPU_MODE_GUEST) { + return MMU_GUEST_IDX; + } +#endif + return MMU_USER_IDX; } =20 --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781911913; cv=none; d=zohomail.com; s=zohoarc; b=kYLtJNqcQLRJKK2tPEGIPJ1bYqqVxvnILELHfUjPYx3zICAWPYiSNOZO4znrYOo439yPOeLjKdL0y4hWZcE4EQbPyzOyI2yB7MINu0bomFvLgaTRz9KwVf+w7GrUKo0HGge7Ln7SV5GvpcJU+iSgstqlpJ/Ac4yrIuYtaJL/XF0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781911913; 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=KM8Vmh2bjk7TYidhmOrqAPOj1Wp2rd3I7ixjJkyml2o=; b=YnGfeCWIDbXx1wGnGx/90uky5ZkFZNEESuQOw+GIhyEvX3d9r7mJBWBXjyevQmsgxsgaPJxZ/Ev9Kn3cNZfzcfWmwgmhUHKImeDm8noMhelsxBdDtwrep6jzi9UqMVE/SAvsVe15jom0xnEjClsB6SQhyuRvgEpi7gqhdQTe8NY= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781911913536802.5496814151512; Fri, 19 Jun 2026 16:31:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waifg-0003wj-32; Fri, 19 Jun 2026 19:30:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiff-0003wS-8O for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:47 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifd-0007RH-PP for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:47 -0400 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLYdKN1337398 for ; Fri, 19 Jun 2026 23:30:34 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evp6757a5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:30:34 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30bcbb34e57so4177241eec.1 for ; Fri, 19 Jun 2026 16:30:34 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d75csm1212646eec.15.2026.06.19.16.30.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:30:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= KM8Vmh2bjk7TYidhmOrqAPOj1Wp2rd3I7ixjJkyml2o=; b=bRgkZewBp2VKCchO 46Ed44Mimi/OMrKYGJMIoZw/SDPFjEU7lhGb7O1Io+3WRYg1YZR52gXOUlIiFWEP +j3kAZjS/oAPwuiB70U+jPxufqU7pE0j2VpPXjaxqLOVgnL3P7dO6wEN+Zbn7gVP HscnLv/zxJGvoGwjE1jCM1kAhzKdS0TwkFV7ZtAf70Fq1ArXvQNO/F0OZSR30Okr D5zHJuIqLec5PKqX1rOD3fHuup+H+Bk4dEr4zyQGYa6aRY6gHcvHL7nbAy64EFsX NwQ0DCz7EfMs/eVAl/e6YR6P8X+KSHaUDCtHpxNN9QmrrDwVvWC2Y33w2kiYfagX mLAg+A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781911834; x=1782516634; 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=KM8Vmh2bjk7TYidhmOrqAPOj1Wp2rd3I7ixjJkyml2o=; b=jwxOmIj1ss8cULPmK1TKjjsCEoCLepOUU+RHr3vDuRnb7ZxyZ+s/dWmoqWXNpX4X3Z ZXlSlHtkHzOOax2F1i+/TenA6kbGkvuqWMdGe1E/LPvFfxI/kdUtz474dZZOv9r8vc/S LKVkTMYLb5GgqjvdlNyhTx1klCUfL3Ox73eezTHYBcK3mDIVsWUQLCxf0LWmEVLARkMi x9z/NtpTuK7tRq/cMUr+qLRe96m6rHXKc3NjafElKYd3bn2E1KtxZftNFGI/8VMkZd7E sxcyzMcbtNhBwf6EOhnoSuxgbCdJ/7SStrZpeWdzxL2EH2dlXaSNC1zBv7u8OuAyBcFH 2Lfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781911834; x=1782516634; 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=KM8Vmh2bjk7TYidhmOrqAPOj1Wp2rd3I7ixjJkyml2o=; b=UENw0c3DmnNsrPacgQXmpBnwCiOwMLz0bElDj84xq+lxyQP24bsxL0a5Ox1wfNXNat KoVBWgmcjIgDBEAp0kUVpnd75yPMHf63b/q9SSUStCyz5PhdshOQNTWI+ZqP2+QbXPBq PIF4eFGQ4Atb4M5lpyrA5PPZtLWWNjZ2S2XQOxRCkIcHgml3/WvJl606AifHTsF0wcYm DjxDxPG44tAeoyniulvY+dZnkSQqNDQLCoAX3D/byb7cA3bCgS9V8tVAWa9JXrYHPZ+W XFYr/8BO2m+JKV1rhaPDC0Riz0MLhZmnRuds08RUokfjwyyRVIC2bxiUAsed6ZYYbAo9 4Pqw== X-Gm-Message-State: AOJu0YyW9e0FOkzyrB1BRTSLwqg6M+GYA9eqD4d+QLlr7zhHEWt6Uge/ KAFgnFBDNDRRRkIC0h+InKYb32oorZ3TH2d8ZO2Zgg83C++RmZ7yuU42/n+huWvQuyUAtfPsfNb 6A6rxr7CYrvbsHI+FzIFFzpHtP4O6jRePr5NEBB7SCPOppjbUvj95YxdZMZMx5cXM3A== X-Gm-Gg: AfdE7cl2C2lNDOeJzizzqAhilrDdx35AzvM7/IxdorpFxzpwS8f2S8NkIY3BIt4vDcE QjhHDgEmYT3cINZ6HrHdPBUJpOA3uMJiqTdVGqDgbjp/3S7AGpzWOnVkdof7y+K5BgjHrbkzUdb 3RBhYyJMJtjW7ySbkS/295IAuZ5efc4IKQaUbjCq1arfSMgiDPeFGzDQI3P9ppWRB/bu29vQY2G ePM5OTY28NFcB0hhfvifF2bm+qYVMx8BsscgZ75lw2JMcP4cnH7e5mqOBeU7+rHMuuQmQNJkU5h 0JlJwYQV0YDIq1PsGMc9fxzm5hUbaDW7zQ58GvlqwALH2nP/swcECucSrBeohhjq4ILr2CN5Flo AHlhLMDOnR2l3dypVfQkx52QCs8gsnX7G5Izv4R5J39m4MZ6jcD4YdYRhbxs= X-Received: by 2002:a05:7300:f10a:b0:30b:fc05:a18c with SMTP id 5a478bee46e88-30c071d1c6dmr2658799eec.24.1781911833877; Fri, 19 Jun 2026 16:30:33 -0700 (PDT) X-Received: by 2002:a05:7300:f10a:b0:30b:fc05:a18c with SMTP id 5a478bee46e88-30c071d1c6dmr2658789eec.24.1781911833388; Fri, 19 Jun 2026 16:30:33 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 54/74] target/hexagon: Decode trap1, rte as COF Date: Fri, 19 Jun 2026 15:58:51 -0700 Message-Id: <20260619225911.159473-55-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: Mu1maJGVrkMzmrOnYMmJHFj5lUDZ-EPt X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX/4ygnUsse9Mz ZTLgINQcXGxAZP3YXI/FGfWTDeYYD6Yih8hrProS8I6aBteK/J6/lVsEgE27iCG59fM7qczq8Qr 4CKHrf8VDbnPn6rTfNEUTQQS0FZ0wWyJ6k6HtcpjFk51vTbPP6+K/+0W3xvgx8r/g5O3rX5hjrY MrebQrFlmDJ4KDOkh9IQETjnq0CjVLHRe464blHWdhTnwL+edAZfv0TrmT2xwM+IZtbgZ3/3CZo uyQyLzxgeGnYluO1YaXi5Cxyq6lNhKJs56fd/RMmUObFSPrW8o2nmpPlSJ+HYkaoRVDT/z348EE TtgIMBTxQ8NmihW0h/nGDko/bC68zoOv8zUQKd8tRGNWUgnyAkZs3EAowo920JesTpElqcoZFBp gDVY8Dzk3JDXAYc2X3VR5muRK3dmjRqGlt4skBkUcScWghMwI/T6zAddiqiiAZxmW43BQjaWKaR d+zDI3na6r9UtTq1jlw== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX0h+U3UDF0Bbb 0hcce3Bi9zZaavo/Q9lHUxLtu2gNtkfvY6VaXq3vTcHMppQDcrgLLiiSGQzqgPfsVbvAA4s9Qqu ORLqsAYeimfXvw0iMGB6cdBuGJix1h4= X-Proofpoint-GUID: Mu1maJGVrkMzmrOnYMmJHFj5lUDZ-EPt X-Authority-Analysis: v=2.4 cv=TdOmcxQh c=1 sm=1 tr=0 ts=6a35d11a cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=oDs3gbQtVgqjpHJ5GUgA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 impostorscore=0 spamscore=0 phishscore=0 malwarescore=0 clxscore=1015 suspectscore=0 bulkscore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190226 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781911915519158500 From: Brian Cain Also: handle rte instructions at the end of the packet. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/decode.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/target/hexagon/decode.c b/target/hexagon/decode.c index 15954518b83..6eddcca26ed 100644 --- a/target/hexagon/decode.c +++ b/target/hexagon/decode.c @@ -185,6 +185,8 @@ static bool decode_opcode_can_jump(int opcode) if ((GET_ATTRIB(opcode, A_JUMP)) || (GET_ATTRIB(opcode, A_CALL)) || (opcode =3D=3D J2_trap0) || + (opcode =3D=3D J2_trap1) || + (opcode =3D=3D J2_rte) || (opcode =3D=3D J2_pause)) { /* Exception to A_JUMP attribute */ if (opcode =3D=3D J4_hintjumpr) { @@ -363,6 +365,18 @@ static void decode_shuffle_for_execution(Packet *packe= t) break; } } + /* + * And at the very very very end, move any RTE's, since they update + * user/supervisor mode. + */ +#if !defined(CONFIG_USER_ONLY) + for (i =3D 0; i < last_insn; i++) { + if (packet->insn[i].opcode =3D=3D J2_rte) { + decode_send_insn_to(packet, i, last_insn); + break; + } + } +#endif } =20 static void --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781911943; cv=none; d=zohomail.com; s=zohoarc; b=RSl9P/5bCtwhaPPwnW8XFk5xvmWB+YYcRS9jkYCHFisBVe/dwtQW7qrX+Z+Y9z/2+B4bM846MqZJDIIB3YpD03o6bMZIz8rUs95zhLq5Or49tLD57TlZquO0TcjaKKlU3X9a39RwzpfPF4e01HT9kkNGVzQwcchWUtz+zUd55xk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781911943; 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=3UuTOFdc8oYjbXiuLSyd2e3M5N5lZKNz6xk5uPNFpGs=; b=RpDkiH1pSdCjs8MtpUmGE8JFU1bjj0CQWZezBiQdhVOlxrCAhL8nYYHLEeQNCjkuVzyIMemIiLgj25EV+ZQ++pcElPWy2ZHJFqcEBN2PZNk/D80dHmMqI7v0Tp72I4iLp+Fjycy+olXTj0Y8kTsWbnfbH0l1L8s5sovyIB94jPo= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781911943509961.9832098831628; Fri, 19 Jun 2026 16:32:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waifi-0003xM-1u; Fri, 19 Jun 2026 19:30:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifg-0003wk-Il for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:48 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waiff-0007Rp-3V for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:48 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLYkjC1287266 for ; Fri, 19 Jun 2026 23:30:35 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evy72kaa3-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:30:35 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30beab99453so4076899eec.1 for ; Fri, 19 Jun 2026 16:30:35 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d75csm1212646eec.15.2026.06.19.16.30.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:30:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 3UuTOFdc8oYjbXiuLSyd2e3M5N5lZKNz6xk5uPNFpGs=; b=iuyk6A8SLAVtDb6b Pbz43o4UvqnXpRAD31AjXCx7w2Ega7NShYM1xdOsEC9kQW4AdvQrwgeMU6mzutLN DVyvW6W0u5iJNjevfBxQWY77QedZKfHAxeZY0wihW1If9vysEvUoi3igty5gP7aC B6wiYspBtE+sxgvBunS8Oaxkjldyp0xW4v+mAnukCxBT1FeWH8Ejn9Qyg+73yFqE dRB9tanDzpr/4ZVD4va7XH4PX6/wTTNr2KqT63D09TQvRd66WIArvBwRmFrz26Op dzSvirTGXCe0ZGNlw41Ggo18Gbaoenv4X59Y6gJamK+h0IawinFoGcdlQ1sKG/Sc zc2PrQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781911835; x=1782516635; 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=3UuTOFdc8oYjbXiuLSyd2e3M5N5lZKNz6xk5uPNFpGs=; b=IDqP3AaUersCKMXizpqcb+pvw0qvJ4pHdsYd6AW698rs9Hmp62Mwoc5w74r4S1zXlD xfA6U2lVJiHFHW7I8RdSiQ6vhnil7ejmdADxQ0p418K5GKWPCKIt9tAHnLldr/kv/+tU ft6Bil8TPIu5SqxkmkuGuuT43KpKMgjAnFAPTgif/FQ0scnrUvj+88+f9HsD1sWn5F2A WgSutnC67u98C2JpB1q5ib+8mxC7mSY6uCllqxB9wRBfcpQcaCBxo2WSkWcYGBC5u5Ff NI7UOrDdFEun2jXuYl8A99Eu/lqyrwL19Uo5vtqQCnytiGtogPgO09ExbLCgG8KU7IDJ ZmxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781911835; x=1782516635; 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=3UuTOFdc8oYjbXiuLSyd2e3M5N5lZKNz6xk5uPNFpGs=; b=DYfvbCRbzu3I3p4kU/h7/IL/USEHLgnWNFOMMm18qFdK0xzmqWhFQJX7jNx6HB1Uvz qVWla9QId12WOp3Pf8YaT0sHZxKkxXmAfCzYh6HAWEpdcg9fAs3kWGNVLKmxUrRosXmF rwRkqdbupOsTWGuJ2d6HyalQq3OInS7SbqivyaDUp+WnRIdUDmWrqbplwvlopT000hc9 BO8+HdyFYIR1wXabyNXT3ikINqgJI1YmuxNSe8e3F9c7d0/i+WdXco1EDYK7nFE0lNpA EJz4B2Jvu8FuaAufWZeat2XpcG2xKaKctHGLpN40aCv91ohaeqhVORwFyG4VLDdWjM+v aEsA== X-Gm-Message-State: AOJu0Yzxm5Jfn59tPFmp9LVcPlqyb5QlqrHIrHdE5Foxgmidn8nvn+I2 9NH7Bjlv72t9QnKFbAf1UMOk3/gGAkNtYGOQkA83t5FAPjwJbQqjNwTpC0u4HJMSvNK7OdXk5Jr P71KQZZHDAsTyiVD5z0hv4EFjig/CyqlBNmY9oGhEm1hp1AUWP/iklcZcJigzUhJ4/g== X-Gm-Gg: AfdE7cm7FWRWQCRHGsRhAfvI/+5yEQBP3cr7tfWYwtmmtNKetqv6czOi4tZSp/6utvz 3I8cHA5gARTcG5J8CKW3+dt7qlGff1z5UdlZRAY/U191sDtB/VwQ1bPQGNWt8XjqOrdSa+AkzTn 34WyHBzhhSp+VKrdnJPLmYEGy2f7Lt6mSjK9FVUpVdQtCLEb1FJ0zvP1uPLIlF0f8+ImeboPXNm GaRXfqCZ0XZF5jPRpApFAhscV9FkGInl+UqA0s3B21eBYp/li0RyW0FO7ED5ZcQbS4Wz+iLa/uA emm3ZiSlXOm9mZ5CKBjd68BhYR+06WK1F00am4ApnNrSXk2kLGoc8rVAR9YFws/yZYtw6G84upX P+QbHKzYoN8n3zrvUaTd5k12q9oQpA6gSeEperj7B6uCku5V+4YZpG5gQpnU= X-Received: by 2002:a05:7301:10c6:b0:307:e4fa:894b with SMTP id 5a478bee46e88-30c06ff40bemr3300762eec.8.1781911835009; Fri, 19 Jun 2026 16:30:35 -0700 (PDT) X-Received: by 2002:a05:7301:10c6:b0:307:e4fa:894b with SMTP id 5a478bee46e88-30c06ff40bemr3300746eec.8.1781911834521; Fri, 19 Jun 2026 16:30:34 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 55/74] target/hexagon: Implement modify_ssr, resched, pending_interrupt Date: Fri, 19 Jun 2026 15:58:52 -0700 Message-Id: <20260619225911.159473-56-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX/bg8yOGyR37m cU3zaxvX9Lh9MyjfLWMb+Uq1zcT/rfdBl/dwekelMZg9foAJc6ExL+zBO0BlSOBSZo0OGh2q3st I5/D+2uIWrcoLjCWA2696+CRCPfO3f/jcG0Nnc2Pbz44Ramj4PL0gdYxmJkmIyAwcfhRzhCCkma L6VtoZa0/36inkI6XlFfSIvDdfXqVvlFCUdUaOuFFAQa8GCzwtnIeugCrwfXpoCEWe+xJj29lwq Ve3d6KWNYCGjyX4MbjJfUSog6bYQeyc8yvLvamleyMtUtv/snb01532bqCj86ao9wWffcWz/hSB NhbcWQHjzkHVOzvE7IVfYVQt2D46gMheZCglr8XNaapPO1/Ya/7yzzA7DEZmrdwltXbofU+LXV9 zU+6MKyi8/RMDZ7aa62TW87kJ86yZP45UK4TKzadSsh48Lc16qTMrQOCR0OcopO6p/s8vFDPNNJ 8mLjbiDp7bqttw9upkA== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX6haf3o4pM0Ch cobQujgZThOhGL//vAfa1vaiV/F7HmFaInHhRsICaV4loZJRxvp/ggVV1V3IBla6yHKOF0jFu2Q PDYVawiYk2e6wjVY3b+xoDkAMa54QKk= X-Authority-Analysis: v=2.4 cv=I75Vgtgg c=1 sm=1 tr=0 ts=6a35d11b cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA: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=c5yFZwH1WPb9xS9x6awA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: -O9gfSdbHw5FwkXOsr-DeRVW1YbKzidL X-Proofpoint-GUID: -O9gfSdbHw5FwkXOsr-DeRVW1YbKzidL X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 impostorscore=0 phishscore=0 spamscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 bulkscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190226 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781911943618158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/op_helper.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 3c253b391e7..9fbcd79c9d4 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1227,6 +1227,15 @@ float64 HELPER(dfmpyhh)(CPUHexagonState *env, float6= 4 RxxV, return RxxV; } =20 +#ifndef CONFIG_USER_ONLY +void HELPER(modify_ssr)(CPUHexagonState *env, uint32_t new, uint32_t old) +{ + BQL_LOCK_GUARD(); + hexagon_modify_ssr(env, new, old); +} +#endif + + /* Histogram instructions */ =20 void HELPER(vhist)(CPUHexagonState *env) @@ -1648,6 +1657,11 @@ static inline QEMU_ALWAYS_INLINE void resched(CPUHex= agonState *env) } } =20 +void HELPER(resched)(CPUHexagonState *env) +{ + resched(env); +} + void HELPER(wait)(CPUHexagonState *env, uint32_t PC) { BQL_LOCK_GUARD(); --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781911941; cv=none; d=zohomail.com; s=zohoarc; b=WzyppsSrYvRQPOFcxZC4X9Jh8ZRku+NvCtzGiewQVN+mQcvPUzKoXg3YUcppsjo8Zre9VNO66/GyhX2aNWWqCORL2wPUxgbsIBFfKBIKJWl+c3saAtdJmr4J+kX/zoYAyAy8e1ZtGamReBA7kRsFFbyziQS4A4g+8ELKxmG5vH4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781911941; 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=DwmtLwNQ586yD7zGJVwVTp7uqi8JKqPltGIMKxadn6Y=; b=gxPDqxTgnQ2mZM36CIWIMhdTWTwuPx+UfJEd/7ZiLfyhaal1c1ZlBh5U/WNPbmR++Awd67AcJ0m5sMWtOH31ghZLCl/uLBSnq7Hg4cM99rC3CTm9MowWyZFjz2vR0biXZ6YHKJtQ3VBfu6ZTCGVMVH+ePSE0ml2cGjNsFfQUr30= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781911941258214.3504176968595; Fri, 19 Jun 2026 16:32:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waifj-0003xW-49; Fri, 19 Jun 2026 19:30:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifi-0003xO-BH for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:50 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifg-0007SN-HJ for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:50 -0400 Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLYLM92934106 for ; Fri, 19 Jun 2026 23:30:37 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ew5qsa525-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:30:36 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30c17f62afdso457101eec.0 for ; Fri, 19 Jun 2026 16:30:36 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d75csm1212646eec.15.2026.06.19.16.30.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:30:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= DwmtLwNQ586yD7zGJVwVTp7uqi8JKqPltGIMKxadn6Y=; b=DyQj5Jm1SQaT+fZO 2fI0WzQ9FI6GNn4/BdLkzvZYepyO41QkuegD9N18TvKxykM+8sWWt6Mai4zyL0jq EdOBPccVpvxl5rs8dkYFdbI4lguCAuo3xpzAvVQzHDtS5IKMKCZFvLwfW20uxY1w HUgRyXE7RRRNAwCNXO4rOOfvY4Y8KCw+Ll9vbOzbZES1CB7h+Dx/dbM+BiGjde1w uLagOlA7+FgEgkV9xj8YVdPoIGTjxqrieqbJ25nvjduNJaa7zDfcn758p1nNcGz+ kLLssNxaZertvplHiij9/pL8nUkUcbjSuXvuINau2t6TT2EQ5ddvpJXa+ytjnGhF RCR/AA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781911836; x=1782516636; 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=DwmtLwNQ586yD7zGJVwVTp7uqi8JKqPltGIMKxadn6Y=; b=MLNJhicobt/FCi/RpG6EnFhtsGrv/5fndovMOSaa4fuJcIPhmQsJ8QaVk8noZPb8mT p5AMRjt86QKIaGI8a3O6vInNotHwumjh229KiMOnHUtxCD/Wx73CLqGq/Q1iBmWcjley JUu7wNCBiVya4Qwwjxxgm8kJNyhgdpUIFhE2bHPwuqq2V4PVPFc5NG+iroYYeh31OEOl SHz46g+jscVClt2//fj9iqiB+4iavYd1dNr9ZjyACTeJIVELjIdA6ejY6bVZhNitNRsz CMLmw9nwRRiWoL74MCHhXp/H1ZzjTUbPegtVTn1S95EVSqdW/DEc7XskJoM5cKoLTn10 auug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781911836; x=1782516636; 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=DwmtLwNQ586yD7zGJVwVTp7uqi8JKqPltGIMKxadn6Y=; b=XKffIlzgJJKAHJrdx082BlhITDG3IBRf3kfiw3ysMAgDzcKR4g0vDbMAw0wSEgLwR+ MF3oVXUdhexyU9oZpfI90TaKhRV7L4xm4vaGQxFqFif4GEIUrOMGKUe7mkzRHLAjidHd /3wM2xxY0URgJFOuHVwQAemn/GXQymqthzjlErYhpAsEuJl/dwUfHp6HlcONHfMFUhTu rBOHLAyasm9pe5WAuwE+3SU57cWaefXaUvSEIMhyfqIShtfexeCsqyUQFzgfohlCYxJt 6BjUdJCZDue36WV4vr3xO1b/shLE8eo5axg9Z+Zm6sUsj4FwqpPxa9vkYHZfxQHGiu+u eU2Q== X-Gm-Message-State: AOJu0YzFDTd+Kvz4ikBGqy/mV8LvsdamOMLANLxPm54PBMCuOu65gJ0A G5+bWdmmbF7WJoTaWgpfK5w0OlHhEdm4LWAPFQqgLeehA256i+MEOK9hYGjRUDzAHE+tWzGesvC ikKlqP8Kx6TOPwXVpriRLACKuJn+spoeKs56UL5ITZnFLTEH+KNdHJrLHBGgvkPyN1A== X-Gm-Gg: AfdE7ckz0OVe+2FzYCOuhp7DPyvRXfBhKivm6vgmS70Bgk9PS7+JO7a2fGwz1kmMHdl nhoYTU/kRuc0r2B5sM98rE/TwtYuDC9kxLp4Dl0cZDNMtHNN7X+sz/G6/GQ1lo5MBrB13VBBYSn coRkJeTIfaegOK8GJZtuNAjIQkfYr2jXvlAX3+g97Cd/d3ALPARxocOhrQS7VHuEaeD1E2Mx+u6 8tFmZYimL2vJlQHQwzB3ZR/+p0jiCa8A9Fn6GOUAxEx+P3pAL9On9n4RGYTfmlnVQ4uBeCiVCOO weNtda04yTPf84B76KASRKIClPZ4J+ku4XjjI4PdT0Um+LBWp66i7elDGv61fo9eEM6b605WPPA waHltEtoi5ZKpHv8HVyzg3TcAVzHw+uJ8mmIa5y9sJWq3PipXdkHVKaT13NM= X-Received: by 2002:a05:7301:e116:b0:302:8cb5:af0b with SMTP id 5a478bee46e88-30c079ab46dmr1714978eec.13.1781911836309; Fri, 19 Jun 2026 16:30:36 -0700 (PDT) X-Received: by 2002:a05:7301:e116:b0:302:8cb5:af0b with SMTP id 5a478bee46e88-30c079ab46dmr1714968eec.13.1781911835768; Fri, 19 Jun 2026 16:30:35 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 56/74] target/hexagon: Add pkt_ends_tb to translation Date: Fri, 19 Jun 2026 15:58:53 -0700 Message-Id: <20260619225911.159473-57-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfXzlloyQBlRLFy IejE6lhePEzOE/Hf6TtmRMg+Bvk7boawxtu2aSWg17A68qpp/2w7TAKn81cxps1hP0pqRdiiDB0 yveFu5IlmYBw8TH2ZTRTjH6L76yogGUMfL68zY+UjyQjEePvYcWPlEe68zaDxaqozqHq+fYu+0O 6qu2+HeHzT4AVl3crmBTnAsSDMMp6YzKsRruUB6s+YCUudVRVhoXKAWOsNz6II2OTVPB6lxNytM pT6m5CkHAdA7LuoZCyxwadhmNjQyY7P883a6wynMjmmQy6aVrm6Hyrg5QXA9+XzGeHxwr4FAv1H Da1LDOIwO/4qDmpCUmTL+P8b5+GLy+f41Ig2abzVhkEfdI2DhGzNY0TeZwmYa0QFjpTbDaxxvzZ ol5tOkAWYui77T0oAPvGIu2g+Z8iZUV9iufLLJ5AtzJPGp7T9VAgLrQPMELz9MAJQKMHLKga2Sn BC26YreUb2VL6pRKOAQ== X-Authority-Analysis: v=2.4 cv=M9R97Sws c=1 sm=1 tr=0 ts=6a35d11d cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA: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=PUAfe4L2FItr89aHCx8A:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: fKrKN87XpeE8utXFvjw-C30wuT2D_C2b X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfXxyx8XicMwvfs RV8I4byZpii/1Z7qxCx/yOLRjrm58UPhgjvEfRN6EXCfz5fBS04nmTXqxO4UfxF6lQPqQyKEllC XdCI9ncex6snSseIzfgjKqnfXnpY3IQ= X-Proofpoint-GUID: fKrKN87XpeE8utXFvjw-C30wuT2D_C2b X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 malwarescore=0 bulkscore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190226 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781911941829158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/translate.h | 1 - target/hexagon/translate.c | 102 ++++++++++++++++++++++++++++++++++++- 2 files changed, 100 insertions(+), 3 deletions(-) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index f79bdedd7b6..fea88cb2db7 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -86,7 +86,6 @@ typedef struct DisasContext { TCGv branch_taken; TCGv dczero_addr; bool pcycle_enabled; - bool pkt_ends_tb; uint32_t num_cycles; } DisasContext; =20 diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index ce5bbe92d5d..35e90362880 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -270,6 +270,16 @@ static bool check_for_attrib(Packet *pkt, int attrib) return false; } =20 +static bool check_for_opcode(Packet *pkt, uint16_t opcode) +{ + for (int i =3D 0; i < pkt->num_insns; i++) { + if (pkt->insn[i].opcode =3D=3D opcode) { + return true; + } + } + return false; +} + static bool need_slot_cancelled(Packet *pkt) { /* We only need slot_cancelled for conditional store instructions */ @@ -283,6 +293,90 @@ static bool need_slot_cancelled(Packet *pkt) return false; } =20 +#ifndef CONFIG_USER_ONLY +static bool sreg_write_ends_tb(int reg_num) +{ + return reg_num =3D=3D HEX_SREG_SSR || + reg_num =3D=3D HEX_SREG_STID || + reg_num =3D=3D HEX_SREG_IMASK || + reg_num =3D=3D HEX_SREG_IPENDAD || + reg_num =3D=3D HEX_SREG_BESTWAIT || + reg_num =3D=3D HEX_SREG_SCHEDCFG; +} + +static bool has_sreg_write_ends_tb(Packet const *pkt) +{ + for (int i =3D 0; i < pkt->num_insns; i++) { + Insn const *insn =3D &pkt->insn[i]; + uint16_t opcode =3D insn->opcode; + if (opcode =3D=3D Y2_tfrsrcr) { + /* Write to a single sreg */ + int reg_num =3D insn->regno[0]; + if (sreg_write_ends_tb(reg_num)) { + return true; + } + } else if (opcode =3D=3D Y4_tfrspcp) { + /* Write to a sreg pair */ + int reg_num =3D insn->regno[0]; + if (sreg_write_ends_tb(reg_num)) { + return true; + } + if (sreg_write_ends_tb(reg_num + 1)) { + return true; + } + } + } + return false; +} +#endif + +static bool pkt_ends_tb(Packet *pkt) +{ + if (pkt->pkt_has_cof) { + return true; + } +#ifndef CONFIG_USER_ONLY + /* System mode instructions that end TLB */ + if (check_for_opcode(pkt, Y2_swi) || + check_for_opcode(pkt, Y2_cswi) || + check_for_opcode(pkt, Y2_ciad) || + check_for_opcode(pkt, Y4_siad) || + check_for_opcode(pkt, Y2_wait) || + check_for_opcode(pkt, Y2_resume) || + check_for_opcode(pkt, Y2_iassignw) || + check_for_opcode(pkt, Y2_setimask) || + check_for_opcode(pkt, Y4_nmi) || + check_for_opcode(pkt, Y2_setprio) || + check_for_opcode(pkt, Y2_start) || + check_for_opcode(pkt, Y2_stop) || + check_for_opcode(pkt, Y2_k0lock) || + check_for_opcode(pkt, Y2_k0unlock) || + check_for_opcode(pkt, Y2_tlblock) || + check_for_opcode(pkt, Y2_tlbunlock) || + check_for_opcode(pkt, Y2_break) || + check_for_opcode(pkt, Y2_isync) || + check_for_opcode(pkt, Y2_syncht) || + check_for_opcode(pkt, Y2_tlbp) || + check_for_opcode(pkt, Y2_tlbw) || + check_for_opcode(pkt, Y5_ctlbw) || + check_for_opcode(pkt, Y5_tlbasidi)) { + return true; + } + + /* + * Check for sreg writes that would end the TB + */ + if (check_for_attrib(pkt, A_IMPLICIT_WRITES_SSR)) { + return true; + } + if (has_sreg_write_ends_tb(pkt)) { + return true; + } +#endif + return false; +} + + static bool need_next_PC(DisasContext *ctx) { /* Check for conditional control flow or HW loop end */ @@ -439,7 +533,11 @@ static void analyze_packet(DisasContext *ctx) =20 static void gen_start_packet(DisasContext *ctx) { - target_ulong next_PC =3D ctx->base.pc_next + ctx->pkt.encod_pkt_size_i= n_bytes; + Packet *pkt =3D &ctx->pkt; + target_ulong next_PC =3D (check_for_opcode(pkt, Y2_k0lock) || + check_for_opcode(pkt, Y2_tlblock)) ? + ctx->base.pc_next : + ctx->base.pc_next + pkt->encod_pkt_size_in_= bytes; int i; =20 /* Clear out the disassembly context */ @@ -944,7 +1042,7 @@ static void gen_commit_packet(DisasContext *ctx) ctx->pkt.vhist_insn->generate(ctx); } =20 - if (ctx->pkt.pkt_has_cof) { + if (pkt_ends_tb(&ctx->pkt) || ctx->base.is_jmp =3D=3D DISAS_NORETURN) { gen_end_tb(ctx); } } --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781911944; cv=none; d=zohomail.com; s=zohoarc; b=NPzKE37lBso3RMYXi1sJ1LLLaoqanCY34HdhF2Stg1tl1jkbiAEtYn55rDWwvjBeDSwvfTqemV5ThAD4rZRbBrexh/zuMu3pmpICYvAOi1os0zKnZ1Q1g+nI/eqg5DsMj1xqsGAfhvJ9PWiLSUWo6aNHavAj+adg5cyy3NTigXw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781911944; 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=Yp87kcoinbDBfUm50phdJD1Q0SWWmLVPCkRoyO7PWUc=; b=A7Hpz8wD4+qmuKebRMazgXoSFDtfk4ssqvIY0WaI49V158j7olCb4++9UDFKbpack+E7TdT6gLtU+Jf8Xl1iy5jWFq0oOTIvM6zzVugaGC++2ztLo9TFjwXBcpA5jZpV2ZCPP3pImD6FqBZ8cNKclcABvg+Mq/JIXSJNZXJPyFw= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781911944732460.6734388237127; Fri, 19 Jun 2026 16:32:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waifm-0003yI-QD; Fri, 19 Jun 2026 19:30:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifj-0003xm-N8 for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:51 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifh-0007Si-SL for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:51 -0400 Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLXmBG4085149 for ; Fri, 19 Jun 2026 23:30:38 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evmyrdm9s-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:30:38 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c0f4950ceso1010168eec.1 for ; Fri, 19 Jun 2026 16:30:38 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d75csm1212646eec.15.2026.06.19.16.30.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:30:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= Yp87kcoinbDBfUm50phdJD1Q0SWWmLVPCkRoyO7PWUc=; b=ReNahbuvlhR23xv4 7aaMQWczKveVCdXTRstS/30gF38vaIePX8HWIXY+G5nJobssGBK3+7PWauVrb/4B lB2EHr1hHy3yqDftIZJ3lPoHgRTGqX7YKlteHTnCFLN6X13upGR9fI/jW6MpuiVw UMN+vTn6rkEOmvvhD7JBpn2w77/gzbQXrUmuTh8aJE0If3kCIaAH+2z9labQ71kR yUZXzR5is95CSJ68bFZMpl1HkbzzeEmkphTCt2YReGA5/igqFKCydxIU/zEpdxYn vYNk9Aw5Tb5akVqTFuYS1GiLUuKh+RgU/AO68082uJGfRqvnvrXqmF7l5400HcS0 z7dyMg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781911838; x=1782516638; 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=Yp87kcoinbDBfUm50phdJD1Q0SWWmLVPCkRoyO7PWUc=; b=aciXP3hsk8rWoxCCPtnybTW2VvzQgoG8Cs9D/TjXQaws2K814ovM9R7BdFClq8DTRx qF+VYEpQ/gaVG1zw2UVCvktQ0ES5bWkLqgXxWDkgDxOboIUrWCZjnlF7frNT694n1Md3 gKv8F4wF5uZ/KbTwz/vLFcxQzvjW8JlYKNKlewXKwfMr6SjqMMb4pSaE58Z4TqVyJXxu ki0ajSijA5MDEeUUCHYyWoCS5W1ADN7tNpetD62wwWxO2ty1R6ciebcRXmedXRQWysGB kSjJtA7POTdG5On62dN0810mz4EAXc466kbJgHeHNx4pianY21iygZVuF3lMKtKtD+Pa A3Kg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781911838; x=1782516638; 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=Yp87kcoinbDBfUm50phdJD1Q0SWWmLVPCkRoyO7PWUc=; b=TSBMBb/bHokaJMZAWQg2kfQGxKkqkhDykK1GTqP89MXxR0PKXwzRUPN6BG/nhP/C6d sEbTJs5S4FoKyvuwSjVA9PcXiXgrd1yI51F+r1S9YqOjw2JHxoL9S7wDd7RWbutzGedY qOwlk6BJ4wExybw0U3HdBtsKuuN2Ge0c0V/vwzMTbCV6hV+9llDQ3cwKFr8Z8SqgT6sF vgSb8vyg01fDIzAvBYN7JyIOzIq+/ykP37jj5xj6sSZQCUrbj67WF55xDGf8ohhoVLVX 9klknymUh8YrNXh5Ku7+QlOIF5nL3B07ssut5iUNdtunAhyn3712gW0mTpBTGzDQNihL x9Yw== X-Gm-Message-State: AOJu0YxiHdlaWiGPb6zFqq6T7AEKXWtHGosqCcNSgSSvrR7jvvmKmYui UBI5YzCnI8+WLhpZgtPFUNpOjyIlA0aNAfE7ge6SIfPvePY2NlyyE5OAHma3EkoPAtuYs6myNMl rfOzQhUWyyAWcGarGRvYWHJ6LsKKY8QRu0VOrFXFKAgpJkDWoB05M/qDoVjdJ9aBIGA== X-Gm-Gg: AfdE7clWGIReKeI5SevxEogqSQqUK6x7s+ZiW+X0n/egHbGprFIKDN/vb1YuHfpIsrp xxN9eGufJsp/WJ16UMaM8PEmPvMboJy4HWzTr2oToq5pXB9gjrRkHJ0fXb21IvR4PPxhBSviYl9 9N6y67vH9mdO7MoYMA2Nl/hztaAL49Uh1bHbTW85v+3fYdGU9JMTRZdqVDCe0uu4qh/LbeGZ0Uw yz2bs4XtQPGsKEUDZrlfwYBeqNSoAkB7VLGDmqW5ElfnSryE64QTj/wvaR4OMavWPoj7psc3/qt Rvnk8STSiCCd65+1tnIXngqFpOtKBi0GmRDHjc1Msw8YGjXDz08PDeXG/t9PrKUFSJLfExRMZkX MvBNl4TD6HUWUa700j1lbTHO48t8L1Y/8WXbo6nulid9HrV014zKbmB3BUqk= X-Received: by 2002:a05:7300:1488:b0:30a:e530:ebc6 with SMTP id 5a478bee46e88-30c06d66ed2mr3509918eec.12.1781911837550; Fri, 19 Jun 2026 16:30:37 -0700 (PDT) X-Received: by 2002:a05:7300:1488:b0:30a:e530:ebc6 with SMTP id 5a478bee46e88-30c06d66ed2mr3509903eec.12.1781911837033; Fri, 19 Jun 2026 16:30:37 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Pierrick Bouvier Subject: [PULL 57/74] target/hexagon: Add next_PC, {s,g}reg writes Date: Fri, 19 Jun 2026 15:58:54 -0700 Message-Id: <20260619225911.159473-58-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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=RZWgzVtv c=1 sm=1 tr=0 ts=6a35d11e cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=fJQQT6FIS2xgNqPK2MMA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: sCUEL8X6zl7QlNQ21qdimZEMRg2hS6IF X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX6SsLlqKNnk68 bP/ioT2md07O5SSxWfKnOizBJDkXX0KD9/BCC51FLzXUFE1P3230m5YRG1chrAaEMwPxI0idiqb dQVCCZcEUjIbWmsnwIWxTupiUKWBqkipN0hqnsFBqMkFwDDR4DfcsJ+IqwN0SE7/TZHGm7L0Q0o vzSPEQGIhaHkI7vNsKJpX3JG0LoR/DqVXBnL0tyqSGGsZZoluom5LmLiaO5b8S6fjRdLPuxiYfM mr8BPAfGATvIYBMxo8p2VIkpfQQsKl+yzvf48eYrlEipbjPjcSCrCjlmltkfkTK4xqIQlNYPOB0 cw6hanfQAa8ONJCTZ1h/WXx5KyB197LT0FMChKQQllsVJEoGpzaGek3EfFmQPN1zTXSyk4n4xwn WmgXjzKE1qTH7JlnCO09Q0IVsASM34SpaTZdFEElT7rGQxaHr01lvP1mSl0doKIc+9uTGgfSS9s Aan32E7NGPWXbLrDpiQ== X-Proofpoint-GUID: sCUEL8X6zl7QlNQ21qdimZEMRg2hS6IF X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfXzMpa/RgnoaY9 J8Pbx5d2o8KBt0MklEGfQYePlD6anEeRsoSFeLDY0dW1h9u7jvJlFD6nnjV496z0LNr4zKpcCMa KEzm42cvLVGAeoqynROrOI0o6QMFVTw= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 clxscore=1015 suspectscore=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 bulkscore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190226 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781911945686158500 From: Brian Cain Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- target/hexagon/translate.h | 2 +- target/hexagon/translate.c | 77 ++++++++++++++++++++++++++++++++++++-- 2 files changed, 74 insertions(+), 5 deletions(-) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index fea88cb2db7..0a7f37d5842 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -46,7 +46,7 @@ typedef struct DisasContext { int greg_log_idx; int sreg_log[SREG_WRITES_MAX]; int sreg_log_idx; - TCGv_i32 t_sreg_new_value[NUM_SREGS]; + TCGv_i32 t_sreg_new_value[HEX_SREG_GLB_START]; TCGv_i32 greg_new_value[NUM_GREGS]; #endif int preg_log[PRED_WRITES_MAX]; diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index 35e90362880..f4a353958ff 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -545,6 +545,10 @@ static void gen_start_packet(DisasContext *ctx) ctx->reg_log_idx =3D 0; bitmap_zero(ctx->regs_written, TOTAL_PER_THREAD_REGS); bitmap_zero(ctx->predicated_regs, TOTAL_PER_THREAD_REGS); +#ifndef CONFIG_USER_ONLY + ctx->greg_log_idx =3D 0; + ctx->sreg_log_idx =3D 0; +#endif ctx->preg_log_idx =3D 0; bitmap_zero(ctx->pregs_written, NUM_PREGS); ctx->future_vregs_idx =3D 0; @@ -577,6 +581,25 @@ static void gen_start_packet(DisasContext *ctx) * gen phase, so clear it again. */ bitmap_zero(ctx->pregs_written, NUM_PREGS); +#ifndef CONFIG_USER_ONLY + for (i =3D 0; i < HEX_SREG_GLB_START; i++) { + ctx->t_sreg_new_value[i] =3D NULL; + } + for (i =3D 0; i < ctx->sreg_log_idx; i++) { + int reg_num =3D ctx->sreg_log[i]; + if (reg_num < HEX_SREG_GLB_START && + (ctx->need_commit || reg_num =3D=3D HEX_SREG_SSR)) { + ctx->t_sreg_new_value[reg_num] =3D tcg_temp_new(); + } + } + for (i =3D 0; i < NUM_GREGS; i++) { + ctx->greg_new_value[i] =3D NULL; + } + for (i =3D 0; i < ctx->greg_log_idx; i++) { + int reg_num =3D ctx->greg_log[i]; + ctx->greg_new_value[reg_num] =3D tcg_temp_new(); + } +#endif =20 /* Initialize the runtime state for packet semantics */ if (need_slot_cancelled(&ctx->pkt)) { @@ -734,6 +757,50 @@ static void gen_reg_writes(DisasContext *ctx) } } =20 +#ifndef CONFIG_USER_ONLY +static void gen_greg_writes(DisasContext *ctx) +{ + int i; + + for (i =3D 0; i < ctx->greg_log_idx; i++) { + int reg_num =3D ctx->greg_log[i]; + + tcg_gen_mov_tl(hex_greg[reg_num], ctx->greg_new_value[reg_num]); + } +} + + +static void gen_sreg_writes(DisasContext *ctx) +{ + int i; + + TCGv_i32 old_reg =3D tcg_temp_new_i32(); + for (i =3D 0; i < ctx->sreg_log_idx; i++) { + int reg_num =3D ctx->sreg_log[i]; + + if (reg_num =3D=3D HEX_SREG_SSR) { + tcg_gen_mov_tl(old_reg, hex_t_sreg[reg_num]); + tcg_gen_mov_tl(hex_t_sreg[reg_num], ctx->t_sreg_new_value[reg_= num]); + gen_helper_modify_ssr(tcg_env, ctx->t_sreg_new_value[reg_num], + old_reg); + } else if ((reg_num =3D=3D HEX_SREG_STID) || + (reg_num =3D=3D HEX_SREG_IMASK) || + (reg_num =3D=3D HEX_SREG_IPENDAD)) { + if (ctx->need_commit && reg_num < HEX_SREG_GLB_START) { + tcg_gen_mov_tl(hex_t_sreg[reg_num], + ctx->t_sreg_new_value[reg_num]); + } + gen_helper_pending_interrupt(tcg_env); + } else if ((reg_num =3D=3D HEX_SREG_BESTWAIT) || + (reg_num =3D=3D HEX_SREG_SCHEDCFG)) { + gen_helper_resched(tcg_env); + } else if (ctx->need_commit && reg_num < HEX_SREG_GLB_START) { + tcg_gen_mov_tl(hex_t_sreg[reg_num], ctx->t_sreg_new_value[reg_= num]); + } + } +} +#endif + static void gen_pred_writes(DisasContext *ctx) { /* Early exit if not needed or the log is empty */ @@ -1030,6 +1097,10 @@ static void gen_commit_packet(DisasContext *ctx) process_store_log(ctx); =20 gen_reg_writes(ctx); +#ifndef CONFIG_USER_ONLY + gen_greg_writes(ctx); + gen_sreg_writes(ctx); +#endif gen_pred_writes(ctx); if (ctx->pkt.pkt_has_hvx) { gen_commit_hvx(ctx); @@ -1242,6 +1313,8 @@ void hexagon_translate_init(void) hex_llsc_val_i64 =3D tcg_global_mem_new_i64(tcg_env, offsetof(CPUHexagonState, llsc_val_i64), "llsc_val_i64"); #ifndef CONFIG_USER_ONLY + hex_cause_code =3D tcg_global_mem_new_i32(tcg_env, + offsetof(CPUHexagonState, cause_code), "cause_code"); hex_cycle_count =3D tcg_global_mem_new_i64(tcg_env, offsetof(CPUHexagonState, t_cycle_count), "t_cycle_count"); #endif @@ -1282,8 +1355,4 @@ 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 } --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781911955; cv=none; d=zohomail.com; s=zohoarc; b=Nj6bkscKxhdsIOogxEWIIUgqExuBd6QkYNBK1XrvnXzCgGhH8yYNDzGt3j+C8BcnAylv+pbtjboGj+1xKo+JbF8lsk6MUWYSnLXYCQ5yIJEYuwUiB7I1TNB9Wbs1evmFILksWmMgismTaj+bynyIWS0HjlCCWwi+z89NeumtLDg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781911955; 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=WSxBtQ42d1TB+r/kba+VA2NNeVAZKwGKrYR4H+pwBnA=; b=ThihX+8G+nPvrb4qotPuMld7PlP01DMezj9kjU6TF7QghCAQZPTcf/ldE9EouBcESCFdozFO00OL4i4VANYLFASxkFjhv/VP1MjwmFo1f/zMcinWX41NX7o0nFEHHUxIpMudKKA7wiFlegkW0CqPNGOt3lKQjmRnYquao/ezKGU= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781911955878216.300763634207; Fri, 19 Jun 2026 16:32:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waifp-00041k-5F; Fri, 19 Jun 2026 19:30:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifk-0003y1-Sw for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:53 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifj-0007Sw-4T for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:52 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLXkod1286035 for ; Fri, 19 Jun 2026 23:30:40 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evy72kaa8-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:30:39 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30bccca5620so3405781eec.1 for ; Fri, 19 Jun 2026 16:30:39 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d75csm1212646eec.15.2026.06.19.16.30.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:30:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= WSxBtQ42d1TB+r/kba+VA2NNeVAZKwGKrYR4H+pwBnA=; b=S3I/ESAGtxaY0+ST kI5Ij4Zu8lmaITmH42yeJuz6aA615z29+HwXSCvPkyOptc1BVansZvBB0WPmomJj Qp9amZv1pFmBhxGH8kuq3auX5lIc1zcWXg8dgieY3djrVEDBs/PJBZclYbQbkR/Q v46qD6ovLujN7Z2XAihOtDbIchVtM2qPo1w7oj+BRCav8+fgW1s9zSumXEyJWeHX dbqrDDThW1zK6vJtyUCQLnwSGWIKBttFjRjLSMkOKChdrFNiH8RBwhWsfQeItCvg SFoRc0Jp0e0o5CmjaW79rL7+IM/Em3xojKSbnGVgo846cylG6ViP0mkRZxLgw7il Yfaijg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781911839; x=1782516639; 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=WSxBtQ42d1TB+r/kba+VA2NNeVAZKwGKrYR4H+pwBnA=; b=NqZ0XdpC8QS+PFU+XaAUYvL8JLWJArdBiVMFYbWRdJYL0ojkO8e7o4iqUHWPPDMel8 0Kwn1RFXVIoMDTJvelYzLbYsRDfxwyLidXw6xECOFgO3a/98GmGLS3KSo5KnjulD/0Ju GuC67YjCt9ny+hBoSC3xHeVztP3P+tj5sUjL0wkUxbAIxdSOuJPm6uwi8fFBcgUoPX65 Z8UBtD9IQEQdlDBQJo1QfIbyQL0EMcS4O6dvezmAFQaP/rbuH99nFc5Gbiptv0i0Nazy xpSWJbCA6Q6NG9ABJMUevtall1yMS3N95sg6Emfudw9pPFofRH/b2BAmj9tnaIOjCRt3 z+qw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781911839; x=1782516639; 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=WSxBtQ42d1TB+r/kba+VA2NNeVAZKwGKrYR4H+pwBnA=; b=MqvL+0bM0Kbune/kbjEJJ+NrOIRPBM/JU846mNqF08X3BGxh1oc8Y6NY+w+zAn6wUv M6sU7n7hqI7JSjvIg3EhGCcxN04AOWeZN/MRQDQrD2nY+tMyO4VfQKEDvtD1hBMIHRdV qHGGuYwEfVU9S3z9Wc9jN1/9yuHjfE6EFEwQZ4rhkp8WiDmTaDXqxGRKwjbuI1n45cDK gcQCZ597vy4+ibJaUNxMhP2lk2jDU72lBh7NpAbX6rXcEKXuRlcYKdjN+Alq8J7etbs2 7899APAKU5C98gmDzQlJfImrOX8jj2fusWatlInr4OMZcxAsy2OXPzyVJpygY9HscBr1 QZKA== X-Gm-Message-State: AOJu0YxKaoFiru1BOcDWQ0vRFTSa5jMYFNhbXHdFV0Dl0meLYM+WlzUU 6qyu+rHZdcVMvr7XjzczCCQ2be/tsbBSJ68LoVtzGM1W4dzvw3daasP2IAUiMS+3laz/512gG1L zJ0tzFGpdLNZFPCd1eG//xpbRqKoB2Litqij/3ykIt7hChcpgI2qXKQ7PUr4se1Irdw== X-Gm-Gg: AfdE7ck4rXymprO/2z/iCKTxEfR+dL4aT/gzwqNQ1uqSeypGalrW4eOQORNBjZTaKV6 mtsoPi9FsbyDLHlJy7cZv+rDp9/Uzdl3Lz092SlDjT+7tnVblFxRhBGVEMHvJ8BdxiKHZ/O/LmZ Zs9NsWGWGFJ/rETw/w0e2AiMGNZsGdEY1WnrVeHNshuSOPKCqS+CzTDcDI82pdlVIX3X+YXepHy 4/ZiaMAayMgmlsZV1i+M0NKqJqArB5QPCtoEh9+7K6DD5WxSy5mcJN1Gv7rI4f1kQzpGKeZ/HpR J9knuyMWTXwU+u/U//tHO60WnuluN7IBdfDO5+KswK9TGrA29ILDLcKtCE04pRdIgylSJMXkqb6 hziH7fBiu+yDPnK1rwLOv6vRVA9H7BUxR+L9oJdKmC829KP1pGEHeDaF/jkY= X-Received: by 2002:a05:7300:80ca:b0:2d8:7302:d3d with SMTP id 5a478bee46e88-30c06e319fcmr3631459eec.8.1781911839012; Fri, 19 Jun 2026 16:30:39 -0700 (PDT) X-Received: by 2002:a05:7300:80ca:b0:2d8:7302:d3d with SMTP id 5a478bee46e88-30c06e319fcmr3631438eec.8.1781911838518; Fri, 19 Jun 2026 16:30:38 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 58/74] target/hexagon: Add implicit sysreg writes Date: Fri, 19 Jun 2026 15:58:55 -0700 Message-Id: <20260619225911.159473-59-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX0f3rUVac0e6I PwqmDT8tlB6WLNLagIP5+N+1KEFo2VvzDtX7JOZpOkKy0hU+XqAE7LMKqEf3IgkiLQMED0Y7Pji rOCtiR4/CylR2mo74sW8wq7Xt3uoiCpDkYWz92aw+KaaZRIRoZ+BxYbn2vRMsUkPfDdjWH3OW0A Gfyk+/hKBaUDQbhWHRwP6VXyHjSI01N5IGsUsttiQE4rn2NHQrbjlhGe45kg+0tEbgY8z0Y687m UFt1TKmjDha4xmbWws7qJvcGpzXq84232Ike8asOqvTB96QfcEMtgvxkr4HJsSdsBgALmL5M6oD XJZ0s914ZqF134MpqsgG4dWMBE9IG7CvSOuXXLr5t3vyDwtHlkN42tJx+RTEDcPJuTNpQwF0FNr 9lJqHGyEr+peTulGuCBB6agX4Gz6aF3x/yFA0qDH1QrjxH0C8Fn/GqjwULvMmoTTJkVpr4/rLyt QyYwCX2xzeWR+1enM+w== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfXwdUXtIn0SNbF zAo06EFusy+QUsZxMQSxwT2ZzNaVmMeNBF0P+SxS5B67+JXkcWgyF0LscNeoUTw5rBJHGHXWu3c +3bB9p74EJ4Tb4Rut63EBd7M9HINBRQ= X-Authority-Analysis: v=2.4 cv=I75Vgtgg c=1 sm=1 tr=0 ts=6a35d11f cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA: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=ySlkKLH3HnL0fBWr2zQA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: FrfM72GMHPQlWcblDYtCHDFriemkhb27 X-Proofpoint-GUID: FrfM72GMHPQlWcblDYtCHDFriemkhb27 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 impostorscore=0 phishscore=0 spamscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 bulkscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190226 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781911957685158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/translate.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index f4a353958ff..f5450ced7de 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -424,6 +424,16 @@ static void mark_implicit_usr_write(DisasContext *ctx,= int attrib) } } =20 +#ifndef CONFIG_USER_ONLY +static void mark_implicit_sreg_write(DisasContext *ctx, int attrib, int sn= um) +{ + uint16_t opcode =3D ctx->insn->opcode; + if (GET_ATTRIB(opcode, attrib)) { + ctx_log_sreg_write(ctx, snum); + } +} +#endif + static void mark_implicit_reg_writes(DisasContext *ctx) { mark_implicit_reg_write(ctx, A_IMPLICIT_WRITES_FP, HEX_REG_FP); @@ -436,6 +446,12 @@ static void mark_implicit_reg_writes(DisasContext *ctx) =20 mark_implicit_usr_write(ctx, A_IMPLICIT_WRITES_USR); mark_implicit_usr_write(ctx, A_FPOP); + +#ifndef CONFIG_USER_ONLY + mark_implicit_sreg_write(ctx, A_IMPLICIT_WRITES_SGP0, HEX_SREG_SGP0); + mark_implicit_sreg_write(ctx, A_IMPLICIT_WRITES_SGP1, HEX_SREG_SGP1); + mark_implicit_sreg_write(ctx, A_IMPLICIT_WRITES_SSR, HEX_SREG_SSR); +#endif } =20 static void mark_implicit_pred_write(DisasContext *ctx, int attrib, int pn= um) --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781911904; cv=none; d=zohomail.com; s=zohoarc; b=h83iMRsvWx2H3wqF+I8bzRLRcfI6h5Xw/SEAyQqLWWbUuFDyxYnt/z60fyt/26drqZjdz7cDYbuxQeSut0qWbsk58FaEG4exSPgFW9BSzYLrMcAyBdQwS1jnlbASbrwOc5PB5N/mKMtw6cQLfYpHTBy+twFOLV990RGQqjas2WM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781911904; 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=KQKd6wa9CP0Atn8b+uEkUcIK7E1HAQywunGjG1NtcJk=; b=G2gWqTQ6XwmOzDEpNZKcrmFmFxuKzdRDD8veN8J7ImTXdesYzjfd4l9n/8Of3SIA16aG7/9LhF7MpBp2c5s3t8W6hTHH6oY0FF7nCJN3XIb5vE5LsozUfR04QMTOcJV9QvFtey+1cpjIMVczC1p48npHWYwrqS1OsAXl25sbrXU= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781911904172296.36839178206344; Fri, 19 Jun 2026 16:31:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waifq-00044q-PP; Fri, 19 Jun 2026 19:30:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifm-0003yM-5w for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:54 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifk-0007T4-9a for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:53 -0400 Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLY5DB1369135 for ; Fri, 19 Jun 2026 23:30:41 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ewcy30dxf-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:30:40 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30bc5f826f2so4641370eec.1 for ; Fri, 19 Jun 2026 16:30:40 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d75csm1212646eec.15.2026.06.19.16.30.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:30:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= KQKd6wa9CP0Atn8b+uEkUcIK7E1HAQywunGjG1NtcJk=; b=RpGFZEOWWJXPySKW ZQKl5kBV9qNU6FMyWDo6Hp9oYRYyJ4s5FAk67vQNj0bBPEz4k17sf1iPvIBMozeU mxuUUTnh/k2OcfWnjRDW7EYYNYxvMRGyZ+65G7l+xXBXsJIoE8/QwE12gEmINUdM DAHEuVAJ4Hr5no3Yh8HYMCzIm3EVtfOMfU2BileBfnM3J6PEbzGADAZCegQXlmzd ltfnFQggd3KTPRlcbCfT4nvxddrCb29+Xcub8Xos3Y56LDaWH1ONlmCWeDj/fyT3 rgedU1JqXU9QvDTdulrgH/ZSgeLhkniZDK22tF1IOquj0VoIYGObSQHQVmrhDDPb JrvPoQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781911840; x=1782516640; 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=KQKd6wa9CP0Atn8b+uEkUcIK7E1HAQywunGjG1NtcJk=; b=QvQw9JQSxAIC9p0QgFVMonnx2jgnZ450L2rs/QPaB+CxoQRqx64MltAumWiKK0Vecg ae4Hu4LVFn8fU3x8JnsOfjFte1J+qGbKS+Lh2BrL8VMAIEv5p8r2uzImdh/Sd84/pFD/ eced/9WoAecnH+yPVYTbZhjqM1Z+QdO41ve5DF8HitEb5R24lu+E7ZsPbm2WQaVhgsLV UTWkQ5AYz7zb5TeLiRn2j8TsBB5J0IdnXolbkMwLTM8Re14/xGVazoFZC/IS4MCH24/b AtZol/i4wMfhU687hzBQjVEygPUsOtW2wv0pXL/s1nDpwagBzndBvqcAcNq5lvzZunrl fqsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781911840; x=1782516640; 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=KQKd6wa9CP0Atn8b+uEkUcIK7E1HAQywunGjG1NtcJk=; b=Y9q9JtuQKiVKCBnF5zzw7HscQmHL6+0IqcRZ3Pz2aV9LKQoK/Cc2asi74/aTHYYA1m Zj+YRuGVle2sIeA5nNXEvIKDrCd9WiQjNCXaO+KcwJBr7d4YlD/szcKNz9aMmD4E0B2I mLVvl+RgIDt/5yYo3jp1sequRTlElleRqsxpHicPxsrigiXfQV/bY44jZqUtLwfFHg2n UzMY8WZOm/IGzwxkm9v37OdlkczNNYoC0E3v88BGUSWAHmz8S4cp+DsyQ/MWRqSsRStU Hi20X6zsIQUenuvEoeLaiBxiRvSzssSt33jxNiKdiYyP/o3W6VkDgNguau6BYnt9nMWQ r+VA== X-Gm-Message-State: AOJu0YzP+bvvCcfyWPPtnUVwDf8CgrHsHo6eDM5mk5k0+cL+2krMFoD5 q1+Notbxi6oERMauwewEv2THSbu3u8e5s64dE9POH6sPiJBytX/O+F+f4GE7M82Zuh+c501vRbx 3i18nJ14330rYgQBoCfgh02XumhWy03XHugQohloOlMiZeIS/IPEnQRPt8vGBWzdAlA== X-Gm-Gg: AfdE7cmM2piizsX8HNRu4tRejNIDvESbulHG38rIB4MviDNb+vR6dUCQ1onNJT9eLsA toN4bBL9v5qfVNIFGjWnl7puAuOGWVcZM7G0Cmpl8V1j2Qde1AgOHwg50gnit6CIS50utesCKYK Y7BxxilMGDuDuLtltHYOvUFDIbL0OyxFbuVNG95q1QxtOVJUPGH7Ebh8creeNJXUXZTr5Cks8pH yvX+acuJAzjqkqDD4gzq21M/lDcSuTUp0u9eEiXKrjiMELq2lMWg1L7kJlDhPF4K15kzN/94lrd IqX1CGTlHqQ4NibT/kG9j1ISjMjikOaICQTfDX1ARQ8QngurZXNeasszMGniFLuH4FvBypa54XL AOvGCewRFT62c+cBUtXGlZ3FOK+fkV/vFDUSdKqY6q1eOMqS/NCFlY3SYhp8= X-Received: by 2002:a05:7300:ac90:b0:304:e6f8:7cc9 with SMTP id 5a478bee46e88-30c0d0c8f0dmr2275294eec.20.1781911840188; Fri, 19 Jun 2026 16:30:40 -0700 (PDT) X-Received: by 2002:a05:7300:ac90:b0:304:e6f8:7cc9 with SMTP id 5a478bee46e88-30c0d0c8f0dmr2275281eec.20.1781911839690; Fri, 19 Jun 2026 16:30:39 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 59/74] target/hexagon: Define system, guest reg names Date: Fri, 19 Jun 2026 15:58:56 -0700 Message-Id: <20260619225911.159473-60-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: 2ccXB2mjFB-hznxhCZtQDi6ApTBqgV5w X-Proofpoint-ORIG-GUID: 2ccXB2mjFB-hznxhCZtQDi6ApTBqgV5w X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX/LdMZs3+yh62 tIxzuiXtcdNBF/RLHMZ64Fjw6oivqa76Sqp4jYbNlqvnEAMiJs/fi5UttCLzX8Ru+f5jd8xROqF rLzop+RXQD9qY3TYyaO5yqQE0C6eoAPjX2B/pBwFS4sKXVXECPLpa+ZbcccEMiUhRd/XETOgADO xGtO2ALq9BCkeaZkV8SeyEqJMjwoydUPRG8+KVOI47VemypLg0UNawTeSJhnGDA3Vkz+GXhsEUA rHCNrS1UWrWQEtR85kh52zsJoIBS6egeAo2/7vbxbbN/WzKPi7mHWwkqkcTLi2sBrDFW6Q6UkL3 PkF0wcFkfeubjBfgOioT6YUQv+4OOCj2QTAjGsI9anwfLoc/7kuV/+MaoFtXz8FmnOi0Dlo2WMX tXJXjBsxlr0EKYzNFUKD7AycLAWyZX7tc6SWJ0UiqYN7X+Jc0hUHbBWIY0sZz7SD6lohiDE88sM CcdD9j3W/YQCNwIBcBg== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX5jzsGn5URrEe VE/8qpojgTCc6RD6fwOyOC8wefFV47iilLA6Dp3ImF/F3x7m4Rg2+HRayz3pOgLGNyOXK9CoM1q YH60eN8dXJg1VhVf651+EdvKodmW8/Y= X-Authority-Analysis: v=2.4 cv=ZOvnX37b c=1 sm=1 tr=0 ts=6a35d120 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA: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=Y3CEZXcnQwYgoNz55sMA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 bulkscore=0 clxscore=1015 suspectscore=0 spamscore=0 phishscore=0 malwarescore=0 adultscore=0 lowpriorityscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190226 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781911905787158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/internal.h | 4 ++++ target/hexagon/cpu.c | 29 +++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/target/hexagon/internal.h b/target/hexagon/internal.h index 4338914efb5..00b37aea7af 100644 --- a/target/hexagon/internal.h +++ b/target/hexagon/internal.h @@ -30,6 +30,10 @@ void hexagon_debug_qreg(CPUHexagonState *env, int regnum= ); void hexagon_debug(CPUHexagonState *env); =20 extern const char * const hexagon_regnames[TOTAL_PER_THREAD_REGS]; +#ifndef CONFIG_USER_ONLY +extern const char * const hexagon_sregnames[]; +extern const char * const hexagon_gregnames[]; +#endif =20 void G_NORETURN do_raise_exception(CPUHexagonState *env, uint32_t exception, diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 3af90e30b0f..b35caaecfae 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -86,6 +86,35 @@ const char * const hexagon_regnames[TOTAL_PER_THREAD_REG= S] =3D { "c24", "c25", "c26", "c27", "c28", "c29", "c30", "c31", }; =20 +#ifndef CONFIG_USER_ONLY +const char * const hexagon_sregnames[] =3D { + "sgp0", "sgp1", "stid", "elr", "badva0", + "badva1", "ssr", "ccr", "htid", "badva", + "imask", "gevb", "vwctrl", "s13", "s14", + "s15", "evb", "modectl", "syscfg", "segment", + "ipendad", "vid", "vid1", "bestwait", "s24", + "schedcfg", "s26", "cfgbase", "diag", "rev", + "pcyclelo", "pcyclehi", "isdbst", "isdbcfg0", "isdbcfg1", + "livelock", "brkptpc0", "brkptcfg0", "brkptpc1", "brkptcfg1", + "isdbmbxin", "isdbmbxout", "isdben", "isdbgpr", "pmucnt4", + "pmucnt5", "pmucnt6", "pmucnt7", "pmucnt0", "pmucnt1", + "pmucnt2", "pmucnt3", "pmuevtcfg", "pmustid0", "pmuevtcfg1", + "pmustid1", "timerlo", "timerhi", "pmucfg", "s59", + "s60", "s61", "s62", "s63", +}; + +G_STATIC_ASSERT(NUM_SREGS =3D=3D ARRAY_SIZE(hexagon_sregnames)); + +const char * const hexagon_gregnames[] =3D { + "gelr", "gsr", "gosp", "gbadva", "gcommit1t", + "gcommit2t", "gcommit3t", "gcommit4t", "gcommit5t", "gcommit6t", + "gpcycle1t", "gpcycle2t", "gpcycle3t", "gpcycle4t", "gpcycle5t", + "gpcycle6t", "gpmucnt4", "gpmucnt5", "gpmucnt6", "gpmucnt7", + "gcommit7t", "gcommit8t", "gpcycle7t", "gpcycle8t", "gpcyclelo", + "gpcyclehi", "gpmucnt0", "gpmucnt1", "gpmucnt2", "gpmucnt3", + "g30", "g31", +}; +#endif /* * One of the main debugging techniques is to use "-d cpu" and compare aga= inst * LLDB output when single stepping. However, the target and qemu put the --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781911887; cv=none; d=zohomail.com; s=zohoarc; b=PTH/ofRqT8Hr8MM5w5r2vukefqO6cjSfvpJdTKsqfsxYTwRQ74ynxWswJ1UPMMdQcu6OtKjwfhihu6gXozxcUDmeERezrghQl9j/y4isZVQozfdcLgZEnLC1xw7E1P4XtTSbY7ggATm00ahZd3JW0LpmRCQumAUB3hX7NevMj4A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781911887; 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=nqsoCKwlR/1AtxhbSkaDMpXnd9wjaz9i7dlB1dgLGBU=; b=eqaKnoGRPFxOEn6Fsqnc6Bd7hRnsIpYzn7jKFBBpgo8EsFgbd9mPIeQt8rSBQebovyncQL8vmTvng0oLWjUxxRJ714DlQ5Vex7txlvMM7efGHFzbxmTzY+TzDFXt7P4K2JrTcpiwwsJF4F9p15SE/JP0tzigrY0WITcscM/C1p0= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781911887867402.9158143070979; Fri, 19 Jun 2026 16:31:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waig3-0004CH-RZ; Fri, 19 Jun 2026 19:31:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifn-0003ym-LE for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:55 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifl-0007TJ-Ke for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:55 -0400 Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLY7ca4085515 for ; Fri, 19 Jun 2026 23:30:42 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evmyrdm9x-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:30:42 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30bccca5620so3405809eec.1 for ; Fri, 19 Jun 2026 16:30:42 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d75csm1212646eec.15.2026.06.19.16.30.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:30:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= nqsoCKwlR/1AtxhbSkaDMpXnd9wjaz9i7dlB1dgLGBU=; b=W76zz0HbcfOQWEqV PgzRVWKY9erjO0SYOz7SjWehyA4TWpRDuNvxfod4IWDZWtINnCGrxwLJSvihoouY IaZkz8SjNAHI3BoOB87imtVh2lUzUD/9HQukS/OKiYHmDx1ZfZOtsfOONLL11Xvw yqGnz45egyYvHon+kqXfro991CQvMPOOflptlSVS2VeC9xawvvaRhSM2igRt0XY2 w8v3yRLJoY0eWrN5kK2OmZDqCRXhvdpL5uCK97EhTeiX34/F2EF0WfCxFUIuuZfO LecYAstIWHGTiVAU2CbTHfIFbtgqCM+PHmqemcNYkf5/OEmMA3e/L9OIxJtJrdkA 8ba8hw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781911842; x=1782516642; 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=nqsoCKwlR/1AtxhbSkaDMpXnd9wjaz9i7dlB1dgLGBU=; b=dnG3cIMbkqEIPmOUbwjAnlua5s1rPyrTA9gRFmeaK/ah+UNlPnjfTOUStMuvjOowW/ z9SfzglJavIhVF4nUiUIspndUIykFCYx2OYrcfVsQqCwjwGa87ohK7hYa9D1ozlqL4nc pXqN/XoJQbWG9uORpoqaiPf2BgnCGfGHLix+5b9I3wJR2JXk0igfaTZZ3lIwa2Gb3Ohu qJqB5xe+crWPrrIYdTNypNbEvcN8NkPboZW4Ku2P5kSA0pKNZcMjY13OpiM0hFP44YNu cJAfH2roWswE1xit0FjuHBZN90pGtBTfHxRyvt+/QL6hBfn12M5Ot46UhucDOTZ8P3tl Yxgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781911842; x=1782516642; 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=nqsoCKwlR/1AtxhbSkaDMpXnd9wjaz9i7dlB1dgLGBU=; b=CKRIT+OCEXxRoKdny3jIydgLllK51UILSaf6ZsnI2dPN3CWPLy2ugM0lUY2dr3eeuV PEIgXiAVJk7XCRtQ//JgG2XapbbajWyaLDaZ6X3yv7xJGsCGeDJJzE3LWfSduBb+dBod 084Zy0A1tAs2DmeInM2KUGgcaqtrjhw5BDGMnbR70IEqGIjdYkrfSWP38ZopFIEesYwj On1RsnCDyAmzATQUGuOw8Crcdqw8jlyx/CHHBdbifPlr1Kmn+9eTkVlHJZAlmPXKxnJ/ vqzB+RUnMSLrcRrUAw+9B8KTAONwj4P9PbQkWSXPJPwi3NoaiMApYWFjzarXlke7s4fK uqFg== X-Gm-Message-State: AOJu0YwDjZE/6Ioy85mG3LKS0LVaP55zMsh0ben6eVssa3R6lfxvTele TbzxeGyU9Pa77E9gkhwL99eYv4MdUMQ35+CyhKpQNIQDvIWDIaKQOw86RI9RsfqEoe20ASyHoGA BNONkBnlGj4YrXF48WZrIcZB7NbhH026Md2xmF31u3pFxkpRMKOOzkENuazyZssU2Sg== X-Gm-Gg: AfdE7cnC6GV3ROnqdFQXrMsFX1urAm5dheVHqDNvmGxrtr8w96EsJ8a8w2+JDPv4iEI EQkIOoLDzWqObNzcDt3hHBAHa4j0j6+o6a8nFvw2HvFYPEImCEOwgr2xhwbonXiH5UUv/kyUgiV LXPgZ/nd2U7MvIBDpkHkTwgUHVX2FJIw854SpLKLxEpJ5P3bAoSPYbU5qvVPLYtpOqK63t6pzG5 Cc0PckA3VdTgyrRFd9LMIP5QOSj9vgjByUQXzNldAYQsclXkTEhhy9K/IUx3gDiydqwUEtjiFaI cC4dCuHLqP/W09VBsZqIqkZi9EReFBteo8veQN7D6kthXMy1UGA8NRoR/xRwYXxomLlrxK6qWXp 070n6J167uc5zkKoh71oFwXl1foSrihl5XPY++q8BmDzuE4GZWl27pdDi7Ew= X-Received: by 2002:a05:7301:2f8b:b0:307:91f5:8eee with SMTP id 5a478bee46e88-30c06e33661mr3469246eec.12.1781911841636; Fri, 19 Jun 2026 16:30:41 -0700 (PDT) X-Received: by 2002:a05:7301:2f8b:b0:307:91f5:8eee with SMTP id 5a478bee46e88-30c06e33661mr3469232eec.12.1781911841096; Fri, 19 Jun 2026 16:30:41 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 60/74] target/hexagon: Add k0 {un,}lock Date: Fri, 19 Jun 2026 15:58:57 -0700 Message-Id: <20260619225911.159473-61-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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=RZWgzVtv c=1 sm=1 tr=0 ts=6a35d122 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA: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=ZtvnA-OJD4c8FAOZTSoA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: sBd-VKqlQBwq1KxQn1NdVyMyfe5DPe41 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX7qbQTQu6KG2U qmti+2UGRDw9XZHlMcdmY8u3KtWUYqGJE+nLKPOpXkEjZo6k0B1c5+F7q75N9yr5W9YZapnS+tY T3HVoRBh0tRZ5W8DcraA2KXHz/ArSMAruQrkuvUxt/u61Nt4vD5actaEMjKAB4vVm+/eyPfPBo0 e91fo38ptJKwwztjBc+fPeBGZKsR/mZONAuCkPNvgT2zB+STnyKs7HdMsQzLXoD1p771n7l5T7X q76owX+bXNghrUtzZuznAi/56q4ml3HYGCriWvrxgwlhrXrc/jhVBPAEQ2K2TdWaxbKn9iNx4xs 4Yu9Uh8Eapn8w8lcwsbBlD30Xqdefe2LkZ8DGsCQigTsXpqjVHQOI/Jpo3nTmGG/LsdXBPGKDcx JlbTZ51D9Ko4tfzi7Z3o8lAk5T9lPu/jMwzC5qT5fUKRiFaf6yxCL1XtnBSeeFbQxhIUqO6Zo/n bF8zA2aeqEItj1tvFOg== X-Proofpoint-GUID: sBd-VKqlQBwq1KxQn1NdVyMyfe5DPe41 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX4iLle+0VdnX3 r/DFriNXuh7JV+tz5IodZGowxP3+3G05vSv8z/EL3kjGWehutqnaPYEjVSM+zbMT5kML0hloucn Pwby9rWNNj3BGiTqjv8/LIvWGzz5U4w= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 clxscore=1015 suspectscore=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 bulkscore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190226 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781911889552158501 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/sys_macros.h | 3 + target/hexagon/hex_mmu.c | 4 +- target/hexagon/op_helper.c | 119 ++++++++++++++++++++++++++++++++++++ 3 files changed, 124 insertions(+), 2 deletions(-) diff --git a/target/hexagon/sys_macros.h b/target/hexagon/sys_macros.h index 707afc53e1f..a49c72715dc 100644 --- a/target/hexagon/sys_macros.h +++ b/target/hexagon/sys_macros.h @@ -148,6 +148,9 @@ #define fSET_TLB_LOCK() hex_tlb_lock(env); #define fCLEAR_TLB_LOCK() hex_tlb_unlock(env); =20 +#define fSET_K0_LOCK() hex_k0_lock(env); +#define fCLEAR_K0_LOCK() hex_k0_unlock(env); + #define fTLB_IDXMASK(INDEX) \ ((INDEX) & (fPOW2_ROUNDUP( \ fCAST4u(hexagon_tlb_get_num_entries(env_archcpu(env)->tlb))) - 1)) diff --git a/target/hexagon/hex_mmu.c b/target/hexagon/hex_mmu.c index 1c8ccec69ef..81d64a6146c 100644 --- a/target/hexagon/hex_mmu.c +++ b/target/hexagon/hex_mmu.c @@ -206,8 +206,8 @@ void hex_tlb_unlock(CPUHexagonState *env) (env->tlb_lock_state !=3D HEX_LOCK_OWNER)) { qemu_log_mask(LOG_GUEST_ERROR, "thread %" PRIu32 " attempted to tlbunlock" - " without having the lock, tlb_lock state =3D %d\n", - env->threadId, env->tlb_lock_state); + " without having the lock, tlb_lock state =3D %u\n", + env->threadId, (unsigned)env->tlb_lock_state); g_assert(env->tlb_lock_state !=3D HEX_LOCK_WAITING); return; } diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 9fbcd79c9d4..b82713bd1c0 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -37,6 +37,9 @@ #include "cpu_helper.h" #include "translate.h" #ifndef CONFIG_USER_ONLY +#include "hw/hexagon/hexagon_globalreg.h" +#include "hex_mmu.h" +#include "hw/hexagon/hexagon_tlb.h" #include "hex_interrupts.h" #include "hexswi.h" #endif @@ -1233,6 +1236,122 @@ void HELPER(modify_ssr)(CPUHexagonState *env, uint3= 2_t new, uint32_t old) BQL_LOCK_GUARD(); hexagon_modify_ssr(env, new, old); } + +static void hex_k0_lock(CPUHexagonState *env) +{ + HexagonCPU *cpu =3D env_archcpu(env); + CPUState *cs =3D env_cpu(env); + target_ulong syscfg; + + BQL_LOCK_GUARD(); + g_assert((env->k0_lock_count =3D=3D 0) || (env->k0_lock_count =3D=3D 1= )); + + syscfg =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_SYSCFG, + env->threadId) : 0; + if (GET_SYSCFG_FIELD(SYSCFG_K0LOCK, syscfg)) { + if (env->k0_lock_state =3D=3D HEX_LOCK_QUEUED) { + env->next_PC +=3D 4; + env->k0_lock_count++; + env->k0_lock_state =3D HEX_LOCK_OWNER; + SET_SYSCFG_FIELD(env, SYSCFG_K0LOCK, 1); + return; + } + if (env->k0_lock_state =3D=3D HEX_LOCK_OWNER) { + qemu_log_mask(LOG_GUEST_ERROR, + "Double k0lock at PC: 0x%" PRIx32 + ", thread may hang\n", + env->next_PC); + env->next_PC +=3D 4; + cpu_interrupt(cs, CPU_INTERRUPT_HALT); + cpu_loop_exit(cs); + return; + } + env->k0_lock_state =3D HEX_LOCK_WAITING; + cpu_interrupt(cs, CPU_INTERRUPT_HALT); + cpu_loop_exit(cs); + } else { + env->next_PC +=3D 4; + env->k0_lock_count++; + env->k0_lock_state =3D HEX_LOCK_OWNER; + SET_SYSCFG_FIELD(env, SYSCFG_K0LOCK, 1); + } +} + +static void hex_k0_unlock(CPUHexagonState *env) +{ + HexagonCPU *cpu =3D env_archcpu(env); + unsigned int this_threadId =3D env->threadId; + CPUHexagonState *unlock_thread =3D NULL; + CPUState *cs; + target_ulong syscfg; + + BQL_LOCK_GUARD(); + g_assert((env->k0_lock_count =3D=3D 0) || (env->k0_lock_count =3D=3D 1= )); + + /* Nothing to do if the k0 isn't locked by this thread */ + syscfg =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_SYSCFG, + env->threadId) : 0; + if ((GET_SYSCFG_FIELD(SYSCFG_K0LOCK, syscfg) =3D=3D 0) || + (env->k0_lock_state !=3D HEX_LOCK_OWNER)) { + qemu_log_mask(LOG_GUEST_ERROR, + "thread %" PRIu32 " attempted to unlock k0 without" + " having the lock, k0_lock state =3D %u," + " syscfg:k0 =3D %" PRIu32 "\n", + env->threadId, (unsigned)env->k0_lock_state, + (uint32_t)GET_SYSCFG_FIELD(SYSCFG_K0LOCK, syscfg)); + g_assert(env->k0_lock_state !=3D HEX_LOCK_WAITING); + return; + } + + env->k0_lock_count--; + env->k0_lock_state =3D HEX_LOCK_UNLOCKED; + SET_SYSCFG_FIELD(env, SYSCFG_K0LOCK, 0); + + /* Look for a thread to unlock */ + 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->k0_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); + unlock_thread->k0_lock_state =3D HEX_LOCK_QUEUED; + SET_SYSCFG_FIELD(unlock_thread, SYSCFG_K0LOCK, 1); + cpu_interrupt(cs, CPU_INTERRUPT_K0_UNLOCK); + } + +} #endif =20 =20 --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781911926; cv=none; d=zohomail.com; s=zohoarc; b=SKz/d6O4Aj1/2Cki8R1RPW/HFwanKFzsqkh1YPk3GeVt+I0to1FzuVLwXd8aeQWHKr+ibypgJ3istr/+RfrxzdnQZV+GbT5psv6zVfPrs4BbvRXuJgUG2dGbD42Y2IgwMYoUoTdr0UuqQgyKEJEXMk7IIekwy1PjcP3R3QQrhUo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781911926; 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=k98P3mzy875bIQ72dfi4cpupNsJGfuDp4DlfWaLieyw=; b=blRZZ7VV48oAxwIss0RgdJqyD2KGnz2ayJqVMaGpU0z9Hv6CUNYxhawa1pbdXxmO561/neV3BJ+eT+8X1oZpqYp+2cYbEkoEKsCTghF6nQJLt7HJNbqqRMmQJvrukD3OR4u+KbnZEMFqKfpejbEl1JqH5WB3hQMKvrH8qRYfVfw= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781911926661941.2426008340341; Fri, 19 Jun 2026 16:32:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waify-000474-R1; Fri, 19 Jun 2026 19:31:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifo-000424-U4 for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:56 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifm-0007Ta-Vj for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:56 -0400 Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLY2Kx2933379 for ; Fri, 19 Jun 2026 23:30:43 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ew5qsa52b-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:30:43 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30ba395b047so10087179eec.0 for ; Fri, 19 Jun 2026 16:30:43 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d75csm1212646eec.15.2026.06.19.16.30.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:30:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= k98P3mzy875bIQ72dfi4cpupNsJGfuDp4DlfWaLieyw=; b=g6vuOIXspRHVbT4C lCyekPT5PeGkUscaMpJ0Vf0BL+ErEHz16BE98VWw8ZCh/3BFT/OogX/wdDkb7rt9 R0cANX1wyAOBK+WARp4TZZI//vs+h5Hb6IipKkY8WwsJ7mQIFQRrsAsUm41WvqTF FQi4nnjBCmvjZYlX2w97DwxjH0rKfCDblZQFpErfVBGsROZbVFbvUZukYxLidkAY TgDiuVw7hhHCrQiwCy09OUr3dG8/5mJ4EBDk/ej4/B0XmUSLyt+5YJGexob737z3 M1BiKri4tOcxrMmmRSlB7tIsk5yS24rySxR9Xn35f5lhVmTVembP9qYhIPfr2DOP twKJCQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781911843; x=1782516643; 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=k98P3mzy875bIQ72dfi4cpupNsJGfuDp4DlfWaLieyw=; b=CEiSkTRRc/aLpfNDzei3+5EppdQTZo5QaakpC5t9AUV8NbXaz4xPUA/4G/H/Je1oDS AvzoQ7U/Of/4QboaK5nTdxFAyzXXlOuZluhErXHqNuIKkROO/N4JbpmTg7Ic1lwy+i9P 6CW60ldC1YV3xwbVRxeBJpRjYAOkXa4qH5yzWuzH3Tfr+VxL1xhDXFHrNmpgMbaOVPq9 3s1RqtxXZV1MOzbYA7OFxMdtSKNiJiSiVC25T7BcWvH9W1T/KXlZHpdbZBEmBB+PAwfw Wnag9XXqPusHVJMW9Eo1CYb1byDsYYS4y9A2bc/nbCe61cHvW9x8mRWHAreC3H65ZYYB GLGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781911843; x=1782516643; 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=k98P3mzy875bIQ72dfi4cpupNsJGfuDp4DlfWaLieyw=; b=CMOTeY6iN3khvHJLZvvNEEysYYArtmmKZ5R/TYl47t1+sxHP5CPoRl+4hS+Q2DaPk4 cc+1oJy4Q6zSuvaNhDYwWeRW7iuBnKOKXfgPqlKLTXOQUfOw+nhQ4eLRgsesk8CmYkAL 90fqV+m+8g2Z5DdXgbQ6sY9jcrRIVa+XFdwwTJwKz9HlU/sCv9ptP0TmYzb6l7I7dVv3 CW3u5cU6OLnLgbjNuJK4GB3zMFUsrOvufChX7UK5JArHP95j3spT65iMT74Iob4yB0xE 1tqW6N9y5Tzog5cn9LRN319gy6Ci4xojnETfLEU6TIXPt5FB2jPnNNpmxYTO4aiQFsQ4 QmHw== X-Gm-Message-State: AOJu0YxPCoyBVXdHh8YSAJ7m+Gh9v0wx+A8Il9XdJFqcy5FKva0xSonB QjEk1tbFDDeeOxp9hSoTYcurlVidqLspw5Ui6aIMIVyrjCL4euXkzJGM3WAz24Bc9+XfNUkUq/V B9nrT1Pu6C/gm2ol9S2pz/C0ZGGtJjhgYbE2jWg8HLlq6YTYU+md0ehgbsmu8w4F4hw== X-Gm-Gg: AfdE7cm3R3TCexi/Zdpgv/B7otx6cF2yj8hqUcqQWe9Ygu7suDNkVh0Pnmkf3HCVl5q XLTHieIPq9xVVEZ+YUGAPBuPcrp0XELEih4LItnjtU01644LAE9JzY2onrq3PU681LaEJUFvacs dvEUomkZZfGBCIkyNa8OyXsw0cJYDUEJ+igYSp16xuALQc0dP5Aj/YjGNYf3a/q/AxB2eUUh5bx lD1eKr2ymg5xDusEz/pklFc4vMLfhHg8FphjtzwyhtLmU0GZCdZYxCq5TobEYzW+vwGKy8v5n/V 4m+xHNTu22n2lAIG43YNCVI6km1IQq55JQF3aDMv33KK+dN3GN+3GKl7HTZiVkkgOzJvM5IfQ45 ngjDCZ+oBW5aeXyp/a5D1fcwNw07IG2/guY3iPWBwfD3cV77oAo6IfOmCwIg= X-Received: by 2002:a05:7300:4311:b0:304:886b:b07a with SMTP id 5a478bee46e88-30c0704289bmr3489317eec.14.1781911842966; Fri, 19 Jun 2026 16:30:42 -0700 (PDT) X-Received: by 2002:a05:7300:4311:b0:304:886b:b07a with SMTP id 5a478bee46e88-30c0704289bmr3489299eec.14.1781911842444; Fri, 19 Jun 2026 16:30:42 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 61/74] target/hexagon: Add PC to raise_exception, use fTRAP() helper Date: Fri, 19 Jun 2026 15:58:58 -0700 Message-Id: <20260619225911.159473-62-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfXymXBeX5aNc/8 kDAWPEEk947TnBCgLTyGMDKWeogJCk3SYQyh3IsVtyXgAUOijlGxcQezZD5NrANmOKUI0bW9fyk ugpEwroFsVTW7X5xXYQWBPbtEgyoghYZm2rG6S5sPd2Tb+Gm45Gxge2u6I4EXmgWjmfhI2COLCF UB5v+JNWeDCoEOHE+Cl4VZMPJI5moJQ7xeSG3VkFv4UCQVuZwIC2FuNBXsOs5TvlCxS3RAXuD7x UaoZgLIMNVExzsIQ4zL7jpBbnZJSGasCsbilqoVArb+XX2EbMew7F8kuTApb4512yoCj9KFOpeo fPvTgciwTWKHOMN9NL1rxJ4y7Fy3vvGHclI6jwQeQKhg+RcgCNcUPLdwMu81DyJ/jdweS6EVJ+Q i5s6kpKIwZelIYHIV6/EP5YZUky7zWXd0U532hP3l5L53SYtOZhTYaxb3OzFuc28nhNDEO0s43+ RlFcPrmOsEGIQv30Rag== X-Authority-Analysis: v=2.4 cv=M9R97Sws c=1 sm=1 tr=0 ts=6a35d123 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA: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=4FQt9sIIQT5CW9ciUtIA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: ctDsz2FWXNcivE08DjVO3XiqbbO3vG83 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX2ENCCWJfvKzH x9y+67IODm2eaqb6vNP6qGm5rrluBf8aA6Bo6VroLn15rXIHFXflVw02KoFgiCvwwj8GTxFSJHj Cua4jumG9mbuBQYgwEJHWGKDSo+S+kw= X-Proofpoint-GUID: ctDsz2FWXNcivE08DjVO3XiqbbO3vG83 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 malwarescore=0 bulkscore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190226 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781911927619158500 From: Brian Cain Add PC to raise_exception helper Replace the fGEN_TCG_J2_trap0 macro override with the fTRAP()-generated system helper instead. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/gen_tcg.h | 7 ------- target/hexagon/helper.h | 2 +- target/hexagon/op_helper.c | 10 ++++------ target/hexagon/translate.c | 21 ++++++++++++++++----- 4 files changed, 21 insertions(+), 19 deletions(-) diff --git a/target/hexagon/gen_tcg.h b/target/hexagon/gen_tcg.h index 4a58ead877b..a28af0c245b 100644 --- a/target/hexagon/gen_tcg.h +++ b/target/hexagon/gen_tcg.h @@ -1349,13 +1349,6 @@ #define fGEN_TCG_S2_storew_rl_st_vi(SHORTCODE) SHORTCODE #define fGEN_TCG_S4_stored_rl_st_vi(SHORTCODE) SHORTCODE =20 -#define fGEN_TCG_J2_trap0(SHORTCODE) \ - do { \ - uiV =3D uiV; \ - tcg_gen_movi_tl(hex_gpr[HEX_REG_PC], ctx->pkt.pc); \ - TCGv excp =3D tcg_constant_tl(HEX_EVENT_TRAP0); \ - gen_helper_raise_exception(tcg_env, excp); \ - } while (0) #endif =20 #define fGEN_TCG_A2_nop(SHORTCODE) do { } while (0) diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index aa3604dbdc5..033e5619d6b 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -18,7 +18,7 @@ #include "internal.h" #include "helper_protos_generated.h.inc" =20 -DEF_HELPER_FLAGS_2(raise_exception, TCG_CALL_NO_RETURN, noreturn, env, i32) +DEF_HELPER_FLAGS_3(raise_exception, TCG_CALL_NO_RETURN, noreturn, env, i32= , i32) DEF_HELPER_2(commit_store, void, env, int) DEF_HELPER_3(gather_store, void, env, i32, int) DEF_HELPER_1(commit_hvx_stores, void, env) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index b82713bd1c0..8a3723cbafa 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -66,15 +66,13 @@ G_NORETURN void hexagon_raise_exception_err(CPUHexagonS= tate *env, uint32_t exception, uintptr_t pc) { - CPUState *cs =3D env_cpu(env); - qemu_log_mask(CPU_LOG_INT, "%s: %d\n", __func__, exception); - cs->exception_index =3D exception; - cpu_loop_exit_restore(cs, pc); + do_raise_exception(env, exception, pc, 0); } =20 -G_NORETURN void HELPER(raise_exception)(CPUHexagonState *env, uint32_t exc= p) +G_NORETURN void HELPER(raise_exception)(CPUHexagonState *env, uint32_t exc= p, + uint32_t PC) { - hexagon_raise_exception_err(env, excp, 0); + hexagon_raise_exception_err(env, excp, PC); } =20 void log_store32(CPUHexagonState *env, target_ulong addr, diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index f5450ced7de..e0418ee990d 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -126,12 +126,19 @@ intptr_t ctx_tmp_vreg_off(DisasContext *ctx, int regn= um, return offset; } =20 -static void gen_exception_raw(int excp) +static void gen_exception(int excp, uint32_t PC) { - gen_helper_raise_exception(tcg_env, tcg_constant_i32(excp)); + gen_helper_raise_exception(tcg_env, tcg_constant_i32(excp), + tcg_constant_i32(PC)); } =20 #ifndef CONFIG_USER_ONLY +static inline void gen_precise_exception(int excp, uint32_t PC) +{ + tcg_gen_movi_i32(hex_cause_code, excp); + gen_exception(HEX_EVENT_PRECISE, PC); +} + static void gen_pcycle_counters(DisasContext *ctx) { if (ctx->pcycle_enabled) { @@ -140,6 +147,7 @@ static void gen_pcycle_counters(DisasContext *ctx) } #endif =20 + static void gen_exec_counters(DisasContext *ctx) { tcg_gen_addi_tl(hex_gpr[HEX_REG_QEMU_PKT_CNT], @@ -211,8 +219,11 @@ static void gen_end_tb(DisasContext *ctx) 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); - gen_exception_raw(excp); +#ifdef CONFIG_USER_ONLY + gen_exception(excp, ctx->pkt.pc); +#else + gen_precise_exception(excp, ctx->pkt.pc); +#endif ctx->base.is_jmp =3D DISAS_NORETURN; } =20 @@ -226,7 +237,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; } --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781911952; cv=none; d=zohomail.com; s=zohoarc; b=mJcbFazOQyso+aVmluVWcYnjwxFpBytmRPm7ekzcb93FNELJWdnxBRnTBfC1ftU/dr+JLPakslGgVCFucDoQQeITx3OKb0yOQnb64Jp6UDvMN3MbCV2AmMIOjGi3l5c7TygQSt8nRnS2UKGR+x4GrKmVi9EQUj7AJWDEyb6ua8s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781911952; 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=1ECOxl3Fg5yOtnmQVv6BfaD55uXykPkSbZivFHhIDWY=; b=EueeZHUIzyU+Z79asEun9FNSK6VjJo4BB6uE7i+BdFIRUUYIKIr+53Z8SvC9EleenqkaV0uesv+BfI0k9+80Lbfi8d7BYTSCkkLPs/I56mURxGr/dzSIPSVYOKpMUDJNYfxNnQT6uskjZIOWGn3Er9leqhGFCIuY4CeuRt6Cgmg= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781911951994572.3488476078841; Fri, 19 Jun 2026 16:32:31 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waig4-0004DS-DF; Fri, 19 Jun 2026 19:31:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifp-00043i-O9 for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:57 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifo-0007Tu-6O for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:57 -0400 Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLY7cc4085515 for ; Fri, 19 Jun 2026 23:30:45 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evmyrdma2-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:30:44 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30bfe262ef0so1143543eec.1 for ; Fri, 19 Jun 2026 16:30:44 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d75csm1212646eec.15.2026.06.19.16.30.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:30:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 1ECOxl3Fg5yOtnmQVv6BfaD55uXykPkSbZivFHhIDWY=; b=SyGgNTiYlrS4KJaj XlLVjJgM7hiXxjJMxKvDlLTswnXnr0FxK7zcINBBxEhl8J43qI7r8rCqnPs6WbeW 9T5EY14wbsOTrz0pXygWpZbrBja9c7YtVvYZTQsab3I92LKLdb9tCrddPynmBJj+ 2+pUo4CAqngrb8liTVjD22VW/22f08zjstRLw2mny4d/0iHvQrKu6cLCqI+0+Z8t r2EvfsBSXilAd+4TMLGgw9IaJKaag0Ik2tI63zxPQt2/+1oDNpWjZmy1Nfl+b4oE SJ8MGhW/pcwhcXQDTuU6ERYla50Oi034x6faHWvK3KD15duRru5wKaSdmW7b8xd6 7ptYCg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781911844; x=1782516644; 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=1ECOxl3Fg5yOtnmQVv6BfaD55uXykPkSbZivFHhIDWY=; b=Iu1IwTI9BOI2lS/r1h4mdOv+QiWOXGPColm9A2MTNj5xD+zTemb/Y8ihyTkTszeB8F 8S55cbmJcIS+0W4DcF+yjv/IbomTfm1l+JtVEUQsQb6aaPIapQudjm3VmtmqUjpTb81b ntNgV3bN1wUinxfpBuRSV+DGeByBopdrt1JeQyTo9crun2dP1viYbNObBCD8QVXjOenH rdoFd5fCuRHp6e33Vd+cXc7aXU+WS3OIL/XGtEusxIx934+tu+IUFTuYzA0dg1e4hvhx 81ckQEe8Yv5IHUuG74J6F1bqdTbLhD72hmlPR3di8rQl+37KnZhEDLIrqI93ka+1l97Y INGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781911844; x=1782516644; 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=1ECOxl3Fg5yOtnmQVv6BfaD55uXykPkSbZivFHhIDWY=; b=PiTmw3CPcrmA5Jp2PYVqpwooUeyn9ODryB5rga7VoY3Xv1jzh5zNvMEZX2SoIKp7/+ FCfmGFhOpAwm5c4zdVty95SJeKq99t93JzlYVoH8hmgFpsfYkcSPwcszVbMbMglsM6dp RoxvLyLxNk0neCQMYf/ZPXPWLxZQBXLRJc3cYoBlwDXFYo6pkncAlxrGM/GiPq5rr5cy wCx5Ed/N01S83CrQqh4/3N+NbMerImHluA7/PgijgPiX8HI+2jgcUlzeTRDZCLsFa/QR wVLzM6gf+fQmXMLhshIqsjua2qDnuEv60zCiPh8aZwF3Pq0i5JxYRp0ZiHwCbPa0HlrL X88A== X-Gm-Message-State: AOJu0YwSS82uFIqkzK4iaYEBGXnKYR2wytjoSzRrcPPt1g8VRRIfSps4 irQZW0n3BU2fJWJcsP7sfhLfQ+knyfVQxINSLXbkb5uGCY2w7crmy5SiMIGNbLvxMeQ4/pr1Ztg i/NGnQsLGVjGPhjHhnjy8oaP/oHpEL6+Qd2LSgHFktfOj9jD7TZPIVU0VpvwRWMWDnA== X-Gm-Gg: AfdE7ck7LTyqyHmqfX5BPkebjgusVR5oa/ZCe0nQ2Cj63rgE4V8eBrFm1f0kqhqSoTR dEwgZHO7DdaNjkOd8WXgSFjQQniPt4LaUz7isCWVXL+i3jOmZMZQi+S3Bj9i3BpWStFZ051RVbP 6fjqmz19idScK9VfHeqp3GZ6IYtN6OVEwhE21XVBr05n4Lbqc8c12Ys0B4vQhQfLkkqX+uxvUHv zh8ciC7Z5/cpm8xHsU/hND+QHCwzsFw6aT8+zWWo6K0wikyM3XFjKhE6DCubKA5nUMZ6zLjpctJ CcQBUiJUpXtjg8p1LJCna6Xy2qtyqci1DLurK5m6hNsWWcvfDhMG6UAPQWoylxOEzPHs5D6GL3t QF6dVLwUJ0LdzowQKYsN1Zq1G+BrUQh7QoVlsbS17/x+918vn1EFUo8i/RlU= X-Received: by 2002:a05:693c:414b:10b0:30b:d86b:f250 with SMTP id 5a478bee46e88-30c0766a680mr2066126eec.0.1781911844242; Fri, 19 Jun 2026 16:30:44 -0700 (PDT) X-Received: by 2002:a05:693c:414b:10b0:30b:d86b:f250 with SMTP id 5a478bee46e88-30c0766a680mr2066115eec.0.1781911843707; Fri, 19 Jun 2026 16:30:43 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 62/74] target/hexagon: Add TCG overrides for transfer insts Date: Fri, 19 Jun 2026 15:58:59 -0700 Message-Id: <20260619225911.159473-63-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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=RZWgzVtv c=1 sm=1 tr=0 ts=6a35d124 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA: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=LN73x9Sj_Gq4gUX8wwYA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: YKNtUE9Se55huGDEgzzPJxq7HaZdT6Uc X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX4ztQaFhYfDkQ WxSSwDUgCF27droSt0rh53kYnqRf2BR36X0aJFCAVfB//jPV5RNOvQxB8asC8Bp+Jpg5k3iadkJ DdYMzRA2LSaAxlOdqNshNOyaii4EP4u4KKGH/kkt13qKKMUMc1ARDmsTD6zv9LOnTyyrTD/GMG7 htTnRCOcBU2ygwLGR8oxO6mcrYeXMvwJtK7G5Ev/GqAwDdIxIzPPUnJZ4b3GX+CaBtZr6qRCiQp penjj30lp34rMTcRReZCod5MuZqyRhlJxBriMl3hPeVi+fxTxQDcQa8VSPQXv+UaEfUeHBGObwo zZv5tBpYhh8VQbq4zTaBrAGVg6f1n5MbvJEG/sjH7EZiaCXfcoQAWZB75ZIfDffHGFyH56FV2rJ JMwxEfOKcS+TW/Nve+/QSgvxxMRHHxhalGT1/+z5KKGMymQ/B5C7JAL6oMrRoQ41B1EK0gaSP/W L1A+zIHeMVwbIueDO6Q== X-Proofpoint-GUID: YKNtUE9Se55huGDEgzzPJxq7HaZdT6Uc X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfXyGMDKwcHzMr2 q3yCSm0Z+UyLHH3JqHhlxSd150odaYIcWHw35LOa62Jd0nTgJFdrsg3qtuxFOwieXnzAYcaCa9h bc3xP2mba5LhUNjOsHwpT8cw6hOdC64= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 clxscore=1015 suspectscore=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 bulkscore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190226 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781911953810158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/gen_tcg_sys.h | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/target/hexagon/gen_tcg_sys.h b/target/hexagon/gen_tcg_sys.h index 68b23895428..af5032214c4 100644 --- a/target/hexagon/gen_tcg_sys.h +++ b/target/hexagon/gen_tcg_sys.h @@ -95,6 +95,31 @@ gen_helper_stop(tcg_env); \ } while (0) =20 +#define fGEN_TCG_Y2_tfrscrr(SHORTCODE) \ + tcg_gen_mov_tl(RdV, SsV) + +#define fGEN_TCG_Y2_tfrsrcr(SHORTCODE) \ + tcg_gen_mov_tl(SdV, RsV) + +#define fGEN_TCG_Y4_tfrscpp(SHORTCODE) \ + tcg_gen_mov_i64(RddV, SssV) + +#define fGEN_TCG_Y4_tfrspcp(SHORTCODE) \ + tcg_gen_mov_i64(SddV, RssV) + +#define fGEN_TCG_G4_tfrgcrr(SHORTCODE) \ + tcg_gen_mov_tl(RdV, GsV) + +#define fGEN_TCG_G4_tfrgrcr(SHORTCODE) \ + tcg_gen_mov_tl(GdV, RsV) + +#define fGEN_TCG_G4_tfrgcpp(SHORTCODE) \ + tcg_gen_mov_i64(RddV, GssV) + +#define fGEN_TCG_G4_tfrgpcp(SHORTCODE) \ + tcg_gen_mov_i64(GddV, RssV) + + /* * rte (return from exception) * Clear the EX bit in SSR --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781911968; cv=none; d=zohomail.com; s=zohoarc; b=Aaulk/qXa/XNY6L5qVKGPQQ81hYdq6TDE5bHUo1+X2LF35DzK4PAFOXxbpOxmtFA0VKKVChk8FPxeKCA1ytuH3u4UstKOJiuKRM+vMDb9g89EPdhWN+J7sZlqiRTUq+9ocejicYusYAKMVtaw9LLJBB90jk794wu/4ry4JmpdhA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781911968; 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=W9aRU99FRJkCFdVjE14GeGuaLGKvifAUAOZ13h7xav8=; b=ILllEQUqbld5oFlCw90E2AUwlhCFXL9ow8Mijif2Cgr9aXgQNoWcPsXj/39c51Wn93zeuVjejMp7GilyPf9yfV6zB0yg2/Htkd8AXMIAS3JHKOecnHBjnya/xF9AhccOExc4HnN0auIUGKd9NF4s0YxoxSbU6HhK1NZw3GRsb28= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781911968134829.6485993467874; Fri, 19 Jun 2026 16:32:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waig4-0004D2-7I; Fri, 19 Jun 2026 19:31:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifr-00046O-Ak for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:59 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifp-0007U0-Na for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:59 -0400 Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLXeaq2932941 for ; Fri, 19 Jun 2026 23:30:46 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ew5qsa52d-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:30:46 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30ba395b047so10087314eec.0 for ; Fri, 19 Jun 2026 16:30:46 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d75csm1212646eec.15.2026.06.19.16.30.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:30:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= W9aRU99FRJkCFdVjE14GeGuaLGKvifAUAOZ13h7xav8=; b=XsEKl2+oKi76K1QR KpppJ6xR2Fe4TuDw1EYPAbIJf78PULVeflMlmstQcI+CtYqcaQ7oXb92faK+QiE4 3xEbxiYoHkepj+V+nG0pXaXSphmMU/WG3YZo/M2cTbQa7rvbWsRsjZVskn/lnfo3 dbj53p0kPsxwnkNZE3Yv9PAjGogKprKRuVPfJpdiB58NhZvRh2pk3xa0PxCabWfC PHCsIJ1QlK5JzPYMB8VrFzgKdpHXzNYhSN2sr+XagcapU/LHugn/ug9zVd/p9hCI AzjCGxl/UYVpFK9nodoGsB8WiV2mA6Sq2DB8wHVLOz3+tjazgbyOzfiVqF1V1mLZ 6276kg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781911846; x=1782516646; 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=W9aRU99FRJkCFdVjE14GeGuaLGKvifAUAOZ13h7xav8=; b=J25HmJObTx/4IwJyRHXGBgPR4dnjcbVsaBP1Zcju8iZnHhOTBaMcOCSbFbXdlegeJD xq7AXXXFzkuWOxZWRl0/yWa6hbGP4gjjJzJ8qtkjPdw1CQwodEF7CAx0LfY1NfEUhc5d P8Uas2uJxMpNBrH5gcPx7LFeNrK2leoOGMiRu6u0dTfC+/WgvlbFAL/qt3eIaENFjai2 C3FmexSkoLvNDu+TqmL+9Eb+5G1PqAeehaQklzXfZ8sNB1+y+3qeRXGFQrCYTnKzaZPC lrnBymmLPVY05mah5zWLpL1ZwRqX4KngHdzOCgwtKrDx+P5fC7DgpwlBi9+fDvEHab6F jMoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781911846; x=1782516646; 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=W9aRU99FRJkCFdVjE14GeGuaLGKvifAUAOZ13h7xav8=; b=qfB0FDCX4oG8BA453S8VR+fXwH3mIgR9FzuHYlQUkjF79Q3YpyhES5aHRm0JeSR5Px VD+NrzxM4RfXA7qSSqCuPICnViSy1Feh7WwteqhzQbTUzm8+M1a6g4kfkizItqdVluLK 9qImmsBGbgs0bXnN6xgIvxw77NI6hkpk2C8V7ECA5MW4JGiYuIQ2o0aS/wo524QxJ+OD Bhae2KZx5UC08lnw278vlxhMmXZXN5fuxCCMjtPqbeqFnEd1/WI0q8/XpAPTTkolbQLq RQAqrXGH6dBhIaUjnCBdnBpQYVMNddC+upvHTnGQlfEJsXLU6oj6OAtd/erPUImZPpGn uFyg== X-Gm-Message-State: AOJu0YwbmuGEcn5mt93bI3Ad95IlgfmFV5sZya0adkiTS2kRN2JZVrqt M+xUYLVFS+9RS0DIW2CbfZYj4sBM765uRVTZMK5ZklIvutCBVPrnw6J15bZqUWATTLOc3jrrUs3 71mnqj6S4F1zX6qANFtMvsMnCvbGeKS+x48brJ7KcfooaNar8uBUAOoBaZ/bCmkT5zQ== X-Gm-Gg: AfdE7cnKg6TueBM5IvlKt9HRZNMspKUoeznpSvDizIi5ubhKZ/q6PpDwaQEQ51Gpzgr TVuRWXk642j+PINhhFsxb8tTn1+P2LpEnh6aWBIlZIDTndb9u0JHpKFOfrX9AWML+B2n77vFc6m GyOOy4/dUYL0maRHKqx6e3QnIWLlxUJMwS0HVd7GsG+6JBT4hgT6CnBfMvEAuyo0yCKLfIbNkFR OENLJXzkEfz6mTBbpQQLeSpx3zlrpGGRZL4a5tWk+oyX+thev3VxrH2NOWpwXvMVYjsy5rv+3uZ f+7SADqHSu+85Lue42cNhusrNLGKsWQFm+yDPK5CF10VJPC5mG+CEKJrTl37qpw+DwmEMmhO6pz 0JlyRb7LZYajIwDdM4ryrghPIXPxgr4lb5wkUK/2/Vtd1EAFyZnEpyjBfD3Y= X-Received: by 2002:a05:7300:1488:b0:30b:9e56:e547 with SMTP id 5a478bee46e88-30c06fec282mr3400552eec.6.1781911845680; Fri, 19 Jun 2026 16:30:45 -0700 (PDT) X-Received: by 2002:a05:7300:1488:b0:30b:9e56:e547 with SMTP id 5a478bee46e88-30c06fec282mr3400539eec.6.1781911845166; Fri, 19 Jun 2026 16:30:45 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL 63/74] target/hexagon: Add support for loadw_phys Date: Fri, 19 Jun 2026 15:59:00 -0700 Message-Id: <20260619225911.159473-64-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX1Q56/X30uuG2 M1MXmom5M4VJavv+bd7XPCBZldRDGFB3Azi/bx0bIv8r1KKTbAbRB8WkxjzIRs6oAw9U3Y9XD1I BcCgAt8o/MVIEqUYAxz/SXVc55/NxUOPRPJwOdyNZ+DZzya/xjdA0GYcBvQzGmLDA2+Q+ze5B1a GwmmpEs10zPA+dglRuY8frrdvThHCaayxOCYORcLmRzB6cyDSgbOtv62mUt1XQFGOgA7MrvKqJW nmhICD5fwfv2obqAfN+6iU5DJV4MD9KBzosGnXq7LEzZ3x0Pgk0bK0aW4RxKewakF5CU1oiREoa obZ8PoRHcbUiw0o0CUnfRyao9mtMs4GhCZj28skJyjMiDxV5hu1PbsHeR/ePeAPSv5xeYH5q9+2 CYwpwEBdzMp4PnIdKYzn0uc1NyAH9FhFixhneKoNAKukb8iAgZZaW3si+zyu+C4w6qIxWY41sBw Qc14NJGfEfbFxGFdYHQ== X-Authority-Analysis: v=2.4 cv=M9R97Sws c=1 sm=1 tr=0 ts=6a35d126 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA: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=M_0_kNSAHlZdZebFLzYA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: j81CMSVZQAi3LwWy2zWCEumk0lmk_gb2 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX3GL68neC3WQ0 lnRWs2Clq3K5fVq+MsjSSEDBwp7kE9YmFIpNcvn75b3yy/4l4Yhe+EYGb+aF22PFIOGrJoyH+fj i0tMFYFSmrDFDo5GCqUYpPI9SLuT7Fs= X-Proofpoint-GUID: j81CMSVZQAi3LwWy2zWCEumk0lmk_gb2 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 malwarescore=0 bulkscore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190226 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781911969718158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/hex_common.py | 3 +++ target/hexagon/imported/encode_pp.def | 1 + target/hexagon/imported/ldst.idef | 3 +++ 3 files changed, 7 insertions(+) diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py index acaaa3c944a..d91a653c3d4 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -264,6 +264,9 @@ def need_slot(tag): and "A_CVI_GATHER" not in attribdict[tag] and ("A_STORE" in attribdict[tag] or "A_LOAD" in attribdict[tag]) + and tag !=3D "L4_loadw_phys" + and tag !=3D "L6_memcpy" + and tag !=3D "Y6_dmlink" ): return 1 else: diff --git a/target/hexagon/imported/encode_pp.def b/target/hexagon/importe= d/encode_pp.def index 04e911f59c8..1c64495d519 100644 --- a/target/hexagon/imported/encode_pp.def +++ b/target/hexagon/imported/encode_pp.def @@ -384,6 +384,7 @@ DEF_ENC32(L4_return_fnew_pnt, ICLASS_LD" 011 0 000 ssss= s PP1010vv ---ddddd") =20 /** Load Acquire Store Release Encoding **/ =20 +DEF_ENC32(L4_loadw_phys, ICLASS_LD" 001 0 000 sssss PP1ttttt -00ddddd= ") 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 diff --git a/target/hexagon/imported/ldst.idef b/target/hexagon/imported/ld= st.idef index 53198176a99..4e1e5d5326d 100644 --- a/target/hexagon/imported/ldst.idef +++ b/target/hexagon/imported/ldst.idef @@ -203,6 +203,9 @@ Q6INSN(S2_storew_locked,"memw_locked(Rs32,Pd4)=3DRt32",= ATTRIBS(A_REGWRSIZE_4B,A_M Q6INSN(L4_loadd_locked,"Rdd32=3Dmemd_locked(Rs32)", ATTRIBS(A_REGWRSIZE_8B= ,A_MEMSIZE_8B,A_LOAD,A_RESTRICT_SLOT0ONLY,A_RESTRICT_PACKET_AXOK,A_NOTE_AXO= K), "Load double with lock", { fEA_REG(RsV); fLOAD_LOCKED(1,8,u,EA,RddV) }) =20 +Q6INSN(L4_loadw_phys,"Rd32=3Dmemw_phys(Rs32,Rt32)", ATTRIBS(A_REGWRSIZE_4B= ,A_PRIV,A_RESTRICT_SLOT0ONLY,A_NOTE_PRIV,A_MEMSIZE_4B,A_LOAD,A_NOTE_NOPACKE= T,A_RESTRICT_NOPACKET), "Load word from physical address", +{ fLOAD_PHYS(1,4,u,RsV,RtV,RdV); }) + Q6INSN(S4_stored_locked,"memd_locked(Rs32,Pd4)=3DRtt32", ATTRIBS(A_REGWRSI= ZE_8B,A_MEMSIZE_8B,A_STORE,A_RESTRICT_SLOT0ONLY,A_RESTRICT_PACKET_AXOK,A_NO= TE_AXOK,A_RESTRICT_LATEPRED,A_NOTE_LATEPRED), "Store word with lock", { fEA_REG(RsV); fSTORE_LOCKED(1,8,EA,RttV,PdV) }) =20 --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781911995; cv=none; d=zohomail.com; s=zohoarc; b=cEs5X86HopYM3GS0y7DrxVCH6O2aDHdGGcg9HujFkqw962+iBeLUVV4QqXvbNbHABCi9YxZvK6D/DSAokJjA8LFuaSwRqQ2bTm11PFT9aD7pTo4Xw0LUCNkEKK3Ruh4IzbP3OYuhOsAFVxQMPWhWY+p+2uL2vSVRwkawu7GYWHo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781911995; 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=c10dnjx3jWBtOFG53LaPJvlCxFR1rsBjBNQjpvdRffY=; b=ZDXRIjMzk+rBY12StCLXX4e3qiANyXDtxLxH306i5dVVpF3JB+E8ktmv36PpI/AHRJ/BPVaP67trFWeoI374478Fewr+1Bmn0ZFTJ7wxWVQQ/cpu/gvJYzL+zZBCJQD/23KD2XfZCkUwT1dbuAOAZk+OEBLO84bHqTmFe1SkuWY= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781911995812581.9422742315211; Fri, 19 Jun 2026 16:33:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waig5-0004Di-CZ; Fri, 19 Jun 2026 19:31:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifs-00047G-Nn for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:31:01 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifq-0007UH-Tx for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:31:00 -0400 Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLXfQR2932967 for ; Fri, 19 Jun 2026 23:30:47 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ew5qsa52e-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:30:47 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30bcb065bfdso4441800eec.0 for ; Fri, 19 Jun 2026 16:30:47 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d75csm1212646eec.15.2026.06.19.16.30.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:30:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= c10dnjx3jWBtOFG53LaPJvlCxFR1rsBjBNQjpvdRffY=; b=SVK3tPXgqy9Xs1KV Nbhr+pcha/RI2AqponBkUufTVdt1e+VgiQS/Dpx1RNZQ47yR3lZMWQ9Ri/KeqTbZ RaUdb72lCmgcQyhcXpCZ4WBQ19yLAsmxDsIP1c7vuDbWFmDSAjVlTCVn7woMb8X8 KtsAT9xR0z4OMEEgrHIh2qG7qPpuYNPXUwaZN4P3VdzAMWAKZjmbvrU8oX9WwKfM zVE2N5c6H5ThBvvNo7aI0/zXjoTQRFdy5POWh5BSo7+0GkGVoDoufJ7q2U2uW8Uy vuIwWjfoO8/tYYY2BWIutI0zF3TncViswGZrX43WOXgAXvu2hR1NYHFqAqxiyPzu CWQFpQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781911847; x=1782516647; 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=c10dnjx3jWBtOFG53LaPJvlCxFR1rsBjBNQjpvdRffY=; b=Blc1amioIC5fEJuq/yDJIzGHiabpVG4fVxKdP2z42vDvOyhv4FSFlmhoCUFRLszzvs Zp6qo+7meOaP8Ql4L/vU0fwrnsFsNJw9/PeB/UYVcTFNCt24pUoId2Jkp16+fIpS972y ZhUgA/1Ub2yN4ZVdtVhtogoVxO6HOIQeOMeo3MbPqtGEjok6/NgZ1q/5hxfT0DZNLsQm J0aNjjeOa30vcj4PzOaR/gFYVIg7ba7i+98eTHxKAzlxt7P/3fPNFOd0Emon0pwigShJ R5hTtFCzMAJ56ueK1XxNo0p7I1G4MsMdTfz9xEEXFRbP5/VBIkRgQ/UHqMadf3BEhX0S 1Oww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781911847; x=1782516647; 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=c10dnjx3jWBtOFG53LaPJvlCxFR1rsBjBNQjpvdRffY=; b=YSbucTA30cCDKF/dz/BTDzq03F7HkjznkUS67V+BIuUtCYB75eIEsx1IMLUhDXNlnE eQSS+r++2G3vlhsw+KUItW06CRadxeveskerMGL0tHmQUUc6QnEfX0llUAx/He5y3mYz VK/55I59slFOJl6PrW10aaEOW+TAc9G/f1kyak/IV69MnDhvbVtmnLvETd8KDthwBIoz 8mtru5rncdJKu7Mq6RcGwgzJKUoRDnywkG0zSYLXq4ORbWuUUm6V4C6PyRQlePsckFHv T+AAGDz7XzUyLeFj5+PM4Ea+g1SQyEcHc+iGUKocmUv5Mh2ckMdjPZnhvw2ZAEFdoetp 8jtQ== X-Gm-Message-State: AOJu0YwZADY+bhkj5SBTXl4kuNwlbAtOb/Y/5Jq+cKJ90rr2vK8g/5eG qCTLTBSsW8jwC8nGfVicYLzuvH7mN2QXSyyKx4C8HhS+JMl7Svl/cC6D2eauPztOe31OzAj43MU YJeuAwNwupU9dTVJ2sVHDat6vS/dWRqi5Nf+/2ZMqkFdeKjz0+YisvB6r2rJg+dvk2g== X-Gm-Gg: AfdE7ckUT4YU+HOW2yXdA69TzJYe7HSJSe6/9FotP8RgJ09KnHBoBumsJi60OE4IFfE IrKwPxXKNvNfRr7Uy41ZopQ1BtfWG9bY+9+B4JhfzJ8EtJcTEfkM6l3xmNFM+Vop4MfH+ukODKi RgKdtqHoNZPOQC9/oEIWUsQftiEX6zbyUT4UynkWZK2mvm2J4wo5Pz4VYsfECzMdI2P6o3uhoYH X4/FojiJK6bscyqDDOKto0gDeDOVUlIp4COIkykPS3SQrYGkiLn5j1zFCFgGVknY6VEBdIsezL/ c7EkwHFGP3P2gZpxOw5j/+bvSK3+d2pR6c4YR32XrbIslS1GOmm7Mm46qdHrkOPND8HWA8gI+0r sfrEn1FSxKALUWsB/6FW52J+iNcgUDonpQLiVu/wJjhZW1QR3MAd/3iW4Phs= X-Received: by 2002:a05:7022:42b:b0:137:8bc2:f501 with SMTP id a92af1059eb24-139a4e9bf7fmr1707423c88.7.1781911846794; Fri, 19 Jun 2026 16:30:46 -0700 (PDT) X-Received: by 2002:a05:7022:42b:b0:137:8bc2:f501 with SMTP id a92af1059eb24-139a4e9bf7fmr1707411c88.7.1781911846259; Fri, 19 Jun 2026 16:30:46 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Matheus Tavares Bernardino , Taylor Simpson , Pierrick Bouvier Subject: [PULL 64/74] target/hexagon: Add guest reg reading functionality Date: Fri, 19 Jun 2026 15:59:01 -0700 Message-Id: <20260619225911.159473-65-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfXwwV2aluzDdIz lsi5+t16rO22G11wfMue1BjRqczsfNzJk2MN9RKfuGGz1OaRWaTxRtZvuaZsuWxrX5KNOHEtiRc M+BcMUK5nyVCYJvWMWoY3ycm23YZtl9CyXhKhgCsxmfyPBfSJhunO93KP0f7KH1bBPSTI1MgDYB +hK1fSk13JIFgu5D3LBG10bySu0Ga4PPZvj3UswJZg8DcO3/9Lt3bpYwSjmmJU4hVsRHZZJpb0Z 4flEohahqEJbabYQgqi9rW3O9T1t8CDsYcoiMdbolGkzC/cDhq6Xa+VXMF2iSdULppNc316fWr1 5vjlk3D+eoq0iQaD13kAviqwMEdJxYRVSf3bk9UNs4YPyTYqLfibTZh5BJgHWsZ7VSm39hmp4vW DpSB9Oflwqcgy4+/YsyDAM6qVMiI51pTmioO5zWJwCYP4q2/9ijErOxzSxOVpvkWMPzkrkdK5qi 0WcynChesedm4euxLzw== X-Authority-Analysis: v=2.4 cv=M9R97Sws c=1 sm=1 tr=0 ts=6a35d127 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA: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=IJQQmebJWjVxhimlKuwA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: OXo4Em8EeO1Q8z5F2Sr_txFOWo4X5gyt X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX6MH/wb4A3yS4 DP3d+Pgmb7IHG31caDFxjKLQIwo6gUUnq/W1Y9Ou58kuSSBaxCgzhDEYfCIIke8nTDN8J8Jvu1u 0p45EjngOuU0yylytXhSHZIG8XTgIWw= X-Proofpoint-GUID: OXo4Em8EeO1Q8z5F2Sr_txFOWo4X5gyt X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 malwarescore=0 bulkscore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190226 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781911997782158500 From: Matheus Tavares Bernardino Signed-off-by: Matheus Tavares Bernardino Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 1 + target/hexagon/cpu.c | 19 +++++++++++++++++++ target/hexagon/op_helper.c | 16 ++++++++++++++-- 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 6a95a6bc5b1..4a12dc04727 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -220,6 +220,7 @@ G_NORETURN void hexagon_raise_exception_err(CPUHexagonS= tate *env, * not stopped. */ bool hexagon_thread_is_enabled(CPUHexagonState *thread_env); +uint32_t hexagon_greg_read(CPUHexagonState *env, uint32_t reg); void hexagon_cpu_soft_reset(CPUHexagonState *env); #endif =20 diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index b35caaecfae..06be5c8d498 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -770,6 +770,25 @@ static void hexagon_cpu_class_init(ObjectClass *c, con= st void *data) #endif } =20 +#ifndef CONFIG_USER_ONLY +uint32_t hexagon_greg_read(CPUHexagonState *env, uint32_t reg) +{ + if (reg <=3D HEX_GREG_G3) { + return env->greg[reg]; + } + switch (reg) { + case HEX_GREG_GPCYCLELO: + return hexagon_get_sys_pcycle_count_low(env); + case HEX_GREG_GPCYCLEHI: + return hexagon_get_sys_pcycle_count_high(env); + default: + qemu_log_mask(LOG_UNIMP, "reading greg %" PRId32 + " not yet supported.\n", reg); + return 0; + } +} +#endif + static void hexagon_cpu_class_base_init(ObjectClass *c, const void *data) { HexagonCPUClass *mcc =3D HEXAGON_CPU_CLASS(c); diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 8a3723cbafa..125952aee59 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1878,13 +1878,25 @@ uint64_t HELPER(sreg_read_pair)(CPUHexagonState *en= v, uint32_t reg) } =20 uint32_t HELPER(greg_read)(CPUHexagonState *env, uint32_t reg) + { - g_assert_not_reached(); + return hexagon_greg_read(env, reg); } =20 uint64_t HELPER(greg_read_pair)(CPUHexagonState *env, uint32_t reg) + { - g_assert_not_reached(); + if (reg =3D=3D HEX_GREG_G0 || reg =3D=3D HEX_GREG_G2) { + return (uint64_t)(env->greg[reg]) | + (((uint64_t)(env->greg[reg + 1])) << 32); + } + switch (reg) { + case HEX_GREG_GPCYCLELO: + return hexagon_get_sys_pcycle_count(env); + default: + return (uint64_t)hexagon_greg_read(env, reg) | + ((uint64_t)(hexagon_greg_read(env, reg + 1)) << 32); + } } =20 /* --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781911969; cv=none; d=zohomail.com; s=zohoarc; b=FtvB/jJU+oHQH8LvFvz6NMUpsZIaUuEEbVo7ZGkxj0BtIbvRjd43S67eBHYee5mjvPUd5SX+sKM45gZx/ezqwsgqCDbRfZ3+u4k7RvwVOuC5ec/arkn7kJA5LWq0xXlcp+sQd4ZmnUsoUhkUM5acsnhR9fBU0doS3dMhH/mZnb8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781911969; 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=IR53Mjz5etxJrjMQaZOHC4cu/qgzTKOGEQyPVYlQwQ0=; b=j4ihipry+Uh4aJac8Ee3jur6poAxSGaAA/gkQqp7jDfsR4RKvm+ACckq3Mze2PbdoAb+xcb3gbotKRvtuTsUzQZRHJXLweKvc25r/2VERFvo1n5L3iQMKj8CBnwFfDvR3UWkVx0tgyksShuQVmv4R7RL4Ree8PVM22UNHSc/BYc= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781911969434244.73208979629135; Fri, 19 Jun 2026 16:32:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waifp-00041j-5Q; Fri, 19 Jun 2026 19:30:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifl-0003y2-19 for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:53 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifi-0007Uy-RN for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:52 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLXsGh1663665 for ; Fri, 19 Jun 2026 23:30:49 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evp6sdbtb-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:30:49 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c13bb8ca9so1247802eec.0 for ; Fri, 19 Jun 2026 16:30:49 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d75csm1212646eec.15.2026.06.19.16.30.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:30:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=IR53Mjz5etxJrjMQaZOHC4cu/qgzTKOGEQyPVYlQwQ0=; b=RA CUbXChwSa3zRreBrCF4fEXjz6ppP2/7xkhZ2B7/gXo77kri0TmjEQFHEjBmXhW5A ZVJ91OvSs0Il3HY6BikujuK5JBRFOyCeMOQtb7jZIOYtA0vFB+UaEk3+2Alm57Aa /hGsyQOrWBQgNGgSdoKNFL6cId6Zkphjh1UPk9ZosYPKdiYL0kBsXxEqz0idwLDc NBtOHpyRMBh2a6HTPIBy5pTyFqY77g50yWBNCbd9HVaeqkAvu8doIAy7mI/TTTSe a/7yn2totSTawVf189aChyTQcfc5dd6pm1PzR90Y+POtXniS2GbE9eDSLaUyDKyx oyH0Yve5h6AJK9fLY3kw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781911848; x=1782516648; 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=IR53Mjz5etxJrjMQaZOHC4cu/qgzTKOGEQyPVYlQwQ0=; b=i3Lg7J9sP1BajG0QCCH1z5XM53nrdv2i6ektZPZyGqFfUNsjAiWT/w9+l5VmsgT4sW p4y/WSQ/HnMI1WD+cS6lw5uwnnw4OIZns98Zni7E3vV9pEnjflwbWx9b1uN0FmMTtij7 +UQP3kmUZJ3L3Ay7oA81RJ/P58xHOlCSnwsPKxecc0X2JIwFirCg0pIrskYYxYTXYXNZ 9ki31F2W0f/iEYHIO8SzN2XyZkqYtO7WoJT18wIAq40mcq4kkT2+J6T1bIvDsBGADTYg PQ3X/tkUhuNtnuNaxJQBOGCEMV2Px+PIOl3fZLVJfiraSJoQF+itH8UPtGHhFaH9yIsr lUog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781911848; x=1782516648; 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=IR53Mjz5etxJrjMQaZOHC4cu/qgzTKOGEQyPVYlQwQ0=; b=YFv3zeCfDucwDdjDogCze7DjPfsnUFHXVkIYGi4bUzqLDekzz+k1aQ0Z+HeIdYgitl jwK4X9UP0oyO9HtIkZVP3C23X/JLefMORsC9+IOhdi/kMPMeRqBhom0DQ7lioLpMAnpf EF4cKP/zSYRgDPq8yi6lTKuAJRh+z3iRbLBkxsbIa/HfxSMPhu4lSUXiow9A+qJ6o0mj PcII0/LHzDjw+/RLL6eB5kIATwSbHrWe7E9nLL0st4NOalwoFt07sNV9IccLJWzPBopn yud4ZaEMcxvPxe2i2DBw6hjmt1H/0vFfbvknX7H5kL9mmXD1pMD1PJPP5Pc4xMJAtLzr vwnQ== X-Gm-Message-State: AOJu0YwmJbsTRBC+Gcgmd7hOfVr5gOmPnPWj/+wdBWxKTECy4ZJ3B9lB 1IWHzi1j21nUOQmoz3mlC6uRbWZIDQweKW2R9MADZtpwSaDm1K9H+29k9ML2sUlnHOjPcXjCAmj sV4/InbBegtF/0G7lk4r+zjzU+ss8bkQls3MTyxE/CQ1vyjc9pIuzWjOQ9nPVwFY1Sg== X-Gm-Gg: AfdE7ckzquApNUWJYnrehcDHlVH4FEX+0+UrjiMXy4wYjOH+hhEQ9Otx3lzNRPHqntd 3f2+uPOMyorulKZtfC7lgZXdnA1CRhZwLjF73Kaby29cBEIPh09OAuhcpJn/Q68/UXMJaB5wGAO GJ32tOsVARFpnXTC4NBCEbzkEowfLE9H3D/4MVSD4f9T0SF2BYkmk4j6iTcQ+M5k7F1+TU12PmW vMXY03Odw+gMY7+t9WHVZFzM51EELnMefaqY7+AK3Jrs8pdmXlw55ffUxhRFrkq7/RrdN0L9x7q t66jMdAnLfS2nhG9NrrTItQ/OLuD0FnBnXB6aVFw588gvt2gdqrsi/3uY7QrIE9aEuYTB5qQ4Um IEQsOnuLV/MYW8xODLmusAvVFqHuG91YY7B7Ix19eRDpNQ/fdkgVBMZkdy9w= X-Received: by 2002:a05:7301:4b16:b0:304:dc05:607e with SMTP id 5a478bee46e88-30c0701e16amr3431789eec.14.1781911848139; Fri, 19 Jun 2026 16:30:48 -0700 (PDT) X-Received: by 2002:a05:7301:4b16:b0:304:dc05:607e with SMTP id 5a478bee46e88-30c0701e16amr3431780eec.14.1781911847623; Fri, 19 Jun 2026 16:30:47 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Sid Manning , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pierrick Bouvier Subject: [PULL 65/74] hw/hexagon: Add globalreg model Date: Fri, 19 Jun 2026 15:59:02 -0700 Message-Id: <20260619225911.159473-66-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: X3Ns-n0P4yJyihGJ8QVEiaeb4MTlETcH X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX14NKO4fpgXzd 0v5+uXf61MpUNxJxIRD8cgAF0d868UN/Vtvit9XGIV3aqYaiyV7Lzn8Wkwp07qZDBaWf06pkyVg sNz0xbfo8o6KqWU6dA3K+upRWQomTJalEbU/14//52pIpcSA9mieIX1B/rIkQsSZENPMH45OGrU WbFcdD9AEfgpkni593zPOlzBRGGi4ryEM4APD27OVaWXRiOWbKHS+739Zy2W6d5BB+84z15iAt7 M9J3mB8VcZ/y576fMP2naZ2fyILXBXlAjRjg2SbZDpTELbyngfIvZWhvcOd4MKNVJHDhHEOASsC apIxErZg3OUCtytN5HUOc0GUr/W8CubAfof1IibEKSM2kXtf2M/htEdR1mrsoe3CeODRRUzshl+ NnyObAW5yabm9QNfdGACIdoc0BJR5S8A2RaQ5Y6YlJf2j4icxlZpPLJZzut0ULHMAdo3y+JMMjT GAZnHidD4tuUK2Xyvkw== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX+BSgW7NKm3hY 6U66rtVrE+AeyaDT0uV8Y1ewv6iVE8m+yDhY3kXtJx3b3hO0zE1ic7yaqr8iAORvOql/Zip9MIf 0HPIz3pzgfRHrB6zKaxVFadBLwILkcQ= X-Proofpoint-ORIG-GUID: X3Ns-n0P4yJyihGJ8QVEiaeb4MTlETcH X-Authority-Analysis: v=2.4 cv=KbzidwYD c=1 sm=1 tr=0 ts=6a35d129 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=ykHTVMA0J60qDn7DFlgA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 priorityscore=1501 lowpriorityscore=0 bulkscore=0 spamscore=0 impostorscore=0 adultscore=0 phishscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190226 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781911969691158500 Content-Type: text/plain; charset="utf-8" Some of the system registers are shared among all threads in the core. This object contains the representation and interface to the system registers. Reviewed-by: Sid Manning Acked-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Brian Cain --- include/hw/hexagon/hexagon_globalreg.h | 55 ++++++ hw/hexagon/hexagon_globalreg.c | 243 +++++++++++++++++++++++++ 2 files changed, 298 insertions(+) create mode 100644 include/hw/hexagon/hexagon_globalreg.h create mode 100644 hw/hexagon/hexagon_globalreg.c diff --git a/include/hw/hexagon/hexagon_globalreg.h b/include/hw/hexagon/he= xagon_globalreg.h new file mode 100644 index 00000000000..950099808fd --- /dev/null +++ b/include/hw/hexagon/hexagon_globalreg.h @@ -0,0 +1,55 @@ +/* + * Hexagon Global Registers QOM Object + * + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HEXAGON_GLOBALREG_H +#define HEXAGON_GLOBALREG_H + +#include "hw/core/qdev.h" +#include "hw/core/sysbus.h" +#include "qom/object.h" +#include "target/hexagon/cpu.h" + +#define TYPE_HEXAGON_GLOBALREG "hexagon-globalreg" +OBJECT_DECLARE_SIMPLE_TYPE(HexagonGlobalRegState, HEXAGON_GLOBALREG) + +struct HexagonGlobalRegState { + SysBusDevice parent_obj; + + /* Array of system registers */ + uint32_t regs[NUM_SREGS]; + + /* Global performance cycle counter base */ + uint64_t g_pcycle_base; + + /* Properties for global register reset values */ + uint32_t boot_evb; /* Boot Exception Vector Base (HEX_SREG_E= VB) */ + uint64_t config_table_addr; /* Configuration table base */ + uint32_t dsp_rev; /* DSP revision register (HEX_SREG_REV) */ + + /* ISDB properties */ + bool isdben_etm_enable; /* ISDB ETM enable bit */ + bool isdben_dfd_enable; /* ISDB DFD enable bit */ + bool isdben_trusted; /* ISDB trusted mode bit */ + bool isdben_secure; /* ISDB secure mode bit */ +}; + +/* Public interface functions */ +uint32_t hexagon_globalreg_read(HexagonGlobalRegState *s, uint32_t reg, + uint32_t htid); +void hexagon_globalreg_write(HexagonGlobalRegState *s, uint32_t reg, + uint32_t value, uint32_t htid); +uint32_t hexagon_globalreg_masked_value(HexagonGlobalRegState *s, uint32_t= reg, + uint32_t value); +void hexagon_globalreg_write_masked(HexagonGlobalRegState *s, uint32_t reg, + uint32_t value); + +/* Global performance cycle counter access */ +uint64_t hexagon_globalreg_get_pcycle_base(HexagonGlobalRegState *s); +void hexagon_globalreg_set_pcycle_base(HexagonGlobalRegState *s, + uint64_t value); + +#endif /* HEXAGON_GLOBALREG_H */ diff --git a/hw/hexagon/hexagon_globalreg.c b/hw/hexagon/hexagon_globalreg.c new file mode 100644 index 00000000000..28cb5a4158d --- /dev/null +++ b/hw/hexagon/hexagon_globalreg.c @@ -0,0 +1,243 @@ +/* + * Hexagon Global Registers + * + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "hw/hexagon/hexagon.h" +#include "hw/hexagon/hexagon_globalreg.h" +#include "hw/core/qdev-properties.h" +#include "hw/core/sysbus.h" +#include "hw/core/resettable.h" +#include "migration/vmstate.h" +#include "qom/object.h" +#include "target/hexagon/cpu.h" +#include "target/hexagon/hex_regs.h" +#include "qemu/log.h" +#include "qapi/error.h" + +#define IMMUTABLE (~0) +#define INVALID_REG_VAL 0xdeadbeef + +/* Global system register mutability masks */ +static const uint32_t global_sreg_immut_masks[NUM_SREGS] =3D { + [HEX_SREG_EVB] =3D 0x000000ff, + [HEX_SREG_MODECTL] =3D IMMUTABLE, + [HEX_SREG_SYSCFG] =3D 0x80001c00, + [HEX_SREG_IPENDAD] =3D IMMUTABLE, + [HEX_SREG_VID] =3D 0xfc00fc00, + [HEX_SREG_VID1] =3D 0xfc00fc00, + [HEX_SREG_BESTWAIT] =3D 0xfffffe00, + [HEX_SREG_IAHL] =3D 0x00000000, + [HEX_SREG_SCHEDCFG] =3D 0xfffffee0, + [HEX_SREG_CFGBASE] =3D IMMUTABLE, + [HEX_SREG_DIAG] =3D 0x00000000, + [HEX_SREG_REV] =3D IMMUTABLE, + [HEX_SREG_ISDBST] =3D IMMUTABLE, + [HEX_SREG_ISDBCFG0] =3D 0xe0000000, + [HEX_SREG_BRKPTPC0] =3D 0x00000003, + [HEX_SREG_BRKPTCFG0] =3D 0xfc007000, + [HEX_SREG_BRKPTPC1] =3D 0x00000003, + [HEX_SREG_BRKPTCFG1] =3D 0xfc007000, + [HEX_SREG_ISDBMBXIN] =3D IMMUTABLE, + [HEX_SREG_ISDBMBXOUT] =3D 0x00000000, + [HEX_SREG_ISDBEN] =3D 0xfffffffe, + [HEX_SREG_TIMERLO] =3D IMMUTABLE, + [HEX_SREG_TIMERHI] =3D IMMUTABLE, +}; + +static void hexagon_globalreg_init(Object *obj) +{ + HexagonGlobalRegState *s =3D HEXAGON_GLOBALREG(obj); + + memset(s->regs, 0, sizeof(s->regs)); +} + +static inline uint32_t apply_write_mask(uint32_t new_val, uint32_t cur_val, + uint32_t reg_mask) +{ + if (reg_mask) { + return (new_val & ~reg_mask) | (cur_val & reg_mask); + } + return new_val; +} + +uint32_t hexagon_globalreg_read(HexagonGlobalRegState *s, uint32_t reg, + uint32_t htid) +{ + uint32_t value; + + if (!s) { + return 0; + } + g_assert(reg < NUM_SREGS); + g_assert(reg >=3D HEX_SREG_GLB_START); + + value =3D s->regs[reg]; + + return value; +} + +void hexagon_globalreg_write(HexagonGlobalRegState *s, uint32_t reg, + uint32_t value, uint32_t htid) +{ + if (!s) { + return; + } + g_assert(reg < NUM_SREGS); + g_assert(reg >=3D HEX_SREG_GLB_START); + s->regs[reg] =3D value; +} + +uint32_t hexagon_globalreg_masked_value(HexagonGlobalRegState *s, uint32_t= reg, + uint32_t value) +{ + uint32_t reg_mask; + + if (!s) { + return value; + } + g_assert(reg < NUM_SREGS); + g_assert(reg >=3D HEX_SREG_GLB_START); + reg_mask =3D global_sreg_immut_masks[reg]; + return reg_mask =3D=3D IMMUTABLE ? + s->regs[reg] : + apply_write_mask(value, s->regs[reg], reg_mask); +} + +void hexagon_globalreg_write_masked(HexagonGlobalRegState *s, uint32_t reg, + uint32_t value) +{ + if (!s) { + return; + } + s->regs[reg] =3D hexagon_globalreg_masked_value(s, reg, value); +} + +uint64_t hexagon_globalreg_get_pcycle_base(HexagonGlobalRegState *s) +{ + g_assert(s); + return s->g_pcycle_base; +} + +void hexagon_globalreg_set_pcycle_base(HexagonGlobalRegState *s, + uint64_t value) +{ + g_assert(s); + s->g_pcycle_base =3D value; +} + +static void do_hexagon_globalreg_reset(HexagonGlobalRegState *s) +{ + uint32_t isdben_val =3D 0; + + g_assert(s); + memset(s->regs, 0, sizeof(s->regs)); + + s->g_pcycle_base =3D 0; + + s->regs[HEX_SREG_EVB] =3D s->boot_evb; + s->regs[HEX_SREG_CFGBASE] =3D HEXAGON_CFG_ADDR_BASE(s->config_table_ad= dr); + s->regs[HEX_SREG_REV] =3D s->dsp_rev; + + if (s->isdben_etm_enable) { + isdben_val |=3D (1 << 0); /* ETM enable bit */ + } + if (s->isdben_dfd_enable) { + isdben_val |=3D (1 << 1); /* DFD enable bit */ + } + if (s->isdben_trusted) { + isdben_val |=3D (1 << 2); /* Trusted bit */ + } + if (s->isdben_secure) { + isdben_val |=3D (1 << 3); /* Secure bit */ + } + s->regs[HEX_SREG_ISDBEN] =3D isdben_val; + s->regs[HEX_SREG_MODECTL] =3D 0x1; + + /* + * These register indices are placeholders in these arrays + * and their actual values are synthesized from state elsewhere. + * We can initialize these with invalid values so that if we + * mistakenly generate reads, they will look obviously wrong. + */ + s->regs[HEX_SREG_PCYCLELO] =3D INVALID_REG_VAL; + s->regs[HEX_SREG_PCYCLEHI] =3D INVALID_REG_VAL; + s->regs[HEX_SREG_TIMERLO] =3D INVALID_REG_VAL; + s->regs[HEX_SREG_TIMERHI] =3D INVALID_REG_VAL; + s->regs[HEX_SREG_PMUCNT0] =3D INVALID_REG_VAL; + s->regs[HEX_SREG_PMUCNT1] =3D INVALID_REG_VAL; + s->regs[HEX_SREG_PMUCNT2] =3D INVALID_REG_VAL; + s->regs[HEX_SREG_PMUCNT3] =3D INVALID_REG_VAL; + s->regs[HEX_SREG_PMUCNT4] =3D INVALID_REG_VAL; + s->regs[HEX_SREG_PMUCNT5] =3D INVALID_REG_VAL; + s->regs[HEX_SREG_PMUCNT6] =3D INVALID_REG_VAL; + s->regs[HEX_SREG_PMUCNT7] =3D INVALID_REG_VAL; +} + +static void hexagon_globalreg_reset_hold(Object *obj, ResetType type) +{ + HexagonGlobalRegState *s =3D HEXAGON_GLOBALREG(obj); + do_hexagon_globalreg_reset(s); +} + +static const VMStateDescription vmstate_hexagon_globalreg =3D { + .name =3D "hexagon_globalreg", + .version_id =3D 1, + .minimum_version_id =3D 1, + .fields =3D (const VMStateField[]){ + VMSTATE_UINT32_ARRAY(regs, HexagonGlobalRegState, NUM_SREGS), + VMSTATE_UINT64(g_pcycle_base, HexagonGlobalRegState), + VMSTATE_UINT32(boot_evb, HexagonGlobalRegState), + VMSTATE_UINT64(config_table_addr, HexagonGlobalRegState), + VMSTATE_UINT32(dsp_rev, HexagonGlobalRegState), + VMSTATE_BOOL(isdben_etm_enable, HexagonGlobalRegState), + VMSTATE_BOOL(isdben_dfd_enable, HexagonGlobalRegState), + VMSTATE_BOOL(isdben_trusted, HexagonGlobalRegState), + VMSTATE_BOOL(isdben_secure, HexagonGlobalRegState), + VMSTATE_END_OF_LIST() + } +}; + +static const Property hexagon_globalreg_properties[] =3D { + DEFINE_PROP_UINT32("boot-evb", HexagonGlobalRegState, boot_evb, 0x0), + DEFINE_PROP_UINT64("config-table-addr", HexagonGlobalRegState, + config_table_addr, 0xffffffffULL), + DEFINE_PROP_UINT32("dsp-rev", HexagonGlobalRegState, dsp_rev, 0), + DEFINE_PROP_BOOL("isdben-etm-enable", HexagonGlobalRegState, + isdben_etm_enable, false), + DEFINE_PROP_BOOL("isdben-dfd-enable", HexagonGlobalRegState, + isdben_dfd_enable, false), + DEFINE_PROP_BOOL("isdben-trusted", HexagonGlobalRegState, + isdben_trusted, false), + DEFINE_PROP_BOOL("isdben-secure", HexagonGlobalRegState, + isdben_secure, false), +}; + +static void hexagon_globalreg_class_init(ObjectClass *klass, const void *d= ata) +{ + DeviceClass *dc =3D DEVICE_CLASS(klass); + ResettableClass *rc =3D RESETTABLE_CLASS(klass); + + rc->phases.hold =3D hexagon_globalreg_reset_hold; + dc->vmsd =3D &vmstate_hexagon_globalreg; + dc->user_creatable =3D false; + device_class_set_props(dc, hexagon_globalreg_properties); +} + +static const TypeInfo hexagon_globalreg_info =3D { + .name =3D TYPE_HEXAGON_GLOBALREG, + .parent =3D TYPE_SYS_BUS_DEVICE, + .instance_size =3D sizeof(HexagonGlobalRegState), + .instance_init =3D hexagon_globalreg_init, + .class_init =3D hexagon_globalreg_class_init, +}; + +static void hexagon_globalreg_register_types(void) +{ + type_register_static(&hexagon_globalreg_info); +} + +type_init(hexagon_globalreg_register_types) --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781911893; cv=none; d=zohomail.com; s=zohoarc; b=ImR/Xu3rjCOHBOAlxBCbHmBuuMbdak6UmaCu2jmRIHKdD8A1aOT0h2nSkteRRLdB1FDhS0U+9qxNPEtc6dEoeGXklZOE18DmYbSHvuM0sEXQsp2z/sTLuxGll/nV9lFYXck4HpmCpeuXCB/KNzlqPDdqyuMTtOAV8Z/dp5WwFDg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781911893; 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=WuFcXxSP9Fzp6C31qhgOnqeUQp9/ystWflMVHLK8WCY=; b=gXbS8wFcAiNW9Djkc6SpK35ITzkFMztzFpktFjuP0WVK6Sa4NX4rCMRDGpbQ7jVdvrHUiUk0hGSa8ueaEuWqtCqkYr5m0ohVDKCei31d7kHF1wT4ft9+4zn4h2ELlsbrKSku7lL99B9GbMntXIGZ1Dy6FMAZExRGHmHtanihr0Y= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781911893001660.7770999799619; Fri, 19 Jun 2026 16:31:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waifq-00044N-Nv; Fri, 19 Jun 2026 19:30:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifl-0003yL-NG for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:54 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifj-0007V7-Qb for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:30:53 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLXskg1663659 for ; Fri, 19 Jun 2026 23:30:50 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evp6sdbte-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:30:50 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30beab99453so4077048eec.1 for ; Fri, 19 Jun 2026 16:30:50 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d75csm1212646eec.15.2026.06.19.16.30.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:30:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=WuFcXxSP9Fzp6C31qhgOnqeUQp9/ystWflMVHLK8WCY=; b=nx bZ05we7a81bP/IBmzSoDq7x6lQ7zKL4yxr3zE6K7TwTpoZivd+pyYiaT6ixzWpR4 mr3numkFEPaZCVdWWQ+qenNiVel8PoXLsydvAV8Jh4AmRAFHkel91dtkNPcUL+/m LBXTfbFT7m9ZAiuIrfKN2S30hYeCNZQvVzziaq6Kd+4fC9kFVzTGpNHWkP1ndTc8 H/t69Mon7FOclHF2OBxiRttAhiv6CwPmN9kDYTpJfLv4/51b3y72BC6AS+eXGrAM 6X0Ds6q7qhPQrcmrdhyb0+v09erQ2lMKWJs5+RxhXM63DdaTGn9fV+8GzVXer+5h UfaqwsigNDwGEo4c1nOA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781911850; x=1782516650; 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=WuFcXxSP9Fzp6C31qhgOnqeUQp9/ystWflMVHLK8WCY=; b=U8fm0Y/rvhVmM5mvor2hsoEDAlpRHGl4e/AWO4bzXm5lfxfvqsqK9iONlyrLpCgexf v5aocAg/cIcKn0XmU+Www+EccrC/ad3XaUGp1HN9ihDCLHUxxWTz41/uzxwg/XFWQrLW jWwhKjLNjjDVcK8h8LxcOT441P9D5KOXje348WadcpPnRnZv2NNkw79ei1W311kJY5O+ EFKhgUknTPq+JyQlELCwXhYsjO9Gm7GjuDZNtpwuEPxKdFEV9HnwYxBu79dxeiagLkeH gP/3eIRzC6pTdcE+PoA8BruvXn6gf1lWef/aPh6BLO/mY+gRughfORh6HCLhbsVDoPau +fXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781911850; x=1782516650; 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=WuFcXxSP9Fzp6C31qhgOnqeUQp9/ystWflMVHLK8WCY=; b=gCLDtWTTdCXyuqWRt+1ubVsrb1K8FDclKkwOg2W5DtjvLaNzuvziIuX+YWDGvoJujm 3eDLjtbfkocqE7VlUNtVORcIQo7Hn7BcTyAjZas9VCvn20WWTy8tFdWw8fgW8Qw+cPdw Q4O2gYLkaTg2P+OeiwzecQwT28WyXd2uCWhmxbqqNS5Z2Y7gToqVvuGrSh0WYXU0eR5v f3BmpyESrpe11NJs/2/hkyzK7Kl9JAGVJgbipk1Bm86tlGGTebvVY1Smr06kRaqhi5DE AFGUCPnpR3Uvd0JwAjvpmbwLcCYgq07T4XsvcGRzMiZqYAMvVO+mVakgBi3Wlw964Yfg jhuQ== X-Gm-Message-State: AOJu0Yw7qIyhlXMqF7I2ZT0LP8mzeBs67rHlnYD5Ti9TbL2oWOgPnMPL 9vug0p8llxSJ5mrkp57VFHiqc1JaScVCf0vlPBXqO0sx/FbVf+LjjPq8dzbJIDPj8Lpa+h3XXQ9 7SffCRNWxWy5iaW5E3v7pIzt+JoHSu0Wt6fpfrZeC+t55bAtO80ORHVLdKJhlkP3PlQ== X-Gm-Gg: AfdE7cnjtDHYcWUDQ8dvxMGytqR+QvwSuRy78zL3H2RAwwcm0WqHWJLyK4u84NeoLOS SBGlQVD85kn7Nh99DeDy/2TbAN1uuE4TZ8AKpa/50bHLPdFbZEfKQiLxEBpgiFF2CMmX2vrSfcl eVxAgqWyKXDpj/0zJ/HiRPWk0JtUR1o9LwcUxhLtcGbtQGIGRShPZNcN9qbOhAxTvb0ufi3NG3+ AYeQ1tijp6A2A/at5OwysXGvgmtpy+SAz680M0SxzGYxc7LEruEAAYvR8tmB2dNPsWNXH2qVrqZ lSG16Jce7Xdf4HyUbah4TSVvZokrcptSQOu2rD1W4mEZODGXR3qQG5C+SOkNzUnJ1YYIxvPafjp KlteVnP08qK3elyPavM8w3j+awceFrm6C5/Jhdkq+WrdBO2RWVxhfIgzV49Y= X-Received: by 2002:a05:7301:1f12:b0:30b:6191:7f96 with SMTP id 5a478bee46e88-30c071933a8mr3085425eec.30.1781911849627; Fri, 19 Jun 2026 16:30:49 -0700 (PDT) X-Received: by 2002:a05:7301:1f12:b0:30b:6191:7f96 with SMTP id 5a478bee46e88-30c071933a8mr3085415eec.30.1781911849122; Fri, 19 Jun 2026 16:30:49 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Paolo Bonzini , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 66/74] hw/hexagon: Add global register tracing Date: Fri, 19 Jun 2026 15:59:03 -0700 Message-Id: <20260619225911.159473-67-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: UzV-AblA7s8kULsvXaTcbe1RKRHEEUsF X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX6SZH8/4Dz2B9 4fqlLDdP4WIO3tfQSKX62lWZLJ0W2Ju2YsW/t9HxzfqYhJfDH1wUuE/bbA0R7RWXWvOJJcYyHzp 92XFGLhLArBMa5ZT2JwrXykHhrEh11oFvWM5Nawhxcq4jmlJMmWPiiaIexM7vERCoFw50DYqeZR MSbP3qiAwAcce2889Gw6ChKAsOEJQN2GFqQa6KkeYeJPbZToG5AXlAkoIcBZpBESpBAJJVROaur 9VK7e8xbTsaS4doLILlbneNe1eHQlSjfLa+JunZ51WbMkncjNNAlxXC8KBVI43YB8AAlt+lYMq/ ENzofnxJ2t9kmWBMejwrvs/fQJUMD2xB/IL2Npv0rRoIRKXdCL1Cym4BDlzm7E5NSznsJpHNU66 sudhYcwbYUUdbm4X8uVD7U9JRmt8gDsSTNVti8j0nKO4eY5lMSMhsqmFC6Au6SLTD7wBNMs0Sgq dQEQjmeA79CaCS96oXQ== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX5Xp0m6hgQbMP bUdUq6vrjVN1g9S50wCisrSZDdETtWFFL3PKu1AO/7bvVvGiRtqiXzyGMQa04ZGgNJt8NDJEkob 9dYtzQvWsjroqlsWFcMIMuMz+JVBxYQ= X-Proofpoint-ORIG-GUID: UzV-AblA7s8kULsvXaTcbe1RKRHEEUsF X-Authority-Analysis: v=2.4 cv=KbzidwYD c=1 sm=1 tr=0 ts=6a35d12a cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=8QmChvNvioVktlEtA_0A:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 priorityscore=1501 lowpriorityscore=0 bulkscore=0 spamscore=0 impostorscore=0 adultscore=0 phishscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190226 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781911893568158500 Content-Type: text/plain; charset="utf-8" Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Brian Cain --- meson.build | 1 + hw/hexagon/trace.h | 2 + hw/hexagon/hexagon_globalreg.c | 73 ++++++++++++++++++++++++++++++++++ hw/hexagon/trace-events | 3 ++ 4 files changed, 79 insertions(+) create mode 100644 hw/hexagon/trace.h create mode 100644 hw/hexagon/trace-events diff --git a/meson.build b/meson.build index e026851309e..d4206a5d3f8 100644 --- a/meson.build +++ b/meson.build @@ -3599,6 +3599,7 @@ if have_system 'hw/display', 'hw/dma', 'hw/fsi', + 'hw/hexagon', 'hw/hyperv', 'hw/i2c', 'hw/i3c', diff --git a/hw/hexagon/trace.h b/hw/hexagon/trace.h new file mode 100644 index 00000000000..9e0b39f3c66 --- /dev/null +++ b/hw/hexagon/trace.h @@ -0,0 +1,2 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +#include "trace/trace-hw_hexagon.h" diff --git a/hw/hexagon/hexagon_globalreg.c b/hw/hexagon/hexagon_globalreg.c index 28cb5a4158d..b5e5913507e 100644 --- a/hw/hexagon/hexagon_globalreg.c +++ b/hw/hexagon/hexagon_globalreg.c @@ -16,11 +16,82 @@ #include "target/hexagon/cpu.h" #include "target/hexagon/hex_regs.h" #include "qemu/log.h" +#include "trace.h" #include "qapi/error.h" =20 #define IMMUTABLE (~0) #define INVALID_REG_VAL 0xdeadbeef =20 +static const char *hex_sreg_names[] =3D { + [HEX_SREG_SGP0] =3D "sgp0", + [HEX_SREG_SGP1] =3D "sgp1", + [HEX_SREG_STID] =3D "stid", + [HEX_SREG_ELR] =3D "elr", + [HEX_SREG_BADVA0] =3D "badva0", + [HEX_SREG_BADVA1] =3D "badva1", + [HEX_SREG_SSR] =3D "ssr", + [HEX_SREG_CCR] =3D "ccr", + [HEX_SREG_HTID] =3D "htid", + [HEX_SREG_BADVA] =3D "badva", + [HEX_SREG_IMASK] =3D "imask", + [HEX_SREG_GEVB] =3D "gevb", + [HEX_SREG_EVB] =3D "evb", + [HEX_SREG_MODECTL] =3D "modectl", + [HEX_SREG_SYSCFG] =3D "syscfg", + [HEX_SREG_IPENDAD] =3D "ipendad", + [HEX_SREG_VID] =3D "vid", + [HEX_SREG_VID1] =3D "vid1", + [HEX_SREG_BESTWAIT] =3D "bestwait", + [HEX_SREG_IEL] =3D "iel", + [HEX_SREG_SCHEDCFG] =3D "schedcfg", + [HEX_SREG_IAHL] =3D "iahl", + [HEX_SREG_CFGBASE] =3D "cfgbase", + [HEX_SREG_DIAG] =3D "diag", + [HEX_SREG_REV] =3D "rev", + [HEX_SREG_PCYCLELO] =3D "pcyclelo", + [HEX_SREG_PCYCLEHI] =3D "pcyclehi", + [HEX_SREG_ISDBST] =3D "isdbst", + [HEX_SREG_ISDBCFG0] =3D "isdbcfg0", + [HEX_SREG_ISDBCFG1] =3D "isdbcfg1", + [HEX_SREG_LIVELOCK] =3D "livelock", + [HEX_SREG_BRKPTPC0] =3D "brkptpc0", + [HEX_SREG_BRKPTCFG0] =3D "brkptcfg0", + [HEX_SREG_BRKPTPC1] =3D "brkptpc1", + [HEX_SREG_BRKPTCFG1] =3D "brkptcfg1", + [HEX_SREG_ISDBMBXIN] =3D "isdbmbxin", + [HEX_SREG_ISDBMBXOUT] =3D "isdbmbxout", + [HEX_SREG_ISDBEN] =3D "isdben", + [HEX_SREG_ISDBGPR] =3D "isdbgpr", + [HEX_SREG_PMUCNT4] =3D "pmucnt4", + [HEX_SREG_PMUCNT5] =3D "pmucnt5", + [HEX_SREG_PMUCNT6] =3D "pmucnt6", + [HEX_SREG_PMUCNT7] =3D "pmucnt7", + [HEX_SREG_PMUCNT0] =3D "pmucnt0", + [HEX_SREG_PMUCNT1] =3D "pmucnt1", + [HEX_SREG_PMUCNT2] =3D "pmucnt2", + [HEX_SREG_PMUCNT3] =3D "pmucnt3", + [HEX_SREG_PMUEVTCFG] =3D "pmuevtcfg", + [HEX_SREG_PMUSTID0] =3D "pmustid0", + [HEX_SREG_PMUEVTCFG1] =3D "pmuevtcfg1", + [HEX_SREG_PMUSTID1] =3D "pmustid1", + [HEX_SREG_TIMERLO] =3D "timerlo", + [HEX_SREG_TIMERHI] =3D "timerhi", + [HEX_SREG_PMUCFG] =3D "pmucfg", + [HEX_SREG_S59] =3D "s59", + [HEX_SREG_S60] =3D "s60", + [HEX_SREG_S61] =3D "s61", + [HEX_SREG_S62] =3D "s62", + [HEX_SREG_S63] =3D "s63", +}; + +static const char *get_sreg_name(uint32_t reg) +{ + if (reg < ARRAY_SIZE(hex_sreg_names) && hex_sreg_names[reg]) { + return hex_sreg_names[reg]; + } + return "UNKNOWN"; +} + /* Global system register mutability masks */ static const uint32_t global_sreg_immut_masks[NUM_SREGS] =3D { [HEX_SREG_EVB] =3D 0x000000ff, @@ -77,6 +148,7 @@ uint32_t hexagon_globalreg_read(HexagonGlobalRegState *s= , uint32_t reg, =20 value =3D s->regs[reg]; =20 + trace_hexagon_globalreg_read(htid, get_sreg_name(reg), value); return value; } =20 @@ -89,6 +161,7 @@ void hexagon_globalreg_write(HexagonGlobalRegState *s, u= int32_t reg, g_assert(reg < NUM_SREGS); g_assert(reg >=3D HEX_SREG_GLB_START); s->regs[reg] =3D value; + trace_hexagon_globalreg_write(htid, get_sreg_name(reg), value); } =20 uint32_t hexagon_globalreg_masked_value(HexagonGlobalRegState *s, uint32_t= reg, diff --git a/hw/hexagon/trace-events b/hw/hexagon/trace-events new file mode 100644 index 00000000000..5d623ed2516 --- /dev/null +++ b/hw/hexagon/trace-events @@ -0,0 +1,3 @@ +# Hexagon global register access +hexagon_globalreg_read(uint32_t htid, const char *reg_name, uint32_t value= ) "htid=3D%u reg=3D%s value=3D0x%x" +hexagon_globalreg_write(uint32_t htid, const char *reg_name, uint32_t valu= e) "htid=3D%u reg=3D%s value=3D0x%x" --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781911985; cv=none; d=zohomail.com; s=zohoarc; b=YrvR/xDzLydtzgw6EgfqF0VloB7aYo3q0MGNF2tXf1VN9nSAhloalvL2WuteTiK/l78q6VUe8kEcym9Z8/3aZ0zSO5nlNHPQPYo7OovTgxwD741Q8qMme+7v14bb+ffMRVUtcyah/T/fiX4dSQyxWrk0+XQtKtjuvb80iRvyed4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781911985; 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=EzOvoGhvtPKig+yChPX1XxYwqHpTeQ/TAqtl6EODqY0=; b=Npa1uXP+xPOTqW1k71A1d+ASeYDdJnq5uKbMJlAsXyA0f/qp/g6I7ui4lPNwsPYuYavPEsqhOV/Dxj3WxIdwJuu/jSV+We+PdHRE2Ks6RFBD20i44/ygEkqFyrvv1QHRVGdfJWR1xedBd5bmcHqco8o4VKqeGS0mOuPZelKaLj4= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781911985490551.7306923959479; Fri, 19 Jun 2026 16:33:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waig5-0004Dq-Sa; Fri, 19 Jun 2026 19:31:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifz-0004Af-0y for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:31:11 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifv-0007VK-Dc for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:31:06 -0400 Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLYMdN4086594 for ; Fri, 19 Jun 2026 23:30:52 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evmyrdmab-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:30:51 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c04cfaaf2so5510326eec.1 for ; Fri, 19 Jun 2026 16:30:51 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d75csm1212646eec.15.2026.06.19.16.30.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:30:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= EzOvoGhvtPKig+yChPX1XxYwqHpTeQ/TAqtl6EODqY0=; b=Zq3cBJ00Pcnut2j2 ObKaGQUml0Quzmk8wd/6nDeR4k0+alY7RXYtx8iXNJEn3dnJLL0vxI3EE5FHXNOF CUW4L0DkDDfhkfcyslms/FcSdgNxDKAG0Av13SugL1PKN4EykXYuGh4USx+dWYYa H5PtXK2d1tDSaRD6R1Cg2XCKSI2VvsgzNfinjPMiUhjN5/9+bDNvF1P+KQ2AyNz3 RmyBIx+SZUIhq3+3eoOoGs2NyCf5mzOThth/Am5cAwidh0ok+UmwHWrgdl1JFgrx p5qEP5W7LtP55DIi7dpj/4R+cCMYk2xMGHgQdMIEsnSF5a4pfEXkeSXVFC0t7mKX zFdGZw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781911851; x=1782516651; 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=EzOvoGhvtPKig+yChPX1XxYwqHpTeQ/TAqtl6EODqY0=; b=TBYat+RbgIuOpm0uH6mmveSAuafSEekuXOKpQMVat7B54t9AGnhqPbqkrI+bmyve0I nFMrLmH+VtKquorYZuFjrXzCcDw9/XjzHDgtdjlkrGPWaAcVT1HfnucM3KjmJ6m9ro23 wWj2x/bNCwPje5+0U7yd9xwQghjsYGi7Lqe+I/Q3be+oId/6SC4cxWSXeFZfEZc3A4Zc LbxmCIcdC/6g4dPVUsG8qrRyoxSk3R62W7PWVOYdzCVyEKxDIUAwICtfW3f5s/cCTfXw XqDkD8iuTh9Ly7QHF/nMNc1MIvgeQARuyWkQ+DVY0Ur5xlq4VcXdoCWlncpe0CAeu7s8 9/hA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781911851; x=1782516651; 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=EzOvoGhvtPKig+yChPX1XxYwqHpTeQ/TAqtl6EODqY0=; b=aDJUSt7h7rOQqacTiCi7Hy0nexOhr+SML+AyQXyGWLx1GG6+5kK+DGQBqMsLaOtamW oK8047pjNKsE3a/B84spyb9bo8lUatFohmkhOD2UMBi3GRu5LABaGhwqF/Y6PTHF7jcq 1C5ccWMcIM4fDzLzVJImZTA4iOLkx055APqNIq0vYVPdQ0gXINRX4PFkvmL0MqRH9I2F s/vB/yfuJ4VYXhzObSiPfaW7m5GsR5IrviNxOCe4bgtvhbe0n8NU2Xa5NEAvCH8JbwJP xGtNlbq3utFNhwu1O9SMfVP7OyEP5F8MK3EOFgNISHvXsTD1eDwUZ57o1ldkqLrE+Mb4 lUOQ== X-Gm-Message-State: AOJu0YzxiU+/DbolqZvjKbaEiCcwCHljT+Ik+7ZHhpZjtk9laBHDUDSA 19NDfwz6kzAD3x3ZtRqIo46jNSixEkaAFDQ4/8++3941mQFxg+yHJA5KewqnvQNybXyplXthfHO umVkSVFTFp8rR14UIIgGzONDajFZdOM1aWWBpnUU+zLOChrDCTJw2R83gFnq0n9eXew== X-Gm-Gg: AfdE7cls+7BC91/cNXbG4bEPC12ZwwX5R3Pr9g+ru7Pw3qnQtpGQuSqsDkeqyhWIM4m ubqcNskVAYnbxigwjhvnuhJVFObH/QOGp/71UGiDW1rbZfOffkANibkvMHER9yQJoWkBoIprP9o 5Iflpb+xaWAhW1cH8IVnyEDbj+FFD22SF0mHM4XhQ8M/luY5qwd2a7ZYVWYFoVrI4co54WcZ6uD EDJGHbD8so5cUFRjhuUVqkrixShW4d+PTU1tU2Yqevc59cUrlRL79d0njcyyV/XkPorI8dIcgyo rE0ahZ2LQPRqr6Yv/d/8xpMiuVrXdPkQM9bc/fEjm2+FnmBKu3r49t2yzrfzTGcJrrlYgqEJ3ES J7QStoGSTrd1spHQnXFv/uUU+RXWXhghXi4SGsAHt/+lri2q7yMEdLiySaDQ= X-Received: by 2002:a05:7300:72c5:b0:30b:9eb0:4899 with SMTP id 5a478bee46e88-30c0711feb0mr3914230eec.20.1781911851129; Fri, 19 Jun 2026 16:30:51 -0700 (PDT) X-Received: by 2002:a05:7300:72c5:b0:30b:9eb0:4899 with SMTP id 5a478bee46e88-30c0711feb0mr3914212eec.20.1781911850566; Fri, 19 Jun 2026 16:30:50 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Pierrick Bouvier Subject: [PULL 67/74] hw/hexagon: Add hexagon TLB device implementation Date: Fri, 19 Jun 2026 15:59:04 -0700 Message-Id: <20260619225911.159473-68-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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=RZWgzVtv c=1 sm=1 tr=0 ts=6a35d12b cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=PVkRrmxsJ_TG981LwpgA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 X-Proofpoint-ORIG-GUID: uDg6sf88FAXJnTaLz3ZWwSr8NVVPe9W2 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX/Mjd50xVw0rO /IHLc42Ee8hRujJXPaZq/MaIjZhN2Ytb5FaqgRbmZjB2RWxQQ+ZPdoHUC8eTS2R6i6Z1L2IaWJp tNCnOVYstUGPhZ93ub5ZDHLkcup2RkwNy7lTMdjobQGTGeKVGvg12EMv069z3MVkI42k6XN92FM GHFKqsPvhFErNLFeNxhotpIp2zO5JeC73HeSxeASfvmG8DmRz2oacnVbxivFIqftlZAPVYkmilZ 1JhehId8XCJeqkJz0tou7LDQZXP8Q+xAhpahaeducP0IAWIQoUe2vh/sBP4z23pRzB5RZyGsGjp d4jSr4WpNI+vE0f8chkJ3boP21m/XEAfonuoAG8KIwPDRfIiz/ksxYdSvLp0Nrvsb0+0BAaatfc UyXNTohq12MyNOEb7OqEil2TVs5l8ugqIKcOCWlfDYIjcXjAseZtuAXVB4y1m3gVnKPEFnFa38P Z7b+YGrAz4pdtTMZ8FA== X-Proofpoint-GUID: uDg6sf88FAXJnTaLz3ZWwSr8NVVPe9W2 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfXxTTzr9OQjs36 Q9ctpmnwYQDNWDWdwjhngz5w0jWvEWAAeD4CzG/161/WkqSXLjgCgbn+dYy2V+G/DudjP1KglFL CwqAn4KCSaqpJKA2nyGGYwsyExobS4Y= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 clxscore=1015 suspectscore=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 bulkscore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190226 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781911985880158500 Add the hexagon TLB QOM device model implementation. Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- hw/hexagon/hexagon_tlb.c | 467 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 467 insertions(+) create mode 100644 hw/hexagon/hexagon_tlb.c diff --git a/hw/hexagon/hexagon_tlb.c b/hw/hexagon/hexagon_tlb.c new file mode 100644 index 00000000000..b6d4aff389e --- /dev/null +++ b/hw/hexagon/hexagon_tlb.c @@ -0,0 +1,467 @@ +/* + * Hexagon TLB QOM Device + * + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "qemu/log.h" +#include "hw/hexagon/hexagon_tlb.h" +#include "hw/core/qdev-properties.h" +#include "hw/core/resettable.h" +#include "migration/vmstate.h" +#include "monitor/monitor.h" +#include "qapi/error.h" +#include "exec/page-protection.h" +#include "exec/target_page.h" +#include "target/hexagon/cpu.h" +#include "target/hexagon/cpu_bits.h" + +/* PTE (TLB entry) field extraction */ +#define GET_PTE_PPD(entry) extract64((entry), 0, 24) +#define GET_PTE_C(entry) extract64((entry), 24, 4) +#define GET_PTE_U(entry) extract64((entry), 28, 1) +#define GET_PTE_R(entry) extract64((entry), 29, 1) +#define GET_PTE_W(entry) extract64((entry), 30, 1) +#define GET_PTE_X(entry) extract64((entry), 31, 1) +#define GET_PTE_VPN(entry) extract64((entry), 32, 20) +#define GET_PTE_ASID(entry) extract64((entry), 52, 7) +#define GET_PTE_ATR0(entry) extract64((entry), 59, 1) +#define GET_PTE_ATR1(entry) extract64((entry), 60, 1) +#define GET_PTE_PA35(entry) extract64((entry), 61, 1) +#define GET_PTE_G(entry) extract64((entry), 62, 1) +#define GET_PTE_V(entry) extract64((entry), 63, 1) + +/* PPD (physical page descriptor) */ +static inline uint64_t GET_PPD(uint64_t entry) +{ + return GET_PTE_PPD(entry) | (GET_PTE_PA35(entry) << 24); +} + +#define NO_ASID (1 << 8) + +typedef enum { + PGSIZE_4K, + PGSIZE_16K, + PGSIZE_64K, + PGSIZE_256K, + PGSIZE_1M, + PGSIZE_4M, + PGSIZE_16M, + PGSIZE_64M, + PGSIZE_256M, + PGSIZE_1G, +} tlb_pgsize_t; + +#define NUM_PGSIZE_TYPES (PGSIZE_1G + 1) + +static const char *pgsize_str[NUM_PGSIZE_TYPES] =3D { + "4K", + "16K", + "64K", + "256K", + "1M", + "4M", + "16M", + "64M", + "256M", + "1G", +}; + +#define INVALID_MASK 0xffffffffLL + +static const uint64_t encmask_2_mask[] =3D { + 0x0fffLL, /* 4k, 0000 */ + 0x3fffLL, /* 16k, 0001 */ + 0xffffLL, /* 64k, 0010 */ + 0x3ffffLL, /* 256k, 0011 */ + 0xfffffLL, /* 1m, 0100 */ + 0x3fffffLL, /* 4m, 0101 */ + 0xffffffLL, /* 16m, 0110 */ + 0x3ffffffLL, /* 64m, 0111 */ + 0xfffffffLL, /* 256m, 1000 */ + 0x3fffffffLL, /* 1g, 1001 */ + INVALID_MASK, /* RSVD, 1010 */ +}; + +static inline tlb_pgsize_t hex_tlb_pgsize_type(uint64_t entry) +{ + if (entry =3D=3D 0) { + qemu_log_mask(CPU_LOG_MMU, "%s: Supplied TLB entry was 0!\n", + __func__); + return 0; + } + tlb_pgsize_t size =3D ctz64(entry); + g_assert(size < NUM_PGSIZE_TYPES); + return size; +} + +static inline uint64_t hex_tlb_page_size_bytes(uint64_t entry) +{ + return 1ull << (qemu_target_page_bits() + 2 * hex_tlb_pgsize_type(entr= y)); +} + +static inline uint64_t hex_tlb_phys_page_num(uint64_t entry) +{ + uint32_t ppd =3D GET_PPD(entry); + return ppd >> 1; +} + +static inline uint64_t hex_tlb_phys_addr(uint64_t entry) +{ + uint64_t pagemask =3D encmask_2_mask[hex_tlb_pgsize_type(entry)]; + uint64_t pagenum =3D hex_tlb_phys_page_num(entry); + uint64_t PA =3D (pagenum << qemu_target_page_bits()) & (~pagemask); + return PA; +} + +static inline uint64_t hex_tlb_virt_addr(uint64_t entry) +{ + return (uint64_t)GET_PTE_VPN(entry) << qemu_target_page_bits(); +} + +bool hexagon_tlb_dump_entry(Monitor *mon, uint64_t entry) +{ + if (GET_PTE_V(entry)) { + uint64_t PA =3D hex_tlb_phys_addr(entry); + uint64_t VA =3D hex_tlb_virt_addr(entry); + monitor_printf(mon, "0x%016" PRIx64 ": ", entry); + monitor_printf(mon, "V:%" PRId64 " G:%" PRId64 + " A1:%" PRId64 " A0:%" PRId64, + GET_PTE_V(entry), + GET_PTE_G(entry), + GET_PTE_ATR1(entry), + GET_PTE_ATR0(entry)); + monitor_printf(mon, " ASID:0x%02" PRIx64 " VA:0x%08" PRIx64, + GET_PTE_ASID(entry), VA); + monitor_printf(mon, + " X:%" PRId64 " W:%" PRId64 " R:%" PRId64 + " U:%" PRId64 " C:%" PRId64, + GET_PTE_X(entry), + GET_PTE_W(entry), + GET_PTE_R(entry), + GET_PTE_U(entry), + GET_PTE_C(entry)); + monitor_printf(mon, " PA:0x%09" PRIx64 " SZ:%s (0x%" PRIx64 ")", + PA, pgsize_str[hex_tlb_pgsize_type(entry)], + hex_tlb_page_size_bytes(entry)); + monitor_printf(mon, "\n"); + return true; + } + + /* Not valid */ + return false; +} + +static inline bool hex_tlb_entry_match_noperm(uint64_t entry, uint32_t asi= d, + uint64_t VA) +{ + if (GET_PTE_V(entry)) { + if (GET_PTE_G(entry)) { + /* Global entry - ignore ASID */ + } else if (asid !=3D NO_ASID) { + uint32_t tlb_asid =3D GET_PTE_ASID(entry); + if (tlb_asid !=3D asid) { + return false; + } + } + + uint64_t page_size =3D hex_tlb_page_size_bytes(entry); + uint64_t page_start =3D + ROUND_DOWN(hex_tlb_virt_addr(entry), page_size); + if (page_start <=3D VA && VA < page_start + page_size) { + return true; + } + } + return false; +} + +static inline void hex_tlb_entry_get_perm(uint64_t entry, + MMUAccessType access_type, + int mmu_idx, int *prot, + int32_t *excp, int *cause_code) +{ + bool perm_x =3D GET_PTE_X(entry); + bool perm_w =3D GET_PTE_W(entry); + bool perm_r =3D GET_PTE_R(entry); + bool perm_u =3D GET_PTE_U(entry); + bool user_idx =3D mmu_idx =3D=3D MMU_USER_IDX; + + if (mmu_idx =3D=3D MMU_KERNEL_IDX) { + *prot =3D PAGE_VALID | PAGE_READ | PAGE_WRITE | PAGE_EXEC; + return; + } + + *prot =3D PAGE_VALID; + switch (access_type) { + case MMU_INST_FETCH: + if (user_idx && !perm_u) { + *excp =3D HEX_EVENT_PRECISE; + *cause_code =3D HEX_CAUSE_FETCH_NO_UPAGE; + } else if (!perm_x) { + *excp =3D HEX_EVENT_PRECISE; + *cause_code =3D HEX_CAUSE_FETCH_NO_XPAGE; + } + break; + case MMU_DATA_LOAD: + if (user_idx && !perm_u) { + *excp =3D HEX_EVENT_PRECISE; + *cause_code =3D HEX_CAUSE_PRIV_NO_UREAD; + } else if (!perm_r) { + *excp =3D HEX_EVENT_PRECISE; + *cause_code =3D HEX_CAUSE_PRIV_NO_READ; + } + break; + case MMU_DATA_STORE: + if (user_idx && !perm_u) { + *excp =3D HEX_EVENT_PRECISE; + *cause_code =3D HEX_CAUSE_PRIV_NO_UWRITE; + } else if (!perm_w) { + *excp =3D HEX_EVENT_PRECISE; + *cause_code =3D HEX_CAUSE_PRIV_NO_WRITE; + } + break; + } + + if (!user_idx || perm_u) { + if (perm_x) { + *prot |=3D PAGE_EXEC; + } + if (perm_r) { + *prot |=3D PAGE_READ; + } + if (perm_w) { + *prot |=3D PAGE_WRITE; + } + } +} + +static inline bool hex_tlb_entry_match(uint64_t entry, uint8_t asid, + uint32_t VA, + MMUAccessType access_type, hwaddr *= PA, + int *prot, uint64_t *size, + int32_t *excp, int *cause_code, + int mmu_idx) +{ + if (hex_tlb_entry_match_noperm(entry, asid, VA)) { + hex_tlb_entry_get_perm(entry, access_type, mmu_idx, prot, excp, + cause_code); + *PA =3D hex_tlb_phys_addr(entry); + *size =3D hex_tlb_page_size_bytes(entry); + return true; + } + return false; +} + +static bool hex_tlb_is_match(uint64_t entry1, uint64_t entry2, + bool consider_gbit) +{ + bool valid1 =3D GET_PTE_V(entry1); + bool valid2 =3D GET_PTE_V(entry2); + uint64_t size1 =3D hex_tlb_page_size_bytes(entry1); + uint64_t vaddr1 =3D ROUND_DOWN(hex_tlb_virt_addr(entry1), size1); + uint64_t size2 =3D hex_tlb_page_size_bytes(entry2); + uint64_t vaddr2 =3D ROUND_DOWN(hex_tlb_virt_addr(entry2), size2); + int asid1 =3D GET_PTE_ASID(entry1); + int asid2 =3D GET_PTE_ASID(entry2); + bool gbit1 =3D GET_PTE_G(entry1); + bool gbit2 =3D GET_PTE_G(entry2); + + if (!valid1 || !valid2) { + return false; + } + + if (((vaddr1 <=3D vaddr2) && (vaddr2 < (vaddr1 + size1))) || + ((vaddr2 <=3D vaddr1) && (vaddr1 < (vaddr2 + size2)))) { + if (asid1 =3D=3D asid2) { + return true; + } + if ((consider_gbit && gbit1) || gbit2) { + return true; + } + } + return false; +} + +/* Public API */ + +uint64_t hexagon_tlb_read(HexagonTLBState *tlb, uint32_t index) +{ + g_assert(index < tlb->num_entries); + return tlb->entries[index]; +} + +void hexagon_tlb_write(HexagonTLBState *tlb, uint32_t index, uint64_t valu= e) +{ + g_assert(index < tlb->num_entries); + tlb->entries[index] =3D value; +} + +bool hexagon_tlb_find_match(HexagonTLBState *tlb, uint32_t asid, + uint32_t VA, MMUAccessType access_type, + hwaddr *PA, int *prot, uint64_t *size, + int32_t *excp, int *cause_code, int mmu_idx) +{ + *PA =3D 0; + *prot =3D 0; + *size =3D 0; + *excp =3D 0; + *cause_code =3D 0; + + for (uint32_t i =3D 0; i < tlb->num_entries; i++) { + if (hex_tlb_entry_match(tlb->entries[i], asid, VA, access_type, + PA, prot, size, excp, cause_code, mmu_idx)= ) { + return true; + } + } + return false; +} + +uint32_t hexagon_tlb_lookup(HexagonTLBState *tlb, uint32_t asid, + uint32_t VA, int *cause_code) +{ + uint32_t not_found =3D 0x80000000; + uint32_t idx =3D not_found; + + for (uint32_t i =3D 0; i < tlb->num_entries; i++) { + uint64_t entry =3D tlb->entries[i]; + if (hex_tlb_entry_match_noperm(entry, asid, VA)) { + if (idx !=3D not_found) { + *cause_code =3D HEX_CAUSE_IMPRECISE_MULTI_TLB_MATCH; + break; + } + idx =3D i; + } + } + + if (idx =3D=3D not_found) { + qemu_log_mask(CPU_LOG_MMU, + "%s: 0x%" PRIx32 ", 0x%08" PRIx32 " =3D> NOT FOUND\n= ", + __func__, asid, VA); + } else { + qemu_log_mask(CPU_LOG_MMU, + "%s: 0x%" PRIx32 ", 0x%08" PRIx32 " =3D> %d\n", + __func__, asid, VA, idx); + } + + return idx; +} + +/* + * Return codes: + * 0 or positive index of match + * -1 multiple matches + * -2 no match + */ +int hexagon_tlb_check_overlap(HexagonTLBState *tlb, uint64_t entry, + uint64_t index) +{ + int matches =3D 0; + int last_match =3D 0; + + for (uint32_t i =3D 0; i < tlb->num_entries; i++) { + if (hex_tlb_is_match(entry, tlb->entries[i], false)) { + matches++; + last_match =3D i; + } + } + + if (matches =3D=3D 1) { + return last_match; + } + if (matches =3D=3D 0) { + return -2; + } + return -1; +} + +void hexagon_tlb_dump(Monitor *mon, HexagonTLBState *tlb) +{ + for (uint32_t i =3D 0; i < tlb->num_entries; i++) { + hexagon_tlb_dump_entry(mon, tlb->entries[i]); + } +} + +uint32_t hexagon_tlb_get_num_entries(HexagonTLBState *tlb) +{ + return tlb->num_entries; +} + +/* QOM lifecycle */ + +static void hexagon_tlb_init(Object *obj) +{ +} + +static void hexagon_tlb_realize(DeviceState *dev, Error **errp) +{ + HexagonTLBState *s =3D HEXAGON_TLB(dev); + + if (s->num_entries =3D=3D 0 || s->num_entries > MAX_TLB_ENTRIES) { + error_setg(errp, "Invalid TLB num-entries: %" PRIu32, + s->num_entries); + return; + } + s->entries =3D g_new0(uint64_t, s->num_entries); +} + +static void hexagon_tlb_unrealize(DeviceState *dev) +{ + HexagonTLBState *s =3D HEXAGON_TLB(dev); + g_free(s->entries); + s->entries =3D NULL; +} + +static void hexagon_tlb_reset_hold(Object *obj, ResetType type) +{ + HexagonTLBState *s =3D HEXAGON_TLB(obj); + if (s->entries) { + memset(s->entries, 0, sizeof(uint64_t) * s->num_entries); + } +} + +static const VMStateDescription vmstate_hexagon_tlb =3D { + .name =3D "hexagon-tlb", + .version_id =3D 0, + .minimum_version_id =3D 0, + .fields =3D (const VMStateField[]) { + VMSTATE_UINT32(num_entries, HexagonTLBState), + VMSTATE_VARRAY_UINT32_ALLOC(entries, HexagonTLBState, num_entries, + 0, vmstate_info_uint64, uint64_t), + VMSTATE_END_OF_LIST() + }, +}; + +static const Property hexagon_tlb_properties[] =3D { + DEFINE_PROP_UINT32("num-entries", HexagonTLBState, num_entries, + MAX_TLB_ENTRIES), +}; + +static void hexagon_tlb_class_init(ObjectClass *klass, const void *data) +{ + DeviceClass *dc =3D DEVICE_CLASS(klass); + ResettableClass *rc =3D RESETTABLE_CLASS(klass); + + dc->realize =3D hexagon_tlb_realize; + dc->unrealize =3D hexagon_tlb_unrealize; + rc->phases.hold =3D hexagon_tlb_reset_hold; + dc->vmsd =3D &vmstate_hexagon_tlb; + dc->user_creatable =3D false; + device_class_set_props(dc, hexagon_tlb_properties); +} + +static const TypeInfo hexagon_tlb_info =3D { + .name =3D TYPE_HEXAGON_TLB, + .parent =3D TYPE_SYS_BUS_DEVICE, + .instance_size =3D sizeof(HexagonTLBState), + .instance_init =3D hexagon_tlb_init, + .class_init =3D hexagon_tlb_class_init, +}; + +static void hexagon_tlb_register_types(void) +{ + type_register_static(&hexagon_tlb_info); +} + +type_init(hexagon_tlb_register_types) --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781912009; cv=none; d=zohomail.com; s=zohoarc; b=fQmFltELuIRIB1IgZ+dxsWC+YAzWILXrRxxPuGy6iK+8cnThLw72eRWarI3VUz4S8ayMHmCjoGYNL/GLK4i7VAxq4LFssiXGQDiGVw6/2Tv8naD63vqzDscgDwKNjN8gHuUTltNtBWUoB8m8vBQ2QO9jEEE+ltJYD/Y+nwJiYyA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781912009; 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=l0ub0LQTusEky/jbhnJx1qS1ayN/zdRG9RpvcebfSnY=; b=WGuQsLW1fnShXtO7YG/ubKk9HQDPyA+SmLx8g+ajhkcQjfn3P7p0dAE6leuvwccUGYkePkxHm7SPFjezGr/pcLn9W+QI/rxZipmCPegf3F+Uhxo3rJ8B5fNagng/I4pityvYftbvjKFxQ3pdfdNiaVxUlp9xm0VHOGyKWN43Z+0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781912009220111.22037186634088; Fri, 19 Jun 2026 16:33:29 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waig5-0004Dp-R2; Fri, 19 Jun 2026 19:31:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifz-0004B3-TB for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:31:11 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifw-0007Vg-Pu for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:31:07 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLXnIY1286051 for ; Fri, 19 Jun 2026 23:30:53 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evy72kaay-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:30:53 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c0f4950ceso1010300eec.1 for ; Fri, 19 Jun 2026 16:30:53 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d75csm1212646eec.15.2026.06.19.16.30.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:30:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= l0ub0LQTusEky/jbhnJx1qS1ayN/zdRG9RpvcebfSnY=; b=F3tKVjD6/1PRzL9w A9j0pFBozOa+/WH46DEe03tVdzVyT1cszIdFrQ2MmNBPU+Z4+ygYhS0r7jqJewRR JXky5wmq0hVH+1l7PtW4HQEvOhiTCJ//lL3wCaCbBEalfKt8GI0fo8UZnHG25MBe 65fUWTMsjfgh/x07FNwzVY8RDQDG2GVAoQiAWvPa0xIAiZ1iGPG82CFY/6JvEvIn CaJSZlJGq7JU3cveIclAnR+xmhVLb+Yn+U5HA2Q5wmPxvGltb2s36tKU4EESugJV bHCRJmvzuGzABKrtVpL9FSwd0SCzrl0mpas3AagaUhsT316TPpDl4YAUEhEy4IXM xnhkOg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781911853; x=1782516653; 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=l0ub0LQTusEky/jbhnJx1qS1ayN/zdRG9RpvcebfSnY=; b=FpJlNQwbvh3Fae9YurEb+9VkL90vgQqCP1DzjaVpIoZODc8IipF2eLcyHjNiuXGtTM UfY//jWZUZsfSOGCkOg4cegp4vdmlvwEpZuVDrDWENg3shRqqsyepkt3tlf+sEK8hm+q beB18pIa3D59uRj2gOpa5e7MFG7yax4mT93g7TzB+dUtS83s6DdryU3Zavn0c4TR9OA6 BcHPEMzVL+puFUKKHtabgF0q38ika6XJVFRmNlHdcgnLUBQ9bTVcLv7VpsPQ/tc+JMNr jnqHMqIyZbVIBQ5/oPisfX845UF+4sHnSwga2eDR+YoCg+/wS2j+FkWGZ8R6+C5lV9MZ 3skg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781911853; x=1782516653; 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=l0ub0LQTusEky/jbhnJx1qS1ayN/zdRG9RpvcebfSnY=; b=noSJZKOBVgo/unb+03+Rpz+3ePX6FFkZ094jOkzN+LPl1C6PiBja3tFzsmn/cYAA83 hDA1PK1qHpLgfjrDi6XVVwNO+6v2EFPBhHIifZH6Gbm3dToyLJfs743GWPq/IPbNb98L kSfLiafgniyJF+o9mL0lS0gbsYVGNchVd7/+xSQlkc/ZTVILUoFcIWWJ68Vy0r9lNTiy 7u36s2tMXSzkuFQUFRTj2UjmP/tvEKeLn4SH7B7whYfROmQgKOjEIsL74VoDSKli0+8Q Vf9kJyNBWugVWeXR2bZy+3C0NmTSBDSrwZq6/K3oPRo8bwNZ9BQJrnPjuzuQ2FCnaUGZ Wlmg== X-Gm-Message-State: AOJu0Yz6GRn3++3vLkl4cZkOqsNdiAmbcj+8qwO712HShAKzWzCxjg2O T+KoDAoUINKM1+ouoUe+X/vB3ndUl260Oc36m2BtcP/Nh5yA0vqfDqqVaNbZ7ul/346jzfXUMFE +eCYsg5FDP3Ot7DPg22M43s/FyC55ZiZj1W3+0Y2LfIchPVSEz64QIKzROGc2xJonJQ== X-Gm-Gg: AfdE7ckny4Rpbf+j6Byak32JHpC6ZRUzf8QyJcKFu8iNxWZ/vngUu2hjwxzwOMc3B/4 OWyLEjTfsJDAfVL6z7pQ9wzBx39El+hI9T5SOoEu5LpGjIXvUg8a1pM4svdQLh9FK8L3rlvZwA/ vAf3DU7d0SglfSWQq+xGfgE2WZ1uBA+u/oWKW7r/7Fegy2S0/uV+c9ufHaGjEMPxvdXTkdcM3Nw xOy4Z9vb/cQrF8FzcXYhyvUCF4aEnla+P/F+IhHK3xcjl8+ynwRhtCWjcWNixCDp7m9PRdHhO1D rkeRmrns2zSHJ0LS46Hojjstbot8pWzfquwxyN2BRnoad9XP+OAgysOx6WcoEUyxOel8Ia657or rHUMPUP3zs59JOOogDaATF37wc5BNAk+FKZOlrL9FxPt3yrZ+ivzyFWxzLa0= X-Received: by 2002:a05:7301:4b01:b0:30b:eb26:7330 with SMTP id 5a478bee46e88-30c06807dafmr3488289eec.0.1781911852466; Fri, 19 Jun 2026 16:30:52 -0700 (PDT) X-Received: by 2002:a05:7301:4b01:b0:30b:eb26:7330 with SMTP id 5a478bee46e88-30c06807dafmr3488265eec.0.1781911851817; Fri, 19 Jun 2026 16:30:51 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Markus Armbruster , Mike Lambert , Sid Manning , Pierrick Bouvier , Paolo Bonzini , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= Subject: [PULL 68/74] hw/hexagon: Add machine configs for sysemu Date: Fri, 19 Jun 2026 15:59:05 -0700 Message-Id: <20260619225911.159473-69-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfXyRjZgyhE0KYi AAusH4bLp9Ep93qy7Z/ojpyyfMcfk6F7g6aITNE87ukg79DB/sU34Omh0DXZJL4T2KX6W6ZjCBy fXYLAMTFq4lCS2nbdRIblV88V56+uopVKKyWWR68eByAjDlU/NhfZHdxNfRPVpP87Ea8uFIMFN/ namHkWv05SWa8jeR9rj34N0LmB0KIDzM19gBQYW1wamIQ7Jws/A5JYRGiftYW/nb+/pSzK3AUcx /k7Pf8M2bgDcIUHTc75SLWKlGb59Ckmfm/BFdwqtRkIwc6b2BfSiz8fHGQZUQuATzmy5JdpL+5w 43nFs2Q462dU6KiFc+8r9DkWqHgwlIt7Ezy/2zMqg9pWLdLDw/fmi1jXTbl76oJ/7CTBR5DLP5l vO34KWm84zLQLRSfEn1NUevltMeeLSMm7uQB3bsfmJxDyC2f1Mpifp1hAgbPvjGf9ZzIZR2uKE8 0lJom7mGGgwQ9eh+aTg== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX0O76DXfOMty0 ucxZdbelQ49XSrLyI9pXWqMzZk3QQo2gQrXub/zydzNMbTDnczfRorxb6Sa/OqAldlDeE0TgEgp jMKTKQBCv8Pdj8wi5fKwzbR+cagxItk= X-Authority-Analysis: v=2.4 cv=I75Vgtgg c=1 sm=1 tr=0 ts=6a35d12d cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=COk6AnOGAAAA:8 a=20KFwNOVAAAA:8 a=EUspDBNiAAAA:8 a=eE4CN_At-pr7qPS3jZsA:9 a=hiJlUhq8NronkB9Q:21 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: HhY9w7msk4fsDdivPZ3JdaF8l8Kq9yU7 X-Proofpoint-GUID: HhY9w7msk4fsDdivPZ3JdaF8l8Kq9yU7 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 impostorscore=0 phishscore=0 spamscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 bulkscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190226 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781912009980158500 From: Brian Cain Some header includes are modified here: these are uniquely required for basic system emulation functionality and had not been required for linux-us= er. Acked-by: Markus Armbruster Co-authored-by: Mike Lambert Co-authored-by: Sid Manning Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- MAINTAINERS | 12 ++ include/hw/hexagon/hexagon.h | 161 ++++++++++++++++++ hw/hexagon/machine_cfg_v66g_1024.h.inc | 64 +++++++ hw/hexagon/hexagon_dsp.c | 221 +++++++++++++++++++++++++ system/qdev-monitor.c | 2 +- target/hexagon/translate.c | 1 + hw/Kconfig | 1 + hw/hexagon/Kconfig | 4 + hw/hexagon/meson.build | 6 + hw/meson.build | 1 + 10 files changed, 472 insertions(+), 1 deletion(-) create mode 100644 include/hw/hexagon/hexagon.h create mode 100644 hw/hexagon/machine_cfg_v66g_1024.h.inc create mode 100644 hw/hexagon/hexagon_dsp.c create mode 100644 hw/hexagon/Kconfig create mode 100644 hw/hexagon/meson.build diff --git a/MAINTAINERS b/MAINTAINERS index 9d195e56ce9..44063d6e13b 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1344,6 +1344,18 @@ F: pc-bios/hppa-firmware.img F: roms/seabios-hppa/ F: tests/functional/hppa/ =20 +Hexagon Machines +---------------- +V66G_1024, V68N_1024, sa8775-cdsp0 +M: Brian Cain +R: Pierrick Bouvier +S: Supported +F: hw/hexagon/ +F: include/hw/hexagon/ +F: configs/devices/hexagon-softmmu/default.mak +F: docs/system/hexagon/ +F: docs/devel/hexagon-sys.rst + LoongArch Machines ------------------ Virt diff --git a/include/hw/hexagon/hexagon.h b/include/hw/hexagon/hexagon.h new file mode 100644 index 00000000000..1034b09c2ac --- /dev/null +++ b/include/hw/hexagon/hexagon.h @@ -0,0 +1,161 @@ +/* + * Hexagon Baseboard System emulation. + * + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * SPDX-License-Identifier: GPL-2.0-or-later + */ + + +#ifndef HW_HEXAGON_H +#define HW_HEXAGON_H + +#include "system/memory.h" +#include "hw/core/boards.h" + +struct hexagon_board_boot_info { + uint64_t ram_size; + const char *kernel_filename; + uint32_t kernel_elf_flags; +}; + +typedef enum { + unknown_rev =3D 0, + v66_rev =3D 0xa666, + v67_rev =3D 0x2667, + v68_rev =3D 0x8d68, + v69_rev =3D 0x8c69, + v71_rev =3D 0x8c71, + v73_rev =3D 0x8c73, + v73m_rev =3D 0xcc73, +} Rev_t; +#define HEXAGON_LATEST_REV v73 +#define HEXAGON_LATEST_REV_UPPER V73 + +/* + * Config table address bases represent bits [35:16]. + */ +#define HEXAGON_CFG_ADDR_BASE(addr) (((addr) >> 16) & 0x0fffff) + +#define HEXAGON_CFGSPACE_ENTRIES (128) + +union hexagon_config_table { + struct { + /* Base address of L2TCM space */ + uint32_t l2tcm_base; + uint32_t reserved0; + /* Base address of subsystem space */ + uint32_t subsystem_base; + /* Base address of ETM space */ + uint32_t etm_base; + /* Base address of L2 configuration space */ + uint32_t l2cfg_base; + uint32_t reserved1; + /* Base address of L1S */ + uint32_t l1s0_base; + /* Base address of AXI2 */ + uint32_t axi2_lowaddr; + /* Base address of streamer base */ + uint32_t streamer_base; + uint32_t reserved2; + /* Base address of fast L2VIC */ + uint32_t fastl2vic_base; + /* Number of entries in JTLB */ + uint32_t jtlb_size_entries; + /* Coprocessor type */ + uint32_t coproc_present; + /* Number of extension execution contexts available */ + uint32_t ext_contexts; + /* Base address of Hexagon Vector Tightly Coupled Memory (VTCM) */ + uint32_t vtcm_base; + /* Size of VTCM (in KB) */ + uint32_t vtcm_size_kb; + /* L2 tag size */ + uint32_t l2tag_size; + /* Amount of physical L2 memory in released version */ + uint32_t l2ecomem_size; + /* Hardware threads available on the core */ + uint32_t thread_enable_mask; + /* Base address of the ECC registers */ + uint32_t eccreg_base; + /* L2 line size */ + uint32_t l2line_size; + /* Small Core processor (also implies audio extension) */ + uint32_t tiny_core; + /* Size of L2TCM */ + uint32_t l2itcm_size; + /* Base address of L2-ITCM */ + uint32_t l2itcm_base; + uint32_t reserved3; + /* DTM is present */ + uint32_t dtm_present; + /* Version of the DMA */ + uint32_t dma_version; + /* Native HVX vector length in log of bytes */ + uint32_t hvx_vec_log_length; + /* Core ID of the multi-core */ + uint32_t core_id; + /* Number of multi-core cores */ + uint32_t core_count; + uint32_t coproc2_reg0; + uint32_t coproc2_reg1; + /* Supported HVX vector length */ + uint32_t v2x_mode; + uint32_t coproc2_reg2; + uint32_t coproc2_reg3; + uint32_t coproc2_reg4; + uint32_t coproc2_reg5; + uint32_t coproc2_reg6; + uint32_t coproc2_reg7; + /* Voltage droop mitigation technique parameter */ + uint32_t acd_preset; + /* Voltage droop mitigation technique parameter */ + uint32_t mnd_preset; + /* L1 data cache size (in KB) */ + uint32_t l1d_size_kb; + /* L1 instruction cache size in (KB) */ + uint32_t l1i_size_kb; + /* L1 data cache write policy: see HexagonL1WritePolicy */ + uint32_t l1d_write_policy; + /* VTCM bank width */ + uint32_t vtcm_bank_width; + uint32_t reserved4; + uint32_t reserved5; + uint32_t reserved6; + uint32_t coproc2_cvt_mpy_size; + uint32_t consistency_domain; + uint32_t capacity_domain; + uint32_t axi3_lowaddr; + uint32_t coproc2_int8_subcolumns; + uint32_t corecfg_present; + uint32_t coproc2_fp16_acc_exp; + uint32_t AXIM2_secondary_base; + }; + uint32_t raw[HEXAGON_CFGSPACE_ENTRIES]; +}; + +struct hexagon_machine_config { + /* Base address of config table */ + uint32_t cfgbase; + /* Size of L2 TCM */ + uint32_t l2tcm_size; + /* Base address of L2VIC */ + uint32_t l2vic_base; + /* Size of L2VIC region */ + uint32_t l2vic_size; + /* QTimer csr base */ + uint32_t csr_base; + uint32_t qtmr_region; + union hexagon_config_table cfgtable; +}; + +#define TYPE_HEXAGON_COMMON_MACHINE "hexagon-common-machine" +OBJECT_DECLARE_SIMPLE_TYPE(HexagonCommonMachineState, HEXAGON_COMMON_MACHI= NE) + +struct HexagonCommonMachineState { + MachineState parent_obj; + + MemoryRegion ram; + MemoryRegion cfgtable_rom; +}; + +#endif diff --git a/hw/hexagon/machine_cfg_v66g_1024.h.inc b/hw/hexagon/machine_cf= g_v66g_1024.h.inc new file mode 100644 index 00000000000..cc4d89b89c9 --- /dev/null +++ b/hw/hexagon/machine_cfg_v66g_1024.h.inc @@ -0,0 +1,64 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +static const struct hexagon_machine_config v66g_1024 =3D { + .cfgbase =3D 0xd8180000, + .l2tcm_size =3D 0x00000000, + .l2vic_base =3D 0xfc910000, + .l2vic_size =3D 0x00001000, + .csr_base =3D 0xfc900000, + .qtmr_region =3D 0xfc921000, + .cfgtable =3D { + .l2tcm_base =3D 0x0000d800, + .reserved0 =3D 0x0000d400, + .subsystem_base =3D 0x0000fc90, + .etm_base =3D 0x0000d805, + .l2cfg_base =3D 0x0000d81a, + .reserved1 =3D 0x00000000, + .l1s0_base =3D 0x0000d820, + .axi2_lowaddr =3D 0x00003000, + .streamer_base =3D 0x00000000, + .reserved2 =3D 0x0000d819, + .fastl2vic_base =3D 0x0000d81e, + .jtlb_size_entries =3D 0x00000080, + .coproc_present =3D 0x00000001, + .ext_contexts =3D 0x00000004, + .vtcm_base =3D 0x0000d820, + .vtcm_size_kb =3D 0x00000100, + .l2tag_size =3D 0x00000400, + .l2ecomem_size =3D 0x00000400, + .thread_enable_mask =3D 0x0000000f, + .eccreg_base =3D 0x0000d81f, + .l2line_size =3D 0x00000080, + .tiny_core =3D 0x00000000, + .l2itcm_size =3D 0x00000000, + .l2itcm_base =3D 0x0000d820, + .reserved3 =3D 0x00000000, + .dtm_present =3D 0x00000000, + .dma_version =3D 0x00000000, + .hvx_vec_log_length =3D 0x00000080, + .core_id =3D 0x00000000, + .core_count =3D 0x00000000, + .coproc2_reg0 =3D 0x00000000, + .coproc2_reg1 =3D 0x00000000, + .v2x_mode =3D 0x00000000, + .coproc2_reg2 =3D 0x00000000, + .coproc2_reg3 =3D 0x00000000, + .coproc2_reg4 =3D 0x00000000, + .coproc2_reg5 =3D 0x00000000, + .coproc2_reg6 =3D 0x00000000, + .coproc2_reg7 =3D 0x00000000, + .acd_preset =3D 0x00000000, + .mnd_preset =3D 0x00000000, + .l1d_size_kb =3D 0x00000000, + .l1i_size_kb =3D 0x00000000, + .l1d_write_policy =3D 0x00000000, + .vtcm_bank_width =3D 0x00000000, + .reserved4 =3D 0x00000000, + .reserved5 =3D 0x00000000, + .reserved6 =3D 0x00000000, + .coproc2_cvt_mpy_size =3D 0x00000000, + .consistency_domain =3D 0x00000000, + .capacity_domain =3D 0x00000000, + .axi3_lowaddr =3D 0x00000000, + }, +}; diff --git a/hw/hexagon/hexagon_dsp.c b/hw/hexagon/hexagon_dsp.c new file mode 100644 index 00000000000..ac01d359928 --- /dev/null +++ b/hw/hexagon/hexagon_dsp.c @@ -0,0 +1,221 @@ +/* + * Hexagon DSP Subsystem emulation. This represents a generic DSP + * subsystem with few peripherals, like the Compute DSP. + * + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + + +#include "qemu/osdep.h" +#include "qemu/units.h" +#include "system/address-spaces.h" +#include "hw/core/boards.h" +#include "hw/core/qdev-properties.h" +#include "hw/hexagon/hexagon.h" +#include "hw/hexagon/hexagon_globalreg.h" +#include "hw/hexagon/hexagon_tlb.h" +#include "hw/core/loader.h" +#include "qapi/error.h" +#include "qemu/error-report.h" +#include "qemu/log.h" +#include "elf.h" +#include "cpu.h" +#include "migration/cpu.h" +#include "system/system.h" +#include "target/hexagon/internal.h" +#include "system/physmem.h" +#include "system/reset.h" + +#include "machine_cfg_v66g_1024.h.inc" + +#define TYPE_HEXAGON_DSP_MACHINE "hexagon-dsp-machine" +OBJECT_DECLARE_SIMPLE_TYPE(HexagonDspMachineState, HEXAGON_DSP_MACHINE) + +struct HexagonDspMachineState { + HexagonCommonMachineState parent_obj; + + hwaddr isdb_secure_flag; + hwaddr isdb_trusted_flag; +}; + +static HexagonDspMachineState *current_dms; + +static void hex_symbol_callback(const char *st_name, int st_info, + uint64_t st_value, uint64_t st_size) +{ + if (!g_strcmp0("isdb_secure_flag", st_name)) { + current_dms->isdb_secure_flag =3D st_value; + } + if (!g_strcmp0("isdb_trusted_flag", st_name)) { + current_dms->isdb_trusted_flag =3D st_value; + } +} + +/* Board init. */ +static struct hexagon_board_boot_info hexagon_binfo; + +static void hexagon_load_kernel(HexagonDspMachineState *dms, HexagonCPU *c= pu) +{ + uint64_t pentry; + long kernel_size; + + current_dms =3D dms; + kernel_size =3D load_elf_ram_sym(hexagon_binfo.kernel_filename, NULL, = NULL, + NULL, &pentry, NULL, NULL, + &hexagon_binfo.kernel_elf_flags, 0, EM_HEXAGON, 0, 0, + &address_space_memory, false, hex_symbol_callback); + current_dms =3D NULL; + + if (kernel_size <=3D 0) { + error_report("no kernel file '%s'", + hexagon_binfo.kernel_filename); + exit(1); + } + + qdev_prop_set_uint32(DEVICE(cpu), "exec-start-addr", pentry); +} + +static void hexagon_init_bootstrap(HexagonDspMachineState *dms, HexagonCPU= *cpu) +{ + MachineState *machine =3D MACHINE(dms); + + if (machine->kernel_filename) { + uint32_t mem =3D 1; + + hexagon_load_kernel(dms, cpu); + if (dms->isdb_secure_flag) { + physical_memory_write(dms->isdb_secure_flag, + &mem, sizeof(mem)); + } + if (dms->isdb_trusted_flag) { + physical_memory_write(dms->isdb_trusted_flag, + &mem, sizeof(mem)); + } + } +} + +static void do_cpu_reset(void *opaque) +{ + HexagonCPU *cpu =3D opaque; + CPUState *cs =3D CPU(cpu); + cpu_reset(cs); +} + +static void hexagon_common_init(MachineState *machine, Rev_t rev, + const struct hexagon_machine_config *m_cfg) +{ + HexagonCommonMachineState *hms =3D HEXAGON_COMMON_MACHINE(machine); + HexagonDspMachineState *dms =3D HEXAGON_DSP_MACHINE(machine); + MemoryRegion *address_space; + DeviceState *glob_regs_dev; + DeviceState *tlb_dev; + + memset(&hexagon_binfo, 0, sizeof(hexagon_binfo)); + if (machine->kernel_filename) { + hexagon_binfo.ram_size =3D machine->ram_size; + hexagon_binfo.kernel_filename =3D machine->kernel_filename; + } + + machine->enable_graphics =3D 0; + + address_space =3D get_system_memory(); + + memory_region_init_rom(&hms->cfgtable_rom, NULL, "config_table.rom", + sizeof(m_cfg->cfgtable), &error_fatal); + memory_region_add_subregion(address_space, m_cfg->cfgbase, + &hms->cfgtable_rom); + + memory_region_init_ram(&hms->ram, NULL, "ddr.ram", + machine->ram_size, &error_fatal); + memory_region_add_subregion(address_space, 0x0, &hms->ram); + + glob_regs_dev =3D qdev_new(TYPE_HEXAGON_GLOBALREG); + object_property_add_child(OBJECT(machine), "global-regs", + OBJECT(glob_regs_dev)); + qdev_prop_set_uint64(glob_regs_dev, "config-table-addr", m_cfg->cfgbas= e); + qdev_prop_set_uint32(glob_regs_dev, "dsp-rev", rev); + sysbus_realize_and_unref(SYS_BUS_DEVICE(glob_regs_dev), &error_fatal); + + tlb_dev =3D qdev_new(TYPE_HEXAGON_TLB); + object_property_add_child(OBJECT(machine), "tlb", OBJECT(tlb_dev)); + qdev_prop_set_uint32(tlb_dev, "num-entries", + m_cfg->cfgtable.jtlb_size_entries); + sysbus_realize_and_unref(SYS_BUS_DEVICE(tlb_dev), &error_fatal); + + for (int i =3D 0; i < machine->smp.cpus; i++) { + HexagonCPU *cpu =3D HEXAGON_CPU(object_new(machine->cpu_type)); + qemu_register_reset(do_cpu_reset, cpu); + + /* + * CPU #0 is the only CPU running at boot, others must be + * explicitly enabled via start instruction. + */ + qdev_prop_set_bit(DEVICE(cpu), "start-powered-off", (i !=3D 0)); + if (i =3D=3D 0) { + hexagon_init_bootstrap(dms, cpu); + } + object_property_set_link(OBJECT(cpu), "global-regs", + OBJECT(glob_regs_dev), &error_fatal); + object_property_set_link(OBJECT(cpu), "tlb", + OBJECT(tlb_dev), &error_fatal); + qdev_realize_and_unref(DEVICE(cpu), NULL, &error_fatal); + } +} + +static void init_mc(MachineClass *mc) +{ + mc->block_default_type =3D IF_SD; + mc->default_ram_size =3D 4 * GiB; + mc->no_parallel =3D 1; + mc->no_floppy =3D 1; + mc->no_cdrom =3D 1; + mc->no_serial =3D 1; + mc->is_default =3D false; + mc->max_cpus =3D 8; +} + +/* ----------------------------------------------------------------- */ +/* Core-specific configuration settings are defined below this line. */ +/* Config table values defined in machine_configs.h.inc */ +/* ----------------------------------------------------------------- */ + +static void v66g_1024_config_init(MachineState *machine) +{ + hexagon_common_init(machine, v66_rev, &v66g_1024); +} + +static void v66g_1024_init(ObjectClass *oc, const void *data) +{ + MachineClass *mc =3D MACHINE_CLASS(oc); + + mc->desc =3D "Hexagon V66G_1024"; + mc->init =3D v66g_1024_config_init; + init_mc(mc); + mc->is_default =3D true; + mc->default_cpu_type =3D TYPE_HEXAGON_CPU_V66; + mc->default_cpus =3D 4; +} + +static const TypeInfo hexagon_machine_types[] =3D { + { + .name =3D TYPE_HEXAGON_COMMON_MACHINE, + .parent =3D TYPE_MACHINE, + .instance_size =3D sizeof(HexagonCommonMachineState), + .abstract =3D true, + }, + { + .name =3D TYPE_HEXAGON_DSP_MACHINE, + .parent =3D TYPE_HEXAGON_COMMON_MACHINE, + .instance_size =3D sizeof(HexagonDspMachineState), + .abstract =3D true, + }, + { + .name =3D MACHINE_TYPE_NAME("V66G_1024"), + .parent =3D TYPE_HEXAGON_DSP_MACHINE, + .class_init =3D v66g_1024_init, + }, +}; + +DEFINE_TYPES(hexagon_machine_types) diff --git a/system/qdev-monitor.c b/system/qdev-monitor.c index dfc95a08c10..00fed791cce 100644 --- a/system/qdev-monitor.c +++ b/system/qdev-monitor.c @@ -71,7 +71,7 @@ typedef struct QDevAlias QEMU_ARCH_SPARC | \ QEMU_ARCH_XTENSA) #define QEMU_ARCH_VIRTIO_CCW (QEMU_ARCH_S390X) -#define QEMU_ARCH_VIRTIO_MMIO (QEMU_ARCH_M68K) +#define QEMU_ARCH_VIRTIO_MMIO (QEMU_ARCH_M68K | QEMU_ARCH_HEXAGON) =20 /* Please keep this table sorted by typename. */ static const QDevAlias qdev_alias_table[] =3D { diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index e0418ee990d..77235916f4b 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -32,6 +32,7 @@ #include "translate.h" #include "genptr.h" #include "printinsn.h" +#include "exec/target_page.h" =20 #define HELPER_H "helper.h" #include "exec/helper-info.c.inc" diff --git a/hw/Kconfig b/hw/Kconfig index c109f5537b2..c92ca2b13a3 100644 --- a/hw/Kconfig +++ b/hw/Kconfig @@ -53,6 +53,7 @@ source arm/Kconfig source cpu/Kconfig source alpha/Kconfig source avr/Kconfig +source hexagon/Kconfig source hppa/Kconfig source i386/Kconfig source loongarch/Kconfig diff --git a/hw/hexagon/Kconfig b/hw/hexagon/Kconfig new file mode 100644 index 00000000000..cdf7770a305 --- /dev/null +++ b/hw/hexagon/Kconfig @@ -0,0 +1,4 @@ +config HEX_DSP + bool + default y + depends on HEXAGON diff --git a/hw/hexagon/meson.build b/hw/hexagon/meson.build new file mode 100644 index 00000000000..f528d2bc4ab --- /dev/null +++ b/hw/hexagon/meson.build @@ -0,0 +1,6 @@ +hexagon_ss =3D ss.source_set() +hexagon_ss.add(files('hexagon_tlb.c')) +hexagon_ss.add(files('hexagon_globalreg.c')) +hexagon_ss.add(when: 'CONFIG_HEX_DSP', if_true: files('hexagon_dsp.c')) + +hw_arch +=3D {'hexagon': hexagon_ss} diff --git a/hw/meson.build b/hw/meson.build index ef65ba51950..7fa81db453e 100644 --- a/hw/meson.build +++ b/hw/meson.build @@ -3,6 +3,7 @@ subdir('alpha') subdir('arm') subdir('avr') subdir('hppa') +subdir('hexagon') subdir('xenpv') # i386 uses it subdir('i386') subdir('loongarch') --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781911978; cv=none; d=zohomail.com; s=zohoarc; b=nkfP8b4HFGDtYcEcoJX92e5KjNeZu09MoqlVVRnGT4gUBNNj/kiGLtJuJapKlsl7wbaBrWHCQSj5RqRM/GYt3CGqAlsJOSsF7xlih4qf58IIS1gTQbUz2U+Wx/wLPBQjm2n83Pw5yNlJvF2V1faedUFHaNI9fRU/ExFbqRHIrYs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781911978; 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=H59yHYX/QB4nYfdzTuOV85Wghdkfd+Q1FyRwAv3AWf4=; b=G8JPKXJ57I1BWB5G3/tZBtMgHVa/0dRDwGik6gIks/v6YPqsfVtB7b0TMQoCS/a8Bc8dlh8BrcM2D070K+HbuFUbbjz9LvBo0o2QD/HCsLum7MN5bGwB4BDn5VcNEiwrTqaKz6xCgj66kmVgOtVyPZ6pkZg61k/kW8W/VMOwb2Q= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781911978061367.2895810246075; Fri, 19 Jun 2026 16:32:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waig6-0004FZ-Dm; Fri, 19 Jun 2026 19:31:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waig1-0004BE-Nv for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:31:11 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waify-0007W3-Lf for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:31:08 -0400 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLYIxJ1336793 for ; Fri, 19 Jun 2026 23:30:55 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evp6757b1-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:30:54 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30bcbb34e57so4177512eec.1 for ; Fri, 19 Jun 2026 16:30:54 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d75csm1212646eec.15.2026.06.19.16.30.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:30:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=H59yHYX/QB4nYfdzTuOV85Wghdkfd+Q1FyRwAv3AWf4=; b=dD FGq2r7xRS6tYeWztTF7tJhjSFs6d1jKETIBxyR2ZqN7lNaR7YYQn2niYs1dWXEEN CTwLyodLyPHD8K2MTcf0/x0cbhbCKv32waGoFGqOgFnbDkoZz7hVCKLDfIknOc7p 8EIN6PQOc29RKLaegZssUA90Xg07W9iXt483DnorYdi76C1l0fYqSfN0WMgXcAnw xr7hdqhaCGhe308ZrmErtSOVfuSdVA6+woYs3dN2Zhzpxmx+Q7y1vRH9RLts4BTn cqDyhJ8FZcGV7wltSMVW0snUtCikjHp+T0D8BEWMjG794tGB0GQbG2pUdQ9Hor4J 4wXcwzd1/LV/plMomhJA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781911854; x=1782516654; 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=H59yHYX/QB4nYfdzTuOV85Wghdkfd+Q1FyRwAv3AWf4=; b=PlvgrKJnFc79smc05nzVxqj3GHS91hd2IITpAJQvsQv+6lJAtz2JuPpdtGjTxapMx+ 93xxPnCRLv1unO7C4Ey4693Qwid9AehSczmrKvkwLGYm3BvKCncejOiaJHwiqLtDVXAF yZxZSGhCSYZcYxAx6GwCeTPyCe4N78gbeJmGppYDNvbqDV62Bxfb7WzJsOT1dwB//85q WMJWcWJF4nVnrqmDXZrxrUP1AwwyC2ZfJciuvpalJX+B+hyksu9Fgfk0ZgykekXMZI1b qBkNbP6BU9pbGSWplYMHVksiQs4KQyajVRRKeuPjIgZcS14hrg2arBpd8G1pmW7cPBpS ooDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781911854; x=1782516654; 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=H59yHYX/QB4nYfdzTuOV85Wghdkfd+Q1FyRwAv3AWf4=; b=P2lRDoFV8D3qhzAdBxk2ueVT4EiWzVkkrMH1ZO1e4le1b3pARWTurPNFLcsJ6oQ9Gu YZBZon/6lC39QfbezH3C6MND28RvR+/ITju6MXDi+D/kb7aL6DNo10OpzfqFaf6Aj4gS 6Nd6G0uOHFa4tvS3hoVup6QWQ4J2/yqQ2v/4yIRCtYx15qHvKNCa5VuIG/VEFXFQqUlf YYuVHmb/x8pSoQk7lpDQvaGYxQK/ZYSQoSRkBLcLSfHrmi5aoOv22coMtEdY1het4wtE uvtu/vtF+mPNTSW74Bc8c3cAPPvkRqE3RtFMkY9f+jtTQV95SzobG8EkhYlnh7hKR62j duHw== X-Gm-Message-State: AOJu0YwUfZ1mcPW5nfdmgGOtbPNwEDH7Pc1jYW8NwwI0maIiYBe0Q5Lh tMJlIzP9b/RZbe574jFIvUX0lQGWECNJu0f50VA1Dtgfpmo0uT/WUVTPPU4NQKsg7J5kqPFKe88 MnDNU6onHnezks8UsQIk/+ScCcsfo68IYf4pJoi9/LBMqxE2KFW3Z/KhoDExR1ncIug== X-Gm-Gg: AfdE7cmfImhvH3uouPABi06cAQM8z0XbzDTXzQ7dUCpHbRNw8h7ppRH/M8zR9Up7Ot7 xm31KGPahrR8/AJRmwZcoboArbdXhRuT9lRqEvtVyxfS0Qx8AyK/ybvushqgVBF0hW0rpLQdjUb i0PR2+AxYu/tqRTSZm73LMfVamc2hl5EOfv5TF6VOkVyRmUSTQ7xNKIkY2+hcD62BqBrFznhe3U wZu7hY7N33SVYazKCbedXb5/OLAF64g1+EMUDME19LFK563/5UbT5Ngl0hMF4H8CGp1hPvDfinm BUqz853gPbTP2d3GlHHfxOoCWOC9HsaizmzjtWNkUVIm0Qj7XPYC6B13GI/Yt8wfE3OvCtl0HQc n2W+lehXMAD2Jkto493sAa+k7EEWbkIu97sfdrBoO9tiN3DdMZshkV3ZYD3A= X-Received: by 2002:a05:7300:f10a:b0:304:d8e2:3c4d with SMTP id 5a478bee46e88-30c071d1c0emr2683158eec.25.1781911853998; Fri, 19 Jun 2026 16:30:53 -0700 (PDT) X-Received: by 2002:a05:7300:f10a:b0:304:d8e2:3c4d with SMTP id 5a478bee46e88-30c071d1c0emr2683146eec.25.1781911853457; Fri, 19 Jun 2026 16:30:53 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pierrick Bouvier Subject: [PULL 69/74] hw/hexagon: Add v68, sa8775-cdsp0 defs Date: Fri, 19 Jun 2026 15:59:06 -0700 Message-Id: <20260619225911.159473-70-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: sfPISECLk5llh5G4UDEAkXGmY9harVmS X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX2VZpro+RWgxF UCSUmFteTefZlosJdfpXL6rkZM8OyJXhZ9vGsghqYJSMRG1WocyEjBThgE/dzuS511g5iq1mjtg 8NRU+h4y19K7Sh2yR9PCgzP+RcFXH63eGGln8GKShne2EqjvYeo2clkJXbk1znxdXf8dn4RNZqe 3nlxEXWJzgMgx32Gmh6RJGledaFn0I0W6VDFhh4WRpHqryrLnhmMD8Gz5W/FR7Kq97jr7R3AU9R Xw4rMetWYOHzTX64YFCuK1XZq7L+qkAJUkp5gXuQjD3v5R3OmqAPD0iodSNAVsAz0x83swIZCf+ o6YozKDYCVVxffFRYbOee8LSPFTrK7/LDzZy/z6GEW7/Nxxa82icg9PPscsn6BWuAUlosLzE4DO 04PCufPUbcd0MoGRc9DLCyIGIkYOb3+YjTaz/R1VzxKkttRLgAY5gbHi8GFZt5hD3NrkMyoII6m XAKkqXzytm1UAwLqQnQ== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX9Epd7/TK4fcs b7cYJ4roAAt6POLYOOetuxpeI6cg2RXwMskT93dEvgh7U9sBnGB2mI8zwqKKGyEFbgSCgnAPkC7 xOw90s4nDGkGPjdL0UfMA7i/uc0FTto= X-Proofpoint-GUID: sfPISECLk5llh5G4UDEAkXGmY9harVmS X-Authority-Analysis: v=2.4 cv=TdOmcxQh c=1 sm=1 tr=0 ts=6a35d12e cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=G5se95cPlkO2hgD9IGUA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 impostorscore=0 spamscore=0 phishscore=0 malwarescore=0 clxscore=1015 suspectscore=0 bulkscore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190226 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781911979794158500 Content-Type: text/plain; charset="utf-8" From: Brian Cain Acked-by: Taylor Simpson Acked-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- hw/hexagon/machine_cfg_sa8775_cdsp0.h.inc | 64 ++++++++++++++++++++++ hw/hexagon/machine_cfg_v68n_1024.h.inc | 65 +++++++++++++++++++++++ 2 files changed, 129 insertions(+) create mode 100644 hw/hexagon/machine_cfg_sa8775_cdsp0.h.inc create mode 100644 hw/hexagon/machine_cfg_v68n_1024.h.inc diff --git a/hw/hexagon/machine_cfg_sa8775_cdsp0.h.inc b/hw/hexagon/machine= _cfg_sa8775_cdsp0.h.inc new file mode 100644 index 00000000000..442cbe3be31 --- /dev/null +++ b/hw/hexagon/machine_cfg_sa8775_cdsp0.h.inc @@ -0,0 +1,64 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +static const struct hexagon_machine_config SA8775P_cdsp0 =3D { + .cfgbase =3D 0x24000000 + 0x180000, + .l2tcm_size =3D 0x00000000, + .l2vic_base =3D 0x26300000 + 0x90000, + .l2vic_size =3D 0x00001000, + .csr_base =3D 0x26300000, + .qtmr_region =3D 0x26300000 + 0xA1000, + .cfgtable =3D { + .l2tcm_base =3D 0x00002400, + .reserved0 =3D 0x00000000, + .subsystem_base =3D 0x00002638, + .etm_base =3D 0x00002419, + .l2cfg_base =3D 0x0000241a, + .reserved1 =3D 0x0000241b, + .l1s0_base =3D 0x00002500, + .axi2_lowaddr =3D 0x00000000, + .streamer_base =3D 0x00000000, + .reserved2 =3D 0x00000000, + .fastl2vic_base =3D 0x0000241e, + .jtlb_size_entries =3D 0x00000080, + .coproc_present =3D 0x00000001, + .ext_contexts =3D 0x00000004, + .vtcm_base =3D 0x00002500, + .vtcm_size_kb =3D 0x00002000, + .l2tag_size =3D 0x00000400, + .l2ecomem_size =3D 0x00000000, + .thread_enable_mask =3D 0x0000003f, + .eccreg_base =3D 0x0000241f, + .l2line_size =3D 0x00000080, + .tiny_core =3D 0x00000000, + .l2itcm_size =3D 0x00000000, + .l2itcm_base =3D 0x00002400, + .reserved3 =3D 0x00000000, + .dtm_present =3D 0x00000000, + .dma_version =3D 0x00000003, + .hvx_vec_log_length =3D 0x00000007, + .core_id =3D 0x00000000, + .core_count =3D 0x00000000, + .coproc2_reg0 =3D 0x00000040, + .coproc2_reg1 =3D 0x00000020, + .v2x_mode =3D 0x00000001, + .coproc2_reg2 =3D 0x00000008, + .coproc2_reg3 =3D 0x00000020, + .coproc2_reg4 =3D 0x00000000, + .coproc2_reg5 =3D 0x00000002, + .coproc2_reg6 =3D 0x00000016, + .coproc2_reg7 =3D 0x00000006, + .acd_preset =3D 0x00000001, + .mnd_preset =3D 0x00000000, + .l1d_size_kb =3D 0x00000010, + .l1i_size_kb =3D 0x00000020, + .l1d_write_policy =3D 0x00000002, + .vtcm_bank_width =3D 0x00000080, + .reserved4 =3D 0x00000001, + .reserved5 =3D 0x00000000, + .reserved6 =3D 0x00000003, + .coproc2_cvt_mpy_size =3D 0x0000000a, + .consistency_domain =3D 0x000000e0, + .capacity_domain =3D 0x00000080, + .axi3_lowaddr =3D 0x00000000, + }, +}; diff --git a/hw/hexagon/machine_cfg_v68n_1024.h.inc b/hw/hexagon/machine_cf= g_v68n_1024.h.inc new file mode 100644 index 00000000000..82619c42ac1 --- /dev/null +++ b/hw/hexagon/machine_cfg_v68n_1024.h.inc @@ -0,0 +1,65 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +static const struct hexagon_machine_config v68n_1024 =3D { + .cfgbase =3D 0xde000000, + .l2tcm_size =3D 0x00000000, + .l2vic_base =3D 0xfc910000, + .l2vic_size =3D 0x00001000, + .csr_base =3D 0xfc900000, + .qtmr_region =3D 0xfc921000, + .cfgtable =3D { + .l2tcm_base =3D 0x0000d800, + .reserved0 =3D 0x00000000, + .subsystem_base =3D 0x0000fc90, + .etm_base =3D 0x0000d819, + .l2cfg_base =3D 0x0000d81a, + .reserved1 =3D 0x00000000, + .l1s0_base =3D 0x0000d840, + .axi2_lowaddr =3D 0x00003000, + .streamer_base =3D 0x0000d81c, + .reserved2 =3D 0x0000d81d, + .fastl2vic_base =3D 0x0000d81e, + .jtlb_size_entries =3D 0x00000080, + .coproc_present =3D 0x00000001, + .ext_contexts =3D 0x00000004, + .vtcm_base =3D 0x0000d840, + .vtcm_size_kb =3D 0x00001000, + .l2tag_size =3D 0x00000400, + .l2ecomem_size =3D 0x00000400, + .thread_enable_mask =3D 0x0000003f, + .eccreg_base =3D 0x0000d81f, + .l2line_size =3D 0x00000080, + .tiny_core =3D 0x00000000, + .l2itcm_size =3D 0x00000000, + .l2itcm_base =3D 0x0000d820, + .reserved3 =3D 0x00000000, + .dtm_present =3D 0x00000000, + .dma_version =3D 0x00000001, + .hvx_vec_log_length =3D 0x00000007, + .core_id =3D 0x00000000, + .core_count =3D 0x00000000, + .coproc2_reg0 =3D 0x00000040, + .coproc2_reg1 =3D 0x00000020, + .v2x_mode =3D 0x1f1f1f1f, + .coproc2_reg2 =3D 0x1f1f1f1f, + .coproc2_reg3 =3D 0x1f1f1f1f, + .coproc2_reg4 =3D 0x1f1f1f1f, + .coproc2_reg5 =3D 0x1f1f1f1f, + .coproc2_reg6 =3D 0x1f1f1f1f, + .coproc2_reg7 =3D 0x1f1f1f1f, + .acd_preset =3D 0x1f1f1f1f, + .mnd_preset =3D 0x1f1f1f1f, + .l1d_size_kb =3D 0x1f1f1f1f, + .l1i_size_kb =3D 0x1f1f1f1f, + .l1d_write_policy =3D 0x1f1f1f1f, + .vtcm_bank_width =3D 0x1f1f1f1f, + .reserved4 =3D 0x1f1f1f1f, + .reserved5 =3D 0x1f1f1f1f, + .reserved6 =3D 0x1f1f1f1f, + .coproc2_cvt_mpy_size =3D 0x1f1f1f1f, + .consistency_domain =3D 0x1f1f1f1f, + .capacity_domain =3D 0x1f1f1f1f, + .axi3_lowaddr =3D 0x1f1f1f1f, + }, +}; + --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781911995; cv=none; d=zohomail.com; s=zohoarc; b=lj6zlJ7woWTv7/LtPzZ5PCo680ohStZjStfws5vEbEH8dyaa3uE70Lgzsy02GMUOl2h0JnUyyEY1jrSpyQD18KngkRgLgYQ1z6ZZPapjFkEjHGbHfosJKl9bQnvGTIIlpeoai05SL2JVDEviK/LQDBOjXWX+Uta6OBY1LrJYigM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781911995; 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=rn3nrXF+9M3gB0m5jL2ztn1CUMGQuvNbgLv/5EwohVs=; b=W+IkEaxKDe1+NNZWXRq84PtWUolAYTg3jm4bI7WohKS1eGWB+4kiNYgu9s+3Np6hshGGJdtiYmmLxTQD/mzUFNQoP4GlqgUVrYl67u5mm95oH8Lbc2AZ1sfTbkTWkAUKTZf5dEvkD9InK4rF/ARaThTORoG+lmHTuSKGVggMBSA= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781911995041316.3428140695203; Fri, 19 Jun 2026 16:33:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waig5-0004Ds-U3; Fri, 19 Jun 2026 19:31:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waig1-0004BD-NV for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:31:11 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifz-0007Wj-MC for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:31:09 -0400 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLYQ621337250 for ; Fri, 19 Jun 2026 23:30:56 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evp6757b3-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:30:56 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30bc5f826f2so4641726eec.1 for ; Fri, 19 Jun 2026 16:30:56 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d75csm1212646eec.15.2026.06.19.16.30.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:30:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= rn3nrXF+9M3gB0m5jL2ztn1CUMGQuvNbgLv/5EwohVs=; b=g7U3hvb6MgqzIZ4Y CIMb7f5QrPM/9KUfJFzS/kMjYkvzglIvNAhfZZZ+jfZYR6N1nsupfzx4FDbUpTYm ZGWX2WTYXnoRbqRXvsFYIojxULzr380bXMa9fclzv6CV1x0W8RAw1bq/jOWA8tkc 3r4NDbCTmMy2aYlpLNfQXeS1kgFIc4k9F1YrYTqmGre46WemyiW8lbPPslmqgVqZ P3pwKwODje1CcCYqC0VbCtHsMz/XeWqkyHplrJB//2TSU6agf+I+zb1m0hjjGOyC 12eUrON+ztIWY1XYJO4MwOxZO9O7z0ZNOR4VfxAl95GKSXvxNXxqHOCet2FXx+qg 6QK+nw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781911856; x=1782516656; 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=rn3nrXF+9M3gB0m5jL2ztn1CUMGQuvNbgLv/5EwohVs=; b=czlWRComNl/FaZDNnaOiGylNu4hY8Q9bVTKT7ZBsv7dp2k58HE32RtPVX8+3Hr0FyP 0Gu2GowKWuSz7loF/2wQhewao02U89+F8wAtAkUSi2mKI8byvDizHX/Qh+O1GjoukmIJ fyNDaWUVCGisUVOiHvPaKHpxK6tVkiP+AeSp2S3R2g1fn4RPLp3s9SSGYccQ0DpbfvPt DiEYjb7GZbUhgHzNuxt11FEFi6dJ5yuFdvZOwhIjQ8FxlxF1FGLor9UL+hnnBrpacAq+ AtSIDOuJ+wpUqlAVNE9SWBq6Jo4TduUnPgEN9Rp3MzY2KuWoKIlu96pFVlr1Az+N9wb2 WTtw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781911856; x=1782516656; 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=rn3nrXF+9M3gB0m5jL2ztn1CUMGQuvNbgLv/5EwohVs=; b=ogo7ELIXrBY4JuKrG28lI6zwwHCLfxahinCc9HjB9nEMFzLVFMvej/MmIVATexnssL LliIkF4jLFeVKhvO2Q4ufPIQYFAP153ua4r26NR1Zbs3kZndskC5QzJVvpNQ2ABoRF2L DIVxQa1kiMaRn8rjah0jhqMLlD3j9rtCwusgAwZO4/y6uw15hFDtvJNERhgWDlDXbsoK exfDz+PLu5WzOD1cI0jruAwvo3QPAFtfcJ3iqj05xaCs/M4zV8C55EpKSWMbm6M8qWkb IIDROFW0VN5okfCYBKTNTGPECRH1LEJNLKETZmx94UUrPo4vAZTXK/H7MO6hiwxHDy1e m3Qw== X-Gm-Message-State: AOJu0Yzzwz2ohdyp15qvm2h/M1F4zJhSmX9jXklKuvYsHZLg1uR/NSJy OYEFcqyq+mOgsge5oqgjkReD+y+27JXVKpcCPJbgHG9vKlTsnKLcExd/1ekzDV/mhImurCbuNOE mEG+0IN0zBzyvQVXqCRmVeA229yHN7iwmG05UB6O7Cv2Tm/IfhRJnYcNBOpF8BUP7fA== X-Gm-Gg: AfdE7cn6Beyj8Ya95M7ylze50UmAZDUCSrf4ChPh9tvHdz/0DmiU6DHwupR5iH2mqnk r+UVogEQICexlgrZD82shJ4BuMXLfC3+ygzVfOMAYZ0jLuT+yoPBx7bFRSRdJAwxPAbXYHLIqZ5 ys0EBA30Hc0NOT9kpcjvafdDtQxVd2MgLqg4vAkWbX2cmc7oUIGLILzUHmvbyXCKy7Ej8c6FD01 Lg7DPsSr1+2GUyCdTPjsC2RRvQicL6bz1lfo/8sS/zw+nxDlwXsaFoVrDEz+uQTzUJ4lXZPXP4x D/QuO7o5x5VvCKhoppKIsNLZFo2VNh7V2Nd0B4rcUtU5UWnEnSCNg+lGdR9qq9P3SX13DIF3BYb 4IkzgxTaV6wB5E4MLoOIXaOhdOSf4OvR7n6zVhEBFtFmYzj5IbkXLGCpbg6I= X-Received: by 2002:a05:7300:5b95:b0:2ed:e12:376b with SMTP id 5a478bee46e88-30c0d29fafbmr2485250eec.33.1781911855466; Fri, 19 Jun 2026 16:30:55 -0700 (PDT) X-Received: by 2002:a05:7300:5b95:b0:2ed:e12:376b with SMTP id 5a478bee46e88-30c0d29fafbmr2485241eec.33.1781911854958; Fri, 19 Jun 2026 16:30:54 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Sid Manning , Taylor Simpson , Pierrick Bouvier Subject: [PULL 70/74] hw/hexagon: Add support for cfgbase Date: Fri, 19 Jun 2026 15:59:07 -0700 Message-Id: <20260619225911.159473-71-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: ycJc-28KiqrCPJTyqvtou_8-vau_msr8 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfXzcgw0OXVCxTt hQiJOseLwJkfrLZADYaSqEV78ePZhY1AC1ArScVete3Odr7tF0RVVy0b2hef/mlDvLQHJTsOeBH Xwp3VAIJE6S4Tbibbf3wvhpzLk/kOgr/NWCKqRnSZW+FLnel11TsYSrxcgl+fhdBeq+5H2moEMN 7eut6Pu8v1YkCSPj8VYu6JxZCX4p3CEWW0uUQ6H7LDoyN60uVXpN46BpLBDt8UuU96rYx2khBJR jwyjCdVmPrAJwqmd0iMbcYdyUwZsyF9ZE5sx1JWlckSur61t2pSGeXHbYSMtFrUxgk6AXv+pCDj hbuzsNdOGQwKwgxxboL1KMTKHKw2iiCVHBMipNuu6bB5Bj8tpt0drjjtmeQV0vAdy41hejq8prA m6utmpQZFaBX1AmdPoDNLIqV7NuWrhyt2xVLNEh8xwU5N7X2Jy1u0nUVXJpFksaS0J6TE/HnNKs 4jj4VhgwW7C8FnpCfeg== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX2OaY9WMIAntt H9ZlR44lYmqSr88ZES2DwbGPJl2i8oHnwgWGPj2WRH/4xmcOy6q8lN2NvOsjqZIpyT7NIi/oEkL dHtt9B9FurWXgi57tvllkHVua8PxFC4= X-Proofpoint-GUID: ycJc-28KiqrCPJTyqvtou_8-vau_msr8 X-Authority-Analysis: v=2.4 cv=TdOmcxQh c=1 sm=1 tr=0 ts=6a35d130 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=7umkzkyUMl8fFcUskJ4A:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 impostorscore=0 spamscore=0 phishscore=0 malwarescore=0 clxscore=1015 suspectscore=0 bulkscore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190226 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781911995802158500 From: Sid Manning Reviewed-by: Taylor Simpson Signed-off-by: Sid Manning Signed-off-by: Brian Cain --- hw/hexagon/hexagon_dsp.c | 4 ++++ target/hexagon/cpu.c | 1 - 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/hw/hexagon/hexagon_dsp.c b/hw/hexagon/hexagon_dsp.c index ac01d359928..aa493993229 100644 --- a/hw/hexagon/hexagon_dsp.c +++ b/hw/hexagon/hexagon_dsp.c @@ -162,6 +162,10 @@ static void hexagon_common_init(MachineState *machine,= Rev_t rev, OBJECT(tlb_dev), &error_fatal); qdev_realize_and_unref(DEVICE(cpu), NULL, &error_fatal); } + + rom_add_blob_fixed_as("config_table.rom", &m_cfg->cfgtable, + sizeof(m_cfg->cfgtable), m_cfg->cfgbase, + &address_space_memory); } =20 static void init_mc(MachineClass *mc) diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 06be5c8d498..42d93e5da47 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -400,7 +400,6 @@ void hexagon_cpu_soft_reset(CPUHexagonState *env) } #endif =20 - static void hexagon_cpu_reset_hold(Object *obj, ResetType type) { CPUState *cs =3D CPU(obj); --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781911977; cv=none; d=zohomail.com; s=zohoarc; b=e2FvCh3DrIXZmtupMq+LCCaSmbxcHx3arDlsvu8fbZP2PnHDhJwA3872yStqvQh5a0SPBmIG6zmSLnRKzlNRo4zJjj01PbiY6WeWeI66KFatJNcaAfBXFaXF1Bov8Z2kfnfmyIyurVHEGfUKHGrjmuxjnpfOZz9C0fKu/+LVP70= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781911977; 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=fNRf1w3FWsd+f03wmR+fqTbcYSxUZt7zBbSNGiEflbE=; b=f908+1sfq/H2igLwx7NnMPh8uOR8ndrU93txrStVW7YwFB+U9/BI9tfmoRPlr+GJPPM1qSv3KlVM6cku0nEFiCvK4Og74E7n08/dOEW6R/IdkD3TxMa9fmh/g5q9TdLPagGm/5yOo7c+oQJQ/iVD867x6nL2bSZYICX8ZN59cI4= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781911977788870.9630594124407; Fri, 19 Jun 2026 16:32:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waig5-0004Dc-9w; Fri, 19 Jun 2026 19:31:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifs-00047F-Ma for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:31:00 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifq-0007Y2-Rw for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:31:00 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLZKIO1909469 for ; Fri, 19 Jun 2026 23:30:58 GMT Received: from mail-dl1-f72.google.com (mail-dl1-f72.google.com [74.125.82.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ewb9wgsv4-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:30:57 +0000 (GMT) Received: by mail-dl1-f72.google.com with SMTP id a92af1059eb24-138156c0492so8943345c88.1 for ; Fri, 19 Jun 2026 16:30:57 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d75csm1212646eec.15.2026.06.19.16.30.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:30:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=fNRf1w3FWsd+f03wmR+fqTbcYSxUZt7zBbSNGiEflbE=; b=bJ sqe8dfdh7eADRJo22EpP0XPhNm7HOtoqkJEX0VJ1156Su/+82g7bn9RbbYKiCQz1 xcWbNx2jzVYAVMnwZ09v5KQW+zRc6bA/wIeP15X0j0ER++8HOweGXY8D54hIDprh Shku2gKomrgOuhPpozDEzBiomADOGug/FhopJHOu3d85dpKLHs+Xyi6ukQy4TcIh EVGIWTIyLCgbQMvyBIPaN6FXsKsSGaTDyrzfWUFi4rsxiyBytzXrTxbhYijQt/2o oPn6Y64Lr1qrnTw3O2jmOketXsxlPu/2pLr9L4bjGtlhLANFNUDN69KC1mSn6BYo Uz58iISmQuIZPY4F2boA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781911857; x=1782516657; 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=fNRf1w3FWsd+f03wmR+fqTbcYSxUZt7zBbSNGiEflbE=; b=DTYFsv+C2LcGRpEiJmrYkwZ+/g3zmwSZlG0e8OSzAJcBVFYVM2yXBmBZKBb7z5Ya4h YRsH8GbTXjlXPblMOB3aRfyPLnTIu6hu+QstEFoYMcc20Cl9WIyXW9viocllRvVP/3bJ TzV/ElrNqCpI8TSw3mH+yu+IRxZ42P4AJ2S5dM15Ir+xjci2H6/mcHa+GZ1rzkFD29al 6qTsX9DlxDVIMax58J9JI3Qj/VqiIUeuTa7RDjxuV9y3y1WUXXPfJnRgMiRLDutB3SDL KVId3BUwdF7xYXXyMNkUMH/dYl9aW8EkWqQ5fCythU1WUY7J2rKucEAFY8ywpUo/ZCTR zHcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781911857; x=1782516657; 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=fNRf1w3FWsd+f03wmR+fqTbcYSxUZt7zBbSNGiEflbE=; b=ePrAv0SWDTGpPQu+wTi8tQi4N+LOZ+AEokRYaYn58uP9OzaSaLHrGHUX02L+8xlq9b klPcTkhv7o0oV5ZD+Ek6Pzj+8UB+qv4REWEzZKEeUZ+N3DtGuKVkGFRwkL82jl0JojqZ NttO6Ej4HYPNWdW7RUNRoOME8if60CeilSsq9S8jGA7EHLYouCwTKY6CbWhwWJI1PfGA hPbG7n6/YHTQN5mHlYjwAjaemSpaXkdm6+O8HI8Y2k4WVY78xaZ2t8TgOXm90xuvbqnP vn78FUrFkstOj8m98UILBoxIACatJlxVhPCxcaf++s1Au6eJ5m/mvmpCphyqIy5zGuyU hoPQ== X-Gm-Message-State: AOJu0YzxDGSla3VGM90ynt2TxYcUgIk6ubIx4vOo5iPVVHRX4VcKkSgK Me9AdXuPJyiyl6YuY5U5LMhRAgrQefLLrZn3v4H5kg8QqzM1oVkYV8tekDw5OWvzD7IOcHLnVxo FgFBAM1TwNgxLybDZPpuaphF6HEpTyF56mWRvSCt08WuvpaKPhpgTHmID2+Gz0lUl/g== X-Gm-Gg: AfdE7cm+LTsAPMjEFhWzbr7EU/i75rdKPLOQ/O97E2/JdVRj0SuJMyXNO7toT4bxm2y H7xwZ9tXez5ShnAbZXFpIId9SlmI7cOlGttzGLKNoHxeukY+Lzk3ogYPLr4AWAPILTe09VUwjAZ gmBV+os9FJAofirDXeYxLLWfhfXf6GHa2e1flnOdWljyK7b3pzsApCFJZSYuO3Gj23CLXB9JX/T P8sI8PvZhKSCwKovCW4QlkcNPKJ6Ta27FkAcDQS18wPBm8tiQCFwjT7QX5JcuOLv4f+lp4NoBTH L98GD/18r8P4Tx4VxbTen960+ndtlvqeTgGQasHr9ugLuFgeHixencxQvryl7qkVReU0vcB69Yn uW8IUXS/pPd79IjM8S9OlEjeaTCpLY/udDh0rtiUhglmCIKIvB7jr6w2MfQM= X-Received: by 2002:a05:693c:65cb:b0:30c:19fe:3c99 with SMTP id 5a478bee46e88-30c19fe5dcbmr927741eec.28.1781911856771; Fri, 19 Jun 2026 16:30:56 -0700 (PDT) X-Received: by 2002:a05:693c:65cb:b0:30c:19fe:3c99 with SMTP id 5a478bee46e88-30c19fe5dcbmr927728eec.28.1781911856270; Fri, 19 Jun 2026 16:30:56 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Taylor Simpson , Pierrick Bouvier , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Paolo Bonzini Subject: [PULL 71/74] target/hexagon: add build config for softmmu Date: Fri, 19 Jun 2026 15:59:08 -0700 Message-Id: <20260619225911.159473-72-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: TbxjwGCUCP5Y42UtGTX_OGFmGL2EpflD X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX5rWkVPyxAnrY CHhc+FJcBcmh3Jg4bib97kv3J7FuGMS8LhD9zdI7n+Vbsgg1j9lkIPYQ1ZPqg3XYuqAyOqoB0Yu IAoOz/sIhsVaKzOmtTEy06z02CW6caI= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX/dNfk8DWMYq5 fciwDdrF2mpYT1/s7L8WSAR8GD1eCk4DOiv4ZIi3O/bz7kzhUVNCc4qZc6xaaz8StiV2mkXJVCR aNgWjx4H1Zvk2XidHUdAcvI5K+qgYXAvXUTPLYwth19tRAMb5yU+FfXeotIfZdCUlQP/YLTwm2K /OJqAUOPJTK1j74LAc+uE/CS8ogRvlaA6PjyyGiDPy0CaaBl6RLpyXb5NprsCI8RKo69JR2ezlG HO82zMjHsrCXDNW9m9lVg/CS86l8xPNt0BlzO4A9yMLP8Q7E0qvc2Qhbfgd2V0FVdroW6z1JdsQ eIHlUKCxvfwc21DXV3YSMmwqF7goqxKl/qYNz+y5/ppCsTMa2xWWV0TYV1U7D/4tryQc9pj+L39 G8ER/tJ7SJHM2r5Hbq7x8a2CXMwHRQyGtA4fD2MhXHfqyWy4zd3kRG7nhvJX0PWcpI7kCFka91f GklMAzSDoIbhSCNyg9A== X-Proofpoint-GUID: TbxjwGCUCP5Y42UtGTX_OGFmGL2EpflD X-Authority-Analysis: v=2.4 cv=D5R37PRj c=1 sm=1 tr=0 ts=6a35d131 cx=c_pps a=bS7HVuBVfinNPG3f6cIo3Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=S56xvJB5AAAA:8 a=nnu-IgKveahPCV3q3nEA:9 a=QEXdDO2ut3YA:10 a=vBUdepa8ALXHeOFLBtFW:22 a=MH9Ivq0PDQRhlrFuIVvX:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 adultscore=0 lowpriorityscore=0 spamscore=0 impostorscore=0 bulkscore=0 phishscore=0 clxscore=1015 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190226 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781911979870158500 Content-Type: text/plain; charset="utf-8" Reviewed-by: Taylor Simpson Reviewed-by: Pierrick Bouvier Acked-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Brian Cain --- MAINTAINERS | 1 + configs/devices/hexagon-softmmu/default.mak | 6 ++++++ configs/targets/hexagon-softmmu.mak | 7 +++++++ target/hexagon/cpu.h | 5 +---- target/Kconfig | 1 + target/hexagon/Kconfig | 2 ++ target/hexagon/meson.build | 13 ++++++++++++- 7 files changed, 30 insertions(+), 5 deletions(-) create mode 100644 configs/devices/hexagon-softmmu/default.mak create mode 100644 configs/targets/hexagon-softmmu.mak create mode 100644 target/hexagon/Kconfig diff --git a/MAINTAINERS b/MAINTAINERS index 44063d6e13b..cda4d57b495 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -256,6 +256,7 @@ F: linux-user/hexagon/ F: tests/tcg/hexagon/ F: disas/hexagon.c F: configs/targets/hexagon-linux-user.mak +F: configs/targets/hexagon-softmmu.mak F: tests/docker/dockerfiles/debian-hexagon-cross.docker F: gdbstub/gdb-xml/hexagon*.xml F: docs/system/target-hexagon.rst diff --git a/configs/devices/hexagon-softmmu/default.mak b/configs/devices/= hexagon-softmmu/default.mak new file mode 100644 index 00000000000..f7fc874eb0c --- /dev/null +++ b/configs/devices/hexagon-softmmu/default.mak @@ -0,0 +1,6 @@ +# Default configuration for hexagon-softmmu + +# Uncomment the following lines to disable these optional devices: + +# Boards are selected by default, uncomment to keep out of the build. +# CONFIG_HEX_DSP=3Dy diff --git a/configs/targets/hexagon-softmmu.mak b/configs/targets/hexagon-= softmmu.mak new file mode 100644 index 00000000000..fdfa29b4f39 --- /dev/null +++ b/configs/targets/hexagon-softmmu.mak @@ -0,0 +1,7 @@ +# Default configuration for hexagon-softmmu + +TARGET_ARCH=3Dhexagon +TARGET_XML_FILES=3Dhexagon-core.xml hexagon-hvx.xml +TARGET_LONG_BITS=3D32 +TARGET_NOT_USING_LEGACY_LDST_PHYS_API=3Dy +TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API=3Dy diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 4a12dc04727..7694fd91fa8 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -38,10 +38,7 @@ typedef struct HexagonGlobalRegState HexagonGlobalRegSta= te; #include "hw/core/registerfields.h" #include "qemu/bitmap.h" =20 -#ifndef CONFIG_USER_ONLY -#error "Hexagon does not support system emulation" -#endif - +#include "target/hexagon/reg_fields.h" =20 #define NUM_PREGS 4 #define TOTAL_PER_THREAD_REGS 64 diff --git a/target/Kconfig b/target/Kconfig index 3c73e3bae01..0288a3f4164 100644 --- a/target/Kconfig +++ b/target/Kconfig @@ -16,6 +16,7 @@ source sh4/Kconfig source sparc/Kconfig source tricore/Kconfig source xtensa/Kconfig +source hexagon/Kconfig =20 config TARGET_BIG_ENDIAN bool diff --git a/target/hexagon/Kconfig b/target/hexagon/Kconfig new file mode 100644 index 00000000000..7e556f35063 --- /dev/null +++ b/target/hexagon/Kconfig @@ -0,0 +1,2 @@ +config HEXAGON + bool diff --git a/target/hexagon/meson.build b/target/hexagon/meson.build index 528beca3cd0..bc7a292e47b 100644 --- a/target/hexagon/meson.build +++ b/target/hexagon/meson.build @@ -235,6 +235,7 @@ decodetree_trans_funcs_generated =3D custom_target( command: [python, files('gen_trans_funcs.py'), semantics_generated, '@= OUTPUT@'], ) hexagon_ss.add(decodetree_trans_funcs_generated) +hexagon_softmmu_ss =3D ss.source_set() =20 hexagon_ss.add(files( 'cpu.c', @@ -253,6 +254,14 @@ hexagon_ss.add(files( 'mmvec/system_ext_mmvec.c', )) =20 +hexagon_softmmu_ss.add(files( + 'cpu_helper.c', + 'hex_mmu.c', + 'hex_interrupts.c', + 'hexswi.c', + 'machine.c', +)) + # # Step 4.5 # We use flex/bison based idef-parser to generate TCG code for a lot @@ -262,7 +271,8 @@ hexagon_ss.add(files( # idef-generated-enabled-instructions # idef_parser_enabled =3D get_option('hexagon_idef_parser') -if idef_parser_enabled and 'hexagon-linux-user' in target_dirs +if idef_parser_enabled and ('hexagon-linux-user' in target_dirs or + 'hexagon-softmmu' in target_dirs) idef_parser_input_generated =3D custom_target( 'idef_parser_input.h.inc', output: 'idef_parser_input.h.inc', @@ -390,3 +400,4 @@ analyze_funcs_generated =3D custom_target( hexagon_ss.add(analyze_funcs_generated) =20 target_arch +=3D {'hexagon': hexagon_ss} +target_system_arch +=3D {'hexagon': hexagon_softmmu_ss} --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781911994; cv=none; d=zohomail.com; s=zohoarc; b=UvLjEtMjILaNf6S1rC1k+h8VIo3mX5xhfzqn6gpuiTbC1WRpBIdk7ZAjjjeRf79A4a6lGtEM8361rmQD5j06EXOJfIbM2P2QI6Ay6iAeZuaIJVEjgISJXOnzNw7Yc1/tw6z/mUywCPVdaLhtC5LT05fHcJKyp83u2u8twXvoet4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781911994; 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=yceAhRCtNZOpbaG7j5M0kMisT3HAlYGvNKxciZB2G+k=; b=DDm0YA8RYqcrGY3RSEdPX3/6X54IrZ58K44foxW2kI4QxvDKfybO9bKrnF6pmkGUBsS+5tS9hhLp0oDg10FnNWJB6kuNr+wsyBR5vz9xJdtThXw9aQRIh826PMZRfdzl9j6oiabsrWGqj7YJQgvh9fONoChLODb/j0q7imAVj9w= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781911994927202.99131809534276; Fri, 19 Jun 2026 16:33:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waig6-0004GS-Uu; Fri, 19 Jun 2026 19:31:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waig5-0004Da-5g for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:31:13 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waig2-0007YF-Gb for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:31:12 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLXnIZ1286051 for ; Fri, 19 Jun 2026 23:30:59 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evy72kabb-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:30:59 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30bc5f826f2so4641799eec.1 for ; Fri, 19 Jun 2026 16:30:59 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d75csm1212646eec.15.2026.06.19.16.30.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:30:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= yceAhRCtNZOpbaG7j5M0kMisT3HAlYGvNKxciZB2G+k=; b=SMFL5PzcPsJ4DPl5 k1rkKK15hfowI39H3K8QZ9lhNDd11DY/lnzSgAM0XmVSCwF0HXDvYP7duj/7z5ec +R+phi1da+RMl6u7FGBfflxxr/1N2WNcp7wAZ77DcJoUZCYLE/lZYailIjTywZgX HKqAGZwcl/3oq7c9GefrQ/VVx4c60n/eZyeTu9jiF+l9BNLwqsN6CwJ20hw/2Y3D r1eodXKjx7MSM65au8PzS9l6qwzQIu1UQi1fgez3GrCaqzwgPb5mGVrNc5poC03b hoF4vsZFrCfvKgzZDIrlXykwCukR74qYnKl/6gjZCtt/H5wp8xrlkcg44TMxLVeH iCCslw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781911858; x=1782516658; 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=yceAhRCtNZOpbaG7j5M0kMisT3HAlYGvNKxciZB2G+k=; b=Sl1q5d5OU5Sk6uJT8/fHmces5gst5XCnSgTjRo4Gaz9kUWfU09VK0eCUxpxDaRzlUs AxpruYGuDbvhALhm8cgSOOi6fmy0eq3+gKNHCheVSLDAA36n7DNOYAzDQBWi4GWDV//z jaagCZ+wythhNmmDiluH4ZyNDwcnSf2cmC8Yavob2MOT0H6N6XGWaewsRRprMQ6fMva9 cqKLsxctF6WnHseL/kjiM4QL6QvAJJL0cCLF+bOMvZe9v/ZLKMj74XXd/KyHymHiNUYg HNR/EZTplyuxMexhKhDBP/ebKqD/3DYbwk+Yerv62Vs7gEoeR//ujTDrzzqhVjXIU1OZ WARg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781911858; x=1782516658; 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=yceAhRCtNZOpbaG7j5M0kMisT3HAlYGvNKxciZB2G+k=; b=odtOJpVVi1f80WX29lO7+VIssr1k0XvWYXctYBoihWWxtILb2ApZ7m7bIiigP4oHzr 1ZmE/vKJHXqVG6yG/+nM3fyjF5ye5nY2wNFzNER8jbwnI7T88RPCEvjh/0rIiFxjWphl M81A+XiQ713tyOb2Le5JnUAmcgqf3HBBEq7uOh5CqmgJMvTHFs6NdK7lkq0cl4xEsePI TkN3vlpjLIVTgJyvQdgUB/wUivyMZyvFOjHoXPbnieNUH7yt3FS5YYBoDjSzrQ3O7lep eE8Otm7vK76VC7yi6ic9NEREcw18/I8rwx4SN5u7mnIuv/kBTthGpiwL20gwxgAjsHXF T7/Q== X-Gm-Message-State: AOJu0YxfOkCzJDMwHmosli9qUrYsz4FqUSWq2pVKwbnFgbeund/AiADE NZSt7EYTWPoE9FYVYjQop05EylLRydRywrYm/zdSj9rjpVV5LOIg9pi+c8ZnfM3ld3UpqIX7Azs RuSxjMGGmufjG1PrivEzdAAxOm7DazeFLG5a0hTdGfbtEsgf9WGhIoM2nGLhUw3Ji0w== X-Gm-Gg: AfdE7ckTv1JEimLC7OPjV3Zn0GKOtwBbsIHTu0gocNsrAFZ82Qb0p/a7b/wE6L0IaD4 EUJS3wHPrLGMjJmbkzoW8Eu4Y3nTuGidBZHAw6nD545Hn2xmmmH849dCn9WIP0VlTJ7dobKmsSD WaumY0VPBghccA+9QLRQuLxfFDlSg6oXwNs+7l8FKxykDKSZwYKZY8T6Tl0BnMU58bDK45jeNAL xw0CsQFJvKCPZFF88WT4MkGQ2dIo2DBt7usyQdi5F1pqy2T3Zdjwwu4bq7YLQUj0Ieq1MDpT2d7 2xhOki1q0+ANUc6/t9Rai6w9JMKJ9UwbPrMy/iUQr2kVKpswVMn+ueXZPwaz91iwD41HwT5SgUf Jtgn3X29Qkr1kN4fLfIp44VgbVzWdzdf0kMaCjuRae/qwYk4BRQmEP2xgJLE= X-Received: by 2002:a05:7300:214d:b0:304:bce8:fa30 with SMTP id 5a478bee46e88-30c0ceaa979mr2234692eec.5.1781911858089; Fri, 19 Jun 2026 16:30:58 -0700 (PDT) X-Received: by 2002:a05:7300:214d:b0:304:bce8:fa30 with SMTP id 5a478bee46e88-30c0ceaa979mr2234668eec.5.1781911857456; Fri, 19 Jun 2026 16:30:57 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Pierrick Bouvier , Paolo Bonzini , Kevin Wolf , Hanna Reitz , qemu-block@nongnu.org (open list:Block layer core) Subject: [PULL 72/74] hw/hexagon: Define hexagon "virt" machine Date: Fri, 19 Jun 2026 15:59:09 -0700 Message-Id: <20260619225911.159473-73-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-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: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX8NCdrf6rmzDY JyUBLJ568RoP+jh+Wb7qOf/laaVGjY3nHCC+EjHzjK+swGuNFGZf/HtVt1dzQmX/QCtNvbxgX0n YGRteHdeuubwM05JJAHQHJ+ToG82Pq6QPn0M3t1J9InfHVh5r25QRANtfT6wj9QGpIJ1IBB5/O5 5LuPGBBbYXWrO8MyaZ+TVhmXmxdJR80nX/IjulXXXrvBRNjMs1f1GeEwxXjs0cJs54arP+zlH/x P+tvR+UYLYVp7n9jscl/LaFYdpiyUAJ7n3YeRy6RCa1PYqV3nLeuXCjOOj/rgU1HTHGoa39xjEy JEQiS+guc6+88C6tMex9ksenFfE+eqqNuzFwoCmSp+fiFn6F7kF8Y2SSQyKGybSQVYZyuPMqXYj FkqjGizglrDtvHWtaXYkg+LZYfCebGuk5Z1HMR91gYSY7TNYAfEY/cyZbIkHyfI6MCx6UZjwkRU oPDr8xQPF3n1xJOywVw== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfXxV9yNFtXcnds QdefkQx+edSVQrdOFINDOH6BTKbNHTaNaDl3ZjCAsr6Xv0oKS6Qjy9A2BUw7fmF0bTiX1DVorED ZkTtTeYNse+OvGulcgAxws8te2HzakA= X-Authority-Analysis: v=2.4 cv=I75Vgtgg c=1 sm=1 tr=0 ts=6a35d133 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=CPh6EXbgsUTdwlFVG8oA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: miaITz082mq2MRXDYcfv3Mwy7apVB3jj X-Proofpoint-GUID: miaITz082mq2MRXDYcfv3Mwy7apVB3jj X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 impostorscore=0 phishscore=0 spamscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 bulkscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190226 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable 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: 1781911995951158500 From: Brian Cain Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- configs/devices/hexagon-softmmu/default.mak | 1 + configs/targets/hexagon-softmmu.mak | 1 + include/hw/hexagon/virt.h | 30 ++ hw/hexagon/virt.c | 347 ++++++++++++++++++++ hw/hexagon/Kconfig | 10 + hw/hexagon/meson.build | 1 + tests/qemu-iotests/testenv.py | 1 + 7 files changed, 391 insertions(+) create mode 100644 include/hw/hexagon/virt.h create mode 100644 hw/hexagon/virt.c diff --git a/configs/devices/hexagon-softmmu/default.mak b/configs/devices/= hexagon-softmmu/default.mak index f7fc874eb0c..6f2007771b5 100644 --- a/configs/devices/hexagon-softmmu/default.mak +++ b/configs/devices/hexagon-softmmu/default.mak @@ -3,4 +3,5 @@ # Uncomment the following lines to disable these optional devices: =20 # Boards are selected by default, uncomment to keep out of the build. +# CONFIG_HEX_VIRT=3Dy # CONFIG_HEX_DSP=3Dy diff --git a/configs/targets/hexagon-softmmu.mak b/configs/targets/hexagon-= softmmu.mak index fdfa29b4f39..a77c100f0c5 100644 --- a/configs/targets/hexagon-softmmu.mak +++ b/configs/targets/hexagon-softmmu.mak @@ -5,3 +5,4 @@ TARGET_XML_FILES=3Dhexagon-core.xml hexagon-hvx.xml TARGET_LONG_BITS=3D32 TARGET_NOT_USING_LEGACY_LDST_PHYS_API=3Dy TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API=3Dy +TARGET_NEED_FDT=3Dy diff --git a/include/hw/hexagon/virt.h b/include/hw/hexagon/virt.h new file mode 100644 index 00000000000..fcb47762194 --- /dev/null +++ b/include/hw/hexagon/virt.h @@ -0,0 +1,30 @@ +/* + * Definitions for hexagon virt board. + * + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HW_HEXAGONVIRT_H +#define HW_HEXAGONVIRT_H + +#include "hw/hexagon/hexagon.h" +#include "target/hexagon/cpu.h" + +struct HexagonVirtMachineState { + HexagonCommonMachineState parent_obj; + + int fdt_size; + MemoryRegion *sys; + MemoryRegion tcm; + MemoryRegion vtcm; + MemoryRegion bios; + Clock *apb_clk; +}; + +void hexagon_load_fdt(const struct HexagonVirtMachineState *vms); + +#define TYPE_HEXAGON_VIRT_MACHINE MACHINE_TYPE_NAME("virt") +OBJECT_DECLARE_SIMPLE_TYPE(HexagonVirtMachineState, HEXAGON_VIRT_MACHINE) + +#endif /* HW_HEXAGONVIRT_H */ diff --git a/hw/hexagon/virt.c b/hw/hexagon/virt.c new file mode 100644 index 00000000000..a3638998b87 --- /dev/null +++ b/hw/hexagon/virt.c @@ -0,0 +1,347 @@ +/* + * Hexagon virt emulation + * + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "qapi/error.h" +#include "hw/hexagon/virt.h" +#include "elf.h" +#include "hw/char/pl011.h" +#include "hw/core/clock.h" +#include "hw/core/sysbus-fdt.h" +#include "hw/hexagon/hexagon.h" +#include "hw/hexagon/hexagon_globalreg.h" +#include "hw/hexagon/hexagon_tlb.h" +#include "hw/core/loader.h" +#include "hw/core/qdev-properties.h" +#include "hw/core/qdev-clock.h" +#include "hw/core/register.h" +#include "qemu/error-report.h" +#include "qemu/guest-random.h" +#include "qemu/units.h" +#include "machine_cfg_v68n_1024.h.inc" +#include "system/address-spaces.h" +#include "system/device_tree.h" +#include "system/reset.h" +#include "system/system.h" +#include + +enum { + VIRT_UART0, + VIRT_FDT, +}; + +static const MemMapEntry base_memmap[] =3D { + [VIRT_UART0] =3D { 0x10000000, 0x00000200 }, + [VIRT_FDT] =3D { 0x99800000, 0x00400000 }, +}; + + +static void create_fdt(HexagonVirtMachineState *vms) +{ + MachineState *ms =3D MACHINE(vms); + void *fdt =3D create_device_tree(&vms->fdt_size); + uint8_t rng_seed[32]; + + if (!fdt) { + error_report("create_device_tree() failed"); + exit(1); + } + + ms->fdt =3D fdt; + + qemu_fdt_setprop_cell(fdt, "/", "#address-cells", 0x2); + qemu_fdt_setprop_cell(fdt, "/", "#size-cells", 0x1); + qemu_fdt_setprop_string(fdt, "/", "model", "hexagon-virt,qemu"); + qemu_fdt_setprop_string(fdt, "/", "compatible", "qcom,sm8150"); + + qemu_fdt_add_subnode(fdt, "/soc"); + qemu_fdt_setprop_cell(fdt, "/soc", "#address-cells", 0x2); + qemu_fdt_setprop_cell(fdt, "/soc", "#size-cells", 0x1); + qemu_fdt_setprop(fdt, "/soc", "ranges", NULL, 0); + + qemu_fdt_add_subnode(fdt, "/chosen"); + qemu_guest_getrandom_nofail(rng_seed, sizeof(rng_seed)); + qemu_fdt_setprop(fdt, "/chosen", "rng-seed", rng_seed, sizeof(rng_seed= )); +} + +static void fdt_add_hvx(HexagonVirtMachineState *vms, + const struct hexagon_machine_config *m_cfg) +{ + const MachineState *ms =3D MACHINE(vms); + uint32_t vtcm_size_bytes =3D m_cfg->cfgtable.vtcm_size_kb * 1024; + if (vtcm_size_bytes > 0) { + memory_region_init_ram(&vms->vtcm, NULL, "vtcm.ram", vtcm_size_byt= es, + &error_fatal); + memory_region_add_subregion(vms->sys, m_cfg->cfgtable.vtcm_base <<= 16, + &vms->vtcm); + + qemu_fdt_add_subnode(ms->fdt, "/soc/vtcm"); + qemu_fdt_setprop_string(ms->fdt, "/soc/vtcm", "compatible", + "qcom,hexagon_vtcm"); + + assert(sizeof(m_cfg->cfgtable.vtcm_base) =3D=3D sizeof(uint32_t)); + qemu_fdt_setprop_cells(ms->fdt, "/soc/vtcm", "reg", 0, + m_cfg->cfgtable.vtcm_base << 16, + vtcm_size_bytes); + } + + if (m_cfg->cfgtable.ext_contexts > 0) { + qemu_fdt_add_subnode(ms->fdt, "/soc/hvx"); + qemu_fdt_setprop_string(ms->fdt, "/soc/hvx", "compatible", + "qcom,hexagon-hvx"); + qemu_fdt_setprop_cells(ms->fdt, "/soc/hvx", "qcom,hvx-max-ctxts", + m_cfg->cfgtable.ext_contexts); + qemu_fdt_setprop_cells(ms->fdt, "/soc/hvx", "qcom,hvx-vlength", + m_cfg->cfgtable.hvx_vec_log_length); + } +} + +static int32_t fdt_add_clocks(const HexagonVirtMachineState *vms) +{ + MachineState *ms =3D MACHINE(vms); + int32_t clk_phandle =3D qemu_fdt_alloc_phandle(ms->fdt); + + qemu_fdt_add_subnode(ms->fdt, "/apb-pclk"); + qemu_fdt_setprop_string(ms->fdt, "/apb-pclk", "compatible", "fixed-clo= ck"); + qemu_fdt_setprop_cell(ms->fdt, "/apb-pclk", "#clock-cells", 0x0); + qemu_fdt_setprop_cell(ms->fdt, "/apb-pclk", "clock-frequency", 2400000= 0); + qemu_fdt_setprop_string(ms->fdt, "/apb-pclk", "clock-output-names", + "clk24mhz"); + qemu_fdt_setprop_cell(ms->fdt, "/apb-pclk", "phandle", clk_phandle); + + return clk_phandle; +} + +static void fdt_add_uart(const HexagonVirtMachineState *vms, int uart, + int32_t clk_phandle) +{ + char *nodename; + hwaddr base =3D base_memmap[uart].base; + hwaddr size =3D base_memmap[uart].size; + assert(uart =3D=3D 0); + const char compat[] =3D "arm,pl011\0arm,primecell"; + const char clocknames[] =3D "uartclk\0apb_pclk"; + MachineState *ms =3D MACHINE(vms); + DeviceState *dev; + SysBusDevice *s; + + dev =3D qdev_new(TYPE_PL011); + s =3D SYS_BUS_DEVICE(dev); + qdev_prop_set_chr(dev, "chardev", serial_hd(0)); + qdev_connect_clock_in(dev, "clk", vms->apb_clk); + sysbus_realize_and_unref(s, &error_fatal); + sysbus_mmio_map(s, 0, base); + + nodename =3D g_strdup_printf("/pl011@%" PRIx64, base); + qemu_fdt_add_subnode(ms->fdt, nodename); + + /* Note that we can't use setprop_string because of the embedded NUL */ + qemu_fdt_setprop(ms->fdt, nodename, "compatible", compat, sizeof(compa= t)); + qemu_fdt_setprop_cells(ms->fdt, nodename, "reg", 0, base, size); + qemu_fdt_setprop_cells(ms->fdt, nodename, "clocks", clk_phandle, + clk_phandle); + qemu_fdt_setprop(ms->fdt, nodename, "clock-names", clocknames, + sizeof(clocknames)); + + qemu_fdt_setprop_string(ms->fdt, "/chosen", "stdout-path", nodename); + qemu_fdt_add_subnode(ms->fdt, "/aliases"); + qemu_fdt_setprop_string(ms->fdt, "/aliases", "serial0", nodename); + + g_free(nodename); +} + +static void fdt_add_cpu_nodes(const HexagonVirtMachineState *vms) +{ + MachineState *ms =3D MACHINE(vms); + qemu_fdt_add_subnode(ms->fdt, "/cpus"); + qemu_fdt_setprop_cell(ms->fdt, "/cpus", "#address-cells", 0x1); + qemu_fdt_setprop_cell(ms->fdt, "/cpus", "#size-cells", 0x0); + + /* cpu nodes */ + for (int num =3D ms->smp.cpus - 1; num >=3D 0; num--) { + char *nodename =3D g_strdup_printf("/cpus/cpu@%d", num); + qemu_fdt_add_subnode(ms->fdt, nodename); + qemu_fdt_setprop_string(ms->fdt, nodename, "device_type", "cpu"); + qemu_fdt_setprop_cell(ms->fdt, nodename, "reg", num); + qemu_fdt_setprop_cell(ms->fdt, nodename, "phandle", + qemu_fdt_alloc_phandle(ms->fdt)); + g_free(nodename); + } +} + + + +static void virt_instance_init(Object *obj) +{ + HexagonVirtMachineState *vms =3D HEXAGON_VIRT_MACHINE(obj); + + create_fdt(vms); +} + +void hexagon_load_fdt(const HexagonVirtMachineState *vms) +{ + MachineState *ms =3D MACHINE(vms); + hwaddr fdt_addr =3D base_memmap[VIRT_FDT].base; + uint32_t fdtsize =3D vms->fdt_size; + + g_assert(fdtsize <=3D base_memmap[VIRT_FDT].size); + /* copy in the device tree */ + rom_add_blob_fixed_as("fdt", ms->fdt, fdtsize, fdt_addr, + &address_space_memory); + qemu_register_reset_nosnapshotload( + qemu_fdt_randomize_seeds, + rom_ptr_for_as(&address_space_memory, fdt_addr, fdtsize)); +} + +static uint64_t load_kernel(const HexagonVirtMachineState *vms) +{ + MachineState *ms =3D MACHINE(vms); + uint64_t entry =3D 0; + if (load_elf_ram_sym(ms->kernel_filename, NULL, NULL, NULL, &entry, NU= LL, + NULL, NULL, 0, EM_HEXAGON, 0, 0, &address_space_m= emory, + false, NULL) > 0) { + return entry; + } + error_report("error loading '%s'", ms->kernel_filename); + exit(1); +} + +static uint64_t load_bios(HexagonVirtMachineState *vms) +{ + MachineState *ms =3D MACHINE(vms); + uint64_t bios_addr =3D 0x0; /* Load BIOS at reset vector address 0x0 = */ + int bios_size; + + bios_size =3D load_image_targphys(ms->firmware ?: "", + bios_addr, 64 * 1024, NULL); + if (bios_size < 0) { + error_report("Could not load BIOS '%s'", ms->firmware ?: ""); + exit(1); + } + + return bios_addr; /* Return entry point at address 0x0 */ +} + +static void do_cpu_reset(void *opaque) +{ + HexagonCPU *cpu =3D opaque; + CPUState *cs =3D CPU(cpu); + cpu_reset(cs); +} + +static void virt_init(MachineState *ms) +{ + HexagonVirtMachineState *vms =3D HEXAGON_VIRT_MACHINE(ms); + const struct hexagon_machine_config *m_cfg =3D &v68n_1024; + DeviceState *gsregs_dev; + DeviceState *tlb_dev; + DeviceState *cpu0; + int32_t clk_phandle; + + qemu_fdt_setprop_string(ms->fdt, "/chosen", "bootargs", ms->kernel_cmd= line); + + vms->sys =3D get_system_memory(); + + /* Create APB clock for peripherals */ + vms->apb_clk =3D clock_new(OBJECT(ms), "apb-pclk"); + clock_set_hz(vms->apb_clk, 24000000); + + memory_region_init_ram(&vms->parent_obj.ram, NULL, "ddr.ram", + ms->ram_size, &error_fatal); + memory_region_add_subregion(vms->sys, 0x0, &vms->parent_obj.ram); + + if (m_cfg->l2tcm_size) { + memory_region_init_ram(&vms->tcm, NULL, "tcm.ram", m_cfg->l2tcm_si= ze, + &error_fatal); + memory_region_add_subregion(vms->sys, m_cfg->cfgtable.l2tcm_base <= < 16, + &vms->tcm); + } + + memory_region_init_rom(&vms->parent_obj.cfgtable_rom, NULL, + "config_table.rom", sizeof(m_cfg->cfgtable), + &error_fatal); + memory_region_add_subregion(vms->sys, m_cfg->cfgbase, + &vms->parent_obj.cfgtable_rom); + fdt_add_hvx(vms, m_cfg); + + gsregs_dev =3D qdev_new(TYPE_HEXAGON_GLOBALREG); + object_property_add_child(OBJECT(ms), "global-regs", OBJECT(gsregs_dev= )); + qdev_prop_set_uint64(gsregs_dev, "config-table-addr", m_cfg->cfgbase); + qdev_prop_set_uint32(gsregs_dev, "dsp-rev", v68_rev); + sysbus_realize_and_unref(SYS_BUS_DEVICE(gsregs_dev), &error_fatal); + + tlb_dev =3D qdev_new(TYPE_HEXAGON_TLB); + object_property_add_child(OBJECT(ms), "tlb", OBJECT(tlb_dev)); + qdev_prop_set_uint32(tlb_dev, "num-entries", + m_cfg->cfgtable.jtlb_size_entries); + sysbus_realize_and_unref(SYS_BUS_DEVICE(tlb_dev), &error_fatal); + + cpu0 =3D NULL; + for (int i =3D 0; i < ms->smp.cpus; i++) { + HexagonCPU *cpu =3D HEXAGON_CPU(object_new(ms->cpu_type)); + qemu_register_reset(do_cpu_reset, cpu); + + if (i =3D=3D 0) { + cpu0 =3D DEVICE(cpu); + if (ms->kernel_filename) { + uint64_t entry =3D load_kernel(vms); + qdev_prop_set_uint32(cpu0, "exec-start-addr", entry); + } else if (ms->firmware) { + uint64_t entry =3D load_bios(vms); + qdev_prop_set_uint32(cpu0, "exec-start-addr", entry); + } + } + qdev_prop_set_uint32(DEVICE(cpu), "htid", i); + qdev_prop_set_bit(DEVICE(cpu), "start-powered-off", (i !=3D 0)); + object_property_set_link(OBJECT(cpu), "global-regs", + OBJECT(gsregs_dev), &error_fatal); + object_property_set_link(OBJECT(cpu), "tlb", + OBJECT(tlb_dev), &error_fatal); + + qdev_realize_and_unref(DEVICE(cpu), NULL, &error_fatal); + } + fdt_add_cpu_nodes(vms); + clk_phandle =3D fdt_add_clocks(vms); + fdt_add_uart(vms, VIRT_UART0, clk_phandle); + + rom_add_blob_fixed_as("config_table.rom", &m_cfg->cfgtable, + sizeof(m_cfg->cfgtable), m_cfg->cfgbase, + &address_space_memory); + + hexagon_load_fdt(vms); +} + + +static void virt_class_init(ObjectClass *oc, const void *data) +{ + MachineClass *mc =3D MACHINE_CLASS(oc); + + mc->desc =3D "Hexagon Virtual Machine"; + mc->init =3D virt_init; + mc->default_cpu_type =3D HEXAGON_CPU_TYPE_NAME("v68"); + mc->default_ram_size =3D 4 * GiB; + mc->max_cpus =3D 8; + mc->default_cpus =3D 8; + mc->is_default =3D false; + mc->default_kernel_irqchip_split =3D false; + mc->block_default_type =3D IF_VIRTIO; + mc->default_boot_order =3D NULL; + mc->no_cdrom =3D 1; + mc->numa_mem_supported =3D false; + mc->default_nic =3D "virtio-mmio-bus"; +} + + +static const TypeInfo virt_machine_types[] =3D { { + .name =3D TYPE_HEXAGON_VIRT_MACHINE, + .parent =3D TYPE_HEXAGON_COMMON_MACHINE, + .instance_size =3D sizeof(HexagonVirtMachineState), + .class_init =3D virt_class_init, + .instance_init =3D virt_instance_init, +} }; + +DEFINE_TYPES(virt_machine_types) diff --git a/hw/hexagon/Kconfig b/hw/hexagon/Kconfig index cdf7770a305..52065ab3b22 100644 --- a/hw/hexagon/Kconfig +++ b/hw/hexagon/Kconfig @@ -2,3 +2,13 @@ config HEX_DSP bool default y depends on HEXAGON + +config HEX_VIRT + bool + default y + depends on HEX_DSP && FDT + select DEVICE_TREE + select VIRTIO_MMIO + select PL011 + select VIRTIO_BLK + select VIRTIO_SCSI diff --git a/hw/hexagon/meson.build b/hw/hexagon/meson.build index f528d2bc4ab..bade3a32921 100644 --- a/hw/hexagon/meson.build +++ b/hw/hexagon/meson.build @@ -2,5 +2,6 @@ hexagon_ss =3D ss.source_set() hexagon_ss.add(files('hexagon_tlb.c')) hexagon_ss.add(files('hexagon_globalreg.c')) hexagon_ss.add(when: 'CONFIG_HEX_DSP', if_true: files('hexagon_dsp.c')) +hexagon_ss.add(when: 'CONFIG_HEX_VIRT', if_true: files('virt.c')) =20 hw_arch +=3D {'hexagon': hexagon_ss} diff --git a/tests/qemu-iotests/testenv.py b/tests/qemu-iotests/testenv.py index c357e6ebf50..86bcdf7cfad 100644 --- a/tests/qemu-iotests/testenv.py +++ b/tests/qemu-iotests/testenv.py @@ -259,6 +259,7 @@ def __init__(self, source_dir: str, build_dir: str, ('arm', 'virt'), ('aarch64', 'virt'), ('avr', 'mega2560'), + ('hexagon', 'virt'), ('m68k', 'virt'), ('or1k', 'virt'), ('riscv32', 'virt'), --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781911976; cv=none; d=zohomail.com; s=zohoarc; b=RRy6BLJjRIs3fprtmkqztcPbjsnuOY5cnqrlbvs9F/8qyHLqIiryY/ST8e6Bhn/IoBGrnRfV1iVVijNg0hEYo5DOYvHj1pudOvhRruBkm4iHQnrO04Gxp6s3F9TTZxCjZ5ACNCiyxFoH0/UNcRzV1dlEIzCnop7kaT6rvAoOgUE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781911976; 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=gn83dxXALMHX9hShj5DO/MP/66YGPFEzq+6xQ++j3U4=; b=PSoHSvTTzkv428QmniGpmmLzo33c5C+x1AiGToDi3+2h40TnaQ/almgJ9GpAA5sHvsOe71wj04RSpM/8EE9FSxl1PFlbWimZ9A1Xn6FgP04Hesx93zfnwufw1dUYyEw53SfBkL5aIMcbRNrPn8b4w/ZfV+uGG2bijwaKhsMocJU= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781911976062840.5593476366652; Fri, 19 Jun 2026 16:32:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waig4-0004DY-Sa; Fri, 19 Jun 2026 19:31:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifu-00048G-IL for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:31:06 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waift-0007Ya-69 for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:31:02 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLXsGi1663665 for ; Fri, 19 Jun 2026 23:31:00 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evp6sdbu0-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:31:00 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30c011c7cb9so6336880eec.1 for ; Fri, 19 Jun 2026 16:31:00 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d75csm1212646eec.15.2026.06.19.16.30.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:30:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=gn83dxXALMHX9hShj5DO/MP/66YGPFEzq+6xQ++j3U4=; b=UE BmAv9APv1bw4nwQrAMPA064a67qmqDvDs7c8Q1AcFVW/eT480Cyxg/O9SfzEzyuw 1VbeBOdDO2bV7S3zp3HpI0itLDvx/OkT531FN4pTnosqbscA/dkw0KpJ8hHAo1EH KNiVkU1btd7H0FuawckYt7w+s3R2EGoQNMAMR7A4KB9Pu3bTC866iXUViY6BtOgx OV58SHjPdGyR6hjjR4SfAWKxl9dmuKywKBj0RMhlrlwitsGWU3sYoBnClpzZwES1 VwKOMQx2CBtXCMydsoPGM/LVrrgo2Z/gbdgWgI9Znqh9SUT9JWi7ueZFNI9L2awm SP6ToxjHI1lPbf1QyXiw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781911859; x=1782516659; 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=gn83dxXALMHX9hShj5DO/MP/66YGPFEzq+6xQ++j3U4=; b=JbeOLw2JTNUARHHACXv8svh6WGslIx59WOsjfZcS5m8ACAT8vkYoiIAUyr50xo5zLl r3xWn+SfK3fufZ6KuCR7Jzh2OG+V/+2E0Qd+vYvYQT8T57Z1oJEN9UqBQzDNVR5RUxWK DmqbiTx3Q0OngOOeXSJQkwHCnf2s35rqbYiGg7w0MzHUuUMKDTwip5kmRsy4hvmypppf 0VULLwgHG5Sl5MuMggHZgUnwjyVfPs/oN0oAPlaDxJOef93RJG6uVzc9fCgOgGzauyBG OMiLo8Nm+qsOUp5kEbs5QeHRxUx3TM1ZVl1m3BiNJmg0xw8PNJjnCo/qjw9bGrO9Q1/I twyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781911859; x=1782516659; 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=gn83dxXALMHX9hShj5DO/MP/66YGPFEzq+6xQ++j3U4=; b=UBzu+ae8jSnGaJkhVB3MEV6aLjYTWnhoZKcHcB9Ftg1drWooY5w8+VT9lrmVqn+HgM LcwNI+0ere7kZhX+KpXSr81nlfh8RT/Bm7ZPB3XdqwN/ut7U3D6Qj4igjQcgNEZRuitf aKayc7ld8YGXKzjr4MTS3E8PzTHOEeRBFIIppQFGxYV1UbAxtGJrGKXzT7ZlVzrF6wbw hc7DFxBimHGnlWVc7dVA+nIshwsS5z0fPXTnV6pjFUO22qqXqjolZvxJEJ61WF1M0842 8xVdHcEWVU6fv/z4ZMcAq8w8XliYUJzNArmzKZK3/wh6mktfUfPPY9FJ/0gIjX8cGvHa FqMw== X-Gm-Message-State: AOJu0Yxf/+ce1R2tsyQMpw9+pcuIUtqHhTKUYHZI6zDkrYZXrIX2SLXP APaCWQROGPP0Xzw4jP/NPSwpg97APihPZFar1LS7wjHQtBwzTAThHPWvEL12ppMlqsfhbrDQswc sGw0SS+0FoyYNwkt729Fb1oiwqLDOMeTl4dTT69Gtk6xw/78goLZca29dpHXHRx/PnQ== X-Gm-Gg: AfdE7cktEBy4NmngYz2x42ecgYcu8qHSRlJZFz8Nd7MQBRb1FM9NWF4ImMitBrnybIB ows10MCEuQeB31bBPwhYnNVMdjtRZy60tbAUM4F1VZVsMcnKzKMFLAiVvZ1xpuHUVTMzXtmq4q1 lnKSS8tRcjfIm2dyTSfcjGZXLA9vrzpIVoK8/vkRb89T7+Rrc2DAS5S7+mVQv2A0owPu+rppqmF Nk1GBOlOdUYfrO0MlJrCdFo7WrxJ3U5kMM01mOU6Yell1D51PWTOBivuR9U8nJJnVYJlaehp81C +PVc1KecQqiZC7ffMFkqaXHwhVNDJE+FqhIzDRkePMe/Vj4ZJ5B1P5RgCc4zfj7cXi5RfsXj9fr gR5/BGTM8kljxwtTAxJXtg4TT5xBFo9SqlDqZ4kri8pqG9XR8+AndDA6s78I= X-Received: by 2002:a05:7300:80c4:b0:30b:eca2:be75 with SMTP id 5a478bee46e88-30c06e2b026mr3845092eec.8.1781911859365; Fri, 19 Jun 2026 16:30:59 -0700 (PDT) X-Received: by 2002:a05:7300:80c4:b0:30b:eca2:be75 with SMTP id 5a478bee46e88-30c06e2b026mr3845070eec.8.1781911858872; Fri, 19 Jun 2026 16:30:58 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Fabiano Rosas , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Laurent Vivier , Paolo Bonzini Subject: [PULL 73/74] tests/qtest: Add hexagon boot-serial-test Date: Fri, 19 Jun 2026 15:59:10 -0700 Message-Id: <20260619225911.159473-74-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: 6yd23JYWQ4D3DrleZ1jcmsDL8aIWve4s X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX4JeCrT6pwI+l RPFz4Xw3+TlUnk7kxIOwusecHZST18TYry10WkH5RkCmy7MrfGus3/zJ9nXaf/Ns4vtRhakP59I VPqMxTsWgFEFJJf0T5ugn/lrpVsZg0A3ZFYktpD47LZ7z45AmWifvf0XW6npTV9712+Jrae/RGI D6EwQUTNdnPSjl8JE4A48qAYDO5YW2m//3GC+U2f3x8fJFsup8RMslPub3hPwe0mvuzaCLLcI6o luIomvicHz+EhhnpkaVQq2ecb4gxejmt4EG+nYeyp/SW6iRudCvrVsOQR5EFLFsTJlFzgRItVGu NkH6P8IFss0I1clz0cmjoQOoaC99wtJcSbAKFCNKYehn3bUXe4fFt1DfxAN6TdJFK8KFcvmUYoD JFgK+OnRdVW8LMmkAKB2zl7Rg/pz+dyQudLiCCsiB3mbYbFeBNSR5u8QBIoS60AJ6w0WspHSVcF Z45k1Z7Bl6+1gJZKnWw== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfX+5g2Vb9HAgfD yP3TmhDLh4mPvmxylxk78bJUm4Lw37VGFTJClbSD3ANiNoCNd5XQzCIXFuPKMAOEhd5yN7xOGId maEwDrFidq0YowHMA3HfuLymH3w4KyE= X-Proofpoint-ORIG-GUID: 6yd23JYWQ4D3DrleZ1jcmsDL8aIWve4s X-Authority-Analysis: v=2.4 cv=KbzidwYD c=1 sm=1 tr=0 ts=6a35d134 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=_K2MQWaM9sUw3x3I4k0A:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 priorityscore=1501 lowpriorityscore=0 bulkscore=0 spamscore=0 impostorscore=0 adultscore=0 phishscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190226 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781911977821158500 Content-Type: text/plain; charset="utf-8" Add boot-serial-test support for Hexagon architecture using the virt machine. Reviewed-by: Fabiano Rosas Acked-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- tests/qtest/boot-serial-test.c | 8 ++++++++ tests/qtest/meson.build | 2 ++ 2 files changed, 10 insertions(+) diff --git a/tests/qtest/boot-serial-test.c b/tests/qtest/boot-serial-test.c index bcd0a9c50e7..37fee7a91c4 100644 --- a/tests/qtest/boot-serial-test.c +++ b/tests/qtest/boot-serial-test.c @@ -142,6 +142,13 @@ static const uint8_t kernel_stm32vldiscovery[] =3D { 0x04, 0x38, 0x01, 0x40 /* 0x40013804 =3D USART1 TXD */ }; =20 +static const uint8_t bios_hexagon[] =3D { + 0x00, 0x40, 0x00, 0x01, /* immext(#0x10000000) */ + 0x00, 0xc0, 0x00, 0x78, /* r0 =3D ##0x10000000 */ + 0x54, 0xc0, 0x00, 0x3c, /* memb(r0+#0) =3D #0x54 Write= 'T' */ + 0xf8, 0xff, 0xff, 0x59 /* jump 0x0 ; Loop back to sta= rt */ +}; + typedef struct testdef { const char *arch; /* Target architecture */ const char *machine; /* Name of the machine */ @@ -194,6 +201,7 @@ static const testdef_t tests[] =3D { { "arm", "microbit", "", "T", sizeof(kernel_nrf51), kernel_nrf51 }, { "arm", "stm32vldiscovery", "", "T", sizeof(kernel_stm32vldiscovery), kernel_stm32vldiscovery }, + { "hexagon", "virt", "", "TT", sizeof(bios_hexagon), NULL, bios_hexago= n }, =20 { NULL } }; diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build index 4897325d84a..b2d36499d27 100644 --- a/tests/qtest/meson.build +++ b/tests/qtest/meson.build @@ -295,6 +295,8 @@ qtests_riscv64 =3D ['riscv-csr-test'] + \ ['iommu-riscv-test'] : []) + \ (config_all_devices.has_key('CONFIG_K230') ? ['k230-wdt-test'] : []) =20 +qtests_hexagon =3D ['boot-serial-test'] + qos_test_ss =3D ss.source_set() qos_test_ss.add( 'ac97-test.c', --=20 2.34.1 From nobody Sun Jul 26 12:31:37 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=1781911953; cv=none; d=zohomail.com; s=zohoarc; b=Vx0XrXCQLc93A5XTg/j1zIqBgWUtb3ieB/aqIE9KYHu+cyy/3pVKAf59Ms9H3Fg3HsXBn3+QYfhKy5U83pJUwjpcVUku3Io5TtmyWB6gdNuoDusfSN6Lin6KtcmgVoVmL9lJSYEliK01eMuKCrKKKKsH8SVBHUSgN85a2Ap1Gqg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781911953; 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=2D1KK2ftdD1qqMY51HqNdBRbUzmKNkoIdyCDzlZ8KkY=; b=jykx8WTff2bb9IKJTaSyPIrpwGwre+xdCZKBXcfuDB9AC/3xKIOsS5bmpKAiiiMbga24EqTir2vjPYWYqzJBN2Ywi/xj9mIQIbD58giayvpsAYbejMMSoCPfk8TMqrvJUj0Vmogx6TH/o11hOEzriTj3TEoQx7iCG8XUYIPvDAQ= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781911953531996.2011303065201; Fri, 19 Jun 2026 16:32:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1waig4-0004DZ-Su; Fri, 19 Jun 2026 19:31:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifx-00049M-0e for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:31:06 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1waifv-0007Yk-0N for qemu-devel@nongnu.org; Fri, 19 Jun 2026 19:31:04 -0400 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JLYRUw1628731 for ; Fri, 19 Jun 2026 23:31:02 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4evpyuw1us-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 23:31:02 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c0f4950ceso1010419eec.1 for ; Fri, 19 Jun 2026 16:31:01 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d75csm1212646eec.15.2026.06.19.16.30.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 16:30:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=2D1KK2ftdD1qqMY51HqNdBRbUzmKNkoIdyCDzlZ8KkY=; b=NT xFnjpUrVawOKmlaMHSKFGBROzuyyETPp96uwdj/ZXY/FEMt5JLayQFRWeVkje4LA XsbxgQQBql57fK6QYKLRPgf+C16LjQsnrHfzKInnjMe8cvC8cAQ3tJXIVzHrAzxT ZWtxd0YHFQWys93n6GdK56tBtXrgLAp8DpJA5LTBoxmYObocSqf2RHwnIYzezV6p ecgL4p6R2wgVUr7gVJxAXMev1z8sx9TUUH9GMRe2RRhNUMxFqxdmSVw36rlvbkc0 BkqyHdPdOpraFu728qscY5d3gZ43oKLzi/mjuVei5+Eak859jmmj3OzLx+Z6JgWW LunDFig6UFRA0PEwUMLA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781911861; x=1782516661; 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=2D1KK2ftdD1qqMY51HqNdBRbUzmKNkoIdyCDzlZ8KkY=; b=Gu/KzQZp5dofsSuc1lxq5NdVnQZmaxowSelhm+Boit7curVNnTGVkhRVM22stu93HN +crz8p7YN0VC71+v2QJVoPoqwBIpSp2ts6ytV0+BuzBJnNvC0F9UVB9KL5Qg8r0HqGy7 FTlSWK0MBH+mIyY7VK7ANLhWAYuzHBbKjw/etIjpx6ooglWLKLMcMuq4qGUwDMDy0vju LGGw1HIFi5qsOK4z9tEU5uZVBqPEXcIYvcQf0NkG4uVQa4idRfQpzGetNcpNHTWuA0WJ vlnT+eSM/GHoeOoZFhb4NLmISMvxCOTW5PJVuK9UPnJJWVj6AUgFFOcgR7zb+DX0jIpt G2pw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781911861; x=1782516661; 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=2D1KK2ftdD1qqMY51HqNdBRbUzmKNkoIdyCDzlZ8KkY=; b=Z3wCGRbWRhnNBbi7YE5hR95sHsln5Ldbv5caknUfqPPLWILSuhMckhF8pPzdyiPKOw BLzijvPv3EinFX1vY7amZ+xB0KNTxT/OKSs7w0kWHUzrZMd68MC2g3RKBmMqBcC58IbA RbilcA83Pt2g1tIMH+9o7cj2koKKj+l69trBny4LGxSFwNmkSyq8RUHv7+xN7/AIDSvm 3GmDL78DIOtDa6sQ4CJwcaQjXzO7lWKYz7/3dUBZdr4C/eH0TA2PGElUipJ9PENlVnGK liCMkuRcFCgbF370ubexRN2dFzOE8f7v5pCrsOVAt0vfQTJKOidqghID9gVvHp7bs8sl u/MQ== X-Gm-Message-State: AOJu0YyLJ7RcI6kTTYI8ER0ZbC9ggn83i5O00qE5C7xUugfg0Qj3E69M i4Bbce9a3SN5LGRywmtSYR9MujiQGdQTUCAhMcZ+KVYskKaaskhXW7KAsNPcCph0dkevUzqc1zY +H72miFh7tKeL/991ao4oRFk1Y5PAmdRyEKPRvn1pC/Lyp5D0ZVjLKlUuDpZuDV2skA== X-Gm-Gg: AfdE7clyKOePmeweTbkaJO9asbAd8YGpVgAQ1KLTPGmZb6Z7QxU4BJQzVll4C75BzKm KEQ0csberPDEivGJlddlxF2WuRTmObdL+S3aMHO2VUAry/Cbqn0rIgDFAUT4eHzaQuJySiHCJdX 83lzsDYQ29JiksH/cIM/4ks0cpce9gbLkYnzPqgyljse9Rb7FsN8y+lAJ+Pa8nxkpEDU3+g275h /NX8vQius18uPUyrteZzQwgz1MJSC8JM5qQzkKXcxrImvmOqkuO7Mql8ng/75G+4Ma2Lx5yOyol 6/3JlLkoT4R4JMkNvfgPiG7sEXpBQYmHoOdyHtDjEG7WvAxW1p41R6Iye5T9VQArO84pmBQOFgU DAVMmNqNs5OyQ+uCny+VJcm3rSPk5VbW19cNc5pInLo3oFLZZx9O3oHW6Mn4= X-Received: by 2002:a05:7300:fb91:b0:2d9:f0b3:1d98 with SMTP id 5a478bee46e88-30c06d4b520mr3653058eec.7.1781911860974; Fri, 19 Jun 2026 16:31:00 -0700 (PDT) X-Received: by 2002:a05:7300:fb91:b0:2d9:f0b3:1d98 with SMTP id 5a478bee46e88-30c06d4b520mr3653044eec.7.1781911860388; Fri, 19 Jun 2026 16:31:00 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Pierrick Bouvier , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Alessandro Di Federico , Anton Johansson Subject: [PULL 74/74] target/hexagon/idef-parser: open input file in binary mode Date: Fri, 19 Jun 2026 15:59:11 -0700 Message-Id: <20260619225911.159473-75-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> References: <20260619225911.159473-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfXylisx4KNyQfq NvsPqjgvAHam5yhCgeBIVfG+g5/0ybHi2JJ5SmoZbNP81xjT+P2pXldykH76q5jARF9TyosPy5q FbRRBtPh4RWcHVJgqI5VkJ5wMSIxRXI= X-Proofpoint-GUID: sWeBfO3BTjzmr0ktZlQhpZg576z1SeDP X-Proofpoint-ORIG-GUID: sWeBfO3BTjzmr0ktZlQhpZg576z1SeDP X-Authority-Analysis: v=2.4 cv=cY3iaHDM c=1 sm=1 tr=0 ts=6a35d136 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=XwlTJ2-QRR3pk5tWCfYA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDIyNiBTYWx0ZWRfXx31JG2dIQzoL iIXWKOOUR78vqEIr7ijr6IL3M2+gVdwmh4AEOwqzBYVvSrclKWztTJDN4PmNcF/oPUcVwGIijGi hF3IoeA1ccAGzI8GEwb0fG/Ip9a1H8AT2tfsmVxcrYHztkcr+nsdUr7JEshKrHXP0R4ydY4pg3u jMWuKK32nSZfs8aYmdqJmNoUSPf+rcZUHJIzK3np71aI49xeEO4T1UsR9z04J5Jygy3ozbJUqpJ CgAc7gzSrdoBsajLObUEQhDuRlf84JORGA2loUPDrhadrXA5tNUbYK32IfF3ExeoCsjcrTAr0UO I1LrlPHYW8nEesVG1Hgd2FWaYPzrDhIzQXcpvcjPFsEXUz3mKxEqMfChjDsCl0osxhuWXNl+IBx eZdMKUeReRHhMQgsYshoG6t3hR+CucvdfRl14MLD7u9/GHAMyC8qiVHMKm9dFCi4Cu+1u6cTlNQ 3lKROrSMBWexdINfJPA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_05,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 malwarescore=0 clxscore=1015 suspectscore=0 phishscore=0 impostorscore=0 lowpriorityscore=0 priorityscore=1501 spamscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190226 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1781911953839158500 Content-Type: text/plain; charset="utf-8" On Windows, opening a file in text mode causes fread() to return fewer bytes than ftell() reported, because CRLF sequences are translated to LF on read. This causes idef-parser to report an error and abort. Open the input file in binary mode ("rb") so that ftell() and fread() agree on the file size across all platforms. Reviewed-by: Pierrick Bouvier Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Brian Cain --- target/hexagon/idef-parser/idef-parser.y | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/hexagon/idef-parser/idef-parser.y b/target/hexagon/idef= -parser/idef-parser.y index 22070d8c3fe..3cffafa5b76 100644 --- a/target/hexagon/idef-parser/idef-parser.y +++ b/target/hexagon/idef-parser/idef-parser.y @@ -872,7 +872,7 @@ int main(int argc, char **argv) context.header_str =3D g_string_new(NULL); context.ternary =3D g_array_new(FALSE, TRUE, sizeof(Ternary)); /* Read input file */ - FILE *input_file =3D fopen(argv[ARG_INDEX_IDEFS], "r"); + FILE *input_file =3D fopen(argv[ARG_INDEX_IDEFS], "rb"); fseek(input_file, 0L, SEEK_END); long input_size =3D ftell(input_file); context.input_buffer =3D (char *) calloc(input_size + 1, sizeof(char)); --=20 2.34.1