From nobody Sun Sep 28 16:36:33 2025 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=1756785445; cv=none; d=zohomail.com; s=zohoarc; b=g0YNXx0BYbUIIRhtqP1tiVA0FmBN/rlfw/3QgiVn2FAS4s5QTtXx7CFjBNykJrhK5s1zdsKKtdtXiFVWXYVz63a891HXSN8syfPqJsXRCA3QaN4Gtd15fXbjqF7QAA9kGZ8f+bH9+0y7MlgjdbXdTa4VepDZsr5x/c0mUo2Nlmw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785445; 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=V/gmiIQui9QHU5OS0CRbUDLL6LwYzW+BkNFupQXyH1s=; b=aqZuKRB6xd2S9aUJPkEBcc7BVkWgmqG5PA2Om0DL44G5dp+4ASm2IyCBtxON3Y2P4efRi+BKD7itTO7QiEKwjWd9vt28Lbk5zSwjBimbgBJCuSWKEfPlifpP6q+AOyii92/3GRkokPMO+01R3ZR4C3TyiVSZqD9QPFIYX6K43ug= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 175678544507812.247023108915982; Mon, 1 Sep 2025 20:57:25 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utHzo-0006ng-0Q; Mon, 01 Sep 2025 23:47:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utHzc-0006f1-9j for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47:36 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utHzV-0004QA-7U for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47:32 -0400 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822S6es030596 for ; Tue, 2 Sep 2025 03:47:26 GMT Received: from mail-pj1-f69.google.com (mail-pj1-f69.google.com [209.85.216.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48ura8pbwr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:47:26 +0000 (GMT) Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-32811874948so2345571a91.2 for ; Mon, 01 Sep 2025 20:47: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 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.47.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:47:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= V/gmiIQui9QHU5OS0CRbUDLL6LwYzW+BkNFupQXyH1s=; b=e+ngS1QSFMAKS8fA 6dP9qoNKQgbXtbZJMam/WFJjwjODEFj2vq3XnWv9j+kwJwOf20cET/87UsbADEWj cYdAwAkv7YvagKEoNr1/eXekh2gQ4UMFm8b+97o2xZNwpF+eLNB6TjqufaBHXK7/ 7T7Zv9IFKm2ZxYHWFKLJFVaWUWp4NbUNZEJmVx+/DgqaBEVsUFU+wymS2AaYR2tD JGyIvzQSVkhXc2Du7zFnjhuPPqOIwMDf4aHze4uUCzcS7Wl2pX5VewgLrwiI+IGD noiHTRKhrQVuD8S+ZmUjofnSHyH+N+IEdfpGPTJx2yBs2wNUfzsmQJUwg6F7VrYP nW8lhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784845; x=1757389645; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=V/gmiIQui9QHU5OS0CRbUDLL6LwYzW+BkNFupQXyH1s=; b=VO9A7TjD8NYby4jFdSO2NXix6qHHtdUzAXV4zA19nKwUTDXESlZyD7rkaJvK9BhG20 frWqNiiI1XW0OUxwFqLtPe2jSVeXMxr0JuOEvW7t2tRSoJNJDdZiWAc7910Qd0Gf+NU6 4dRlVAdn9fP0hE6kRn4cHRkG4yZF95NAauS/H+q6yKlat736YyWQBQu3NXiwTtxB4TE5 8uxFzVtfPFbNa2QcJBG24ykEK+ZQI229ZRada0zE6JDS1rD4pVIEQ/CBl4WRdUEOOdJS 0N+q7G6y+tGFH5wMkJCazLfNANsXFXhr/Czd1W7Gpat9Rn4AOgZeR4wCycMtM1r025fC Srjw== X-Gm-Message-State: AOJu0YzId3nzCoOLgvUPsV/bDLH+IEmN5NO9AGX4dl2WR9wk4Ugk+3ca 0kHD0LnBp564aH0BAKBsbrLg7NKydRWTxZj9wgH4zmn/r1NcH2S2NmUzbQUyCxGXzAx+Y2bqkWo OKa8M5oxGBEajQKyo2Y04Z7aNsGokjJ+5fweZIlp/mF+zsu3EkoAJa9K8tyvt69yfFwmr X-Gm-Gg: ASbGncuW47s2ouSkilTSbjmI48Q9Cclxj2Qs0WBz8eA+AHUZTFiAnJjetHxGhcXCa0m w0jea+il6BbQv/mUMb06wIqowCRZwGZVrA282paM2p52zITdVu/12FjZtzRzKam17u1cuq56YpU oNaRxUYX4ucGpOYZRjvABny+8/LtdnWgs14tjTAboG3vj4BIVXU3RqqANIVOiQR/8ymNMjaUOYP jyNJu7mlGqOZ0G2h4MKKM41ufFC5jLW6ylPkjn1lNC9j2RrPkMuH/IVq9NSJ1Plx2nJC1pPh/JB 15tPeiSGk216OyMRK8URXCLyrf/Flyc9vS6KE7EYaJScJ7f0NOWGNIpFO9BGvTsMyc3nLxWLIyK zfyKUblEVSGAk X-Received: by 2002:a17:90b:4fcb:b0:327:e0cf:d7b4 with SMTP id 98e67ed59e1d1-328156cc9aamr13370167a91.26.1756784844394; Mon, 01 Sep 2025 20:47:24 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEV7/VejOWgAP5NgUa7dtkRvAAq2TW1yz5XfyMRFEV2R0Z2nBaNBE3hfjmY068IV7LfsmNOSg== X-Received: by 2002:a17:90b:4fcb:b0:327:e0cf:d7b4 with SMTP id 98e67ed59e1d1-328156cc9aamr13370131a91.26.1756784843746; Mon, 01 Sep 2025 20:47:23 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain Subject: [PATCH v2 01/40] docs: Add hexagon sysemu docs Date: Mon, 1 Sep 2025 20:46:36 -0700 Message-Id: <20250902034715.1947718-2-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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: 1zJkQKtbSbU_tAbcINi4-FA5SxqGKlKw X-Proofpoint-GUID: 1zJkQKtbSbU_tAbcINi4-FA5SxqGKlKw X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAyMCBTYWx0ZWRfX09y3cIu8uDYm uslUIvaiWG612KwwFc5ilXQ3AVFSam2ZflJHU3joUuCRcUfq15cSGiUwxYUojAAB/vWYKzh8X5r VSQLN9vVRZQab4GtBjDsZlz3HK2ChsQwB+kARgjT2hjDjEeaKMO6YqK2R06k03wbkbGMNGkyeqr /48nvgxBpsTpLmHSTXvOAmsQAswEG9kIkGHqXSugmVgUBn6s1U5nBYvf/AfBZUQRJEtVjGOyRLZ oEtMi18rsmVWfxEgnvHuf8YBFbgFRuWYo2TSCaDAcuXOQDD568XkRfkVOVihxbMkZ2BmmUEssfV 9meukpBbjRy+11+LgVL9Y7FiSn/vG68cI0L6ColvoKu3r9tMS6yAIPr0Gte8wElmWhyj5dxUI0C 9Vt6r0u6 X-Authority-Analysis: v=2.4 cv=VNndn8PX c=1 sm=1 tr=0 ts=68b668ce cx=c_pps a=vVfyC5vLCtgYJKYeQD43oA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=NEAV23lmAAAA:8 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=D0m2eUgJkcDgvUq9oecA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=rl5im9kqc5Lf4LNbBjHf:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 spamscore=0 impostorscore=0 malwarescore=0 bulkscore=0 clxscore=1015 adultscore=0 priorityscore=1501 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300020 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756785448077124100 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 8f074e4371..bf7695658a 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -237,6 +237,9 @@ F: disas/hexagon.c F: configs/targets/hexagon-linux-user/default.mak F: docker/dockerfiles/debian-hexagon-cross.docker F: gdb-xml/hexagon*.xml +F: docs/system/target-hexagon.rst +F: docs/system/hexagon/cdsp.rst +F: docs/devel/hexagon-sys.rst T: git https://github.com/quic/qemu.git hex-next =20 Hexagon idef-parser diff --git a/docs/devel/hexagon-sys.rst b/docs/devel/hexagon-sys.rst new file mode 100644 index 0000000000..92ebc32dce --- /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 7a0678cbdd..0471db8064 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 0000000000..237529273c --- /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 0000000000..5f7084a6a0 --- /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 38e2418801..515e249326 100644 --- a/docs/system/targets.rst +++ b/docs/system/targets.rst @@ -30,3 +30,4 @@ Contents: target-sparc64 target-i386 target-xtensa + target-hexagon --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756784894; cv=none; d=zohomail.com; s=zohoarc; b=nZ7mlGE3AxRgwAfkX8hFK5yVkrCpUnvIIq0k4ljJwsiXOV1NfSD5n80FfqgmCGe56ZXzoy1std0u6ULly8P56zfzMYNChzbveblCmhvhhCSvaiuV7QfiMMUiSGeSUqsbCxn225R0sDMfQ9T+4prU2KApfvicfAncKqPxfj34a+Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756784894; 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=V07Obdmlm93H9u7fTFgR+cEhr44VBifxtLzfjaaDFAE=; b=AVDrSv+H1k6o2ASx9H02ORJt7B0nFGoOkI2luKCxN+8QEOpnorGBSd4XRORnIuwY6z69sqegeAHQZ3RnTTufz0aiq47Q/1AKK4QL+72RnfyEidaPNxgwJhs9cFAMnFzBpBP+xYEJ9MF7FLFwJZ09rkLvJ0b/6chjWs77tfvGLfk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756784894099443.66839904738254; Mon, 1 Sep 2025 20:48:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utHzf-0006gK-Uc; Mon, 01 Sep 2025 23:47:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utHzc-0006f3-AC for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47:36 -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 1utHzU-0004Q9-Pb for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47:31 -0400 Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822RmnG029940 for ; Tue, 2 Sep 2025 03:47:26 GMT Received: from mail-pg1-f200.google.com (mail-pg1-f200.google.com [209.85.215.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48ush2xaeb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:47:26 +0000 (GMT) Received: by mail-pg1-f200.google.com with SMTP id 41be03b00d2f7-b47174c8fd2so6498991a12.2 for ; Mon, 01 Sep 2025 20:47: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 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.47.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:47:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= V07Obdmlm93H9u7fTFgR+cEhr44VBifxtLzfjaaDFAE=; b=aIAIA5B1pkNX53IS ge9adld4j8rjnpAEPq0+6ep3jxn4YFMvPM7brX2QWkLZdbxx3FHbc9iUzzLnlv1S e5vst2j0LVYRt+6NJZ78SZXTaXHvG/t+mRCE6Z1jDhwXZP1eadc62FANTgSGHnd/ rxSWM/dWRq5jMoydVEdDQsxB1n8pDcoQG9Lr+3Lf2MDYpIVbHHEo0KBhMkbpdIiK My2LxDTeNgdpskR5fBzx0sUfPcC6XdQLTkpXrFfjpwNOyZyrPN3ecSYO0x+vpgAO HYj4BFRLrhc9Oes9IE8j9U5wNIRbqZX4R7r2y7lIsAqoZwY2ywjDaflZ8in35/bX 0QtyJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784845; x=1757389645; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=V07Obdmlm93H9u7fTFgR+cEhr44VBifxtLzfjaaDFAE=; b=QOz8LSorsuC2xn3B9kD82w12U4E8tL5gOxk6vWRGla2SZbQ1IfE/JbrnKetns4j8Cn e+vs5o9wj7bwpBpfGjuoYwcxOP6SNAkqJZjJWrCwJE7T1R6lj8Vj3WuOV5SOIT80txM7 PUqR9V829RP7nAmYLlwc2wkpMP1b29KoR8fqLd57GiUOevtEmTkHp9IBxoiQWVeAk+7V E29CUMwWvprfU2m7ZazviwGzYO32Y88gjKn0xWyUaRGjn3h4F+vvWJO0DY5LnM45fY8P 4iUEbyrwKA9VABV40wAp8KuLd+nJcFved4XEoGkv+FrakIhCuS+nMxRDUPwQne+ep939 iV4A== X-Gm-Message-State: AOJu0YzLtOcxZJ05slAlgwbitqTAdDJUew3PNu46MjEdQp9RDnT/5uPk 8yWs8YihgcwcDBWFPjMnK/U/O7aJCD8Ecl5L+lMvMa5xP8424J0+fh7PrPgFDeCW6eBXQfkWn0p WFi6oP2pmqKHsfKtZ5UzlqGL2gxMn9CfyBuHgId1StPiUGLyAfMTKMCXQzPP50dTyxKc3 X-Gm-Gg: ASbGnctna5rVmliwOLhC1s/2z2TxmIf5oHxHs1lUOXHNnzIXISqaRNjWmPtjQpXkDZW BnaBIkfjkZM4Gdto889Vnp4mHsYG0Ee0O3KuzGI1eAnkbYniUEQw/Ryof42G4ti/UZasVCIjf4V Wja8nZWDbGe+aCwCFgMEUeXeGmlMk8fmXvVzzjNozcKUncm6ztzgS2rYVY1Qdz5rCWBeWfpbQIY KzUy1gxvfNgpLMXu9+gQU6ENRm+f/RWFHJUn3uJZJWxDROpyMzh5vH8SUTYfjeOp/OdDT0/G2va B+scuHons34E47Qt1q8eFHpRzYsxnbbq7Eha0NiWgKVBhBWzFx7srRjAIE8VVKoTscVyHxcS/Pm MuIBNGnnMkJQU X-Received: by 2002:a05:6a20:2449:b0:243:a21c:3730 with SMTP id adf61e73a8af0-243d6f036c7mr13723612637.31.1756784845207; Mon, 01 Sep 2025 20:47:25 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE+spZcw/JPdVnNUB7JZ3X0IZ49YyHtjzgXvlFQXUsuEAn+b9j7wGn+IRSkgR550KSRmKsEaQ== X-Received: by 2002:a05:6a20:2449:b0:243:a21c:3730 with SMTP id adf61e73a8af0-243d6f036c7mr13723579637.31.1756784844771; Mon, 01 Sep 2025 20:47:24 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain Subject: [PATCH v2 02/40] docs/system: Add hexagon CPU emulation Date: Mon, 1 Sep 2025 20:46:37 -0700 Message-Id: <20250902034715.1947718-3-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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: AW1haW4tMjUwODMwMDAzMiBTYWx0ZWRfX0v8LZN2a5O9x OPyVE+Xmcb8WdiEzLDDK6X9SaZjDrd4YkxZHuPVg0hFdEU59ScoMbR6d6KSxhUMhMlUAJeo9ZjF 8K91ar/SsN0Q22eF0ATuwhnFts2itr0qrDkeB2U86E1XefR2ZMnepZRm/i5MxxCtHYtztKcs82v XjNfdyYoMUqRlhnIh0U0P+matJWlWcelI/KgHIcoHZT39W9zlLr7W4dTn/CwTzkptsZ+9BptdwS oJkGHXme9woMPPNsOe/6AE8nZiFhljw/oOhe81Yp/4d0lR30SBqNLwoF3Bl0xjiJ03/ksvqY+3p OOx2ZV/q4tZ8nj5yo/0XInVHb1e7iQ6hSvjKtmAeuylFQxH9TGsLtlAeiwU25QQfG9i58szBrNd fZ4KpqBW X-Proofpoint-ORIG-GUID: -ieNxTI5RLn0XQ9cEuxjodd-tuIimjES X-Proofpoint-GUID: -ieNxTI5RLn0XQ9cEuxjodd-tuIimjES X-Authority-Analysis: v=2.4 cv=M9NNKzws c=1 sm=1 tr=0 ts=68b668ce cx=c_pps a=oF/VQ+ItUULfLr/lQ2/icg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=EUspDBNiAAAA:8 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=2pVdXvZyqgCw3DkElpQA:9 a=QEXdDO2ut3YA:10 a=3WC7DwWrALyhR5TkjVHa:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 adultscore=0 spamscore=0 priorityscore=1501 malwarescore=0 clxscore=1015 suspectscore=0 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300032 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756784895817124100 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- docs/system/hexagon/emulation.rst | 18 ++++++++++++++++++ docs/system/target-hexagon.rst | 1 + 2 files changed, 19 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 0000000000..75f46719b9 --- /dev/null +++ b/docs/system/hexagon/emulation.rst @@ -0,0 +1,18 @@ +.. 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 +`_. + +.. code-block:: bash + diff --git a/docs/system/target-hexagon.rst b/docs/system/target-hexagon.rst index 5f7084a6a0..416b8f7be7 100644 --- a/docs/system/target-hexagon.rst +++ b/docs/system/target-hexagon.rst @@ -98,5 +98,6 @@ is not yet implemented in QEMU hexagon. Hexagon Features =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D .. toctree:: + hexagon/emulation hexagon/cdsp =20 --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756784894; cv=none; d=zohomail.com; s=zohoarc; b=HsekNU8t4K6fV5R6hMK+PS2iN5s5ruXmMZpVqQOxP7bTQ2O4U65cAV0moECMmG+D44huRtEbgiVm29qn32MESKd/UlKn5ytFIfduAbY3d9lFtAa/lYK3vRci8Z0h1Vz2zJH/F3aKo3ku6vEWFuSFc/mSoBFs2RKJA0ejUolKpO8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756784894; 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=+2e0u7c+q95xVLOhFkTBhlxiA5hudmlDKjB9H+F7IT4=; b=aoytogFvO/U9STKO0hMwfI2NH53XviTSTuv1w/zZ+oeiZQ6tRDWmuNeIUx4BJdEJsEUJzTUTiCiNl7lOku7ctA0px91U2d9xxzpZrNm24plCVbcxT7o2v9fl+4SABOF6nez5QiM2nPB0LM1hFNCwd2TJYA6VTE31jg7tAMNsAXY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756784894390693.9851649716171; Mon, 1 Sep 2025 20:48:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utHzh-0006gu-Sk; Mon, 01 Sep 2025 23:47:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utHzb-0006ex-6a for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47:36 -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 1utHzU-0004QL-Pq for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47:31 -0400 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822RmGR012352 for ; Tue, 2 Sep 2025 03:47:27 GMT Received: from mail-pg1-f200.google.com (mail-pg1-f200.google.com [209.85.215.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48ut2fea00-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:47:27 +0000 (GMT) Received: by mail-pg1-f200.google.com with SMTP id 41be03b00d2f7-b4cf03610fdso5202685a12.1 for ; Mon, 01 Sep 2025 20:47:27 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.47.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:47: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= +2e0u7c+q95xVLOhFkTBhlxiA5hudmlDKjB9H+F7IT4=; b=m2XhRdFgmUd2jRrV HPD7aVdA/4lia4CYvslUrY1RY8vnXb89UCmzo0pPbcUy3f7xGNI9ngGSDGZ4BdI3 0sYY5Egp5XLPwOhWeReb3Zcc4D+h/janf9pVA0dI3Q1w2wnEp97ryCSsxj2AR/Vo 95Fh6z9WTgZN3oUhIcqDqFG6q06thwhHFneT6gwgENuGifIozBvW0M0YcCQuf1oE XWulIqkLpj4YhnKFdSxA2ngL1g/kzKp+ConGDem4DcQXRv+2TTYrcfKgMbLpoWW5 tTgJZ/pSHaS+rECqXvbqntp1vCIoB7OBkQq+3GDh4G2zQO0YYfaWt8s8nFvnSskO oXeYsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784846; x=1757389646; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+2e0u7c+q95xVLOhFkTBhlxiA5hudmlDKjB9H+F7IT4=; b=XzPBw4lfcZ7jFAndraXL1Gk357HsdLM719RKTeH13LqXHtcZO46E2bbEVQF+JUT/ct 1l3fPa1FbnR4fZaaXkArMmahFuX5p2e8IOW1u9FDE/phSSxcHJx685dRhFjNjQEZnUob lD2xVAh7HSgFonWOXo0Q/g+P+MkBoB2+DaD7tBiY0J/5e5PIR7PSuIQ1glMD82X+sxJS OujeOWqK7QMY6xEXGMSfjL+tkRX/AO9oQcATSiyu3hDJBPrEKhDSfAgZ1DbzHZPSg9zd iu48wYWCjJzTPoebEkYmNUtJRi6mpG8I1JAo8Lm0VjeWKnEjpNpgyawdU09XIS+hXYBi f+hg== X-Gm-Message-State: AOJu0Yz/poyaMyqeTSQ9GwWpY/SfkR+q3glRRj/ktun4adWns4DlBvlO +zoHr5MP6ZZgg/60EMNzcRawnZd3NJ1iG3taHVq9RhErHNBVpfxAF7EWE46CwZYOSoiz36QQIP4 d38EKn+iwQUJpkYwoKHrK0ffqxWQlGMsSx1QrB8wBKWnz+Vx8ef69CN1JyapYJumlFRaa X-Gm-Gg: ASbGncvuqsHUTUWYA1Bbh77Y3nVDfkERvcvLdAYhR0u8X+4UFD/T1FNxqTqjl9ZPVGg 5F0WY7H/Zeypqm8GlruOhKxnsI4B/r7H+Q+p+k66syXHBRmSa0dFmj9PxUmN4yOHSGHFgc15ZJx HLxpkGRQNQuQtqHEos0FfumS5U30HNKcaz1Tyq06NTQZ1wxH1Swo5D6/Zxo2Zy6LAusq4UZnwBL hg4MmoZ5s8B7acmjaR5dCyrYoTKXYiz7CXIDVYrIaWxV8VZe74V8ck1IfpIGnjp2TnNFNWXmMGx erIRXuRaGcdotxQTRyJOzg6DCy2l+9NUEopPHzK32sXx3Z+p0mdO8AsO9Eranih3maw+Hi51c9G +4JEEO5bX5U6W X-Received: by 2002:a05:6a20:3d85:b0:243:c6a1:7a24 with SMTP id adf61e73a8af0-243d6f85e08mr14558380637.58.1756784846358; Mon, 01 Sep 2025 20:47:26 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHF31nj++xU3f6V+3VaEK2uiCX7BG8uVFMKs2L8KKqbuoxoF4wvj5naBSK+GEYqterYPUyzEQ== X-Received: by 2002:a05:6a20:3d85:b0:243:c6a1:7a24 with SMTP id adf61e73a8af0-243d6f85e08mr14558358637.58.1756784845934; Mon, 01 Sep 2025 20:47:25 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain Subject: [PATCH v2 03/40] target/hexagon: Fix badva reference, delete CAUSE Date: Mon, 1 Sep 2025 20:46:38 -0700 Message-Id: <20250902034715.1947718-4-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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: AW1haW4tMjUwODMwMDAzOCBTYWx0ZWRfX/eEC3o2LMWe6 wyQ+dEVcQXm3NHTB4b6XhgkIrYloQ+UMdnNaA7p+wuddnC5M6IklpRz8NOH8ARDxo22ohOm3/yb LzmZe5/KPgzNt7T6jWKyZA6VjkQBbc4RIfDaeRwUiJjuTSpJA6UslR+CJVSVMXDAMFA9Tsq3tMt B79s7ERnrzkYHNV9xKRHuA8hb+qbLOS40/utirUc7csVPnf1sjQLKead55IYM5HwMuPvcww4kcd H5Ugx7ev7cKjp8YEXu1FxZxHS026wF8+cd43LkiPgpZdCuKU8L3spXkvuVBb+kkiAk/pGP26FOh HwIQPpQ7mKD3qjg1M7V/8VhtmTOpCbMeFfVBznGXJX87GvX1umgYPDDTAbIYjx3wvjjFOx9iTck bv/nP2AH X-Proofpoint-ORIG-GUID: n6yTCdF27oT7WphbWlPnvUrlcmNUC7m_ X-Proofpoint-GUID: n6yTCdF27oT7WphbWlPnvUrlcmNUC7m_ X-Authority-Analysis: v=2.4 cv=U7iSDfru c=1 sm=1 tr=0 ts=68b668cf cx=c_pps a=oF/VQ+ItUULfLr/lQ2/icg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=HN0uuiy-se_EESAQhN8A:9 a=QEXdDO2ut3YA:10 a=3WC7DwWrALyhR5TkjVHa:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 phishscore=0 clxscore=1015 impostorscore=0 suspectscore=0 malwarescore=0 priorityscore=1501 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300038 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756784895769116600 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 --- target/hexagon/cpu.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index a5a04173ab..a193acdbfc 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -216,8 +216,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_reg(f, env, HEX_SREG_BADVA); print_reg(f, env, HEX_REG_CS0); print_reg(f, env, HEX_REG_CS1); #endif --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756784894; cv=none; d=zohomail.com; s=zohoarc; b=lX2l/a0vgiZ3Kauhix2LmI4bmGiVnrM9u/7MvIq3vn4lZpj8z1kFPKMfdrLP0pEoDDA3sRr4o/PJqKMEd1a2IZn+xtA7ZwQn8yKarFfSHScZnQwIEpar1rLzCU5NdP/CgBYPra1Zeojps8Dh1nYWA4aYLRvkpVs3jOh23E2+mMk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756784894; 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=NfINXXkxFRQnMka7kpnE3XMHXe7dvGXpqVDi+3A38oI=; b=A9bJWNocusl9Rc80hyU6Wdjo06tjJlQ2mxsAvYoMbqrBx/Hnsm/B0psVyM/o4ET0gUTzjfZJ4bYGS95A9NXk+OOWTlwVonxMhxB97Pl/iRdn4nVr2PFFzZsS1K3+BOjU+mZWUrqmcVbzwHNk85zPHQ6yJrvdF3RdPCSwywW07w0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756784894576766.33197895905; Mon, 1 Sep 2025 20:48:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utHzi-0006hR-5W; Mon, 01 Sep 2025 23:47:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utHzc-0006f6-BP for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47:36 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utHzW-0004QU-65 for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47:35 -0400 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822SGBQ030247 for ; Tue, 2 Sep 2025 03:47:29 GMT Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48w8wy26nj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:47:28 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-325ce1082bcso7722633a91.0 for ; Mon, 01 Sep 2025 20:47: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 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.47.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:47:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= NfINXXkxFRQnMka7kpnE3XMHXe7dvGXpqVDi+3A38oI=; b=ERffZPIaziQOfU+s FXH++4hMv9G73C0f9okWbUVZmgkNrRKWKnrf2m5So9bPDoZwpqDFB9x0GxkKSLiT mxzbLTUvxJAvYRXJE34W5oJ5n10XRNueabRuiHqObYnmRVNkTWxHRaVGPw049hwe EKRIKshuFKbt8YdgoQwlJOsRVD+VeR5JnBGc+cGRnAe4pHyinWJVv4gMvsgrBwch JFV/hSVD+j3Fb5l0B3N1Pf7Zf7DOV2qlSbGFV2oH3+czFMYvdDFkEOqM0yblrfT7 Dj09BK46guZ6cwTw03on9wlk/0gWKX7kCFnMDbeJMT3QWShIlpKPe6vYaaXpCbKH ZudWaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784847; x=1757389647; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=NfINXXkxFRQnMka7kpnE3XMHXe7dvGXpqVDi+3A38oI=; b=IzW5Px/ywCjTgVGBX0vVPIrG3m4kmcp1QKhjiFaKWciH5m8JuhqhCoVJ1IlFNQnRtW /aPlQb/OozmKbL36k2NBwk3zrJwvo5iIF3KZdtB6u3+9fwhZRza6QOGM9jaQKexGo0px 7XE5bikJNcB+yEYGhohYvwXmCb294ER25FH2cdB6wLt1gdkYfAQ3Ad988BgSVs4W2pEu iLi8nqrkDJEugH2O0DLfWRRJLjWNAc0EUI5+ntMKr2lzehiTnrcHQbVmEWevdZrEn0hl TmoUXbVZv7WzSDo23+iZ86MVgSTt3j4dOLst0PxzEvwPjSqgL2446Jz2xqWLU9beam5c dwcw== X-Gm-Message-State: AOJu0YySqxjwjX5Ezpi9TRJVmzkmR4KbB/uAxRDWCe36jmjq5HkDN+BS txQfjfgRHmQDHmXdKp1PPXBMo6354SH3FfdC3oaz3gD8JqkUMAcSnaBXHRwlnZVvfXJxa99wJSe TjMNpSMcCmKzT/6RVu8OhO1GUvUHaoVZshsdFGYgCZhmpyItw7zMZ+pWgTwhKLXJpUmju X-Gm-Gg: ASbGnctLdkv3S84ziGrf2H6SqEhwAZFnYKcQmoV6VHbCoWYazR9yYgjf7SeE0lal0XM IIWyh9v9b10j6twB9P4NIdX2c6a8oHV7p8LRmevjGwf22LNwjUxXOQbEjEz6IGtIJDlVh9X28lI h3ilCXsbIoZAi57WrHTMQPo6hRJB3mRrMgOfWQHfCv6vCG4LF/UdV/Xw2Wmvl22RCHL4HxbKayi R6XY3eHnKrHWEH6vToTPannuxnFSlb9TTX2rfH3qd8YPSrFrrRtoPaVBtfEEil+anD96RVf8/Iv pIwWtXxu0Nl3FV43s12cU6xcmj1tNzADz8AepSShA3fhGF/U7M4zGM5vANKMBy6dZUqdsYvryjb rMt9CVU44BCCJ X-Received: by 2002:a17:90b:3e84:b0:327:7bf8:273a with SMTP id 98e67ed59e1d1-32815412e85mr15051027a91.6.1756784847573; Mon, 01 Sep 2025 20:47:27 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEUdn0/kKA8H6RN1gHrs0DL7LQCJTl94sdU4CFiuFNYloS+vY0nnCdAtMLy2hD0fsEBeCFr2g== X-Received: by 2002:a17:90b:3e84:b0:327:7bf8:273a with SMTP id 98e67ed59e1d1-32815412e85mr15050995a91.6.1756784847113; Mon, 01 Sep 2025 20:47:27 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain Subject: [PATCH v2 04/40] target/hexagon: Add missing A_CALL attr, hintjumpr to multi_cof Date: Mon, 1 Sep 2025 20:46:39 -0700 Message-Id: <20250902034715.1947718-5-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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=Ycq95xRf c=1 sm=1 tr=0 ts=68b668d1 cx=c_pps a=0uOsjrqzRL749jD1oC5vDA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=UrstOHIbV4iY_BwJnwMA:9 a=QEXdDO2ut3YA:10 a=mQ_c8vxmzFEMiUWkPHU9:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: 62q_Znw2oU40c6y-EdIiyvLam_0EqMxG X-Proofpoint-ORIG-GUID: 62q_Znw2oU40c6y-EdIiyvLam_0EqMxG X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTAxMDEwMSBTYWx0ZWRfX446Sw8XwGPMA rcwidSHVYbnzqpcwakKxcliJZxXlbCU7DIwKEivqLPmYd2Y4K1ul/NvpomHadSI4OOv9gxUwYP3 48W8grza0Km8LkU4QoBNg50Pp7a4xjYMeYgE/seKYoVcG0/TGeTaUFOblc0h67MXVhn3dOHs/op yuM/5ubMffhhdz44rZ59gSzrGhwGz0qoqyAC+84RO8utT2vtB6Fzalm+D7spc8LJdANznGa2Dzp 3eKKXicxoccqQ1vYIpsm865YNF5KJphR5gtBrSpgWYBHgmGfPoWWJu1CcZP5t7FPkzjaadCWeGR fGpWRev7xQq5+qbPLbVzv3lMvXvQ1e/4oXiiM93y32LTVORU8sY/uaqMfShu100pCnEoBHGJ/rj EA8WbuNw X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 adultscore=0 phishscore=0 malwarescore=0 bulkscore=0 suspectscore=0 impostorscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2509010101 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756784895766116600 From: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/hex_common.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py index 758e5fd12d..e60e8efabc 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -247,7 +247,11 @@ def need_next_PC(tag): =20 =20 def need_pkt_has_multi_cof(tag): - return "A_COF" in attribdict[tag] + if "A_JUMP" in attribdict[tag] or "A_CALL" in attribdict[tag]: + if tag =3D=3D "J4_hintjumpr": + return False + return True + return False =20 =20 def need_pkt_need_commit(tag): --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756784898; cv=none; d=zohomail.com; s=zohoarc; b=Vi+rSYsawowy8ovrGBc12XqJ4ieXCehhuKCZ6dIpGIi+1Jy8+Bm+y13Rzx4PJ73LmTcgKGziXbySTRdurTRFvtn9NhnRFjyd609WqQVwY0gWX6MtEWFoLJ68baVcZrSsUOuWNJyJCROau8WOi02Xxh5KqBvABj6ptqcYhwzcMTQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756784898; 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=4vYVB7ttqBKkKr0vKMuYGgNvfoJG7B2BtbwdwK5xIrQ=; b=NDDt25O5Tprbeg6Xvelsg7Uwc6owYKU8eL/bxbbrRphMeuYqi+FXhmxakZ+nQSFHNUhd0C2ZzG7aE70UY2sinXYNabJK9yzTOv09AfttpEIk2FQb2jnthoOj4/5jOcHhCkTofiJPdsqGQaI7x1zhar5UVMSRR8LmBHVuOoebY4o= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756784898710128.20509620326004; Mon, 1 Sep 2025 20:48:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utHzk-0006k8-SG; Mon, 01 Sep 2025 23:47:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utHzg-0006gT-7X for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47: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 1utHza-0004Qg-Vl for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47:39 -0400 Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822Rp71012533 for ; Tue, 2 Sep 2025 03:47:30 GMT Received: from mail-pg1-f200.google.com (mail-pg1-f200.google.com [209.85.215.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48uq0eej4n-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:47:30 +0000 (GMT) Received: by mail-pg1-f200.google.com with SMTP id 41be03b00d2f7-b4f8e079bc1so748071a12.3 for ; Mon, 01 Sep 2025 20:47:30 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.47.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:47: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= 4vYVB7ttqBKkKr0vKMuYGgNvfoJG7B2BtbwdwK5xIrQ=; b=aunCvHY3mUWSaxrI SjNSueTZ4+yg1iPwXP3GKLB/mrSN9iztxwkA8ZH2XJodoUwIUZ1j5W/SpkcDHelo mghdp8SjmeIT1+lKOhuxSoFE13XASuhclNoZuts7uk7UFtAIMVEQ2impk2MeG4xb vlnVAicKbW0hBZ3dVP3lBZsg7kAN18GlCFP8cOoMGkPw+IiVBOJizsEfErtermtR /14ps60UI6u1UBnO+REq05FO6pTV7bEABWRqsfz42nub0QgLK1G/9B7amihF3mai f+kyi95InRYVnzbr0okLHUpobOPV9DxVhtUwzssmmZTMXEkafR17xwACTHW4gBa9 qQO0Cw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784849; x=1757389649; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4vYVB7ttqBKkKr0vKMuYGgNvfoJG7B2BtbwdwK5xIrQ=; b=Y2EhLphqVka/sVYG9Dg2poBFZ8mR5cNOzO+99jPvz9zRv1RFkHOIB0YvLSusa1TZIs k2S0En3T1u1FFwLhpdeNKGgAckgRf41Mytjcb1xxrj0PdvVNAHI1PcljbrvzpmKSk0yT VCMzvDXszqbD/Nwca/UOLzuHSDa7OG9BUoqKzAy2F2HjsUx6vkJW5tzxTljS83xch0Mh sXj6r0VfFvYAZKnnzGnGSehJ7rI9vMxrnuAih55D5LpjiBqiQlxH5XxzUyE0DnLtn64q S/dakRzTGr7gVlUYW8vBJfUy6FgzNk/3h1h+rnxLUiqN7ldIZBwTvKOaafHxbI6XQ06C L72A== X-Gm-Message-State: AOJu0YxJKL9/3DI/GV8i2/GHJX9lr1rP0WtmvBGv1/7W6on835fpZ5+W HB+gUB+0lEjbiQg+piYHqixrdPNpTRotoJHRoeGr9azfhDqOwoqd2P6fRieqBr780Zjmhe3dIlW nC5I5qNOxr0dDX/niG5qttXX1Yh4NqYSuvNGSqexbLep2eCkd4idvU0+9nCnCf6AAiLko X-Gm-Gg: ASbGnct+Kq8QlxFWK8Pu8HCEBlfM5HRsSdOPN7z1+Ty4AXAqadHyLTchGOEABdXuIWJ Dt+wTYqtJOPxxjdZZbXSKJ+K7E6fMnDdbHoTvXT1P5bnO0o5WbFQUrztAqhC7MraSlJnPekd5QW JfwaB7mI/fXMGyf9sRdckmzobBO6lJxoxixytakEWP3WXqCK6H3kR6UN6bOsNl/LJstAdWocv3T aIzYlLc9/raa48io9IRgAPtNAU/+e+zSQpFRXdJh3TiUVkTddZuA4Z+9Ug1lDOAP+ePGXJ1XFuq vyRdfmgyyJ4eBtg4/ALZNxVIB9jM9QF55ArOA/nmokkMsSpAMAtdGzU2PsprA6iFa4eI+apAksL 8L5nVM1B6/f6T X-Received: by 2002:a05:6a20:bb0f:b0:243:f723:fe48 with SMTP id adf61e73a8af0-243f72400aemr3739074637.34.1756784848930; Mon, 01 Sep 2025 20:47:28 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG3/1S0uimOjoMPYze4KuL9CsisifGYiQhBWvxt2veEjU91xEKxVzXw4MFNJ3rCUkaP52cjtQ== X-Received: by 2002:a05:6a20:bb0f:b0:243:f723:fe48 with SMTP id adf61e73a8af0-243f72400aemr3739050637.34.1756784848320; Mon, 01 Sep 2025 20:47:28 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain Subject: [PATCH v2 05/40] target/hexagon: Handle system/guest registers in gen_analyze_funcs.py and hex_common.py Date: Mon, 1 Sep 2025 20:46:40 -0700 Message-Id: <20250902034715.1947718-6-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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: YBivJXSj9NC93bgndSEwAsvjObvn2J34 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAwNCBTYWx0ZWRfX+IgJzdkiapki ppw3M1GgvEv75gEf7JWMBYjSCOwc0WPkX87eXsi9aaWUKIkcMY918sL+HqNBJZCLA2/HMW0PEZD RGczHrTbrR376y7WhapTu04CS/J2DZBoJgqRdcRLLNZzqJif2D25/sX0M1F5PD2OaDdbwE7UKNt IgC5HwOYvtvVGjip5Bkz8rSsT1JHk0f/Iz4o8HTeiXFWBQ1Ey1NCMOZMjXLc03DFx8QE1vOyJ+J wMwgu9GKXkuSthyD5khiCPJ1Z/mpJ/PQ6wNoW+Hs/miGgY7x9ZTyAhahkjc0hJqERYjq8qIFvJA CfoQlfzxWEpB4ltV+0DJUzSQEREUOLNGVLsvLgv39WBup/rwcQKfqeN95xruWEu+buxskhunniQ Fm7FFNiR X-Proofpoint-ORIG-GUID: YBivJXSj9NC93bgndSEwAsvjObvn2J34 X-Authority-Analysis: v=2.4 cv=ea09f6EH c=1 sm=1 tr=0 ts=68b668d2 cx=c_pps a=oF/VQ+ItUULfLr/lQ2/icg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=-IRm0M9p1sl727KxlF4A:9 a=QEXdDO2ut3YA:10 a=3WC7DwWrALyhR5TkjVHa:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 suspectscore=0 clxscore=1015 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300004 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756784899650116600 From: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/gen_analyze_funcs.py | 21 +++- target/hexagon/hex_common.py | 161 ++++++++++++++++++++++++++++ 2 files changed, 179 insertions(+), 3 deletions(-) diff --git a/target/hexagon/gen_analyze_funcs.py b/target/hexagon/gen_analy= ze_funcs.py index 3ac7cc2cfe..dfdf5f3b87 100755 --- a/target/hexagon/gen_analyze_funcs.py +++ b/target/hexagon/gen_analyze_funcs.py @@ -22,6 +22,8 @@ import string import hex_common =20 +def has_analyze_func(reg, mode): + return callable(getattr(reg, f"analyze_{mode}", None)) =20 ## ## Generate the code to analyze the instruction @@ -42,6 +44,14 @@ def gen_analyze_func(f, tag, regs, imms): f.write(f"static void analyze_{tag}(DisasContext *ctx)\n") f.write("{\n") =20 + if hex_common.tag_ignore(tag): + f.write("}\n\n") + return + + if ("A_PRIV" in hex_common.attribdict[tag] or + "A_GUEST" in hex_common.attribdict[tag]): + f.write("#ifndef CONFIG_USER_ONLY\n") + f.write(" Insn *insn G_GNUC_UNUSED =3D ctx->insn;\n") if (hex_common.is_hvx_insn(tag)): if hex_common.has_hvx_helper(tag): @@ -58,22 +68,27 @@ def gen_analyze_func(f, tag, regs, imms): for regno, register in enumerate(regs): reg_type, reg_id =3D register reg =3D hex_common.get_register(tag, reg_type, reg_id) - reg.decl_reg_num(f, regno) + if has_analyze_func(reg, "read") or has_analyze_func(reg, "write"): + reg.decl_reg_num(f, regno) =20 ## Analyze the register reads for regno, register in enumerate(regs): reg_type, reg_id =3D register reg =3D hex_common.get_register(tag, reg_type, reg_id) - if reg.is_read(): + if reg.is_read() and has_analyze_func(reg, "read"): reg.analyze_read(f, regno) =20 ## Analyze the register writes for regno, register in enumerate(regs): reg_type, reg_id =3D register reg =3D hex_common.get_register(tag, reg_type, reg_id) - if reg.is_written(): + if reg.is_written() and has_analyze_func(reg, "write"): reg.analyze_write(f, tag, regno) =20 + if ("A_PRIV" in hex_common.attribdict[tag] or + "A_GUEST" in hex_common.attribdict[tag]): + f.write("#endif /* !CONFIG_USER_ONLY */\n") + f.write("}\n\n") =20 =20 diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py index e60e8efabc..fa122b6d76 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -33,6 +33,42 @@ overrides =3D {} # tags with helper overrides idef_parser_enabled =3D {} # tags enabled for idef-parser =20 + +def is_sysemu_tag(tag): + return "A_PRIV" in attribdict[tag] or "A_GUEST" in attribdict[tag] + + +def tag_ignore(tag): + tag_skips =3D ( + "Y6_diag", + "Y6_diag0", + "Y6_diag1", + ) + attr_skips =3D ( + "A_FAKEINSN", + "A_MAPPING", + "A_CONDMAPPING", + ) + return tag in tag_skips or \ + any(attr in attribdict[tag] for attr in attr_skips) + + +def get_sys_tags(): + return sorted( + tag for tag in frozenset(tags) if is_sysemu_tag(tag) + ) + + +def get_user_tags(): + return sorted( + tag for tag in frozenset(tags) if not is_sysemu_tag(tag) + ) + + +def get_all_tags(): + return get_user_tags() + get_sys_tags() + + # We should do this as a hash for performance, # but to keep order let's keep it as a list. def uniquify(seq): @@ -370,12 +406,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): @@ -1013,6 +1053,117 @@ def analyze_write(self, f, tag, regno): ctx_log_qreg_write(ctx, {self.reg_num}, insn_has_hvx_helper); """)) =20 +class GuestRegister(Register): + def gen_check_impl(self, f, regno): + if self.is_written(): + f.write(code_fmt(f"""\ + if (!greg_writable(insn->regno[{regno}], + {str(self.is_pair()).lower()})) {{ + return; + }} + """)) + else: + f.write(code_fmt(f"""\ + check_greg_impl(insn->regno[{regno}], + {str(self.is_pair()).lower()}); + """)) + +class GuestDest(GuestRegister, Single, Dest): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno) + self.gen_check_impl(f, regno) + f.write(code_fmt(f"""\ + TCGv {self.reg_tcg()} =3D tcg_temp_new(); + """)) + def log_write(self, f, tag): + f.write(code_fmt(f"""\ + gen_log_greg_write(ctx, {self.reg_num}, {self.reg_tcg()}); + """)) + def analyze_write(self, f, tag, regno): + f.write(code_fmt(f"""\ + ctx_log_greg_write(ctx, {self.reg_num}); + """)) + +class GuestSource(GuestRegister, Single, OldSource): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno); + self.gen_check_impl(f, regno) + f.write(code_fmt(f"""\ + TCGv {self.reg_tcg()} =3D tcg_temp_new(); + gen_read_greg({self.reg_tcg()}, {self.reg_num}); + """)) + +class GuestPairDest(GuestRegister, Pair, Dest): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno) + self.gen_check_impl(f, regno) + f.write(code_fmt(f"""\ + TCGv_i64 {self.reg_tcg()} =3D tcg_temp_new_i64(); + """)) + def log_write(self, f, tag): + f.write(code_fmt(f"""\ + gen_log_greg_write_pair(ctx, {self.reg_num}, {self.reg_tcg()}); + """)) + def analyze_write(self, f, tag, regno): + f.write(code_fmt(f"""\ + ctx_log_greg_write_pair(ctx, {self.reg_num}); + """)) + +class GuestPairSource(GuestRegister, Pair, OldSource): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno) + self.gen_check_impl(f, regno) + f.write(code_fmt(f"""\ + TCGv_i64 {self.reg_tcg()} =3D tcg_temp_new_i64(); + gen_read_greg_pair({self.reg_tcg()}, {self.reg_num}); + """)) + +class SystemDest(Register, Single, Dest): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno) + f.write(code_fmt(f"""\ + TCGv {self.reg_tcg()} =3D tcg_temp_new(); + """)) + def log_write(self, f, tag): + f.write(code_fmt(f"""\ + gen_log_sreg_write(ctx, {self.reg_num}, {self.reg_tcg()}); + """)) + def analyze_write(self, f, tag, regno): + f.write(code_fmt(f"""\ + ctx_log_sreg_write(ctx, {self.reg_num}); + """)) + +class SystemSource(Register, Single, OldSource): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno); + f.write(code_fmt(f"""\ + TCGv {self.reg_tcg()} =3D tcg_temp_new(); + gen_read_sreg({self.reg_tcg()}, {self.reg_num}); + """)) + +class SystemPairDest(Register, Pair, Dest): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno) + f.write(code_fmt(f"""\ + TCGv_i64 {self.reg_tcg()} =3D tcg_temp_new_i64(); + """)) + def log_write(self, f, tag): + f.write(code_fmt(f"""\ + gen_log_sreg_write_pair(ctx, {self.reg_num}, {self.reg_tcg()}); + """)) + def analyze_write(self, f, tag, regno): + f.write(code_fmt(f"""\ + ctx_log_sreg_write_pair(ctx, {self.reg_num}); + """)) + +class SystemPairSource(Register, Pair, OldSource): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno) + f.write(code_fmt(f"""\ + TCGv_i64 {self.reg_tcg()} =3D tcg_temp_new_i64(); + gen_read_sreg_pair({self.reg_tcg()}, {self.reg_num}); + """)) + def init_registers(): regs =3D { GprDest("R", "d"), @@ -1059,6 +1210,16 @@ def init_registers(): QRegSource("Q", "u"), QRegSource("Q", "v"), QRegReadWrite("Q", "x"), + + # system regs + GuestDest("G", "d"), + GuestSource("G", "s"), + GuestPairDest("G", "dd"), + GuestPairSource("G", "ss"), + SystemDest("S", "d"), + SystemSource("S", "s"), + SystemPairDest("S", "dd"), + SystemPairSource("S", "ss"), } for reg in regs: registers[f"{reg.regtype}{reg.regid}"] =3D reg --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756784965; cv=none; d=zohomail.com; s=zohoarc; b=Q1tAI1oTHLkiSihA+sIx6tUFA6dpWWLr8YbisWpQV0rOHOOPyC1SmJ6egDC+ctteNgMxp0Nb0aBdnwSVledf12KBbE0ZehjG+ACGohIWwOQpXT1rtUL/b+OXidWaQtslsLsGVySOInLp4+7dgxnkz5wzAfYWCNSUe5/9TyXhtWQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756784965; 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=/5v75VngIy4d3QCUt93PZDE7TZAdwElcelAyga7d7i0=; b=anEtiIycXdgaYtZGLeS4Pry+ihz4q8//D5dkL75FxRgoW+lv/5PjFt8F6mFnLp/Tz8JfxhwSF9HztroIcO0PH1/tm8dQtM09MKibz3qXuqqDEPcuXk+h96xziRg62iLIc27nw7Jm43FdG3ouLQHpsjcy7rSs4UcxHJzRkwbcscw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756784965971616.9915151264544; Mon, 1 Sep 2025 20:49:25 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI0S-0007Hn-36; Mon, 01 Sep 2025 23:48:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utHzi-0006hO-1M for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47:42 -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 1utHza-0004Qs-Fh for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47:40 -0400 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822Rnlo029672 for ; Tue, 2 Sep 2025 03:47:31 GMT Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48w8wy26nq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:47:31 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-32972a6db98so2997941a91.3 for ; Mon, 01 Sep 2025 20:47: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 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.47.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:47:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= /5v75VngIy4d3QCUt93PZDE7TZAdwElcelAyga7d7i0=; b=CiQRumypMQ1wPzRw ooB/ojq0kAuPl82NhGAsPt8NMN+cN8yHbXOKtNQ6LSB2CH6XYJrnXHalukHNHoOJ 2s8E1wBK5M8qp4SftXmlOXBkexo2BtKboNG5yNFM5dyKqUOAsmorzYDQwPsokkJN a/lCydismtPWDiyd6BPYhmlg9/pZjduqn19Ysa0gxpr9oDIAjB/DPaCV+1AmkPe7 1ejdqwfNeb4IoO9/cvx6xh/s+mHNoDFr82aZxCva3mZl402R58EMZY4T0B6A7T9U bGxCULMFscu9B3XV6lRZ9KiD8ncrXYefUy0tieM8ufat7k0waVvNilfzCddCHUo7 K6XDvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784850; x=1757389650; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/5v75VngIy4d3QCUt93PZDE7TZAdwElcelAyga7d7i0=; b=WvxINflac9pn9CRzY4xl6/u49J2G3h49K5Myix6RJXK3RrIY+bwkNJ2b5KW/MUlhvT sbozS1zKbIm3VePZ9WHbczL5qmsBn2+hSPo2jDSKtOMFAd2RGq2G76ESXLsU5W8eI+Lm +jG8qw6d2+Ib5pu52+3PlSu8iFu2BaQV0oFai7okzWXp+jj0oPhJIWsPyHxZz8RP/uyN j4YsurNZipqgK4j+IUpHOq/0s1ji34rwFprEaoj93boyDN9IQooqeTb054AtW8nz1PUN 6fsY4pQgKhtVpvo9aSWt72PRG0YWuOuv+Of6XbODLInjQiQXQCdU+q9ghvIRqoAD+FYx uRfQ== X-Gm-Message-State: AOJu0YyIKTRBxxIu6uvQ6dYdtgQG0wPIitbfWBhjOeHuTbp3Yv35m8bM 2AfXwWzg42D2YK4PiUCJHfBKyoAa+QnfjgfHP4cLVlflPI7yKbbeFaUUUF5yg+Sp/82BePVBbc3 9Qlon3fw3lF6ar9I4PacBy6hEw+C0HUyn7PPZpWgU1H4eQkHuDhj6bx1DoZhiEsGwNYZ2 X-Gm-Gg: ASbGncuT2Qxi52ppRHeoV+T4wt4FeyVDVMv+MKE19qUQ5sDBv3ScS/oJKM+A5v0S3i+ T3us/k72hTOtQqnBsDwpvK7w24MN2bDJiDlyMcRQxht/gGbWwd7y7aROBZTXd3UPpR1LCRynwwZ d2iKi+DuGtDGAwLwWw+0O+91JBVJtv8mlA70DP/xg8jcA++EQMHPFtaoZxeh8CS606eAyy3ptEj BZJ1kDuIYnmCCAKcVHLbIaR1ZTiEPkLjqGfSNlagkRrBkKeO1q1sqDz7mugnekJjhKoQ6h/QJH5 hq5Jm+izUoqbrNgjcF2LTozKGKc5H9Bv4kaFk4J6xA4q7FkgEpg7+hJz+K55jP4Yv2GQZZ/q1bG ehhjSRHU6TVVS X-Received: by 2002:a17:90b:518f:b0:327:ee13:5763 with SMTP id 98e67ed59e1d1-328156f5089mr12244172a91.32.1756784849987; Mon, 01 Sep 2025 20:47:29 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGNRSouq7LKEDjIBMVJqWU7JSI/nbO8Lyz6kqlxg0Jddla4LQaLUFhHr6qwOduMFJv+YHyslg== X-Received: by 2002:a17:90b:518f:b0:327:ee13:5763 with SMTP id 98e67ed59e1d1-328156f5089mr12244148a91.32.1756784849544; Mon, 01 Sep 2025 20:47:29 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain Subject: [PATCH v2 06/40] target/hexagon: Make gen_exception_end_tb non-static Date: Mon, 1 Sep 2025 20:46:41 -0700 Message-Id: <20250902034715.1947718-7-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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=Ycq95xRf c=1 sm=1 tr=0 ts=68b668d3 cx=c_pps a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=DaFmz2gY0jefzUg_QRQA:9 a=QEXdDO2ut3YA:10 a=uKXjsCUrEbL0IQVhDsJ9:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: OuqZlF5s30PXAOxYut3gMkaLvIK2c-Sc X-Proofpoint-ORIG-GUID: OuqZlF5s30PXAOxYut3gMkaLvIK2c-Sc X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTAxMDEwMSBTYWx0ZWRfXxldouIw7NH6j zoVifZTbvEpHDiLE5eSot6n8iXIlR5nZHxcBBhE3p1gbMAtoYalw1xNwpw8N7c0P9yl7ixgPuNG 7W1bPYolCsJSIx2d9MzJu/h6d3A71YJSf30sJW4ewO81WF071JIte1/7zKsl+ynil4+xBM1G0kB wFroQXDd5S/0tDWr/MtXGezEYxRRcwcs+xq5sAIW7KMqPgtrZfJEkqNWMpd/kOWK9BeMlB/72fg QRGKnf8Nqmw4rby1m/4OZz01KvFk3+4N6TftjdBBf11zUGeZF5X4mshI6+nPjXrnDVyhpfgDu83 HD2pER84IlkuOxlgY/15ZWb180EyamIc7Trn3EtIg8iuOTgsZtwqRc2u9mlP5owDmtD3FQyUega sWA4KZh/ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 adultscore=0 phishscore=0 malwarescore=0 bulkscore=0 suspectscore=0 impostorscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2509010101 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756784966185116600 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/translate.h | 2 ++ target/hexagon/translate.c | 9 ++++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index d251e2233f..2bd125297a 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -281,6 +281,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 02fd40c160..15f5adc400 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -185,13 +185,12 @@ 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); gen_exception_raw(excp); ctx->base.is_jmp =3D DISAS_NORETURN; - } =20 static int read_packet_words(CPUHexagonState *env, DisasContext *ctx, @@ -558,7 +557,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 @@ -912,7 +911,7 @@ static void decode_and_translate_packet(CPUHexagonState= *env, DisasContext *ctx) =20 nwords =3D read_packet_words(env, ctx, words); if (!nwords) { - gen_exception_end_tb(ctx, HEX_CAUSE_INVALID_PACKET); + hex_gen_exception_end_tb(ctx, HEX_CAUSE_INVALID_PACKET); return; } =20 @@ -927,7 +926,7 @@ static void decode_and_translate_packet(CPUHexagonState= *env, DisasContext *ctx) gen_commit_packet(ctx); ctx->base.pc_next +=3D pkt.encod_pkt_size_in_bytes; } else { - gen_exception_end_tb(ctx, HEX_CAUSE_INVALID_PACKET); + hex_gen_exception_end_tb(ctx, HEX_CAUSE_INVALID_PACKET); } } =20 --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756784966; cv=none; d=zohomail.com; s=zohoarc; b=POJJNdrx0EkZVIGYuXREH9RLrR3a8vu3ExgyuJQXfCthysXCE+gTBBV3PHk2DsFqdKR5VHtHXRYmzMfzfl9ienmyEZ3EY7ELFDMDXFZE7MA86rHfRO5CRrnF9maArniC3klP4xQqWBbB0DlqT4saYO9tEXJaW6ILYw+bMzCoiso= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756784966; 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=vSyen/JSsVX7mBtepLJb9QV1vbjNr1COrLIU23/g9uk=; b=G3E/u8h68I6wP37LapV01+sCVmOehW/3urZifH9ixQs5LD427bdgcxhnXZ8ldNGvmTnbPn3czm/fnDPvaRiMUyjVJ8BOkJBXVRRa+o3OBrAN405w9siW1hmkpQDkkYfmPmL4TWcoGJa5d3guD2P2xS//tJMHd342fXXBzK+zxwc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756784965905913.8323183303932; Mon, 1 Sep 2025 20:49:25 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utHzp-0006ol-GZ; Mon, 01 Sep 2025 23:47:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utHzf-0006gM-To for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47: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 1utHzc-0004R1-3w for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47:39 -0400 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822RuNw012447 for ; Tue, 2 Sep 2025 03:47:32 GMT Received: from mail-pg1-f199.google.com (mail-pg1-f199.google.com [209.85.215.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48ut2fea08-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:47:32 +0000 (GMT) Received: by mail-pg1-f199.google.com with SMTP id 41be03b00d2f7-b471737e673so7176597a12.1 for ; Mon, 01 Sep 2025 20:47: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 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.47.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:47:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= vSyen/JSsVX7mBtepLJb9QV1vbjNr1COrLIU23/g9uk=; b=RAxty3zhdNIlqaHQ 3ICRdFBKxDk0IIy6rcxewW9b6aOgeEsOuURLLS86nqpva28FKTyz030kGkqj8nXi pXHvJFt+cwJrZ2V0rMZHB1oEjF4N0XVV2cuQN01K2gATeQxK1pZUHUccYiTx0DYG 2Ag09Y/IDdJscGOlOhezgb5izGYpVAibL3kZWGDsWiZiEM/yiUZYJiYaOCSW7YWk RP6GhDHQJdubijuhwRaBs8CeMcPgZ0m+Ru5U1V3I2EvYOy8pT8orC5mWdZNqF+Ak inLVfYwsMeX2Ucqb0EB5yaPzhl1sgBp8qaju1FTRTJqHNZHknaB9s4YEVMzWfV90 tXjkHg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784851; x=1757389651; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vSyen/JSsVX7mBtepLJb9QV1vbjNr1COrLIU23/g9uk=; b=oilOv/QRPI5Z0Es3/7MtwCwjsoUjzymWlqwyZV+02woYekwZPqszngT/Cr8UVUVBOe qysw0D8yBcfYPPmFI9YcdEjmZHu8Ois2kXNZ21Xa0Ed8dkhg0PsyjkcDggVA37rDIblo fWpiVw1u3fzyf49INy5Hmlw+DwPckYPHUgF6HGO1blZU24lnXff7OKgNdPVZ843zRXZP TV7yQU2gyrx1htT87m0+ccdxX5YFqYUs9YlaVnL6Xbuysh3t4+zWfVHmxVax9vSTJ21u ibN02dhZ7Qy8BcJjifAkdHVqSVINEteqkKb7FzpkHNAaTsPkcCHY9mPJLA0wGcmZuhfC boeA== X-Gm-Message-State: AOJu0YzKvvxav8sicsuxX4TqROz98erlafzouLN1W1MSjC+Qys92CRTs H+SPKvyUXibdurNtrPb8CPmu5uUd5WNo7X7vGqwiYhkIn083gVAipGjcQ+t2xMBdNNKnvpqsWre B58VIh08ToBF11dO3QYUrInoCQVmerAn/O4wm+oxxHax4ZWiloC9Kf0lsW6e1fbpdxblw X-Gm-Gg: ASbGncsA7D96KsCfVDevF1L5OLfcv7DSPSY9SODE21qYij9F22AWjD6WuNkj6AjCdX7 YNsH3JyMU7oOp7DCs8ODdfhCOnJQCnfaLfLrJxb+kZ+gk4LPWrD1fmg0f5Qma09M61dh36NcWMe 81I4+O6o4N7ANpcIB6Z8HBkJUlO/1d5ZdBoDXXs6bs7vKB+PWZS4WRfFCnDuny54iFOoYfuMdTR ThAaU1pLtM4vUlv9wSOip3GpOO5kdqhfDF15Mv5bNR1pP50rMNonOZZxZmPd6eHq8EDecsUla2o 6I7QjqZu3ys/P6tNpEq87tGQAjrlis3EA8Hbcn/wbL3B8XZf+YInNABx1TwBRBWaUtyYGNeeOfW cKGSFsVV9on/4 X-Received: by 2002:a05:6a20:7fa8:b0:240:104c:8e14 with SMTP id adf61e73a8af0-243d6f037acmr13582006637.38.1756784851381; Mon, 01 Sep 2025 20:47:31 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEhumOHNiaerPqghSnonzYVuqBjlry7QwPmDAgQGWTs8VQdymPW3wqM/zwEMl4iPdO/MdFacA== X-Received: by 2002:a05:6a20:7fa8:b0:240:104c:8e14 with SMTP id adf61e73a8af0-243d6f037acmr13581970637.38.1756784850881; Mon, 01 Sep 2025 20:47:30 -0700 (PDT) To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain Subject: [PATCH v2 07/40] target/hexagon: Switch to tag_ignore(), generate via get_{user, sys}_tags() Date: Mon, 1 Sep 2025 20:46:42 -0700 Message-Id: <20250902034715.1947718-8-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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: AW1haW4tMjUwODMwMDAzOCBTYWx0ZWRfX9RooRd/MXUBk E2ZtJr1fGvd8Q7se+K2NQUv76C5eawip+qZWFMnfr+gWMsMGUcaiXMetlQp7OZQpsbDUd+MMWq7 hzY/6zCRg4sab5psVJL7uHq2TPUrwszG0VcmYjv7Wy78getBT4CTy+tyzdl1CutvBpImBuZnhaR SX3nE/xsw3XbjDI+rZlLKxaPRBFg+ppsk7BWdbaTztO7F2JZsVsSPV2JJjDN2WR46tjylkxuXnS 9gyRvz0oR6Nk3ksatzPjCmgSnPN19vZ4qPKHW0QtAhnJMhT7wP9ocgvamgny4/ZQrCPq9sxRdO7 0GhYjnawgo9yxA+5a1ulSJkJCMK0yBcZOO++B+WSXlPxewNqJm1jqTG1VpZFbm3kP7r/Yrnv0N3 huwVO91U X-Proofpoint-ORIG-GUID: 9hxlLN6BDoodxhSP_jxQfHU8L4HvOJwx X-Proofpoint-GUID: 9hxlLN6BDoodxhSP_jxQfHU8L4HvOJwx X-Authority-Analysis: v=2.4 cv=U7iSDfru c=1 sm=1 tr=0 ts=68b668d4 cx=c_pps a=Oh5Dbbf/trHjhBongsHeRQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=w5GA-SIdXBg7ke_1h4wA:9 a=QEXdDO2ut3YA:10 a=_Vgx9l1VpLgwpw_dHYaR:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 phishscore=0 clxscore=1015 impostorscore=0 suspectscore=0 malwarescore=0 priorityscore=1501 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300038 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-to: Brian Cain From: Brian Cain via Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1756784966335116600 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/gen_helper_funcs.py | 23 ++++++++++------------- 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 ++++- target/hexagon/gen_tcg_func_table.py | 14 ++------------ 6 files changed, 31 insertions(+), 38 deletions(-) diff --git a/target/hexagon/gen_helper_funcs.py b/target/hexagon/gen_helper= _funcs.py index c1f806ac4b..dd8ab60598 100755 --- a/target/hexagon/gen_helper_funcs.py +++ b/target/hexagon/gen_helper_funcs.py @@ -109,26 +109,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 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 77f8e0a6a3..59c8bdd05c 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 2f6e826f76..32bce9b002 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 bbbb02df3a..94dd1f876b 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 94a19ff412..17ba3f9db9 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 diff --git a/target/hexagon/gen_tcg_func_table.py b/target/hexagon/gen_tcg_= func_table.py index 299a39b1aa..70c8db5c44 100755 --- a/target/hexagon/gen_tcg_func_table.py +++ b/target/hexagon/gen_tcg_func_table.py @@ -41,19 +41,9 @@ def main(): f.write("#define HEXAGON_FUNC_TABLE_H\n\n") =20 f.write("const SemanticInsn opcode_genptr[XX_LAST_OPCODE] =3D {\n") + 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): continue =20 f.write(f" [{tag}] =3D generate_{tag},\n") --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756785869; cv=none; d=zohomail.com; s=zohoarc; b=EfFCHKQ+Yh/rUWsv0c0mPGxcxfLJHs5eZ/R3Vp6yWIIoT5v/a0h7HYk/EMVub+eaBJmHvhrK4pS81LoRbIoVXBJI4my6Z/xGsPpdtBCUmd0DY5P5YOJ5gST7WBuJcmfvSjODOWWKeeh0Q9m7efuNrAnPZ6GyfgcxFbhLFfERHOY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785869; 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=CHO6wFHKiSo32iJDvpWRaIYtidx0GOpJkxmoT7M+VFc=; b=CX7HBXz9OD2P+UBfeag42dMBr9TpO2Gx4BjuWHX4/1vvn5uwNSMvrGO8zg/FIK6xjan0VU9/ciCVSCWaHPmRIRvY+AzKdgx5Blu1/yqCkqvtOevsWZDvrvlMxF5gYciohbIfQMpkPujhrQxesIG+u1zTT9yzhQx1fMc+WmPe7no= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756785869543585.5386766035954; Mon, 1 Sep 2025 21:04:29 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utHzo-0006oF-ON; Mon, 01 Sep 2025 23:47:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utHzg-0006gP-5F for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47: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 1utHzd-0004R5-47 for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47:39 -0400 Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822RnIY012501 for ; Tue, 2 Sep 2025 03:47:33 GMT Received: from mail-pg1-f200.google.com (mail-pg1-f200.google.com [209.85.215.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48uq0eej4r-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:47:33 +0000 (GMT) Received: by mail-pg1-f200.google.com with SMTP id 41be03b00d2f7-b49da7c3ff6so2859619a12.0 for ; Mon, 01 Sep 2025 20:47:33 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.47.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:47: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= CHO6wFHKiSo32iJDvpWRaIYtidx0GOpJkxmoT7M+VFc=; b=Jj29Mri/vcF9B6be DOtSJBQVAqUf1UT9HXVp9aRghewRN2ZlHCD8u//lQAYXzVGtfer41KUKR6SwCL2g qgJYzmu+0ujpc8H9V/Tgl+Rix1u3zRLiDa+WzbPK6dvSx0Loir2SmxVvwLevRY24 NEQpEJsb32PnW0x7011WPVEXcWV7zpK1SnWBAzE7pHWQXe2es+eOpvY//1oTIOL6 hQbnhNNlCz1AGqgpbX5oEaUiGYADEKXrWrw6ix5lJOB2d3nv8qc/zsgk7+qTuzbp gJEmVM6l6XxtbLCSeWsioimMdw6jKCC9vflMgn0cvkPL6y3di+bAV9Go0V15kULw hRKg4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784852; x=1757389652; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=CHO6wFHKiSo32iJDvpWRaIYtidx0GOpJkxmoT7M+VFc=; b=fNfGDJ/bpbPQbo/MLnDg2SQTFc/7roG0tLmgqwwfjbdP7xOA+OkzcM7a3TgbWYIezD Bts0hAVpD0iPVKIDJx/8jp/K0AlJbCwij1vI4LGWUx8vCpBQIUP6QRiVymNGO82M3dF7 l9UUgl2vYe9hgog4+zHOeAaos02nlzJ6q6ReC4MBUEEKtpx9CsGewLDgzXYdVia99zyp Mp52tM8+v9rwt/Ty6EcSmf7sl6eigoDut7iyLwTYumc7DujgGKqqxuAx29OcmZZjZX/R PSpYKq8DiM7kmfe+MMIOoc1TaZSGSwn9MONxsjQMTmABmqRsq8B/TsLQC1oMRP6WZd/k /pBw== X-Gm-Message-State: AOJu0YytQAILn5cAAtwfdzXQqIcrfTJLDpqWVYQjMwvsqrz7uCRIzOv0 5AttOGm//rJ6cWQNEo3ZsS7AlsIZnXEYKG7yAVv9e/FVe+TDBJIzRyCs3+YY+PYnmmEEkgXHDSX jeTJuutIfF3RzZ3+5gwAHXs7lqE/l/4P/J50AuDnsEuF9xpaBDX/lJuYGVl1DKA7rdoP2 X-Gm-Gg: ASbGncsrlimcUdXhp289IzZ2c0Whvfc6cO8US9lr2mkPLGocq5bNnICeo/DOhxOLSPD FcnrdufDvC0GL2iclAzETI9++BfxAdvL6CfeRchzaBaksiRNMUt6sRoExqSbXiXp3kpqbYW0nDt r8eiJGkGWUn03M/fEnazsm25tg52OkBA9o2lfIxLHb1CD+vBuPMEYIgHHtmtp3Bxp0NV2Z+uAYP dd3V/hWZ6scpvyZjpt6XmkMzb8krPxHWeDcz0qopurKd9brI4uVi+YGEkxiLj4S1lUC9b5PeIhg N0KSjQnCmsAPUFZTTf8A9/NkEBGjVcINzObf7c2vyRtWnrJJIJGSJYhq3cG8ckcN+eMDk0mmBg3 ZOqxO8ZbJ68kx X-Received: by 2002:a05:6a21:33a8:b0:243:78a:8269 with SMTP id adf61e73a8af0-243d6f433c9mr12587113637.47.1756784852558; Mon, 01 Sep 2025 20:47:32 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHJ3/6B+TEDpXlBKJak93tml1wZaC8osCiqiMedEzSC68m84yiMcMBozRC5awtIxedu95PIKQ== X-Received: by 2002:a05:6a21:33a8:b0:243:78a:8269 with SMTP id adf61e73a8af0-243d6f433c9mr12587100637.47.1756784852140; Mon, 01 Sep 2025 20:47:32 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain Subject: [PATCH v2 08/40] target/hexagon: Add system event, cause codes Date: Mon, 1 Sep 2025 20:46:43 -0700 Message-Id: <20250902034715.1947718-9-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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: 4nr1eF7nmNK-q0fj5JvnFQGnGFBqSarI X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAwNCBTYWx0ZWRfX4w0xlq0OVfw/ 6LEEgBjl9hhTtahXZO9UC75mgB2HWyREDPCRg8/NWX9FUT2UBztzydeZaA2EER86ss7pT8bYvgM pWzcm7dNzhChA6wEKt2vbT3TYeSCufFSYLkkRs4H4ZQH6Z3OZCaHC5fgpKv/aYJGLdVv2jC2nKe 0IhA7mieEXNyqvfv0zSHl++PJjivtlPAZsJLH0NpP7lDaqr0pf5apMAiNe/tkilS72Ok1ZXDYHS FImPHTCq5L1JWrkxsPKjWZ9BXnfVCsHG3ZqG3WWk0sBTN61b+2KlL3J750yv6yDAtmpInz6zD6J mvdREkcrjJZtTtUBMENeIzklPkd9N9SKX3zVybTBQa07dWHuDNrM6zCJRGA8yPvaiSa9Ffc3sR+ yp7P9KGm X-Proofpoint-ORIG-GUID: 4nr1eF7nmNK-q0fj5JvnFQGnGFBqSarI X-Authority-Analysis: v=2.4 cv=ea09f6EH c=1 sm=1 tr=0 ts=68b668d5 cx=c_pps a=oF/VQ+ItUULfLr/lQ2/icg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=XVQBMALLqD4WjdKg770A:9 a=QEXdDO2ut3YA:10 a=3WC7DwWrALyhR5TkjVHa:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 suspectscore=0 clxscore=1015 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300004 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756785869839116600 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 9 +++++ target/hexagon/cpu_bits.h | 80 ++++++++++++++++++++++++++++++++++----- 2 files changed, 80 insertions(+), 9 deletions(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 43a854f517..1fc4093176 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -44,6 +44,15 @@ =20 #define MMU_USER_IDX 0 =20 +#define HEXAGON_CPU_IRQ_0 0 +#define HEXAGON_CPU_IRQ_1 1 +#define HEXAGON_CPU_IRQ_2 2 +#define HEXAGON_CPU_IRQ_3 3 +#define HEXAGON_CPU_IRQ_4 4 +#define HEXAGON_CPU_IRQ_5 5 +#define HEXAGON_CPU_IRQ_6 6 +#define HEXAGON_CPU_IRQ_7 7 + typedef struct { target_ulong va; uint8_t width; diff --git a/target/hexagon/cpu_bits.h b/target/hexagon/cpu_bits.h index ff596e2a94..b118761e05 100644 --- a/target/hexagon/cpu_bits.h +++ b/target/hexagon/cpu_bits.h @@ -24,19 +24,81 @@ #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_PC_NOT_ALIGNED =3D 0x01e, - HEX_CAUSE_PRIV_NO_UREAD =3D 0x024, - HEX_CAUSE_PRIV_NO_UWRITE =3D 0x025, + HEX_CAUSE_RESET =3D 0x000, + HEX_CAUSE_BIU_PRECISE =3D 0x001, + HEX_CAUSE_UNSUPORTED_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, + 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_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, + HEX_CAUSE_VIC0 =3D 0x0c2, + HEX_CAUSE_VIC1 =3D 0x0c3, + HEX_CAUSE_VIC2 =3D 0x0c4, + HEX_CAUSE_VIC3 =3D 0x0c5, }; =20 #define PACKET_WORDS_MAX 4 --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756785327; cv=none; d=zohomail.com; s=zohoarc; b=bnpm5xQcBfgUiXbck5G0cyRsnmhwMACuZf7pGTYORgsXtZcGmrNGp/0xU74UvSjblQapI4lY70HgohHQfhs4qTWZUjBUiNjkrVqSLQwfVTQhQymtPYP2N+dmAoAwGxFdVGULTVMDjULsatRSTAxqhIoZuiDETDi3KXOQCOzqwwg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785327; 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=j9oSIN6ZYdP72/shyqCodsje90cdMoo3gskGPOlFVGw=; b=VQan1KQl9B5lLMc3SJL5fPQn6910ClU4qSzREsf35KIKlwOzWcEKgSmUP8WGe5gOB7sm4a1FYBubEDt15OGe4J4A4c2H4vVCgsINfKnRCfIT00nb6RYna9VLzdY4ZNCP+F7sADf4dk9MwHj/O8yBvEJHeCULQ381xp5f5I+BgDQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756785327143716.291812502773; Mon, 1 Sep 2025 20:55:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utHzo-0006oC-Ky; Mon, 01 Sep 2025 23:47:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utHzg-0006gO-1F for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47: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 1utHzc-0004RI-EI for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47:39 -0400 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822RmnZ012365 for ; Tue, 2 Sep 2025 03:47:35 GMT Received: from mail-pg1-f199.google.com (mail-pg1-f199.google.com [209.85.215.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48ut2fea0b-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:47:34 +0000 (GMT) Received: by mail-pg1-f199.google.com with SMTP id 41be03b00d2f7-b471757d82fso3754431a12.3 for ; Mon, 01 Sep 2025 20:47: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 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.47.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:47: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= j9oSIN6ZYdP72/shyqCodsje90cdMoo3gskGPOlFVGw=; b=cT6TZfOg4Ap68dQI wvDnRad0pVsXqsUiwVA4TwvkYIhKLjuhJQU7kEbiRyi72mWF8Ft1Dc4H+KOoi/lu V69g0a9bCJ5jVD8BIlUjGl+VfWtmJ4Xfvla4qlRrapMuVd4vhj6y5eywR/MkDzSM 3HyvefCpVLM2BtqDf5db+pxGw/JHTEmujAhcViliH8fpQnF6foXdeX4QReXxzXH0 2nFKujqQHRN85rPbwKrklFx5+qdRpHKNT5lnBo040mHbY9g9YnCKNwIIkm4OBixO hCo8odfP24t4Ph8zpUPBVNyWzscCim/rYJvGwopl71D+Vhjjwr1MJmxQIituP4Vy 1JDYlA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784854; x=1757389654; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=j9oSIN6ZYdP72/shyqCodsje90cdMoo3gskGPOlFVGw=; b=OfKZSU32yKlyJkdQf6LHFzGO7fDV83OaR0Eaz+DnMMG6F3dpsg75ex2pCbFwizPLIP 72BDwyYSQtaviBC8mqKzXzYZZuLenMjjlAlG2xzN9Qui2NJISFhIU5+LxaT0n32PL+gf Nl6Sdm4ikQnv0AzxUP+QbrPuTjlOPYQmlBSemvv4KxokUrXvRx38wJTM8KdZaS1gW1Xf yRJvg6TabFqfxIbqIxIEzd/gGc+1iHVEupE5stveNgAPzgt5ULUC+m4kGYIaW9zckO56 ObYr6xQ44Oxgxnn601/3usfJosvd6qBfb3dKvuW4n9dfEQ2k6T6te9RcmoddxsQur1Jw rLCw== X-Gm-Message-State: AOJu0YzRxCJm2HGywSPP/5F9FMApna8Jbj+WWYWn5Vo6ND+Ep+aG+rVG HTO3AhgI7A7QuOckhahwvct15TgHf/YADTa/vX55LXWLWweTEjwezNe1NzBTVsg9V9Mho9DLcAk mLLIcIX3aX9S9c32O53p0pbsjPD2VK4eDTuZVxcf7ujiS2T7TbODJLZ3HJx+4i1AhoRCU X-Gm-Gg: ASbGncuozIKay7veCsooL57Mju/p3XXbv6nKmGxy9sQVwMwTPgSvk8rjidg40tsjlpj 59uivMc31XFAQ2wCqjX0GMdXotBsXW+4cFvYfcb1UNaJeP1Q50iL8cRC1qBb+DUmAYJ2BZZZNFg Lm4kDKSpcP43avt4yyLQZ2+Guy5n8ccPv33IgpqQzjbKW/ZZas/yt7pAyYZYDT+QnwKHeQSQAMK 2Bw0SK1PbqM7i9m/nS8pXjvnidS2mP2mwTmeYlXIr6m0o33yPk45JBnTEl0tmR/ODZOqblwoYpk VsXXw5ja8B6TGwL9R1dwgx0bLQ6EQiuEX8CmeHrMJ/HD1kc4yL+cgdGZ3Koq/XA/OeQ5+emHzjk 2wf9Zs1NXjJT2 X-Received: by 2002:a05:6a20:6a08:b0:243:ca56:a70f with SMTP id adf61e73a8af0-243d6dffa8amr13079775637.13.1756784853747; Mon, 01 Sep 2025 20:47:33 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEZ1hAokiBbe2tMeVpQEvAOGewq6wucMIJ8cm0KkGYPvmoKrNS9RW8wYcaDv08waV1++o1KuQ== X-Received: by 2002:a05:6a20:6a08:b0:243:ca56:a70f with SMTP id adf61e73a8af0-243d6dffa8amr13079748637.13.1756784853302; Mon, 01 Sep 2025 20:47:33 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain Subject: [PATCH v2 09/40] target/hexagon: Add privilege check, use tag_ignore() Date: Mon, 1 Sep 2025 20:46:44 -0700 Message-Id: <20250902034715.1947718-10-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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: AW1haW4tMjUwODMwMDAzOCBTYWx0ZWRfX84a7QpekA5F+ 6Z6jTPYAUm3kpBpcxmfIWp+ICViCrKHatw3sYW0PAwXsrIyncpJDAD1hurtw4uboNKI9Z3gQ9PE DKT+G+ESpnAkbCR+dnx9UTWgacxrORH/bIqLjnSHOxLLSKmjWrYejLO1rMfmWXaF3FpjTm63KFn DMw0bvyFYeYXx4/DMO5qzXN1o8jPY0upXOJJWTpIxF5jcajZvT9paPEDu60nWbX2rGP/wXAZRmm U1YhjgzLDoD4mrwSLjTV0Q6U2UVXdxpG1E9SQzlmk1M+QJgVUp3p5zWej0a1r+xXL+G2i5+ry45 M0OFv0OoV708kgQJQSY4ENNLV1Lc/GvkdqvSnxDQ4DulvP+AGu23+6MdnZHJD5DO/sP0fsek+X7 7xuQlkfh X-Proofpoint-ORIG-GUID: GRKf_710uYnl4AEtCWew_cqwiHuHHA0x X-Proofpoint-GUID: GRKf_710uYnl4AEtCWew_cqwiHuHHA0x X-Authority-Analysis: v=2.4 cv=U7iSDfru c=1 sm=1 tr=0 ts=68b668d6 cx=c_pps a=Oh5Dbbf/trHjhBongsHeRQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=VlJJRYDoeMviBMv8l8cA:9 a=QEXdDO2ut3YA:10 a=_Vgx9l1VpLgwpw_dHYaR:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 phishscore=0 clxscore=1015 impostorscore=0 suspectscore=0 malwarescore=0 priorityscore=1501 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300038 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756785328868116600 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 1 + linux-user/hexagon/cpu_loop.c | 16 ++++++++++++++++ target/hexagon/cpu.c | 1 + target/hexagon/translate.c | 8 ++++++++ target/hexagon/gen_tcg_funcs.py | 32 +++++++++++++++++++------------- 5 files changed, 45 insertions(+), 13 deletions(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 1fc4093176..df1f2b569c 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -85,6 +85,7 @@ typedef struct { typedef struct CPUArchState { target_ulong gpr[TOTAL_PER_THREAD_REGS]; target_ulong pred[NUM_PREGS]; + target_ulong cause_code; =20 /* For comparing with LLDB on target - see adjust_stack_ptrs function = */ target_ulong last_pc_dumped; diff --git a/linux-user/hexagon/cpu_loop.c b/linux-user/hexagon/cpu_loop.c index 25c97edcae..28ad8073f6 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 a193acdbfc..c9dfdd7864 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -298,6 +298,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(CPUState *s, disassemble_info *info) diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index 15f5adc400..c87f07ab69 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -61,6 +61,10 @@ TCGv hex_vstore_addr[VSTORES_MAX]; TCGv hex_vstore_size[VSTORES_MAX]; TCGv hex_vstore_pending[VSTORES_MAX]; =20 +#ifndef CONFIG_USER_ONLY +TCGv hex_cause_code; +#endif + static const char * const hexagon_prednames[] =3D { "p0", "p1", "p2", "p3" }; @@ -1107,4 +1111,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 c2ba91ddc0..65bfa046b8 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 @@ -50,6 +50,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 @@ -97,6 +109,11 @@ def gen_tcg_func(f, tag, regs, imms): if reg.is_written(): reg.log_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 @@ -121,18 +138,7 @@ 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): continue =20 gen_def_tcg_func(f, tag, tagregs, tagimms) --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756785974; cv=none; d=zohomail.com; s=zohoarc; b=Ys3PtLvX3t907cqM1X1NCQpRZwtIeOUYiXa4l6hRCiSdCZr7DgFW9bhNkRSL+JzZZ1FUbkboWPt3kpm6uk/YM4HzjDRyvIGi3DLqZ9OLJllBWop8ixQA9Bj96Acf0NdXufS3u/D4AVBNFIu01Yga7zdAIeB4Yt/tLkbZiNj32OM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785974; 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=pvFy5+kJ1ISufQWFswLlkKA0vv5M4P09aiJ7fnxS08A=; b=GEPB7rcwZBOVW/LBsPo6ljdhezIthvoqNnvj5Ul2EzYnOrR7kPdmTngulAlHxgeCBNk2IoEkdcF8wzH93gotBRryk39Y9shCcQhFIq8b6ziBN0fBpESGSYZ73Ba0oL5gcjH7sRVA0PjnKneFVbFjrURwe61xM+8Yzgw2uwe6oCo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756785974961455.0801545170184; Mon, 1 Sep 2025 21:06:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utHzl-0006mS-HV; Mon, 01 Sep 2025 23:47:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utHzi-0006hK-1K for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47: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 1utHzd-0004RY-Od for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47:40 -0400 Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822SfFS031364 for ; Tue, 2 Sep 2025 03:47:36 GMT Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48ush2xaer-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:47:36 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-244581953b8so53891465ad.2 for ; Mon, 01 Sep 2025 20:47: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 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.47.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:47: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= pvFy5+kJ1ISufQWFswLlkKA0vv5M4P09aiJ7fnxS08A=; b=HZ8UsP7ch1JGmGzg qy2g3bf+8y8ZZEKAJhaVStJToHZyzbVn8EdTLXaAR/hlIQNQJNX1HBdfj8Y3KhsY mVdYI9wam25tB2aNIzSBX4GcPOFiqKRLUdaV3fVTOzrJPoYbldhO6/QpFU3qgCyt h7kIsEqQCO43/b9PDj0iy0FBVMez6UDBs9rJEz48oowtIXAOp1tHBy3xeZAGT21c 0cwCXQ15IOtPwbd91/9MLQSfEzpFU7cwmczeQ3Aq7Pg8/BZY6En/WPvmccSKrsQE o63pcOnpzUvMonWPd/97pg1qH8w5hg0bYbuCA+aB2t0siOW9de8OsPmFErt0XvGZ 0jgfNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784855; x=1757389655; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=pvFy5+kJ1ISufQWFswLlkKA0vv5M4P09aiJ7fnxS08A=; b=k/qOy8M1cZxsUC2Tz5ll4ToFRZ/OLso1lpNtsKKVp4eskmx/xl/S05hmOn0qQhrQQ0 jiTjCRmLPr7dWe2opuY+GE98n181ZXTDgorAHhu3OOUSme8EU2XRaYyNK+LaN1RCM+9t bOHyETlSJnWl9fT4s9XIQq9XiWnweyWK7VNTu6PuQfL0UBp14z6oURSP7FXZ/8nIbuII H69BcCO9x8GMsmpBEqcN9omp3fUjAvWLa16G7QciogyzbytkvKtUy7S9H5Xj2EChMQ6o Ff562+uqrhW0msNlS+HQ8MgW6KU1eNVG9WfeAw3d9lp38gmeaBUuIjvtB1jPwhTYlzMq 3GHA== X-Gm-Message-State: AOJu0YyBTDoqcvdDHd/24Q95n8NfT4NJxYPHAHuvj5z0AOslKPbHNlFx 4X5CoZyX4Jg9vCuqpCwIBSUXZfa4TjmR1mT+jdwn7IdmOCEECL7+YuVUwKTi54gd8ByAi8shpVY dcpPWOCQdLxI77HA5bTKakNREZ+tKXnTKaejOdw66mC423DIFYJCu8eItMJ2KtGi0vVTE X-Gm-Gg: ASbGncsD2gYFo6uYNu2UaV0InbQ1nho2vkdZ34l5ZQGgx54OEX806NLWgg8hszI8U/f ioa7XpTx3uVPVxowRaQ6ytkU/PGNieJtcqVlPMiWCFhzU8HDd5hVqd8QLMjElb8AbzbEA+BspUx 8xFroFytjOeSpwt8n5PB6PZkxbsi//H1ry0zKE8STFiOBGJ/8mq5T3FW7mqUiDz6zxKqnVs6Tew orjWZQM7I5GsLNFgmIMsdH+THkDOcX4j+h91TscYt74VUkXsHgbBIaKkTOZY0MxckzPevcKhqGV fOVa+/Ryp32kbCPT+5GPvxMLOxJaO2QRKozILj8Lx9GnRZGZBpX9xtUZz5siSG8A+rCahrK8FFR R3mIpqeF1OcO0 X-Received: by 2002:a17:903:22cc:b0:244:6c39:336a with SMTP id d9443c01a7336-249448deb89mr159279885ad.3.1756784854927; Mon, 01 Sep 2025 20:47:34 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGY3UIqKHdm7UuuBPCswHP8M+8BzQ0mjDJeAc0CcWs0smicnUSVdTvzKcRcWiaOYc43BRlfsQ== X-Received: by 2002:a17:903:22cc:b0:244:6c39:336a with SMTP id d9443c01a7336-249448deb89mr159279575ad.3.1756784854479; Mon, 01 Sep 2025 20:47:34 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain Subject: [PATCH v2 10/40] target/hexagon: Add memory order definition Date: Mon, 1 Sep 2025 20:46:45 -0700 Message-Id: <20250902034715.1947718-11-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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: AW1haW4tMjUwODMwMDAzMiBTYWx0ZWRfXzGGY9RJturiS EHX/sDgQPvs5Jmz33sAby1x7i+m4Up8Ao+TPYMtWo1B+rgiBholA9GpE4Vh6GPjdRLKaWmk5DQl ie8Cf9/QVGeuO4HhHWVhhxtfkxs0kwJXt79hZji+vDLTMY6ksSurGjzJGLYnqFsdids0zQYtJnT ntj2d8jXIpg/AYcEiOoZfkpiZ1uJ/4LpS6ptCmUFVvFpBBPsqXTspnhRjcDs1QaycLhEFd99FHO ozv8Jm2b0hi8IZMsQVc20yuUDoWBozCz3+AJMCc3JEXlxRmXQWGlFr5SuAvbfky14AWEvzC1XOh HB6HVlSsz2+NcMyLFGokPBS9Nww6wpIERHmqXWTVDRHfbxXCAG6KqIVrPZYftj4b48xwhBbc8cU cgrY3igJ X-Proofpoint-ORIG-GUID: oTi5Voezh7t2OplbHsywE-P-J2vBhzrK X-Proofpoint-GUID: oTi5Voezh7t2OplbHsywE-P-J2vBhzrK X-Authority-Analysis: v=2.4 cv=M9NNKzws c=1 sm=1 tr=0 ts=68b668d8 cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=mbGQxb1c5k3ajljyOIAA:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 adultscore=0 spamscore=0 priorityscore=1501 malwarescore=0 clxscore=1015 suspectscore=0 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300032 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756785977078116600 From: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/cpu-param.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/target/hexagon/cpu-param.h b/target/hexagon/cpu-param.h index 635d509e74..22bffa7881 100644 --- a/target/hexagon/cpu-param.h +++ b/target/hexagon/cpu-param.h @@ -25,4 +25,9 @@ =20 #define TARGET_INSN_START_EXTRA_WORDS 0 =20 +/* + * Hexagon processors have a strong memory model. + */ +#define TCG_GUEST_DEFAULT_MO (TCG_MO_ALL) + #endif --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756785451; cv=none; d=zohomail.com; s=zohoarc; b=PI/oyfpBfh/G3cn7dHeepwx8iai6bPo9G0OKkiaz4SI8OoMi53zPobQtApekVc+FquV9CrmgJicWCSNET4kQiSe4DuXYllFv1DEH5ZNpBSOcPLbTJvZlNV+c9/c+V8/tYpSZdqtPevdeaGE6xtGcfDRGSJAxDTtAy28otuGAErk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785451; 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=D9buGlWbXXSE/93PtKdOm5QlqDe4gbK8gLamSNKDoHU=; b=Df9utnpoMsrrsnDsfWrjMsoD0XR4PIJpk1LrpwCcF/Hvl2fBWL6O/MKRgPptVXXpW0J1aIzS8yuH+SGjAqkyLuR0O4fA2qBrr76640N56XdqWUbP5H10K7bhyFf8waY/dqDJl1T5b9O0MuXChsTJHUkR0crCHNiqFBHfvT47wgM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756785451238986.9497265490609; Mon, 1 Sep 2025 20:57:31 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utHzl-0006mV-Kq; Mon, 01 Sep 2025 23:47:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utHzi-0006hL-1K for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47: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 1utHze-0004Rk-O3 for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47:40 -0400 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822S2Mc017549 for ; Tue, 2 Sep 2025 03:47:37 GMT Received: from mail-pg1-f199.google.com (mail-pg1-f199.google.com [209.85.215.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48utk8x860-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:47:37 +0000 (GMT) Received: by mail-pg1-f199.google.com with SMTP id 41be03b00d2f7-b4d48818a04so2706995a12.1 for ; Mon, 01 Sep 2025 20:47:37 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.47.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:47:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= D9buGlWbXXSE/93PtKdOm5QlqDe4gbK8gLamSNKDoHU=; b=QkTvDRaZq6VLMcGg 9hOEN6Q1t+gfkkwzuPAkvaGk7rw+dwU17rUG+NJ5h3FpV7TqTld6V5HUcYbWHYzY y6vWnZ0WQAnc2RzxrlqgND3CuQMYbbf2XWU6uVo3m6l3h0UvlXzEHQND4pvKScfc 5lmWi5vLwQGOMOq7fn9tUAcT2yna/vT43+iMmKF/Q3RrA2ikD4Kccf0IsyOZLcx7 SNFpka5pNd0Ktmk3injbf8lu7XvVfkkQYw1dHbmNY3fOg7keenZdul5CSr2MGXS6 RLS3REViHMjt196Bfwl1O/UEH5JM54E7YjmgPMlrelwFk6JBf/QiXkpxMTPuc4L0 aSddyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784856; x=1757389656; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=D9buGlWbXXSE/93PtKdOm5QlqDe4gbK8gLamSNKDoHU=; b=ZfrDu4Yg56c2eGCBhoKRDLSfoNxcDSK60IQEk0JHWgQeE0e1isz2tGpv5ISXXjhfns KUPbiYqX/oATCiTe+UoNHNVmNO0QD2CQ/h58ExEoE/GrUvRralUJn3vIdql4sdK+J1NW mHdb5sHOZTdP8F/+KAvqYdHO/w0tsZgoI7OpkW2JDRQ+wm2d5iG5A1AmcwEr2qGwkDZb mZMcE6UEP8DvzCWBIlZHimIafE4NRnaH/9YtKQhN1WfQi7qJOKo1hPEcbjutX3/N5MH+ MqNg4zU7ulEjGeiaXkVNcclTvztM6mWhUMrZ7GncXm0/tWVihM+nSQF4xvmt/NnSUZYI /dwg== X-Gm-Message-State: AOJu0Yznj+mFPCWUfptNXN63k56kbsTHTA0swcFS1siOKg5oOCkcata3 ZwYYqLIW7Ej0IjVKCAGfCQ2BWfZoMnzCOeMSXf8FRa2MvOmUakXs70AGsq3lIoXCNWmCYNY58b/ LwvW3gwy+417OVol9tJhxLhwVlDsItL1aJPIJiRTQVLtHw9K8AMoWD9DgBqpNqF4+xSrf X-Gm-Gg: ASbGncuIWKJzpE8Vwhe0rX1VLxnejPjqv9ZJeKAeYm6hSe/970WmeiR7nFyvs/l1RWK mM52k9XCNe13K6peJcsLGJ1jjW+x/8XRcRALiMKCXgtix0K5CsDqOHjL42OhtfuJBqgZrVws4i9 I2mWk3b6vnAy2r9kWiU4oxBgNOFH0JLdW9BdElBfnRXZG4lbC5UeEiVAsSTlVNEGtQryuA339ZX hzStXwPSRjCi/TBdujSatEdtbENNzgcKPo21H/63LOyEzjKXGuhCyeydpO0XZVNDq4MRgCf6TiK GuqrYr+Ax7nyvanN6jPMIoA8FbRZNWNDePktkpjDoP7hmEMXxeRbsSa52eyOpuf70KhXxUNT/ok mhmyEpvtc80z/ X-Received: by 2002:a05:6a20:12c5:b0:243:a663:9110 with SMTP id adf61e73a8af0-243d6e00835mr13963590637.14.1756784856097; Mon, 01 Sep 2025 20:47:36 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHdWyP2oHCBbye0A02idjhPwVecukBU1jOpHxxImAu9MR7WfmY3KnuE6tsvWH3Kp4lUQW1G1A== X-Received: by 2002:a05:6a20:12c5:b0:243:a663:9110 with SMTP id adf61e73a8af0-243d6e00835mr13963562637.14.1756784855670; Mon, 01 Sep 2025 20:47:35 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain Subject: [PATCH v2 11/40] target/hexagon: Add a placeholder fp exception Date: Mon, 1 Sep 2025 20:46:46 -0700 Message-Id: <20250902034715.1947718-12-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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: d8AYoeuJwYe76N6l1ra_ftsGOIjHWes3 X-Proofpoint-ORIG-GUID: d8AYoeuJwYe76N6l1ra_ftsGOIjHWes3 X-Authority-Analysis: v=2.4 cv=ccnSrmDM c=1 sm=1 tr=0 ts=68b668d9 cx=c_pps a=Oh5Dbbf/trHjhBongsHeRQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=R5LHHePp8dzqxDYlWrYA:9 a=QEXdDO2ut3YA:10 a=_Vgx9l1VpLgwpw_dHYaR:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDA0MiBTYWx0ZWRfX9C6IIDlMXDgn ye7k1x7OoxM9Hib8lYSDMj2wRMDEQEze/C/mHBZkOSzlGGW/UCAaJ0pqlTutEPdHpFKxqgchKBc Q1obGwKlvDfU0On2zshPgBFMLGIQMr8ldMLQiZW6jL+by2Evqd+mWn64wZuxiJxd4B3ZEH4nK9l vb6+hKtaAsu+sJvcLsTmpizk1Y5g/BkoOzcaKLxutxbeuMDiF3JUU7NTScBpN2YVlxUycUiq6Cg yQ0vVli0c7JyiGiy8eJPMyyW4rAvYGhWsqclZstPjdw3KADs0p/5P0Tu8E/wsXOHxxV5XDPAtax mCCIGcNDc8risQ6rLK6XFJ5IdOrs738RboZ/QNwf3VMUGEe+kMmNNqyeviQPiABAaHuyF9au65v JfiD1bAb X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 phishscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 clxscore=1015 suspectscore=0 spamscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300042 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756785452035124100 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 d053d68487..87c2f6a53f 100644 --- a/target/hexagon/arch.c +++ b/target/hexagon/arch.c @@ -208,6 +208,11 @@ void arch_fpop_start(CPUHexagonState *env) * model it in qemu user mode. */ #define RAISE_FP_EXCEPTION do {} while (0) +#else + /* + * To be implemented. + */ +#define RAISE_FP_EXCEPTION do { g_assert_not_reached(); } while (0) #endif =20 #define SOFTFLOAT_TEST_FLAG(FLAG, MYF, MYE) \ --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756784894; cv=none; d=zohomail.com; s=zohoarc; b=m2+KlOp+Yn/oeEVvIVFo8AIc4JutNC8L8BhvcwDAkOuMCPorETf+Dtw5uBbsDHcW/y6E9nTyb8QCWPjGIbn0RtYzhnYOxUo0gmq6ipMOpbhb7FF4U1kZCnLUJQmYH3YnAFrJViDStSnGdrt182QPUx9EihLStbvP9bqJelG+p8w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756784894; 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=NgT1akKKFF6K3333BvEEjXOLGfnXf+7r3v3gx1JzEgk=; b=L2paQ4/BmrYPvxYU7L7Amg3qKFUFWSpeCz6y6EJWwKKKddXAZph1nmd+MiPpS9dxZAV5zfOo6rltVGotDXq16h5mEuTTJg9MJ5SmM1OO9D245pcVsrG93HVgytUfZriVZYr4u2GZc3wMGtUhdgn1k5ns/5bb+CjIGYr6UuMSmH4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756784894238478.8308690178319; Mon, 1 Sep 2025 20:48:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utHzk-0006kN-VP; Mon, 01 Sep 2025 23:47:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utHzi-0006hP-1w for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47:42 -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 1utHzg-0004SA-1g for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47:41 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822RoK5024999 for ; Tue, 2 Sep 2025 03:47:39 GMT Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48uscuxe6d-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:47:38 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-3251961140bso4412294a91.2 for ; Mon, 01 Sep 2025 20:47:38 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.47.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:47: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= NgT1akKKFF6K3333BvEEjXOLGfnXf+7r3v3gx1JzEgk=; b=YUYwgjajRDxbZ7Wg V3HiGVoqJhqpFbnhSntioQmi3CmlLNuaoVJk0P/BGFNwylljlVpDem7XFkyDlN+5 KkaXmgpaSaeVciFdyn+s9rJh+AelKNU8oiQnpk62Nz8kzo9m/q8Xrjouj+KfT5jW /tGyblfTk5GX3/NtB+Kleq2NX5M/fh+MvThF/KH4qIRNrZsHD/MlOWF/twgwcHF0 bwmNf97Z1JdrEU9nSRaTXqfuonMJL3zuNeH5m4VGS0jmRwZb2IY9LUg7izCyHtKd dhOl0hcUdPV9OV05XM+6a+EiTlbt8VURDbkFaZ9HegtVLj1W2/K4+pMrAPFp4+hH VBhrRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784857; x=1757389657; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=NgT1akKKFF6K3333BvEEjXOLGfnXf+7r3v3gx1JzEgk=; b=GlCakWVRkVH9wNRYrtbOZJ8WgiX3RgaqJWYITCB92Oww7PeQ4GIjVJr1P7aOyyv14Q I/GhUl/wgt1rgocBDt1BedLiY1otjBUIqymvNRPuCLq+Jdh8cqbM6NUuCmAa94wzrQv2 cBP4+X6xONOaQVWRfaEXGj9VVApyVOYWmEWka6VM4dpUe/qq9zR3C4uh4qkuZJfFhVjy z8U+eoxIbvp86aEUvKbDfkP45utjIVbaNGNRvpUI2M+ET/EcwRD6hhlz27YpAmMFnevh gb55k+KUuP0axfMgNSV/u7wIJzUK+iO5TXPF/L1QNCzk63HG+f8Qq0TcmRkvSBlHn3ps +Azw== X-Gm-Message-State: AOJu0YzT0npv2eEbpoylMgic4Ms5ZOredWlg/l738f6iR2kIU0m9qvoG d54SNRKOpMjhd1ctk5nWdR3ddQRK88z+PvksRY+UktI56/TbfSHbhwsozm4OcrpW+i4CgrVQf/H XOoyQV7nyVzjqDvvYKyIle8wq8NDNvT5aMg/iWp5ZnzCAYy5ejrLc3a6YhpEgkuPujzec X-Gm-Gg: ASbGnctkIQfU/yInXDmvH5tz3fcz11/dcbp4usz9/g4IgH+Tz/YqCZNRi/RhkRL0mfp lIjowxPE4Fcbi4a9YtCJm5UjzOEMbhgXvhCwTobI79cLbi4Rv/uorhbyfhcI7Ob1UxcHFGpzEdS SrWCm6jXvHp6l/MIkVgEP4bZRDy1bozQiUoRaChb6OVvJqFUfALd/J/rE7UEZDNLNEUjtrgQKTN nuRNaUWTI+u4ysyEHPkC9jw8Bozq/qYj3t3FTPo5jwkpVWDe1B8mA1u4lsAx1vGj6iukJCpvOHH df6VIgAZsABm00cOkzCRyRq2gPyJspu4z92559rAqOQjll0SNyIPL+2go6LBA/xw5QpHr3izZLI XQJ2j0eDDhwr6 X-Received: by 2002:a17:90b:35c6:b0:321:b7ed:75f2 with SMTP id 98e67ed59e1d1-328156e0537mr12148147a91.32.1756784857359; Mon, 01 Sep 2025 20:47:37 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFoAGOq7fGJAr1dI/6CBCVCxMYqMROUINJreui/ZZUnyH+u5rByOouYZvPbL+LjNMy2HP+H2Q== X-Received: by 2002:a17:90b:35c6:b0:321:b7ed:75f2 with SMTP id 98e67ed59e1d1-328156e0537mr12148115a91.32.1756784856806; Mon, 01 Sep 2025 20:47:36 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain Subject: [PATCH v2 12/40] target/hexagon: Add guest, system reg number defs Date: Mon, 1 Sep 2025 20:46:47 -0700 Message-Id: <20250902034715.1947718-13-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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: AW1haW4tMjUwODMwMDAzMSBTYWx0ZWRfX8sh9RjdlGGrw 4NB0Ei3skc4JuXIiqYLITpd02Mh+xXtjs1SgSnAw16VPFovQbC35BOm41o+lnmxPoDHktRxT6k/ QG6lHDTVD/Lnd1VB/i/qkqTy1VTVfhTYZ+phCnBvJWR8tA8QJtV7fR0kVNau6JuKzitP0s6PzAM Fg7p0AS2E/skxinL9Y5Ts4n/DYF8pnajigdMxYRFxvVTdnbJL72gEA4ntGGR9Cm3lsjkvcrqpAT VTd26mb7tWYJsW4Xo8nIylaBFAVPm69P/Fud2gm2ZEIuHlVAhQu+VjRacXMgusUpAU3Aqs9mup0 JI6IusM32qE0f8V6YwPAa8nhFe11CxYGRrqCFsZGq79o65HkXsyfRAJtLZ372oxNJ+dmxv3xBLe HmbMhHj6 X-Authority-Analysis: v=2.4 cv=A8xsP7WG c=1 sm=1 tr=0 ts=68b668da cx=c_pps a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=tCkOjFGBvLAhDY2OQcYA:9 a=QEXdDO2ut3YA:10 a=uKXjsCUrEbL0IQVhDsJ9:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: obGlOoIVrfM2B52oA8D8XFgyQCMND9pB X-Proofpoint-GUID: obGlOoIVrfM2B52oA8D8XFgyQCMND9pB X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 spamscore=0 impostorscore=0 bulkscore=0 clxscore=1015 suspectscore=0 malwarescore=0 priorityscore=1501 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756784895981124100 From: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 5 ++ target/hexagon/hex_regs.h | 115 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 120 insertions(+) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index df1f2b569c..46e0dc9d0b 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -20,6 +20,11 @@ =20 #include "fpu/softfloat-types.h" =20 +#define NUM_GREGS 32 +#define GREG_WRITES_MAX 2 +#define NUM_SREGS 64 +#define SREG_WRITES_MAX 2 + #include "cpu-qom.h" #include "exec/cpu-common.h" #include "exec/cpu-defs.h" diff --git a/target/hexagon/hex_regs.h b/target/hexagon/hex_regs.h index bddfc28021..ea8c62eba9 100644 --- a/target/hexagon/hex_regs.h +++ b/target/hexagon/hex_regs.h @@ -81,4 +81,119 @@ enum { HEX_REG_UTIMERHI =3D 63, }; =20 +#ifndef CONFIG_USER_ONLY + +#define HEX_GREG_VALUES \ + DECL_HEX_GREG(G0, 0) \ + DECL_HEX_GREG(GELR, 0) \ + DECL_HEX_GREG(G1, 1) \ + DECL_HEX_GREG(GSR, 1) \ + DECL_HEX_GREG(G2, 2) \ + DECL_HEX_GREG(GOSP, 2) \ + DECL_HEX_GREG(G3, 3) \ + DECL_HEX_GREG(GBADVA, 3) \ + DECL_HEX_GREG(GCYCLE_1T, 10) \ + DECL_HEX_GREG(GCYCLE_2T, 11) \ + DECL_HEX_GREG(GCYCLE_3T, 12) \ + DECL_HEX_GREG(GCYCLE_4T, 13) \ + DECL_HEX_GREG(GCYCLE_5T, 14) \ + DECL_HEX_GREG(GCYCLE_6T, 15) \ + DECL_HEX_GREG(GPMUCNT4, 16) \ + DECL_HEX_GREG(GPMUCNT5, 17) \ + DECL_HEX_GREG(GPMUCNT6, 18) \ + DECL_HEX_GREG(GPMUCNT7, 19) \ + DECL_HEX_GREG(GPCYCLELO, 24) \ + DECL_HEX_GREG(GPCYCLEHI, 25) \ + DECL_HEX_GREG(GPMUCNT0, 26) \ + DECL_HEX_GREG(GPMUCNT1, 27) \ + DECL_HEX_GREG(GPMUCNT2, 28) \ + DECL_HEX_GREG(GPMUCNT3, 29) \ + DECL_HEX_GREG_DONE + +#define DECL_HEX_GREG_DONE +#define DECL_HEX_GREG(name, val) HEX_GREG_ ##name =3D val, +enum hex_greg { + HEX_GREG_VALUES +}; +#undef DECL_HEX_GREG +#undef DECL_HEX_GREG_DONE + +#define DECL_HEX_GREG_DONE 0 +#define DECL_HEX_GREG(_, val) (1 << val) | +static inline bool greg_implemented(enum hex_greg greg) +{ +#if NUM_GREGS > 32 +#error "NUM_GREGS too large for greg_implemented(): update `impl_bitmap`" +#endif + static int32_t impl_bitmap =3D HEX_GREG_VALUES; + return impl_bitmap & (1 << greg); +} +#undef DECL_HEX_GREG +#undef DECL_HEX_GREG_DONE + +#endif /* CONFIG_USER_ONLY */ + +enum { + HEX_SREG_SGP0 =3D 0, + HEX_SREG_SGP1 =3D 1, + HEX_SREG_STID =3D 2, + HEX_SREG_ELR =3D 3, + HEX_SREG_BADVA0 =3D 4, + HEX_SREG_BADVA1 =3D 5, + HEX_SREG_SSR =3D 6, + HEX_SREG_CCR =3D 7, + HEX_SREG_HTID =3D 8, + HEX_SREG_BADVA =3D 9, + HEX_SREG_IMASK =3D 10, + HEX_SREG_GEVB =3D 11, + HEX_SREG_GLB_START =3D 16, + HEX_SREG_EVB =3D 16, + HEX_SREG_MODECTL =3D 17, + HEX_SREG_SYSCFG =3D 18, + HEX_SREG_IPENDAD =3D 20, + HEX_SREG_VID =3D 21, + HEX_SREG_VID1 =3D 22, + HEX_SREG_BESTWAIT =3D 23, + HEX_SREG_IEL =3D 24, + HEX_SREG_SCHEDCFG =3D 25, + HEX_SREG_IAHL =3D 26, + HEX_SREG_CFGBASE =3D 27, + HEX_SREG_DIAG =3D 28, + HEX_SREG_REV =3D 29, + HEX_SREG_PCYCLELO =3D 30, + HEX_SREG_PCYCLEHI =3D 31, + HEX_SREG_ISDBST =3D 32, + HEX_SREG_ISDBCFG0 =3D 33, + HEX_SREG_ISDBCFG1 =3D 34, + HEX_SREG_LIVELOCK =3D 35, + HEX_SREG_BRKPTPC0 =3D 36, + HEX_SREG_BRKPTCFG0 =3D 37, + HEX_SREG_BRKPTPC1 =3D 38, + HEX_SREG_BRKPTCFG1 =3D 39, + HEX_SREG_ISDBMBXIN =3D 40, + HEX_SREG_ISDBMBXOUT =3D 41, + HEX_SREG_ISDBEN =3D 42, + HEX_SREG_ISDBGPR =3D 43, + HEX_SREG_PMUCNT4 =3D 44, + HEX_SREG_PMUCNT5 =3D 45, + HEX_SREG_PMUCNT6 =3D 46, + HEX_SREG_PMUCNT7 =3D 47, + HEX_SREG_PMUCNT0 =3D 48, + HEX_SREG_PMUCNT1 =3D 49, + HEX_SREG_PMUCNT2 =3D 50, + HEX_SREG_PMUCNT3 =3D 51, + HEX_SREG_PMUEVTCFG =3D 52, + HEX_SREG_PMUSTID0 =3D 53, + HEX_SREG_PMUEVTCFG1 =3D 54, + HEX_SREG_PMUSTID1 =3D 55, + HEX_SREG_TIMERLO =3D 56, + HEX_SREG_TIMERHI =3D 57, + HEX_SREG_PMUCFG =3D 58, + HEX_SREG_S59 =3D 59, + HEX_SREG_S60 =3D 60, + HEX_SREG_S61 =3D 61, + HEX_SREG_S62 =3D 62, + HEX_SREG_S63 =3D 63, +}; + #endif --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756785864; cv=none; d=zohomail.com; s=zohoarc; b=moQ3aRP5EOMgckVwVqAOs5CsJaztcVNQAxT/HvhdOfldlAePOT3ox1Fof/r4WeGnSGcDq8j/Neevnvnj68wN/C4Uqtp8hhPVoOJU+B7gUuUVCp+EppSSEk3DYP++V2K874BMVAph2CcCtrwTQbJ6jKXSYDlEEYhkwvUz1EvVFu8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785864; 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=xLE71cBXm8KNE7yfwMNI6Ijpz/GKHOMZSorV6Otlvr8=; b=Myo908b7M4xCd3hBl8bK/ISHQJzVeB8PmrZCHJNgB6otlCihttMreO0u5r/0omvpUaxeTXAxPjPfChFQx2QORPay3AbMCkAb929fjVTKZKgsb55txYhZi095fLInK/19i4xPjLF5irkslysFr+UtDekPdUC+g+zivkSrhuiWGSE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756785864854734.1449745167091; Mon, 1 Sep 2025 21:04:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utHzl-0006mQ-GG; Mon, 01 Sep 2025 23:47:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utHzj-0006ig-Ed for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47: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 1utHzh-0004SP-Q6 for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47:43 -0400 Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822SO4c013850 for ; Tue, 2 Sep 2025 03:47:39 GMT Received: from mail-pg1-f200.google.com (mail-pg1-f200.google.com [209.85.215.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48uq0eej54-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:47:39 +0000 (GMT) Received: by mail-pg1-f200.google.com with SMTP id 41be03b00d2f7-b4c724d27f8so2848832a12.3 for ; Mon, 01 Sep 2025 20:47: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 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.47.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:47: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= xLE71cBXm8KNE7yfwMNI6Ijpz/GKHOMZSorV6Otlvr8=; b=Zrp0wpPARLuCM8xJ L1lKxu+dokJ/fV59pClbXfYKKlONQ6/vDs741U6jCppS0Ge8uAelvVSXM6kEutyT EtyIQiMBcFk1OGcHHXb6ntxMuQjgEiKv71XcUan+MEY6hjxrf62bxwhOe6JTvt1K UELLbhBOTL7n5yviBoegBtm2cREoywcEBIw2QPBhVXNx4zVGKyIq7coEm1mqGh02 QQ3yZhop4NAV2g+hs8fuiyIoIsRnsmUGIWH/PR/K23vxRqJ9EHp9NDAeXPMsY+RC 7UdsIiZus8zCVPNBPsi5RJcIorsQ943RKawU2CpX30r2hJRM8yJErFUYQ5EdLhoP EBJwAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784858; x=1757389658; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=xLE71cBXm8KNE7yfwMNI6Ijpz/GKHOMZSorV6Otlvr8=; b=E+oRMzqm88J/sf5a4KwNFo9ZouXohBzTespH9Dx28C4GxRWGzCmRMYIn6/eyN6+Iah e6yWvr6Cpm71XtuTa3lWF2q1k1DOZN2C0L2TFUtxfPfAjs5Hd0WEkHdsI+fa0laRpwg0 4GEPAHVn9aw7/eqZm8NxmbUANIWx3Q65BrIPtrsOL2js/b4Ehjg8/qYkkcdf9ZQUar8y GzRu3ahMu2YygkQvoWt2umEa4XqeEclrT929seCY0BzUe3shxhdSB27C45RqFd+DEZfj vcoN3XnCPbZzgODSo2XA3sIE/LCKIRNg1Uv6OQage3/0Tswan75PVE/IE8qg3ehQfYBh 00gQ== X-Gm-Message-State: AOJu0YzStZKN/n0xyIm+KfggO04q67TFj/DNW7XSl5DAEjmZf+HEDlVo IhUIKuPgGwgtg/TbZjLZ2jHjpskkQNETtAZ4pnrkcDsLNC82TaHZMyBYMba3hoAWbnsV3qGT6y3 upx9ppHljX6zj3I6VGZbF+pdvHOUcIAcpmkMxnYaB7HOKFX0PHKrMOZTmsoauD1PgP+MM X-Gm-Gg: ASbGncuTNnMwsXvpxxV7ps6QrtaPiICex/oL0KqHl+GAbGxp/vROhgrsAkMU2Fn6Ya/ eafvuhYyDVhndAGbKh2L1Ai5KElnn87k3fjeI1xHTd9cJNqxvQrOLZGDsvhfELIWrPaetg+QG2F O8QdUTfEhpxj/O9o9Ce1uhgpSL3NRGF+0gYxMH/IInL5dB1VayK2IGM4LIX6Kyxsxo23x8kgyE4 ziJlAYc+8V+S0TCys/gyxuORGern7byVzVi/AKRWuJNULsmGRT0GpHXv+LoYlsvoH9oGPGRGydI BLCFRMWUniwzrfEGkZl3BgAzSvzDJyqeR9uxhoVoFpWk8WYsOiFf2pqE6KeaJFLG0iiCKYzwqnu Ql7GJi6WkESs5 X-Received: by 2002:a05:6a20:938c:b0:243:d562:21e2 with SMTP id adf61e73a8af0-243d6f7eb58mr12780258637.60.1756784858379; Mon, 01 Sep 2025 20:47:38 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFyrTl/G60oZ3xWZeMKNSlABXYcSi3d5PzCvrTuN5EVtBlldk+01NQklkVR2KVVB3kg/eYFgA== X-Received: by 2002:a05:6a20:938c:b0:243:d562:21e2 with SMTP id adf61e73a8af0-243d6f7eb58mr12780223637.60.1756784857921; Mon, 01 Sep 2025 20:47:37 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain Subject: [PATCH v2 13/40] target/hexagon: Add guest, system reg number state Date: Mon, 1 Sep 2025 20:46:48 -0700 Message-Id: <20250902034715.1947718-14-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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: tPIJ6KMrPXozgoNHlC55om58NBTq0XTq X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAwNCBTYWx0ZWRfX3+tGebEQILQ9 nb8v8Kxz0o3XJMSgTKA3KYtviheFQGj5zPNlFn1qeWP3pUDXdQdDcs/PZt1t7idJt6V2rKkNuMf J06x+kf/EqpH0jPkLYEeH06zVI+1eskbmPujInqijxwuKV4j7pHsSgsY1Evl5H3KWX9bGze7nTt laz+JEE9dhpC0vEOIfU4O4BaNesq2ZkduB43Pmnk7VqnHtwDhFvkXcnSiOMmAMQ+67SBCnnZSHd ECK+BqmIqHiww82ES9lWXUj3IxFrEP+EVFeO68cbLKjm8mVw9ANpFgG/7X0P2Q/2yBhQTeb1bFq cvyrQGhtlVEOl7Q7PoB5jyPb1PvWVLBaumKe8WGavgW/sf+xx/XXBVuSgghdGj3SLmuQmCeKMCN HGyPRhek X-Proofpoint-ORIG-GUID: tPIJ6KMrPXozgoNHlC55om58NBTq0XTq X-Authority-Analysis: v=2.4 cv=ea09f6EH c=1 sm=1 tr=0 ts=68b668db cx=c_pps a=oF/VQ+ItUULfLr/lQ2/icg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=XLwm3O5UTDZd0TI6FywA:9 a=QEXdDO2ut3YA:10 a=3WC7DwWrALyhR5TkjVHa:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 suspectscore=0 clxscore=1015 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300004 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756785866971124100 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 7 +++++++ target/hexagon/cpu.c | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 46e0dc9d0b..42b877a04c 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -97,6 +97,13 @@ typedef struct CPUArchState { target_ulong stack_start; =20 uint8_t slot_cancelled; + +#ifndef CONFIG_USER_ONLY + /* Some system registers are per thread and some are global. */ + target_ulong t_sreg[NUM_SREGS]; + + target_ulong greg[NUM_GREGS]; +#endif target_ulong new_value_usr; =20 MemLog mem_log_stores[STORES_MAX]; diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index c9dfdd7864..fa52ad7453 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -298,6 +298,10 @@ static void hexagon_cpu_reset_hold(Object *obj, ResetT= ype type) set_float_detect_tininess(float_tininess_before_rounding, &env->fp_sta= tus); /* Default NaN value: sign bit set, all frac bits set */ set_float_default_nan_pattern(0b11111111, &env->fp_status); +#ifndef CONFIG_USER_ONLY + memset(env->t_sreg, 0, sizeof(target_ulong) * NUM_SREGS); + memset(env->greg, 0, sizeof(target_ulong) * NUM_GREGS); +#endif env->cause_code =3D HEX_EVENT_NONE; } =20 --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756785002; cv=none; d=zohomail.com; s=zohoarc; b=A3gs0xtg/ia4Va+B8+Yk+hoOHG6OpSeKzuTA2OzPiguwjBFQVYt3hO0f/cM9/VW2tpv3/JMFIK4yoBjFkXpuO0sA+KSmlodzE6SBffiW7KMw52HNpa07oKeBp1rvhSY/OKv9Sie54+JDFaz9nY3/gP+U6KShGZp81MCSfJVeTqA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785002; 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=mAJtXMwUtsS5y291JTNbgRaDyq5wKQuBRnzexP66Fwk=; b=MjhZyqq7qlVopCGdYrCHs5qCJpFdV3hw6nXyivuOrs7j4f9hsTur1PgwqBGzcS3QPghvhh4qTF9U73Hrg3IErEFTtdtgm2JZdeu26ovvjWzRqeV3DbKlGLPU9hWnNivj27UmUX3ywrkeRCi0znRz1+Fp1wRLZfBDBSVGzvgPnPI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756785002353726.4168979168617; Mon, 1 Sep 2025 20:50:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utHzn-0006nf-W8; Mon, 01 Sep 2025 23:47:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utHzj-0006ie-DW for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47: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 1utHzh-0004Sh-RX for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47:43 -0400 Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822Rk4x020472 for ; Tue, 2 Sep 2025 03:47:40 GMT Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48ur8rxf1u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:47:40 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-248f7745075so72304985ad.3 for ; Mon, 01 Sep 2025 20:47: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 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.47.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:47: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= mAJtXMwUtsS5y291JTNbgRaDyq5wKQuBRnzexP66Fwk=; b=QmzW3yx2HJrOg3Wg VRfDbUy6UtnZrxBXTsxvIDmBVbyH+k5I32YbRIkIvE9+BOeJgQi0zzUQWtDYxDeF rvFWmlZUCYN2aa0pRPCuQuPkKd88NY2Vf5Coio4dU3bZcoCb1rRnOXq4JJr7N2U0 Bjt7/sugIfnJ8DI3WdW9ejdzeC4rNUBoBd9GEZ8TzLOsJ7tvd76INv0wpVJviKM9 1993v/KnG/o6yzPQ8ja6W84qc5CEXDisEXFaiL/Otp73tOISYiPw/BASaOVOdoE9 RqYDCJhDxPHVjOD6GZW7UKfqk+m0rYNe0GHMCagtLaT4VLpfwcMFv1es3A7QiQDJ CZGquA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784859; x=1757389659; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=mAJtXMwUtsS5y291JTNbgRaDyq5wKQuBRnzexP66Fwk=; b=piHbaTplCEYLYhrsEEdpLnM1ZnTfbrAO4pMUvVXd7um2D+iWCaqA1NYwISetrvySGc 9GW7BmNtWLr+ssoIS7FKisZ7iaI48GpMSrRFaJMpQ9WkfWCRW294nOhjFxbWOFFyetcC Rhr0tnnXcWmWK7bjWKcRXkjgs7LtHPAep4SQlSFnJzhM5vcu7jXIdg7sP7v+8B2edTGF Sl+S4tLHkBIzN28XEo+/WPgkxfpoVzRZDRBl6IkS0qY4FODtYDg4rHs0FfOgyvrdqVvX NgqAaQSqwcnPMY3S5h+CpKpKhsLtAQtFAW1VmaCDdYzNyBNWL0FDOvC62eFc2CrvkzHW 5Lhg== X-Gm-Message-State: AOJu0YzowerMZKEq/VqaPg9deBfQWBuug/LnhlX/cnVrtCHuoiVIj3Rs /cIVkJpq+7hMw2n3dEy+ZMEneZSl45JSfBKy8wKeJe4hUHSFgXHPreDz/n323aqIPnfcUhX6CJm Gzb/biQKeUqi0qXIM8WW3oMdA2Jx4q+M6fMOnJIJbsLJTPW9p5IK15mZBRU5u9NLJNil6 X-Gm-Gg: ASbGncvBefBbgBapToLLtvJEJlGwLM9P8anlMZA1k6jH2npG7L8IU/vTnXibwZyMef4 9hOUczWa3eBlcl7K14aL3AVMoYMuF0VBelEGf1z8z0i8uEHo7HLjaZ81oIwT432ZKK3pL7QZ3+g u7WI2H+EdyKV3RaeXVaAZX+W747EoisumhJmFeuLa3fpurIUSKaGDTD3iNej4yb2+hZiw9gtFfQ luaAFXHy6l+UhY6xKJfY3h9Ng24KI5l2QjwLzWlL49cO5EeNV08xmqwDNJadAa+U+MZh/f3hbPA JA2fchESRnEGODXFbRYBFXrKq6VP3pWnF5flQckr2ap292lVrlCPCWP1KuhfutKqGBCD45ovTPd V8jkdbC2T4SBw X-Received: by 2002:a17:902:f78f:b0:24b:153f:7722 with SMTP id d9443c01a7336-24b153f792amr11968165ad.43.1756784859419; Mon, 01 Sep 2025 20:47:39 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG+fd+2AlHSe11wti96KJIbM8oCI6sg1lalh0/OtMo8K1sRNVbZwDHA2rpuSHq3RBLidAFptQ== X-Received: by 2002:a17:902:f78f:b0:24b:153f:7722 with SMTP id d9443c01a7336-24b153f792amr11967805ad.43.1756784858925; Mon, 01 Sep 2025 20:47:38 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain Subject: [PATCH v2 14/40] target/hexagon: Add TCG values for sreg, greg Date: Mon, 1 Sep 2025 20:46:49 -0700 Message-Id: <20250902034715.1947718-15-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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: AW1haW4tMjUwODMwMDAxOSBTYWx0ZWRfX0RpdCy63DJ7y c3ntqzwy/7dVPlqVecTwQGDQyLzjTtszCeSAEiPz2ULxHEn1enW6GzK7dJDur5BtKNebAoAunKI cRdTSMZEo9kf78zjVsJsqTAnPnQiDhzcAHR2qyZwD+Sih28ibOzTeETLW0vafGgCLX9szWq+EXJ bOR0rWkJKHYj4cTLfuPRW9B/kGRKZUfrNVpvhKIeCATBqVlV5HXAWF1VjZf8Zjz7JSzfFykmjXI FOi2LCs/ZjwIkVLiv3+gc6RvxKGdkCcglTnvMQEGs2SnlEKZUFu4Kwm8n+QZmKbyDD8Mu5kZ4DQ eYqrOFsLNM/DAJmgr+AkWKKR4yMw5Me3z6yuyCoI4+dRywWpeuxbRRe/vHO+0YLML/lJ5nr1aAE Qe9FELIE X-Proofpoint-GUID: AW6xImXAGNSD6CW1DrbI95mgepbqcYCQ X-Proofpoint-ORIG-GUID: AW6xImXAGNSD6CW1DrbI95mgepbqcYCQ X-Authority-Analysis: v=2.4 cv=PNkP+eqC c=1 sm=1 tr=0 ts=68b668dc cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=cx3kwmWHRlzPn0WqSTwA:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=0 priorityscore=1501 impostorscore=0 clxscore=1015 suspectscore=0 adultscore=0 phishscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300019 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756785004829124100 From: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/translate.h | 5 +++++ target/hexagon/translate.c | 2 ++ 2 files changed, 7 insertions(+) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index 2bd125297a..4c1868369a 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -280,6 +280,11 @@ extern TCGv_i64 hex_llsc_val_i64; extern TCGv hex_vstore_addr[VSTORES_MAX]; extern TCGv hex_vstore_size[VSTORES_MAX]; extern TCGv hex_vstore_pending[VSTORES_MAX]; +#ifndef CONFIG_USER_ONLY +extern TCGv hex_greg[NUM_GREGS]; +extern TCGv hex_t_sreg[NUM_SREGS]; +#endif + =20 void hex_gen_exception_end_tb(DisasContext *ctx, int excp); =20 diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index c87f07ab69..d788aa227c 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -62,6 +62,8 @@ TCGv hex_vstore_size[VSTORES_MAX]; TCGv hex_vstore_pending[VSTORES_MAX]; =20 #ifndef CONFIG_USER_ONLY +TCGv hex_greg[NUM_GREGS]; +TCGv hex_t_sreg[NUM_SREGS]; TCGv hex_cause_code; #endif =20 --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756785356; cv=none; d=zohomail.com; s=zohoarc; b=CvZpt6nWehNt49gMz8T+LYf3x4mSSMzaYm0El3+JwV8n9ktr/umZXD7jU+RajikQV/VTBa930XGEtJ1ey545Wv5ubOFVRLm8tRhW/eT7Tk5cfmMOPnawhDm5UiGX4d6kJP9ypc8TIxlNnI/t42AyQ5PfWsvtGEqHJZzBJqQ6LNI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785356; 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=zsP3KJXn+vIt1wXWneNsLolV/MTmvzd2xYq4f/SUkJQ=; b=Y6PS5rcsjDZNDhwUhpJ95tSsZB1u/y8WSOQVd0qB3g4tF8O46adEnu0rsAv8QiqNl9Yilq4waq9HPANAUTSCHmTt5UVrWPh6eLqphPHeCxdJwMg1zF1eOy7T7jCAwF9IHUF4SKlGTXWQEFComfrRjtoz4prdRcWxXFNakbqV/S8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756785356284851.4804699707212; Mon, 1 Sep 2025 20:55:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utHzo-0006oD-Ko; Mon, 01 Sep 2025 23:47:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utHzl-0006mF-2X for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47:45 -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 1utHzj-0004T9-Cc for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47:44 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822Rtah015204 for ; Tue, 2 Sep 2025 03:47:42 GMT Received: from mail-pf1-f200.google.com (mail-pf1-f200.google.com [209.85.210.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48urvyxded-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:47:42 +0000 (GMT) Received: by mail-pf1-f200.google.com with SMTP id d2e1a72fcca58-77267239591so1184212b3a.2 for ; Mon, 01 Sep 2025 20:47:41 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.47.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:47:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= zsP3KJXn+vIt1wXWneNsLolV/MTmvzd2xYq4f/SUkJQ=; b=Y+niY+fe9OvZeO/P ACO3qpVdNsTcHNOBAYp/sfWuN0UFpmaQ5PQLNpBVi6hK/yR5FfI52udzSfiNZq1y eKkVwioJCAPdXZf6DA8gTqEciGlXnsKliq+SOYd5tgMUT7Oel47wll9aaPNnkHqm UCl0JWxpxUhnJH7lOhXRiVP7PQBcOvMuQNfjLGMyHLoaPutDau3xPbeFtmd+G1Se 1nMrUF6WqWqXOgaQuhfLlUVF/7TipyMdy0AjUjCTGyjwQqV9acTzC99wzzQOUKsz RFgr8GZ9BUdycZ00hqzljCbtO1iSGAAHkuAr80IbtWRhyjDxSTHLgeghLZgmATZ7 oP9dMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784861; x=1757389661; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=zsP3KJXn+vIt1wXWneNsLolV/MTmvzd2xYq4f/SUkJQ=; b=OAP9SZuy6+rx46d8PPz/mSV3SFrvcmuisVC7Gr+m8CTwRshhG082KxzcLG5IOpdRRP pHvZl1lIvGQcVWuDJfw/3zaeNDR+hBo+hAx8hld+A2s7MnOlGm3gJPjkCwkjeuFAV81+ dl2vI072DFGrFPAYeWS+e+2EKDZc9jUKKcc3cKB+khva9X+dQ+2Wkykps17o5XQ2LTzy pI6zCGPUgitaj03XOryykuMGM41WEjlmr6L5aLhxWcZ4dwHk50UovTjWk+o0ASH79D7Z rcH3Ev5CwNcjhUi+5N0mg/xv8K7kOvDAfC22lxDbN0wN16eQ8mkfDaef1tlTmYZQraqj EXlw== X-Gm-Message-State: AOJu0YydTjzulRFx40avzZN16bVgB11JHlECc6pbVgxAZDKlLc4xpbD2 77iLax8E5D5TE40/HBnR12UryOfnMkS4EfqQr/E8Um+TIhOgl+CCEvREMPoLQSyCQJgSES/26Rl BB0/kxC+d3x5PiwWiifSaIufK/Fb4s3vMuBlLT4R02vueCTfvMlHvskkelTlUUZ0hdLHv X-Gm-Gg: ASbGncsJae977TnfV///7rx3dW1Rx5hFdQcyF5zz4S2B1MlNLWIOK5Gca4bX/316SMf QP0XLlJYSXPCBIlTlyce4IWwakct1kB9rqE3E8BQKOd0kp/0YkrsQrftvmerULLlZ3UkYaRVwUm ibXRJRj7RTtY+89LdPxc2I5sKmJeidgLzZW2K7Ceg+U2nm9Gy4bp9Xe/swDI1flY/LG/GoZRgqH KQIIvKwUOn16K7Kt3VaBcsnzGDSeCEbVm2fX/ZCr2TQTKb2iaOJiY+5pq3XUmuSiF+q2zfaFGU6 SWEPaiLPIuEvZl275IIMmQb5kohWPnIjzfowS3cTCc2QQvu1cLNDaoFMFWqYC3yq9+8jbLtJI5B Txi9L9NKnP6sH X-Received: by 2002:a05:6a20:7f8d:b0:243:c081:b4a7 with SMTP id adf61e73a8af0-243d6f85b56mr13854719637.59.1756784860571; Mon, 01 Sep 2025 20:47:40 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFb+gsVef9zlT334jFaj+DG/O8z8wy8PZnAOTgmpVFevreK/ZDTC12A2GRX8uzE6OMUpbPiag== X-Received: by 2002:a05:6a20:7f8d:b0:243:c081:b4a7 with SMTP id adf61e73a8af0-243d6f85b56mr13854694637.59.1756784860121; Mon, 01 Sep 2025 20:47:40 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain Subject: [PATCH v2 15/40] target/hexagon: Add guest/sys reg writes to DisasContext Date: Mon, 1 Sep 2025 20:46:50 -0700 Message-Id: <20250902034715.1947718-16-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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: DfItcM8dLrBlpYhva5NdQDoJIpNMjvTc X-Proofpoint-ORIG-GUID: DfItcM8dLrBlpYhva5NdQDoJIpNMjvTc X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAyNyBTYWx0ZWRfXw5RblBf+1dZ5 7A7m2BF4mqIecji8+UmURN2rV0MTNiGekRndjvKIz0cZwI2rwX6kZjOlJ0G4jFqPJZKPHkq5YWx Ggb0xvaL4I2SFwHYd7tvItau7nQUSp92VWuBcWjz2dVQ8kuamkO05IwDOEACE7PJvovp9kCxIzt I2k1ffcWgaHgqkS1tFBt1t6SN6cmO+qD0Q2sizSf5Mmq8WoSXoaHF63bSSJjPIQNH4mJE7l2/ZU NV/CTV5Jw7ly8aPDkak0hGgZ6Te9KMYarVJSpZbzkEIizznuaZo03RyuGP6Gw6FK0KKf5kioRPy CSalyQRgTbX/uMpI6LSZrrqqEKpZZg59q/YDdtgGTh03w6k0ELrANSO+6bcooSmOlze0TzFAm4w DT6O6XyI X-Authority-Analysis: v=2.4 cv=NrDRc9dJ c=1 sm=1 tr=0 ts=68b668de cx=c_pps a=mDZGXZTwRPZaeRUbqKGCBw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=tdgd3nfel_K54e3JQaMA:9 a=QEXdDO2ut3YA:10 a=zc0IvFSfCIW2DFIPzwfm:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 suspectscore=0 malwarescore=0 priorityscore=1501 phishscore=0 impostorscore=0 spamscore=0 bulkscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300027 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756785357205116600 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 4c1868369a..c3806fe068 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -39,6 +39,14 @@ typedef struct DisasContext { int reg_log_idx; DECLARE_BITMAP(regs_written, TOTAL_PER_THREAD_REGS); DECLARE_BITMAP(predicated_regs, TOTAL_PER_THREAD_REGS); +#ifndef CONFIG_USER_ONLY + int greg_log[GREG_WRITES_MAX]; + int greg_log_idx; + int sreg_log[SREG_WRITES_MAX]; + int sreg_log_idx; + TCGv t_sreg_new_value[NUM_SREGS]; + TCGv greg_new_value[NUM_GREGS]; +#endif int preg_log[PRED_WRITES_MAX]; int preg_log_idx; DECLARE_BITMAP(pregs_written, NUM_PREGS); @@ -79,6 +87,34 @@ typedef struct DisasContext { =20 bool is_gather_store_insn(DisasContext *ctx); =20 +#ifndef CONFIG_USER_ONLY +static inline void ctx_log_greg_write(DisasContext *ctx, int rnum) +{ + if (rnum <=3D HEX_GREG_G3) { + ctx->greg_log[ctx->greg_log_idx] =3D rnum; + ctx->greg_log_idx++; + } +} + +static inline void ctx_log_greg_write_pair(DisasContext *ctx, int rnum) +{ + ctx_log_greg_write(ctx, rnum); + ctx_log_greg_write(ctx, rnum + 1); +} + +static inline void ctx_log_sreg_write(DisasContext *ctx, int rnum) +{ + ctx->sreg_log[ctx->sreg_log_idx] =3D rnum; + ctx->sreg_log_idx++; +} + +static inline void ctx_log_sreg_write_pair(DisasContext *ctx, int rnum) +{ + ctx_log_sreg_write(ctx, rnum); + ctx_log_sreg_write(ctx, rnum + 1); +} +#endif + static inline void ctx_log_pred_write(DisasContext *ctx, int pnum) { if (!test_bit(pnum, ctx->pregs_written)) { --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756786140; cv=none; d=zohomail.com; s=zohoarc; b=XCAk2HDuuY+X6TeOe6awQ0irKRBV4jDnzYu/8HR+Yb5XURAJJB2bMji52bS3ZlP2C3mBRKXwV6cMr1rUB7/m2Ij16XLoVc9x/T/qN39HQes7VTYpqq8Ft88ndcweRR4zGPEe8xgrBKzmsULp4jPo4YJIFkvIyF6Knqh5QFL43Ek= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756786140; 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=qJYNeIiIz58odRTKcDvwHX0O6OfH1ljJw4sFlCOXBzA=; b=C8n/NusM9E3PcXIap2BzdCpby6+nbofugvXAM8+1iUoRmFbYrHWTvGyDTC4UQSKorsBUc3AdcqfUAV3vWhtYYses1oRI2L31HQ/nwfOdC3nJMCN81mzCb6neGy3zyFzp6rwv0FF1Ph6NXiOgZ3eKlrH3iZeN6VIUPulH8h9WRvc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756786139987203.136232546849; Mon, 1 Sep 2025 21:08:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI05-0006t0-CN; Mon, 01 Sep 2025 23:48:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utHzq-0006q2-Gi for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47:50 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utHzl-0004Tc-Ty for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47:50 -0400 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822S7T6030605 for ; Tue, 2 Sep 2025 03:47:45 GMT Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48ura8pbxs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:47:44 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-329d4a14286so476660a91.3 for ; Mon, 01 Sep 2025 20:47: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 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.47.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:47: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= qJYNeIiIz58odRTKcDvwHX0O6OfH1ljJw4sFlCOXBzA=; b=Ocfd2/jOoMBQJm2L Gqj4iV640XRn1/LsP4KXLrCp8+QAuzheyqQ4jwP7iSG8U/Q0aoOUXYExojGuE3Hc KTDgXYyEtqUoqJgSeKnoBohUj0r8Nx+EhXU0cDopIoJxx+HjYhxtRnkNUVdzehLB Kvev6fewnRh5LHnC3mpFFd9imxSs4m4LoD1BDXSLBhJiF/V5UijUfe4k7TbxiXnf GZAngORqxBApIMDSEDo/6mIDjG0HGMkXunXEfW7gUX9sUWPZF4qC8m9TcmYo29BA Sc/T1zD56OkEEFdsMB3NvLSgfkVG7y/DzPUy2sbOwYZ7Yd6aRF2T2TbGSXcIMo7t r+giKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784863; x=1757389663; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=qJYNeIiIz58odRTKcDvwHX0O6OfH1ljJw4sFlCOXBzA=; b=UZCSXOIqp0caLaDiR2nH6BAPDKJ7Y/V89N+ddW/42EWZjXW6HerPGBvVuimRJ6LI8G 89tOgHTW7dI6tQ7vsl5abEyo/2HgzK/rDsDCuo8SYh36qD6ph+ys7qF8QP7nNYIRDyk7 tc7HTgBuy3rfDYJcrAYeg76yFphNRTFMT2dwx3IzP1RxOrBpROD+V+MoEmCe7gL9N9FI x/jS7t3YiYe2sWcllkYlItfoOfB9LiTdWjQbeXAOiONdKyg28zxXDx9JgQW7R5xFls6r gTtbfGpe1bz8zmXAg9pO1tOF1z+fyAWiP0k7UUPfh7seYwHRRzyin/so6UKm3KY6w+Lm RKMg== X-Gm-Message-State: AOJu0YzqnpYWokPt1sGOW8eeLYq1R1xhqUhe1lPmXgqe2b1vjGMkpMMb NFGKtln7wJVxJGs9rhVKiDwdzHN9xk0oUnoGj1zIM7ugHz6B3OAEPwX0PnTAUy01ipIvz8UK3r9 5S5UOoqmsfNTQ25mxynXWcJGY3tK/sEEfpYL6Qux90rWHX79VbZ7+bCiRH8XEqIq6yB9y X-Gm-Gg: ASbGncsGyPzjsbrGjSAxHBsMTAze00aA3MY5665brQt/9l1gEh8xnIihZuk016JTHVI WY2ii5dQw1QPzLv7Avg3jsOR3ftzLYcIFSHzD6iwUWLR1FNeUA/sbzr5t0F60xG56yG+P5ZJNmH rNvCPO/HLUw1XKMH7+n7YSazVrvuPIa9ujZJMsIflmW8Php69Vekm9F7MAkNSxq45D7feSRKXUM SHkZEFRanGhah9XYj2sqX8xWSc+I4JFDd0fTRwhO/GC10RFSd11u23ZbaBcH2iH2McOMsMl8oFH w/MYvihyVAIZ5twzai1RwtB0BosI0Bm9Kzm/3JNeuxh4/3wgDoplvEhfKarTCFw2kiWY5joZca+ t122nUPlu/EBU X-Received: by 2002:a17:90b:5284:b0:323:28cb:264a with SMTP id 98e67ed59e1d1-328154513c7mr12998410a91.13.1756784862387; Mon, 01 Sep 2025 20:47:42 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFeFeaenexv8N0JG1mnpv/T7mhpAzQ2blqwtnwnzOE+IVolLNNthtSPh5okEd9uOpNUJxaDEw== X-Received: by 2002:a17:90b:5284:b0:323:28cb:264a with SMTP id 98e67ed59e1d1-328154513c7mr12998364a91.13.1756784861407; Mon, 01 Sep 2025 20:47:41 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain Subject: [PATCH v2 16/40] target/hexagon: Add imported macro, attr defs for sysemu Date: Mon, 1 Sep 2025 20:46:51 -0700 Message-Id: <20250902034715.1947718-17-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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: AMLyu3vuXJ07lMO6Y0h5b8ScGhqesEgv X-Proofpoint-GUID: AMLyu3vuXJ07lMO6Y0h5b8ScGhqesEgv X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAyMCBTYWx0ZWRfX286N+BO4XS2z aV1PVtmHiinUrRMc9SKJVZYBkry86NP1GOo7cTPr3hNk4MN0XLBmsj4w5YgerLtenQJc+fBVOdr ZHVbbP4/9YZVqa5LrDOAqQKNKU6KQCuev7KqZUHfWtAtbfVjKauX9L3hePcWXTH/+WojtoQDghu Ar6z8xfE5DS5yiKZAdkpS5p2g39rxpM7863Rf++NbshaOPfZO4qasTxSHPuIF4V5l3hYH91OCTg mUy2R/NjJjM3qmPnSEWmtbp/eRLmONjk8R/gpkWXkUNqsw0ACi5MOWu5a/S9OY1x02zKq9lTcaP P+SzXEj3LMeT6OJfFfnjQV7mCJTzeN0//Cj4rqlGTaZkEcoyy37tpzZTHOnlhgVrDy9vcN8YFWC Eqizv42P X-Authority-Analysis: v=2.4 cv=VNndn8PX c=1 sm=1 tr=0 ts=68b668e1 cx=c_pps a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=FEAouyqSGNlIFG8ZZtgA:9 a=QEXdDO2ut3YA:10 a=uKXjsCUrEbL0IQVhDsJ9:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 spamscore=0 impostorscore=0 malwarescore=0 bulkscore=0 clxscore=1015 adultscore=0 priorityscore=1501 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300020 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756786145605116600 From: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/attribs_def.h.inc | 413 +++++++++++++++++++-- target/hexagon/imported/macros.def | 558 +++++++++++++++++++++++++++++ 2 files changed, 941 insertions(+), 30 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 9e3a05f882..e86284732a 100644 --- a/target/hexagon/attribs_def.h.inc +++ b/target/hexagon/attribs_def.h.inc @@ -19,20 +19,41 @@ DEF_ATTRIB(AA_DUMMY, "Dummy Zeroth Attribute", "", "") =20 /* Misc */ +DEF_ATTRIB(FAKEINSN, "Not a real instruction", "", "") +DEF_ATTRIB(MAPPING, "Not real -- asm mapped", "", "") +DEF_ATTRIB(CONDMAPPING, "Not real -- mapped based on values", "", "") DEF_ATTRIB(EXTENSION, "Extension instruction", "", "") +DEF_ATTRIB(SHARED_EXTENSION, "Shared extension instruction", "", "") +DEF_ATTRIB(CABAC, + "Cabac Instruction. Used in conjuction with QDSP6_CABAC_PRESENT= ", "", + "") +DEF_ATTRIB(EXPERIMENTAL, "This may not work correctly not supported by RTL= .", + "", "") =20 DEF_ATTRIB(PRIV, "Not available in user or guest mode", "", "") DEF_ATTRIB(GUEST, "Not available in user mode", "", "") =20 DEF_ATTRIB(FPOP, "Floating Point Operation", "", "") +DEF_ATTRIB(FPDOUBLE, "Double-precision Floating Point Operation", "", "") +DEF_ATTRIB(FPSINGLE, "Single-precision Floating Point Operation", "", "") +DEF_ATTRIB(SFMAKE, "Single Float Make", "", "") +DEF_ATTRIB(DFMAKE, "Single Float Make", "", "") + +DEF_ATTRIB(NO_TIMING_LOG, "Does not get logged to the timing model", "", "= ") =20 DEF_ATTRIB(EXTENDABLE, "Immediate may be extended", "", "") +DEF_ATTRIB(EXT_UPPER_IMMED, "Extend upper case immediate", "", "") +DEF_ATTRIB(EXT_LOWER_IMMED, "Extend lower case immediate", "", "") +DEF_ATTRIB(MUST_EXTEND, "Immediate must be extended", "", "") +DEF_ATTRIB(NA_NT, "Non-Allocating Non-Temporal instruction", "", "") +DEF_ATTRIB(INVPRED, "The predicate is inverted for true/false sense", "", = "") =20 DEF_ATTRIB(ARCHV2, "V2 architecture", "", "") DEF_ATTRIB(ARCHV3, "V3 architecture", "", "") DEF_ATTRIB(ARCHV4, "V4 architecture", "", "") DEF_ATTRIB(ARCHV5, "V5 architecture", "", "") =20 +DEF_ATTRIB(PACKED, "Packable instruction", "", "") DEF_ATTRIB(SUBINSN, "sub-instruction", "", "") =20 /* Load and Store attributes */ @@ -46,21 +67,47 @@ DEF_ATTRIB(MEMSIZE_4B, "Memory width is 4 bytes", "", "= ") DEF_ATTRIB(MEMSIZE_8B, "Memory width is 8 bytes", "", "") DEF_ATTRIB(SCALAR_LOAD, "Load is scalar", "", "") DEF_ATTRIB(SCALAR_STORE, "Store is scalar", "", "") -DEF_ATTRIB(REGWRSIZE_1B, "Memory width is 1 byte", "", "") -DEF_ATTRIB(REGWRSIZE_2B, "Memory width is 2 bytes", "", "") -DEF_ATTRIB(REGWRSIZE_4B, "Memory width is 4 bytes", "", "") -DEF_ATTRIB(REGWRSIZE_8B, "Memory width is 8 bytes", "", "") +DEF_ATTRIB(REGWRSIZE_1B, "ETM Memory width is 1 byte", "", "") +DEF_ATTRIB(REGWRSIZE_2B, "ETM Memory width is 2 bytes", "", "") +DEF_ATTRIB(REGWRSIZE_4B, "ETM Memory width is 4 bytes", "", "") +DEF_ATTRIB(REGWRSIZE_8B, "ETM 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 DEF_ATTRIB(RLS_INNER, "Store release inner visibility", "", "") +DEF_ATTRIB(RLS_OUTER, "Store release outer visibility", "", "") DEF_ATTRIB(RLS_ALL_THREAD, "Store release among all threads", "", "") DEF_ATTRIB(RLS_SAME_THREAD, "Store release with the same thread", "", "") =20 +/* Load and Store Addressing Mode Attributes */ +DEF_ATTRIB(EA_REG_ONLY, "EA =3D input register only", "", "") +DEF_ATTRIB(EA_IMM_ONLY, "EA =3D immediate only", "", "") +DEF_ATTRIB(EA_REG_PLUS_IMM, "EA =3D register plus immediate", "", "") +DEF_ATTRIB(EA_REG_PLUS_REGSCALED, "EA =3D register plus scaled register", = "", "") +DEF_ATTRIB(EA_IMM_PLUS_REGSCALED, "EA =3D immediate plus scaled register",= "", "") +DEF_ATTRIB(EA_BREV_REG, "EA =3D bit-reversed input register", "", "") +DEF_ATTRIB(EA_GP_IMM, "EA =3D GP plus immediate (unless extended)", "", "") +DEF_ATTRIB(EA_PAGECROSS, "EA calculation can have a Page Cross Stall", "",= "") + +DEF_ATTRIB(PM_ANY, "Post Modify", "", "") +DEF_ATTRIB(PM_I, "Post Modify by Immediate", "", "") +DEF_ATTRIB(PM_M, "Post Modify by M register", "", "") +DEF_ATTRIB(PM_CIRI, "Post Modify with Circular Addressing by immediate", "= ", "") +DEF_ATTRIB(PM_CIRR, "Post Modify with Circular Addressing by I field", "",= "") + +DEF_ATTRIB(VMEM, "VMEM-type", "", "") +DEF_ATTRIB(VBUF, "Touches the VBUF", "", "") +DEF_ATTRIB(VDBG, "Vector debugging instruction", "", "") + /* V6 Vector attributes */ DEF_ATTRIB(CVI, "Executes on the HVX extension", "", "") +DEF_ATTRIB(NT_VMEM, "Non-temporal memory access", "", "") +DEF_ATTRIB(VMEMU, "Unaligned memory access", "", "") =20 DEF_ATTRIB(CVI_NEW, "New value memory instruction executes on HVX", "", "") DEF_ATTRIB(CVI_VM, "Memory instruction executes on HVX", "", "") @@ -69,109 +116,415 @@ DEF_ATTRIB(CVI_VP_VS, "Double vector permute/shft in= sn executes on HVX", "", "") DEF_ATTRIB(CVI_VX, "Multiply instruction executes on HVX", "", "") DEF_ATTRIB(CVI_VX_DV, "Double vector multiply insn executes on HVX", "", "= ") DEF_ATTRIB(CVI_VS, "Shift instruction executes on HVX", "", "") -DEF_ATTRIB(CVI_VS_3SRC, "This shift needs to borrow a source register", ""= , "") +DEF_ATTRIB( + CVI_VS_3SRC, + "This shift instruction needs to borrow a source register from the VP = slot", + "", "") DEF_ATTRIB(CVI_VS_VX, "Permute/shift and multiply insn executes on HVX", "= ", "") DEF_ATTRIB(CVI_VA, "ALU instruction executes on HVX", "", "") +DEF_ATTRIB(CVI_VA_2SRC, + "This alu instruction executes on multimedia vector engine and " + "requires two vectro sources", + "", "") DEF_ATTRIB(CVI_VA_DV, "Double vector alu instruction executes on HVX", "",= "") DEF_ATTRIB(CVI_4SLOT, "Consumes all the vector execution resources", "", "= ") DEF_ATTRIB(CVI_TMP, "Transient Memory Load not written to register", "", "= ") DEF_ATTRIB(CVI_REMAP, "Register Renaming not written to register file", ""= , "") +DEF_ATTRIB(CVI_TMP_SRC, "Transient reassign", "", "") +DEF_ATTRIB(CVI_EXTRACT, "HVX Extract Instruction that goes through L2", ""= , "") +DEF_ATTRIB(CVI_EARLY, "HVX instructions that require early sources", "", "= ") +DEF_ATTRIB(CVI_LATE, "HVX insn that always require late sources", "", "") +DEF_ATTRIB(CVI_VV_LATE, "HVX insn that always require late Vv source", "",= "") +DEF_ATTRIB(CVI_REQUIRES_TMPLOAD, ".tmp load must be included in packet", "= ", "") +DEF_ATTRIB(CVI_PUMP_2X, "Goes through the pipeline twice", "", "") +DEF_ATTRIB(CVI_PUMP_4X, "Goes through the pipeline four times", "", "") DEF_ATTRIB(CVI_GATHER, "CVI Gather operation", "", "") DEF_ATTRIB(CVI_SCATTER, "CVI Scatter operation", "", "") DEF_ATTRIB(CVI_SCATTER_RELEASE, "CVI Store Release for scatter", "", "") +DEF_ATTRIB(CVI_GATHER_RELEASE, "CVI Store Release for gather", "", "") DEF_ATTRIB(CVI_TMP_DST, "CVI instruction that doesn't write a register", "= ", "") +DEF_ATTRIB(CVI_SCATTER_WORD_ACC, "CVI Scatter Word Accum (second pass)", "= ", "") +DEF_ATTRIB(CVI_SCATTER_ACC, "CVI Scatter Accumulate", "", "") +DEF_ATTRIB(CVI_VX_VSRC0_IS_DST, + "For the assembler to handle the special case of non-linear " + "instructions with Vxx specified both as src and dst in syntax = ", + "", "") + +DEF_ATTRIB(CVI_VX_ACC_FWD, "VX Accumulator Forwarding", "", "") + +DEF_ATTRIB(CVI_VX_NO_TMP_LD, + "VX Accumulator renaming not allowed from tmp load instruction"= , "", + "") + +DEF_ATTRIB(RESTRICT_CVI_NOVP, + "Instructions with this attribute are assigned to the original " + "shift unit and can not be assigned to the shift/permute unit", + "", "") + +DEF_ATTRIB(CVI_GATHER_ADDR_2B, "CVI Scatter/Gather address is halfword", "= ", "") +DEF_ATTRIB(CVI_GATHER_ADDR_4B, "CVI Scatter/Gather address is word", "", "= ") + +DEF_ATTRIB(VFETCH, "memory fetch op to L2 for a single vector", "", "") + DEF_ATTRIB(CVI_SLOT23, "Can execute in slot 2 or slot 3 (HVX)", "", "") =20 -DEF_ATTRIB(VTCM_ALLBANK_ACCESS, "Allocates in all VTCM schedulers.", "", "= ") +DEF_ATTRIB(HVX_FLT, "This a floating point HVX instruction.", "", "") + +DEF_ATTRIB( + VTCM_ALLBANK_ACCESS, + "This instruction allocates in all VTCM schedulers due to a region acc= ess.", + "", "") +DEF_ATTRIB(XUMINOR, "XU minor SMTable instruction", "", "") + +DEF_ATTRIB(SYNC_MARKER, "This instruction needs a sync marker.", "", "") + =20 /* Change-of-flow attributes */ DEF_ATTRIB(JUMP, "Jump-type instruction", "", "") +DEF_ATTRIB(DIRECT, "Uses an PC-relative immediate field", "", "") DEF_ATTRIB(INDIRECT, "Absolute register jump", "", "") +DEF_ATTRIB(CJUMP, "Conditional jump", "", "") DEF_ATTRIB(CALL, "Function call instruction", "", "") +DEF_ATTRIB(RET, "Function return instruction", "", "") +DEF_ATTRIB(PERM, "Permute instruction", "", "") DEF_ATTRIB(COF, "Change-of-flow instruction", "", "") DEF_ATTRIB(HINTED_COF, "This instruction is a hinted change-of-flow", "", = "") DEF_ATTRIB(CONDEXEC, "May be cancelled by a predicate", "", "") +DEF_ATTRIB(DOTOLD, "Uses a predicate generated in a previous packet", "", = "") +DEF_ATTRIB(DOTNEW, "Uses a predicate generated in the same packet", "", "") DEF_ATTRIB(DOTNEWVALUE, "Uses a register value generated in this pkt", "",= "") DEF_ATTRIB(NEWCMPJUMP, "Compound compare and jump", "", "") DEF_ATTRIB(NVSTORE, "New-value store", "", "") DEF_ATTRIB(MEMOP, "memop", "", "") =20 -DEF_ATTRIB(ROPS_2, "Compound instruction worth 2 RISC-ops", "", "") -DEF_ATTRIB(ROPS_3, "Compound instruction worth 3 RISC-ops", "", "") +DEF_ATTRIB(ROPS_2, "Compound instruction worth 2 wimpy RISC-ops", "", "") +DEF_ATTRIB(ROPS_3, "Compound instruction worth 3 wimpy RISC-ops", "", "") =20 /* access to implicit registers */ DEF_ATTRIB(IMPLICIT_WRITES_LR, "Writes the link register", "", "UREG.LR") +DEF_ATTRIB(IMPLICIT_READS_LR, "Reads the link register", "UREG.LR", "") +DEF_ATTRIB(IMPLICIT_READS_LC0, "Reads loop count for loop 0", "UREG.LC0", = "") +DEF_ATTRIB(IMPLICIT_READS_LC1, "Reads loop count for loop 1", "UREG.LC1", = "") +DEF_ATTRIB(IMPLICIT_READS_SA0, "Reads start address for loop 0", "UREG.SA0= ", "") +DEF_ATTRIB(IMPLICIT_READS_SA1, "Reads start address for loop 1", "UREG.SA1= ", "") +DEF_ATTRIB(IMPLICIT_WRITES_PC, "Writes the program counter", "", "UREG.PC") +DEF_ATTRIB(IMPLICIT_READS_PC, "Reads the program counter", "UREG.PC", "") DEF_ATTRIB(IMPLICIT_WRITES_SP, "Writes the stack pointer", "", "UREG.SP") +DEF_ATTRIB(IMPLICIT_READS_SP, "Reads the stack pointer", "UREG.SP", "") DEF_ATTRIB(IMPLICIT_WRITES_FP, "Writes the frame pointer", "", "UREG.FP") +DEF_ATTRIB(IMPLICIT_READS_FP, "Reads the frame pointer", "UREG.FP", "") +DEF_ATTRIB(IMPLICIT_WRITES_GP, "Writes the GP register", "", "UREG.GP") +DEF_ATTRIB(IMPLICIT_READS_GP, "Reads the GP register", "UREG.GP", "") DEF_ATTRIB(IMPLICIT_WRITES_LC0, "Writes loop count for loop 0", "", "UREG.= LC0") DEF_ATTRIB(IMPLICIT_WRITES_LC1, "Writes loop count for loop 1", "", "UREG.= LC1") DEF_ATTRIB(IMPLICIT_WRITES_SA0, "Writes start addr for loop 0", "", "UREG.= SA0") DEF_ATTRIB(IMPLICIT_WRITES_SA1, "Writes start addr for loop 1", "", "UREG.= SA1") +DEF_ATTRIB(IMPLICIT_WRITES_R00, "Writes Register 0", "", "UREG.R00") DEF_ATTRIB(IMPLICIT_WRITES_P0, "Writes Predicate 0", "", "UREG.P0") DEF_ATTRIB(IMPLICIT_WRITES_P1, "Writes Predicate 1", "", "UREG.P1") DEF_ATTRIB(IMPLICIT_WRITES_P2, "Writes Predicate 1", "", "UREG.P2") DEF_ATTRIB(IMPLICIT_WRITES_P3, "May write Predicate 3", "", "UREG.P3") -DEF_ATTRIB(IMPLICIT_READS_PC, "Reads the PC register", "", "") -DEF_ATTRIB(IMPLICIT_READS_P0, "Reads the P0 register", "", "") -DEF_ATTRIB(IMPLICIT_READS_P1, "Reads the P1 register", "", "") -DEF_ATTRIB(IMPLICIT_READS_P2, "Reads the P2 register", "", "") -DEF_ATTRIB(IMPLICIT_READS_P3, "Reads the P3 register", "", "") +DEF_ATTRIB(IMPLICIT_READS_R00, "Reads Register 0", "UREG.R00", "") +DEF_ATTRIB(IMPLICIT_READS_P0, "Reads Predicate 0", "UREG.P0", "") +DEF_ATTRIB(IMPLICIT_READS_P1, "Reads Predicate 1", "UREG.P1", "") +DEF_ATTRIB(IMPLICIT_READS_P3, "Reads Predicate 3", "UREG.P3", "") +DEF_ATTRIB(IMPLICIT_READS_Q3, "Reads Vector Predicate 3", "UREG.Q3", "") +DEF_ATTRIB(IMPLICIT_READS_CS, "Reads the CS/M register", "UREG.CS", "") +DEF_ATTRIB(IMPLICIT_READS_FRAMEKEY, "Reads FRAMEKEY", "UREG.FRAMEKEY", "") +DEF_ATTRIB(IMPLICIT_READS_FRAMELIMIT, "Reads FRAMELIMIT", "UREG.FRAMELIMIT= ", "") +DEF_ATTRIB(IMPLICIT_READS_ELR, "Reads the ELR register", "MREG.ELR", "") +DEF_ATTRIB(IMPLICIT_READS_SGP0, "Reads the SGP0 register", "MREG.SGP0", "") +DEF_ATTRIB(IMPLICIT_READS_SGP1, "Reads the SGP1 register", "MREG.SGP1", "") +DEF_ATTRIB(IMPLICIT_WRITES_SGP0, "Reads the SGP0 register", "", "MREG.SGP0= ") +DEF_ATTRIB(IMPLICIT_WRITES_SGP1, "Reads the SGP1 register", "", "MREG.SGP1= ") +DEF_ATTRIB(IMPLICIT_WRITES_STID_PRIO_ANYTHREAD, "Reads", "", "MREG.STID.PR= IO") +DEF_ATTRIB(IMPLICIT_WRITES_SRBIT, "Writes the OVF bit", "", "UREG.SR.OVF") +DEF_ATTRIB(IMPLICIT_WRITES_FPFLAGS, "May write FP flags", "", "UREG.SR.FPF= LAGS") +DEF_ATTRIB(IMPLICIT_WRITES_LPCFG, "Writes the loop config", "", "UREG.SR.L= PCFG") +DEF_ATTRIB(IMPLICIT_WRITES_CVBITS, "Writes the CV flags", "", "UREG.SR.CV") +DEF_ATTRIB(IMPLICIT_READS_FPRND, "May read FP rnd mode", "UREG.SR.FPRND", = "") +DEF_ATTRIB(IMPLICIT_READS_SSR, "May read SSR values", "MREG.SSR", "") +DEF_ATTRIB(IMPLICIT_READS_CCR, "May read CCR values", "MREG.CCR", "") +DEF_ATTRIB(IMPLICIT_WRITES_CCR, "May write CCR values", "", "MREG.CCR") +DEF_ATTRIB(IMPLICIT_WRITES_SSR, "May write SSR values", "", "MREG.SSR") +DEF_ATTRIB(IMPLICIT_READS_GELR, "May read GELR values", "GREG.GELR", "") +DEF_ATTRIB(IMPLICIT_READS_GEVB, "May read GEVB values", "MREG.GEVB", "") +DEF_ATTRIB(IMPLICIT_READS_GSR, "May read GSR values", "GREG.GSR", "") +DEF_ATTRIB(IMPLICIT_READS_GOSP, "May read GOSP values", "GREG.GOSP", "") +DEF_ATTRIB(IMPLICIT_WRITES_GELR, "May write GELR values", "", "GREG.GELR") +DEF_ATTRIB(IMPLICIT_WRITES_GSR, "May write GSR values", "", "GREG.GSR") +DEF_ATTRIB(IMPLICIT_WRITES_GOSP, "May write GOSP values", "", "GREG.GOSP") +DEF_ATTRIB(IMPLICIT_READS_IPENDAD_IPEND, "May read", "MREG.IPENDAD.IPEND",= "") +DEF_ATTRIB(IMPLICIT_WRITES_IPENDAD_IPEND, "May write", "", "MREG.IPENDAD.I= PEND") +DEF_ATTRIB(IMPLICIT_READS_IPENDAD_IAD, "May read", "MREG.IPENDAD.IAD", "") +DEF_ATTRIB(IMPLICIT_WRITES_IPENDAD_IAD, "May write", "", "MREG.IPENDAD.IAD= ") +DEF_ATTRIB(IMPLICIT_WRITES_IMASK_ANYTHREAD, "May write", "", "MREG.IMASK") +DEF_ATTRIB(IMPLICIT_READS_IMASK_ANYTHREAD, "May read", "MREG.IMASK", "") +DEF_ATTRIB(IMPLICIT_READS_SYSCFG_K0LOCK, "May read", "MREG.SYSCFG.K0LOCK",= "") +DEF_ATTRIB(IMPLICIT_WRITES_SYSCFG_K0LOCK, "May write", "", "MREG.SYSCFG.K0= LOCK") +DEF_ATTRIB(IMPLICIT_READS_SYSCFG_TLBLOCK, "May read", "MREG.SYSCFG.TLBLOCK= ", "") +DEF_ATTRIB(IMPLICIT_WRITES_SYSCFG_TLBLOCK, "May wr", "", "MREG.SYSCFG.TLBL= OCK") +DEF_ATTRIB(IMPLICIT_WRITES_SYSCFG_GCA, "May write", "", "MREG.SYSCFG.GCA") +DEF_ATTRIB(IMPLICIT_READS_SYSCFG_GCA, "May read", "MREG.SYSCFG.GCA", "") DEF_ATTRIB(IMPLICIT_WRITES_USR, "May write USR", "", "") -DEF_ATTRIB(IMPLICIT_READS_SP, "Reads the SP register", "", "") + +/* Other things the instruction does */ +DEF_ATTRIB(ACC, "Has a multiply", "", "") +DEF_ATTRIB(MPY, "Has a multiply", "", "") +DEF_ATTRIB(SATURATE, "Does signed saturation", "", "") +DEF_ATTRIB(USATURATE, "Does unsigned saturation", "", "") +DEF_ATTRIB(CIRCADDR, "Uses circular addressing mode", "", "") +DEF_ATTRIB(BREVADDR, "Uses bit reverse addressing mode", "", "") +DEF_ATTRIB(BIDIRSHIFTL, "Uses a bidirectional shift left", "", "") +DEF_ATTRIB(BIDIRSHIFTR, "Uses a bidirectional shift right", "", "") +DEF_ATTRIB(BRANCHADDER, "Contains a PC-plus-immediate operation.", "", "") +DEF_ATTRIB(CRSLOT23, "Can execute in slot 2 or slot 3 (CR)", "", "") DEF_ATTRIB(COMMUTES, "The operation is communitive", "", "") DEF_ATTRIB(DEALLOCRET, "dealloc_return", "", "") DEF_ATTRIB(DEALLOCFRAME, "deallocframe", "", "") =20 -DEF_ATTRIB(CRSLOT23, "Can execute in slot 2 or slot 3 (CR)", "", "") +/* Instruction Types */ + +DEF_ATTRIB(IT_ALU, "ALU type", "", "") +DEF_ATTRIB(IT_ALU_ADDSUB, "ALU add or subtract type", "", "") +DEF_ATTRIB(IT_ALU_MINMAX, "ALU MIN or MAX type", "", "") +DEF_ATTRIB(IT_ALU_MOVE, "ALU data movement type", "", "") +DEF_ATTRIB(IT_ALU_LOGICAL, "ALU logical operation type", "", "") +DEF_ATTRIB(IT_ALU_SHIFT, "ALU shift operation type", "", "") +DEF_ATTRIB(IT_ALU_SHIFT_AND_OP, "ALU shift and additional op type", "", "") +DEF_ATTRIB(IT_ALU_CMP, "ALU compare operation type", "", "") + +DEF_ATTRIB(IT_LOAD, "Loads from memory", "", "") +DEF_ATTRIB(IT_STORE, "Stores to memory", "", "") + +DEF_ATTRIB(IT_MPY, "Multiply type", "", "") +DEF_ATTRIB(IT_MPY_32, "32-bit Multiply type", "", "") + +DEF_ATTRIB(IT_COF, "Change-of-flow type", "", "") +DEF_ATTRIB(IT_HWLOOP, "Sets up hardware loop registers", "", "") + +DEF_ATTRIB(IT_MISC, "misc instruction type", "", "") + DEF_ATTRIB(IT_NOP, "nop instruction", "", "") DEF_ATTRIB(IT_EXTENDER, "constant extender instruction", "", "") =20 =20 +/* Exceptions the instruction can generate */ + +DEF_ATTRIB(EXCEPTION_TLB, "Can generate a TLB Miss Exception", "", "") +DEF_ATTRIB(EXCEPTION_ACCESS, "Can generate Access Violation Exception", ""= , "") +DEF_ATTRIB(EXCEPTION_SWI, "Software Interrupt (trap) exception", "", "") + + +/* Documentation Notes */ +DEF_ATTRIB(NOTE_ARCHV2, "Only available in the V2 architecture", "", "") + +DEF_ATTRIB(NOTE_PACKET_PC, "The PC is the addr of the start of the pkt", "= ", "") + +DEF_ATTRIB(NOTE_PACKET_NPC, "Next PC is the address following pkt", "", "") + +DEF_ATTRIB(NOTE_CONDITIONAL, "can be conditionally executed", "", "") + +DEF_ATTRIB(NOTE_NEWVAL_SLOT0, "New-value oprnd must execute on slot 0", ""= , "") + +DEF_ATTRIB(NOTE_RELATIVE_ADDRESS, "A PC-relative address is formed", "", "= ") + +DEF_ATTRIB(NOTE_LA_RESTRICT, "Cannot be in the last pkt of a HW loop", "",= "") + +DEF_ATTRIB(NOTE_OOBVSHIFT, "Possible shift overflow", "", "") +DEF_ATTRIB(NOTE_BIDIRSHIFT, "Bidirectional shift", "", "") + +DEF_ATTRIB(NOTE_CVFLAGS, "Sets the Carry and Overflow flags in USR.", "", = "") +DEF_ATTRIB(NOTE_SR_OVF_WHEN_SATURATING, "Might set OVF bit", "", "") +DEF_ATTRIB(NOTE_STNT, + "Non Temporal Data. The :nt appendix is a hint to the " + "microarchitecture indicating that the life of the cache line i= s " + "short. This information is used throughout the cache hierarchy= to " + "make replacement and allocation decisions.", + "", "") +DEF_ATTRIB(NOTE_PRIV, "Monitor-level feature", "", "") +DEF_ATTRIB(NOTE_GUEST, "Guest-level feature", "", "") +DEF_ATTRIB(NOTE_NOPACKET, "solo instruction", "", "") +DEF_ATTRIB(NOTE_AXOK, "May only be grouped with ALU32 or non-FP XTYPE.", "= ", "") +DEF_ATTRIB(NOTE_NOSLOT1, "Packet with this insn must have slot 1 empty", "= ", "") +DEF_ATTRIB(NOTE_SLOT1_AOK, "Packet must have slot 1 empty or ALU32", "", "= ") +DEF_ATTRIB(NOTE_NOSLOT01, "Packet must have both slot 1 and 2 empty", "", = "") +DEF_ATTRIB(NOTE_NEEDS_MEMLD, "Must be grouped with a memory load", "", "") +DEF_ATTRIB(NOTE_LATEPRED, "The predicate can not be used as a .new", "", "= ") +DEF_ATTRIB(NOTE_COMPAT_ACCURACY, "In the future accuracy may increase", ""= , "") +DEF_ATTRIB(NOTE_NVSLOT0, "Can execute only in slot 0 (ST)", "", "") +DEF_ATTRIB(NOTE_DEPRECATED, "Will be deprecated in a future version.", "",= "") +DEF_ATTRIB(NOTE_NONAPALIV1, "may not work correctly in Napali V1.", "", "") +DEF_ATTRIB(NOTE_NOLAHAINAV1, "This may not work correctly in Lahaina V1.",= "", + "") +DEF_ATTRIB(NOTE_BADTAG_UNDEF, "Undefined if a tag is non-present", "", "") +DEF_ATTRIB(NOTE_NOSLOT2_MPY, "Packet cannot have a slot 2 multiply", "", "= ") +DEF_ATTRIB(NOTE_HVX_ONLY, "Only available on a core with HVX.", "", "") + +DEF_ATTRIB(NOTE_NOCOF_RESTRICT, "Cannot be grouped with any COF", "", "") +DEF_ATTRIB(NOTE_BRANCHADDER_MAX1, "One PC-plus-offset calculation", "", "") + +DEF_ATTRIB(NOTE_CRSLOT23, "Execute on either slot2 or slot3 (CR)", "", "") +DEF_ATTRIB(NOTE_EXTENSION_AUDIO, "Hexagon audio extensions", "", "") +DEF_ATTRIB(NOTE_FETCHNT, + "Non Temporal Data Cache Prefetch. The :nt appendix is a hint t= o " + "the microarchitecture indicating that the life of the cache li= ne " + "fetched is short. This information is used throughout the cach= e " + "hierarchy to make replacement and allocation decisions.", + "", "") +DEF_ATTRIB(NOTE_VECX_V67, "This instruction is only available on V67", "",= "") + +DEF_ATTRIB(NOTE_NOVP, + "This instruction cannot be paired with a HVX permute instructi= on", + "", "") +DEF_ATTRIB(NOTE_VA_UNARY, + "If a packet contains this instruction and a HVX ALU op then th= e " + "ALU OP must be unary.", + "", "") + + +/* V6 MMVector Notes for Documentation */ +DEF_ATTRIB(NOTE_ANY_RESOURCE, "Can use any HVX resource.", "", "") +DEF_ATTRIB(NOTE_ANY2_RESOURCE, "Uses any pair of the HVX resources", "", "= ") +DEF_ATTRIB(NOTE_PERMUTE_RESOURCE, "Uses the HVX permute resource.", "", "") +DEF_ATTRIB(NOTE_SHIFT_RESOURCE, "Uses the HVX shift resource.", "", "") +DEF_ATTRIB(NOTE_MPY_RESOURCE, "Uses a HVX multiply resource.", "", "") +DEF_ATTRIB(NOTE_MPYDV_RESOURCE, "Uses both HVX multiply resources.", "", "= ") +DEF_ATTRIB(NOTE_NT_VMEM, "Non-temporal hint to the micro-architecture", ""= , "") +DEF_ATTRIB(NOTE_ALL_RESOURCE, "Uses all HVX resources.", "", "") +DEF_ATTRIB(NOTE_VMEM, "Immediates are in multiples of vector length.", "",= "") +DEF_ATTRIB(NOTE_ANY_VS_VX_RESOURCE, "Consumes two resources", "", "") + +DEF_ATTRIB(NOTE_RT8, "Input scalar register Rt is limited to R0-R7", "", "= ") + +DEF_ATTRIB(NOTE_MX, "This is in-memory matrix multiply instruction.", "", = "") +DEF_ATTRIB(NOTE_VX_ACC_FWD, + "The accumulator (Vxx) source of this instruction must be gener= ate " + "in the previous packet to avoid a stall. The accumulator canno= t " + "come from a .tmp operation.", + "", "") +DEF_ATTRIB(NOTE_TMP_NO_VX, + "The tmp load instruction destination register cannot be an " + "accumulator register.", + "", "") + +DEF_ATTRIB( + NOTE_NO_ECC, + "ECC is not supported for scatter and gather instructions. Enabling EC= C " + "with unprotected access instructions result in undetermined behavior.= ", + "", "") + +/* FP8 instructions */ +DEF_ATTRIB(HVX_FP8, "HVX FP8 extension instruction", "", "") +DEF_ATTRIB(HVX_IEEE_FP_OUT_8, "HVX IEEE FP extension instruction: 8-bit ou= tput", + "", "") + /* Restrictions to make note of */ +DEF_ATTRIB(RESTRICT_LOOP_LA, "Cannot be in the last packet of a loop", "",= "") +DEF_ATTRIB(RESTRICT_NEEDS_MEMLD, "Must be grouped with a load", "", "") DEF_ATTRIB(RESTRICT_COF_MAX1, "One change-of-flow per packet", "", "") DEF_ATTRIB(RESTRICT_NOPACKET, "Not allowed in a packet", "", "") +DEF_ATTRIB(RESTRICT_NOSRMOVE, "Do not write SR in the same packet", "", "") DEF_ATTRIB(RESTRICT_SLOT0ONLY, "Must execute on slot0", "", "") DEF_ATTRIB(RESTRICT_SLOT1ONLY, "Must execute on slot1", "", "") DEF_ATTRIB(RESTRICT_SLOT2ONLY, "Must execute on slot2", "", "") DEF_ATTRIB(RESTRICT_SLOT3ONLY, "Must execute on slot3", "", "") +DEF_ATTRIB(RESTRICT_NOSLOT2_MPY, "A packet cannot have a slot 2 mpy", "", = "") DEF_ATTRIB(RESTRICT_NOSLOT1, "No slot 1 instruction in parallel", "", "") +DEF_ATTRIB(RESTRICT_SLOT1_AOK, "Slot 1 insn must be empty or A-type", "", = "") +DEF_ATTRIB(RESTRICT_NOSLOT01, "No slot 0 or 1 instructions in parallel", "= ", "") +DEF_ATTRIB(RESTRICT_NOSLOT1_STORE, "Packet must not have slot 1 store", ""= , "") +DEF_ATTRIB(RESTRICT_NOSLOT0_LOAD, "Packet must not have a slot 1 load", ""= , "") +DEF_ATTRIB(RESTRICT_NOCOF, "Cannot be grouped with any COF", "", "") +DEF_ATTRIB(RESTRICT_BRANCHADDER_MAX1, "One PC-plus-offset calculation", ""= , "") DEF_ATTRIB(RESTRICT_PREFERSLOT0, "Try to encode into slot 0", "", "") +DEF_ATTRIB(RESTRICT_SINGLE_MEM_FIRST, "Single memory op must be last", "",= "") DEF_ATTRIB(RESTRICT_PACKET_AXOK, "May exist with A-type or X-type", "", "") +DEF_ATTRIB(RESTRICT_PACKET_SOMEREGS_OK, "Relaxed grouping rules", "", "") +DEF_ATTRIB(RESTRICT_LATEPRED, "Predicate can not be used as a .new.", "", = "") + +DEF_ATTRIB(PAIR_1OF2, "For assembler", "", "") +DEF_ATTRIB(PAIR_2OF2, "For assembler", "", "") +DEF_ATTRIB(NOTE_MX_PAIR, + "Weights and Activations need to be paired in a packet.", "", "= ") +DEF_ATTRIB(NOTE_RESTRICT_CVI_NOVP, + "This instruction cannot use the permute/shift resource", "", "= ") + +/* Performance based preferences */ +DEF_ATTRIB(PREFER_SLOT3, "Complex XU prefering slot3", "", "") + +DEF_ATTRIB(RELAX_COF_1ST, "COF can be fisrt in assembly order", "", "") +DEF_ATTRIB(RELAX_COF_2ND, "COF can be second in assembly order", "", "") =20 DEF_ATTRIB(ICOP, "Instruction cache op", "", "") =20 +DEF_ATTRIB(INTRINSIC_RETURNS_UNSIGNED, "Intrinsic returns an unsigned", ""= , "") + +DEF_ATTRIB(PRED_BIT_1, "The branch uses bit 1 as the prediction bit", "", = "") +DEF_ATTRIB(PRED_BIT_4, "The branch uses bit 4 as the prediction bit", "", = "") +DEF_ATTRIB(PRED_BIT_8, "The branch uses bit 8 as the prediction bit", "", = "") +DEF_ATTRIB(PRED_BIT_12, "The branch uses bit 12 as the prediction bit", ""= , "") +DEF_ATTRIB(PRED_BIT_13, "The branch uses bit 13 as the prediction bit", ""= , "") +DEF_ATTRIB(PRED_BIT_7, "The branch uses bit 7 as the prediction bit", "", = "") +DEF_ATTRIB(HWLOOP0_SETUP, "Sets up HW loop0", "", "") +DEF_ATTRIB(HWLOOP1_SETUP, "Sets up HW loop1", "", "") DEF_ATTRIB(HWLOOP0_END, "Ends HW loop0", "", "") DEF_ATTRIB(HWLOOP1_END, "Ends HW loop1", "", "") DEF_ATTRIB(RET_TYPE, "return type", "", "") +DEF_ATTRIB(HINTJR, "hintjr type", "", "") DEF_ATTRIB(DCZEROA, "dczeroa type", "", "") +DEF_ATTRIB(ICTAGOP, "ictag op type", "", "") DEF_ATTRIB(ICFLUSHOP, "icflush op type", "", "") DEF_ATTRIB(DCFLUSHOP, "dcflush op type", "", "") +DEF_ATTRIB(DCTAGOP, "dctag op type", "", "") DEF_ATTRIB(L2FLUSHOP, "l2flush op type", "", "") +DEF_ATTRIB(L2TAGOP, "l2tag op type", "", "") DEF_ATTRIB(DCFETCH, "dcfetch type", "", "") +DEF_ATTRIB(BIMODAL_BRANCH, "Updates the bimodal branch predictor", "", "") =20 +DEF_ATTRIB(VECINSN, "Long Vector Instruction", "", "") +DEF_ATTRIB(MEMSIZE_32B, "Memory width is 32 bytes", "", "") +DEF_ATTRIB(FOUR_PHASE, "Four Phase Instruction", "", "") DEF_ATTRIB(L2FETCH, "Instruction is l2fetch type", "", "") =20 +DEF_ATTRIB(PREDUSE_BSB, "Instructions need back-skip-back scheduling", "",= "") DEF_ATTRIB(ICINVA, "icinva", "", "") DEF_ATTRIB(DCCLEANINVA, "dccleaninva", "", "") =20 +DEF_ATTRIB(EXTENSION_AUDIO, "audio extension", "", "") + +DEF_ATTRIB(MEMCPY, "memcpy or dma-type instruction", "", "") DEF_ATTRIB(NO_INTRINSIC, "Don't generate an intrisic", "", "") =20 -/* Documentation Notes */ -DEF_ATTRIB(NOTE_CONDITIONAL, "can be conditionally executed", "", "") -DEF_ATTRIB(NOTE_NEWVAL_SLOT0, "New-value oprnd must execute on slot 0", ""= , "") -DEF_ATTRIB(NOTE_PRIV, "Monitor-level feature", "", "") -DEF_ATTRIB(NOTE_NOPACKET, "solo instruction", "", "") -DEF_ATTRIB(NOTE_AXOK, "May only be grouped with ALU32 or non-FP XTYPE.", "= ", "") -DEF_ATTRIB(NOTE_LATEPRED, "The predicate can not be used 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(NO_XML, "Don't generate a XML docs for this instruction", "", "= ") =20 -/* V6 MMVector Notes for Documentation */ -DEF_ATTRIB(NOTE_SHIFT_RESOURCE, "Uses the HVX shift resource.", "", "") -/* Restrictions to make note of */ -DEF_ATTRIB(RESTRICT_NOSLOT1_STORE, "Packet must not have slot 1 store", ""= , "") -DEF_ATTRIB(RESTRICT_LATEPRED, "Predicate can not be used as a .new.", "", = "") +DEF_ATTRIB(DMA, "User-DMA instruction", "", "") +DEF_ATTRIB(VERIF_DMASTEP, + "Hiphop needs to step dma prior to executing this packet", "", = "") +DEF_ATTRIB(VERIF_DMATICK, + "DMA gets a tick in verif mode for this instruction after a com= mit", + "", "") + +DEF_ATTRIB(HVX_IEEE_FP, "HVX IEEE FP extension instruction", "", "") +DEF_ATTRIB(NOTE_HVX_IEEE_FP, + "Only supported on the HVX cores with the IEEE FP extension", "= ", "") + +DEF_ATTRIB(HVX_IEEE_FP_DV_ONE, + "HVX IEEE FP extension instruction - dual pipes: P2 and P3 - ou= tput " + "only on P2", + "", "") +DEF_ATTRIB(HVX_IEEE_FP_ACC, "HVX IEEE FP accumulate instruction", "", "") +DEF_ATTRIB(HVX_IEEE_BF, + "HVX IEEE BF extension instruction: 16-bit bfloat input", "", "= ") +DEF_ATTRIB(HVX_IEEE_FP_OUT_BF, + "HVX IEEE FP extension instruction: 16-bit bfloat output", "", = "") +DEF_ATTRIB(HVX_IEEE_FP_OUT_16, + "HVX IEEE FP extension instruction: 16-bit output", "", "") +DEF_ATTRIB(HVX_IEEE_FP_OUT_32, + "HVX IEEE FP extension instruction: 32-bit output", "", "") +DEF_ATTRIB(HVX_IEEE_FP_BINARY_LATE, + "HVX IEEE FP extension instruction: Both inputs can arrive late= ", "", + "") =20 /* Keep this as the last attribute: */ DEF_ATTRIB(ZZ_LASTATTRIB, "Last attribute in the file", "", "") diff --git a/target/hexagon/imported/macros.def b/target/hexagon/imported/m= acros.def old mode 100755 new mode 100644 index 4bbcfdd5e1..f24f89f361 --- a/target/hexagon/imported/macros.def +++ b/target/hexagon/imported/macros.def @@ -353,6 +353,12 @@ DEF_MACRO( () ) =20 +DEF_MACRO( + fREAD_SSR, /* read SSR register */ + (READ_RREG(REG_SSR)), /* behavior */ + () +) + DEF_MACRO( fWRITE_LR, /* write lr */ WRITE_RREG(REG_LR,A), /* behavior */ @@ -371,12 +377,36 @@ DEF_MACRO( (A_IMPLICIT_WRITES_SP) ) =20 +DEF_MACRO( + fWRITE_GOSP, /* write gosp */ + WRITE_RREG(REG_GOSP,A), /* behavior */ + (A_IMPLICIT_WRITES_GOSP) +) + DEF_MACRO( fREAD_SP, /* read stack pointer */ (READ_RREG(REG_SP)), /* behavior */ () ) =20 +DEF_MACRO( + fREAD_GOSP, /* read guest other stack pointer */ + (READ_RREG(REG_GOSP)), /* behavior */ + () +) + +DEF_MACRO( + fREAD_GELR, /* read guest other stack pointer */ + (READ_RREG(REG_GELR)), /* behavior */ + () +) + +DEF_MACRO( + fREAD_GEVB, /* read guest other stack pointer */ + (READ_RREG(REG_GEVB)), /* behavior */ + () +) + DEF_MACRO( fREAD_CSREG, /* read CS register */ (READ_RREG(REG_CSA+N)), /* behavior */ @@ -570,6 +600,11 @@ DEF_MACRO( WRITE_PREG(3,VAL), /* behavior */ (A_IMPLICIT_WRITES_P3) ) +DEF_MACRO( + fWRITE_P3_LATE, /* write Predicate 0 */ + {WRITE_PREG(3,VAL); fHIDE(MARK_LATE_PRED_WRITE(3))} , /* behavio= r */ + (A_IMPLICIT_WRITES_P3,A_RESTRICT_LATEPRED) +) =20 DEF_MACRO( fPART1, /* write Predicate 0 */ @@ -660,6 +695,7 @@ DEF_MACRO( ((size8s_t)((size2s_t)(A))), /* optional attributes */ ) + DEF_MACRO( fCAST2_8u, /* macro name */ ((size8u_t)((size2u_t)(A))), @@ -1532,18 +1568,209 @@ DEF_MACRO(fECHO, /* OS interface and stop/wait */ /********************************************/ =20 +DEF_MACRO(RUNNABLE_THREADS_MAX, + (thread->processor_ptr->runnable_threads_max), + () +) + +DEF_MACRO(THREAD_IS_ON, + ((PROC->arch_proc_options->thread_enable_mask>>TNUM) & 0x1), + () +) + +DEF_MACRO(THREAD_EN_MASK, + ((PROC->arch_proc_options->thread_enable_mask)), + () +) + + + +DEF_MACRO(READ_IMASK, + (((TH) >=3D (thread->processor_ptr->runnable_threads_max)) ? 0 : (thre= ad->processor_ptr->thread[TH]->Regs[REG_IMASK])), + () +) +DEF_MACRO(WRITE_IMASK, + if ((TH) < (thread->processor_ptr->runnable_threads_max)) { thread->pr= ocessor_ptr->thread[TH]->Regs[REG_IMASK]=3D(VAL & reg_mutability[REG_IMASK]= ); }, + (A_IMPLICIT_WRITES_IMASK_ANYTHREAD) +) + + +DEF_MACRO(WRITE_PRIO, + { + if ((TH) < (thread->processor_ptr->runnable_threads_max)) { + size4u_t tid_reg =3D thread->processor_ptr->thread[TH]->Regs[R= EG_TID]; + fINSERT_BITS(tid_reg, reg_field_info[STID_PRIO].width, reg_fie= ld_info[STID_PRIO].offset, VAL); + LOG_OTHER_THREAD_REG_WRITE(thread,REG_TID,tid_reg,TH); + } + }, + (A_IMPLICIT_WRITES_STID_PRIO_ANYTHREAD) +) + + +DEF_MACRO(DO_IASSIGNW, + { + int i; + int intbitpos =3D ((REG>>16)&0xF); + for (i=3D0;iprocessor_ptr->arch_proc_options->thread_enable_= mask>>i) & 0x1)) { + fINSERT_BITS(thread->processor_ptr->thread[i]->Regs[REG_IM= ASK],1, intbitpos, (REG>>i) & 1); + } + } + }, + (A_IMPLICIT_WRITES_IMASK_ANYTHREAD) +) + + + + +DEF_MACRO(fDO_NMI, + { + int i; + for (i=3D0;iprocessor_ptr->arch_proc_options->thread_enable= _mask>>i) & 0x1) ) { + if (SREG & (1<processor_ptr->thread[i= ]); + } + } + } + }, +) + +DEF_MACRO(fDO_TRACE, + { + fHIDE(HEX_CALLBACK(thread->processor_ptr->options->trace_callback, + thread->system_ptr,thread->processor_ptr, + thread->threadId,SREG);) + }, +) + +DEF_MACRO(DO_IASSIGNR, + { + int i; + int result=3D0; + int intbitpos =3D ((SREG>>16)&0xF); + for (i=3D0;iprocessor_ptr->arch_proc_options->thread_enable_= mask>>i) & 0x1)) { + result |=3D (((thread->processor_ptr->thread[i]->Regs[REG_= IMASK]>>intbitpos)&1)<processor_ptr->options->swi_callback, + thread->system_ptr,thread->processor_ptr, + thread->threadId,REG)); + LOG_GLOBAL_REG_WRITE(REG_IPEND,(GLOBAL_REG_READ(REG_IPEND) | (REG= & GLOBAL_REG_READ(REG_IEL)))); + }, + (A_EXCEPTION_SWI) +) + +DEF_MACRO(DO_CSWI, + LOG_GLOBAL_REG_WRITE(REG_IPEND,GLOBAL_REG_READ(REG_IPEND) & ~((REG= ) & GLOBAL_REG_READ(REG_IEL)));, + () +) + +DEF_MACRO(DO_CIAD, + sys_ciad(thread,VAL); LOG_GLOBAL_REG_WRITE(REG_IAD,GLOBAL_REG_READ= (REG_IAD) & ~(VAL));, + (A_EXCEPTION_SWI) +) + +DEF_MACRO(DO_SIAD, + sys_siad(thread,VAL); LOG_GLOBAL_REG_WRITE(REG_IAD,GLOBAL_REG_READ= (REG_IAD) | (VAL));, + (A_EXCEPTION_SWI) +) + +DEF_MACRO(fBREAK, + {isdb_brkpt_insn(thread->processor_ptr,thread->threadId);}, + () +) + DEF_MACRO(fPAUSE, {sys_pause(thread, insn->slot, IMM);}, () ) =20 + DEF_MACRO(fTRAP, warn("Trap NPC=3D%x ",fREAD_NPC()); warn("Trap exception, PCYCLE=3D%lld TYPE=3D%d NPC=3D%x IMM=3D0x%x",thr= ead->processor_ptr->pstats[pcycles],TRAPTYPE,fREAD_NPC(),IMM); register_trap_exception(thread,fREAD_NPC(),TRAPTYPE,IMM);, + (A_EXCEPTION_SWI) +) + +DEF_MACRO(fINTERNAL_CLEAR_SAMEPAGE, + /* force re-xlate at next fetch, refresh of in_user_mode, etc */ + /* Permissions change too... */ + sys_utlb_invalidate(thread->processor_ptr,thread), + /* NOTHING */ +) + +DEF_MACRO(fCLEAR_RTE_EX, + { + fLOG_REG_FIELD(SSR,SSR_EX,0); + fINTERNAL_CLEAR_SAMEPAGE(); + }, + () +) + +DEF_MACRO(fTLB_LOCK_AVAILABLE, + (fREAD_GLOBAL_REG_FIELD(SYSCONF,SYSCFG_TLBLOCK) =3D=3D 0), () ) =20 +DEF_MACRO(fK0_LOCK_AVAILABLE, + (fREAD_GLOBAL_REG_FIELD(SYSCONF,SYSCFG_K0LOCK) =3D=3D 0), + () +) + +DEF_MACRO(fSET_TLB_LOCK, + { + if (fTLB_LOCK_AVAILABLE()) { + fLOG_GLOBAL_REG_FIELD(SYSCONF,SYSCFG_TLBLOCK,1); + } else { + sys_waiting_for_tlb_lock(thread); + } + }, + () +) + +DEF_MACRO(fSET_K0_LOCK, + { + if (fK0_LOCK_AVAILABLE() && sys_k0lock_queue_ready(thread)) { + warn("k0lock: T%d: PC=3D0x%x: PCycle=3D%lld",thread->threadI= d,thread->Regs[REG_PC],thread->processor_ptr->pstats[pcycles]); + fLOG_GLOBAL_REG_FIELD(SYSCONF,SYSCFG_K0LOCK,1); + } else { + warn("k0lock_waiting: T%d: PC=3D0x%x: PCycle=3D%lld",thread-= >threadId,thread->Regs[REG_PC],thread->processor_ptr->pstats[pcycles]); + sys_waiting_for_k0_lock(thread); + } + }, + () +) + +DEF_MACRO(fCLEAR_TLB_LOCK, + { + int i; + fLOG_GLOBAL_REG_FIELD(SYSCONF,SYSCFG_TLBLOCK,0); + for (i =3D 0; i < RUNNABLE_THREADS_MAX; i++) { + if(( (thread->processor_ptr->arch_proc_options->thread_enabl= e_mask>>i) & 0x1)) { + thread->processor_ptr->thread[i]->cu_tlb_lock_waiting = =3D 0; + } + } + }, + () +) + +DEF_MACRO(fCLEAR_K0_LOCK, + do { + warn("k0unlock: T%d: PC=3D0x%x: Pcycle=3D%lld",thread->threadId,thre= ad->Regs[REG_PC], thread->processor_ptr->pstats[pcycles]); + sys_initiate_clear_k0_lock(thread); + } while (0), + () +) + DEF_MACRO(fALIGN_REG_FIELD_VALUE, ((VAL)<processor_ptr->global_regs[REG_##REG], + reg_field_info[FIELD].width, + reg_field_info[FIELD].offset,VAL), +) + +DEF_MACRO(fLOG_GLOBAL_REG_FIELD, + LOG_MASKED_GLOBAL_REG_WRITE(REG_##REG, + fALIGN_REG_FIELD_VALUE(FIELD,VAL), + fGET_REG_FIELD_MASK(FIELD)), + () +) + DEF_MACRO(fREAD_REG_FIELD, fEXTRACTU_BITS(thread->Regs[REG_##REG], reg_field_info[FIELD].width, @@ -1561,6 +1808,13 @@ DEF_MACRO(fREAD_REG_FIELD, /* ATTRIBS */ ) =20 +DEF_MACRO(fREAD_GLOBAL_REG_FIELD, + fEXTRACTU_BITS(thread->processor_ptr->global_regs[REG_##REG], + reg_field_info[FIELD].width, + reg_field_info[FIELD].offset), + /* ATTRIBS */ +) + DEF_MACRO(fGET_FIELD, fEXTRACTU_BITS(VAL, reg_field_info[FIELD].width, @@ -1576,6 +1830,185 @@ DEF_MACRO(fSET_FIELD, /* ATTRIBS */ ) =20 +DEF_MACRO(fSET_RUN_MODE_NOW, + {thread->processor_ptr->global_regs[REG_MODECTL] |=3D (1<last_commit_cycle =3D thread->processor_ptr->pcycle_count= er; + sys_recalc_num_running_threads(thread->processor_ptr);}, +) + +DEF_MACRO(fIN_DEBUG_MODE, + (thread->debug_mode || (fREAD_GLOBAL_REG_FIELD(ISDBST,ISDBST_DEBUGMODE= ) & 1<debug_mode), + () +) + + +DEF_MACRO(fIN_DEBUG_MODE_WARN, + { + if (fREAD_GLOBAL_REG_FIELD(ISDBST,ISDBST_DEBUGMODE) & 1<processor_ptr); + } while (0), + /* NOTHING */ +) + +DEF_MACRO(fGET_RUN_MODE, + ((thread->processor_ptr->global_regs[REG_MODECTL]>>TNUM)&0x1), +) + +DEF_MACRO(fSET_WAIT_MODE, + {fLOG_GLOBAL_REG_FIELD(MODECTL,MODECTL_W, + fREAD_GLOBAL_REG_FIELD(MODECTL,MODECTL_W) | 1<<(TNUM))}, + /* NOTHING */ +) + +DEF_MACRO(fCLEAR_WAIT_MODE, + {thread->processor_ptr->global_regs[REG_MODECTL] &=3D ~(1<<(TNUM+1= 6)); + thread->last_commit_cycle =3D thread->processor_ptr->pcycle_count= er; + sys_recalc_num_running_threads(thread->processor_ptr);}, +) + +DEF_MACRO(fGET_WAIT_MODE, + ((thread->processor_ptr->global_regs[REG_MODECTL]>>(TNUM+16))&0x1), +) + + +DEF_MACRO(fRESET_THREAD, + register_reset_interrupt(T,NUM), +) + +DEF_MACRO(fREAD_CURRENT_EVB, + (GLOBAL_REG_READ(REG_EVB)), + /* nothing */ +) + +DEF_MACRO(fREAD_ELR, + READ_RREG(REG_ELR), + () +) + +DEF_MACRO(fPOW2_HELP_ROUNDUP, + ((VAL) | ((VAL) >> 1) | ((VAL) >> 2) | ((VAL) >> 4) | ((VAL) >> 8) | (= (VAL) >> 16)), + () +) + +DEF_MACRO(fPOW2_ROUNDUP, + fPOW2_HELP_ROUNDUP((VAL)-1)+1, + () +) + +DEF_MACRO(fTLB_IDXMASK, + ((INDEX) & (fPOW2_ROUNDUP(fCAST4u(thread->processor_ptr->arch_proc_opt= ions->jtlb_size)) - 1)), + () +) + +DEF_MACRO(fTLB_NONPOW2WRAP, + (((INDEX) >=3D thread->processor_ptr->arch_proc_options->jtlb_size) ? = ((INDEX) - thread->processor_ptr->arch_proc_options->jtlb_size) : (INDEX)), + /* ATTRIBS */ +) + +DEF_MACRO(fTLBW, + do {size4u_t __myidx =3D fTLB_NONPOW2WRAP(fTLB_IDXMASK(INDEX)); + TLB_REG_WRITE(__myidx,VALUE); + fHIDE(HEX_CALLBACK(thread->processor_ptr->options->tlbw_callback,t= hread->system_ptr,thread->processor_ptr,thread->threadId,__myidx);) + fHIDE(sys_tlb_write(thread,__myidx,VALUE);)} while (0), + /* ATTRIBS */ +) + +DEF_MACRO(fTLB_ENTRY_OVERLAP, + fHIDE( (sys_check_overlap(thread,VALUE)!=3D-2) ), + /* ATTRIBS */ +) + +DEF_MACRO(fTLB_ENTRY_OVERLAP_IDX, + fHIDE(sys_check_overlap(thread,VALUE)), + /* ATTRIBS */ +) + + +DEF_MACRO(fTLBR, + TLB_REG_READ(fTLB_NONPOW2WRAP(fTLB_IDXMASK(INDEX))), + /* ATTRIBS */ +) + +DEF_MACRO(fTLBP, + tlb_lookup(thread,((TLBHI)>>12),((TLBHI)<<12),1), + /* attribs */ +) + + + +DEF_MACRO(READ_SGP0, + READ_RREG(REG_SGP), + () +) + +DEF_MACRO(READ_SGP1, + READ_RREG(REG_SGP+1), + () +) + +DEF_MACRO(READ_SGP10, + READ_RREG_PAIR(REG_SGP), + () +) + +DEF_MACRO(READ_UGP, + READ_RREG(REG_UGP), +) + +DEF_MACRO(WRITE_SGP0, + WRITE_RREG(REG_SGP,VAL), + (A_IMPLICIT_WRITES_SGP0) +) + +DEF_MACRO(WRITE_SGP1, + WRITE_RREG(REG_SGP+1,VAL), + (A_IMPLICIT_WRITES_SGP1) +) + +DEF_MACRO(WRITE_SGP10, + WRITE_RREG_PAIR(REG_SGP,VAL), + (A_IMPLICIT_WRITES_SGP0,A_IMPLICIT_WRITES_SGP1) +) + +DEF_MACRO(WRITE_UGP, + WRITE_RREG(REG_UGP,VAL), +) + +DEF_MACRO(fSTART, + fLOG_GLOBAL_REG_FIELD(MODECTL,MODECTL_E, fREAD_GLOBAL_REG_FIELD(MODECT= L,MODECTL_E) | (((REG & ((1<processor_ptr))), + () +) + +DEF_MACRO(fRESUME, + fLOG_GLOBAL_REG_FIELD(MODECTL,MODECTL_W, + fREAD_GLOBAL_REG_FIELD(MODECTL,MODECTL_W) & (~(REG))), + () +) + +DEF_MACRO(fGET_TNUM, + thread->threadId, + () +) + /********************************************/ /* Cache Management */ /********************************************/ @@ -1602,6 +2035,11 @@ DEF_MACRO(fISYNC, ) =20 =20 +DEF_MACRO(fICFETCH, + , + () +) + DEF_MACRO(fDCFETCH, sys_dcfetch(thread, (REG), insn->slot), (A_MEMLIKE) @@ -1615,6 +2053,34 @@ DEF_MACRO(fICINVA, (A_ICINVA) ) =20 +DEF_MACRO(fDCTAGR, + ({DST=3Dsys_dctagr(thread, INDEX, insn->slot,DSTREGNO);})/* FIXME */, + () +) + +DEF_MACRO(fDCTAGW, + (sys_dctagw(thread, INDEX, PART2, insn->slot)), + () +) +DEF_MACRO(fICTAGR, + ({DST=3Dsys_ictagr(thread, INDEX, insn->slot,REGNO);}), + () +) + +DEF_MACRO(fICDATAR, + ({DST=3Dsys_icdatar(thread, INDEX, insn->slot);}), + () +) + +DEF_MACRO(fICTAGW, + (sys_ictagw(thread, INDEX, PART2, insn->slot)), + () +) +DEF_MACRO(fICDATAW, + ({ fHIDE(); }), + () +) + DEF_MACRO(fL2FETCH, sys_l2fetch(thread, ADDR,HEIGHT,WIDTH,STRIDE,FLAGS, insn->slot), (A_MEMLIKE,A_L2FETCH) @@ -1635,6 +2101,12 @@ DEF_MACRO(fDCZEROA, (A_MEMLIKE) ) =20 +DEF_MACRO(fDCINVA, + sys_dcinva(thread, (REG)), + (A_MEMLIKE) +) + + DEF_MACRO(fCHECKFORPRIV, {sys_check_privs(thread); if (EXCEPTION_DETECTED) return; }, () @@ -1645,6 +2117,16 @@ DEF_MACRO(fCHECKFORGUEST, () ) =20 +DEF_MACRO(fTAKEN_INTERRUPT_EDGECLEAR, + { proc->global_regs[REG_IPEND] &=3D ~(INT_NUMTOMASK(intnum) & proc= ->global_regs[REG_IEL]); }, + () +) + +DEF_MACRO(fSET_IAD, + { sys_siad(thread,INT_NUMTOMASK(intnum)); thread->processor_ptr->g= lobal_regs[REG_IAD] |=3D INT_NUMTOMASK(intnum); }, + () +) + DEF_MACRO(fBRANCH_SPECULATE_STALL, { sys_speculate_branch_stall(thread, insn->slot, JUMP_COND(JUMP_PRED= _SET), @@ -1664,3 +2146,79 @@ DEF_MACRO(IV1DEAD, , () ) + +DEF_MACRO(fIN_MONITOR_MODE, + sys_in_monitor_mode(thread), + () +) + +DEF_MACRO(fIN_USER_MODE, + sys_in_user_mode(thread), + () +) + +DEF_MACRO(fIN_GUEST_MODE, + sys_in_guest_mode(thread), + () +) + +DEF_MACRO(fGRE_ENABLED, + fREAD_REG_FIELD(CCR,CCR_GRE), + () +) + +DEF_MACRO(fGTE_ENABLED, + fREAD_REG_FIELD(CCR,CCR_GRE), + () +) + +DEF_MACRO(fTRAP1_VIRTINSN, + ((fIN_GUEST_MODE()) + && (fGRE_ENABLED()) + && ( ((IMM) =3D=3D 1) + || ((IMM) =3D=3D 3) + || ((IMM) =3D=3D 4) + || ((IMM) =3D=3D 6))), + () +) + +DEF_MACRO(fVIRTINSN_RTE, + do { + thread->trap1_info =3D TRAP1_VIRTINSN_RTE; + fLOG_REG_FIELD(SSR,SSR_SS,fREAD_REG_FIELD(GSR,GSR_SS)); + fLOG_REG_FIELD(CCR,CCR_GIE,fREAD_REG_FIELD(GSR,GSR_IE)); + fLOG_REG_FIELD(SSR,SSR_GM,!fREAD_REG_FIELD(GSR,GSR_UM)); + fBRANCH((fREAD_GELR() & -4),COF_TYPE_RTE); + fINTERNAL_CLEAR_SAMEPAGE(); + } while (0), + (A_IMPLICIT_WRITES_CCR,A_IMPLICIT_WRITES_SSR) +) + +DEF_MACRO(fVIRTINSN_SETIE, + do { + fLOG_REG_FIELD(CCR,CCR_GIE,(REG) & 1); + REG =3D fREAD_REG_FIELD(CCR,CCR_GIE); + thread->trap1_info =3D TRAP1_VIRTINSN_SETIE; + } while (0), + (A_IMPLICIT_WRITES_CCR) +) + +DEF_MACRO(fVIRTINSN_GETIE, + { + thread->trap1_info =3D TRAP1_VIRTINSN_GETIE; + REG =3D fREAD_REG_FIELD(CCR,CCR_GIE); + }, + () +) + +DEF_MACRO(fVIRTINSN_SPSWAP, + do { + if (fREAD_REG_FIELD(GSR,GSR_UM)) { + size4u_t TEMP =3D REG; + REG =3D fREAD_GOSP(); + fWRITE_GOSP(TEMP); + thread->trap1_info =3D TRAP1_VIRTINSN_SPSWAP; + } + } while (0), + (A_IMPLICIT_WRITES_GOSP) +) --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756784999; cv=none; d=zohomail.com; s=zohoarc; b=K9IbbmOVnQVHY4UYUHGUiGWb2kIAnf/eMzJKwfigmVK1waQis3qvcT/q/kDGf11S0BkjsSai4IuNTRtBFnf3ByMJSlX+t1UtJ46L+IZdwL0+gs7F2HYKw3MgNYFPJ+XzR6cx7WIwHD+GzvHRALPMTJpY6aAXfEWH6+SzXLxyJ5M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756784999; 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=s+hNS0jsrXFE+c0r8sY+9Wmz+fMeEKGYNbY79ju5A8E=; b=FgMyPzbfnd++8erg8rwvlu8xQTyXF1A072XGkBbNI8XzXT7JvMdcWQ/bGKQnciJQqtph23fUCyILpSnpvEGlWexh9ngVmg6e0PzEgQkTmjJsDR1lSCHsNfFoLRW1oYkx5obWlTmkuKGifs61zYTv7+HEPVoPyyGjWmKaQeFj5Kk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756784999074523.8054072661415; Mon, 1 Sep 2025 20:49:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI0P-0007Bv-E5; Mon, 01 Sep 2025 23:48:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utHzn-0006nh-Et for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47:47 -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 1utHzl-0004Te-Vw for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47:47 -0400 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822S1FU022183 for ; Tue, 2 Sep 2025 03:47:45 GMT Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48upnp6hr1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:47:44 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-24a8dcb3bddso27558075ad.2 for ; Mon, 01 Sep 2025 20:47: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 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.47.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:47: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= s+hNS0jsrXFE+c0r8sY+9Wmz+fMeEKGYNbY79ju5A8E=; b=W0eP0empc9cGp5tE ap8KY5UWwCJXqMJjCLiX3na2CaH2gEL4whEyZwwfEwaXYR4yRcq/nGgS+sVGu9qe OsiwrEm/x50XOYpep0JqOkU6DGEikx8NgYQgB8BEZcNKfZbyQ8IkIuQ45vIEmVvW qn0RYiyfeMcNGp5JVKsy+AilR16z3+3sFwQTudQO2oj8Gi3A1qQA69TdUvZrPlOe //W8TmvUgq6L9PbgWrYjUTNgiiujGNzzhilp+LPqalFwmoHfAf/3GRMxJg3ub+QL +grUxXpPk1USCjcOcup/SnSV+b2NWiMvfA9BrzxkIjpYM97Z3t0LXbaZVmAyO02Q q4jSYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784863; x=1757389663; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=s+hNS0jsrXFE+c0r8sY+9Wmz+fMeEKGYNbY79ju5A8E=; b=MLGOdZmA5ULZwmWYUcQj0/cNg6a0s4R7xkaDkKw4c/KcuVaFrDSbIUEk0U7P6nW4FC y3TFAl1FUcWPscJ1WYjbnSZ3gyptEwphHKT55Cm+j1qvTXkIFxg1odwbaKjypCB6Tuq2 dIBp7W/RQ3dZQiuZEA+8GjObTvBCa/2dZ8FMwyvp5bRgg7n7liU8rMIUN2ssV7yK3Fl4 aF0yr5tNWlJEPi5SZ4QsSS5WV35913A0wzRhtUjAwT567LuiNQhKdvAkBR2+cYLx/v28 5yWTCXq4lQaBwT+u1ByCwGG6XN+P/+NJ8P3oLpQrqDamcUkzC1aLjiPINCK1MkyCW8MO JveA== X-Gm-Message-State: AOJu0YzovXpVHv/MT2fHv8nsU9yuZFCbTusCGRJCxKJDIoBWqT5kdnTj AdtkfSSAU0QEwZEnaTSDHQ9BTDXbUvIh9DTyWFeC605F2jEu1Br5DOrU0QRefuUeqR1df67jRDd FmbJ6/dR2nEDwY4GYhTUNPiQDeryO25ZSiVtbROeu5z0YUB5gTIGtOGRm/JBRp4qm/jEd X-Gm-Gg: ASbGnctCLmMqDQs1q6ZgFlKUj6e7eUqJqTFRg6ydDjxgFV85b733ctaJWGb9BjxlwIH sLaFRZIENcJ0N6hd642NDTbD5adPwM6xZlQVnLPZ6raxE2cnxZL5hSChZN/Xs4XBJ70ScGCu5Qm Mre7yfM5IZBNaPNmp/PS10/nSJJj6+qRcDp93BZUc4zraPvjIjjL9zbVZ1YDj6aJCQD/DAqe8Xu l1WCLCd54JrpAqVLkEf75iB6JVsa+lQJSjK9YYE/9OZJZukVe1+Ja5EBFgIcmT7jicpcpuYUh4s ek6VA6QWqnjAErCoSY4MBpSnubitPVqTvZzSRD6V+hK9dNtO9/pcRE88+z1AXlCzXhwECyQg0oZ eC2bLtlamUD1D X-Received: by 2002:a17:90b:1848:b0:327:96dd:6293 with SMTP id 98e67ed59e1d1-328156cb806mr14176410a91.26.1756784863089; Mon, 01 Sep 2025 20:47:43 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG5gNNqmfCeIIcSh/goAUEiFadb6ZWHahJ1gOvzYDiW3RKC0VYENyB1D/VtWaHdD6+j3Z2qfw== X-Received: by 2002:a17:90b:1848:b0:327:96dd:6293 with SMTP id 98e67ed59e1d1-328156cb806mr14176376a91.26.1756784862570; Mon, 01 Sep 2025 20:47:42 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain Subject: [PATCH v2 17/40] target/hexagon: Define DCache states Date: Mon, 1 Sep 2025 20:46:52 -0700 Message-Id: <20250902034715.1947718-18-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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: ZQ62i21eeqIYArecrxfP4w5nxI3cQWDc X-Authority-Analysis: v=2.4 cv=Jt/xrN4C c=1 sm=1 tr=0 ts=68b668e0 cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=Yl8gTaLkFLj94gSD-c4A:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: ZQ62i21eeqIYArecrxfP4w5nxI3cQWDc X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAwMSBTYWx0ZWRfX7D8LudIPsyWI StLcKkxpOtZDf6KfOCQU3Bd41NN6rURmEU97cGQ+FP7OkY5UQKqJcujkReqiy2pjPj+8A1h/zMZ SSa2cuOECZV0GmQyImScd1zH9s3oDWr/fjNnwaA9vruIsH2b3MAbYQ6Qq+k28pMBtEOz+P9pEv+ sty4QZ66MA2o7tTEbYRYry+EdgeuZgEdwKr2CZTuzfaBXveED3KQ0IQ30BnxR+h2YEekQjKDxh9 6GZcQncrkbMb7XX3L1DVSa2VO2m/lEStxPsrGUI+yp25ccFTSrRd/HYKR/ceyE7PfUUKlQWRuoY 8fD8ix12vxuzXR0jaGPUM1J3UxXJJZQ9iQ3/1zkeJKEsee3O08IGQCw4s14vPNdOAMbIAw88mLl M52S+GHz X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 priorityscore=1501 clxscore=1015 bulkscore=0 impostorscore=0 spamscore=0 phishscore=0 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300001 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756785000762124100 From: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/cpu_bits.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/target/hexagon/cpu_bits.h b/target/hexagon/cpu_bits.h index b118761e05..c7cc426ec8 100644 --- a/target/hexagon/cpu_bits.h +++ b/target/hexagon/cpu_bits.h @@ -101,6 +101,13 @@ enum hex_cause { HEX_CAUSE_VIC3 =3D 0x0c5, }; =20 +enum data_cache_state { + HEX_DC_STATE_INVALID =3D 0x0, + HEX_DC_STATE_VALID =3D 0x1, + HEX_DC_STATE_RESERVED =3D 0x2, + HEX_DC_STATE_UNUSED_WT =3D 0x3, +}; + #define PACKET_WORDS_MAX 4 =20 static inline uint32_t parse_bits(uint32_t encoding) --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756786201; cv=none; d=zohomail.com; s=zohoarc; b=Lx95o5YFd3NK3xdA8mi7GfB3h8oXoyAp7WA+dAFjRNICZcOzh5EEY2RPP0CYP910K/89rlGcljbkEXVYGeW6lipO/DLQHneawdYXKc+IyahjRbtNz+iQsUkaEKa4Yr+7uvMMaVv/ofuIR37eQ/k4TbmMVh0jOY15EqF/wJpZdVU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756786201; 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=bXOYi8iAS5C0z9QpXZYNZrW4sw+vX27RxmMAI6y6g8A=; b=fbxGkQaW96KA/XCWMJ8vCWkkn8h8+Ti6gnoGHEhkVI358vX2k9ZxWA6P1U4Tt1seHahGDlIikMI/WP4+bob/YUZAQdOpPWS6LRwyJz2PaPZiFwekmzojGab4QPk3saKYKV4RO7LdOBc1Iir/Y2rblHp4Kq6ekUD9rXKXnCO2vuU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756786201735498.7359888804848; Mon, 1 Sep 2025 21:10:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utHzr-0006qy-HV; Mon, 01 Sep 2025 23:47:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utHzp-0006ot-Jk for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47: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 1utHzm-0004Tl-Nf for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47:49 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822SKpT025556 for ; Tue, 2 Sep 2025 03:47:46 GMT Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48uscuxe6p-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:47:45 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-327594fd627so5027695a91.3 for ; Mon, 01 Sep 2025 20:47:45 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.47.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:47: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= bXOYi8iAS5C0z9QpXZYNZrW4sw+vX27RxmMAI6y6g8A=; b=eElxdme9GZmjtLjp I8L+V1dJ6uYrvoiMOwGv7zAlSMs2t0cdZrlCCROXoLdMcxrcDAnde3pRyKYP8BCP 3BZF8sEANFKXGGKGu52UfQxAthMFwgjUecQTx0Gf7Yh5W8nviCx+TSo0N34MMLY/ Jotz2r71/ZPvS4GCswqdAW3LlZJhDilPyltZyuAXw25uqMzk6mXw2H5a+Z6liVgC K4KCfAzLGZVdlPfQ5o1xsj13+mWMHxWUxMe5erGAJkZxioY20vJuPqn4wgyv4Anu c2dh18IidrijOe5WdGpSMYlNQEX0mZXbiKnXV5f3RTr2FJtqa4JENv6C+whRLCH/ yfCLWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784864; x=1757389664; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=bXOYi8iAS5C0z9QpXZYNZrW4sw+vX27RxmMAI6y6g8A=; b=L3JQYkN3pR/HTgT6Y5k6hBDWv5l4eXJwRh3XvT3ep2PpTQnbjin3+nlHEpRIWpwqer 4D/2FDdeeY1GtvOO7YdZw3Z9JOYOLT03Vdh5ACZrTeuQOA4oKi1XPvr9pnRGa9i3/xce 5u8dkJc9xBOMZT7IHxuSmXzPXqZW9uODQGG5tWens7ZUo6r4U1E4KEWsuHp82tUoWgea 9CdhizmoJJ6NFNCoZ4gWDs6lPJi2ElmoSr2pc/zJHhax9OoE8FrCK/DOStMvlEha9Ezp gfRel7E/z0tocMt+sQw+DtWCUHWAaLOGFD2NT6/0Ag8eyxm1WeF6Z9Kxz18QXezo49E4 CoJA== X-Gm-Message-State: AOJu0YwK5Aeo1truyMSXYy3K9ghHPq4yDqjPFpQG4Nn/SxzUTo2SjYlS Ug2+UFW4MzXQOkuEzegxYaQxSsvDySRLiYyZ2pNmAvQdlEGUtDXbJ97nzEFgyN+cDDxGuBZsAms xibc/zGGWXZhwgDu4W+EF0q+Seqd3PpEexzZxqW1gOk6/0dBHRAxJD3/J93ZLW3ccyOB9 X-Gm-Gg: ASbGnctE4i0rlEhhMsu2jTxeBI9GBtz0Zo6E+TwB+nmF56pjLWTjFIV5QDQAq1sIiJt 5jvVEV7i67mr7w8HIbiPaTuu/o4OngoPpaC6kQlzNIJMxChllaMjj/yBBpZbWxo5ZLikcjzDRV5 H7V8sqXstGZGrtDapuFMMSCiXMbP+igStjo5v/X/EH6XOE6Dxw/kjMZIbClnUU3EnOp3Qjol3BR lfsi5Myk47QKmJ6zi04UkscscCQUXmZCDPGW3/cgsUfc8fZsT3zO5emV1HpDbEXvR+CrdH22I6K sEOjEC48ahzDAvRt/zyPztwhjV6+IUh4mxEGIqMnIvUJGEZgXyTWG6oAy51tcd1U2ZqdXjG/0nw 5e5Z6qi7GHhU7 X-Received: by 2002:a17:90a:e7cc:b0:327:dce5:f644 with SMTP id 98e67ed59e1d1-32815436034mr12726894a91.11.1756784864240; Mon, 01 Sep 2025 20:47:44 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGPJGleTnbtJzITfmYs9WL9msDmN9r09NTzpZ9pjJjjziBfS8UjoB2RacwalyFuBJZKWOoPvQ== X-Received: by 2002:a17:90a:e7cc:b0:327:dce5:f644 with SMTP id 98e67ed59e1d1-32815436034mr12726857a91.11.1756784863699; Mon, 01 Sep 2025 20:47:43 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain Subject: [PATCH v2 18/40] target/hexagon: Add new macro definitions for sysemu Date: Mon, 1 Sep 2025 20:46:53 -0700 Message-Id: <20250902034715.1947718-19-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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: AW1haW4tMjUwODMwMDAzMSBTYWx0ZWRfX0jAAsEP9mA92 m+Tl50ubWl2AE3s7dEYcERma/Vj9LEeeZSnX1tXG+qNcTRHKw1KweB/3/eXRVbEIXnhGfXfv2lX anCL1Rb1m/a2RPi9usDkOCni4+4FUgmsQJ2Rml97EQLzvRRKb51Q9RT0jStkAtqJJiWOKb1Vd3+ hxZv9E0Uxph7dUsniDrnaIs3rFAN98fgWKuFYXaUAB6LSiWIBy3tjftyJkgPCU/ikOH/IQh4/BQ 4FERZEO8FfRZ65kY+rVTiP/Ngaj5kvUkEy4lgjrKL/+7c4gKKT6sZOyftMAg7DQiAR86pHIZRTT xdjjdNEMAJptzR3TSsScVzWPRxhVtUxvRtWnV8pht96WRQxZW/E+51NXonoTO3geSLocdd5lYZz i9YG4mQW X-Authority-Analysis: v=2.4 cv=A8xsP7WG c=1 sm=1 tr=0 ts=68b668e1 cx=c_pps a=0uOsjrqzRL749jD1oC5vDA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=H-6vKWyFFGuCzvjpqwAA:9 a=QEXdDO2ut3YA:10 a=mQ_c8vxmzFEMiUWkPHU9:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: SXo4E8s4e7LUQrd9ocOP1RGoEtqtSLWs X-Proofpoint-GUID: SXo4E8s4e7LUQrd9ocOP1RGoEtqtSLWs X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 spamscore=0 impostorscore=0 bulkscore=0 clxscore=1015 suspectscore=0 malwarescore=0 priorityscore=1501 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756786204521116600 From: Brian Cain Also: add nop TCG overrides for break,unpause,fetchbo,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 cache/prefetch functions are not modeled, dczero and fetchbo are safe to ignore. Signed-off-by: Brian Cain --- target/hexagon/gen_tcg.h | 9 ++ target/hexagon/macros.h | 30 ++++- target/hexagon/sys_macros.h | 238 ++++++++++++++++++++++++++++++++++++ target/hexagon/op_helper.c | 1 + 4 files changed, 274 insertions(+), 4 deletions(-) create mode 100644 target/hexagon/sys_macros.h diff --git a/target/hexagon/gen_tcg.h b/target/hexagon/gen_tcg.h index 8a3b801287..71f8a0e2d0 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) \ @@ -1133,6 +1134,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; \ @@ -1342,6 +1346,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 9ba9be408d..4823c97fde 100644 --- a/target/hexagon/macros.h +++ b/target/hexagon/macros.h @@ -538,9 +538,6 @@ static inline TCGv gen_read_ireg(TCGv result, TCGv val,= int shift) =20 #ifdef CONFIG_USER_ONLY #define fFRAMECHECK(ADDR, EA) do { } while (0) /* Not modelled in linux-us= er */ -#else -/* System mode not implemented yet */ -#define fFRAMECHECK(ADDR, EA) g_assert_not_reached(); #endif =20 #ifdef QEMU_GENERATE @@ -631,8 +628,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) @@ -649,10 +656,25 @@ static inline TCGv gen_read_ireg(TCGv result, TCGv va= l, int shift) ctx->dczero_addr =3D tcg_temp_new(); \ tcg_gen_mov_tl(ctx->dczero_addr, (REG)); \ } while (0) +#else +#define fDCZEROA(REG) ((void) REG) #endif =20 #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 =20 #endif + +#define fPREDUSE_TIMING() diff --git a/target/hexagon/sys_macros.h b/target/hexagon/sys_macros.h new file mode 100644 index 0000000000..3c4c3c7aa5 --- /dev/null +++ b/target/hexagon/sys_macros.h @@ -0,0 +1,238 @@ +/* + * Copyright(c) 2019-2025 Qualcomm Innovation Center, Inc. All Rights Rese= rved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HEXAGON_SYS_MACROS_H +#define HEXAGON_SYS_MACROS_H + +/* + * Macro definitions for Hexagon system mode + */ + +#ifndef CONFIG_USER_ONLY + +#define READ_SREG(NUM) arch_get_system_reg(env, NUM) +#define READ_SGP0() arch_get_system_reg(env, HEX_SREG_SGP0) +#define READ_SGP1() arch_get_system_reg(env, HEX_SREG_SGP1) +#define READ_SGP10() ((uint64_t)arch_get_system_reg(env, HEX_SREG_SGP0) = | \ + ((uint64_t)arch_get_system_reg(env, HEX_SREG_SGP1) << 32)) + +#define WRITE_SREG(NUM, VAL) log_sreg_write(env, NUM, VAL, slot) +#define WRITE_SGP0(VAL) log_sreg_write(env, HEX_SREG_SGP0, VAL, = slot) +#define WRITE_SGP1(VAL) log_sreg_write(env, HEX_SREG_SGP1, VAL, = slot) +#define WRITE_SGP10(VAL) \ + do { \ + log_sreg_write(env, HEX_SREG_SGP0, (VAL) & 0xFFFFFFFF, slot); \ + log_sreg_write(env, HEX_SREG_SGP1, (VAL) >> 32, slot); \ + } while (0) + +#ifdef QEMU_GENERATE +#define GET_SSR_FIELD(RES, FIELD) \ + GET_FIELD(RES, FIELD, hex_t_sreg[HEX_SREG_SSR]) +#else + +#define GET_SSR_FIELD(FIELD, REGIN) \ + (uint32_t)GET_FIELD(FIELD, REGIN) +#define GET_SYSCFG_FIELD(FIELD, REGIN) \ + (uint32_t)GET_FIELD(FIELD, REGIN) +#define SET_SYSTEM_FIELD(ENV, REG, FIELD, VAL) \ + do { \ + uint32_t regval =3D arch_get_system_reg(ENV, REG); \ + fINSERT_BITS(regval, reg_field_info[FIELD].width, \ + reg_field_info[FIELD].offset, (VAL)); \ + arch_set_system_reg(ENV, REG, regval); \ + } while (0) +#define SET_SSR_FIELD(ENV, FIELD, VAL) \ + SET_SYSTEM_FIELD(ENV, HEX_SREG_SSR, FIELD, VAL) +#define SET_SYSCFG_FIELD(ENV, FIELD, VAL) \ + SET_SYSTEM_FIELD(ENV, HEX_SREG_SYSCFG, FIELD, VAL) + +#define CCR_FIELD_SET(ENV, FIELD) \ + (!!GET_FIELD(FIELD, arch_get_system_reg(ENV, 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() (READ_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 fFRAMECHECK(ADDR, EA) g_assert_not_reached(); + +#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, READ_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 0; \ + tmp =3D arch_get_system_reg(env, HEX_SREG_SSR); \ + fINSERT_BITS(tmp, reg_field_info[SSR_EX].width, \ + reg_field_info[SSR_EX].offset, 0); \ + log_sreg_write(env, HEX_SREG_SSR, tmp, slot); \ + } while (0) + +#define fDCINVIDX(REG) +#define fDCINVA(REG) do { REG =3D REG; } while (0) /* Nothing to do in qem= u */ + +#define fSET_TLB_LOCK() g_assert_not_reached() +#define fCLEAR_TLB_LOCK() g_assert_not_reached() + +#define fSET_K0_LOCK() g_assert_not_reached() +#define fCLEAR_K0_LOCK() g_assert_not_reached() + +#define fTLB_IDXMASK(INDEX) \ + ((INDEX) & (fPOW2_ROUNDUP(fCAST4u(env_archcpu(env)->num_tlbs)) - 1)) + +#define fTLB_NONPOW2WRAP(INDEX) \ + (((INDEX) >=3D env_archcpu(env)->num_tlbs) ? \ + ((INDEX) - env_archcpu(env)->num_tlbs) : \ + (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) \ + (env->hex_tlb->entries[fTLB_NONPOW2WRAP(fTLB_IDXMASK(INDEX))]) +#define fTLBR_EXTENDED(INDEX) \ + (env->hex_tlb->entries[fTLB_NONPOW2WRAP(fTLB_IDXMASK(INDEX))]) +#define fTLBP(TLBHI) \ + hex_tlb_lookup(env, ((TLBHI) >> 12), ((TLBHI) << 12)) +#define iic_flush_cache(p) + +#define fIN_DEBUG_MODE(TNUM) \ + ((GET_FIELD(ISDBST_DEBUGMODE, arch_get_system_reg(env, HEX_SREG_ISDBST= )) \ + & (0x1 << (TNUM))) !=3D 0) + +#define fIN_DEBUG_MODE_NO_ISDB(TNUM) false +#define fIN_DEBUG_MODE_WARN(TNUM) false + +#ifdef QEMU_GENERATE + +/* + * Read tags back as zero for now: + * + * tag value in RD[31:10] for 32k, RD[31:9] for 16k + */ +#define fICTAGR(RS, RD, RD2) \ + do { \ + RD =3D ctx->zero; \ + } while (0) +#define fICTAGW(RS, RD) +#define fICDATAR(RS, RD) \ + do { \ + RD =3D ctx->zero; \ + } while (0) +#define fICDATAW(RS, RD) + +#define fDCTAGW(RS, RT) +/* tag: RD[23:0], state: RD[30:29] */ +#define fDCTAGR(INDEX, DST, DST_REG_NUM) \ + do { \ + DST =3D ctx->zero; \ + } while (0) +#else + +/* + * Read tags back as zero for now: + * + * tag value in RD[31:10] for 32k, RD[31:9] for 16k + */ +#define fICTAGR(RS, RD, RD2) \ + do { \ + RD =3D 0x00; \ + } while (0) +#define fICTAGW(RS, RD) +#define fICDATAR(RS, RD) \ + do { \ + RD =3D 0x00; \ + } while (0) +#define fICDATAW(RS, RD) + +#define fDCTAGW(RS, RT) +/* tag: RD[23:0], state: RD[30:29] */ +#define fDCTAGR(INDEX, DST, DST_REG_NUM) \ + do { \ + DST =3D HEX_DC_STATE_INVALID | 0x00; \ + } while (0) +#endif + +#endif + +#define NUM_TLB_REGS(x) (env_archcpu(env)->num_tlbs) + +#endif diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 444799d3ad..c3140b97bd 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -24,6 +24,7 @@ #include "cpu.h" #include "internal.h" #include "macros.h" +#include "sys_macros.h" #include "arch.h" #include "hex_arch_types.h" #include "fma_emu.h" --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756785382; cv=none; d=zohomail.com; s=zohoarc; b=U5Z1SIfZy7Wed0eh1Cnj0C7z8K1JflieVlp5H/nf3wamvHcymnSSfug9maZpBtEZ2AjaKxrRExOWFH2REMtYJkD0qLMPVzbo2YGW5YusF1uP4v6hOH1uL5LzGtSL4tVJnSxz24ONHioJWDbkKEt603TaRRv9Ai1sCxaTZdmiSHc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785382; 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=u6+cmbwXwuBQg3mgmZyDbHMM77cwPQpYHh0dKMI4RyM=; b=ZRl0lHFVIuknse4mYzvxXPhjzHIBKpY9ADQfPeMxlwfI24wCKsrPAhrH+JWzd7zDdd6sEvr9Kw71RyG4QKlOlmKYyPcZSCNJQrH1m1gT7IsKaomxMLdU+45cTzohldDARZFhyRW24xw0DVyhiw+4//s5DuZKjgrHNeMqu0/oWBg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756785382718178.42323391675438; Mon, 1 Sep 2025 20:56:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI07-0006th-90; Mon, 01 Sep 2025 23:48:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utHzq-0006qG-Uj for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47:50 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utHzn-0004Tt-Tw for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47:50 -0400 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822S4uS030589 for ; Tue, 2 Sep 2025 03:47:47 GMT Received: from mail-pf1-f198.google.com (mail-pf1-f198.google.com [209.85.210.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48ura8pbxx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:47:46 +0000 (GMT) Received: by mail-pf1-f198.google.com with SMTP id d2e1a72fcca58-77267239591so1184262b3a.2 for ; Mon, 01 Sep 2025 20:47: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 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.47.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:47:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= u6+cmbwXwuBQg3mgmZyDbHMM77cwPQpYHh0dKMI4RyM=; b=UvP8O4fK8C7m4Oqq 7MpmK/mKAvIBlWsu1HnlarAMRvCuVLFoqg0ETA2Y06p8Ie5LT3VLn91tUJSm8Ldx h0Oyb6t1Wi8GY9yiKy1Z4ib+mAkmgX1Pvah7T9sw9MWCp17pyo68VqRWYS/B5UdN NWp4z+NnWUa9jMJf1q3LdPAS5klsKI4LG0+bLfZPFvB4xCUb99HanWX9UGsyfPQ+ lRLCPk2PyJFa1BsVbdhHQxMfSCUMo+gt+EScTNNMOxrN+nJ6XnL2CvfWrd7jvcFE 3eTYobq4tvKUuxRTtf74D+yhMDfYpadLXALEj3byjxGWYIvAxIkHdGOdp43o7M/z /YXX3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784865; x=1757389665; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=u6+cmbwXwuBQg3mgmZyDbHMM77cwPQpYHh0dKMI4RyM=; b=r4gVyEsV+yGdgAG0iGDjmZHcJnPRMbTw71TywOhmk37rmdmPEomhRrOutJl8NazenB YqI4j8BH+H+ReWFvNfNallhGzHOWl7SLnxpVB2pZ1mN8TtXdxis/Inp2Nf0Ljpn2XbLg N7Fm5Bp3+Hb0pzUKoj7zc+O5voNBr+IrNf0if5T5+/ysEG8krIqudT0U25CdrL6+UvNI 0My7lRXl2sDLG3QknoFNqdytO2x2cFXCFR5MTVlg11xc+6YcfE/NgQDclIsZ25eVsi4E sXvMy334/QJGY4nPAaZ8ihxYmt/mxgwHbXaDDsekILbzEe2Z9GsZGJItemChbAmBhTzj QuNw== X-Gm-Message-State: AOJu0Yym0aOoKbVMLIjC7bIy3DqkTWLWbW/LIOGpy0M7qn83g1s+jpvt i5EWrokxaz19sl4IAhMGkUdr12rREcf1/ngSYuzH4yeQZBY7Bm1HqlM1s66u+hHfoG+lNZsrQxW r5kxWfbP6bLJDQgnKDhT8a4B3DoYyQXohz+Ey0ZVHm1pcdpgMNciPifx8Kw5kb9TBIozB X-Gm-Gg: ASbGncuMmfOUzvzjFZnM5qbA6mU0sITnrib83nqUIpkN171nDGQf786aeTk4fVK9Kk5 Aevo98wPodf16w+nb3l3Brh+CRQHK3xnYwKDmBQ4Lm6/7NmAREXLTdsnjCLfUEn6HZQWmznAPmi kxrg5+frGQI4eX/mPfnWDn84ZT+bq/Gf+yhRfbhwxIweEclMypIemP+4boPGjHUCYZUpbpqazJV bpy2ROz6m4cfTdUTUUxaVW5vBJoK4Q7EhnN7dpAdwdpA+qHv0c7oEDIDoF7hKM+wQ6CmG+mgxPa wc5M8CNyLFd4i2Y3jb3Y0AcmjtiwmOF/XYf7LaEu2eLcQhdd48CZHgXXywgL/+b1KPhEIMxYTQw 3w1tQfGXF43bH X-Received: by 2002:a05:6a20:7d9a:b0:243:4b5d:5ea6 with SMTP id adf61e73a8af0-243d6e56fa9mr13813257637.26.1756784865279; Mon, 01 Sep 2025 20:47:45 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGkeWFczIB30dw79kli6Qlqszey2BYnWuEHXNaFxmPQBm/BPqZ+rWPhV+MzTeKUcytqwztbbg== X-Received: by 2002:a05:6a20:7d9a:b0:243:4b5d:5ea6 with SMTP id adf61e73a8af0-243d6e56fa9mr13813223637.26.1756784864803; Mon, 01 Sep 2025 20:47:44 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain Subject: [PATCH v2 19/40] target/hexagon: Add handlers for guest/sysreg r/w Date: Mon, 1 Sep 2025 20:46:54 -0700 Message-Id: <20250902034715.1947718-20-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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: pNPCWjchi3K3s_D272ajkLFMGSsZOllC X-Proofpoint-GUID: pNPCWjchi3K3s_D272ajkLFMGSsZOllC X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAyMCBTYWx0ZWRfX1S2RazfDf0E7 T802Levy681JS5MTWOhlKAr6XcsR1ueoImyzd8RU0oMCWQ2wthvu4AjNHXhjXhbgnn1yPftis8l iPqEgA5xV8HbZ02vZiqFupB096Fyg80qHVscl67Yw4B8EU+1yaO++nK9fZLvaf5q03RRsqGHT4i zVb53Uu1e7xOXwz9hZaEugESb4m9toCfOtw6/1qa32Rg33PgLpA4KafqDcpeFbxNyWk7ybhETiv Yd4t7/5vmYMisoKUv2gHl1uW86O8zIYoOwHI8gIhFkBKSsfUcXT+E0nzyatW6P5CAQxXKWZS8iu eodlC/muRrNXxRu5hakWSjAazfg69UGtwzRcHnOWoEPrlg9aRVGO6ijQmpQcjWuf53CIkw89PvD EdLYYkqq X-Authority-Analysis: v=2.4 cv=VNndn8PX c=1 sm=1 tr=0 ts=68b668e2 cx=c_pps a=m5Vt/hrsBiPMCU0y4gIsQw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=l5hRqwrd4wiMbFURoVoA:9 a=QEXdDO2ut3YA:10 a=IoOABgeZipijB_acs4fv:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 spamscore=0 impostorscore=0 malwarescore=0 bulkscore=0 clxscore=1015 adultscore=0 priorityscore=1501 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300020 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756785383618116601 From: Brian Cain This commit provides handlers to generate TCG for guest and system register reads and writes. They will be leveraged by a future commit. Signed-off-by: Brian Cain --- target/hexagon/genptr.c | 138 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 138 insertions(+) diff --git a/target/hexagon/genptr.c b/target/hexagon/genptr.c index 08fc5413de..a474787816 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" @@ -128,6 +129,143 @@ TCGv get_result_pred(DisasContext *ctx, int pnum) } } =20 +#ifndef CONFIG_USER_ONLY +G_GNUC_UNUSED +static bool greg_writable(int rnum, bool pair) +{ + if (pair) { + if (rnum < HEX_GREG_G3) { + return true; + } + qemu_log_mask(LOG_UNIMP, + "Warning: ignoring write to guest register pair G%d:%d\n", + rnum + 1, rnum); + } else { + if (rnum <=3D HEX_GREG_G3) { + return true; + } + qemu_log_mask(LOG_UNIMP, + "Warning: ignoring write to guest register G%d\n", rnum); + } + return false; +} + +G_GNUC_UNUSED +static void check_greg_impl(int rnum, bool pair) +{ + if (pair && (!greg_implemented(rnum) || !greg_implemented(rnum + 1))) { + qemu_log_mask(LOG_UNIMP, + "Warning: guest register pair G%d:%d is unimplemented or " + "reserved. Read will yield 0.\n", + rnum + 1, rnum); + } else if (!pair && !greg_implemented(rnum)) { + qemu_log_mask(LOG_UNIMP, + "Warning: guest register G%d is unimplemented or reserved." + " Read will yield 0.\n", rnum); + } +} + +G_GNUC_UNUSED +static inline void gen_log_greg_write(DisasContext *ctx, int rnum, TCGv va= l) +{ + tcg_gen_mov_tl(ctx->greg_new_value[rnum], val); +} + +G_GNUC_UNUSED +static void gen_log_greg_write_pair(DisasContext *ctx, int rnum, TCGv_i64 = val) +{ + TCGv val32 =3D tcg_temp_new(); + + /* Low word */ + tcg_gen_extrl_i64_i32(val32, val); + gen_log_greg_write(ctx, rnum, val32); + + /* High word */ + tcg_gen_extrh_i64_i32(val32, val); + gen_log_greg_write(ctx, rnum + 1, val32); +} + +static const target_ulong sreg_immut_masks[NUM_SREGS] =3D { + [HEX_SREG_STID] =3D 0xff00ff00, + [HEX_SREG_ELR] =3D 0x00000003, + [HEX_SREG_SSR] =3D 0x00008000, + [HEX_SREG_CCR] =3D 0x10e0ff24, + [HEX_SREG_HTID] =3D IMMUTABLE, + [HEX_SREG_IMASK] =3D 0xffff0000, + [HEX_SREG_GEVB] =3D 0x000000ff, +}; + +G_GNUC_UNUSED +static void gen_log_sreg_write(DisasContext *ctx, int rnum, TCGv val) +{ + const target_ulong reg_mask =3D sreg_immut_masks[rnum]; + + if (reg_mask !=3D IMMUTABLE) { + if (rnum < HEX_SREG_GLB_START) { + gen_masked_reg_write(val, hex_t_sreg[rnum], reg_mask); + tcg_gen_mov_tl(ctx->t_sreg_new_value[rnum], val); + } else { + gen_helper_sreg_write_masked(tcg_env, tcg_constant_i32(rnum), = val); + } + } +} + +G_GNUC_UNUSED +static void gen_log_sreg_write_pair(DisasContext *ctx, int rnum, TCGv_i64 = val) +{ + TCGv val32 =3D tcg_temp_new(); + + /* Low word */ + tcg_gen_extrl_i64_i32(val32, val); + gen_log_sreg_write(ctx, rnum, val32); + + /* High word */ + tcg_gen_extrh_i64_i32(val32, val); + gen_log_sreg_write(ctx, rnum + 1, val32); +} + +G_GNUC_UNUSED +static void gen_read_sreg(TCGv dst, int reg_num) +{ + if (reg_num >=3D HEX_SREG_GLB_START || reg_num =3D=3D HEX_SREG_BADVA) { + gen_helper_sreg_read(dst, tcg_env, tcg_constant_i32(reg_num)); + } else { + tcg_gen_mov_tl(dst, hex_t_sreg[reg_num]); + } +} + +G_GNUC_UNUSED +static void gen_read_sreg_pair(TCGv_i64 dst, int reg_num) +{ + if (reg_num < HEX_SREG_GLB_START) { + if (reg_num + 1 =3D=3D HEX_SREG_BADVA) { + TCGv badva =3D tcg_temp_new(); + gen_helper_sreg_read(badva, tcg_env, + tcg_constant_tl(HEX_SREG_BADVA)); + tcg_gen_concat_i32_i64(dst, hex_t_sreg[reg_num], badva); + } else { + tcg_gen_concat_i32_i64(dst, hex_t_sreg[reg_num], + hex_t_sreg[reg_num + 1]); + } + } else { + gen_helper_sreg_read_pair(dst, tcg_env, tcg_constant_tl(reg_num)); + } +} + +G_GNUC_UNUSED +static void gen_read_greg(TCGv dst, int reg_num) +{ + gen_helper_greg_read(dst, tcg_env, tcg_constant_tl(reg_num)); +} + +G_GNUC_UNUSED +static void gen_read_greg_pair(TCGv_i64 dst, int reg_num) +{ + gen_helper_greg_read_pair(dst, tcg_env, tcg_constant_tl(reg_num)); +} +#endif + + void gen_log_pred_write(DisasContext *ctx, int pnum, TCGv val) { TCGv pred =3D get_result_pred(ctx, pnum); --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756786383; cv=none; d=zohomail.com; s=zohoarc; b=ZWbPqoxM4aTHI8Vsvv15cIyyWZD5bk1sTbxCBP6RrTY9Nj4x5WCdrgnyNqQr7pvKk4L9DZFXYIxX1I8QUfIP4PMc5G+Yi3WSO1FFoh0csvSl6I/wVPOC6j5c8FvAqgl6hGl9tiguPUwvNwqHGqHOKBfypg+dGTkXtVmTNM7GhoY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756786383; 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=7mkT0uW2+g6NjzQdWPYa1vk3J4PvrH9XyEQZ24VJRdg=; b=PCG+QJflFj+415XqXoHGA0xY7AF/aCe5ugAbWpt14RqA9SVgtRa5byF99TBLKNdfEhIOS819I0DoZ9BmOn8b9L1gbSc3db/iOvBVWJGbOe22p4E+e8b0pYxK80kScbwsqrzbioIgeSKYj+hmEK+aHtYaKbHwINtbOGbeqgRQ+jc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756786383548463.4329130316321; Mon, 1 Sep 2025 21:13:03 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI0R-0007H8-45; Mon, 01 Sep 2025 23:48:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utHzq-0006qC-TE for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47:50 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utHzo-0004U5-QR for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47:50 -0400 Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822S5IE013610 for ; Tue, 2 Sep 2025 03:47:47 GMT Received: from mail-pg1-f199.google.com (mail-pg1-f199.google.com [209.85.215.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48uq0eej5c-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:47:47 +0000 (GMT) Received: by mail-pg1-f199.google.com with SMTP id 41be03b00d2f7-b4c949fc524so3228723a12.2 for ; Mon, 01 Sep 2025 20:47:47 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.47.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:47: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= 7mkT0uW2+g6NjzQdWPYa1vk3J4PvrH9XyEQZ24VJRdg=; b=Hlh3B8/XXjG86LqB zEk3rfyU0PjyxwVJvf7DFIWaohNGluV4e4B9J7PzrEsVuQLWpmKVyTmpD6BCCi2s Y+NGf03etzrWrys++7V6wcuVeR9F3RNZm5rzW3bqCt2DWHoS12Z5atAJ3BQvzOjF UWuGK+gL/XxZSRIvrenxrjhRsN0iygH/hsVWzM65h8NKcDjB9V6By36SECGWL9Op fN1Xd+9mOobMLRE5BaVeFQsQLc2cWfw3mUMoDk3sZgHvooYspqWvEuLsWP3OpqcI XaS3gtvBN5tsOF5ZUT58b9lpGrvp+CPMVk1fUKGrmjXGwIkSxHh7PuViMtfd76b1 3Wj0EA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784866; x=1757389666; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7mkT0uW2+g6NjzQdWPYa1vk3J4PvrH9XyEQZ24VJRdg=; b=iEmQQUmRELCcRDAWxK7SaZAAIvX0VgdXEd++qs4sEgWZemCzkgVVbnDPPMxTuyogvx Zglj6BEIB9c1IMF06tLn6zyn1esULhRatlmfa4QLfjD0YEhmLbiTbkxvBgLJTo1ARGCB SwHoLQD7SDEBRmiIvPOI4OitykdcWGfJi2YBhzCUGlQv03hXwFYphuimEXrbKJhD50Sy nN0NCYmVqTViI96URion4HsziRY8T3/1THtnriyr8AoenzXr67reQWblgJtZ111FrepY UJn+5EBqwLfgus6Tsaws+QqaDktKStDSSdgALoV0+ZHSBlfxp4r3vOQaEZkpuQbdpoQd Npiw== X-Gm-Message-State: AOJu0YydcUgVN3ZYWRlNNe8zV6P9NiI2PEBvQHyX98U2CrR90w6BJgKj xNd6DL/2WehUAvUQABrPi9laAsgQudPSeVOiHc9b0urVesDEhssCl30ft4kWoj3pj0mxlbezWCF W6KlHyxm158hWKmKwyjnSXnKn2eRotZLDyyMJq5+8Oi6G6bPMaV17/wyT49BHCT4zfh/S X-Gm-Gg: ASbGnct9XM5RmUA18zarTdGAiZ3qiGEBi0OmlPAV2eAr7/3Tmbr63zExKChzMvUrUhn G5hpCb8B/rACq0W2pMtmAByswsmoMSlESmPbfbpdRTU8mXgqD3zd3NCaRYUpfsm7Q3E5umSKNdS 8En4UbnXcXfwWmXeuhAJPNV5kbJTAPIjA/z2jJSE66QmgNd3MHvI2I09vCi8VanT+fRqIl5fZ38 q5XIdZaky112if2T8JOjYlHxktM4iB0cGctn9TnKIGmnh16DwcrPAVR74XhGag2tHEVLGNbuH1j 5/upgCgdpqm/y48UN/eKrJEriezbbA5oaTIj7SLXEYGs/Stqb1hdP4ioN2CWjZpNhIsn/C12Q7Z WG178ydzvYI3g X-Received: by 2002:a05:6a21:328e:b0:243:99c8:c0d5 with SMTP id adf61e73a8af0-243d6dc8985mr14713418637.10.1756784866342; Mon, 01 Sep 2025 20:47:46 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFpqu2KaFNEPtydo0I6yXdgUseyT2mhe+PvCbMOgtULVHGeRck0BJOsJhzrpPxLnRtEmN4x3Q== X-Received: by 2002:a05:6a21:328e:b0:243:99c8:c0d5 with SMTP id adf61e73a8af0-243d6dc8985mr14713390637.10.1756784865892; Mon, 01 Sep 2025 20:47:45 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain Subject: [PATCH v2 20/40] target/hexagon: Add placeholder greg/sreg r/w helpers Date: Mon, 1 Sep 2025 20:46:55 -0700 Message-Id: <20250902034715.1947718-21-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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: sGlwY-zztWe0X03cLtr8HEI70vh4WuIP X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAwNCBTYWx0ZWRfX89Cx3MZtJEW2 YMZEtvIKrBa8+NHj+4L8bZ8CmjGM+OQjtF6nuLlQxYrtQsxRelnlZKi21tMXsviuicNKPgRJ96W lFgv+sQoVfCVuKMWKWND+aPEGMSte7abHFKZ0nW5TAnUVGuIuvM3Ii8k32bMXK7Jfo/2EpVrmx1 w2UDsb3eIL32ivotVskJ8pWQXWzO6kH2mgMXt3ismbIhuUhmAav70CXHe8IP38ItjBVzXvftJ5N 061rcyKsr25oiQZpfWlRNX+Buo2m0q4PRyAHNbmN3JrB4oUsJvV4DmPHeFqtT55CNOwBKxm5U1K AKZ+nJf8XJ75p4RRr0y3SgtU4jd9yBf1l1XDw8VPOVWTuSmKPWCs303TB4qdl/ukB/q5yYFUOdw 8ANJvFiU X-Proofpoint-ORIG-GUID: sGlwY-zztWe0X03cLtr8HEI70vh4WuIP X-Authority-Analysis: v=2.4 cv=ea09f6EH c=1 sm=1 tr=0 ts=68b668e3 cx=c_pps a=Oh5Dbbf/trHjhBongsHeRQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=oSs-Am0MwCqMoGAbxz0A:9 a=QEXdDO2ut3YA:10 a=_Vgx9l1VpLgwpw_dHYaR:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 suspectscore=0 clxscore=1015 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300004 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756786384301116600 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/helper.h | 9 +++++++++ target/hexagon/op_helper.c | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index f8baa599c8..fddbd99a19 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -107,3 +107,12 @@ DEF_HELPER_4(probe_noshuf_load, void, env, i32, int, i= nt) DEF_HELPER_2(probe_pkt_scalar_store_s0, void, env, int) DEF_HELPER_2(probe_hvx_stores, void, env, int) DEF_HELPER_2(probe_pkt_scalar_hvx_stores, void, env, int) + +#if !defined(CONFIG_USER_ONLY) +DEF_HELPER_2(sreg_read, i32, env, i32) +DEF_HELPER_2(sreg_read_pair, i64, env, i32) +DEF_HELPER_2(greg_read, i32, env, i32) +DEF_HELPER_2(greg_read_pair, i64, env, i32) +DEF_HELPER_3(sreg_write, void, env, i32, i32) +DEF_HELPER_3(sreg_write_pair, void, env, i32, i64) +#endif diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index c3140b97bd..72bb75a878 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1315,6 +1315,40 @@ void HELPER(vwhist128qm)(CPUHexagonState *env, int32= _t uiV) } } =20 +#ifndef CONFIG_USER_ONLY +void HELPER(sreg_write)(CPUHexagonState *env, uint32_t reg, uint32_t val) +{ + g_assert_not_reached(); +} + +void HELPER(sreg_write_pair)(CPUHexagonState *env, uint32_t reg, uint64_t = val) + +{ + g_assert_not_reached(); +} + +uint32_t HELPER(sreg_read)(CPUHexagonState *env, uint32_t reg) +{ + g_assert_not_reached(); +} + +uint64_t HELPER(sreg_read_pair)(CPUHexagonState *env, uint32_t reg) +{ + g_assert_not_reached(); +} + +uint32_t HELPER(greg_read)(CPUHexagonState *env, uint32_t reg) +{ + g_assert_not_reached(); +} + +uint64_t HELPER(greg_read_pair)(CPUHexagonState *env, uint32_t reg) +{ + g_assert_not_reached(); +} +#endif + + /* These macros can be referenced in the generated helper functions */ #define warn(...) /* Nothing */ #define fatal(...) g_assert_not_reached(); --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756786202; cv=none; d=zohomail.com; s=zohoarc; b=BAYRrndspUmTln1dssP8zT4pNXdbBiYujaxBthtbGnpIboE5xSSdiQs4Cd5iNWTCpjQzVOCFHsyqEySPRXdnlYpenSdoJOrypkOdKyxXIa5rPCACR1F1Atp6jCoD65a6p4J76DbM28UUs95+CTAeeyptPkrzNk578Q+Vy4b0fXk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756786202; 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=UzrS7Tmhe21fEajJCYweSyAeUNdh30A6PlYeRwWYTTg=; b=OQj8gqhZ5kZ8g40rI5DNxEptBtxtdBYprUVHVzdLjjMkrKO1Aj9wRWxsok9oPG/P3LYqUv/PgErGIYO37mQ90QhN3GIGmJKhimMmhcrBHIYQkNtH1Vpyr1bpfiAq7EqWK2AM8kYC353NxsF+IztteHR0kWACyh62ySWj+WyZmbI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756786202434323.83198053801084; Mon, 1 Sep 2025 21:10:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI0M-00076U-He; Mon, 01 Sep 2025 23:48:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utHzr-0006rC-Iz for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47:51 -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 1utHzp-0004UL-W2 for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47:51 -0400 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822SAKA022312 for ; Tue, 2 Sep 2025 03:47:49 GMT Received: from mail-pf1-f198.google.com (mail-pf1-f198.google.com [209.85.210.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48upnp6hr7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:47:48 +0000 (GMT) Received: by mail-pf1-f198.google.com with SMTP id d2e1a72fcca58-772248bb841so5944938b3a.2 for ; Mon, 01 Sep 2025 20:47: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 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.47.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:47:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= UzrS7Tmhe21fEajJCYweSyAeUNdh30A6PlYeRwWYTTg=; b=lP1jNOehdYE9uCXM MFktYgwWFpgQK19BViAJtV2tQ4slR1iAFUv6a6dyxky77doWfkqU8juohLu5BxNJ xYOKwoZ4Cqq9+6OgMdPOw2jdwCrj+vReLtcNAADi2dNDbTSn3tM9SGzQtQjQMkiE 7qzsLI3cr9TQa6TGWNKtoNQZz0Yb/JZkVUjFQuQPjAxqHOBobKkfBDuVjC7TAjeT aKUHfLMiOE6ihVwur3O/mYDOAfuKPwmUKSD4XZAbMnhZSMIcBzJnsnRIWOsL+zbo I/CccEPGkL4Jyhx2cYuzVDOTtVmt86GYuxvET8U75P357Zatm6+WIchFjVj8Rarf QO8+uA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784867; x=1757389667; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=UzrS7Tmhe21fEajJCYweSyAeUNdh30A6PlYeRwWYTTg=; b=ZO628hUge6oEstady5G+Oc71MPwg3m8TqPOzvhRdiXSIzC5gyqWsj/7UP2KCt9vVJj ZPcfzhrt9+5yl0m8bg2bXHXAKgS49poczKnZJ9C+j1OHge9XVF/3SX/GGOGcBc96up9V oAhQHOqv68VDbI/ONd8Lrx6vq1htsdl+8G8K+KeLvNThzMB+jQBJaEEmfUX+ibBRhAMs 7bVs9XbVLE5ZVPcCoWhTkXEpBjTBngmk9VW7efX2nc9WOK+9HRngxe7FkQj8VqXY8xJk QHLCVbj/67GbJIAXNR9k+4hHqThPG4y78DJtk0JDPfAuO4fnqM4lH9ZFkYkjdN31E+Hy 2j+w== X-Gm-Message-State: AOJu0Yy360RId7GoCrupi3Miq3UGD/ajeVzBQP9rkVpeyGl/poIGyI01 m9TUhIS6BafXuhD1QyzdTHr1Ig8+26rvCt7GivuZZ0IvSJHxR4wSSdNEap0XCNqzMLz6Ng1UYJ0 yRc09fFTH4M1oDwnuhgOZY8XY1D7nx2GExrVW+KQbhzZpOJHIUL1MeB1u9h/eaRyQLx7w X-Gm-Gg: ASbGncsVwfSOGVTE/6qx/+8WmKPO7mlQpkXLswC66bgGrA8E3Ihqg4jMnHVgmRpKjl7 1gUVDpERCURdRinqge85RLnwAnzIVS8fIg1F3+1MxTdbsIV/AOvYL7CsLxcWz3O/yjKfNlQAhiO GuPHpMc1vrI8mqyJIXSW/moCTWEE1M+JLeZLxK3PwHA/C8Fkh03KpyX3JBBOSqZ3brkYWTXrki7 cpLYrzxMihIHm4zaI83+KYV1dHvi8eIOvJYoufJz7fUSEt5+kmZuKxjh+fad5l5/RA7y85Hz3dq hreK9wpMhLmauExs6B2HbeeAELyJ6XNJTTWdgK8fmtblYIVeayRh6RXnviIEHZqRAFv17RMPIwp b8XgXzjfRAfBe X-Received: by 2002:a05:6a20:244f:b0:240:dc9:71cf with SMTP id adf61e73a8af0-243d6f03832mr14550444637.38.1756784867520; Mon, 01 Sep 2025 20:47:47 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH8GJWPA0L3v4t5GP3fTx+2CAUIJU82RWAo4VY5a8Q7WCI6v+fFLo/mGIpmrSlk09ZBrfUr3A== X-Received: by 2002:a05:6a20:244f:b0:240:dc9:71cf with SMTP id adf61e73a8af0-243d6f03832mr14550410637.38.1756784867066; Mon, 01 Sep 2025 20:47:47 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain Subject: [PATCH v2 21/40] target/hexagon: Add vmstate representation Date: Mon, 1 Sep 2025 20:46:56 -0700 Message-Id: <20250902034715.1947718-22-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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: 8KuA2P9zIP1_yrbKuK0oaZ4XcLSG9vep X-Authority-Analysis: v=2.4 cv=Jt/xrN4C c=1 sm=1 tr=0 ts=68b668e5 cx=c_pps a=m5Vt/hrsBiPMCU0y4gIsQw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=0_PaYugFIasnaV_c4v8A:9 a=QEXdDO2ut3YA:10 a=IoOABgeZipijB_acs4fv:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: 8KuA2P9zIP1_yrbKuK0oaZ4XcLSG9vep X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAwMSBTYWx0ZWRfXzy4Lh41erF+L odaWVfArjq2aK4D2JIxncuNuvpAwVQeFaTT1RZoWrw34rbAYoHrofRhijDISas5pXM1LkGm3san LA2Xn9g4FcFcnpPsvRl8rvzd41DDPK7N+5hxhe8YyfI/RlWnRJwsyp4iLWgwCa/6WQT58opmfFI ZsrWhBXCd41TveYQNDMlRDnWD1O5n3LXCWdJ0uukBBTfDw6+cgc8k2mLugh7bi1zJBwIno/wJNy 7DnZ8EK3s2VYzccwsuIFuW6WjzL+xeJqyoH0va/FGnhhjKq/CBp8UvycQDku6yisiSdcouKikit Ds8C1iHJbkaJeQF7QuORB7WqKQFhe21gLga2vZmcS7To3qfUTSSxhDSadVvudVUHGmL4rFEWo68 Q0hqPM/6 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 priorityscore=1501 clxscore=1015 bulkscore=0 impostorscore=0 spamscore=0 phishscore=0 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300001 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756786204953124100 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/internal.h | 4 ++++ target/hexagon/cpu.c | 3 +++ target/hexagon/machine.c | 25 +++++++++++++++++++++++++ 3 files changed, 32 insertions(+) create mode 100644 target/hexagon/machine.c diff --git a/target/hexagon/internal.h b/target/hexagon/internal.h index 32e96f00d9..9658141316 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 fa52ad7453..39b45e6452 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -377,6 +377,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 0000000000..988ede06e9 --- /dev/null +++ b/target/hexagon/machine.c @@ -0,0 +1,25 @@ +/* + * Copyright(c) 2023-2025 Qualcomm Innovation Center, Inc. All Rights Rese= rved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "migration/cpu.h" +#include "cpu.h" + + +const VMStateDescription vmstate_hexagon_cpu =3D { + .name =3D "cpu", + .version_id =3D 0, + .minimum_version_id =3D 0, + .fields =3D (VMStateField[]) { + VMSTATE_STRUCT(parent_obj, HexagonCPU, 0, vmstate_cpu_common, CPUS= tate), + VMSTATE_UINTTL_ARRAY(env.gpr, HexagonCPU, TOTAL_PER_THREAD_REGS), + VMSTATE_UINTTL_ARRAY(env.pred, HexagonCPU, NUM_PREGS), + VMSTATE_UINTTL_ARRAY(env.t_sreg, HexagonCPU, NUM_SREGS), + VMSTATE_UINTTL_ARRAY(env.greg, HexagonCPU, NUM_GREGS), + VMSTATE_END_OF_LIST() + }, +}; + --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756785746; cv=none; d=zohomail.com; s=zohoarc; b=dRqPL45GoCmvukXBcweTVf9JO6ktern4OT4fEfi9jhE52fk7X/8N5XUz3MHpG0bdhe367ubgXQcOgWoTP4JY6Ub+DZK+I7Tbmj93Kibpma/N2nYwvwnV2IoaUmow2hWD+yeYLX8203+jsTP2wJOv7nXPgS0DNRl8SSyFk8Og61s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785746; 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=dXjomX+TprzQjbPBy/v1MOm2szPRfiESULT1A89iapw=; b=eFAux12BafQRcfUMBWXRtTTgmHsiCVla9Yt/aC/6ICh38V6Xc1YP8Vtgxhr92uhXzLga2rCjnuifCUckQJs2y/HsiYu/9dVIHKVriLANQHWLsfKblzHhaeZEqZkAFsewr5EIB86OlCOheoklpvot7jzsoCUT/b4BdejOQdnZNRU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756785746423422.4934619961906; Mon, 1 Sep 2025 21:02:26 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI0a-0007Xq-Ge; Mon, 01 Sep 2025 23:48:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utHzs-0006rG-R6 for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47: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 1utHzr-0004Ue-CD for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:47:52 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822Rtak015204 for ; Tue, 2 Sep 2025 03:47:50 GMT Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48urvyxdey-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:47:50 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-329745d6960so2488652a91.0 for ; Mon, 01 Sep 2025 20:47: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 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.47.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:47: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= dXjomX+TprzQjbPBy/v1MOm2szPRfiESULT1A89iapw=; b=Jnf4cD9xN8D886Nq 14NOIOK7ugwzKS2tC6K1nuEKhKKmTpgj04zDqKApZDyy2wF4Je37JQwH5DB+l7U6 j+TpyJ41Z477HoLWDEnb18tydpJIn+DZItTFVc6mATeyfOJl+K/cUoc5bfYxQWkg 41aRUdkpLtRWQnPNMz3RfXnMw7gikzu3SCD+BzoR2nudBEE9fh0Ei2ONJgo+neZP 7yWF/rSONAtve/JKYrmo1RU6yQ51RpkxYQ3riAty/17+GGmryeQoVPayxsBXOqmB HHkMea4x94hGNmxDzNtXeoOH9aHPeF7LSo9bwzlRuxhMqwGUlg85mDXM1XHKvcR0 maRy7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784869; x=1757389669; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dXjomX+TprzQjbPBy/v1MOm2szPRfiESULT1A89iapw=; b=b6U/sCwboQW8v5LinyKG99d35tg8uQz0dGXrByIdtcRAxDX4WwtJsooIgFX6hracQj TzPq9T4L273lSmzSjypkivqBE3HTnrHv4kUod0f2U9GWWVgaNb2jqOyWdB9Afv9aZEto FGpRtuwTrgXXYMxx+F+HZJHH7CZ++pcUMlb1LAqvEXVC6ARpKacXMwQp8VRLkyt5vMza kFKre1xonk+S+CoxSUJycNL934l/b4vkKGJG88xd0j+dfGHU/OCL9YeCd8TCfv7xSbw7 RKlbaS5Hrp1HsNjFnlXhub10znV0Itc+2dKjY92yMfVwe7Ixiyc2BTnkxlZQ98AIFZeU i0fQ== X-Gm-Message-State: AOJu0Yx/Dp2WoGClN5G3NHfW0cRTnNQ32TThHIw/wYul2l+E7Sh7ag7I lLLgVMowdKd7xDzefPOa8XIeRH9MRb9LFhcOMYnqSBYkhg0Pj8fLDtgWah48AifjZmStPG0l00h XDMWeTzY4J/dfO+/3ORDdB9nHHiPffIKtZv+rde1VCVvI41mTevHRjPJzLWn/EQ7ceEs7 X-Gm-Gg: ASbGnctxyFJBv8Y76supK/bVTzJTDpGoXTU4H6EDrforsxRI+Bna4OIIocbBxBDS+i5 C6TF7EQ9dRTxdEonhBhGqVkL1OKLUqhuC1/9nw6EsGRrmdsMuEU4PGhqySlKtsOQIumL7YtMlp5 bHNLjb8bNdeTeGm5BxRTzJLIPhHfMn0zQcVW1Be6f/9QG3TBgkg5KuPlr5ddigXClY5tsFwLkgE 1HT5bzW+FM0v7NVe7FlHnryzVNp5ifyyvYUnZZyxXfWY7278cQtJ1NZhwNPDA9AhFWrPDYp8ViN gz5wQXrFwqDUG/ArFpSMXxSqdRSl7p9GQpjQuNRV0ewZKjNei7z9KnU0izuJOtX+jlXKtepBbbQ 5vJzUAnlBXo8t X-Received: by 2002:a17:90b:1848:b0:321:c81b:29cd with SMTP id 98e67ed59e1d1-32815412269mr11922690a91.1.1756784868776; Mon, 01 Sep 2025 20:47:48 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFntPerk5NoL1tMnuKQeJ6nlzl2t8OG46NVw/gnG15iYIZwCtb4yb9g1klD7H0/Ik7CGMJhxw== X-Received: by 2002:a17:90b:1848:b0:321:c81b:29cd with SMTP id 98e67ed59e1d1-32815412269mr11922667a91.1.1756784868256; Mon, 01 Sep 2025 20:47:48 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain Subject: [PATCH v2 22/40] target/hexagon: Make A_PRIV, "J2_trap*" insts need_env() Date: Mon, 1 Sep 2025 20:46:57 -0700 Message-Id: <20250902034715.1947718-23-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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: i6uvaJ2MR7DPYvnv8tFWCYgOqURYRm8A X-Proofpoint-ORIG-GUID: i6uvaJ2MR7DPYvnv8tFWCYgOqURYRm8A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAyNyBTYWx0ZWRfXwMWChjq2d4zi CzE+NghIBCbo5EKp/hR14w6/wrWNLbodnG0cA6KqdKR1ko8+7sQAAeHwlhGuiqblOZKFfMuV3H0 J6VU5o7Cy8j8QCJSpkIfX36Q+KLPKmHuEyUyoGM3zuWKXEX+8WBohREEI9WxTHXqEShZGMaBlQK eaBdgXebm60TOgA20GdRI3XEmsLYy3zJ12r7yT/0VG3Rl8CkIup2GqFquUdBL81Gx3WL1h2foII FIeuBn0chZxE8/fnp2DfeFTX8wYOZ8PK9eCSlpW0COtqZN6cbp7uZUypmTPpC1Tajc4+GzB58Yn x3/2DQo/3tHo4mYc4jEUiw+FAfK77o//edCQTvBECTaWq0JHXHu3CzGonxnScpHOMVoASRH595w XAJlr23X X-Authority-Analysis: v=2.4 cv=NrDRc9dJ c=1 sm=1 tr=0 ts=68b668e6 cx=c_pps a=0uOsjrqzRL749jD1oC5vDA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=wrAvr2YEdirxk7wnKeUA:9 a=QEXdDO2ut3YA:10 a=mQ_c8vxmzFEMiUWkPHU9:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 suspectscore=0 malwarescore=0 priorityscore=1501 phishscore=0 impostorscore=0 spamscore=0 bulkscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300027 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756785747554124100 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 fa122b6d76..fe5263e13f 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -251,7 +251,9 @@ def need_env(tag): "A_LOAD" in attribdict[tag] or "A_CVI_GATHER" in attribdict[tag] or "A_CVI_SCATTER" in attribdict[tag] or - "A_IMPLICIT_WRITES_USR" in attribdict[tag]) + "A_IMPLICIT_WRITES_USR" in attribdict[tag] or + "A_PRIV" in attribdict[tag] or + "J2_trap" in tag) =20 =20 def need_slot(tag): --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756784956; cv=none; d=zohomail.com; s=zohoarc; b=SRgWhCreZ6pnBdZZ6ajozE5bdc1KMKk8HF1SqdIp9gLxe9I9dHywGjIKDw2kAVAcYSiFgGggJaMlxxPPZ1nJ/N3bTf+ALx/i5O1Sn0ZpmhNuK8suOhgT13y+UVBxvXIh2kmIBCiE3UKVA/ByMB8UeQF97I24B7/9GpBlHeJ7C7U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756784956; 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=fokjFeEftBdKOeuh+z4Cq6nX4C/A86MjAL5I/qUJeRU=; b=k9+H6SPBB4LMVeJNfAyxvnHOOXbLi5j4SlhHm9SVBw/jZ8Zw5DEzO5L1lhEUqk+jffF4pWayDx8PF0SsWPDSoei5cudF1+GC1h02WwDI9cLK27bYcjTJOpuwkgcqQAtHyfZl/JQTR43qJeseMeIdtF+kY3MSUViFc6nKY3vThfw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756784956165879.9532144185077; Mon, 1 Sep 2025 20:49:16 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI0S-0007Ib-Qa; Mon, 01 Sep 2025 23:48:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI04-0006tC-ED for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:48:05 -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 1utI02-0004Uy-Eh for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:48:04 -0400 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822RkQU016270 for ; Tue, 2 Sep 2025 03:47:51 GMT Received: from mail-pg1-f199.google.com (mail-pg1-f199.google.com [209.85.215.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48utk8x86d-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:47:50 +0000 (GMT) Received: by mail-pg1-f199.google.com with SMTP id 41be03b00d2f7-b4c724d27f8so2848909a12.3 for ; Mon, 01 Sep 2025 20:47: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 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.47.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:47: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= fokjFeEftBdKOeuh+z4Cq6nX4C/A86MjAL5I/qUJeRU=; b=QMMeahZmPOgQtmfQ jM2mGpJZ8dzJl42TLI4pKc9cFHejdqbDSsO8A3CZev3cT5HCSJPBcCzKR4z3La4u IY6ui8Z9zllJkLNMvaSW0o+pg8YxycTDmyUsec9feZNodmJq9qDYGROR5pNLRBcx 8hCSL++7zVWfuCG6HHxidJnzekiFVVJUAaIuYWKMhA/uoFuq8UsU6i9dZEWO7ySs 0X2jUzIL/nR+kkL5f2SG6DeSGsYIFoKZ3dXfqbtMj1kedIett52h8l4UIpxNLSHm Y9hbVhZnKTBjuEcru7ldRTX88Wsdg/OswZbxN8DM1YRcT6AlefIzD+797r1VtXbR Ghn25Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784870; x=1757389670; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fokjFeEftBdKOeuh+z4Cq6nX4C/A86MjAL5I/qUJeRU=; b=bNIZmO4vsLl28O1rSZPdTceCmi5N0NOGQq/pwV7YfIqU3yZyXy/WPGnVQpsmsBlw6D ZiIVVs7neBcWcsAvijU/zxbIROGx4U61rjbsElA+XbqtReCb6F8j1Gh3dAEPqOcvLzh0 SNrMXlyI83JXmBHAFF+6xpkN0igjzYn/zkWfjMmqgfAfXiUahBnlBPrb7sEsbaMIaX7A XTih++rmUcXjfL1UaQIm/bNcSXmyNbtDUhHLzS5zE+2k0HNwVXIvTCwTyzkwUrEyN0z/ wjE/4DAhF5ZrHMv6QjRG2ScJI7L9rrtYrurOpaRsUolFeNf8K70O+MeRjZAw+BK5CgtF J0MA== X-Gm-Message-State: AOJu0YyCzXIDgQ3auulBFX5j7LKe3O6/ahwRvuL6VLXmb5MqmyVaXQSs QD1buex7HP+IPPxLf5aAxkKTZQZymXEKTlYH5E3npAjSCaqw+iTqPoUJNWSvYSC/QK29LAqM72T 6jO6xFfXlvbSwzDAzPmzJMcK8jLhbAnq5aDLIIK+LU+A15ijbbHw/z7fcYGqoma36wG+v X-Gm-Gg: ASbGncvlavwzXIjuJwlzbcKfH8bpJEZyFPidzfE/ya/Mh5lpeXT+A74xOV14bo+Re0S eMwlGAPbyhSorBAmT2yYKhnfbBWuetdm4U4PSVFH+0XPaAvEwGfoNqNxNDyya1BkbYM3rk6QMEi QCsHsIIa27458itzsg4XPhevjSBGYjAZqp/FdUysohcaHuYI5nHC+54rS3XxA4/8uAee3ASNot0 tHfKwS5rXCzcW5PQTA1oJmnq3HcFyezKSql2H2XtpLp9cF5YHL/rRmbRmYhxLHqE4V8mzUBcHDh 6cb4K2pqzGTtzvL+xpRKwvY4CImVEm7DGolSTzrMsB7XIxGzHzakjuOeF9Zm+8EAnxspNtRFFyb FvlPr2hu7MECf X-Received: by 2002:a05:6a21:99a1:b0:243:aa6f:ff2a with SMTP id adf61e73a8af0-243d6bc6e98mr12796099637.0.1756784869851; Mon, 01 Sep 2025 20:47:49 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGParIAy88jmApJ3OgoJh9gi9FEqgnA51Fd7Z457w9b2qKLmGpQ+T5gQk9A9sH5rUp5O8osDg== X-Received: by 2002:a05:6a21:99a1:b0:243:aa6f:ff2a with SMTP id adf61e73a8af0-243d6bc6e98mr12796067637.0.1756784869358; Mon, 01 Sep 2025 20:47:49 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain Subject: [PATCH v2 23/40] target/hexagon: Define register fields for system regs Date: Mon, 1 Sep 2025 20:46:58 -0700 Message-Id: <20250902034715.1947718-24-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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: 84B_QLRZJjq-gll_UupilWSTOmTv6apV X-Proofpoint-ORIG-GUID: 84B_QLRZJjq-gll_UupilWSTOmTv6apV X-Authority-Analysis: v=2.4 cv=ccnSrmDM c=1 sm=1 tr=0 ts=68b668e6 cx=c_pps a=Oh5Dbbf/trHjhBongsHeRQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=9dJjMySildbj4ad5Q0IA:9 a=QEXdDO2ut3YA:10 a=_Vgx9l1VpLgwpw_dHYaR:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDA0MiBTYWx0ZWRfXxeEWn7P21AQD yJmo5WKkNOK1o+LFR8T/sDgVqeLLzqCCb4qkJ5FAbdzDxT1BAij1ufR/xHJxAM4lrfOOihihuUE AgBNrLxzzrOsJ/FBP2zaBci+t+xjM4K8SDOt6u16ziXEGBwNE1f86S4bOn2ZQisZqqReVnI+toM YkPI9tsjfWLDalx448qXYAJ8/lcpjgYuHjMlOFSE5NClJydTgZHKHf/LQNbZEiQeOTxjVU8a5Cl doaCZ2T92SJN+Ma8tYv7f3xJPJwirD9UsbQPb63Swm39kPa6fe8HEBrYc3IKMXf+NSvw/edXl1l 0X5YC8KyldOT1cGcZPhPd53sDL/znu2XTBpeQwGru1F5pGtHN9qW4XVdBBNve7LdKF2a31OJ6xi Ag6DKG8M X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 phishscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 clxscore=1015 suspectscore=0 spamscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300042 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756784958542124100 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 f2a58d486c..9b112ccec6 100644 --- a/target/hexagon/reg_fields_def.h.inc +++ b/target/hexagon/reg_fields_def.h.inc @@ -39,3 +39,99 @@ DEF_REG_FIELD(USR_FPDBZE, 26, 1) DEF_REG_FIELD(USR_FPOVFE, 27, 1) DEF_REG_FIELD(USR_FPUNFE, 28, 1) DEF_REG_FIELD(USR_FPINPE, 29, 1) + +DEF_REG_FIELD(IPENDAD_IAD, 16, 16) +DEF_REG_FIELD(IPENDAD_IPEND, 0, 16) + +DEF_REG_FIELD(SCHEDCFG_EN, 8, 1) +DEF_REG_FIELD(SCHEDCFG_INTNO, 0, 4) +DEF_REG_FIELD(BESTWAIT_PRIO, 0, 9) + + +/* PTE (aka TLB entry) fields */ +DEF_REG_FIELD(PTE_PPD, 0, 24) +DEF_REG_FIELD(PTE_C, 24, 4) +DEF_REG_FIELD(PTE_U, 28, 1) +DEF_REG_FIELD(PTE_R, 29, 1) +DEF_REG_FIELD(PTE_W, 30, 1) +DEF_REG_FIELD(PTE_X, 31, 1) +DEF_REG_FIELD(PTE_VPN, 32, 20) +DEF_REG_FIELD(PTE_ASID, 52, 7) +DEF_REG_FIELD(PTE_ATR0, 59, 1) +DEF_REG_FIELD(PTE_ATR1, 60, 1) +DEF_REG_FIELD(PTE_PA35, 61, 1) +DEF_REG_FIELD(PTE_G, 62, 1) +DEF_REG_FIELD(PTE_V, 63, 1) + +/* SYSCFG fields */ +DEF_REG_FIELD(SYSCFG_MMUEN, 0, 1) +DEF_REG_FIELD(SYSCFG_ICEN, 1, 1) +DEF_REG_FIELD(SYSCFG_DCEN, 2, 1) +DEF_REG_FIELD(SYSCFG_ISDBTRUSTED, 3, 1) +DEF_REG_FIELD(SYSCFG_GIE, 4, 1) +DEF_REG_FIELD(SYSCFG_ISDBREADY, 5, 1) +DEF_REG_FIELD(SYSCFG_PCYCLEEN, 6, 1) +DEF_REG_FIELD(SYSCFG_V2X, 7, 1) +DEF_REG_FIELD(SYSCFG_IGNOREDABORT, 8, 1) +DEF_REG_FIELD(SYSCFG_PM, 9, 1) +DEF_REG_FIELD(SYSCFG_TLBLOCK, 11, 1) +DEF_REG_FIELD(SYSCFG_K0LOCK, 12, 1) +DEF_REG_FIELD(SYSCFG_BQ, 13, 1) +DEF_REG_FIELD(SYSCFG_PRIO, 14, 1) +DEF_REG_FIELD(SYSCFG_DMT, 15, 1) +DEF_REG_FIELD(SYSCFG_L2CFG, 16, 3) +DEF_REG_FIELD(SYSCFG_ITCM, 19, 1) +DEF_REG_FIELD(SYSCFG_L2NWA, 21, 1) +DEF_REG_FIELD(SYSCFG_L2NRA, 22, 1) +DEF_REG_FIELD(SYSCFG_L2WB, 23, 1) +DEF_REG_FIELD(SYSCFG_L2P, 24, 1) +DEF_REG_FIELD(SYSCFG_SLVCTL0, 25, 2) +DEF_REG_FIELD(SYSCFG_SLVCTL1, 27, 2) +DEF_REG_FIELD(SYSCFG_L2PARTSIZE, 29, 2) +DEF_REG_FIELD(SYSCFG_L2GCA, 31, 1) + +/* SSR fields */ +DEF_REG_FIELD(SSR_CAUSE, 0, 8) +DEF_REG_FIELD(SSR_ASID, 8, 7) +DEF_REG_FIELD(SSR_UM, 16, 1) +DEF_REG_FIELD(SSR_EX, 17, 1) +DEF_REG_FIELD(SSR_IE, 18, 1) +DEF_REG_FIELD(SSR_GM, 19, 1) +DEF_REG_FIELD(SSR_V0, 20, 1) +DEF_REG_FIELD(SSR_V1, 21, 1) +DEF_REG_FIELD(SSR_BVS, 22, 1) +DEF_REG_FIELD(SSR_CE, 23, 1) +DEF_REG_FIELD(SSR_PE, 24, 1) +DEF_REG_FIELD(SSR_BP, 25, 1) +DEF_REG_FIELD(SSR_XE2, 26, 1) +DEF_REG_FIELD(SSR_XA, 27, 3) +DEF_REG_FIELD(SSR_SS, 30, 1) +DEF_REG_FIELD(SSR_XE, 31, 1) + +/* misc registers */ +DEF_REG_FIELD(IMASK_MASK, 0, 16) + +DEF_REG_FIELD(STID_PRIO, 16, 8) +DEF_REG_FIELD(STID_STID, 0, 8) + +/* MODECTL fields */ +DEF_REG_FIELD(MODECTL_E, 0, 8) +DEF_REG_FIELD(MODECTL_W, 16, 8) + +DEF_REG_FIELD(CCR_L1ICP, 0, 2) +DEF_REG_FIELD(CCR_L1DCP, 3, 2) +DEF_REG_FIELD(CCR_L2CP, 6, 2) + +DEF_REG_FIELD(CCR_HFI, 16, 1) +DEF_REG_FIELD(CCR_HFD, 17, 1) +DEF_REG_FIELD(CCR_HFIL2, 18, 1) +DEF_REG_FIELD(CCR_HFDL2, 19, 1) +DEF_REG_FIELD(CCR_SFD, 20, 1) + +DEF_REG_FIELD(CCR_GIE, 24, 1) +DEF_REG_FIELD(CCR_GTE, 25, 1) +DEF_REG_FIELD(CCR_GEE, 26, 1) +DEF_REG_FIELD(CCR_GRE, 27, 1) +DEF_REG_FIELD(CCR_VV1, 29, 1) +DEF_REG_FIELD(CCR_VV2, 30, 1) +DEF_REG_FIELD(CCR_VV3, 31, 1) --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756786125; cv=none; d=zohomail.com; s=zohoarc; b=dyEOHw6gLc6cvnyKTUe/UckKkAwNxIk7PYMeWA+HP5Bjh2bbcBtczBi9eF8f1YK8RKiSA18p5NVDeYfgwzaiMymSsRyggO3gIkZ7iyzJMFvtdjw43e5OKfTwFnsGEkSeh3XWVLRR9BbUgA5dYsLhf9atphrI9YpkZiBp4nPuj7Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756786125; 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=tNnBEADDordAOyy5MB6vN+nl6oXmjSBG+FKcxUPzNJY=; b=c8SSXKjFYhbVHxX5J1p/qHRn2SL3j8U5h6fzpdkY0EVOQ44+/Q987AeaVTs/KtRQiQKoY3z64UnghLd7aWrrQpqc5V5WLUzE4Tc2rRpONqoty1JgNBJfbNXBp6Q/l9CEAo/luGIjWbyim27H9CKuaHzgfXhWJJ6ui5lqmELRAVE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756786125202961.7598772478359; Mon, 1 Sep 2025 21:08:45 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI0M-00078N-Kn; Mon, 01 Sep 2025 23:48:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI05-0006tE-0e for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:48: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 1utI03-0004VD-GX for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:48:04 -0400 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822S6b7030132 for ; Tue, 2 Sep 2025 03:47:52 GMT Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48w8wy26pm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:47:52 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2445805d386so53770615ad.1 for ; Mon, 01 Sep 2025 20:47: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 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.47.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:47:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= tNnBEADDordAOyy5MB6vN+nl6oXmjSBG+FKcxUPzNJY=; b=NRVrb7nPFwSQO8Sl u/HL2Unpxi2S/ZKRpq7Rzvi84E2/VQUW9jtd3oYIHRU412W1ShTX+GY4onXYhQdt 0ZZ05Hzv6y+NokB3PLN7vCdwy48xclG8bL0bWBXPG9rw0edL1tNhUPmxSfJnd0Tp tZsrcOpyyzcj9xQmTj/14k5Zu5TBrD19Ba1Eyo85pZ4wC6a41Gf8aIeXY5+hEk9f yMPgdtfFN7mkV9A3AvPKuHGhgqCxdsCAWevxUPV4RJA0Oy7mLd0utTksQi0Hc3+6 BPMOSuRHJhI/h9s8Poym4Q0/TXi6+cJ24wVOCNzT++zCpncMNBtGZ7qKB70TrOCa 51suMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784871; x=1757389671; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=tNnBEADDordAOyy5MB6vN+nl6oXmjSBG+FKcxUPzNJY=; b=IR/1Tp7tjATidACJMQ6H9+Nd2JkV7yss+rJFnQ1h8uF2S3GBLCtwr7Vm2RaXJFvJa7 Wnl72GKc0GXAacsRpwq82eoNzgnVx5M3bG+ZlRzQZk3Uu8GPrCfokSJ7mIOfx1bzJAnz yhe4Q65jaBmXC4dLlk1AfJm6PoFIjzTFa/MOodSq1jw8Er68Vm0EQLZbLPl8mi2WCr24 iMwxuWxmQXzS7zlux8nl1yibQQ8cHA4c2vwvbZUUd8fQHpnyoDqvG7KSJu8ugxO/VLB/ zZ+ZIQ2UTLpkkvpGWc+riC3MXcQdk/9rbmr+4Lb4as4mQVxIw/gbQCcTCUVBflDdqjrP dNMg== X-Gm-Message-State: AOJu0YzGaNslIxTGW3MMs9kt7y2nnQ/9LvynCpQvIg+7gnseHHN9fY7d J18pkiUEAD3aSwS/hG7I4Dfi+Sklfgn+D5xXXNg3HX/VV5xGarmnneat9IgQ+CFkKt0MlNjg9K2 RBWo6B29U2QfXvCtCpnRwkkS4M7+ciWIN7gplKqoJNMvbcWGvXzqaRDP290g+YyYlN4Nw X-Gm-Gg: ASbGncu81w8x5wKZQtnA7cToxaWOJBcVeV4y2aHcZcBhWStkHWuAHLyOnpC+EgFUcSZ ofi0nvaKn/xYEeCL7S3o3/0cfROtQCQdWclUddhJCX0l1TScxWJPC0Q84RNoZ87dLm+SeAkruzR mIr7U7FmY5nr2yDDPpsomTUtZnsABOAShReH6KAj6spX+6IpYwJKHu9T7hIFtNbp2CJEY8pMt0G 8QPHvtZQSqgM++//HQ8pLkQVq6jfU0ND5A7p4capCEPgzveOagFN2zCFaSVqbnOOF44jZjuWUKK dOyvnagtZkxPK3M80OqkVQ/6bZxME6SCbY3TDNPsWrh8G9pht79OYRED0s5de/NkWtxVPnoFCRw 7B5aBPpAFxSbH X-Received: by 2002:a05:6a20:1584:b0:243:c2d8:a06c with SMTP id adf61e73a8af0-243d6e00d61mr13017727637.13.1756784870894; Mon, 01 Sep 2025 20:47:50 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEsmb258MGnROlRy398pttq87bKhKwMn5oc4AuQxDScDEart45d7OkuZoZKOhM1DhCo+LQSeA== X-Received: by 2002:a05:6a20:1584:b0:243:c2d8:a06c with SMTP id adf61e73a8af0-243d6e00d61mr13017686637.13.1756784870394; Mon, 01 Sep 2025 20:47:50 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain Subject: [PATCH v2 24/40] target/hexagon: Implement do_raise_exception() Date: Mon, 1 Sep 2025 20:46:59 -0700 Message-Id: <20250902034715.1947718-25-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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=Ycq95xRf c=1 sm=1 tr=0 ts=68b668e8 cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=hK29HtBGQMdOITfcgGsA:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: f-RQ6F4669dkFtGWT7dxgWk8tzPLsacf X-Proofpoint-ORIG-GUID: f-RQ6F4669dkFtGWT7dxgWk8tzPLsacf X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTAxMDEwMSBTYWx0ZWRfX+3VImTDwV9DR eBVGPUKGNUbdIVfxcvvKZuI7KwUKk32AifUHiKO4NUc+GyRnNtbm+eJhTVJxT/zAufiGpEvq1sq ngmgDEhsExvXCONcAllVKKFf6xsUcI1fkkTWukbriHVCjlUI3lJ3oRHk8UaM8T1DFGtAv6iwoDj Eio+WJTE8JSfmxFzG6Yzz+AiVDVjJE37WRJMEkQ7lMQD7eEHzV+V7LgCtzn76Gu9+c5UU32DUIw dlUdP6I/skSXS0S/wdFSdxQSfktZvWjtQV5ZCOWrZyVQPJHN+gIy4p0SRVXJ9IshROcWRtcOVY9 CXV20sKRefgCwkh1oWK/yD+0quRWWGbYPLWde3rSXgonPPTiq4Hzbq+AacxXFf6zvBbk7p35vrp QCMDFkLm X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 adultscore=0 phishscore=0 malwarescore=0 bulkscore=0 suspectscore=0 impostorscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2509010101 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756786126139124100 From: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/internal.h | 5 +++++ target/hexagon/op_helper.c | 20 ++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/target/hexagon/internal.h b/target/hexagon/internal.h index 9658141316..7cf7bcaa6c 100644 --- a/target/hexagon/internal.h +++ b/target/hexagon/internal.h @@ -31,6 +31,11 @@ void hexagon_debug(CPUHexagonState *env); =20 extern const char * const hexagon_regnames[TOTAL_PER_THREAD_REGS]; =20 +void G_NORETURN do_raise_exception(CPUHexagonState *env, + uint32_t exception, + target_ulong PC, + uintptr_t retaddr); + #ifndef CONFIG_USER_ONLY extern const VMStateDescription vmstate_hexagon_cpu; #endif diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 72bb75a878..cbbf3048a0 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -37,6 +37,26 @@ #define SF_MANTBITS 23 =20 /* Exceptions processing helpers */ +G_NORETURN +void do_raise_exception(CPUHexagonState *env, uint32_t exception, + target_ulong PC, uintptr_t retaddr) +{ + CPUState *cs =3D env_cpu(env); +#ifdef CONFIG_USER_ONLY + qemu_log_mask(CPU_LOG_INT, "%s: 0x%08x\n", __func__, exception); +#else + qemu_log_mask(CPU_LOG_INT, "%s: 0x%08x, @ %08" PRIx32 "\n", + __func__, exception, PC); + + ASSERT_DIRECT_TO_GUEST_UNSET(env, exception); +#endif + + env->gpr[HEX_REG_PC] =3D PC; + cs->exception_index =3D exception; + cpu_loop_exit_restore(cs, retaddr); + cs->halted =3D false; +} + G_NORETURN void hexagon_raise_exception_err(CPUHexagonState *env, uint32_t exception, uintptr_t pc) --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756785444; cv=none; d=zohomail.com; s=zohoarc; b=gx6VIek0ZtRXOtIu7Z/zIiSOf6SUSEzFoIhwF2D9pt+zmM04nMwVcl7Sx+LaEk51XTGPhdIYs8PnPoy7Y1EhYSof0NNmv61DeNkNCnjJcbEBIKe9MWOE1aKwsMrIFeu/EBP/aXxcylpc9yyURJX6LzJU4XjWyrd1dsp3D1TEVd0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785444; 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=IUKjVy/F0OL1P6eje5HVSseC8Dc39hL9ggfvsFUB85E=; b=C2WmIShC8v+y84OZaOUgEIdQCiDf3/WGZSVVqcX8Muy+kKji/FSAk9Y12KU5VPorfaUxiTug5lVLwlq9tvV8YXziuarCrUHhLfdy4rtw3NDVcUU7bqNC6K4ZO3mwaO9iwB2fAaNnVq2e5YlDUVd4dCOzU00Bw7Y788FGazNeqts= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756785444406390.07224681047023; Mon, 1 Sep 2025 20:57:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI0X-0007Ln-CF; Mon, 01 Sep 2025 23:48:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI0E-00073C-R1 for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:48: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 1utI09-0004VQ-8D for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:48:14 -0400 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822S6b9030132 for ; Tue, 2 Sep 2025 03:47:55 GMT Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48w8wy26pr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:47:55 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-3276af4de80so7143637a91.1 for ; Mon, 01 Sep 2025 20:47: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 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.47.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:47:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= IUKjVy/F0OL1P6eje5HVSseC8Dc39hL9ggfvsFUB85E=; b=QTm7iOwmYqE58xMd Qoj0vDSL1STfxg1Py0F/z6IWPPbX1lBwH0HPi84RkXYxEPrEzmwVJQBt5yPTRWMe +B7n/x6Q07xE/5o9pGxAK+Zj7bRAevFHnKuiTiCOUyvRy6wQb/FDdChsgWnzSdBS DL+l8biRzinWJv26eWxDJSoH8tiDd3d2H5bRf5ogQQFiPTuJKXAQyxcmfuRe9eE8 jr6p6gdjdaJpyOzD00zVkdVwhOPmOyfQ6zdMp1hgQvWmpS2Rhu/JW6VtGpOxQatA Jma1xV5hLV8hzqJP6lA8CAzdTEzdKKR8aQ4Pi9/NwtwM/APWThgt4X6aKgaTwbbL baExiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784873; x=1757389673; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=IUKjVy/F0OL1P6eje5HVSseC8Dc39hL9ggfvsFUB85E=; b=k3qtn+1oxcuqlbNEaV+1dkfTEoWWERdh3DDvQUM5c+B4cYqxYaIBnVkDhRqCexpD4U fQjmhoGYuBrNSrfpw6Eaet98anYSHyMwWA7+4+3IiuREqPy/EINu9qZqkENKPmTD0UCH kFcrBsRbysj0LTehT6hOviP80Xm1MX32Qcy67TUnsWTBlCtHdGzqWwePEXFjzId85850 wmpO9kuKgzfBuirZhHvVa7MzT58eVx6OCR1m9s9ukAbqVSbtJcY0YnZcsgzCrHMOA0lD cYC+AebQzTYxoQdsTGVhehRwp6sBBxcRzixDbb6qH48SlZ/D13RqDnpI4R590k+YHkZf KCCw== X-Gm-Message-State: AOJu0Yw9AwJB/nPrqTrpPLql/WWLjs2EiDj2vTeyVbSmsKONBUqCifgN tvuOCKaD8ynPdoX9LQdVxr8R84XQvOaU3Pb7kLqV0zHCZQOuLJ3vOGxJU6uwgiGJQbVJjy/YFjV 1uJR0oupa52kxupj6XTiRIFJrvgvb1in6nB93xyRRkdY0vFNMFTLRsVVX1WtSuIEtENeJ X-Gm-Gg: ASbGnctdZMVbxz60/Ufc6x84Mj56HXcoZEt2C5F94ebU2KXeonf0I2aSitMR+6+Vi2t L23pZ7jFpptUILowWqnNbFhdvuYuiuNGTqzmgjZD+i2CoXSASdsK7cs8ts/qMI1TBq2owJ841Z1 4Gcz8rfMVVseCpVuMFink4iMQ/5RpfqHk0cuK5A5MpFmKGjq7kavKYC0DRkW2Ym//Af/Quaey2I kv/UxsUU6jXqgw/MVWmKcpNMMK3skheKf40RG7txqsXZHxPGEuIAIAjQm0Y8pc7zstTdDejuZJj Utfs/IDlcRpjPR3qfuPlsy+2/QOmfQMJkPmImyGuvtPEyAhlGO6PkRye4z9VwMMmZZVMzQlVDJE DI+9iCgt29Wja X-Received: by 2002:a17:90b:4b8d:b0:327:b66e:a865 with SMTP id 98e67ed59e1d1-328156baeb7mr16007918a91.17.1756784872743; Mon, 01 Sep 2025 20:47:52 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEiExc67IfumXTRh2kAqd4FUOvSi9jWvoPAg9zl9eiBiLsU2hgIIVEt4gJfGlH+8z5vhOgQZg== X-Received: by 2002:a17:90b:4b8d:b0:327:b66e:a865 with SMTP id 98e67ed59e1d1-328156baeb7mr16007847a91.17.1756784871735; Mon, 01 Sep 2025 20:47:51 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain Subject: [PATCH v2 25/40] target/hexagon: Add system reg insns Date: Mon, 1 Sep 2025 20:47:00 -0700 Message-Id: <20250902034715.1947718-26-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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=Ycq95xRf c=1 sm=1 tr=0 ts=68b668eb cx=c_pps a=RP+M6JBNLl+fLTcSJhASfg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=xO_In5SO0CKeGArpF-QA:9 a=nJrV9obGcL2yI_u-:21 a=QEXdDO2ut3YA:10 a=iS9zxrgQBfv6-_F4QbHw:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: 4mXS5Mxu67pcOUxMf-M5OSEqBRBAM-xu X-Proofpoint-ORIG-GUID: 4mXS5Mxu67pcOUxMf-M5OSEqBRBAM-xu X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTAxMDEwMSBTYWx0ZWRfX3+KRi0MmxOPu 6ns2C5j3JsUb7edElYS9ezphVw7P3ipiuvOv4uLTvpWbCgMkO+FuTGi6vNIb0clHIFKadp0DJXq egy/5qhcdZJNNJQR3vWzgNveZx5IVq0SEzjJIPcS6nMHwKa/p+K8Z+D+M+GBbv7ZFlCIos+apP9 GdsM+hlDNuUkVRKNfSFOusv1rio0+ClcaQbGbdt0wJjjqtrxf3FSKt8bSH/xqRfHJ8aM2LE6PZB /5CbPrcFdayNEBgBXDZJ/4LFXqqnRtgpP3WLRXdCb2KQ9DMc8iFI2N3GjpVO2dCFWVmgHD8Imlj 1lEVO92z/+qiscuviP739Kq5HHD1gBxSMGYNmolNTvb/Z7WRbHPoh1dsUrQWJKJEBi3iCtK+Sge 9DcaOP/B X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 adultscore=0 phishscore=0 malwarescore=0 bulkscore=0 suspectscore=0 impostorscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2509010101 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756785445977124100 From: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/hex_common.py | 15 +- target/hexagon/imported/encode_pp.def | 213 +++++++++++++++------ target/hexagon/imported/system.idef | 262 +++++++++++++++++++++++--- 3 files changed, 408 insertions(+), 82 deletions(-) diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py index fe5263e13f..24139cbe67 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -1237,11 +1237,18 @@ def init_registers(): for reg in new_regs: new_registers[f"{reg.regtype}{reg.regid}"] =3D reg =20 +def is_new_reg(tag, regid): + if regid[0] in "NO": + return True + return regid[0] =3D=3D "P" and \ + f"{regid}N" in semdict[tag] and \ + f"{regid}V" not in semdict[tag] + def get_register(tag, regtype, regid): - if f"{regtype}{regid}V" in semdict[tag]: - return registers[f"{regtype}{regid}"] - else: - return new_registers[f"{regtype}{regid}"] + regid =3D f"{regtype}{regid}" + is_new =3D is_new_reg(tag, regid) + reg =3D new_registers[regid] if is_new else registers[regid] + return reg =20 def helper_ret_type(tag, regs): ## If there is a scalar result, it is the return type diff --git a/target/hexagon/imported/encode_pp.def b/target/hexagon/importe= d/encode_pp.def index 0cd30a5e85..37faf62b1b 100644 --- a/target/hexagon/imported/encode_pp.def +++ b/target/hexagon/imported/encode_pp.def @@ -1,5 +1,5 @@ /* - * Copyright(c) 2019-2023 Qualcomm Innovation Center, Inc. All Rights Res= erved. + * Copyright(c) 2019-2020 Qualcomm Innovation Center, Inc. All Rights Res= erved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,6 +16,7 @@ */ =20 /* + * encode32.def * Encodings for 32 bit instructions * */ @@ -341,6 +342,8 @@ DEF_ENC32(L4_pload##TAG##tnew_abs,ICLASS_LD" 1 11 "OPC"= iiiii PP110tti 1--ddd DEF_ENC32(L4_pload##TAG##fnew_abs,ICLASS_LD" 1 11 "OPC" iiiii PP111tti = 1--ddddd") =20 =20 + + /* 0 000 misc: dealloc,loadw_locked,dcfetch */ STD_LD_ENC(bzw4,"0 101") STD_LD_ENC(bzw2,"0 011") @@ -375,6 +378,7 @@ DEF_ANTICLASS32(ICLASS_LD" 1110 000----- PP------ -----= ---",LD_ADDR_POST_REG) =20 DEF_ENC32(L2_deallocframe, ICLASS_LD" 000 0 000 sssss PP0----- ---ddddd= ") DEF_ENC32(L4_return, ICLASS_LD" 011 0 000 sssss PP0000-- ---ddddd= ") + DEF_ENC32(L4_return_t, ICLASS_LD" 011 0 000 sssss PP0100vv ---ddddd= ") DEF_ENC32(L4_return_f, ICLASS_LD" 011 0 000 sssss PP1100vv ---ddddd= ") DEF_ENC32(L4_return_tnew_pt, ICLASS_LD" 011 0 000 sssss PP0110vv ---ddddd= ") @@ -382,15 +386,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 +405,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 +493,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_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 +511,34 @@ 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 +581,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)") @@ -591,7 +635,6 @@ DEF_ENC32(J2_callf, ICLASS_J" 1101 ii1iiiii PPi-0= -uu iiiiiii-") /*******************************/ =20 =20 -/* EJP: this has to match what we have in htmldocs.py... so I will call it= CJ, we can change it */ DEF_CLASS32(ICLASS_CJ" 0--- -------- PP------ --------",CJ) =20 DEF_FIELDROW_DESC32(ICLASS_CJ" 00-- -------- -------- --------","[#0-3] p= d=3Dcmp.xx(R,#u5) ; if ([!]p0.new) jump:[h] #s9:2 ") @@ -738,12 +781,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 +804,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 @@ -776,8 +827,66 @@ DEF_ENC32(C4_and_orn, ICLASS_CR" 1011 1011--ss PP0= ---tt uu----dd") DEF_ENC32(C4_or_andn, ICLASS_CR" 1011 1101--ss PP0---tt uu----dd") DEF_ENC32(C4_or_orn, ICLASS_CR" 1011 1111--ss PP0---tt uu----dd") =20 -DEF_ENC32(C4_fastcorner9, ICLASS_CR"1011 0000--ss PP1---tt 1--1--dd= ") -DEF_ENC32(C4_fastcorner9_not, ICLASS_CR"1011 0001--ss PP1---tt 1--1--dd= ") +DEF_ENC32(C4_fastcorner9, ICLASS_CR"1011 0000--ss PP1---tt 1--1--dd") +DEF_ENC32(C4_fastcorner9_not, ICLASS_CR"1011 0001--ss PP1---tt 1--1--dd") + + + +/* 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") + + + + + =20 =20 =20 @@ -956,9 +1065,9 @@ MPY_ENC(F2_dfmin, "1000","ddddd","0","0","1= ","1","11") MPY_ENC(F2_dfmax, "1000","ddddd","0","1","0","0","11") MPY_ENC(F2_dfmpyll, "1000","ddddd","0","1","0","1","11") =20 -MPY_ENC(M7_dcmpyrw, "1000","ddddd","0","0","0","1","10") +MPY_ENC(M7_dcmpyrw, "1000","ddddd","0","0","0","1","10") MPY_ENC(M7_dcmpyrwc, "1000","ddddd","0","0","1","1","10") -MPY_ENC(M7_dcmpyiw, "1000","ddddd","0","1","1","0","10") +MPY_ENC(M7_dcmpyiw, "1000","ddddd","0","1","1","0","10") MPY_ENC(M7_dcmpyiwc, "1000","ddddd","0","1","1","1","10") =20 =20 @@ -967,14 +1076,14 @@ DEF_FIELDROW_DESC32(ICLASS_M" 1001 -------- PP------= --------","[#9] Rd=3D(Rss,Rtt MPY_ENC(M2_vdmpyrs_s0, "1001","ddddd","0","0","0","0","00") MPY_ENC(M2_vdmpyrs_s1, "1001","ddddd","0","0","0","1","00") =20 -MPY_ENC(M7_wcmpyrw, "1001","ddddd","0","0","1","0","00") +MPY_ENC(M7_wcmpyrw, "1001","ddddd","0","0","1","0","00") MPY_ENC(M7_wcmpyrw_rnd, "1001","ddddd","0","0","1","1","00") -MPY_ENC(M7_wcmpyiw, "1001","ddddd","0","1","0","0","00") +MPY_ENC(M7_wcmpyiw, "1001","ddddd","0","1","0","0","00") MPY_ENC(M7_wcmpyiw_rnd, "1001","ddddd","0","1","0","1","00") =20 -MPY_ENC(M7_wcmpyrwc, "1001","ddddd","0","1","1","0","00") +MPY_ENC(M7_wcmpyrwc, "1001","ddddd","0","1","1","0","00") MPY_ENC(M7_wcmpyrwc_rnd, "1001","ddddd","0","1","1","1","00") -MPY_ENC(M7_wcmpyiwc, "1001","ddddd","1","0","0","0","00") +MPY_ENC(M7_wcmpyiwc, "1001","ddddd","1","0","0","0","00") MPY_ENC(M7_wcmpyiwc_rnd, "1001","ddddd","1","0","0","1","00") =20 =20 @@ -1030,10 +1139,10 @@ MPY_ENC(F2_dfmpylh, "1010","xxxxx","0","0"= ,"0","0","11") MPY_ENC(F2_dfmpyhh, "1010","xxxxx","0","0","0","1","11") =20 =20 -MPY_ENC(M7_dcmpyrw_acc, "1010","xxxxx","0","0","0","1","10") -MPY_ENC(M7_dcmpyrwc_acc, "1010","xxxxx","0","0","1","1","10") -MPY_ENC(M7_dcmpyiw_acc, "1010","xxxxx","0","1","1","0","10") -MPY_ENC(M7_dcmpyiwc_acc, "1010","xxxxx","1","0","1","0","10") +MPY_ENC(M7_dcmpyrw_acc, "1010","xxxxx","0","0","0","1","10") +MPY_ENC(M7_dcmpyrwc_acc, "1010","xxxxx","0","0","1","1","10") +MPY_ENC(M7_dcmpyiw_acc, "1010","xxxxx","0","1","1","0","10") +MPY_ENC(M7_dcmpyiwc_acc, "1010","xxxxx","1","0","1","0","10") =20 =20 =20 @@ -1063,7 +1172,6 @@ SP_MPY(M2_mpy_sat_rnd, "1100","ddddd","1","1","= 0") SP_MPY(M2_mpyu, "1100","ddddd","0","0","1") =20 DEF_FIELDROW_DESC32(ICLASS_M" 1101 -------- PP------ --------","[#13] Rd= =3D(Rs,Rt)") -/* EJP: same as mpyi MPY_ENC(M2_mpyui, "1101","ddddd","0","0","= 1","0","00") */ MPY_ENC(M2_mpyi, "1101","ddddd","0","0","0","0","00") MPY_ENC(M2_mpy_up, "1101","ddddd","0","0","0","0","01") MPY_ENC(M2_mpyu_up, "1101","ddddd","0","0","1","0","01") @@ -1266,7 +1374,6 @@ DEF_ENC32(C2_cmovenewif,ICLASS_ALU2op" 1110 1uu0iiii = PP1iiiii iiiddddd") DEF_ENC32(C2_cmoveit, ICLASS_ALU2op" 1110 0uu0iiii PP0iiiii iiiddddd") DEF_ENC32(C2_cmoveif, ICLASS_ALU2op" 1110 1uu0iiii PP0iiiii iiiddddd") =20 - DEF_FIELDROW_DESC32( ICLASS_ALU2op" 1111 -------- PP------ --------","[= #15] nop") DEF_ENC32(A2_nop, ICLASS_ALU2op" 1111 -------- PP------ --------") =20 @@ -1408,9 +1515,6 @@ DEF_FIELDROW_DESC32(ICLASS_ALU3op" 1110 -------- PP-= ----- --------","[#14] Rese =20 =20 =20 - - - /*******************************/ /* */ /* */ @@ -1508,7 +1612,6 @@ SH_RRI6_ENC(S6_rol_i_##TAGEND,MAJ4,MIN3,SMOD1 "11",DS= TCHARS) =20 =20 DEF_FIELDROW_DESC32(ICLASS_S2op" 0000 -------- PP------ --------","[#0] Rd= d=3D(Rss,#u6)") -/* EJP: there is actually quite a bit of space here, look at the reserved = bits */ I6SHIFTTYPES(p, "0000","000","0","ddddd") I5SHIFTTYPES_NOROL(vw, "0000","010","0","ddddd") I4SHIFTTYPES(vh, "0000","100","0","ddddd") @@ -1620,8 +1723,8 @@ SH2_RR_ENC(A2_roundsat, "1000","110","-","0= 01","ddddd") SH_RRI5_ENC(S2_asr_i_svw_trun, "1000","110", "010","ddddd") SH_RRI5_ENC(A4_bitspliti, "1000","110", "100","ddddd") =20 -SH_RRI5_ENC(A7_clip, "1000","110", "101","ddddd") -SH_RRI5_ENC(A7_vclip, "1000","110", "110","ddddd") +SH_RRI5_ENC(A7_clip, "1000","110", "101","ddddd") +SH_RRI5_ENC(A7_vclip, "1000","110", "110","ddddd") =20 =20 SH2_RR_ENC(S4_clbpnorm, "1000","011","-","000","ddddd") @@ -1743,10 +1846,11 @@ SH_RRR_ENC(S2_shuffob, "0001","00-","-","1= 0-","ddddd") SH_RRR_ENC(S2_shuffeh, "0001","00-","-","11-","ddddd") =20 SH_RRR_ENC(S2_shuffoh, "0001","10-","-","000","ddddd") +// 001 SH_RRR_ENC(S2_vtrunewh, "0001","10-","-","010","ddddd") -SH_RRR_ENC(S6_vtrunehb_ppp, "0001","10-","-","011","ddddd") +SH_RRR_ENC(S6_vtrunehb_ppp, "0001","10-","-","011","ddddd") SH_RRR_ENC(S2_vtrunowh, "0001","10-","-","100","ddddd") -SH_RRR_ENC(S6_vtrunohb_ppp, "0001","10-","-","101","ddddd") +SH_RRR_ENC(S6_vtrunohb_ppp, "0001","10-","-","101","ddddd") SH_RRR_ENC(S2_lfsp, "0001","10-","-","110","ddddd") =20 SH_RRR_ENC(S4_vxaddsubw, "0001","01-","-","000","ddddd") @@ -1780,8 +1884,6 @@ SH_RRR_ENC(S4_vrcrotate, "0011","11-","i","11i= ","ddddd") DEF_FIELDROW_DESC32(ICLASS_S3op" 0100 -------- PP------ --------","[#4] Rd= =3D(Rs,Rt,#u3)") DEF_ENC32(S2_addasl_rrri, ICLASS_S3op" 0100 000 sssss PP0ttttt iiiddddd") =20 - - DEF_FIELDROW_DESC32(ICLASS_S3op" 0101 -------- PP------ --------","[#5] Rd= =3D(Rss,Rt)") SH_RRR_ENC(S2_asr_r_svw_trun, "0101","---","-","010","ddddd") SH_RRR_ENC(M4_cmpyi_wh, "0101","---","-","100","ddddd") @@ -1841,6 +1943,7 @@ DEF_FIELDROW_DESC32(ICLASS_S3op" 1010 -------- PP----= -- --------","[#10] Rxx=3D(Rs SH_RRR_ENC(S2_insertp_rp, "1010","0--","0","---","xxxxx") SH_RRR_ENC(M4_xor_xacc, "1010","10-","0","000","xxxxx") =20 + DEF_FIELDROW_DESC32(ICLASS_S3op" 1011 -------- PP------ --------","[#11] R= xx=3D(Rss,Rt)") RSHIFTTYPES(p_or, "1011","000","-","-","xxxxx") RSHIFTTYPES(p_and, "1011","010","-","-","xxxxx") @@ -1848,19 +1951,19 @@ RSHIFTTYPES(p_nac, "1011","100","-","-= ","xxxxx") RSHIFTTYPES(p_acc, "1011","110","-","-","xxxxx") RSHIFTTYPES(p_xor, "1011","011","-","-","xxxxx") =20 -SH_RRR_ENCX(A4_vrmaxh, "1011","001","0","001","uuuuu") -SH_RRR_ENCX(A4_vrmaxuh, "1011","001","1","001","uuuuu") -SH_RRR_ENCX(A4_vrmaxw, "1011","001","0","010","uuuuu") -SH_RRR_ENCX(A4_vrmaxuw, "1011","001","1","010","uuuuu") +SH_RRR_ENCX(A4_vrmaxh, "1011","001","0","001","uuuuu") +SH_RRR_ENCX(A4_vrmaxuh, "1011","001","1","001","uuuuu") +SH_RRR_ENCX(A4_vrmaxw, "1011","001","0","010","uuuuu") +SH_RRR_ENCX(A4_vrmaxuw, "1011","001","1","010","uuuuu") =20 -SH_RRR_ENCX(A4_vrminh, "1011","001","0","101","uuuuu") -SH_RRR_ENCX(A4_vrminuh, "1011","001","1","101","uuuuu") -SH_RRR_ENCX(A4_vrminw, "1011","001","0","110","uuuuu") -SH_RRR_ENCX(A4_vrminuw, "1011","001","1","110","uuuuu") +SH_RRR_ENCX(A4_vrminh, "1011","001","0","101","uuuuu") +SH_RRR_ENCX(A4_vrminuh, "1011","001","1","101","uuuuu") +SH_RRR_ENCX(A4_vrminw, "1011","001","0","110","uuuuu") +SH_RRR_ENCX(A4_vrminuw, "1011","001","1","110","uuuuu") =20 -SH_RRR_ENC(S2_vrcnegh, "1011","001","1","111","xxxxx") +SH_RRR_ENC(S2_vrcnegh, "1011","001","1","111","xxxxx") =20 -SH_RRR_ENC(S4_vrcrotate_acc, "1011","101","i","--i","xxxxx") +SH_RRR_ENC(S4_vrcrotate_acc, "1011","101","i","--i","xxxxx") =20 =20 DEF_FIELDROW_DESC32(ICLASS_S3op" 1100 -------- PP------ --------","[#12] R= x=3D(Rs,Rt)") @@ -1874,11 +1977,6 @@ DEF_FIELDROW_DESC32(ICLASS_S3op" 1101 -------- PP---= --- --------","[#13] Reserve DEF_FIELDROW_DESC32(ICLASS_S3op" 1110 -------- PP------ --------","[#14] R= eserved") =20 =20 -DEF_FIELDROW_DESC32(ICLASS_S3op" 1111 -------- PP------ --------","[#14] U= ser Instruction") - - - - =20 =20 =20 @@ -2129,3 +2227,6 @@ OP_OPI_RI(lsr,"1") DEF_FIELDROW_DESC32(ICLASS_ALU64" 1111 -------- PP------ --------","[#15] = Rd=3D(Rs,Ru,#u6:2)") DEF_ENC32(M4_mpyri_addr_u2, ICLASS_ALU64" 1111 0ii sssss PPiddddd iiiuuu= uu") DEF_ENC32(M4_mpyri_addr, ICLASS_ALU64" 1111 1ii sssss PPiddddd iiiuuu= uu") + + + diff --git a/target/hexagon/imported/system.idef b/target/hexagon/imported/= system.idef index 7c6568e75e..fd7ef18b3e 100644 --- a/target/hexagon/imported/system.idef +++ b/target/hexagon/imported/system.idef @@ -25,44 +25,262 @@ /* 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); + 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*/ - ((RtV>>16)&0xffff), /*stride*/ - 0); /*extra attrib flags*/ + (RtV&0xff), /*height*/ + ((RtV>>8)&0xff), /*width*/ + ((RtV>>16)&0xffff), /*stride*/ + 0); /*extra attrib flags*/ }) =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*/ + fGETUHALF(0,RttV), /*height*/ + fGETUHALF(1,RttV), /*width*/ + fGETUHALF(2,RttV), /*stride*/ + fGETUHALF(3,RttV)); /*flags*/ }) + +Q6INSN(Y5_l2locka,"Pd4=3Dl2locka(Rs32)", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_CACH= EOP,A_COPBYADDRESS,A_RESTRICT_SLOT0ONLY,A_RESTRICT_PACKET_AXOK,A_NOTE_AXOK,= A_RESTRICT_LATEPRED,A_NOTE_LATEPRED), +"Lock L2 cache line by address", { fEA_REG(RsV); fL2LOCKA(EA,PdV,PdN); fHI= DE(MARK_LATE_PRED_WRITE(PdN)) }) + + +Q6INSN(Y5_l2unlocka,"l2unlocka(Rs32)", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_CACHEO= P,A_COPBYADDRESS,A_RESTRICT_SLOT0ONLY,A_RESTRICT_PACKET_AXOK,A_NOTE_AXOK), = "UnLock L2 cache line by address", { fEA_REG(RsV); fL2UNLOCKA(EA); }) + + + +Q6INSN(Y5_l2gunlock,"l2gunlock",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET= ,A_RESTRICT_SLOT0ONLY,A_RESTRICT_NOPACKET,A_CACHEOP,A_L2FLUSHOP),"L2 Global= Unlock",{fL2UNLOCK();}) + +Q6INSN(Y5_l2gclean,"l2gclean",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A= _RESTRICT_SLOT0ONLY,A_RESTRICT_NOPACKET,A_CACHEOP,A_L2FLUSHOP),"L2 Global C= lean",{fL2CLEAN();}) + +Q6INSN(Y5_l2gcleaninv,"l2gcleaninv",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPA= CKET,A_RESTRICT_SLOT0ONLY,A_RESTRICT_NOPACKET,A_CACHEOP,A_L2FLUSHOP),"L2 Gl= obal Clean and Invalidate",{fL2CLEANINV();}) + +Q6INSN(Y6_l2gcleanpa,"l2gclean(Rtt32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_N= OPACKET,A_RESTRICT_SLOT0ONLY,A_RESTRICT_NOPACKET,A_CACHEOP,A_L2FLUSHOP),"L2= Global Clean by PA Range",{fL2CLEANPA(RttV);}) + +Q6INSN(Y6_l2gcleaninvpa,"l2gcleaninv(Rtt32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_= NOTE_NOPACKET,A_RESTRICT_SLOT0ONLY,A_RESTRICT_NOPACKET,A_CACHEOP,A_L2FLUSHO= P),"L2 Global Clean and Invalidate by PA Range",{fL2CLEANINVPA(RttV);}) + --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756785161; cv=none; d=zohomail.com; s=zohoarc; b=kZszNjUG2vtU4dv291hHOX/Na50UQ6JnOa44EFFU/f/uoPAJXfKPFl64AjhhPj4fgNDWobyH30AYXmvRDaHicsvON4HQ985JKUgEy5thQAkXRcudlbJrhOMfswhbswVpxU755eDqbNocqd0iC4US15Br3zXpzrxrySQFfP8Ob3s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785161; 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=IdziyhW8bvH1MYLMe4rnaSvqOmugalOcZvKkqKiOXow=; b=GXxqIPcz0r/9gQ1qiR3lA/c7XWvKaPAfTqcKz1ee1tcJPF03Atx6cQE01ObBvO/bahaBjrnHiJOS+cLn4xkpsA5BP+nvU4XpfV7L5W4WCgUUAMhaRhZzWSLzEeHNmV5xgoFWTWAnQNzbO+PM+h7da3MIqyef4L5uNom1BnvLSZ0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756785161966489.9565169100233; Mon, 1 Sep 2025 20:52:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI0P-0007E4-V8; Mon, 01 Sep 2025 23:48:26 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI0B-0006wK-KT for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:48: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 1utI09-0004Va-8u for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:48:11 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822Rocf015191 for ; Tue, 2 Sep 2025 03:47:56 GMT Received: from mail-pg1-f199.google.com (mail-pg1-f199.google.com [209.85.215.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48urvyxdf8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:47:55 +0000 (GMT) Received: by mail-pg1-f199.google.com with SMTP id 41be03b00d2f7-b4cf03610fdso5202944a12.1 for ; Mon, 01 Sep 2025 20:47: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 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.47.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:47: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= IdziyhW8bvH1MYLMe4rnaSvqOmugalOcZvKkqKiOXow=; b=mqvcJjR/eBqIXgXh r6F+6wQTq27q9V1ZM+0yD/qj65Ju1VjgMiIxt8Q4cQwdZ+Hkax847PXGynx4JX4l RNW2KEiuaA2jI77XTxY6n8sdCpAPM20d6CgMb1HVsL6wOfTJ1uNkI4mgIG22ucmp rphpY3O37cUMcTJ3TJ2x7shoZmw/SisDuQ1FSwVcO31Y3H3jlwPkMWN2d9PWCCBs +w9DNN+xCIbkjqqQIeEj6OwGAwGkMqN5i8fOrmoJUjp3z8T9wdYBMPe3YnTbCOKe dGmugkjgERMr++SUAgEZGC/KsbRf9frk35puS3q5U/USMGX35WCFD4vV9P536JSo Twofww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784874; x=1757389674; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=IdziyhW8bvH1MYLMe4rnaSvqOmugalOcZvKkqKiOXow=; b=h8amrZMC5mDEMYZ0EWsvlYYdsK6FIiFgaG2vjwZtWlPtrakBfsF6UPW5lDnkr0AlOu N+xIDtpI5n1zQt+6ip1wiWAz0+i1ngoBmhcUA9u1a4zxyi/tPbPFBTrYtKnka38H8Rd2 gQnr1C7/DyJEjbpwWEcNbWg27+5HeYq4LVGH/f3jSulaMYxa1y3rhpQ62fMcxgW4g7bV dtAD5X2ui5MkGiQDwZnA9npKGkq+0KzqdukGdJ6WKWx1JCfNMUGGe46zw/6TOn7LaikY XXkDwGKMyPWzhiwIeeElsfxT4do9ts72SFqGtV7+LNdNLk/TvVRi32r/I1VzamEZ/LCo GxZA== X-Gm-Message-State: AOJu0YxVUuACeJ2nicx3+CwF8gOfj8sSBSfD7QGsjUI+5qTXCvUFWq1r Gs98dq61rp9jmsHcTvXvGPJx5SdIXHe2Djc9hjDAlRxeutdTQi8Ct2T2J1sLPlrhmLcE1aYx2f9 oYnNA+av2NbZFlkJ0vF9tqAh8Kx+JaCXJi3NjwYXqFhwCnN7kYlDrmCfcP7G5LN3tK2LX X-Gm-Gg: ASbGncuQnFN2rN1IKFDGm1CNiWvs+tWhau0nIRdvDqFxN+gzyIaH7dSF/3K0MhjWDGX UmELt7Tfwt3uWF2hb+BCU/sYOUsuvyRaRCSmWtv03S/PHScSscdbKQGkOjKywFxAvRZ7vPWDcYG NhYCeRsbrSmtLgYhCLINyY5FMu9SRmk1fvslw1V2rnMSCiKpNHuX2nFh2HVPR1FKffjSmjt/MyH ss/Hom9u4JQLY+G+0zImEOHQ1TwuxKGjk0K36t7CrxUkv5aX7Kh2a6q8B+8Nv21wOjMFWx/zBER DlFEUiCN0l1kqgpchXJyBeDXCkFzWRRD3p9MFT1RU5TneMAhjaaXbpwu/ScjEj6qU6PjmKl0+u4 iX14xj8JiVSX0 X-Received: by 2002:a05:6a20:430f:b0:243:c171:479c with SMTP id adf61e73a8af0-243d6f41061mr14742809637.45.1756784873432; Mon, 01 Sep 2025 20:47:53 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEGXjkMCMPsSxiS8nHZai1h79bXHWaZgZPK0F7o48NFgPii741z1PsWNMmXC3+GEkP1cxzBVA== X-Received: by 2002:a05:6a20:430f:b0:243:c171:479c with SMTP id adf61e73a8af0-243d6f41061mr14742762637.45.1756784872819; Mon, 01 Sep 2025 20:47:52 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain Subject: [PATCH v2 26/40] target/hexagon: Add sysemu TCG overrides Date: Mon, 1 Sep 2025 20:47:01 -0700 Message-Id: <20250902034715.1947718-27-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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: iHxtzovktYknfKLv8rf0p_bOA0e9QxdV X-Proofpoint-ORIG-GUID: iHxtzovktYknfKLv8rf0p_bOA0e9QxdV X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAyNyBTYWx0ZWRfXwgKoCz6VDP97 xY+RGdsBkZu0Zce7bdVpLpQoKvWv2bxrNZSrObLB2WkwAcROMb/6ol7Y6RCbpUaaTNkQICwMhUY kwKIqT6tnGNWSTfcERVni45SvuXqG8FDCk0Uir66Hk54nHZ1R8CXmpV5zBl2eP5EOCPp1V1rIed 1FyDF4a2H7oClM5Ysn6EJ67pkBm6uHWRKirmTokDs59yTBZx1/yj/So5Duu8csj+pFgcr2eimcT RLVGJ0lYA8opyXKTRsv9vkyXEXRhHbKJGgWlWdGCstzckpkVdzJ6kAMmyJLfvlkBy23xZaM/mip 9OvSeNHWk9Yk1D7ZEs9o4Qn3pwBAbCcsqUh4YgpaC/PQjTtSlGTeMaac+UPd0+EqwuhzygBdW9o NjHK4wWy X-Authority-Analysis: v=2.4 cv=NrDRc9dJ c=1 sm=1 tr=0 ts=68b668eb cx=c_pps a=Oh5Dbbf/trHjhBongsHeRQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=HqZiMnzhU5f-EeqCw14A:9 a=QEXdDO2ut3YA:10 a=_Vgx9l1VpLgwpw_dHYaR:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 suspectscore=0 malwarescore=0 priorityscore=1501 phishscore=0 impostorscore=0 spamscore=0 bulkscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300027 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756785164716124100 From: Brian Cain Define TCG overrides for setprio(), crswap(,sgp{0,1,1:0}). Signed-off-by: Brian Cain --- target/hexagon/cpu_helper.h | 32 ++++++++++++++++++++++++++++ target/hexagon/gen_tcg_sys.h | 41 ++++++++++++++++++++++++++++++++++++ target/hexagon/helper.h | 1 + target/hexagon/cpu_helper.c | 38 +++++++++++++++++++++++++++++++++ target/hexagon/genptr.c | 4 ++++ target/hexagon/op_helper.c | 7 ++++++ target/hexagon/hex_common.py | 2 ++ target/hexagon/meson.build | 14 ++++++------ 8 files changed, 133 insertions(+), 6 deletions(-) create mode 100644 target/hexagon/cpu_helper.h create mode 100644 target/hexagon/gen_tcg_sys.h create mode 100644 target/hexagon/cpu_helper.c diff --git a/target/hexagon/cpu_helper.h b/target/hexagon/cpu_helper.h new file mode 100644 index 0000000000..194bcbf451 --- /dev/null +++ b/target/hexagon/cpu_helper.h @@ -0,0 +1,32 @@ +/* + * Copyright(c) 2019-2025 Qualcomm Innovation Center, Inc. All Rights Rese= rved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HEXAGON_CPU_HELPER_H +#define HEXAGON_CPU_HELPER_H + +static inline void arch_set_thread_reg(CPUHexagonState *env, uint32_t reg, + uint32_t val) +{ + g_assert(reg < TOTAL_PER_THREAD_REGS); + g_assert_not_reached(); +} + +static inline uint32_t arch_get_thread_reg(CPUHexagonState *env, uint32_t = reg) +{ + g_assert(reg < TOTAL_PER_THREAD_REGS); + g_assert_not_reached(); +} + +static inline void arch_set_system_reg(CPUHexagonState *env, uint32_t reg, + uint32_t val) +{ + g_assert_not_reached(); +} + +uint32_t arch_get_system_reg(CPUHexagonState *env, uint32_t reg); + +#endif + diff --git a/target/hexagon/gen_tcg_sys.h b/target/hexagon/gen_tcg_sys.h new file mode 100644 index 0000000000..362703ab45 --- /dev/null +++ b/target/hexagon/gen_tcg_sys.h @@ -0,0 +1,41 @@ +/* + * Copyright(c) 2022-2025 Qualcomm Innovation Center, Inc. All Rights Rese= rved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HEXAGON_GEN_TCG_SYS_H +#define HEXAGON_GEN_TCG_SYS_H + +#define fGEN_TCG_Y2_setprio(SHORTCODE) \ + gen_helper_setprio(tcg_env, PtV, RsV) + +#define fGEN_TCG_Y2_crswap0(SHORTCODE) \ + do { \ + TCGv tmp =3D tcg_temp_new(); \ + tcg_gen_mov_tl(tmp, RxV); \ + tcg_gen_mov_tl(RxV, hex_t_sreg[HEX_SREG_SGP0]); \ + tcg_gen_mov_tl(ctx->t_sreg_new_value[HEX_SREG_SGP0], tmp); \ + } while (0) + +#define fGEN_TCG_Y4_crswap1(SHORTCODE) \ + do { \ + TCGv tmp =3D tcg_temp_new(); \ + tcg_gen_mov_tl(tmp, RxV); \ + tcg_gen_mov_tl(RxV, hex_t_sreg[HEX_SREG_SGP1]); \ + tcg_gen_mov_tl(ctx->t_sreg_new_value[HEX_SREG_SGP1], tmp); \ + } while (0) + +#define fGEN_TCG_Y4_crswap10(SHORTCODE) \ + do { \ + g_assert_not_reached(); \ + TCGv_i64 tmp =3D tcg_temp_new_i64(); \ + tcg_gen_mov_i64(tmp, RxxV); \ + tcg_gen_concat_i32_i64(RxxV, \ + hex_t_sreg[HEX_SREG_SGP0], \ + hex_t_sreg[HEX_SREG_SGP1]); \ + tcg_gen_extrl_i64_i32(ctx->t_sreg_new_value[HEX_SREG_SGP0], tmp); \ + tcg_gen_extrh_i64_i32(ctx->t_sreg_new_value[HEX_SREG_SGP1], tmp); \ + } while (0) + +#endif diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index fddbd99a19..146f4f02e4 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -115,4 +115,5 @@ DEF_HELPER_2(greg_read, i32, env, i32) DEF_HELPER_2(greg_read_pair, i64, env, i32) DEF_HELPER_3(sreg_write, void, env, i32, i32) DEF_HELPER_3(sreg_write_pair, void, env, i32, i64) +DEF_HELPER_3(setprio, void, env, i32, i32) #endif diff --git a/target/hexagon/cpu_helper.c b/target/hexagon/cpu_helper.c new file mode 100644 index 0000000000..01fdd6b28d --- /dev/null +++ b/target/hexagon/cpu_helper.c @@ -0,0 +1,38 @@ +/* + * Copyright(c) 2019-2025 Qualcomm Innovation Center, Inc. All Rights Rese= rved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "cpu.h" +#include "cpu_helper.h" +#include "system/cpus.h" +#ifdef CONFIG_USER_ONLY +#include "qemu.h" +#include "exec/helper-proto.h" +#else +#include "hw/boards.h" +#include "hw/hexagon/hexagon.h" +#endif +#include "exec/cpu-interrupt.h" +#include "exec/target_page.h" +#include "accel/tcg/cpu-ldst.h" +#include "exec/cputlb.h" +#include "qemu/log.h" +#include "tcg/tcg-op.h" +#include "internal.h" +#include "macros.h" +#include "sys_macros.h" +#include "arch.h" + + +#ifndef CONFIG_USER_ONLY + +uint32_t arch_get_system_reg(CPUHexagonState *env, uint32_t reg) +{ + g_assert_not_reached(); +} + + +#endif diff --git a/target/hexagon/genptr.c b/target/hexagon/genptr.c index a474787816..0648daefb6 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 cbbf3048a0..cfd34d8712 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -31,6 +31,7 @@ #include "mmvec/mmvec.h" #include "mmvec/macros.h" #include "op_helper.h" +#include "cpu_helper.h" #include "translate.h" =20 #define SF_BIAS 127 @@ -1366,6 +1367,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 24139cbe67..009b71f8e6 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -1361,6 +1361,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") @@ -1368,6 +1369,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 bb4ebaae81..3ec53010fa 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 # @@ -249,6 +250,7 @@ hexagon_ss.add(files( 'cpu.c', 'translate.c', 'op_helper.c', + 'cpu_helper.c', 'gdbstub.c', 'genptr.c', 'reg_fields.c', @@ -346,12 +348,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 # @@ -365,7 +367,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) @@ -374,7 +376,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) @@ -383,7 +385,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) @@ -392,7 +394,7 @@ analyze_funcs_generated =3D custom_target( 'analyze_funcs_generated.c.inc', output: 'analyze_funcs_generated.c.inc', depends: helper_dep, - depend_files: [hex_common_py, gen_tcg_h, gen_tcg_hvx_h], + depend_files: [hex_common_py, gen_tcg_h, gen_tcg_hvx_h, gen_tcg_sys_h], command: [python, files('gen_analyze_funcs.py'), helper_in, '@OUTPUT@'= ], ) hexagon_ss.add(analyze_funcs_generated) --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756784945; cv=none; d=zohomail.com; s=zohoarc; b=BI2s/tMOnU3rzC80/lXu9FLsjHFtgWBG9hqaavAU6VZX+RXaRN1OxfHkov6l1OA1nCatoucKdb7siZai953bGEPEAQKElGhc6I86oHeQQ+jHWRwqhySvFJgBTiSYln/vcIq+cJ9sYAOgDDwwq/sOMPP+6mrG1C9J4Tuf/YW/lRg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756784945; 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=PB+gsVFwzwf7f11qN6KVA/bDQe2E2WJjPpsFSFYXm+w=; b=VtMPCtJtKRi67oLaiFdifuHGElequseZhYy9ZBRoEwuiqVRo0Mjmadc9C6STUyrvfOWO8t8wQTX9nYmDO08/qQi2aJ3xEKJk8z0Zr21ajh1Ui2IaLZK/Vp/PxtYkhGShiq6d0MAcmwGdxx4RNSrdVxRc14Iw0+SW1WhUiQEu9NI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756784945413941.751250624915; Mon, 1 Sep 2025 20:49:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI0S-0007Ic-S2; Mon, 01 Sep 2025 23:48:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI00-0006sN-TD for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:48:01 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utHzz-0004VT-BZ for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:48:00 -0400 Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822RpH6030092 for ; Tue, 2 Sep 2025 03:47:55 GMT Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48ush2xafs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:47:55 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-24aa016751cso22352635ad.0 for ; Mon, 01 Sep 2025 20:47: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 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.47.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:47: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= PB+gsVFwzwf7f11qN6KVA/bDQe2E2WJjPpsFSFYXm+w=; b=AM5gxpfgb0xOMbLX uYAxmZX2+F7gkY1R+QeXoPJFhPA/7NLSPsekmLBgd2tnuUf51YCM44aYjdGy8j8U Iv70QzITRv5z45cKt0VfTWSgjyM7P2RDXZDfA675qVDZV/EjE+q9Tur5zw/HOx+z oMXxgW3hxk/lvicw9NCojsFjJv8jBOmhozKPmAOEbKoSYeQgtNTZCkWu/HFHvhJC yI+ZByeXKAYZRksmTVrJlEPdpix2010M6Di2r+tv/YNNH8iKaCzgaZVi9imoGYL2 wFsWLOtnouzuLZpNqVYxf5BWk/j5g4OkEfcxYvw3EAAY00AeMy8s/HdU0Ny8P551 VBE9VQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784874; x=1757389674; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PB+gsVFwzwf7f11qN6KVA/bDQe2E2WJjPpsFSFYXm+w=; b=Aw+L+E23dNDU3jCUSWEwXE3bf8JwONYUbstRY7/HrqQ6XqzQShsm8C31xBa5QvB6FZ 3nEjcdedd1o/a/tWKuukx8KqGi/XdsfW39nJFCWf1oBA3GKdCmYx00ZHDdGQ4S6EcEOR 3IU8vK7eRk5Zs8xUWnh6LI1BTEfvZ29assJXnnK3REiNmO56TXBz5I2KO+LyMqsx+Mji a87+up2uCZ3xEyKfXmbnK0Jm7x+SxSbv8a69YJ+bIP9hkI2JaZnacaktn0NPG9uo0QJ7 eoS4LzdGmKJPyKlIJR3ysPuJK1m23SY37ri1k05qYDIZ+uzXSAqcyEx1dlFVEFflJgIb PEDQ== X-Gm-Message-State: AOJu0Yy9jUNBjXoUmgNwIcOYrOTF5wJqF4wD9zSZxZr0bYphn+bO9kDk byWv0mncQUk4DwmcLbfTa/acqeqS5j1PVQFGgplzQDFnMZ3jT4TAylK/FiGsuFmSQil/7T51DAy HDYY8F2b9Wpt/ySTWuI0zgFkkyo180GDedWD4HqusoDHB3dDLWY8CH6YU95n7rn0L8CVX X-Gm-Gg: ASbGncvy4V+FHyGNW2rTvl8EIQHWQuuE1VK4mOeuLxCabIn/VmdOAR59H+/PkIzznDI s9ENgvw2CIvVMkov4l2rr11yPAsaKCwNbPH0uKuyTksqj3JGG6jQT4NIpbA/euFSvHGxZ66I788 xLFD1lWQWCu6QX95G6+ZsWVAomL2LOmtcC8z1cHQ7C7ILXKqX0bmJPO3/e47LQZxl4I5cmTus+1 /DxHQLnbdtJAAz/zIBe86kcLgN30fu0RM00uww45ot2VXQVDPRGHfHfVeNOzKPX/i8gzxsBLLkf dkRMkGs/3HFTYf7fLTnlnSxGcK/4CLhoplsY2XFMfZnTUHsqE2J8XMTVkKC3Kz0wctXvC+uhht/ ndWEObJPoUEIc X-Received: by 2002:a17:903:37c5:b0:242:9bc4:f1ca with SMTP id d9443c01a7336-24944b71133mr123343435ad.57.1756784874270; Mon, 01 Sep 2025 20:47:54 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFYVxy52nLzOa6kG05xi5B4iH3idKqKb5U3JTGrqga52K9FMrwDB9PP1DuEIWxPrKUkFg0zFA== X-Received: by 2002:a17:903:37c5:b0:242:9bc4:f1ca with SMTP id d9443c01a7336-24944b71133mr123343145ad.57.1756784873814; Mon, 01 Sep 2025 20:47:53 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain Subject: [PATCH v2 27/40] target/hexagon: Add implicit attributes to sysemu macros Date: Mon, 1 Sep 2025 20:47:02 -0700 Message-Id: <20250902034715.1947718-28-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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: AW1haW4tMjUwODMwMDAzMiBTYWx0ZWRfX7vPFSNEdKcg6 m+Iq/l+Z99O40poBAWtK3OyRGdjNNW3m77oMX4nNQAXjHCpzvC2pPPJfU9tzZMIRixQ1+u0P8jE rdjqrekLsS1EnUKM3IPngw3xXC2nr+GySnsutuAhWOBmRYca1b+avrUZNWS8+yMjkurDExLZm/g YK9OqEZBsrbJ7l7zj7j9x5QFbzX8xPZq/Jkl1Zyxhn1GdpZM8tz/x3prWA33lTQZBioxI8HRwCE vmwcT+Dm+aiPwVeLMGN1C9CFlLcHwQs7YYedYqnhhXDWp/YQIBNhkUSbgfhwk9knY9gZXDujF5h mkQr2sMWPNTHR85bVsfA+rIPiA/IAcvD3/lxtqAyKS7GT9pCbxvpcB7l6Ko+xgzIJtqbZ1UkRCc bcuKzqBU X-Proofpoint-ORIG-GUID: n3UFclAPfxLTfP-zYAWvT5fJHhpXC_g8 X-Proofpoint-GUID: n3UFclAPfxLTfP-zYAWvT5fJHhpXC_g8 X-Authority-Analysis: v=2.4 cv=M9NNKzws c=1 sm=1 tr=0 ts=68b668eb cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=XEQhwl2E1R9O8uVTZxoA:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 adultscore=0 spamscore=0 priorityscore=1501 malwarescore=0 clxscore=1015 suspectscore=0 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300032 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756784945999116600 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 009b71f8e6..39451e6d88 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -129,8 +129,11 @@ def calculate_attribs(): add_qemu_macro_attrib("fTRAP", "A_IMPLICIT_READS_PC") add_qemu_macro_attrib("fSET_OVERFLOW", "A_IMPLICIT_WRITES_USR") add_qemu_macro_attrib("fSET_LPCFG", "A_IMPLICIT_WRITES_USR") + add_qemu_macro_attrib("fCLEAR_RTE_EX", "A_IMPLICIT_WRITES_SSR") add_qemu_macro_attrib("fLOAD", "A_SCALAR_LOAD") add_qemu_macro_attrib("fSTORE", "A_SCALAR_STORE") + add_qemu_macro_attrib("fSET_K0_LOCK", "A_IMPLICIT_READS_PC") + add_qemu_macro_attrib("fSET_TLB_LOCK", "A_IMPLICIT_READS_PC") add_qemu_macro_attrib('fLSBNEW0', 'A_IMPLICIT_READS_P0') add_qemu_macro_attrib('fLSBNEW0NOT', 'A_IMPLICIT_READS_P0') add_qemu_macro_attrib('fREAD_P0', 'A_IMPLICIT_READS_P0') --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756785128; cv=none; d=zohomail.com; s=zohoarc; b=VaLmV6LP8iIHKOENBklV18SYnEOo7vFC0VjXViT43HRCBdKmn+dO/+hAwgkaUhqbY4RKI5qs5jQFt+bhdGpK5PpwlIiVNmMFgHZnbcKZqljc+/tjIjkNCa+EoiqVK1v2AmBeYUmn5Vklg6cN9VNA1mMTUAfnnu/lRUFuH+qbZ7Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785128; 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=vgCHS3aLEltyNqfHFNdMSq/Dy0IvxO4z23Y9RYywzOU=; b=DK3oAOCSBJb7joTi02P6O9cQTSIIdWkRo/Br05Q9nUQH/0O8EC/pekNjHYva80lPktNG0JeXrJe1Dj8mUu29kInptEjLJDZ3igWryPQS9KR7GE8YzL8/p/v3zwV/ejfXi/du0iK9ZpfndAe7APEc3OSpE7Kj3DavYdh5QmbtM3c= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756785128755428.20760882315244; Mon, 1 Sep 2025 20:52:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI0U-0007K6-Ca; Mon, 01 Sep 2025 23:48:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI0C-0006wP-0F for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:48:14 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI09-0004Vj-8u for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:48:11 -0400 Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822RpH7030092 for ; Tue, 2 Sep 2025 03:47:56 GMT Received: from mail-pg1-f197.google.com (mail-pg1-f197.google.com [209.85.215.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48ush2xafu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:47:56 +0000 (GMT) Received: by mail-pg1-f197.google.com with SMTP id 41be03b00d2f7-b47174b3427so4078635a12.2 for ; Mon, 01 Sep 2025 20:47: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 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.47.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:47: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= vgCHS3aLEltyNqfHFNdMSq/Dy0IvxO4z23Y9RYywzOU=; b=aR7EZNs3K1+4Cs9O paHbyKP36Cz8UwUm7Gw5Iokjg5W2+aBbyY+Z2Vijzu2KKj846QGqgAI/+IJ6oBn7 bqRih8tB/CXwlSqkq5Qp41gHwqcd2SWfdI4/lAm8uZ3O/cm1jXs4fmREFyK+DXsp 95lGwMHOYAt6qx2cnXrS33lbCzvaFi8mIwfhcINc/SXJIFeNQMOA4BiF3tjoJXlT 0Kr/FecNKAoINs3vcw84Fw0ex7xJ0h7nTRtllAhPLNQk8+VRDwzYBpbVoSw1jDmQ LC3y2lNd/QVexD5tBmE0Lx044wxdlHT80oA3my1qdsXl2w148XZp2bFqwHGDEV9d Alp54w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784875; x=1757389675; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vgCHS3aLEltyNqfHFNdMSq/Dy0IvxO4z23Y9RYywzOU=; b=lJYQnql0a1izFUTe6039hRmgJ5DC/06PJXK/D7IEc4AmvB7h7tgFyDW+hXoHwRiW8+ FDsBeMd5Ivd6w/BCju189eaxMZVn3S0DJwED8Gv5pdeC5ofIXFE1414g+7VO4OQhjDOw Fmzqm61C/Lv1lByv9VejGB/GZtjaEzX7ZzCVfszXwebWBM+QJuEgjt2/BWPYVb+C/q0X IVjHA7VD+p9AcHbWJVTNgDZbY1gHmkP1XFnKfmp3wbLSxFXxOViUfjnUQpCNmvSqHHM/ QUFn6yz9zqPNAiWYRWtCxqnxvxnnki7mZmtozopoolbyC2cmZg8syT/IKtMCXoEF2nRy PMwg== X-Gm-Message-State: AOJu0YzHYExjX3s1waMGXkWH3hc9MEbP+g3F6JKbRI3DnuRvCqzVKaj2 heTDOc/YTQVd5sg/7uCahDc1qwufsIX0dogsWsh2wx4DwVPRsAZrg6Id3JNTX+6KV4yrEmEJ7B/ DL1Cyn/QMbQt99k8HYnGdxoRmEc+Ws9+xs7W53N9DaDAiFVq1mBS25xoAbHgpIIMEqBdK X-Gm-Gg: ASbGncuZlOB2YH/MAEJDDnMIx8sY501lSjmNMAl9LtvNX6zBNYuJh/4H7UO2OgBLk8O rYafkR+iPYdi08dxZCmuXLVmBpt6bTfmiz8OayTTLLxOUXxFjmWqKPSJcTD4OMK/hSrdianqXHn DrwB2osSGOSW68NmBCqNGBwjUtRVgird0k2GiZdTrj5rJFSBw8XLNnSCizwML5fgLHlRBjnk8sE AKGu9pHASOfD1LAG2CK7xD22Gn3KNkgFoR9mf7YrL3ECEUQSek+5h6jkOGCyvulO+YGWmTjd277 MRA/RfBDoLqwVINezG/Tverx5hZq3pKFKEI6Tu2VTYhvrtI3z0B4mStGHViVx+P2UcT6vTf4dil fGPyItul0wsQL X-Received: by 2002:a05:6a20:a105:b0:240:1c56:64a5 with SMTP id adf61e73a8af0-243d6e07ab8mr14813894637.15.1756784875266; Mon, 01 Sep 2025 20:47:55 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEccNOItZ1OinKgOcEnvCS6RPs82/DW06eyRgGg/PsQoPTRlXEWxS58NZWWg2YbdQplsq/0Aw== X-Received: by 2002:a05:6a20:a105:b0:240:1c56:64a5 with SMTP id adf61e73a8af0-243d6e07ab8mr14813865637.15.1756784874845; Mon, 01 Sep 2025 20:47:54 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain Subject: [PATCH v2 28/40] target/hexagon: Add TCG overrides for int handler insts Date: Mon, 1 Sep 2025 20:47:03 -0700 Message-Id: <20250902034715.1947718-29-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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: AW1haW4tMjUwODMwMDAzMiBTYWx0ZWRfX2SHAgyT7nCEC 0qa/vbQEkaQDyAkKI+jnbYmil+CBc/6oO7bX6Jr5f+3VTVIbXF5IGhjPTGJoDxZN8eyr4shNtGW SGZVRAMGjHy6Dh6WUBFkrAhKOu7nSS96a866miJXUrKrP25GAMZWyGGaYQ+94Lh00YG7rRlyd52 2cPOGk5JMkvowDmfmr+2qEnaUw8wHBDS6NHjKzEbWrspq8LqTSzQbY/xtlQhbJz7HUORXyKbsSh mVZvm0YKwcBA/bhhf14/w1OKegr4bfq++TIYWSNljZZcv3rhrXV/9J41N+BVl+HMwCoqhAM/LDq QcyZHqXanfGjD+AugflAIUXrff3TapS9AHoBs5+RfS2VeCYx6hKhlqXYuJswcl8Lwu4I5mEiVUA Qq36JeCD X-Proofpoint-ORIG-GUID: 7cN6bw5n3L-CruXJ6MdaAK6yRvePyTZT X-Proofpoint-GUID: 7cN6bw5n3L-CruXJ6MdaAK6yRvePyTZT X-Authority-Analysis: v=2.4 cv=M9NNKzws c=1 sm=1 tr=0 ts=68b668ec cx=c_pps a=rz3CxIlbcmazkYymdCej/Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=ncxFUDX8U6Z2rYVbhVQA:9 a=QEXdDO2ut3YA:10 a=bFCP_H2QrGi7Okbo017w:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 adultscore=0 spamscore=0 priorityscore=1501 malwarescore=0 clxscore=1015 suspectscore=0 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300032 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756785130168124100 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 362703ab45..642ca3d3ff 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 146f4f02e4..2fe4440ddc 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 cfd34d8712..01e2677a62 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1337,6 +1337,46 @@ void HELPER(vwhist128qm)(CPUHexagonState *env, int32= _t uiV) } =20 #ifndef CONFIG_USER_ONLY +void HELPER(ciad)(CPUHexagonState *env, uint32_t mask) +{ + g_assert_not_reached(); +} + +void HELPER(siad)(CPUHexagonState *env, uint32_t mask) +{ + g_assert_not_reached(); +} + +void HELPER(swi)(CPUHexagonState *env, uint32_t mask) +{ + g_assert_not_reached(); +} + +void HELPER(cswi)(CPUHexagonState *env, uint32_t mask) +{ + g_assert_not_reached(); +} + +void HELPER(iassignw)(CPUHexagonState *env, uint32_t src) +{ + g_assert_not_reached(); +} + +uint32_t HELPER(iassignr)(CPUHexagonState *env, uint32_t src) +{ + g_assert_not_reached(); +} + +uint32_t HELPER(getimask)(CPUHexagonState *env, uint32_t tid) +{ + g_assert_not_reached(); +} + +void HELPER(setimask)(CPUHexagonState *env, uint32_t pred, uint32_t imask) +{ + g_assert_not_reached(); +} + void HELPER(sreg_write)(CPUHexagonState *env, uint32_t reg, uint32_t val) { g_assert_not_reached(); --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756785137; cv=none; d=zohomail.com; s=zohoarc; b=jdBBxjAUUcekqlh+s0CxBNQrYalh/tjlZI9kuBnDYyPnS2hW/Tm9WasYFgIKIYLD8WEQCB3lYqRBDUcQwpogcHqJYZ3aJSMZAYabPyW1bT5c0ZJ3FvXJdymJXQoBazbZ1GuCL5ojZK5+5JLukfExZ3JGUoyfqneRK9q7XNEdFg8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785137; 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=EAl365lPLknZnw8mUPhbXE8Onwu5SXWupHDGh49GdfY=; b=IJzwd/1UwSOhZ4FO0dBksW8M1FDFhQv9eTLyjRCL5ZWzEUZe0dHI71sIDpVy8DcNAw8+4Rdn1O5rgj2E95OEcI4xa86AAZ4TgIjcz/69nrSWfB3+CiyAQfG1eTV/tX0LYuR3nZRYmDEL2ViIbhOX54pyIA7XlZC5UprSv5qpzoI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17567851371441023.8644730276958; Mon, 1 Sep 2025 20:52:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI0U-0007K7-Da; Mon, 01 Sep 2025 23:48:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI0B-0006wO-Tb for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:48:14 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI09-0004Vn-8t for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:48:11 -0400 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822RmGT012352 for ; Tue, 2 Sep 2025 03:47:57 GMT Received: from mail-pg1-f199.google.com (mail-pg1-f199.google.com [209.85.215.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48ut2fea1e-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:47:57 +0000 (GMT) Received: by mail-pg1-f199.google.com with SMTP id 41be03b00d2f7-b47156acca5so4015760a12.0 for ; Mon, 01 Sep 2025 20:47:57 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.47.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:47:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= EAl365lPLknZnw8mUPhbXE8Onwu5SXWupHDGh49GdfY=; b=exhPkl4ndFRzaqPF BRqqV67u/7/cYe3JvFr6C1ZRLiBGmv0jNv/UMPNKblaB9bFPp6KRH2/Y3kDY98xD Hru0jFb5gBuyDum2fEypBrRPbT/azyWTFHAtqQ0rpbSnP0ib+X++WC+sJWFoBBYt Szia0ErQ4xj9taSsjetjthZFgZtgiNX9c0YHqlbr6twG/OyHtTNsbbeXkuYvkksq fYJu4GW1V42RfpHlgFXEidsq87P5FaSI/mvE4EG1F2glEbDUfLGX8KceHKYGEdsL 5XreqVxSY8fwH8BU3cm1x9rwYurDvLIxydMQ3Sn4UujFMzahWsGSt02/XVC8A4rk +HfynQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784877; x=1757389677; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=EAl365lPLknZnw8mUPhbXE8Onwu5SXWupHDGh49GdfY=; b=aUE7HyHi3E7coSAccHNCEAhiTrAfaYFPRmaPTJQ4l0P81uLNebhPevR9xu+EUONSeb +Q4m6Eec4LoZtOfiXQb5IoZri1a0Dl4Z8++x8kbTCk64sl67XGMFhIf+tPW4k9dFkzze QXUiLkyLzNfYEQw/op6zsf4yNiKeAUe4kV7EPIKzONRv8bXVjRcRhDxzZ26EmNfoQ3Mf tLRxmL244iEWckqks+xnQWQliWFf4MjSmY8hD756/brHu+uTMaoQ0+eWKI9KZg8HA088 CayTUsQ/oKgOX6MI/sq83rvWerHwRG4KkS0lVD+fLh9KWLH2bXzVZx5/suvN9CPmPV14 qvOg== X-Gm-Message-State: AOJu0Yx8TuUdtS44bgExlr1v7KUBlfLzsaUh15IZTOBtdvf0I5PKl7gX KwOa/b/AVLJhgfjG0sYVKxB4dMGK2Z9js0DVVaREj0TK3CRc8IYuPWo6JZ/alvEqyNxKxQTWbTO BnMtLUesYeT8F3HlOQnsE8mmOcs1A098HoyLwIyluIjR/hdCsJvBXPkLUq4p5/tPVqJQe X-Gm-Gg: ASbGncuFXJYuT5tdXiiXyJuMGgLUV3c7Sb6N06qq7+gO27K3diWeWrjC3F7ly8SGtHy 061blQuaQEmEbOGAKp+z4RNOT1InK/YxpKPpYqIR9VrzxIu0r+s3/afLAhbSenCrrQQekgr0EVv y93My6GQ9s4VmRJSjopk/OYs+OebnNYFpoLAXSn95B0s4itZ6xLHFAhn39gUdGGwGMDivXRuMZG u1brJuZ6j9wkN290xQIc/dFtGdxe+7MDDOHTf1hMcghOR0sug7VpuutZbKCuTSlpyBgmfkxKKyF ZzWB1kiNsh14twyTgGuZ/PU4HAmr1gOw9NhQuZLWhqBfgV5Isvm2gYJ5MF5ut7/QSMhd1wEnB9f 9m8yPtrFO3R1w X-Received: by 2002:a05:6a20:431d:b0:245:fc8e:ef5b with SMTP id adf61e73a8af0-245fc8ef17amr628022637.5.1756784876560; Mon, 01 Sep 2025 20:47:56 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEcsYVoEySEVnZxUGQaRgJyR4dNs3yHxAl+Fs1CUndUE6iwzUVUXvz3HbettHzgyBsuXXTW1g== X-Received: by 2002:a05:6a20:431d:b0:245:fc8e:ef5b with SMTP id adf61e73a8af0-245fc8ef17amr627982637.5.1756784876069; Mon, 01 Sep 2025 20:47:56 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain Subject: [PATCH v2 29/40] target/hexagon: Add TCG overrides for thread ctl Date: Mon, 1 Sep 2025 20:47:04 -0700 Message-Id: <20250902034715.1947718-30-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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: AW1haW4tMjUwODMwMDAzOCBTYWx0ZWRfX6lzz0XOTyU1r vrB9Y9Q5pNTYwGvntNjmaY09nhO+frSiYDmC9iP9I59V7Sv2KM43fxDo8+1BvOstGaOPj5TmvZK o4DRyz8WmAh5zaH4tDnl49c7laoF7g3Bu5BrFVf5SmmZb5l2DEgi7vxiPLB83d0EJ4ow7XXdNUO nXuTYsfFyIz972/Bp8XmLR2URJ2K6fSqiohD7PqwCJ6ok36FmGvV9bXN/Ws32SZlR2Wt8tFUvIx R+iW5SNDwiJ/Xkrz8sPG58VtjTuWG+8O/rKoMGO8+aMhPh71I9XIw3Vu7aRgCPaZBE8WM3XgFDE E4xY3B33RB4PYOio6TDHZM9QK5BkN1yU+5v34kifmoCHBjI6Z5h8Wn1XtpItrLxaPFer0i1iE2Y 918l+Qf5 X-Proofpoint-ORIG-GUID: Huc4x_WMZ8rqJVfHP5InYGUAlZGAu6vV X-Proofpoint-GUID: Huc4x_WMZ8rqJVfHP5InYGUAlZGAu6vV X-Authority-Analysis: v=2.4 cv=U7iSDfru c=1 sm=1 tr=0 ts=68b668ed cx=c_pps a=Oh5Dbbf/trHjhBongsHeRQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=t9Y8JitlK4h6-XB8aEcA:9 a=QEXdDO2ut3YA:10 a=_Vgx9l1VpLgwpw_dHYaR:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 phishscore=0 clxscore=1015 impostorscore=0 suspectscore=0 malwarescore=0 priorityscore=1501 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300038 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756785138248124100 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 642ca3d3ff..942d07b401 100644 --- a/target/hexagon/gen_tcg_sys.h +++ b/target/hexagon/gen_tcg_sys.h @@ -63,4 +63,22 @@ tcg_gen_extrh_i64_i32(ctx->t_sreg_new_value[HEX_SREG_SGP1], tmp); \ } while (0) =20 +#define fGEN_TCG_Y2_wait(SHORTCODE) \ + do { \ + RsV =3D RsV; \ + gen_helper_wait(tcg_env, tcg_constant_tl(ctx->pkt->pc)); \ + } while (0) + +#define fGEN_TCG_Y2_resume(SHORTCODE) \ + gen_helper_resume(tcg_env, RsV) + +#define fGEN_TCG_Y2_start(SHORTCODE) \ + gen_helper_start(tcg_env, RsV) + +#define fGEN_TCG_Y2_stop(SHORTCODE) \ + do { \ + RsV =3D RsV; \ + gen_helper_stop(tcg_env); \ + } while (0) + #endif diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index 2fe4440ddc..ada520bd52 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -124,4 +124,8 @@ DEF_HELPER_2(greg_read_pair, i64, env, i32) DEF_HELPER_3(sreg_write, void, env, i32, i32) DEF_HELPER_3(sreg_write_pair, void, env, i32, i64) DEF_HELPER_3(setprio, void, env, i32, i32) +DEF_HELPER_2(start, void, env, i32) +DEF_HELPER_1(stop, void, env) +DEF_HELPER_2(wait, void, env, i32) +DEF_HELPER_2(resume, void, env, i32) #endif diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 01e2677a62..57d8e8305b 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1367,6 +1367,26 @@ uint32_t HELPER(iassignr)(CPUHexagonState *env, uint= 32_t src) g_assert_not_reached(); } =20 +void HELPER(start)(CPUHexagonState *env, uint32_t imask) +{ + g_assert_not_reached(); +} + +void HELPER(stop)(CPUHexagonState *env) +{ + g_assert_not_reached(); +} + +void HELPER(wait)(CPUHexagonState *env, target_ulong PC) +{ + g_assert_not_reached(); +} + +void HELPER(resume)(CPUHexagonState *env, uint32_t mask) +{ + g_assert_not_reached(); +} + uint32_t HELPER(getimask)(CPUHexagonState *env, uint32_t tid) { g_assert_not_reached(); --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756785353; cv=none; d=zohomail.com; s=zohoarc; b=bByBkbTQfZNLl+QlVIaDfXuAP5JwTRJk8RZEmOYkOZAm4U32UrMw6gYRojZ7crtkqvhJBWEfpVyopcZCugDJBcQXKc8CK2eRtdzDcqr5yownmY8GbDKLHcNxLL4hRXbeJwfSrVR9E543h36Md1Ds5jPdvKm/tvYH/57RVWhopKo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785353; 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=8ILxhE7h+hfFtn6G2LTlIYVWHdjTowwoUi5sWps9JkA=; b=Awg8COfVNlnflPOQSyoxUG7qGmV3knA7yTAqYCW0mH5sUTJNE9x38Q6TFBv9y15TPtZxFk4Akw8T86/+ruYyIwGnvhGRI/VzG51YVTSxzXKBuaHmsW0mqr9ACK8GAKOXUjdIgjcYssFikxk6RxN2MrL79dqpx5eB4debCZ/nu4I= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756785353216817.2105354247042; Mon, 1 Sep 2025 20:55:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI0Z-0007WV-Sm; Mon, 01 Sep 2025 23:48:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI0C-0006wZ-D4 for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:48:14 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI0A-0004Vr-Gg for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:48:12 -0400 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822SH30013393 for ; Tue, 2 Sep 2025 03:47:59 GMT Received: from mail-pg1-f198.google.com (mail-pg1-f198.google.com [209.85.215.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48ut2fea1g-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:47:58 +0000 (GMT) Received: by mail-pg1-f198.google.com with SMTP id 41be03b00d2f7-b47253319b8so3865267a12.3 for ; Mon, 01 Sep 2025 20:47:58 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.47.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:47: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= 8ILxhE7h+hfFtn6G2LTlIYVWHdjTowwoUi5sWps9JkA=; b=QsGO1zTTWiPlJy7Z LXHI+kpUF4hmpKgi9UvacPVbyfyMUDFLDDLgXKSqmxjxOEiGjCvKH00UDnLxO9eN /VRp6VNT2nFxfi24g2rw1DXBjIdLBYQdzgJR29bvm0ukfSW+Yx5jQVaDbb1ICQfq Wgbqe09o3Nx+Y/saEO33kNNiL3vpHaVWJczEG9uJhn1AgU7YrQ7HMykVgE+7QeYv rTW6ipNnr1DFj38FkB/Rnu9+R3AgcCOBPjgGQkKuULFBZFZloH4Ap9wB4AHXoBGi ts6vQjvkg/FjVOIJlSaEtbwtOGT3mUbC2kWVBkUuS/xMQcUcNPUcrfVbQ8Ft0JT8 DYUGvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784878; x=1757389678; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=8ILxhE7h+hfFtn6G2LTlIYVWHdjTowwoUi5sWps9JkA=; b=SGF7jWeytFlruL4OB8Mzw45EP6tbCH5pCE3/DGUWASSKCNCJ+8W8tuH6/Z8sCHQWKu C1zqYc6BIj5Aj4Df4KqVYH2k/qOvlrELHTn1xthxDMoeqvQ5ONMMrkFwgtDLPCtGUTiv ONVqElX6aoWBSbfpsErljT4RKeUxXCQQxgHuwCB/6crjAJyf0YEBDiFYzhNIWLh8BjNE Ls/yKCmLqSXbKnuJmyNVeW/SMJd4rkXn4pagXQQoAH1TPIri90YxTzjRfG2W7IxQRYo1 khbgR7M6sAQV7XjUPk6HBOMYulWId7F+zfzOC5as4ZAxekTeYAhkdry0ZPTxgR6f7nL6 UuNg== X-Gm-Message-State: AOJu0YwW7XOyhcDHNzFV/69C0uUEUiBHgVxjF0ie9qGj1hL9KUxDFCrh E5a/6Lyg0ckq237YzTqgb2N6mGwCkANAjSllvfI207v4xJz0u/Y/YdAcriph67NgBqZVXpLbIAh diuTp3UWgZulTNDDiYXAaFyvFzXQGb/HQOiO9W8Hubba9zPG1olVxPliQnyj4VYdAS66M X-Gm-Gg: ASbGncuMs1ixmJuGid3VwumtL3Yerv4twQhkx7jb1HprtT67SSy8vm+Z63aHZRuH1C3 Vy2uydctjTNYi6tXHk7eKEbWCuVUYPNM9s4jKmKGHLw4o6ErjhO+T4IZtTnEzF1RDmQv/0pJIaN mXf1T+yh9te/eh+zuCIdjz6bfZ9HjyJv0M5ytNc1r50seWKDSx5HEdfAbY9eCDzkSYowkL6KlCL 5xl/1dzW4AhpuyEpsiU+NR/lGSlOTMU3X4D7eVbXdNR9wX/+X8Lj6PUjH867EEU7x8Db5tG4Hcu 9axyVH2/LRXzJL5R15koQAqT/PZqEjzopod1wdSjFeXDogIJQgL11CJWP0KLWItQ9nfa5Ycayy/ FuxwEt9Cn6096 X-Received: by 2002:a05:6a21:3286:b0:243:ab0c:f0ed with SMTP id adf61e73a8af0-243d6dff541mr14843299637.20.1756784877743; Mon, 01 Sep 2025 20:47:57 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFlDIbhBhh1xjVF+rXFcNaNYoJ4GK4GW1qwDln9OCLjUtYFO7wcQZRo9yYI0hxqPE5X9fR88w== X-Received: by 2002:a05:6a21:3286:b0:243:ab0c:f0ed with SMTP id adf61e73a8af0-243d6dff541mr14843276637.20.1756784877298; Mon, 01 Sep 2025 20:47:57 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain Subject: [PATCH v2 30/40] target/hexagon: Add TCG overrides for rte, nmi Date: Mon, 1 Sep 2025 20:47:05 -0700 Message-Id: <20250902034715.1947718-31-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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: AW1haW4tMjUwODMwMDAzOCBTYWx0ZWRfX80F1SB/FafWb GjhVX7cwhtXJLzBYkr07bZV9qn0FnzNGNztF/z0YNEHCyS+SX8GPfYCLK4cWN4W8G/Wbkx2OO/i e079/BiD+7bAf2GV7sTLniRvyde2DUSeCZiChIkAUXZZRgEersW9oNMPQct6RJBjcjcrof6tWA2 pLIf50kCFaRGazE7/CJ72d1Hr2x8HRf1+2aemuxWEFQjd0dWQj2TmmmFesARp32aua0RD3Tkhca oPDpr30YMojBEyzTrJfKr5GualzVTMfs+Ja5lYSbSmvP/ZvMF0JRIRoWX5/gGgM7SvkVKjCOQz0 OG+2eLyWj1fwhpNTc84YV8OXQ/Pb0SH5RoIMdF0f1O0gfwaX4AQtcftIP5bNv3EfplqzlLks/La l4M948Gx X-Proofpoint-ORIG-GUID: KwgErWzRVqGCmF1qlvnGw6plbRtrhEsy X-Proofpoint-GUID: KwgErWzRVqGCmF1qlvnGw6plbRtrhEsy X-Authority-Analysis: v=2.4 cv=U7iSDfru c=1 sm=1 tr=0 ts=68b668ee cx=c_pps a=Qgeoaf8Lrialg5Z894R3/Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=lxLFxpUPbXRnogNa7PoA:9 a=QEXdDO2ut3YA:10 a=x9snwWr2DeNwDh03kgHS:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 phishscore=0 clxscore=1015 impostorscore=0 suspectscore=0 malwarescore=0 priorityscore=1501 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300038 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756785354943124100 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 942d07b401..6d73a18db4 100644 --- a/target/hexagon/gen_tcg_sys.h +++ b/target/hexagon/gen_tcg_sys.h @@ -81,4 +81,23 @@ gen_helper_stop(tcg_env); \ } while (0) =20 +/* + * rte (return from exception) + * Clear the EX bit in SSR + * Jump to ELR + */ +#define fGEN_TCG_J2_rte(SHORTCODE) \ + do { \ + TCGv new_ssr =3D tcg_temp_new(); \ + tcg_gen_deposit_tl(new_ssr, hex_t_sreg[HEX_SREG_SSR], \ + tcg_constant_tl(0), \ + reg_field_info[SSR_EX].offset, \ + reg_field_info[SSR_EX].width); \ + gen_log_sreg_write(ctx, HEX_SREG_SSR, new_ssr); \ + gen_jumpr(ctx, hex_t_sreg[HEX_SREG_ELR]); \ + } while (0) + +#define fGEN_TCG_Y4_nmi(SHORTCODE) \ + gen_helper_nmi(tcg_env, RsV) + #endif diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index ada520bd52..730eaf8b9a 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -128,4 +128,5 @@ DEF_HELPER_2(start, void, env, i32) DEF_HELPER_1(stop, void, env) DEF_HELPER_2(wait, void, env, i32) DEF_HELPER_2(resume, void, env, i32) +DEF_HELPER_2(nmi, void, env, i32) #endif diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 57d8e8305b..0aa9b91f85 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1433,6 +1433,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 Sun Sep 28 16:36:33 2025 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=1756785974; cv=none; d=zohomail.com; s=zohoarc; b=GYlXl+EFZmOmoL3FDoAGYBM0m2eH54Ufi12fZ07vIGiQdhQajmky2oGENYb4jx7zfs05muxiBsulpoCb5p6Ysbv6sPfuFk3qUnZp2FynQqPA4KRbUFrUpyve0vrRSQtUcPN2u35w2jjlIt5FRr6YlBCECAFIDI2BnBuhVam+9RA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785974; 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=CdQHjAoqrRHes3MJK+/dEWICrkK2GN2WR2UEEkfrfEs=; b=WI4X6zgRXSX8fyHzFQaOUTXV9Ylarzlk5cwet0R5Yho6gaaAb4EGPhls6y/zwBgD8G03ndWjM0i8p65dOX/wesmwtUyWFsd9+BdBx45iF3bEm1E8lN3+3DaqaGTyz5uHoqw9shKDYwlZ5zD+T9YU5Q5Qe/FyU0Ttd85c8Q6Emgs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756785974983902.9662496749502; Mon, 1 Sep 2025 21:06:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI0a-0007XA-8H; Mon, 01 Sep 2025 23:48:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI0G-000745-Vx for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:48:19 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI0C-0004WA-AG for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:48:15 -0400 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822S9VW013338 for ; Tue, 2 Sep 2025 03:48:01 GMT Received: from mail-pg1-f197.google.com (mail-pg1-f197.google.com [209.85.215.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48ut2fea1k-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:48:00 +0000 (GMT) Received: by mail-pg1-f197.google.com with SMTP id 41be03b00d2f7-b4e1675ba95so2266522a12.1 for ; Mon, 01 Sep 2025 20:48: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 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.47.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:47: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= CdQHjAoqrRHes3MJK+/dEWICrkK2GN2WR2UEEkfrfEs=; b=lXGRBiRHjzrNDMfK oEXClDtZJgeCcR5bJhZiZmJpQ2y6gJIMZZJV0InyCP8IchBf5G9Jb7bvI8e5/qop cXFEPMLCBQ01Mu7Ul2OmAb44YB3K0akOu2LgpkKQ4FE8089w+nlLFefbrK+g+1s8 WWt8+CDPYlmulgZxyld30rFgyROSjjl+CkP5hFYMd6gTZz258oG7K5/cObQwYXSR RQD1bn4SwiuF/aZRkrSNZw3Ic0V0KSQ0gyp+GdKWIuoJa4ap5dD5A8bvotVF/p/J nt8DbtazNhi4jgzuF+QOQSUfl5cHBRoIk7RZ3izBr+QJziarTAYfnq0WzCBT1zIz E6dqLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784879; x=1757389679; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=CdQHjAoqrRHes3MJK+/dEWICrkK2GN2WR2UEEkfrfEs=; b=YbEfo/uE3dtzEVelU/eDG6LiCbR5Wl5nXWlAaS0dkOO7VqxusOjgyl9cHrMh2aNCr3 tMgu57oA8lMy0nlULS02wL5HjRneeSkwbb/eTvYqSyfbjp9IPPvR0kZRQKmRU8TR01Km +Y6BvnCJy92vgeMEoz+91hsWx8opCsNfUjSAseYuqD7q7luPgIvaGGCa/nY2cFvB8HQI i89isH7TpPr6iqAjz1mgfHMTR6iNOgOlvARFwB9xPxWuaY30hAfeFkAMR6Q5Nkqnfl/D 5ynpmll9T73zjDnVf1ZA3lc1jLu5rAMoY09cAyJr3lqZaHsWG/6N0o6ysi0TTpIyd16J U/pw== X-Gm-Message-State: AOJu0YycDXC7kwulk41IeHWn0AMzhI1DrXBv0CWQpUUV2DjTYJwUfp6T NbS49cBhy+SH4MFKqhtCrDSq2e4ir5vLcEawAKsDESkQc1JU09D+Bk4vKE/MH6pfTjas+wOBEwG lDx0O7Nad3nY/c9ECAe5DH5RrrycwENpXaYoC9z5wBsFnjRkCJPo0yKQucGoJ3/CRDhLn X-Gm-Gg: ASbGncv1gdovt8meHcj6xnLKgQpjO0SBDp91dv/YN8BKS4cOS/8BVtZFZH8pwGcDMDW ZgEohiPyFm0RXBL0ox8/ROXcC+2MMwe08ubeYXSLRrhHZ2d1AS0u2nY5phpsst62seo0yh2ETMu ZylLaNdCBoUsiQnZXX7tAtb+aQGuhYIv5vc8Y/P9Py9w8E60jEWhVu6x9EZf3k0WmxfH7/Le/5x w2rGsztSqS01CDteQ8/1c+hTVZmu1TlEFYPXsx+oVz7DnaUI5hhMS8PG18smhXpM2lo5V++wHAZ HPzMR0+WqI9cJuojf5N4M/PF7DtRe2CbdrV1tYxZL6ckWtb5O591oMS1RcNl1GBAx8YyMcp3SLc 32lGyh01JMxOM X-Received: by 2002:a05:6a21:999a:b0:243:78a:82c6 with SMTP id adf61e73a8af0-243d5234e33mr15114945637.27.1756784879134; Mon, 01 Sep 2025 20:47:59 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGGjqB7GfcLoxrkkT/UIEREYXyVn+N8SEfVYfzjXolvcEVxMW9AYMxqnom9qE/FiabFO1nKSQ== X-Received: by 2002:a05:6a21:999a:b0:243:78a:82c6 with SMTP id adf61e73a8af0-243d5234e33mr15114910637.27.1756784878546; Mon, 01 Sep 2025 20:47:58 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain , Sid Manning Subject: [PATCH v2 31/40] target/hexagon: Add sreg_{read,write} helpers Date: Mon, 1 Sep 2025 20:47:06 -0700 Message-Id: <20250902034715.1947718-32-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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: AW1haW4tMjUwODMwMDAzOCBTYWx0ZWRfX/H11H9cCMUnS kdkKdoEfvtuPR7cinHA32ZT30b9vMyYDE/4facX5Fd2Bf1Jny28h/O66+AOnVmqo28HSYL424B7 aZ3cNt10WWP17aMqxqF1y86MVff5doieIylyhv8dmUtoGFy5qRh4a3/XucB2kVQPj+6R5hmvWYs u6gB3TbQg3G34fYDYXG9pbdBqQHoAu6W7+kpsHMNtgWRJefLdFgL3TYEGoJN0rflrIe3bXzMWVe NGfDglXM555pQ/+fvSj39EYMpGVm9WjSRYKCpTgBONiOdowcc6DLdM2ZJEFsVdz0LqrXon0V8b8 V7QtCEXiNY6U1BouLm7XgcGi8xoArh5CT3kJRhtfkfIuD1q3KOToP5qzwV5ESEZjYt3ya+j9lLV aWQzAL/8 X-Proofpoint-ORIG-GUID: kzNYySnpRvi4HQT4EY91m-5nTeWpuSOK X-Proofpoint-GUID: kzNYySnpRvi4HQT4EY91m-5nTeWpuSOK X-Authority-Analysis: v=2.4 cv=U7iSDfru c=1 sm=1 tr=0 ts=68b668f0 cx=c_pps a=rz3CxIlbcmazkYymdCej/Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=CWTooRxD2BlePtgY-i0A:9 a=QEXdDO2ut3YA:10 a=bFCP_H2QrGi7Okbo017w:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 phishscore=0 clxscore=1015 impostorscore=0 suspectscore=0 malwarescore=0 priorityscore=1501 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300038 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756785977328116600 From: Brian Cain Co-authored-by: Sid Manning Signed-off-by: Brian Cain --- target/hexagon/cpu_helper.h | 8 ++ target/hexagon/cpu.c | 1 - target/hexagon/cpu_helper.c | 37 +++++++++ target/hexagon/op_helper.c | 152 +++++++++++++++++++++++++++++++++++- 4 files changed, 193 insertions(+), 5 deletions(-) diff --git a/target/hexagon/cpu_helper.h b/target/hexagon/cpu_helper.h index 194bcbf451..5f5f15149a 100644 --- a/target/hexagon/cpu_helper.h +++ b/target/hexagon/cpu_helper.h @@ -7,6 +7,14 @@ #ifndef HEXAGON_CPU_HELPER_H #define HEXAGON_CPU_HELPER_H =20 +uint32_t hexagon_get_pmu_counter(CPUHexagonState *cur_env, int index); +uint64_t hexagon_get_sys_pcycle_count(CPUHexagonState *env); +uint32_t hexagon_get_sys_pcycle_count_low(CPUHexagonState *env); +uint32_t hexagon_get_sys_pcycle_count_high(CPUHexagonState *env); +void hexagon_set_sys_pcycle_count(CPUHexagonState *env, uint64_t); +void hexagon_set_sys_pcycle_count_low(CPUHexagonState *env, uint32_t); +void hexagon_set_sys_pcycle_count_high(CPUHexagonState *env, uint32_t); + static inline void arch_set_thread_reg(CPUHexagonState *env, uint32_t reg, uint32_t val) { diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 39b45e6452..bdc9d18395 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -329,7 +329,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 index 01fdd6b28d..4b8697de65 100644 --- a/target/hexagon/cpu_helper.c +++ b/target/hexagon/cpu_helper.c @@ -29,10 +29,47 @@ =20 #ifndef CONFIG_USER_ONLY =20 +uint32_t hexagon_get_pmu_counter(CPUHexagonState *cur_env, int index) +{ + g_assert_not_reached(); +} + uint32_t arch_get_system_reg(CPUHexagonState *env, uint32_t reg) { g_assert_not_reached(); } =20 +uint64_t hexagon_get_sys_pcycle_count(CPUHexagonState *env) +{ + g_assert_not_reached(); +} + +uint32_t hexagon_get_sys_pcycle_count_high(CPUHexagonState *env) +{ + g_assert_not_reached(); +} + +uint32_t hexagon_get_sys_pcycle_count_low(CPUHexagonState *env) +{ + g_assert_not_reached(); +} + +void hexagon_set_sys_pcycle_count_high(CPUHexagonState *env, + uint32_t cycles_hi) +{ + g_assert_not_reached(); +} + +void hexagon_set_sys_pcycle_count_low(CPUHexagonState *env, + uint32_t cycles_lo) +{ + g_assert_not_reached(); +} + +void hexagon_set_sys_pcycle_count(CPUHexagonState *env, uint64_t cycles) +{ + g_assert_not_reached(); +} + =20 #endif diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 0aa9b91f85..7851f43475 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 "exec/helper-proto.h" #include "fpu/softfloat.h" #include "cpu.h" @@ -1397,25 +1398,168 @@ void HELPER(setimask)(CPUHexagonState *env, uint32= _t pred, uint32_t imask) g_assert_not_reached(); } =20 +static bool handle_pmu_sreg_write(CPUHexagonState *env, uint32_t reg, + uint32_t val) +{ + if (reg =3D=3D HEX_SREG_PMUSTID0 || reg =3D=3D HEX_SREG_PMUSTID1 + || reg =3D=3D HEX_SREG_PMUCFG || reg =3D=3D HEX_SREG_PMUEVTCFG + || reg =3D=3D HEX_SREG_PMUEVTCFG1 + || (reg >=3D HEX_SREG_PMUCNT4 && reg <=3D HEX_SREG_PMUCNT3)) { + qemu_log_mask(LOG_UNIMP, "PMU registers not yet implemented"); + return true; + } + return false; +} + +static void modify_syscfg(CPUHexagonState *env, uint32_t val) +{ + g_assert_not_reached(); +} + +static void hexagon_set_vid(CPUHexagonState *env, uint32_t offset, int val) +{ + g_assert_not_reached(); +} + +static uint32_t hexagon_find_last_irq(CPUHexagonState *env, uint32_t vid) +{ + g_assert_not_reached(); +} + +static void hexagon_read_timer(CPUHexagonState *env, uint32_t *low, + uint32_t *high) +{ + qemu_log_mask(LOG_UNIMP, "reading timer_hi/lo not yet supported\n"); +} + +static inline QEMU_ALWAYS_INLINE void sreg_write(CPUHexagonState *env, + uint32_t reg, uint32_t va= l) + +{ + g_assert(bql_locked()); + if ((reg =3D=3D HEX_SREG_VID) || (reg =3D=3D HEX_SREG_VID1)) { + if (val !=3D L2VIC_NO_PENDING) { + hexagon_set_vid(env, + (reg =3D=3D HEX_SREG_VID) ? L2VIC_VID_0 : L2VI= C_VID_1, + val); + arch_set_system_reg(env, reg, val); + } + } else if (reg =3D=3D HEX_SREG_SYSCFG) { + modify_syscfg(env, val); + } else if (reg =3D=3D HEX_SREG_IMASK) { + val =3D GET_FIELD(IMASK_MASK, val); + arch_set_system_reg(env, reg, val); + } else if (reg =3D=3D HEX_SREG_PCYCLELO) { + hexagon_set_sys_pcycle_count_low(env, val); + } else if (reg =3D=3D HEX_SREG_PCYCLEHI) { + hexagon_set_sys_pcycle_count_high(env, val); + } else if (!handle_pmu_sreg_write(env, reg, val)) { + if (reg >=3D HEX_SREG_GLB_START) { + arch_set_system_reg(env, reg, val); + } else { + arch_set_system_reg(env, reg, val); + } + } +} + +static inline QEMU_ALWAYS_INLINE void +sreg_write_masked(CPUHexagonState *env, uint32_t reg, uint32_t val) + +{ + g_assert(bql_locked()); + if ((reg =3D=3D HEX_SREG_VID) || (reg =3D=3D HEX_SREG_VID1)) { + HexagonCPU *cpu =3D env_archcpu(env); + val =3D hexagon_globalreg_masked_value(cpu, reg, val); + hexagon_set_vid(env, + (reg =3D=3D HEX_SREG_VID) ? L2VIC_VID_0 : L2VIC_VI= D_1, + val); + arch_set_system_reg(env, reg, val); + } else if (reg =3D=3D HEX_SREG_SYSCFG) { + modify_syscfg(env, val); + } else if (reg =3D=3D HEX_SREG_IMASK) { + val =3D GET_FIELD(IMASK_MASK, val); + arch_set_system_reg_masked(env, reg, val); + } else if (reg =3D=3D HEX_SREG_PCYCLELO) { + hexagon_set_sys_pcycle_count_low(env, val); + } else if (reg =3D=3D HEX_SREG_PCYCLEHI) { + hexagon_set_sys_pcycle_count_high(env, val); + } else if (!handle_pmu_sreg_write(env, reg, val)) { + arch_set_system_reg_masked(env, reg, val); + } +} + void HELPER(sreg_write)(CPUHexagonState *env, uint32_t reg, uint32_t val) { - g_assert_not_reached(); + BQL_LOCK_GUARD(); + sreg_write(env, reg, val); } =20 void HELPER(sreg_write_pair)(CPUHexagonState *env, uint32_t reg, uint64_t = val) +{ + BQL_LOCK_GUARD(); + sreg_write(env, reg, val & 0xFFFFFFFF); + sreg_write(env, reg + 1, val >> 32); +} + +void HELPER(sreg_write_pair_masked)(CPUHexagonState *env, uint32_t reg, + uint64_t val) + +{ + BQL_LOCK_GUARD(); + sreg_write_masked(env, reg, val & 0xFFFFFFFF); + sreg_write_masked(env, reg + 1, val >> 32); +} =20 +static inline QEMU_ALWAYS_INLINE uint32_t sreg_read(CPUHexagonState *env, + uint32_t reg) { - g_assert_not_reached(); + g_assert(bql_locked()); + if (reg =3D=3D HEX_SREG_PMUSTID0 || reg =3D=3D HEX_SREG_PMUSTID1 + || reg =3D=3D HEX_SREG_PMUCFG || reg =3D=3D HEX_SREG_PMUEVTCFG + || reg =3D=3D HEX_SREG_PMUEVTCFG1 + || (reg >=3D HEX_SREG_PMUCNT4 && reg <=3D HEX_SREG_PMUCNT3)) { + qemu_log_mask(LOG_UNIMP, "PMU registers not yet implemented"); + return 0; + } + if ((reg =3D=3D HEX_SREG_VID) || (reg =3D=3D HEX_SREG_VID1)) { + const uint32_t vid =3D hexagon_find_last_irq(env, reg); + arch_set_system_reg(env, reg, vid); + } else if ((reg =3D=3D HEX_SREG_TIMERLO) || (reg =3D=3D HEX_SREG_TIMER= HI)) { + uint32_t low =3D 0; + uint32_t high =3D 0; + hexagon_read_timer(env, &low, &high); + arch_set_system_reg(env, HEX_SREG_TIMERLO, low); + arch_set_system_reg(env, HEX_SREG_TIMERHI, high); + } else if (reg =3D=3D HEX_SREG_BADVA) { + target_ulong ssr =3D arch_get_system_reg(env, HEX_SREG_SSR); + if (GET_SSR_FIELD(SSR_BVS, ssr)) { + return arch_get_system_reg(env, HEX_SREG_BADVA1); + } + return arch_get_system_reg(env, HEX_SREG_BADVA0); + } + return arch_get_system_reg(env, reg); } =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(); + if (reg =3D=3D HEX_SREG_TIMERLO) { + uint32_t low =3D 0; + uint32_t high =3D 0; + hexagon_read_timer(env, &low, &high); + arch_set_system_reg(env, HEX_SREG_TIMERLO, low); + arch_set_system_reg(env, HEX_SREG_TIMERHI, high); + } else if (reg =3D=3D HEX_SREG_PCYCLELO) { + return hexagon_get_sys_pcycle_count(env); + } + return (uint64_t)sreg_read(env, reg) | + (((uint64_t)sreg_read(env, reg + 1)) << 32); } =20 uint32_t HELPER(greg_read)(CPUHexagonState *env, uint32_t reg) --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756786380; cv=none; d=zohomail.com; s=zohoarc; b=X8UwUPYRQpm3oC3k6Vzmf/BUO9pvOXtfGz0tcH1X5Z1kOz2ErQlhxTI5Vp19krS0bDn4YuFZZ7EwFc6Zv273n14A81J2gAP5H2/oCseF2rg/RM/e4okWIhyN6MOFBC7kbZOfwReb4+hO8dxLBphIlGmGKNvvyGRgDcUvinfHze8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756786380; 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=ez9CPisJo+6c6MuYDInXx9ZMS/0b1em92YuMNu0aV8I=; b=Dz/1KGG1Q3TdNvxk3hyYh/Nejjgd4alfOlNyIQLpUS4UqYXqRDklXsTON2lxMm67l/NuCE42SFMtYBGn1h0ej01XCa2oFANlwl5SAbGzuVOKgjN/xGbuS6HLtBhodEuMKi6hJUnmiXlWBF6ydavHsKhJE7zemK0kfpiuLwZvYVQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 175678638077788.99797191541393; Mon, 1 Sep 2025 21:13:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI0R-0007He-Kd; Mon, 01 Sep 2025 23:48:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI0G-000746-Vt for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:48:19 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI0C-0004WC-GS for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:48:15 -0400 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822RqSO017322 for ; Tue, 2 Sep 2025 03:48:01 GMT Received: from mail-pg1-f197.google.com (mail-pg1-f197.google.com [209.85.215.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48utk8x86v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:48:01 +0000 (GMT) Received: by mail-pg1-f197.google.com with SMTP id 41be03b00d2f7-b47253319b8so3865290a12.3 for ; Mon, 01 Sep 2025 20:48: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 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.47.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:47: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= ez9CPisJo+6c6MuYDInXx9ZMS/0b1em92YuMNu0aV8I=; b=XoyJxBdZnWeNJWWD SkoNK0/+YaSczXLXU9RTdZEHidak8pBIaXy5gjlSqt1MEO3BCWNMlcW1eFyV9AwA WTGdMZEohGoalMnrRhZUFvVkq29wdXlVe4EzCpYlNZzeMmlX7uFakqAbPy2ObLaD 3U9wVnNp59S0HBUZFLB6zu1a24KPQfsNOIE2UXV4xh8OWrGIEhIYU9bg3S3v9BV+ UMl4Kh9G6cBgY2BaDXCARVuMF6Pgm6CselBmQew9QvG9A5mSOikAZTxJAOtesrrR 6ToPxI5NC1GU5gQS8S8C5h/yWvM2qzeFzKUOwHLp/LWLyvIxFc0K9n+3MTRHPxcJ UvxWUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784880; x=1757389680; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ez9CPisJo+6c6MuYDInXx9ZMS/0b1em92YuMNu0aV8I=; b=d2vIbe7Ac5gl9JjzgTYk8+KR900iULxzU7nMYaqXqodFZYkFLZXPXeVcWyEK+HmcAh m2sN7MfnARg1yDEV0t3jLufE7cJo0tNMa4gwCRufSbOCNX7FyrmHaK2alsWnm3LUAQly yU4qBytMMpzV1nIX5nByNcMbAEykY+1fwjwyOf655cjN+lOdyGQM0o7Jv54e3fmgeY1J l/5n8XgrZ0aw5b0WL+pid7vH8LvmBP48lbxybwNG/SNoj0IEVjQ5+DXCrPfruHwXmfG5 NFCCu0gRKDa72zCgG6PWdVW32QfR5cNrniam09TKh+wUQcCAEaKo8d9Z1JdtauIdlmGa hjeA== X-Gm-Message-State: AOJu0Yyl8sszqgsH60EQ8mHDBwZY/hBEoJQSjgLpylPAYRasvfrK4v3+ IgKpR5wOjidN9+6SOfgHfhoG/Wsvked0gg/oqHXxZEIS2YvPiRh2v2RcTrYiNv46OLkH0A4HvE6 pnea/CCZttbitBDJ+h+ugjO4jNbLsBBnsos8z83q8chJ7jmk72KOnCK7Kd6u9PLVAqJrJ X-Gm-Gg: ASbGncsQsnZyb75YdYtC7a88dYtEIkAbSJKzgYIx/ufVNaoTjVQ81P0HoelLxJJIAep wKYtMdtls2CbDU850791fMQHW0CZZwP3UgBwBcODtZOIEoxqFX9EiCb+EFlrj6VTrPL0AO/yMTm x/16zqoRgLuOAqKGuk9h8pkq5rxLoajIcqvg2EZgbPpOF8eEl5+uwh1FO9cA+rOFShtkotVdoav f6iBvWp1QKTNu0Y9RF1KD9QuwnhGFjUZ3MTNqWdtI8Ien0w7vKhzOmeOaTPDaJ03mNsiII+LRe4 zFIFGeiqxNz9PmcXGYoks+W8y/SM6/JTxsB5KymWIpZFHZ66O8IhYdt7IeyqDt+iuEDhKa6bkoq xLScmykTHtoyn X-Received: by 2002:a05:6a20:3ca3:b0:240:101c:4417 with SMTP id adf61e73a8af0-243d6dc809bmr13877375637.4.1756784880143; Mon, 01 Sep 2025 20:48:00 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH+SamdyP0nffsEJy9XA/iGX7YcrGqz6IlT/ncyV/yNss2vHeYwYP+9/Sg2C3kUV9EHUMq1PQ== X-Received: by 2002:a05:6a20:3ca3:b0:240:101c:4417 with SMTP id adf61e73a8af0-243d6dc809bmr13877338637.4.1756784879627; Mon, 01 Sep 2025 20:47:59 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain Subject: [PATCH v2 32/40] target/hexagon: Add locks, id, next_PC to state Date: Mon, 1 Sep 2025 20:47:07 -0700 Message-Id: <20250902034715.1947718-33-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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: iyD_Xw6lyt_4s9HylYciulDRDC4nCt3W X-Proofpoint-ORIG-GUID: iyD_Xw6lyt_4s9HylYciulDRDC4nCt3W X-Authority-Analysis: v=2.4 cv=ccnSrmDM c=1 sm=1 tr=0 ts=68b668f1 cx=c_pps a=rz3CxIlbcmazkYymdCej/Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=3yPDquGOu9_QmsYTTv0A:9 a=QEXdDO2ut3YA:10 a=bFCP_H2QrGi7Okbo017w:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDA0MiBTYWx0ZWRfXygo7d9Hxryb2 QdljtGxYu0aeD2B2ywByWgSlcCrmLITOSGTUIMXjkjcLI/AUr3U3TnlXTwoNd7YDqJWNQFfjlea NcFSrHrlPADvHZlfmWDOVyayzgPwLSG75JlPehAH+XXH9ioaEVUdlAQoe4wxiuplxqwnfeRE3Qj Mxu70ZYX3b/EPQnuR/EIN3tca7lFa1+rLA6SgUPMBfPYO4TSitNPylHx9JksvTp7BAwCF0SKeZ3 cF/ebG0Z7/mZsXX31FCOElLzaLz4uctWQAV3I0bvOdv/rB1xceP2OHsApO+TfsQ8m5PytNt2i61 ok7qSjRceWzZfBhm6XaHhZhqA2AEIuraEIeV4mZbrE79vFID5NOLlOOJsnMFrubA8m4iHfnShu8 QF2QSh7d X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 phishscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 clxscore=1015 suspectscore=0 spamscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300042 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756786383012124100 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 34 +++++++++++++++++++++++++++++++++- target/hexagon/cpu.c | 4 ++++ target/hexagon/machine.c | 4 ++++ 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 42b877a04c..fc6552e64c 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -46,8 +46,34 @@ #define VSTORES_MAX 2 =20 #define CPU_RESOLVING_TYPE TYPE_HEXAGON_CPU +#ifndef CONFIG_USER_ONLY +#define CPU_INTERRUPT_SWI CPU_INTERRUPT_TGT_INT_0 +#define CPU_INTERRUPT_K0_UNLOCK CPU_INTERRUPT_TGT_INT_1 +#define CPU_INTERRUPT_TLB_UNLOCK CPU_INTERRUPT_TGT_INT_2 + +#define HEX_CPU_MODE_USER 1 +#define HEX_CPU_MODE_GUEST 2 +#define HEX_CPU_MODE_MONITOR 3 + +#define HEX_EXE_MODE_OFF 1 +#define HEX_EXE_MODE_RUN 2 +#define HEX_EXE_MODE_WAIT 3 +#define HEX_EXE_MODE_DEBUG 4 +#endif + +#define MMU_USER_IDX 0 +#ifndef CONFIG_USER_ONLY +#define MMU_GUEST_IDX 1 +#define MMU_KERNEL_IDX 2 + +typedef enum { + HEX_LOCK_UNLOCKED =3D 0, + HEX_LOCK_WAITING =3D 1, + HEX_LOCK_OWNER =3D 2, + HEX_LOCK_QUEUED =3D 3 +} hex_lock_state_t; +#endif =20 -#define MMU_USER_IDX 0 =20 #define HEXAGON_CPU_IRQ_0 0 #define HEXAGON_CPU_IRQ_1 1 @@ -103,7 +129,13 @@ typedef struct CPUArchState { target_ulong t_sreg[NUM_SREGS]; =20 target_ulong greg[NUM_GREGS]; + + /* This alias of CPUState.cpu_index is used by imported sources: */ + target_ulong threadId; + hex_lock_state_t tlb_lock_state; + hex_lock_state_t k0_lock_state; #endif + target_ulong next_PC; target_ulong new_value_usr; =20 MemLog mem_log_stores[STORES_MAX]; diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index bdc9d18395..a508f27fe4 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -301,6 +301,10 @@ static void hexagon_cpu_reset_hold(Object *obj, ResetT= ype type) #ifndef CONFIG_USER_ONLY memset(env->t_sreg, 0, sizeof(target_ulong) * NUM_SREGS); memset(env->greg, 0, sizeof(target_ulong) * NUM_GREGS); + env->threadId =3D cs->cpu_index; + env->tlb_lock_state =3D HEX_LOCK_UNLOCKED; + env->k0_lock_state =3D HEX_LOCK_UNLOCKED; + env->next_PC =3D 0; #endif env->cause_code =3D HEX_EVENT_NONE; } diff --git a/target/hexagon/machine.c b/target/hexagon/machine.c index 988ede06e9..18c3f87188 100644 --- a/target/hexagon/machine.c +++ b/target/hexagon/machine.c @@ -19,6 +19,10 @@ const VMStateDescription vmstate_hexagon_cpu =3D { VMSTATE_UINTTL_ARRAY(env.pred, HexagonCPU, NUM_PREGS), VMSTATE_UINTTL_ARRAY(env.t_sreg, HexagonCPU, NUM_SREGS), VMSTATE_UINTTL_ARRAY(env.greg, HexagonCPU, NUM_GREGS), + VMSTATE_UINTTL(env.next_PC, HexagonCPU), + VMSTATE_UINTTL(env.tlb_lock_state, HexagonCPU), + VMSTATE_UINTTL(env.k0_lock_state, HexagonCPU), + VMSTATE_UINTTL(env.threadId, HexagonCPU), VMSTATE_END_OF_LIST() }, }; --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756786526; cv=none; d=zohomail.com; s=zohoarc; b=ALln+E44PmyQ2XJvYnjPcjKelkq4J0B/6Knkr+Q4CJ3D+fR+fdnbjzK/RmrgJzAwRyBXStSACeDBXEp35KHmiB6DnAR0uCYE4UIZq5CkwV5sPHFMfHxQPGl4bYI+GU5xmHaqxocqUlNh8IIxDVRAshjxJg/8nBHsS1E1NsJvhpI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756786526; 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=Jy5idaKhQlhRz9SImrU9PvAGI/IEG3MQHB3N9+s1ybg=; b=Cj0VXkyThxT3Ln96FREgpC3kzwlnJV9ue/w7etVatO9efPWhCwKiHlIVXqsiE72FEumTTZFEWtTdRxLKE5+yI1uB8QkdOaLrEA00r7SPfpgjet3tCZNIgA0cUs1Zu3uJYJH8q/0gsvcrLKuwu+YPP6T9FtSiM9IMJCielsir3Hc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756786526979637.1214943152111; Mon, 1 Sep 2025 21:15:26 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI0R-0007HL-5V; Mon, 01 Sep 2025 23:48:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI0F-00073W-FS for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:48:16 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI0D-0004WY-K5 for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:48:15 -0400 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822RmGU012352 for ; Tue, 2 Sep 2025 03:48:02 GMT Received: from mail-pg1-f198.google.com (mail-pg1-f198.google.com [209.85.215.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48ut2fea1q-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:48:02 +0000 (GMT) Received: by mail-pg1-f198.google.com with SMTP id 41be03b00d2f7-b4f736195daso1338553a12.0 for ; Mon, 01 Sep 2025 20:48:02 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.47.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:48:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= Jy5idaKhQlhRz9SImrU9PvAGI/IEG3MQHB3N9+s1ybg=; b=gTTFqA9/KYcXCrUu WlGODeFttEt/SZv89uLTq+hWlP0VSR99yqxpHoDOTBYHdIDPjhvyCvOD/y1+dX+x 8DZ2u3a9eF2fwyG3b5fV1jIGTkboOBD//2vWEYYgm+JRPyrU8YxCWOrtmYuofMU4 Rf6ahcvZZJu7SWrHbZirjLGQQIZXFvrF0c/P04Mnv9/sECKAjR5W7nqerIpS00/3 8Vr7+WgpS8ONt0+KqubIODFBSgigW2xmf2EqBD0Zy5YijSpxC9aISVqe4RC73KH8 9mKy+EDFppoh7j1yyaaBjH8gTnlyksVCdfhaW6AW21EFu3WE23BIxcL+nJg1OJfx MGluMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784881; x=1757389681; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Jy5idaKhQlhRz9SImrU9PvAGI/IEG3MQHB3N9+s1ybg=; b=RDw8oQTMY+I90IlKLs6SQITjaeD8JpH08ZRcPm7yZIXdtgwjyDnFRaoN/AfVcmJIhq qUUxOfKtEypOD62NpYqUI2ndTsiE8GOVvu39NL1yJjCx469JDOk9UFPRl9KzvH0zpNNp ar1SMxkFa1N5lpIQeEpeXKBhRURSoVXzEKI1V2yXkPkn8BosDbb59J/+jpoeUkw6ufrL eeo5xFIpeXk8X5naMLWHwglMFDUa7WbpTq2nsTNnKksiix9+u3PTobSlz44l/pP5GZvh z6yn7SrQOXN41QqxPc5hY18WKrXO5adkX4dum9eeJ9n8ylwQK/aVeptr8Lyujr90Dvot E3ng== X-Gm-Message-State: AOJu0YxzpftABRfVOWPECb+CCeDM/z4DUiPAs5i/XUKSn0gmfkhTiXYu fTZZi1eIVScd5yQhR38c42Os6UBd0ThWouSBHjLXexM1iw3ZNHlb2s4EaloLrNTCbfNv5WysSyW qlHxODvaLHGpJt/tAbBlCy3m4ozkgScNYRE27nY6BZf0ceJVwG9E29+ZxawjsSULMRrqY X-Gm-Gg: ASbGncsieH4UmtyOS8mSoOvrrOKseK16UPUkIlXqvfFKqiwdunH+nZTjXs8x1wdpSAO IqUg3KkiOGzX1ffXi+jcRLbowwUXXuIME5UlQl0td926nH+C3140s/k+zTW0zoqX/Hjg+vf+t3p IQdH2gHkj8qLipguSmKZyppdpbKf8xciz5DC+BL9/IdjvcSlCnAaMOHTBWn78sy3rT+K4GdsBnZ iQFaWrYS6bJXE0V3y/uoqyxL5b4/y21AEQCwgduXnUAzfq03x9wykE40obR1C6Y5Nt3PTZg3GD7 2csfAZEUutyGIVw4PlwZ+egogX3ao7BIRDfMWv/OMUk3xyZ7zoWIiTIK4bdy3h+MgsoJlQ6b7Oz ga32BsEm9iggT X-Received: by 2002:a05:6a20:734a:b0:243:9312:4fab with SMTP id adf61e73a8af0-243d6dd0cdcmr13683170637.3.1756784881101; Mon, 01 Sep 2025 20:48:01 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE35IZ2rM+EJLGVsbOzSugdY671GhWnpX6/BxWiMTPTDWeLh3zFO8xWfOGcS6gR/kji8cprSA== X-Received: by 2002:a05:6a20:734a:b0:243:9312:4fab with SMTP id adf61e73a8af0-243d6dd0cdcmr13683148637.3.1756784880668; Mon, 01 Sep 2025 20:48:00 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain Subject: [PATCH v2 33/40] target/hexagon: Add a TLB count property Date: Mon, 1 Sep 2025 20:47:08 -0700 Message-Id: <20250902034715.1947718-34-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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: AW1haW4tMjUwODMwMDAzOCBTYWx0ZWRfXwnlETXH40XQJ EqMB4zq6XEOir0XX9o7fusQ7KFHnhmmFq7h68+0uqpU/q58HNYhVSKaIT/j+m0TimvqUwIEn0al ZQLeBI8HEK0aEmjQdNq7vkI7qcbTGoSolUaqpqHZE5wPTeUHIZ7GqL5P6i3giG4Br4tLoZ/Da3S E+Of9DfHmQKNC7KpBoamjJqeoB/MK3ft6NAdZAhdDfqH390UgydAIyVX40ewY6e7q5gR5J18qP1 qnTCOxyKiOz3RDfPYnJ+qsp+nyuTbtZ11IAme7cJ+6uEJR6IhKYTei/WCso6OFZ7xmXUCn27OER ku1WZjVyFqaSlaVdvcI7ezGJqE6ROBT3FEXsSI2wZY/TYH9RvQesXKZCKYQug5bvj28nI/A0vmW FeLbIkKA X-Proofpoint-ORIG-GUID: 7yj2groJ94XFRnlkveHqTB8P3LFUTZDc X-Proofpoint-GUID: 7yj2groJ94XFRnlkveHqTB8P3LFUTZDc X-Authority-Analysis: v=2.4 cv=U7iSDfru c=1 sm=1 tr=0 ts=68b668f2 cx=c_pps a=Qgeoaf8Lrialg5Z894R3/Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=IGJoV4xj_D2vbx-RUiUA:9 a=QEXdDO2ut3YA:10 a=x9snwWr2DeNwDh03kgHS:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 phishscore=0 clxscore=1015 impostorscore=0 suspectscore=0 malwarescore=0 priorityscore=1501 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300038 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756786528515124100 From: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 2 ++ target/hexagon/cpu.c | 3 +++ 2 files changed, 5 insertions(+) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index fc6552e64c..8b1ff23c01 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -44,6 +44,7 @@ #define REG_WRITES_MAX 32 #define PRED_WRITES_MAX 5 /* 4 insns + endloop */ #define VSTORES_MAX 2 +#define MAX_TLB_ENTRIES 1024 =20 #define CPU_RESOLVING_TYPE TYPE_HEXAGON_CPU #ifndef CONFIG_USER_ONLY @@ -181,6 +182,7 @@ struct ArchCPU { bool lldb_compat; target_ulong lldb_stack_adjust; bool short_circuit; + uint32_t num_tlbs; }; =20 #include "cpu_bits.h" diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index a508f27fe4..56098b4c55 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -50,6 +50,9 @@ static ObjectClass *hexagon_cpu_class_by_name(const char = *cpu_model) } =20 static const Property hexagon_cpu_properties[] =3D { +#if !defined(CONFIG_USER_ONLY) + DEFINE_PROP_UINT32("jtlb-entries", HexagonCPU, num_tlbs, MAX_TLB_ENTRI= ES), +#endif DEFINE_PROP_BOOL("lldb-compat", HexagonCPU, lldb_compat, false), DEFINE_PROP_UNSIGNED("lldb-stack-adjust", HexagonCPU, lldb_stack_adjus= t, 0, qdev_prop_uint32, target_ulong), --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756784956; cv=none; d=zohomail.com; s=zohoarc; b=gJ5ec34psl6bdiF4YCd4sw9oioz1NG55UEftyXrdR6TzJIhSIxABKPi7bw23afeqMX+K5eOp8qwUEfoEj9XP7P7KPQWBta6I6Nvkrv10hxZ2eoRlvyWKiJhNJiz3Irmh3ovc0OJG1WO9kf/7MPECTev0X7+6QsayKvDSOxEstew= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756784956; 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=0za7H/WAT38BdhgBEdAEcqbGS+rJZjbMl0OOHX3z0T0=; b=P/AYZ0f1/KY35iwuMq/VnIEw1u9GPeVv4WBRd/vlzY692lHpeITK7wfIL7x3whNafisrudsWKp+/EjmVlkLQ5xsZTwnQlFef4SKLCSHxB8hxstvucArGDojwXK8nmssoepLYXjxRdPZ64oypr69kW6tx9jLwIfD2ShiPkxn1w+Y= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756784956174329.40087422467184; Mon, 1 Sep 2025 20:49:16 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI0S-0007Hl-0Z; Mon, 01 Sep 2025 23:48:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI0G-000747-W7 for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:48:19 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI0E-0004Wl-Ss for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:48:16 -0400 Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822RlRY012433 for ; Tue, 2 Sep 2025 03:48:03 GMT Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48uq0eej62-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:48:03 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-329dbf4476cso424361a91.1 for ; Mon, 01 Sep 2025 20:48:03 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.48.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:48:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 0za7H/WAT38BdhgBEdAEcqbGS+rJZjbMl0OOHX3z0T0=; b=lRZHT7/aspEYj+6e d1ccHiKmQB9ufTRbUXuqih2D0Yj6DDKaC74Vqr9RhKMZNQI2tNRKEen//+1ydZAg dzzshUjRqe2AMpTymVpQHDQ4AWKWGbewsDr5ID4F0p5ngn5XExTr8XFktGwIs3xG IzIt51bZzH94uSZslOjG1CpxCYk4bkiAIQv2B/80Xk+U+1nW+UrZTE1pCxydvblc TmLvLjyVFTXYW2BJfGAR+oEuDJxjRytpkaWfPWNoIXAZ7zrszWp00hvIbT0zq3XU vjNPvtGCjLd5jAKRs3Xc9qZzsz4f1DA7vrZJoC3hFUjHudkecVdNhn7mT3tmt387 cRd6Eg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784882; x=1757389682; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0za7H/WAT38BdhgBEdAEcqbGS+rJZjbMl0OOHX3z0T0=; b=h9wtq4cPDO+P5z/olfds+/lH2i+lWYlLZ/N8w3mE7KnJ1l6Cn5WWzAJYy8lfQG6t3s Gz6g8GFQ0TpP5MtHbaAa1RGJFl9oupQocH3SgANrrhtvnF+RhzApMcHReS3STv5Dwb2J w7IiAMdixAt8/x6LHZUh2Joj0BEtJ4XDs/vyGCxeSQpx7cDzle7PIqGZm+BDiafe/rV8 MQBGtJGj2qp+OELbl3l8WfBtAMsg53u25GYBaqURUSvTCSp3D171+xj79jQmQx8bQSIC N//pYcNbdQLvgJzdaIQ2yur1sGO2isskDNKsqYEvoEV3krNjeZR52GqQkLY0KDfT56Bg tzgw== X-Gm-Message-State: AOJu0YxTvClCUZ3mFGXIfX4Agp5VioCjezTSbKlGRHeGO2HlUqk5xK1V poeoSZb/n0TuYLRbxrCbii0P25kxvCVkN50SeY5+ZXP6fTIv+udbwYo22m43hKa0rNfHwr99+EK ECMrtT96hy9LtBVDe+a7MFbIg8jPqsPPJmVrcgOyKbt3i3VYCGDMjB8totNUvgzd6PHzN X-Gm-Gg: ASbGncs2HDnZzWZ5kRpzZG6KgfOiSC6RhAe/MSQSBLOs/CvnFjyeNKHOw2D8fB9ZYQQ 14oYd4ISa61MPmzGlj46BB5oGA7ia5qXPVVOjuieYbxV8WppdZpZ/mPCnIIfDBD19xQEj7V2xP+ TCF2ihd+2a9MU6OIS6HMP/j+S+5d0BOgQEYfV29Rqtub+lUS3cJVKaStTLqPMiodqAvP8yQ5taa 33jt3C3PwpTJYkwlTfNYxkVTEyQ6ad/bkHUd633imUeHqznj/NSH/kYeqT8L3O8hvU15/WWvpqB 9pMqQnY006bH7j5k8CPWPOcp6xnvtU/ke+d+J4Iq42M6p65JiMxUUVVAaWlrw1dkDkB+aMIHinJ PFdQmBbYG9tua X-Received: by 2002:a17:90b:394a:b0:327:ae00:5c00 with SMTP id 98e67ed59e1d1-32815412bcfmr11041418a91.1.1756784882298; Mon, 01 Sep 2025 20:48:02 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGJwvGgsgB2Gk4otIp7RHd8I8hmRiCFTHLcBQaggjZYe7VE+Gthp9QjVstV0Zd/mPAQcMXRag== X-Received: by 2002:a17:90b:394a:b0:327:ae00:5c00 with SMTP id 98e67ed59e1d1-32815412bcfmr11041389a91.1.1756784881869; Mon, 01 Sep 2025 20:48:01 -0700 (PDT) To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain Subject: [PATCH v2 34/40] target/hexagon: Add {TLB, k0}lock, cause code, wait_next_pc Date: Mon, 1 Sep 2025 20:47:09 -0700 Message-Id: <20250902034715.1947718-35-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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: FGfWxTkdc12JKr3r5oyIzSj2sMhYvzJS X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAwNCBTYWx0ZWRfX3P0/TCJxu3Jo VGYZU0OmbI7rnY/TXt4mgZP8l8v7qnRWXackR1IQgSGKtiNhmhFCwh39bbAdVyBVn/Gn7e/bj9k 1aI8oR7rUC90RlGKa185pMDndDh3Yf3coeuN7nMP7bCnTQ4awKYZJpjq9WADdji8la9xcOJpw6M nwKxmv36nhFhhw+y8L2qzNuYwdl9Dq8jopU6G6wqzbygUxD+B6Bb4A9xrKQbY/5dGB6mMr4UELl BsH0B/wKewEhgCAiZAK5kHOuT2fEyJNFDRDEt+hdF8MqHXx5nq6l50bJpOtsbgQ/wsIvxJY1w1l KmmU5dvIYXWRtDrBJ9lI10Z2U37Hy/Ry/SlAOjbeoJoIUCS/lXVl77UGZaBfJ99jA9CSXkPqJTN Mgh8XQHn X-Proofpoint-ORIG-GUID: FGfWxTkdc12JKr3r5oyIzSj2sMhYvzJS X-Authority-Analysis: v=2.4 cv=ea09f6EH c=1 sm=1 tr=0 ts=68b668f3 cx=c_pps a=RP+M6JBNLl+fLTcSJhASfg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=u-CS0nqVCHpLmCmQHcYA:9 a=QEXdDO2ut3YA:10 a=iS9zxrgQBfv6-_F4QbHw:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 suspectscore=0 clxscore=1015 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300004 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-to: Brian Cain From: Brian Cain via Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1756784958579124100 From: Brian Cain {TLB,k0}lock counts are used to represent the TLB, k0 locks among hardware threads. wait_next_pc represents the program counter to set when resuming from a wait-for-interrupts state. cause_code contains the precise exception cause.This will be used by subsequent commits. Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 3 +++ target/hexagon/cpu.c | 4 ++++ target/hexagon/machine.c | 4 ++++ 3 files changed, 11 insertions(+) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 8b1ff23c01..6b49912c08 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -130,11 +130,14 @@ typedef struct CPUArchState { target_ulong t_sreg[NUM_SREGS]; =20 target_ulong greg[NUM_GREGS]; + target_ulong wait_next_pc; =20 /* This alias of CPUState.cpu_index is used by imported sources: */ target_ulong threadId; hex_lock_state_t tlb_lock_state; hex_lock_state_t k0_lock_state; + target_ulong tlb_lock_count; + target_ulong k0_lock_count; #endif target_ulong next_PC; target_ulong new_value_usr; diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 56098b4c55..43fd13cd0d 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -307,7 +307,11 @@ static void hexagon_cpu_reset_hold(Object *obj, ResetT= ype type) env->threadId =3D cs->cpu_index; env->tlb_lock_state =3D HEX_LOCK_UNLOCKED; env->k0_lock_state =3D HEX_LOCK_UNLOCKED; + env->tlb_lock_count =3D 0; + env->k0_lock_count =3D 0; env->next_PC =3D 0; + env->wait_next_pc =3D 0; + env->cause_code =3D HEX_EVENT_NONE; #endif env->cause_code =3D HEX_EVENT_NONE; } diff --git a/target/hexagon/machine.c b/target/hexagon/machine.c index 18c3f87188..10e0fe9688 100644 --- a/target/hexagon/machine.c +++ b/target/hexagon/machine.c @@ -22,7 +22,11 @@ const VMStateDescription vmstate_hexagon_cpu =3D { VMSTATE_UINTTL(env.next_PC, HexagonCPU), VMSTATE_UINTTL(env.tlb_lock_state, HexagonCPU), VMSTATE_UINTTL(env.k0_lock_state, HexagonCPU), + VMSTATE_UINTTL(env.tlb_lock_count, HexagonCPU), + VMSTATE_UINTTL(env.k0_lock_count, HexagonCPU), VMSTATE_UINTTL(env.threadId, HexagonCPU), + VMSTATE_UINTTL(env.cause_code, HexagonCPU), + VMSTATE_UINTTL(env.wait_next_pc, HexagonCPU), VMSTATE_END_OF_LIST() }, }; --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756785272; cv=none; d=zohomail.com; s=zohoarc; b=NgCfpZy+oJrJvbjbUMq1G2ze3lz5AxMXPawXJxLQcSSBBqbXbAeWa485h7Q1U2611UGiQvl2+778XeL6ZgaKiLeOUBUN+8/eJnETZWewasPsWvmtcIvxjJwLYwb3SoHErdH4cbrhqRQzb0L28KYGSf8CscM69EqIyPKtXwCsFro= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785272; 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=Dq7Pvl10wCwRyK9sdJHD9Wb7UyXKC5GpORHBUvDauTA=; b=Wdotszw7BrfS8iWwdjHiH1usKcZfTmsXNCni/vp9uguuc/Q0ST8qCx/Wsf6tnp9USWTMTb3QDDKR5ianGBfa7Vwg616VgekCXjjF4QIHRlaPDMUjIsvwgmVdV/roCbmWFT1Io+URz43+ZE3mv20XcUiHl5pJKa93T7T7ZORrTh4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 175678527229892.90139953873245; Mon, 1 Sep 2025 20:54:32 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI0c-0007Za-Dj; Mon, 01 Sep 2025 23:48:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI0I-00076T-Du for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:48:21 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI0F-0004Wz-P0 for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:48:18 -0400 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822S590017641 for ; Tue, 2 Sep 2025 03:48:04 GMT Received: from mail-pg1-f199.google.com (mail-pg1-f199.google.com [209.85.215.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48utk8x872-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:48:04 +0000 (GMT) Received: by mail-pg1-f199.google.com with SMTP id 41be03b00d2f7-b4c229e2a42so3573488a12.0 for ; Mon, 01 Sep 2025 20:48: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 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.48.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:48:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= Dq7Pvl10wCwRyK9sdJHD9Wb7UyXKC5GpORHBUvDauTA=; b=RIj5FXe9IrABmo5H EVXGKmcoKwmGTWyyZLhQkn2MnCjXUIlpTy3Y7YFaRwQYF7IZFG1E8Jk1h107u/7o 9YJa8g5GecmzgpzMRKjuNeVAVseqbwgKQ+O+1a5F9wVrKZbVPWiLzUhht9nrHouK hwINBnHWLYdR0d5TawK44D4NI+W8pTknw4/I/HXy3X/fNdM8CZPJIp1vbswoEr78 Z+WMJptcGugu1vaTnM3KQsJzOdqex7eIDgtjR3052LS/QnLMSbDvPLI7B802PNzD 7cZkGkAztaMLmUsldYQgpvMvzbVK1gRoI9iorxgg0mPPnw/QA7QWVnMSfmE0SVxF IXWExQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784883; x=1757389683; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Dq7Pvl10wCwRyK9sdJHD9Wb7UyXKC5GpORHBUvDauTA=; b=jeB0YtzcZRn+6wCgkvp3pt6mWTjko8vY/VAzl6YoS0v4JO02MHwUKbwK4jRjWcWh7B ynHXtepvJ3cbUJdYjduQSKH7Kzouo5GsIo5vdjVkILisF2ja7cLMZOuBeQsHtfJE4jAP LGGByCOILlmynz5gXf+qolIaL8MZMaBZlOhf42xdu037pAayeKUlecB7JjlfLC86uCVd Ct7ic29WlKbVfZ3J54M5CEGsajQ21htDcnWV5jMml153TUlEXHasBPw/PH5xI8NS07yg vQ7xBFELUuE3uK0NxQeAd3BkLc8JdMAQHF688b9gytph5wvM0IYn8GDnndN5WuKz886V DEKg== X-Gm-Message-State: AOJu0YzyirUFrz0dtLrQh9ZtP9KSujt2usoiwtVczDkzHFp29Eu3CCGc b5TSo+D9Q3SnLmDY6aT00XA/itXgpnZgBkXS4OQmfnpiOqK6xuKCju1cS6LZdNtm4x0HBd4hqiA xPqnBdzEy3ewVhSw1QJhJKtJMlVTIjrpqMvQ3qDhPBPqhMG7XmjXIRgcqD5QQ5UEwRz+2 X-Gm-Gg: ASbGncuZuF6DLzj35q1XosO6eottERNQlbdELjFn/BB2XP+hl8RmcmmElEZoEiEET25 fUArCLQ7KT9eNeVfdYnP2xHMTCyorQRvkxLiNlemK76BKGKg54qaGN6sqqkxk0PvQ6D7empgt05 TkxB2YS1IvtAioi594frRm5dKWh99XwMzRFl9W5hGF+vk4ITBMqcUV2HNnelhwUIl6NrndP5z3Q 3nsg32BQVXwTTF/VSgaLeOuEDFnDOfCfPqkU5st9WmYZaQdD97zKd+mt6bYtVjrXd5ktCCgRKFV hXl+Tchbyb+mXwzwuKzNelF5uQeSqz+ovkFvNY/vweOU8D9dfRHEIjvIT5Mqb1YSTgli87g2++Q LKMXcjgwlWfT6 X-Received: by 2002:a05:6a20:430f:b0:243:78a:8278 with SMTP id adf61e73a8af0-243d6f4c627mr14216750637.48.1756784883371; Mon, 01 Sep 2025 20:48:03 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEfDepMI8I9k/ZkHHaZ8jEoqPuEzurBb4c+SBfJCgrw4sGMUXTb34B8LJiM/dKh2Fm+50iLWQ== X-Received: by 2002:a05:6a20:430f:b0:243:78a:8278 with SMTP id adf61e73a8af0-243d6f4c627mr14216719637.48.1756784882917; Mon, 01 Sep 2025 20:48:02 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain Subject: [PATCH v2 35/40] target/hexagon: Add stubs for modify_ssr/get_exe_mode Date: Mon, 1 Sep 2025 20:47:10 -0700 Message-Id: <20250902034715.1947718-36-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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: UvWg2FiQ1lddmT_4CxxzxV3aYQ8m154t X-Proofpoint-ORIG-GUID: UvWg2FiQ1lddmT_4CxxzxV3aYQ8m154t X-Authority-Analysis: v=2.4 cv=ccnSrmDM c=1 sm=1 tr=0 ts=68b668f4 cx=c_pps a=Oh5Dbbf/trHjhBongsHeRQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=Q6B7wG7KZsRQN32SAGcA:9 a=QEXdDO2ut3YA:10 a=_Vgx9l1VpLgwpw_dHYaR:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDA0MiBTYWx0ZWRfX+bR4kw8gOO1Y d6AO+iCUlk/iL5HR7mJbAjvTFxfX5VqWn1sLg1e69ijcEJy353ai7PaZGmrsZnjsDeQuzbIWjID rbQ2zYyTtuRg1pVBYo848hfINnn1+7jqasH18QmgWnIr2fU8DLRcKlwcKcRg4TABWOeiEGjIT3t HxliqZRnateWVwWZvXgyhZTEmot0Co9M56ac2bLngT6xvs/W+e8VWsCobx30QCz7x1EGIuyRYB6 QjpFkIEyJYhAICSacb4lP+EB77AT2S58xmhw9tcriwDqGsztKyyzDNMLJMXfjjVXBU8X6BtbkD3 fpsgJ/M8lFJdLTzWsUFLGaIwXGlq3lTxFuLkvGD8Ag3Fr+lHIYTn0kIrFjFgczail8msysYaLTb jXiD75Fc X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 phishscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 clxscore=1015 suspectscore=0 spamscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300042 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756785274011124100 From: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/cpu_helper.h | 2 ++ target/hexagon/cpu_helper.c | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/target/hexagon/cpu_helper.h b/target/hexagon/cpu_helper.h index 5f5f15149a..e0c0c037a6 100644 --- a/target/hexagon/cpu_helper.h +++ b/target/hexagon/cpu_helper.h @@ -14,6 +14,8 @@ uint32_t hexagon_get_sys_pcycle_count_high(CPUHexagonStat= e *env); void hexagon_set_sys_pcycle_count(CPUHexagonState *env, uint64_t); void hexagon_set_sys_pcycle_count_low(CPUHexagonState *env, uint32_t); void hexagon_set_sys_pcycle_count_high(CPUHexagonState *env, uint32_t); +void hexagon_modify_ssr(CPUHexagonState *env, uint32_t new, uint32_t old); +int get_exe_mode(CPUHexagonState *env); =20 static inline void arch_set_thread_reg(CPUHexagonState *env, uint32_t reg, uint32_t val) diff --git a/target/hexagon/cpu_helper.c b/target/hexagon/cpu_helper.c index 4b8697de65..bc51714406 100644 --- a/target/hexagon/cpu_helper.c +++ b/target/hexagon/cpu_helper.c @@ -71,5 +71,13 @@ void hexagon_set_sys_pcycle_count(CPUHexagonState *env, = uint64_t cycles) g_assert_not_reached(); } =20 +void hexagon_modify_ssr(CPUHexagonState *env, uint32_t new, uint32_t old) +{ + g_assert_not_reached(); +} =20 +int get_exe_mode(CPUHexagonState *env) +{ + g_assert_not_reached(); +} #endif --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756785477; cv=none; d=zohomail.com; s=zohoarc; b=VbvUVcnH/o8l37iqXkNL6rZcpvn+ddE8HAq7Bm2JAHOahMFlSYbrNvSdP+bYz6SRzPECq7igWuelNblj4mcJp7d5whEeemo484tCMB6ZBLXwyjEHtjgALkrde6ETG9AN6pz3OWSSE0gV5+6NcUImgyX8rf+81NHJJSr0MTkWV0w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785477; 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=aSp83uHVSI0MnVI0UImBhnG9FGcruN7ODNKK+OFueJI=; b=Y7A2ioGh8DFPIzK40lbt2hpe2E2UqFmZfZTKelyRGQW6i3yk1kwXW7cBS5w4Csi4SvlmJ7TwK038lKve8wa+Mjb9CmL+3RU0CCraiv1gMQkHNbmGs763hbsIq3qwBIzZTwHL3zES0Dh17e+C1yA2HbFwfSV1zsvUQhm+Bz+Zak8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756785477764129.34830106554273; Mon, 1 Sep 2025 20:57:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI0W-0007LV-UD; Mon, 01 Sep 2025 23:48:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI0K-00077S-GB for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:48:22 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI0H-0004XB-EF for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:48:20 -0400 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822S2e6013176 for ; Tue, 2 Sep 2025 03:48:06 GMT Received: from mail-pg1-f200.google.com (mail-pg1-f200.google.com [209.85.215.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48ut2fea22-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:48:06 +0000 (GMT) Received: by mail-pg1-f200.google.com with SMTP id 41be03b00d2f7-b4c949fc524so3228827a12.2 for ; Mon, 01 Sep 2025 20:48:05 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.48.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:48: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= aSp83uHVSI0MnVI0UImBhnG9FGcruN7ODNKK+OFueJI=; b=jkdZoPTQlQH2zTSF 3tPuvjTQuMXl5hlQvjVL3wpr00rHHosm8RI8O4fcnD2nZBZDdB9FIzRxFO2Ggrtf GAWVOLxBaDRIQMXUD/ACfx+KkxXuP4cEeIVi+Wx7U+HU0MMWDsdD+Zl0ZMYsoVKI /lRvtUixsEaj5Reg+EH7kJOrI7hHyjAuVQGtSAV73In6LoufKRYVFiwjJHA0gdT3 oJdY4+PbGVUbuRRvstv73BoxqWEcCKHQ8plCPHw1apQjt9xDzwhnkJma7EFrfwb/ 0UekL0C+ApA5KANgYD3sKkYzRMZwmPOZssX/w0aakzMqxsBEKk+U3kImdpuBUWKc 93DRJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784885; x=1757389685; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=aSp83uHVSI0MnVI0UImBhnG9FGcruN7ODNKK+OFueJI=; b=Am+CqPjuV5HiSw+d3squirTGGqU7i5LfyAnqNRnzpRxqgzuw754ZvSoXso89WuyaIZ RyrFRBz5u/scCnj+Rpu79eUIPe5uziGlyCVp5nRfXUOB048DJ4Ftxo1HwcoOnpCU2GVs C6+v2woEFgyNO8On4i4y7fKCTDgESypPvZvz1T0dqlCD672vBcMVIuH25Ahhx5ZyIf2P phGiqb0A+CIeYSy+ZiZg38bDdLugOpHA8C8ifP3p1CMOP3xlDMUiJL6fhKsCcirplKHx zImdcYTFhdZ+CPlS988XwQwQqcjQsMZHUZU6Lv1hjToG6lxf1dMEK7fErDG0U3wcnD1Z 3nZA== X-Gm-Message-State: AOJu0YyP+bgQjPwEgWVquPym0rWfdkxkD7gF+JaDaosJ2ZM9M2FCJXo1 15fodsbvYqW0Ls4OBC0dTg8NKSGLqjfjPcUPewPhyi4k+E8/NX9E0SBg/7/VErkAOxQ86JL+qmQ ES8M36BExMjyqasdbdlnx3atPzfYwe7dx7X0bgOQVb6KBiQAJeAXTfsXTATd+nervL/wB X-Gm-Gg: ASbGncumSQHcQVrbGgkDJZylwukXtgCB1SAO0OLgA9mtn1TKIdkvBzkoOLQzOL6e4Ar SSBCTogeUqdiRJh4G4chVrWRo8yWIyyLE6IzOF4Qu3SByOqewXqg8Shsl6YPmqm8woiYOnhpTtO snkEaPaSS1iQy55BCWz8WWLIbxEpqkM66KqAxLisl2wZwL+dP+W9E335N6jVGGDLqDgyoDZbXMz Dd6EeZQSMOFwrmsXSR8Z3mPIZhKySSxNdS+r/G/NnJjO4YJBcSkh/1sxlSUm+LmeSrWUFcUWtM8 3+rF+B+T/DlCXJLQbNTZcTIEn++sFJ4N2IVSrSGDM4qv388UjmpGlTLzh/pfD23vxTSqFNYKOy8 Qni8JC90C+kmd X-Received: by 2002:a05:6a20:4321:b0:243:b5f3:fe5e with SMTP id adf61e73a8af0-243d6f7e8a1mr13305316637.53.1756784884665; Mon, 01 Sep 2025 20:48:04 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEcg+WRCbrU6hRHurIij4mcQzF7+bsECZE42duAOyPhkU1w964zLppGEDMfML/22y+ig6XNoA== X-Received: by 2002:a05:6a20:4321:b0:243:b5f3:fe5e with SMTP id adf61e73a8af0-243d6f7e8a1mr13305275637.53.1756784884116; Mon, 01 Sep 2025 20:48:04 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain , Matheus Tavares Bernardino Subject: [PATCH v2 36/40] target/hexagon: Add gdb support for sys regs Date: Mon, 1 Sep 2025 20:47:11 -0700 Message-Id: <20250902034715.1947718-37-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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: AW1haW4tMjUwODMwMDAzOCBTYWx0ZWRfX0G3G0akykn6X HKh7nhb/uT20XijypZSGfu1bjT9gQCzGJKsdYMS1SIM7X4D/fXCPHWE3n9+5SCbVWDDLRHz7KPP 6dr5RakE89x/Lv5tDWeyVtQpLxHeRrr0axGNf9+M2i1qMfGgSPalsyjNgXJ+1PZlricBqORrdM5 oXJrXycKU2YMbV6xYdPRvAq78oDKXMYueXpTlft6hTFLoTIQpl6wmeF02j/ulYS50P0Rmvt+f5W +YfaiuVFLSrvHYaIaDfvn4m+Xwmg+jhee9vrHlNNUg3V+ghorjhNyPY5jQ32aBKnGG2D4m5RkD+ hpumhZ1NbdhKEnjox/k5bXxqxpmZKCw8Xaw/7u0G3WacplMzw2VpGvh3k0PojCKwP0pcCxUceJ5 v16eizlG X-Proofpoint-ORIG-GUID: 0zR9gUf4cdstYTBSYSZg-F45EeDSQ7de X-Proofpoint-GUID: 0zR9gUf4cdstYTBSYSZg-F45EeDSQ7de X-Authority-Analysis: v=2.4 cv=U7iSDfru c=1 sm=1 tr=0 ts=68b668f6 cx=c_pps a=oF/VQ+ItUULfLr/lQ2/icg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=NEAV23lmAAAA:8 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=igv5VeXmG1bnzZ-LDdkA:9 a=QEXdDO2ut3YA:10 a=3WC7DwWrALyhR5TkjVHa:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 phishscore=0 clxscore=1015 impostorscore=0 suspectscore=0 malwarescore=0 priorityscore=1501 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300038 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756785479127116600 From: Brian Cain Co-authored-by: Matheus Tavares Bernardino Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 6 ++ target/hexagon/internal.h | 4 ++ target/hexagon/cpu.c | 17 ++++++ target/hexagon/gdbstub.c | 45 ++++++++++++++ target/hexagon/op_helper.c | 22 +++++++ gdb-xml/hexagon-sys.xml | 116 +++++++++++++++++++++++++++++++++++++ 6 files changed, 210 insertions(+) create mode 100644 gdb-xml/hexagon-sys.xml diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 6b49912c08..627748392f 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -196,6 +196,12 @@ G_NORETURN void hexagon_raise_exception_err(CPUHexagon= State *env, uint32_t exception, uintptr_t pc); =20 +#ifndef CONFIG_USER_ONLY +uint32_t hexagon_greg_read(CPUHexagonState *env, uint32_t reg); +uint32_t hexagon_sreg_read(CPUHexagonState *env, uint32_t reg); +void hexagon_gdb_sreg_write(CPUHexagonState *env, uint32_t reg, uint32_t v= al); +#endif + typedef HexagonCPU ArchCPU; =20 void hexagon_translate_init(void); diff --git a/target/hexagon/internal.h b/target/hexagon/internal.h index 7cf7bcaa6c..c24c360921 100644 --- a/target/hexagon/internal.h +++ b/target/hexagon/internal.h @@ -22,6 +22,10 @@ =20 int hexagon_gdb_read_register(CPUState *cpu, GByteArray *buf, int reg); int hexagon_gdb_write_register(CPUState *cpu, uint8_t *buf, int reg); +#ifndef CONFIG_USER_ONLY +int hexagon_sys_gdb_read_register(CPUState *cs, GByteArray *mem_buf, int n= ); +int hexagon_sys_gdb_write_register(CPUState *cs, uint8_t *mem_buf, int n); +#endif int hexagon_hvx_gdb_read_register(CPUState *env, GByteArray *mem_buf, int = n); int hexagon_hvx_gdb_write_register(CPUState *env, uint8_t *mem_buf, int n); =20 diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 43fd13cd0d..2ee379121e 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -27,6 +27,10 @@ #include "exec/gdbstub.h" #include "accel/tcg/cpu-ops.h" =20 +#ifndef CONFIG_USER_ONLY +#include "sys_macros.h" +#endif + static void hexagon_v66_cpu_init(Object *obj) { } static void hexagon_v67_cpu_init(Object *obj) { } static void hexagon_v68_cpu_init(Object *obj) { } @@ -338,6 +342,12 @@ static void hexagon_cpu_realize(DeviceState *dev, Erro= r **errp) hexagon_hvx_gdb_write_register, gdb_find_static_feature("hexagon-hvx.xml"), 0= ); =20 +#ifndef CONFIG_USER_ONLY + gdb_register_coprocessor(cs, hexagon_sys_gdb_read_register, + hexagon_sys_gdb_write_register, + gdb_find_static_feature("hexagon-sys.xml"), 0= ); +#endif + qemu_init_vcpu(cs); cpu_reset(cs); mcc->parent_realize(dev, errp); @@ -393,6 +403,13 @@ static void hexagon_cpu_class_init(ObjectClass *c, con= st void *data) cc->tcg_ops =3D &hexagon_tcg_ops; } =20 +#ifndef CONFIG_USER_ONLY +uint32_t hexagon_greg_read(CPUHexagonState *env, uint32_t reg) +{ + g_assert_not_reached(); +} +#endif + #define DEFINE_CPU(type_name, initfn) \ { \ .name =3D type_name, \ diff --git a/target/hexagon/gdbstub.c b/target/hexagon/gdbstub.c index 12d6b3bbcb..8476199b75 100644 --- a/target/hexagon/gdbstub.c +++ b/target/hexagon/gdbstub.c @@ -76,6 +76,51 @@ int hexagon_gdb_write_register(CPUState *cs, uint8_t *me= m_buf, int n) g_assert_not_reached(); } =20 +#ifndef CONFIG_USER_ONLY +int hexagon_sys_gdb_read_register(CPUState *cs, GByteArray *mem_buf, int n) +{ + CPUHexagonState *env =3D cpu_env(cs); + + if (n < NUM_SREGS) { + return gdb_get_regl(mem_buf, hexagon_sreg_read(env, n)); + } + n -=3D NUM_SREGS; + + if (n < NUM_GREGS) { + return gdb_get_regl(mem_buf, hexagon_greg_read(env, n)); + } + n -=3D NUM_GREGS; + + n -=3D TOTAL_PER_THREAD_REGS; + + if (n < NUM_PREGS) { + env->pred[n] =3D ldtul_p(mem_buf) & 0xff; + return sizeof(uint8_t); + } + + n -=3D NUM_PREGS; + + g_assert_not_reached(); +} + +int hexagon_sys_gdb_write_register(CPUState *cs, uint8_t *mem_buf, int n) +{ + CPUHexagonState *env =3D cpu_env(cs); + + if (n < NUM_SREGS) { + hexagon_gdb_sreg_write(env, n, ldtul_p(mem_buf)); + return sizeof(target_ulong); + } + n -=3D NUM_SREGS; + + if (n < NUM_GREGS) { + return env->greg[n] =3D ldtul_p(mem_buf); + } + n -=3D NUM_GREGS; + + g_assert_not_reached(); +} +#endif static int gdb_get_vreg(CPUHexagonState *env, GByteArray *mem_buf, int n) { int total =3D 0; diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 7851f43475..a03fd078be 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1494,6 +1494,23 @@ void HELPER(sreg_write)(CPUHexagonState *env, uint32= _t reg, uint32_t val) sreg_write(env, reg, val); } =20 +void HELPER(sreg_write_masked)(CPUHexagonState *env, uint32_t reg, uint32_= t val) +{ + BQL_LOCK_GUARD(); + sreg_write_masked(env, reg, val); +} + +void hexagon_gdb_sreg_write(CPUHexagonState *env, uint32_t reg, uint32_t v= al) +{ + BQL_LOCK_GUARD(); + sreg_write(env, reg, val); + /* + * The above is needed to run special logic for regs like syscfg, but = it + * won't set read-only bits. This will: + */ + arch_set_system_reg(env, reg, val); +} + void HELPER(sreg_write_pair)(CPUHexagonState *env, uint32_t reg, uint64_t = val) { BQL_LOCK_GUARD(); @@ -1546,6 +1563,11 @@ uint32_t HELPER(sreg_read)(CPUHexagonState *env, uin= t32_t reg) return sreg_read(env, reg); } =20 +uint32_t hexagon_sreg_read(CPUHexagonState *env, uint32_t reg) +{ + return sreg_read(env, reg); +} + uint64_t HELPER(sreg_read_pair)(CPUHexagonState *env, uint32_t reg) { BQL_LOCK_GUARD(); diff --git a/gdb-xml/hexagon-sys.xml b/gdb-xml/hexagon-sys.xml new file mode 100644 index 0000000000..8a84be28ab --- /dev/null +++ b/gdb-xml/hexagon-sys.xml @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756785293; cv=none; d=zohomail.com; s=zohoarc; b=V32FiT/CoBEwvM1GoQfS784P6yUXiOE/BYSfaVeYPhlR23xxxpmzRqANYIfvIPn8VzSJZipwWTkPRn7j3JZf/4PwKmGLjUAX9zXei3TCCt1TyaYKxIKugRH4ThyTa0n5ZUPus6KGR/XqkFgT4GjnAxrYcQDlTEQCJTBHQDrLfHA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785293; 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=3h6pGkmm/F0Vxjpevb4qVDHV/8snO/hu8HNA/KvSJCQ=; b=Z4c45JzEUSHOZQTiHuIIulzu4PeafX/ODwzG8F5VsxqCs8fveLGvuS1dVT2MQGz/XVBPuYHQzBaV7LTyum1DMXXIbBbEUvifnvQ21+kMfRpjm8xTy80fTqzyb3mVPAugg89g0rByi0enRwoDpidL5QLevgx9zvxex8tymh10xqM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756785293617285.3377325108622; Mon, 1 Sep 2025 20:54:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI0X-0007MC-Mk; Mon, 01 Sep 2025 23:48:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI0N-00079v-Od for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:48:24 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI0J-0004XO-5K for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:48:22 -0400 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822RtdH012437 for ; Tue, 2 Sep 2025 03:48:08 GMT Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48ut2fea26-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:48:07 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-324e41e946eso8953305a91.0 for ; Mon, 01 Sep 2025 20:48: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 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.48.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:48: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= 3h6pGkmm/F0Vxjpevb4qVDHV/8snO/hu8HNA/KvSJCQ=; b=H4UaY7FLyJ/GtnA3 Z/w/mPgqQfMPYLPVTAtrFTMlwr+QDuEkhma/hqXBjQvH97+hWoqUnU4C1OePN7Hz JGYq4DkbXkTcyrzbszWkayZlifO/I5hN4+0VwLn4B6rJ3kFDO8eTi0pr9ryEf7jz lbH2a1RRcvs4eOjEE8PwpGIjC1hfoziIzibYE+I6KemZ9ebMjsSmkJTS4ZPV9mNA tqQJSBF1/p1PTEfktYfwENGkjBXQrOZ6cH4nX5eLCLQvx3GsPqpr0vLDnV3MVg7d Tcg/7XOMNTN3EF1utOgm6J+x6IPhamivKrtHxX5NXQIMrYwffjhUOVh2RxsGECXe 3NS71g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784887; x=1757389687; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3h6pGkmm/F0Vxjpevb4qVDHV/8snO/hu8HNA/KvSJCQ=; b=HKZVpxML11PT/04SFgUICvH1Aa2/iP+r/hUQ8yqcOcy66zi+8NtJFwAVcu6aplm1Ru 6NRJbVvONzVSLcY3sY1TjQupL9BpUy5w1dN0UpKeDFNAKrul7CEMQy5HFGwlmSgIWlY+ BZWl7scVRcjB/HCiWeZCRuhWJhyGtxoCFB4IiGbAvhYTCoppT7U8Tmf1xQSWsCh44RsT s0egJXRPlU0XAXhe4LQI9MSEEX+ZE6KSAjUU8KQ20WZQgiKj/bF4E0R7MG4quOs9gyOp y07g7YLQ9zBb0TYH0gk2+uwIq/dsLF4s9E+J0ibO4eiG+/jKqt/SYSmU/F30+AEldBuz mCIA== X-Gm-Message-State: AOJu0YxKtX/27af2PPI8jxp/CyznKPDHi6jHrOUlKfs4WgaO3htyIQ8Y zoQqQkrS+YhXLgmzOXuA++GOTqxbgSXBQVNNzoHWujEUihg8WErXEqbbT9dd5kzpWEHTxMsNWDS Yri7MZ7JfIyFumtehHOxPgx9YyJt0Av3ZPffEguaTemUEDXLDbXSAzqHDMdRVqLV31VoG X-Gm-Gg: ASbGncu8UP6Js15Q5jrqVnQkozhOICz49yigPSvoXs15/0y0cs8GmL87Kb1Mg4PG3rc Tm3gaaf1+EmdbzZPpxYOQ8Sr2i2vPDYCZEf0CgMX6Ot8dCox4BjNo/lcP8rDm7EmeoL3uetTLKG VTIEbk/jLZkJTdzu+GqzfuBYeXTVE04JAZ2Ns65iVVdrxMclvS2Rr0535jzR7mrnNo8skF8wSyp i0P9z01hE2dmRxhk0OFcrPmHw2sYNJd1htxFf2njAsGxcI9byF+0xZ4UdkjvlZYrLiBMQYQStCu TuG2hufwHAl9HW21B8x8H27hsUXVtYXJ4wLifgrC7/vNsitWuy1HYKvArLG4p33OYHNlZLQdSXH +ZrUmku/z+9Wh X-Received: by 2002:a17:90b:38c2:b0:327:e67d:6595 with SMTP id 98e67ed59e1d1-328156cc9c0mr13136398a91.25.1756784886117; Mon, 01 Sep 2025 20:48:06 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE9tRp2lNB5mm+ULG56iQAjBcLCW+YnBWyo1Tn4v2D0gMirPF0XHAzF09Ok8hihns38zMTJ0w== X-Received: by 2002:a17:90b:38c2:b0:327:e67d:6595 with SMTP id 98e67ed59e1d1-328156cc9c0mr13136349a91.25.1756784885397; Mon, 01 Sep 2025 20:48:05 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain , Michael Lambert , Sid Manning , Matheus Tavares Bernardino Subject: [PATCH v2 37/40] target/hexagon: Add initial MMU model Date: Mon, 1 Sep 2025 20:47:12 -0700 Message-Id: <20250902034715.1947718-38-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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: AW1haW4tMjUwODMwMDAzOCBTYWx0ZWRfX3m0YJYol8ee8 hPgmz1QeVzP3Vg/kgzWrRluDN4AAxi6V/KUT8Kt4RQmrwrRxwPE5L6KBPx1WuTonnOvDsXz4kHs 2vAAZVXPDJZvDPjAqhjbyH1BZiXYoVqxOlqyr8L70TSBt+GVtWys4Ke8bEi4T4zMMsvGkd4mtce /A8Lfnf5o0JdgMCH8kSXedrDa4EEMgnh07IKlRrsUpuVB3NUfJ/ou8DkVTu7MiAE8fzpUDY2WSX gWlVX6cWBZ9tvVu4C7r4fo8nGjEg96IrXk6RDQJ01UpxsbSA6w/+w12gup2DtZTw3Z4yjn/ZMR4 1Sa8iWINm0p+5nAB8lF3z+xygu/rWylxFM7RAi/pXVWKkKe54+l80Y7xh1x/FbblJZSoWgMv72O PlqSXr8I X-Proofpoint-ORIG-GUID: 1wHYQsFjHiSC8GM_Xs-Av3d-Vcs_C3jJ X-Proofpoint-GUID: 1wHYQsFjHiSC8GM_Xs-Av3d-Vcs_C3jJ X-Authority-Analysis: v=2.4 cv=U7iSDfru c=1 sm=1 tr=0 ts=68b668f7 cx=c_pps a=0uOsjrqzRL749jD1oC5vDA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=XoBo4ihvdZbvXjo1iqsA:9 a=QEXdDO2ut3YA:10 a=mQ_c8vxmzFEMiUWkPHU9:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 phishscore=0 clxscore=1015 impostorscore=0 suspectscore=0 malwarescore=0 priorityscore=1501 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300038 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756785294727116600 From: Brian Cain Co-authored-by: Taylor Simpson Co-authored-by: Michael Lambert Co-authored-by: Sid Manning Co-authored-by: Matheus Tavares Bernardino Signed-off-by: Brian Cain --- target/hexagon/cpu-param.h | 4 + target/hexagon/cpu.h | 8 + target/hexagon/hex_mmu.h | 30 +++ target/hexagon/internal.h | 8 + target/hexagon/cpu.c | 42 +++ target/hexagon/hex_mmu.c | 525 +++++++++++++++++++++++++++++++++++++ target/hexagon/machine.c | 30 +++ target/hexagon/translate.c | 2 +- 8 files changed, 648 insertions(+), 1 deletion(-) create mode 100644 target/hexagon/hex_mmu.h create mode 100644 target/hexagon/hex_mmu.c diff --git a/target/hexagon/cpu-param.h b/target/hexagon/cpu-param.h index 22bffa7881..38b463a780 100644 --- a/target/hexagon/cpu-param.h +++ b/target/hexagon/cpu-param.h @@ -18,7 +18,11 @@ #ifndef HEXAGON_CPU_PARAM_H #define HEXAGON_CPU_PARAM_H =20 +#ifdef CONFIG_USER_ONLY #define TARGET_PAGE_BITS 16 /* 64K pages */ +#else +#define TARGET_PAGE_BITS 12 /* 4K pages */ +#endif =20 #define TARGET_PHYS_ADDR_SPACE_BITS 36 #define TARGET_VIRT_ADDR_SPACE_BITS 32 diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 627748392f..f25b483188 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -36,6 +36,10 @@ #error "Hexagon does not support system emulation" #endif =20 +#ifndef CONFIG_USER_ONLY +typedef struct CPUHexagonTLBContext CPUHexagonTLBContext; +#endif + #define NUM_PREGS 4 #define TOTAL_PER_THREAD_REGS 64 =20 @@ -138,6 +142,7 @@ typedef struct CPUArchState { hex_lock_state_t k0_lock_state; target_ulong tlb_lock_count; target_ulong k0_lock_count; + CPUHexagonTLBContext *hex_tlb; #endif target_ulong next_PC; target_ulong new_value_usr; @@ -185,12 +190,15 @@ struct ArchCPU { bool lldb_compat; target_ulong lldb_stack_adjust; bool short_circuit; +#ifndef CONFIG_USER_ONLY uint32_t num_tlbs; +#endif }; =20 #include "cpu_bits.h" =20 FIELD(TB_FLAGS, IS_TIGHT_LOOP, 0, 1) +FIELD(TB_FLAGS, MMU_INDEX, 1, 3) =20 G_NORETURN void hexagon_raise_exception_err(CPUHexagonState *env, uint32_t exception, diff --git a/target/hexagon/hex_mmu.h b/target/hexagon/hex_mmu.h new file mode 100644 index 0000000000..61a8056f08 --- /dev/null +++ b/target/hexagon/hex_mmu.h @@ -0,0 +1,30 @@ +/* + * Copyright(c) 2019-2025 Qualcomm Innovation Center, Inc. All Rights Rese= rved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HEXAGON_MMU_H +#define HEXAGON_MMU_H + +#include "cpu.h" + +struct CPUHexagonTLBContext { + uint64_t entries[MAX_TLB_ENTRIES]; +}; + +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_realize(CPUHexagonState *env); +extern void hex_mmu_on(CPUHexagonState *env); +extern void hex_mmu_off(CPUHexagonState *env); +extern void hex_mmu_mode_change(CPUHexagonState *env); +extern bool hex_tlb_find_match(CPUHexagonState *env, target_ulong VA, + MMUAccessType access_type, hwaddr *PA, int = *prot, + int *size, int32_t *excp, int mmu_idx); +extern int hex_tlb_check_overlap(CPUHexagonState *env, uint64_t entry, + uint64_t index); +extern void hex_tlb_lock(CPUHexagonState *env); +extern void hex_tlb_unlock(CPUHexagonState *env); +void dump_mmu(CPUHexagonState *env); +#endif diff --git a/target/hexagon/internal.h b/target/hexagon/internal.h index c24c360921..94e5e502a9 100644 --- a/target/hexagon/internal.h +++ b/target/hexagon/internal.h @@ -40,6 +40,14 @@ void G_NORETURN do_raise_exception(CPUHexagonState *env, target_ulong PC, uintptr_t retaddr); =20 +#define hexagon_cpu_mmu_enabled(env) ({ \ + HexagonCPU *cpu =3D env_archcpu(env); \ + cpu->globalregs ? \ + GET_SYSCFG_FIELD(SYSCFG_MMUEN, \ + arch_get_system_reg(env, HEX_SREG_SYSCFG)) : \ + 0; \ +}) + #ifndef CONFIG_USER_ONLY extern const VMStateDescription vmstate_hexagon_cpu; #endif diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 2ee379121e..eb3adebb60 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -26,9 +26,12 @@ #include "tcg/tcg.h" #include "exec/gdbstub.h" #include "accel/tcg/cpu-ops.h" +#include "cpu_helper.h" +#include "hex_mmu.h" =20 #ifndef CONFIG_USER_ONLY #include "sys_macros.h" +#include "accel/tcg/cpu-ldst.h" #endif =20 static void hexagon_v66_cpu_init(Object *obj) { } @@ -274,6 +277,13 @@ static TCGTBCPUState hexagon_get_tb_cpu_state(CPUState= *cs) hexagon_raise_exception_err(env, HEX_CAUSE_PC_NOT_ALIGNED, 0); } =20 +#ifndef CONFIG_USER_ONLY + hex_flags =3D FIELD_DP32(hex_flags, TB_FLAGS, MMU_INDEX, + cpu_mmu_index(env_cpu(env), false)); +#else + hex_flags =3D FIELD_DP32(hex_flags, TB_FLAGS, MMU_INDEX, MMU_USER_IDX); +#endif + return (TCGTBCPUState){ .pc =3D pc, .flags =3D hex_flags }; } =20 @@ -291,6 +301,18 @@ static void hexagon_restore_state_to_opc(CPUState *cs, cpu_env(cs)->gpr[HEX_REG_PC] =3D data[0]; } =20 + +#ifndef CONFIG_USER_ONLY +static void mmu_reset(CPUHexagonState *env) +{ + CPUState *cs =3D env_cpu(env); + if (cs->cpu_index =3D=3D 0) { + memset(env->hex_tlb, 0, sizeof(*env->hex_tlb)); + } +} +#endif + + static void hexagon_cpu_reset_hold(Object *obj, ResetType type) { CPUState *cs =3D CPU(obj); @@ -306,6 +328,13 @@ static void hexagon_cpu_reset_hold(Object *obj, ResetT= ype type) /* Default NaN value: sign bit set, all frac bits set */ set_float_default_nan_pattern(0b11111111, &env->fp_status); #ifndef CONFIG_USER_ONLY + HexagonCPU *cpu =3D HEXAGON_CPU(cs); + + memset(env->t_sreg, 0, sizeof(target_ulong) * NUM_SREGS); + memset(env->greg, 0, sizeof(target_ulong) * NUM_GREGS); + + mmu_reset(env); + arch_set_system_reg(env, HEX_SREG_HTID, cs->cpu_index); memset(env->t_sreg, 0, sizeof(target_ulong) * NUM_SREGS); memset(env->greg, 0, sizeof(target_ulong) * NUM_GREGS); env->threadId =3D cs->cpu_index; @@ -338,6 +367,14 @@ static void hexagon_cpu_realize(DeviceState *dev, Erro= r **errp) return; } =20 +#ifndef CONFIG_USER_ONLY + HexagonCPU *cpu =3D HEXAGON_CPU(cs); + if (cpu->num_tlbs > MAX_TLB_ENTRIES) { + error_setg(errp, "Number of TLBs selected is invalid"); + return; + } +#endif + gdb_register_coprocessor(cs, hexagon_hvx_gdb_read_register, hexagon_hvx_gdb_write_register, gdb_find_static_feature("hexagon-hvx.xml"), 0= ); @@ -349,6 +386,11 @@ static void hexagon_cpu_realize(DeviceState *dev, Erro= r **errp) #endif =20 qemu_init_vcpu(cs); + +#ifndef CONFIG_USER_ONLY + CPUHexagonState *env =3D cpu_env(cs); + hex_mmu_realize(env); +#endif 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 0000000000..332e7f4029 --- /dev/null +++ b/target/hexagon/hex_mmu.c @@ -0,0 +1,525 @@ +/* + * Copyright(c) 2019-2025 Qualcomm Innovation Center, Inc. All Rights Rese= rved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "qemu/main-loop.h" +#include "qemu/qemu-print.h" +#include "cpu.h" +#include "system/cpus.h" +#include "internal.h" +#include "exec/cpu-interrupt.h" +#include "cpu_helper.h" +#include "exec/cputlb.h" +#include "hex_mmu.h" +#include "macros.h" +#include "sys_macros.h" +#include "reg_fields.h" + +#define GET_TLB_FIELD(ENTRY, FIELD) \ + ((uint64_t)fEXTRACTU_BITS(ENTRY, reg_field_info[FIELD].width, \ + reg_field_info[FIELD].offset)) + +/* PPD (physical page descriptor) */ +static inline uint64_t GET_PPD(uint64_t entry) +{ + return GET_TLB_FIELD(entry, PTE_PPD) | + (GET_TLB_FIELD(entry, PTE_PA35) << reg_field_info[PTE_PPD].width); +} + +#define NO_ASID (1 << 8) + +typedef enum { + PGSIZE_4K, + PGSIZE_16K, + PGSIZE_64K, + PGSIZE_256K, + PGSIZE_1M, + PGSIZE_4M, + PGSIZE_16M, + PGSIZE_64M, + PGSIZE_256M, + PGSIZE_1G, + NUM_PGSIZE_TYPES +} tlb_pgsize_t; + +static const char *pgsize_str[NUM_PGSIZE_TYPES] =3D { + "4K", + "16K", + "64K", + "256K", + "1M", + "4M", + "16M", + "64M", + "256M", + "1G", +}; + +#define INVALID_MASK 0xffffffffLL + +static const uint64_t encmask_2_mask[] =3D { + 0x0fffLL, /* 4k, 0000 */ + 0x3fffLL, /* 16k, 0001 */ + 0xffffLL, /* 64k, 0010 */ + 0x3ffffLL, /* 256k, 0011 */ + 0xfffffLL, /* 1m, 0100 */ + 0x3fffffLL, /* 4m, 0101 */ + 0xffffffLL, /* 16m, 0110 */ + 0x3ffffffLL, /* 64m, 0111 */ + 0xfffffffLL, /* 256m, 1000 */ + 0x3fffffffLL, /* 1g, 1001 */ + INVALID_MASK, /* RSVD, 0111 */ +}; + +/* + * @return the page size type from @a entry. + */ +static inline tlb_pgsize_t hex_tlb_pgsize_type(uint64_t entry) +{ + if (entry =3D=3D 0) { + qemu_log_mask(CPU_LOG_MMU, "%s: Supplied TLB entry was 0!\n", __fu= nc__); + return 0; + } + tlb_pgsize_t size =3D ctz64(entry); + g_assert(size < NUM_PGSIZE_TYPES); + return size; +} + +/* + * @return the page size of @a entry, in bytes. + */ +static inline uint64_t hex_tlb_page_size_bytes(uint64_t entry) +{ + return 1ull << (TARGET_PAGE_BITS + 2 * hex_tlb_pgsize_type(entry)); +} + +static inline uint64_t hex_tlb_phys_page_num(uint64_t entry) +{ + uint32_t ppd =3D GET_PPD(entry); + return ppd >> 1; +} + +static inline uint64_t hex_tlb_phys_addr(uint64_t entry) +{ + uint64_t pagemask =3D encmask_2_mask[hex_tlb_pgsize_type(entry)]; + uint64_t pagenum =3D hex_tlb_phys_page_num(entry); + uint64_t PA =3D (pagenum << TARGET_PAGE_BITS) & (~pagemask); + return PA; +} + +static inline uint64_t hex_tlb_virt_addr(uint64_t entry) +{ + return (uint64_t)GET_TLB_FIELD(entry, PTE_VPN) << TARGET_PAGE_BITS; +} + +static bool hex_dump_mmu_entry(FILE *f, uint64_t entry) +{ + if (GET_TLB_FIELD(entry, PTE_V)) { + fprintf(f, "0x%016" PRIx64 ": ", entry); + uint64_t PA =3D hex_tlb_phys_addr(entry); + uint64_t VA =3D hex_tlb_virt_addr(entry); + fprintf(f, "V:%" PRId64 " G:%" PRId64 " A1:%" PRId64 " A0:%" PRId6= 4, + GET_TLB_FIELD(entry, PTE_V), GET_TLB_FIELD(entry, PTE_G), + GET_TLB_FIELD(entry, PTE_ATR1), GET_TLB_FIELD(entry, PTE_A= TR0)); + fprintf(f, " ASID:0x%02" PRIx64 " VA:0x%08" PRIx64, + GET_TLB_FIELD(entry, PTE_ASID), VA); + fprintf(f, + " X:%" PRId64 " W:%" PRId64 " R:%" PRId64 " U:%" PRId64 + " C:%" PRId64, + GET_TLB_FIELD(entry, PTE_X), GET_TLB_FIELD(entry, PTE_W), + GET_TLB_FIELD(entry, PTE_R), GET_TLB_FIELD(entry, PTE_U), + GET_TLB_FIELD(entry, PTE_C)); + fprintf(f, " PA:0x%09" PRIx64 " SZ:%s (0x%" PRIx64 ")", PA, + pgsize_str[hex_tlb_pgsize_type(entry)], + hex_tlb_page_size_bytes(entry)); + fprintf(f, "\n"); + return true; + } + + /* Not valid */ + return false; +} + +void dump_mmu(CPUHexagonState *env) +{ + int i; + + HexagonCPU *cpu =3D env_archcpu(env); + for (i =3D 0; i < cpu->num_tlbs; i++) { + uint64_t entry =3D env->hex_tlb->entries[i]; + if (GET_TLB_FIELD(entry, PTE_V)) { + qemu_printf("0x%016" PRIx64 ": ", entry); + uint64_t PA =3D hex_tlb_phys_addr(entry); + uint64_t VA =3D hex_tlb_virt_addr(entry); + qemu_printf( + "V:%" PRId64 " G:%" PRId64 " A1:%" PRId64 " A0:%" PRId64, + GET_TLB_FIELD(entry, PTE_V), GET_TLB_FIELD(entry, PTE_G), + GET_TLB_FIELD(entry, PTE_ATR1), GET_TLB_FIELD(entry, PTE_A= TR0)); + qemu_printf(" ASID:0x%02" PRIx64 " VA:0x%08" PRIx64, + GET_TLB_FIELD(entry, PTE_ASID), VA); + qemu_printf( + " X:%" PRId64 " W:%" PRId64 " R:%" PRId64 " U:%" PRId64 + " C:%" PRId64, + GET_TLB_FIELD(entry, PTE_X), GET_TLB_FIELD(entry, PTE_W), + GET_TLB_FIELD(entry, PTE_R), GET_TLB_FIELD(entry, PTE_U), + GET_TLB_FIELD(entry, PTE_C)); + qemu_printf(" PA:0x%09" PRIx64 " SZ:%s (0x%" PRIx64 ")", PA, + pgsize_str[hex_tlb_pgsize_type(entry)], + hex_tlb_page_size_bytes(entry)); + qemu_printf("\n"); + } + } +} + +static inline void hex_log_tlbw(uint32_t index, uint64_t entry) +{ + if (qemu_loglevel_mask(CPU_LOG_MMU)) { + if (qemu_log_enabled()) { + FILE *logfile =3D qemu_log_trylock(); + if (logfile) { + fprintf(logfile, "tlbw[%03d]: ", index); + if (!hex_dump_mmu_entry(logfile, entry)) { + fprintf(logfile, "invalid\n"); + } + qemu_log_unlock(logfile); + } + } + } +} + +void hex_tlbw(CPUHexagonState *env, uint32_t index, uint64_t value) +{ + uint32_t myidx =3D fTLB_NONPOW2WRAP(fTLB_IDXMASK(index)); + bool old_entry_valid =3D GET_TLB_FIELD(env->hex_tlb->entries[myidx], P= TE_V); + if (old_entry_valid && hexagon_cpu_mmu_enabled(env)) { + CPUState *cs =3D env_cpu(env); + + tlb_flush(cs); + } + env->hex_tlb->entries[myidx] =3D (value); + hex_log_tlbw(myidx, value); +} + +void hex_mmu_realize(CPUHexagonState *env) +{ + CPUState *cs =3D env_cpu(env); + if (cs->cpu_index =3D=3D 0) { + env->hex_tlb =3D g_malloc0(sizeof(CPUHexagonTLBContext)); + } else { + CPUState *cpu0 =3D qemu_get_cpu(0); + CPUHexagonState *env0 =3D cpu_env(cpu0); + env->hex_tlb =3D env0->hex_tlb; + } +} + +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); +} + +static inline bool hex_tlb_entry_match_noperm(uint64_t entry, uint32_t asi= d, + uint64_t VA) +{ + if (GET_TLB_FIELD(entry, PTE_V)) { + if (GET_TLB_FIELD(entry, PTE_G)) { + /* Global entry - ingnore ASID */ + } else if (asid !=3D NO_ASID) { + uint32_t tlb_asid =3D GET_TLB_FIELD(entry, PTE_ASID); + if (tlb_asid !=3D asid) { + return false; + } + } + + uint64_t page_size =3D hex_tlb_page_size_bytes(entry); + uint64_t page_start =3D + ROUND_DOWN(hex_tlb_virt_addr(entry), page_size); + if (page_start <=3D VA && VA < page_start + page_size) { + return true; + } + } + return false; +} + +static inline void hex_tlb_entry_get_perm(CPUHexagonState *env, uint64_t e= ntry, + MMUAccessType access_type, + int mmu_idx, int *prot, + int32_t *excp) +{ + g_assert_not_reached(); +} + +static inline bool hex_tlb_entry_match(CPUHexagonState *env, uint64_t entr= y, + uint8_t asid, target_ulong VA, + MMUAccessType access_type, hwaddr *= PA, + int *prot, int *size, int32_t *excp, + int mmu_idx) +{ + if (hex_tlb_entry_match_noperm(entry, asid, VA)) { + hex_tlb_entry_get_perm(env, entry, access_type, mmu_idx, prot, exc= p); + *PA =3D hex_tlb_phys_addr(entry); + *size =3D hex_tlb_page_size_bytes(entry); + return true; + } + return false; +} + +bool hex_tlb_find_match(CPUHexagonState *env, target_ulong VA, + MMUAccessType access_type, hwaddr *PA, int *prot, + int *size, int32_t *excp, int mmu_idx) +{ + *PA =3D 0; + *prot =3D 0; + *size =3D 0; + *excp =3D 0; + uint32_t ssr =3D arch_get_system_reg(env, HEX_SREG_SSR); + uint8_t asid =3D GET_SSR_FIELD(SSR_ASID, ssr); + int i; + HexagonCPU *cpu =3D env_archcpu(env); + for (i =3D 0; i < cpu->num_tlbs; i++) { + uint64_t entry =3D env->hex_tlb->entries[i]; + if (hex_tlb_entry_match(env, entry, asid, VA, access_type, PA, pro= t, + size, excp, mmu_idx)) { + return true; + } + } + return false; +} + +static uint32_t hex_tlb_lookup_by_asid(CPUHexagonState *env, uint32_t asid, + uint32_t VA) +{ + g_assert_not_reached(); +} + +/* Called from tlbp instruction */ +uint32_t hex_tlb_lookup(CPUHexagonState *env, uint32_t ssr, uint32_t VA) +{ + return hex_tlb_lookup_by_asid(env, GET_SSR_FIELD(SSR_ASID, ssr), VA); +} + +static bool hex_tlb_is_match(CPUHexagonState *env, + uint64_t entry1, uint64_t entry2, + bool consider_gbit) +{ + bool valid1 =3D GET_TLB_FIELD(entry1, PTE_V); + bool valid2 =3D GET_TLB_FIELD(entry2, PTE_V); + uint64_t size1 =3D hex_tlb_page_size_bytes(entry1); + uint64_t vaddr1 =3D ROUND_DOWN(hex_tlb_virt_addr(entry1), size1); + uint64_t size2 =3D hex_tlb_page_size_bytes(entry2); + uint64_t vaddr2 =3D ROUND_DOWN(hex_tlb_virt_addr(entry2), size2); + int asid1 =3D GET_TLB_FIELD(entry1, PTE_ASID); + int asid2 =3D GET_TLB_FIELD(entry2, PTE_ASID); + bool gbit1 =3D GET_TLB_FIELD(entry1, PTE_G); + bool gbit2 =3D GET_TLB_FIELD(entry2, PTE_G); + + if (!valid1 || !valid2) { + return false; + } + + if (((vaddr1 <=3D vaddr2) && (vaddr2 < (vaddr1 + size1))) || + ((vaddr2 <=3D vaddr1) && (vaddr1 < (vaddr2 + size2)))) { + if (asid1 =3D=3D asid2) { + return true; + } + if ((consider_gbit && gbit1) || gbit2) { + return true; + } + } + return false; +} + +/* + * 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) +{ + int matches =3D 0; + int last_match =3D 0; + int i; + + HexagonCPU *cpu =3D env_archcpu(env); + for (i =3D 0; i < cpu->num_tlbs; i++) { + if (hex_tlb_is_match(env, entry, env->hex_tlb->entries[i], false))= { + matches++; + last_match =3D i; + } + } + + if (matches =3D=3D 1) { + return last_match; + } + if (matches =3D=3D 0) { + return -2; + } + return -1; +} + +static inline void print_thread(const char *str, CPUState *cs) +{ + g_assert(bql_locked()); + CPUHexagonState *thread =3D cpu_env(cs); + bool is_stopped =3D cpu_is_stopped(cs); + int exe_mode =3D get_exe_mode(thread); + hex_lock_state_t lock_state =3D thread->tlb_lock_state; + qemu_log_mask(CPU_LOG_MMU, + "%s: threadId =3D %d: %s, exe_mode =3D %s, tlb_lock_state =3D %= s\n", + str, + thread->threadId, + is_stopped ? "stopped" : "running", + exe_mode =3D=3D HEX_EXE_MODE_OFF ? "off" : + exe_mode =3D=3D HEX_EXE_MODE_RUN ? "run" : + exe_mode =3D=3D HEX_EXE_MODE_WAIT ? "wait" : + exe_mode =3D=3D HEX_EXE_MODE_DEBUG ? "debug" : + "unknown", + lock_state =3D=3D HEX_LOCK_UNLOCKED ? "unlocked" : + lock_state =3D=3D HEX_LOCK_WAITING ? "waiting" : + lock_state =3D=3D HEX_LOCK_OWNER ? "owner" : + "unknown"); +} + +static inline void print_thread_states(const char *str) +{ + CPUState *cs; + CPU_FOREACH(cs) { + print_thread(str, cs); + } +} + +void hex_tlb_lock(CPUHexagonState *env) +{ + qemu_log_mask(CPU_LOG_MMU, "hex_tlb_lock: %d\n", env->threadId); + BQL_LOCK_GUARD(); + g_assert((env->tlb_lock_count =3D=3D 0) || (env->tlb_lock_count =3D=3D= 1)); + + uint32_t syscfg =3D arch_get_system_reg(env, HEX_SREG_SYSCFG); + uint8_t tlb_lock =3D GET_SYSCFG_FIELD(SYSCFG_TLBLOCK, syscfg); + if (tlb_lock) { + if (env->tlb_lock_state =3D=3D HEX_LOCK_QUEUED) { + env->next_PC +=3D 4; + env->tlb_lock_count++; + env->tlb_lock_state =3D HEX_LOCK_OWNER; + SET_SYSCFG_FIELD(env, SYSCFG_TLBLOCK, 1); + return; + } + if (env->tlb_lock_state =3D=3D HEX_LOCK_OWNER) { + qemu_log_mask(CPU_LOG_MMU | LOG_GUEST_ERROR, + "Double tlblock at PC: 0x%x, thread may hang\n", + env->next_PC); + env->next_PC +=3D 4; + CPUState *cs =3D env_cpu(env); + cpu_interrupt(cs, CPU_INTERRUPT_HALT); + return; + } + env->tlb_lock_state =3D HEX_LOCK_WAITING; + CPUState *cs =3D env_cpu(env); + cpu_interrupt(cs, CPU_INTERRUPT_HALT); + } else { + env->next_PC +=3D 4; + env->tlb_lock_count++; + env->tlb_lock_state =3D HEX_LOCK_OWNER; + SET_SYSCFG_FIELD(env, SYSCFG_TLBLOCK, 1); + } + + if (qemu_loglevel_mask(CPU_LOG_MMU)) { + qemu_log_mask(CPU_LOG_MMU, "Threads after hex_tlb_lock:\n"); + print_thread_states("\tThread"); + } +} + +void hex_tlb_unlock(CPUHexagonState *env) +{ + BQL_LOCK_GUARD(); + g_assert((env->tlb_lock_count =3D=3D 0) || (env->tlb_lock_count =3D=3D= 1)); + + /* Nothing to do if the TLB isn't locked by this thread */ + uint32_t syscfg =3D arch_get_system_reg(env, HEX_SREG_SYSCFG); + uint8_t tlb_lock =3D GET_SYSCFG_FIELD(SYSCFG_TLBLOCK, syscfg); + if ((tlb_lock =3D=3D 0) || + (env->tlb_lock_state !=3D HEX_LOCK_OWNER)) { + qemu_log_mask(LOG_GUEST_ERROR, + "thread %d attempted to tlbunlock without having the= " + "lock, tlb_lock state =3D %d\n", + env->threadId, env->tlb_lock_state); + g_assert(env->tlb_lock_state !=3D HEX_LOCK_WAITING); + return; + } + + env->tlb_lock_count--; + env->tlb_lock_state =3D HEX_LOCK_UNLOCKED; + SET_SYSCFG_FIELD(env, SYSCFG_TLBLOCK, 0); + + /* Look for a thread to unlock */ + unsigned int this_threadId =3D env->threadId; + CPUHexagonState *unlock_thread =3D NULL; + CPUState *cs; + CPU_FOREACH(cs) { + CPUHexagonState *thread =3D cpu_env(cs); + + /* + * The hardware implements round-robin fairness, so we look for th= reads + * starting at env->threadId + 1 and incrementing modulo the numbe= r of + * threads. + * + * To implement this, we check if thread is a earlier in the modulo + * sequence than unlock_thread. + * if unlock thread is higher than this thread + * thread must be between this thread and unlock_thread + * else + * thread higher than this thread is ahead of unlock_thread + * thread must be lower then unlock thread + */ + if (thread->tlb_lock_state =3D=3D HEX_LOCK_WAITING) { + if (!unlock_thread) { + unlock_thread =3D thread; + } else if (unlock_thread->threadId > this_threadId) { + if (this_threadId < thread->threadId && + thread->threadId < unlock_thread->threadId) { + unlock_thread =3D thread; + } + } else { + if (thread->threadId > this_threadId) { + unlock_thread =3D thread; + } + if (thread->threadId < unlock_thread->threadId) { + unlock_thread =3D thread; + } + } + } + } + if (unlock_thread) { + cs =3D env_cpu(unlock_thread); + print_thread("\tWaiting thread found", cs); + unlock_thread->tlb_lock_state =3D HEX_LOCK_QUEUED; + SET_SYSCFG_FIELD(unlock_thread, SYSCFG_TLBLOCK, 1); + cpu_interrupt(cs, CPU_INTERRUPT_TLB_UNLOCK); + } + + if (qemu_loglevel_mask(CPU_LOG_MMU)) { + qemu_log_mask(CPU_LOG_MMU, "Threads after hex_tlb_unlock:\n"); + print_thread_states("\tThread"); + } + +} + diff --git a/target/hexagon/machine.c b/target/hexagon/machine.c index 10e0fe9688..f3d2bdf41d 100644 --- a/target/hexagon/machine.c +++ b/target/hexagon/machine.c @@ -7,6 +7,33 @@ #include "qemu/osdep.h" #include "migration/cpu.h" #include "cpu.h" +#include "hex_mmu.h" + +static int get_hex_tlb_ptr(QEMUFile *f, void *pv, size_t size, + const VMStateField *field) +{ + CPUHexagonTLBContext *tlb =3D pv; + for (int i =3D 0; i < ARRAY_SIZE(tlb->entries); i++) { + tlb->entries[i] =3D qemu_get_be64(f); + } + return 0; +} + +static int put_hex_tlb_ptr(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, JSONWriter *vmdesc) +{ + CPUHexagonTLBContext *tlb =3D pv; + for (int i =3D 0; i < ARRAY_SIZE(tlb->entries); i++) { + qemu_put_be64(f, tlb->entries[i]); + } + return 0; +} + +const VMStateInfo vmstate_info_hex_tlb_ptr =3D { + .name =3D "hex_tlb_pointer", + .get =3D get_hex_tlb_ptr, + .put =3D put_hex_tlb_ptr, +}; =20 =20 const VMStateDescription vmstate_hexagon_cpu =3D { @@ -27,6 +54,9 @@ const VMStateDescription vmstate_hexagon_cpu =3D { VMSTATE_UINTTL(env.threadId, HexagonCPU), VMSTATE_UINTTL(env.cause_code, HexagonCPU), VMSTATE_UINTTL(env.wait_next_pc, HexagonCPU), + VMSTATE_POINTER(env.hex_tlb, HexagonCPU, 0, + vmstate_info_hex_tlb_ptr, CPUHexagonTLBContext *), + VMSTATE_END_OF_LIST() }, }; diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index d788aa227c..b74ddc2acb 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -943,7 +943,7 @@ static void hexagon_tr_init_disas_context(DisasContextB= ase *dcbase, HexagonCPU *hex_cpu =3D env_archcpu(cpu_env(cs)); uint32_t hex_flags =3D dcbase->tb->flags; =20 - ctx->mem_idx =3D MMU_USER_IDX; + ctx->mem_idx =3D FIELD_EX32(hex_flags, TB_FLAGS, MMU_INDEX); ctx->num_packets =3D 0; ctx->num_insns =3D 0; ctx->num_hvx_insns =3D 0; --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756784962; cv=none; d=zohomail.com; s=zohoarc; b=IhKcwdyP4MkF3cvv8mfCLv/+4pH41De0SXOgfD2n7xvycsaQb/cHM3bostEbXKtmPQKCpVzCgxa4N3Ns7KFlvLmea6mJ5BtkM+hbw1C1uaht5UwYB6tM09MbYCi5L50pp6KSFYHPk0IgJ3zNgn0dlpyK+1KGgyq7Ww4ii/c55nM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756784962; 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=LFevgomVHhazQisSDJeMUisDflSSItQWekFlyCxE6l8=; b=mdSxHzBtf2RkKbZQnr/3YqvUrg5CA80CEm+y7CDqHlg0zlmmn9S0gEEq8uwRd7sXKKJ39zaheqvtQYs2vDAYycgg4fqAD0BMvvDJkBq+wJAHIMCWGsMlcXfX4PAcWdZcj4VT9wqRy9LJSwqw/yXcDXCaG20BBZNlENrUPYt/L+Y= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17567849625911004.5864664137431; Mon, 1 Sep 2025 20:49:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI0e-0007m2-7O; Mon, 01 Sep 2025 23:48:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI0L-00077j-Py for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:48:22 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI0J-0004XR-Ep for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:48:21 -0400 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822RkQY016270 for ; Tue, 2 Sep 2025 03:48:08 GMT Received: from mail-pf1-f197.google.com (mail-pf1-f197.google.com [209.85.210.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48utk8x87a-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:48:08 +0000 (GMT) Received: by mail-pf1-f197.google.com with SMTP id d2e1a72fcca58-77260b29516so2234347b3a.3 for ; Mon, 01 Sep 2025 20:48: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 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.48.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:48: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= LFevgomVHhazQisSDJeMUisDflSSItQWekFlyCxE6l8=; b=ap3duOomI6cfT3Lw SqYERGHq/RXIdhvzIokrVwI4OffM9sRMrR3ugyWIznGzRNX1ph4KOU4Qkxu6Mn2/ cBAyHaQ56NReLSaQg6RtmKODv0TgDi0BHTJJ50TvKNaEA9vrUqoos3RSTv5mtXOj H4p2yBfwweT+onVm1gQ5nP/u1MexSeL0qqvRxmTovO+P6xMwHETVP8J+KyFFNkcI flXXSwKDqPfzrWHsTCMRtUtE1brFhv7mBHIdaIX5g2qiJMhmiKtw1IIKw4kiFTXl 2UhTvY13hdVnAaYhAJMEAFjb59RKbeGIRdLq4NQVAI+T3hU7p8pFDQQ8gHvDA3y1 YY86OQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784887; x=1757389687; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LFevgomVHhazQisSDJeMUisDflSSItQWekFlyCxE6l8=; b=IXjoESZSpQiXTdQtZIfrM/KpYlefAJtd+QJSeaYijtBc15kyB4V2hFqKR1LuyFhfq1 11anoTBV+WdcqslvEEZ/LiHIKr0rK+PCvH3bmWes6sLfUeSN5Bo8bkPsi4bcQA6TYCla VEOwov5fTACiNHqrEZkFpWuOeSy5uzH9KGp1CZvGfNCJDLe7GwD+2lFqJ5+MB5gQBY/F YIncxPoiGScRoGbr4o0VwINEoh8E3w2+bNcU6R1+TIWAMuDlsdwEPNNO1MhcToFMlL/n ZLwnOrLyhdBA/NP11T4ZY4ginLMl3Qze0c2sTaCilvj/tkj9kBstvsWTrWbZ1LMC804k eZzQ== X-Gm-Message-State: AOJu0YzO8ylYwVFLWtO950T4h6eDrhBIk5w5aUPlk6dekAVcIS9/UmZR UZnm1nmEr0V6+k0yP4LnkaHwQ/MOcBrgAk9F486o7BNc4ugrNKEM73WK2V5F4/sH9ri+PIdikmU R+OQEDYEkxZi3pZlYYkFVFjDQzkzojkB6rPfXDAM+eSD3/hjem6QWtPm8kso0IpnamFBY X-Gm-Gg: ASbGncsT+nlqlZLFY5F10+Ef+505KYMgfiSgAknLrv6YAbc6YrtSk0QzQEsN0LmEW/E hJUuD8H/tO1yZtiiktcZmoZ/rA/vgAdy8I6B6MaH6D/OJZ4aGM8W9FpGeG+Eo8ltl1VV5RBr8GC OMeLrhn8U4nlolRTylDyRyzeJtH87L9dIGbIs2p2UwqTcyaMS17qrOlSzS6CByNplE4ylzTeJBn 0LJ4tDZZcxzNluO7YhifC8syMU/E8aYCAcjBV55rmpYhSfArXHEJWwY4U54cu5WxqbLMv7n7HHH Z9ypMONMrsaD2LZjqppbrzIO4zTbJw/ZkIr4I1Dd8U1bTCKYpz8KF7x/y8vQMmjLz+3R2jn04T8 9JO7mSo++l3VE X-Received: by 2002:a05:6a21:3396:b0:243:15b9:7655 with SMTP id adf61e73a8af0-243d6f40f0dmr12302839637.47.1756784886982; Mon, 01 Sep 2025 20:48:06 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEj+4e/bnGKgkVNkAIAqtd8kutBW1XXRftZIOe+POPnpVZWXXAfcvWT9GDY53T4cngdyd2Cgw== X-Received: by 2002:a05:6a21:3396:b0:243:15b9:7655 with SMTP id adf61e73a8af0-243d6f40f0dmr12302797637.47.1756784886523; Mon, 01 Sep 2025 20:48:06 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain Subject: [PATCH v2 38/40] target/hexagon: Add clear_wait_mode() definition Date: Mon, 1 Sep 2025 20:47:13 -0700 Message-Id: <20250902034715.1947718-39-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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: LKm0eJ2p5ZvkfSN-L1Zt6E20X9Z3XogX X-Proofpoint-ORIG-GUID: LKm0eJ2p5ZvkfSN-L1Zt6E20X9Z3XogX X-Authority-Analysis: v=2.4 cv=ccnSrmDM c=1 sm=1 tr=0 ts=68b668f8 cx=c_pps a=rEQLjTOiSrHUhVqRoksmgQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=InO9qlFFT13rIqmD9gwA:9 a=QEXdDO2ut3YA:10 a=2VI0MkxyNR6bbpdq8BZq:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDA0MiBTYWx0ZWRfX0gpf1VT20Jex wfZV2ycqrTPNzGzNL0+cALiks6aZFNORLhpAus9DSvwz4kPVcaxWVDnegq5CgkhqohJWdy/vTlD QPGDozSha0FlwjuTYYvKPgYYxw8C2fqF5LMHXW6qRFHJTM4uOdAWgUwcYM7MQ6Tx1U4hrHKmjzO jSMu+DhwZ9dFUnRqnl+PlJc0hfIoAnbZNAGYQoEgEB5hborerPDTTwESD11nToAHATeyZ3fu3SC VuCz3llim2LZzcoBcJpsKvT9BJt5O+Iee1bWnme6eSuiNx5uCWBa1pOsGKZiQhG3ifu2HiMyKc0 4upBbznTngXQAOOphrzPrPZ4kfpgOQ0NVfGJAk69xyU5aMx8NItjmHX6AxlZJILgxZZYA4U3AcT 3mk4e0ru X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 phishscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 clxscore=1015 suspectscore=0 spamscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300042 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756784964715124100 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu_helper.h | 1 + target/hexagon/cpu_helper.c | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/target/hexagon/cpu_helper.h b/target/hexagon/cpu_helper.h index e0c0c037a6..6f0c6697ad 100644 --- a/target/hexagon/cpu_helper.h +++ b/target/hexagon/cpu_helper.h @@ -16,6 +16,7 @@ void hexagon_set_sys_pcycle_count_low(CPUHexagonState *en= v, uint32_t); void hexagon_set_sys_pcycle_count_high(CPUHexagonState *env, uint32_t); void hexagon_modify_ssr(CPUHexagonState *env, uint32_t new, uint32_t old); int get_exe_mode(CPUHexagonState *env); +void clear_wait_mode(CPUHexagonState *env); =20 static inline void arch_set_thread_reg(CPUHexagonState *env, uint32_t reg, uint32_t val) diff --git a/target/hexagon/cpu_helper.c b/target/hexagon/cpu_helper.c index bc51714406..00f47e5a07 100644 --- a/target/hexagon/cpu_helper.c +++ b/target/hexagon/cpu_helper.c @@ -76,6 +76,19 @@ void hexagon_modify_ssr(CPUHexagonState *env, uint32_t n= ew, uint32_t old) g_assert_not_reached(); } =20 +void clear_wait_mode(CPUHexagonState *env) +{ + g_assert(bql_locked()); + + HexagonCPU *cpu =3D env_archcpu(env); + if (cpu->globalregs) { + const uint32_t modectl =3D arch_get_system_reg(env, HEX_SREG_MODEC= TL); + uint32_t thread_wait_mask =3D GET_FIELD(MODECTL_W, modectl); + thread_wait_mask &=3D ~(0x1 << env->threadId); + SET_SYSTEM_FIELD(env, HEX_SREG_MODECTL, MODECTL_W, thread_wait_mas= k); + } +} + int get_exe_mode(CPUHexagonState *env) { g_assert_not_reached(); --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756785337; cv=none; d=zohomail.com; s=zohoarc; b=XiwaC4Z6fh0kkFcgpl4ARWMLAtklLpgkU+3zIxxPQrakyNIRa/+FohmG1GiVC/HDENK9ycGtPM0JK52Fycf5XPwaCbaNCmMZcSpLGGLhzxcKVBTc+3c5jwvsPh+Ir5vSC/U474zFeP8Jk4KX+3acIjtnImN1FRuEcV6P6aG9+SU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785337; 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=zroRFyPUVBvjqrMFJ6JZymGgBNiBmuU5ULiPu3eSLQ4=; b=Yx2rfeeZdRvdPGLoRPUr+Hht68srtnKpldZJsl03KqWTPDp2Golu8fMonS9m/9abzF8k4lKunMWdEkyjykh6ZI8xjIoiUmLfoXmIvVzkJNFP2hNmlAiZX+zt1iSQj/XxwY+oyXdZZ0hxQgoiHi2GQszQndAb9/JlYFTF6ceCf2Q= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 175678533755820.20521122314244; Mon, 1 Sep 2025 20:55:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI0W-0007L8-0v; Mon, 01 Sep 2025 23:48:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI0O-0007AU-NA for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:48:24 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI0K-0004XZ-SL for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:48:23 -0400 Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822RkUc020382 for ; Tue, 2 Sep 2025 03:48:09 GMT Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48ur8rxf3g-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:48:09 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-3276575ae5bso4963228a91.2 for ; Mon, 01 Sep 2025 20:48:09 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.48.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:48: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= zroRFyPUVBvjqrMFJ6JZymGgBNiBmuU5ULiPu3eSLQ4=; b=IlG1Ir2wPEzGc6B+ nH/eAR/QMVEDPvrvemAoA1BihQF2PLWg4kivgaNK+vyU9OIt1gaC3FQg/qLXQxGa ev0kvRBT03uxJA20EMIfV0VRL7hL/+/kNoIyp6ts/wBEo3yjzU7I4+0it/DeeZwJ ZEF3SrVc1Esz+kS4Oum2Qaorb7b+R9VERbfRe0G+5YKIE1mim/MCaZScZvJSYSjF Mi3m39YshPkXN9hTNy/MXScuIX7GTMVa4oooivhL+f3y/UNLdl8xBSDVO5fWvtVv +20qqbeF9XH0MbncBkHe9OcfkzwPsfzCiYCTPeEjK66lyIk1ja+ySZm36nBeDrtB RLZhAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784888; x=1757389688; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=zroRFyPUVBvjqrMFJ6JZymGgBNiBmuU5ULiPu3eSLQ4=; b=vYyyk1FxaU/eB1TQfc6yH8MsWzdL5j38W6sH+d2wh8jHMKz4Awn88EQwHQ9/8tcfsi 3izVJ9jB0wqYanAFvosXTGPzgaLEre83m/CHX0L0ZUpFEonLpLiaTGd26qwhJw1PYg+w IvZbNVhovERr5vge7YyLIb9NkC3ryb/e4WyY/H5OvZ3sXjArWWyx8wKndL1Xh4tFnCqX Hvt/NaUH5OCqTQLsu/vZ7u/PuJEtYO1A2PAj2C7z6kWJNrpPMQN08aqRrrGy1oiqw2WB Ms2IP8aZ9mp6o4WyV3pLAScvzSMPvwC9F1gcOlu681InvkJ++VdzmRBBrIAAN/nBSiFF v5Zg== X-Gm-Message-State: AOJu0YxY+iLX5H3Y6rKsrBabsUESqE1F+7crMc7mjSLOYiNFlAj/qW/b MuZId45DN2OZ/3vdiJjjCyMsI0o4vM6+KuKyXxTBPWwkg/UdkqOC4aYFotSzzIa2NWx2pbIAn2a /QyL8eXUc1vzIFvrnZklrXhE4wGbcr9Q7APnT174SeuDCFHfQ6pLkps9Gaht+VdcKHyod X-Gm-Gg: ASbGnctDyEMy3/BWLeqne9TvwA7HNPjhcwj+mgf83/XxSO9otCZqSq7nedDcUAgkgWa X3VoQOaUHZyDUGjNMeW02QeV6g2ICo3pT7W6defm7+PaCzSHtuXm7iLG+EKeEKIsSaa/HVshfal f15Xs4Q+wz2t59fnv370kaNTmVd1CZHzPy0cxEDJsm4FTxrgB4VlaoVNjSnWIGS14a4cr9ifyJ+ P1ms1+I6F/eIoJ6e3EWzeuUslocdjCN6l3+Hrm80ot7DTuopDAQ82UUTVlDuxDxoWVLH4RChDnU jeVMA5NTVI35m9DECchBYWp6N7SvXB9e2i2fRNCa7HJC9ckcWD0I+QAbPLTXHd4e2eTY8trTYyG x/lydCg3T2JNp X-Received: by 2002:a17:90b:3809:b0:329:dff0:701b with SMTP id 98e67ed59e1d1-329dff070c6mr2282187a91.17.1756784888204; Mon, 01 Sep 2025 20:48:08 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGndtxV8+UELHz1YwHA+b1lLW0G/662pWxpvRfzfWTN1pdlItVStBjvD9C/HVLrGrgLlP1TbQ== X-Received: by 2002:a17:90b:3809:b0:329:dff0:701b with SMTP id 98e67ed59e1d1-329dff070c6mr2282155a91.17.1756784887714; Mon, 01 Sep 2025 20:48:07 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain Subject: [PATCH v2 39/40] target/hexagon: Define f{S,G}ET_FIELD macros Date: Mon, 1 Sep 2025 20:47:14 -0700 Message-Id: <20250902034715.1947718-40-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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: AW1haW4tMjUwODMwMDAxOSBTYWx0ZWRfX1ZBwL+At4O0B 1kZdJfDgtwJ035aUYey//SsfS6+PnkltWxoQI9AM3LqbK+4J/1yLxw3XFQQmjvGN+nzBaXpRLrT V8c6X1TxPDk1ip5GYu0ZWMXd0IcE9xcQdha97GTqq8D1OwhH+K6kPp1Td+fxgB7TPSBjWge2lme Qa2sq0NF16e7Ta7CM8OTbGKsKD0+c1bE38O9wcptPkaUc2wqsKiNMLHtCYdYYdjTXkyc/cKz1gV ECttn0enmzfTVwCfWr6bLOQ1Hs/mngY1P3zhFks5yjkXKiZxNjW0gTZ4V3/K0fYz9Avn9lI6gWU 1f9ta6TCGFUbOXg2h/1IfJ7sP/f2w2DcP2Ay3UwtfdqAtH20Sg/HMEMzpM0Ov74SuSLCztVJVF/ zw9nLneQ X-Proofpoint-GUID: h1DaUexOqEEG7UUhr-w2LtQbb0QKpi2R X-Proofpoint-ORIG-GUID: h1DaUexOqEEG7UUhr-w2LtQbb0QKpi2R X-Authority-Analysis: v=2.4 cv=PNkP+eqC c=1 sm=1 tr=0 ts=68b668f9 cx=c_pps a=0uOsjrqzRL749jD1oC5vDA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=OC-ZKJ6AczBSh3OnBRYA:9 a=QEXdDO2ut3YA:10 a=mQ_c8vxmzFEMiUWkPHU9:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=0 priorityscore=1501 impostorscore=0 clxscore=1015 suspectscore=0 adultscore=0 phishscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300019 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756785338866116600 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 4823c97fde..5c3a4a533c 100644 --- a/target/hexagon/macros.h +++ b/target/hexagon/macros.h @@ -650,6 +650,16 @@ static inline TCGv gen_read_ireg(TCGv result, TCGv val= , int shift) reg_field_info[FIELD].width, \ reg_field_info[FIELD].offset) =20 +#define fGET_FIELD(VAL, FIELD) \ + fEXTRACTU_BITS(VAL, \ + reg_field_info[FIELD].width, \ + reg_field_info[FIELD].offset) +#define fSET_FIELD(VAL, FIELD, NEWVAL) \ + fINSERT_BITS(VAL, \ + reg_field_info[FIELD].width, \ + reg_field_info[FIELD].offset, \ + (NEWVAL)) + #ifdef QEMU_GENERATE #define fDCZEROA(REG) \ do { \ --=20 2.34.1 From nobody Sun Sep 28 16:36:33 2025 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=1756784993; cv=none; d=zohomail.com; s=zohoarc; b=G57OWMWWkkP3hlXwB0CEgnsEPoYORQDYN/BmDACwofZjntjbaVYS3HEHEqTg//Z+z71U6eo27fCexcGUV+6dTsuma25fdvfGnThxKe8vjbAAOUBmedfsO447fySL4/T6Ry/d4zosfuqm72brvqNJufJMwohP+EBwW8CpUQE+X0w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756784993; 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=NZNJP7Tt2VSeYOWvLu+7G4zCV4rtKzm3+hr1voXSqrc=; b=Qp0UHlzRpjvBR/LXHIJOJC9BnTaGpsEq2iV90UJblNrrwLkI6lcpigldaema2z6YGtZVWN6agCM7CVbQ8k2A3p5e4znCJiGt7pZ14Owm+EpvorN4CvDOGmF1i3Xxd6LJ6RmzxXeV44+J/1Q/9fvM5tqvJ+Hf4bmiVrWZ6He/LXM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756784993485874.3166967241549; Mon, 1 Sep 2025 20:49:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI0e-0007ig-68; Mon, 01 Sep 2025 23:48:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI0Q-0007Fy-LE for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:48:26 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI0O-0004Xu-1a for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:48:26 -0400 Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822S5IH013610 for ; Tue, 2 Sep 2025 03:48:11 GMT Received: from mail-pj1-f69.google.com (mail-pj1-f69.google.com [209.85.216.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48uq0eej6k-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:48:11 +0000 (GMT) Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-325e31cecd6so4776704a91.3 for ; Mon, 01 Sep 2025 20:48:11 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b4cd006e2c6sm10633584a12.2.2025.09.01.20.48.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:48:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= NZNJP7Tt2VSeYOWvLu+7G4zCV4rtKzm3+hr1voXSqrc=; b=e+gucpU9HKvvBL2F IqlEny6MxFMsymHsUnBbMCfPPVFCcJCUlqPSPZwiF6Nn7KxMrbBeOXZVJA2MASFm vMu4dH83vf11iH0k8Ms8rjdq2JOn5tE96kOM6sl5om4i7y0WsdiAj/Cr4/Uq9z7i rw5YumXXLac8q5ACyUXMgHzGDJuePC2AZnx8JJ9X+J21L/Jyr+KalPd3qCz2e4Bs MsLiCheuxo5TjOKlSPTKLHgaCvamMtfu5lFFOOo/NIU5CGc8jsWxfrQ36b2LWJ2m /g8WMOvMXC6HbEDdKnzVuxHhE4MZo+Ewve0oJPbb8ijw6yK54qLuqW/ctnK4JHDO djZtCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784890; x=1757389690; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=NZNJP7Tt2VSeYOWvLu+7G4zCV4rtKzm3+hr1voXSqrc=; b=cyt9WYEB+m3tQTNoB3ShCz2H755kB2FBIzbWKjXGKPbPw63iGYkWxyy/Y00FEhRMOs jbZ3kh8BhQRf/GMAyUKxPMwGyFp293/q8P18tr/ReKRABsdAXWygYb7Uo0Ji3TJjh/Id pfLWwoNPTBcCR8aCn0X5a7Jzcy9vPE1XGm2WmTUENLd6fKoEORKah3rBPUmjSrkMtAKV lxUuZq3RdLJCL3AG6kMdf7b/oTN3tDKFHk6ZNOfi+MRqVxkNl1KswtLxNEHI3q0tVP0e QFDv0pUepaVi+t9kEysHNXuuFVUQilnn/c0m4Jg4uzWuwLmDVcCcmlmTpDOujVjOb9f+ C0Bw== X-Gm-Message-State: AOJu0YwV8rJ/n6yiYoiD/xo+S62I8Ki333MysMifObiJY/LUVZUw2Wh2 CSA+d/OqN9lZEIshLeXvz+fHBkHxFKANZu4BzY70OOjlWjlG8v7jO0Qa2GZRXsm2PB33ELbSjoC PF8cs1t3hIO9G9qQuJPuxCNxpE+LNwF4Pp8bqMVWrLzPZhfUtlcRTThOaGhE7mqKDdUH+ X-Gm-Gg: ASbGncshysXhNE/8VZmGoLZ7iRUXHHoGneiM9ia88ZqLO0d6G7F6EPIfs0ygU8ZUYew qcBBY7HVf79sQW4+XmLEzkpUmtJ5omKIWRCJ9baITO1hl/vGI8fNCRnZqZmUQksU9GyHJ+HBrJA DOBIfqrPRkKtw2Rcvyoff9GMbblCdYRlp8useC9fQLV47N9fPTTu5eQuqqPBjJH50Io0laZ7d0i ZQPtowH58hremIACntGDn7KCZe5gDsi7XYp5/NrkkkUoRb5yRYf9C9nENIJaAmKMB/sY/aVKcwd pqY3xHwuOxGsV4HwRa/lYFemYhvg94OoxCMTlomnP4wzZ317J/LIrslanev7eX3N29lxvhvVfxv PJC/VsLtXS6cn X-Received: by 2002:a17:90b:58a6:b0:327:fb42:2472 with SMTP id 98e67ed59e1d1-328156cc767mr7993468a91.28.1756784890118; Mon, 01 Sep 2025 20:48:10 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHxqYyUwr1CA/KUbJ9U+rEMLe7kt6bQk45lH+ns3N95R+qjdDz8/pQMzOGZ9A69zmCF5GN/kA== X-Received: by 2002:a17:90b:58a6:b0:327:fb42:2472 with SMTP id 98e67ed59e1d1-328156cc767mr7993425a91.28.1756784888987; Mon, 01 Sep 2025 20:48:08 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, Brian Cain , Sid Manning , Michael Lambert Subject: [PATCH v2 40/40] target/hexagon: Add hex_interrupts support Date: Mon, 1 Sep 2025 20:47:15 -0700 Message-Id: <20250902034715.1947718-41-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034715.1947718-1-brian.cain@oss.qualcomm.com> References: <20250902034715.1947718-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: u1p14EeOHLIrPzjgYhel8SrxsEHGnJSj X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAwNCBTYWx0ZWRfX57zrgYERd++5 df4wuoko2j0cmkGPzUcIdSU+0CONIfpMPvK/EB8OCRcJGH62tfIoo+M01dquDRqukQfmUnJIOfV a73Iks/1pAwQRq5e5Y54vwtBegPgZBXogTg7OeFNcR0fuMUfrqqxpXUfVcaZDPBqsJGp1pSJ2BS 2ttYldNfGmWrlf1vQU5Yz44o52T8h6vBqGc4qa6Em5M/TqezGhoM0E0pGmdHDHa2LtPWiUYAbaZ tg++GVFoDulb8TjZ0fX3+gTOHAYb/xTSxpSngYoVKQ+AT4BtLuSPcWxBdMOnJdf0UCXbQTRisgV UnD3o4q8qLHP8SQWZe6SSCLGpu4lOnX37OGi+DK+ZAICkqWk9GY8j0wqvggJt65EZ4JbapuVOkE XJxPmshN X-Proofpoint-ORIG-GUID: u1p14EeOHLIrPzjgYhel8SrxsEHGnJSj X-Authority-Analysis: v=2.4 cv=ea09f6EH c=1 sm=1 tr=0 ts=68b668fb cx=c_pps a=vVfyC5vLCtgYJKYeQD43oA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=zxlTluI1IHozTE2Gj6wA:9 a=QEXdDO2ut3YA:10 a=rl5im9kqc5Lf4LNbBjHf:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_01,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 suspectscore=0 clxscore=1015 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300004 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 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: 1756784994791116600 From: Brian Cain Co-authored-by: Taylor Simpson Co-authored-by: Sid Manning Co-authored-by: Michael Lambert Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 1 + target/hexagon/hex_interrupts.h | 15 ++ target/hexagon/cpu.c | 2 + target/hexagon/hex_interrupts.c | 327 ++++++++++++++++++++++++++++++++ 4 files changed, 345 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 f25b483188..d369e104ae 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -192,6 +192,7 @@ struct ArchCPU { bool short_circuit; #ifndef CONFIG_USER_ONLY uint32_t num_tlbs; + uint32_t l2vic_base_addr; #endif }; =20 diff --git a/target/hexagon/hex_interrupts.h b/target/hexagon/hex_interrupt= s.h new file mode 100644 index 0000000000..17a243946c --- /dev/null +++ b/target/hexagon/hex_interrupts.h @@ -0,0 +1,15 @@ +/* + * Copyright(c) 2022-2025 Qualcomm Innovation Center, Inc. All Rights Rese= rved. + * + * 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 eb3adebb60..c128f47ad3 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -59,6 +59,8 @@ static ObjectClass *hexagon_cpu_class_by_name(const char = *cpu_model) static const Property hexagon_cpu_properties[] =3D { #if !defined(CONFIG_USER_ONLY) DEFINE_PROP_UINT32("jtlb-entries", HexagonCPU, num_tlbs, MAX_TLB_ENTRI= ES), + DEFINE_PROP_UINT32("l2vic-base-addr", HexagonCPU, l2vic_base_addr, + 0xffffffffULL), #endif DEFINE_PROP_BOOL("lldb-compat", HexagonCPU, lldb_compat, false), DEFINE_PROP_UNSIGNED("lldb-stack-adjust", HexagonCPU, lldb_stack_adjus= t, 0, diff --git a/target/hexagon/hex_interrupts.c b/target/hexagon/hex_interrupt= s.c new file mode 100644 index 0000000000..b555565e55 --- /dev/null +++ b/target/hexagon/hex_interrupts.c @@ -0,0 +1,327 @@ +/* + * Copyright(c) 2022-2025 Qualcomm Innovation Center, Inc. All Rights Rese= rved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "qemu/log.h" +#include "qemu/main-loop.h" +#include "cpu.h" +#include "cpu_helper.h" +#include "exec/cpu-interrupt.h" +#include "hex_interrupts.h" +#include "macros.h" +#include "sys_macros.h" +#include "system/cpus.h" + +static bool hex_is_qualified_for_int(CPUHexagonState *env, int int_num); + +static bool get_syscfg_gie(CPUHexagonState *env) +{ + target_ulong syscfg =3D arch_get_system_reg(env, HEX_SREG_SYSCFG); + return GET_SYSCFG_FIELD(SYSCFG_GIE, syscfg); +} + +static bool get_ssr_ex(CPUHexagonState *env) +{ + target_ulong ssr =3D arch_get_system_reg(env, HEX_SREG_SSR); + return GET_SSR_FIELD(SSR_EX, ssr); +} + +static bool get_ssr_ie(CPUHexagonState *env) +{ + target_ulong ssr =3D arch_get_system_reg(env, HEX_SREG_SSR); + return GET_SSR_FIELD(SSR_IE, ssr); +} + +/* Do these together so we only have to call hexagon_modify_ssr once */ +static void set_ssr_ex_cause(CPUHexagonState *env, int ex, uint32_t cause) +{ + target_ulong old =3D arch_get_system_reg(env, HEX_SREG_SSR); + SET_SYSTEM_FIELD(env, HEX_SREG_SSR, SSR_EX, ex); + SET_SYSTEM_FIELD(env, HEX_SREG_SSR, SSR_CAUSE, cause); + target_ulong new =3D arch_get_system_reg(env, HEX_SREG_SSR); + hexagon_modify_ssr(env, new, old); +} + +static bool get_iad_bit(CPUHexagonState *env, int int_num) +{ + target_ulong ipendad =3D arch_get_system_reg(env, HEX_SREG_IPENDAD); + target_ulong iad =3D GET_FIELD(IPENDAD_IAD, ipendad); + return extract32(iad, int_num, 1); +} + +static void set_iad_bit(CPUHexagonState *env, int int_num, int val) +{ + target_ulong ipendad =3D arch_get_system_reg(env, HEX_SREG_IPENDAD); + target_ulong iad =3D GET_FIELD(IPENDAD_IAD, ipendad); + iad =3D deposit32(iad, int_num, 1, val); + fSET_FIELD(ipendad, IPENDAD_IAD, iad); + arch_set_system_reg(env, HEX_SREG_IPENDAD, ipendad); +} + +static uint32_t get_ipend(CPUHexagonState *env) +{ + target_ulong ipendad =3D arch_get_system_reg(env, HEX_SREG_IPENDAD); + return GET_FIELD(IPENDAD_IPEND, ipendad); +} + +static inline bool get_ipend_bit(CPUHexagonState *env, int int_num) +{ + target_ulong ipendad =3D arch_get_system_reg(env, HEX_SREG_IPENDAD); + target_ulong ipend =3D GET_FIELD(IPENDAD_IPEND, ipendad); + return extract32(ipend, int_num, 1); +} + +static void clear_ipend(CPUHexagonState *env, uint32_t mask) +{ + target_ulong ipendad =3D arch_get_system_reg(env, HEX_SREG_IPENDAD); + target_ulong ipend =3D GET_FIELD(IPENDAD_IPEND, ipendad); + ipend &=3D ~mask; + fSET_FIELD(ipendad, IPENDAD_IPEND, ipend); + arch_set_system_reg(env, HEX_SREG_IPENDAD, ipendad); +} + +static void set_ipend(CPUHexagonState *env, uint32_t mask) +{ + target_ulong ipendad =3D arch_get_system_reg(env, HEX_SREG_IPENDAD); + target_ulong ipend =3D GET_FIELD(IPENDAD_IPEND, ipendad); + ipend |=3D mask; + fSET_FIELD(ipendad, IPENDAD_IPEND, ipend); + arch_set_system_reg(env, HEX_SREG_IPENDAD, ipendad); +} + +static void set_ipend_bit(CPUHexagonState *env, int int_num, int val) +{ + target_ulong ipendad =3D arch_get_system_reg(env, HEX_SREG_IPENDAD); + target_ulong ipend =3D GET_FIELD(IPENDAD_IPEND, ipendad); + ipend =3D deposit32(ipend, int_num, 1, val); + fSET_FIELD(ipendad, IPENDAD_IPEND, ipend); + arch_set_system_reg(env, HEX_SREG_IPENDAD, ipendad); +} + +static bool get_imask_bit(CPUHexagonState *env, int int_num) +{ + target_ulong imask =3D arch_get_system_reg(env, HEX_SREG_IMASK); + return extract32(imask, int_num, 1); +} + +static uint32_t get_prio(CPUHexagonState *env) +{ + target_ulong stid =3D arch_get_system_reg(env, HEX_SREG_STID); + return extract32(stid, reg_field_info[STID_PRIO].offset, + reg_field_info[STID_PRIO].width); +} + +static void set_elr(CPUHexagonState *env, target_ulong val) +{ + arch_set_system_reg(env, HEX_SREG_ELR, val); +} + +static bool get_schedcfgen(CPUHexagonState *env) +{ + target_ulong schedcfg =3D arch_get_system_reg(env, HEX_SREG_SCHEDCFG); + return extract32(schedcfg, reg_field_info[SCHEDCFG_EN].offset, + reg_field_info[SCHEDCFG_EN].width); +} + +static bool is_lowest_prio(CPUHexagonState *env, int int_num) +{ + uint32_t my_prio =3D get_prio(env); + CPUState *cs; + + CPU_FOREACH(cs) { + CPUHexagonState *hex_env =3D cpu_env(cs); + if (!hex_is_qualified_for_int(hex_env, int_num)) { + continue; + } + + /* Note that lower values indicate *higher* priority */ + if (my_prio < get_prio(hex_env)) { + return false; + } + } + return true; +} + +static bool hex_is_qualified_for_int(CPUHexagonState *env, int int_num) +{ + bool syscfg_gie =3D get_syscfg_gie(env); + bool iad =3D get_iad_bit(env, int_num); + bool ssr_ie =3D get_ssr_ie(env); + bool ssr_ex =3D get_ssr_ex(env); + bool imask =3D get_imask_bit(env, int_num); + + return syscfg_gie && !iad && ssr_ie && !ssr_ex && !imask; +} + +static void clear_pending_locks(CPUHexagonState *env) +{ + g_assert(bql_locked()); + if (env->k0_lock_state =3D=3D HEX_LOCK_WAITING) { + env->k0_lock_state =3D HEX_LOCK_UNLOCKED; + } + if (env->tlb_lock_state =3D=3D HEX_LOCK_WAITING) { + env->tlb_lock_state =3D HEX_LOCK_UNLOCKED; + } +} + +static bool should_not_exec(CPUHexagonState *env) +{ + return (get_exe_mode(env) =3D=3D HEX_EXE_MODE_WAIT); +} + +static void restore_state(CPUHexagonState *env, bool int_accepted) +{ + CPUState *cs =3D env_cpu(env); + cpu_reset_interrupt(cs, CPU_INTERRUPT_HARD | CPU_INTERRUPT_SWI); + if (!int_accepted && should_not_exec(env)) { + cpu_interrupt(cs, CPU_INTERRUPT_HALT); + } +} + +static void hex_accept_int(CPUHexagonState *env, int int_num) +{ + CPUState *cs =3D env_cpu(env); + target_ulong evb =3D arch_get_system_reg(env, HEX_SREG_EVB); + const int exe_mode =3D get_exe_mode(env); + const bool in_wait_mode =3D exe_mode =3D=3D HEX_EXE_MODE_WAIT; + + set_ipend_bit(env, int_num, 0); + set_iad_bit(env, int_num, 1); + set_ssr_ex_cause(env, 1, HEX_CAUSE_INT0 | int_num); + cs->exception_index =3D HEX_EVENT_INT0 + int_num; + env->cause_code =3D HEX_EVENT_INT0 + int_num; + clear_pending_locks(env); + if (in_wait_mode) { + qemu_log_mask(CPU_LOG_INT, + "%s: thread " TARGET_FMT_ld " resuming, exiting WAIT mode\n", + __func__, env->threadId); + set_elr(env, env->wait_next_pc); + clear_wait_mode(env); + cs->halted =3D false; + } else if (env->k0_lock_state =3D=3D HEX_LOCK_WAITING) { + g_assert_not_reached(); + } else { + set_elr(env, env->gpr[HEX_REG_PC]); + } + env->gpr[HEX_REG_PC] =3D evb | (cs->exception_index << 2); + if (get_ipend(env) =3D=3D 0) { + restore_state(env, true); + } +} + + +bool hex_check_interrupts(CPUHexagonState *env) +{ + CPUState *cs =3D env_cpu(env); + bool int_handled =3D false; + bool ssr_ex =3D get_ssr_ex(env); + int max_ints =3D 32; + bool schedcfgen; + + /* Early exit if nothing pending */ + if (get_ipend(env) =3D=3D 0) { + restore_state(env, false); + return false; + } + + BQL_LOCK_GUARD(); + /* Only check priorities when schedcfgen is set */ + schedcfgen =3D get_schedcfgen(env); + for (int i =3D 0; i < max_ints; i++) { + if (!get_iad_bit(env, i) && get_ipend_bit(env, i)) { + qemu_log_mask(CPU_LOG_INT, + "%s: thread[" TARGET_FMT_ld "] pc =3D 0x" TARGET= _FMT_lx " found int %d\n", __func__, + env->threadId, env->gpr[HEX_REG_PC], i); + if (hex_is_qualified_for_int(env, i) && + (!schedcfgen || is_lowest_prio(env, i))) { + qemu_log_mask(CPU_LOG_INT, + "%s: thread[" TARGET_FMT_ld "] int %d handle= d_\n", + __func__, env->threadId, i); + hex_accept_int(env, i); + int_handled =3D true; + break; + } + bool syscfg_gie =3D get_syscfg_gie(env); + bool iad =3D get_iad_bit(env, i); + bool ssr_ie =3D get_ssr_ie(env); + bool imask =3D get_imask_bit(env, i); + + qemu_log_mask(CPU_LOG_INT, + "%s: thread[" TARGET_FMT_ld "] int %d not handle= d, 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 handle= d, 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) { + cs->interrupt_request |=3D CPU_INTERRUPT_SWI; + cpu_resume(cs); + } + } + } +} --=20 2.34.1