From nobody Sat May 30 17:44:05 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=1780091823; cv=none; d=zohomail.com; s=zohoarc; b=ik2oEVD1St/dn1WxOT+BYkrtW6SkKxCxloogUmrNUiM1n/pycxC0aBA/Le3rdhYfXYs+HC1VknaP/NTCNxSo1xXKKSGeTw90Qvzz69iLnrU6XgvaM+J+lQi7cSJJA/K/fcjG9n/qCjtc+bkp4dn+a0pMfeheB7UsGPt9uEMwFiE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091823; 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=ehtVCo7WebpXCJZTf4RJg18WgO1v1ZhedeENIC3CWgg=; b=EglVAmXbBrRxT44VREUvWuIA8sQpMA0Nr95NfdBIX0ijGqy2FHYDX/Oe9kec4E5m8Bi1giS6/p5NoexFCj2t6UNBnpvZUzCU5q5JivQKp2kSr3CxKe7hbwv722xKonDp1dWOLl6EVLQfQj6h/f5ZxxtsnMf+EK8dq8o5WDQYg/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 178009182315279.28649938122726; Fri, 29 May 2026 14:57:03 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5BZ-0003EK-Ar; Fri, 29 May 2026 17:56:09 -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 1wT5BX-0003CR-5A for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:07 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5BU-0000KG-NH for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:06 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64TIfXGC119049 for ; Fri, 29 May 2026 21:56:01 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 4efg9vrq7r-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:00 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-304ee7d1368so934876eec.0 for ; Fri, 29 May 2026 14:56: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-304ee0dd8e1sm3026279eec.21.2026.05.29.14.55.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:55: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= ehtVCo7WebpXCJZTf4RJg18WgO1v1ZhedeENIC3CWgg=; b=VK99mWiT5s7ROmST SvFIQZ+vMC3zNlsdwJPOFv97nwf2rclrpLOblez7yrp4Aan3slTZzCenCxVND8WO ErMAGB08wnHYpoQd9lX1pjz0f5QKeOQXwUchG3DYTg7+VBFWA0wG2pccHAYsYZ19 LXRbqKXGM8Hd33si5dg+NXvYDxjN3HnoF3KRHJo01IjcIjF/J8ZhXb4QzAntuaGR SSms68dhx1iWfkb5l6ssrW1cKRtKkvCOyBdiCHk6XrJj0geKryU91YZLTi7Sd7bj d6q/l2F4Js1FoCqds2T3IErRttO4XybYT+j01Dtb/AHlgnDvTssoX43XZGGE64Rp h6kbDQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091760; x=1780696560; 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=ehtVCo7WebpXCJZTf4RJg18WgO1v1ZhedeENIC3CWgg=; b=VbMzpD/1e4ZhjzAay7ZrfuVAXdZ+PzHbytFW1OaTZjnB/hEPJHNotMLlpDIrWHFRCL Hi6Otd0/wRz0kppCCFh6R4BgX7bv3c8giYpF0qXybYAAVbO5ZWfkQpGCGk1TbOOvTUak xO1OOgzzzduPd+dgiQ6loV3e5yohDhivwQzHI9qmE0Ln+3SyIHQ+44Nnd/cPbU7iMpAk PRgz/wtPbhnT6jpSYy547EeCpmRyx3uc9mNmXxnkyPFFAtA1S8hi226onzu5WbzfP3Am xwdV0Ht+addN1PWWDzTihQ5cqFXbnFOZeiMrGInWBjNbWswBU6ImmQKdGpF3H0fT6T/1 ZZVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091760; x=1780696560; 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=ehtVCo7WebpXCJZTf4RJg18WgO1v1ZhedeENIC3CWgg=; b=kApPqHvhNA21OSABX6ei721p1qM7eR0QAJhuBX01kipPkK02f4o+XegZ5bEgraj+WM TUi59/IkJ+xeEsjDHk2fiS9+j2MBLmrJjhQF4doiiTn04TlAwDl3+PO6kR9n90DZid01 24xe41ve3xdcLxL66wYszIOnicg8dBHa4UIh1/zJUqKlxc0ENko03yJ4DhUqHW/GpjHx XeP6rHVKtPvz65eqP1w/l/v7QMh9FCIWNwJrDX9VklKUrJdZqUbPiq6fg0F6Gi7X2zcT 0f9lhVNvwavMptgKxSHakyH9/7lS1KsLy/i1XkfcBySAJPjnhNqvOxpGftnGCB+kMK6f sSUA== X-Gm-Message-State: AOJu0Yz/hcWwBcn8Gynn3Sa5UQZwt5fYahzrUD7Y/210eqdmiaeVMNL6 eSaKABbz3n5+QMCE62lEd2xGhUH/9xxJeL8jXZz3Q0Qpi2dTjjIlieC0DXqMQuu9ZxHGVt6xLjS vBSdKWkqtuNJyBMqGJmyM3gYwwOgl/Rhz/5kJWf4XODnG7HtWNHI4zdZVOIUJZfMiTg== X-Gm-Gg: Acq92OH/zxRZM0rrwBNvc/L16RWziE+h5/bxXVP79K7yjZusyLzG5xT1kC7B8ea4SzR 206fE9usoQ8XwAWT5AQgTyamyyP0JdsYsiwnfXAi/SZnODtMqHPOoSWT0+bItmrURMdteweea3Z ftlnpyJd5sWOvA9psbz343NLdzSFmdY+FFAJHkySx3pDsbcRDNbRc6BrMHX9r+r0kk13VtrKOLs 2uTDShIbWgaXsd7H1hB0M+5IOrTIyyGB+6Oo7zah2D5Q/UmzRp6sVXO8kGtEa1i289QGamWsJ1q Nt6T+/n366x3b4UH6MTTgL/EJQK4O8hlt3zHGw2ds9Fk8G9p3eR9llKcTH9ZwN8KIWfLcZdyl/c 80XRYopxjTpoGNqZj5HCEgy8wC17TRq7BoPQ4/usC5u9dVNKFqy9kvLPz6faPIUhcqLB/lpXpKH nRgNOW X-Received: by 2002:a05:7300:6dab:b0:304:dc05:607e with SMTP id 5a478bee46e88-304fa50141amr1014106eec.14.1780091759327; Fri, 29 May 2026 14:55:59 -0700 (PDT) X-Received: by 2002:a05:7300:6dab:b0:304:dc05:607e with SMTP id 5a478bee46e88-304fa50141amr1014082eec.14.1780091758709; Fri, 29 May 2026 14:55:58 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v7 01/38] docs: Add hexagon sysemu docs Date: Fri, 29 May 2026 14:55:17 -0700 Message-Id: <20260529215554.606133-2-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-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: AW1haW4tMjYwNTI5MDIxOCBTYWx0ZWRfX7T23fAruBS6J 4straBkK5Q6VYK3+AoznCbCl4sBP5FaJ3OYsT+4m+0Taj2UoAeB1H5EvfJ4oXjzFpvIlDNu3KmG y24BkBH65c057u5GPTda3zcao7duKFliK6F5XL0bLwdGgZI4EtI4zTr53DZa8P1B/8yFSxakErB 7QfvUg1GVkSpaEsvmOFsBqXg2BQgqmjnBK4j61T72xXizRh1t1zlG5qhPzIlnDDUsL1kFnT/87U BAB9ecEdpxipQf6itb+vWRNkFHO2SXhg412KckQx2PAT9sJumSXdGIojH0pZj0xCWh9L3yLVXQZ 0Zrl27UGgnrqQnQf44O37RKUpNa5pHaHf/p2M0lSubQ5Z3VD18OcNDbu9AvF5lVxwpROItV8gQA NZ8BHAue1qLY/b7LW4J9MgmY/B0g6oCGNBsKlOnR1tGIHthhSgmqM4/SifewOOicMZyKc3tPA7p dpdkwm7nkM8VEGVSy1w== X-Proofpoint-GUID: tsvf2DQg82Y6hhO6G4mg4xcMlzRHZAFU X-Proofpoint-ORIG-GUID: tsvf2DQg82Y6hhO6G4mg4xcMlzRHZAFU X-Authority-Analysis: v=2.4 cv=MJpQXsZl c=1 sm=1 tr=0 ts=6a1a0b70 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=NEAV23lmAAAA:8 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=fXLLft-zuLPsu7fQao0A: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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 malwarescore=0 adultscore=0 priorityscore=1501 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290218 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: 1780091823554158500 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 cd5c4831e27..e670e22c197 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -259,6 +259,9 @@ F: disas/hexagon.c F: configs/targets/hexagon-linux-user/default.mak F: docker/dockerfiles/debian-hexagon-cross.docker F: gdbstub/gdb-xml/hexagon*.xml +F: docs/system/target-hexagon.rst +F: docs/system/hexagon/ +F: docs/devel/hexagon-sys.rst T: git https://github.com/quic/qemu.git hex-next =20 Hexagon idef-parser diff --git a/docs/devel/hexagon-sys.rst b/docs/devel/hexagon-sys.rst new file mode 100644 index 00000000000..92ebc32dce8 --- /dev/null +++ b/docs/devel/hexagon-sys.rst @@ -0,0 +1,112 @@ +.. SPDX-License-Identifier: GPL-2.0-or-later + +.. _Hexagon-System-arch: + +Hexagon System Architecture +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D + +The hexagon architecture has some unique elements which are described here. + +Interrupts +---------- +When interrupts arrive at a Hexagon DSP core, they are priority-steered to +be handled by an eligible hardware thread with the lowest priority. + +Memory +------ +Each hardware thread has an ``SSR.ASID`` field that contains its Address +Space Identifier. This value is catenated with a 32-bit virtual address - +the MMU can then resolve this extended virtual address to a physical addre= ss. + +TLBs +---- +The format of a TLB entry is shown below. + +.. note:: + The Small Core DSPs have a different TLB format which is not yet + supported. + +.. admonition:: Diagram + + .. code:: text + + 6 5 4 3 + 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |v|g|x|A|A| | | + |a|l|P|1|0| ASID | Virtual Page | + |l|b| | | | | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + 3 2 1 0 + 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | | | | | | | + |x|w|r|u|Cacheab| Physical Page |S| + | | | | | | | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + +* ASID: the address-space identifier +* A1, A0: the behavior of these cache line attributes are not modeled by Q= EMU. +* xP: the extra-physical bit is the most significant physical address bit. +* S: the S bit and the LSBs of the physical page indicate the page size +* val: this is the 'valid' bit, when set it indicates that page matching + should consider this entry. + +.. list-table:: Page sizes + :widths: 25 25 50 + :header-rows: 1 + + * - S-bit + - Phys page LSBs + - Page size + * - 1 + - N/A + - 4kb + * - 0 + - 0b1 + - 16kb + * - 0 + - 0b10 + - 64kb + * - 0 + - 0b100 + - 256kb + * - 0 + - 0b1000 + - 1MB + * - 0 + - 0b10000 + - 4MB + * - 0 + - 0b100000 + - 16MB + +* glb: if the global bit is set, the ASID is not considered when matching + TLBs. +* Cacheab: the cacheability attributes of TLBs are not modeled, these bits + are ignored. +* RWX: read-, write-, execute-, enable bits. Indicates if user programs + are permitted to read/write/execute the given page. +* U: indicates if user programs can access this page. + +Scheduler +--------- +The Hexagon system architecture has a feature to assist the guest OS +task scheduler. The guest OS can enable this feature by setting +``SCHEDCFG.EN``. The ``BESTWAIT`` register is programmed by the guest OS +to indicate the priority of the highest priority task waiting to run on a +hardware thread. The reschedule interrupt is triggered when any hardware +thread's priority in ``STID.PRIO`` is worse than the ``BESTWAIT``. When +it is triggered, the ``BESTWAIT.PRIO`` value is reset to 0x1ff. + +HVX Coprocessor +--------------- +The Supervisor Status Register field ``SSR.XA`` binds a DSP hardware thread +to one of the eight possible HVX contexts. The guest OS is responsible for +managing this resource. + +.. seealso:: + + ``target/hexagon/README`` in the QEMU source tree for more info about = Hexagon. diff --git a/docs/devel/index-internals.rst b/docs/devel/index-internals.rst index 7a0678cbdd3..0471db80645 100644 --- a/docs/devel/index-internals.rst +++ b/docs/devel/index-internals.rst @@ -14,6 +14,7 @@ Details about QEMU's various subsystems including how to = add features to them. block-coroutine-wrapper clocks ebpf_rss + hexagon-sys migration/index multi-process reset diff --git a/docs/system/hexagon/cdsp.rst b/docs/system/hexagon/cdsp.rst new file mode 100644 index 00000000000..237529273cb --- /dev/null +++ b/docs/system/hexagon/cdsp.rst @@ -0,0 +1,12 @@ +.. SPDX-License-Identifier: GPL-2.0-or-later + +Compute DSP +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +A Hexagon CDSP is designed as a computation offload device for an SoC. The +``V66G_1024`` machine contains: + +* L2VIC interrupt controller +* QTimer timer device + +This machine will support any Hexagon CPU, but will default to ``v66``. diff --git a/docs/system/target-hexagon.rst b/docs/system/target-hexagon.rst new file mode 100644 index 00000000000..5f7084a6a08 --- /dev/null +++ b/docs/system/target-hexagon.rst @@ -0,0 +1,102 @@ +.. SPDX-License-Identifier: GPL-2.0-or-later + +.. _Hexagon-System-emulator: + +Hexagon System emulator +----------------------- + +Use the ``qemu-system-hexagon`` executable to simulate a 32-bit Hexagon +machine. + +Hexagon Machines +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +Hexagon DSPs are suited to various functions and generally appear in a +"DSP subsystem" of a larger system-on-chip (SoC). + +Hexagon DSPs are often included in a subsystem that looks like the diagram +below. Instructions are loaded into DDR before the DSP is brought out of +reset and the first instructions are fetched from DDR via the EVB/reset ve= ctor. + +In a real system, a TBU/SMMU would normally arbitrate AXI accesses but +we don't have a need to model that for QEMU. + +Hexagon DSP cores use simultaneous multithreading (SMT) with as many as 8 +hardware threads. + +.. admonition:: Diagram + + .. code:: text + + AHB (local) bus AXI (global) bus + =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=82 + =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=90 =E2=94=82 =E2=94=8C=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=90 = =E2=94=82 + =E2=94=82 L2VIC =E2=94=9C=E2=94=80=E2=94=80=E2=94=A4 =E2=94= =82 =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80=E2=94=BC=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=96=BA = =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=A4 + =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=96=B2=E2= =94=80=E2=94=80=E2=94=80=E2=94=98 =E2=94=82 =E2=94=82 Hexagon DSP = =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=82 =E2=94=82 =E2= =94=82 =E2=94=82 =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=90 + =E2=94=82 =E2=94=82 =E2=94=82 N threads =E2= =94=82 =E2=94=82 =E2=94=82 DDR =E2=94=82 + =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=A4 =E2=94=82 =E2=94= =82 =E2=94=82 =E2=94=82 + =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=B4=E2=94=80=E2= =94=80=E2=94=90 =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=A4 =E2=94=82 + =E2=94=82QTimer =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 = =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=82 + =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 + =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=98 =E2=94=82 =E2=94=82 =E2=94=8C=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=90 = =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=82 =E2=94=8C=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=90=E2= =94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 + =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=90 =E2=94=82 =E2=94=82 =E2=94=82 HVX xM =E2=94=82=E2= =94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 + =E2=94=82QDSP6SS=E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 = =E2=94=82 =E2=94=82 =E2=94=82=E2=94=98 =E2=94=82 =E2=94= =82 =E2=94=82 =E2=94=82 + =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=98 =E2=94=82 =E2=94=82 =E2=94=94=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=98 = =E2=94=82 =E2=94=82 =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=98 + =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=82 + =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=90 =E2=94=82 =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=98 =E2=94=82 + =E2=94=82 CSR =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 + =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=98 =E2=94=82 =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=90 =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=90 + =E2=94=82 =E2=94=82 TCM =E2=94=82 =E2=94=82 VTC= M =E2=94=82 + =E2=94=82 =E2=94=82 =E2=94=82 =E2= =94=82 + =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=98 =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=82 + =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =98 + +Components +---------- +Other than l2vic and HVX, the components below are not implemented in QEMU. + +* L2VIC: the L2 vectored interrupt controller. Supports 1024 input + interrupts, edge- or level-triggered. The core ISA has system registers + ``VID``, ``VID1`` which read through to the L2VIC device. +* QTimer: ARMSSE-based programmable timer device. Its interrupts are + wired to the L2VIC. System registers ``TIMER``, ``UTIMER`` read + through to the QTimer device. +* QDSP6SS: DSP subsystem features, accessible to the entire SoC, including + DSP NMI, watchdog, reset, etc. +* CSR: Configuration/Status Registers. +* TCM: DSP-exclusive tightly-coupled memory. This memory can be used for + DSPs when isolated from DDR and in some bootstrapping modes. +* VTCM: DSP-exclusive vector tightly-coupled memory. This memory is acces= sed + by some HVX instructions. +* HVX: the vector coprocessor supports 64 and 128-byte vector registers. + 64-byte mode is not implemented in QEMU. + + +Bootstrapping +------------- +Hexagon systems do not generally have access to a block device. So, for +QEMU the typical use case involves loading a binary or ELF file into memory +and executing from the indicated start address:: + + $ qemu-system-hexagon -kernel ./prog -append 'arg1 arg2' + +Semihosting +----------- +Hexagon supports a semihosting interface similar to other architectures'. +The ``trap0`` instruction can activate these semihosting calls so that the +guest software can access the host console and filesystem. Semihosting +is not yet implemented in QEMU hexagon. + + +Hexagon Features +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D +.. toctree:: + hexagon/cdsp + diff --git a/docs/system/targets.rst b/docs/system/targets.rst index 5b12858b216..5ebdd0f7fea 100644 --- a/docs/system/targets.rst +++ b/docs/system/targets.rst @@ -30,3 +30,4 @@ Contents: target-sparc64 target-i386 target-xtensa + target-hexagon --=20 2.34.1 From nobody Sat May 30 17:44:05 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=1780091908; cv=none; d=zohomail.com; s=zohoarc; b=Ngj679vHvInc0b8Hz+Z9amcDLYdr4MJcbTZFgFQY/96tLk8i7oH7S/vFimnRM+VQ/brkBCF3c9Glkgb3VExzvZQgAXe5zOaoBfMTzMwAC0hCBlFK6whVEtpy4yOQitscWF2aToGF13ODEzXR6ZbHE7ySCaigFOwsv+Q295fD1xI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091908; 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=RS1VCJ+L8cDkbhSmbv2xxXwgh9RWXcprKxY8+tlcjcW7iz10AryJqb4LwsIyMuG0u8700QqnRTpgYV5AxFgNAyVd1P1ZAc1MzQqwUzrv6EVZv5uh/RDrNVQEcbIsZ3WYUgl3vjGfwP/4UxgTlL0V6PDb0a3xBEKeWslWLOLBKZo= 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 1780091908491342.55047217121887; Fri, 29 May 2026 14:58:28 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5BX-0003Cd-RZ; Fri, 29 May 2026 17:56: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 1wT5BU-0003BQ-W8 for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:05 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5BT-0000KQ-0X for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:04 -0400 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64TI2M002998061 for ; Fri, 29 May 2026 21:56:02 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 4ef4jj4ejg-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:01 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-304ee7d1368so934889eec.0 for ; Fri, 29 May 2026 14:56: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-304ee0dd8e1sm3026279eec.21.2026.05.29.14.55.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:55: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= jvNSC8poP+qwYtz1xZbovXiJMkmoZCU6yMIg796FAUw=; b=J7oScxrMcLuRPM5D 7dUCQ7kq7WDzlcsW5hPN9Hwhwgv0pURLzHwsHaDr7flUVBnj3/kdlwpuYn3WpKVv JKY7tZVSXLQYSrT/7R3B8t/FHW1HuVsr6VLiTbqaiA2ngSy6IqpHXqyyTLdSS9Hb iI5f6WVG+P+QbaQ3yvBdQhLzF0aEe1xkC0hBYNn8vD0VvM3XdfdU889XTh4tLUOM nHneB/dqcbfCn9ueO1KzbEwZ5/c5/yho7Q7fn4msYEAkB16UlvHMGCtuSqUph8p0 TpMq5f/NQwlhQHVvy53ktJji8JLJcr8RUh7Zg6xBD1SdqBhHFO6AqL0I0fqwVsap Kb8V8w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091761; x=1780696561; 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=kM0C5DqOaGOm3RwCWsJ4OyqWTBGWKFJOSz8UxbpMm+9bAE66VjMl+y0k7GdjSWPLm+ Wsi6GTVHz4KnguE0Fp5GkwPxvofFfI0k2GMlB+YCfO6ZEMy5C2d1XqvKFYYkCEeVmhKw pZWwuFr2izUxH9om6mZgIpIzCkHI0G6pejO8wDAVKwtPkWHzeVlOm7bLQh4egOw4jJ4x Hss6RvXzo6M57o3YLw3v5Him71EITorqERi7U0ApzStL51qt6Bg8wUJjVBd57GEX42TT Kh5LYYoSxaSUluAQaGOxbEHI8PszDjkL81ymXbW2YwkwnudsNrBn6hVpxWgp2bAlI732 xnAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091761; x=1780696561; 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=iVXseHwd3HGr0BBOTLuE7yP1WhiRUKwzq5X1s6pBae+jXkg4YGL7a9c+KyRJIi8Di8 DJw1Ts83wpTwrGL9l0dKWUZkmcTwq2rggI0jKwRsHos73v5zd+kyahkzU6qERL3RXPsS vhK06IkLAlKpMMHSRML8cxXnT+qG9YtDmahyePAIlO+K7nbK20uYd4E61xSYP3FbsYAY GRXoKFDFQR61NYs5YeKIi5iJD8075/bjr4e/hFCT8FDSVmF+2lMF68EDFMpEBYTxPkTl qJdUFrVTnzFcLoEZN6zJPnzXMx8LVdP+kP/IyYu9E5PXBdnW8WBjsbBaSqcWVjjSlGxG A8vQ== X-Gm-Message-State: AOJu0Yym0Dsl2o01JhYwfBwFk5U3ki+0AijApQUHY6wUqqxh43PowgOS WnhL1zliF34Xygq3npoEYAJgEWoZIm5PUfDFvVDhdEUJUNa/3z17JwItR3nOT/YrDVHNAJjKbSK 0dr2bg8SeuyKvYa9tJtnzudYPXlQ9xvakarj/fbmneMh5hXgqx1Kad2dc1Ig2ZZbPsg== X-Gm-Gg: Acq92OEh2xApo3WWDsHbViHkA+hoGZUdggZJ2zk6HT1S2QIaSSt2dpmfaizLngojwAV OkEFJjcGNuCq1mGr8ns3PqCiZN9bhAlgz3CW7lz1AVtZ7lhrM9S2GE7vhG0xpp77yJV/+TIAgLR M0Zl46asKzPuJCtrhhj3pSVxa/lg+PgSB5/hgwTmINR/gD+BvgLE+uXnSFEYjBNTk/Gg+UJlMcF q8oQQbTc20KvPdYkfPNpOpJ4Mnk4FxKpbjvioKYpkE9RNaQMT4zKs+Y5kuNrbTN3R8qt6A6lXl+ 45pu2lGINN3jgFjFlU5+7gXpKg9B1/C3M9WIUdrcDTRa7ghwEF4chyF843XMIefBh3JJgwitMmj u19NxsBOJlz2jASyJ362x1IhROpul7rF/wYjpRtsOhSjfBYV8feUVjrAraitX8CCJ/GvFLhPNs3 rd3gqC X-Received: by 2002:a05:693c:3006:b0:304:d388:c33e with SMTP id 5a478bee46e88-304fa4a7fd1mr1174783eec.1.1780091761046; Fri, 29 May 2026 14:56:01 -0700 (PDT) X-Received: by 2002:a05:693c:3006:b0:304:d388:c33e with SMTP id 5a478bee46e88-304fa4a7fd1mr1174768eec.1.1780091760505; Fri, 29 May 2026 14:56:00 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v7 02/38] docs/system: Add hexagon CPU emulation Date: Fri, 29 May 2026 14:55:18 -0700 Message-Id: <20260529215554.606133-3-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-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: AW1haW4tMjYwNTI5MDIxOCBTYWx0ZWRfXylKktDxNdm7Z G9QefiynIAWkuoJZsN7DbiaKD4SGzg5pylL94p6U2FLS/Ym2JNXr/YXY/U09/IMqfHocJXG0Eg9 4XfGa6RRjUo2Jkerzce5vTj+QGAntoMwKCxpMduKBL8sV8qagSZVxmlcTwhZK79LA/S857T2uAm yLVKUEBGskNU1sFUKbCLzqFVltfPHLpHWRm8Sk6UPF6Lk+LZ+1qCfHwH7Wdzt/R56KqKaH7wDRg I0rQvcTuL5lkJJYFm0eEUMKBWP8QxebPouoIhl+LUOTMlZJFRbgcri7LcjXQpn1fPJUSsN9YuSK U9Q1VL9stNJgLfb+L7PjHtMXLwRZ/fpdQ+tb3Ibgyu0RCK0MoJ1FVo1cBEWoyJlORgvYYd0wH02 qgmWV46DWlqBK2eOWPdPmEOPVhhJxR7eQW5KHCooXucrq6xk7anAlweOrXNeZ0ZD5d/Nf9RI0ke xV+Pc/+CcE2dReopmnQ== X-Proofpoint-ORIG-GUID: jCc-oVf4vD8zAwOyOyOWfCI89H1BJZO4 X-Authority-Analysis: v=2.4 cv=Tt7WQjXh c=1 sm=1 tr=0 ts=6a1a0b72 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C: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-GUID: jCc-oVf4vD8zAwOyOyOWfCI89H1BJZO4 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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 lowpriorityscore=0 clxscore=1015 impostorscore=0 bulkscore=0 adultscore=0 malwarescore=0 phishscore=0 spamscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290218 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: 1780091910730154100 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- docs/system/hexagon/emulation.rst | 15 +++++++++++++++ docs/system/target-hexagon.rst | 1 + 2 files changed, 16 insertions(+) create mode 100644 docs/system/hexagon/emulation.rst diff --git a/docs/system/hexagon/emulation.rst b/docs/system/hexagon/emulat= ion.rst new file mode 100644 index 00000000000..36f54f058af --- /dev/null +++ b/docs/system/hexagon/emulation.rst @@ -0,0 +1,15 @@ +.. SPDX-License-Identifier: GPL-2.0-or-later + +.. _Hexagon Emulation: + +Hexagon CPU architecture support +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D + +QEMU's TCG emulation includes support for v65, v66, v67, v68, v69, v71, v7= 3. +It also has support for the following architecture extensions: + +- HVX (Hexagon Vector eXtensions) + +For information on the specifics of the HVX extension, please refer +to the `Qualcomm Hexagon V73 HVX Programmer's Reference Manual +`_. diff --git a/docs/system/target-hexagon.rst b/docs/system/target-hexagon.rst index 5f7084a6a08..416b8f7be76 100644 --- a/docs/system/target-hexagon.rst +++ b/docs/system/target-hexagon.rst @@ -98,5 +98,6 @@ is not yet implemented in QEMU hexagon. Hexagon Features =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D .. toctree:: + hexagon/emulation hexagon/cdsp =20 --=20 2.34.1 From nobody Sat May 30 17:44:05 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=1780091827; cv=none; d=zohomail.com; s=zohoarc; b=NPnl3kjSkFMo0y5CJ8aOlCY+UoZ5BPnJszO1ScN1EYJZiORcUO65ZLbAt7MY9vBFxHFfl2tnPTVP4+l9+rm0+PQMkNxAv5vbpUJ9+HHkc/XdpbfoKQNfuWPgRW6qgAcQ5Wlw/XRxp7nIMbg9u404nvdZyGcUQibJ0e1PGqVOk7o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091827; 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=DQBIVGYghjzyw90bMHrQCq4RL70HUwqTEiVHuIkHj+w=; b=jvOa6vOoh5B0E2ao9lFe3vkEpEggO3/0If2vNUVTu/YkUbvYWRzWBV6fvJ8Zu+Twa+7lk+u0GlqIJ1dNN2WeU3ZsWWenlnTWjqLp6R1Mf6MQVRIGi9/o4pvFA5GBBRiq6uSM1qM9fT7563fQZPwwOSTuNNBRwQS5QNS5nrLVH8s= 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 1780091827380331.2755116951539; Fri, 29 May 2026 14:57:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5Bd-0003GE-7b; Fri, 29 May 2026 17:56: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 1wT5BY-0003Di-Oe for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:08 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5BW-0000Ky-LR for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:08 -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 64TI2HkE198956 for ; Fri, 29 May 2026 21:56:04 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 4efdjnhxm1-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:04 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-304f1820babso1363705eec.1 for ; Fri, 29 May 2026 14:56: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-304ee0dd8e1sm3026279eec.21.2026.05.29.14.56.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:56:00 -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=DQBIVGYghjzyw90bMHrQCq4RL70HUwqTEiVHuIkHj+w=; b=LD Pzg2lIhPvE85IKKQSCt84/hNiRf0ZKWmnd3QE/FQzTgMjRJhCHQ1U0TGaVXOgENI lxbaDDzIT0PFEiB23Eq0SE1oIrYgO0JADrSazH+ImiEAQR2Z+tnWb5u6iw3VRpt1 3qJKFuyb1ZEPm6J36ZrYblm09dDKiDixZfxk0Mppj9i5kf+r+a6Lwn/eVsyYBeNd yDTn6JAgxQlegYVRSu6cGxdrnORNGSad8kVjNQdhSEcRoPhL0j6yiek26vmSEtjb tIuUV0daur6DGGS+zj5tpkA0FSQmBBFrN5QM8TxOPSmd5MhFY6FxQTIl5TYCCla9 FDwLz7/M2gWKJ8IDBZAg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091764; x=1780696564; 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=DQBIVGYghjzyw90bMHrQCq4RL70HUwqTEiVHuIkHj+w=; b=GBJXstuzGF5sLes/ekV99pk8BG2q4AE85peEkSH47tgy19GI2GYNxCbqesZlRuRDHI +xbfWtAyqndLIiiVu0CMoCJS0zVcyFNxRINcNiLZRHXU6M2I4gOiqgpLj+AGOgVMaBfm rRwvzCbecBJWpgCYwCkxWxkVIjIBpTmo7Isx6RjHreTxZm214ZWcQkqy7r/wfw9YAX01 M31/ftciUB5p5vEpkgrltG7Gyg5oAU7AQ+5w9iLjy6Q19HRUlUkPD6biNTXWyNaVyPCN EL5cVi1Po3cYHRRUKNrchi4loLQ2HVOwjvKS6ejB6Oh3FLx2etMNg3mDpI8abrxhhbQN Hm9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091764; x=1780696564; 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=DQBIVGYghjzyw90bMHrQCq4RL70HUwqTEiVHuIkHj+w=; b=RIlPTEU1cJVZw+T4ycRxOEOaj03WM9WeGR6tnUukDQbCjtMqNqJpDO7/mAdfCfpcIL Ev3ypW5K6bS57G82qCHxzCPFG3HQ/AC4kJojgrD99tdI3ok6Wbb0FxsRGXYB3opIWeDk I1+8bxFclhoIaqtB0aWqQW/BjqZu39PHS9C3FRFtWsGYtMs/ie+LI5N0sJ4ATUnPafAj lDyNuHoz7I6bObbpg+qtQHJrxgu6zwgAb88yI2r6ZRLg5x7BsjKI+8q8KAEgcMv+Dv9g S+GzuctzKUq1FsnkTjVsCOC3KrRWXWsdakunm3/11zbi6HQO1NtWes7PSGy9KrKBgt1d Dp5w== X-Gm-Message-State: AOJu0YzEysCZ8x03K6aiQumJyqiW/AWzvs14fiO31iWIKx6SU6ux6Gkd Pjc288h06ZtiaHayHoMcADFR7AavEqi4AlGlLDtEG93dV17ZQhUtxsymlPXM5RvNPuX3dIjJyX4 efHPGzIXEezZrP0OAMQhGL+7yzqbLP/6ET4Xgkc++EhttdWRiX+5/aNOba4sDPJvd0w== X-Gm-Gg: Acq92OGk5yF6pN56Q/NiCbEk9oF1q84kpTU0GSspuKijfxXBycDAi7EskohaNwagzaf mTRWysh+eSQ4lOgU3LKKQAUoXpKtTEwZEo1rHR+2fyvG2x33ck1QNpygVpPWkHP9pE78rjiqxzO 0chdexx+hjOQIHxmdyvsdQxmijyp3B0iNJqJtjgQIokZwHfYaTfAQzERcrGDV5erPWSESkb17OA wHhmPPrqTtOvQfKKuFrQJLQ117wemOJ/gtgAel97hC6DvNSFh9mEEepzTwEaBoLz5iOw1kHQCQi CqVZ2O3HdfsFNIeeg0GitMwYp2siSqnwejS1AAf7Ojfhu1jk9pUoGDpfg8KM0bRRXu8K3NqUwCW EfGzL4wxuC8o1ic1UiQPB/C2GInl9BQ9N5AWnQFseib8rYZQ52zWnInj030BOFtzfYPN8F2v/s7 hTZ95k X-Received: by 2002:a05:7300:3b05:b0:304:df0e:9dba with SMTP id 5a478bee46e88-304fa6a755cmr788626eec.31.1780091763678; Fri, 29 May 2026 14:56:03 -0700 (PDT) X-Received: by 2002:a05:7300:3b05:b0:304:df0e:9dba with SMTP id 5a478bee46e88-304fa6a755cmr788614eec.31.1780091763158; Fri, 29 May 2026 14:56:03 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v7 03/38] target/hexagon: Fix badva reference, delete CAUSE Date: Fri, 29 May 2026 14:55:19 -0700 Message-Id: <20260529215554.606133-4-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI5MDIxOCBTYWx0ZWRfX/z+9Vpe42dqM Ta79lxnsw9EK0cHk07klfNnnZfMk2PGMD7iFq6KscZmKQvuWQ7rGBMOGapom944vdKuHUxcF7xc NS7NeUMvEMG1u4m/KWIhpGG42Fq+6ZJd7nYvLj0lc9oXGlGA7AeCAhB+o3DcsIx7I2r6JYU1Bcw 7VWg1Qj7mAx+bsYTzPOdKee/xjnVPFTF7yhbs2BJzmF9NquTxva8+4mq9Z7b+qtnn9mlYmzRh4/ Vd+PdI4BIJtZxPNcBtxBE9pqjME7qT0hEbHe+Tw1CZYVR+GEunhdTT80Y5vOAU7mevDV2sLM/fp x+BPtXL0fhK+H1xVxawYm7ZZFIyc098pOGDPkihqLt+QtKvAdQ7Bewuies+PHf56b9BCz+/O1VD qUFDJWT1BXQ6dlVvDMuhuYS+8apW+IrQRL76R4tqQAj/T5Qnd97FUfThPwXWKvGRiyCs1gYGYR6 97IbyOlXbkQFExYYd9Q== X-Proofpoint-GUID: AHQgHPrJjgrXBgrkf7yZAqPE-f306SA3 X-Proofpoint-ORIG-GUID: AHQgHPrJjgrXBgrkf7yZAqPE-f306SA3 X-Authority-Analysis: v=2.4 cv=PtKjqQM3 c=1 sm=1 tr=0 ts=6a1a0b74 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=pGLkceISAAAA:8 a=YHbvUooXmMNqKe3LDhEA: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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 phishscore=0 bulkscore=0 suspectscore=0 adultscore=0 impostorscore=0 spamscore=0 clxscore=1015 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290218 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: 1780091829601154100 Content-Type: text/plain; charset="utf-8" From: Brian Cain The BADVA reg is referred to with the wrong identifier. The CAUSE reg field of SSR is not yet modeled, we will dump the SSR in a subsequent commit. Signed-off-by: Brian Cain Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Taylor Simpson --- target/hexagon/cpu.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 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 Sat May 30 17:44:05 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=1780091798; cv=none; d=zohomail.com; s=zohoarc; b=DHPCw4O7ruFWjsdDzZUf6ffcbSz9lOPvbnA/vzHXo/HQD4+YDHMeF2YDcLzHdMuAGwDoFgnZZaxRdthLAu/CQKamFk1SJVenzT59XFQsxb+KZ2sUK50ayTF4d5oA9eZctGisUQ375W4jPE6kPsLcVxcgieAvg35Cyj6gKV0wZIA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091798; 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=HkjutCmYo3i/HXw/eTYFkcdwmqZY6fH2qYi/G3HdrHU=; b=Zvb1hsVTrZRYfJSrqOKqK4mnCIu7z3Ho98B4FMyh3gZ4zM7L3Kh5vGSGjr78jIgGck4RAsOYLOL43N5t3Us3eZbpp1/oX/vmHnuhQlRkW/gAFUOV0oXBMEsP6r2kMXTy4yrqOwEk50OgV5ujhFTfE2YX1uRsFdIHobIUeTlPppg= 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 178009179871333.2610544471695; Fri, 29 May 2026 14:56:38 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5Bd-0003Ga-PY; Fri, 29 May 2026 17:56: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 1wT5BZ-0003EN-VO for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:10 -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 1wT5BX-0000L4-DK for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:09 -0400 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64TI2LvK2998027 for ; Fri, 29 May 2026 21:56:06 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ef4jj4ejp-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:06 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-304ec73b015so965209eec.1 for ; Fri, 29 May 2026 14:56:06 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-304ee0dd8e1sm3026279eec.21.2026.05.29.14.56.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:56: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= HkjutCmYo3i/HXw/eTYFkcdwmqZY6fH2qYi/G3HdrHU=; b=ZwGcpYjblClu3ih8 dXZo851VFUfoa8zneUbbQwTsuKfnYjFP4JH1UnOxxsdnx0VhlZz6HNx/zQUGY7kb Cf2NCJ+F6ae2zZa24Yg6YDenhT7W1J5a8obZoD41y4vC26mEDiC7CzcuOfQkR0q/ LLwra5o11kYM4pqbJAVVTXinIUlTQTGfMfOKH2KEWPIb0mlSyj9WhapiiaGe+dzr G7OFdZ6g/FTQuyUImByHi/EzN606zCGzW9lN99nmgAvUO3rMkPveaPxLm2E4Hvns 3Umun2gnTb4LjIrD83fba4fvMEnqqMwaUh9tjC9ntH2bPdTChOeK2b5LEX9rmCrZ VPwF7Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091765; x=1780696565; 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=HkjutCmYo3i/HXw/eTYFkcdwmqZY6fH2qYi/G3HdrHU=; b=ckBFHZbViKkrwvBCvoEQt0xVQvuYZHV8BQI0Xmk3spnMfkxNMyB49mt2WO7NozOKN8 4PKzMu1JX7agsMBpFeeb0wFDLj5+XSvUa6P2H6LLJDt2ALyA6OTdK7z0ad0vvON8w0oA 9AvQ6Tl/Lg51GTeCJ3YfeeHt/aPWT2juTvDT9MZmYGs0Zew+XO5jVi29DoSEzmrTbuBH blFAXXJ5OxM/lHPsIkCQKAZaT2AKBeKvLjuJEfjTxN78Lvu1dSJrbjQFkQYueeN9zHsq IhtQnZetZYJ0kG6ELaT3sHhDhnfFARpbGBJcyevU9Dq7EeiqZ4rLw8kKCykVuZoHDl1m KTyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091765; x=1780696565; 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=HkjutCmYo3i/HXw/eTYFkcdwmqZY6fH2qYi/G3HdrHU=; b=Ap28rgggH5TguytCzlflyU0WB2nOfek2j2RGzFTgPKGTbVLCCVLQhMJZiOOvS9qhka ME+zB5+ZXaImVADwllHj0UIFhSBSk3oDqUTyZ1puwe9BtVe0hz3TM6dWpy1PF6F1vY61 Gi+xWiM6+6c6r1b5MIZAZWPnhtb/NCKFJ98iGbjswJl6BEx/TpDBqyFaAmDn17QoMaSd lJZlo/bkTPfazoeZovmQDpgph5y6B1O1Vwz8PI7e5Wh4KGb6eel9PIHpN0jUOraVJtz+ DrLXWngomiHiE6hhMqTS2rAfGuNGzZ85CHpTKxwSO7E2A7muFoYGTRmxPPdAOIkdt3Vu wSJg== X-Gm-Message-State: AOJu0YxVdYt34hQ3/oCFytn1jPa6+pfMXfUqPmlYWaterZYB1m1fz3R5 BIO5jmyNS7KpjNvXyVbmTa15CrhYaJhzBvgssoH9oxXJVCyAdNnH5ktur/WBlqGNtzDk/JKKG0Z WoQITnn9bYoz0X1Lto6JA8MOuXHtIItDLeFQbbE8nN1bw/QW6Iv0B+kLA06xtC4Cdgw== X-Gm-Gg: Acq92OEPV7y5H+bIEzbYyiO7m8rSAU6CHAaPjggLHt0zLWwltUna0y0X2txXduflK1n VkOQD2+mIGRA8rfDO6WQplgBJFwEsIWBxt2Nb3F4jIU481+R5qtaDEheEl8EsKm+bti4jb+vu1U tYNKnd2Wq3OPLUIfVkZtD6bZFJ1j3rJo/N6gOkr5L1rKKauxZpDmFvJZmUh9HCK+ZWgqlygKELS IljDqQ5QfTYK6VMYPOI1taDETk69QBu/iZ4FvN+mkjA451DMwkoX6iouiXfGFKyAnusZJ3/hfXD J4W98HMNYQGUK4m99L2uqcLTy/b80h6KHyWzQB+9Y8wSrd1Pg9in9oB0QrLvWBdmaLXiFqzGCyC G8GZUQ1Kl1RYeg/TrreGJRceLdsurdKFqEJtYHJEJF3dHDFhQbVMh8gturwnoCviREyiY8hT8YE 4rmcGW X-Received: by 2002:a05:693c:2c0e:b0:2ea:b7a9:580d with SMTP id 5a478bee46e88-304fa4df21dmr839371eec.9.1780091765310; Fri, 29 May 2026 14:56:05 -0700 (PDT) X-Received: by 2002:a05:693c:2c0e:b0:2ea:b7a9:580d with SMTP id 5a478bee46e88-304fa4df21dmr839358eec.9.1780091764299; Fri, 29 May 2026 14:56:04 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v7 04/38] target/hexagon: Add missing A_CALL attr, hintjumpr to multi_cof Date: Fri, 29 May 2026 14:55:20 -0700 Message-Id: <20260529215554.606133-5-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-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: AW1haW4tMjYwNTI5MDIxOCBTYWx0ZWRfX6/buaXmspYoV baykJb01x/RGLvEecAiC+wwO0TzGscuiuFOca8zNAUGPvcu79K/JbdxBxQJb468Ws7fD1NAZDTt nn45bqJxQGRSGXYgmd4E4nhd9QmfhBRMMx7wSsoynblaxWlRVLranblndxpNNSWg6o2Dhrcd7MB PMIldO5DbR2r3D6Xtm0ol7oXMzExbfXNsXloY5VgpL6drLt/ej9PpSavlkXNKEmFqYr7vNYvaXa D1bkJvlRWFXJKGG38jOsxeZK0IPPgjeCAgf1QoYOO7ZeJBdI+n7oAbPi4UkGgE2ZOOVgysvgPzr uI5XV6QiYe6vFLRWMbBnJuo1AuSO5HIdsrEj2bIdkYFn0ZN6MbBf288elESYIdJlMDMSve+0aIm HXCH+VPkoxF+5YUAXRZR9I0s/tAkz9z+L0c9EetX4ETrigiF+U10+rVviTRXHhGTQTCVLsXCzDb 1o10bVEfWWrQEhN7lmg== X-Proofpoint-ORIG-GUID: WbFYvOM841g0VzY1-HkQEiBVpRTF02oJ X-Authority-Analysis: v=2.4 cv=Tt7WQjXh c=1 sm=1 tr=0 ts=6a1a0b76 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=pGLkceISAAAA:8 a=ZLKCIdW5I75hk_SXmpcA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: WbFYvOM841g0VzY1-HkQEiBVpRTF02oJ 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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 lowpriorityscore=0 clxscore=1015 impostorscore=0 bulkscore=0 adultscore=0 malwarescore=0 phishscore=0 spamscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290218 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: 1780091799371158500 From: Brian Cain Signed-off-by: Brian Cain Reviewed-by: Taylor Simpson --- target/hexagon/hex_common.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py index 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 Sat May 30 17:44:05 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=1780091790; cv=none; d=zohomail.com; s=zohoarc; b=TxTN/NuNHlRjRmuxe/clEj2LV+sNlFsegos4p0cb+FeQ97ecZcE5RNLyjISAW4VYxbqZVhjiCvVGG99F7VDa21Z/pFmiocsjP3At3akwchTFMLHb2Bemysk748UF1nd03in+Ekm1//5qZkqzrrevAyGGEAJk8gsLtdocWr2P+GI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091790; 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=VyqZKitCN7iTYZymRv7GJ4lLaQ1GWBmBBBVc+PIXGtcuOipsPLbMeeigv4TETs/RebMqvR808ZeYxcRkuo4s69SWd63okW1GHZqlrk0UkvaPmCPMGw14egd8otZ0DdbXrCAyj0W1gNUUFnsJaeJp83ERu1xbIeBQKduiFg8i2MM= 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 178009179089085.77717390959037; Fri, 29 May 2026 14:56:30 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5Bb-0003FR-RC; Fri, 29 May 2026 17:56: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 1wT5Ba-0003Eb-VS for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:11 -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 1wT5BY-0000LV-Nh for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:10 -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 64TI2M012998061 for ; Fri, 29 May 2026 21:56:08 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 4ef4jj4ejs-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:07 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-304e7fbfaf5so5105686eec.1 for ; Fri, 29 May 2026 14:56:07 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-304ee0dd8e1sm3026279eec.21.2026.05.29.14.56.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:56: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= 3PJq1TG0I8TU78Tf0jGrc0eZLiVvKT6OxHA758wVFTs=; b=eyPo26V12nIt3tsd RqlkSCuZIwJqUr3HEwhnYfxScQSowxH4iKGNtBGlBhJXXODCCqaYXj0LLM79wLak JmN8cw20j4YtWl1fs4OLxN7HMjR/Y8VPV4jiuyVll7bChqd93Mo+zcLzQPrtLLb/ ReyxtKKh3pxxjZoWSGMkWeUwnSiSREcBxxMKwgyej3Lx+LvEFu38gthiDNq8wNJW LdVjyNicgmE+9UvFLUEbgf9q489JCWdwNvsBoyJl8uFFn/YEb+xH03qJOZIBEd1o +QdNFElb+Qp4BkDXiErx5wx1cXTqKeSgmIRLEENcDsVOLT+7R+56xFr94kJ059Q6 BnP9gw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091767; x=1780696567; 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=BaYUadiUALrjdFL7YAM/R5wxfbD4dAdN196a5IZ8H9TNFpxyat+hTelwILYQkAaT6i LCZLLwJ8AW8ennlNSh3aH8gBb3UhdmvHWhl2BRI2lX18D+JTTmd1PkdEg9Awb7p94idl +uh+knED9mpuxjiC2g6xC2xJNRRBf0EJJ90H//b8zgo7fbLdR7dFGdRwHf6rNNGgFqD8 UMoK3/txSclkdjoLQH/6YE/LRqxdf6RE0O6iykMeBDDyzFwviqTgwFeCQsKLfOWfxy4W F8YW/iqY87GDknjUKU3mSJVMxkP/w0ba01qwocDcozCfpfNvMD+8XcE24puifVfrt4m4 bw8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091767; x=1780696567; 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=skAyl5dWVqGmN+7e861UDDKHCbgA6loZYpCcFEdKHa60E55JAJRcVUh/7p97QpfiWO 4rtR96DMXE1h/JxVv4+maE85wCaxJ7ycAJBk9qNnKyufm7KDcAhv1Sp9eziGeYhqAB0W kgK3KbmtDeCOcnmlRfCQO1L89IDJO8+ugMUBqYD504USWToy62pM34HeTCDo2oh4xuKO /OXY9onZWDAC640dTgb9c5g+ZU31pRsG+OTMdvlDn6iAxBPUUFwQBHop3hp8pvf1hl+6 AFLRtabW1UXNXU6IeGVh9+bsQjzSxdBMXNrj8QzOgQqkZ5//HARq4ALykgBNQBdOr8Wn Sg+Q== X-Gm-Message-State: AOJu0YzRpO7G+XGoH/W1w73gpmoxIUWJQRIjpKh9QomXV+T5iQePZi3C o1s4HNOKtb1VcMqmat4uLj57yoErX+nqInwjFTUODXDKlQ+slBlJv0l6NxQEIXMtNqZ6O7zkec2 o5PhcTesr0nfVcKTpXjW2wnoxXx+6R+mc+3N3JUR/Wh33l/MvlrhQbP0cZ7co4GkMcQ== X-Gm-Gg: Acq92OFxBQe3rc3xELXP0c2H7M65uuGk7/yHsl6iNSrfEkXRR/ww876Dy2vSGzScjxC vhy7h+dqDYR3qalEc3lZIMh8tEuYD8yKUpRv5+8Z6D84c748HOaeyDtxRM9EwiDYM+5Ma53TOo2 4cnKkUNceRXZjmrSPZv4lvX2gXQKMyWyj8SQXXw2XrZlYWgfFU8ClHwYgGEQhDqlQ76N8BHnJdI +ptD2e9+vZN1zGA16znr/J++vxLu816VD9AtEzGq2aDfqkk/EhtZ754l4jd1hcoPDIyD0sD1OBx q4d8rVpDzyPxUdCzXt/8Aan3Eto72dGlF+efJxNavK1PJsQOVu/tpY0MNh8+GHxjOfCQIZ/2rXP wjTL7UUpAzv943IJknzhBEETwx3AWI58b+NrLF0kN/o207cw70LHANChk9SP5VeyOKvCPPsXpVM iZ3i2t X-Received: by 2002:a05:7301:129b:b0:304:e58b:cccb with SMTP id 5a478bee46e88-304fa49e4c9mr850391eec.2.1780091766673; Fri, 29 May 2026 14:56:06 -0700 (PDT) X-Received: by 2002:a05:7301:129b:b0:304:e58b:cccb with SMTP id 5a478bee46e88-304fa49e4c9mr850376eec.2.1780091766101; Fri, 29 May 2026 14:56:06 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v7 05/38] target/hexagon: Handle system/guest registers in gen_analyze_funcs.py and hex_common.py Date: Fri, 29 May 2026 14:55:21 -0700 Message-Id: <20260529215554.606133-6-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-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: AW1haW4tMjYwNTI5MDIxOCBTYWx0ZWRfX6sq/Td3VaIku ntoYF3ShqQe66vx9WgRUpd/oi4Oo9a4GAkJbB1L4ka7V6VYXBKWbCXBdQ+Mvq/dwT6wDG4nX7Sk ZF3mVvdnuqypt25WNC/b0sTEUsczt7FrvIMaEAPLBldSexWB5kx2y0mUE/tWZLC0gxN7a+qem3A coROyey0uCqGiugIhbeGKHNdSr+hznzrMzG/4Y8TK7Ngox70epQieFTyYbneaAuJzqaSmftDnYJ 34mffxQFf8sWyuxBDdArr8I2iKUJbWi6vi/SNNhUObCmnReKBtL5L7Gbias5dbzSEWVWZglyinG Qtjun2YOIZHeZvw1s/xaFCsLkrcfuF2Mk01Fcttkbw0bgwlpOXpsm7ytjuZSM99W1z58rxPVqPE 98jpV3101nUbg4l7KMDZDksQt2OzvGYT1AuEW3JE6p2/BaBDspHQH89j7xzFAx8U5DXu95h/Ii0 oKHyGfk04H4z1S26ogQ== X-Proofpoint-ORIG-GUID: VhkJrdWPvjHRAsTvsHPnpmIiARPIKEyz X-Authority-Analysis: v=2.4 cv=Tt7WQjXh c=1 sm=1 tr=0 ts=6a1a0b77 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA: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=-IRm0M9p1sl727KxlF4A:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: VhkJrdWPvjHRAsTvsHPnpmIiARPIKEyz 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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 lowpriorityscore=0 clxscore=1015 impostorscore=0 bulkscore=0 adultscore=0 malwarescore=0 phishscore=0 spamscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290218 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: 1780091791428158500 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 Sat May 30 17:44:05 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=1780091798; cv=none; d=zohomail.com; s=zohoarc; b=JyLWhmzG+uL47X4l9KMixts8JRD4pJ8xixTQupCI+OZDz3L3jueSXzx/ihZLjcg6Dt50pwTz03HIeShbgGITFnoKaDX0E3YooIpMymLwndkptXbxOnLqYo6V94x5CDuOw3QM9k6kjSFy3sDRXOBgsg8KtODqAn29Af5RtL2RG8k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091798; 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=Ej4x3OhireHBRabC1Z/HhipRkxU3rRxTBqAGpT3EBVWSEemmGxtClvrqbxV5VMW9ofYcL+KIE3VIQ9ENUL0mHBGtyoNmenQcMbw0XXqjHwd0fGz9Tdi09GZTNwKP3vWZ4706eeE/FG77z0WIG98If+mHenOPPZFess4pR9iphW4= 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 1780091798254421.01091891094563; Fri, 29 May 2026 14:56:38 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5Bf-0003L3-9J; Fri, 29 May 2026 17:56: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 1wT5Bc-0003Ff-HF for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:12 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5Ba-0000Lk-N2 for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:12 -0400 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64TIdvMR203437 for ; Fri, 29 May 2026 21:56: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 4efg9c8qx9-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:08 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-304df51ff3eso2144345eec.0 for ; Fri, 29 May 2026 14:56: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-304ee0dd8e1sm3026279eec.21.2026.05.29.14.56.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:56:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= lcxOkFKNgQXZO0voxWGA9hyffwnAo/o2WwcbX7ewzeA=; b=ahUf9Umn3SrruK1n SKRtUrE0HTVUuisGcvorC7t6kfVge1HexauuTnKa3piR9UGfGujIEHGjZB6mMqew wjIDJ/MWqjiLh1vp4v+M66UQxmsuO5Aq9/8bJ5yYN5guea4uJJ2LQR1hgzdPNbca CwGczr5Eml8Ywp1kVX8JpMXv9fyaoN3P0bpudXxxr4k4jd1sbv50wszaOpBKZxPA 80jcqCUrs++X5vg67V9AwvmLro8WmglX+SM1L93NrgJ0JzF8880BgMiisrXnZTMU rvHheOgYGeWCalv0+ZUqKFJ52EwPo6Q17ihs1KLT0m2DVqwA3bsqBJAH20HRTRBn j12OjQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091768; x=1780696568; 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=KLgkTey6AUUi6I+pJhUgpOWrbPF3K2IOTF+JyMB99PAoSuIbHjmwyoDGRk/DoXxd+H K0IwoKJSg2i9KxtAYCxMO33pcI4ajEzFMgQu1vT4DVaEb1tXtNS2by1/fjuEO/Lgjd11 dWooAHo5sJIQIjoWspcZzTUHrkxktMwPbyUG7emh/IPNKrkECuGnOhrgCBjN822SZbRR lFgF73l64sGktY4ws/mb86/8la/pmQMknxuTXF5AjourY7ogQ17AE9xwSB7s0AaHqTHo BQFZab+/vOHCJDCQHnPo+/w9uM8rB30Za6a/rFSgnfkv+/dOoSoHh0SY/iWAXtJzI8sp B4NA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091768; x=1780696568; 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=M5F6VWnYXqMlUZGRP2o8dlCIdYOHhSuOkDrykka9DtmXROwVKrKiY/MpdXf+LJfYeV tbL8ga9yQbD7fqoH5vHMX5ee0ZcaWzCLf9dD4NbPBQ3yODeeSdW0Cy1oAxpYsnWuw/DZ +mwqVgGiBsHdEriM/pqFGTzZidisS3C47na5mjMjsSPaSQw/v2pV7v89RjzXCpGqj0NX PL2mw4XWEn3uJnB3vue1jHjsD3xgt1yFK18NzO8VUeN7ILEozDi7JH/q2PKO3k75tUmz oHW1VuQ2dXYkpATrDWJYrHtGFsHgPIH/aSscyp3MgQCXUDWzpC7AtEr8OcMOgr8RS2rq 2hzA== X-Gm-Message-State: AOJu0YxiBOWTyFZ4z/L/UzStTwipVZLcASus7dFikBzf2lCPRrIW2GWk R6WqSCwggfDe7armkuhanEtWSnLAZeKS20du75VLIrpKP3O6/fo50aJPk+E3ZLVUWxbnq6U2rYx bLWgs8EEOkVCV5IpexPIdrGxbnuJrjRTcuz0JfHk6GheK/yukJD/l5bLYITmoQ3SXqA== X-Gm-Gg: Acq92OGv/qpkqbcD8p5DoCR9IrgyHwbTLMzGhcI/o4zhJSVHnNX9/XXYgamzm4TFxbm Gvwqg+QTU+Ex+ot+U4RAadV+pPp0zTSrd3JUdaA2sIruiwgiOgqZbg1wG1j17thjDIUL9/pXM/i sH9QaOujbz0eOrEVVsaJLwspJ2F1q8u884/0Qg/Mos+3TzGeyzYLL9WkH0cY0OPx25nhGetBJVS eBQgfatQAez46ilMlbeEJK5rpoerAPY8piwZRiX3dDPIxiAgnNWGbs6AiFkTZC47urxwZJ39Q9a nzjsUUtpkedu6N8B42DMbeicTXKxQooAC4VKxQ1fp6PCNpImMmb7cHi4cOLskgBSS0QqQw9Nxh4 64hTZ5Y9eYHsjbggnI//npnH2yvrBFwdrdaKWWjSey73zBsqFiUPqsizfES9VPCiUucJuMS02Fm cGFyBy X-Received: by 2002:a05:693c:2c86:b0:304:2eb0:2726 with SMTP id 5a478bee46e88-304fa658e52mr778934eec.25.1780091768009; Fri, 29 May 2026 14:56:08 -0700 (PDT) X-Received: by 2002:a05:693c:2c86:b0:304:2eb0:2726 with SMTP id 5a478bee46e88-304fa658e52mr778921eec.25.1780091767515; Fri, 29 May 2026 14:56:07 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org Subject: [PATCH v7 06/38] target/hexagon: Suppress unused-variable warnings for sysemu source regs Date: Fri, 29 May 2026 14:55:22 -0700 Message-Id: <20260529215554.606133-7-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-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: AW1haW4tMjYwNTI5MDIxOCBTYWx0ZWRfX6+v5A1mv5j1V ySCks64x2VMxQerCUpb4jqRwe0VBsOec4EAFOyxEKbP1qi+LtiMmDBdnA4rW9opkXUTUrbUjAzl QrSXVWjgByfASpLRwfe3UXqamoYdljHY+6Rfb+5TI9BzDfV3vUH3/IK7vFNd3Zos0alGyA8OFom XQl5dmqQB0NaYgtK7ewCmkZoVnsqRyagkIDEDRvyGyqo4/9d3J/zpENg8Bt1i8IpLfcmlKdrez/ NvQ71vy1M0Vn4n2QbF0nyS4/94E2ak2vTj9Z6JSQ3lTWSRWKVzKf0gBY7BO8S81GdRBZIdxjz4x A7s9rNoBoyIOlpFo6g0cpeQcdw2VuSksL7xFwvhu526SOxu8vC7oWOdfx5esPlWFOR4DPhBr6JD FwbNE6uDgs8LKM9WJ2Y65O4qjYQz3ZdEBn1g6DAZvnBSe2bJR/tC+WmXd7DZpriS09qAkWVTinb dsVdmE2IaTGPxo8g7zw== X-Proofpoint-ORIG-GUID: jk2akHQL-3qcsQJcNitALvSeGzyy6g0f X-Proofpoint-GUID: jk2akHQL-3qcsQJcNitALvSeGzyy6g0f X-Authority-Analysis: v=2.4 cv=SKxykuvH c=1 sm=1 tr=0 ts=6a1a0b78 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=dvhcR3axvtdXbCCTPW8A:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S: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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 bulkscore=0 spamscore=0 adultscore=0 suspectscore=0 phishscore=0 malwarescore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290218 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: 1780091801225154100 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 Sat May 30 17:44:05 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=1780091788; cv=none; d=zohomail.com; s=zohoarc; b=VOGm8oCR+qUOS7wIJk5N1nWv7SLYc3s+fbv2AEeXLh//9nrVuVYGNEWBKwACJG20FhCuDZi282R0xY9aXvgIiHrUX36+td0hzf1MWe+YpWCD1FfwrcTUK20rMm/QrvJZUOlDuThhsyUxo+dGjSEdgEtrFpkwmodk2IbpWeg5A6U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091788; 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=aZbuEtnVCjIpsy/5KpvYanmAQki3lti3DT9FIRiZ2S8=; b=iw3muH3WofJvbtZYFn0/ZpuqKafE6nJx8osZZicYHtLGZ+VBJFY/2BFNUBxmWPRsax9BYcBAoQLAr+Nc3uyd1AbOBsW4IwvBn70tzNgxz77IMkHMWGOMXxWsQVmBmTZTTo/O14WnpARlddP9cEj7y9NaF3pJKBV0g8pK4qxeUAo= 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 178009178837164.2622088330246; Fri, 29 May 2026 14:56:28 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5Bf-0003Mj-U9; Fri, 29 May 2026 17:56: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 1wT5Bd-0003Gm-S7 for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:13 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5Bb-0000M7-JV for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:13 -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 64TI2Pw5518563 for ; Fri, 29 May 2026 21:56: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 4efechhkqe-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:10 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-304ed777a96so465658eec.1 for ; Fri, 29 May 2026 14:56: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-304ee0dd8e1sm3026279eec.21.2026.05.29.14.56.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:56: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= aZbuEtnVCjIpsy/5KpvYanmAQki3lti3DT9FIRiZ2S8=; b=IJYI4xZf+grnHYsX 7a4zjDoXI3IJAFyCKVfdTZiB6zs/+rRXEqTyfFxjHEisCsqxrvfMmliAFPIkD0Kp TKl2jUU2MpnKEzfT7yvqWJZFLhp25oUNH13NdaYioIQkFmf+s+uAEqQgqb/8Fi8C xGowoQRqZ7336+711lr0RHVpAGA/tv6mQ6nfAYjJLMxTp+pQlNejnxAAiaYXoo4i GPH6zZo9qUPfOxpkrdgy/rzxT8RuPZK8F2TH6K05XXxIah1NbFGyPp350G0h1Cbz +dTeSrcQcvWfhPJc7wFRrnn0AOaPtQX0DHrXEHK4bsNipAmAMcXhxM1cSOoLpVv5 Sal8fA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091770; x=1780696570; 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=aZbuEtnVCjIpsy/5KpvYanmAQki3lti3DT9FIRiZ2S8=; b=Gq4udfxsZ6hfK64YCNMxw5W+Wtm30qu+Rx/B28ETkq4PFmGCtj7a9L+WtwiHpmzoyA WP/B27IOZ6lHhk4ljg3EUQyTp3+XV+kKFdy8mX3B/WTCEo/fFPmC4O6e1lqrdGcWQrCo RGXmv8EV/Av7MZ8DsTq222gSuoWHxSWyKpPQcsovUZ8tizc8XVhHVxgbLPyHiZikDWOh i7QbbeGhACNzyHkrMPX/K/p47+drZnhgD5lIGku1KtyrH2JLmJeiN4hoD3AjwfQ/+7Xu 3asnIq0Q4SQiT7TS2C+SUMwzSAlRJKUmxEC/wHsprBXpaLVAV7pYkgwDK5Ud4+sp3woK P6NQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091770; x=1780696570; 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=aZbuEtnVCjIpsy/5KpvYanmAQki3lti3DT9FIRiZ2S8=; b=JL/Q+aLnyHQ2w04AMWvrOI/9pd2ISd6PSRxvrtEdGmyNejIfsZD0LKiI07PAtoqMo0 Ux9eU735j9XSCzdwhMMETN59FJAWefQM7B4ibrHpaBFM0Fxk76teJ5WGQZkWT/RVqixh hvNH8Aj4DE5dHYmj4FK4eOB39PKtuwVCwSXD03FmZ1SXChWnBuAWyA5/Xa/Tv2OfzjBR ogheOFWxOjpC1MO/pqewPpC4Xh0HFqgVP25UuHyFXo/M7E+wS92zV+4psehC8jo4/Dun xoAzh4ymFZut3nyYX0aMa/jP06i/3e2we7pBcB8o/nmTgymD9bFozsAVYn2xzueLKxvp wsOA== X-Gm-Message-State: AOJu0Yzs5KD07/R9ZVxr845YP87ar6KhcAds0yY/9GFhVen9FFIDEyrA D0X0Ww87B4cl7fVASQlLXvEjluhngYTzH6J7Hh6o2O6mKgycy6UZa+aDDExziHnS519gYie0LE5 E5G/UahMQI9pGiO6Re11fE7cHyDrqSyuJIP585SPC14Is/Lwo2PSFIQqs/Bw9CQ8Qcw== X-Gm-Gg: Acq92OFlBhMWLMB7fq0fc60iMXz8430kFS97leaAaMKn1UjnHGwA38jlGbZ/+vOiumt 0t1rHXT6DBWZJB1w8gxCp9wHDgmMpE81xvPNqjnJzU8IfK07W5VXsWS5kWMs4v8F98sOVP0NIfW cZFj/LrguCc+xfd80URClN0cqMPAcNgnW7CKVkQGQKe4TsPyPJUy0No15FFGzL2ugeD7mt26pDu r21XnRMWrWSOEIklHRUAqwUts/stVxviAp0twF3ANu2Q1BjK3ThoED85Xs7yS4THzMcjxffNBBx qApLnLQYiiLlL7v6TOH46XzhufAqHZ7+lKT8NZuJb2VolKxrLUpq6Tt9fFNQwI0j75tSpCofyJC XU37FbGX6oduZ/IkjF1Q+L7Lb3+K8bzrFmpO+XMysRoNmFDrU9gZJs2ppWgBtj6nhTVibKLgAok 4MpFQg X-Received: by 2002:a05:7301:9f11:b0:2ed:e16:6b39 with SMTP id 5a478bee46e88-304fb2f6092mr479754eec.17.1780091769638; Fri, 29 May 2026 14:56:09 -0700 (PDT) X-Received: by 2002:a05:7301:9f11:b0:2ed:e16:6b39 with SMTP id 5a478bee46e88-304fb2f6092mr479742eec.17.1780091769036; Fri, 29 May 2026 14:56:09 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v7 07/38] target/hexagon: Make gen_exception_end_tb non-static Date: Fri, 29 May 2026 14:55:23 -0700 Message-Id: <20260529215554.606133-8-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-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: 0fVbIBTJg0fsBjGpMHnV6ensmq-ND6iR X-Proofpoint-GUID: 0fVbIBTJg0fsBjGpMHnV6ensmq-ND6iR X-Authority-Analysis: v=2.4 cv=U6Siy+ru c=1 sm=1 tr=0 ts=6a1a0b7a cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=t4cj51CzC67JwBy76UgA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI5MDIxOCBTYWx0ZWRfX9JeaObd0EmxV yg4PiBT623pF6lrnrJnHFESfXx/gTOGBFhXfcw9vwUwyuQhQS6RXe90LO5IVzLlYM2X6m77eJqQ dMnTt/ow4ZuoIn9IRQh2h9j/FrZ5/YKFSUYdT1kfMYAm4wwpDdhOvI+gDEO5KHqwrN5OEA1J5d0 HGOX0DZQrY7Q7JR+Hv4AhFCckPiq7sFDy9CGtqcDtJDwA0mqUem0uj5XglTD5fS30CyyHI7gejb o/N1c1qHUGr0Ly0O41wxz2lI5aIJ584IWm05RZDOeJzLZJqi4hJ00t8+O6RxhC23AKAuVnTWRqw n5Ha/uvsUJMMEn4U6LRL3Eu9nWkLKusGmt1yPmUAtKOkjoirHMjX/Koj4bp+tt0XMO2nZzM4Rx5 QDoHouiyTaEbYW5154foPn7aMSMlcRsfHL6AlnHeiIuD3Q7yMyryP6G+wtGgZvjoaQkcdlFKQV6 d+vogqVb1zuao7NFXeg== 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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 priorityscore=1501 lowpriorityscore=0 bulkscore=0 spamscore=0 clxscore=1015 phishscore=0 impostorscore=0 adultscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290218 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: 1780091791047154100 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/translate.h | 2 ++ target/hexagon/translate.c | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index 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/target/hexagon/translate.c b/target/hexagon/translate.c index 0b9337d9120..bba1a73f4f4 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -187,7 +187,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 +580,7 @@ static void gen_insn(DisasContext *ctx) ctx->insn->generate(ctx); mark_store_width(ctx); } else { - gen_exception_end_tb(ctx, HEX_CAUSE_INVALID_OPCODE); + hex_gen_exception_end_tb(ctx, HEX_CAUSE_INVALID_OPCODE); } } =20 --=20 2.34.1 From nobody Sat May 30 17:44:05 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=1780091814; cv=none; d=zohomail.com; s=zohoarc; b=fSMbQPvaPZnnbY+64OhH9jn46JvVJtkccSVTEpWdhgCpsEpTXN1UHIT+5Fybxt/z9+tfPbN3zZZkLR+qq1+Kum5+rlNDBacxGzOBTM2L/d0CoWGlslUFQiZhdqKrk7iv7fwsieiGIeePzcN6ac5KU5Dlcjhpg3f9knhZnEY8Jjs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091814; 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=Vlir/6vqBIUO8uRyapnMf2nll1h+kwf9+Jznjd5z+lICDgFLkpZnmCZm6X4YYzuhpJXp7yrj71rzV+HIMg2ZLmBf42D2dl6UOCCDWo7ZjLwmaAjsmEs1r4mOT4qpENhwU1Dr0tR+IyxsX037kowQsBFhhhMlcsUhlbYkFtyfFeM= 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 1780091814003653.3712102751541; Fri, 29 May 2026 14:56:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5Bh-0003Oj-3I; Fri, 29 May 2026 17:56:17 -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 1wT5Bf-0003Lz-CE for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:15 -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 1wT5Bd-0000Mv-6o for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:14 -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 64TI2I0x199031 for ; Fri, 29 May 2026 21:56:12 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4efdjnhxmn-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:12 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-304ea1eea05so3312515eec.0 for ; Fri, 29 May 2026 14:56:12 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-304ee0dd8e1sm3026279eec.21.2026.05.29.14.56.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:56: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= +b8voobbRHB+fEzV3OFcGYw0x0PvxvjT9mR8Wf/yF+Q=; b=eJNaK5lqGCEnsT2U h6NFpglijSo7YAd7ccHJWpUYlbyqMC1rBtIMwhJmqnEc3LL6Au5SoSun7fIH+a0Y w7LH4nx0qGyhIM5LgVA8LJieRS+UuIw2rOaMPtzNiUs8XkFgWHsbyewvxKRqAgbr b0xaWdPWPMJcOxjvIk8vmuyytdTuXY/5NfpVH+QZlsarnW+3M7+nZ1UNZnpGEpal oT469lXytDLws+cgczEh0SvfRK3M8oGdsNKblbVJvnFTZ5cf+2R1TE7Db5nOzw2s YxJZHNMMwRIwNOcNdgocDtGPCw6lG7xHqmt2gN5lbBp5GieWjycl/k937llNJsRK 6XMXYw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091771; x=1780696571; 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=E40E7QzOVbsydXM2vCYZrurOWM22EHiR58WMQig3qlPWgLJwhiocL2eU+6aZMw0czk YSiuCExZX9QYNpe0ZhTcLM2zsGxD5yp/HRB8TGYqtJAgHxb8CscI02vC4jT1zgwAiyAk tT0M0axZpmvfzR5fHqxHi/x/psEwJyuXC8vFIpR6iPOKtSHmJi7m+cvN3CUYm0DPCeme VjWH/LhcgJow91wWJKJgbNf57oRpWw8j/Pq8qylKT0sWab+0KebgKhEGJroI8xlMh0sf N6Jj8rNFcf9bjuvKzw4gU/sCuCT/Ugx5bHhmJxRTiqgretia51BgT2tZNidz+ESfUs5f wwQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091771; x=1780696571; 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=d6YbEoE42c3XdPeAxmd8hXd+bQSsphidNKHG8JkKpDAgZSFApe1f6b+oIlpGHbfdHX 0JPUUuFZuwQWS9dODGeuywRq3RKBor4RC+U9O+zV8vYvaJ+7Fw61Vdx1R+L5LbUCr9Bu bqmCyRzvATiEkQjmfhlzWan/DUI20Z/mzFNewKnS6n4gfIAUphE5oBGy8rivJMX2/RQu oZk2eVuo7I6njIUpAfTgWyFdUd5nXWyP03rb06y8FaOV8jNlRFm7d9sxU0YrRJlz8ieC M0QG8mS7ZNFS+qiWHR2IUHwGD4sI11qVDo8VQelKX3h+iA7Gvzr3r0LlXFYkAh/smRtd s5Bw== X-Gm-Message-State: AOJu0YzLx/K0/zBZLyQdbC0P8qwi1rxvLmIvSuVOxBNPyB1c2Oe4lS3C uT07pHCGLcAr0JGmwZyWxOmeviZCMeh4ck+uYObn+qWAGhjzOCjO/1S00X37ZjYUeeLBzIYXNwx bXp27BpMIMO8/kHVSIDVzi6ZgIg7YDJJUEzxq1tZVzx5kcpDbz01/9ZkGx8ssA9Puzg== X-Gm-Gg: Acq92OEfzLg7MRa9OYnuh6dJbNSCHiKwsmWgXai5XCrOnqVT+YHMKytx/woFq+PcCyn gpbUelCdhJmFzUU+fG8Em4QJZKlA4dlyNjhMyEoht3xabuopWnOS30qzu3OYkwBGOTAoeVmquH6 +CYF3F7Abq/D3l2pETXDYHqu10vP/WodELulUfhSLbwBTSmGufMPubZR4yzhfk1+2N9wsZ1T8zD n16GmOpR1gsTKDbF2Kd3jXLsRzUshH9zjKpHJ/ZIbd35qaLEmKzQV9SC2nRrzP2IYY0OICNU+kI rQwaBofAsvPq61gHx5ff8FoQk8KZ9UmVwj+ee9E5FmLvX1YA6QTWpQh/s3MqAwMfRD4KEk2hraK doXdy0oAc/sP56LQdwr3A6upkWt7RyBr36q3eaoG94dBmyYMC70t/A/5PpMULR4iQfh6W000l2e fQIpvL X-Received: by 2002:a05:7300:5712:b0:304:bc25:3d19 with SMTP id 5a478bee46e88-304fa774f33mr850371eec.32.1780091770908; Fri, 29 May 2026 14:56:10 -0700 (PDT) X-Received: by 2002:a05:7300:5712:b0:304:bc25:3d19 with SMTP id 5a478bee46e88-304fa774f33mr850357eec.32.1780091770393; Fri, 29 May 2026 14:56:10 -0700 (PDT) To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain , Alessandro Di Federico , Anton Johansson Subject: [PATCH v7 08/38] target/hexagon: Switch to tag_ignore(), generate via get_{user, sys}_tags() Date: Fri, 29 May 2026 14:55:24 -0700 Message-Id: <20260529215554.606133-9-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-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: AW1haW4tMjYwNTI5MDIxOCBTYWx0ZWRfX47UaPiWbeuBQ NkD15Z41AoImqmrtCs+jdBm6mGtJdbtpC4IvNMpWh0STb7YBB48Q0jPTL0DoHfh3S+Ocy9pNW8U ogezp4k/ZeDzm3Q1DPCw2G5sIcUWTT/N3h0jV/UCuUsCL2iPQl2lNtGbDIyhWJEFMVHG551dxDa RkYQhX+iyQ5o6/gNSvRBY269rUDqOAXt7a+IP3XWKtY1sQ+RvBc0pecU2DXzHIAaO2PwJHRXj2V CGzMUkQjrcLHh0bws3ktX0bwIDGsTe3tX4WoRwyKPIIwgjmUw024eNL3cFSkt90ItjwnITX5rvr 1aH2OjPWC13AS5Ye18hMZ9feUzVtJcqrCm1hZn1+eVZY2a56ihc8MuhuoABO4V8ujv7Znnh5mzZ BOvejfq1wmjT/bwCKFdbUAR8yjBb1K6pRIcTkBBj0+8889K89gjxliFbi6hlY10uACSqe3u7vN+ 39ztSeJQqldeXQ301LQ== X-Proofpoint-GUID: ejTQbifjJGQdzbuMVfo2isWN8R4tbpK5 X-Proofpoint-ORIG-GUID: ejTQbifjJGQdzbuMVfo2isWN8R4tbpK5 X-Authority-Analysis: v=2.4 cv=PtKjqQM3 c=1 sm=1 tr=0 ts=6a1a0b7c cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA: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=orAq0Iv1PZLbcfkgE-4A:9 a=QEXdDO2ut3YA:10 a=O8hF6Hzn-FEA: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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 phishscore=0 bulkscore=0 suspectscore=0 adultscore=0 impostorscore=0 spamscore=0 clxscore=1015 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290218 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: , 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: 1780091815401154100 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/gen_helper_funcs.py | 26 ++++++++++--------------- target/hexagon/gen_helper_protos.py | 23 +++++++++++----------- target/hexagon/gen_idef_parser_funcs.py | 2 ++ target/hexagon/gen_op_attribs.py | 2 +- target/hexagon/gen_opcodes_def.py | 5 ++++- 5 files changed, 29 insertions(+), 29 deletions(-) diff --git a/target/hexagon/gen_helper_funcs.py b/target/hexagon/gen_helper= _funcs.py index 6206104424c..1629ebc0e1a 100755 --- a/target/hexagon/gen_helper_funcs.py +++ b/target/hexagon/gen_helper_funcs.py @@ -104,29 +104,23 @@ def main(): tagimms =3D hex_common.get_tagimms() =20 with open(args.out, "w") as f: - for tag in hex_common.tags: - ## Skip the priv instructions - if "A_PRIV" in hex_common.attribdict[tag]: - continue - ## Skip the guest instructions - if "A_GUEST" in hex_common.attribdict[tag]: - continue - ## Skip the floating point instructions - if "A_FPOP" in hex_common.attribdict[tag]: - continue - ## Skip the diag instructions - if tag =3D=3D "Y6_diag": - continue - if tag =3D=3D "Y6_diag0": - continue - if tag =3D=3D "Y6_diag1": + for tag in hex_common.get_user_tags(): + if hex_common.tag_ignore(tag): continue if hex_common.skip_qemu_helper(tag): continue if hex_common.is_idef_parser_enabled(tag): continue + gen_helper_function(f, tag, tagregs, tagimms) =20 + f.write("#if !defined(CONFIG_USER_ONLY)\n") + for tag in hex_common.get_sys_tags(): + if hex_common.skip_qemu_helper(tag): + continue + if hex_common.is_idef_parser_enabled(tag): + continue gen_helper_function(f, tag, tagregs, tagimms) + f.write("#endif\n") =20 =20 if __name__ =3D=3D "__main__": diff --git a/target/hexagon/gen_helper_protos.py b/target/hexagon/gen_helpe= r_protos.py index 77f8e0a6a32..59c8bdd05c0 100755 --- a/target/hexagon/gen_helper_protos.py +++ b/target/hexagon/gen_helper_protos.py @@ -59,27 +59,28 @@ def main(): tagimms =3D hex_common.get_tagimms() =20 with open(args.out, "w") as f: - for tag in hex_common.tags: - ## Skip the priv instructions - if "A_PRIV" in hex_common.attribdict[tag]: + for tag in hex_common.get_user_tags(): + if hex_common.tag_ignore(tag): continue - ## Skip the guest instructions - if "A_GUEST" in hex_common.attribdict[tag]: - continue - ## Skip the diag instructions - if tag =3D=3D "Y6_diag": - continue - if tag =3D=3D "Y6_diag0": + + if hex_common.skip_qemu_helper(tag): continue - if tag =3D=3D "Y6_diag1": + if hex_common.is_idef_parser_enabled(tag): continue =20 + gen_helper_prototype(f, tag, tagregs, tagimms) + + f.write("#if !defined(CONFIG_USER_ONLY)\n") + for tag in hex_common.get_sys_tags(): + if hex_common.tag_ignore(tag): + continue if hex_common.skip_qemu_helper(tag): continue if hex_common.is_idef_parser_enabled(tag): continue =20 gen_helper_prototype(f, tag, tagregs, tagimms) + f.write("#endif\n") =20 =20 if __name__ =3D=3D "__main__": diff --git a/target/hexagon/gen_idef_parser_funcs.py b/target/hexagon/gen_i= def_parser_funcs.py index 2f6e826f76d..32bce9b0028 100644 --- a/target/hexagon/gen_idef_parser_funcs.py +++ b/target/hexagon/gen_idef_parser_funcs.py @@ -60,6 +60,8 @@ def main(): f.write('#include "macros.h.inc"\n\n') =20 for tag in hex_common.tags: + if hex_common.tag_ignore(tag): + continue ## Skip the priv instructions if "A_PRIV" in hex_common.attribdict[tag]: continue diff --git a/target/hexagon/gen_op_attribs.py b/target/hexagon/gen_op_attri= bs.py index bbbb02df3a2..94dd1f876b2 100755 --- a/target/hexagon/gen_op_attribs.py +++ b/target/hexagon/gen_op_attribs.py @@ -38,7 +38,7 @@ def main(): ## Generate all the attributes associated with each instruction ## with open(args.out, "w") as f: - for tag in hex_common.tags: + for tag in hex_common.get_all_tags(): f.write( f"OP_ATTRIB({tag},ATTRIBS(" f'{",".join(sorted(hex_common.attribdict[tag]))}))\n' diff --git a/target/hexagon/gen_opcodes_def.py b/target/hexagon/gen_opcodes= _def.py index 94a19ff412e..17ba3f9db95 100755 --- a/target/hexagon/gen_opcodes_def.py +++ b/target/hexagon/gen_opcodes_def.py @@ -37,7 +37,10 @@ def main(): ## Generate a list of all the opcodes ## with open(args.out, "w") as f: - for tag in hex_common.tags: + for tag in hex_common.get_user_tags(): + f.write(f"OPCODE({tag}),\n") + + for tag in hex_common.get_sys_tags(): f.write(f"OPCODE({tag}),\n") =20 =20 --=20 2.34.1 From nobody Sat May 30 17:44:05 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=1780091902; cv=none; d=zohomail.com; s=zohoarc; b=mCd76S6QMsF1/YdlBQDYEc6P2wwmT/27Iy3SdITCybQfYVwXzdBCSEKVaHwEDCLoVywdRiasHaD158aMLT29EsLkhFRBGy+2+R0ZTZuvCzJyKfrgqGIgWIcbEQtaQGey5obwyWAtdxRa3ivGTUBX8sNueMWfEXNbr9tTawp5rIo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091902; 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=MieSaNdXGaswaNA3YJtqhtim9mN870OwQf2nWogBmpI=; b=B0VhWrU+6GUDtQYpvI6qu6OXUvuF/HeOBPr3rOBInxaQY4N9WcGFbOZbMv9D3kHQpY5mJxhER0hxTUtn4/EWhd0k00ifcgLZC9tg+OZ0O53iwPzG64BWa/pZsdSCPwXPEU1aY4cPpEbQHWgEVRrsPoz4WeIOtVHQODOjmRIgMZE= 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 1780091902010814.2300163292153; Fri, 29 May 2026 14:58:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5Bj-0003Rk-DP; Fri, 29 May 2026 17:56:19 -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 1wT5Bh-0003PR-D0 for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:17 -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 1wT5Bf-0000NZ-5W for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:17 -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 64TI2IkB518390 for ; Fri, 29 May 2026 21:56:14 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 4efechhkqq-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:13 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-304ee7d1368so934998eec.0 for ; Fri, 29 May 2026 14:56: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-304ee0dd8e1sm3026279eec.21.2026.05.29.14.56.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:56:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= MieSaNdXGaswaNA3YJtqhtim9mN870OwQf2nWogBmpI=; b=lsIxAr3CbXd0VSmo Kdo5XavCp2RqsxAa02GLCUSWE3loAfAWvVkweO4iI9t38EFukwRZvZ9m7u6AyxLZ SsN/3abuG0T0sk1BBgsrbaKTDzngj+TjxW+u/MskbDLW8AH04S4xgHnY78mCu5/f zt1NET194SHJoDOjymGTqkMRamBFVUOnQv5jlEn//sftSnF/sXN8Inpan8qhDXG7 VMd/WoLy/UHDyO6k3Xrs/1XRtArCHiWNaSIN3XkRz3elFWVfXnSBm3Jn5CaK8ace 83xVXq53UJ1H31FvAWiflJg4Rh7o9CK8Elg3NFHjBi3Z+NBMOlb7Xt7bbTR8WZaQ K39bHQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091773; x=1780696573; 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=MieSaNdXGaswaNA3YJtqhtim9mN870OwQf2nWogBmpI=; b=jhMXX/ZMeGD+FjN8JaJ5wL+zJW36ySf1SOVtB4GYc5lPZ27aFTVYNANMlnmPMs9wQ9 +/EbNroqHsmUP20K4afxfb7GTF6KlFPsuBtFscUakOmFAenNQDt8Lh1M++4wQ7TZGixv +K3i+G61epTxj2/Le0VTGk+o8oa6Chc0tE1yjEwKyJEYiY2uXNWE89NW7vtKdGXuB+Yo 2HYISUKSm8rT+piUpFDY/cS6P/HzPPt7cC96SA1dk+8sxP1LfIpyRlg54t/11TQmLOKk bMx08Rj5kdozRfM68pEVbOckCBTNAPpuztJfuoqiptmLE8iW6FPxuGJ+ykYWYVInSHT3 Wl6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091773; x=1780696573; 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=MieSaNdXGaswaNA3YJtqhtim9mN870OwQf2nWogBmpI=; b=s+LaEcL8J/WvYknIHgwmSppvFnS8sDLPGsQv9qCwtNZ+CJzCu1JI90FMtceOENP6UA k9pPoOmVObq7XUQCSmclBNC81ZE4dgvNrCc5QKwjVml++5pnWVKQh+8QOEPJslmvjL1x 5U4dIzLhUDGkgwm88bC9zPDzPwYI2GzcAAiONPMnJ5+B3zL4qnvU5mCA9rQgC88PHdad bXv9UfrjXMxl3y03oaK+6HhNACUy1YbIYJd1HD/yy20hxJQ0nJzOPMSU9EvicEjAcCpF ZpQ4UxLz0hjmdNMTAbXm5nvhl+PBqM0T6z3UKjLGrhCWnFHscbUEgQ5YKxsu3Sqt9w+0 sTYw== X-Gm-Message-State: AOJu0YxRkD1cS+Hmfaym8sfsl1nQc/xIZUZ4T0FFB5QMZ9U0PioQnlZs kg6leDAqKrT4JpYjF2DAFZmL0gEl8BITenyleX3I7YDTazmSvp6zmbisjnmxLRhPNODiyjPMk5r Jb8HnQ1tPnCrIEmnW5pfM0bXRSciSlKSUVQRVqw2wUPaYdC85krR1os5OHmQGpDGRwg== X-Gm-Gg: Acq92OGxSyzZEDQ9CLeGqowyln4vs+dTegsCM6TyumHLLJlPKVMbOdJD+6qjC8m8NpE ylptTzMpU9g6PRpOq0j/CX1nILOkDeJwTEkdhA0OEchuizzWu/LV5YbqHyJZ0ll7fTnbmmQvzxB jzfHhKctXV7K74shJzzJXZgpNPb/E8BMKy9l11dJX3zVBfxHr8YqUj4brbBhPdgKE36kSEkYAKw ZAoTSU7IQrB14FpxGiaZjIaOpP1i/qCZP0BtN4Io1NU7Kmq5/q8jwe3BzzPY8W25PU7JF3+VEOX 9AX1KwheA+GlRDWQkZUjAhRYFE62csgBMc5VsGrEhCZRhHWXV+FL+EgO2Ns7TJ75zT4U3oaGCCu qg7AW2julJrz2b4k2ICKCDEyMsBStDdGsNzR9AQDhPgEpgRN+G8IT3DYBf3dt9276v8z2LGDiy+ /dc3Yj X-Received: by 2002:a05:7300:ef83:b0:304:9b48:53da with SMTP id 5a478bee46e88-304fa6438afmr784913eec.26.1780091772870; Fri, 29 May 2026 14:56:12 -0700 (PDT) X-Received: by 2002:a05:7300:ef83:b0:304:9b48:53da with SMTP id 5a478bee46e88-304fa6438afmr784880eec.26.1780091771893; Fri, 29 May 2026 14:56:11 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Laurent Vivier , Helge Deller Subject: [PATCH v7 09/38] target/hexagon: Add privilege check, use tag_ignore() Date: Fri, 29 May 2026 14:55:25 -0700 Message-Id: <20260529215554.606133-10-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-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: m3KI4McnoPFh67b84rR1AXU0PWy__FoD X-Proofpoint-GUID: m3KI4McnoPFh67b84rR1AXU0PWy__FoD X-Authority-Analysis: v=2.4 cv=U6Siy+ru c=1 sm=1 tr=0 ts=6a1a0b7d cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=pksD3ONYjMjZD1LmeuAA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX64baAoA/C6eH VQJQZtFos6HgQ59BOSFihBlSGCYLS0PCbaTR3xLdB1XLNE5niAvcagrw3vRgTY6q0eydXsdbinU oWtwqJMOHbdI+IlXYa/aliORS0BHOTdR3DrKgeys9LEJH6QSG4Sk4uc0JNhSwC7YRzxiVWs3OA2 YnrwBAMgZK6XTgRbeESX76PRLmWQqL9LmbYAIHeGxNmqJ7kyLOQJmcO8a6SOjt4jpMTu0hqzPe7 UZbUTADV0PkNHZFlJdWATcC/76cRPZkygEjrCXub25JfQDxUGhU8Pq5WMa9fQJAin0isINcKsE7 yL1KoeKeWKddL3JIHlcuqnkG6qfuyFsYTGm313WWWUf4JqAMx+OjEXhEz3lzMcPm/Zb2MJ0sOcm EzctWBKzvm0ngMYVmi1LD+iNW57jBUrimPx6f5Jk+pz224zFBx5YKu8QmpKaS+6h7Cp5qvzNUpv dWck8Z8fxFFiVTSuBAw== 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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 priorityscore=1501 lowpriorityscore=0 bulkscore=0 spamscore=0 clxscore=1015 phishscore=0 impostorscore=0 adultscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 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: 1780091903929158500 Add system event and cause code definitions needed for exception handling in sysemu mode. Add privilege checks that raise exceptions for guest/supervisor-only instructions executed without appropriate privilege. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 10 +++++ target/hexagon/cpu_bits.h | 75 +++++++++++++++++++++++++++++---- linux-user/hexagon/cpu_loop.c | 16 +++++++ target/hexagon/cpu.c | 1 + target/hexagon/translate.c | 8 ++++ target/hexagon/gen_tcg_funcs.py | 35 +++++++++------ 6 files changed, 123 insertions(+), 22 deletions(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 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/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 bba1a73f4f4..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" }; @@ -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 Sat May 30 17:44:05 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=1780091799; cv=none; d=zohomail.com; s=zohoarc; b=i+qPrWGwAtSF8VYzWATEnBoIjSIrKlGPNB1Exfk/AlZpfKT7GiOEfvOHs/SLNXlIs7sPls1YGYzhbmowi3xNCxWBLvSU3b4+BikN1kta5JJiRhtefaEqGS+oD/YWhDWvz4D8lfGiPlIp4wB3RDBs81fb9lrruqH/9A1MDJGqqUI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091799; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=EH4slYrH2tAurnh1B6qm7AwzqOtD9xGDq2yM4ABUAzo=; b=L9Kno8UPQg5B6/WD9SOUrenMw+Hyj4gfjUHa9uy2L2BxePF9eFk4ecaJy2FirUK+GWBg547CI54+xoUzlgVw05WRto6h/3umyFH0TI8/KBp9t3e8kr2W9TLbUJirOHdCNx+Tw+xgKYKs7lAMpgRJVQrdTVWGohtCVCaRVWCTdOg= 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 1780091799013971.01147816201; Fri, 29 May 2026 14:56:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5Bl-0003T7-UV; Fri, 29 May 2026 17:56:21 -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 1wT5Bk-0003Ru-7G for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:20 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5Bi-0000PJ-MU for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:19 -0400 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64TIdxUb203453 for ; Fri, 29 May 2026 21:56:18 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 4efg9c8qxu-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:17 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-304d8e9563eso956320eec.0 for ; Fri, 29 May 2026 14:56: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-304ee0dd8e1sm3026279eec.21.2026.05.29.14.56.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:56: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= EH4slYrH2tAurnh1B6qm7AwzqOtD9xGDq2yM4ABUAzo=; b=eL0MwuejfRTiDK27 tNPTpY/Cu6p+fQXtrVt3zeq9STTP7RhWzTqtDAZ69XqLKjV6ipFzyZNYF2n2LWBK GJpvgpKpxjdei3u81W9atJBpbW7aJzkQ5pVPKHtZ7Gr0SRKluDMHff5RqC1FAKQG 1PoL9Qql73/IifX99Fgo/+tvzsWfQauFL0MqZTCHQIgEWKdCJGGsCh2TVECHAv+6 WtyI3MZZKgR19EGtWbQ7HTdCfZMzQhonNbhY8MZ9Lfq+PENn7GMkN+gqD3YZZq50 TJt4rUEZeFFjhPAUmMUAgLGFeU/yPAphiyB3UvVmNlHN0QVOx4lm9axaqIuLfAmD NWXAwQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091777; x=1780696577; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=EH4slYrH2tAurnh1B6qm7AwzqOtD9xGDq2yM4ABUAzo=; b=GRsQBAf4iM9iNhsiOA7IpY3n0hUrLw67IS580hsmyWb/mHZBS0coOOKBzPNUhL1RLe ngVfGvVgCRAVESHFYb5QecR6XNxUiJT7C7K/8ePY+6CC7TNnsaaJG4zS8feU15tvrqr7 mvTUBzvkYO2oC1VH4/jXf3YTo3iB12y6sSaK8BqKwhIRwP4DajBchdmp/KZVVooqfWp+ phR33dIgq2x65zikF2MBV+QZkJHHRTWwKJpXKnyBdxDhimugzXrWP651ysObm4yCtHZA 2NAUD2+updQAWpRaMfzUToFD0Z89hP9Ni2k98dLrkECwVkD8c8cXRxEia67bRYTx5mc2 /GLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091777; x=1780696577; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=EH4slYrH2tAurnh1B6qm7AwzqOtD9xGDq2yM4ABUAzo=; b=D+Ti8R9JGMF/pN0AvB/wk892523bSsE1dqA6Iunc6pXb0z+SMztUsmANTyXVs+KxLe mqX8bQyMjwfrOZg5LGT65WFjqt7ELVtv3J4sXfgHrrUe9z67vnFODuLybFVTvuHrP4LT 8hG3fgbsbcELP3yB9WJUCKXD/RrNsBjaZJNuYcqZuMXrvTrvFOrDT/DPsmc5X7xSXs5W xvS3pd3IPehw5NxHH9actyHJu4ffmKGuOODStfDMd9IOikkivGOlbJRVfjkk4Y4DyBnP dBrFBndsaUwBe9Ro0UzukYgm1XzNLvJtZPnOfXeu3VRpJB9YAKSQ0FbUnZMHM3wIKGVG 7wjQ== X-Gm-Message-State: AOJu0YwOY+MpdjPVPxXM0IRDgGe8T3v8yZ7zlFqy/YvV1r8fjuR69P5C FzqdXyOkjAByAcYBoXcRdRY+/yADMpFCF4FVS22/bbmdR6PUdIZLh8k1ZyR/RryQAD3L4O+22En sA23qctCW9z0bi+Sssir/Nx9cFh4GNVEarFdEGBM7KTN/mQsH3dndL/TSmksrwe8f7g== X-Gm-Gg: Acq92OE2Pq/NsRh+BQLwKUjbBxznKvygNjH58cneJWByk/5iAvEDmyVoEYcMM82y8Gg Oxyikn9VCepNoJPg6gu3MezlXSFAglETUt4gCYnW/FzUBA2ri7YiFg90P/wqQfCgI3IuwN03Cbh 7q4VPlViLmP7NezayZOTUEjMEbx4VC3500tTuGMHmo6ruOxYR5IPSQRob/JEX2Ry2urmzvRYdF3 aaBDr1GGx0/JGm3vKMJ8SMUqDLE1/8HkfWs/maO3cbLhdQLXLqN6OziOfJ8SLvuUaNOYIaTNIFJ 45llBXiMHClDvS1Y4bFnCEQ+bVXxPWEGI5bNke30R+RVTad3ZUgpRR0XHLeSK7PUc0EXzyFoYg9 kDL7dQyUfr7VSeqt8K7hnO5+r7D6QxbbkEe7aIZiuHpDP48myPqLmNrn8EmcIzQq9myAeUjobdU G2Jdol X-Received: by 2002:a05:693c:300c:b0:2ca:8099:ffc0 with SMTP id 5a478bee46e88-304fa4a90c6mr878054eec.7.1780091776803; Fri, 29 May 2026 14:56:16 -0700 (PDT) X-Received: by 2002:a05:693c:300c:b0:2ca:8099:ffc0 with SMTP id 5a478bee46e88-304fa4a90c6mr878038eec.7.1780091776267; Fri, 29 May 2026 14:56:16 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v7 10/38] target/hexagon: Add a placeholder fp exception Date: Fri, 29 May 2026 14:55:26 -0700 Message-Id: <20260529215554.606133-11-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-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: AW1haW4tMjYwNTI5MDIxOCBTYWx0ZWRfX3XQpqaETTRav phIJvRUjrG7Xi/5roQWdoRHX19krWi5YnYD0E+03oVT94o4bZN56o/DuazGVA6KAPdDQU8w88iK u36aNLjzU1+TBcUUWzxx03pBL/FXsA+gixHN9aJHMv0n/EP3dSbN0JVfujD8U0iJTITK5mB6DvK NyWwfrP3e7E30bVm0GucEzKh1S2LBM7Y4Q969WhKzsC2UoltnTMtx2kg386cyBPV9gI2l4UPcpV 414PJWoYG0Zszk//FA2Q6+QhDBxB23iQjqF1SS//2E39PNzCc4wpyWWNZ4n2wwBKDo9IZxjFfHW e3b2fWJJjIs11pnEDsvCswH8JH1cbjYWKFsu47/PXJmHazyJQBjteovKVJw5jrwsBFG1Kq5gqLf O8/qFj93iPC5geHJmavpzOceANk/YRyjKEIHqoPcpXDnEKXsytjA2atTveyqM2XICjKmx/ChSww 5cO5tmus3/x6TfKLr9A== X-Proofpoint-ORIG-GUID: 8ev82sczxEVKYwvku5sp4SHjP92IBPPC X-Proofpoint-GUID: 8ev82sczxEVKYwvku5sp4SHjP92IBPPC X-Authority-Analysis: v=2.4 cv=SKxykuvH c=1 sm=1 tr=0 ts=6a1a0b81 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=R5LHHePp8dzqxDYlWrYA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 bulkscore=0 spamscore=0 adultscore=0 suspectscore=0 phishscore=0 malwarescore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290218 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: 1780091801216154100 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/arch.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/target/hexagon/arch.c b/target/hexagon/arch.c index e17e714a6ac..0a400bf7a77 100644 --- a/target/hexagon/arch.c +++ b/target/hexagon/arch.c @@ -208,6 +208,11 @@ void arch_fpop_start(CPUHexagonState *env) * model it in qemu user mode. */ #define RAISE_FP_EXCEPTION do {} while (0) +#else + /* + * To be implemented. + */ +#define RAISE_FP_EXCEPTION do { g_assert_not_reached(); } while (0) #endif =20 #define SOFTFLOAT_TEST_FLAG(FLAG, MYF, MYE) \ --=20 2.34.1 From nobody Sat May 30 17:44:05 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=1780091870; cv=none; d=zohomail.com; s=zohoarc; b=fv1VjTcryirhqH9o5GPBGQRynG+JgtxqmOWuCk+kj/CoNISbxvTtSePkY6rwX2koJHlhfZDoRQZiC+nJXmYX76KZc7C4/aHFL2FHsrd8DyGgrIlK5xL/R9e4g3kWAF5zavMmEBkwlhYz6K5BPHqYwE4UoYDVE7LpQmd6WIPMzbs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091870; 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=rv213hShBFG7pzB8K8avEUxDRUaR+YO/+vurJzYVszc=; b=Lj3WRz5dDkT+K5W14JTKVvzbGXCWo7ujoopUjKLvygeyRVYT3O4ojtwJMZmG5Zi6ZpBEROg86Fq2RmQEbPbYKXfrbiANVT2j9Ro5L6SIUjI81sgtRv1u0q3dyqrO4beCAYY6FUs9nNJ0XXFD6o/qo9ldwT4kj6CjSyuDdOYr/70= 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 1780091870587699.187389447196; Fri, 29 May 2026 14:57:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5Bm-0003Uh-Gr; Fri, 29 May 2026 17:56:22 -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 1wT5Bl-0003T6-R8 for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:21 -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 1wT5Bk-0000Ps-4p for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:21 -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 64TI2HLc198947 for ; Fri, 29 May 2026 21:56: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 4efdjnhxn4-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:19 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-304ed777a96so465711eec.1 for ; Fri, 29 May 2026 14:56:19 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-304ee0dd8e1sm3026279eec.21.2026.05.29.14.56.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:56: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= rv213hShBFG7pzB8K8avEUxDRUaR+YO/+vurJzYVszc=; b=UdS6nrWTR85i1H7R 5zp+TlmEemr7AIluhiNpPT9rEfVdhDDkx3yOaVtKY34UUMmcZZ6vWpQl8cRX4Qc8 mc/WgfzprHMn9oLQR6q2+jnAChV3MSAGRN21aEry/rwSrpd1lquTZo7lY3iOo7C1 2mJQHADNzLVERwIpl7YET+VxFWhG6DjZNvyljNrdpe9pqz0SjkP9FUEHLAKgnXAI ynwvQ1VoWBrs8lqQ9U0fZEuuirySmmMGpCHF7ueV0MoKi/K+deL92GV++UGMiZL3 ZShN2US1z9u8a2gUwwBq2upMFoBeR5rXjmIExayyYCL6SpDUAJibbL9LpCxEtn1e 51AhkA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091778; x=1780696578; 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=rv213hShBFG7pzB8K8avEUxDRUaR+YO/+vurJzYVszc=; b=CDMASmRnqACoUP7BXCiu0gvDd19XHczxtdVGfJ7OyAWwtL0jeRMYlDAnjItG9B89bb HnORQX+fhzL3kbwpDUkz0P1aONKWCq1kHtLKBd2xqJaSybFg3N5oLFwc3MtAqfyv5iqm tCqFjBNWgsdrryl43UY132FuguvsvKyIoLw7/bqx+Da9cZDTdtwRz/BwKU4u7l/HIGbR kH9v9Ohqlu1Q0QHdy4+JkEkh097TbNy4o1lpwYS/aH9wcVTUPtakLTNHFd0HGOYDe+J6 wWIr3tkML87Va+1j6Ddn1Mn0cUtwZ/zTD54pY/1KavnBkzNrnWi4Zx1t7QQENoN+9iE/ SKmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091778; x=1780696578; 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=rv213hShBFG7pzB8K8avEUxDRUaR+YO/+vurJzYVszc=; b=sovQmBqVTTURlBOEvEMo2NtLnErcCjc2KTNziilSUg0tG+6yXJUcRrq7by52UQEcrq 4DedW2c5WH+YLyQplbue4Wx9tlh6yJgQBWq+7MCqSG+7MTntlmcWwX6zLrfNFXnoujFp kL2C+GIKfE8Pk33sr/oSH4H4aqKp6o7RELIk813tUXN8ngA7c0Ee1YFVwqw33pVmTR5T Idgk3wn5uAZIaerwCVKUUWY2ub6H73jRfoODhbVXE7Zt1HQAw+rCk6ult/9rxKmoF/Ie bqYqsX0p12US55Ch/fsREPWu5WuuSJqEWCYc+9etr5AMsTVEhMnbOlTUnfVmYwvo+QnY SNvA== X-Gm-Message-State: AOJu0Yzp0+BPHdk9MwGJUSNCmwHG3DjSNu+nxkn14A1MTUDJwHM4McU0 458+UEZTSvj8faEB23YFhpZOFLS8P7a7kmgWk6ESTSV/7XKHPoEyo16K3vpRVBo2sUTWE+YrXI4 SJupmYnAKso3Tb8VhTOwXtufhgPQXjCjDiqnDFttD2+hOHihgbGx1qgtzFs4faNNNTA== X-Gm-Gg: Acq92OFveOUP+J2T+R7pQDrsgF+W1R7pG/nKmfTx1G5MtmsUWxL7ec9BJsNem7juTZb F1/zfRfLqzarx22sQFefeqhoDF9kAzHPx8YVidTBizbvF5dpHhP0/UNN6O9ZjLPiwMtyRg46fdf 62lMVmLM4ec2/CfYXdwGCk301sao9/4cNNtLqgqgmtYK2xiHk8yrD1Vr/R4lgOZB7+HrqP9GQvt iep5bBaAnsLUdv7ej7GjUBHH7F/53BRCPtdL117oE9+HEpV1lqh5U3xSKpfm3A0aWId0lI0B7sx uq7/nK9zsIp9sQO+vxI8Nu7bCDdv930eLgJLKOj9BlZDgUTM58JJpapWiQQIEYExpAsMByU5pyr uNa+QdfOJeBOQ6BOSDzd/B8C3C1ynz4jbSbyu5RILC6O9cwWHHyz/mi1/uEcwnNoUmMRUGEa7la wiZ3ZC X-Received: by 2002:a05:7300:d508:b0:304:705f:e4d8 with SMTP id 5a478bee46e88-304fb2ee1ebmr529653eec.16.1780091777918; Fri, 29 May 2026 14:56:17 -0700 (PDT) X-Received: by 2002:a05:7300:d508:b0:304:705f:e4d8 with SMTP id 5a478bee46e88-304fb2ee1ebmr529641eec.16.1780091777397; Fri, 29 May 2026 14:56:17 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v7 11/38] target/hexagon: Add guest, system reg number defs Date: Fri, 29 May 2026 14:55:27 -0700 Message-Id: <20260529215554.606133-12-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-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: AW1haW4tMjYwNTI5MDIxOCBTYWx0ZWRfX6tg0b9G0Aj6i cWmP3wKnfHkzGJ9Ph8CTtp6E5iIm9hqOk+M0U0w7T4dPQ8wB9tGvVmow1IdgVvlFXmKJwZcHn90 +HgmebdH3esUJVcyciV9D5C0caUtQoSKyJFSwXVxVVlXQj5ZiE3r8JPu5wgaEChR1EQupX89Rpc xEHvlB4UUa7F3RqamTgL4xAOS5G5W2RcnLh6Omzh4uH0vK3/WQFb4kbQ9rQ6casnBGxdMpOe4KW g+ZHWgU9SJkt7acN92O/4xGHakdoRh9bPAKsimJGztrJOgkk7Ud0SyXcR4OP2F4f7vKJvWd2ESY 7bCtdtd8eWjjuhQCQwRnaCLfiatD4wWkZP39/3zc0D8/wS5t/HbEaRoWsjtm0HMvYN0ay9wNrsP 7sMPWxHvcvEj1fmMcDQ2eg2f5nu8O/1HGMdbAIlA8BwH4gJ3laoS7KlmXZ7zwaLxpUPNxOvSHkV 94hmHWx5RnX9coKtE0A== X-Proofpoint-GUID: Lui7ZLuVhZcVYDiZ6vshusAVqHnpQ8aS X-Proofpoint-ORIG-GUID: Lui7ZLuVhZcVYDiZ6vshusAVqHnpQ8aS X-Authority-Analysis: v=2.4 cv=PtKjqQM3 c=1 sm=1 tr=0 ts=6a1a0b83 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=pGLkceISAAAA:8 a=tCkOjFGBvLAhDY2OQcYA: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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 phishscore=0 bulkscore=0 suspectscore=0 adultscore=0 impostorscore=0 spamscore=0 clxscore=1015 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290218 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: 1780091872149154100 From: Brian Cain Signed-off-by: Brian Cain Reviewed-by: Taylor Simpson --- target/hexagon/cpu.h | 7 +++ target/hexagon/hex_regs.h | 117 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 124 insertions(+) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 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 Sat May 30 17:44:05 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=1780091857; cv=none; d=zohomail.com; s=zohoarc; b=NNRdphRwNQZlTsAMDMjYKB4n1LkoFas/gDAKfS2zMe/prAwcWI0arE2mkFbavi+URE0K6uw6KCJRlD0okJer10HdYiTH0G+5PtaNaVmXNpJL1uLgxhLtobeMpew1L89f7c+B4tA6og+vjs6RFo4wXAw1PBzeQXXb0SCX4Sh8Vzg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091857; 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=nzcQDNPUYJwzesZED9WaPdolvGSX+QFV0WxVZMinJscabA9MWI5eoTh3Xr+mHTVO96uKXqkJzTGPKB2g4rKwg4r3Xr5KPwdnZydpq5a7BKgumXzmSe6qHiFwe9OTr3r7Co//No2i1BPzNGV8jjWFMsQ9lvZjt8eAJwQ5wsiLX7k= 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 1780091857663368.3877465513019; Fri, 29 May 2026 14:57:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5C3-0004IC-Ne; Fri, 29 May 2026 17:56:39 -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 1wT5C1-00042V-M6 for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:37 -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 1wT5Bu-0000QM-MK for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:32 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64TIesG9117825 for ; Fri, 29 May 2026 21:56: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 4efg9vrq93-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:19 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-304f1820babso1363964eec.1 for ; Fri, 29 May 2026 14:56:19 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-304ee0dd8e1sm3026279eec.21.2026.05.29.14.56.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:56:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= X1535rWHbX3maN5NHx9P8KfIpPdOoals3VppoQq+RNI=; b=EhG1Z8+z+lmM5fNK yFyF8/qUOy4vrwjrk7ML0pWGLPLBqEcE56l6pcyUhXPgFUso5DCGckGcecVE2ct8 s+pbiqm7UDUBsfXWCbXaMehr6hMAt3owD+wOLQEVavBxYzP5dwLiB5W4GXzo3V0i sFUjtHGYjXSnO0W7sliU0CAOjpBNUojy0Kt0hkGM/wjfkTgazGeZTMNnVdB0jv4Z eTf5dIHXr8BLhtHPv81m7t3YzPlMJA7af99Qtlg1Iq1IUUZotM/DS8Q3jK8SSGf+ a3QVY3zOTQEqgNp/4Dcdr0C3cOK4OJKcuffHzzUVbKLJgOmHzyO/Oz8bz+5j96Uc hSQJCA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091779; x=1780696579; 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=Lgpc5qUOHUE42WXu5L3lHEwFb14+rL+AkAch8E5P6LRUo+N/0uyQ36ikFQAu1CnQQz 91E/DVpnZnrQnE9tOqcfBVRzCFNGo3kNeztpjC3FCny3/2mt8tVK3dZy6x2zxUU3UH0P 7LPC1KvwKiGB76YynDlBn7xdLBr5IrPZmd6WjOtVNt/ha4+JWJEXWrUtXD+B7R7c6DNs h1dkmkz+UC9sCChEshrs7kEAhTlTHAn7tS5TqKMMr/8LEdrKge+7Nb1rj31FYD1KX+BZ Y1Oyg38vc/xP43FDdf9pDyNo4tnojDBJ3aP+hFnuMR3vi2EWCi7N4Bl0HGYv3chUFKhn KgGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091779; x=1780696579; 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=Py+33LiVy97Npi+krlUvGyNJK3tRqG/P2cI1CHi2GGn/hcqsSWXNfiSfimrdtMVasS BDyylolt1C95zo80jT/Jy/Xe7az+0mJFR1SpH+t7Wp6EoBlgs7YbRorr6lHJGXxvihZP V2+wAXd++8y5sFr4tuobluR0CJwidybFrrTMv8u8Lyj1BAD1jPlSsWop+f9g4SWtuHM3 C3sIFimyFXswvTgiSA7h/ohT+/mvr+Q31YfCiW6N8meySz2727piMj4mnLH8nJJB6RgR hywURfqEAaAkTi0cOJYKYekEae/7K3d3VOVwDoAfQZoh6zIM3NwgMWOKo2GWehMXcgFa 7LTw== X-Gm-Message-State: AOJu0Yy7Vht9ZndRpWOWb6575bkdmSxi+Dqzfrm2ReX3EMyzSLwnmj5I GrkFG351pQ3nStvO1U93o6EdCyc8VbcM8UxmsCJ69K7qQcQZENsHXAxl2aLXDvy731MBHvaZNJN PGvJ/0kfr8C+t2eovRpo4jOI2ooFwma8gpBokjc0slElTT7h3VjN9Lot1XHziYq1OMw== X-Gm-Gg: Acq92OHbq0W/20ggYA2CDryZyIC9X+msar3U+1epxk8uXTLb9CV0575OrtPPUAq1F8o upkkaOplHZUT58LT9DXCRXYhT/UdpNxgfEMEBIELsTP4x0v1B1BdXPeh/uTtmlN1srTTM1CA/Lt gBWQeGO5yS6viV6l4B/jbUcEOQUQpY8pjmXhC8RYcs5eH65z8EtKe563nR2Vs8nOd1vcs2waDCF PFZC2rUleku7PT/Fq6ka8w2mzO77+kaVT1wS9pWHWJzPC8YD6XfKliOjA3gHY/2rORHSrGDAfNy gvawn0ip2ZhQ9gm0EqP0UveaXFsPHMrpT4hXCl+LYd9B+rGfieXFHr+mGHIdcV6C7gp+L6BOkOL 0Bw8w0bbJDW0kFnzoH+v3OEsF7UQPa2QWVyxcMb/i0xwd3U562sf+EXP8+Wvlx8CDtVZxlsU+op 0n9p1p X-Received: by 2002:a05:7300:2214:b0:304:b93a:5107 with SMTP id 5a478bee46e88-304fa5e84a1mr881167eec.21.1780091778836; Fri, 29 May 2026 14:56:18 -0700 (PDT) X-Received: by 2002:a05:7300:2214:b0:304:b93a:5107 with SMTP id 5a478bee46e88-304fa5e84a1mr881150eec.21.1780091778289; Fri, 29 May 2026 14:56:18 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v7 12/38] target/hexagon: Add guest, system reg number state Date: Fri, 29 May 2026 14:55:28 -0700 Message-Id: <20260529215554.606133-13-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-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: AW1haW4tMjYwNTI5MDIxOCBTYWx0ZWRfXykdnqhUM39mb EOmoUVPUJfhLhnHbGl7vdJdhkY6wRzdqttRKg0eMmRlPh0iaxH3s0HCwLvN02n6d0DmvPYIqJRj w/yK4u9uCe4+1zdQO+RAX0tFHcACUtBgLP62ccs9Q7HYisEsP+pzhqzcGAHoC7qpaRZShGICgqH +OSJnZRVjS4C+DDNT2pMmfDf1GYylFqqNOEj/V9v56SXbZQLxTfp2c2rPoezb8F2Q6cw4HJLmDt tP3PTC/oHi9NHQP363LnZF+1OGFpf4GeQIlP4sfcVjv9BvMvzkYAIhEAcxxsUPOyW8DotzfMEkQ t8GZi0nZOs++pJBPyXptg2UTIayNBVynTKyH1BjxIQR2AZmh+2bNB7DsNWsQDoWxlnao2J0zMte o+P5oh4/FNHnfE5ItkTtZK6Lnb04IZHkl4n4JohM1979yZ/4HWaIDKOD/50krzsUdjwSq6FptZx wLDVDdHnoQa4Py0bkmQ== X-Proofpoint-GUID: NNeandZt5D6G3k--Z0hrZgmsZwqMMT1R X-Proofpoint-ORIG-GUID: NNeandZt5D6G3k--Z0hrZgmsZwqMMT1R X-Authority-Analysis: v=2.4 cv=MJpQXsZl c=1 sm=1 tr=0 ts=6a1a0b83 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=ikZfMmNF8Hme0_TNbpMA: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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 malwarescore=0 adultscore=0 priorityscore=1501 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290218 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: 1780091860038154100 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 Sat May 30 17:44:05 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=1780091889; cv=none; d=zohomail.com; s=zohoarc; b=iSJLN1CzEPvHXegQfLsAqjAUSp0J3RyaaHsAETfn0rRTT+vEiXiodh4r+sYLoeE/bz1AWkMitEkdTCI7Sn5Cqyxs1CxVdV9uqwS3X2KSba1ikscMBS7r2597kyjw3KTL42t28kPzaZPeDKshT8JHOsWH6hVSC/gBw3au+mM3vlA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091889; 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=WXHTQGJ2zJWbtOqokS2jHDgTZvavJrn46Uslnsw7psw=; b=hyx1G/O0nYP/Fee9X3TJ8LGM9+T1Yayq3qHFOGKbS7yVBAtpsdly5JsemT1CYYRv1LXhl1SSxAOF8V/pogVEs8QP1ULzJP/lhP9i0OfO8lZjbxiLLJu5znOnSy7cTx7e1k4cZmabBS30wY2X98b7biHqqCrby2EWv71Oym+SpqU= 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 1780091889123300.48197180835314; Fri, 29 May 2026 14:58:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5C5-0004PN-5B; Fri, 29 May 2026 17:56:41 -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 1wT5C3-0004FJ-86 for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:39 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5Bx-0000RH-MO for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:38 -0400 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64TI2LvL2998027 for ; Fri, 29 May 2026 21:56:22 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 4ef4jj4ekm-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:22 +0000 (GMT) Received: by mail-dl1-f69.google.com with SMTP id a92af1059eb24-135916eefa0so5166579c88.1 for ; Fri, 29 May 2026 14:56: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-304ee0dd8e1sm3026279eec.21.2026.05.29.14.56.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:56: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= WXHTQGJ2zJWbtOqokS2jHDgTZvavJrn46Uslnsw7psw=; b=VMgi9uI4nd9h/VCn iJhjZegPyvBSNpYzKmyjmQgaZ12nJ27rFpGD7fJjV8uhxi/Fql2q7jy05nKrFEo2 1B0uhLTAwtSdf593CyuHwBWdUjPOztbbaa4ysFqrB+YyKfhNhXYNrpum1X8RQUXi 4YUC3MjUQxnIMUeIjEdxZFCsSHagQvRlt/ZmHl98PvJird3NlZnFpEvsFCjdRVH1 rQRERNgD80uB53U2VtHTSOspifVha5SP8Pr+QQ4nGD1kG5vae4s240ConaFZ0toO 7oeweYgSuLxCklca7nO3ORZm8NixyOUe2XRKfaucYl/AfP8R3kyHtEb12FcrnybL l7m3KA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091782; x=1780696582; 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=WXHTQGJ2zJWbtOqokS2jHDgTZvavJrn46Uslnsw7psw=; b=XMtJEPZiWB5vK6Vr2ltaofP7cCr1Ar9l6jW3KJu9emYkTB6CppwC7+i13gzjPm9ydZ APrBZK+Ysw7RhVPAts+3Epq7KUCIO3UXcbi7H/Zebaj/cuQncmo4KrGeuqv4hMix5LID seCgzKJpr9Xr+/Vr+98wqVKIrRTcM58n7GDFATftWOYHKoZJhV7DE2BG1H0/JH2yhUie N6rRoSHTQvKAihh8uGw0ruo0XDJIAkegjuAo0cqh2QA1rasfohNlAyk+Pd+smtljbJXN P5K+6zbm4nQM5n8hqHOR5+QzYVL8mzQOGVlOBM64wHiwRV+jVJJEBZ7ZExzYxxZKmB87 q8MQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091782; x=1780696582; 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=WXHTQGJ2zJWbtOqokS2jHDgTZvavJrn46Uslnsw7psw=; b=sRm93N9zCVC7Z4X7gSsgNB04u1w9701rP+CaFvlGMXQX7iCM+SetStXZpIWMrb/L1c n5XBvvfjjusNX1T6GAFX51rJ7/Jr3/CwSNXDwD2YWK/dFSPT5r/Exhxsnm4UqEEGfMXc ir6unnubPctoMPDSnQ8tQMPEDiQujvHwJO/BnTkiClZ2y/FdVDydkJXVE/LAw4UriHRY wlMPXl9Vpd1aIbv9fyO4O7ljjY5lqAPnyBEQTQxfGuCpGHcMe8HgTZkqrY+a477ipp8L RTtJkqtL/RKuizw8CyrANXhYYhDD4cShL+2mJbHQiwNmpis8cko1fEQQFC3uri6sxEQT QYVQ== X-Gm-Message-State: AOJu0YxJp8mVWqUQYi/PQPtNF6hkZzOwXgMSyNJE0dMx7N8ArgT+Gz/s rXB0IMr+H9Tf6G7NuOfOqwmjwnYTiQmVTH/DcyqE20h92za+frQ+ed0Csq+WjWCjGCg8YyCsH50 itv8RZgKLXkiNqa+mebLLOdvdDxeTOYTUI6y0C9+w2tpN/+cAb2220IPTUuHUcjfSwg== X-Gm-Gg: Acq92OFjHzlWCHjlgadFaFdMEfZFhtW901CU/6ComH4CSFDI1V8PfFp0qQsqazRk+i7 8RU8TTHBlO8aYDpN2xGBs8cGH2LJ6HDeiua29k96TODqBTlN0IeqTx5K3pH1hauZQcY+b6thl6G qwH4W2BA3tfZ46hmSdu3H5tBKv5FpZ0uCjaGnTW2+mEMUkk75HSla/mNfHeLLeY+kW7/jGYbipa O3xYg8ufkc4v/jaIrs1O6ujHnLI7jQfiUbDirfpMGNCGsOUEL/lyCqVL9TA4FTkzZ1OKhI3Sa/E O/7AR6VmPwNGGYef0MIB37SW9d2dq+wtj6FLmTuPCh2whWR2GvmMqT4JtxGqOkr01v5wXIfQeuH qhLwfQ57JTu6lgXFQdSiXddsdGetXK8LSDj6HKgxTv+MWbVDKMY7voKwwJ+EWH42LQ8SB3e8nsr p51fwP X-Received: by 2002:a05:7301:1698:b0:304:e865:f7d1 with SMTP id 5a478bee46e88-304fa74349amr993051eec.25.1780091781666; Fri, 29 May 2026 14:56:21 -0700 (PDT) X-Received: by 2002:a05:7301:1698:b0:304:e865:f7d1 with SMTP id 5a478bee46e88-304fa74349amr993034eec.25.1780091781204; Fri, 29 May 2026 14:56:21 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v7 13/38] target/hexagon: Add TCG values for sreg, greg Date: Fri, 29 May 2026 14:55:29 -0700 Message-Id: <20260529215554.606133-14-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-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: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX++4/GMKvibDF n96KMVOUxAtqt5o2VBvIBtVNDrj69qQw5CPeSDudgw/yIKLy5lZycJNl05LAns+dBDZWB3vQstd HoZRQ/e6pZCodd6e03HGbzdc7+faAEHAV2l3dSkxKExkx5x+wt/gTy30H7pdlkuNGka1+f5RGZ8 xEGwkNdMAj7h6OQtmOE1aV83C1USAWj76EaWs++RoxFEEProvUQjNlducWV+KDBBaKN80lJ1wgY 30F4QEqyPGX68d61OTMAulLc4o1VNHDfTsCkOPz/tJn3jwqCtEK2ec6yJBMci0UfNMR8+rZBEEK 57OGcVfxMGs5nJR2UZptlkm4qM0dFdyh4zaBrXA2lG1USEI3V1/wTPu9aLDIuUCFu9Mf+w8u99d YgWjPTDO8F3ZJ7l0IIh2hyxelJHLOhXtFk5JcPXlvNRQol+75wH/Y0qkF+IIEOCKG6UDlmOI10R Uce2miHe4M1XNWd0kMg== X-Proofpoint-ORIG-GUID: kDk1YbaAoHWhLIXQ-gYHMMijFW-fyc-U X-Authority-Analysis: v=2.4 cv=Tt7WQjXh c=1 sm=1 tr=0 ts=6a1a0b86 cx=c_pps a=kVLUcbK0zfr7ocalXnG1qA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA: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=md9odPwznpFxaQMInv8A:9 a=QEXdDO2ut3YA:10 a=vr4QvYf-bLy2KjpDp97w:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: kDk1YbaAoHWhLIXQ-gYHMMijFW-fyc-U 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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 lowpriorityscore=0 clxscore=1015 impostorscore=0 bulkscore=0 adultscore=0 malwarescore=0 phishscore=0 spamscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 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: 1780091890513154100 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/translate.h | 5 +++++ target/hexagon/translate.c | 16 ++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index 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 Sat May 30 17:44:05 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=1780091876; cv=none; d=zohomail.com; s=zohoarc; b=lx/eQB4dGiKkGqFiO9COwY2BC8SrZcpMY9+ogPsPdsRzaYwjN9aiHAerRefT2egheBSLuXamPNq6bCgvre7BQNj6uuySstCaRx+DsDT+uGXIIDH1Cl9920/kgtCzeTrN+LJiN860foj9linb2zFD8Hf/TOk47X0U5wtOQZ5D19Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091876; 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=ZcVlYT7TXDmcEdK4uGGjeJ8WwqJHAepfx2OdUuTU75u4Z9eXu81AKTfRQ1c0ifbuf4ww9WDQAvILYgK4S6bwXtGOUbPnh9JkE9RBlHILhzrMRt2p4JCPSY6jwUhac0zkHPNwia916xJkqGcTTNAmbsCI+x8mv9e4z+oxwU6z8II= 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 1780091875995565.5618766149381; Fri, 29 May 2026 14:57:55 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5C5-0004Rf-Oz; Fri, 29 May 2026 17:56:41 -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 1wT5C3-0004EC-2A for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:39 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5By-0000RQ-MV for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:38 -0400 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64TIdlQr203280 for ; Fri, 29 May 2026 21:56: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 4efg9c8qy2-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:23 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-304ec73b015so965745eec.1 for ; Fri, 29 May 2026 14:56: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-304ee0dd8e1sm3026279eec.21.2026.05.29.14.56.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:56: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= 3FB08ozXJ75KuaQ0Uu8ai6pxj0RZ56tBJAjvVwXnq20=; b=LZeGbcg6XvvYneYj T6z6eoqo13/7h9o7jDPwh5lBNltrTXAOjxZ7KZROQPeNdXRLM5ab4DijjrNtTZy/ i3cwExTYT5V2hcLptDSXcHSbC1WnKgz6rdJZ/JdY7GzSa54U/u3JF4rfjLmIjjL3 wLHpZNTHCF4YppE3aCYdw611rpuLOZ4jaLE/mRGnUlxyiRU3Y/iJoNryTVHr0JIe PBpdd8KZ9yCOsJZl3y9B4QtT7sRhjQBh9yY5Akxm9JP0e8JK7Q/ny7KK2sRcwDvd 9cid9I9Mm50yaCXSXX6mbPvbZFsSc+OAhJxR2yF6wRGwVDLqYWIoJPcL/3+ZaU3g cayCdQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091783; x=1780696583; 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=g4Lov/ZqI1YgPv+dphrfRbbmhdnW12WJD9UE9QBHNWlm5xhudY73Q5r0YvBO5O06n7 WOWTX5eqV/MoxhZHApFbDdltXR2Ye4QidHAvAD5AwPOWmdWkVyhtnlg8BQ54vyvq7NB/ TZQBCsiFPalu5Y08JQDqLwXlpHDxUFaC89AzZmluhzpQNmpfvX7ieUhlnog2ZgWOkPd4 LUCao3YBgrOO/VHYfZztFFQumhqDChmqlGiYA8wwlnwy9BkWy2NsKOScQthsVGU2N7jq wv2mNGq/Pvzk/YoD0GJHpUcG3Q1TVsBv1TDi3uc/5Smacmu2uUN+y/k52pJxFbY1CQ29 TmHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091783; x=1780696583; 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=lvTPdFRkgKIOC9bW6s5wqtRU23yfOk1lgjHMXNP9ZG5+IXU4mK4mp6rOrzz7zGon1r Cc3KRbQ9nzhPqIKdojFzy6t9bbtNfS9fwB3L4D93wLvba+lkS8RYEFW82zCRAMggk4Os lKsgKl41L6GJpN/5K+Jh3Y5z1ufqb+0sO9K5Pwuyr3imS3mWXnJvo4MHrPvJalaorGwe ZGWwnFnPiUqkm8KyRr6G7c2N/LA6DtEFxQ0tOkdjBGsRSYh6999KQepx1rksaEgoV9wF nmi/QiB/jpx+QW+K05mlsPf+PF47nXe3CLBtKy2H7Zpbxb2oJChp5VwOLs6f7KM6O8db rtLg== X-Gm-Message-State: AOJu0Yy4w6JhOgqO/+0QS9Gxb6Xa7av/fjEImPMZ0XWI2Kd7jX0GnX5B RVLGBRO4phk7LKMYuloyMBnSvKA1QWQgRNqETx6SyK6fZhE30e8iw/ZN9Qx5AcMWwsv+2/rX/C2 0YUNQ8aUr5wrn0ecN9er4T6rJyE82nQFqMGKJnfntZ5OWwPdhsoKSUuTYy6AlVoe5YA== X-Gm-Gg: Acq92OHQTtsIrf1kG5wUFj1n8+b490FKACO24zoj8VqEqQreHvjCY3Sj1LcrVtEJpbo nU6rM022VGGjBn9vTrzB6t0/EdYOkWMhabeVRnCLXOJNkgf9AQfCmtOsBzxZeUui4+emYfmJwJW uLQgQgPjR/scr+IgTMI6/6H6DwPv2B4i8qqjLaMFX1pli8amu0NZ1qf3D47CNQi7TbVEbJ7sgXZ UE19eoocMSo0B9pRgLA4wOorqEKo/4GD7k5wbULfpv2rKaBATzyLKwrrDChkkGSujIt6n32jjIS CxDZH7bsWx+bslfhpUHhzQLuLEmdc2/pBJe6kw5ftxFHUUjXnritxstudlsIYkhQ7Er6IJpvmNw xYV/Abt9wsPfkdDdWpPik/qezXjgCwjA9GauUfB3l00BbSvYtKQQ3w/R6YWPGfGNw89qNpd24K9 PKdwJ2 X-Received: by 2002:a05:7300:d509:b0:304:6d18:3646 with SMTP id 5a478bee46e88-304fa30cd05mr830136eec.0.1780091782818; Fri, 29 May 2026 14:56:22 -0700 (PDT) X-Received: by 2002:a05:7300:d509:b0:304:6d18:3646 with SMTP id 5a478bee46e88-304fa30cd05mr830121eec.0.1780091782269; Fri, 29 May 2026 14:56:22 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v7 14/38] target/hexagon: Add guest/sys reg writes to DisasContext Date: Fri, 29 May 2026 14:55:30 -0700 Message-Id: <20260529215554.606133-15-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-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: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfXxm0ymHE0ctVB WpC9qISCiuIFpzmCIohNwKQGA50lMlVz5HIRBF1QS+OPfCo8DqqaYFC0d6N/G5foX2jl+p2WzPD fFHase3lrwMCiifDF80bXrIsHHxWr8o0sQMy4db7+ktWzEYX+XKXJF7wGafgP99enxoyREoPw/t m8YIIPVxa5dnht/wPtXNooDgY5Dh04kfh6wpRySbw78syiaxO3JiWRQIcbB452kiWUVgUnLWIj+ ItJjTIxMSJYlK58cwYFSeUoCT0N4yoYYvcos/3YRUFg+ms+qWHNTXEvDSeRMCUOWCciNMpqyW2g J8CSGP4+WFlQgMjipCt2tlR8inZy7rtkZnjM/xTEpIGOF+vX42N1TbG3Btp2yTBHvj8HIanpayY 6gedU4hisSigykxrRXTBHsTRECXQKd5rFAUhA8EI62Z8h4kolZDMny1/e6c0hBfW46b5RShAKi9 hA2nLTyUEVlOpVgnv9w== X-Proofpoint-ORIG-GUID: BDSpg0WHxTz1Kbg2vWaUG_eyKsIziXxD X-Proofpoint-GUID: BDSpg0WHxTz1Kbg2vWaUG_eyKsIziXxD X-Authority-Analysis: v=2.4 cv=SKxykuvH c=1 sm=1 tr=0 ts=6a1a0b87 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=tdgd3nfel_K54e3JQaMA: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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 bulkscore=0 spamscore=0 adultscore=0 suspectscore=0 phishscore=0 malwarescore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 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: 1780091878251154100 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 Sat May 30 17:44:05 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=1780091882; cv=none; d=zohomail.com; s=zohoarc; b=UsnAbGj3XvxqazCXqw+Y4d5d3kkc8mloqPCu3TyauTq7AQ41yFx+YHDwlAFLXZ19B3a8qdv7bmS+NU/aUtdKE4Pw+sXaBGufr7glQSIyYFd9mKd3MbuueSgqCLyV9x49tMxH4eZdspXO5ItD8RccDlRQDUVsqLiXk+qTg5pOItk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091882; 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=D5CznjNzqwLYL1JmDqDZMf9IQEpcIpyt0iPbwcBOyRJifKr4NdX7CTEFkulr3q1U/wz5Tr9PHmwdSDpzLfdswVi5P6OKvoEc4D8lZq/Vt1Pozqoyr8AVT/Hwt5XxSfP3SNVX/OhUbyuSW4oJy3PXCgDlxrqUYRlau055vqU1uTg= 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 1780091882229767.9817939964881; Fri, 29 May 2026 14:58:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5CC-0004qF-2k; Fri, 29 May 2026 17:56: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 1wT5C7-0004Vx-AK for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:43 -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 1wT5C2-0000SB-4o for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:43 -0400 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64TIduIN203426 for ; Fri, 29 May 2026 21:56: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 4efg9c8qy9-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:26 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-135916eefa0so5166906c88.1 for ; Fri, 29 May 2026 14:56: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-304ee0dd8e1sm3026279eec.21.2026.05.29.14.56.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:56: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= hhoakWVabZ7IJR8eGDuXPSShTsj/f5bhJiXKe7ZTYNg=; b=e+6JxKp4yhBERvgJ bG7sVgIqAKzUonY/6zHYPf7QVGJdHWtko5OhApEf1ZSRCxgPseIU1kjQSHAlZvi1 HvozD6Ez30bEk5j32r9f6L0lZcyFWmfxGOsdLRzEMl2814lPGy8cgDK1iTvkfNNj pejKD5vYWO7TCpbjENqwSmXwmUqZCha5z31XGboRBWVSBb2LcWZni6ck23XAs8Pw qdsy9r3Zqe4GpEGU26yR9CIt633R/dlDkrdjwYArsDUzi2sPZfJMna8no3OoRyYM T6lgzHwsVR5tqddKfbLaAZiDdihhyxhvzdkHFnZ63Hp2vzppB/UmYABNRja8HPSZ cSdT8A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091786; x=1780696586; 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=bsgMHNFtn7rsmZueeEtUoCHHw9aYhSChaDGUisMs4/E1AiArhQOxCnJavr4nkICOzb Y5h+f0QZdXVF2pxjm+Ow0H4OL8hf7x567ZJvgpgtaWSinegeeSoctvJRCykyCf6onoMk +InKme8Ib1dlUScL/3fWnkNwlupjRUxLg/SVXFdfkQH3N01mtFqHE6RwTB3mEbfJQYXk 6l5pnmjMiasvYiZ1v5JtMA+POwfL4WAagC/A8X65H/Yq+Z1vTuRy1hekIfMLziItl+om yObMFAZQgsFKlzJ2gu32AoCoLLROsNks8Ej+KTl2Z8bOW/tZ+k+1qcL15Uv2pU4vx2bn TU2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091786; x=1780696586; 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=F6DEBPCRBcUU6cbM2tpjV0obxBaiB598a/oLnB7UC04gepBHUqpHppm+pgcovVywsA 7eMHj6gc6bjzS/UmqEHnFCP39mAaZlUHU2yfjLj4KcXvOMK8BykbEDHnnWZ9QJwLG8/R dYhg1acakab/sftXdu2oMtAQfMIzknXg+DRz1AesHqZ2KfIk1y8+9uor5IPetuReX9V3 o8MC7xTy5oZdlOhBksT3v0sefE2HWG1aGyO5t2iBv8bLpm65cwfrv2e1Vt3s80fiFFZp /ZhiSOtgxIXFN++RSxY4T/EB+E28+dZEK7e4dI/lKLnjgc5RQ45jlCCJiFE2WbjlQGvM yhEw== X-Gm-Message-State: AOJu0YzBjFYTmhHaoO8I14jmTdmJVg02WK3AJ5yxa2Tyu9fz196Mhtia 2V98oJ83aQsFEIABM1/8Uqx72b2JPnRNP8R64qxy3grzbZ98lazH9jJnCgeZpmbKdJwAalysyw+ iQLMdTuhIOREa37ylsLfpB14atoN4g3/yeep9D3l8M41ELW/wsyR0LgG9GplRVva6Ug== X-Gm-Gg: Acq92OECp3kWUCUK2nFggVvhW1qk7r1Pzq95V3RjcI+j1fMT3W6F2v4nzwVpzzkR4RO 77T7NGgwJk6wlv4XO9s5UkbwybcAXpN8AZCZMzpybv5zp9X0bkbLxR0uT3VuvvsX8u5V9QGm4s0 24SPSLQ6sPnLcoPYRyFJ1szKbpzQFswpKd/hGCJsx0+x1kL7xaUKgeWAXBX3PyOMRThncICOu2L Kup5cTReYjwsYCuYl9X280QYBBHd2vJ3lKa/6/rPppuGNzGDal/W13QM3NPcn6FO3kAbIR8JqSA LJNkNdZWbXAZBUmW1wXAkgcnTqaOP6QoCUPVlVobcnNhucrNppIciSQQ3Gfx6jmr4hlHtRc/9hy HPGyRc72Sb5XloKXdiJ7o8amKmY3a3b9G5QyMI+AiVs29ffTUnSTLbMNjvQwcEHdv1jcU7x36he d8Dn0p X-Received: by 2002:a05:7300:2382:b0:304:e566:e000 with SMTP id 5a478bee46e88-304fa7716a5mr674260eec.31.1780091785698; Fri, 29 May 2026 14:56:25 -0700 (PDT) X-Received: by 2002:a05:7300:2382:b0:304:e566:e000 with SMTP id 5a478bee46e88-304fa7716a5mr674239eec.31.1780091785025; Fri, 29 May 2026 14:56:25 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v7 15/38] target/hexagon: Add imported macro, attr defs for sysemu Date: Fri, 29 May 2026 14:55:31 -0700 Message-Id: <20260529215554.606133-16-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-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: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX4WYiobtR7/Ni RMwoE6pMt6NmmChEG+STFmhaDL4iT3PT5JARsYV36CxhKPGPcfwJBXiDCEXd18yEoiltWxtmgc3 bjpeXlKVs2i+MQdeXYijdWxO3rca6QqewBlhhzAavxnWbOJHHkXeejqDvmCSeuUOVxLVWmrAzB0 P0ZheTtiJuz5PHhpPaXc398nxJVKIKXC9galpUGlMc1QMOMT/Bb7mGHgrNBvFu37T6EgsfLsnqi iZ9Z7fwk0ODgG+5Xv29IkNfqMMG5e9Z/fATp+QZNH9tYBS9B8IV9BcD3GNhzYAqL+F7UvNLFrb1 1BcgMJ1Tu5/CdwQdiQTyeV//lbwAcQJhRYPVtQsZCzI7+IkrsHEDodYnzkKoqtyQkXrr3BWwi3k J/6rTk6vjCk9KoTNQAKFMPJopz+v4CMfDpDpvarFTGMTh7miXgfPpfC+xVk3+M5jsIYZRePfxw6 3qhhlmLHMj2EVao4KRA== X-Proofpoint-ORIG-GUID: KqAcBcDqFbUzCb8YhTRtCxG6sEEwlSFF X-Proofpoint-GUID: KqAcBcDqFbUzCb8YhTRtCxG6sEEwlSFF X-Authority-Analysis: v=2.4 cv=SKxykuvH c=1 sm=1 tr=0 ts=6a1a0b8b cx=c_pps a=SvEPeNj+VMjHSW//kvnxuw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=9WelToRRDTwRCstGtewA: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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 bulkscore=0 spamscore=0 adultscore=0 suspectscore=0 phishscore=0 malwarescore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 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: 1780091884560154100 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 Sat May 30 17:44:05 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=1780091871; cv=none; d=zohomail.com; s=zohoarc; b=I7p+oUsbbaF5yfKuh69eu+/9p/fhAPh2r7sKRRDnnCr1lp2Beiq084/HPK3UORNMfzK2h+OLecIigdReniPt2AZN7TPLcLCJYbDoMEgXtGEh58kL0hSBo+Fu6OXO/kuClJ7xSlBMv/1RfnMMXLY78QP8rruq0utpjE3CSrojrIo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091871; 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=nK/80btnxk/ZUvD7oaWdHx97O7nHQta7chehjJwsjp4=; b=QcAUhMEvFHVfKUEOZJa/FBWjMTGdbHQ+wxy8DHHfiQ7lUC6HS9Qj+dgmQqP2+pYTviaSS0wIK0xHZ8VATJ4TdcNxQADM70YKoKYE6KYBFiPa14WKdjpXvSdNb7BH05Grar+K+4l5lNGpFZPrMaRvXqgg43oPpi4hqOw8gd75vfw= 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 17800918716549.003604119489069; Fri, 29 May 2026 14:57:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5C8-0004Y3-QH; Fri, 29 May 2026 17:56:45 -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 1wT5C6-0004UX-WE for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:43 -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 1wT5C3-0000Sd-Sd for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:42 -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 64TJa9DI520000 for ; Fri, 29 May 2026 21:56:29 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 4efh3srfmb-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:28 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-2fe1cf409a1so4775620eec.1 for ; Fri, 29 May 2026 14:56: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-304ee0dd8e1sm3026279eec.21.2026.05.29.14.56.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:56: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= nK/80btnxk/ZUvD7oaWdHx97O7nHQta7chehjJwsjp4=; b=TmOLK0L5L46nmCzl A9Y331ZEy7nTfzwy2znVhM58oiFpnjUkAwbNxunlKv90uOKuxPjiZ9SlCpHqizJB MAQqRJ2XpfBnXvSiCux2QX4kkuEjlXcjNpzB9sbV61ac0Y3bIyR7qZVM+HrQMq5/ HJD2CkCnbDqAP/mHboBlonGdxG5FThKFy6M6629qkNihb5Sbq3rU9p7ntIFYq3rh XxzxamF/QsWv9rwLhgDgVrSD8/vimEWuPsYtBFqM56RiWYbGZF7HlFOUhALOy4Z9 BJ+EdaWvx1HJgZU6gQEeFp5NWkFmOkmLF+7l5+oJLHIHGTZSzYPh3nxL8/fMdAL/ YmCURQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091788; x=1780696588; 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=nK/80btnxk/ZUvD7oaWdHx97O7nHQta7chehjJwsjp4=; b=Bw3QwCOKl70QCjpa+RGarYA3isNiN2JdyCPX/KpMSalOlnYpl3M+QUoeT2EaaNOyFW Cd0qE6AnL3r2MQhDazUcbywczEXdd3296aV6n0Xsco35nJf7gyoQ+LqtVcw2in/GT2dT 6GNc/YY85XGsUPRrmJx5QKO+1iV1Ab8QABXD8xoELxRH4jCJDEEvKxHwgFcOZmYh6NxO s4W71xMhXrSdqH6BFAhlSEYzNOxLrnlRt2g1p/6rk9KfmrzWK6m0zKKjeCx7BkZ0uBCs R30DxlyJljK/XlwMMNghfYIfaA2TdGPluoNbAUiOCV+KWKl9kJxZLtx51McXKZP+Aa0x Zv9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091788; x=1780696588; 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=nK/80btnxk/ZUvD7oaWdHx97O7nHQta7chehjJwsjp4=; b=McU8K0Kf/n/kHbNlJTFSl39Fv7/kWeB6LaRUMmJSDAFrLk9irvCIypyo8SlKecoIzE 0gnB2WsyOoMM9kGcKKL20gjLMIrYuUkMgyVd96Fb1B/776belOS+yY7oVcEY5HeAabyu 2VreAHz2Q55h61AxRhusF92OlaMmXDcCLTg8DE4ixjfQGH3euQp2T1boitnax2M+wNyj yznNuEBkByOFRtkBE5/1IUW3sFkmslDVl5AUNLbS50UZl8ogJjm2IfO6jOg/yhWxSCxG i1WG3viKsgVUZAihBxQy66EeyWA+DJsZNmNqWMYEctysqZWBOEQN4oqDSPbH4SFI88X7 Dt9Q== X-Gm-Message-State: AOJu0Yzntyf9+cMbS+bCD9o7n2nxT9wfBsYRgwu+fYelaPH9UUeieIfm cKqG+B6g6LrQ2gh5oJEneBmgZ67IoPA8Hef3LN7E4G4xxfF1Ru40/RjU9/66cLr5FYMJpTiK/B+ e4064RfCPfiBeQfInNlmTyjwKOSO5hSR6RdnVBBpPWi+TmZmk5/4RpdFhLRXX17W3Ow== X-Gm-Gg: Acq92OEbgMMUFV3LaZ9Jd7rzgSvreSfuIfDI+1luq8dgAb/A9jpSpvzioAmt5KlAeu3 99d7wTKfyBTI+B2xBOaVbLgqtAHqZALdMafO+yh7kFLv2vP9TcQ4FAlEzntPVNhEHmB+8xojmmm 0ClrpR8o4VMQ24DN3ZFQu8qmnGHtD2yIvT09owm2IZrMS+FC+Nu6V5uuvAHqL8ezDFiqCRiW7gD pw0J0LwiMVJ+ESwlRIYM42+gCypoASNlokmsvTlJvC8SO4YUCshEs47Sl+xC4IyIDPkNAUpICg5 zAYsGJvrqPdlvf9/rtNBNCGAyWejqKOEun/N8AjkKtfjmWGVqeiO199QsgAn+3KiRtu6Cj3Ratr 0Www/UZjI2JPZ4cIYBL91vVyYFIpIzFwn4fEDAFpOhKME4cuOapGyERSvQqx1oRaJzmFc+przm8 VhU1wB X-Received: by 2002:a05:7300:ef83:b0:304:9b48:53da with SMTP id 5a478bee46e88-304fa6438afmr785223eec.26.1780091787602; Fri, 29 May 2026 14:56:27 -0700 (PDT) X-Received: by 2002:a05:7300:ef83:b0:304:9b48:53da with SMTP id 5a478bee46e88-304fa6438afmr785205eec.26.1780091787023; Fri, 29 May 2026 14:56:27 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v7 16/38] target/hexagon: Add new macro definitions for sysemu Date: Fri, 29 May 2026 14:55:32 -0700 Message-Id: <20260529215554.606133-17-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-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: rjIWnvNsFu3cVLUz743YPqV0u3ZGGeFm X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX+VPupbSgxt1i DUY8VDWnPTVLc4IhtB+8i7LUPM39t/n+KdEjM0FfqtdVF++jWwFBpbZV+7b2sizO3McS252fwRX ZKdT4I+LV1+kqjAvP/97qyaCOkawZ+87tXXsJrMoHJK1F1xDBQ+YFfHzmCbJAqemRMV6tU8bfNa cZr1S4ODf/uC9ff36vHZjpyKkrWQ1dn3tTQZ4VssSTO8LLc/wv+mvmvPIyIvkFcj4IumH19gN9B hmYf3ktx0gK/KiTD61Uf/3rm9bXBVXMXpqmRpzUUwkHji1TVoY3t9IjOfQkNiRIh9ypCyMhNqcX /g3GGAV8Bp83Il7VO9xkvgq8MfLIH4P0G+GxjlZ127UPt3sMyMGDkkrSqw+6wtc/wuRfnuu3HGs TSp+m4j++wNC58/pslvWW/QKgrvm8cMX+iARdR4yrzddMUHM6W1bm3Ab/hWtv/NGab2+3jPI90k toD4JhXz7Sv3D4FvSjA== X-Proofpoint-GUID: rjIWnvNsFu3cVLUz743YPqV0u3ZGGeFm X-Authority-Analysis: v=2.4 cv=b9+CJNGx c=1 sm=1 tr=0 ts=6a1a0b8c cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=VoFV4bgUeqxKQXHmsMYA: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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 bulkscore=0 malwarescore=0 priorityscore=1501 suspectscore=0 clxscore=1015 adultscore=0 spamscore=0 impostorscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 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: 1780091873759158501 From: Brian Cain Also: add nop TCG overrides for break, unpause, fetchbo; add TCG override for dczeroa_nt (non-temporal variant of dczeroa). break: this hardware breakpoint instruction is used with the in-silicon debugger feature, this is not modeled. unpause: this instruction is used to resume hardware threads that are stalled by pause instructions. pause is modeled as a nop, or in RR mode as an EXCP_YIELD. This instruction is safe to ignore. Since prefetch functions are not modeled, fetchbo is safe to ignore. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/gen_tcg.h | 9 ++ target/hexagon/macros.h | 25 +++- target/hexagon/sys_macros.h | 237 ++++++++++++++++++++++++++++++++++++ target/hexagon/op_helper.c | 4 + 4 files changed, 274 insertions(+), 1 deletion(-) create mode 100644 target/hexagon/sys_macros.h diff --git a/target/hexagon/gen_tcg.h b/target/hexagon/gen_tcg.h index 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..f497d55bb81 --- /dev/null +++ b/target/hexagon/sys_macros.h @@ -0,0 +1,237 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HEXAGON_SYS_MACROS_H +#define HEXAGON_SYS_MACROS_H + +/* + * Macro definitions for Hexagon system mode + */ + +#ifndef CONFIG_USER_ONLY + +#ifdef QEMU_GENERATE +#define GET_SSR_FIELD(RES, FIELD) \ + GET_FIELD(RES, FIELD, hex_t_sreg[HEX_SREG_SSR]) +#else + +#define GET_SSR_FIELD(FIELD, REGIN) \ + (uint32_t)GET_FIELD(FIELD, REGIN) +#define GET_SYSCFG_FIELD(FIELD, REGIN) \ + (uint32_t)GET_FIELD(FIELD, REGIN) +#define SET_SYSTEM_FIELD(ENV, REG, FIELD, VAL) \ + do { \ + HexagonCPU *_sf_cpu =3D env_archcpu(ENV); \ + uint32_t regval; \ + if ((REG) < HEX_SREG_GLB_START) { \ + regval =3D (ENV)->t_sreg[(REG)]; \ + } else { \ + regval =3D _sf_cpu->globalregs ? \ + hexagon_globalreg_read(_sf_cpu->globalregs, (REG), \ + (ENV)->threadId) : 0; \ + } \ + fINSERT_BITS(regval, reg_field_info[FIELD].width, \ + reg_field_info[FIELD].offset, (VAL)); \ + if ((REG) < HEX_SREG_GLB_START) { \ + (ENV)->t_sreg[(REG)] =3D regval; \ + } else if (_sf_cpu->globalregs) { \ + hexagon_globalreg_write(_sf_cpu->globalregs, (REG), regval, \ + (ENV)->threadId); \ + } \ + } while (0) +#define SET_SSR_FIELD(ENV, FIELD, VAL) \ + SET_SYSTEM_FIELD(ENV, HEX_SREG_SSR, FIELD, VAL) +#define SET_SYSCFG_FIELD(ENV, FIELD, VAL) \ + SET_SYSTEM_FIELD(ENV, HEX_SREG_SYSCFG, FIELD, VAL) + +#define CCR_FIELD_SET(ENV, FIELD) \ + (!!GET_FIELD(FIELD, (ENV)->t_sreg[HEX_SREG_CCR])) + +/* + * Direct-to-guest is not implemented yet, continuing would cause unexpect= ed + * behavior, so we abort. + */ +#define ASSERT_DIRECT_TO_GUEST_UNSET(ENV, EXCP) \ + do { \ + switch (EXCP) { \ + case HEX_EVENT_TRAP0: \ + g_assert(!CCR_FIELD_SET(ENV, CCR_GTE)); \ + break; \ + case HEX_EVENT_IMPRECISE: \ + case HEX_EVENT_PRECISE: \ + case HEX_EVENT_FPTRAP: \ + g_assert(!CCR_FIELD_SET(ENV, CCR_GEE)); \ + break; \ + default: \ + if ((EXCP) >=3D HEX_EVENT_INT0) { \ + g_assert(!CCR_FIELD_SET(ENV, CCR_GIE)); \ + } \ + break; \ + } \ + } while (0) +#endif + +#define fREAD_ELR() (env->t_sreg[HEX_SREG_ELR]) + +#define fLOAD_PHYS(NUM, SIZE, SIGN, SRC1, SRC2, DST) { \ + const uintptr_t rs =3D ((unsigned long)(unsigned)(SRC1)) & 0x7ff; \ + const uintptr_t rt =3D ((unsigned long)(unsigned)(SRC2)) << 11; \ + const uintptr_t addr =3D rs + rt; \ + cpu_physical_memory_read(addr, &DST, sizeof(uint32_t)); \ +} + +#define fPOW2_HELP_ROUNDUP(VAL) \ + ((VAL) | \ + ((VAL) >> 1) | \ + ((VAL) >> 2) | \ + ((VAL) >> 4) | \ + ((VAL) >> 8) | \ + ((VAL) >> 16)) +#define fPOW2_ROUNDUP(VAL) (fPOW2_HELP_ROUNDUP((VAL) - 1) + 1) + +#define fTRAP(TRAPTYPE, IMM) \ + register_trap_exception(env, TRAPTYPE, IMM, PC) + +#define fVIRTINSN_SPSWAP(IMM, REG) +#define fVIRTINSN_GETIE(IMM, REG) { REG =3D 0xdeafbeef; } +#define fVIRTINSN_SETIE(IMM, REG) +#define fVIRTINSN_RTE(IMM, REG) +#define fGRE_ENABLED() \ + GET_FIELD(CCR_GRE, env->t_sreg[HEX_SREG_CCR]) +#define fTRAP1_VIRTINSN(IMM) \ + (fGRE_ENABLED() && \ + (((IMM) =3D=3D 1) || ((IMM) =3D=3D 3) || ((IMM) =3D=3D 4) || ((IMM= ) =3D=3D 6))) + +/* Not modeled in qemu */ + +#define MARK_LATE_PRED_WRITE(RNUM) +#define fICINVIDX(REG) +#define fICKILL() +#define fDCKILL() +#define fL2KILL() +#define fL2UNLOCK() +#define fL2CLEAN() +#define fL2CLEANINV() +#define fL2CLEANPA(REG) +#define fL2CLEANINVPA(REG) +#define fL2CLEANINVIDX(REG) +#define fL2CLEANIDX(REG) +#define fL2INVIDX(REG) +#define fL2TAGR(INDEX, DST, DSTREG) +#define fL2UNLOCKA(VA) ((void) VA) +#define fL2TAGW(INDEX, PART2) +#define fDCCLEANIDX(REG) +#define fDCCLEANINVIDX(REG) + +/* Always succeed: */ +#define fL2LOCKA(EA, PDV, PDN) ((void) EA, PDV =3D 0xFF) +#define fCLEAR_RTE_EX() \ + do { \ + uint32_t tmp =3D env->t_sreg[HEX_SREG_SSR]; \ + fINSERT_BITS(tmp, reg_field_info[SSR_EX].width, \ + reg_field_info[SSR_EX].offset, 0); \ + log_sreg_write(env, HEX_SREG_SSR, tmp, slot); \ + } while (0) + +#define fDCINVIDX(REG) +#define fDCINVA(REG) do { REG =3D REG; } while (0) /* Nothing to do in qem= u */ + +#define fTLB_IDXMASK(INDEX) \ + ((INDEX) & (fPOW2_ROUNDUP( \ + fCAST4u(hexagon_tlb_get_num_entries(env_archcpu(env)->tlb))) - 1)) + +#define fTLB_NONPOW2WRAP(INDEX) \ + (((INDEX) >=3D hexagon_tlb_get_num_entries(env_archcpu(env)->tlb)) ? \ + ((INDEX) - hexagon_tlb_get_num_entries(env_archcpu(env)->tlb)) : \ + (INDEX)) + + +#define fTLBW(INDEX, VALUE) \ + hex_tlbw(env, (INDEX), (VALUE)) +#define fTLBW_EXTENDED(INDEX, VALUE) \ + hex_tlbw(env, (INDEX), (VALUE)) +#define fTLB_ENTRY_OVERLAP(VALUE) \ + (hex_tlb_check_overlap(env, VALUE, -1) !=3D -2) +#define fTLB_ENTRY_OVERLAP_IDX(VALUE) \ + hex_tlb_check_overlap(env, VALUE, -1) +#define fTLBR(INDEX) \ + hexagon_tlb_read(env_archcpu(env)->tlb, \ + fTLB_NONPOW2WRAP(fTLB_IDXMASK(INDEX))) +#define fTLBR_EXTENDED(INDEX) \ + hexagon_tlb_read(env_archcpu(env)->tlb, \ + fTLB_NONPOW2WRAP(fTLB_IDXMASK(INDEX))) +#define fTLBP(TLBHI) \ + hex_tlb_lookup(env, ((TLBHI) >> 12), ((TLBHI) << 12)) +#define iic_flush_cache(p) + +#define fIN_DEBUG_MODE(TNUM) ({ \ + HexagonCPU *_cpu =3D env_archcpu(env); \ + uint32_t _isdbst =3D _cpu->globalregs ? \ + hexagon_globalreg_read(_cpu->globalregs, \ + HEX_SREG_ISDBST, env->threadId) : 0; \ + (GET_FIELD(ISDBST_DEBUGMODE, _isdbst) \ + & (0x1 << (TNUM))) !=3D 0; }) + +#define fIN_DEBUG_MODE_NO_ISDB(TNUM) false +#define fIN_DEBUG_MODE_WARN(TNUM) false + +#ifdef QEMU_GENERATE + +/* + * Read tags back as zero for now: + * + * tag value in RD[31:10] for 32k, RD[31:9] for 16k + */ +#define fICTAGR(RS, RD, RD2) \ + do { \ + RD =3D ctx->zero; \ + } while (0) +#define fICTAGW(RS, RD) +#define fICDATAR(RS, RD) \ + do { \ + RD =3D ctx->zero; \ + } while (0) +#define fICDATAW(RS, RD) + +#define fDCTAGW(RS, RT) +/* tag: RD[23:0], state: RD[30:29] */ +#define fDCTAGR(INDEX, DST, DST_REG_NUM) \ + do { \ + DST =3D ctx->zero; \ + } while (0) +#else + +/* + * Read tags back as zero for now: + * + * tag value in RD[31:10] for 32k, RD[31:9] for 16k + */ +#define fICTAGR(RS, RD, RD2) \ + do { \ + RD =3D 0x00; \ + } while (0) +#define fICTAGW(RS, RD) +#define fICDATAR(RS, RD) \ + do { \ + RD =3D 0x00; \ + } while (0) +#define fICDATAW(RS, RD) + +#define fDCTAGW(RS, RT) +/* tag: RD[23:0], state: RD[30:29] */ +#define fDCTAGR(INDEX, DST, DST_REG_NUM) \ + do { \ + DST =3D 0; \ + } while (0) +#endif + +#else +#define ASSERT_DIRECT_TO_GUEST_UNSET(ENV, EXCP) do { } while (0) +#endif + +#define NUM_TLB_REGS(x) (hexagon_tlb_get_num_entries(env_archcpu(env)->tlb= )) + +#endif diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 368391bb846..53898db815b 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -24,6 +24,7 @@ #include "cpu.h" #include "internal.h" #include "macros.h" +#include "sys_macros.h" #include "arch.h" #include "hex_arch_types.h" #include "fma_emu.h" @@ -31,6 +32,9 @@ #include "mmvec/macros.h" #include "op_helper.h" #include "translate.h" +#ifndef CONFIG_USER_ONLY +#include "hexswi.h" +#endif =20 #define SF_BIAS 127 #define SF_MANTBITS 23 --=20 2.34.1 From nobody Sat May 30 17:44:05 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=1780091849; cv=none; d=zohomail.com; s=zohoarc; b=UO2uJsiXSvbmleWVC+/wjESm0kRk0QKH1fNVHFPznI/ZtpTHU4Wy+MyM51v8Nnx+g+n/pflOKyCeT50SX0lQUtm4EIb/Dg9F26POpuI6xn4zKkiPVAUrJwIFUV9AiRlm2PAc5yp71cPkljKfN+O+FCm+pNZY8SiygGbqNgYFex8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091849; 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=Ju0pS74rjrzG+fkkc7V2cvekI0vNpV2j233o46pklploRra0gOmjnETUuISuzMhVSI6FxSA6XeyYnjGS9VlzH9D50dWFQ3PT3pxvsH4/xS2oEw7SwoDwfyvti/MU2U+sN+cwI5crcacxp6N68NdY6+iEXQZf2sL9XjkeoNcKA/4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780091849925911.2127895061092; Fri, 29 May 2026 14:57:29 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5C9-0004dj-VN; Fri, 29 May 2026 17:56: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 1wT5C7-0004Ux-3K for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:43 -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 1wT5C5-0000St-7Q for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:42 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64TI2IbD198975 for ; Fri, 29 May 2026 21:56:30 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 4efdjnhxns-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:30 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-304ea42b025so408651eec.0 for ; Fri, 29 May 2026 14:56: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-304ee0dd8e1sm3026279eec.21.2026.05.29.14.56.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:56: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= 93NO5nTkqSLKhLHTshorCnrOXtq4w0A1wRQSw+4IeFU=; b=PSIUpJyoWFn97Eqp Z0KnxNZOvV9ckol/SufdTi+LcREKRdLcGxCrCrAHs+4JU1V2y8JpTIv6DtZcutjD FmGA1oAYadlHsBv2AZxR4uQXCQPW9Kf9/1cw6eHriyR3nyFUXS6AeGCKVzXJprYn iNJCBN4RL2X8DwmF+RDY0+c/cThEY4KGNyz4J3babjC1iHKq6GPHzdsbdQNA7dOC 3rqzjE263lvJC/L1lixykCA8vpNybKkpQqUW4UsrKEeqehQcUpA1qzzwMaT3/yKE Jh9rxVMghd7BEG7PU7PaI3EIwkYyxeNeGoRiy7HHlvhyBqPUHoJse/jDADIMMFA4 R+0jpA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091789; x=1780696589; 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=bFfYc/ChXqTSuQNYFiY9r2AcEmVlgE/MW3ygztdfFdhN/p7zx3IrUmwNXV8YpRHyWF WCYS5VaF0fWYacj+uLFKHu01EFbhweUXjYT7Ymiv2NL3g/1+iWrm5z+Zzxxp5FCJ5yOA zDIC3iYweqnMLHQfQmKjrU+RfYSFzTPqK+tHji2fZEsZmkfIE1XzBwVn36wu65jvjZ4t iztI1nLIvbyNUbiWu3ej5FS+dgbIAtA8guBbKL7Cq87bC0y5n/zpQyH0a7+yWnWtjdWT cJ6MK7KqU8l+WUzIY3gBDrg+4qt0OuzdyqBDpR+SxXXG/fOerXXoqjTSGuwE7FP2ahUe 5xnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091789; x=1780696589; 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=Pskb9zQY7LotJ7C3Ij3cU7p5tMTuZfn6QJuTle/4DyszFP7x3J4xrk4AEnFJZPK7SD Xk7IaBj0HcjoMvzkzR9+J3HSreAYJMDZ4vXp/Aru3w6/vMDy2Cmja9XyYFpPCZO0U8pt AtoBk9d+WWCYLjQVn0NYydcmVO5DsdoXBnhee6mVMpI7kV9rXBUiRThoE9mu7qYOStRa RYo9VdbmLhN0JNZTilFnsChLFEW6hqbTWw8OfICgYyObYiY0peE+5ZETbtbtK4tUntZ/ QZtFLxdL9Y3YQx5Sswqvm7uY39JB/35hEHZDvVwcAZCx71q0AlNODmbVvWUo2egiJ6CO bD2Q== X-Gm-Message-State: AOJu0YwUbT8kUxbPRQnZTgfv4e3P4X5PwipL1LHXmnl6+cyLfuum+Lk/ GuGyITxPRyqyq+lzdCezrn6RdzrLjyzn0c1ZETzFfPfdp8dQPv5n4F67v5nSjLITU4pq55QWOTS oC+SwIW2SHsw6jEJF/hncvGe31hY9t4JaeYv/J1BuZPMwZ8+eBD9uhDe5xxVb6fxw7A== X-Gm-Gg: Acq92OGejUSAOI70DwvCB4bbx/iqN093Rzzmh1dAn2VnbRpb9qz4NzsEkAVquK0lSSo 39P9KT8JdClYs34/MEohFG2tcQH6z7XFv7sySfgP+c0JyZ/0zLWEBZWBKdompYcb0eTB5cDb/E9 z2xntHDx60vuvfyK1rv9Mczlz2QicJ6Is0kOKFGbDHSKVEfZppD8ZCwW1VdE9pRMuJWzJv5uOIs vR2Xj/HUHGBXuG9xYoFgIples8a+ukKZgdL8duQlEq53a5M0TfQWRk7/3lPYq4sol6YxaAAmc3/ NoaT6PdpQlcm4XcxPrL4U5+gM2MXw8+fK2jVpelmfjJt0EzutElQqQw16t1HrUakFX8W+DrqAtW qpsZNeCHRP9rmiuJporjHCOSO0sG3m4MkSaItjSTaxsKEy/BKV9GIbQ/vLlbGIOiiYanONnTA19 zpyCU/ X-Received: by 2002:a05:7301:678f:b0:2e7:190:41d6 with SMTP id 5a478bee46e88-304fb1a8c84mr578798eec.2.1780091789049; Fri, 29 May 2026 14:56:29 -0700 (PDT) X-Received: by 2002:a05:7301:678f:b0:2e7:190:41d6 with SMTP id 5a478bee46e88-304fb1a8c84mr578780eec.2.1780091788491; Fri, 29 May 2026 14:56:28 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v7 17/38] target/hexagon: Add handlers for guest/sysreg r/w Date: Fri, 29 May 2026 14:55:33 -0700 Message-Id: <20260529215554.606133-18-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-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: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX7rx0ued6D5b4 48h6WnnO1cRqtLE+ECorTQKdl7A0yBnPXMSDZhRuuizJ3GVSmmTDsqtpvPgIih0E8BQRWBFMT9+ YZx+yLJQRwHI2AVbm/PGpdsqGxJrAPPEuR/sgLzv/hYQpgbCfviz/9f3CGAGTRTmn+xzPUtBl/y 92zoyXCa83UF7xInAabJQnMEtatI+Dvesiwtq+DsbOpipw//O29HSwFjiXvRRTw/tmSrD3fEns/ XDFJcDba2gN/ydFt4JuMAHuwV3X/UVqSDclaokDfNG6pRavYvJpRaxzbBxOkR0Xv6ZWTUPVq81j +IwrGee+gD0rx9Dyuilck2e7crbGPncHcyArYEU4k1mywQUmmG3LTtNasY2VKqxBQqJwYMGmtIU 09IMcdEAt4Ia564/oQ8djohFLwIx3BxFGWZTC3Dt3M4UXeUE/lAzQqJTGS0CM0s88ZG6ps8JABY 12Rw9hY3/xOiQ6t0qhQ== X-Proofpoint-GUID: Gr56gAMgvadzPayrWJ7VHILngDQuGQ8_ X-Proofpoint-ORIG-GUID: Gr56gAMgvadzPayrWJ7VHILngDQuGQ8_ X-Authority-Analysis: v=2.4 cv=PtKjqQM3 c=1 sm=1 tr=0 ts=6a1a0b8e cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA: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=YS0KV4ZxTOLzYV__0jkA: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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 phishscore=0 bulkscore=0 suspectscore=0 adultscore=0 impostorscore=0 spamscore=0 clxscore=1015 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 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: 1780091851559158500 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 Sat May 30 17:44:05 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=1780092156; cv=none; d=zohomail.com; s=zohoarc; b=i+5r95rjW3hApObQ52iwini0GcUV5M0FCgvHd7NlzFIwr/+CjTdW3erFeFd6gCoBp21L4xm0S8XRvNPvfMC4Ix7e6Yr/C5+OF5LCZLLeKattixOKO9QVvG+8xpx+VeZNcVa5lQyc89ai3F4s55QFiPQfyJidCCdqyIAKH9131Wo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780092156; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=3X8bvXVW52I3fn1FyNjUiMXuaCQjKXZ/zTx+8O5PNqc=; b=PConsFj7KlPAbKlzhyTHrlndCEhDwigPcx2QHSjrlOB4BaIlMBcv0IwLFK4UqmBsZlYSbAWe3K+jQB41dyBtLGcohUCK3b+skun8ODhZEkxpDjrXmyJm+sdu2XA81niX7Vzf365hPyW2O81xHKs9I2gH07GthZeZXn8Jnn2cZJE= 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 1780092156594999.6252586284872; Fri, 29 May 2026 15:02:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5C7-0004XO-TT; Fri, 29 May 2026 17:56:43 -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 1wT5C4-0004Oh-PD for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:40 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5C1-0000TA-Bg for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:40 -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 64TI2OTm1862680 for ; Fri, 29 May 2026 21:56:31 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 4ef3te4p7q-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:31 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-304f1820babso1364110eec.1 for ; Fri, 29 May 2026 14:56: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-304ee0dd8e1sm3026279eec.21.2026.05.29.14.56.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:56: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= 3X8bvXVW52I3fn1FyNjUiMXuaCQjKXZ/zTx+8O5PNqc=; b=SxT95OcSKc7Gx9lY F7jMPk9/fapfiekIAbnZ82IOPt6NfxuHr+4L4Ka/weldyYk4IWpC3gRaX1PwucYD xsOmkYW8jZM/oanGeWgduGZr3O/J9rEo3eOaooLmXO44nILjtVXfHmE9x9XCFLSk swQTBPfFjgr6pJw/Mhbs9+KcfC24RIC/0rLhS3Wp8qvZLF3r3LSmyczDH00+BF13 e37IxRPrCtlQTN3NzQG7I8Hc7v90fLCZM8lEa8UlF0ls/DwaKGFcvT8CpuvjtF4p d7nIQ6Byzc4ppYkbJArN9t3vS4DMc+mlRHdkXs2lv3zvzOGsIMA8O33F7qotGCvY M82h4A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091791; x=1780696591; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=3X8bvXVW52I3fn1FyNjUiMXuaCQjKXZ/zTx+8O5PNqc=; b=AsUv0VPgC9e5YTDOZnaggQMkJ/DOKKK2M6yb7gGws8ImDM9xCAz4PRQhDn8zFAZivD UMVfxhbKtCKjUuk8B1W6B+vbaWqWxu1gqnSJVAKYtsQyyu7vZeoipZmrvNHQd9RvKT3V KeIfZk9fqa1n2FoKOnNZARvo/wRXsHemubNOH8nxGvrA7abgwiSYPYsr4qD7MxkgXSu4 vZc1fnwfw/UMDKHhmy1u7Yr2xxR0iIceCeqNjbPd2mhPl4EQTdmBiPp75alWZYklcGow HysuJSPiYt/s8DVCCn/nvuBEoyTPDGxDzwA28kEh0jsP/JVdVegegUtAlRflAl8WR2Lk AJdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091791; x=1780696591; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=3X8bvXVW52I3fn1FyNjUiMXuaCQjKXZ/zTx+8O5PNqc=; b=R2lieIY5QoFpVoBpmxg1e7SJme1YWEiXHEVGhdjHs6A+dvLNBfckImwYRtbqPRI2tR tf5kKPXPsE+SCaUjhYXgoCmSgTMHuwVHHzr0rglPFM6wO7SwMCks60SFDa8wRXnpJbjr W2DUYe7SpWpL6TMbNmBnVOk+PKcai6HGsXQXDNEzVljjRvv4EHSarhhJIpIwU1YiJ8DU MCmeMjIAz5do6x63HzQBX7nd6PTsmujWiv1BeptvhX4ZF7wX1eJ3CUqUotLlvG7bEGwb xpDCc+/g98zWYi8DF2FlC9Y+kK/zQGWJdMe7qINKidhjybVlZGxnre8nJB3fhPCPeR0P Im1A== X-Gm-Message-State: AOJu0YzLasTACVODa2g7TkL65waJL5XvBtztevWAKhjbh+Om4a3zLBo/ fVkOG05x6QeKzt4VHmD/vscDvQFAlkFYLmzcWKF/msXreDVycU780e8O68/y20fX1KTiZq77/lm lOiNiJOhrDR2UsygI+mZb1n2d+nbjmAguDpM5Ps3zyoziF/UiZsiuSsp5P2wMQRWCQw== X-Gm-Gg: Acq92OFto6tlBpKcrU/cK21gTnvJO4ojCfIlMiVw68bge/0SXiirqTTasloRfpj+HeF 3KI+WsLuB61L83/iTHynSZyQN3YS6TjTKpNBBBxoGrqD/lH4IeJuiW8IHav62uEdc3IurPUiWz/ WGk03qFN6T2ypzE0IVouFjM6qynh/X+rygWktjeGgbjTqvXbDSq2EuIEhYjsqVJpwSvoijSLSd1 yPnfNY5sSqPgg870+hOZv6CXjS+hlqszIn6nCy4QxHyVM1gw1bmzDj3+aNoe0FYs44dFnnXTJtP mkY/gurOOJvjFcFTnSvXwGM02PhwNSjhFjTJTu7+RVgB4GtZKcN9zgKS1o2fRP+SCDspX5s0Uyk S03ASynipEgArPNeMQJ3RYDKGuTWV3rLLwHnRovQGAO/HcSNLR6cTk4h+tEnJnUcgj6lfeHoDY+ iO8isV X-Received: by 2002:a05:7300:3b05:b0:304:df0e:9dba with SMTP id 5a478bee46e88-304fa6a755cmr789268eec.31.1780091790764; Fri, 29 May 2026 14:56:30 -0700 (PDT) X-Received: by 2002:a05:7300:3b05:b0:304:df0e:9dba with SMTP id 5a478bee46e88-304fa6a755cmr789257eec.31.1780091790262; Fri, 29 May 2026 14:56:30 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v7 18/38] target/hexagon: Add placeholder greg/sreg r/w helpers Date: Fri, 29 May 2026 14:55:34 -0700 Message-Id: <20260529215554.606133-19-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-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: Fvfk9vOhb9Tk4BLZ72iPUFyp4GtJOaqT X-Proofpoint-GUID: Fvfk9vOhb9Tk4BLZ72iPUFyp4GtJOaqT X-Authority-Analysis: v=2.4 cv=daSwG3Xe c=1 sm=1 tr=0 ts=6a1a0b8f cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA: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-Spam-Details-Enc: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX6ZP5CW58HnX0 ATha+2g69zAos+SDgvAS5CCU8C9Udl1ysZdo9JUsCBJzIZQKEsk3o0TOAbKoItpgN/zieUVgnsl j37Rp8G+UG/RdSzm1VONXadTcUYKjQegTxQ3kMaDO9KDa6pnFn+ujwZsKdJlY1m9qc6Os3XJxrg 2ZiD7jAJxs+SBvdYMASsbk3FOSB+JxbPE45NEQUS7+pIruQ4lLxJE/d/ra3SuzCFNKsCShP4OW2 72ZJJ0CaWpiJc1YqGWs0nwfBlSMdgoUeQ+wn99jxGwfsef8kn+I3UfvMpGN3JmcDqhFJxViQV+e o3kouISxihB2KHHMSBykgMhGruhaGIC59h81XDxmlLR/hNUx6XibF75FpJvOTk3MeI0JJ7G1ROI F11DwHo+z3xG+7aq8L/gph+S1P77167AvfY6z321NFbdF+JE6vdG9yF06bDstGsGTZHpxkPc9iB QeB5f3zIGZcrDuPsxUA== 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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 bulkscore=0 priorityscore=1501 impostorscore=0 suspectscore=0 clxscore=1015 spamscore=0 phishscore=0 lowpriorityscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 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: 1780092157549158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/helper.h | 8 ++++++++ target/hexagon/op_helper.c | 28 ++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index 64456822bc1..28b9b59e0f2 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -107,3 +107,11 @@ DEF_HELPER_4(probe_noshuf_load, void, env, i32, int, i= nt) DEF_HELPER_2(probe_pkt_scalar_store_s0, void, env, int) DEF_HELPER_2(probe_hvx_stores, void, env, int) DEF_HELPER_2(probe_pkt_scalar_hvx_stores, void, env, int) + +#if !defined(CONFIG_USER_ONLY) +DEF_HELPER_2(sreg_read, i32, env, i32) +DEF_HELPER_2(sreg_read_pair, i64, env, i32) +DEF_HELPER_2(greg_read, i32, env, i32) +DEF_HELPER_2(greg_read_pair, i64, env, i32) +DEF_HELPER_3(sreg_write_masked, void, env, i32, i32) +#endif diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 53898db815b..359bf12f1f2 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1373,6 +1373,34 @@ void HELPER(vwhist128qm)(CPUHexagonState *env, int32= _t uiV) } } =20 +#ifndef CONFIG_USER_ONLY +void HELPER(sreg_write_masked)(CPUHexagonState *env, uint32_t reg, uint32_= t val) +{ + g_assert_not_reached(); +} + +uint32_t HELPER(sreg_read)(CPUHexagonState *env, uint32_t reg) +{ + g_assert_not_reached(); +} + +uint64_t HELPER(sreg_read_pair)(CPUHexagonState *env, uint32_t reg) +{ + g_assert_not_reached(); +} + +uint32_t HELPER(greg_read)(CPUHexagonState *env, uint32_t reg) +{ + g_assert_not_reached(); +} + +uint64_t HELPER(greg_read_pair)(CPUHexagonState *env, uint32_t reg) +{ + g_assert_not_reached(); +} +#endif + + /* These macros can be referenced in the generated helper functions */ #define warn(...) /* Nothing */ #define fatal(...) g_assert_not_reached(); --=20 2.34.1 From nobody Sat May 30 17:44:05 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=1780091955; cv=none; d=zohomail.com; s=zohoarc; b=Vm2CHTUa7uf+NNHPnYi339kIbE0TXNyx8ai+QdgmT6B/Qw//HioZ3/r1CAc9W0oBzYR0BpykXN4sYDl/LQsjOdoc5mjFFbIo+R8w+SP+f8bTqcqb936KOeL4eYYfWZVshuhxQmhlM0EIK5Tz4ex/NwWuRyolMcIsJt/n2Iv7Xqs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091955; 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=lAf85VTKCRNOL8VWR6DSnLr4yR4IXWVDM6xyT5ZNd0Q=; b=GvYbMC0OfcS+1Fi8zg9Ksj+m/ZY0TSBUNPF/AWrZhW2m4+TcqKx3q2m/cd+g/fD/ryLYTqLsZ1qofuDd5YjNjminTbJZTEVhfcms4yONIv9B6+JY/+zZKz98lk4SZXYoOWxfgOgBSE1HESPvH0TEnHhuAng5lgzlWA00Po6THW4= 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 1780091955408131.30862182831072; Fri, 29 May 2026 14:59:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5C6-0004SR-2w; Fri, 29 May 2026 17:56:42 -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 1wT5C4-0004O8-LJ for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:40 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5C1-0000TF-Dq for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:40 -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 64TI2JbK1912271 for ; Fri, 29 May 2026 21:56:32 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 4efbu52ghq-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:32 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-2fe1cf409a1so4775645eec.1 for ; Fri, 29 May 2026 14:56: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-304ee0dd8e1sm3026279eec.21.2026.05.29.14.56.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:56:30 -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=lAf85VTKCRNOL8VWR6DSnLr4yR4IXWVDM6xyT5ZNd0Q=; b=jg Uef6vEwvkJCxodlj2KXah+KwTV0UYRBvXbgjAk6ZhCpbqHP2ee3kZNl3Fc9kwTSK +JrGVnF0/CZkMoP0oie7B07zLWjNY/HiuZXAkPsjVRd5np9yUT3ZoRpL8RF2p4J/ Kqi2Nmm1c5sAOC8HhKWL0QiHtTyM90WE2yyQzIdVdfl1C3ulv0G4gfdgdxyQIwB+ SB+6sY6rVIhybcPYZH+Abm8yW6pq6CSc8A9K/srazMn91maacqNv+Ys2Sv1vgied SGNnQa3U7dNktJvM3QaWLKDRE1sot/wiOqW20/W2bBmro4AnCvAB//fs37e5b/P6 k9VZzG2GBZM8aJCvrAww== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091792; x=1780696592; 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=lAf85VTKCRNOL8VWR6DSnLr4yR4IXWVDM6xyT5ZNd0Q=; b=eVkWNMt/b7QH+tOPIgCP5i9Y9HYLcMIrJePkZtnK64J4+Z4vohqUBvD9JnYqawhkrl VRgAlBEV1ZOaIpJhuFQgJsAlCNE9QqU+PhDIP2LGgZFSZzwpbdmT7ZwdEzeqN2DEX16h 7c1kvZ3SiBat/XIYFthT+AYcZGSQyip0XNCqqf/A5uh/J3voxr1JnjS4XIcbG2NrjfND tP31YGpPK24/b6L9Dmpz8BADYD96njtqZLQdQyp2Tn1Ki+rof63E4bRYxLmuEv2jVhU/ x5QiLSpnZHYaHkEUFkXJpN/Dm2k4FBEfGGP5B1ci6V0Qprj+0wlUUWQUbSHcVef8XsUb hduA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091792; x=1780696592; 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=lAf85VTKCRNOL8VWR6DSnLr4yR4IXWVDM6xyT5ZNd0Q=; b=mQLg46LXHgnWN2dbRrj7IWJhIisctBnQSPs3dvYFL751hPGnBnFwDFB7sGoaPWYN7m HN/onrr0elQJcKQVvK8sRVW0YxlG555ZcFrWY4+3rj4tx1VRF+FrB8rDZlTKqnGlm2Yn bvRpgSUwq3c282pfjTKaZK7W0urm15tq02ezzKfGUS/34nzD2pmry4djz548lEDL5z+1 iwlpa7xb8ec3qBIhzeDhlpJksIxa+lgSssBwvrP2+6l8dH4GVHTqaKPTCgHgi7CY972o UFjb3BwRkyQLgQRRxe17AMR7p+XcY3rA6rkoUX5P1rAm4GvwCSXJM0cGyxxLEOIyJvLX KpsA== X-Gm-Message-State: AOJu0Yw9PL9vAwO7F/gA5kgxRr3Rg61rHP5XArw8twMxxpgpBS+AH92R V21K1g9cjc7JmugkcLyL8PGWQZYgjEw334tFET8COrkEP1tWC2jWsGTY0OLLpKZ03BPzAEuYJvi OLDr6kpOT5dqvAmPIGnN/zKRvqq8Wxq0Sg8rT8txqq8hZE7CmcQk3ncc4aYmK+mssXg== X-Gm-Gg: Acq92OEyYZCZ//bPCN2mMll21DNwHiRoeXsjtikFhybsLDt+kXsB0Cr/5mxhhgKF6z6 9wZN4WZIXuVHbsUueb6DVpROnRNMzSBg3Z9N0bgrKwUoCzqFvx0tziMjknbRhSw4t8qDFOURW2/ Lz0/fNCjfvahTu1QFpEpPFuoZ0SdEKzXREUaqlwhIFyGVmGfLJFLIbrfH3QRakbHg8ug1lRLwHg wNOZrz73W5mGyYXevjlNDX2RH37qLx8StR5hOHR7+2fuyRj9uLv16iBtCkYUJyHmxepl9dzQtLJ Y7xPH52spRi9AWaBhWiexJYPSOgTzIds2Xc7Q+Afod+jdUkY/MQvaa8f5Kk46rTsXgeDueFttgw TvnQzIhDqTFlhFvkuLc593T8o4Tho4YK7dNCnXtF9LPbxnxRj1Bw3mC7PO/UV1f4rKDeoM5rebO JsOY5w X-Received: by 2002:a05:7301:2e89:b0:2be:1f58:32a3 with SMTP id 5a478bee46e88-304fa66ca41mr893590eec.29.1780091792017; Fri, 29 May 2026 14:56:32 -0700 (PDT) X-Received: by 2002:a05:7301:2e89:b0:2be:1f58:32a3 with SMTP id 5a478bee46e88-304fa66ca41mr893573eec.29.1780091791500; Fri, 29 May 2026 14:56:31 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v7 19/38] target/hexagon: Add vmstate representation Date: Fri, 29 May 2026 14:55:35 -0700 Message-Id: <20260529215554.606133-20-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=SMRykuvH c=1 sm=1 tr=0 ts=6a1a0b90 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA: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=Oj8_dRLdxnToIsBgiwgA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-GUID: BK7axw5qgzVylHkJitqo8-NMPj6JVZbI X-Proofpoint-ORIG-GUID: BK7axw5qgzVylHkJitqo8-NMPj6JVZbI X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfXyiFLm+PiR20+ nfH8jRCn4xf2/MhgubhY5iWCLni1G3abBQTwOFaYjqgB4fu+8dR+Rnq0/VZ/HR78YewkfxjKSwe l05s21OZ+9qUoXOApx60YuoyTJnnVTC5g99/UBvXyks1/Oj9mbY8T0Y/cZl/HyHWsbOp7HiPCmH xMTYn33OJyAd0Jewg35zb+EnVrBSUDEzbUyM9loTEFNucirmgXb7WMRJHNHVG+5B2W9IXWuZdQc ZwFrPhot+jLUL2/56h0bPjm8yINA02DYo3BA2bFlqbHEKw3gxzz/5fVVja9yxTcsXiqhG8o6A71 67TnQTwLmkiUkZL/q8OcNEiVQ4vuKu9LyY9AfpSTHh1s0VUiNA0y6FM6njFbbFC9Sg0bLblvysn Fk4Ol6Aqy3ikH2ERQS3aFpT5aUyVZEmnmAE4QEKZZiKn3lOLL7Z9mSS/IJRCQ693BA5kBoGcuOG cIwRbbRNHK5TnRf2QDw== 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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 lowpriorityscore=0 malwarescore=0 adultscore=0 clxscore=1015 phishscore=0 impostorscore=0 priorityscore=1501 suspectscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 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: 1780091957441154100 Content-Type: text/plain; charset="utf-8" From: Brian Cain Reviewed-by: Taylor Simpson Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Brian Cain --- target/hexagon/internal.h | 4 ++++ target/hexagon/cpu.c | 3 +++ target/hexagon/machine.c | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 39 insertions(+) create mode 100644 target/hexagon/machine.c diff --git a/target/hexagon/internal.h b/target/hexagon/internal.h index 5fc837ae229..cd06ff41d4f 100644 --- a/target/hexagon/internal.h +++ b/target/hexagon/internal.h @@ -31,4 +31,8 @@ void hexagon_debug(CPUHexagonState *env); =20 extern const char * const hexagon_regnames[TOTAL_PER_THREAD_REGS]; =20 +#ifndef CONFIG_USER_ONLY +extern const VMStateDescription vmstate_hexagon_cpu; +#endif + #endif diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 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..ce253f42ac7 --- /dev/null +++ b/target/hexagon/machine.c @@ -0,0 +1,32 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "migration/vmstate.h" +#include "cpu.h" + +const VMStateDescription vmstate_hexagon_cpu =3D { + .name =3D "cpu", + .version_id =3D 1, + .minimum_version_id =3D 1, + .fields =3D (VMStateField[]) { + VMSTATE_UINT32_ARRAY(env.gpr, HexagonCPU, TOTAL_PER_THREAD_REGS), + VMSTATE_UINT32_ARRAY(env.pred, HexagonCPU, NUM_PREGS), + VMSTATE_UINT32_ARRAY(env.t_sreg, HexagonCPU, NUM_SREGS), + VMSTATE_UINT32_ARRAY(env.greg, HexagonCPU, NUM_GREGS), + VMSTATE_UINT32(env.next_PC, HexagonCPU), + VMSTATE_UINT32(env.tlb_lock_state, HexagonCPU), + VMSTATE_UINT32(env.k0_lock_state, HexagonCPU), + VMSTATE_UINT32(env.tlb_lock_count, HexagonCPU), + VMSTATE_UINT32(env.k0_lock_count, HexagonCPU), + VMSTATE_UINT32(env.threadId, HexagonCPU), + VMSTATE_UINT32(env.cause_code, HexagonCPU), + VMSTATE_UINT32(env.wait_next_pc, HexagonCPU), + VMSTATE_UINT64(env.t_cycle_count, HexagonCPU), + + VMSTATE_END_OF_LIST() + }, +}; --=20 2.34.1 From nobody Sat May 30 17:44:05 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=1780091842; cv=none; d=zohomail.com; s=zohoarc; b=A5T0IFIbiSe4GCQ+ykcWLns5vmKn0m8B2+09vcGcRYyHFiprA102Im6nCwHAiyayiZWWU/cvvr/I9cRcqM2oTr0Wv+So6zko1vFU2AfJHnNGg2hZkQ/+veQOY+Ln982mNsuDjzLP96DLXwmHw/Vpv0IPXAIpLK0prwVBXVGLj2s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091842; 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=eW6jEDi/j5+qh7ZTpnTuv/XwYgUlBc4N2CVACp4zSvGrKZC+vBPyvXKyPGPuLBTnznBglUT5EC/XhfYrSauvTgBbVdbQWICd9CCbIUa5VAJnGkTFGCStThy/Hl/VS9akCauY6trSIT0yv47Kxb8FqWQcP/mbR7wWiTGuGMEP7OU= 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 1780091842430199.58632215533441; Fri, 29 May 2026 14:57:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5CF-0005BB-KQ; Fri, 29 May 2026 17:56: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 1wT5CD-0004yJ-46 for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:49 -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 1wT5CB-0000TL-CC for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:48 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64TIf02g117946 for ; Fri, 29 May 2026 21:56: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 4efg9vrqab-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:34 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-304ec73b015so966180eec.1 for ; Fri, 29 May 2026 14:56: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-304ee0dd8e1sm3026279eec.21.2026.05.29.14.56.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:56: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= YSGjopxVE+rdAilYCXMYF1ogegIN4PeOYEB5C/MYTiE=; b=i9TknPk+lbt3O3l9 afJ5zfss6taj5s7Sl5p/jJyyulP++ozkVP8RyCwy78NQtIxoPOpkpYXgqGyDRjmx NMJJtBrF2ddKqEPvS6wzHOEKk3cbPahdqyZf//HRiO5hbmIZ/52puQ/CLqZQ8Dpi w5drpgCuNvTx6hrZjeHrszxRtL3y0EToCfS1QWF1HyvgszHc3uRR8m7D2f+vNDZA y6P+TncgwBygt/0RrkSWvzmcgWRlhNOVWAWiQZHZpv0u3cxlqbbNg6unMpziCvbH bePuRVgJJuWV7qCjRjQpbyCvS22vYJ5pDV6xGQ/gAjRPkbOTjNkKeEM1L8hZo6+q ZeQ6pw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091794; x=1780696594; 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=ADBHpAiT8ZBgN2gTxbCZPvKCmL4f54oVGgjlt+f0KVCZuvqh+lTK+IK9AR3i+sPMJ8 ptMRznrmAsKQ2GVPDzJDz1bWIPlEiKdmtesVjajVHuto5S8iicAw2HR8WYVt0W1wGCFl 5Jmxprc9NdgkkyokFstfqTFNjhhkFAuAAHk6dGCF8cMd8dMINxKcM9Y2cRuTxMX07Osg mZnl6Bx7NA78CyxUDFxGuAgn6PDms0LmKDQMRA9PG2XiscORh0qOGg5JPzuTW7v0tXN3 AiVfwPz3vBfke+lfUv7fq3MnmSgzw3ltHd08+0PXWfUtuBp7PP/EniWE8FU2uW1uLwO2 vARA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091794; x=1780696594; 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=pPNM3oYiJiaj/xezkeCggv/1m4RU8+haX5oTLcbiGJPpwta/vSSQk0WNJh5d4YlslI OdEj4AL3gLQ9wbk03iAt+xeAKamNapvmq6XCyEQ1/cGRWtCW5tSfN4i7vcXA01xhgbUq oYN/EOA5mepwMzGE35ajN5840hEH4X7mLRhk0/SOJ5Oca157dfdzmLW+3AtZO0tXtP0E 3m36LMEoHHODveC03xwmmUeP98w3wK+xNzPVg0NUsPLHaPq+1AY8Z/4S3NFQGEoJYe3r NaE1m/jNsjGnOrxkV5LUl4kqm3omczS1s6PwSI+sK27qkn7G8PHP2mGpzfID0IS9IWrj G+FA== X-Gm-Message-State: AOJu0Yz7mi91JnM3/kRQIGFLRTjbo5N9apbWCZjLQrNILN0ZWhWDnwj4 b9E7RmRRJeuVMpi1fo36L6/tTaKp+nhgk+BOwY3EQXl6J0/BZkiJOfGYZmQr/qYEgsp51yySd10 jWsuds6ynVQJOu0rWq88aPRGVxBk0VVwB0WSrq56p9DCSFrstNCZ80eyredy89f9rzg== X-Gm-Gg: Acq92OGTGHAYIJUooI+ZHvkgZuHqtzJlVEetaHit/icDYuZ5u13zcksfgBkrsib47jF tOO8OK8me13Q58ow0dpkcxNH3z7Op0sS6ad2xqSrfWbG0MbrJkBRQOYvk1Gr2xeeRtE6VW3nHOB Sbg29YmVP+unmBvdeGc59Xilwuh8AH0gT6jDZl+Dns8xvS/h3Cwb9fblRqHUpR0MvaVkJuw2NwW RH5zgASb8syuppCTB4yL9fx8ihou7iTQO8HbaN99NvJg7mWsgHMjRfMyAKFG6EtWHqY7kVNGzlk e0gRY953n549Uit0CM9j+PE95oOR7WLa9Xw76KgWjTU3JbP2Lhar5guFL/E99OCYKPSvqkkXI5b r5ylsTz7NtstVQYFfrx7h4gptulPrrfLotfKO9MPard+UtXmdoaVWCNicA564d3FyXbWNwRffb8 yhNN+X X-Received: by 2002:a05:7300:2214:b0:304:c01e:1cfa with SMTP id 5a478bee46e88-304fa5e857fmr970736eec.16.1780091793680; Fri, 29 May 2026 14:56:33 -0700 (PDT) X-Received: by 2002:a05:7300:2214:b0:304:c01e:1cfa with SMTP id 5a478bee46e88-304fa5e857fmr970723eec.16.1780091793167; Fri, 29 May 2026 14:56:33 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v7 20/38] target/hexagon: Make A_PRIV, "J2_trap*" insts need_env() Date: Fri, 29 May 2026 14:55:36 -0700 Message-Id: <20260529215554.606133-21-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-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: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfXz5NjqG7UFmgW xPuJLbb/LGvCfNsUM79xj7YFCkXG3CmlVS7mLptcDAL7e8JKrvcheb+W3oNwrdyt0EzP8uTrXHE PksWb+gmor1og55PD6HyWeV4BJRGhQRuHvLKY22BPIkN4p8PlfgosaC2dU9urZLhne0pEx4OfOH CLgJu7PtKEMTX5kwO3aDC8wKrr9b8KGhCPyw9SWUO/8J6HlC2oSsAl/RDR06CoorfziBFMA3WWi nhouWg9BVHUdR+Qns3Ig8DXKJzR92sOHKnCHTAyOXs95uF1xEdv3Pra2NnKSuHL1y/kVvCM7gnw RBil/iUcHg+iMel1RtrMMeJhQUMAGnWRx9DX8I0O69nb+FrXHQkYs5OZwwaXLqjLOcKehv1t9LT Syr4mSrirANM0IiCkL+A6KnfrHoVbHQOL9eQF8qRq/wuZGyQ5yQWTpVoxXmB2LKuQz+RJ8LXgvQ H6O2+Tc5VlCgns0kbdg== X-Proofpoint-GUID: cX4aULBBu2jk4YbDLarf5Y-a5VM4hAMN X-Proofpoint-ORIG-GUID: cX4aULBBu2jk4YbDLarf5Y-a5VM4hAMN X-Authority-Analysis: v=2.4 cv=MJpQXsZl c=1 sm=1 tr=0 ts=6a1a0b92 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=923NME1-z-asBZaYXDoA: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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 malwarescore=0 adultscore=0 priorityscore=1501 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 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: 1780091843534158500 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 Sat May 30 17:44:05 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=1780092147; cv=none; d=zohomail.com; s=zohoarc; b=jKdRoUT2G3o287UuqxjBcu19w3t3iIJtLXe3HeODHrlnFTsNt+nHDG2Kxzc9jufn5Ts6U6E4hvam4Pc3wKwmihp3oAmFcZrYVkH27JhlS2bYvwPS/nN+SjdYa7lDuGMiQN83wrQbUI88+I81Nk2IiiotU/tMm5FaP+o1+tC2j0I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780092147; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=dGlGzUayTwiXC/bg5YrAB2T6871CPG9HNKS69hKBulU=; b=QPk3fOk/j+9KnWrI3+GPdCq/F9ywyKdRC5lvfW6oCsHUm2ImQVJyfAOn2F5GaKEntw3e6e/BEkGUUs9kg/RfTf5LSOtrwJZdgtwfqVafwwkuY76+CLGASg5BhV0j3KEJKCEZVNT0QkbBnXzRXywu6WBkdD4CPKIue2QF4BrWFIs= 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 17800921472631023.1815257130785; Fri, 29 May 2026 15: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 1wT5C7-0004UT-3A; Fri, 29 May 2026 17:56:43 -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 1wT5C4-0004P0-R5 for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:40 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5C1-0000TP-DA for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:40 -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 64TI2Xlb1863255 for ; Fri, 29 May 2026 21:56:36 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ef3te4p81-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:35 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-304dd917645so2000366eec.1 for ; Fri, 29 May 2026 14:56: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-304ee0dd8e1sm3026279eec.21.2026.05.29.14.56.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:56: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= dGlGzUayTwiXC/bg5YrAB2T6871CPG9HNKS69hKBulU=; b=Z/0TXCsEwZs9IHDJ 1iw9ktPLWgk/BcTGu0uD+waevtxjv8h81oxrt3D6LJYppGjR/7Mo33vmUfGtww25 OFRcCSIGcm/knu3xC+qDpqOcj+bQySnU/extrnOrRkpmpXc56+7Y4IYX9+8lkXyk +0P5MXWTL1bljrNyOaQm0guVqIOPuIbbWdqjHMvbG5TdeXyFWobs9SVg+fRrnB4m oDzP970imZfFr6p3RfGGR9ar7eW6DwL98shUewg/R5Wds4xIXG/A5wyEUPxhx/jf hCQ+MOYGWwflWcLpt94I8bJ/l01XIFe7dsuK3Y3is3M0ZemMGRVqLeVrr1fRlfv3 dZ0TxQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091795; x=1780696595; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=dGlGzUayTwiXC/bg5YrAB2T6871CPG9HNKS69hKBulU=; b=g+oxI6R9eWQAeZx9Ra7LT5/t1SGrMfG+xJ42//CcvCC110bQSw8EAz/hMK1j8r9Gao fLVeP7SoUfyIY9yhwD0kBNeaBwRvrNg4OfraJeLgcoE5W68TJAYVWiJdI/URT1aXrA44 ETHzGh88eCqOEpfZ2iVn2ufQoGKdDKMbvLRWG6PuSJHzQVy0Yccx/B8SM5XP+EPIN34j 689SYRQM6fc3LrxYkhFHYE8nkYqJDNy6+iA7CoxTMwcr92JhXwvKqt1i21gptg0ikHlP GYuG8+hTwh6NNI+UnYJnbKCVJphOpOsVgZuqzquP2XGhZWHYYp87spfNBCiLITPyQY49 0LiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091795; x=1780696595; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=dGlGzUayTwiXC/bg5YrAB2T6871CPG9HNKS69hKBulU=; b=ikyUIweZpiMbDKj1lt8VUfBsoe26ulQqot7IfgiQ0oXQI0VWjBE5SyXjlJGrNIB+CW Ld2ao+70fCCP1zrVdkjGY0kgfdPsx1DQkMo4EE4aQWsNq4wDFWNYub7jocDKpEpEfYNU bSjRoZOEy0YG24MErV7cWfJ2sjhY/95GmSncPjE2Xn7j+Tyry7EKswxOpZzWTJDTRDCj otdabi6tzKQthiFZ1v9yiOTSV4Mw+ldlNymPqQIe6OWaQkHhW3rgNAFcUilwT1YRaiGl IA2CQkunNSTf01whsbIT2FLa7BmOkPU89yKPeufn385FPBvwk3qu93SwVZJNFg+DR7ww KttQ== X-Gm-Message-State: AOJu0Yxw79LX8m8GXQ6drMxhqy1+IupkkkMcH/3YUqbN5BnSbmh5OaGv lgA5LrflxgpszU62mSZDF6FzG4LYdo+sXmtzyVa3+bWj3Z4JIwcHtlF4MIB+9nUIgHGZ6yQKMd8 KUqmuVokYifjEAEutqxxpdoUmKjlnzFIDFmDP+7ugX567vuWUcw7CqeA/TJnEFzBN1A== X-Gm-Gg: Acq92OFcZg38eta0NCxpi4XMmrRYKA+7Zu0PMaVrTqIxIrUPSn4aSIYe80NM0jLxOkt /VzzVMFKaL/gH5ScT9uwZSAUoLaQBVCDyzlHVRh5GDvcNmcX31SlqMVqRe/YAozs+WdyVmdkYc0 YCX5VegT1pqfkJPNN89TUg0HNLs7Xte9TXFXvbO8xWEQ5JQ0vrqeE1yNwt9dKEzyhbUU4MohHlP ys12JJHWXwcD+s3TR/z1ew+I0y+SDFNd2l7uEjkLTGSoEsy46hF09Zdxn7Llq04tHTQB5mYlrI6 oKymEjNGA3tBb5qa2IyDRlAQ8CNxEdIV7Ce4/JVnMp2lNTm297o+XMN1yihqNHEmnvTLkFs6hB8 RoNYQF69Qe2hxG0GkcksY4bUQF6WbbRtRPkIrPCDZYXQKiPADeb46viOBGuN1CIytBk/qo5sz2T F7JgGU X-Received: by 2002:a05:7300:e683:b0:304:6139:5a3e with SMTP id 5a478bee46e88-304fa6c856dmr790839eec.34.1780091795070; Fri, 29 May 2026 14:56:35 -0700 (PDT) X-Received: by 2002:a05:7300:e683:b0:304:6139:5a3e with SMTP id 5a478bee46e88-304fa6c856dmr790818eec.34.1780091794565; Fri, 29 May 2026 14:56:34 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v7 21/38] target/hexagon: Define register fields for system regs Date: Fri, 29 May 2026 14:55:37 -0700 Message-Id: <20260529215554.606133-22-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-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: XkdTnTaVNI9tCySm-9e4OpOXVeyam0mU X-Proofpoint-GUID: XkdTnTaVNI9tCySm-9e4OpOXVeyam0mU X-Authority-Analysis: v=2.4 cv=daSwG3Xe c=1 sm=1 tr=0 ts=6a1a0b93 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA: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=mmKuwxttERDeH49ycpoA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX49zHQNODVAp3 OQ1/7yiPVKyiGk/B/ames7z9VyEJVSPTZKF+EHHWwc/c71wbta0BCIV7QFbcTy5WdiOjwNsqyf5 EAsBLBoIdF4w3Xot0V4x4FXgRIcOtqa88pD4zJCQw1IFaZPtLne5LykU0st+sSvMrlUvvHtgPyt Pk7NSfe63HJXUyR4mYKNXSywgNZ5aatGM2HdOoax4Ld7awHIyPBTe6AiEPTzopHqw3M3xzUsFZK 0dVgLTRvYNaZshwzjGRVauPyEBgEudl9nuLRO0h3NUqK+JKm3JuAU4GmcUFCpnwrGVtxiPSfLi5 tsktqtgWS6XytxxQFI8Ude32l917BIiVTG7shXilRuSbPV9llweZdXnHB0AyatytffXTnJX4cCC RIG/XmG5DoTAWS7Bdk3ExRp8cOn9PTz5ZAzIXu5GyI59Oxqm+1ZLjFRVwXgNMYeNoRSuzw5OT/V cvB+8NFn43IkwlcrqMw== 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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 bulkscore=0 priorityscore=1501 impostorscore=0 suspectscore=0 clxscore=1015 spamscore=0 phishscore=0 lowpriorityscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 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: 1780092149322158500 From: Brian Cain Define the register fields for ssr, schedcfg, stid, bestwait, ccr, modectl, imask, ipendad. Define the fields for TLB entries. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/reg_fields_def.h.inc | 96 +++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) diff --git a/target/hexagon/reg_fields_def.h.inc b/target/hexagon/reg_field= s_def.h.inc index f2a58d486c5..9b112ccec64 100644 --- a/target/hexagon/reg_fields_def.h.inc +++ b/target/hexagon/reg_fields_def.h.inc @@ -39,3 +39,99 @@ DEF_REG_FIELD(USR_FPDBZE, 26, 1) DEF_REG_FIELD(USR_FPOVFE, 27, 1) DEF_REG_FIELD(USR_FPUNFE, 28, 1) DEF_REG_FIELD(USR_FPINPE, 29, 1) + +DEF_REG_FIELD(IPENDAD_IAD, 16, 16) +DEF_REG_FIELD(IPENDAD_IPEND, 0, 16) + +DEF_REG_FIELD(SCHEDCFG_EN, 8, 1) +DEF_REG_FIELD(SCHEDCFG_INTNO, 0, 4) +DEF_REG_FIELD(BESTWAIT_PRIO, 0, 9) + + +/* PTE (aka TLB entry) fields */ +DEF_REG_FIELD(PTE_PPD, 0, 24) +DEF_REG_FIELD(PTE_C, 24, 4) +DEF_REG_FIELD(PTE_U, 28, 1) +DEF_REG_FIELD(PTE_R, 29, 1) +DEF_REG_FIELD(PTE_W, 30, 1) +DEF_REG_FIELD(PTE_X, 31, 1) +DEF_REG_FIELD(PTE_VPN, 32, 20) +DEF_REG_FIELD(PTE_ASID, 52, 7) +DEF_REG_FIELD(PTE_ATR0, 59, 1) +DEF_REG_FIELD(PTE_ATR1, 60, 1) +DEF_REG_FIELD(PTE_PA35, 61, 1) +DEF_REG_FIELD(PTE_G, 62, 1) +DEF_REG_FIELD(PTE_V, 63, 1) + +/* SYSCFG fields */ +DEF_REG_FIELD(SYSCFG_MMUEN, 0, 1) +DEF_REG_FIELD(SYSCFG_ICEN, 1, 1) +DEF_REG_FIELD(SYSCFG_DCEN, 2, 1) +DEF_REG_FIELD(SYSCFG_ISDBTRUSTED, 3, 1) +DEF_REG_FIELD(SYSCFG_GIE, 4, 1) +DEF_REG_FIELD(SYSCFG_ISDBREADY, 5, 1) +DEF_REG_FIELD(SYSCFG_PCYCLEEN, 6, 1) +DEF_REG_FIELD(SYSCFG_V2X, 7, 1) +DEF_REG_FIELD(SYSCFG_IGNOREDABORT, 8, 1) +DEF_REG_FIELD(SYSCFG_PM, 9, 1) +DEF_REG_FIELD(SYSCFG_TLBLOCK, 11, 1) +DEF_REG_FIELD(SYSCFG_K0LOCK, 12, 1) +DEF_REG_FIELD(SYSCFG_BQ, 13, 1) +DEF_REG_FIELD(SYSCFG_PRIO, 14, 1) +DEF_REG_FIELD(SYSCFG_DMT, 15, 1) +DEF_REG_FIELD(SYSCFG_L2CFG, 16, 3) +DEF_REG_FIELD(SYSCFG_ITCM, 19, 1) +DEF_REG_FIELD(SYSCFG_L2NWA, 21, 1) +DEF_REG_FIELD(SYSCFG_L2NRA, 22, 1) +DEF_REG_FIELD(SYSCFG_L2WB, 23, 1) +DEF_REG_FIELD(SYSCFG_L2P, 24, 1) +DEF_REG_FIELD(SYSCFG_SLVCTL0, 25, 2) +DEF_REG_FIELD(SYSCFG_SLVCTL1, 27, 2) +DEF_REG_FIELD(SYSCFG_L2PARTSIZE, 29, 2) +DEF_REG_FIELD(SYSCFG_L2GCA, 31, 1) + +/* SSR fields */ +DEF_REG_FIELD(SSR_CAUSE, 0, 8) +DEF_REG_FIELD(SSR_ASID, 8, 7) +DEF_REG_FIELD(SSR_UM, 16, 1) +DEF_REG_FIELD(SSR_EX, 17, 1) +DEF_REG_FIELD(SSR_IE, 18, 1) +DEF_REG_FIELD(SSR_GM, 19, 1) +DEF_REG_FIELD(SSR_V0, 20, 1) +DEF_REG_FIELD(SSR_V1, 21, 1) +DEF_REG_FIELD(SSR_BVS, 22, 1) +DEF_REG_FIELD(SSR_CE, 23, 1) +DEF_REG_FIELD(SSR_PE, 24, 1) +DEF_REG_FIELD(SSR_BP, 25, 1) +DEF_REG_FIELD(SSR_XE2, 26, 1) +DEF_REG_FIELD(SSR_XA, 27, 3) +DEF_REG_FIELD(SSR_SS, 30, 1) +DEF_REG_FIELD(SSR_XE, 31, 1) + +/* misc registers */ +DEF_REG_FIELD(IMASK_MASK, 0, 16) + +DEF_REG_FIELD(STID_PRIO, 16, 8) +DEF_REG_FIELD(STID_STID, 0, 8) + +/* MODECTL fields */ +DEF_REG_FIELD(MODECTL_E, 0, 8) +DEF_REG_FIELD(MODECTL_W, 16, 8) + +DEF_REG_FIELD(CCR_L1ICP, 0, 2) +DEF_REG_FIELD(CCR_L1DCP, 3, 2) +DEF_REG_FIELD(CCR_L2CP, 6, 2) + +DEF_REG_FIELD(CCR_HFI, 16, 1) +DEF_REG_FIELD(CCR_HFD, 17, 1) +DEF_REG_FIELD(CCR_HFIL2, 18, 1) +DEF_REG_FIELD(CCR_HFDL2, 19, 1) +DEF_REG_FIELD(CCR_SFD, 20, 1) + +DEF_REG_FIELD(CCR_GIE, 24, 1) +DEF_REG_FIELD(CCR_GTE, 25, 1) +DEF_REG_FIELD(CCR_GEE, 26, 1) +DEF_REG_FIELD(CCR_GRE, 27, 1) +DEF_REG_FIELD(CCR_VV1, 29, 1) +DEF_REG_FIELD(CCR_VV2, 30, 1) +DEF_REG_FIELD(CCR_VV3, 31, 1) --=20 2.34.1 From nobody Sat May 30 17:44:05 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=1780091829; cv=none; d=zohomail.com; s=zohoarc; b=HN9nFlqSdQUxY/P3m0eRrX4uO1i6kESl7DcQ7ymxGiHkdOSgOU3jj560S2C4qY8noxsSU9GL+x3RamHs5Z7O4y0CHG2JbBGR6Mq+O84ebM8w7MlqPXMC9/xjvUzrMgxMoNmpp7rW5BLwhlc4iYocY4YPpj/QAqZwExLW+avJZO8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091829; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=VD8bHDqIwxQ/ejdGEqcRWpPLOabnnnaX/QlfiL4OvyI=; b=foUC/NRebjPP85VuqljVrJBzGif8I5phWXwCiB8ry0XAZlP+ziUG9TirOg8iz8yQuzCeUmBTOewaUkhhy4FK+8uIrru7jpaz4DUfyk9Ahb81MphFftQDzpAChmyWqcHRmcCwj8uEEAgNVHeirIe7s1feW4aBc1ODHIWRm1bl9Ek= 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 1780091829540104.21922673410234; Fri, 29 May 2026 14:57:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5C9-0004c1-CG; Fri, 29 May 2026 17:56:45 -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 1wT5C6-0004Sx-5m for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56: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 1wT5C2-0000Tb-LK for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:41 -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 64TIQYas877127 for ; Fri, 29 May 2026 21:56: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 4efg340u7a-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:36 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-304e3e3fba5so6169681eec.0 for ; Fri, 29 May 2026 14:56: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-304ee0dd8e1sm3026279eec.21.2026.05.29.14.56.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:56: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= VD8bHDqIwxQ/ejdGEqcRWpPLOabnnnaX/QlfiL4OvyI=; b=CNqXV4jFDMdnFll8 +EKcclSTDv/HhR8uX1RMB1/9QtZpDs80EftBnmR9ab/MIR+H98N2v7wGN1FNx1ER +wZ9EUXtzkD5lu3n1Ehiaom8CwxKG8of6KD5WKEC+2mPXy0nNHK0yYX2uyO3Bgi3 aOAYkuC5W4nzpfPJ8c6yJYzfsiVUhgcs4ekP/L8TNYIw8FbJi35Eoa9qMC6unNO8 TtfkCqS7sNWi7AkDzh17wQpvamc82yL5BXtKpRa0SwekjzM8XH+d03hMRo5M7cf3 5cnQ4WS8dRsO4NMk7rgrvFUgad/KBGplxBFu1lSsnDGqQtTMe9BW590qufdUAlwW SoTK/w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091796; x=1780696596; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=VD8bHDqIwxQ/ejdGEqcRWpPLOabnnnaX/QlfiL4OvyI=; b=U5wiO6BepIQNCTfmQ++z48hhmq362eytQR8XDF1dHgG38maX03ll3sETELG3vGJbpk ojgaWxWWKZu+4Hx1gmSEPBFXA4oPRlCW0fI8FwGrdopmQB6Y3+WTg/ZEj+Ognr7BQGY6 ybCmbzMv1tguUk95g80o6glIjWerhpqsExZ1RPlS9O6+zzZ4i5/sP3UXkoAW8cU2Qc+D RR1kmYrkJLhVXHg/DF1SstNiE1DJM7VQhxA00Yzs2S/RRUfRCxti0bLsh9uvbomIMvX6 QqpscPhMYQEuDCq82WqmgeULFPhxV9kP98kmMFeh90sXU8y8qeM1R2xHuCWOrJZJpa5o MDSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091796; x=1780696596; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=VD8bHDqIwxQ/ejdGEqcRWpPLOabnnnaX/QlfiL4OvyI=; b=mfG5bfaj5rL/49LGbliggnENj5GS272tsYOKr68gIpdRlIwhDGRyNvdkcLnBEtgHcm tCMP9buRhYyiLBkPePxUH8CiL0jP8QFQ1DA5oLRM6zZu23/6P1k6kQWFymzya+xoSwp2 fNLWcZ9qi6s7QyNA+LPkKbVGL/g0Mo2p/3Cvgu+tVWmbUhauvNTwnF7vhr+/4qub4wyz GmdNEvrA5T3JfLJQsewSkqIs6V3mRzocDcMNl7wCEcZhzhchUa9UMwtDWHhNhkbZwy1B zYDOsjB0BZwTFZMsn1Zaaq0U4HU152Ix39FuJzyI2T+gPiOKBhk9FchszT77f1/JWXcN bkXA== X-Gm-Message-State: AOJu0YwMZt446AhxV17MktQyEEf3lWDxPxdtTL7NlLSNP83pA5aQnL2a yNwM6p+esj99ypDuhORH1VufI7lco2kHc3EwRPEoVUOEnLMR4somLsIhdRGuToBSZtDrnVIhSOT SXWy0DwJ4tGv6uL9eZXn7X6TzQAvdOobjlN2BLxJHYAWi49WFZ7J0ywvC7ck/PRkm4A== X-Gm-Gg: Acq92OH1sRndLqX0oymiOgRh0ORf/g1/fPzn18Q/gd1KxePFXIwNYyTCm501DpuqBxi QzwXTXyyEOgU7ntjOUpWQpC9tqr/r+ylIQknhs6zhlCqQdbhRXz70wPuU60Lr18iKPEXYipVemn Zh21k3nrv5fjaKgzULeCCFIDcTqgw/0QdSIAMvpJxltujEPrVCtnXxVbK2cD6Yx+MznfweFAGf/ y89M25ZKb+f5wnWr9viGIHSyqyNTLc3sukUpGP3Ye1ME/oDiJ0pR+32ivq/n+X43o6eYEP1TpHc +PLzM59WAaAAM02JSwyG9T0hjWPBK73VlQSQCnihMmyatTVlloMCkLGxAc48h2dixtkGjgwESkZ sUGof2zQ7XD2KGuOIlNrJSpMbUmY+akxkJ9zzFdOFjnaFps58lIx5qDpn9CvQJsMF5wKuL9vEdQ djI/6L X-Received: by 2002:a05:7300:a44c:b0:2ef:8b91:212 with SMTP id 5a478bee46e88-304fa589a60mr895433eec.14.1780091796295; Fri, 29 May 2026 14:56:36 -0700 (PDT) X-Received: by 2002:a05:7300:a44c:b0:2ef:8b91:212 with SMTP id 5a478bee46e88-304fa589a60mr895420eec.14.1780091795796; Fri, 29 May 2026 14:56:35 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v7 22/38] target/hexagon: Implement do_raise_exception() Date: Fri, 29 May 2026 14:55:38 -0700 Message-Id: <20260529215554.606133-23-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-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: ii2BfmVH_kVQWKNwniav2uBgRzM0bima X-Authority-Analysis: v=2.4 cv=EOI2FVZC c=1 sm=1 tr=0 ts=6a1a0b95 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA: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=hK29HtBGQMdOITfcgGsA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: ii2BfmVH_kVQWKNwniav2uBgRzM0bima X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX1ahqLVd6Cfm1 X3qtckbj0bCOfiIN0mwKqopSsgpe0Q5Ev+aX9J2iNkbkbFip6vqORzNLMYPyaNy0SwvbEE6la71 mF+AmWvPidW+9ityoraGXiIO8OapXiwc3oSd1uI/BJr8+LOsNJPO/SpUtLRBGnSSd2ZXxc05bL9 WDKZecZcKWtqTHtKVEDcNSFyLuhXq62CrtoIoCNU0yZDGggbuEaV7fem7j7Ts25nKu4tEmn+hsz t49Rub/EOFN6B2YzGzhF56sZ5TQjXe4F5Pz8U7JwKquXmuHowWoo/KiYBJtnn6L4RNc1bOKf2SG On9DZJzxXhASHuK7cKpOLSRBobK13rx2anSP6RR4LPmH9kx/JBvGJ3YdiHyraV3ut8kR1D8T79T iVznE66xn1eBkTPRKs+DntKE8+irDs6EOEgdGQ9kYlBcR34vuvukPsMKYRa/nYBgt6cBxkFRIBJ 6VF00kXG/D/pgSGCOsg== 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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 spamscore=0 phishscore=0 bulkscore=0 suspectscore=0 clxscore=1015 malwarescore=0 lowpriorityscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 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: 1780091831677158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/internal.h | 5 +++++ target/hexagon/op_helper.c | 14 ++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/target/hexagon/internal.h b/target/hexagon/internal.h index cd06ff41d4f..33d73ed18d1 100644 --- a/target/hexagon/internal.h +++ b/target/hexagon/internal.h @@ -31,6 +31,11 @@ void hexagon_debug(CPUHexagonState *env); =20 extern const char * const hexagon_regnames[TOTAL_PER_THREAD_REGS]; =20 +void G_NORETURN do_raise_exception(CPUHexagonState *env, + uint32_t exception, + uint32_t PC, + uintptr_t retaddr); + #ifndef CONFIG_USER_ONLY extern const VMStateDescription vmstate_hexagon_cpu; #endif diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 359bf12f1f2..327c233c01b 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -40,6 +40,20 @@ #define SF_MANTBITS 23 =20 /* Exceptions processing helpers */ +G_NORETURN +void do_raise_exception(CPUHexagonState *env, uint32_t exception, + uint32_t PC, uintptr_t retaddr) +{ + CPUState *cs =3D env_cpu(env); + qemu_log_mask(CPU_LOG_INT, "%s: 0x%08" PRIx32 ", @ %08" PRIx32 "\n", + __func__, exception, PC); + ASSERT_DIRECT_TO_GUEST_UNSET(env, exception); + + env->gpr[HEX_REG_PC] =3D PC; + cs->exception_index =3D exception; + cpu_loop_exit_restore(cs, retaddr); +} + G_NORETURN void hexagon_raise_exception_err(CPUHexagonState *env, uint32_t exception, uintptr_t pc) --=20 2.34.1 From nobody Sat May 30 17:44:05 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=1780092043; cv=none; d=zohomail.com; s=zohoarc; b=I6ff9cQEREbz+mDQDcfTywPxdMXMOY5UPE7z9rHlCfGGL6zGicDiI1UCj5GwR9e/oUjpPSgcN2ZoTf9SBHmIhKo+sRJc1gHKxfx44TFyYeDznD+RA2ChbNrWaIDNm5NfJfMGgD7vUlcUKRtTzu2ihjaz+burpeH5vIbqJrbyEWI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780092043; 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=eLyIH0txUkz4M7Jv+m2wPReOo0bo2W71u0RhOlCd1lppFnm3rjeD1S0mPkCcd9wIqeRC4dRSI5DaNkGLE0tP/kH7UXrVDXZCWtvdkhMXxAU4/2qBOX/boQY9uL9u1TRUjCbXi1ebbBGaRXrCM/99XC/vhJrbe/QhDA3K0h1q8mo= 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 1780092043242844.0471887974634; Fri, 29 May 2026 15:00:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5CL-0005ix-5J; Fri, 29 May 2026 17:56: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 1wT5CI-0005TT-O6 for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56: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 1wT5CE-0000UJ-Qt for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:54 -0400 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64TIe0EQ203461 for ; Fri, 29 May 2026 21:56:39 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4efg9c8qyw-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:39 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2fe1cf409a1so4775729eec.1 for ; Fri, 29 May 2026 14:56: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-304ee0dd8e1sm3026279eec.21.2026.05.29.14.56.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:56: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= rkJVz+7Ob1j1iubY29B1NZ8jMktfLmq3iVf/PzHu0xg=; b=BC37bp+DMCraOkUY myC7na8MItV+GDyVnBzCsG5FL4q5TlI5Pjn/i0aRnuTLNTvBhRmjHJowCaA1JDZ2 d04ydM7imtN68wIdp6DBWnQv1FocEK1/nj9QvO/tBVZpOMsukd94xLvLKr/6C1Cn xgUz3p5vDxdA0AUWfwPRpYtK81GfP3JruEHBJLUZnh3jOzUkhiJEXDEriNPqha34 cSaXMEqIs9Q3pTEieFvJB8aTB0nIiqjZSOa++JJIWB+qAiME1zebdd0PIbCiDIZX X5FpuQPzctXdGnJTbArz/UM8rWXq+gdZgd0+P3MfCPYg7ZDUfUsnHeeFCRbwxmEc ZLKqYw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091799; x=1780696599; 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=NqaWbOw4nMFlevMgImhi6Z0Jq/lVd2lB0+ge8zrofkfgLNtBt7B+5CPSm5kZvar7eO n2gWFPNXfxFnTwMXSp70SXvRd5wOOYl4bPsDfdhlVTl0158yjfUX4awaryeW/VHt5YnZ bKy+mN4S0KAU4zzuPdTapyN5zG3XqtK5DFGUzlGy0//TkIgN5JHSGMOCuQt6RPIJYNJx t5U27ALKOcHj4jl/2rZziWzetIwjkqdEDS2riMAIQwANA5zd0U04fLL8qSjZQVcp2A2F UtmngR4p3qwxIIaemJIc8pMfk0GNKTSLYzjX/f2Cp6HF6eWeGcSDVrLgeTlIAnYeCvdk 7mAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091799; x=1780696599; 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=ecDmlUtkudvkJNtXypvnOes+ugC6PsGagfHZW2QKIkfT+CgzUD59+z2kJiBgo2U8MF BWQAhhsygdCk4uXwNP4ISELCgl0s4eXwI3z366jwZTqleWX6waMWDrSolN/sLXKMOL9C T2otUZGkb95sIVDzFxcn+l7K7x7Sn3hXG1iuxwjCZj7WKF0ATjFKSaxAEcJjATnoATn/ /CmZOM7nZO/JYQSKvBGwByV0ukYIrtt9xF4+0QuLkjAJbjNP3E4hfdJK1WCnN9xR4ihr p0RScfbg95eyok/KTCfOck2cKxZn0Zjjg8hqaaPpLd6JSCK1YCJTrn9tlKX4zp36hxT7 fZYQ== X-Gm-Message-State: AOJu0YzTlkxEwh0bsvOunusxaj4uScQcg8AjpSNJmWnk/6sb3wonbZTC M3RWm+VU4DQSWDSclpjyQMku94q44J7UxWFoQPXOpboXbQZB/257I6nyso/7DgHEuZ1u47iFZGc B9NkjFDBuZOSM4HTwNyLrVXl4V7beR+vF5n8p8EtBlLGp4CYXHGjyYTqAtetZ01hh3w== X-Gm-Gg: Acq92OH6XSh0hLuzh44xSWYhS8NHUum5T4ngTgMM2r455vfwnyKdaRqEzWwKwCgVPGp hPhMA1HhXpC8hpTev6FE0bA/6tTwJfAUTRobLiMz4gqgvL7rSrCL42lxkWypfdMMhcZYjfq8x1J 3tuyLmSJ8JIta1m4l1+kK3/bikT05DJdko8U63GUDVzIyVH4iu2jSJj8+qmutC45RRh91kvYfX2 +o+djsky+1huxKRWvunnNDEV19nfu/IVYXqzAK5Dkm0T9YJSYzA/Vgm/3qhu3IqizkV+0+rQzfH lyzxbm09/hD/QhRwTcwRG3GeRz/1uXIDPj0n+eslLKgMb4dGrcV8kCBEGLjUJrxzdYx0Z0gXP7f qDK020jEe3pGUMumCMmr4UI61akEdXy1+9k9GYz0cNJkWDRWfzbMkejca2o7S2dLgU8nHnX6DOi oIZVIQ X-Received: by 2002:a05:693c:3006:b0:304:d388:c33e with SMTP id 5a478bee46e88-304fa4a7fd1mr1175783eec.1.1780091798187; Fri, 29 May 2026 14:56:38 -0700 (PDT) X-Received: by 2002:a05:693c:3006:b0:304:d388:c33e with SMTP id 5a478bee46e88-304fa4a7fd1mr1175754eec.1.1780091797460; Fri, 29 May 2026 14:56:37 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v7 23/38] target/hexagon: Add system reg insns Date: Fri, 29 May 2026 14:55:39 -0700 Message-Id: <20260529215554.606133-24-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-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: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX5PQ7md8cOnAs xXWvsAe5urGonGWBWsidVds/7LSS6j0gjWDZ99DoRcnoj6SBCZqErWjurq8ALnThC6M7UeJ1CNr M6XhY/vix1oiaUtrjGPWrD7/MOg4LjBcER4psqzSMUAl1YYNAHu5kTQRjaiHDOS5X45hXkUdBLS EmEwlhVIO5f0wZaweKdVEuHRjMJEaHvgK9Ybg9+ZRrmggj5cA3Yr7I4Xesh98t0YeoVg8RpodgL fmsEtcHluvMj98FNE4zTMAGHppiPj5OcMTXzxmkIEz2URUFyz3Zt/FC+widTbUV4dZBtM+Br7DF r8syIXyDjzeQRV8os8nNQOO+JeckrlfC1s2tqTbi/7mpRlTd7fMxhCxssnkOmAx7zEkqh2k5/h/ n+kt7zGFVfQvwt2Mx0RA4BukP9cCa/iZSWMJNmY6Sazgn1EoZR4jP405EIEBmQxPWbM5LaHiM2A IN+8EfLzclUD3U4jPtg== X-Proofpoint-ORIG-GUID: GKRN_5mm6f_LfHwg_33C2Nf_41I5bh-c X-Proofpoint-GUID: GKRN_5mm6f_LfHwg_33C2Nf_41I5bh-c X-Authority-Analysis: v=2.4 cv=SKxykuvH c=1 sm=1 tr=0 ts=6a1a0b97 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=Lq-sf-uUdcGOnWOb84QA: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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 bulkscore=0 spamscore=0 adultscore=0 suspectscore=0 phishscore=0 malwarescore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 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: 1780092044592158500 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 Sat May 30 17:44:05 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=1780091901; cv=none; d=zohomail.com; s=zohoarc; b=NflK0o8QVvUwC9qx6AwHMkt1yHeU41OP+KUz8rxwq2HoZaNFbKhpwWj+yF+KlTaiRbBFqOAZi48UKy6ODW5bONnQ6WAz6uWG0YN6UnrBQ0OrmICutpMVWV9rlTHbNo3DXUUS4Inw8PGlkvUukA5ZAezFB+bh4cJsh6sy87fPZSA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091901; 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=eLM/B+SZedbJ65XVVBXNq3mkvJDciHY/wTwO+XRMYxQ=; b=NE+P3AuJY/Uf9Y+QHONersme0nHo0uOx5tPKOl29rca7QS2wU0SReUk58YJ2tpvHp/m88GzQE+12ILnB4YuId5yo/TyfhKKwCSXle7DvLPgfd2BSW04kcqy0msyJKkxrBowUBuG51Us1iX1kjz+NcWn4GpsmKR2A4f87BC1Fymg= 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 1780091901652541.3862959342738; Fri, 29 May 2026 14:58:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5CJ-0005XJ-DF; Fri, 29 May 2026 17:56:55 -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 1wT5CH-0005NJ-HT for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56: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 1wT5CF-0000UR-8B for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:53 -0400 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64TI2Lq02998037 for ; Fri, 29 May 2026 21:56: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 4ef4jj4emp-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:40 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-2fe1cf409a1so4775739eec.1 for ; Fri, 29 May 2026 14:56: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-304ee0dd8e1sm3026279eec.21.2026.05.29.14.56.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:56: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= eLM/B+SZedbJ65XVVBXNq3mkvJDciHY/wTwO+XRMYxQ=; b=Z4ZtWbmgMj3mfnPK x6eGPYtxtWQlGNppy2yrvzBhpLRYnERJErogONmaZNMjmKdWmFvw35Xg7rrLrMDz SqZG+kCffKgl2l2CZOtdn2W2SktIQn9fckhmGQCkBPlsKEFbFpNlVsLHZ84KBmCg Au8//Wdw7aLNgWXo8GjyvVeePH3JZpHkWnNn3rgQkU+zFybXgxhxxJoi+TblsYqU WeHH52kmGJWS3wP8d/LN3H2EMcsi3BObzAAlbS9GfdmYOyReU2YmVzv0UTeyGgdL 0b5GsrrDypw0hYQkiCjbTeIaPF4qt6jesyjAYnKH5/0jzJwxjo3ilZfi+bgVRTsk MdkP2w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091799; x=1780696599; 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=eLM/B+SZedbJ65XVVBXNq3mkvJDciHY/wTwO+XRMYxQ=; b=Q3RUZL2jd2xS3GqywZdztTqE6hv1XgMxNuIdO9Z1KwmksjRUlly6TfLIaDLdu1b8pp EcMnO0bdstGqcvJI9Pl5BFxGNi3zcH41ONw8fXf6KFi+nHu9BvP8ZMPAgdRLn4N+F5Ii rMxmNk6eO+3HUO4XM0tLqqXJyTXrhrysaG/ETy+Yxc8RoaqizZYngSbnAvmpnxycFHOp 884r1CaPbIQfM7JT/DkcLFwkvx0/Re/xllxpMnlhGs4S4EtOrMmwHjyONv0bDK+vhFv4 JSjcKxFjY30cS9bN+2HS/CYS77RTheY6JjwBR1Pp+F80iMLrkPH31ILVpN/YpK6Ysvzx fFvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091799; x=1780696599; 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=eLM/B+SZedbJ65XVVBXNq3mkvJDciHY/wTwO+XRMYxQ=; b=Yz43QeUebmqK9g1QFvRmYNWRb7jlaya8K2KgzFwMqpoqDQQ1Q195CRed/Nd88QI5vb wGNnWzbD/kyVDYapnyThCJ9Qtj0kVqYSc3DhNkXh3KERYlbU0H4AWP/0g7bHkitTUIFv s1s62Zw1OCCdGQSpNL1MyRrUKPJUT9yyBmxB4FgQlMVZsZMWYXDMoTmxEht6u/KenoRB trbMfaqSHlaR6CHpLy0duuLoxyMKv4LqPrHr9JyDFxqsudsfcZ4W+oxkxkSDqkIDETuh TIJIU/EKm9QsXMSkJY1Q9hFu1nPXyQNrBYfPAsSIobzjDiO/6MteTBnvocyA+KXuH+il i6/Q== X-Gm-Message-State: AOJu0YxVvQwowl87E/DURBKxJjavUg5adphdDgJ7Rz1bq3EDWPukwj5u wGPz9teNduE+rr+OHC3s22SBjpDRMXoZgicBP34zRAbppIGhyswWbdwz24wClSshAeqHLkJVVzP OI4e2EAEhJ5PiOKaf0Q7vi1EQr5LHk5J27kky4SYeoaswD3iWFvgmvAxSundEFz+LVA== X-Gm-Gg: Acq92OHkM++/VYbVI8i96B6JsI8K6h3CWc21e3j2TWohzYHVfbeKCGcTJC1vMOYXtf9 ipGoGYwDpsvnrmq3AHnRAG4olxzbnHLdkVKfETPDLPZxzXM3PmGlN53F1nF/uqoI3l6zZ2GbZvU ZgLENvD+w2ZBpAIw3vCvaVMO5IPc96SaSnOnWN6Il/KwRvdaB5DScMTmKcHbJPLFXxuAO0Be8CM k90R4IeQuGTLturLsaYJgSCLD8OJti4+5V59A8bug/1FSOGR88OFQ4zO2sh0WwnSv5iQ/wMvbY8 rpo/5dXz7aulicnADE9kp4dcYuglRSfga1gptOfFRbBBLHKcBI1BJeOiwKCPpaNpx9GpBK488hf He1NUq7lBDdq7MRTnmz25DHAxC7DJQ+1ZLuP2M8F9BfWoGfHEeOQmIo+7uSXtXpOEiAJCBilSd2 tisPuC X-Received: by 2002:a05:7300:ec18:b0:304:d92a:e60a with SMTP id 5a478bee46e88-304fa67b6f6mr823417eec.31.1780091799042; Fri, 29 May 2026 14:56:39 -0700 (PDT) X-Received: by 2002:a05:7300:ec18:b0:304:d92a:e60a with SMTP id 5a478bee46e88-304fa67b6f6mr823403eec.31.1780091798521; Fri, 29 May 2026 14:56:38 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v7 24/38] target/hexagon: Add sysemu TCG overrides Date: Fri, 29 May 2026 14:55:40 -0700 Message-Id: <20260529215554.606133-25-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-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: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX5MQRi9L+3mgr lbdAPx0b8gO3EwKF3/o0owSlvbmQWJ9U4hxl64YbsOP9eDCeicrKH+o+jRy7AB0gw7M3/paTIOp 9pKdyck3vVFfSXmdBxDc19+B+RYxqiVGt8oKvTIDFal9BTga1OK4/KfeXDOR/iy04kVwJznKhFg 1zxIxfC2PK17d22xggmO8TY4VTzTxcRnMpCNIVpj6AcZnoebLvOw3eLLWf63rc3L7+LXSuPIZQP N5ChtYxXD9LHVl4hNZrbD/9nGh8LO7R0ZOtNRy09aqy3uSftNrT2UzRhG+k/KWzd8jLQdPnJj8d Q1KQbsout8/uxO00Qjv5NL8mCAB8CEIC8hm43oqgtaGXWbV+jDuvwCyBI1ML5NunQx2BH7pfh91 MxPhF0qczHZcgCGZnt2lEVC6ErSMXiJ4J6Dy1xC85M2XopJdqBnZVWgyNKy5jc+8nLPSiHUkAtV ZEsigCjhHZbJupst21w== X-Proofpoint-ORIG-GUID: WfW7IM2hJ8-CRGHXQmSZbUBmP6n_GWxm X-Authority-Analysis: v=2.4 cv=Tt7WQjXh c=1 sm=1 tr=0 ts=6a1a0b98 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA: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=dSil3A76VgRsV-fRJqMA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: WfW7IM2hJ8-CRGHXQmSZbUBmP6n_GWxm 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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 lowpriorityscore=0 clxscore=1015 impostorscore=0 bulkscore=0 adultscore=0 malwarescore=0 phishscore=0 spamscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 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: 1780091902860154100 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 327c233c01b..ed43258cd91 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -19,9 +19,9 @@ #include "qemu/log.h" #include "accel/tcg/cpu-ldst.h" #include "accel/tcg/probe.h" +#include "cpu.h" #include "exec/helper-proto.h" #include "fpu/softfloat.h" -#include "cpu.h" #include "internal.h" #include "macros.h" #include "sys_macros.h" @@ -31,6 +31,7 @@ #include "mmvec/mmvec.h" #include "mmvec/macros.h" #include "op_helper.h" +#include "cpu_helper.h" #include "translate.h" #ifndef CONFIG_USER_ONLY #include "hexswi.h" @@ -1412,6 +1413,12 @@ uint64_t HELPER(greg_read_pair)(CPUHexagonState *env= , uint32_t reg) { g_assert_not_reached(); } + +void HELPER(setprio)(CPUHexagonState *env, uint32_t thread, uint32_t prio) +{ + g_assert_not_reached(); +} + #endif =20 =20 diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py index 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 Sat May 30 17:44:05 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=1780091865; cv=none; d=zohomail.com; s=zohoarc; b=EyINZXc103EW4H9vLhGb4U0l6rtRjmJ+maLknLAa+iYXLRieaCwZw1VGHxKEYs3srlMiL07HVSHv0sGmKrdaf+c7Fi1GF54L+CuJmue1zDLrwHbsBbfCWaMsfVOczZu/P3YIl0A/MIcA57Z0O/zC0Hu2SgdVaS46WSdKDNrAQoM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091865; 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=K6Z82TNJ1aGGXR2RLLKB7qF/uAvrTWdnrsMq71aMcc7FNj7SxWXAUVx08Upz7v3mmQfsY8h5902rPUTNGG3hAbnrPgzL7gRwXba4mMyazVD8+w8H+3nmrVGWzdOB5PCFoZ3CL4f5OiDtWgbh9f0GrItpcyCxcVnG51rwQOVl4ec= 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 1780091864944751.9745619000689; Fri, 29 May 2026 14:57:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5CE-00053T-8N; Fri, 29 May 2026 17:56: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 1wT5C8-0004Xk-0H for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56: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 1wT5C6-0000V0-9W for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:43 -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 64TI2Oxj1912421 for ; Fri, 29 May 2026 21:56:41 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 4efbu52gj5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:40 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-304df51ff3eso2144849eec.0 for ; Fri, 29 May 2026 14:56: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-304ee0dd8e1sm3026279eec.21.2026.05.29.14.56.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:56: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= A6hX7dXQXO1+fIeZgKUska/ZVbxUwMZyizq5wXsBD70=; b=ho4MNdt2tTMsKD2Y 7RCetTvUsmGssl3f7BewpyFFbHOPna6AWjTS1xHFUwNKYCQHletKWVlzC3vtFWzk fobHmbaRjNtlAVK4Rg0tN8xcK9+kLruOf2xB9cmdcHE/2XLQDdW/jz55HvkRzAH1 uE9/HuMjf98K5LhRzH0um4HtIDOFhsyhG/VoW9pAatcLzFi9+1qZgKJcFg87l2eq lo1g2YGESD2LGtZEDHNPNhO+V7IKRVRpxqUPo6Fp5AIsUqo6ZrYIHUSdbJbfB1M3 z5kKC5RYUJTdPUcdVS0j4KQcOhnvrPgvEQ3bYwJq7s0CvQfKv+N5xusfiIWrx+u1 HtpnpA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091800; x=1780696600; 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=FG+EUvVdirQ3g8N1aAz0yd8tNf4TVVM6iMPU8MUMqh4rDcKx0alxYRSUxYWgRZKW42 pPPqqqXPQWtPAYIn82b6EjHgfe+RrLrLBTr7/09bHb/7ap8HH6tzhWRr0FexEfMDyjfv YiTMN1DJrzge6Z8PRjsX0gDednGp+JVQEBDQB0cbyOL8eGAlWBlS+PEinrjwrX3oH4dZ dwOLfgTJ+o4TvaQzQfqODVcRNdY9KOI7hiI5Exw+XA++8lEUPXnxDkhr6HFMAcmzZ871 b/0m5s/9mhPXUglA8t1wlooHhiPYaiOi0//lfhFzpXww6dYN/blKniigdjP2YmvZqiLu XKew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091800; x=1780696600; 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=af5ppRtmnh4GJKXHnaeJbbYe0ETIwJWp9Nn/NCJWcNGokUD9NNOKPaPyCaBxHEHsXT BOy4oaBJo6jDSjdetKHdGhbpul3Hky+hy6QTOES41K9eC0Tp3YYAWNeGJBQYfi8EKpjb LI714pHZNLZajNGyAs27EP4AKiBmdlkMmArGrSjcc110rjeBGLysrjcbWI/2DO0ELAOy 75kOvs12hWl8gISljKhMzU8MiWetOsr3feXTEoKDb7x8+OZ4uFh/tO6HOptnIFdqjWog j45SrxbvT5WgbEWPJiHXvMPHOJl3LGZIAj/cgQ0Y2GpK322Simrf5oUuxuFzCLbnUIvV deCQ== X-Gm-Message-State: AOJu0YzI6TXBHwwOSpCk1ejNS6t/oP1f/y4VXOjnOxegyvUJBYaiP7Yl x8QV2cpnIYvxh9/ijKo6acoG1rbmIyKH6wTvG1Zh0d+kHj76tACfagjhh7RZsBXrxgDAULYRYK+ S41WANDwsnYzJcAW+3KyH+yxyKnXKdPCBsYawFMVV9fxdgUtDDRp62zPMFto9HZFhlw== X-Gm-Gg: Acq92OG/tYspamgl/30Y1+LbQYoN/wKNVMSO6A2Yw49HWuiqhrc6aKUi0iUcw5e88GR qFa4JJ1O3dGwsig+ZgKCad8Rsq1ZFqRoRJCPsDGm41IBg/QFz1+wan8ZONNyWkHuaNJM6n8S6A8 UbViqaM+R6j3QIbq+jOUFfaqrV7/DDn4Crb6OWgAkj69mzGj5sQbxBQblxdJeBkCVVd97GQWqC4 FNrzDm02r8ocs70aMlcz7PkQgtmceYxUJpK2Ln0lUd1tBzcSPU6LAjhyjOrjvShe1JfYil5Yu0r CZBQqht5+ChEbOxw4exxatx/TqNEwu86ytfs82nveh1ui50I+TUo2Aar0Q+7tlL5QVj2+DkAmKt IR6hNBCVR9/ne9hNWia+LadjoJBehEkXacZgBiHErIEm3j5tju/hMGjuvcHoGrf2M3woky7931o I28X1q X-Received: by 2002:a05:7300:2214:b0:304:cefc:5fe3 with SMTP id 5a478bee46e88-304fa62a999mr866729eec.18.1780091800150; Fri, 29 May 2026 14:56:40 -0700 (PDT) X-Received: by 2002:a05:7300:2214:b0:304:cefc:5fe3 with SMTP id 5a478bee46e88-304fa62a999mr866717eec.18.1780091799631; Fri, 29 May 2026 14:56:39 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v7 25/38] target/hexagon: Add implicit attributes to sysemu macros Date: Fri, 29 May 2026 14:55:41 -0700 Message-Id: <20260529215554.606133-26-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-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=SMRykuvH c=1 sm=1 tr=0 ts=6a1a0b98 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA: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=jiUnMIOmsb6gMTORg9AA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: fPtdZTWLNGErM_0Xd1u65pfTPYMHvK26 X-Proofpoint-ORIG-GUID: fPtdZTWLNGErM_0Xd1u65pfTPYMHvK26 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfXwIJirwy9Vf3b iQ2+W5ljJFUnQ8BW2y5NS8JAp++gak/AqOm6Chn5vH3SmSEbeuG9B082IM4HdC7973RJr0Z3IfL iMK6u2g0N20DynYmwsBAa1cV7BjNuTIrYWQaYeR4hUw2Q1p57Ef/jcCL0juMGiKhA2qht0a1Rzk wxcO5zUgoopf9oRfh1hyE/RZfgHyYsd4rT7DzaDk91Yh+u/umORl/dFFsqlA2Bwer90wnv/Bsh1 t5XwKSFJbJXMt8dozflzLQtjS/nDFBJhmbdm8ZjT/lF29ZDnXdNx0feyIGjxw7aupTtxnhxX5Py X8mEnyWTBl8fGjdYvYY96H4ERCFnlOMEEfk4dQlgL/M2sFTuDSNbXGqpuBPV5SLp4IIsyu2rn/P FXLytmz46sCyAokSPP/ZHNBnTfx04kDbsWUHYPDzl3/Rw2NJo/TQ5dMJNEwCIO2YBuFkYbwpWNv CWRhASUn2fZi2klVcuw== 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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 lowpriorityscore=0 malwarescore=0 adultscore=0 clxscore=1015 phishscore=0 impostorscore=0 priorityscore=1501 suspectscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 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: 1780091865704158500 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 Sat May 30 17:44:05 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=1780091972; cv=none; d=zohomail.com; s=zohoarc; b=PiqOPdipA6u+qhBfsKXZRwlnvd/VCh/covihbWGiOdzmt2ygqKiVSAvPe87DquTMgtuuMq89S8VWImq1Dtg4T/1l3fznOJwexYs0/3AQSTZM79ab6mv70qzXiyunHnok9Zd0cuvLEkmiGx+4w8E5uzQuam6iRfDYC1CVs3OR80c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091972; 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=ZqIR3vZ/lGQxDGirR81dOcdlf60RbF5IZkfFkhelc7U=; b=kY5QdOkFinUinZL0wfvuhpltWK1YKV30/Ynk3u3n132vBbTdRwm2DdTVFfOMc4ZfV+58rH+jvmU7LcyUSAjF9WVSPGe1rA8HZkjlkvGt+aFMiVkBIKJzFGy78a5AvrOxUhKggXiNZT9HMJSPX876xlzyFb9XQijlyczwLIdy+Lc= 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 1780091972590612.6279384082231; Fri, 29 May 2026 14:59:32 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5CM-0005pV-Hk; Fri, 29 May 2026 17:56: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 1wT5CK-0005gQ-Kr for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:56 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5CI-0000Vj-Rd for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:56 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64TIf5PE118104 for ; Fri, 29 May 2026 21:56: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 4efg9vrqav-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:43 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-304d0d0b28eso2805978eec.0 for ; Fri, 29 May 2026 14:56: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-304ee0dd8e1sm3026279eec.21.2026.05.29.14.56.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:56: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= ZqIR3vZ/lGQxDGirR81dOcdlf60RbF5IZkfFkhelc7U=; b=iQCsFwWsBO1j0kNJ +HnZFRy/gMjYoGb4iG0nxzj0pjPT0RGdyjI+8wqvhugIX22RYPNBHFnfBPN0vbXS sGu2hVHKa81/eLMnGlDlDLWs31klSJTZCwi+sXtj6MLgIwqPnxdduEQVuQ6PjR0E pHaYCjT1iDib2IK6iuSHz2CikIieyfPQzI5QyrAHqG/o7WtrRgpKzwVUbAkdWlWG 1x70v9TuSfweZIhAZC3/M825vTSaBIlIUdp/V02pB/wPR39GVO648XkoA+2tMl+a x3W8iTqv5bTFHNAOVOQwcSGTaq5GcJmPl2kODEThcDoucfYIS/QwvSKPgjw3LYOB 74KWrQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091803; x=1780696603; 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=ZqIR3vZ/lGQxDGirR81dOcdlf60RbF5IZkfFkhelc7U=; b=XQ3/iq5os/9TzvZPBm9a5femvf9ygf2EYdQIOLZLpfWGdlZhKyMYkCdXRbdDit5DWj rzfUGMt0TfS3enu4cHJF7qke/IwIS3KyqTUbAjb86p509f36AziUI+hhNiXFM5OEyuqc Z1oY4hJ9rPKKnUSoJ5afxUpQYqKkAza/rg/i+FXsGa4+p3UOFn1+5cDRWc2zzXhQom1Z aPbZ9ZxYyNpN2ISM8aXq/eLUUiioBDgRqBqu9x0r4/s3pyRORO3wPvTVTXoClPzoFNND 3Dp6thvx7vKLNhvbPR121v2jKHIVdDRTP355NVjgfZ1xArLezP/cr8NNzCdMqBFJcbq8 rg6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091803; x=1780696603; 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=ZqIR3vZ/lGQxDGirR81dOcdlf60RbF5IZkfFkhelc7U=; b=GvYJAJaWaZIlCqUtDUY7EHpV6p3bkSdIPGTlNQbv38bMRcMdDnq2xvgcxIwd+UG3M7 ifJIV2ECrqUbTZEgaLCo9Kl4v0hVp/LdIBeHUXUIK6D58ej1Diow9r4ijJyBrEimg45f od8L8lJEanUEtJErWOXC7lSNJBldI7tQbjsvvle5SkO2vZBVgXHP+wCqu16zIDulaSG2 y3+0GmIO5caELK2yp7LOCKQlyvSZh++CsPbFcfJz4NS4aYZf2NAEUNBahEA2rUnq8RQW q7/BDOeG6LU3eEbNY8HVeSTN+LRRgRuv5Bw7fgXEshQQdQ6Mkia4hApPFZcxoe9tEiDm S2wQ== X-Gm-Message-State: AOJu0YzI8C3HNDSqXR0I6QO94Xtfd7wihNFVg60MqeYbPJStluqc8erH uBgV4DQ4cz2e3KrqJMpW1+grUJ1wmdwZcu5nUe8+KRl2SL+wyfEarEbEOvDOmwDZCx02hkAXMK9 P0pKH89My8jLR/h8Ma30rfW0fGfqS0YOaSAJljuLhHJMuglT94cess62Nh/P5hzSYpQ== X-Gm-Gg: Acq92OFzHitw6Z8Pj5IJo6dd68EMoPolQDJ8I7X9Xeu6ONlVlSnVtgkxhvRZ1dFOM10 9cHUksrLzUm5H9HXZJ1t8u0RAhTPclOWq30jaxXYoUKOLaGPiobBoKfv44B2jaOJLtfL15hpKWj itHWIqjQe3a+UIWpo6evGxQhrvZjBOlRwy54ql+vxKBrspajJHN1D5S4f8x2PEVaeuOHCAzQXmW hxuMUwnFmGVvtu1uBZ1GsPdWZU9qbED9lhpNehGaSEF0LUjnDuvl9cbqkmTWkLPc+zzKljLnWkZ LoMv+NcJuUfBqwsrclk7iYn8edBa2BA9k83yL5o1qPl7FPuvMGIQvu6M0fF/FGpEfYkWRSJja2U zdSXiX9N6u6WZPHuw9dvnPkPucOKJDS04ywHrB3tFk9akiak7mInCZVhAO9DZUVEBMDMwHGxPAz iyAnHn X-Received: by 2002:a05:7301:6a18:b0:2ed:e15:c926 with SMTP id 5a478bee46e88-304fa69c7ffmr849547eec.34.1780091802782; Fri, 29 May 2026 14:56:42 -0700 (PDT) X-Received: by 2002:a05:7301:6a18:b0:2ed:e15:c926 with SMTP id 5a478bee46e88-304fa69c7ffmr849527eec.34.1780091802211; Fri, 29 May 2026 14:56:42 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v7 26/38] target/hexagon: Add TCG overrides for int handler insts Date: Fri, 29 May 2026 14:55:42 -0700 Message-Id: <20260529215554.606133-27-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-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: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX4wHN7YfCVD9f 8Kh1EszKTe7mmMZ0hL2Y/S5vsOLor1kAVPenTIdMIYKqtu7F3mQ9fojMSZMc9PF8TgfU3tnD5Nn ABpKBNaYlruQlmR+Z5i8hK0Ut0e4sGRRvVFOMsHFeTp2X0zeOl6j5niEJ9pkCv+pHz0KBRTi2zY AAWPE4sS+aRHeE6nW0sPhiO9nRpC9f9tZqCWpwDwOlzhdhdNe095jfSeTVEox52X/tGsXH5Nsp8 X2itl8aGAUHJRVP5C7Edg4qsi7NJP36cfe4NTVs0bNNoo9+TQGt12kCXqzQ4K8HvF9h9MrwRdZG ibqZ5gZjrAqrTfKNkagKoUEMQXzmGY/cyWJqwS+AxeVzuw1Xodsc1IPkxLkZx1tlFKXNEQTGBvj Li2gbzHUFLgTd+8WtB0W1nTzxGn4B6KtajxDWNle/vWqbHqdLl+ZqQ6ruSJ+SrH3ErN+VI0dPIa 01FdXp5gHJG+Is7cS6A== X-Proofpoint-GUID: yxRpKD5bM0pIR-YRIO5bO2CRErnFLZ-x X-Proofpoint-ORIG-GUID: yxRpKD5bM0pIR-YRIO5bO2CRErnFLZ-x X-Authority-Analysis: v=2.4 cv=MJpQXsZl c=1 sm=1 tr=0 ts=6a1a0b9b cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=ncxFUDX8U6Z2rYVbhVQA: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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 malwarescore=0 adultscore=0 priorityscore=1501 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 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: 1780091975705154100 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 ed43258cd91..ee282e66e86 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1389,6 +1389,46 @@ void HELPER(vwhist128qm)(CPUHexagonState *env, int32= _t uiV) } =20 #ifndef CONFIG_USER_ONLY +void HELPER(ciad)(CPUHexagonState *env, uint32_t mask) +{ + g_assert_not_reached(); +} + +void HELPER(siad)(CPUHexagonState *env, uint32_t mask) +{ + g_assert_not_reached(); +} + +void HELPER(swi)(CPUHexagonState *env, uint32_t mask) +{ + g_assert_not_reached(); +} + +void HELPER(cswi)(CPUHexagonState *env, uint32_t mask) +{ + g_assert_not_reached(); +} + +void HELPER(iassignw)(CPUHexagonState *env, uint32_t src) +{ + g_assert_not_reached(); +} + +uint32_t HELPER(iassignr)(CPUHexagonState *env, uint32_t src) +{ + g_assert_not_reached(); +} + +uint32_t HELPER(getimask)(CPUHexagonState *env, uint32_t tid) +{ + g_assert_not_reached(); +} + +void HELPER(setimask)(CPUHexagonState *env, uint32_t tid, uint32_t imask) +{ + g_assert_not_reached(); +} + void HELPER(sreg_write_masked)(CPUHexagonState *env, uint32_t reg, uint32_= t val) { g_assert_not_reached(); --=20 2.34.1 From nobody Sat May 30 17:44:05 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=1780092125; cv=none; d=zohomail.com; s=zohoarc; b=IMbk4HJJKE7wYfvrTQgWG9oGhBqPegyNNEqpNIxoqMUqwwGoQGyL1kDf2EiXlF8Fv/4HDxNVx6cGfRhMgSx4pS1MyQ2jBzuhnXF3IXdOtrRTWdccMy1RLPc+2/Sm61VQfKwLQSBQKr5gsvIFodHjjYXktU1aYOAYcxRVKEeq5j4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780092125; 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=4+acMbo/C4i2O//kllAUg/Ia3Ltqbfkk1HizCSwYn1c=; b=VAd6tgmpi20z+8LIh/U1YnJSF2H4ecdHhmFLW+cAz3YHI2Q19fp3MTKQZhCN/kQXINt+vHycu2O/dOrKWE91AEOS+uaprrIRckz/Cj2YEpbIM9DlX9VB0ZKzjh8M00zPynCeTaz7Uw+74RNNcATzwouRy7aFXu1dp6DXc1ZsvfM= 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 1780092125084873.8807608378256; Fri, 29 May 2026 15:02:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5CT-00069G-IA; Fri, 29 May 2026 17:57: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 1wT5CL-0005mx-U8 for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:57 -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 1wT5CK-0000Vu-4X for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:57 -0400 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64TIdmDH203287 for ; Fri, 29 May 2026 21:56: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 4efg9c8r08-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:45 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-304f1820babso1364363eec.1 for ; Fri, 29 May 2026 14:56: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-304ee0dd8e1sm3026279eec.21.2026.05.29.14.56.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:56: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= 4+acMbo/C4i2O//kllAUg/Ia3Ltqbfkk1HizCSwYn1c=; b=htK/fRp+CtFSCtg/ jSOpJVw2m1eJoK1rWh8Zw+fys9uzzYoGPAAhEpHTbc7NEdE5CXpW4/7b8s8NCWze m0/1yCI2TmlYF3g68nC9kUJ2R7c0DJTi9dzbnWzn7yhMFRX5B7xMNIqN3QNZf6zX 470GkFQewpKpzvoOKQZK4VHCmplooiA+TgcME/0YFE3ljVSWdCjROXN51wWn269y GLX8iIrfmDCfb9ST9XaafFTaFeRBAc0LeACKWhCl743h/uE8Ko+yxQSU/IC2NCGH QGZRNaaAfQTNFQCspdCV76vLY5cT1TE74k/ZuP+3IAwWAUJI7BflQD7Wsae8tkJ5 wbfOLg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091804; x=1780696604; 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=4+acMbo/C4i2O//kllAUg/Ia3Ltqbfkk1HizCSwYn1c=; b=ZtpYuKXqBni71rmNEEYNBkqCVkxgB5co5hD2VieV15t5i8e3rEmbQLmm63Y61cxg1R cb6zxINcAFNtS8X/xJVrC+oTE2JlSlyZnaHCdL/joBDsYLwIuVtRXhm/EOx4Dw3p4mKf p5CSKeC1ZInRL2lJGQTUgqKiPZrAhM1bhnKqORmvi21rnhW2m6lcD3eWiZo/+UOChq8g AwnUJPJW/cwdVF5cwNU93yqdVAg8UVo1QHsAKIJWo7Ppwqs3kdUReT2pGDsaQY+tbWwo cyFAeLc/K6tEK6YObCTyClGtHc9q5Z230uK8eozBLdyqU8n51RAmFbwOriwHRYRwe1Wy NPsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091804; x=1780696604; 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=4+acMbo/C4i2O//kllAUg/Ia3Ltqbfkk1HizCSwYn1c=; b=Odu31SaXFdN36V0rOUSibBjHkAw/dZsQ8oBaYJtZ68GlvrXSKNbXoonLDcEIkf0sQr 5MLp5IJYPrBv5JwKVEmrWP43wRZWoSPFFqufmGSckoIIAJjt37ZO3p9tcRDkYHmBzOZj 9Xc+tWoI4mhUtyLUsaC1szBpMFn6t5eCCe9niYtD3lMULzf36gQhv5NNqnZ+kdbGd5GC ZfMxPui8jXbpWJ0XjrDAQmNMsKYo8w6RrVtE7QsEkOwA+j4lm9tXrHY9l57GvzI35q01 cEKkoWicQDrxYy+1PyCTc94+/oO4phXHFuo4pZDdUTJu3+bLTgvi9h6sqECqS0PcxFKP PZzw== X-Gm-Message-State: AOJu0YzDUdAsnTg/g0oQHTEpccoFtURmvqzTyQluGNWLCswgFF4kwWfi 43oS5BXpQ/ScYRnZoiTkPzLYEvKdfsiauD1m+uWJnC8yKtUBG6RtY8CANREMaJCV0JS18FI6gVc 6w5x4IGUPPWDQocRjrhG0fzoWEHmdL5j5KVW/MQrWr5pIJYc52Uvhjjl9iMzexlV2aQ== X-Gm-Gg: Acq92OEzfBuAxf/njjOHme9VjeG8YLP0DaVTIdTizciE4Co3v4o1kUHHf/bkgWYI7Rl o9vzXkBzb0MyW5B30q4/AlomUQ4dGvhP3RzVqmqZgvIzDpoHEZVCDTd8r0V5zZcOhtiNzy8Wl97 HJHADnLCE11rfKTY/3uEq7aS17uvh330VOYDytMYPp1mlh/P6pkXJ4f2dAjIPzTF2NoBCCY8MzO IkioQ6IgIJ2ryRn9/TYjUbtNNATMTNnHNm/7q2e9acXGvvW1nkB4VcZjys03lA19UR0dk33kVZa Fl3Z8ORKLadQIWHyNOxyvKBgo9O7aKvswTpAM76eNtEMv02sBmbOrrZj9ydQK9eifGb1QyJ+UE7 fM5YBCbAv7I9ivBoe5pstj7RJ9jRNy0qnbaMk+G9XGnvh9SLSrVLgUzmRSgggpwYjd7gy4ODsRE k8/V6x X-Received: by 2002:a05:7301:5f12:b0:2f4:3a9c:819c with SMTP id 5a478bee46e88-304fa65bcebmr664753eec.25.1780091804095; Fri, 29 May 2026 14:56:44 -0700 (PDT) X-Received: by 2002:a05:7301:5f12:b0:2f4:3a9c:819c with SMTP id 5a478bee46e88-304fa65bcebmr664746eec.25.1780091803503; Fri, 29 May 2026 14:56:43 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v7 27/38] target/hexagon: Add TCG overrides for thread ctl Date: Fri, 29 May 2026 14:55:43 -0700 Message-Id: <20260529215554.606133-28-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-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: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX9+IfX9KiCU49 UvMRsA+W3uZ9GjFsvJh6rAvrh3ajve1Dhr7eQ9DUlVBtqToIVGs30rY7IH3c7wG1eqOErrclulv 6wrq3VIaPINrGTilFiQJU2FyEqq7pxNITeCUPXg1XH9efN46QQndZxiWAWvGe2JmUWtI2xKBTon AIVQTvbVD2XlU8+WXQynrZf49ZC03gJ9Dux8kHpPetwxeQvLhN4s6I8nFrO+8VFFNZ9MPZXirma 9j3u8YfmpZKLlZ+lggXEpWgOlSFe499y5NPeb7aOGW3XnoKCm2HaVIrzmtK6o0HJMKMSCEcmmYO MU0pNmnyCPHTdz2+Q2p4XmzpmvWTPtXtS3vAPOQRUKI1fCvcgyJFcRF6oZKKiXn+w5J+h+qpUZ/ zovhItpZGyF7IonPQihn/L2Q/9uYw7ILziQCsSor1+g4NBB5YyCkFP9OOO6DrmQ4Q+V5w4bULCL eR4fDMoVtoSAIzzAUKQ== X-Proofpoint-ORIG-GUID: Tcq4QPRyi4phGSxTf9juQDjAlk8M9bMF X-Proofpoint-GUID: Tcq4QPRyi4phGSxTf9juQDjAlk8M9bMF X-Authority-Analysis: v=2.4 cv=SKxykuvH c=1 sm=1 tr=0 ts=6a1a0b9d cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=t9Y8JitlK4h6-XB8aEcA: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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 bulkscore=0 spamscore=0 adultscore=0 suspectscore=0 phishscore=0 malwarescore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 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: 1780092128189154100 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 ee282e66e86..da00dfd65c3 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1419,6 +1419,26 @@ uint32_t HELPER(iassignr)(CPUHexagonState *env, uint= 32_t src) g_assert_not_reached(); } =20 +void HELPER(start)(CPUHexagonState *env, uint32_t imask) +{ + g_assert_not_reached(); +} + +void HELPER(stop)(CPUHexagonState *env) +{ + g_assert_not_reached(); +} + +void HELPER(wait)(CPUHexagonState *env, target_ulong PC) +{ + g_assert_not_reached(); +} + +void HELPER(resume)(CPUHexagonState *env, uint32_t mask) +{ + g_assert_not_reached(); +} + uint32_t HELPER(getimask)(CPUHexagonState *env, uint32_t tid) { g_assert_not_reached(); --=20 2.34.1 From nobody Sat May 30 17:44:05 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=1780091906; cv=none; d=zohomail.com; s=zohoarc; b=EsH52GTRR7EnbgiHZnPnRVdvQaW+Gw2dsUqXkA2E42zGCC/ovCxv9WrhMZxgD4v2j8jU2ldzM6zkS7UBdtFHOcQxTcGn1VCa4lMwQO9iBH2Otpnrt/nxhU79S2IAFWUq+Hci1iGe8PelpdVN8rAMiLHDeYJ52UoApLEWW2Ogc3Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091906; 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=qN6qj7dmsv49cYYqTHTmth7gJNWedgjE35QwPzPIUD0=; b=J8pQ5/2wshQPEM0G/7GS18kPT40+rjFc3rr6K6PuD5w81znfJCXjfxClpVVigsGAxOvIbZtI1IDdrAaZ/nXs0gryD0jVUE/xCFyobBhAsq2K8sL0a5pFklWKFBFs/lJfndgagIevIAPfrNSn/E2OVneh4EAGwxDVCNjh8f34M7A= 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 178009190606052.92670604054854; Fri, 29 May 2026 14:58:26 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5CQ-00062v-3Y; Fri, 29 May 2026 17:57: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 1wT5CN-0005sf-AO for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:59 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5CL-0000W2-Nq for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:59 -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 64TI2NAC2998079 for ; Fri, 29 May 2026 21:56:46 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 4ef4jj4ena-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:46 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-304d0d0b28eso2806052eec.0 for ; Fri, 29 May 2026 14:56: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-304ee0dd8e1sm3026279eec.21.2026.05.29.14.56.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:56: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= qN6qj7dmsv49cYYqTHTmth7gJNWedgjE35QwPzPIUD0=; b=auIHJpH33BNn0BgM /rkbEHh0cQOUN/pKqM/+zwAB7qBm9l4DDejbYs2o6AWUy8XcNZzSh2nINCxJA5zK IJwlvdBFbEi912obI4HL4bqjfr6YgJTQJ67+PRSz/YBhMMB8KOfKHNIu3M4RxRAy v8ex9CckUd7xUV/kckFcCVmpZaVMlVTB1V8zFk8rKUG8c84q8wl9IJMHiU8j+0Kn 1dHeZuafWF0sz8c0cPtXj6d97mL/RFjuXeuwRaNkbT+K5xFLzn0OtcTHIMU0AfnW 6ta4fFxTU2bSlQ6SBimItoFOItIFYJKGjD8PluPwRzIkQmfIRBDGqLC9ET/oG+42 Xl8/rw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091806; x=1780696606; 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=qN6qj7dmsv49cYYqTHTmth7gJNWedgjE35QwPzPIUD0=; b=XkrMXIiKtM4MGR+Mp2GNrjgOpmaoq+8rVARjce3qN8zQM9jVJgrbW5GA0mwGSAWjl3 j1GDtIAphamnQ6MyvbYnE5DmlitI9eyHdgNc9Fi68vPFmib6B3Ql8Z+U2gY7vhvdy9K4 KBHOXqQ6lAIOI1HoLlXsEXjZdeWc3/QReg2lYoeTecOD5iNI5eOgQombrL2WPNePSmsm 3fXClgOCjhF9d2IRJSyILpy4X2Ts2/WiJ+q+YdGCpBiByqPJYIJsqwz9skYdovYaAt6X ktYMcWdo+o/6NU0lRkf4Fg5eH7tgsFV8rCTC5lNVB/pALEhdwbG8hllfCURAM/0kIQak M2Wg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091806; x=1780696606; 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=qN6qj7dmsv49cYYqTHTmth7gJNWedgjE35QwPzPIUD0=; b=B3TrFxSproXJS5jFY93vB3AVXl7CfvQ5dFnxEwY/27xb620HK5aw4M3yS6n756wrK6 D2dLLjn6z8M1DIOuDnTNwLBKu4BMzvHQvKOTBDF7GavBDhDvXOXJA631PZIOzckvZl1z Eb/FC5jJlNKzbQJHtmFKDPy1FVUOEKDUE4PUicrNEEJJwAkWVczd8JRdomMkDMroUmVu sA/Z8Dnw/JvvcJTnFmZj3wxM7/U+QLoabia8f7lJ0lhpMHEDtraNsCLiDxHWgSVe8Ujn tx7Z9oVqUlQzYZ//1X7Vq9nVy5KKjAbj52+n+32gYNRd1cmBzzFapj/CrWPLRdWl54oB vjoQ== X-Gm-Message-State: AOJu0YyskizTOmP6+MYfeAti9spj+UWiyItkRJNKupYASDZGk+kFfP3z UBgMF4gcCAM9dYj2q892eeFsiSEMqI7P3OuLELriyHFlHx+adF8VRzmOkCEUi91dOcujyC1+9Tj NEQZVOXqmvBHoobF3KlcDkqchXoG4omZopKSGDC42lTLbyUYtnDsRdqrbk1/c3UEBVg== X-Gm-Gg: Acq92OGiM3gclVH38+/+iEWCFb2BXSXNU3Y5PLFoWWqtDeOZ8LrHejIFdkX8D4d0Hup XSHcbKLimG70b1rh6IEXkKDhOWsMni1ygRomJiYaHJ9qzaN9Ru+Yue8FmONnGwU+XpNOXGcE7ot OBCCl9wYnJEePj6WEjQd4qDT8qQ8WuAOpuU/FAUbHy/G8cVq3GVJb7gHP8EngLSq/F7x4c6k9Mz 7WNlCgeliKnqFci4D/Yw1eWZ21oGI2/AAKgNlXmLVxedVLo2ltesamE4T4gWrgM4L0e/Yd76nqW UDkx/IQm1RZBpjE24M9zgK8xc4irEttzytMMPyArFwScJCUlImdKiHp93zWCZN9EKN3tVZvQ3WA /8X8FwwFRbD0gw79kqKdDGtp3dDnVRTSi60vdoUfeVP/zV+BVx0KTCK7HUQWZxoFdIvVt+ATRYu vfbIPd X-Received: by 2002:a05:7300:2382:b0:304:59cc:aee8 with SMTP id 5a478bee46e88-304fa5a9b32mr778695eec.18.1780091805705; Fri, 29 May 2026 14:56:45 -0700 (PDT) X-Received: by 2002:a05:7300:2382:b0:304:59cc:aee8 with SMTP id 5a478bee46e88-304fa5a9b32mr778678eec.18.1780091805199; Fri, 29 May 2026 14:56:45 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v7 28/38] target/hexagon: Add TCG overrides for rte, nmi Date: Fri, 29 May 2026 14:55:44 -0700 Message-Id: <20260529215554.606133-29-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-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: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX+YKnhcXxAHEx emWR9yfhag9Vat1S1dv4LqOmxUkE3sr1/0m7CSY9SWB/CRnfcYdzpw5ziVeozWDzqvgFNwnmX0M 7fUQ4n4k6kM4YDxEhr58tozhYd1iYTjLlq6EKVm2+KNyp8trPaU7i07V7JWc/EebgD6aKA1MtL0 Q7O91zbrlC6i/0IayhudAjP41apCEvbYMdP1NLdFl+7DFnnvqU4DUSnkqUYiTGYRVDkahQyKdTs enhD2Xf12FiZSL0ypEU/3nc0WvOT79j1t63I5hV9cBKq0AD9Jt0KEQWGS3P2FoalQkdtodmKJ8+ Qfz3loXsM893G4No9z+qOiLLoCd0P3CiDNbCka4S9nhSo60YfWT8hBMD4/GD++hSewrRfyqgYN1 d7ZCliqFpPaMrFMs32hAv5ksth9Vxmii0VaQmgqRLN36oZXuJGAq+9hmg18RwubDYUmLOKmDcKz GPNA+HKMwmRqIlh4nZQ== X-Proofpoint-ORIG-GUID: YBpI4sO09Q9g3AOEHK04vfcNEDA_hOhK X-Authority-Analysis: v=2.4 cv=Tt7WQjXh c=1 sm=1 tr=0 ts=6a1a0b9e cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=zRxYJKy5J8nCns2dKEsA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: YBpI4sO09Q9g3AOEHK04vfcNEDA_hOhK 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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 lowpriorityscore=0 clxscore=1015 impostorscore=0 bulkscore=0 adultscore=0 malwarescore=0 phishscore=0 spamscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 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: 1780091907840158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/gen_tcg_sys.h | 19 +++++++++++++++++++ target/hexagon/helper.h | 1 + target/hexagon/op_helper.c | 4 ++++ 3 files changed, 24 insertions(+) diff --git a/target/hexagon/gen_tcg_sys.h b/target/hexagon/gen_tcg_sys.h index 8650f64a6d4..000fc415c74 100644 --- a/target/hexagon/gen_tcg_sys.h +++ b/target/hexagon/gen_tcg_sys.h @@ -95,4 +95,23 @@ gen_helper_stop(tcg_env); \ } while (0) =20 +/* + * rte (return from exception) + * Clear the EX bit in SSR + * Jump to ELR + */ +#define fGEN_TCG_J2_rte(SHORTCODE) \ + do { \ + TCGv_i32 new_ssr =3D tcg_temp_new_i32(); \ + tcg_gen_deposit_tl(new_ssr, hex_t_sreg[HEX_SREG_SSR], \ + tcg_constant_tl(0), \ + reg_field_info[SSR_EX].offset, \ + reg_field_info[SSR_EX].width); \ + gen_log_sreg_write(ctx, HEX_SREG_SSR, new_ssr); \ + gen_jumpr(ctx, hex_t_sreg[HEX_SREG_ELR]); \ + } while (0) + +#define fGEN_TCG_Y4_nmi(SHORTCODE) \ + gen_helper_nmi(tcg_env, RsV) + #endif diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index 682f0c6c26e..9ca87acfe63 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -127,4 +127,5 @@ DEF_HELPER_2(start, void, env, i32) DEF_HELPER_1(stop, void, env) DEF_HELPER_2(wait, void, env, i32) DEF_HELPER_2(resume, void, env, i32) +DEF_HELPER_2(nmi, void, env, i32) #endif diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index da00dfd65c3..87da1fe430c 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1479,6 +1479,10 @@ void HELPER(setprio)(CPUHexagonState *env, uint32_t = thread, uint32_t prio) g_assert_not_reached(); } =20 +void HELPER(nmi)(CPUHexagonState *env, uint32_t thread_mask) +{ + g_assert_not_reached(); +} #endif =20 =20 --=20 2.34.1 From nobody Sat May 30 17:44:05 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=1780091841; cv=none; d=zohomail.com; s=zohoarc; b=J6MtbOZvS18Ru4UeAkOa5ZX71GNNKpeedr5dxl07D12pJqABVdHAab7AWJnY9xUxqFYqTB5qZGMZEQ9gY+zCrhVU0VqS6Gs/bJG5oKU6nNsIRmta8dzMq4U/Jumnm8YF/pBPj9ZtfJZpXmk9W91RmvMzSOOZMLlMxkuSKfDtn0I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091841; 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=069JKOGAm+WdymnMZla3VxgEbmVXTZsAVHR8/hxy2eQ=; b=I2+owigmgER0sYkXjLbV40b2OTXulK39pA0nkRlZ/orQp47G/v0KNugkyVmISb4ZLT9C9OP/RGbX6I3+Ir7hz9sWdsRfdCwib94n+j4vpoQsvBQ0HHwYYIRA04O9MJVKTzl8/I4yFR10N56ukAP7vP49kN5n7WE5uQbuuIfvuvs= 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 1780091841711757.8555950962076; Fri, 29 May 2026 14:57:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5CU-0006Gm-Hu; Fri, 29 May 2026 17:57: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 1wT5CQ-00063t-38 for qemu-devel@nongnu.org; Fri, 29 May 2026 17:57:02 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5CN-0000WO-Gg for qemu-devel@nongnu.org; Fri, 29 May 2026 17:57:01 -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 64TI2Lq12998037 for ; Fri, 29 May 2026 21:56:48 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 4ef4jj4enk-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:48 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-304e3e3fba5so6170121eec.0 for ; Fri, 29 May 2026 14:56: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-304ee0dd8e1sm3026279eec.21.2026.05.29.14.56.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:56: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= 069JKOGAm+WdymnMZla3VxgEbmVXTZsAVHR8/hxy2eQ=; b=I/qcci4ocKPlr5E+ 12dJj2TNTkxEZfWPwifSX2mYAxQv4TxvCL8qX2YLOnIQhdwGgicjxjH2Kn07BU4O 4vCTqNmpFC0ZdMpkXb5PxJ6TIuZsilnSCPGlthS2fzD/ImK03vYWeag58hdYKnSO 7mXpcRCneFQELrVk10bZfsH+4Y9I/VVg7920eyzTKFdEq8wIaYIjOo0cKBYy4jcJ 6SyHTRs2M0U6u65zxhD7A8EMEHlzRYwerm3v3SjCu+xphCM0X+L4BmdjYI/oHJXS YPbrM4jsBFSjoy3KtZBT7wLrWGUu/35kumbEScIU2rFBSO9T5hK52E2vaEplWMh2 JDHd/w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091807; x=1780696607; 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=069JKOGAm+WdymnMZla3VxgEbmVXTZsAVHR8/hxy2eQ=; b=fP+jB2KbbakM5q+zzB57W939rVXdoZAyDsXHpuwn+MV6uFdtU/xv1gCFQujP9CakIR 9EFBBKgP+8hSXsjut8PV8H/IBX48cG3N0rjZPEaoKPBwzntMSOnWia14eYm8vm9L1Wal j6SOHUjYe6N7gwVm9GTgD5XSr+Rx0AXTi+uRp1PlBtzFzRuTmKpdK6n4/4k0zfwuNk1Y cTB7sYga6kzndIqAYn/UBFl6PKk4E2iJivU+ojiAHl3ovqGxtdhr1KY/2mqtWXi5Q+7N fqV2PHB3JizQuMc2u7fir/WF3YKRz/xWZsyKOfrlxLAEi9AjFcfXKHzB65JR9qJw/+Ze /Hsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091807; x=1780696607; 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=069JKOGAm+WdymnMZla3VxgEbmVXTZsAVHR8/hxy2eQ=; b=PQzBguYlDZEwnndjF49sFDe2Iy/gnGqzApK4WvV0pHhC9I7xJQmOCAv4y8hR7TrbQg eYbai3EFHIDJ9zj4tR/iVwSnollXoOV87uuuM7uV/O2fJppEB6pZIDBtQh4z27BCzWva /CaaSt1H0wHUtWFQVBn430rKAkaJo31Vpe53S/j9rLRpzQZ7E0Fh8eQVhfwb1rmwHQc/ X0bvOs3H1jgm9r7X1wyeRMpBhAj0VOhKkStXwxHAEK6ZXYbAAqX4ocsedMfnuT+XpBgn /Fk89R29S0tpdyC74vp8E++/3LHbUW0HyHLE73wUMjzH71V4UhQ/zFZbZxttDcXgWm8p KzCg== X-Gm-Message-State: AOJu0Yxxv118TdV36GPrzO+hEEPT0jQCjY4MI4mGj8+h5KILpQmtWFfQ sExXjgbYO1z9q2XENlJkD/4yER4Ve6W3euPtusCbfrnJOHkVCA0TFoM34QsvueXCMM9U9nvKN0B kVWBDYiv4xSiTCu0lIEu1Vqlog/g23MeVPKPSbo5k/03ii26zDOIHtvuZKmJy8PRmRQ== X-Gm-Gg: Acq92OH1581yFch2avA02gvD3xl97NUM7i6MUbsqBshq9Wg+gg/shYpWZBuKHZYtJZI XyGmxVAUvhIrlBLY/Tsf4Urx61VxMpFtJn86SJHkorLDACwhPlRBCej9J75tdULNob+qS4nkAf5 Mjt6CpJY60P3wil1mh7QBtbGjp52abUBUzo4UCjLrVMytEQ6L02namzQyD0pLug1nUGh/9Su5sS OfxqpglYgsYpxLmC4AkU6t0YWBDLOw+U2XtQsC9398xdiEd87tD//twEGagIjsT1OCIXE8Rct4y Yx+al9wM93Q8yidOYy/ex7YNcIRIdp2iBs3KCNGl7IBmRTXmWnO9euvy9n/diKTqGHhwPpLq5CN 11YgQHy35RfnrOGrAyLpAcH9ii2mw2cNBFaL698T6sbNJe1b8zqLSxfT0TGbunIHpLhMPTe314e GPTh1J X-Received: by 2002:a05:7301:fa06:b0:304:705f:e4e8 with SMTP id 5a478bee46e88-304fa746836mr872711eec.32.1780091807260; Fri, 29 May 2026 14:56:47 -0700 (PDT) X-Received: by 2002:a05:7301:fa06:b0:304:705f:e4e8 with SMTP id 5a478bee46e88-304fa746836mr872689eec.32.1780091806689; Fri, 29 May 2026 14:56:46 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain , Sid Manning Subject: [PATCH v7 29/38] target/hexagon: Add sreg_{read,write} helpers Date: Fri, 29 May 2026 14:55:45 -0700 Message-Id: <20260529215554.606133-30-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-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: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX97iWrfCX19vR FQGvRC4bV0tFm1NKgAMPTiuhdfnSlQiPgw+/q/OKRsEjHpzdHCwPPtvOlzI1Tc0J70ga7LRlZtg ddXjHg4c6VIER81Lnd84owhMwJFpuoLrV2P3NBAE/WSWM2Y1XkRREBoSjKp7rf/d0b0zEbC/lhR 0ZHPxiAIvFsMaZEh0uW62xHuYw3czH2gPaYiurtr6DNGleaXTgi28sPLsuHiFreiPZ7Klo7KvRM nhMQKzuokjGbIbicpNERkbhVdy5v5DDjsMVhrbLSDZzo9tSyArjoujo+grHJTFRNb0fGn9QlJqw fS8YYxY5WKmW6cg9Z61wC1X88mdhJ5JEFdSHo/wJOWmteeOkucSKClVXt2RgWd6eEYBwU85E1F1 c69tgU9YDL499AAQ60NPyjHG17RpSRoOu0RQ+dP5DQgQO+B1r7IdDBeonDTzULSofxsjzyBlR1t BCOUf2XnBQSrJIUAhfg== X-Proofpoint-ORIG-GUID: EZC1MWmTkfBthePQlO4l5Bjh5ekmZI6m X-Authority-Analysis: v=2.4 cv=Tt7WQjXh c=1 sm=1 tr=0 ts=6a1a0ba0 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=rqZXtLhFGwB6yMrbUaoA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: EZC1MWmTkfBthePQlO4l5Bjh5ekmZI6m 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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 lowpriorityscore=0 clxscore=1015 impostorscore=0 bulkscore=0 adultscore=0 malwarescore=0 phishscore=0 spamscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 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: 1780091843916154100 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 87da1fe430c..947988d2456 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -19,6 +19,7 @@ #include "qemu/log.h" #include "accel/tcg/cpu-ldst.h" #include "accel/tcg/probe.h" +#include "qemu/main-loop.h" #include "cpu.h" #include "exec/helper-proto.h" #include "fpu/softfloat.h" @@ -1451,17 +1452,43 @@ void HELPER(setimask)(CPUHexagonState *env, uint32_= t tid, uint32_t imask) =20 void HELPER(sreg_write_masked)(CPUHexagonState *env, uint32_t reg, uint32_= t val) { - g_assert_not_reached(); + BQL_LOCK_GUARD(); + if (reg < HEX_SREG_GLB_START) { + env->t_sreg[reg] =3D val; + } else { + HexagonCPU *cpu =3D env_archcpu(env); + if (cpu->globalregs) { + hexagon_globalreg_write_masked(cpu->globalregs, reg, val); + } + } +} + +static inline QEMU_ALWAYS_INLINE uint32_t sreg_read(CPUHexagonState *env, + uint32_t reg) +{ + HexagonCPU *cpu; + + g_assert(bql_locked()); + if (reg < HEX_SREG_GLB_START) { + return env->t_sreg[reg]; + } + cpu =3D env_archcpu(env); + return cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, reg, env->threadId) : 0; } =20 uint32_t HELPER(sreg_read)(CPUHexagonState *env, uint32_t reg) { - g_assert_not_reached(); + BQL_LOCK_GUARD(); + return sreg_read(env, reg); } =20 uint64_t HELPER(sreg_read_pair)(CPUHexagonState *env, uint32_t reg) { - g_assert_not_reached(); + BQL_LOCK_GUARD(); + + return deposit64((uint64_t) sreg_read(env, reg), 32, 32, + sreg_read(env, reg + 1)); } =20 uint32_t HELPER(greg_read)(CPUHexagonState *env, uint32_t reg) --=20 2.34.1 From nobody Sat May 30 17:44:05 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=1780091928; cv=none; d=zohomail.com; s=zohoarc; b=PD4BrR2vRCjL2sWGpSg+c2N0mKgHZLjaG98L5o4Ku7bP63viYd2Hsrh9pamyXUtVV5qpphGFN3nCDsGSsuNgIvV5zx7VvI/6WwEkBDSsQNTjygQDJIZXBT8P8Pi7MvgpX3lUNFSYELaC//xipoqkw8xWsC8Mh6tTL//Ib8fJnaQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091928; 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=HX3k/YyADUrb5LRmf5x7zDXdd1ARi0aw3Hv1N/F1i/ixQ9nxwpkZ6mV/1fMsPSsjlhnck5l+V/iTTIykU6B3N0W5jddpxdduAI8I+Xf/PSY4I3dW6jnJJyoNE57FCC5AJKeJ7JWNqrhGVfqTm4kEoVhIvKF08cbVph7nOmyx8jI= 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 178009192884950.04026875660452; Fri, 29 May 2026 14:58:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5CW-0006WD-C5; Fri, 29 May 2026 17:57: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 1wT5CQ-000647-58 for qemu-devel@nongnu.org; Fri, 29 May 2026 17:57:02 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5CO-0000WY-IA for qemu-devel@nongnu.org; Fri, 29 May 2026 17:57:01 -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 64TI2LOl2998031 for ; Fri, 29 May 2026 21:56: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 4ef4jj4ens-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:49 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-304f1820babso1364411eec.1 for ; Fri, 29 May 2026 14:56: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-304ee0dd8e1sm3026279eec.21.2026.05.29.14.56.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:56: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= xnSW3oZuwood08ngSSOR1Dm8XpJbybm5vIaVrHhZrro=; b=lgvy0LNWMCE3vVev rSt95Ki2z96VBLH5i96J7QwYtDsevG6JyURcaiZg02gqrzkxAqwwAXN41Xzaa06/ zk3nhfxzT4DtdbbPRPimF9M0DWOlssVjJ5N3sg1b7DbOw5TzEcQ8gJ/fcbneSU4+ QEWrNd7OoLbto2qsfLBtBbnbNvOjvvHQ8ybp/jDkrcxKwdTFFAbDoQOCQObTWN5h orVOyjTwr7g1vZW1fUwtX/Q6HsCtS6R451VJuIZAsCgSiw/rmqmddeI9Vu80si6y P183thdgUgauZ0I9/wo4zZIEkItk8uaCO9AAsfuI5YrOPJZxCzgKVUqXfM2MCh5V 3f0FSA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091809; x=1780696609; 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=VuySI8NOBnijeiBMtymAHviAeWrS0wtuV3TyMhdDoPktVmrtj2PAL8+t2UQWx5TaVP kRvMtg5ZZfH6Uk5yYa03xs7tJgOu/3PEzDMRYpF9jM1NxjqmBB0EFmllXo7Sz/BXEHaB HqXhxGRQNZ2Fv8IranOyV8SzsUJCHys5CwpyEU45t5m1Flpj2lyslPW7fCwqik17ekP7 nqPryCdPUaxYwDbLKWfZXwd4ui2o1WWNZnBd+qnRjKkq41nP3bmNLaOQAFoJYCQ+szQS RSZDCIyF54VwN+1gzP/wfgCHphvLzx/i3Wzo37GmgOfPPk0/+uSpdvbjPWBytxb5F3qq xL4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091809; x=1780696609; 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=mvTKSd43Y/cDX3G3tVI0+h5/payvO452x8ZzvWwcM0HrGnhJ6pizjgai+dMSOp+BJO kkJF97X2F+j8IDVA5l3u5vokzEv1nJAeTwzYywh0SjfjcHXwM7/mYTRz6H35641YdIao P1gPZ8cGfU4nQAyfLgw1DYsNwQZrNnkVd/ieDz8NaviAhQ4kpc7dJJevaHZRwwUbZYLf MnRHzpBFpOZF85NUsGNp1r6ErvFzjmYbm3n7rO+TgZ6jOGLdE+geq2ueJlhfa2vv5cE0 2tfkLwmW15MlNI7ogIl/R/EtBHIz6Eeg20k9bhwAFVrIs5js1Y3RN3kC3FtAdLlg5mZh 2VXQ== X-Gm-Message-State: AOJu0YxQovdRzL9QfkBgKIhjWZ/f4y119+Z8oa4FTGH64/wZNJxipVA6 /5vDIJNBuYOasysYh0fNuAiIMdp5WMzG+2TFtmYPFb99PfAQ5rcylMaRlcoPpZdZGu98IL2Pfx9 cKONxWSN788Css8XuXCd5+QkRgXQiJr7W0jWro2oADEDorr/M+xX35QxWSKTzCHntQg== X-Gm-Gg: Acq92OF571qin0U5wF304bPkRN/hLRkVxpF695nt142MGA2AmE2ZPwt4KMxXuDND/Q/ Ypkew7rO9Iw+UJZQDdIxkbwtKA1rFVDBcpyAakpcua2XYxOMJfxsMYMNjJ0WjXVOYsgTpcaVt0l S0bnhWfS1yaz+wHGGcVKd79cAdJLCpZSwPLnqmGv3nk+C26JLA0FONW90Oa7jRiX2doQUTA3IsT AFXmfbZpvhlSTEUr9ZQrOCvW4LlY/gmUf4dn/hVveNKFTaqGS0ZgeW4r2coZvLGmm38Gm+guZ9v bGtWLGw9CdnmqM4u4yj0QV4e3jt3VZLjUDjzU1qer6kv1ON1/Sg5Wz2E7pqh5NfNHFN7sbUJ84w 6l1H4Thdx6q+vRIYljmPATIN3marLLY2yXVA8vaHU0Q1joo7Bsnvt1y9Gk9Ap3tcrUuK79WILQf 6CJI4g X-Received: by 2002:a05:7300:3b05:b0:304:df0e:9dba with SMTP id 5a478bee46e88-304fa6a755cmr789650eec.31.1780091808641; Fri, 29 May 2026 14:56:48 -0700 (PDT) X-Received: by 2002:a05:7300:3b05:b0:304:df0e:9dba with SMTP id 5a478bee46e88-304fa6a755cmr789622eec.31.1780091807901; Fri, 29 May 2026 14:56:47 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org Subject: [PATCH v7 30/38] target/hexagon: Add representation to count cycles Date: Fri, 29 May 2026 14:55:46 -0700 Message-Id: <20260529215554.606133-31-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-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: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX6GvOA3O/OROQ nIzef5n+KE7UsI3igqOaNmuay9rnahbNgc0LaMM1Eg7bcUdjmHI4uzONMMvbWj4n5ig64ZGkXDx QAdjSRPGaqjObzIjG3KzJhrEJ7xcEnJyeg5KQHvLplQKsOB5U5WCtGN5TU86PKqn6aegGr/60QB RKERWv3EMt4IY6YKclHehPPfVmUBYi8ZN5iv5xHmYj0h3BxTxXT6G1ffNywtbE0L1SA4x0azyiz XgMklmQZC7cnP5GfG0UYaqboByVkzsJcbfPYJIpYALMBaXzRNe1qCUV+TyiQYwVvoi7f85S9hrA 0DaUswfr4pxM/kqrvn4V41DDkJuifL7avQAdX7SuNVqGn0h/cS4FAtgXGJdfZtNC/qaRkaY1ziw nikYc/AOfLXmGcw+ARFMR7sDcWgoxBLVtQPfyMFRbjzCM2A+lk60A0kfDz27VSYyNv+pHKpta57 E+kDx49HKnATiVXdGcg== X-Proofpoint-ORIG-GUID: 7MCETOrhav4-QlgRzshYzQtJ0J_Q3r20 X-Authority-Analysis: v=2.4 cv=Tt7WQjXh c=1 sm=1 tr=0 ts=6a1a0ba1 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=gmA5YO3DfmenxuRff1QA:9 a=tsLLKIjAKpJP5df9:21 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 X-Proofpoint-GUID: 7MCETOrhav4-QlgRzshYzQtJ0J_Q3r20 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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 lowpriorityscore=0 clxscore=1015 impostorscore=0 bulkscore=0 adultscore=0 malwarescore=0 phishscore=0 spamscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 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: 1780091931073154100 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 Sat May 30 17:44:06 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=1780091897; cv=none; d=zohomail.com; s=zohoarc; b=JAMCS8vzcmoXxYwC+guyEtx3I7eOF7L4L7PKxi7lBc2dXJOLU/LaUJWPwvSxTf3mIElrwqDQhYRWfi89cn4loe24nHwnO8n5cxU5jPRKgNtlmXZQiRe3NWy7a2eNaItxbeB3TrIzwDlfWCCAck0SE2wwU9itQ3usjjNIhDPPgd4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091897; 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=iou+G8D9iuCqZbWjerRrgMY1YXc0Mnp8lX4LFrcdKvl0L5GfbyTwPlBMIe/aUaAKCT2PDPbn+CA0NbTxI2vfDHkgGUkVTscdVZXZo7rfg+w1140YEr4MyYFRCddrdjT+szdDsb5CeWnBd1JdBxaxdk0PwWbqaw10lODv6HVsNn0= 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 1780091897643226.8401885324406; Fri, 29 May 2026 14:58:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5CZ-0006m6-Cb; Fri, 29 May 2026 17:57: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 1wT5CV-0006So-Ux for qemu-devel@nongnu.org; Fri, 29 May 2026 17:57:08 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5CP-0000X1-Bx for qemu-devel@nongnu.org; Fri, 29 May 2026 17:57:03 -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 64TI2I13199031 for ; Fri, 29 May 2026 21:56:50 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 4efdjnhxqa-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:50 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-304e3e3fba5so6170189eec.0 for ; Fri, 29 May 2026 14:56: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-304ee0dd8e1sm3026279eec.21.2026.05.29.14.56.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:56: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= dY/1s85TBUfEZ6DKxNXbQLtO9YNnO553PDpX0fAztOM=; b=NQ2Fm6H4A3nXn1bt 48uqbOgIDWv0LGDGi/+QFgVBzxj47ixI6RoSgGVonGTfKnAwqJdFZzY1Hi/VH/Qg TKuNkffBcRjxXmsckXJOhjx2IqRCmJ0UM7oOVwxNEO8buruv7+nUI1mRBCNrJaLT XdFbRG2ue+dMN9+2MBaBSxyqBFe4YlND47eCMwe0Q8w9UDtFBRQQbMJCkOTpd0qj XA2p1e+rGdJxUKR9/6aWtqrxZ1//KZapE+ecDxpykGKqUha4uyFGiHkDy9HPNF9E 5lAS0oDtsgn/Iwijgmx+lFtqf+s5ssoSB7ZcsYjVMN6ofF4JpZt/3eIvxpkiFP+m X0oCpQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091809; x=1780696609; 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=HDhHSn2dp7oPQIx/G+WETouOPJy4zwfhfBqTxdTAJuZeN26ir7Qrp6RXRXrk8lDbOo UFZ4Pp6w0gTqEUmZfzZB+OwJ05Y7V93CZLAuR5ykF59fvjncETQ1HtMk4kBwjlRU6TES fA3/tzte7mhxOFZneHf0x4XSVYgE+WSYFVPcI+A5W9oKXgkfR5xixjKtzlxRRfySVBsi ApFVOjrhrC0zMXCu5LIyBEnad9NzGe7cPNA3x/03fJJ0t+H5hOwG4Jd/mByBduRDqu7G wacj3nT5DzQGOydBJNVcJxZkG9GeNSUsvJxDF/CIENrtIv60h77qdbX6ybGy7RPFaA0O +HGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091809; x=1780696609; 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=J7Wf5jNui3KGlxAISgPHbmzbzloVm9E8RDpI6M67G47Ejo4aLj636mhwyq2qWGbNAK xTfLGNEwbefQ8BlXR56dUMvZBIj8KYwUS2b8X+NOHvkrKSLrdCK8yduEt5rzQnPh5Nqy MhcvJue/ECGQDsYHmnUVj83CvUJxozr7J4KeWIHKVPg0GGpAoDAISNRGUrFRnGDYA84I tq0jUiVAIywiII2zguaVSzdGsxJCS4yZnTo0RSlnvNL7ILMsMHq0A6QeWQmcWyx6Ns0I cNb3FGyksGqwSkgPV5RDs2v/rLJeH0UMN8rQGGNzBDa7QSKXklRHj6R74koKdJZ+WIuv nDBg== X-Gm-Message-State: AOJu0Yy7OmwJM/WwnCtPCfJXtcSfhVwnr70Hp1oZyq+fAainjlofkmTN Zm/ihuwRh2e7zsHL8qxaOVEdD+/qpaah00dB6J0YuTN1OaBcezqSiUm7bffEwcdAOQOPoK0mSQf wwhoxuMkZvNZNSylXk3lEpL5LhQkZxMyXHCN9KnriN2hU3v74Nayvi2onxgJgDPhRgA== X-Gm-Gg: Acq92OF+MKtDFM8y4HErzMOEDJ/UmMwWM8Z1aHtI5wi6vqX1PTkAZzLFRniysd9s2iz 1n+99y2E5IYZ3k5AB1BJOFUG4lXYviLokHOzmhosQv6k/V/7+FhkVwnQYt7z426+Px/N6F9dkhh 9a19DvkwqU6/KVNxCeZa9NA73KOK+ikgYGV2QILawdCb4BAJnqoLBta/LspKJXglUhsyY4nXzaw 5RVZBsQjlXiduhZ5yDFgh4XagDS3gcwYl4wweV819ziXPgdvuybKyQB+hThTsWi47bZmGmvnyu3 s1LtqIwUH3FFoNgLN9GsNWJCBXTxoyfRuE5mPlUunygkYerePNABOmMcB/MJtFkzsKIP4+5H05s gR41Ct4ktm9AmSX+6u/Je+PeVAr+D4DChA0162CEbxyNDZkUmP6t7LBleRcupvxDl4TKRAI765P OmfDFv X-Received: by 2002:a05:7300:134a:b0:304:e72a:d4d9 with SMTP id 5a478bee46e88-304fa6742demr1108541eec.19.1780091809315; Fri, 29 May 2026 14:56:49 -0700 (PDT) X-Received: by 2002:a05:7300:134a:b0:304:e72a:d4d9 with SMTP id 5a478bee46e88-304fa6742demr1108527eec.19.1780091808790; Fri, 29 May 2026 14:56:48 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org Subject: [PATCH v7 31/38] target/hexagon: Add implementation of cycle counters Date: Fri, 29 May 2026 14:55:47 -0700 Message-Id: <20260529215554.606133-32-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-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: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX6KjJH2MWi7SY Gysl3iJienE/axVnM31azuVyIX3jPRxIiMcAS2w/R5dybHDHOIa5RS+51P6p6wo/SoxZHRsBcJu K6e1NwPxjlOMWj2QBFPlmqjnf+wh6ZnObBMKs4EX+r17y0kQr8sBUMU3DYJh3CKlC/V6H0/iwsG Nv95EobnSMa5/sfqovXEGnFcVIQKkTrxzKGlF9T4TVqcX39vEXn6aAFA9+YEIM1s0w/3ThP6Cgh BTH3JBuOMUC3otxjvfgDp1LVp68fgTMPglZEc4hCetNXYZqyv7Fy7oHXjpMTrn2DE5QrgFlZhEV RI8/1wmJcnYv8JFHG4n68Bnfjs1PbMJdRhUt21SibmvhcgJidLoHIG088O1hlKapUT9sfcgWyR+ hdGRf6rndpAmcaw5a93okpqNICdbPSVTo6yaknCzmASH2tJyTvnfuBWYyB2iHTt9dmkX8M9m/Fq dEh6lktEOFnzFexUbhQ== X-Proofpoint-GUID: kbe0QVD6exMHIAj7wYAnZRkq3C70hcc0 X-Proofpoint-ORIG-GUID: kbe0QVD6exMHIAj7wYAnZRkq3C70hcc0 X-Authority-Analysis: v=2.4 cv=PtKjqQM3 c=1 sm=1 tr=0 ts=6a1a0ba2 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=Bw4caLd0n_0OF-yX4NUA: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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 phishscore=0 bulkscore=0 suspectscore=0 adultscore=0 impostorscore=0 spamscore=0 clxscore=1015 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 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: 1780091898711154100 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 Sat May 30 17:44:06 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=1780092113; cv=none; d=zohomail.com; s=zohoarc; b=c6sVwMYL3iMLt1+zjjBE6tqoE5sQjDABSNpeXKemR4/QibfI5r6AwbO+Atb0cF2HcKMCtHkiqTF6vEwwcD7eiOq6dNVMgpAk+htwrlXTjSfqJLA2BhrXyzja0PWIfFWBT+G/PVAsiINEs1COOxBQb+7goBPn0RFmu509x54Tbgw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780092113; 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=MhM9RkvQ7ldSGqNVU1yW2EwXCk107Gg94l6d4kfbn8gi5cdTp3btvdN8IlqD0/l2wIrzgyncFyoN7ajOWfNpYntDEaCiOI8ZneST72IB73DBP/H60EQyDJ9h0k5/LnT3xIW/A6oiwm1xSoEbupWpUpFpprQeoWcW0ou47yo5jLE= 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 1780092113429947.6622058708592; Fri, 29 May 2026 15:01:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5CL-0005mD-Qw; Fri, 29 May 2026 17:56: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 1wT5CK-0005e5-8T for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56: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 1wT5CI-0000Xe-Hm for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56: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 64TI2HPO589589 for ; Fri, 29 May 2026 21:56:53 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 4ef8rckbs2-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:53 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-304d0d0b28eso2806167eec.0 for ; Fri, 29 May 2026 14:56: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-304ee0dd8e1sm3026279eec.21.2026.05.29.14.56.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:56: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= MzvUFKvc+sUpWvc2016FnOxj5PhtBZkyxIiMWx3S09s=; b=XNXa5E4r1sItMmhE C5oPTIXX2YfeLmBZnpQDUuAqZCJk2akUpTUV98W3d0PMzky4tbhB8QHAzy6KXZnL aZyRbJHpdqUKa/xmYPGyZAfNnwMIHv3XfSkbC0REbfyIIQIZnR2I1YAI7cS54IyE N60kMvUufBk9KlatKbFR5Wj6R0bknViHauiCj5llt8qzk12oW1kt3lkOKtiG/2KK STb1MrKULqEzXYlpDwQYRMWOoztsmXq7bSuZO0663EjN8+WzRmSAzQhflahPTjOF v4PtWSq8ahLNFf8H8NVwMJcFPJKYBYe++BjrrwUCCKG4G6JkrkBHso2BO55llJel 4cSXdw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091812; x=1780696612; 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=cnxcvf/p28ajnkQUANLKr1Tk8kCUWKt1ubDBaPC1G0ls6HQy9xctwK+o+T7XsH+5Gj GV4GZ2kKX0jSLKnfi2lhdP2T8yCtB9mZFkI4vDSv639ESya8Sju4Z+G6xvKaHohk0NZQ 3l68J4Vx+L2Ni7/me6hRjBcXaWq/JhMyZG9qHOfbakHR8lmBf+G7Edr/uhkrfzwuI+yf UW7kK4W6xnR1l6k3uRV5yS7/it0obBAYwyiTbzNnhOvD+q2SVhUpEDBVr+DC0iIz7+Hb 30onm421mnny2bdqAesBlrv5mLDM8W6xio6ZL294iHj56r7aZBoVN5ihscHWHR7q8do9 laqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091812; x=1780696612; 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=MJ8/+FDOJNqMDA8jdSv8J3Gq53AU8KWD96+osoulp+Izs9ODc9k2kmywt+mvvo2FA2 QkFfitwx+lZngedUWAwM4IOObTwHF2fS4op6l8cIUAFlAE5v77WAfpEe32li/YO/2y1h d4SQqR/e/n3BbtbmYxjtAqoCGTF0sVTBWCOVMsMaxrY3Uc4mUua9/UqO5amArt1QCvzY GYiccgU7AfSlw9Bx+oAAjuWnzf1c/PLDNuUl007R0YVns7ZB8XKH2ZMv5721CnBwDLXU 2p4DQ1CU3GATfj1cXzZqAd8Ul86rk35DdXYLKQX3Kz3mPggG7zVAPSRvC4eL/vxgRpyA e24Q== X-Gm-Message-State: AOJu0YzHlV3BHg0nV3Zxsh4eAsddJ7uLdf1FLGLpET2qxnEQSg7I9pd7 0OdgG2ShBEwzmB0eHNpyIY8YJhncKYzbV1flMsu7tVyiFqIQNT9ZcRZuTO4891WExwCa0HOOUTF dqocmZcmQuwi48jspcnluNcOKUnuytSmT9/CZKrsMOFKwxJPInWSVd8zzKdYz3dWTqA== X-Gm-Gg: Acq92OGSuwbFwOWwusq3Uwz+Ur8eIBcU2PXog22gZLuoyUJ2TDzoqE6VMd1nH7hUSs2 DYENdkp9zzm+lxFdVa+fTvqWF3VuN0NEcL3ZsH7lKkS+ziLx4oYpL26nAJ7KtKBFV2p1IhRGz+C FNfnwNdxxJBlau6W2T15DAR6fwBKxJc+blgl2Ctll3PTuLNWnB0n4SoZm8MrtUrCmFK0J84o1N0 eBaAZ8E16xDe/DSFLeXqdTgf1JDBGbRIWlc2HTVmucJNofmp/OSahcsdBr0nz3fh5Q9DO74gR+S mKy5guB8i5Qe9I4gfRr+Ib8mDhZxywEsnXhXGu7VBQe222mbu5IzxDHu6k1L0jFgUwcI3xNqhLr lKribLh9rEu+GUo3Yf+l/LqjhZHDKZ6PwAVeGFr7AOgz+kOpAYXJit7ZcC688YH49HcGAabngwu D9ltoE X-Received: by 2002:a05:7300:ad2d:b0:304:f582:c7f with SMTP id 5a478bee46e88-304fa4c9127mr826749eec.9.1780091812382; Fri, 29 May 2026 14:56:52 -0700 (PDT) X-Received: by 2002:a05:7300:ad2d:b0:304:f582:c7f with SMTP id 5a478bee46e88-304fa4c9127mr826728eec.9.1780091811900; Fri, 29 May 2026 14:56:51 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org Subject: [PATCH v7 32/38] target/hexagon: Add pcycle setting functionality Date: Fri, 29 May 2026 14:55:48 -0700 Message-Id: <20260529215554.606133-33-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-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: pRlTb2O632oHHUbESaPATwF7cwucZZeR X-Proofpoint-ORIG-GUID: pRlTb2O632oHHUbESaPATwF7cwucZZeR X-Authority-Analysis: v=2.4 cv=DuNmPm/+ c=1 sm=1 tr=0 ts=6a1a0ba5 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=OF6xqQKflNrgTLtdKXcA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX/cdQ/vaeNhf9 J5pzRf1KkvLq94wgCImdcl0KaUi3y6nbfe5fq80EqFWteXfQmJuNSaOBUYUX3hpv7ayc4VHDrp8 bM6VcpuDxAyOTGHQZJJIEbUOCJUPvGORurLbi6DcSgRyPgjnjobyIV3DrVvpA5cOfhgtmttF/CP gKrczmvJl6omYkYDNIh6ZSwM/Se1zFjYketyyIjfa15eyohfxGST+SJ9Xl72IlgeQLPZlRbrIed GKwBl0gLKmRkSVMtxTzmzR4X6hFMdjVwUgnDe+wZh3GsOiQU+NSk2xESYVuye62ssoG7Ks7RmjU h2WFIP/gtJlgV0gigdr5syH2CAarWS0rtWSsp67rOPZcCE1KOZ+gdjlvTvjghVrlAHpxQQZP6wq ezXYb8MN6hNZMOi40CiFj1xntnwpebefkxqrhroSuYg9Y2B+tIDXAgOgB5WvlrXiffD9ERr31UY A8ltXyh0i89G2YbJhIA== 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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 adultscore=0 impostorscore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 suspectscore=0 malwarescore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 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: 1780092115165158501 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 Sat May 30 17:44:06 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=1780091999; cv=none; d=zohomail.com; s=zohoarc; b=mqm3TldgyXLmW5FDv3lY8UKdwrG01ozkUd1cH+fI2cz3ZpPnNGx3LLSxMNrmyMNhqa5jx4duF7MzPUCs/NC2Uqh/honoj/WfWREsP/LcpcLHmFdoxiOqu8zS6IV0Fm7yoz/t4ORaTQGPkbQLSyz5k8+xx709ufa7aTp2u/pg3nU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091999; 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=1nETUVmoG15LzclZ3CW0OtvaR+9D1d/YulupG9ak02w=; b=FNDj3q7P3MWn0RndYF/FgzWtXxDhCyMb//sWYny/EOx3WiWurRp7gT6Gk3PaPzZme5O7SP0ZraCnjmRP9t6jrdbURE5trSfgYl4ybtfJbwvdsklWXEaUXpOZlu2v2HQNsSIrlNd/v52wq/TiatwROu6UkLVuMdHQgH6sZfbTO24= 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 1780091999978245.40802937638387; Fri, 29 May 2026 14:59:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5CN-0005tR-LL; Fri, 29 May 2026 17:56:59 -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 1wT5CL-0005lJ-HL for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56: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 1wT5CJ-0000Xt-ML for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:57 -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 64TI2Ove1862730 for ; Fri, 29 May 2026 21:56:54 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ef3te4p9w-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:54 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-304d8613efbso2825925eec.1 for ; Fri, 29 May 2026 14:56: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-304ee0dd8e1sm3026279eec.21.2026.05.29.14.56.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:56: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= 1nETUVmoG15LzclZ3CW0OtvaR+9D1d/YulupG9ak02w=; b=o9Qxd9H4mX53QCri CUv2mBIdNUOCqHD/2qASDEvR0FcW5dW3DSqntdY+FEvwiz7cuIQZdYrGIuiE5lSi wwcTg0cqVvQHvAJpxBgQm4BXfm3sPHixhWSvcKefPetk7yrlfBYO5wfQR48OnM7U byLszpEmu1zXiI4rfoPw75XzARTRsL+ECKyOAQ3Fo2vS5MQO0BwmQcUxhmjAf7QV vHib/Dv7FJ15juzaipm/OdJ3Wt9YSTV3M8Jmds7vuILF6hkqE8YaGtM79wUZ4kgS xTciDGZso73GryCra3LR77qRCnQqCYJ6kwGNQGA8FNIERtwVPCb3BGZMQVlkmeHA rddr6w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091813; x=1780696613; 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=1nETUVmoG15LzclZ3CW0OtvaR+9D1d/YulupG9ak02w=; b=YOvW/Rlj+VOBmPVJ+UC5Rn4g1voOAAc/tkfv6inJNZnkxBal53ES7F/Aesjbir8H8S eeD+HSOEr0ETasGKvOD4h6Y/vfuFW/qxIcWItEIEldTRP2Wb8J5RzY4Fy2DzlEKrsVue QffG7BpYz4Li/CXus8dYhrzL+ejybSS1i7TCrUmnWK08StmkQQWDyPwuBmsOtFl7up57 Qb/xo7lI7Na+vCeTI8YcqsEDH4ni6u8oO6hyX0papM7S+Us5SvNP1ufiTLHXhfUQ8idD 3Vex9BNW0x5Qy8BatSSDtZHBUfdDhCm7MTEr+jAryRpDs34A5uzSRdfgaUejns1G/Pz4 8wjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091813; x=1780696613; 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=1nETUVmoG15LzclZ3CW0OtvaR+9D1d/YulupG9ak02w=; b=dBkyRZ4H1aBm69IA3ixLuFSbSDNbQoER/HURUeGlulvLrTkqN9pkUs1d3fEPxnsnAL gZkYkfFWFR8oGjhCmMHK/8Pk82/pY3qQ8X6T5DvKmaSY4aE3Bh1ivwl5qQd2zZ5ls6SJ SeuoL0mYbuaci8DpUIIJNlnyk/yWSkkXYiZE5pDt5rBvoSdDuSp3hQI+K16HNawiGhGM 2FArQfFnORtnf93La+sC+Z+G4S41GFgDsSd4+pXJ9ZKb5Rzdfriu3IsBrYGyaxSLc88w C/Gj7Zgsa02PJb/yK6a/lMNjqwzTNJrdUpofKUBPKMNYis3q6tLt4JfVCm7/Q4y3qMr5 0Jvg== X-Gm-Message-State: AOJu0YwGw3E1m2IRKPauViOiHxrMz9BIiOgVDwIvkpXAmojTajPZiUa2 TxUbRJvwOQwahLJAzkcmF3CbBYoJBRC3v3fwf74Lz+M5Y9YwZrvkmA7uis188sTWPwprpU8GLGR iJaJMbaoOFJ8GvCdrLg5AvFMST+u93rXj7Ygh+m90ZPatTeEX2A6ARKqQwHBw+YoA1A== X-Gm-Gg: Acq92OEAypWW9GTL9Z2I2lDL7R8mOmm2o27/O6fj2l3JXwT2Z9USqS084FKCAH5KDa2 JZg5gf+5SXn6CUtkmzexmDLeDLxaZNj8MHiUfwICOEKx3XTMAF8ZPKJu3CBCP3cqg7y2CAQkhGb AphGS7Ai0ZmcX8zo3Tnex4wamrJwALV+0aVlrCoWZtl6Zh19v7oHk6nNlOIAau2+PlGc6c/VIzt sEVBR1G9H85S03wMRs78r0EwqhnAS4S188XT1535Hw5RxS8xG/cKrrteF27+3tkQQl8poxjCUzj 9ByLFdTpFiirj6mbCACLQmjRQbLRHeOKFGZJFgp+rjaexMAm25rElFtIlfgP/0QziIEIzxn3rFs Lf51txcYC6BwELmZ9LVl/NQhyA225htKaccyuC8vJCeAh2MmOx8aMJ/dRR1GZNYdCPYdFJUDSa/ fpUBAJ X-Received: by 2002:a05:7301:60b:b0:304:d32e:65e7 with SMTP id 5a478bee46e88-304fa2fc9e6mr882773eec.0.1780091813504; Fri, 29 May 2026 14:56:53 -0700 (PDT) X-Received: by 2002:a05:7301:60b:b0:304:d32e:65e7 with SMTP id 5a478bee46e88-304fa2fc9e6mr882763eec.0.1780091812995; Fri, 29 May 2026 14:56:52 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v7 33/38] target/hexagon: Add cpu modes, mmu indices, next_PC to state Date: Fri, 29 May 2026 14:55:49 -0700 Message-Id: <20260529215554.606133-34-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-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: 6epifKHzBd6YOXmWU8bcMrB-b8FKiaPX X-Proofpoint-GUID: 6epifKHzBd6YOXmWU8bcMrB-b8FKiaPX X-Authority-Analysis: v=2.4 cv=daSwG3Xe c=1 sm=1 tr=0 ts=6a1a0ba6 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=6d93uPKVDIcG5a3x7xMA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX905Bs7pcXSqS EScu8YYuIp7vUDrEnFlo0qeyi/FstK1TBwN5Q2ne76USo4S6LuMb39rAB7oanQPM5YSlWnUXf6P 5x2kJdAE68JrNHXN1BQqGhx3fo3PGxcevraWGmB3TQ2iIbv1uNaJFNiHNX4Wm8W6aB3FpJKLqdL Z8gjWNf+QksDdVusvjdX0y+lP5x/vkWjZptW65f++s9COnCGXEuwJBECC1L4m5qHj0Crpfelemi nS5+SV7GGGaDQoFpQQK/0ML97D0j8RLkiPMfq2NbQMgU20DGYAoQ7W1Zn3Pu5mu8TmwCOw0xPJk yE5hkWCew9TBB7qxn0UKxggT81ZItYRRnIrvCg4kVLgDDkeZOQ/CWgt6VLjm9Rh0VMcvFpBC5DA r4nvWkHMZXPFy+1J7Yyrj8nTTG8rLrUl0BEE2AayocbVKwdCEyxwltL7P7Ix8583oJt2nus9JE9 E0YlGYasNt4+xG6hq0A== 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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 bulkscore=0 priorityscore=1501 impostorscore=0 suspectscore=0 clxscore=1015 spamscore=0 phishscore=0 lowpriorityscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 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: 1780092002164154100 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 21 ++++++++++++++++++++- target/hexagon/cpu.c | 1 + 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index ddf6da78c18..55dadb3b964 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]; 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; } --=20 2.34.1 From nobody Sat May 30 17:44:06 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=1780092017; cv=none; d=zohomail.com; s=zohoarc; b=X/qdxVOfPvmXj/my1ZMWqAk+k5v5v+FBzy/oPl4RNSmd7uDkucU3Pcl5aZG+A+ASvM5jbQWXBDZtGtzkFZRAme/yKpIOFg1mlBfF5UWSO5nftKs4RjfRFBy7t4H6qcH1KHYhIhdzAWzdTqQD3m0MFCzRE0n70ICTm7dUXVJWa+Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780092017; 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=Kxhc6PpiVcdjEOqCSKmXUPSaa7mt2D76zOpBX2UdWfqKMWWk1g60PID7mZ14slz2MS9DtPPH0ABK5mGPXF1grjVdxPmXTquJCDzs+NFakdh0XPagnm0QAh+8wpLxMzq8WoOk5uTuk3jO05F6IzDOHiGllyW/8LvJiaZ/jufMdsA= 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 1780092017670864.7518487453409; Fri, 29 May 2026 15:00:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5CO-0005w6-S3; Fri, 29 May 2026 17:57:00 -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 1wT5CN-0005ri-1G for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56: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 1wT5CL-0000YY-A0 for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:58 -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 64TI2I8c589615 for ; Fri, 29 May 2026 21:56: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 4ef8rckbs9-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:55 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-304b8d0ee63so5135703eec.0 for ; Fri, 29 May 2026 14:56: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-304ee0dd8e1sm3026279eec.21.2026.05.29.14.56.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:56: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= T4QeLlBFUTpGlmsbriWoI9s9TWXslg2oBf/G9cVJFSw=; b=nFsJwVJvgF/0M651 ++usH3hgnEGutGRkyscmOvJxaVrd3dPlL8C5P6fXVNBo8L+SHXYmZ97rbIbcECFP fnjqf4wXEqEobEwu8olVEmm+Fcakzn2szdMSyuG7PGOFdyBF0t/PMU06fr6C8GWR /XD7bh9M6FyxUOiM4WgDOLh7g9BEQc0inOT9uJUm9fmjCSqChdQFd+V7gZspjBYF BsDmjltzb4eJuwh9RgVWXt7f7QUL2Srq9PtnkqY1HQvgyV/VJBjgywTqmlT9UtmU OvgSBeg1jfIwLqkWh6C+hgrIFsBfYGYloxM7Xr/76tOdb+MIJ1WB/gGRinoc5rb/ TcsZPg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091815; x=1780696615; 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=azGentyQryG+AVMCGOFeb0lKzDyV+UGIK8mUXubcTfEBnvxlTwVQU7O2bIyW6JigiR F9wdECPM3fTHpIbvtrBBFGhrbp0NXVbZ57NQlhjGFg9oJ4Mg0yZjf8EvcW9DHIeg9jh9 AywsnIT2cYwX/AyeK23ICtEeXqiwfCb3QKgY/zeGTTojiPmWL6wwUi1vmmovBiXkn/J2 4jtz0lnbXqFPwCSgxPe7MUQSMiHRhfEHGgUJ0FQio19cS5uTA63B2XP85gLNdhUkz0r7 T94Fm0GHWV79HqWLv8QQMTWu2knr1pbsoPPA3Kj356fj33lO2jCKURZHeCIqkEs9HIEi wgbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091815; x=1780696615; 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=KdQok+s30FB2s9LvKxlKbMpm4U/8cfuaU0IB0TorUX2vBebxGUHLcmTJ4TaPN0bJJe ira+CR80SMm8+iiotpdt262f571YscuNSTf0EjZDfkA49rnNypjI9f44kc4vs1INbpLa e74B9KVwgzdCYwSa+V0gqqjaurJxJ1RFXABI8GpJHdUJ7WITByBEcRp1VIg7QgLoFY1f i+8my7cFKFf5rLFHgD4FOe+I6TClhiol4h4VaE6+4PuJYta/T5PEXOJbaxaWxR7Wq60o HKpayO/NoTCmfBu5k/1urQfRaap1almVzmqq9akttogIvuUJ5UaaSdiBjSAx2XtO0Aom rOLw== X-Gm-Message-State: AOJu0YwYJ5Fb/BGHbXQrDRtpLyv4U/Jy5/kqds/XiZJBZIwChra1ogqS cgDg+4hTbpCVDa6uXsqJ0hFGD43XJxpPcoCGd2K8cWReLf/GG7SaIpVZJDZpoYQ96xkuIQQaVnJ XVulTOgeXC8KhCwq57aMYOMGF6NYVIPbqhZJto580zcuTLBKrvh9UZqtuG9Onmg6HIA== X-Gm-Gg: Acq92OE/ElNfOM9Uk8wL+eAxTFxeVP2hJv9A5W0sW+LtjHmqtBq5P2X7VRvL5459xln 2x7mU3hWfwSJZB074Qt7J5ADFRnWYRytFYfp7Y8i/ZTM+BcCeCASIQ6ILN/6ddHUgVmq001NCRM YQz9C3XJ/4c+aPk2oUhTNITGXMRmUPLKY6b1xIzCP55Skc40Ti+zFRSZTs5o0jfm5K5U857AVBH 6Gk6B6HCczGc3HYV/7Rug4UfPVll0bxvB2c0srKbsIH9gOdwq/9whdS36wsjXZ9XVJCEDUjyVIe LTM0sP43wTdIYLIM3Gl6YL+qKeBnvjqglYzZXWfMDLz0Hm+Apuj7Q7GFJ8n6lR/1hglph94Z5Sr sAjvv/jMU1h8Z728hJf2Lti0nGivnXDICTiZSd3hbwp4luzlyqg3d1CmO9dnsuHcmwKY+p07MTV /vGoh5 X-Received: by 2002:a05:7300:8605:b0:2dd:6937:79d5 with SMTP id 5a478bee46e88-304fa4c7c24mr960232eec.8.1780091815115; Fri, 29 May 2026 14:56:55 -0700 (PDT) X-Received: by 2002:a05:7300:8605:b0:2dd:6937:79d5 with SMTP id 5a478bee46e88-304fa4c7c24mr960218eec.8.1780091814577; Fri, 29 May 2026 14:56:54 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org Subject: [PATCH v7 34/38] hw/hexagon: Declare hexagon TLB device interface Date: Fri, 29 May 2026 14:55:50 -0700 Message-Id: <20260529215554.606133-35-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-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: VgR510fIG4ueulbFzL8Q-mJXwpSawMo3 X-Proofpoint-ORIG-GUID: VgR510fIG4ueulbFzL8Q-mJXwpSawMo3 X-Authority-Analysis: v=2.4 cv=DuNmPm/+ c=1 sm=1 tr=0 ts=6a1a0ba7 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=EUspDBNiAAAA:8 a=p_7iY2stt2bzV07uMJkA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX6LmcgewQ+ncr HpfpVqnDb9W/o00oFM6wue28fVCxxZ4psYIWn0C4nJQiM2fXofN8/iFukJW8M16Hbw4df+IRZog U7fD2c2XPIGeW3Qy5N9PI252Rb5vcx5eERbfRlouqVZeAvM8cUnaVKrk4HbZFu7PcT4ctRLej8l Mm8vyJZSuLHAt1LgnoeoVl+tcm/SPjJNtuNCPb/IWKArNhvsjNJJ+XM3RXTG3iPMSSYghkRchQq N7N8UHFlQXT17hPuyqtPS7O+vbJREPr6wzth79ZJfuy5U/JPi8a5b6VrJmtj5B6NEU0duEjSo28 +jhP8CJ6+DK02S+UP7eG1c/FFrrdzDBuqcuBTg2nFae3hwsNABgrmLHcNHVnvnd2/ljWwDi6nQ1 kt4Svb5RdH8q/W6i9uugzjudnGFM0vAj7EmIp7GdaD6VMUXAT7w4fwx82Aw3EkHR8jZoSbXDRHm S2lDQ3hDKLAK6p6zNqQ== 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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 adultscore=0 impostorscore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 suspectscore=0 malwarescore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 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: 1780092018398158500 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 Sat May 30 17:44:06 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=1780092066; cv=none; d=zohomail.com; s=zohoarc; b=mHiKcGxoeRusuAhR39CQsTXgdPIHpdUxDb03wGTGn2eqIVXgDST/P5oaaeMc/4xzNVdxXMUsrIXRi8a0kAnUJIasw7Gbvfr7/Df61W6YxfovJteW/1/medYMQt2G7YMzlFnN3+BcK/Jl5W+db0Xo++TXytEQieeawgDLwnIY8js= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780092066; 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=IrBCoWHRNxXkyP6r0ijMh9ho7/K8FLW28OO7q04R734=; b=XkygyuD27ObM3t0QQI+Yh4BOdePKZHT5bekctH7h9fi+77IYzmxuUlrSPrXQU2Jwk+QCASI7veA5SnzXrxJd/8cWxXgpux0//pt5J0LD5tH+5PiV1eKhcvYXJx9wXPKjdYW7TPvXVsw2TZJ0CUwH1iBtqdq2IDQE2Og4IQ8SfAU= 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 1780092066929899.9264206358117; Fri, 29 May 2026 15:01:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5CQ-00062x-4e; Fri, 29 May 2026 17:57: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 1wT5CO-0005uV-3r for qemu-devel@nongnu.org; Fri, 29 May 2026 17:57:00 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5CM-0000ZC-FP for qemu-devel@nongnu.org; Fri, 29 May 2026 17:56:59 -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 64TI2Non1912358 for ; Fri, 29 May 2026 21:56:57 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4efbu52gkj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:57 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-304b8d0ee63so5135709eec.0 for ; Fri, 29 May 2026 14:56: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-304ee0dd8e1sm3026279eec.21.2026.05.29.14.56.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:56: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= IrBCoWHRNxXkyP6r0ijMh9ho7/K8FLW28OO7q04R734=; b=aZpurTNeDLBpdXVJ hlkaoi7urFc5dxoDpvGZFwcpIEbzwEGa7GkpgrBvXn3RZbToS0KVxrl9hmx06l9U iIPWdsdbNTevemMMrnq76X6BaQw6IPo4sLZLEDI32SyahJqqFxtgkvvJTqa3yXS8 6i/RA+9kj8qgbD7SizykZeIE6XCsV0gH4ycWLDjwktksw1asbBMx0e46+9GiEpBK 4T3bO1nv7ZTT0LzNxDQ1sLP4qC0r2MAKLkrtM8NhrxrIvdcxJIIdCCnkQtL2e6pU +CCnbgjrlJsv69Hge895s8tPJOaX+bclx/JiYu0bStvP70FPOp022VVaaSWj0ehj 3VfRQA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091816; x=1780696616; 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=IrBCoWHRNxXkyP6r0ijMh9ho7/K8FLW28OO7q04R734=; b=atb6zhP/SmkRlVY5BVptgYJ3BhMWru7aAJTWW4ANePdiwM5FcUhtLDt2QZ/ySp/hzu f7TJtncFJqK1k0vAIInAc1DmRKant7nqyTTpdZh/GzdJP5GmDENSbrKs/Faf8411Yymj ktaAE6i3jk+EKLIdoipfULij03yruB0gKjRNQJAIYm3XNntFIzJn6Fe7thiJYSm9LiJ4 PZzccaJ9sWtwJJJGJ18Tn7KqvCCIaYfc9PH0rcLhq5CvB7jmm2MrW0YbQkqHqUJ7Grt1 7vrDpHA3/S2VxxFDIeA5z6+OUrFzOvZkcvY85JRh5kY5YFbpp8J3uw+fDfdQr8zqHOat CM2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091816; x=1780696616; 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=IrBCoWHRNxXkyP6r0ijMh9ho7/K8FLW28OO7q04R734=; b=HhRMrLzcszoZqj/gqAEfLLvjByah7JblELU6y0AZk5ssMxsuT36TwIBFCAU1GwkP5S GpPBEHEh322d09nXObi5jueAnhnNugYzOUL+PlgrrHcY7JI/zTYIq+vRSRhyTzpqirxi RzkNChPKbjYfN8TncmGh/ZsoORyHx4dlFTjcV0wLrHuwNkn/KDyWHpkukSKQ5AKpV/45 aF+dpFz0a4SP3xFrn1rVVqf/bedOVVutolPz6uGMHVQzOLaMgBJykQT/ZyQE3O3qItA/ C+03UHgkZDkQGbsIZnStk1R4TSvSeLWw9BC711IAx9Dwvaskvpx2ec8vycuKFQAvN/D7 SFYA== X-Gm-Message-State: AOJu0YwDfWMwkElCe00aEWebnMT8PbzhxX7GXYiCT3rRaAlLivfgSIHd X3814XA4f/pvsCp3JR3u9OHxaaxDfEYwM46QauIzQhTysJ7rRYGuGXkTn8s7TxPGL8ARZEPlXgI lg0POQ8Dutr7rjFRA/znLKW+2NKm2FOHpdNzwG4TQrhGgbjrtTKdJUocpwwQYTUJU2w== X-Gm-Gg: Acq92OFG7rgwkG/bPFRBevPz42sdyJpN+8MsGnUM56FCJiUH/rkTuJFGENajHL34mFM kD5xl2qOXowclmYvjlQKCBxQGGtuz5akjmEazLJ7OVh75jA4t4/8Jk1lMp8IR9AethYV3EpVJbe dmYV3bbmWISGKcHeUULO+1UcVrvXnK1D8xhOYB+dew/bIDNUZCqsgGy9f6R11cfDfP2vCgZz9ww hIg3LA/4zfShrXZFsLO7nOJjq7RZrntD4gTQ8X2kQEQwdFaEnVvL09C3daN2Jbg9bXPC3e93UYm aGiUOXu9PEiU0WuBMLQWB0lvhRbXlEiOkUABPJE8iQhQZIUzPTr9reYFGHPPA1S9gzsHLQKjR8F 9zANdl+E9iheC7NJx/UDPgJn205t7SZF5QmvuERFyYqoJQcLbiXEa11VNq/6QAG+j37PfhbMFGV +2Hcr4 X-Received: by 2002:a05:7300:80c6:b0:304:df8b:71ee with SMTP id 5a478bee46e88-304fa49ce36mr811044eec.7.1780091816350; Fri, 29 May 2026 14:56:56 -0700 (PDT) X-Received: by 2002:a05:7300:80c6:b0:304:df8b:71ee with SMTP id 5a478bee46e88-304fa49ce36mr811024eec.7.1780091815812; Fri, 29 May 2026 14:56:55 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org Subject: [PATCH v7 35/38] target/hexagon: Define MMU_INDEX TB_FLAGS field Date: Fri, 29 May 2026 14:55:51 -0700 Message-Id: <20260529215554.606133-36-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-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=SMRykuvH c=1 sm=1 tr=0 ts=6a1a0ba9 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=pqn84ZIC0LxmOLqsUA4A:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 X-Proofpoint-GUID: eiu2BjjeCd1TUKnWhpvAtYBncMkLvKLc X-Proofpoint-ORIG-GUID: eiu2BjjeCd1TUKnWhpvAtYBncMkLvKLc X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfXzIrwR9uOkGMF 7OOFjlq6Y8aZLMSe4jzQsMoJimhrW02CpxZ0/uSIz+qQoO7rPiFqAFrP1gQs2/tnjrJugN7Ed3t QcdUQtc2uFM9QYnWfoOlDK0UFM+4brmtxbo1Hg4102qqFJzWLyOdHWex+M3cbYkCypqYL4ccfSl cdPjxvh3/Vvg69jAMyfnNDK2LYSfeEKZ5F7ZgoKti37uFZRoby/SORzFYyRyo5W/oQAlNmS9MOH B5iydYMrjPEuLQkRUeyif22SFp8AI/Qg8+BWhvGISl3RHSAtxWVrBrYiFT9Z/ZN1+Abzh1SaWxu m++uB6LWNq0Usb48CLtCL0WGlTJ8chP4Z6kMKeCrizY84CLCQzDWn08b1S5dnRqBFLp9GmfJUMK EFj1O1J8gyKHzXraa3/PFx14eNii0lx9zhIEo+nFOJFSEZYhxYXGc1J/i0ao88Q52+IY7JjJCC+ KT5QA+0MF4ZtUXztTjw== 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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 lowpriorityscore=0 malwarescore=0 adultscore=0 clxscore=1015 phishscore=0 impostorscore=0 priorityscore=1501 suspectscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 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: 1780092068830158500 Declare the MMU_INDEX field in TB_FLAGS and use it to extract the mmu index in translate.c initialization. Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 1 + target/hexagon/translate.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 55dadb3b964..7ba1d3047df 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -183,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/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 Sat May 30 17:44:06 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=1780091882; cv=none; d=zohomail.com; s=zohoarc; b=lwzHQv1ffOKudTqKJC0ogqJkp0Dg0bKqDFq1bnFp7nrqpEjnvuRHVEcdeYOaDqqNAT4VflowzYBBFmtYDVXYNlAOuKeMbViRbqphvC79Pn5aM3c8XPYOIqXTb77cEaepiOLzmlsQoFf0kEPHZtDAO3jHk0/Keyyws4K5QRuFf7U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091882; 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=Nq4d2ySoXbrnI+uIk9aaxBMmMDI8Ss+Ewjeyn/1Xrzg=; b=lekb7LqwReD97cQ5MsOUCigfjznSyXg04dXJLaoVzfTumGwF8bFN9fIwlXmxt23J/Xsp6xpH4q7cMg2zPxB5V10MB8mazNpoSB44ZI82stXDur0ljE2NdG6Hgp+v5SZcZOsVOekFk9PLEpp8YpBQiIYKedtBVR6V/mCw+N0rzLA= 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 1780091882215436.8419214710491; Fri, 29 May 2026 14:58:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5Ci-00075E-V3; Fri, 29 May 2026 17:57:21 -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 1wT5Cb-0006qi-HQ for qemu-devel@nongnu.org; Fri, 29 May 2026 17:57:14 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5CY-0000Zv-Rq for qemu-devel@nongnu.org; Fri, 29 May 2026 17:57:13 -0400 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64TI2Lq22998037 for ; Fri, 29 May 2026 21:57:00 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 4ef4jj4epb-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:59 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-304d8e9563eso957615eec.0 for ; Fri, 29 May 2026 14:56: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-304ee0dd8e1sm3026279eec.21.2026.05.29.14.56.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:56: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= Nq4d2ySoXbrnI+uIk9aaxBMmMDI8Ss+Ewjeyn/1Xrzg=; b=WlV4O+7izlY8wX19 eodYpWNYFKHDdfCF6WG1hDbBdbFsiKLSuzKk/Kq3sKqCTpPzjDSnGH/nYUMU+70s 1FWAiB+FBaeqxYT3oBJ5n96xNSXaNXdXxoBrGQRj1RBwPtEtj8pmCejUtv9YYBea kVjfHvtEXN1iunz0XYVZEdyEkq9kqEwaOoWi5SKzIPYc5ebahZjYEJu2QQ2x1aq8 ZZP+mB0f9OVY/WExvypBewzQ/A902Y/kQMGvTSPlGEm03bP7XfrDjvRT2nWXAFKP FNrMpjs5o8hEqr4d3q+knDaAhwSK5xCypoRksrHh/ijpCk5fm/576NbH4Ja73fc6 hXk+Uw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091819; x=1780696619; 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=Nq4d2ySoXbrnI+uIk9aaxBMmMDI8Ss+Ewjeyn/1Xrzg=; b=aoYHJ3lgTv4qJHz7fI+cvqodS16DeTB4+zHvb4o/TmszVV91JZpXsCZbpvxTbjftlh Id1J26ueCiKAEYH6K3PJpr57OnGbDb7UNyBcDhIE4Ws8imqYx8mFlC06RzWaeTGbrNDB D2EUpwLdAP2UOAZm/uUOgrJ7zGd/Goe1BlLJQ1sUyP99FpfPyfs97ji9rLCit1ScDXzo 9RIzPu0POPgtldt8J0oRHOc2M7eulKch3ZwLfNSyebC979h3YzAwx1wcr0LrJp+13dN3 bbUi0Mj3pao6rhetdGgsqHzauHxmP1/Ut/YV2XsOB0ZYXdrKYNctRIcuDq8TbDL6n3wK A1OQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091819; x=1780696619; 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=Nq4d2ySoXbrnI+uIk9aaxBMmMDI8Ss+Ewjeyn/1Xrzg=; b=hZmWELNj4NR2lg8HazF8Ot+7hhXAWT7eCFb90bh3VWvHndgA4nNiONakSuupP4yYHr aCSLycU+A2NUDmKpCM2uCiP0G/yFxbkNmoRiA9CfHBuyG7Pc2p6bTkLOCH+QWQOaUGfb e0J6LFtufR03ZjBLGdP1cb/1CZq3dzXrWBPl/VA5PDIGrQLuc4Yr3SsRiWM/nGK20OrN 96+ZySBaXW6a+7RKv/Z7EOzxHktz2AvpR/tcEhX18l5kxJu8q2ZtoZorSsKugcRiNPnT u4su2n2T++oYJptkKzHhtUz1uWpUvvPM5hmLIjs8ahD0NeJrWuyX8jNDPrWYcGBWOVgN zNXw== X-Gm-Message-State: AOJu0YzSLC0SzxVPFuN8GRYyq7lFaFCwL7Ktd+7Akg+UcpqT7jNgkSY/ YUbooc4m1D+rfEkyDOUzWVFuVoRhtVfrs0tgrScyuB58uLP9OzDLQNsz/ov8knxUBufRwkS/sfL 2qIdwETP3Mgv0LLyWIlkHs8m1f0iYwJSQSkmNqp3ohTSmaWN9xdbVeJHXm/X0ivToAg== X-Gm-Gg: Acq92OHDUl0YqRFcsXJ64jBykx2FijTl7d8UMvN236QDIG41VdeLF6fLgsqo+qCJaZv MJq/erH44AMVpRvBrxb2P2B8sGsoQ6C7svFPiAJas6gEyWahGJt11MEMHCHdarIa8QKEMhJdi6o CBBjDl3OqptLOTy+ZHJDeCODXvufhPTIUrdw8gixEXje8xDRwE8G4FcENWQyUp7TQtsby1ULXHg jHOvlcR7I5N/UaovPak8wQzPAg/0A5wveJnZfP8CHJJQLKQR5qaQONmTMzq/+VBXeh66Gp05M1v F4Hxh37Clg8QzcoJRha1qWeS9p4cINYK90wRkE/0QCatNjaHbmIojy9JiaoM2YO+mRIvK6uSGz7 qLqtVStZZHHjvfG01JCPpfRKPG+uy3a2WfiqLuQcgiwrggnGoZyCnxuGNWa1O3FV3mE+a2ciz1J tK84qx X-Received: by 2002:a05:7300:7495:b0:2db:2089:460f with SMTP id 5a478bee46e88-304fa5eb2e3mr858516eec.19.1780091818186; Fri, 29 May 2026 14:56:58 -0700 (PDT) X-Received: by 2002:a05:7300:7495:b0:2db:2089:460f with SMTP id 5a478bee46e88-304fa5eb2e3mr858496eec.19.1780091817503; Fri, 29 May 2026 14:56:57 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org Subject: [PATCH v7 36/38] target/hexagon: Add stubs for modify_ssr/get_exe_mode Date: Fri, 29 May 2026 14:55:52 -0700 Message-Id: <20260529215554.606133-37-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-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: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX2BWB1lymBd6C sVWjkJVSkA+RQAJh6MWlhRu3He7J1MQz/Wi9B7KI3S+6pPeDx9MO/mnrRSm/k9NG43O5iNAqAP7 TwX1PcULhsgYGyB4BAyNvJScy2T+7OYC1rw0z4jkT1Q1D8eT3kwmY206Ku2jjBykdWVuxCRlpxf z9kJxU5sSCauFzIL0M7cJPQKxHSuFWs4Jy6kauNGRxCJlYzt9moeUUcrQBCJxAyKg4SeFpBDRcB 3uQ6+xWYQFuR7L1jD5PaN1VM4DS754XUMGChswToYKmiXaJ3EqKDjK7QTFq6YXNUgE+3q1b/m0E +8K8uOkclSrzQyq3igr2fgBqC5Bi28IQl4adhSPC5lvJvHapGl2PmLkTnzorxg0B4pfLiMNsA7k cGOS/d4AZ7HPBR/L3dZ6sDaU2rbtkWv/UTW+JMXTrd0s6hKCfrQPgpJ4zXlHls84leVhBReVKKA /gGhBBdwoqNEisZBH2w== X-Proofpoint-ORIG-GUID: YorMcFtzhwGq-nQZiNvowBN-dLf-_IkY X-Authority-Analysis: v=2.4 cv=Tt7WQjXh c=1 sm=1 tr=0 ts=6a1a0bab cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=1eS9DRoYkSOUxsN_X7IA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 X-Proofpoint-GUID: YorMcFtzhwGq-nQZiNvowBN-dLf-_IkY 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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 lowpriorityscore=0 clxscore=1015 impostorscore=0 bulkscore=0 adultscore=0 malwarescore=0 phishscore=0 spamscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 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: 1780091884551154100 Add hex_mmu.[ch], cpu mode helpers, and additional includes/stubs that integrate the TLB device with the CPU model. Signed-off-by: Brian Cain --- target/hexagon/cpu-param.h | 4 + target/hexagon/cpu.h | 23 ++++ 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 | 268 ++++++++++++++++++++++++++++++++++++ 7 files changed, 369 insertions(+) create mode 100644 target/hexagon/hex_mmu.h create mode 100644 target/hexagon/hex_mmu.c diff --git a/target/hexagon/cpu-param.h b/target/hexagon/cpu-param.h index 1f0f22a7968..9eae7d2361c 100644 --- a/target/hexagon/cpu-param.h +++ b/target/hexagon/cpu-param.h @@ -18,7 +18,11 @@ #ifndef HEXAGON_CPU_PARAM_H #define HEXAGON_CPU_PARAM_H =20 +#ifdef CONFIG_USER_ONLY #define TARGET_PAGE_BITS 16 /* 64K pages */ +#else +#define TARGET_PAGE_BITS 12 /* 4K pages */ +#endif =20 #define TARGET_VIRT_ADDR_SPACE_BITS 32 =20 diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 7ba1d3047df..873ef6cbb2a 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,9 @@ #error "Hexagon does not support system emulation" #endif =20 +#ifndef CONFIG_USER_ONLY +#endif + #define NUM_PREGS 4 #define TOTAL_PER_THREAD_REGS 64 =20 @@ -47,10 +53,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 +76,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 +143,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 +197,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 f497d55bb81..364fcde7383 100644 --- a/target/hexagon/sys_macros.h +++ b/target/hexagon/sys_macros.h @@ -139,6 +139,9 @@ #define fDCINVIDX(REG) #define fDCINVA(REG) do { REG =3D REG; } while (0) /* Nothing to do in qem= u */ =20 +#define fSET_TLB_LOCK() hex_tlb_lock(env); +#define fCLEAR_TLB_LOCK() hex_tlb_unlock(env); + #define fTLB_IDXMASK(INDEX) \ ((INDEX) & (fPOW2_ROUNDUP( \ fCAST4u(hexagon_tlb_get_num_entries(env_archcpu(env)->tlb))) - 1)) diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 626100d43fd..28ab2ee420a 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 { +#if !defined(CONFIG_USER_ONLY) + DEFINE_PROP_LINK("tlb", HexagonCPU, tlb, TYPE_HEXAGON_TLB, + HexagonTLBState *), + DEFINE_PROP_UINT32("htid", HexagonCPU, htid, 0), +#endif DEFINE_PROP_BOOL("lldb-compat", HexagonCPU, lldb_compat, false), DEFINE_PROP_UNSIGNED("lldb-stack-adjust", HexagonCPU, lldb_stack_adjus= t, 0, 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..c921e82b377 --- /dev/null +++ b/target/hexagon/hex_mmu.c @@ -0,0 +1,268 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "qemu/log.h" +#include "qemu/main-loop.h" +#include "qemu/qemu-print.h" +#include "cpu.h" +#include "system/cpus.h" +#include "internal.h" +#include "exec/cpu-interrupt.h" +#include "cpu_helper.h" +#include "exec/cputlb.h" +#include "hex_mmu.h" +#include "macros.h" +#include "sys_macros.h" +#include "hw/hexagon/hexagon_tlb.h" +#include "hw/hexagon/hexagon_globalreg.h" + +static inline void hex_log_tlbw(uint32_t index, uint64_t entry) +{ + qemu_log_mask(CPU_LOG_MMU, + "tlbw[%03" PRIu32 "]: 0x%016" PRIx64 "\n", + index, entry); +} + +void hex_tlbw(CPUHexagonState *env, uint32_t index, uint64_t value) +{ + uint32_t myidx =3D fTLB_NONPOW2WRAP(fTLB_IDXMASK(index)); + HexagonTLBState *tlb =3D env_archcpu(env)->tlb; + uint64_t old_entry =3D hexagon_tlb_read(tlb, myidx); + + bool old_entry_valid =3D extract64(old_entry, 63, 1); + if (old_entry_valid && hexagon_cpu_mmu_enabled(env)) { + CPUState *cs =3D env_cpu(env); + tlb_flush(cs); + } + hexagon_tlb_write(tlb, myidx, value); + hex_log_tlbw(myidx, value); +} + +void hex_mmu_on(CPUHexagonState *env) +{ + CPUState *cs =3D env_cpu(env); + qemu_log_mask(CPU_LOG_MMU, "Hexagon MMU turned on!\n"); + tlb_flush(cs); +} + +void hex_mmu_off(CPUHexagonState *env) +{ + CPUState *cs =3D env_cpu(env); + qemu_log_mask(CPU_LOG_MMU, "Hexagon MMU turned off!\n"); + tlb_flush(cs); +} + +void hex_mmu_mode_change(CPUHexagonState *env) +{ + qemu_log_mask(CPU_LOG_MMU, "Hexagon mode change!\n"); + CPUState *cs =3D env_cpu(env); + tlb_flush(cs); +} + +bool hex_tlb_find_match(CPUHexagonState *env, uint32_t VA, + MMUAccessType access_type, hwaddr *PA, int *prot, + uint64_t *size, int32_t *excp, int mmu_idx) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t ssr =3D env->t_sreg[HEX_SREG_SSR]; + uint8_t asid =3D GET_SSR_FIELD(SSR_ASID, ssr); + int cause_code =3D 0; + + bool found =3D hexagon_tlb_find_match(cpu->tlb, asid, VA, access_type, + PA, prot, size, excp, &cause_code, + mmu_idx); + if (cause_code) { + env->cause_code =3D cause_code; + } + return found; +} + +/* Called from tlbp instruction */ +uint32_t hex_tlb_lookup(CPUHexagonState *env, uint32_t ssr, uint32_t VA) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint8_t asid =3D GET_SSR_FIELD(SSR_ASID, ssr); + int cause_code =3D 0; + + uint32_t result =3D hexagon_tlb_lookup(cpu->tlb, asid, VA, &cause_code= ); + if (cause_code) { + env->cause_code =3D cause_code; + } + return result; +} + +/* + * Return codes: + * 0 or positive index of match + * -1 multiple matches + * -2 no match + */ +int hex_tlb_check_overlap(CPUHexagonState *env, uint64_t entry, uint64_t i= ndex) +{ + HexagonCPU *cpu =3D env_archcpu(env); + return hexagon_tlb_check_overlap(cpu->tlb, entry, index); +} + +void dump_mmu(Monitor *mon, CPUHexagonState *env) +{ + HexagonCPU *cpu =3D env_archcpu(env); + hexagon_tlb_dump(mon, cpu->tlb); +} + +static inline void print_thread(const char *str, CPUState *cs) +{ + g_assert(bql_locked()); + CPUHexagonState *thread =3D cpu_env(cs); + bool is_stopped =3D cpu_is_stopped(cs); + int exe_mode =3D get_exe_mode(thread); + hex_lock_state_t lock_state =3D thread->tlb_lock_state; + qemu_log_mask(CPU_LOG_MMU, + "%s: threadId =3D %" PRIu32 ": %s, exe_mode =3D %s, tlb_lock_st= ate =3D %s\n", + str, + thread->threadId, + is_stopped ? "stopped" : "running", + exe_mode =3D=3D HEX_EXE_MODE_OFF ? "off" : + exe_mode =3D=3D HEX_EXE_MODE_RUN ? "run" : + exe_mode =3D=3D HEX_EXE_MODE_WAIT ? "wait" : + exe_mode =3D=3D HEX_EXE_MODE_DEBUG ? "debug" : + "unknown", + lock_state =3D=3D HEX_LOCK_UNLOCKED ? "unlocked" : + lock_state =3D=3D HEX_LOCK_WAITING ? "waiting" : + lock_state =3D=3D HEX_LOCK_OWNER ? "owner" : + "unknown"); +} + +static inline void print_thread_states(const char *str) +{ + CPUState *cs; + CPU_FOREACH(cs) { + print_thread(str, cs); + } +} + +void hex_tlb_lock(CPUHexagonState *env) +{ + qemu_log_mask(CPU_LOG_MMU, "hex_tlb_lock: " TARGET_FMT_ld "\n", + env->threadId); + BQL_LOCK_GUARD(); + g_assert((env->tlb_lock_count =3D=3D 0) || (env->tlb_lock_count =3D=3D= 1)); + + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t syscfg =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_SYSCFG, + env->threadId) : 0; + uint8_t tlb_lock =3D GET_SYSCFG_FIELD(SYSCFG_TLBLOCK, syscfg); + if (tlb_lock) { + if (env->tlb_lock_state =3D=3D HEX_LOCK_QUEUED) { + env->next_PC +=3D 4; + env->tlb_lock_count++; + env->tlb_lock_state =3D HEX_LOCK_OWNER; + SET_SYSCFG_FIELD(env, SYSCFG_TLBLOCK, 1); + return; + } + if (env->tlb_lock_state =3D=3D HEX_LOCK_OWNER) { + qemu_log_mask(CPU_LOG_MMU | LOG_GUEST_ERROR, + "Double tlblock at PC: 0x%" PRIx32 ", thread may= hang\n", + env->next_PC); + env->next_PC +=3D 4; + CPUState *cs =3D env_cpu(env); + cpu_interrupt(cs, CPU_INTERRUPT_HALT); + return; + } + env->tlb_lock_state =3D HEX_LOCK_WAITING; + CPUState *cs =3D env_cpu(env); + cpu_interrupt(cs, CPU_INTERRUPT_HALT); + } else { + env->next_PC +=3D 4; + env->tlb_lock_count++; + env->tlb_lock_state =3D HEX_LOCK_OWNER; + SET_SYSCFG_FIELD(env, SYSCFG_TLBLOCK, 1); + } + + if (qemu_loglevel_mask(CPU_LOG_MMU)) { + qemu_log_mask(CPU_LOG_MMU, "Threads after hex_tlb_lock:\n"); + print_thread_states("\tThread"); + } +} + +void hex_tlb_unlock(CPUHexagonState *env) +{ + BQL_LOCK_GUARD(); + g_assert((env->tlb_lock_count =3D=3D 0) || (env->tlb_lock_count =3D=3D= 1)); + + /* Nothing to do if the TLB isn't locked by this thread */ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t syscfg =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_SYSCFG, + env->threadId) : 0; + uint8_t tlb_lock =3D GET_SYSCFG_FIELD(SYSCFG_TLBLOCK, syscfg); + if ((tlb_lock =3D=3D 0) || + (env->tlb_lock_state !=3D HEX_LOCK_OWNER)) { + qemu_log_mask(LOG_GUEST_ERROR, + "thread %" PRIu32 " attempted to tlbunlock without h= aving the " + "lock, tlb_lock state =3D %d\n", + env->threadId, env->tlb_lock_state); + g_assert(env->tlb_lock_state !=3D HEX_LOCK_WAITING); + return; + } + + env->tlb_lock_count--; + env->tlb_lock_state =3D HEX_LOCK_UNLOCKED; + SET_SYSCFG_FIELD(env, SYSCFG_TLBLOCK, 0); + + /* Look for a thread to unlock */ + unsigned int this_threadId =3D env->threadId; + CPUHexagonState *unlock_thread =3D NULL; + CPUState *cs; + CPU_FOREACH(cs) { + CPUHexagonState *thread =3D cpu_env(cs); + + /* + * The hardware implements round-robin fairness, so we look for th= reads + * starting at env->threadId + 1 and incrementing modulo the numbe= r of + * threads. + * + * To implement this, we check if thread is a earlier in the modulo + * sequence than unlock_thread. + * if unlock thread is higher than this thread + * thread must be between this thread and unlock_thread + * else + * thread higher than this thread is ahead of unlock_thread + * thread must be lower then unlock thread + */ + if (thread->tlb_lock_state =3D=3D HEX_LOCK_WAITING) { + if (!unlock_thread) { + unlock_thread =3D thread; + } else if (unlock_thread->threadId > this_threadId) { + if (this_threadId < thread->threadId && + thread->threadId < unlock_thread->threadId) { + unlock_thread =3D thread; + } + } else { + if (thread->threadId > this_threadId) { + unlock_thread =3D thread; + } + if (thread->threadId < unlock_thread->threadId) { + unlock_thread =3D thread; + } + } + } + } + if (unlock_thread) { + cs =3D env_cpu(unlock_thread); + print_thread("\tWaiting thread found", cs); + unlock_thread->tlb_lock_state =3D HEX_LOCK_QUEUED; + SET_SYSCFG_FIELD(unlock_thread, SYSCFG_TLBLOCK, 1); + cpu_interrupt(cs, CPU_INTERRUPT_TLB_UNLOCK); + } + + if (qemu_loglevel_mask(CPU_LOG_MMU)) { + qemu_log_mask(CPU_LOG_MMU, "Threads after hex_tlb_unlock:\n"); + print_thread_states("\tThread"); + } + +} --=20 2.34.1 From nobody Sat May 30 17:44:06 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=1780092167; cv=none; d=zohomail.com; s=zohoarc; b=kQXlZAfr9aAA3gzeEwza+FXqkhCHIYC/rjzZRDpZoig/ecqEYGCDjgpldLFDIhQ037RZ99WH3v3kWBm+jA72bhw8pZHL1rBbqfG0IOlKcqBEXUxO2ew6bNbHqhp+ByrghKcMU4rCjmORBmAJJYar+aUk88wxJM8LijDSRfc/gEY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780092167; 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=FeBzvHknjtHKykLLSnvGId84u/FufTz2v3VGYcX1tm0Vcaj7MZx9FDr20e4QAtwv/cuncfJqFMtvzW4haT3Luk3+Bojal2sDquWeJFpnnPA9t86IetJM+PSw3R9vOUgXkdiz+GwbpOaqCvVBUYtEPLEUWe28+MwYWQoRgLr7+lk= 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 1780092167681155.67398910982; Fri, 29 May 2026 15:02:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5Cn-0007Rr-UF; Fri, 29 May 2026 17:57:26 -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 1wT5Ca-0006ny-9S for qemu-devel@nongnu.org; Fri, 29 May 2026 17:57:12 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5CY-0000Zo-P7 for qemu-devel@nongnu.org; Fri, 29 May 2026 17:57:12 -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 64TI2IJq198999 for ; Fri, 29 May 2026 21:57:00 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4efdjnhxqu-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:56:59 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-304e7fbfaf5so5107532eec.1 for ; Fri, 29 May 2026 14:56: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-304ee0dd8e1sm3026279eec.21.2026.05.29.14.56.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:56: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= ohgluABwS6D8saHfHv2eOLCkXGQOTd4JgFhw3pUO1aE=; b=oSvApiP1L0XB6b0s EUjyAuK6GaF9MrqB+0ubCEeHllt/Eg0b3y7qEog+YGL3ZzJTNX6fTbUOQyMmh5c+ mD3loF0i3Lhsw8cSutwBJF7rcUGS/fvn7Wg0CTBSXaydNhUMcvc04LQO8dNmF+RW iI+ecmQIo3g4Wb34MVMlbLTS9fPKWH2assVxvV1S+oAbU6IHPBdUj1SXGO//thY7 KpCTEtm1iN2EnS5eyAGC24B5wtd5FBmTq3V9qNmzsg+PFT8PlFNQh1uIDTCOxxYm 8XfKk4XYXuAY1RKdEawTD0bnR0l0EJiul12UsspXpUeSVkYEh7Ypam0AQ0MN/41F Rhgw9Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091819; x=1780696619; 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=ckQWi9Fj7l88k87ixQfcxyPCY6L/E7IVWRpVw8OetcLAvcogli1dwZTziVXe3J84LB 4cPFxkw0kKf1X5njBasVrmT4Iw+v3uPuZGwOPUip7ItfW8Xnf6orfihWUQkqyBG2BX3J IfufUHS2pdZVLDjPYLZaO5LjQcvmmFHCWRxjS0BIxfwP6swqdHRsmNZMyqOi1C1dqS8T lRR63DdI23mwqrpb+iA3jyAATp18TXd2Xf+OLAIU3/A1H+51ytFJKiFiatE6pYsLja4F vuByiRjZUGfE99JS/vvH+G3V1pZldPYsMq/TAoSqs5knsw1FqPp/DbveBd9KYgNkX1zH MWwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091819; x=1780696619; 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=gka00QQOfPXcQ/VAPO9Jag7bxcTVICh1Q0zfcis3YL+UgTtrVwUAHpbHLXoTGB1fEb GXeMxiEQNMF9rx8ES86yGnuw+NZK0uBF4p7Ev713A4nWLFmLPmo7Bu93hUxjIhOg9H1S mBhqcv71Jqdt2HRjumlp+nm+U1qny6uefMhejNAPua+Ukl1ubX0Q+A1khuWlEEC7ww7+ reY1+Y2hu4vRN/ITTHDowelH8czn/qEjDEgst6YxBtKc+oQ0V4zSMtQtYAmSjET8vU0Q pIO4qEITxqRaBhOu/vdNRTQUckJGCOHmVJX5EfZHTvdfmg4bQh6yKJ/h0Vm2QxKYZX1x WXfQ== X-Gm-Message-State: AOJu0Yze8RVPuQx6X7ysLTpJGgz2utjywNU+93GIne0mafJ2SPK8M4g6 /zgWSiYrPvySlaS01w7SOP03pBQCbhxtuYTigbRAsn7KoQlOx2DDd2x2xYwITu9KMUa0LsJyKYc thvLcc4QXZWUBkHAqGbWUqb6U2jxONHd+j/gfyeNhABOoaR9krnIguv3S70BVuPH7Xg== X-Gm-Gg: Acq92OGZpVyj1mCE3lt/9uzBHntHoBXx4KnmN1JfX94tGotWYwj6k6o5Gb1nbbvOnu/ jSzgkBLcCxPo/YR1OOghy/BL+P62vZkur8uicwNNv3DF4aP2HbJIt9WgbSViHavZwZRLV6wQlGb LS5Boq4OTMyP6wqXBvSwPA2IVCCE9aqGg2wrrOVuCcSzdF9TSBEA/tMDfF4TgPSl76waswM49+g +nxr8Gyk2EwTcD9A8rl9xqdZF7cqWUG+ptvASGXBQ74SIFol1cgNiN04DciovU2Yn11dUN/LMLK q6N4ldHyjXrYL8kYkLqP3KysYGipf7jOhToamFLvKsfg2JmRZQCZQAG24OOapIlHDn2/rSIxuv6 35SZKVMHiE4gq40GuXQjL7AhCI9KAE7Ze7Ajz7LJb5rGInlnELCzFHZLDUK83f/0BZ9b2HeEAkn V6SMuJ X-Received: by 2002:a05:7301:6a18:b0:2ed:e15:c926 with SMTP id 5a478bee46e88-304fa69c7ffmr849903eec.34.1780091818900; Fri, 29 May 2026 14:56:58 -0700 (PDT) X-Received: by 2002:a05:7301:6a18:b0:2ed:e15:c926 with SMTP id 5a478bee46e88-304fa69c7ffmr849896eec.34.1780091818467; Fri, 29 May 2026 14:56:58 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v7 37/38] target/hexagon: Define f{S,G}ET_FIELD macros Date: Fri, 29 May 2026 14:55:53 -0700 Message-Id: <20260529215554.606133-38-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-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: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX79Fug0Qunnmi 3H0p8iUeO6H8Dbc4C4eYjXaagYRKHQ5KkEQC9PQECpc+urMpPI74Ui33z85XmYQ2sG/4t1lEUJr 0xqDwwrVOKUPkyVGWgDPpXbjYNdAJ+GTUEI0sCEVIJt0aums9qsHB8rFqgjFcN0C6rEOJsu+ZfR 3hk5KmPPnP7+QX26KVPcaXWFIkXtceEMZgVt7q1fk7v9ndBuJh8UEJ1+9VGJvOjzWmcESyy9fBb EaDdXiCudxvRgUh8mNNDootQhyB8a9beeXumpVzr6trlW55CuiiLIRnDcLctZDK6q0Q4MQJhR5H qWGisGdgD5L9oQQL+3tGNaG9TAd9s/2PgBxgHi+0t1na6zk4fRe2YOceZXjJx6GENoq3QBvN7/r 9O+63il7JN8MwIvESOm4Mxbbp1L3p/JPumOSkrFpeoM0SG3bKvkJuzWYo34w67DFPk8naQ1R+92 ZIhVwKo+/UIuQZNFKLA== X-Proofpoint-GUID: Jox7B32EZDNZRvXDq4PWEr7xQKifSMcC X-Proofpoint-ORIG-GUID: Jox7B32EZDNZRvXDq4PWEr7xQKifSMcC X-Authority-Analysis: v=2.4 cv=PtKjqQM3 c=1 sm=1 tr=0 ts=6a1a0bab cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA: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=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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 phishscore=0 bulkscore=0 suspectscore=0 adultscore=0 impostorscore=0 spamscore=0 clxscore=1015 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 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: 1780092169521158500 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 Sat May 30 17:44:06 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=1780091854; cv=none; d=zohomail.com; s=zohoarc; b=MIh50dx7sADOZq3a66RqqCq++dTDVNHBtowCg4946dRHT0Tv+jFQjyG+d7V8zT991p6t98svdJbCxHAdB/uAPxXYeNaUATxlHcZ6F4ViFGaeYYX3Gqz0sQtkmIOdhOgr8nsq69vCiyFv01TxGb54Dpi1ipCZLXBtAKwPNxIZ+G8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091854; 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=wcKDHUUbBlB1wcvERSr2HXXiPWHtI22NgTXOMKlSa6s=; b=e7kv0lOHaSiFrOC2W96Tw4XPXyLtyoBYutS9lj2Op/0hgY31vrpVb/8iGSRI8P7QKQTr+mGlRU55GnkENL1nWGoYOTKjsTfvf75CKBcMg0KRxt2YyK2J4pixZJl47CKKhWeUY7bqnjfcsiy7bX9BEBX7FOmM9Xe+r9UUEZtHZZ0= 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 1780091854406545.6925154603783; Fri, 29 May 2026 14:57:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5Ch-0006yj-CV; Fri, 29 May 2026 17:57:20 -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 1wT5CY-0006m7-Af for qemu-devel@nongnu.org; Fri, 29 May 2026 17:57: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 1wT5CR-0000aY-JB for qemu-devel@nongnu.org; Fri, 29 May 2026 17:57: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 64TI2OZR1862713 for ; Fri, 29 May 2026 21:57:01 GMT Received: from mail-dl1-f71.google.com (mail-dl1-f71.google.com [74.125.82.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ef3te4pac-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:57:01 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-1353bfdbf99so5140203c88.0 for ; Fri, 29 May 2026 14:57: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-304ee0dd8e1sm3026279eec.21.2026.05.29.14.56.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:56: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= wcKDHUUbBlB1wcvERSr2HXXiPWHtI22NgTXOMKlSa6s=; b=lBTSWkKQzk7bGIt0 dNyCPrTaom0daKoq/86POAu3x/ip3RNjg5AWfc8wLsnRbeCPTvAHLCoASHJ9O9bs BZU7eX+abmkMIOLjw+hPv+29eKUtLdh/sMp1nnHzGE43DQ8tFyIEScfqYde9navN +daPzmn1byGU0iVQ5Ua4Mci+BbDj+VN6v7eioiGpERMQ7ii1rD42nqqiX8yYWsyF rKs0PWJvBCtOMxGn68TmyP+ZzwZ783zNVp7PWcBUvzjwmUUsb+Lq8Lk5gHk8pXc5 jG/RmW0IcXhRjEVH3UYHTUWCFtO+BnMJXa/KEcnnAftf8T8fOCBpIVnyQuwCIVou FZdqRQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091821; x=1780696621; 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=wcKDHUUbBlB1wcvERSr2HXXiPWHtI22NgTXOMKlSa6s=; b=R+5/6jT5GgMAUCXy/cdNOp9aKenDEwkcR76PBl0Q9fCUhqXDEA1vVbaDEiMyKMyFFh Xm+Rz9V148mSsOT9yaqxe1QWfDZKdE9juVqPFae68ZB+6daLl6UDUpEwxIcqijuyA81W yFrRFoT8WUNAdo/LvJ3NBdVj/IYlbds9uvWI9AC3d1hsKTYBZmN2NYSWUwNfBeYDwLB7 l+b7zkNzaA3037169/RPwAIe4/hEMBt4GGxoqoijKieTkY6CxQcgwBb6sBbGsejv3QlH ZWiOGxnmT7mHdEmIFaHY19IXmSUYet7LKbQah4CMiOmlc/6e5ERgK0xypUG4YOMnEhIb pSlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091821; x=1780696621; 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=wcKDHUUbBlB1wcvERSr2HXXiPWHtI22NgTXOMKlSa6s=; b=PPol+BBGMFO2QKxVfWSBWaX1xSjVVpZjGuApQdIay4PAfzi4cHlU1EYUdO+bHvmLtq uzIWBK2nKyFa3Vi4qTwmi8pockD3nCXHfBnqv9yCfbDmmXMpVuymkYMveM4wfLV/Ewcg lhNUc0H2chjuD8kjVYUD7C2JMHCEMX1mmqwQoho2N1Yaoi0L9As7VNjoNJO/hj5OYZVt 9uSiHyHmmjDW3Nq7ZZDSk1wimUpoTgy5DbN6nEDqUMVVNvU+LrPde1aMZv+7QaOuCpMH eGURWFCpUXbnXYczmHP4BrTAfVZghNiSDf5Ng8vSU7Ag0k8ytWx65Y8+kZ7HtawcdRZx gxRg== X-Gm-Message-State: AOJu0Yw6JHY8SHRa+doteP82A+dfOAcu6O2rrHvmhf9JWt8gpxqBzCdS JSeWEtwTWKmXNa38HzsTElPIEesTdG4RYldnvfXuUUW9CP/H3vUgKvU4/9a/ECe8n6vtVlvykbP IY1dobFsI+Kcbjuof9ExS9Nh39DzQJrNEKgWcJtuWf1IleT5ic4Fk1aHj2IFzv92EaA== X-Gm-Gg: Acq92OHB6GCUKcU4CvO0lSRTKkdgVz6Tjek2Fc/b/F3RUJ06R6gQKo2Kw1C5kviZUED va1tHHWvxOXeiu3cbpZ87ggyO78WaX642Ry65ud+5gcEcZZdUDNoNE7l2+ENraL++hp5tzrwIhk 5LOj1WyVoR1dHLXxOQ9YCEe5RY7IEuL3WzlnWNmmt51QGJFV7uFowfuvfNxrWrXS3vpBuPaTCdt FpfueF4i7hPkjl2x0K90tBK/6fFEYZafO/Qg9UTKA2ZN74/GTseC8L9pCRGw1rpgHB/Yjf1Ohps TAjcCd5v5hv8hZE3ziDrorlRmj/lzse/MM0lbjTEx+cjdvXCdkhsk4uOpLaV0xN7urvQkkYFfcU LuyrQ+jFkoDHxgM8iZxktOw+XYojeC1UUvpo3fzQ+KO170BBS6cqFXGl21uhKK9MBVFMbundHI0 JpE99C X-Received: by 2002:a05:693c:2c86:b0:2de:cc07:e99 with SMTP id 5a478bee46e88-304fa49ce00mr910447eec.7.1780091820523; Fri, 29 May 2026 14:57:00 -0700 (PDT) X-Received: by 2002:a05:693c:2c86:b0:2de:cc07:e99 with SMTP id 5a478bee46e88-304fa49ce00mr910425eec.7.1780091819992; Fri, 29 May 2026 14:56:59 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain , Sid Manning , Michael Lambert Subject: [PATCH v7 38/38] target/hexagon: Add hex_interrupts support Date: Fri, 29 May 2026 14:55:54 -0700 Message-Id: <20260529215554.606133-39-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215554.606133-1-brian.cain@oss.qualcomm.com> References: <20260529215554.606133-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: 0YcggZXR-Q2RvfCBEee09wH8YCmh5nyS X-Proofpoint-GUID: 0YcggZXR-Q2RvfCBEee09wH8YCmh5nyS X-Authority-Analysis: v=2.4 cv=daSwG3Xe c=1 sm=1 tr=0 ts=6a1a0bad cx=c_pps a=JYo30EpNSr/tUYqK9jHPoA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA: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=_4Jc8uW0NYDJnYJF3oQA:9 a=QEXdDO2ut3YA:10 a=O8hF6Hzn-FEA:10 a=Fk4IpSoW4aLDllm1B1p-:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX0/3cjh76TMqJ pwDMuizMulag6Um8qcNha5oZRsqNHOdCEhevCR+I/lPgwwpTVVJkO0ickQQPezmC7kcX88PENqF 6Cazf3i0dQyEF+1HYivfQeTql3bQZyUm1BgFZnx1zIZMLjuZ11zRJYEt48kv8YPmQEzwhv90uwA M3A/4cJo69AKxMLcO9mqKOFnLwmIjU+0mMVu/PXIq7OlosrzVn9/VypOyzOtDHXyKz5xFz8KajY 8TAPNgsKZSfMUcrpXXO24/QerWT2oE97cAgCer/I2zMzAF993N5Za9wnNDE2K9v63mOrQiGJwAM Y3jTY7pjuK/e9ZzSkx9hFRUog0vJW1dyj6z358tQ9yFYoXvGoGInQjYfZOjEHAYQdgPPPwDMfP1 tJnPkroQnILw1aCNzu3WXXP6nvB92ki1eocIDzjOnn/oSkFju1WRHy0pUASJ10RZS+2UGcJO6s3 tI6fGtwmmeozdndLjOg== 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-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 bulkscore=0 priorityscore=1501 impostorscore=0 suspectscore=0 clxscore=1015 spamscore=0 phishscore=0 lowpriorityscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 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: 1780091856111154100 From: Brian Cain Co-authored-by: Taylor Simpson Co-authored-by: Sid Manning Co-authored-by: Michael Lambert Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 2 + target/hexagon/hex_interrupts.h | 15 ++ target/hexagon/cpu.c | 4 + target/hexagon/hex_interrupts.c | 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 873ef6cbb2a..9f49329600a 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -199,6 +199,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 28ab2ee420a..f5a53d739b8 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -54,6 +54,9 @@ static const Property hexagon_cpu_properties[] =3D { #if !defined(CONFIG_USER_ONLY) DEFINE_PROP_LINK("tlb", HexagonCPU, tlb, TYPE_HEXAGON_TLB, HexagonTLBState *), + DEFINE_PROP_UINT32("exec-start-addr", HexagonCPU, boot_addr, 0xfffffff= f), + DEFINE_PROP_LINK("global-regs", HexagonCPU, globalregs, + TYPE_HEXAGON_GLOBALREG, HexagonGlobalRegState *), DEFINE_PROP_UINT32("htid", HexagonCPU, htid, 0), #endif DEFINE_PROP_BOOL("lldb-compat", HexagonCPU, lldb_compat, false), @@ -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