From nobody Sun Sep 28 16:37:08 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=1756784996; cv=none; d=zohomail.com; s=zohoarc; b=RLNGWM0goPEJ6VPWKII7na8TO47DA8p1vzWqsijpzHMuFiwqYIAQaZRa6CKt0wpyQa5bcTrPGTdVkTyNiaZ2/5bN29uzbj2nIwl2N01Vn3SqPoWgb05itYt52+AgM53kIOwmHDCL0U+1JY4WZD9VgtqFPekJvqix/mu5iU5D0g4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756784996; 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=O1UzNssB7s6NicRpvV0+mHUnNkmSr8ufwagEpGbRzd4=; b=Ygluy1stg5Ix1cLy+/VwsnV/lgilbB5KVFOTL/aRq+aPH/xSN1ZgNiRpjR6wN7mkGiWh5aHJiKpzaWkY8saCusmpDNOGjJ7RRPqk+9PnhTmBiyNlqiVKaLoDo73dh1hGeddeCiImvW32XTVxqtiig9MV3OU9yHL3VxMslQfsIfk= 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 1756784996057630.875105124415; Mon, 1 Sep 2025 20:49:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI1B-0001C8-EF; Mon, 01 Sep 2025 23:49:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI14-0000nw-7b for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:06 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI0y-0004ae-CY for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:05 -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 5822S1Fd022183 for ; Tue, 2 Sep 2025 03:48:56 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 48upnp6htb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:48:55 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-32993d924ddso2352773a91.2 for ; Mon, 01 Sep 2025 20:48: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 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.48.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:48: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= O1UzNssB7s6NicRpvV0+mHUnNkmSr8ufwagEpGbRzd4=; b=p2I5qRmm0Tts3dtF Ly9m3ZCncSV6H7hpa+JVmETwFEp6/yOR4f5fkH6n73LNbfg9HU0nIgEq3FBndQw7 j1us/EeVp4VxV6K7QF3ra7f/zW5VLu7+ovgsLrOYSHk+itcHWD8yNGYuv57qTB6l 8BSAeDMA/bxvNLgMKVPXUzFNSt2gsFt11DKv2it7pAp038OJm8rMFSSHV8QMO60P c105ST1+utB3pMwhKuG5bzA0ku5IW/vt9kGL8WbvGG2QaQ7kdAWdYCFX4zblwGA8 qtHcOcxC0S65Y/k3sFmIoQ5brhdEcIhSXQ4JC89ozxSUHtmu0b8qNVUJWU5xq4KY 0Mx8NQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784934; x=1757389734; 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=O1UzNssB7s6NicRpvV0+mHUnNkmSr8ufwagEpGbRzd4=; b=s7y37KY4dFd4QlahRpHuhuWEiS622nYbwDMGwykf8r/A+U8Z2l8B4uQLm9UIrLQbqg BmU/7bMWOCIsXM+FH1DFG2xGkxFBgOEr2iMfM9fSoPHPD4n5XyN/KyT4AVkMOKdyzJ+4 2/QfWhH/ZLJ81GVolbQSmY8PPEs9oAXcwcnomsUyxqfs0YpSoHdDnFwUt3cfEi5nEmG+ RvsZXzf+rfWqCbIS0YdyMmlRAk55OR+oJ1tv38Az4tOIxTY1eJT0Ramf0MZTYDWf1zsT 3gqw+UnCh3rRzopKi0h17a67GlC9GNjgWu2oyxr1SlTPf1v8C/vFNIKOt4+R03+yFX/D jgeA== X-Gm-Message-State: AOJu0Yyx6Syavp6GePhgI+gBrQqF8yltw0F9xj2xIC+vZrbiALoGzpc5 iFvp7+0gv5xPflpbl9FCKMWg0CtRTUcXeD9mXLW/LTgyxpuoG/nQ68SJGoh2/z3p1zQgcBQ9p2Q DBeR0adUcvZFXlYWb1ge6D1riD5Y20eph1qGocuq/ojIEFWDFNHzYGlNOrhqKmNi29Y3C X-Gm-Gg: ASbGncv+xBONwmBqyu/jFIkpYduksLJ2ji7jqicFMiMDEZ0R4XoVdPRZGdvZgzvoba2 M700tmemM/rC5JRarUojIVsYfUokyo8Yt419j0EfGyb8fPpPhUTond9F97J1wIY2naGPi1nUfS1 nyOadelfZQOncpclG66iWNxCZ3WHr1fZqTdLiNoNmwKY60Cs717U805u/crywa706jm22pVBW5f g2FOdZ/hqZykZDGzc8RCcnSMq2DKtpp98uvzIXItstQK1CNLqVZaMZyboIcyVmxAqSpMMTARjF6 HvgPJbOEtmXii1uU9Seru5QNp0wB4iNq2R5NsL3CDNg5Gd1D5c5oTQEfqwKEIk8GzCfoG2AdLY0 g3qdGx+MpA4m5 X-Received: by 2002:a17:90b:3e8b:b0:329:d50e:2f10 with SMTP id 98e67ed59e1d1-329d51d739emr2510441a91.22.1756784934268; Mon, 01 Sep 2025 20:48:54 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEZc4gmHzBH5eRJe0dCYApeyLBYkIMx99Kr1745pCi4mfNF3cKiID/FUt46KOkjk1XteJpLEA== X-Received: by 2002:a17:90b:3e8b:b0:329:d50e:2f10 with SMTP id 98e67ed59e1d1-329d51d739emr2510399a91.22.1756784933608; Mon, 01 Sep 2025 20:48: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 01/39] target/hexagon: Implement ciad helper Date: Mon, 1 Sep 2025 20:48:09 -0700 Message-Id: <20250902034847.1948010-2-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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: -HNG2sakdxj8ownBxasfruFr0iiWipU9 X-Authority-Analysis: v=2.4 cv=Jt/xrN4C c=1 sm=1 tr=0 ts=68b66927 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=IbxGixEGliZFhfbZcJgA:9 a=QEXdDO2ut3YA:10 a=iS9zxrgQBfv6-_F4QbHw:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: -HNG2sakdxj8ownBxasfruFr0iiWipU9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAwMSBTYWx0ZWRfXxUBZG9ZAs/Ga +kKghNjkTm9Q3o7VZr3Fhv0PJzdoeaunPiwPhDksuDQxKq8rgTNERbL6eFs9cYv9KJ8RJ9T5ilO OhZ8sZXt+v3148bTGWtb8eZL9oardmMFe3OyhPzMZTwfZLufQMX1Lav7keiojEb5GurXEaCBiJk 7eRew65Kar3PYPTMCDi3fDr16xR3bRVC4R7IK6QD/PtEl+hNtG88+iu9Z39lwJsU/1e7zl3A1jT kCuSP58PiESzb4tUs8LNotEyFCPieYq+kcGTANxwvM4XnnJcgtJwF3WF2QQpVc7YEPFTVnimjdh hs4BDoqt03YihYz2Uyy4XRb8iz6DLaYgzovoEhvTn0uaovUO+EEwy6b9a1gPDF6sv7c70qSCqOE fQ6aES6b 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: 1756784996629116600 From: Brian Cain ciad is the clear interrupt auto disable instruction. Signed-off-by: Brian Cain --- target/hexagon/op_helper.c | 45 +++++++++++++++++++++++++++++++++----- 1 file changed, 39 insertions(+), 6 deletions(-) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index a03fd078be..c38107d5a8 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -34,6 +34,12 @@ #include "op_helper.h" #include "cpu_helper.h" #include "translate.h" +#ifndef CONFIG_USER_ONLY +#include "hw/hexagon/hexagon_globalreg.h" +#include "hex_mmu.h" +#include "hw/intc/l2vic.h" +#include "hex_interrupts.h" +#endif =20 #define SF_BIAS 127 #define SF_MANTBITS 23 @@ -1338,9 +1344,41 @@ void HELPER(vwhist128qm)(CPUHexagonState *env, int32= _t uiV) } =20 #ifndef CONFIG_USER_ONLY +static void hexagon_set_vid(CPUHexagonState *env, uint32_t offset, uint32_= t val) +{ + g_assert((offset =3D=3D L2VIC_VID_0) || (offset =3D=3D L2VIC_VID_1)); + CPUState *cs =3D env_cpu(env); + HexagonCPU *cpu =3D HEXAGON_CPU(cs); + const hwaddr pend_mem =3D cpu->l2vic_base_addr + offset; + cpu_physical_memory_write(pend_mem, &val, sizeof(val)); +} + +static void hexagon_clear_last_irq(CPUHexagonState *env, uint32_t offset) +{ + hexagon_set_vid(env, offset, L2VIC_CIAD_INSTRUCTION); +} + +/* + * ciad - clear interrupt auto disable + * - When taking an interrupt the hardware will set ipend.iad to + * prevent another thread from servicing the interrupt. At the complet= ion + * of service software uses ciad to clear the bit indicating the + * interrupt can be accepted again. + * - ciad also handshakes with the l2vic allowing a new vid on the vector + * port. + */ void HELPER(ciad)(CPUHexagonState *env, uint32_t mask) { - g_assert_not_reached(); + uint32_t ipendad; + uint32_t iad; + + BQL_LOCK_GUARD(); + ipendad =3D READ_SREG(HEX_SREG_IPENDAD); + iad =3D fGET_FIELD(ipendad, IPENDAD_IAD); + fSET_FIELD(ipendad, IPENDAD_IAD, iad & ~(mask)); + arch_set_system_reg(env, HEX_SREG_IPENDAD, ipendad); + hexagon_clear_last_irq(env, L2VIC_VID_0); + hex_interrupt_update(env); } =20 void HELPER(siad)(CPUHexagonState *env, uint32_t mask) @@ -1416,11 +1454,6 @@ static void modify_syscfg(CPUHexagonState *env, uint= 32_t val) g_assert_not_reached(); } =20 -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(); --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=1756786233; cv=none; d=zohomail.com; s=zohoarc; b=QnNDCjA8e54oNXjrZduyOM0SnilOqDZIL8GrKMvF3cyi1C6+iINo1z+zZjB9UVnH/PKVO0sEegS6YXy+/B5GU4TmaxReFuW5+103L5z/HoqR86zjLrB2xNCCDoCepgBY+ow8/o8TzRi6Jt7OK+yiD0mRZRrQ5DaK0hYAlqr4Hgk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756786233; 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=oP3PwixBRp5+Ncf9k6j0WiZ9Mu+hYW7a6RQHe+/NuDE=; b=ESEWjTe0dhVKV33lYTpLae3+SoLqVXqMhgbj02acJLinRJTR91LWp2atuZ6ry3LLjSlnBP9lLdsrOQR7Cb6PEb4MU5LR0LSmDv8rutmsBMZnm2S24l3rJ4jmnZquVDOeccI/imDabJW2iOTImmqqzvsxUVhu9Y9m5OX7yExzHto= 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 1756786233672887.1319765203029; Mon, 1 Sep 2025 21:10:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI17-0000uu-0O; Mon, 01 Sep 2025 23:49:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI14-0000ng-5B for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:06 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI10-0004ak-G5 for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:05 -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 5822SAR5015364 for ; Tue, 2 Sep 2025 03:48:56 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 48urvyxdhs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:48:56 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-329745d6b89so4037857a91.1 for ; Mon, 01 Sep 2025 20:48: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 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.48.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:48: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= oP3PwixBRp5+Ncf9k6j0WiZ9Mu+hYW7a6RQHe+/NuDE=; b=o4Ep1ZDQkcsAWHOs bdhCHtbiGCERAGZMszlv5mtK4tqCz+v7F0HHCEJCRUaxctLujmES0zBCZp6BLGg3 C6xaUTnOKRjpfA9JS+eUqN4Lzz8/bwreNgq7Cz/mBpkx4QbegvQOedy/WOALXYsk e1Pc0WaSxjhxtxkar1h0invtCmErzqcQPVRAhrPXhdC2igFpDaOuewI/G8bnGTPV JEPEL0FvoT2CdX2VsHj2Qk42R7G+o2D3WhMSxzyTX27DnCgH45MeMBQnovLr/4s2 D+zjQ4rQSvkOX8BI06dCue38WCPugKXPTz+FUD5Hk2/QHH193rU8idQt0TVm1qx9 lrbKQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784935; x=1757389735; 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=oP3PwixBRp5+Ncf9k6j0WiZ9Mu+hYW7a6RQHe+/NuDE=; b=Do75TmPc1oPbKG/TLTX9+JVXN7D5TYbqVihdohuWrp9LcIqPO7qyggIAHdFwxlAD0k HFJUR03Cb5KJJXqfyLyTXuttQ1LNILO4wL/apDcl2FlhgWeaQFjXw/G2Wf2XN4H8jyvh pIEkTEb0o/Y7D15Gq4BCggmJ6EMjFoPqF6YJei9B2RRTnEkj3Zvt8ifkksZ2OFzz48b9 uajyTDtf/+MvlCMg7vdEZPP1lZquyUOuaXoIdALbEA69pHWdb9NSaTHp2p/zY6z/339q U3HbNQGz+8Jk0IhYHSWjjZ9XGYGTLhAj7BF49IhoPqywz3RCu17/TyEKwKozfU+sY2lq Zrmw== X-Gm-Message-State: AOJu0YwTbk/bPmOyALb69zWrO/MC/24mOsTlAb7MFe7Bmh4badUpiE4K nFaJ107gTt24aQbg9DvxGUQZCfu48H3aa8L/shguGGHhO9+y2YPQrsWK0Fh8D+oj8/7Uzlnie2A AB9QdvtzumN3vgD1HutXaAuiHDZGRp8rXdDSUPlpAvlcT0x0+/tLOkKtxHkMMrwjnvibl X-Gm-Gg: ASbGncsqB/rUQhuMH1Cor6K9wXnsDnxpMnLuX+MvPEBA7Ebmc9I+K9TjLDVY46iBoem Rt62YcyLcc+jW0k8dGQNX+kKr83fPPp8tT9nrY3/EU8bD2H3unTelLXk7STmOVnpcmQrNTwRIk/ 5wQj018LpvPizE71bXMqj4D0LGNi+Wted43dEyNWcDV5PlzS1UAtzq+Z+ooo+D3gJC59TnmppV7 ld199VYJ3zPOYPN15Km9nSg/qyQJIJimhbNbDLXPl10iI6KtzfubVxsEmuUmb5L097/emRaP9c0 YorIeFKob6N/nIpIm1al/SfWMX4Pf0CGftEO5qcTpU4ye3x3vvO6iV2MV+3H6qSRpWBSkx6/Q61 nJ1iFznVTWHk+ X-Received: by 2002:a17:90b:4c42:b0:329:e3a8:add6 with SMTP id 98e67ed59e1d1-329e3a8b022mr913391a91.2.1756784935222; Mon, 01 Sep 2025 20:48:55 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHYfaEUg6Qw7a9evmFFjevomQ4OTIVQXnOshylKFVXiJIQRFmSZc1vz9Wo81EaiMj5zmX74cQ== X-Received: by 2002:a17:90b:4c42:b0:329:e3a8:add6 with SMTP id 98e67ed59e1d1-329e3a8b022mr913364a91.2.1756784934693; Mon, 01 Sep 2025 20:48: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 02/39] target/hexagon: Implement {c,}swi helpers Date: Mon, 1 Sep 2025 20:48:10 -0700 Message-Id: <20250902034847.1948010-3-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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: Xi6-vduLACwTcs3MmeWskwWCh053AV-3 X-Proofpoint-ORIG-GUID: Xi6-vduLACwTcs3MmeWskwWCh053AV-3 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAyNyBTYWx0ZWRfX2KzugGgeO2ha 1wEPDCuezEYOjijtWVPHzbzh5w5uwfT3Mm+YJxQTAYwIZoprWypu4G5/4rF8ElCekieiaJhtgR5 Ip5ye2YQbRyVf+Tt3VQqjBp8TPgaakIDFd4LMJswWwKA7XtrWsVZaxYZBeDexz8PfwOE+kmQvq2 76BRGcuGpkS6mIKHZkfuctcT0r3VHivybyyKbXhl7xKNfJZRLWEsvfuqkNX9DXsU8FuQ4M5RwAy +CzlT3PFBE27+2CnRrHbQklob2EMsbjdcVII+x/jS+7VXQgLgfDdKTV82M0UMDwQFXbrsl9ggCW NhGgTIoFbmjWzjFwlc/sNWvvxJzdMaSoBu78k0ONX4X8t/QYVQbBaEbM4JaWoi7WVFWZiHe9AMn MdLe2k/U X-Authority-Analysis: v=2.4 cv=NrDRc9dJ c=1 sm=1 tr=0 ts=68b66928 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=KN34Fzpn9o_w8YhA2GgA: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 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: 1756786234335116600 From: Brian Cain {c,}swi are the "software interrupt"/"Cancel pending interrupts" instructio= ns. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/op_helper.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index c38107d5a8..875935b903 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -23,6 +23,7 @@ #include "exec/helper-proto.h" #include "fpu/softfloat.h" #include "cpu.h" +#include "exec/cpu-interrupt.h" #include "internal.h" #include "macros.h" #include "sys_macros.h" @@ -1388,12 +1389,14 @@ void HELPER(siad)(CPUHexagonState *env, uint32_t ma= sk) =20 void HELPER(swi)(CPUHexagonState *env, uint32_t mask) { - g_assert_not_reached(); + BQL_LOCK_GUARD(); + hex_raise_interrupts(env, mask, CPU_INTERRUPT_SWI); } =20 void HELPER(cswi)(CPUHexagonState *env, uint32_t mask) { - g_assert_not_reached(); + BQL_LOCK_GUARD(); + hex_clear_interrupts(env, mask, CPU_INTERRUPT_SWI); } =20 void HELPER(iassignw)(CPUHexagonState *env, uint32_t src) --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=1756786138; cv=none; d=zohomail.com; s=zohoarc; b=U/NHHfH/W05R0bBYEXkNJiN0I5eg2Ih0CNNI/uBi8Yh/TlbgzGjW57IJpSeP13jXa+FVrNsvHICUJ8hZAar0+FKQ/+f7ziPmQ8cjLGW5UhWElmbIb4SifAVvnNsgfLYpy6sGjMcHQBdNeBBjhnfT7TrCiqB/PWEX3agUIduJ4iM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756786138; 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=J2HZ4hnhlGo7Etuz7B5v9s/d3XbnS//HppLLunMqdIU=; b=JUWvS+bCBm5+W9ToR0fBDQV94JoJPKYUWhKLsGv33ZvCT0Jb1nIBOzAgwcHAlA6JjyXBP5Tqbsf/dCOI0XB6YRtm0KFJ7nQC/ONhKScbXgBP7yZjZUOgQI96u0KDLqxrQlztaU+LUourGn2f/0R/0v1SF8hR98LVk4c8LJiNA8A= 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 1756786138470543.5009651316406; Mon, 1 Sep 2025 21:08:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI17-0000xZ-LW; Mon, 01 Sep 2025 23:49:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI14-0000o1-8A for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:06 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI0y-0004al-8D for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:05 -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 5822S2eE013176 for ; Tue, 2 Sep 2025 03:48:57 GMT Received: from mail-pf1-f199.google.com (mail-pf1-f199.google.com [209.85.210.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48ut2fea49-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:48:57 +0000 (GMT) Received: by mail-pf1-f199.google.com with SMTP id d2e1a72fcca58-77243618babso2333998b3a.0 for ; Mon, 01 Sep 2025 20:48: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 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.48.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:48: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= J2HZ4hnhlGo7Etuz7B5v9s/d3XbnS//HppLLunMqdIU=; b=i71ImfDE6Qrd/JuU DkUs1/F6Cg3Z+K+M7AsW9BX/bQAhlsZ9qQT992/F6e0KHI7QTLhIZonfFdAMVG51 yOzlKe08eFbqq52BcVwnG8PiJtJLnvTpogluk4Pd9p4mMB6ICeaHHr5B5um7p1v4 N3O5yVt+KiX6fWLQHuPTz1/GIVx+llm1Zob7EWNbb4DIR5qdZ7JNEpTz+Z4bMNRI JGn3+0zCqUtjkU/tFIgIf9ojKmCMvPmzGiwt+NMW4BabxgrHCtOnp8udpA2JOCWq wPqcNHsEEHV3Bnyc97acK+CxxvcsfQp4T5vVN6bmhPdTuD2Y2cwQWHKY9PG+4ehy N4zwrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784936; x=1757389736; 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=J2HZ4hnhlGo7Etuz7B5v9s/d3XbnS//HppLLunMqdIU=; b=olKM7Kqbm2k54rF/DqrcgCKsZVTZJmeTx3EDZqwgc2meoiNfYzKE9PFP8ktZ0VW4IS ZmG0k986ZEHb/5q9E34CIgXIFPbqWheyzymD09tLbfoBjPmSuQ71qhkZU19+Dfq7Q5rE ZtqjWy+M9fO2B+Fkl9o611QgaNSpbOM3OWf71HatO2YxM34elHC1ZUyqDLSHxxzHYfAK fzCEGU1kb0HRrybhIj/70/0vWAOZJU/t0Y3UBwLfBhxSrEZeQRvvI/UZ5D1SGN4Bn2Sl 8d9Yml1t7C7oVyPmOZUBj3rjaSCKgg1PtsIQ62dQWnEJgvsiiXnQR98HGnOMgDvEAVB9 UBNA== X-Gm-Message-State: AOJu0YyKI211cVAviZ1PV3S7EkzuwukeY/2U6JQj4TShbvdKLo/De2vv z+EAOa+vWZJiNazbVB/9O9b+RrH1HRkvKweecU5KW/hN+H2md7uF3lzS7Wl0bRf9Ugqrvhl/QqV rozjyf/zLB9oF3YcJwzzAK1q5SL2QpLSD0tawaiKuFb6VXE05XhruOrH99CaIxjWpjSVl X-Gm-Gg: ASbGncuqoqvhTz0QTZUSBv9oeZKSpHueF0vHpwP+NZObbR6Z1Z8R+Lh9R7MrCyiWYQ/ u7T1/uvTuD+w2L9xaYffBsWlsxnRIxCUrGrbZ9g9SP1FLxsnOZKv/lOaAjnP9dytLl76TaITjWP FNfToriK2eaFhXZi5fiLjA9lMRxlUnd1jS0gPDr1pnk+4ybblUE9ZBLoAO0ljE7rErue91YJpff CK5MZq+Ao9mOXkhg5yXJ+AJswaJljfo6XQvgLIPs2uecerTHw+fzv6QTGhndxxDQ7ZuOIxfPNkh tXjOAZ3uk1Sml8Sm8fzaJgteniNYx9ew6R9dl0Pc32AfORBwOnHKQnpq7DrdEzol13hR1OEa7B4 g9nqGGLlqvQe4 X-Received: by 2002:a05:6a21:6d8a:b0:243:9b05:aca7 with SMTP id adf61e73a8af0-243d6e00a9emr13338963637.19.1756784936409; Mon, 01 Sep 2025 20:48:56 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGOT6lpvo9wxqNjhcjnEK2slmhggxUZGgAm8C/8dgmBaZUfLkvpv9B3qY0oosux6Bqu4p0Sig== X-Received: by 2002:a05:6a21:6d8a:b0:243:9b05:aca7 with SMTP id adf61e73a8af0-243d6e00a9emr13338941637.19.1756784935982; Mon, 01 Sep 2025 20:48:55 -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/39] target/hexagon: Implement iassign{r,w} helpers Date: Mon, 1 Sep 2025 20:48:11 -0700 Message-Id: <20250902034847.1948010-4-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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: AW1haW4tMjUwODMwMDAzOCBTYWx0ZWRfX7cmjKHmvicla yrBBmxrhGdNh7zFXNYKpHOCq+jhyxh7ApDcKPSLzDnx2bEkJCPzv97uXMU1blt707vyaleZ2BSZ E855pSYSdiwmE9tyhGCqUdrWL4I0zVQwe90b9toXl5z1Uo/sUeVwFb4tO/7CqGvegCfyhNscEOB lbX8jvQPpyUA+A1NogoD+Two33NpIt7SYfuRB7XvbndcSfaHySsoY/LczC15buZQWz5ozlKPKL5 D24PT72ulJV+PQy5hMjJ6sbgUmxJKGoyI0hgrBldseo1dx7KXOZuKV343xVaR2UBqIZY8EqTiHL KFVAH/Y/F/v+7Xi9NP7pTKGqrczWnh/iYgSI6gB8wuAD+mncoKoHzSl1fmLENRxKBNHMVswYmUl +fD6biR5 X-Proofpoint-ORIG-GUID: h_sPGAe9qv3Ok8rcPgpaEEOWn1oBtpf9 X-Proofpoint-GUID: h_sPGAe9qv3Ok8rcPgpaEEOWn1oBtpf9 X-Authority-Analysis: v=2.4 cv=U7iSDfru c=1 sm=1 tr=0 ts=68b66929 cx=c_pps a=WW5sKcV1LcKqjgzy2JUPuA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=bRQZT2Nycl1zLt5I3jsA:9 a=QEXdDO2ut3YA:10 a=OpyuDcXvxspvyRM73sMx: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: 1756786140379124100 From: Brian Cain iassign{r,w} are the "Interrupt to thread assignment {read,write}" instructions. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/op_helper.c | 48 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 875935b903..74f8c1bf4f 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1401,12 +1401,56 @@ void HELPER(cswi)(CPUHexagonState *env, uint32_t ma= sk) =20 void HELPER(iassignw)(CPUHexagonState *env, uint32_t src) { - g_assert_not_reached(); + uint32_t modectl; + uint32_t thread_enabled_mask; + CPUState *cpu; + + BQL_LOCK_GUARD(); + modectl =3D arch_get_system_reg(env, HEX_SREG_MODECTL); + thread_enabled_mask =3D GET_FIELD(MODECTL_E, modectl); + + CPU_FOREACH(cpu) { + CPUHexagonState *thread_env =3D &(HEXAGON_CPU(cpu)->env); + uint32_t thread_id_mask =3D 0x1 << thread_env->threadId; + if (thread_enabled_mask & thread_id_mask) { + uint32_t imask =3D arch_get_system_reg(thread_env, HEX_SREG_IM= ASK); + uint32_t intbitpos =3D (src >> 16) & 0xF; + uint32_t val =3D (src >> thread_env->threadId) & 0x1; + imask =3D deposit32(imask, intbitpos, 1, val); + arch_set_system_reg(thread_env, HEX_SREG_IMASK, imask); + + qemu_log_mask(CPU_LOG_INT, "%s: thread " TARGET_FMT_ld + ", new imask 0x%" PRIx32 "\n", __func__, + thread_env->threadId, imask); + } + } + hex_interrupt_update(env); } =20 uint32_t HELPER(iassignr)(CPUHexagonState *env, uint32_t src) { - g_assert_not_reached(); + uint32_t modectl; + uint32_t thread_enabled_mask; + uint32_t intbitpos; + uint32_t dest_reg; + CPUState *cpu; + + BQL_LOCK_GUARD(); + modectl =3D arch_get_system_reg(env, HEX_SREG_MODECTL); + thread_enabled_mask =3D GET_FIELD(MODECTL_E, modectl); + /* src fields are in same position as modectl, but mean different thin= gs */ + intbitpos =3D GET_FIELD(MODECTL_W, src); + dest_reg =3D 0; + CPU_FOREACH(cpu) { + CPUHexagonState *thread_env =3D &(HEXAGON_CPU(cpu)->env); + uint32_t thread_id_mask =3D 0x1 << thread_env->threadId; + if (thread_enabled_mask & thread_id_mask) { + uint32_t imask =3D arch_get_system_reg(thread_env, HEX_SREG_IM= ASK); + dest_reg |=3D ((imask >> intbitpos) & 0x1) << thread_env->thre= adId; + } + } + + return dest_reg; } =20 void HELPER(start)(CPUHexagonState *env, uint32_t imask) --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=1756786518; cv=none; d=zohomail.com; s=zohoarc; b=gTC7eF+apavwAOw2pZ9/f0MYt/j09527pfFhq8/USyMV159kIUhwp6YQiy7orEhE91cex0aFRqa3t+a/26/oKdlBD2NOW92sbAen1WgSgmEbNAlUqWg+IOm1VKDA8oPG6rbGAbaiz4JAotcYloWxMp7rVjw44n8cIzbOnkAUJ+4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756786518; 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=RE+a8Ex8t/Lh3RzJuNpMC5woucbCQtUqXDFBADU31fU=; b=hhc33E2R+Ys+Pme78TtdRFKQTod6NSuJq+rKSUBLVXVg9+yTI9ob5jV/7dfyy0YaJ9uupL0SpnPEUf5PO61CiRFfLE0ntjVHr1hXSvj77xurB13H8+yLuDyWPgUqyA/vZ3Zxl3kgrfcRHibShDngeySsfXYo9c5rRM+gAU7rnAE= 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 1756786518564327.6078948865703; Mon, 1 Sep 2025 21:15:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI17-0000xT-FD; Mon, 01 Sep 2025 23:49:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI14-0000pf-FF for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:06 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI0z-0004as-WA for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:06 -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 5822T6Yu032344 for ; Tue, 2 Sep 2025 03:48:59 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 48ura8pc1w-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:48:59 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-3276575ae5bso4963642a91.2 for ; Mon, 01 Sep 2025 20:48:59 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.48.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:48: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= RE+a8Ex8t/Lh3RzJuNpMC5woucbCQtUqXDFBADU31fU=; b=YBsX6f/Ka8i7IC9T /Y/Iwvzw54L+iAE/zJyTCLNSF4xSmS92QLIgo7Q4f3iFRMWHyNiniG3WygBHcOHn 7BaVGVIKjt8opDL3CghZj3lSdo5RHzx2ri1yOV1QTTl1LobIBS48Cidl6MAjm0Qc mIJ1oS+LISYTMZQQdn2IlxZ66dtl9qwBj3WiBl63wy1clp7YD7w243JYfpQWmeUE eZnrXuVEiCDZuxuW3lJKdswFr4AYqg0GWwSSW2V8GueR2fR+DF7MbrcMd1Ox4XzQ GWLRfdBMvm/bpbedPnXEC/6OZhn/IJUkMpnJZFll5N2WgK6onoL5/UJ66PmNBaQm fK2sJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784938; x=1757389738; 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=RE+a8Ex8t/Lh3RzJuNpMC5woucbCQtUqXDFBADU31fU=; b=Vv888zr58aVe/FXVk+rh17jZJAdPTAmLTa8ruibAVuA+t9Ie4vpFtp72TMAmIte8eZ Wwt2j7LHw3Su8ktg1ghOnEmaWopqhiU8lxrf6PtU5Mfe9JRi40AaxzLfr/sRP9ArjqIA AP2znaKEcstdnPkiaR2s/sNFc+F/GQyr7Awawkl5M9pg55gupKx4+YJmejJwOPDmjNSw 2zC5fdMAW8UWAkw2UbzaKb5Pa2vrwglUmv6izaimBTM3JBefVusdR75krgV/1Hm9htbc gGYV3VTBdwnYsvnCp+q9Ed9qy6w0R5LNKIKa348Locel4BRnfgcl7UtvfdpDsHN9Jjq6 YJQA== X-Gm-Message-State: AOJu0YyF24tG5hs2Fd7WbtiO7K/Q7CkS7PRmrTXeDdbp0Twjo2UbqTJS Xww+qSziUUAgV1Rh5+shSlHtd4hg700YeTUNCwyWGzfGwG6tf63bcLS8nf0BUE+28pJXk/R9cnG Y3PaOQL4PKLPrr5moKIbPCXPX1lCt6HAsKTC0kl0fZ0LDL2ZWTz5VBpE/2yrY4aD7toDh X-Gm-Gg: ASbGnctmV3BuwK7r85yJ/biBq41GtPADHd47pZc/hkYUVQch8QuxE5hvXFcdC1g6nLU HYHb/K+J75wGr7vz0zcl6HhPbexjztffsgDTmFHjw7Ts8J0hopMNorcYrkiAjR8fO19QrN1qszY NDLOLv0I4Jt7IoVgtkbcq2e8BlA8zSIc+SYDroWewzFw9EpQ7ZaiC3IgBWqYj/M3j3XOBmkjps3 2XaWYEeMzvankZcy+dTB9Cv23cTZVrz2sfx4mcguF5ZNQCgh4TrqWQQCIHltU0CNCjpp1dAA3t8 hJHe5z+fsj0/750iDWcjMO3S599Gzj0WeUOs05/ZUyDf9hsmOQSMbMr3rFkO9oewZdWxxbmPNOw Fsmk6jm0GZPNo X-Received: by 2002:a17:90b:55c8:b0:327:41c8:8840 with SMTP id 98e67ed59e1d1-32815709d7bmr13450861a91.37.1756784937645; Mon, 01 Sep 2025 20:48:57 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGozArfzNMwO4brugBZhRnBIByQeVx+MqjVXgYfZjY9J+pqq0AQ8Oxlg8x58v2vLrX71jw4Pg== X-Received: by 2002:a17:90b:55c8:b0:327:41c8:8840 with SMTP id 98e67ed59e1d1-32815709d7bmr13450822a91.37.1756784937125; Mon, 01 Sep 2025 20:48: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 04/39] target/hexagon: Implement start/stop helpers, soft reset Date: Mon, 1 Sep 2025 20:48:12 -0700 Message-Id: <20250902034847.1948010-5-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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: NIVJflrK2MWvcDk1F3-232VTvdyeUzfv X-Proofpoint-GUID: NIVJflrK2MWvcDk1F3-232VTvdyeUzfv X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAyMCBTYWx0ZWRfX2YtT69KZda1P 18uRvEDAUYLV2FhghNUFn6GhodlRaDNPrjv9MXQWy0K+h540p60FvuU26r6g1T8yapMclBlSTnF eOKNynSjHD4MxMBSJuIyQubtK3lyfklxlwWS/I+1ZCSQ6Zwr4mGTHOLGUauq0Zf5jDYdnR3WA37 uK7u7vb/0h8TQwh7pimDxTWhbtrcYc8hnzSxR6UlGWPgY4iOOhkiZvhy1vu8sndVWHwll9O+CAo mvNT9w2KnMetJMXbbiDbLoXGMgOgtlrG2VJoriGIMtmJ73Hg3reXaubu+9b4JtmJ7Bxzp/+/g7j OmczaYKr13mj9SF2Fn6jZiB46rGZwA7l15ywK+GmMD2r1f93nivQNITqz7+gpJ94096O/6fZlPG gy33jqpd X-Authority-Analysis: v=2.4 cv=VNndn8PX c=1 sm=1 tr=0 ts=68b6692b cx=c_pps a=0uOsjrqzRL749jD1oC5vDA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=T1VtIrzwaUtDMXHdWn0A: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 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: 1756786519929116600 From: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 1 + target/hexagon/cpu_helper.h | 3 ++ target/hexagon/cpu.c | 18 ++++++- target/hexagon/cpu_helper.c | 94 +++++++++++++++++++++++++++++++++++++ target/hexagon/op_helper.c | 4 +- 5 files changed, 117 insertions(+), 3 deletions(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index d369e104ae..a0448eba44 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -209,6 +209,7 @@ G_NORETURN void hexagon_raise_exception_err(CPUHexagonS= tate *env, 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); +void hexagon_cpu_soft_reset(CPUHexagonState *env); #endif =20 typedef HexagonCPU ArchCPU; diff --git a/target/hexagon/cpu_helper.h b/target/hexagon/cpu_helper.h index 6f0c6697ad..95a0cc0788 100644 --- a/target/hexagon/cpu_helper.h +++ b/target/hexagon/cpu_helper.h @@ -17,6 +17,9 @@ void hexagon_set_sys_pcycle_count_high(CPUHexagonState *e= nv, 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); +void hexagon_ssr_set_cause(CPUHexagonState *env, uint32_t cause); +void hexagon_start_threads(CPUHexagonState *env, uint32_t mask); +void hexagon_stop_thread(CPUHexagonState *env); =20 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 c128f47ad3..e35ac92402 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -32,6 +32,7 @@ #ifndef CONFIG_USER_ONLY #include "sys_macros.h" #include "accel/tcg/cpu-ldst.h" +#include "qemu/main-loop.h" #endif =20 static void hexagon_v66_cpu_init(Object *obj) { } @@ -312,9 +313,23 @@ static void mmu_reset(CPUHexagonState *env) memset(env->hex_tlb, 0, sizeof(*env->hex_tlb)); } } + +void hexagon_cpu_soft_reset(CPUHexagonState *env) +{ + BQL_LOCK_GUARD(); + arch_set_system_reg(env, HEX_SREG_SSR, 0); + hexagon_ssr_set_cause(env, HEX_CAUSE_RESET); + + HexagonCPU *cpu =3D env_archcpu(env); + if (cpu->globalregs) { + target_ulong evb =3D arch_get_system_reg(env, HEX_SREG_EVB); + arch_set_thread_reg(env, HEX_REG_PC, evb); + } else { + arch_set_thread_reg(env, HEX_REG_PC, cpu->boot_addr); + } +} #endif =20 - static void hexagon_cpu_reset_hold(Object *obj, ResetType type) { CPUState *cs =3D CPU(obj); @@ -337,6 +352,7 @@ static void hexagon_cpu_reset_hold(Object *obj, ResetTy= pe type) =20 mmu_reset(env); arch_set_system_reg(env, HEX_SREG_HTID, cs->cpu_index); + hexagon_cpu_soft_reset(env); 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; diff --git a/target/hexagon/cpu_helper.c b/target/hexagon/cpu_helper.c index 00f47e5a07..74ce59adf4 100644 --- a/target/hexagon/cpu_helper.c +++ b/target/hexagon/cpu_helper.c @@ -89,8 +89,102 @@ void clear_wait_mode(CPUHexagonState *env) } } =20 +void hexagon_ssr_set_cause(CPUHexagonState *env, uint32_t cause) +{ + g_assert(bql_locked()); + + const uint32_t old =3D arch_get_system_reg(env, HEX_SREG_SSR); + SET_SYSTEM_FIELD(env, HEX_SREG_SSR, SSR_EX, 1); + SET_SYSTEM_FIELD(env, HEX_SREG_SSR, SSR_CAUSE, cause); + const uint32_t new =3D arch_get_system_reg(env, HEX_SREG_SSR); + + hexagon_modify_ssr(env, new, old); +} + + int get_exe_mode(CPUHexagonState *env) { g_assert_not_reached(); } + +static void set_enable_mask(CPUHexagonState *env) +{ + g_assert(bql_locked()); + + const uint32_t modectl =3D arch_get_system_reg(env, HEX_SREG_MODECTL); + uint32_t thread_enabled_mask =3D GET_FIELD(MODECTL_E, modectl); + thread_enabled_mask |=3D 0x1 << env->threadId; + SET_SYSTEM_FIELD(env, HEX_SREG_MODECTL, MODECTL_E, thread_enabled_mask= ); +} + +static uint32_t clear_enable_mask(CPUHexagonState *env) +{ + g_assert(bql_locked()); + + const uint32_t modectl =3D arch_get_system_reg(env, HEX_SREG_MODECTL); + uint32_t thread_enabled_mask =3D GET_FIELD(MODECTL_E, modectl); + thread_enabled_mask &=3D ~(0x1 << env->threadId); + SET_SYSTEM_FIELD(env, HEX_SREG_MODECTL, MODECTL_E, thread_enabled_mask= ); + return thread_enabled_mask; +} +static void do_start_thread(CPUState *cs, run_on_cpu_data tbd) +{ + BQL_LOCK_GUARD(); + + CPUHexagonState *env =3D cpu_env(cs); + + hexagon_cpu_soft_reset(env); + + set_enable_mask(env); + + cs->halted =3D 0; + cs->exception_index =3D HEX_EVENT_NONE; + cpu_resume(cs); +} + +void hexagon_start_threads(CPUHexagonState *current_env, uint32_t mask) +{ + CPUState *cs; + CPU_FOREACH(cs) { + CPUHexagonState *env =3D cpu_env(cs); + if (!(mask & (0x1 << env->threadId))) { + continue; + } + + if (current_env->threadId !=3D env->threadId) { + async_safe_run_on_cpu(cs, do_start_thread, RUN_ON_CPU_NULL); + } + } +} + +/* + * When we have all threads stopped, the return + * value to the shell is register 2 from thread 0. + */ +static target_ulong get_thread0_r2(void) +{ + CPUState *cs; + CPU_FOREACH(cs) { + CPUHexagonState *thread =3D cpu_env(cs); + if (thread->threadId =3D=3D 0) { + return thread->gpr[2]; + } + } + g_assert_not_reached(); +} + +void hexagon_stop_thread(CPUHexagonState *env) + +{ + BQL_LOCK_GUARD(); + + uint32_t thread_enabled_mask =3D clear_enable_mask(env); + CPUState *cs =3D env_cpu(env); + cpu_interrupt(cs, CPU_INTERRUPT_HALT); + if (!thread_enabled_mask) { + /* All threads are stopped, exit */ + exit(get_thread0_r2()); + } +} + #endif diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 74f8c1bf4f..4b1fc23a15 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1455,12 +1455,12 @@ uint32_t HELPER(iassignr)(CPUHexagonState *env, uin= t32_t src) =20 void HELPER(start)(CPUHexagonState *env, uint32_t imask) { - g_assert_not_reached(); + hexagon_start_threads(env, imask); } =20 void HELPER(stop)(CPUHexagonState *env) { - g_assert_not_reached(); + hexagon_stop_thread(env); } =20 void HELPER(wait)(CPUHexagonState *env, target_ulong PC) --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=1756786525; cv=none; d=zohomail.com; s=zohoarc; b=aOKJoHM/TBScZOKPr37YtbzQV0ULIKsfaURHxrQEoYa9if/+V5VWgAbUqBQ1P8OhQGvHKXxnqie8o5Cs+JF48dXKWS5XenNzO/aooc3vMLRXmECgHiKr22d9KORwPM+AEbJFxOLKlxGTOYlEYvl193Ac7/r5Q/uXgblXbKcVuEk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756786525; 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=2EuEdj8F79slxsvOjG7MIab7Mib7Zom4mw6cgvP1UA0=; b=AZrN0SR1YUUwvWBYDpm7H8kh0d/dWrseHRo+0Qvagvmq8iDIJj4cmnF3Q2oTCfmlmQFfS7ZTxh9iPde/cr3SRfB22ZIOGHtYs/n+61eQXQ8OKvHCebpvw60hmTYISW+mUCtESRAC41ZFvaLaUK/Xrn1SJN9N3Loq1aL1NHJB4d0= 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 1756786525640886.7196012757513; Mon, 1 Sep 2025 21:15:25 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI1A-0001By-9w; Mon, 01 Sep 2025 23:49:12 -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 1utI15-0000rl-F3 for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:07 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI11-0004aw-Bb for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:07 -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 5822S6ZU025232 for ; Tue, 2 Sep 2025 03:49:00 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 48uscuxe9p-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:49:00 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-325ce108e45so4742888a91.0 for ; Mon, 01 Sep 2025 20:49: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 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.48.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:48:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 2EuEdj8F79slxsvOjG7MIab7Mib7Zom4mw6cgvP1UA0=; b=DQBdGlE9KV9hkCBV OQkRBOp3oQ88noMbflcmR8KS7GO0ZyAg/qGmHLg6pxwkt4sCH8Kvix/gXBxNlWPC DF27DfgMqQjR/IBvMPgQmz49uE+Umoje6RzObf4AwOZi0CuJ++PBltZv5fEMxwKT RJI7SZmCR8IR3KENJWKFgiFd6ydLinefcAnZAiqvvZ/iwGhlXPkj8AgBFxTaGG5i XHuvUO3tMVdeccRWIrbKlINSY1pXd1e9MHmQpbsRdnzre3vZLsbQbk4kViwX9q/H 40IeX3IRUNW4Wprj8VBjpr+9UXK3VpwBoJdy0Izdc+ywBSZqhfm4LrV8O+0etjN5 qaoNaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784939; x=1757389739; 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=2EuEdj8F79slxsvOjG7MIab7Mib7Zom4mw6cgvP1UA0=; b=pTn2HLa3Lzlqyt6aPNLUAYe6gCf52TDba/LNFoseRii2peqQQspKIxekM2NJ+lX4UV KauoIYOlaj0noDfN/evH0IWaSVDHWhWwo7JPici/BZJX7a5dfgFu4RneSqw8KXSR/AeQ D8qskeDTaZJjIX9Q5++mMT6ccUk5VEG+ob5tiwW3nlBuQXYKP481MAtYofLzMyHzSE/Y /31CZolufyXzh8CIK3GRO/QNcrmM1DfjIZaQzfHjfiHcMQ6cv47cOczJKWrxw/9RMW/P vF17aa7qFO/aqPPGADgtiLOnR/kWfjZuFOQgatsGsBh74fr6AtBVHi78SSEEcb3mqd8G 0waQ== X-Gm-Message-State: AOJu0Yw68dRxmycEDIkGeWhPJKc1H2pOAvEf3Ntkvx+bKmBlBnyIzLQO 80A1Utgn7Yl8Afmpy0uPwPGCw7e4h7QPFTVpzQZE86Rq2JulOI6e2TBFEYtZAC+xwLqYXb0o02V jHDr7QwGm+HzomoiPchRoQY5RHkNEFTClYQfoxL9k+RKnDZNJ4Ro9wHtNLzMCSEr9fCtW X-Gm-Gg: ASbGncusF8OrT/MmMfSct/TWsSao7qs7kTqZ6nuZ5cWGUZI7VxUGPB1e0EiJVr8c0pu 3MJa3OTrYvgBAURjwtRsLMDrZBU2i3ojceYNO3hyGEcoyZ7JluN5Wwo6Oh3SbR6xu8Fhwt/tqoL XEobiQZKDumzHJoNYpQxHhXyqUlXTGEl5z2Mt3aJfdcDQofRH8k+/6b9XSUbVNFawh+74G+etfP dmqweFnZ1OF82H/+axGxXF6KG1Xl1mYHmf0qizcE8rxiNJq1s5YxbE06fW5D7I6+rUF6pVJPRvp FKMgALAVTVqhYEPQkEMR3QU5ehLERoITdHrjxhnb2jb9xCrSfhHsQ/mSwaCcb9+n/8b7BscjFWW ABIoxdlYXfIRc X-Received: by 2002:a17:90b:528f:b0:325:833e:98f0 with SMTP id 98e67ed59e1d1-3280d2d9e79mr15374513a91.7.1756784938684; Mon, 01 Sep 2025 20:48:58 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFVvL42Iye1xOQhztrsWloU0NJ0PGGSqdDPALE6Np4X4Yhrk4fWix/qIiWP4tsW68GnN5j+Tg== X-Received: by 2002:a17:90b:528f:b0:325:833e:98f0 with SMTP id 98e67ed59e1d1-3280d2d9e79mr15374479a91.7.1756784938178; Mon, 01 Sep 2025 20:48: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 Subject: [PATCH v2 05/39] target/hexagon: Implement modify SSR Date: Mon, 1 Sep 2025 20:48:13 -0700 Message-Id: <20250902034847.1948010-6-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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: AW1haW4tMjUwODMwMDAzMSBTYWx0ZWRfX2QwSMr1i0ps/ lklj1sE7SxlnmF/tqFTsWI7D1xpHbtvwacjJt+fcZNKxZZ5FOZ5Nz97kO/o4tUM8yQUnUQFuSo7 +tFCgQvWZ1P/QxZsVvhyAEm4HAgWhqwj6lzZ1wuUOCqqHD5V+oNHl3aoaYEUKUaz5+/PW8FuHdV U7IiDpL8y6WdgokrPpjhVPXd3S9Bjd5GoSMjjIMIrGPCy/n2xMg6JGccTxFa4gomeiTShn+MI// U6EVqdmSIW3pH3utknqGVoxZ9sudjchwvaoLQvGOdc8O6Lo0G7tC+K7KTqUwJaKLqDQdveKjq3W 5v7nyxatY/97Yj2xJoiDjzJresVMVfS4hr7MB2kw+5G0S3I0rADYGm0DpSVJ1SAMHLtY8fWmefR bQ6tzNkD X-Authority-Analysis: v=2.4 cv=A8xsP7WG c=1 sm=1 tr=0 ts=68b6692c 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=pGsuWRCw0nJDj9UV2E4A:9 a=QEXdDO2ut3YA:10 a=iS9zxrgQBfv6-_F4QbHw:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: ENdshJDeK67V-v2yQClH1bvCpH_e3xTl X-Proofpoint-GUID: ENdshJDeK67V-v2yQClH1bvCpH_e3xTl 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: 1756786527878116600 From: Brian Cain The per-vCPU System Status Register controls many modal behaviors of the system architecture. When the SSR is updated, we trigger the necessary effects for interrupts, privilege/MMU, and HVX context mapping. Signed-off-by: Brian Cain --- target/hexagon/cpu_helper.c | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/target/hexagon/cpu_helper.c b/target/hexagon/cpu_helper.c index 74ce59adf4..11a9dff522 100644 --- a/target/hexagon/cpu_helper.c +++ b/target/hexagon/cpu_helper.c @@ -14,6 +14,9 @@ #else #include "hw/boards.h" #include "hw/hexagon/hexagon.h" +#include "hw/hexagon/hexagon_globalreg.h" +#include "hex_interrupts.h" +#include "hex_mmu.h" #endif #include "exec/cpu-interrupt.h" #include "exec/target_page.h" @@ -73,7 +76,35 @@ void hexagon_set_sys_pcycle_count(CPUHexagonState *env, = uint64_t cycles) =20 void hexagon_modify_ssr(CPUHexagonState *env, uint32_t new, uint32_t old) { - g_assert_not_reached(); + g_assert(bql_locked()); + + bool old_EX =3D GET_SSR_FIELD(SSR_EX, old); + bool old_UM =3D GET_SSR_FIELD(SSR_UM, old); + bool old_GM =3D GET_SSR_FIELD(SSR_GM, old); + bool old_IE =3D GET_SSR_FIELD(SSR_IE, old); + bool new_EX =3D GET_SSR_FIELD(SSR_EX, new); + bool new_UM =3D GET_SSR_FIELD(SSR_UM, new); + bool new_GM =3D GET_SSR_FIELD(SSR_GM, new); + bool new_IE =3D GET_SSR_FIELD(SSR_IE, new); + + if ((old_EX !=3D new_EX) || + (old_UM !=3D new_UM) || + (old_GM !=3D new_GM)) { + hex_mmu_mode_change(env); + } + + uint8_t old_asid =3D GET_SSR_FIELD(SSR_ASID, old); + uint8_t new_asid =3D GET_SSR_FIELD(SSR_ASID, new); + if (new_asid !=3D old_asid) { + CPUState *cs =3D env_cpu(env); + tlb_flush(cs); + } + + /* See if the interrupts have been enabled or we have exited EX mode */ + if ((new_IE && !old_IE) || + (!new_EX && old_EX)) { + hex_interrupt_update(env); + } } =20 void clear_wait_mode(CPUHexagonState *env) --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=1756784968; cv=none; d=zohomail.com; s=zohoarc; b=b/OFDorCo0V3q1R7PbTiKuVao42/JRbvIq5LXVSeGbuQPLvCXalTQO7+mAqw5aW99qhwpphD4RlDJjIF6QvkgR09PfBx5zDtZ2iTI9PPJKaAjTSPcB4bzLZ93OKeiQiIQHyJ9/IC5lLZaKWA6y43n64I9ePZr1xBEFbUPil4TP8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756784968; 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=PofTRSZsHvYFxUL9lMKfqRa5j8aqhnLoF4M4s+qnqCg=; b=m8kU/jF6QDKQnpiU76IexB/iHqru9Vv47v6G8flWgUFupPdeV5VWDKGy3/a+0N2vNVqtcpv4Z1p3QTmFTOjzgsDLAkVT59JRksV0TNzjtBWSmohI0UkYIHsBJveUQLxJU3U3PmlJMnN+H4dOIptXKeEPgmSM5Pv96S69qiXT0dM= 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 1756784968260360.70246116891735; Mon, 1 Sep 2025 20:49:28 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI19-00019j-Ti; Mon, 01 Sep 2025 23:49:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI16-0000tD-CD for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:08 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI11-0004au-D1 for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:08 -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 5822SAKF022312 for ; Tue, 2 Sep 2025 03:49:01 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 48upnp6htj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:49:01 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-329e375d372so273464a91.3 for ; Mon, 01 Sep 2025 20:49: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 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.48.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:48: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= PofTRSZsHvYFxUL9lMKfqRa5j8aqhnLoF4M4s+qnqCg=; b=YRW3Eh1BGNBx4VnH qzYxON3I95Prc+UVwgevOVLOBHGgl0IDDhxGOVpc1ct1BgwS+GV+ZzFCIVpbvnxM xg+jZAtCZ2T/ckXkqjXepxK/j2bPNiiFGRDf1Ky8suzEZR0VGM9FbbFq6EPPJ5tt Ks3h+bKyMQ3cq275B6TdEKGf18qCeyILy3md3HPPnUPv/4Ns3ovwuu97bBJk4zdK BxkahWRDZkQgL/mMbM6uz4NzhvYl1VQhEtdUhdN3NWchnFJoI1+ajDTIayvekVTp jN3i+hBdYD+VzresqPx1so4ULO5GGVrlSEYm9A5E1IpdVIaFqa/mA44kNr8qg5OX nxWtDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784940; x=1757389740; 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=PofTRSZsHvYFxUL9lMKfqRa5j8aqhnLoF4M4s+qnqCg=; b=B6FPGmEWAyTtMPKKgKRT08GmxrIIdDbOmbY4fvYh2OdhvT/oOjgSboobB7vulezsId gKePZ+erhzvgF9iOcabtqWb8Kw7VDac5OM+3oOi8qeCW3SA71i+OrezbzakapC20dby4 jibMIEE5oI2jfLA5gnXl+GObal1+PgKOm+hlsamiErF02MSwS05TXznZCnwHdV94d5M5 zcGMRLoUO/ibAvAHAG/e3cSN8LgzMydcyYQ4oyeuT6JZZyiGJBLAQQoQ+zyb3Lixs3ON D8N3Ia/dIPhGOH5lLdcWhT9/IoradO/GOUX+WCZirjx1CK17IhxkBnAM+oZBtpuHUKyG iz4Q== X-Gm-Message-State: AOJu0YwoJo9x14KQHwGvGvni6CtXSIvaje2cojdFR61SKMxqqcn5vlFd 56r/2y6+sBNT2MokjUnQVSp753fI8/YsoZe5AapMLb2JFcMau6jSSEQZ79ZbzDQ6kqsuP3e5hc5 wsg0AzcaoK2f81yhg1Av1vnLtjyP+Vxh/zHjSD9rzDzW0Z6/+N8BKpyPEuJm72DkGAiQk X-Gm-Gg: ASbGncvgaYxtO6L2swpfbKt+X5RGzrxsSY2JMniPayiw8EjmD4hyN7L+lyfbXmKmAd3 s9n2OaTM46bmJEr6S8S9H4dJcST6SnVInvxrG4Tmah7+ZZetZxiH8QQs0vV+GxaqsPJiwN0xhcV 2x2MZwWAoy5CG3I5mbjbgJgZunTsAiUbcQirkPUTrdN4Nuhx+v0couyJNOx4FGOpPAm1W9RDspI uCZtw0G5x06/0IPk8LJFPX3xYEaKGur8xlMxAI3t8l2/BQuuy+av2qxtf5uLGS7gsn/RssRBKyV ntEh9ix796BoRMDzkBoMX15Er0NALQfb8VQriVdQkDQLoa34IKJ/pSTm0qrzWEIVwqdhROF+NS9 4AP2MXu/F7Qow X-Received: by 2002:a17:90b:3fc3:b0:325:1548:f0f with SMTP id 98e67ed59e1d1-32815452baamr12839616a91.14.1756784939679; Mon, 01 Sep 2025 20:48:59 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEciG8lttR7Il0oSCn1L/jgPvAKZ663luZVy3KngvTS4I7+GaqcechRLIerFzFM+mI092inFQ== X-Received: by 2002:a17:90b:3fc3:b0:325:1548:f0f with SMTP id 98e67ed59e1d1-32815452baamr12839582a91.14.1756784939227; Mon, 01 Sep 2025 20:48: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 06/39] target/hexagon: Implement {g,s}etimask helpers Date: Mon, 1 Sep 2025 20:48:14 -0700 Message-Id: <20250902034847.1948010-7-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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: H6qXL5iOZklMkw08sQeFQcymVXbNJP3T X-Authority-Analysis: v=2.4 cv=Jt/xrN4C c=1 sm=1 tr=0 ts=68b6692d cx=c_pps a=0uOsjrqzRL749jD1oC5vDA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=bsmiAFf9rkHB8dj5RqkA:9 a=QEXdDO2ut3YA:10 a=mQ_c8vxmzFEMiUWkPHU9:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: H6qXL5iOZklMkw08sQeFQcymVXbNJP3T X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAwMSBTYWx0ZWRfX4T4Kng6A+Jwq dHY4tiszbwSjQJmG77tqeChO4Jl+k3faaaiPv1bMHAcrTf55HkUs0hQijWgQOJPULehcObdwrl+ axLwI6vlt2dtYhnyfvhI+Xv0GA1cy/8k+FTxHUxzTVAJ53GwvZoQYamSgD2Hikp9L1z7nItiT7Q V8lMXM9IKMQlm1ateouKB5/k7f8M974LyX+PYr+bXORNQyvoV2edJILs2hyXZOSvVnR54Kv8KAQ bMXp0sD/EqN06tDad1G8vVuAmzmXRNdDo0DGcR4EKZ8YIGH5whq+Liz5At0jP1TJGd1k9eFw32H YEi8xpnYuDi+VJWctKxvSn2TdiJ36XegF4Bki7slAEBgTKFiSDXt02kJP/IBksOtcBRRc6040uG En5+/scx 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: 1756784970250116600 From: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/op_helper.c | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 4b1fc23a15..03e69421c7 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1475,12 +1475,41 @@ void HELPER(resume)(CPUHexagonState *env, uint32_t = mask) =20 uint32_t HELPER(getimask)(CPUHexagonState *env, uint32_t tid) { - g_assert_not_reached(); + CPUState *cs; + CPU_FOREACH(cs) { + HexagonCPU *found_cpu =3D HEXAGON_CPU(cs); + CPUHexagonState *found_env =3D &found_cpu->env; + if (found_env->threadId =3D=3D tid) { + target_ulong imask =3D arch_get_system_reg(found_env, HEX_SREG= _IMASK); + qemu_log_mask(CPU_LOG_INT, "%s: tid %d imask =3D 0x%x\n", + __func__, env->threadId, + (unsigned)GET_FIELD(IMASK_MASK, imask)); + return GET_FIELD(IMASK_MASK, imask); + } + } + return 0; } =20 void HELPER(setimask)(CPUHexagonState *env, uint32_t pred, uint32_t imask) { - g_assert_not_reached(); + CPUState *cs; + + BQL_LOCK_GUARD(); + CPU_FOREACH(cs) { + HexagonCPU *found_cpu =3D HEXAGON_CPU(cs); + CPUHexagonState *found_env =3D &found_cpu->env; + + if (pred =3D=3D found_env->threadId) { + SET_SYSTEM_FIELD(found_env, HEX_SREG_IMASK, IMASK_MASK, imask); + qemu_log_mask(CPU_LOG_INT, "%s: tid %d imask 0x%x\n", + __func__, found_env->threadId, imask); + hex_interrupt_update(env); + return; + } + } + qemu_log_mask(LOG_GUEST_ERROR, + "setimask used with an invalid predicate near PC: 0x%x\n= ", + env->next_PC); } =20 static bool handle_pmu_sreg_write(CPUHexagonState *env, uint32_t reg, --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=1756785947; cv=none; d=zohomail.com; s=zohoarc; b=CVW7BDe/lv7Ary0NZpQ7QlZzQ5zs0brFhR2WsUY7BgICjHuv9/VJTba5/FmzCXKvUOWbHx7XlNmrietkyXeVLKP9C/FXM2ebQv1ZY/SrV21dam47FcULKi14AxV6/g5jMci1900C8E9bspeVWxKhcAnqV0wPPDuv6GUWvUlz12M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785947; 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=7J3Jnl/i4FcDX0LBPe/gOgNshBK4R+Mu7Lz8M1msgiA=; b=gqeIrRlaKgwwwm0IU3fcwiPORD/ijU0TYcUdws3rRLygqpjdfzdoQY3KJ+b+IzqnhWm5ZXE/r6AIdLqlr2Lg3bkLx1vmqxWH0zd7lpZUM4KrBQLIZztXPP+rUpLCINDfLtuiM/MsaleuchrN6Lw5BuG0uZ8JBMxh0PS7p29OSew= 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 1756785947731321.54204764307894; Mon, 1 Sep 2025 21:05:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI1H-0001Yd-AK; Mon, 01 Sep 2025 23:49:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI1D-0001Qn-Dq for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49: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 1utI1B-0004b2-Dv for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:15 -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 5822Rtas015204 for ; Tue, 2 Sep 2025 03:49:02 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 48urvyxdj4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:49:02 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-329cb4c3f78so827681a91.2 for ; Mon, 01 Sep 2025 20:49: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 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.48.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:49: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= 7J3Jnl/i4FcDX0LBPe/gOgNshBK4R+Mu7Lz8M1msgiA=; b=iGH940U8n4KgnKKr b5s3KxqY+e+VhCjZcUrsqwRxaji1i+KwNcmQYLJTE2sCFmb8o97Zgj/npO9ALTsy WMKX5KY8I6MBlLeIMkDDS+9VVxBLYu7oeNo5sCQ8UcHR78BFbuNtyR+fivgUCUsR Mq19X/ZwAvEr5dQqEogEzrmzkUokHLP0E7uofSYzlmOS0ZRHZIVtI1ObXCqvyqRD WkGm3lC7x4uoQc7cGVq97CdDQ6P1wHPzQgBLcE3eJtMrgADOa3YQtRR/QjSYw7B7 5augykwJyOhm7Z44lN+paZnypwq3+6e8GfuyixFGTUIR7SxLKe+YAWJe/iTkZLvX nvTodg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784941; x=1757389741; 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=7J3Jnl/i4FcDX0LBPe/gOgNshBK4R+Mu7Lz8M1msgiA=; b=Fh6aDzd4NGmnEnoFv1dWliSo83dXUO3trGtQZg2TlPcuWcTAviIuy46SR239fDEM+J X1vZeI8amJY4L4ZkbmwI86ssKOZxUl48s5X33q8K7mQS0vSe47eA0fAvyeKkWw6FIK5P BSGsJ8N13QQhUzxgkoJNt3c1AF9MRkAfVF+4v8jK1IR67HWI717P738DrYvBSQjngfn0 Q+IFqbJAlkw77r1rlChpTcC31TIe/2/ELQSAhSc3/PDL1SYIn+74xxh9BFpP8ljDHI5t Pdc/AXSmr2mhAJuhMzsfsgf70bRAIhjBScnSVu7eRezHyjEAIWdS2FrDi2Fk6CcA9Nb3 HGgQ== X-Gm-Message-State: AOJu0YxR1soWPVuvmEd5Xr5fixpx2FzUC0L8kJ8lPd+fHBwcbQ0ENM1w oelIsCGpXmfdNOk7coGl4cYYNthnhdF+wO7xQEXliAsdh+zy2Gh9ldLoti6RZK2qkVtKl9mIq2t +/LecUFq2rT2G56v4OXf0KsnnbS02eHH2INqvMnwckR4SFqO4vDII4vRQB8NTebQ7wwhf X-Gm-Gg: ASbGncuLPwdkEUqV2sFizmSswFpqpQUg4k5mFTpv2AyLncFo9IloGPIGDt98THtQpCx w0pqK4rI1IF/CkCD3M9u4RalX+VMUXPegNG2IPqbOyWXTWJOUTtbpoo/bUQsl2QzmuQHa3nNWOi dRMaRGeYSv78/C8vZz41Y0nxFmDDflrH513s7E9p2iDMroeFuLzod43Lj0ic6yLN1ffpgqYJ7s+ g2vBUcekbt5r8CeA7LxhZwd4cjDakV/KhSQr3xQYb2L7dVJHFGLRiIM8eTjy9AsQbYVXh/aVNXL NIjcZazcZnoSFzGvCojh0gL2msfvfcwK3K8tzoXFqjYcWlDRRyHcmAk9hbfUcIqaOYx7MrFFoAn XWfskGlEzw2zV X-Received: by 2002:a17:90b:3f84:b0:329:d85b:d9ee with SMTP id 98e67ed59e1d1-329d85bdae7mr2464397a91.23.1756784940945; Mon, 01 Sep 2025 20:49:00 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFwl2cRddA51uVVz9Jg0LsAYDC2N3vers3y4TGaU372jnga7vsG1PIJ1xDCkd1uTVnkAdhhfA== X-Received: by 2002:a17:90b:3f84:b0:329:d85b:d9ee with SMTP id 98e67ed59e1d1-329d85bdae7mr2464365a91.23.1756784940455; Mon, 01 Sep 2025 20:49: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 07/39] target/hexagon: Implement wait helper Date: Mon, 1 Sep 2025 20:48:15 -0700 Message-Id: <20250902034847.1948010-8-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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: L_3bNXtOu9r0kRSfi5Mqqb5plWdRHVz6 X-Proofpoint-ORIG-GUID: L_3bNXtOu9r0kRSfi5Mqqb5plWdRHVz6 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAyNyBTYWx0ZWRfXyHTWw5AmjU4X B2QHyiFAuCkwDhfjVOQ62Jqk94biY2J1Emfae3glpUMsax9YX0Xd34MqazfDupFTeNvVHtQghrj DktK/eh6p+gLNMF3khDq10TzXXseYkXEm5qDMHppVoGa2ASQPXhlmfs6EgDxR221SbB0D8Aqp8k FjrUGkKoyZCGjvPgJU0mfGjQ1h9e3U7myw6VuybKzXfVyifQanwwhjO6W8Ij0bTHvOVFI+eCV/K YsiCfwcnuVaapuxSCmYiXfuw0dOKLs4KEUH+BIWGTylc8Qx4mLhK65fdEgM00Y/99PmBqtbKX4O cDKyYd5FomXrBUx6KlbbF6Gx624Ll1s+41SNr6Tj+BMc2+NzaJvN4sB114/V0Cp5FPzdDUUei1Z xyIX2ZjP X-Authority-Analysis: v=2.4 cv=NrDRc9dJ c=1 sm=1 tr=0 ts=68b6692e cx=c_pps a=0uOsjrqzRL749jD1oC5vDA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=3pk8eyN9Md6IEAUW3xIA:9 a=z6jpoc7dHuyx4b7i:21 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: 1756785948746116600 From: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/cpu_helper.h | 1 + target/hexagon/op_helper.c | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/target/hexagon/cpu_helper.h b/target/hexagon/cpu_helper.h index 95a0cc0788..e8d89d8526 100644 --- a/target/hexagon/cpu_helper.h +++ b/target/hexagon/cpu_helper.h @@ -20,6 +20,7 @@ void clear_wait_mode(CPUHexagonState *env); void hexagon_ssr_set_cause(CPUHexagonState *env, uint32_t cause); void hexagon_start_threads(CPUHexagonState *env, uint32_t mask); void hexagon_stop_thread(CPUHexagonState *env); +void hexagon_wait_thread(CPUHexagonState *env, target_ulong PC); =20 static inline void arch_set_thread_reg(CPUHexagonState *env, uint32_t reg, uint32_t val) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 03e69421c7..a8b44a73bd 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1465,7 +1465,11 @@ void HELPER(stop)(CPUHexagonState *env) =20 void HELPER(wait)(CPUHexagonState *env, target_ulong PC) { - g_assert_not_reached(); + BQL_LOCK_GUARD(); + + if (!fIN_DEBUG_MODE(env->threadId)) { + hexagon_wait_thread(env, PC); + } } =20 void HELPER(resume)(CPUHexagonState *env, uint32_t mask) --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=1756786400; cv=none; d=zohomail.com; s=zohoarc; b=eb7W+9jzoZsQpSzb6qNmOnGZf9qRsZsMeYZN8yaYOlySXoLHvOPYyqGh5cj2PRWKoao4+rYjxZhSH2zkea6GqrmC67oKu7hdmum0ICVBAgJ5mwnEDMSOKuZjkfq6GmsoZSVzSAucwD9mn4SjEBPhApGnEHCDaDqaiWe5/yaJyO8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756786400; 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=2ouGzrqBjlzLoVPfIcGOlSh6v3C3SP6aJQwBy7KWm24=; b=TCC2lIsvSjLS5pVM2ldjK4V8PVQR3nUyF0GH5vNgS5oHBowbxDBeVEmEE1KIwJ+70tacB/uQ8WIX5sU0Qm8opxv54cjSGVZOe5h6enDQaoSowdrxXMocKP1kkFxFElI/VeF56UmtE9EuU7ZRRkeQ3jAWhGWlKbX+/nKzIfUzEwk= 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 1756786400631642.9748870134524; Mon, 1 Sep 2025 21:13:20 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI1I-0001lb-SC; Mon, 01 Sep 2025 23:49:20 -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 1utI1E-0001UE-T2 for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:16 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI1C-0004bD-W6 for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:16 -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 5822SOtF025567 for ; Tue, 2 Sep 2025 03:49:03 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 48uscuxe9w-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:49:03 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-248eec89618so49514785ad.1 for ; Mon, 01 Sep 2025 20:49: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 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.49.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:49: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= 2ouGzrqBjlzLoVPfIcGOlSh6v3C3SP6aJQwBy7KWm24=; b=kcY+Wds58xk30FJb Pwv8s9kvhbmzVcekT4JQmiR4DxyeslVK/0kn77hgCiBAdH6lXvns+WElauMpgB9F R2CNn0N/ctbEenjgvJAkiRQRzihUt8yNCyio8TZ5UVxVdyufgPq66TaMVGowF061 OHOBPqYw81xNWRZbaA1tNmLq+ZrSlimMlF5E+vSP+5/zSwvlhiTROmAFPbXwZ0fd tyyp6Q3KVSuONUE9wo4xUqqelJyvM52J15nor0q88VspzX3ywzDLAhfqfBJXD7ZW 8NU68VSPff0lUzWSYPiq4fYm8X5Le/4ypjajLW+Q3mkMkMbBkF+ZUOWSc0nSWM89 u3z3JQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784942; x=1757389742; 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=2ouGzrqBjlzLoVPfIcGOlSh6v3C3SP6aJQwBy7KWm24=; b=NOHLJ8oYU+2r5G0UCMty72e7QB+AyMuaUj4zYsqohjHyl/xXGcLOzA3RjdS2eky+RG LUIcr36pt7M5yyuMIn+TTiIYmot7Gzo0YiXe89BIPcUohcMsnhjgrEcB6lP6r0zoNzbp Y4PmMnJOy60irxHwwORAqNB+ycu9KYcy+5uPOQ1vDW8txoPqHeDAANY90W6H5Q0q0f71 UWGjTnbBjbiirZP1kaacwj5IP9OLeCbEAqmh+NQHjjd9n6SkiuoaM7s29cQKATYeQ9WI PNpsXpxxQYli4JFUdYnKh6A/A+wXQ7Kv9+vZJQecCdaGRJy8wAUJSakzKcEMyQEPDrSQ Xpgg== X-Gm-Message-State: AOJu0YxdbIX6KoJgvwLVQ80tPJB2xcLQ+RCnDY8Rz+IzSLu5lVahHz20 Ss5r4lIaJWrYMLYEcQreQdTYgSas6FdjNDzZLTwl7jiO9iQ+1XoZHWJuIfgKCM7Ir1BMN5n6AcS dGWCEqAam7Anygj3zDOKAgNIHKn7BUEsALQgyAqTKoYJAfIt8rbB9Mynu1W4GJrGLvClm X-Gm-Gg: ASbGnctzmGbiNXwEWp72Bsw/SDXjhbuNpNdq7fIbaECb064fP2uKdsgkHKGWigIjbiP a5K+UuDaRynkOq9aL24TUbGkOyEaCZTH7glJPPt4a7q6qt0aTEj5UPtsNLWpGsB/6nm04E9xn9N DPkHlX6sHYXz6pKUNmdqs0FNl5mOTNDlkJ5yV9sTkDkLA+VF3T9Fdpxfog6IOPCbA2aHbw6WAt1 deotm7v2GH/P60129KZJrxsC6VxMFZ2KFHvOkHy4Uhc8q0ZXidIHZsgkXfiBoMoouORqw/f8zxN 6cfrqQpWHztjZuDQsNyPIsYeh0DrktP535dEURPwjnXiOgzY+116MmMWyN8MlXBp0x1idiKL7Jw H3kPCwjRHfSSP X-Received: by 2002:a17:903:2301:b0:237:d734:5642 with SMTP id d9443c01a7336-24944ac6b51mr137041155ad.41.1756784942134; Mon, 01 Sep 2025 20:49:02 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHIhs+ZvA0TbaH38aZHuYWYmDObiwlYfS+K1MIHOiuzsNsGroCD4Q8TQg5CUlyeED7rtmJ5sg== X-Received: by 2002:a17:903:2301:b0:237:d734:5642 with SMTP id d9443c01a7336-24944ac6b51mr137040975ad.41.1756784941686; Mon, 01 Sep 2025 20:49:01 -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/39] target/hexagon: Implement get_exe_mode() Date: Mon, 1 Sep 2025 20:48:16 -0700 Message-Id: <20250902034847.1948010-9-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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: AW1haW4tMjUwODMwMDAzMSBTYWx0ZWRfXylIXrx5m5E/k WQcIBIbwTQwfDZMiQbAybfAo2lud5MgT5xkft8Oz2669ynmz3iQ/Yb6b+UHGSS8fgHcpoAEtBbL jTulYDzeU1Y91qdf2kftny9rl6dnX7EmaYdzlcsdUbg3VWqguqHRb4B3Ydu8GKmxSuhpj22OImo X87XCcngn46tI+jarNoZnIn9ydnHlsNJBS+VOYrHXT4cVehJIAObT7Uzwqq2LvcQ7wUkLh2czTx eEp77yDILnZHyzPdiAv7J7gdfw/0dKvSn6uqyW47miHfAAcw6beuSwl4g0MpKSyyvz5EZUfYB+c RXYWgKITk7Kz5I28RpU8zOvc+AVVe9yNsIjRudgjmIt2t75b5ATskbubK0n+JX2lmTH6gDzw0iR kJztw3sl X-Authority-Analysis: v=2.4 cv=A8xsP7WG c=1 sm=1 tr=0 ts=68b6692f 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=xNtBLlBv4CHGg5Otw5oA:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: R5SzR1D20swdjUQmZzS5XwBet3B6hgTL X-Proofpoint-GUID: R5SzR1D20swdjUQmZzS5XwBet3B6hgTL 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: 1756786403213124100 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/reg_fields_def.h.inc | 11 +++++++++++ target/hexagon/cpu_helper.c | 23 +++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/target/hexagon/reg_fields_def.h.inc b/target/hexagon/reg_field= s_def.h.inc index 9b112ccec6..d2c706d56b 100644 --- a/target/hexagon/reg_fields_def.h.inc +++ b/target/hexagon/reg_fields_def.h.inc @@ -135,3 +135,14 @@ DEF_REG_FIELD(CCR_GRE, 27, 1) DEF_REG_FIELD(CCR_VV1, 29, 1) DEF_REG_FIELD(CCR_VV2, 30, 1) DEF_REG_FIELD(CCR_VV3, 31, 1) + +/* ISDB ST fields */ +DEF_REG_FIELD(ISDBST_WAITRUN, 24, 8) +DEF_REG_FIELD(ISDBST_ONOFF, 16, 8) +DEF_REG_FIELD(ISDBST_DEBUGMODE, 8, 8) +DEF_REG_FIELD(ISDBST_STUFFSTATUS, 5, 1) +DEF_REG_FIELD(ISDBST_CMDSTATUS, 4, 1) +DEF_REG_FIELD(ISDBST_PROCMODE, 3, 1) +DEF_REG_FIELD(ISDBST_MBXINSTATUS, 2, 1) +DEF_REG_FIELD(ISDBST_MBXOUTSTATUS, 1, 1) +DEF_REG_FIELD(ISDBST_READY, 0, 1) diff --git a/target/hexagon/cpu_helper.c b/target/hexagon/cpu_helper.c index 11a9dff522..1a1520214e 100644 --- a/target/hexagon/cpu_helper.c +++ b/target/hexagon/cpu_helper.c @@ -135,6 +135,29 @@ void hexagon_ssr_set_cause(CPUHexagonState *env, uint3= 2_t cause) =20 int get_exe_mode(CPUHexagonState *env) { + g_assert(bql_locked()); + + target_ulong modectl =3D arch_get_system_reg(env, HEX_SREG_MODECTL); + uint32_t thread_enabled_mask =3D GET_FIELD(MODECTL_E, modectl); + bool E_bit =3D thread_enabled_mask & (0x1 << env->threadId); + uint32_t thread_wait_mask =3D GET_FIELD(MODECTL_W, modectl); + bool W_bit =3D thread_wait_mask & (0x1 << env->threadId); + target_ulong isdbst =3D arch_get_system_reg(env, HEX_SREG_ISDBST); + uint32_t debugmode =3D GET_FIELD(ISDBST_DEBUGMODE, isdbst); + bool D_bit =3D debugmode & (0x1 << env->threadId); + + if (!D_bit && !W_bit && !E_bit) { + return HEX_EXE_MODE_OFF; + } + if (!D_bit && !W_bit && E_bit) { + return HEX_EXE_MODE_RUN; + } + if (!D_bit && W_bit && E_bit) { + return HEX_EXE_MODE_WAIT; + } + if (D_bit && !W_bit && E_bit) { + return HEX_EXE_MODE_DEBUG; + } g_assert_not_reached(); } =20 --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=1756785142; cv=none; d=zohomail.com; s=zohoarc; b=e6F8C3ckyLtfC1r0fcMEg3tVGB5c37nykKmEm1MY0kfH3oc37HB2Rya4LY+LPY0hLu1D0APAhhTPZATpg11MJdycMksi77dSqyYQWa03bFx/qrTGg7dqA7qvlJgkUILE2byjOMC39TIrkRSzIfVcd/Vh91RO7Hku9toAXaXKNro= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785142; 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=wA36y1pseHZ/mbWOg5X+MZTqAkmXjAje6zJZzeVXNLw=; b=V3VbN7NSBrbEVtQJFDKihsrIsVggsp+DFJokix/WaYmWpfNOQoby674zL9HhtITz+OY2ZHp4GkJP4ZXoLDxxleRyJ10SXd7pllVrw2cL5DFpAIzxCdiBoUt/rWwXmuJ+jBzg+MoUr0RD4ytJIc2YNBreFUYai7M8l5sB/j91HZ8= 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 175678514284728.77228168801878; Mon, 1 Sep 2025 20:52:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI1K-0001qD-1H; Mon, 01 Sep 2025 23:49: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 1utI1F-0001WO-Cv for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:17 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI1D-0004bN-Qn for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:17 -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 5822Rq7q029973 for ; Tue, 2 Sep 2025 03:49:05 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 48w8wy26rx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:49:04 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-325ce108e45so4742978a91.0 for ; Mon, 01 Sep 2025 20:49: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 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.49.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:49: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= wA36y1pseHZ/mbWOg5X+MZTqAkmXjAje6zJZzeVXNLw=; b=P+9a4PZrvZxC2UJC FvXPmS3cJOJ9Z3mPzlSlzjOZW8xxtHaE30OO9MejXauFv2ZmKCBfI9pLRpjQtJup j8cLgGSlVAckwG8z9UYGStSFV7GgHK4u6C14a4BUk2e6InB9OAXEP7Vs8vSH0SPm HvR8xYgl6gpXXqETNNyVNYHx4590WUzp0c+28s3JaAgaORuFaJv8ltX//buhM27p QMhTX3bK7tOUyvO2SEp5zTpgGgI539aaZvlNpHEGU4MNLZ/G/zdBB7z5fbZozSaF 8lJxZubY6+LgFXXJPh4GSRBMZZRuLha95WdilgBleTHyksWZ7rKFHDB6uA1fkyby /hZD8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784943; x=1757389743; 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=wA36y1pseHZ/mbWOg5X+MZTqAkmXjAje6zJZzeVXNLw=; b=N47/aPyL4DSHJy8X1Ct6EUlUyN5wEHqbJc63ltIjSxfv5hdZX4M8sn0vtzJUTi+8WG G+we3zP+uOLoe5CpM2i1Bzfzo/z/hmCnYlp+zBhu9daBrXi41377u3bcENO/wxsvKkYH cVkmBFZdCCN+FJ/1sGlVYBJsWXfcocg8BymVjc3FFgaCkbAxdugECt7R61OP17h7gPZB HkUlb6BYVSlubBD7SK6WrDznHT9hDP6X9NY/+XZJ7UwvYm1IyITyYXXmauzY7AjeCBy4 gHQcNIrFW5isj6rgDAQJ8F0WmMMbba8qhVwLcUW0iyBhNDaYKuDIwUpMh+bVZDC6E7dY s1Gg== X-Gm-Message-State: AOJu0YwfbQLc2cJv8hNA0jp/0a7bqcUy+lFFpsY3dpctNovNN/T7ueLd XJ0S1ByqSAYjA3d/a/aPrxLt4TlU3IDMUaKaPPKFavTVRW1SIa1feh8KR1RmnS3xH0tDeRIyczQ 9pz1X26QBZtznU2YqS0Cq5fG1nusXiEoACIQ9Loo1T1plkGz/rW328XLPmPMsYyTBAKVe X-Gm-Gg: ASbGncv5kpanWWY6htSftKRWG/mrC9yt2iSMo8mB5LIUT0+8RhQ+dM1RXTNjX3JFUQW CcW5q37jQsQfe1D8xWkfsVE/L+hbRAStY5rmCWnhSpyJjFwLOKYPS9hG6GqtXcz1B7C+6VYFCM5 YpDVcnI/A5Tjtv8mruMHg6JIgvjUe9Ky9epvo0iKsa56bRd4p66q80+7AXAobN/Y+WHQiygdwfp Ij5gv/LNcpyUcSS9hppBQ1HnLswLoqAB8XkrLdigHhjjrlVS7HRYP87sCU31HgakSRx80hoxj3t f19AclezdGXOtEq7NplmLUqWCamIdKW/3xAy1/Jq5eSYlT9+f1i71CRFliMpfJRQO5qCOWFETsu osmvhNzXDtvoS X-Received: by 2002:a17:90b:3844:b0:321:82a0:fe50 with SMTP id 98e67ed59e1d1-3280d2d9b63mr14329986a91.5.1756784943325; Mon, 01 Sep 2025 20:49:03 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEJ2G1b3nSl6kHHrxqlypdVwZ7W168+7idVPNFRhW4dWwdgYiH+V4Ud4886AvkYsesSwxnI2Q== X-Received: by 2002:a17:90b:3844:b0:321:82a0:fe50 with SMTP id 98e67ed59e1d1-3280d2d9b63mr14329953a91.5.1756784942866; Mon, 01 Sep 2025 20:49: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 09/39] target/hexagon: Implement arch_get_system_reg() Date: Mon, 1 Sep 2025 20:48:17 -0700 Message-Id: <20250902034847.1948010-10-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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=68b66930 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=HSKE6JCKznaEU2TF9tAA:9 a=QEXdDO2ut3YA:10 a=mQ_c8vxmzFEMiUWkPHU9:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: fPZhD9x9yzgmaTIWyn3cGkr03mF7fq4Z X-Proofpoint-ORIG-GUID: fPZhD9x9yzgmaTIWyn3cGkr03mF7fq4Z X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTAxMDEwMSBTYWx0ZWRfX3kJ2arSX33Uq ZJZWRcjw76LpMKcwZk8SOL46bNhbFqidaO4wX1IAB98tg5gr2kJ7wsE3GNyWD0yOVwyBxlRkbNK yI3aCDsKj5qRhuSiOLAetRNktxLE9uwe8ABo0qaUvn0Qn0Bz7ldCNsDyyPQ+LvJp8qsFI3Qgj2u pEvLuAy6rYlxrCjI1cDPirqbkmRelymUWEe/dI2JRl1iIKsLp58mqFPv5zA90lZz6XPnsvX2m9a MzCWQCNDCFQ9+8HnDqacq+hHh3YPJ/9tvOGk5OD9QQzoleyZn6jv75wPcZ0pU1dIeOBsFPNy2wQ MRgOrL5uvIll0VIsdXJlaTb69zNGllH17hryvjNaBXajJAre7cOrmCcPtgE9o+x35r/ze6LddGZ 2HY4MfWq 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: 1756785144431116600 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu_helper.c | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/target/hexagon/cpu_helper.c b/target/hexagon/cpu_helper.c index 1a1520214e..4732a698b4 100644 --- a/target/hexagon/cpu_helper.c +++ b/target/hexagon/cpu_helper.c @@ -39,7 +39,38 @@ uint32_t hexagon_get_pmu_counter(CPUHexagonState *cur_en= v, int index) =20 uint32_t arch_get_system_reg(CPUHexagonState *env, uint32_t reg) { - g_assert_not_reached(); + if (reg =3D=3D HEX_SREG_PCYCLELO) { + return hexagon_get_sys_pcycle_count_low(env); + } else if (reg =3D=3D HEX_SREG_PCYCLEHI) { + return hexagon_get_sys_pcycle_count_high(env); + } + + g_assert(reg < NUM_SREGS); + if (reg < HEX_SREG_GLB_START) { + return env->t_sreg[reg]; + } else { +#ifndef CONFIG_USER_ONLY + HexagonCPU *cpu =3D env_archcpu(env); + return cpu->globalregs ? hexagon_globalreg_read(cpu, reg) : 0; +#else + return 0; +#endif + } +} + +void arch_set_system_reg(CPUHexagonState *env, uint32_t reg, uint32_t val) +{ + g_assert(reg < NUM_SREGS); + if (reg < HEX_SREG_GLB_START) { + env->t_sreg[reg] =3D val; + } else { +#ifndef CONFIG_USER_ONLY + HexagonCPU *cpu =3D env_archcpu(env); + if (cpu->globalregs) { + hexagon_globalreg_write(cpu, reg, val); + } +#endif + } } =20 uint64_t hexagon_get_sys_pcycle_count(CPUHexagonState *env) --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=1756785129; cv=none; d=zohomail.com; s=zohoarc; b=Bd0omHsDWloObVx7VoHlqDl03vHefb7iWTDlxA/SniXoxZf4RzpMh26Tv2RYAmNrpkcPetxhJ9NqbqNwfVhXff4zwCTnYMDE5/dl7xoXRu1UtBw7N/88IfCzoYPb5SGUls9COGPadpz7KznMP1AG4un90Gpved0qIPQCOlGmMIs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785129; 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=mydiZdVQ5TcL/9AS6VMPvIGisZjZpmfmAQD6E/nNxvE=; b=ZWs6wVPgcb4BKtuYt7tnH1ONPiWwq8KA77aCrmm6nZvaY92m/dvhIZ1wgEvAW8eHAQIPQk+kTFaVcGVWadJGby/TkwFzR4MWTZvJXlmlsVQwwd7oLJyFN9sgW0QodMJJFbsZJJ5Xdi6X02r6vNhF3+Qv1qZMCGmn6mcaVk7OvkE= 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 1756785129498455.2987155277875; Mon, 1 Sep 2025 20:52:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI1J-0001mO-Dw; Mon, 01 Sep 2025 23:49:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI1G-0001ZN-Cx for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:19 -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 1utI1E-0004be-Oe for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:18 -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 5822T6Yv032344 for ; Tue, 2 Sep 2025 03:49:05 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 48ura8pc2e-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:49:05 +0000 (GMT) Received: by mail-pf1-f197.google.com with SMTP id d2e1a72fcca58-7724bca103dso1787097b3a.3 for ; Mon, 01 Sep 2025 20:49: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 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.49.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:49: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= mydiZdVQ5TcL/9AS6VMPvIGisZjZpmfmAQD6E/nNxvE=; b=Uqdx6IpfCs3YhPye PJbSDfkb+0sW4puwJbOVSNXw98tsbd/MtyC2FWSclE6Px6KdqUKWXaV04j5AWqlg OAKiMaN3jvicFNjLxYFyXdAbZPhvnsUUPdjH0Tn8I5kC9+HQG/CL7jFza9cPvhxv QgbDiL2Ks+fNPtqe4XIgcjef2NyVKP6lYNFJzLAWp1xduJqyWBcNNznKh4hOLA5Q IFMQtONIKjRpH1jMp3IYsNxhZGXKnyVlr6cfd+jbmZOx/3XvtrD46wi+JEusqiJn DocXOdiRPHhThZytWtJxmuiU6IFzCpflACd8TTNb3AxJOB0CY2lESl9uF9nB4I30 ia2Mow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784944; x=1757389744; 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=mydiZdVQ5TcL/9AS6VMPvIGisZjZpmfmAQD6E/nNxvE=; b=JAqaP8hcgLj9VKXW7j7FE1ccINaa4NG28qYlxNPwk1ni1ZSeIiTAr4L2ldtWwYkZhk r6MnetYutWp8nUC3vdIC52EOwlfneZzf5hhucgDLqDTKxxxnhqkvix0CHlGAVB3NkapE GOAiVJahVQwOMOGCDzz/3Wr+6nI+VdkQuKEPzb/XE3HOBqjQcC2O5CmwqK+fcWMhY1gM BndjGd0drZwcJHFXKXHIq5D7iZ3kYdeUDOTttOhikN61K3EoM/Z66oWSMZQEtKUeGF+R vEDGqn3aj+3M0TJZH6m0odPBxVF48eqUDkKiQOKJgMDdEUVqBrSfPlkbdiw5RArrDHJJ mihQ== X-Gm-Message-State: AOJu0YyWnvZOPIJM2j1+l4U7nVR39zA+t773vOYOF1wQyp5cgsR3zKNB DttuJycb2mHopDkIG6c6P58+fc+vaknCxjXI8mxCSiTNRiO/+vTtw/Rr8kxuCLqQHwsX+DhzYlT 5e/Miy2EG6NOrj3nQoGCOQS8o+gGYA7kOcu2nYU2UL8hgRCQKxJ9qp9l35L9eKX9jDiLl X-Gm-Gg: ASbGnctKIKXnvfrExo5zc0HT7cZnfVP2C8k3ZAoK/zN0vtd8kjTtuqJ+VGU43TS6zpo cO3ldNUbfFjDvNNYF6r+MDx7gXez89+8zbnYT134d8IucQBfjfwQjuc09d2piGdduKHTeQ39kYK BDOOuhMo4Fr476VMKxoTbc26ztmkfHFy+jIBiWVNyh42YxUSl/h8f3lrIKORb9mx0xz1ChcHERV znKFTXpniEVVZXyDNtF167DDTZn0TJBcycSefh5Jsnn01x58DQepcWCNd+O7XmJlUdi8FYCHpbE K104Tj0Z43849p0wrQeZ3WEfGZcB/cKTzYC88WzwPmKd5V6uvlh9CCRAtaZuqmzPFf739wCmQji i2zuOXmmNmYXb X-Received: by 2002:a05:6a20:c916:b0:243:f5ba:aa82 with SMTP id adf61e73a8af0-243f5bae85bmr4484092637.30.1756784944381; Mon, 01 Sep 2025 20:49:04 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHHeMqW1EeVLG2eYKteduOqGiRouIyfyIg6/56Bb1LB7I2UVXDLrLykCXwU7f08o5M/JACv8Q== X-Received: by 2002:a05:6a20:c916:b0:243:f5ba:aa82 with SMTP id adf61e73a8af0-243f5bae85bmr4484062637.30.1756784943951; Mon, 01 Sep 2025 20:49:03 -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 10/39] target/hexagon: Implement arch_{s, g}et_{thread, system}_reg() Date: Mon, 1 Sep 2025 20:48:18 -0700 Message-Id: <20250902034847.1948010-11-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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: ZZxnp_WcgvKIDJfYNpALB1YTMblRLEQ1 X-Proofpoint-GUID: ZZxnp_WcgvKIDJfYNpALB1YTMblRLEQ1 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAyMCBTYWx0ZWRfX2fkcxM9YJbqh nyQg0lgkqzwUDb/2IVF/TXeQkpWdI7SKUBruRsYVysbu+SyWW5e+JjAX0WC9a56O13uitnwtNaa 9L2WbFPoQnT6xZ4QF4/3/BgEUUSbX/wyMf2ULfpQmnPEcRbcicfstEQDvRlBSMtzAhUpKYkhQN5 t0DcuUZxlu4V93AC01/BQ9xFGPSSCO5hAJqpzXtYOXKM9hfex1iIE0ixFexTniuQO3y38ZNc9uG 0sk0fNg0lvSt4IHm/0hbkjL+JshF2gb3S6Kac/edcrCnKOLyI+O+N7+G3IYgJbbI1RjvWM/pGyy PNU1a++JQXx+4e4Skep1wMGX/rfvX7JIwhqqPsHR65qXJL72WhtxWfTANWorzoGTsPNyuaJskZ+ KpOO5k2q X-Authority-Analysis: v=2.4 cv=VNndn8PX c=1 sm=1 tr=0 ts=68b66931 cx=c_pps a=rEQLjTOiSrHUhVqRoksmgQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=HDd5vYzWQR-3ZBpyivcA:9 a=QEXdDO2ut3YA:10 a=2VI0MkxyNR6bbpdq8BZq: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: , 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: 1756785132167124100 From: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/cpu_helper.h | 15 ++++++++------- target/hexagon/cpu_helper.c | 16 ++++++++++++++++ 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/target/hexagon/cpu_helper.h b/target/hexagon/cpu_helper.h index e8d89d8526..f7400031ef 100644 --- a/target/hexagon/cpu_helper.h +++ b/target/hexagon/cpu_helper.h @@ -26,20 +26,21 @@ 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(); + env->gpr[reg] =3D val; } =20 static inline uint32_t arch_get_thread_reg(CPUHexagonState *env, uint32_t = reg) { g_assert(reg < TOTAL_PER_THREAD_REGS); - g_assert_not_reached(); + return env->gpr[reg]; } =20 -static inline void arch_set_system_reg(CPUHexagonState *env, uint32_t reg, - uint32_t val) -{ - g_assert_not_reached(); -} +#ifndef CONFIG_USER_ONLY +void arch_set_system_reg(CPUHexagonState *env, uint32_t reg, + uint32_t val); +void arch_set_system_reg_masked(CPUHexagonState *env, uint32_t reg, + uint32_t val); +#endif =20 uint32_t arch_get_system_reg(CPUHexagonState *env, uint32_t reg); =20 diff --git a/target/hexagon/cpu_helper.c b/target/hexagon/cpu_helper.c index 4732a698b4..fc49fe7883 100644 --- a/target/hexagon/cpu_helper.c +++ b/target/hexagon/cpu_helper.c @@ -73,6 +73,22 @@ void arch_set_system_reg(CPUHexagonState *env, uint32_t = reg, uint32_t val) } } =20 +void arch_set_system_reg_masked(CPUHexagonState *env, uint32_t reg, + uint32_t val) +{ + g_assert(reg < NUM_SREGS); + if (reg < HEX_SREG_GLB_START) { + env->t_sreg[reg] =3D val; + } else { +#ifndef CONFIG_USER_ONLY + HexagonCPU *cpu =3D env_archcpu(env); + if (cpu->globalregs) { + hexagon_globalreg_write_masked(cpu, reg, val); + } +#endif + } +} + uint64_t hexagon_get_sys_pcycle_count(CPUHexagonState *env) { g_assert_not_reached(); --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=PRRtF3fSBaOFTbd+kjKSz8+NZpNe81FyZ/vp1V0aYiVkA1IwwG7fQoolwePQ1uUaZmFa7lSqckM4ycpSd0gEHOP9idwjs5mdE7hRVqgFasADHvx4ibiQQ8fFZud+AtX/4dVR5yHLfjo7Ltu5PwR8zDWzMRCyfhfKU/VNe7GYLtE= 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=DeCqlDgJAXTo+PaUiPidkJbRyZUMTQWsHiSFXAV1d2g=; b=CWqjlrVsEzyLRNs4k+xy7SKZD2PIT3ckSbHm/ITFYvCi0lS7Ssok3ApVbs2LrBOhvwXusf/qej1xjl9mORGdZdkTF5WX+BSUEbreXvme9XJZppxmew6TmGionb2/GrA/9eCEmFrJC42dXoh9XHEJeSGxSNN43j8QMQob1b1s1zY= 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 1756786201227788.3439698222621; 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 1utI1M-000238-1Q; Mon, 01 Sep 2025 23:49:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI1H-0001fm-SH for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:19 -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 1utI1F-0004bx-WE for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:19 -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 5822Rtat015204 for ; Tue, 2 Sep 2025 03:49:07 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 48urvyxdjc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:49:07 +0000 (GMT) Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-325ce108e16so7459106a91.1 for ; Mon, 01 Sep 2025 20:49:06 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.49.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:49:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= DeCqlDgJAXTo+PaUiPidkJbRyZUMTQWsHiSFXAV1d2g=; b=AUMeTXN2bgsnxt35 LHRVQ6snY7TuDg6lrn1LeV/vh+MIrActZ0Hc5Zh+dsXM8HE6wiiDIjiHW0j51kxg jHhjWm2bdIiAGS/etpzKqcP7Og5O/ithGgPUwIV2NOOyuqXcHhZHPSC+9XEUK1rD 0r67IoP3lAeukJyc0SqEHKoUpfsYynAOPcYBdQVoyFkf06b4ma1by1d35nTsIBLp IZcfPajJhz+AixdAgDCbVGLhqwhsfdBhm2xapJXTZm/GqFNfLaQit9aoiMXwWtoT DVlcxps2mxBj6H6IoqwhnyT5rHpNYZ/lDQijdu+lQuQv5bJFpEPJfAnJ53alNAH5 uXdN8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784945; x=1757389745; 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=DeCqlDgJAXTo+PaUiPidkJbRyZUMTQWsHiSFXAV1d2g=; b=v/078aJ/qlIUzf71nJjPMcEA0BZg3lZDS4YsKx6RmRvecmQrKi5D5jC6geffXMYyug zlLTj4mVg2FiYY1vRGfNjQnL2UdFgNDm3sjd59X3m+QnPnI6DeslxbNU0OyfARVWhppJ d/QdoC70KNzTulu51IJdMMaLpUWDbh47jw1kpku72pFGUxjLJemauRX4LYnmcQTGOwQm mC+CdWfygW6XUiU9yleCNJzK8btw1pI51rg9pIdoAEpemnySKgk99NRnK209leknpGCl 00gmBtLW6AJmBY3ywuGgZfV6lmlCBztz7yQ86GOIoyRhmnk1mwZZ0UrbtOcYDcE216Ug elFw== X-Gm-Message-State: AOJu0Yyb7Lm7FG2jep5Jt/FU5Y4+N2JOarARN3quXNgASby8/DGYSMvE Tzp6/3ALd3lq97fxsYKQY1iaaiwo3m+iKrDSBgGtwyU+g5f4AoPgiM49cPWhnr24PvGpM0ZbaRY WtwGTsAB5h5QX+YAan6lFZm0OBh37A5D7mH6xSrM0ho8sh8QsuJ/JxmXhf8msbzXQzVh0 X-Gm-Gg: ASbGncuaDghIyLNkcnC/0KWw74N8Z63dlzY9DDlaqPUhS4DcrhlQnJurdgdxR/Vbpgw GKVqj25zD9hpHmzdNJNnYUYNrPDfL4fgjfdjoVUSFr6qMez/ZRAg+qy/Cv2jaTg6EAE6KOhfW7q N6zaC0v94Yn28ArNU77zrsI8KQfGrdah1l8o35tHFh/N0O1aGgdKS7TFqpL+tCRn78Bue22dc5P pFpS7Sel4Xn3BWLhPpdIVhFtUD7KoGQwnssQ/FiIC+VQsig29WPAQfjYYG+ZwCrz6eVyR+86tQz 89+GcKQJlTAVNG85GxTUg2Jl3A1CNxa3j3WIqr+Ib+xQrZGpgc5KdAqzEuZNd5nrlH8AtxM1lfz l9VAgU7ALLMjE X-Received: by 2002:a17:90b:3148:b0:327:5360:5b1a with SMTP id 98e67ed59e1d1-3281570ba17mr15276046a91.37.1756784945584; Mon, 01 Sep 2025 20:49:05 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHj4Z5U+aPlc7Bz4dugjyzvyP/RtsoSvrM0+mWWq+CCfXGmw1ZNZDkCz/dA6ZykvE8bMfBkww== X-Received: by 2002:a17:90b:3148:b0:327:5360:5b1a with SMTP id 98e67ed59e1d1-3281570ba17mr15276011a91.37.1756784945100; Mon, 01 Sep 2025 20:49: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 Subject: [PATCH v2 11/39] target/hexagon: Add representation to count cycles Date: Mon, 1 Sep 2025 20:48:19 -0700 Message-Id: <20250902034847.1948010-12-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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: m6CFTEvJpAnmQxJIPJ5dVrGnLI4r39wb X-Proofpoint-ORIG-GUID: m6CFTEvJpAnmQxJIPJ5dVrGnLI4r39wb X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAyNyBTYWx0ZWRfX2LoNYQdQP/8f qJISL7IKs4bIPiElPC9ts0zWzT8B+VcbV7IGbJatFUlvOHRxP6a1ksNi9Nv2AuLr33jLa55ELF+ YnSsFyAh8ti84w7X3ZTCkJTcptTpHxWXfR6LJ5/MGfPKeQeBuJYvBR0Lzmb+2lwHYhmOSwU48Kr 33Nou5XPLiirDMs5SecNI+sgcYnQlHGLkoeQtbytXvypZ44ibHsuK+6zzzEAdpiTOv5GklwHr+y 7oKRuFH6/2AG2789m1N0Sd39ri+lWRoA4ipBYoG+OeeaLIyRouq6Vd4vVTJeYqW0U1QW5yw3q8N dgI2A5OJsigAJvdrcdr2G4xB+dzr348FC7jTBrxehdTCHzVoGLlZ/Thl31TRybHNeCYeKFwIYkr c5pbbL// X-Authority-Analysis: v=2.4 cv=NrDRc9dJ c=1 sm=1 tr=0 ts=68b66933 cx=c_pps a=vVfyC5vLCtgYJKYeQD43oA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=ZWj4HUzx-Y95D6cr9toA: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 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: 1756786202981124100 From: Brian Cain The PCYCLE register can be enabled to indicate accumulated clock cycles. Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 2 +- target/hexagon/machine.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index a0448eba44..8046f7bff0 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -128,7 +128,7 @@ typedef struct CPUArchState { target_ulong stack_start; =20 uint8_t slot_cancelled; - + uint64_t t_cycle_count; #ifndef CONFIG_USER_ONLY /* Some system registers are per thread and some are global. */ target_ulong t_sreg[NUM_SREGS]; diff --git a/target/hexagon/machine.c b/target/hexagon/machine.c index f3d2bdf41d..7c471d1f3b 100644 --- a/target/hexagon/machine.c +++ b/target/hexagon/machine.c @@ -35,7 +35,6 @@ const VMStateInfo vmstate_info_hex_tlb_ptr =3D { .put =3D put_hex_tlb_ptr, }; =20 - const VMStateDescription vmstate_hexagon_cpu =3D { .name =3D "cpu", .version_id =3D 0, @@ -56,6 +55,7 @@ const VMStateDescription vmstate_hexagon_cpu =3D { VMSTATE_UINTTL(env.wait_next_pc, HexagonCPU), VMSTATE_POINTER(env.hex_tlb, HexagonCPU, 0, vmstate_info_hex_tlb_ptr, CPUHexagonTLBContext *), + VMSTATE_UINT64(env.t_cycle_count, HexagonCPU), =20 VMSTATE_END_OF_LIST() }, --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=1756784985; cv=none; d=zohomail.com; s=zohoarc; b=QGB6uO/k4Yy1yZVktvC5seEQmF1Jxz9zayDE6synC3VDsZBt/Ile/6T6FDgP+7t17pi9WOcF3r70axmv0SXi7UKQaMbEtmORPpr4tkDJGUjetNLaQ3JksalidFHhl97xRfU7eQu4Ad9V1I3+P+TZLVt1Rm8QWqldJwUWjVimA+8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756784985; 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=m8oqFVnMH2IVmyeIFRru/rqdGObfY/30qKnuYmfKufk=; b=LA7YlomX7bEEp2rRiS3fkcav+BXgFHxLyjGVR8eETpzI2ChLBAIxHFBKF75c91+uoMTQorOjmqMyvOarM4jQE8JVJDo9olmFQE8PNIp8LyfHu13aEh5NPJH/Ubjf8o2FC2fiO6CBgnPWh/XSY32xFci13MCQ/rfTFgomEbdHto8= 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 1756784985466794.6128498775154; Mon, 1 Sep 2025 20:49:45 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI1B-0001Dk-FR; Mon, 01 Sep 2025 23:49:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI19-0001Ae-V0 for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:11 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI17-0004cE-J5 for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:11 -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 5822RlRd012433 for ; Tue, 2 Sep 2025 03:49:08 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 48uq0eej8s-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:49:08 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-327b5e7f2f6so7154487a91.2 for ; Mon, 01 Sep 2025 20:49: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 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.49.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:49: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= m8oqFVnMH2IVmyeIFRru/rqdGObfY/30qKnuYmfKufk=; b=KaI1g2+3aLbRlj2O BHKVDHFAVfplx01rQCWKn6piiAK/OvZjc3zn/VEdba5SGBwOjKGi5yTu4wvO4Vvx Db94a4AyIfVv534JEJ5UjCEe6dcpU2uxRtzDuiAV921P6ZJjKdp+ZUgYyTIrurZZ EVbR1qloMrGbREFnIwwHQYhPJznV2QHBKoCxG8G0dlAnwhe0smZW+MnYEcyo1yim 65sRsgI9Uq3m6isGu+tUQcTxYVaDnNhohO+Ny90RHeu5JEU33Zb/OX5oYdV46/L9 EH+bLRyV9MNVdw8pdQPk87MMcCNWjBrmJI/vpDZeGWvusG0iu00m1GmHIy44cBWm E6u06Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784947; x=1757389747; 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=m8oqFVnMH2IVmyeIFRru/rqdGObfY/30qKnuYmfKufk=; b=HQIsIuhQopKvHCSRNVfLQu1J6ibRQ00sjoHFjICBcLQgAwKYplIczB3/mybqSXAhhv sU8VYBmYkh18hvtJV6UELuxqvzcA0ZO/ntPHO9Jo4exu3UcYTttm6LDKokY/DclZraD7 /PCqmPQzwYGoGmMGDNFxRUO8JYHKjiYbtv5SdPUZbofaqOAIIXu9CftRVZY0as81yoLB AasoQS0attQN3/VeilGmoU1IhIWlGAe8QKJEm8BQzlmlK3bSPPSlbYD8SCHPKziR+Czw uaeZeKVPXGM30M0W1FA/mTFWuc+9zmKfgfcJBDyFzCOzeGmrqFj2QUXTaaqwTqO2g2JR l/rQ== X-Gm-Message-State: AOJu0Yx7td2eVWeqXwRnGDrm0hPiDL4nrN9QVfC54+gKPs183UqourXl kMfLy/1t6Xfmc/HVc4tal1wSzMnaMLtErG2zeMBiH3lWWpQvTxWG+/cRYArgW3/KJtNRuqSSh/s b2vIVVJAJ6a8jANvGb5/SPSe99wRizaQNAfE60zKPfLtDtxmypUqYVQxurYQbZKzmNDoP X-Gm-Gg: ASbGncsVebt05U30cwzDvNttclYxaQAffSLuS7yifIwX+LulT43IOdJW+VcIEIMV8g6 60g18BDJxWDIJTx6Xa1tfqelXh938iwSG56v+bbIl+YLzvx+r4xloYmuCE31JIr2Liu4pnS1Gtz b/Cg1qpJ1BE/RoOHGSMuwmxPJ9Yiruq8MJ78Sjnlhl5dHcYcsig1vx20j9fd7rWrjrOhgX8T+3R nve9SYEdZXjecu15ewnGaH8yv051erz76VINXMNITz5Ab8LDEpMXkAZRsZwp2BkFu1LoaC1//jU ufRyDoQCJkclo7a/nIk1YCGYcQQ9ZbZpjYl5u+iAdlVQAx8lYJv/Lc7SzT1srC1xHXJ2LRsLqno PeeLFL0wPKjwv X-Received: by 2002:a17:90b:3c0e:b0:327:c9a4:de71 with SMTP id 98e67ed59e1d1-32815412248mr14757889a91.6.1756784946854; Mon, 01 Sep 2025 20:49:06 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGmzbQra0wuPhSl/0Tm7FUufO2GzxSXSmQD5F2vF/ZaNlBdqq1eexGbgnSkaZOPCLaCnvkotA== X-Received: by 2002:a17:90b:3c0e:b0:327:c9a4:de71 with SMTP id 98e67ed59e1d1-32815412248mr14757854a91.6.1756784946312; Mon, 01 Sep 2025 20:49: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 , Sid Manning Subject: [PATCH v2 12/39] target/hexagon: Add implementation of cycle counters Date: Mon, 1 Sep 2025 20:48:20 -0700 Message-Id: <20250902034847.1948010-13-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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: mh_kfLRS4gDctVyyXtEUKwMqFKptaeBq X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAwNCBTYWx0ZWRfX8RzNmU54tGJ2 +RVb3fDaZeOMWs70PqJwRYsHZJAfEH06/HbANVSa9gHwIXDeWW0ybLL+AInvXAzyn4L4+Vxsj+U YmbbLhT9TeOeIeaQdQhoroBiAce2DDcfrTHNCTQJ1obkSsqG5zc0ycuRY8Tjos8rh8W+Mu6YCZc yIlGOGYdlhT53TuEwdyxtNfZN7xhETufgm43ja3PBxPXUEwfLlRnJtC/iCsyOlhcFNgJG5v6b7D RdTaX0cZDGa/OURdK8xtKo6Xx4+EHKEDtcd9mfjui2iwNM/fMlirRDek48v4jNzu04EgexMmDUg mzf9BSjiZWv5vANmXE25W+0sCTy5SH1Cm4//GAjod26IIspEguuvQNpEXpMb3M3R276Jce1i3bp HnvDWIQq X-Proofpoint-ORIG-GUID: mh_kfLRS4gDctVyyXtEUKwMqFKptaeBq X-Authority-Analysis: v=2.4 cv=ea09f6EH c=1 sm=1 tr=0 ts=68b66934 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=6WCJHhgCVYwEtMrCBCEA: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: , 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: 1756784986627116600 From: Brian Cain The PCYCLE register is available in system mode, but only increments when the SYSCFG.PCYCLEEN field is set. The UPCYCLE register is available in user mode and we model it unconditionally in linux-user emulation, as if the system had enabled PCYCCLEEN. For now, the model is very crudely counting the sum of instructions executed among vCPUs, regardless of how the instructions were actually scheduled. This is sufficient for demonstrating a rough level of activity but will be particularly misleading for benchmarks and performance tuning. We may decide to revisit this model in order to give more a bit more fidelity, though without a cache model it would still be very far from accurate. Co-authored-by: Sid Manning Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 3 +++ target/hexagon/translate.h | 2 ++ target/hexagon/cpu.c | 11 +++++++++++ target/hexagon/cpu_helper.c | 33 +++++++++++++++++++++++++++++---- target/hexagon/translate.c | 27 +++++++++++++++++++++++++++ 5 files changed, 72 insertions(+), 4 deletions(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 8046f7bff0..354e9e9cbf 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -28,6 +28,7 @@ #include "cpu-qom.h" #include "exec/cpu-common.h" #include "exec/cpu-defs.h" +#include "exec/cpu-common.h" #include "hex_regs.h" #include "mmvec/mmvec.h" #include "hw/registerfields.h" @@ -37,6 +38,7 @@ #endif =20 #ifndef CONFIG_USER_ONLY +#include "reg_fields.h" typedef struct CPUHexagonTLBContext CPUHexagonTLBContext; #endif =20 @@ -200,6 +202,7 @@ struct ArchCPU { =20 FIELD(TB_FLAGS, IS_TIGHT_LOOP, 0, 1) FIELD(TB_FLAGS, MMU_INDEX, 1, 3) +FIELD(TB_FLAGS, PCYCLE_ENABLED, 4, 1) =20 G_NORETURN void hexagon_raise_exception_err(CPUHexagonState *env, uint32_t exception, diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index c3806fe068..0bdf526a9e 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -83,6 +83,8 @@ typedef struct DisasContext { TCGv new_pred_value[NUM_PREGS]; TCGv branch_taken; TCGv dczero_addr; + bool pcycle_enabled; + uint32_t num_cycles; } DisasContext; =20 bool is_gather_store_insn(DisasContext *ctx); diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index e35ac92402..b7e21c913f 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -281,9 +281,20 @@ static TCGTBCPUState hexagon_get_tb_cpu_state(CPUState= *cs) } =20 #ifndef CONFIG_USER_ONLY + target_ulong syscfg =3D arch_get_system_reg(env, HEX_SREG_SYSCFG); + + bool pcycle_enabled =3D extract32(syscfg, + reg_field_info[SYSCFG_PCYCLEEN].offset, + reg_field_info[SYSCFG_PCYCLEEN].width); + hex_flags =3D FIELD_DP32(hex_flags, TB_FLAGS, MMU_INDEX, cpu_mmu_index(env_cpu(env), false)); + + if (pcycle_enabled) { + hex_flags =3D FIELD_DP32(hex_flags, TB_FLAGS, PCYCLE_ENABLED, 1); + } #else + hex_flags =3D FIELD_DP32(hex_flags, TB_FLAGS, PCYCLE_ENABLED, true); hex_flags =3D FIELD_DP32(hex_flags, TB_FLAGS, MMU_INDEX, MMU_USER_IDX); #endif =20 diff --git a/target/hexagon/cpu_helper.c b/target/hexagon/cpu_helper.c index fc49fe7883..f540eadef4 100644 --- a/target/hexagon/cpu_helper.c +++ b/target/hexagon/cpu_helper.c @@ -91,17 +91,30 @@ void arch_set_system_reg_masked(CPUHexagonState *env, u= int32_t reg, =20 uint64_t hexagon_get_sys_pcycle_count(CPUHexagonState *env) { - g_assert_not_reached(); + BQL_LOCK_GUARD(); + uint64_t cycles =3D 0; + CPUState *cs; + CPU_FOREACH(cs) { + CPUHexagonState *thread_env =3D cpu_env(cs); + cycles +=3D thread_env->t_cycle_count; + } +#ifndef CONFIG_USER_ONLY + HexagonCPU *cpu =3D env_archcpu(env); + return (cpu->globalregs ? hexagon_globalreg_get_pcycle_base(cpu) : 0) + + cycles; +#else + return cycles; +#endif } =20 uint32_t hexagon_get_sys_pcycle_count_high(CPUHexagonState *env) { - g_assert_not_reached(); + return hexagon_get_sys_pcycle_count(env) >> 32; } =20 uint32_t hexagon_get_sys_pcycle_count_low(CPUHexagonState *env) { - g_assert_not_reached(); + return extract64(hexagon_get_sys_pcycle_count(env), 0, 32); } =20 void hexagon_set_sys_pcycle_count_high(CPUHexagonState *env, @@ -118,7 +131,19 @@ void hexagon_set_sys_pcycle_count_low(CPUHexagonState = *env, =20 void hexagon_set_sys_pcycle_count(CPUHexagonState *env, uint64_t cycles) { - g_assert_not_reached(); + BQL_LOCK_GUARD(); +#ifndef CONFIG_USER_ONLY + HexagonCPU *cpu =3D env_archcpu(env); + if (cpu->globalregs) { + hexagon_globalreg_set_pcycle_base(cpu, cycles); + } +#endif + + CPUState *cs; + CPU_FOREACH(cs) { + CPUHexagonState *thread_env =3D cpu_env(cs); + thread_env->t_cycle_count =3D 0; + } } =20 void hexagon_modify_ssr(CPUHexagonState *env, uint32_t new, uint32_t old) diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index b74ddc2acb..a71fa33ccf 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -57,6 +57,7 @@ TCGv_i64 hex_store_val64[STORES_MAX]; TCGv hex_llsc_addr; TCGv hex_llsc_val; TCGv_i64 hex_llsc_val_i64; +TCGv_i64 hex_cycle_count; TCGv hex_vstore_addr[VSTORES_MAX]; TCGv hex_vstore_size[VSTORES_MAX]; TCGv hex_vstore_pending[VSTORES_MAX]; @@ -124,6 +125,22 @@ static void gen_exception_raw(int excp) gen_helper_raise_exception(tcg_env, tcg_constant_i32(excp)); } =20 +#ifndef CONFIG_USER_ONLY +static inline void gen_precise_exception(int excp, target_ulong PC) +{ + tcg_gen_movi_tl(hex_cause_code, excp); + gen_exception(HEX_EVENT_PRECISE, PC); +} + +static inline void gen_pcycle_counters(DisasContext *ctx) +{ + if (ctx->pcycle_enabled) { + tcg_gen_addi_i64(hex_cycle_count, hex_cycle_count, ctx->num_cycles= ); + ctx->num_cycles =3D 0; + } +} +#endif + static void gen_exec_counters(DisasContext *ctx) { tcg_gen_addi_tl(hex_gpr[HEX_REG_QEMU_PKT_CNT], @@ -132,6 +149,10 @@ static void gen_exec_counters(DisasContext *ctx) hex_gpr[HEX_REG_QEMU_INSN_CNT], ctx->num_insns); tcg_gen_addi_tl(hex_gpr[HEX_REG_QEMU_HVX_CNT], hex_gpr[HEX_REG_QEMU_HVX_CNT], ctx->num_hvx_insns); + +#ifndef CONFIG_USER_ONLY + gen_pcycle_counters(ctx); +#endif } =20 static bool use_goto_tb(DisasContext *ctx, target_ulong dest) @@ -784,6 +805,7 @@ static void gen_commit_hvx(DisasContext *ctx) } } =20 +static const int PCYCLES_PER_PACKET =3D 3; static void update_exec_counters(DisasContext *ctx) { Packet *pkt =3D ctx->pkt; @@ -803,6 +825,7 @@ static void update_exec_counters(DisasContext *ctx) } =20 ctx->num_packets++; + ctx->num_cycles +=3D PCYCLES_PER_PACKET; ctx->num_insns +=3D num_real_insns; ctx->num_hvx_insns +=3D num_hvx_insns; } @@ -945,11 +968,13 @@ static void hexagon_tr_init_disas_context(DisasContex= tBase *dcbase, =20 ctx->mem_idx =3D FIELD_EX32(hex_flags, TB_FLAGS, MMU_INDEX); ctx->num_packets =3D 0; + ctx->num_cycles =3D 0; ctx->num_insns =3D 0; ctx->num_hvx_insns =3D 0; ctx->branch_cond =3D TCG_COND_NEVER; ctx->is_tight_loop =3D FIELD_EX32(hex_flags, TB_FLAGS, IS_TIGHT_LOOP); ctx->short_circuit =3D hex_cpu->short_circuit; + ctx->pcycle_enabled =3D FIELD_EX32(hex_flags, TB_FLAGS, PCYCLE_ENABLED= ); } =20 static void hexagon_tr_tb_start(DisasContextBase *db, CPUState *cpu) @@ -1076,6 +1101,8 @@ void hexagon_translate_init(void) offsetof(CPUHexagonState, llsc_val), "llsc_val"); hex_llsc_val_i64 =3D tcg_global_mem_new_i64(tcg_env, offsetof(CPUHexagonState, llsc_val_i64), "llsc_val_i64"); + hex_cycle_count =3D tcg_global_mem_new_i64(tcg_env, + offsetof(CPUHexagonState, t_cycle_count), "t_cycle_count"); for (i =3D 0; i < STORES_MAX; i++) { snprintf(store_addr_names[i], NAME_LEN, "store_addr_%d", i); hex_store_addr[i] =3D tcg_global_mem_new(tcg_env, --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=1756785037; cv=none; d=zohomail.com; s=zohoarc; b=GoRv1XoBibJRKLxRSLBm3yUTb9WHTudxN/dWBXMEMkzujPauTH9+iF1GQ88eQ4W8LiF7dEOYneaDxDRAM1k4lV3GoA1ft4eBIwBaoR0l4HzAQJOWDA3GSYaI+J2Soh3/dyetr0G7dYavsmT/ey5r8C2YCrHXxLjB6ivFrhYc/DA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785037; 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=sBQQre50aOiB7vIhrSM03mlP7zl+XdQuOhi8uZVOGJY=; b=IwPvqIWuxhtAud/+WSeB9DuiPpxHxiS35MiCJhq+9124egcsXuVVr3ib0yGlAszEVVntRqIpO1ivSiCVmgA04EBnXykOJpP/s/DLFZBuNl20GD/PvJ5tei359kf6s5g/S6yaekIIx3dgtRgm0VciZj/klx/FREauEiH1hNFOuTM= 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 1756785037836794.9512812953454; Mon, 1 Sep 2025 20:50:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI1F-0001Vw-CM; Mon, 01 Sep 2025 23:49:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI1C-0001Kp-Le for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:15 -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 1utI18-0004cK-Fl for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:14 -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 5822RkRi016546 for ; Tue, 2 Sep 2025 03:49: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 48utk8x89c-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:49:09 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-329745d6b89so4038080a91.1 for ; Mon, 01 Sep 2025 20:49: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 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.49.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:49: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= sBQQre50aOiB7vIhrSM03mlP7zl+XdQuOhi8uZVOGJY=; b=dB+wgAMYE3n7Zy8z C/dFQQ29XxF4PwUI7LtIfNlTp27r2Csv8qS3jBJ+uz3UQk3a3eQE5zmhsvAH4vNw BF6Dd/ZVdk6O2c9H2DL+KUBchkMAIzfZ0sKVHqcN4fhTHEq9U7qVDhG3S2wz9wzz YH5cd8SPQ7FqIWWypY2Gv1kD+ekVjJ8cb+7NFcxRLduKdwVMHs+nzeCAVtB0naV9 VOu+NbA/BY+WjRYbhheLNpIKPzoqLhj1RoBgcIpjMhKe6+n1yQJrHi9qAt7Q15FZ hKthjoNn4jdkVJvEnj7SdQOxlc5mW1VfVJfDeITlsnEa2E/mTzXMc/TmEA+z7NpC xDV+MA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784948; x=1757389748; 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=sBQQre50aOiB7vIhrSM03mlP7zl+XdQuOhi8uZVOGJY=; b=JK+S3PYqIOlLBwj9JnItbmtTrVh/0mf6nZq1fEBWDVOKtmPuFKChTmMdxXrpjjtZYe mPmXGHtjJcjI9vj5C7kUYBUPev6RgoPnL4XodJzb7gzm4/qSWvKiGNxA3LKt9RONmKVR 8p/osHBQ3fIKJox6+BLH+ure9CkBou0Kk/YmqdW3JKm+URTOmx5mwVMCThGkdoc5UgRi WdejibNeMcQZmNyoqqauJUK6f5l8qP+zVgADdT6lMeEYg49Qzo2bRBwGhI+3xSB8A4cT sQiNmckxLeTg7Sbnezw5vD/1RhY6gDfcO9kGxejQOe7YUZ4H2a/qVvBpwuJhluWPedV6 SwGA== X-Gm-Message-State: AOJu0YxWMC3Fw5usfLjTxffwir9VTaEtiDzyxLZD2L3yMOxnWc2Mwrdk SW4mdxLqVupYa/IHqIsIyCRGyiVzV6sX/NetaNf5DRkwlh9AkpUBgPND0kYDA/jSdcbztwMyg7H 6Ij8MiZqPbQQfDHicxfG3Ba24KbZQw509a6UQfNiFOYxZ8BiKZ26Fhp3roBdXcECTN4Pu X-Gm-Gg: ASbGncuMEhV1voJUxp+Bhh0/w/essRuXGnWdV839DdW1DhlFAXdtXCq24I+U54HQtRP ELUPe9gJLbYIq5r80YP7yrwaGiZgk2Ls0/v3oCz90XLsc8IT2dhapN8qhXw7g7FXGdVGV2Y2bxI kLc9Zi0JQpeEtj/tl5+qDrS1ErfntHwOlDANfhvimu34hie0fcs/hrDKgIlp1k/VAA+9LfDsSfl yGTHTMApxdzuS6cwDPANZ4YMNBROgmVOWd0CA5kJNEotJRbQUPu2GtQDZVv/THUh9YoJkz2LOMB c99j8IjY3O46sa+84M0PzkT8EsvpHL1HYuWbpvdjB5OlLib64dMawPbnI0SXHfhs7AZl+y2rTnY rP+m/Bko0gSQw X-Received: by 2002:a17:90b:48c1:b0:325:42ad:29d2 with SMTP id 98e67ed59e1d1-328156e3815mr11234311a91.31.1756784948039; Mon, 01 Sep 2025 20:49:08 -0700 (PDT) X-Google-Smtp-Source: AGHT+IF+v8UicN8WFYzSYE3EA74AcJHrvV2ZVJWd3c+53FSzblSTJQb1FsyEU5JQJ6ruez+0z5/cig== X-Received: by 2002:a17:90b:48c1:b0:325:42ad:29d2 with SMTP id 98e67ed59e1d1-328156e3815mr11234274a91.31.1756784947369; Mon, 01 Sep 2025 20:49: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 13/39] target/hexagon: Implement modify_syscfg() Date: Mon, 1 Sep 2025 20:48:21 -0700 Message-Id: <20250902034847.1948010-14-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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: gjs5jccxCXztUAnFtCMm6KO3yjmJUZ27 X-Proofpoint-ORIG-GUID: gjs5jccxCXztUAnFtCMm6KO3yjmJUZ27 X-Authority-Analysis: v=2.4 cv=ccnSrmDM c=1 sm=1 tr=0 ts=68b66935 cx=c_pps a=0uOsjrqzRL749jD1oC5vDA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=HvbDY8S8NUK629Yy7K4A:9 a=QEXdDO2ut3YA:10 a=mQ_c8vxmzFEMiUWkPHU9:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDA0MiBTYWx0ZWRfX3N9n9T2MGWip 7TdIequtclLEx1aqyep8OK/xnH+Jg5Qbb8ZA7s+UKY/p1HJZ0/isvguCFd8cudnhcDvrYTDTIif fYZQxD6dfX7iAAuOuriw1v2FzpeeNHew3V/9H8hBTa1xeGBMgDeIG5fMYKFNLgoQzwYC3ksFx9v GYhhMe5yJfDruqp4Q9WC9PnECvPMctVsrXF3Si53nCm9gBdjQKWeUP0pFEGvAX7yl7hiY8dAM+F c1CnmF+EEbuj3kL7Dj8GUs5hY2Vi6JfULtldQbAy516Jz2y28CwqCYZLCjLnxZINOG+VoI86rZg OLq5qaqgSvAgfHlBVdLXQPPfeRbi+aSsRoHsZzbFJ7wN3QMbPGTCdwaNXyOTaF/IdLwA0LIC4nB kAu5QpEg 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: 1756785039144116600 From: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/op_helper.c | 47 +++++++++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index a8b44a73bd..53bf0591ec 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1531,7 +1531,52 @@ static bool handle_pmu_sreg_write(CPUHexagonState *e= nv, uint32_t reg, =20 static void modify_syscfg(CPUHexagonState *env, uint32_t val) { - g_assert_not_reached(); + g_assert(bql_locked()); + + uint32_t syscfg_read_only_mask =3D 0x80001c00; + uint32_t old =3D arch_get_system_reg(env, HEX_SREG_SYSCFG); + uint8_t old_en =3D GET_SYSCFG_FIELD(SYSCFG_PCYCLEEN, old); + uint8_t old_gie =3D GET_SYSCFG_FIELD(SYSCFG_GIE, old); + uint8_t new_en =3D GET_SYSCFG_FIELD(SYSCFG_PCYCLEEN, val); + uint8_t new_gie =3D GET_SYSCFG_FIELD(SYSCFG_GIE, val); + CPUState *cs; + target_ulong old_mmu_enable =3D GET_SYSCFG_FIELD(SYSCFG_MMUEN, old); + target_ulong new_mmu_enable =3D + GET_SYSCFG_FIELD(SYSCFG_MMUEN, val); + + /* clear read-only bits if they are set in the new value. */ + val &=3D ~syscfg_read_only_mask; + /* if read-only are currently set in syscfg keep them set. */ + val |=3D (old & syscfg_read_only_mask); + + arch_set_system_reg(env, HEX_SREG_SYSCFG, val); + + /* Check for change in MMU enable */ + if (new_mmu_enable && !old_mmu_enable) { + hex_mmu_on(env); + } else if (!new_mmu_enable && old_mmu_enable) { + hex_mmu_off(env); + } + + /* Changing pcycle enable from 0 to 1 resets the counters */ + if (old_en =3D=3D 0 && new_en =3D=3D 1) { + CPU_FOREACH(cs) { + cpu_env(cs)->t_cycle_count =3D 0; + } + } + + /* See if global interrupts are turned on */ + if (!old_gie && new_gie) { + qemu_log_mask(CPU_LOG_INT, "%s: global interrupts enabled\n", __fu= nc__); + hex_interrupt_update(env); + } + + if (qemu_loglevel_mask(LOG_UNIMP)) { + int new_v2x =3D GET_SYSCFG_FIELD(SYSCFG_V2X, val); + if (!new_v2x) { + qemu_log("HVX: 64 byte vector length is unsupported\n"); + } + } } =20 static uint32_t hexagon_find_last_irq(CPUHexagonState *env, uint32_t vid) --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=1756785084; cv=none; d=zohomail.com; s=zohoarc; b=nltI/X6JFcP9Va+paRriLe40LPW8mdT+0kna/0Z+1LiYfRtdE3dQ64o3E0SoFZgHDvpzcaMVu1zJF4093vuFojoEJ2kuPFDAYkc3+aMU3yCWRds9jFc3D9SX0SKvsFnmKsVDVeZf1Gs+UTlucInrFgzNKRBLVHhfYFSkVaNmJIg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785084; 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=cLWFkb3nl5Au3ZR8hgsFgnwErjVodt7BKXfOhc1PsQI=; b=CDuySYw78hDQ/Jk0xEM7nb794hoSSM+kDhtLFSsY7ypyRBpl3GlXNOLx9fyc8ffDkezZe/QBIX77W4JZo+EtlqUx5D1n3y94PyqnbSyOFjRZG3JpLll2hB///h4rSLRAxYe4oeQEgmn+FODVDad1SK3IV60VoS/CDGisqlcZXzE= 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 175678508429467.57612170880407; Mon, 1 Sep 2025 20:51:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI1V-0002rt-EO; Mon, 01 Sep 2025 23:49: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 1utI1T-0002ih-1j for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:31 -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 1utI1M-0004cT-JK for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:30 -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 5822SDqN030680 for ; Tue, 2 Sep 2025 03:49:11 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 48ura8pc2t-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:49:11 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-324e41e946eso8954264a91.0 for ; Mon, 01 Sep 2025 20:49: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 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.49.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:49: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= cLWFkb3nl5Au3ZR8hgsFgnwErjVodt7BKXfOhc1PsQI=; b=kNq4Z96IQAQ/S68P ADr8ybgSpb1mxv6vZ5zFgwIJV1m2fDggyPARkHOHqMort8e/iaba1tRR7KP1hMQl 0teKMGOgLtk3tOTxRjZ7stQ82XP0vG8FH4Cs7aSP3cSIPI4xg3s5TKaJkWKKTsiw hWvO4FRbNJRIQQKv+eatJ8fEBlNUNbRzlgWmrGiaQIBECwxSYsbS/ASG6vDLEdo3 MRIKjwPtJPC8FN0GlC9gjM3dNoXEfeKYijQN4tVNqIlZPnk+KqlKHm72SqZBox4p TUiBpm4QTEphqjg2kHgBnulenk2s1ulxH7F9PLPnpQrKfMLDxK8LA2rX69WMLcS+ kPspYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784949; x=1757389749; 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=cLWFkb3nl5Au3ZR8hgsFgnwErjVodt7BKXfOhc1PsQI=; b=D0cqX8zxYCpYn95F0tggz1AggV2Wsea4n55FWkdoaMizogWHzfP5UE4ZJH5KHRtLOi OMp1wQbHThZ16vtt+ob6zhoFjiJJuElEMSvNSoGeFrXAQaFoIfYOYaP2Istgt1JrETt1 80MNj2PO1QZ2gT3YRBTwZzpLSdb5+CqK5gHwZjYCvYutNfrUAVP6ODhpZg9cUxkUpHUf LPHph0JZ7D20KVXHpj/BuhuO6gJjJCDmBP7Zk1y4fgf2EieTqt6B0prs7S2kOBM1ICch ENe4nsfuC+89/oFFVgfihv8XBEgsExCGqeD133B42r1fwylIY2LJdTS2RkfHWX66KAtU TwvA== X-Gm-Message-State: AOJu0YzNK7OM5/GYF8xx3u5dqgJYL6cpxOmf5NSDCykpiMzwACh7wMH8 VjvX+/s3aGmPyKEBDOWV1eNPjvvK9AzvuxdQ0BFaXceqm74hTtSmbN2rEFnCIejhZDFI3CRtkaO yYD/tY7rX3yaPIX9JftqZ/T4y4r9yP5fSy2hUo8/3ezEpvmPS4bID49PJbuEtioRyJsvn X-Gm-Gg: ASbGncvpWGQ8RmeqOhRaSvooc5fujsPrUrvNvETlJKlAVqrwPnmNucQOTUdphyxd9xz +VV3PQ4zzHsxsWvOTH3fjlQr46a4N0edH0I9v+7Kxs/JQeBx4aF8YemQHaAsntFyFX3vyFc2aYE 5ZfT6lbkRoyjcnKPDtrJGVTPUv38/C46MVD84C0KcDI7H/A9rWWz0yks85mKlN8S43jOSPecKQ1 VhEcxEgta30z6LVfFS9mzhg0hPtP0TdcabouLo4ESRE0ZzyCAVaeyf424BA1dYbsHip3xRodlFr AW/TSmQ17fNSxfPQciwKPKdVQfXBb+5xOc/WRDjaUeRjLB/PkGk/9y7zZOCDbC55LfYbG3SYYTD dD2InmEpfxGqU X-Received: by 2002:a17:90b:5865:b0:328:a89:3dc8 with SMTP id 98e67ed59e1d1-3281543cc5emr13077785a91.14.1756784949463; Mon, 01 Sep 2025 20:49:09 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH43z12HDdLvSldUaH7FrdFrn1xJIwtrCn92F+JNZqHBKkK7pLOU+BtkN6QZTNfnxiRy5QSPw== X-Received: by 2002:a17:90b:5865:b0:328:a89:3dc8 with SMTP id 98e67ed59e1d1-3281543cc5emr13077746a91.14.1756784948881; Mon, 01 Sep 2025 20:49: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 Subject: [PATCH v2 14/39] target/hexagon: Implement hex_tlb_entry_get_perm() Date: Mon, 1 Sep 2025 20:48:22 -0700 Message-Id: <20250902034847.1948010-15-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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: EBvxuRwb8J0f-91zzYZ5k5QSOlSCkrWU X-Proofpoint-GUID: EBvxuRwb8J0f-91zzYZ5k5QSOlSCkrWU X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAyMCBTYWx0ZWRfX/2vnmosje1rB Ufz5Ivn1CIRpkaqAxllvwv+qwnD1Sq1woL0ijlSiA4AlHKaav4BIw2zeWRabRmj4mxmeoA0DOgs xervxpHsXWudOIZdfj4XDI5eXqeWcOtMIdve8ciu8rRzV0/AIOOtyRxX+Tjft5ds2yWoFk9+/u8 3FQ8DQ9HqbDXHzH0woPZ7a576EWnKUSocqlCNsIAiH5wT8RqqrKoBhLbRTDVjAIUymj8kIoWyQd FPUqFD40zCU4dgB/UBYEHzhycw7F0UT6SOmygHk21yy5g7QAKvrOWEMzr0fNaeMRVMabk/+7N8Q C0bHwJ9wHrAdgvxCgqYaUGZzrp0G4p1r2ISyIb2JyQeV062bKuA9MhF0MXSqC+g2Vtqp39SXt4E 1Ioc0eDI X-Authority-Analysis: v=2.4 cv=VNndn8PX c=1 sm=1 tr=0 ts=68b66937 cx=c_pps a=RP+M6JBNLl+fLTcSJhASfg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=iQLeoY74lB-_Jzq76T0A: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 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: 1756785085772116600 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- linux-user/hexagon/cpu_loop.c | 7 +++++ target/hexagon/hex_mmu.c | 54 ++++++++++++++++++++++++++++++++++- 2 files changed, 60 insertions(+), 1 deletion(-) diff --git a/linux-user/hexagon/cpu_loop.c b/linux-user/hexagon/cpu_loop.c index 28ad8073f6..7853819f77 100644 --- a/linux-user/hexagon/cpu_loop.c +++ b/linux-user/hexagon/cpu_loop.c @@ -63,6 +63,13 @@ void cpu_loop(CPUHexagonState *env) break; case HEX_EVENT_PRECISE: switch (env->cause_code) { + case HEX_CAUSE_FETCH_NO_UPAGE: + case HEX_CAUSE_PRIV_NO_UREAD: + case HEX_CAUSE_PRIV_NO_UWRITE: + force_sig_fault(TARGET_SIGSEGV, TARGET_SEGV_MAPERR, + env->gpr[HEX_REG_PC]); + + break; case HEX_CAUSE_PRIV_USER_NO_GINSN: case HEX_CAUSE_PRIV_USER_NO_SINSN: case HEX_CAUSE_INVALID_PACKET: diff --git a/target/hexagon/hex_mmu.c b/target/hexagon/hex_mmu.c index 332e7f4029..8f9f16158f 100644 --- a/target/hexagon/hex_mmu.c +++ b/target/hexagon/hex_mmu.c @@ -264,7 +264,59 @@ static inline void hex_tlb_entry_get_perm(CPUHexagonSt= ate *env, uint64_t entry, int mmu_idx, int *prot, int32_t *excp) { - g_assert_not_reached(); + bool perm_x =3D GET_TLB_FIELD(entry, PTE_X); + bool perm_w =3D GET_TLB_FIELD(entry, PTE_W); + bool perm_r =3D GET_TLB_FIELD(entry, PTE_R); + bool perm_u =3D GET_TLB_FIELD(entry, PTE_U); + bool user_idx =3D mmu_idx =3D=3D MMU_USER_IDX; + + if (mmu_idx =3D=3D MMU_KERNEL_IDX) { + *prot =3D PAGE_VALID | PAGE_READ | PAGE_WRITE | PAGE_EXEC; + return; + } + + *prot =3D PAGE_VALID; + switch (access_type) { + case MMU_INST_FETCH: + if (user_idx && !perm_u) { + *excp =3D HEX_EVENT_PRECISE; + env->cause_code =3D HEX_CAUSE_FETCH_NO_UPAGE; + } else if (!perm_x) { + *excp =3D HEX_EVENT_PRECISE; + env->cause_code =3D HEX_CAUSE_FETCH_NO_XPAGE; + } + break; + case MMU_DATA_LOAD: + if (user_idx && !perm_u) { + *excp =3D HEX_EVENT_PRECISE; + env->cause_code =3D HEX_CAUSE_PRIV_NO_UREAD; + } else if (!perm_r) { + *excp =3D HEX_EVENT_PRECISE; + env->cause_code =3D HEX_CAUSE_PRIV_NO_READ; + } + break; + case MMU_DATA_STORE: + if (user_idx && !perm_u) { + *excp =3D HEX_EVENT_PRECISE; + env->cause_code =3D HEX_CAUSE_PRIV_NO_UWRITE; + } else if (!perm_w) { + *excp =3D HEX_EVENT_PRECISE; + env->cause_code =3D HEX_CAUSE_PRIV_NO_WRITE; + } + break; + } + + if (!user_idx || perm_u) { + if (perm_x) { + *prot |=3D PAGE_EXEC; + } + if (perm_r) { + *prot |=3D PAGE_READ; + } + if (perm_w) { + *prot |=3D PAGE_WRITE; + } + } } =20 static inline bool hex_tlb_entry_match(CPUHexagonState *env, uint64_t entr= y, --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=1756785215; cv=none; d=zohomail.com; s=zohoarc; b=Q7zvrxIQhMVCTlRjA4H2whXXoN6tn7Vm3x4m1xxyLAJ/v3cDTvZJaJikA2mxTkLtuHeT8T9N/rjeOMoKokW029+70o/RHMjxk1FVZNfuPI9iWMrKct8eZgOFQ0fLiThmsNpyuK0uOCp/ZVRBfFNQCeOi606UTvjlbnpH/9xXDu4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785215; 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=CJuOupbgdsqA+pi78Xi2O5QXXxVvLH3IJDFEIz0DsJ0=; b=iKxQ0mrPw8nSb/C4Zd84hMtH2cZQSJSIjjJWsxv/fC8hcs3TOQe88VWnI7J2IS3fm8e2g3ur0seo6xSJBsszJANKpEUUtU2UbAREF8GvrIxDRSfVDE6pKGz4eL1E3z+y4pMwaQRDuL90nu3Zf3aVRcYHYT0nGod3bxr4lUxljpU= 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 17567852159361014.0045246089403; Mon, 1 Sep 2025 20:53:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI1Q-0002Tk-Qk; Mon, 01 Sep 2025 23:49:29 -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 1utI1O-0002Cm-AT for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49: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 1utI1M-0004cc-AB for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:26 -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 5822S2eF013176 for ; Tue, 2 Sep 2025 03:49:11 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 48ut2fea4y-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:49:11 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-329745d6b89so4038122a91.1 for ; Mon, 01 Sep 2025 20:49: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 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.49.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:49:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= CJuOupbgdsqA+pi78Xi2O5QXXxVvLH3IJDFEIz0DsJ0=; b=J+NY3mcto9Oer37x dU0fJ/91GiFo27mooJolt4HNuQwL1RRpzg3bF1r6U7LrLpAEkHi9tTtNQN2RXC/2 SiJ3CuXfZXP5jcofP09EqNmjS4uJQt3JxE+dtZN7uQxP/jtEviS9B8+ZfPTkOHmt 8zLFEm557eXO+E9urzpHAG6kfuRN7ySMVujyIweXcg3xwBcDGcpZ+k0lPmPUKxdS +XbbD8N/FcFdZcLXD/xOs0CjxTlPDBTeG0CvZW+xMIrZEmgd0vV6S/X/5NeydWFT CMOoyZB7vPAurm56jqVziu4tcaqXph8yFUwU7yA5a1FaHdBfQMAIX9UhDG/rDFab DFxnVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784951; x=1757389751; 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=CJuOupbgdsqA+pi78Xi2O5QXXxVvLH3IJDFEIz0DsJ0=; b=df9OyZrKVoG8Tfi1evPYk/xjcUZtvdOuNEJqfkPgp9I2uxRorgb04mEhS6wOIQBy/f KDEuoD3oC3+sVO5HqEXhY+l2l32Hc8AarmjKjgFW0VIbQjlKHaUCP9+C60x5pr1iwvRw tbg0AzAcZWeLmjQalfhfER8zU2QWFIibhH8Jx6FVhsJic4uAMtqkvkAdLU5t3gwdJxx6 Q3WW0CBHWwXy0E0CW3jMys3Oy9JEKy/0EHZKK42vzWlj1/dovXgIBlz4ceuJU/pgTa95 e8l1ODrAOB3LcElvmNOQHZW5JXxSfLJX2XpK9tHJc/Y2z+MFQMpydl8MOE8W9P+GBch7 6kpw== X-Gm-Message-State: AOJu0YzcG9OzfTjmRRnLbZ0H9xua6rpdwSQWBK5CAc1Y/R4gLu+pugUo AqcIy/0L6wolihiLpa911iGgOR4ateNDL5Laim8SfQNnfBYS8AtIl+73TbSTpgIeyL+NVUCRBiv 6CVzvD13eoEiTIQWFMVLag6ePyjNfL1g+uB0M31n2VTwzuaZlPOhoWjoA3RMd2QPWiUkP X-Gm-Gg: ASbGncsyp+EnnH833fMRBwlOl3u6ib0Wt4dKrzXWsCdopAshhzRx04TgYEwfRMNTYL9 vhGrSn7NMbPjrK63iLw0rCSg/DHdqZYxblUzMKk/R1HoSRXVf/XkIABlZVBZghbS+GCuNp3HinL jGm5t5sW/dgo1xkIpuECpaqQUpwf7AN57lasiNPsVzTybuIQw/FBK6DbG474C1YmH8eNFQHMpKz yHvcbEkCscEhTri+UCPTbscaNmABQH2HvWV8CZ6xYnHIEeP4PUPjj8eJoqLMu3BSm/ZR9NPECNg cy4+In8g0ybYz/XennFogTYiGzQHOh+uKRFBha5zQZ7mQnYBF5A1Zuo6b/kenIf/6twYqjBcXVx vamCoaCMLxH+u X-Received: by 2002:a17:90b:3ec8:b0:327:9b36:87cf with SMTP id 98e67ed59e1d1-328156e38cemr13183361a91.30.1756784950514; Mon, 01 Sep 2025 20:49:10 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH1szhJRPBpoXy65D3PDut5Rc9ySbqb/19Gxw416p87KaCnVDMZl5nAPR3apZrpCbYkD+tJPw== X-Received: by 2002:a17:90b:3ec8:b0:327:9b36:87cf with SMTP id 98e67ed59e1d1-328156e38cemr13183331a91.30.1756784950012; Mon, 01 Sep 2025 20:49:10 -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/39] target/hexagon: Implement hex_tlb_lookup_by_asid() Date: Mon, 1 Sep 2025 20:48:23 -0700 Message-Id: <20250902034847.1948010-16-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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: AW1haW4tMjUwODMwMDAzOCBTYWx0ZWRfXy6pvLfngpKQ6 Ygj60ty4SgW05NHLh1IWYGbqd16ypAYLS1pk2Y4xXSAjJAitzvqRpKi6gVIYsitmitlUy0i/Jo0 NRYnDbRrclSAE3+dNNqwMEFjcP/vbubBtJ1ZN7IBm5FL1Dj5hh/Opl9hp6/mIsfCC1HkgeY8hLF x+24NOIrohBjPJRKOovqJawPk8yDINqZLaJ/v5i5RhFuxqUjtYQ5C9kdhgfz90HEOe5d7EcjYa0 B5dqZGGpz2a22kZ/IUHEZbzTDayuqX9gwm7xpyq1GGUrkbIpKEhYqWDnOhj3BIGVpMrgw3IfgNr wW4awwrJVv3J530fTLbxXc7Esvg1RdPqouhI/IO2jJYKtvO6picU7Qn6H1I8+K+8n0AYm9W44ED CXjEUNBd X-Proofpoint-ORIG-GUID: En4Chdkop4fT68LFpoUQGWlWocIpYndi X-Proofpoint-GUID: En4Chdkop4fT68LFpoUQGWlWocIpYndi X-Authority-Analysis: v=2.4 cv=U7iSDfru c=1 sm=1 tr=0 ts=68b66937 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=RILK8-s9AHSsMlXh9a0A: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 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: 1756785217542116600 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/hex_mmu.c | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/target/hexagon/hex_mmu.c b/target/hexagon/hex_mmu.c index 8f9f16158f..476796265b 100644 --- a/target/hexagon/hex_mmu.c +++ b/target/hexagon/hex_mmu.c @@ -359,7 +359,32 @@ bool hex_tlb_find_match(CPUHexagonState *env, target_u= long VA, static uint32_t hex_tlb_lookup_by_asid(CPUHexagonState *env, uint32_t asid, uint32_t VA) { - g_assert_not_reached(); + uint32_t not_found =3D 0x80000000; + uint32_t idx =3D not_found; + 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_noperm(entry, asid, VA)) { + if (idx !=3D not_found) { + env->cause_code =3D HEX_CAUSE_IMPRECISE_MULTI_TLB_MATCH; + break; + } + idx =3D i; + } + } + + if (idx =3D=3D not_found) { + qemu_log_mask(CPU_LOG_MMU, + "%s: 0x%" PRIx32 ", 0x%08" PRIx32 " =3D> NOT FOUND\n= ", + __func__, asid, VA); + } else { + qemu_log_mask(CPU_LOG_MMU, "%s: 0x%" PRIx32 ", 0x%08" PRIx32 " =3D= > %d\n", + __func__, asid, VA, idx); + } + + return idx; } =20 /* Called from tlbp instruction */ @@ -461,7 +486,8 @@ static inline void print_thread_states(const char *str) =20 void hex_tlb_lock(CPUHexagonState *env) { - qemu_log_mask(CPU_LOG_MMU, "hex_tlb_lock: %d\n", env->threadId); + qemu_log_mask(CPU_LOG_MMU, "hex_tlb_lock: " TARGET_FMT_ld "\n", + env->threadId); BQL_LOCK_GUARD(); g_assert((env->tlb_lock_count =3D=3D 0) || (env->tlb_lock_count =3D=3D= 1)); =20 --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=1756785647; cv=none; d=zohomail.com; s=zohoarc; b=IbgvkN+dW43iSyn+0oi/QjvhmfRCBKBuz4Hacj6YK5lsdj+kg1iMObVsXUAG+fJLJnJpC+5mrVGG5fyBFpO1HyUJrF2si2NEjqeo5gc/CBZtZkUDw3wwYpsV+qpylRjnR/1u39jtH0ow8DH11VEvhpO2Q3fwGNtcz315e0l4kKg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785647; 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=rKZUkZXmHGjGkE0fk0NlHjSjG0NxZ4KmA4MKCdCGXvI=; b=ED6Ve956Ids5yeSr5OZ7dkVzjyheGGZCaKaKFeOntIj2K2zmdYcbf/XubpanX4DXwED8AZUeQvYpkjRwtVJgGc8YylavZRhikHL4wxaWPT/BXbaDKiPaMhqbx3r3sqVRmVSnp59MU8PcQX/6jEj6nYCShTK9xozMKBx9fdHNeXE= 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 1756785647092758.2099809780289; Mon, 1 Sep 2025 21:00:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI1i-00048u-BD; Mon, 01 Sep 2025 23:49:46 -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 1utI1U-0002mg-L6 for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:32 -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 1utI1N-0004ck-3T for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:32 -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 5822S44V030068 for ; Tue, 2 Sep 2025 03:49:14 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 48w8wy26sd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:49:13 +0000 (GMT) Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-325b2959306so8238326a91.0 for ; Mon, 01 Sep 2025 20:49:13 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.49.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:49:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= rKZUkZXmHGjGkE0fk0NlHjSjG0NxZ4KmA4MKCdCGXvI=; b=NNYRcAawFMNsq4lC dzSwwb/Xr8No1K5pZQ3T5tViYNlEAF8j3BwXxzSgCO2yVzl213zS2nkUVDrPlt+E c9ihHuOo7DZLVTtYJSKO8xHvRSRZ3V8FfT/x3UrwGC++a1Ij9IHRFJmdjN0JJMcO T769AtChOlBG5UHlXrno5XekwRKz5grjyS0RDBqfcpTXa++Mar16q+4BHezSWm9+ gDivdC4RReJQADUa0If2v3PFUhHAPv4UV79yVQRHFipfumv4lrog4ZHkswi+dpAH w6X6Pn7hUF2tAMGn46Yhg8XRmvdG1iq4vJ1TLgxEpR7DFX7gRDZHlSycDVrgKhKe dji2xg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784952; x=1757389752; 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=rKZUkZXmHGjGkE0fk0NlHjSjG0NxZ4KmA4MKCdCGXvI=; b=aGvCcdZxCgLxTiJ5W3wVXyUmwp8mdL+1Bhww9ASgo4dH72h2YUlhl8jCwaLAAgbVfb gK7KswKaLKJMhVtdE6yIoQbwFM4LTILjpf0WCSBDRNvZtMR7kefiqU7ZrBcBZos0fIiD FwkcB9UkIkGT9TRi7vHeyiBEXWQCMuc65rwlMA6aHoJAGbtl8OsF98a1+7KIQxxTGdU9 /vowzYZPFTM7pvyRZVS53e4I7u1uTZIQP1ypkqSYk0DQWZAeP39vIy1sbJCYH0Y7fnao 9FZX7PD5jTQQprNbkyyz7xwWUcKmz2AAjiDGsMfbUgKlBfIE7LGtHrZ0fUKiaUZ20ebq tvUA== X-Gm-Message-State: AOJu0YxSgMCxY4EA/2kt9NREeYhsJJVbCfnp6tE9ZEuU+Z7DcPGfFNWS rqzc6XcYY5aM9YBuiJ7UChdssn17YSKzIwNjohxKNZ7PvF10I78K+utlBonxfxAtQzAbo/XJIjU ysnoUvkJr+3mZL2vYFjEopytb6zRsLH0Qgcl+wUSlXgjmH/zK+DNloSQA4iONSA674SHH X-Gm-Gg: ASbGncvFA17swBHvTSZHzPGUIWix/KkLlPPTYq7xDRO/wpCrx10XsaZgdIUpmoUVhK3 MisBo1dHDimz4iYDftJh6eqChgH4rqsaGe8mMLHc2PNbcSEqRp5bY116G38Md3iIVT0wiflGVTv HD2PUJ6qcdttFz47ceXTZVK3a9z1pNah/ojSHJ0/6X8ZQl8TAXnu75tz1TMbteg/MfUcTkVQLPU s79Nl0QSZB53YqoikR6sS00GNqJzY+7PeUnFpXKOC+6sn3JogEQV9cnaw62YJKGZftdgVI8LVRU MMWdVFqZ/0fKPKYE2zilsKHNTqcTU0Ej+eFqSOW09zxVFKhObOWwAzXc0SkhhSvQzKxJLzAzOsn 26S5qVMdzPb6a X-Received: by 2002:a17:90a:d40d:b0:327:e8d0:cb21 with SMTP id 98e67ed59e1d1-328156f8332mr14717507a91.35.1756784952202; Mon, 01 Sep 2025 20:49:12 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGMSt1JSZxr5UiJVZjSlADCpt+E6I0nabSNzx1/n5yV67e7++dDvnYkFuhz/eFAbS5I0BDPKg== X-Received: by 2002:a17:90a:d40d:b0:327:e8d0:cb21 with SMTP id 98e67ed59e1d1-328156f8332mr14717471a91.35.1756784951625; Mon, 01 Sep 2025 20:49:11 -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 , Mike Lambert Subject: [PATCH v2 16/39] target/hexagon: Implement software interrupt Date: Mon, 1 Sep 2025 20:48:24 -0700 Message-Id: <20250902034847.1948010-17-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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=68b66939 cx=c_pps a=vVfyC5vLCtgYJKYeQD43oA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=Befq45VWmXQcvcAHDQIA:9 a=QEXdDO2ut3YA:10 a=rl5im9kqc5Lf4LNbBjHf:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: NxAViiKcFtvHsy_x6IKx5XidqtcAiSdV X-Proofpoint-ORIG-GUID: NxAViiKcFtvHsy_x6IKx5XidqtcAiSdV X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTAxMDEwMSBTYWx0ZWRfXxuEpSJg+33mj oBWdAbznqiG9ivYm9Qv2pzbwq2KvKR0kBRYCiFkMzoWTqyPJAMojJsSRfVb3c1pBTOlYbq8E75z dDi/S/s7RNOvaGO+EC6KwAwtuGBjJa3O8LXkTEx0zLC62LoRhOqoTTV4B4QpP4gbSn89Vk7aSRC oWNPrC4QGp3ugXd2qGA+n1JQcHAmIBQQ8IdBd89piS+r7QWHUb5YI+0VusMApljBDNWUWYV+TTx dDM0fWlw/ncPNBZo46YyuYy9iH8qXAffxpXV0jaZFFFmiaCl+wkZEOAyGeVdRWoqk3aemBl0xlP KO5q9BYp+CPNHafaEZndyY89Cor5pn0ro3cxDDiFbSO+ce03yGsMPEPAR/fLcFVTBVgSYolYwyS 24lU4/GG 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: 1756785649366116600 From: Brian Cain Co-authored-by: Mike Lambert Signed-off-by: Brian Cain --- target/hexagon/hexswi.h | 17 +++ target/hexagon/cpu.c | 2 + target/hexagon/hexswi.c | 256 +++++++++++++++++++++++++++++++++++++ target/hexagon/op_helper.c | 1 + 4 files changed, 276 insertions(+) create mode 100644 target/hexagon/hexswi.h create mode 100644 target/hexagon/hexswi.c diff --git a/target/hexagon/hexswi.h b/target/hexagon/hexswi.h new file mode 100644 index 0000000000..5d232cb06c --- /dev/null +++ b/target/hexagon/hexswi.h @@ -0,0 +1,17 @@ +/* + * Copyright(c) 2025 Qualcomm Innovation Center, Inc. All Rights Reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HEXSWI_H +#define HEXSWI_H + + +#include "cpu.h" + +void hexagon_cpu_do_interrupt(CPUState *cpu); +void register_trap_exception(CPUHexagonState *env, int type, int imm, + target_ulong PC); + +#endif /* HEXSWI_H */ diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index b7e21c913f..22e21d401b 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -33,6 +33,8 @@ #include "sys_macros.h" #include "accel/tcg/cpu-ldst.h" #include "qemu/main-loop.h" +#include "hex_interrupts.h" +#include "hexswi.h" #endif =20 static void hexagon_v66_cpu_init(Object *obj) { } diff --git a/target/hexagon/hexswi.c b/target/hexagon/hexswi.c new file mode 100644 index 0000000000..373133ed7f --- /dev/null +++ b/target/hexagon/hexswi.c @@ -0,0 +1,256 @@ +/* + * 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 "exec/helper-proto.h" +#include "qemu/log.h" +#include "qemu/main-loop.h" +#include "arch.h" +#include "internal.h" +#include "macros.h" +#include "sys_macros.h" +#include "tcg/tcg-op.h" +#include "hex_mmu.h" +#include "hexswi.h" + +#ifdef CONFIG_USER_ONLY +#error "This file is only used in system emulation" +#endif + +static void set_addresses(CPUHexagonState *env, target_ulong pc_offset, + target_ulong exception_index) + +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t evb =3D cpu->globalregs ? + arch_get_system_reg(env, HEX_SREG_EVB) : + cpu->boot_addr; + arch_set_system_reg(env, HEX_SREG_ELR, + arch_get_thread_reg(env, HEX_REG_PC) + pc_offset); + arch_set_thread_reg(env, HEX_REG_PC, evb | (exception_index << 2)); +} + +static const char *event_name[] =3D { + [HEX_EVENT_RESET] =3D "HEX_EVENT_RESET", + [HEX_EVENT_IMPRECISE] =3D "HEX_EVENT_IMPRECISE", + [HEX_EVENT_TLB_MISS_X] =3D "HEX_EVENT_TLB_MISS_X", + [HEX_EVENT_TLB_MISS_RW] =3D "HEX_EVENT_TLB_MISS_RW", + [HEX_EVENT_TRAP0] =3D "HEX_EVENT_TRAP0", + [HEX_EVENT_TRAP1] =3D "HEX_EVENT_TRAP1", + [HEX_EVENT_FPTRAP] =3D "HEX_EVENT_FPTRAP", + [HEX_EVENT_DEBUG] =3D "HEX_EVENT_DEBUG", + [HEX_EVENT_INT0] =3D "HEX_EVENT_INT0", + [HEX_EVENT_INT1] =3D "HEX_EVENT_INT1", + [HEX_EVENT_INT2] =3D "HEX_EVENT_INT2", + [HEX_EVENT_INT3] =3D "HEX_EVENT_INT3", + [HEX_EVENT_INT4] =3D "HEX_EVENT_INT4", + [HEX_EVENT_INT5] =3D "HEX_EVENT_INT5", + [HEX_EVENT_INT6] =3D "HEX_EVENT_INT6", + [HEX_EVENT_INT7] =3D "HEX_EVENT_INT7", + [HEX_EVENT_INT8] =3D "HEX_EVENT_INT8", + [HEX_EVENT_INT9] =3D "HEX_EVENT_INT9", + [HEX_EVENT_INTA] =3D "HEX_EVENT_INTA", + [HEX_EVENT_INTB] =3D "HEX_EVENT_INTB", + [HEX_EVENT_INTC] =3D "HEX_EVENT_INTC", + [HEX_EVENT_INTD] =3D "HEX_EVENT_INTD", + [HEX_EVENT_INTE] =3D "HEX_EVENT_INTE", + [HEX_EVENT_INTF] =3D "HEX_EVENT_INTF" +}; + +void hexagon_cpu_do_interrupt(CPUState *cs) + +{ + CPUHexagonState *env =3D cpu_env(cs); + uint32_t ssr; + + BQL_LOCK_GUARD(); + + qemu_log_mask(CPU_LOG_INT, "\t%s: event 0x%x:%s, cause 0x%x(%d)\n", + __func__, cs->exception_index, + event_name[cs->exception_index], env->cause_code, + env->cause_code); + + env->llsc_addr =3D ~0; + + ssr =3D arch_get_system_reg(env, HEX_SREG_SSR); + if (GET_SSR_FIELD(SSR_EX, ssr) =3D=3D 1) { + arch_set_system_reg(env, HEX_SREG_DIAG, env->cause_code); + env->cause_code =3D HEX_CAUSE_DOUBLE_EXCEPT; + cs->exception_index =3D HEX_EVENT_PRECISE; + } + + switch (cs->exception_index) { + case HEX_EVENT_TRAP0: + if (env->cause_code =3D=3D 0) { + qemu_log_mask(LOG_UNIMP, + "trap0 is unhandled, no semihosting available\n"= ); + } + + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 4, cs->exception_index); + break; + + case HEX_EVENT_TRAP1: + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 4, cs->exception_index); + break; + + case HEX_EVENT_TLB_MISS_X: + switch (env->cause_code) { + case HEX_CAUSE_TLBMISSX_CAUSE_NORMAL: + case HEX_CAUSE_TLBMISSX_CAUSE_NEXTPAGE: + qemu_log_mask(CPU_LOG_MMU, + "TLB miss EX exception (0x%x) caught: " + "Cause code (0x%x) " + "TID =3D 0x%" PRIx32 ", PC =3D 0x%" PRIx32 + ", BADVA =3D 0x%" PRIx32 "\n", + cs->exception_index, env->cause_code, env->threa= dId, + arch_get_thread_reg(env, HEX_REG_PC), + arch_get_system_reg(env, HEX_SREG_BADVA)); + + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + break; + + default: + cpu_abort(cs, + "1:Hexagon exception %d/0x%x: " + "Unknown cause code %d/0x%x\n", + cs->exception_index, cs->exception_index, env->cause= _code, + env->cause_code); + break; + } + break; + + case HEX_EVENT_TLB_MISS_RW: + switch (env->cause_code) { + case HEX_CAUSE_TLBMISSRW_CAUSE_READ: + case HEX_CAUSE_TLBMISSRW_CAUSE_WRITE: + qemu_log_mask(CPU_LOG_MMU, + "TLB miss RW exception (0x%x) caught: " + "Cause code (0x%x) " + "TID =3D 0x%" PRIx32 ", PC =3D 0x%" PRIx32 + ", BADVA =3D 0x%" PRIx32 "\n", + cs->exception_index, env->cause_code, env->threa= dId, + env->gpr[HEX_REG_PC], + arch_get_system_reg(env, HEX_SREG_BADVA)); + + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + /* env->sreg[HEX_SREG_BADVA] is set when the exception is rais= ed */ + break; + + default: + cpu_abort(cs, + "2:Hexagon exception %d/0x%x: " + "Unknown cause code %d/0x%x\n", + cs->exception_index, cs->exception_index, env->cause= _code, + env->cause_code); + break; + } + break; + + case HEX_EVENT_FPTRAP: + hexagon_ssr_set_cause(env, env->cause_code); + arch_set_thread_reg(env, HEX_REG_PC, + arch_get_system_reg(env, HEX_SREG_EVB) | + (cs->exception_index << 2)); + break; + + case HEX_EVENT_DEBUG: + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + qemu_log_mask(LOG_UNIMP, "single-step exception is not handled\n"); + break; + + case HEX_EVENT_PRECISE: + switch (env->cause_code) { + case HEX_CAUSE_FETCH_NO_XPAGE: + case HEX_CAUSE_FETCH_NO_UPAGE: + case HEX_CAUSE_PRIV_NO_READ: + case HEX_CAUSE_PRIV_NO_UREAD: + case HEX_CAUSE_PRIV_NO_WRITE: + case HEX_CAUSE_PRIV_NO_UWRITE: + case HEX_CAUSE_MISALIGNED_LOAD: + case HEX_CAUSE_MISALIGNED_STORE: + case HEX_CAUSE_PC_NOT_ALIGNED: + qemu_log_mask(CPU_LOG_MMU, + "MMU permission exception (0x%x) caught: " + "Cause code (0x%x) " + "TID =3D 0x%" PRIx32 ", PC =3D 0x%" PRIx32 + ", BADVA =3D 0x%" PRIx32 "\n", + cs->exception_index, env->cause_code, env->threa= dId, + env->gpr[HEX_REG_PC], + arch_get_system_reg(env, HEX_SREG_BADVA)); + + + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + /* env->sreg[HEX_SREG_BADVA] is set when the exception is rais= ed */ + break; + + case HEX_CAUSE_DOUBLE_EXCEPT: + case HEX_CAUSE_PRIV_USER_NO_SINSN: + case HEX_CAUSE_PRIV_USER_NO_GINSN: + case HEX_CAUSE_INVALID_OPCODE: + case HEX_CAUSE_NO_COPROC_ENABLE: + case HEX_CAUSE_NO_COPROC2_ENABLE: + case HEX_CAUSE_UNSUPORTED_HVX_64B: + case HEX_CAUSE_REG_WRITE_CONFLICT: + case HEX_CAUSE_VWCTRL_WINDOW_MISS: + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + break; + + case HEX_CAUSE_COPROC_LDST: + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + break; + + case HEX_CAUSE_STACK_LIMIT: + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + break; + + default: + cpu_abort(cs, + "3:Hexagon exception %d/0x%x: " + "Unknown cause code %d/0x%x\n", + cs->exception_index, cs->exception_index, env->cause= _code, + env->cause_code); + break; + } + break; + + case HEX_EVENT_IMPRECISE: + qemu_log_mask(LOG_UNIMP, + "Imprecise exception: this case is not yet handled"); + break; + + default: + qemu_log_mask(LOG_UNIMP, + "Hexagon Unsupported exception 0x%x/0x%x\n", + cs->exception_index, env->cause_code); + break; + } + + cs->exception_index =3D HEX_EVENT_NONE; +} + +void register_trap_exception(CPUHexagonState *env, int traptype, int imm, + target_ulong PC) +{ + CPUState *cs =3D env_cpu(env); + + cs->exception_index =3D (traptype =3D=3D 0) ? HEX_EVENT_TRAP0 : HEX_EV= ENT_TRAP1; + ASSERT_DIRECT_TO_GUEST_UNSET(env, cs->exception_index); + + env->cause_code =3D imm; + env->gpr[HEX_REG_PC] =3D PC; + cpu_loop_exit(cs); +} diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 53bf0591ec..569e8271b3 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -40,6 +40,7 @@ #include "hex_mmu.h" #include "hw/intc/l2vic.h" #include "hex_interrupts.h" +#include "hexswi.h" #endif =20 #define SF_BIAS 127 --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=1756785116; cv=none; d=zohomail.com; s=zohoarc; b=R7KNjLBN55lTvxF3FSC4QBcfsqR5+FsDRV6++Q1SruPxlUKsIimO/tUr7Lmb89Vuq6AvobP3jdStQJV8yr56ogXxErk/br38Svhs9/VJx0MGgLC5IV9+pL4JMbcZ34iEKQOIgCTHD6C1iRHCk3kORfYHeWm12IH1SHvxt6mnoOU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785116; 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=OzqQaAVC4JLXZ59GObACu1itKuL/W7b+voEqUxwhJ5c=; b=GDDjPNv3b/hiGoBGI62+VVUWG6TAnCuUJ2v5tVmPQq5RuTHWr7rqnIiLDuzAN/RqPtd0JxQzvRViUzCdBf2EEqcKZ92oF1t1hVmc5ZxUcQikvVgZopkt5whTpAZsc/gMiRtwkvzxZYwCL1a+22FQbrT6bhUEbSC1Ji4zkWCetyI= 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 1756785116660799.7233933427038; Mon, 1 Sep 2025 20:51:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI1T-0002iU-TC; Mon, 01 Sep 2025 23:49:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI1R-0002YZ-I2 for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:29 -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 1utI1O-0004d1-CV for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:29 -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 5822SgYr016289 for ; Tue, 2 Sep 2025 03:49:15 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 48urvyxdjw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:49:15 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-329b750757aso1302288a91.1 for ; Mon, 01 Sep 2025 20:49:15 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.49.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:49:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= OzqQaAVC4JLXZ59GObACu1itKuL/W7b+voEqUxwhJ5c=; b=XoMBJVmSz2Mx6d25 vjfk7brUkZxtknQbAquE196J2nkD9G3ysjNYTE1We8PjNRlvt53NtY0NorGygJrg JFxsIk7bFP/FeFT2n0YUVyreOD7GrpQKPD7/P4ru3bvLj8ABwH2x0MRtrm/QOnFD uhLU9Z7feFhKAEALILfYMgGq03AkoJyS1KsWchVmc3rVHh20Ri7koDz540JGLzJQ FH+1kpB7yikPi5jJ0jtKqlvIv4nuS3gEQsrhiQP5MFwuozGjhmuHDSX7YJWzYL7/ aHTerSu3z/O4CIYkZJ94vb2lYcqqqm49u2E68vl6UTv5rPX+zwMsztbHLYRGVxQP K7aofw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784954; x=1757389754; 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=OzqQaAVC4JLXZ59GObACu1itKuL/W7b+voEqUxwhJ5c=; b=kunpsMTRS5O8AIEqEycpfr6e4qed65Ed6zU9kAeTTCwKiw8DwKV/xbFEO6S5Wyl5kV /o7SobGSPnQzENAxK3vTAkcW1vm0IJ8Tc/MsQViXjQhhHdPQrx5OgNEnHWRqUwU3YAvY b7VChqDFf1iEc34bLjyM4fuWmTndmCAcOy1qF/y/jX8XzseDJ5wesrq8pqU0f2ecku2p LDCb3XQnF7LJfnW4syCHTRjX9K7644jWhlJo4ZgvciA89oImoBSmzVmq7HwwxYjMJlxe HKWis4Z7nevJBUtVAYxkIoXhtIkXuuxJXNHXgMcWZbrnDSa0hxxWUHb31J9HepaglRfi 2m4g== X-Gm-Message-State: AOJu0YyqbggOardgugo2pAK59qOB489tTdkrq9KWYaGzNYMkhbCnGtp9 cbQoZshaHQGR8O9SL7MUgAXb7x6VvcnJ9P/sTxd3CBT5IXI5fZ2+JepXX2T23C9jcsyXdBUoLWG 6bnDnQpf0U+yAdxUAhVEMvB7z/NGMfRCT8XCvrAluRvHWPtSo9BFWjjKVAv++2xElwF1v X-Gm-Gg: ASbGncuTNNWNFznB9FZv/y3H/wlE+h/VQzHYWFQNe/uP/SuCuqgv63BQTUw+4TeJnCG 5NM/kiB3TFI2BXPgMwriaEZ+bXiLmQS1y68vCRmEx7QaHpqGSBuYNrQWdIFkrIL8phRq49cRKw0 rVwWyI03OC3a+GaCmFQLkDJlPlz4byCfW1ppHoJtIeLt4gqenSRb47Wa2DJWyh/apiM3IoSghVr lwfB6I/dAiTW3os758YklIYQgYKeQO7Nl0lmoYVyaOvTkmNoSAOwguAPvZAV0WZ1Zu0zDuOIcZg Eex9Ygu8XRtrcfylU6UQ+VcleM/7hpdetYE2LgfdhoyW8xUC7B8fVfz3REPUnhPgMMdMxVC/KE9 j9LmN2aOapuDW X-Received: by 2002:a17:90b:35c6:b0:321:b7ed:75f2 with SMTP id 98e67ed59e1d1-328156e0537mr12152375a91.32.1756784953830; Mon, 01 Sep 2025 20:49:13 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFrSxv+u1n8za1j0mEwVor4LSkVmsIgkVIHqa5bGgdloWwALmm0h3SsoGraJ1+kvxDTb9OlFg== X-Received: by 2002:a17:90b:35c6:b0:321:b7ed:75f2 with SMTP id 98e67ed59e1d1-328156e0537mr12152338a91.32.1756784953164; Mon, 01 Sep 2025 20:49:13 -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/39] target/hexagon: Implement exec_interrupt, set_irq Date: Mon, 1 Sep 2025 20:48:25 -0700 Message-Id: <20250902034847.1948010-18-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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: 4FlcUM72S7R90ueK7smDRUdAlvU7s7nI X-Proofpoint-ORIG-GUID: 4FlcUM72S7R90ueK7smDRUdAlvU7s7nI X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAyNyBTYWx0ZWRfXxPwoEiidez4Y ie1oJaDTbknU7TLf6BHNb1ZHrq7N42P0dQJPmi9LQv2XqMv5DDjN/rW6F8EU83CbbiUdza6Z9RA 9DAw3+ydlZh98uK8w9U/1xcmzg2RnZnwAfegkWFi0KOeMOPE36dHGwzqD38Rv+HHE4hP0oP1XdR LMcq10h4Vpm5IyZFsA/UtDkYeC7XRGSUMrIHg8J/NsGT0fugjdKeONsExcfVz1qN7j80L1YVzPE /iqonm5sp/KauKDK7S3b2kegimWEdvwi2bYM/Zhh10NUeFHIpZcU5YjJDOjehE15eSvMYeCjr6m mtnWjNqkQ595YUcA2M0m0xLhxz6ZwRe9VkF9pwK5BTlwTvCsr+mOvQE2SbOHKpOxAmxLYvXvAca aJ+sa8Xo X-Authority-Analysis: v=2.4 cv=NrDRc9dJ c=1 sm=1 tr=0 ts=68b6693b 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=rIkxbyxcx7-xiWOMinkA: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 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: 1756785118285116600 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 5 +++ target/hexagon/cpu.c | 81 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 354e9e9cbf..1491313d06 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -209,6 +209,11 @@ G_NORETURN void hexagon_raise_exception_err(CPUHexagon= State *env, uintptr_t pc); =20 #ifndef CONFIG_USER_ONLY +/* + * @return true if the @a thread_env hardware thread is + * not stopped. + */ +bool hexagon_thread_is_enabled(CPUHexagonState *thread_env); 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); diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 22e21d401b..85ccf9893a 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -30,11 +30,13 @@ #include "hex_mmu.h" =20 #ifndef CONFIG_USER_ONLY +#include "macros.h" #include "sys_macros.h" #include "accel/tcg/cpu-ldst.h" #include "qemu/main-loop.h" #include "hex_interrupts.h" #include "hexswi.h" +#include "exec/cpu-interrupt.h" #endif =20 static void hexagon_v66_cpu_init(Object *obj) { } @@ -310,6 +312,34 @@ static void hexagon_cpu_synchronize_from_tb(CPUState *= cs, cpu_env(cs)->gpr[HEX_REG_PC] =3D tb->pc; } =20 +#ifndef CONFIG_USER_ONLY +bool hexagon_thread_is_enabled(CPUHexagonState *env) +{ + HexagonCPU *cpu =3D env_archcpu(env); + if (!cpu->globalregs) { + return true; + } + target_ulong modectl =3D arch_get_system_reg(env, HEX_SREG_MODECTL); + uint32_t thread_enabled_mask =3D GET_FIELD(MODECTL_E, modectl); + bool E_bit =3D thread_enabled_mask & (0x1 << env->threadId); + + return E_bit; +} +#endif + +static bool hexagon_cpu_has_work(CPUState *cs) +{ +#ifndef CONFIG_USER_ONLY + CPUHexagonState *env =3D cpu_env(cs); + + return hexagon_thread_is_enabled(env) && + (cs->interrupt_request & (CPU_INTERRUPT_HARD | CPU_INTERRUPT_SWI + | CPU_INTERRUPT_K0_UNLOCK | CPU_INTERRUPT_TLB_UNLOCK)); +#else + return true; +#endif +} + static void hexagon_restore_state_to_opc(CPUState *cs, const TranslationBlock *tb, const uint64_t *data) @@ -431,10 +461,58 @@ static int hexagon_cpu_mmu_index(CPUState *cs, bool i= fetch) return MMU_USER_IDX; } =20 +#if !defined(CONFIG_USER_ONLY) +static void hexagon_cpu_set_irq(void *opaque, int irq, int level) +{ + HexagonCPU *cpu =3D HEXAGON_CPU(opaque); + CPUState *cs =3D CPU(cpu); + CPUHexagonState *env =3D cpu_env(cs); + + switch (irq) { + case HEXAGON_CPU_IRQ_0 ... HEXAGON_CPU_IRQ_7: + qemu_log_mask(CPU_LOG_INT, "%s: irq %d, level %d\n", + __func__, irq, level); + if (level) { + hex_raise_interrupts(env, 1 << irq, CPU_INTERRUPT_HARD); + } + break; + default: + g_assert_not_reached(); + } +} +#endif + static void hexagon_cpu_init(Object *obj) { +#if !defined(CONFIG_USER_ONLY) + HexagonCPU *cpu =3D HEXAGON_CPU(obj); + qdev_init_gpio_in(DEVICE(cpu), hexagon_cpu_set_irq, 8); +#endif } =20 +#ifndef CONFIG_USER_ONLY + +static bool hexagon_cpu_exec_interrupt(CPUState *cs, int interrupt_request) +{ + CPUHexagonState *env =3D cpu_env(cs); + if (interrupt_request & CPU_INTERRUPT_TLB_UNLOCK) { + cs->halted =3D false; + cpu_reset_interrupt(cs, CPU_INTERRUPT_TLB_UNLOCK); + return true; + } + if (interrupt_request & CPU_INTERRUPT_K0_UNLOCK) { + cs->halted =3D false; + cpu_reset_interrupt(cs, CPU_INTERRUPT_K0_UNLOCK); + return true; + } + if (interrupt_request & (CPU_INTERRUPT_HARD | CPU_INTERRUPT_SWI)) { + return hex_check_interrupts(env); + } + return false; +} + +#endif + static const TCGCPUOps hexagon_tcg_ops =3D { /* MTTCG not yet supported: require strict ordering */ .guest_default_memory_order =3D TCG_MO_ALL, @@ -445,6 +523,9 @@ static const TCGCPUOps hexagon_tcg_ops =3D { .synchronize_from_tb =3D hexagon_cpu_synchronize_from_tb, .restore_state_to_opc =3D hexagon_restore_state_to_opc, .mmu_index =3D hexagon_cpu_mmu_index, +#if !defined(CONFIG_USER_ONLY) + .cpu_exec_interrupt =3D hexagon_cpu_exec_interrupt, +#endif /* !CONFIG_USER_ONLY */ }; =20 static void hexagon_cpu_class_init(ObjectClass *c, const void *data) --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=1756785735; cv=none; d=zohomail.com; s=zohoarc; b=npu0ypyrq2WhZCMqTOARVng0iaxYXn2YUDoxIx4T5fjqkciwJOxtvqm9kHDmORZm/u+DPeahSv21yQgPwgQ2xQb6FOUTGqjDGTFauxLnBq5ct3kjCIGIT1qxyMpGJJkDn9Biac5RPCIbIL54Gu56mXoH2v/v4W+UOntuxTkqkqo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785735; 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=+6ZAJ60HK8MdNcBE3d7EkRCI9HsC+RkYUzB7Q0859BU=; b=LtdOjB939s+8d4dX0FrSXeKWSXO11skotwfrFPJYSIxnwEUVPWL8lWje8gtA9fYTO2wyvEo9PKCHBvv/7tanTQ5ykfar5PROenTtGppqeq7ShmIb/vGW8gMX4ELYfPop62vjoZzI7Ofv2xsj1ZvwuFU4OIVugWrIFcMYiRfrtL8= 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 1756785735092677.2449389643497; Mon, 1 Sep 2025 21:02:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI1a-0003Fs-A4; Mon, 01 Sep 2025 23:49: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 1utI1T-0002kH-G2 for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:31 -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 1utI1O-0004d8-Vo for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:31 -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 5822Rowa029965 for ; Tue, 2 Sep 2025 03:49:16 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 48w8wy26sh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:49:16 +0000 (GMT) Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-324e41e946eso8954410a91.0 for ; Mon, 01 Sep 2025 20:49:15 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.49.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:49:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= +6ZAJ60HK8MdNcBE3d7EkRCI9HsC+RkYUzB7Q0859BU=; b=IWqiK7A+93jg8F36 sYmhZ6+6TCc28+iGhz/vL1vF/RwGYhC5RbuWpVeTYcCtj+jGVBBxylfCDkMSTlL7 /ao2BQLUuMC3i0/9nFQX4jq0DCsdOHL88DLKPcJhoAL0mJLZe4vNFwj1YETOsAS1 +h5QMtuSlRfXoOMSU201hWxVi91ERYzDMvahiMnUcZ0g42iin7TVp2f3VlbrkY4t s94Pl3ikdspOLsNpSwKNrqNoRDi9l8fL3f3N1cbdtkbhC6+rZxdTgYjwHh/KZJrZ lWFuYUcqtBmOMwAJxfRiVHwM0nrIw6YiT2jvRrPhivdysriJ5p8qAwMa6pX2nwov I2UdCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784955; x=1757389755; 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=+6ZAJ60HK8MdNcBE3d7EkRCI9HsC+RkYUzB7Q0859BU=; b=k+9Mj0zRmOMjDh/ob19YrZCvEYobc/phC2WKQcNOBEAiHBQpmwlVdQT4P1xYr3m8z/ b0UW4VdBn4wN4VGHbBixxGyVom1UGS86lEDH0XKX8q+fzupCyiNJ/cb8nvh5Y/DH9d+a FOziyZqvKNg/pgnFzl7WQKTB7ZcyXgQ+WQc5ekqWaHFc13stYuDnOolLbF1ZjPPDOBQi i6S3rcsxQlDCmx4FgJZD2QhuWQSwVKh8nVGKhgULThRneyHyL+291zo1DbqfqJK+xJKP ACDmND577UBmyCupgBN6MkZFR4eCAAyxT4poy8h2YesnBDDpDlq65lFV5Kc1rtUrkA1e yFow== X-Gm-Message-State: AOJu0YwpyEdAM8pn2PobjFdRT57+x9v29wIWJlqO2XtxMZLFTKnTdA0F b4LQ4ATr/QaX97d2Jo1WHTH0NFqfhugrv+vYK+Qzp1C1yVc64x0zoIgEZQcGlSwYNuPxglT1dbU 9i0IwbAGibw6UwnqEuFYRVK6BpjnxueUZpp7xWLswDZhXmKYhNOhOQ541rLErlhn6c+L4 X-Gm-Gg: ASbGncsRKl9BbhFea6x/bOYbfByj56b/a4GE7gvgiTgeOLUy/G2tFZJPq0PPYQh4Ln9 VN74eilAA2elB3wYFyz1UvlyWiexpmBK0jAdlU/cArTlGAFBdS7A15ZjVkqg1wMPY721njZZNgm YX9VIg4HZVXuIUOPqW7pidy3qA3wpZ8D71loy+fF9MLXLkDsGuUlVDJ42PjVHj9H2Z61T4ibqRc IC6K9Sdjwku7O0A4KkrIOf8TtfgYXq/v7SvZXh3qBS9peCujsGN0mZ7kvf4QLyj/6RIXXAW4qW4 UxD9pdWaAmNveQy8qPGxn82r1ET/+G3Dm0kg5msZYRzQSiAV0l//+r+3kzE6WGR5Ld8tyQRuCbD VfG1Ra0LxKQ9g X-Received: by 2002:a17:90a:d444:b0:329:8160:437b with SMTP id 98e67ed59e1d1-3298160445emr10385289a91.19.1756784954654; Mon, 01 Sep 2025 20:49:14 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFoUJESB0Q61KZS3fHcn0wlkA90cLHDGkvgYfMvIxclioC5Jixbx4s3LkJwma/tToy5bGD3EA== X-Received: by 2002:a17:90a:d444:b0:329:8160:437b with SMTP id 98e67ed59e1d1-3298160445emr10385265a91.19.1756784954177; Mon, 01 Sep 2025 20:49:14 -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 Subject: [PATCH v2 18/39] target/hexagon: add simple cpu_exec_reset and pointer_wrap Date: Mon, 1 Sep 2025 20:48:26 -0700 Message-Id: <20250902034847.1948010-19-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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=68b6693c cx=c_pps a=vVfyC5vLCtgYJKYeQD43oA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=EUspDBNiAAAA:8 a=O9wV_FzQyngHLK0UYg8A:9 a=QEXdDO2ut3YA:10 a=rl5im9kqc5Lf4LNbBjHf:22 X-Proofpoint-GUID: HPTxYyM52asyQHjpv_gpzmZYZ4wMylua X-Proofpoint-ORIG-GUID: HPTxYyM52asyQHjpv_gpzmZYZ4wMylua X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTAxMDEwMSBTYWx0ZWRfX4T2SvUNgP9gD CbJc3UMNUtNu111pALS68vNWb+b7MG3oZKlInkljSMapQ42c+pury/eWgZhT+d1544XCvJQlmIb dUnaBSFKWBusYZgtUFlnPfvnVtGXK1Q1lEVe8RzcTn1SahG01XvSN5CeqZA4VJljuBD4kMZia3d xuNENekL2IssaURltWnlChgcnZeIElLNjq4vFiX25S3pDkWOEPQyYIHFW3tL9SbFErELVQovlV8 rH1O5p0cfqts4z04H2ODhvm3qOA9FfOI9Qt7YG/Dc7bI8cGz4tfo2KZdelFUJbftrrXe3S1nrZ0 4iNoxHFBs2FYFy/oYEU6to7GcMPzMpNhHsXigEW36Ol69UW/SnmKhofCRewWhKSPEcZ190rWhMr hl9LkZWs 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: 1756785739478124100 From: Matheus Tavares Bernardino Signed-off-by: Matheus Tavares Bernardino --- target/hexagon/cpu.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 85ccf9893a..0445146f2b 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -511,6 +511,12 @@ static bool hexagon_cpu_exec_interrupt(CPUState *cs, i= nt interrupt_request) return false; } =20 +static vaddr hexagon_pointer_wrap(CPUState *cs, int mmu_idx, + vaddr result, vaddr base) +{ + return result; +} + #endif =20 static const TCGCPUOps hexagon_tcg_ops =3D { @@ -525,6 +531,8 @@ static const TCGCPUOps hexagon_tcg_ops =3D { .mmu_index =3D hexagon_cpu_mmu_index, #if !defined(CONFIG_USER_ONLY) .cpu_exec_interrupt =3D hexagon_cpu_exec_interrupt, + .pointer_wrap =3D hexagon_pointer_wrap, + .cpu_exec_reset =3D cpu_reset, #endif /* !CONFIG_USER_ONLY */ }; =20 --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=1756785073; cv=none; d=zohomail.com; s=zohoarc; b=ZnCvSoDwnZ/LHv1aqaOqf5Ojp5GY7npMt3VECLqOlnC+EFEKXUaDy9GV2qTnAn4e2izZNCyupXEvw/jduAW4cH7mUq8gkwtz/IPALESjxfgTJSFmOEcqdkeGfohmPw1ZHqg6hoVGGCLLraKmSFkqa/SefeN1tICsvwiyKOrdbXg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785073; 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=Ham6MQtFO1fUrUbOlSblP5ZqRQ62nQJgT8MQifuMG3Q=; b=iGW1H7cxgi1u4hupK254W2nWyqHjwtBtXP5YtC0UGYZR+wHaX7EEvvIFftmSOFc9Y/4qlFsC7FJUWrcbtrkCbNM/wGQ3j/Mz1OLaDS8OrPxAclq+9k+sIXdqNThhSg5r0+kxnx4GLbZ1+ejRbYfmC8jyHoWaDeJUND2PY5/X/B8= 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 1756785073562108.67685344270262; Mon, 1 Sep 2025 20:51:13 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI1V-0002sE-F7; Mon, 01 Sep 2025 23:49: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 1utI1U-0002lk-4o for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:32 -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 1utI1R-0004dS-GA for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:31 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822Y3QI000383 for ; Tue, 2 Sep 2025 03:49:17 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 48wqvw853y-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:49:17 +0000 (GMT) Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-324e41e946eso8954529a91.0 for ; Mon, 01 Sep 2025 20:49:17 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.49.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:49:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= Ham6MQtFO1fUrUbOlSblP5ZqRQ62nQJgT8MQifuMG3Q=; b=aYFR48Jc7GdE5HY0 3EMmLaUEdd+CpYnyAxFk1GrbJ3hBuyMqvuiYd6+s3PNh5qfMPzP6+ZuJozsDhMpq SoSQLa3x0mzOg0bg6W7oR67La3DJYB9r6WRS/JAT6kC6bUWSHZZjammn8ujgyAh2 E9aiG5G4N0ePTTPIEYo45Js0QVcQ0shapx/p+kkWpKic1EUyPzNgx8dK6QWdfkMJ 5tm0TH99iL/dE3O6hkg6uLT+4rPiY0ecDPZEjmoySoM8sDIFWxgbvUmnIUCks5SE rdKLpzVoUuohwxNYKU/tD8kjKPmOmxAkJsOMDVm3FQWvqvqpM3wXukppQLN10cY0 NeGIkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784956; x=1757389756; 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=Ham6MQtFO1fUrUbOlSblP5ZqRQ62nQJgT8MQifuMG3Q=; b=uzwosPaavAxP1zS8EX01hzSmhZRIcp1l4JApDtzGR8y0fMZZ/6FfpBFN6Lod0PK4Wc nKNxCeaRspldRG3u1YISrovw7gsXHxiO/8+SYEnEYGedtCeOAQNJY96YQnA1fOeUFKKI 45JRrJfGzj5gYVILS6ceUnq5vF8ESVK/0MBWUoOpDUJf7VABVQYJ+xjH/17qFysQPjuD fwewKzJNVKaaXwehcaa6WGsnAY1hWujnp7daKdx6Rww3tf0AbmJy7mz/IkIP3amJBLCR WvuaGJAB1DHuWCrJns3Baywd+x5iywgqD65NFMgE8TH1BGUY5e2klh+vt/QygkfloKpB 15sQ== X-Gm-Message-State: AOJu0Yyv6gQSKnuVqsSa4RA3BTKkhfJbGRhM7szvtESHFzDmFRbsGMlw HHmuo0Vib0/8uLPbY7AtQWPUYFkpkIR+lMUqbUolckPDWHzv1ngkEMmZPkfuJ1baO11COitoDwt RtVlB2maeckgXUBYZCL5rStfNRHVoxcQR3CAymR0c2wbIo2tSQCvt6UlsdiCyqqgEuLs3 X-Gm-Gg: ASbGncvspf/hSSebVRg80Po/ucmF/LW2CcM8m8ACRIl/LnE4EMJbwIH6LXtI/vN0hGQ WWiAzdYSI0Aj6/PiOOHE8HFG9arDJQLesLTy9ezdGWXNXYzKB1hTWiYvBwL2nNQ5rBRj4n4ryVZ o6+c4fFaSLj7hDQAZ0lq4dlcKTwCz9M37nOihbLk/aa6zyEUcwmI+L7ZWIhhx5waqwWs4zJAS2R kVcKkAC19EXLB6K4yXi0rZ+5vBs0caedaLqdxzyXnDGNNbPoswHv0a8t7g2nPcZNze3pmZIMmkv utCAbMWxN5fjSEiv/RnLKV4dmkq7WvWtaykVpX8R/easY2ZjyxL0WUSKA7FEGPNwkLTHvD+GydI gbP3ZIpBoJrTX X-Received: by 2002:a17:90b:3948:b0:327:70a1:3bfd with SMTP id 98e67ed59e1d1-32815414358mr12718989a91.3.1756784956252; Mon, 01 Sep 2025 20:49:16 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEIlYl+vbOgjKJo2gpFrYHHgS9TPCqlQgT9J30bnMubDU5nbBzkMh9go1W9IgQQxthL4M2kLA== X-Received: by 2002:a17:90b:3948:b0:327:70a1:3bfd with SMTP id 98e67ed59e1d1-32815414358mr12718966a91.3.1756784955724; Mon, 01 Sep 2025 20:49:15 -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/39] target/hexagon: Implement hexagon_tlb_fill() Date: Mon, 1 Sep 2025 20:48:27 -0700 Message-Id: <20250902034847.1948010-20-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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: AW1haW4tMjUwOTAyMDAyNCBTYWx0ZWRfX5fpwkTmkybw8 BDFevUeoC1Gbnp566zoRwUhVEQ/WaGHFmRYhZ2eZmdXhZH9VBpidY0GITDdgRwL3f1GtT7B2dIV M5GFewxPxlspEvDnUxPI6/4lGJbLpOEuVkxjyrnlWa6AhsiPsUrC7WPZoLBxoG4PBi5bp1m7lXs yR2DClrReLuLTUhcP79GmRT2f4YEVnrC346woZcxw4c9X7n2ypxkofoOJjfkWKrwK4NVjuSusvw 66zr44aM4Hv5Ze3XhR9TM59XQC6nB6/msZp3J3TQNB/icsuiBSHfUYN7luRFTPcnx7SDI5Au+pa hrSNbV/KpCbarivC6b46nqQyOHgvFx7LoAVmuHBwrNyYcLSuGodOhfGhDcgs5qniXQtZMFILRBU EJ73w9Vs X-Authority-Analysis: v=2.4 cv=WKh/XmsR c=1 sm=1 tr=0 ts=68b6693d 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=yz7b9sy1sBSXNk6fZdQA:9 a=QEXdDO2ut3YA:10 a=rl5im9kqc5Lf4LNbBjHf:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: QwUu9Pu8V2w5HLN7R6WLgrSy9bA-EBmg X-Proofpoint-ORIG-GUID: QwUu9Pu8V2w5HLN7R6WLgrSy9bA-EBmg 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 bulkscore=0 phishscore=0 adultscore=0 spamscore=0 malwarescore=0 impostorscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2509020024 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: 1756785075711116600 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.c | 134 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 133 insertions(+), 1 deletion(-) diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 0445146f2b..2ae6874841 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -37,6 +37,8 @@ #include "hex_interrupts.h" #include "hexswi.h" #include "exec/cpu-interrupt.h" +#include "exec/target_page.h" +#include "hw/hexagon/hexagon_globalreg.h" #endif =20 static void hexagon_v66_cpu_init(Object *obj) { } @@ -490,7 +492,136 @@ static void hexagon_cpu_init(Object *obj) #endif } =20 -#ifndef CONFIG_USER_ONLY +#if !defined(CONFIG_USER_ONLY) +static bool get_physical_address(CPUHexagonState *env, hwaddr *phys, int *= prot, + int *size, int32_t *excp, target_ulong ad= dress, + MMUAccessType access_type, int mmu_idx) + +{ + if (hexagon_cpu_mmu_enabled(env)) { + return hex_tlb_find_match(env, address, access_type, phys, prot, s= ize, + excp, mmu_idx); + } else { + *phys =3D address & 0xFFFFFFFF; + *prot =3D PAGE_VALID | PAGE_READ | PAGE_WRITE | PAGE_EXEC; + *size =3D TARGET_PAGE_SIZE; + return true; + } +} + +/* qemu seems to only want to know about TARGET_PAGE_SIZE pages */ +static void find_qemu_subpage(vaddr *addr, hwaddr *phys, int page_size) +{ + vaddr page_start =3D *addr & ~((vaddr)(page_size - 1)); + vaddr offset =3D ((*addr - page_start) / TARGET_PAGE_SIZE) * TARGET_PA= GE_SIZE; + *addr =3D page_start + offset; + *phys +=3D offset; +} + + +#define INVALID_BADVA 0xbadabada + +static void set_badva_regs(CPUHexagonState *env, target_ulong VA, int slot, + MMUAccessType access_type) +{ + arch_set_system_reg(env, HEX_SREG_BADVA, VA); + + if (access_type =3D=3D MMU_INST_FETCH || slot =3D=3D 0) { + arch_set_system_reg(env, HEX_SREG_BADVA0, VA); + arch_set_system_reg(env, HEX_SREG_BADVA1, INVALID_BADVA); + SET_SSR_FIELD(env, SSR_V0, 1); + SET_SSR_FIELD(env, SSR_V1, 0); + SET_SSR_FIELD(env, SSR_BVS, 0); + } else if (slot =3D=3D 1) { + arch_set_system_reg(env, HEX_SREG_BADVA0, INVALID_BADVA); + arch_set_system_reg(env, HEX_SREG_BADVA1, VA); + SET_SSR_FIELD(env, SSR_V0, 0); + SET_SSR_FIELD(env, SSR_V1, 1); + SET_SSR_FIELD(env, SSR_BVS, 1); + } else { + g_assert_not_reached(); + } +} + +static void raise_tlbmiss_exception(CPUState *cs, target_ulong VA, int slo= t, + MMUAccessType access_type) +{ + CPUHexagonState *env =3D cpu_env(cs); + + set_badva_regs(env, VA, slot, access_type); + + switch (access_type) { + case MMU_INST_FETCH: + cs->exception_index =3D HEX_EVENT_TLB_MISS_X; + if ((VA & ~TARGET_PAGE_MASK) =3D=3D 0) { + env->cause_code =3D HEX_CAUSE_TLBMISSX_CAUSE_NEXTPAGE; + } else { + env->cause_code =3D HEX_CAUSE_TLBMISSX_CAUSE_NORMAL; + } + break; + case MMU_DATA_LOAD: + cs->exception_index =3D HEX_EVENT_TLB_MISS_RW; + env->cause_code =3D HEX_CAUSE_TLBMISSRW_CAUSE_READ; + break; + case MMU_DATA_STORE: + cs->exception_index =3D HEX_EVENT_TLB_MISS_RW; + env->cause_code =3D HEX_CAUSE_TLBMISSRW_CAUSE_WRITE; + break; + } +} + +static void raise_perm_exception(CPUState *cs, target_ulong VA, int slot, + MMUAccessType access_type, int32_t excp) +{ + CPUHexagonState *env =3D cpu_env(cs); + + set_badva_regs(env, VA, slot, access_type); + cs->exception_index =3D excp; +} + +static const char *access_type_names[] =3D { "MMU_DATA_LOAD ", "MMU_DATA_S= TORE", + "MMU_INST_FETCH" }; + +static const char *mmu_idx_names[] =3D { "MMU_USER_IDX", "MMU_GUEST_IDX", + "MMU_KERNEL_IDX" }; + +static bool hexagon_tlb_fill(CPUState *cs, vaddr address, int size, + MMUAccessType access_type, int mmu_idx, bool = probe, + uintptr_t retaddr) +{ + CPUHexagonState *env =3D cpu_env(cs); + static int slot =3D 0 /* This is always zero for now */; + hwaddr phys; + int prot =3D 0; + int page_size =3D 0; + int32_t excp =3D 0; + bool ret =3D 0; + + qemu_log_mask( + CPU_LOG_MMU, + "%s: tid =3D 0x%x, pc =3D 0x%08" PRIx32 ", vaddr =3D 0x%08" VADDR_= PRIx + ", size =3D %d, %s,\tprobe =3D %d, %s\n", + __func__, env->threadId, env->gpr[HEX_REG_PC], address, size, + access_type_names[access_type], probe, mmu_idx_names[mmu_idx]); + ret =3D get_physical_address(env, &phys, &prot, &page_size, &excp, add= ress, + access_type, mmu_idx); + if (ret) { + if (!excp) { + find_qemu_subpage(&address, &phys, page_size); + tlb_set_page(cs, address, phys, prot, mmu_idx, TARGET_PAGE_SIZ= E); + return ret; + } else { + raise_perm_exception(cs, address, slot, access_type, excp); + do_raise_exception(env, cs->exception_index, env->gpr[HEX_REG_= PC], + retaddr); + } + } + if (probe) { + return false; + } + raise_tlbmiss_exception(cs, address, slot, access_type); + do_raise_exception(env, cs->exception_index, env->gpr[HEX_REG_PC], ret= addr); +} =20 static bool hexagon_cpu_exec_interrupt(CPUState *cs, int interrupt_request) { @@ -533,6 +664,7 @@ static const TCGCPUOps hexagon_tcg_ops =3D { .cpu_exec_interrupt =3D hexagon_cpu_exec_interrupt, .pointer_wrap =3D hexagon_pointer_wrap, .cpu_exec_reset =3D cpu_reset, + .tlb_fill =3D hexagon_tlb_fill, #endif /* !CONFIG_USER_ONLY */ }; =20 --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=1756785906; cv=none; d=zohomail.com; s=zohoarc; b=BOpnI7/8D9ZqUinwG333ukwP/2XIBDf407SKQZCjfT6yi/gxxSb+QzDSnXTwDYmAXKQG5xPfwn3KPDGcYBdvPjevrphyb+r9J4PJDBM7yT6e4/w9d2r6iZs+ZA4yNc9Przx0/huJCvJo+vMcCfzS/VXVtKFNwrTxmMGzhfqqtK0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785906; 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=LvhxdVg90M6jjPVxwxkLKajHzNn3JRc37J4bANqduJs=; b=aa+THLhTSqC0AyDJtb4nNHBUXZIGx3+1OKl0mxZLKuZ/EV0/EI5UI1k0nLkQdtoGtOVTmpLC4DDYSQSnEzZuc9Fzs0TXqhCIuMy3PpFTcCEqTWzCywfitDjJL8Z9klpSN+sau9fL0jd9hNyCta2MXW6psLhONg+KGgnZB3HjaR4= 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 17567859066651010.3900738237081; Mon, 1 Sep 2025 21:05:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI1b-0003N6-NM; Mon, 01 Sep 2025 23:49:39 -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 1utI1U-0002lq-9E for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:32 -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 1utI1R-0004dh-SS for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:32 -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 5822SGBZ030247 for ; Tue, 2 Sep 2025 03:49:19 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 48w8wy26sq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:49:18 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-329c76f70cbso941686a91.0 for ; Mon, 01 Sep 2025 20:49:18 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.49.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:49:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= LvhxdVg90M6jjPVxwxkLKajHzNn3JRc37J4bANqduJs=; b=WZNsp88S+Xqx/1gg nPaGKqjwHY5iqOqXM/vA/jJulemmOaB9mLkAeyYIoojedw2Q0AsMbi6bDQ+fgND3 1NIMeeYHN1vJXNA7kEJo4mlRWUfnlmkAHjbz9NUZ32wLsfgxHODGagE9hU6sm5Wd BiQY02IA4RP2AH/S4Rb786imxxwV5bYRpPjWnLrYr1gDXurS7yXrdAwfbHrsWukE HYm69Aua9sbmdM+3uLI65/dsQIiISXMQ0wqSHtmByPeIMd4TrH46qmkciaZ6TDuT ZmZo6RrRK5tPKLF6tPWf5UL6hIolZ7voj4bZojW5fBx5y/9tx5ADskQAUZ36FxxC ujjqWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784957; x=1757389757; 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=LvhxdVg90M6jjPVxwxkLKajHzNn3JRc37J4bANqduJs=; b=UPUXIjSA6D/VojLaEA0VR5W15jI1Cb3kmxTM0rOziTDSfv7yb3w4yLUA4oJ1nQMI6T GX5CmElF6e8Tnru94I1GAQ6uPqpvgKal12FkL2IEJ3z2nT6xXUPVZxzsU+QmgwrJRnDV rhGhF7VdJY3j0jFTzBHEYMXda4Hl57ExsPBlQGc8UWg8Oy1osalUTjcvkdRLwz4qXZXQ Bl1jyKZsL6A0KE9OS4/yVRZoAYzk6SEmluBWqCxzqbp4gAaeBviDAUdRTmdmk2fyXMvN 4sOxgd0ViYIpUWFUPdh4wIZVeB1vz4Hn6yNknniDRi/T3Y0xo9ZvWYmflN+oKY0I1ik9 RXpA== X-Gm-Message-State: AOJu0Yz4cc2OAuXczkAXLU3C2S5xO2lHkxBlrVSu3v+98XkRKQMEbOpx UQMipqAeXZt/i/rBb//QCnB+ltQa/jJKb69lD+ctXsVAc4ZOFBb4NV+1khfYHmM5v15BaV+q9l+ yIYnytnKcq7axFESMUnEKI4d71uwkGZ2jwJ8Me/800ZYQ5+bMPIkoooprp8i+9935cP8g X-Gm-Gg: ASbGncs8JiFFwPMNpPNlqjSuDQb3BhRcoE5TSCUAMFkvSAQEs6Gs0yfOWdPfPKJlsTM GeQe4ySppjWgj45YENXxYE5i/Jz+LqbRYIBQQzb5e+ps9ZiqK5705jkfh7SWaIGjC+ir1hMby0C djiFww5t61UrDsyyd0JowqRZxru9WjKBozfC203DvywiB0nWWl9Y2wyD6+9X1T52j48dmUiw1Xo TKQfsrD73NSFgWVPmSWezQ7b+ZmAdTLS8wLZ5MSVe9K/izBircb1SDn9+m8WikeNKS5SkrbZZ4e 5qFZCZwyqrjxr5yx0auqU+NFgNZYvv8Pt+6n7Pc1wvk9KcqoEr6/k18SWiYGRbqEquFDBUb23OB qS+yaBN22O/Jd X-Received: by 2002:a17:90a:d410:b0:327:7264:f1df with SMTP id 98e67ed59e1d1-328156cc867mr10966461a91.31.1756784957289; Mon, 01 Sep 2025 20:49:17 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGIUnYNUcUA+ZQ8WTdtomUeaje5ohEDWikXpoMM8q4J3hdDQ2YCmdczSPKn1C3pcZSALYnyOA== X-Received: by 2002:a17:90a:d410:b0:327:7264:f1df with SMTP id 98e67ed59e1d1-328156cc867mr10966427a91.31.1756784956785; Mon, 01 Sep 2025 20:49:16 -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/39] target/hexagon: Implement siad inst Date: Mon, 1 Sep 2025 20:48:28 -0700 Message-Id: <20250902034847.1948010-21-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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=68b6693e 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=HdTxHAvixyPUp6pof0EA:9 a=QEXdDO2ut3YA:10 a=uKXjsCUrEbL0IQVhDsJ9:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: NJYEAm5Nx-tgfBjr8Ghj7bNNfuwAbqc8 X-Proofpoint-ORIG-GUID: NJYEAm5Nx-tgfBjr8Ghj7bNNfuwAbqc8 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTAxMDEwMSBTYWx0ZWRfXxi1lDWgVVMka VQfdFaQQNAMlKPhsVTV4FKmU4yn2Dvp4qVqakvplhIWGmHb4QaShZRCs+SndyedNMdIHmwGj2uG 5Xs8FVTuD/hW4QWcJcGN3652WtcxWLJcZkOr+2Wf2VaIuHRxCReT/byBE//cOjJff7WRwbAgK6S rT4e6F3otzwuhADat6bYDxRPHH29ZQOQOp1b9LXFsxQ61ILs4nkqEOoHEYF0HQ6nZFZB3fpszrG XUVNzn61hE9fT3getZzPImTL8Qohq368TzY5yfwS8mfr4Nfq/wB/pZ/o6wFnr7hhAT6UsU3CL9f /p4cYrBen6G2LBxY+dMUicOwEFo/MRQYuHFcxd/ADvedfbACv3saQfq2wOQUR85Bv6YgMykzh81 d5C3y6zK 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: 1756785909356124100 From: Brian Cain siad is the 'Set interrupt auto disable' instruction. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/op_helper.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 569e8271b3..b887302d3c 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1385,7 +1385,15 @@ void HELPER(ciad)(CPUHexagonState *env, uint32_t mas= k) =20 void HELPER(siad)(CPUHexagonState *env, uint32_t mask) { - g_assert_not_reached(); + uint32_t ipendad; + uint32_t iad; + + BQL_LOCK_GUARD(); + ipendad =3D READ_SREG(HEX_SREG_IPENDAD); + iad =3D fGET_FIELD(ipendad, IPENDAD_IAD); + fSET_FIELD(ipendad, IPENDAD_IAD, iad | mask); + arch_set_system_reg(env, HEX_SREG_IPENDAD, ipendad); + hex_interrupt_update(env); } =20 void HELPER(swi)(CPUHexagonState *env, uint32_t mask) --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=1756785405; cv=none; d=zohomail.com; s=zohoarc; b=K1rFoOv+eGcIEhGJ77vo3Yh1WbygZNUprWlNuIlTTCTJPFwJn/t9QNWsiBZCj8BaxO1WvWt/ztkTV8Pm/jIjcgtRC8zIFz6TGzcHBkPgFIzIdxmuHbExP8sRQrQ6GNPqV06v/g+ke/MG6lrvYMX9m+attodTMRHXz7VqsAUMM08= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785405; 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=pZnRC3HENBfki3YLZk3iWRX/U9z3kpAJ4PJq5gDz0vQ=; b=ZaXOfoPaHwqRr4aJL+65vpkLUpHxMqliRJcYd4mvPPbmV73ZYNXN3bIY/kKFlO7btqNDm0KNkV/3FVTNaEB8aUT3LX9vmcx/ON+owDLyw7Z66U0CWgQ+385z9qmsHEHmxAvECYSeIxzAMGJNxXZOiXNKvKnvs+1eDCQlRWWMDOY= 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 1756785405585111.50028661162992; Mon, 1 Sep 2025 20:56:45 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI1Z-00039N-EA; Mon, 01 Sep 2025 23:49: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 1utI1V-0002rs-An for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:33 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI1T-0004ds-CQ for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:32 -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 5822SfFe031364 for ; Tue, 2 Sep 2025 03:49:19 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 48ush2xamr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:49:19 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-324e4c3af5fso5183492a91.3 for ; Mon, 01 Sep 2025 20:49:19 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.49.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:49:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= pZnRC3HENBfki3YLZk3iWRX/U9z3kpAJ4PJq5gDz0vQ=; b=II2mEGcvYToP76RW bf8huBzvGZw01DsQDqKCMuFFNicHV4ItbUrBGv8Tjbon6e8yq+OStza3tHCmFGNS XIRNL2NZ+4sLC1LZhgEZnG2psJ8TPhObZjU8aQmRVDABDapBj77aRrvVevhaNRzh lpCbakBqCkYmvroNyNXTBGUJpjT2AxzkQRiyh5k8v4FmzzCYoiCRfrZJz2EIFhOU c7b6YbXluQW5Vf2p0m861+CFXrA3JY3zBiysTGdqrHPGO36i4Vn+7bvM9h1vtbif 6NCxJTdjhE1cFG1II1QpI+fFDer5KfqM+r/TSGZFs90gW4kbBwJTMTCotVxuziPI 6ZGN+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784958; x=1757389758; 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=pZnRC3HENBfki3YLZk3iWRX/U9z3kpAJ4PJq5gDz0vQ=; b=QVv9BJ0ZjLkOWKruW7ItztK0EJApAbIxrJjOAwCVZNFc1vqpj8piQB6R8zpuveQNtF hZLzPHAUzpP8JvmMqQ6VO675CslzbicNz/E7urfrSdVsa61JTSXFOZTN4mYRZf7G/l4y EDtpSsulJUeGjOs2UGNL0ZfAr0HrNTaSte/EmjzGH1FVGheKqm/pO65xIhfvkGi+PC8u JFaJ+YYid3DF7XIXL/znLgiMoo8Bm8bnAvXAPJmOdUBgSpLcsLOX8UXSY4IpH+rVMGxv IbymIZP+LfCEIuBW9k59R7JhqxiWzcZv0I9CJajZjqxSJK9tdwirbY+zE1C4sDgYzMP/ vJkw== X-Gm-Message-State: AOJu0YzUuANwzicm4FRHKZGaoNjm8kGVpcanA5qxC35ZJYeTa9+xwL8/ JED8DKDndW5vEiKX7wnxjPnowIpTkUn1F800ddtEfPJVfAFfflb1El7+sx6XLfWn0SoKl8Y7Q4l 6ypv1ZTKzimXf/U8xDQAeT3V/8TslSD4UXE+JriNKqSuC0Wy8gmQqFe/8mNHYUzhHdUdy X-Gm-Gg: ASbGncvL4zUBy7QVl1yGLx9/iwMIV9DOvTOZgeI/fvrfIFr9ReFU8o7YWez49pcEXd/ GphlvxWQC56qlmJyYN3kOmEYeLKb/ZB1bwDFuPfxMxtuiSFmsO4crObTiv1XrElPuVJzt3xfSfX d1txPb5h+krS+IbBZtkSVmbaJi5DcoX1lILg+VxpCvwvI47JGtlcqBu9lBWcm3M+P0b5hnnelFB rOW9en5L9LpnhSAVNw9/bAT4xImNcPaw7SxGvxecEEqv/FbCxIM+k+6QowKXXyhL4ad6mrb/3z7 fiSCM7Uc19L+DVnz9LVi/xgCfo3FC4O+RHxX++Q4UK8XWGeDqwK8/uD5HFXN3jY7HWYeQz8+SD5 HZ9lJZZ0+ehMs X-Received: by 2002:a17:90b:5111:b0:327:b310:b325 with SMTP id 98e67ed59e1d1-328156baa7emr13807103a91.18.1756784958366; Mon, 01 Sep 2025 20:49:18 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGxEtwN56SymWMKPOTfuDE6/FS11uCfIRTT0OvyCTPMTxP3DnERV7gG+5tU3yXObHTqVURTWw== X-Received: by 2002:a17:90b:5111:b0:327:b310:b325 with SMTP id 98e67ed59e1d1-328156baa7emr13807065a91.18.1756784957864; Mon, 01 Sep 2025 20:49:17 -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/39] target/hexagon: Implement hexagon_resume_threads() Date: Mon, 1 Sep 2025 20:48:29 -0700 Message-Id: <20250902034847.1948010-22-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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: AW1haW4tMjUwODMwMDAzMiBTYWx0ZWRfXw1CBxCRQ4gaX DlmIq5p0JPP7DFBqfRbIkn4zbX6/5WZq96VsfU656pkHEDcD7qiuVswbNRaspGzcR0cDmEJwdmF BSAA4r4rr3oiSlC7zk2ixhgVc8sGOBZiG+/R+5haxrRRHYINCsAR827wWhQfptlCtrakqTwVLPq gyPJa+pK3xi3nCU8QswLjwa0r48j5xqbQkkE5MkWdTUmfzK94sXHoYx8rBzyC+yOGXEXM3KxOna mYw89ZAqe13bC4unPVI5hb0p7woc4qYQ/Q2B9pnG2pFI7QrAI2xoVkdYDMyQoFq45XOf03Wxkvb Z3RS/71pAepiK58ABhy36bcGCl3Ef1QsmP4CoNeVpzoORrgWHdKtkAFSmbWph3K6MminOw/xb+Y P3jadcgV X-Proofpoint-ORIG-GUID: DBNd_Ct_XZ5zLMk4dXfS3IJMUBlkzQO_ X-Proofpoint-GUID: DBNd_Ct_XZ5zLMk4dXfS3IJMUBlkzQO_ X-Authority-Analysis: v=2.4 cv=M9NNKzws c=1 sm=1 tr=0 ts=68b6693f cx=c_pps a=RP+M6JBNLl+fLTcSJhASfg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=AJ2bX_oiER2d6UdsYA0A: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 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: 1756785407899116600 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 1 + target/hexagon/cpu_helper.h | 1 + target/hexagon/cpu_helper.c | 76 +++++++++++++++++++++++++++++++++++++ target/hexagon/op_helper.c | 3 +- 4 files changed, 80 insertions(+), 1 deletion(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 1491313d06..92b32f434b 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -51,6 +51,7 @@ typedef struct CPUHexagonTLBContext CPUHexagonTLBContext; #define PRED_WRITES_MAX 5 /* 4 insns + endloop */ #define VSTORES_MAX 2 #define MAX_TLB_ENTRIES 1024 +#define THREADS_MAX 8 =20 #define CPU_RESOLVING_TYPE TYPE_HEXAGON_CPU #ifndef CONFIG_USER_ONLY diff --git a/target/hexagon/cpu_helper.h b/target/hexagon/cpu_helper.h index f7400031ef..c8b0a37b7f 100644 --- a/target/hexagon/cpu_helper.h +++ b/target/hexagon/cpu_helper.h @@ -21,6 +21,7 @@ void hexagon_ssr_set_cause(CPUHexagonState *env, uint32_t= cause); void hexagon_start_threads(CPUHexagonState *env, uint32_t mask); void hexagon_stop_thread(CPUHexagonState *env); void hexagon_wait_thread(CPUHexagonState *env, target_ulong PC); +void hexagon_resume_threads(CPUHexagonState *env, uint32_t mask); =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 f540eadef4..18c929bf5f 100644 --- a/target/hexagon/cpu_helper.c +++ b/target/hexagon/cpu_helper.c @@ -146,6 +146,82 @@ void hexagon_set_sys_pcycle_count(CPUHexagonState *env= , uint64_t cycles) } } =20 +static void set_wait_mode(CPUHexagonState *env) +{ + g_assert(bql_locked()); + + const uint32_t modectl =3D arch_get_system_reg(env, HEX_SREG_MODECTL); + 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_mask); +} + +void hexagon_wait_thread(CPUHexagonState *env, target_ulong PC) +{ + g_assert(bql_locked()); + + if (qemu_loglevel_mask(LOG_GUEST_ERROR) && + (env->k0_lock_state !=3D HEX_LOCK_UNLOCKED || + env->tlb_lock_state !=3D HEX_LOCK_UNLOCKED)) { + qemu_log("WARNING: executing wait() with acquired lock" + "may lead to deadlock\n"); + } + g_assert(get_exe_mode(env) !=3D HEX_EXE_MODE_WAIT); + + CPUState *cs =3D env_cpu(env); + /* + * The addtion of cpu_has_work is borrowed from arm's wfi helper + * and is critical for our stability + */ + if ((cs->exception_index !=3D HEX_EVENT_NONE) || + (cpu_has_work(cs))) { + qemu_log_mask(CPU_LOG_INT, + "%s: thread %d skipping WAIT mode, have some work\n", + __func__, env->threadId); + return; + } + set_wait_mode(env); + env->wait_next_pc =3D PC + 4; + + cpu_interrupt(cs, CPU_INTERRUPT_HALT); +} + +static void hexagon_resume_thread(CPUHexagonState *env) +{ + CPUState *cs =3D env_cpu(env); + clear_wait_mode(env); + /* + * The wait instruction keeps the PC pointing to itself + * so that it has an opportunity to check for interrupts. + * + * When we come out of wait mode, adjust the PC to the + * next executable instruction. + */ + env->gpr[HEX_REG_PC] =3D env->wait_next_pc; + cs =3D env_cpu(env); + ASSERT_DIRECT_TO_GUEST_UNSET(env, cs->exception_index); + cs->halted =3D false; + cs->exception_index =3D HEX_EVENT_NONE; + qemu_cpu_kick(cs); +} + +void hexagon_resume_threads(CPUHexagonState *current_env, uint32_t mask) +{ + CPUState *cs; + CPUHexagonState *env; + + g_assert(bql_locked()); + CPU_FOREACH(cs) { + env =3D cpu_env(cs); + g_assert(env->threadId < THREADS_MAX); + if ((mask & (0x1 << env->threadId))) { + if (get_exe_mode(env) =3D=3D HEX_EXE_MODE_WAIT) { + hexagon_resume_thread(env); + } + } + } +} + void hexagon_modify_ssr(CPUHexagonState *env, uint32_t new, uint32_t old) { g_assert(bql_locked()); diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index b887302d3c..63b9dda9a3 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1483,7 +1483,8 @@ void HELPER(wait)(CPUHexagonState *env, target_ulong = PC) =20 void HELPER(resume)(CPUHexagonState *env, uint32_t mask) { - g_assert_not_reached(); + BQL_LOCK_GUARD(); + hexagon_resume_threads(env, mask); } =20 uint32_t HELPER(getimask)(CPUHexagonState *env, uint32_t tid) --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=1756785284; cv=none; d=zohomail.com; s=zohoarc; b=JQpszHBQ+OcwzpXdH5wkMN7vOyoFTbl+DI2DS31Mg4JlT3xC3TrfUDEpS75A5Xf5iCHNPBRhRV/oh/himdJABi+AolsQju3Ys13+qtlVKoee/J24gtKLmLCVXVp5VIbOQH9VyMAnhYcnx2GLa8qaq2NlZKJuIDd0PWJrHup5uLM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785284; 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=vO09PguiJvsNsCrY1kFOKrQbz5IYjPfLPbK3g08GdlY=; b=gFWBdf0falYGE1IDMhuvVonl12g29Zdi5GVR9ZmmDlq44hXjDMqYvAsiLgWtYo/HVk8tsdf33gcxwf68elNorppP4JvCKEJh8HILcdI0+H0vqQfsCZaneIXSsaCyDrEU1OwhFEC/OAxvUDlZvTzWdEx6ysttrsUsZxCWoufLFuo= 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 1756785284561203.86498419343286; Mon, 1 Sep 2025 20:54:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI1d-0003Zu-Ah; Mon, 01 Sep 2025 23:49: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 1utI1X-0002z4-50 for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:35 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI1U-0004e0-Ho for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:34 -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 5822S9eh013671 for ; Tue, 2 Sep 2025 03:49:20 GMT Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48uq0eej9h-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:49:20 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-24458345f5dso55448205ad.3 for ; Mon, 01 Sep 2025 20:49:20 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.49.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:49:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=vO09PguiJvsNsCrY1kFOKrQbz5IYjPfLPbK3g08GdlY=; b=T7 A9WKgMSCmSS8JwTH/7alMmQ3N/DAo6vIrhPIbgl05Q2AHgnJZTIMhjvNDii8EjCv ycQ679J3s2fPOS2uztcgfrZCC+/IO0vjUsmTAIjFsTbHhHlKjtj7IerWPRCzRpz8 B0bO2rIsbflfAFHsFFAlpmz3VXiaWP+PabEOX+tnpxas9i2YsOQHhtqY5F3UASrd tvBjzSEs049Ok/9vAEtvJSKJ9BXwnnhXc9qoeXx2thXYrUsOqGLdEwMZD0CRl46F Rcwe9FedVENDWNY79dCi83J73OfGcNGHyzlB+zSrgy+exJNhEH1kjSGl/u/Z4U5Z yPmu+5PKnH7gIwvgxAbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784959; x=1757389759; 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=vO09PguiJvsNsCrY1kFOKrQbz5IYjPfLPbK3g08GdlY=; b=uxoBkzEtu9aD2OTj8xozJF4UmEk8dr36lTe0YLjRv38LteVjZPdWng4WqUdIBE3ia4 SYecTgo6OGwQY/B5eLmlBfv71xORUTVcIFGrONgbaeGNNWzDJaXyxmhJQS6s+1hbhkAY YdPl7OXVXTG13sA7pYjDmjPvz9saoxl7mW24WKcndNYB3ZkvZkVYvKI+1h0bCiAxl/Qd bv3n+HqTY+wupFVgEljYeTW4QVZaglmmasi+idDBt7Zi/p+CCjpvkWtKQ918eT2Xjm9t c+Q05TCLqrcsAoTTQFwDiTO2TgsLJprR7TeQ9TmJ7SUsyToxA2TaAGMCjhmcU7YAUlJA WzwQ== X-Gm-Message-State: AOJu0Ywy7VYJUL9gDDvN6wDEWyE92g1kKnx4N1/+ulOlzhfHqZDKE9cv SF5oD06ljgEyiFnvGaVIkoiEy+51qHOGhldjG/4/XgRgUQ4rh8a5bAhn5KbQfZH4yYWS1AStGyv BYFakU1RlkUaQYnthTLPnMUSw6i10uunTU4lfmrgWnCzmBu2cakdyZ+qtjgkjLMjDebY8 X-Gm-Gg: ASbGncvpqRIjNphrPBskx+wa43PdPuU5ZiwhquKfKGalZMdCvaqImNE3IyBeIiCRh6e g6WV0wQzK0KE0NpGvOQmJGkCvp9IQjkEXNk6QFFOdzwHdZ+zntnrWZVRkBUvqVFgN17AEMHvYBM KUQsCBD0mhdro49AoLVwSvE/rcgD8CNbHV27fOWtHNmVuRS6NCSq2+Zu4rb7Kl+TWiuc0fy6LpC GFboYSe1nRsWDp1DAcbJo8YhC/jPvUGjAFFgS7PzAyxA+/f+Kky1duZ4MhkgudZOP9jpn52ynk+ v1Z5X7/np5V3TfIo2fDUHWFkSpBBMLSAu7ui9HOKM3MNJMJyqZNeX7AG03v8vlRmfRRHHnKBpkK uWQw182fbecRO X-Received: by 2002:a17:902:d501:b0:245:f1bb:9bf9 with SMTP id d9443c01a7336-24944870959mr156109815ad.12.1756784959368; Mon, 01 Sep 2025 20:49:19 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE6ZCqScf6kNOsvnh8lFAVv89GsuV33cDGjjWzXJVXc2UotnW1jwbJ8Cpohy4tm8GVn8fj6Mw== X-Received: by 2002:a17:902:d501:b0:245:f1bb:9bf9 with SMTP id d9443c01a7336-24944870959mr156109535ad.12.1756784958889; Mon, 01 Sep 2025 20:49:18 -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/39] target/hexagon: Implement setprio, resched Date: Mon, 1 Sep 2025 20:48:30 -0700 Message-Id: <20250902034847.1948010-23-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: HQOVEGqj-4QYM0RlHIiTOYBdTvXoz9mm X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAwNCBTYWx0ZWRfX9bIJdPuJvsO7 /sH2mKBjLZPp99XjoWcHV3urmERrsDcgiZEDNCZ4sgtcVMhTFLv4QNatpOHmAkDs38Wd8afmYgY j3N9x/tUlpXKYN+Lej/CYuIB/S5NtyBxwXfOgJgTNTRNfoqkupLDeNukfRNXAFBCzXYn+uKwBr9 3y37X6T4WYHcMe5ExGhriWM/uFs5QqBmSTo0jHw0v5PpsucPmvMUJvslQpko/lArjbLOIM+dV9Y DM/UiMVeGOLaY2LJNl4KDXgixNNT2fMfMKEVi6IM1I8n/9shLY86hNCJZ0Dn5OwuP54k4BSHwXC f3Tn8qbxMUthGUq1AJWiLhdS4eIBUW6Uy21bxg0eNB5nTcxPNb7MbKNYYeH3cJxqBklV+dXXGIa qS3oNhje X-Proofpoint-ORIG-GUID: HQOVEGqj-4QYM0RlHIiTOYBdTvXoz9mm X-Authority-Analysis: v=2.4 cv=ea09f6EH c=1 sm=1 tr=0 ts=68b66940 cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=EUspDBNiAAAA:8 a=COk6AnOGAAAA:8 a=X_cK7RZiQvhuwfy_UrAA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R: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: 1756785286410116600 From: Brian Cain The hardware-assisted scheduler helps manage tasks on the run queue and interrupt steering. This instruction is defined in the Qualcomm Hexagon V71 Programmer's Refere= nce Manual - https://docs.qualcomm.com/bundle/publicresource/80-N2040-51_REV_AB_Hexagon_= V71_ProgrammerS_Reference_Manual.pdf See =C2=A711.9.2 SYSTEM MONITOR. Signed-off-by: Brian Cain --- target/hexagon/op_helper.c | 71 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 69 insertions(+), 2 deletions(-) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 63b9dda9a3..37a5b45e75 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1472,6 +1472,57 @@ void HELPER(stop)(CPUHexagonState *env) hexagon_stop_thread(env); } =20 +static inline QEMU_ALWAYS_INLINE void resched(CPUHexagonState *env) +{ + uint32_t schedcfg; + uint32_t schedcfg_en; + int int_number; + CPUState *cs; + uint32_t lowest_th_prio =3D 0; /* 0 is highest prio */ + uint32_t bestwait_reg; + uint32_t best_prio; + + BQL_LOCK_GUARD(); + qemu_log_mask(CPU_LOG_INT, "%s: check resched\n", __func__); + schedcfg =3D arch_get_system_reg(env, HEX_SREG_SCHEDCFG); + schedcfg_en =3D GET_FIELD(SCHEDCFG_EN, schedcfg); + int_number =3D GET_FIELD(SCHEDCFG_INTNO, schedcfg); + + if (!schedcfg_en) { + return; + } + + CPU_FOREACH(cs) { + HexagonCPU *thread =3D HEXAGON_CPU(cs); + CPUHexagonState *thread_env =3D &(thread->env); + uint32_t th_prio =3D GET_FIELD( + STID_PRIO, arch_get_system_reg(thread_env, HEX_SREG_STID)); + if (!hexagon_thread_is_enabled(thread_env)) { + continue; + } + + lowest_th_prio =3D (lowest_th_prio > th_prio) + ? lowest_th_prio + : th_prio; + } + + bestwait_reg =3D arch_get_system_reg(env, HEX_SREG_BESTWAIT); + best_prio =3D GET_FIELD(BESTWAIT_PRIO, bestwait_reg); + + /* + * If the lowest priority thread is lower priority than the + * value in the BESTWAIT register, we must raise the reschedule + * interrupt on the lowest priority thread. + */ + if (lowest_th_prio > best_prio) { + qemu_log_mask(CPU_LOG_INT, + "%s: raising resched int %d, cur PC 0x" TARGET_FMT_lx "\n", + __func__, int_number, arch_get_thread_reg(env, HEX_REG_PC)= ); + SET_SYSTEM_FIELD(env, HEX_SREG_BESTWAIT, BESTWAIT_PRIO, ~0); + hex_raise_interrupts(env, 1 << int_number, CPU_INTERRUPT_SWI); + } +} + void HELPER(wait)(CPUHexagonState *env, target_ulong PC) { BQL_LOCK_GUARD(); @@ -1495,7 +1546,8 @@ uint32_t HELPER(getimask)(CPUHexagonState *env, uint3= 2_t tid) CPUHexagonState *found_env =3D &found_cpu->env; if (found_env->threadId =3D=3D tid) { target_ulong imask =3D arch_get_system_reg(found_env, HEX_SREG= _IMASK); - qemu_log_mask(CPU_LOG_INT, "%s: tid %d imask =3D 0x%x\n", + qemu_log_mask(CPU_LOG_INT, + "%s: tid " TARGET_FMT_lx " imask =3D 0x%x\n", __func__, env->threadId, (unsigned)GET_FIELD(IMASK_MASK, imask)); return GET_FIELD(IMASK_MASK, imask); @@ -1515,7 +1567,7 @@ void HELPER(setimask)(CPUHexagonState *env, uint32_t = pred, uint32_t imask) =20 if (pred =3D=3D found_env->threadId) { SET_SYSTEM_FIELD(found_env, HEX_SREG_IMASK, IMASK_MASK, imask); - qemu_log_mask(CPU_LOG_INT, "%s: tid %d imask 0x%x\n", + qemu_log_mask(CPU_LOG_INT, "%s: tid " TARGET_FMT_lx " imask 0x= %x\n", __func__, found_env->threadId, imask); hex_interrupt_update(env); return; @@ -1764,6 +1816,21 @@ uint64_t HELPER(greg_read_pair)(CPUHexagonState *env= , uint32_t reg) =20 void HELPER(setprio)(CPUHexagonState *env, uint32_t thread, uint32_t prio) { + CPUState *cs; + + BQL_LOCK_GUARD(); + CPU_FOREACH(cs) { + HexagonCPU *found_cpu =3D HEXAGON_CPU(cs); + CPUHexagonState *found_env =3D &found_cpu->env; + if (thread =3D=3D found_env->threadId) { + SET_SYSTEM_FIELD(found_env, HEX_SREG_STID, STID_PRIO, prio); + qemu_log_mask(CPU_LOG_INT, + "%s: tid " TARGET_FMT_lx " prio =3D 0x%x\n", + __func__, found_env->threadId, prio); + resched(env); + return; + } + } g_assert_not_reached(); } =20 --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=1756785370; cv=none; d=zohomail.com; s=zohoarc; b=h9heWcLq34sBbi03uSLg2V4JBfJ+2qz/GVsqv932DNkQF3KIpIFWoMFRxHyOf/eYjbnm72MoXGFYxhPsKsyVReMedA66dZ7pHgDC2I67ZP1ROHXG1lx2HayHGWRRQmRl/G1ZObtN7fqZ1LpXaZu87FsND60moMARWd0tUg5Bl6M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785370; 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=PqI4bZNCgVlMM7GvpicjhmQQfbviVJTHvFtF54ovtNU=; b=MVcUEFxcmPoF321OFYuLhr7tGqds9dbswGimoUbLlZscNfGeD3aQyn+H66AT0ZeT5UHF+P3a4awB3UwDlqgcJgT/N90hPR9PDD2vT6nVkn/95XFZ6JnpIdx1axfsjZGXET4KIyRI5oMWc950i5cF9j+0KQWDAq66G4R6JlWvJE4= 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 1756785370855505.2039742973501; Mon, 1 Sep 2025 20:56:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI1d-0003X2-0h; Mon, 01 Sep 2025 23:49: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 1utI1X-00031Z-Dd for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:35 -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 1utI1U-0004e5-V7 for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:35 -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 5822SAKI022312 for ; Tue, 2 Sep 2025 03:49:22 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 48upnp6huq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:49:21 +0000 (GMT) Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-325ce108e16so7459405a91.1 for ; Mon, 01 Sep 2025 20:49:21 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.49.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:49:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= PqI4bZNCgVlMM7GvpicjhmQQfbviVJTHvFtF54ovtNU=; b=VDB2qwsv+TAQ6PBj jdrdrKPVrAcBrPyj7xajD7EjILIBGmzg0YWHoJzdsTpwdJBAQr5mX4Dnfieb5yPI dNj0vLs3vla9xsZ89xcyGTIsy543PdgXNCyf3wUhpowYAhDml9HAeFma1PPRfpd9 V1q6OM60mfSJITxmlVHFV/q+jabXEtVIoyZsTEUfEvKZ8aVDOwDO8Si+dkpGAxJK dXxvAPsTzP/gJvXB8G7TwVH3oy4xTHTwtKd7kOJ3wxeSjGMyD/9s33t+QN9IGzcI Qo+waG8UeRGe82o/lzD5PZxxOQ7qe7W2C4IuiC0DViFMHlYXfnWvVvrO5ORssKTO oOMgEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784960; x=1757389760; 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=PqI4bZNCgVlMM7GvpicjhmQQfbviVJTHvFtF54ovtNU=; b=qFtyQszu+J1q8oQzEIvk6nfNuwqhhTMpnMcSvlV5wYyPQC5a22/ckGwEnQCcTpUr5G 3X7GgT8ChHhiVevP0z1PsVp331KvFRBfyki8iHGEbShzXbjQLszrcUDVP3bSumD8brWR F/DxFPlCS1I8EJIBNUl41nYnBuZtF6aDlDeuecnV+Nl7rHdUfNt1BHlKP5+PXTscX8y1 JbdJhaQFxDC5131DJqInoJPpah5GavCY8G5xkGPftfEdGpSs0RNmRp38VBOdvRCEDAfI l5FKczY8f+ZDPgwibW1nzLVIcyZOWU+USfjeUySUXuYolHm27M+vgUnsQ3g1Dh2ghYog Ez7Q== X-Gm-Message-State: AOJu0YwbJtk2NZAan4/VIY/mNhuoLWYMZXypF4IPNuIngJwiRSXluLaw j3QxfoyMMSyvWgzq2mj97DAqdZFvYx16yMMLeFrpg0WdnKvKOFTz4o5O2O4Id9riHijTbhqLEGY TjlQH9myLVOOBuFXc8LaXmfX4uj4nqNcEm2eNAukDrqsnOnT7AVes5QSKJc3ULzVN+exO X-Gm-Gg: ASbGncvddYn6XlkSNW3PpL0PXFfQkVkgwzLtBYjBm4NOsCjTSrHJSKZWKtm4Ed2eK0p Qz07Uh67BSRCdF+KuhUhYgX1cxtvVg4BHKd9uWFp0NvPMX0YKs16FfSfQdcTyObrHdII3Q4NHad +LVUjXNF5XTHwvQ5sp7FZKR9/C6QmB/BkXOHVNo7oSmAx420zkUmL7dYSh9qBFRADQYz0PHei7B ziGhBbbKSTVEZt7QhJL2+TrDg7kARzti8xmJoEMnvnMZQ2MiYy9NMMmF2WAVkkxoMrarG5W9QU+ alzCDAbV/5J10+OFX7szHkVdVpxrOLBx+sewWmkDT9d0WqC1h8FLzScbg94GA7kgm8V3k8/1p8b skWzNM6BFWJa5 X-Received: by 2002:a17:90b:3d86:b0:325:4751:3446 with SMTP id 98e67ed59e1d1-328156c59b3mr15326070a91.24.1756784960430; Mon, 01 Sep 2025 20:49:20 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGXv0d8g2vqOMWgk1fqIMNdYiBnMR4tscB6b/LygKZFWsVSKystuUe+sBAPeeye6vOSkHQUFA== X-Received: by 2002:a17:90b:3d86:b0:325:4751:3446 with SMTP id 98e67ed59e1d1-328156c59b3mr15326037a91.24.1756784959954; Mon, 01 Sep 2025 20:49:19 -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/39] target/hexagon: Add sysemu_ops, cpu_get_phys_page_debug() Date: Mon, 1 Sep 2025 20:48:31 -0700 Message-Id: <20250902034847.1948010-24-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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: e_t-UCxKWi4zaiXakdoyuH62hu8LWGhH X-Authority-Analysis: v=2.4 cv=Jt/xrN4C c=1 sm=1 tr=0 ts=68b66941 cx=c_pps a=vVfyC5vLCtgYJKYeQD43oA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=fg0LxJQkbHe3Ved8Rg4A:9 a=QEXdDO2ut3YA:10 a=rl5im9kqc5Lf4LNbBjHf:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: e_t-UCxKWi4zaiXakdoyuH62hu8LWGhH X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAwMSBTYWx0ZWRfX5s3bV4+7Jixh 81P978WFSSwr1ZhbWGRRwBfgJBufano6fvtru0JTmwVG2RoP6zA0B3UPmGWR5Qp6wdVyXiXjUbq akcCwKGqDgWFwp3qzD3HVh5pxnu065Nie95tqsM53SsGSK+SorKXJMLAov+FR/m0OeW0O0tRrVZ zreRpi3Z9j0NQIS9Msj/hn9jh0EIrbKXkNPF0gICYbSr+KV3iN8ysGsfxZxHMknwuCpB2h0N5z+ 2Xm8eRhgUF/XkvXYwMvBEWB3/uPnqe8LDOPmmEYF7qDT8uN6TJI3Zhhy0woeAForUBMGhzRCwj8 IbajCfj6EyM3OiIciEL59QP67q0wHMn4pYd9OUB2oTcqKyVnESVd4TXdvNTpWPu9LDpktdcutII JUymCTSz 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: 1756785373234124100 From: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/cpu.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 2ae6874841..2af0b4089e 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -19,6 +19,7 @@ #include "qemu/qemu-print.h" #include "cpu.h" #include "internal.h" +#include "exec/cputlb.h" #include "exec/translation-block.h" #include "qapi/error.h" #include "hw/qdev-properties.h" @@ -518,6 +519,24 @@ static void find_qemu_subpage(vaddr *addr, hwaddr *phy= s, int page_size) *phys +=3D offset; } =20 +static hwaddr hexagon_cpu_get_phys_page_debug(CPUState *cs, vaddr addr) +{ + CPUHexagonState *env =3D cpu_env(cs); + hwaddr phys_addr; + int prot; + int page_size =3D 0; + int32_t excp =3D 0; + int mmu_idx =3D MMU_KERNEL_IDX; + + if (get_physical_address(env, &phys_addr, &prot, &page_size, &excp, + addr, 0, mmu_idx)) { + find_qemu_subpage(&addr, &phys_addr, page_size); + return phys_addr; + } + + return -1; +} + =20 #define INVALID_BADVA 0xbadabada =20 @@ -623,6 +642,13 @@ static bool hexagon_tlb_fill(CPUState *cs, vaddr addre= ss, int size, do_raise_exception(env, cs->exception_index, env->gpr[HEX_REG_PC], ret= addr); } =20 +#include "hw/core/sysemu-cpu-ops.h" + +static const struct SysemuCPUOps hexagon_sysemu_ops =3D { + .has_work =3D hexagon_cpu_has_work, + .get_phys_page_debug =3D hexagon_cpu_get_phys_page_debug, +}; + static bool hexagon_cpu_exec_interrupt(CPUState *cs, int interrupt_request) { CPUHexagonState *env =3D cpu_env(cs); @@ -665,6 +691,8 @@ static const TCGCPUOps hexagon_tcg_ops =3D { .pointer_wrap =3D hexagon_pointer_wrap, .cpu_exec_reset =3D cpu_reset, .tlb_fill =3D hexagon_tlb_fill, + .cpu_exec_halt =3D hexagon_cpu_has_work, + .do_interrupt =3D hexagon_cpu_do_interrupt, #endif /* !CONFIG_USER_ONLY */ }; =20 @@ -692,9 +720,12 @@ static void hexagon_cpu_class_init(ObjectClass *c, con= st void *data) cc->gdb_core_xml_file =3D "hexagon-core.xml"; cc->disas_set_info =3D hexagon_cpu_disas_set_info; #ifndef CONFIG_USER_ONLY + cc->sysemu_ops =3D &hexagon_sysemu_ops; dc->vmsd =3D &vmstate_hexagon_cpu; #endif +#ifdef CONFIG_TCG cc->tcg_ops =3D &hexagon_tcg_ops; +#endif } =20 #ifndef CONFIG_USER_ONLY --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=1756786075; cv=none; d=zohomail.com; s=zohoarc; b=lkwivDFc2HhnIr99rSjHxk35oD4LqpLuBcNxochRicIR1x8cFATUTJ2s4pSYHAej0fna7tMQ7v5VFM+67Ie8ziELuphOqNwcfHMbKEsuJTuWVpOBF2WeIS3MM2fKMAVDFPiSEkxOxCJtCXWXcg0Ri7koYZGd9GUDuYAmeeIy9cA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756786075; 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=YhiyH7LtIZAoSlZcRmHhacqLQoFuco/McjDzMQWZOHs=; b=DhRQURyg6AJgSGFImV+lj+AnyRUskHphPdI1CI3TM0fjnSqEtcnnNfjCZHppDlOGpKE0+e0nWdDhVJX3my0bmsIlxzgLyOCYod45apOT8nSruXrVKwtTwQV21WmPbPywv5gMB6bIJd92fzMAthILNXdd6AQCG8NGUBZKYbBaDDE= 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 1756786075183594.89752846739; Mon, 1 Sep 2025 21:07:55 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI1f-0003p2-L1; Mon, 01 Sep 2025 23:49:43 -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 1utI1Z-0003F5-D2 for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:37 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI1W-0004e9-2k for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:37 -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 5822Rnt1029660 for ; Tue, 2 Sep 2025 03:49:23 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 48ura8pc3j-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:49:22 +0000 (GMT) Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-32993d924ddso2353192a91.2 for ; Mon, 01 Sep 2025 20:49:22 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.49.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:49:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= YhiyH7LtIZAoSlZcRmHhacqLQoFuco/McjDzMQWZOHs=; b=NqbMyu/WYXbkP5d2 djWOVjbu+gLCXvqAwckd8WvD10B+cSfO7v0DZZmjYKJttY/e8iNrAPf0Ih+DvLbJ l9JZwU3qlmFBXzCZVdY8zkMzTEELKZ1w18ixfsl78RXIL/WqXCyixMvwv7C2ff9e KzG4LUirvomZ5wBnOXj92FUDoDr6wdmJek7bpNGepeLAOwVfya02AlLuEj1fKCs4 7SakPgIdjaWjI1FbKmUtsiyDgjfkoH1JhymumJ+/O7d3avfhwLLFkheWqj5LRzuU HJOI1f5oJ+KgW5dWwh3bWVErdEKt7ORtHfQcXk5SkwmunL8z9uPbOwq5HGT1dL2P MFVuDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784961; x=1757389761; 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=YhiyH7LtIZAoSlZcRmHhacqLQoFuco/McjDzMQWZOHs=; b=XsDzcKhg5cdjW4drH7+ho6GD9Dd8vUVgsX1HxjRXS6RXHAt/BpLcLkjWscKIKvvSBj 4OSle6jtQLAjtItLDWy6M2o3uRd3e3QueBzlxqfIARmTsLJeByPEp7/dEPB+DRaf+J/S k3xSKhYlHz8Z5w3aLQ/FP/Yz9UILlB/+6HnOQ9Acn6SmaEv3RM90F3MmSiKzUFug2qI4 /NPhlRB45CwRbLLALRr1JDsA5VkUg8alaieY9Gn3B/wFMuM+vjs8PTrJclZkB4B49CYB A+ea0oVlCG+XeqWvtJ0W5OXMxa1QAxIAcrSuVBPsUvCOJCnzTD53chg1bsM7rzlZKRcr y9HQ== X-Gm-Message-State: AOJu0Yxvz2/7oxNE5pSN4Fot1z+kelGBLB2Jb0wBIY+Rha9ZFlnAfLHP gGPPQPdhBKSj0RNioYSoFgAmJJKnjdLZxszxUQyLo9T4hRFpr1nDfCSl49X/tNr0ZH/U+rcW7mU Hq+0QmYUtjTqpfxpgwcn9FRyACwneE/y1v7XNcTppBzNjzLfcGeJiI6h3Mrl6WcDtdb1S X-Gm-Gg: ASbGncvamN5b7NL1e22M1RbHQOQR5G3FR+DOE3JI8+XslPSeu6UOtPa2Mrw7Bjoi59H xBlsI0iDFpPp+ASoWufVTECSRUF/vTMXht8EJSNIL+P5mbVZfpUR8XJ++7QXPjr6OynGNZMTJPc Z71Uk9QkMJJmlsyy37VJOWRluIkmZFHB3ghridy4++gllS92tECASo3pF+nfzyWDHv6h/EzWjCw TMyt7IGtWJnhkpuQoqLNXzMyWlGDCzUKCyLDqfzd8KEO2uayrhTuIOA0ZgSmD+mTfawzK1ZeP49 ik7izkdWsdT0gj7/Fr79bqIcjP7YRCuZk2yhpop5Qf8u+lV87CffbFF63hMdb6GyjUidCmpumt8 /+VIZXOSoVpJG X-Received: by 2002:a17:90b:2751:b0:312:e731:5a66 with SMTP id 98e67ed59e1d1-32815412c9emr13486886a91.3.1756784961416; Mon, 01 Sep 2025 20:49:21 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHMlEVtV4P6Hw/Zn8viSR0QAHjCb1PKOLhFB7HQSC+dXzM2lnmW6npv+Ug6OJiffcbPuWNedw== X-Received: by 2002:a17:90b:2751:b0:312:e731:5a66 with SMTP id 98e67ed59e1d1-32815412c9emr13486859a91.3.1756784960992; Mon, 01 Sep 2025 20:49:20 -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/39] target/hexagon: Add exec-start-addr prop Date: Mon, 1 Sep 2025 20:48:32 -0700 Message-Id: <20250902034847.1948010-25-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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: dV8_Ev-qFf6JVFMEbrbb8QTp5QSyswSd X-Proofpoint-GUID: dV8_Ev-qFf6JVFMEbrbb8QTp5QSyswSd X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAyMCBTYWx0ZWRfX/ZciRKQrd6Pm zwhJ8YHAhl/9k0DLU3BK9pO9TMHjK5tA83yJoEg0hUcCyNGjj4a6bYgYwKT/pgyVtXa+7k6ecxB fSskcyiv0PJnI3ttxc7LONPSI8lnZnNlnHRy/49pSPpR1+M+GKWvdwc2eroi0NBdcr/cKCl0s7L zau8araHh7+y5nZ9uoIglCrktA5V8d/+zaqRNuLdoDSBgqUa7UOOyKbyRb9ClhvUs/QbPwYojbv OWCkNerVykxEs2l9LwOI6LcQso5Xfrv4KwUH23NecC9IFYe1fyjbY7iW8cNicYXUmhoIezhZPdY W80BLapaAcp0KhKxtdk3QIFr7TtxKMqk5JDpKxkbDsGiesZqB6D3WS1zYX/0pdjy55PhuE4MhSu PicDCD8r X-Authority-Analysis: v=2.4 cv=VNndn8PX c=1 sm=1 tr=0 ts=68b66942 cx=c_pps a=vVfyC5vLCtgYJKYeQD43oA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=GeXnehyCMtKHti5O41QA: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 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: 1756786076381116600 From: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 1 + target/hexagon/cpu.c | 2 ++ 2 files changed, 3 insertions(+) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 92b32f434b..39d6983263 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -196,6 +196,7 @@ struct ArchCPU { #ifndef CONFIG_USER_ONLY uint32_t num_tlbs; uint32_t l2vic_base_addr; + uint32_t boot_addr; #endif }; =20 diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 2af0b4089e..8afa7e55e6 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -69,6 +69,7 @@ static const Property hexagon_cpu_properties[] =3D { DEFINE_PROP_UINT32("jtlb-entries", HexagonCPU, num_tlbs, MAX_TLB_ENTRI= ES), DEFINE_PROP_UINT32("l2vic-base-addr", HexagonCPU, l2vic_base_addr, 0xffffffffULL), + DEFINE_PROP_UINT32("exec-start-addr", HexagonCPU, boot_addr, 0xfffffff= fULL), #endif DEFINE_PROP_BOOL("lldb-compat", HexagonCPU, lldb_compat, false), DEFINE_PROP_UNSIGNED("lldb-stack-adjust", HexagonCPU, lldb_stack_adjus= t, 0, @@ -409,6 +410,7 @@ static void hexagon_cpu_reset_hold(Object *obj, ResetTy= pe type) env->next_PC =3D 0; env->wait_next_pc =3D 0; env->cause_code =3D HEX_EVENT_NONE; + arch_set_thread_reg(env, HEX_REG_PC, cpu->boot_addr); #endif env->cause_code =3D HEX_EVENT_NONE; } --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=1756786078; cv=none; d=zohomail.com; s=zohoarc; b=ataBBdW54bgpZ2VId1rF2Is0jeuV8MrpfMzC6pynv2S3Hbrx0WpicjlJHvZ8Lb5MEacI4pRpe4Cje0DL6483kqUQJzHCNOpS70vDy8j9creNWe/EeGCDxu3dsOjw8b8vzsnO16h2IA+02tM9qEEL2xeOIt5K3xaAJnk0Gjp5S8Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756786078; 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=CEjTdeNUHCIqt2tlaUwa6vl9vloIiDWBPkdv12Uh/m4=; b=LJDR71oMHVbrhf+pREj2Vjex96Fa45NBdt0o4gHP7YRMsFFr+28ptJbLXvBXF2VvschjwRLMJE841goIgA6+J29f1xKF/bVRUgs2e4rlas5HXHOvHnc+ITM9Exhup743HWdkQjQXt4lWdWD9rENk9nkwb+spJtMBaz+LfP3psHk= 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 1756786078579703.6832471198121; Mon, 1 Sep 2025 21:07:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI1f-0003nM-DT; Mon, 01 Sep 2025 23:49:43 -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 1utI1Z-0003F6-EK for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:37 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI1X-0004eG-2X for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:36 -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 5822SkBj026392 for ; Tue, 2 Sep 2025 03:49:24 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 48uscuxeb2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:49:24 +0000 (GMT) Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-325ce108e16so7459462a91.1 for ; Mon, 01 Sep 2025 20:49:23 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.49.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:49:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= CEjTdeNUHCIqt2tlaUwa6vl9vloIiDWBPkdv12Uh/m4=; b=RaIXuI+F3/OqvpPP P3dqxcpz0LbWiTzkZ/eFKimQnRa46bGpcth2dUkUr/qn9XXtn9LlmqNNIkPec5fK ORDCNrsZd30wHFyCRJ+ISQ3qvtjp1uiNQITvjHFxxY0P7CbALIaDgKQSudZ3Vvqg fMu1D0U9XdfX51MGW+hBPMV26lMOxZSe++C2qeDhM6gbb5kvm8j2eypm4LgLBc/p L/TMpW/rcs5HZdgBdMqUjTaue1/azEojWY5VpAfgsi3sbb/r6w9IO1luCSgjVNdo WjLbnCkRrtGGWcbz8HS3TUHyba0gUWMjlrCqwb9/A2krCPFkibaPOAuzecuqRK+6 j+/97Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784963; x=1757389763; 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=CEjTdeNUHCIqt2tlaUwa6vl9vloIiDWBPkdv12Uh/m4=; b=Vjaa9zTx03kFRjqvBk+3g3zjJ3WYC7dG4JhanQbN3pNF1xaUQhJnHZ8lcDM9cJbEZ5 UrMddqi0L76f3PwGNdkTh9aZaDcEZIrIrPtlHqwKl4CPdmQlNp0juEtyLtq3j28T7RJC CFTi2Y6yPWZ1EfzRWumeHwE5PAtpfzRwnxlpammY9IXJ9/ApOuStBh0YWJI7eEUId43r X1EjD434/DB9TBu7cGgRpZhbW4kkD4n9e/pLBfJgE2fxqTGhpemd77DWiy94xo6UFB25 cRicbLA2ZU7xQ/Gf17dXF0FUtceBGDVyuhBMaOQdTheMJG1axZSUUX+/uG+KT2OKkatz 7O8w== X-Gm-Message-State: AOJu0Yz7ACx099FfwfLAdmn7gepVxvLttG4k2HNZ6WgxNPhjUE1NJpvx 3eF5y4NfeL8DrIHl5l67Bo5nAFRPhHUwudcVwzS/VuxGFUl7S5n4RquTrEJ4aGJ3ZaTM5HXkm14 kNJs4S9ZdbajcFA1Cgxg86AMOa5i/R33e+1jd/oxbs5s2cP3fkk2CjPVkXbDMNtklJFj/ X-Gm-Gg: ASbGncuF9IGd4vspX9l79SdOwbPd6YGQPjZ32nnSR3sRxS7mxXJFSQ+GmIcO+gvgXEE Pe5knCTy02IHb0osaYO+3ArVD2+I/MHt6edJc/xEwoKHYhKyAo15YxYPI0g+ON28i0few4AX8rK 8jLqcC1Vbz6E6quz6dZ+BTf8NEW7RcURvij4JXBaNvlmMU5nJFi60nMsSk/aknce4U4dnTpmvaX jk7CJAbnXI37MZfUtVBcXh3MyWU8zQ9VVoAozgal/jkSpjiUZr5sVvgoWea/W3kGc3X3CwFWzWT hdt87N9Vly+pQq5SfW5ZUxFHc5AtCC1BOBbI8909jGjsoTMepVEOw/C4O835GQMDMgujK47IU08 j3aBQL/HDuLcR X-Received: by 2002:a17:90b:2245:b0:329:e1ce:dc81 with SMTP id 98e67ed59e1d1-329e1cee6abmr1605435a91.10.1756784962752; Mon, 01 Sep 2025 20:49:22 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFvQfNcmw7oShCnyOvWQ2pN6InJt89RcCo8amjzD/nTcyEpe7Q9Y9jhOoL7TY7U0zItn6xyLQ== X-Received: by 2002:a17:90b:2245:b0:329:e1ce:dc81 with SMTP id 98e67ed59e1d1-329e1cee6abmr1605395a91.10.1756784962187; Mon, 01 Sep 2025 20:49:22 -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/39] target/hexagon: extend hexagon_cpu_mmu_index() for sysemu Date: Mon, 1 Sep 2025 20:48:33 -0700 Message-Id: <20250902034847.1948010-26-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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: AW1haW4tMjUwODMwMDAzMSBTYWx0ZWRfXzyDGEMtzzusN NvQn2iGQ5dThEzYDLHT7mpiUCrE8K/lHmhusVoRRZnPsNI8WjPEIcbSb22nYzyJQdBHoWSN9DV5 Mx5ojHFWi3RfruUJn8+rEACIl7G3ZT/XNgeCyVUE1GttvZV5AD1VbdulMoANmPhW/hR3bDYL1st W1coeSqsiuGRmIJnsPS2Iiri1z5DvO7hl6ncxxSFzkfFWU2r4Rd2pILspKJoawZcGA7oZvP18Jq S6r8V/PsSz/r9uZYXb838c7vTw0hXPCJ6Yw/iGKe0ai29Y+eTjprjYCTRgitsybBXWzqUGKyY8k 3rpRDxrXH0dxLRl3Rj99vFtIs2HRKvds6M+EhcIvw6T+nzrk6M3oh6seT4mEYnNLWq8hK82IfZS DE7F+jP9 X-Authority-Analysis: v=2.4 cv=A8xsP7WG c=1 sm=1 tr=0 ts=68b66944 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=kXroxUfw0iMe_INEunMA:9 a=QEXdDO2ut3YA:10 a=rl5im9kqc5Lf4LNbBjHf:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: eikOmmsO8vifxtTuq2lr-cA-VPnhYhVq X-Proofpoint-GUID: eikOmmsO8vifxtTuq2lr-cA-VPnhYhVq 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: 1756786080533116600 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu_helper.h | 1 + target/hexagon/cpu.c | 26 ++++++++++++++++++----- target/hexagon/cpu_helper.c | 41 +++++++++++++++++++++++++++++++++++++ 3 files changed, 63 insertions(+), 5 deletions(-) diff --git a/target/hexagon/cpu_helper.h b/target/hexagon/cpu_helper.h index c8b0a37b7f..9f2eb27e63 100644 --- a/target/hexagon/cpu_helper.h +++ b/target/hexagon/cpu_helper.h @@ -15,6 +15,7 @@ void hexagon_set_sys_pcycle_count(CPUHexagonState *env, u= int64_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_cpu_mode(CPUHexagonState *env); int get_exe_mode(CPUHexagonState *env); void clear_wait_mode(CPUHexagonState *env); void hexagon_ssr_set_cause(CPUHexagonState *env, uint32_t cause); diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 8afa7e55e6..6d2013ce89 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -329,20 +329,16 @@ bool hexagon_thread_is_enabled(CPUHexagonState *env) =20 return E_bit; } -#endif =20 static bool hexagon_cpu_has_work(CPUState *cs) { -#ifndef CONFIG_USER_ONLY CPUHexagonState *env =3D cpu_env(cs); =20 return hexagon_thread_is_enabled(env) && (cs->interrupt_request & (CPU_INTERRUPT_HARD | CPU_INTERRUPT_SWI | CPU_INTERRUPT_K0_UNLOCK | CPU_INTERRUPT_TLB_UNLOCK)); -#else - return true; -#endif } +#endif =20 static void hexagon_restore_state_to_opc(CPUState *cs, const TranslationBlock *tb, @@ -463,6 +459,26 @@ static void hexagon_cpu_realize(DeviceState *dev, Erro= r **errp) =20 static int hexagon_cpu_mmu_index(CPUState *cs, bool ifetch) { +#ifndef CONFIG_USER_ONLY + BQL_LOCK_GUARD(); + CPUHexagonState *env =3D cpu_env(cs); + HexagonCPU *cpu =3D HEXAGON_CPU(cs); + if (cpu->globalregs) { + uint32_t syscfg =3D arch_get_system_reg(env, HEX_SREG_SYSCFG); + uint8_t mmuen =3D GET_SYSCFG_FIELD(SYSCFG_MMUEN, syscfg); + if (!mmuen) { + return MMU_KERNEL_IDX; + } + } + + int cpu_mode =3D get_cpu_mode(env); + if (cpu_mode =3D=3D HEX_CPU_MODE_MONITOR) { + return MMU_KERNEL_IDX; + } else if (cpu_mode =3D=3D HEX_CPU_MODE_GUEST) { + return MMU_GUEST_IDX; + } +#endif + return MMU_USER_IDX; } =20 diff --git a/target/hexagon/cpu_helper.c b/target/hexagon/cpu_helper.c index 18c929bf5f..5d0ba23d02 100644 --- a/target/hexagon/cpu_helper.c +++ b/target/hexagon/cpu_helper.c @@ -389,4 +389,45 @@ void hexagon_stop_thread(CPUHexagonState *env) } } =20 +static int sys_in_monitor_mode_ssr(uint32_t ssr) +{ + if ((GET_SSR_FIELD(SSR_EX, ssr) !=3D 0) || + ((GET_SSR_FIELD(SSR_EX, ssr) =3D=3D 0) && (GET_SSR_FIELD(SSR_UM, ss= r) =3D=3D 0))) + return 1; + return 0; +} + +static int sys_in_guest_mode_ssr(uint32_t ssr) +{ + if ((GET_SSR_FIELD(SSR_EX, ssr) =3D=3D 0) && + (GET_SSR_FIELD(SSR_UM, ssr) !=3D 0) && + (GET_SSR_FIELD(SSR_GM, ssr) !=3D 0)) + return 1; + return 0; +} + +static int sys_in_user_mode_ssr(uint32_t ssr) +{ + if ((GET_SSR_FIELD(SSR_EX, ssr) =3D=3D 0) && + (GET_SSR_FIELD(SSR_UM, ssr) !=3D 0) && + (GET_SSR_FIELD(SSR_GM, ssr) =3D=3D 0)) + return 1; + return 0; +} + +int get_cpu_mode(CPUHexagonState *env) + +{ + uint32_t ssr =3D arch_get_system_reg(env, HEX_SREG_SSR); + + if (sys_in_monitor_mode_ssr(ssr)) { + return HEX_CPU_MODE_MONITOR; + } else if (sys_in_guest_mode_ssr(ssr)) { + return HEX_CPU_MODE_GUEST; + } else if (sys_in_user_mode_ssr(ssr)) { + return HEX_CPU_MODE_USER; + } + return HEX_CPU_MODE_MONITOR; +} + #endif --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=1756786124; cv=none; d=zohomail.com; s=zohoarc; b=j+g7itn8hRIulXOGve79w989y/NpwgZPr3cBOXa1Bn9xmyIGsvHtJA6WWalLnMl1RlG/wpynOgunpRMdWd/apyJ+KSIiVWIy+DXFAgwAxBn+ilkvyOGFbTVYBf5b6AGPyE7YQ61Kk7e+XTkHiyp464Q1b82hNXBXqTNiBfbURvw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756786124; 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=ThSS2CFTT2j/21ACnOfKTPFMSqyy1/Djxkz0Pjw7nUs=; b=g7W1k8zlivA+DoR3JnWmCGfUv6525kbVDFc71IlNAA9svJacfhnUu2gEElj30dY2EM8Vcr2s/2P9WVf0xHuO8MRt9R7GJ3FIxd+gDNEI5686e0szSLfS5y6pee6xvpP0VZR8sK2WjUvBGAFqVjaoN510a8FMpJYgcoVGXXyWwBs= 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 1756786124892278.834672189392; Mon, 1 Sep 2025 21:08:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI1j-0004Ka-W7; Mon, 01 Sep 2025 23:49: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 1utI1b-0003GO-4E for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:39 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI1Y-0004eN-8b for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:37 -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 5822SJMD015457 for ; Tue, 2 Sep 2025 03:49:25 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 48urvyxdkh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:49:25 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-329d88c126cso523640a91.2 for ; Mon, 01 Sep 2025 20:49:25 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.49.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:49: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= ThSS2CFTT2j/21ACnOfKTPFMSqyy1/Djxkz0Pjw7nUs=; b=G8syCzu+6mdd8qhb SpEuxdTYo8S814FoNTL8LX4WxqxK35Cp1AmWYL1i3H1vtEcxMhRWaW9rsADDFCnv LtexKz/ajL3v4eJa6WlIWzxW2WZGwUqF2IfDCYgjZWMOc312RXI4Vx3FhktnkW7g vrkl458UAqbomywahWbXFumAJu6JPXYKTdHizEx1I/wDIJroMlwXEd+8RngviQqO nwVTEO04mzAGIxG6uvENSR1gSRdT+QI9RyOAFgJlPbodZWKgIPraewt1l5/gydVC UEp6PHQmMtCrhBuTtAonHIMygjSiPFp/I2fJ5qkn0+ktFJGYk+eMjqzNiAp0vQYb 7lsbAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784964; x=1757389764; 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=ThSS2CFTT2j/21ACnOfKTPFMSqyy1/Djxkz0Pjw7nUs=; b=wz5/n6CeVXBLx5yO+kfJzwVjnRUn4t3kf0/rQTJzwEK1BMo0IdQzryoDffFUO0F/A+ 6tZfDOgSRFeABQDykY8Ze+G9w3NQkbRpoxJE5pZOgiWpIMjtqvP+YnGvahowzQyN7FbF JjytAt77Cp6gkk7yMBYvjM4oEXaLSkT+JGYg9Uo7tJzO7IqcBCE/xBrXLWg2m0OFpOOG koq8UaSEmcWniKMsdKANpsjYMQJEm2U7pZ1JWELkkI2kJHumMAQUauiXTdtZmFpPXrFH VEd156wFcP2wzw4aaDv3sjAtiCbSZ4PhH+B6fwuSLIhwpVT6fk7qK83TlelrimyQ4G5D V0IA== X-Gm-Message-State: AOJu0YxLzk73JQtZYa/StQtusYvvdEnh1iSUu2kPRsjGY5PQAfaYkczU AnezZRydt91/GYvUweM7IKXGpgFZMMZy/o060cOumi3D40Emr9pksnVaWVq2U8mDzYxO26NwCn9 TODqjmeYU+ksqbAjP978OrT2L3AszTeMIc/6+c+o2IlpXTS7rxROlFOh6mnJVrtSKhBVL X-Gm-Gg: ASbGncsh1YZ5r6Czsn3mGpCD20E0ztFEDcNxrHEEsyml5LE9GFTAJ3O7HVK1iLPmiJP P1zz7hKJ85KEvB0yqdt9Pd0G1/9F4yWXQyY7fUd7N5A0yGNNEmcTpJMc4T0H/g1D6aYz20URglV HzmZB3GvM24KgAHckBUGM0tSOTUk/2aExWfxBmnD+DJc8tS5jyB/G+Mowc+JTdXvu9Kz5j4C92E +r/jtYJZcdpBJBGhfaVlIC6E4MKu9jhNlcT5xIsAESD4jG9Vc6SlVuChFjGsIQn+YYPH6aRSFRB t0K0+19jx77usd8s7ftBmoFlzgTJX17K9fL9gz3Qu/hb9LlbTmzmw1NrXas4cAZ3DqDImp+BD8k rywWmiWtAOpgK X-Received: by 2002:a17:90b:1a8f:b0:325:ce00:fcb4 with SMTP id 98e67ed59e1d1-328156e1719mr10858852a91.31.1756784963698; Mon, 01 Sep 2025 20:49:23 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGr5ux6SWnMO+a3C9qw/N1s3UIkDZ0coi2s5PIdUBav7qudSlaiX45SwuZANmMBc1GC7HwBkA== X-Received: by 2002:a17:90b:1a8f:b0:325:ce00:fcb4 with SMTP id 98e67ed59e1d1-328156e1719mr10858834a91.31.1756784963211; Mon, 01 Sep 2025 20:49: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 26/39] target/hexagon: Decode trap1, rte as COF Date: Mon, 1 Sep 2025 20:48:34 -0700 Message-Id: <20250902034847.1948010-27-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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: jqo86oWfvOFuagNZQVjBRB96LIO9618I X-Proofpoint-ORIG-GUID: jqo86oWfvOFuagNZQVjBRB96LIO9618I X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAyNyBTYWx0ZWRfX1z8Rl3U0yMnw F5uADEG5+ZjU1o6SA7kL29Y+EazHfq7iedk3fDDWeEIWvFQE3WHLYspMnZ3z2nf5hiJP5kX24A/ HL17hOYA6U4yv0NZvH27sYQ0D7LxQVoCm2V/aOB+bWZs7Q704IxnJ9/HYyz+q8vuJTcKGO3xe/z 1m5e8LX6Ugrg5ZUzFvFrksxADUZr4vqKVeHjCPQ79bwBVULJm3AXUfdScofhhyPh+akyl3hD+ED gcFP7xFHwBpKywy5wsk73CPLmPQ+kjIMGNIUPOU3ciGckSLf6mUdq/ynbKyy66FINVrMWfFKS6I bPmgLfc/MIWQjQS2/97iDvXX2/1gXhb0Z29i7/zdIlm11F1O+Zm/kJKKzbJYTrX8W8X0nvmdJTF IOFjkBLW X-Authority-Analysis: v=2.4 cv=NrDRc9dJ c=1 sm=1 tr=0 ts=68b66945 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=oDs3gbQtVgqjpHJ5GUgA: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: 1756786126122124100 From: Brian Cain Also: handle rte instructions at the end of the packet. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/decode.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/target/hexagon/decode.c b/target/hexagon/decode.c index 23deba2426..5d0beeeaf2 100644 --- a/target/hexagon/decode.c +++ b/target/hexagon/decode.c @@ -193,6 +193,8 @@ static bool decode_opcode_can_jump(int opcode) if ((GET_ATTRIB(opcode, A_JUMP)) || (GET_ATTRIB(opcode, A_CALL)) || (opcode =3D=3D J2_trap0) || + (opcode =3D=3D J2_trap1) || + (opcode =3D=3D J2_rte) || (opcode =3D=3D J2_pause)) { /* Exception to A_JUMP attribute */ if (opcode =3D=3D J4_hintjumpr) { @@ -371,6 +373,18 @@ static void decode_shuffle_for_execution(Packet *packe= t) break; } } + /* + * And at the very very very end, move any RTE's, since they update + * user/supervisor mode. + */ +#if !defined(CONFIG_USER_ONLY) + for (i =3D 0; i < last_insn; i++) { + if (packet->insn[i].opcode =3D=3D J2_rte) { + decode_send_insn_to(packet, i, last_insn); + break; + } + } +#endif } =20 static void --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=1756785186; cv=none; d=zohomail.com; s=zohoarc; b=hKMPUuzb9riLQa3gs6Jbqf2ihjIscDby7GXCpMwYrrfyhefg7NTJBt+kd30bqfY3yYDkUNWKf58EEkr7qrlL7yV0tXNYbG0A83ueNFeGtEMkt4YLwGWvbmVMqBuj+BCiLexTnBnFrTFyTtG5v/6fN6pAGIf7EUs/6NiFlb3Gulk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785186; 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=ooZLOtH0gZeA55y7LZQUilIWEwM2EaDEw66LpHs4vGE=; b=ScJAU5D9Nb/ugF+gup29/LRojq6hEJWAKjqAlun3b441wB3vqwAe/LBpGF9rrlEvR30dhm4NyEXT+HmjwKoJJxbPWnJ70dqfct2ChwtpFGkKUDwFW0hdjULuvWBh14hJc6flkzO2xqgoXOhQJvp3QxLe9km96dIfhGYfisNsv5I= 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 1756785186698467.1123190273652; Mon, 1 Sep 2025 20:53:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI1m-0004dO-Dv; Mon, 01 Sep 2025 23:49:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI1c-0003W6-Dq for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:40 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI1a-0004eZ-Gp for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49: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 5822Rmng029940 for ; Tue, 2 Sep 2025 03:49:26 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 48ush2xan7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:49:26 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-324e4c3af5fso5183607a91.3 for ; Mon, 01 Sep 2025 20:49:25 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.49.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:49: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= ooZLOtH0gZeA55y7LZQUilIWEwM2EaDEw66LpHs4vGE=; b=gUDAtATc0GkswXGn IU8aB112uCDG/Hgwzrdufc4YCPE7pdWST9ZKCFJtbmlb6p2JDaBefPrvThMRIzDH 7gXiY/GW18RVAxT3wSYJF6W931Qgl+Em+UBwhS70i2132vWGetZaOKwlII92H95k 8zBMkgp7aZBCDPJDxRINqebogjQgo6GmBBqGbNDbkI7l6fcIC6FMZzUVpigrdiEd vdWGhhzkoHjps/ASGq3b/guIJ6/v5Ofdi2LdsawCc7wh2tlqYLa/8ntZMdLWbT7r LA1RZplr1NaJhBgX1P1gfPsSMkNuMKUQEy8Cl3QASufReVuIUus60eAF2aKOI3Xt XLvMWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784965; x=1757389765; 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=ooZLOtH0gZeA55y7LZQUilIWEwM2EaDEw66LpHs4vGE=; b=o6QyLTwDTAMdOa3LAm25J3DYSTjtn/oP9zShBCNJxOC8J6Af5RsZUckhMpdgfq5DZC 2v63B6v4gCZNyt6/e4mmZjVp5a3+aUlrnKbCa5wZBRgmd8DsqpoWdQW09iK1hNYJ60DR Tah21AlfW72iwXTx5qEdg+79EAU5+rG5LZwjJUKw819n/6ghkQKr1Xhytj+tstJ8Khv+ Q+sKpy3o61rfoDBP33txB+qrdGbj4xY+OgdcomdON2nXamz57p5emfBIVWtA87TJKOPn /MrDYfG/oHSUXdFm4oOsfAnG1jN8jTkwtNJapJsubKuKBaBtbdWc5EAmTrkqrPMJnnoC HFTQ== X-Gm-Message-State: AOJu0YxNog4MQkYSe3wL+piLKA3PY+dRPj2jqTGXGhWOwlmuAuvE2x9W ErjhlCyocJ1Xz63vyB63Nhf2Jc1amOvu9SlCvZO3VH0iOg9JZAMgFx0diLDoQZBgtm8OhJ2oYCq 5R6fyTvTIPFJptruzjvE103TBD5iw8vQFV5hgGA1s5f8w2NAELfHmxsXOI73neM1nJv1j X-Gm-Gg: ASbGncvjGa72wUx3S/2lbppWxPrL5sftcBQe916E465f4fmgu83Wj4Dp23kY0wXIDxS byh7aDDYDsFipDfmB0ohiyNkzfIb5ZPej3FRhh5E3UxXFwetoDodX6VI5ffkuy0IpKDIznLTOSX NoBrEFKTF+c52I6G3xrIKSF8ZiI44EL4WFdbAkUc3QShDWBm+lsL/VNxRn7PCHvMutUsaq2QAAB o2SVGcqBuwXCod0V5PC7zQ9jgU2rY3LmLjZIzOhZJ8JCaeXwMFO5DD5gqzTuIdQURwm3WCzD+vq ESOiYqRy166OW7XC0vrXBWGiD2MiuskLx6e8GUOTyfoW4qk2MXchiS+VAoMmLJG49soZ9D+n1bg 2J+4wlOvRmT33 X-Received: by 2002:a17:90b:3d07:b0:327:6da5:d94c with SMTP id 98e67ed59e1d1-32815437c67mr14265872a91.9.1756784964956; Mon, 01 Sep 2025 20:49:24 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGUrYCwkBydEfE/jF977qUr2w1ksBA2efwIF5PRjbi+Ws6aVnekm7K0NtvjWyqnLKiE3Wz4Hg== X-Received: by 2002:a17:90b:3d07:b0:327:6da5:d94c with SMTP id 98e67ed59e1d1-32815437c67mr14265841a91.9.1756784964489; Mon, 01 Sep 2025 20:49: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 27/39] target/hexagon: Implement hexagon_find_last_irq() Date: Mon, 1 Sep 2025 20:48:35 -0700 Message-Id: <20250902034847.1948010-28-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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: AW1haW4tMjUwODMwMDAzMiBTYWx0ZWRfX4kbjnU3Es0tK IG2tbGmXHcUNNH+xDeNOUH74czHC2a3XRZ4Js4i0WMaSqUNGKB69fxIQBbdyTjmMLSAezgJIUag +QApQde1IrboGIUTTiWyTjR2goY+UU+WHT1KgIgwwF9L+y9TiPoU1C1zKkfAbm40MMv53mSjy/m qD00XB0G/1XMVSo3Y+QLvV8+SP6tWp+5fH5Hi/+4TCqQ6wDC9C+fwm/C3wXrrWySkj+4inISbEw VcwFelM6FRp3TqgbbMpT/gFYIPTR4e7SSlMSslVxn4tJvYnXRWjT3+y7zbZoqQQeb48+FVF1GSl SwBW0jZ7EBqmmd5cdR3VWt+u50WWmdlM+0tah0Ga1ljf7+htibhwPiw7D9AxXjj5DrOeoVbsalG U4rXa08C X-Proofpoint-ORIG-GUID: NKWY3_YyiR8Di9exIkSB43gPbFOruCDH X-Proofpoint-GUID: NKWY3_YyiR8Di9exIkSB43gPbFOruCDH X-Authority-Analysis: v=2.4 cv=M9NNKzws c=1 sm=1 tr=0 ts=68b66946 cx=c_pps a=RP+M6JBNLl+fLTcSJhASfg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=lnlm9rIWFyOPqHsVLmcA: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 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: 1756785188827124100 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/op_helper.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 37a5b45e75..5196226f02 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1643,7 +1643,13 @@ static void modify_syscfg(CPUHexagonState *env, uint= 32_t val) =20 static uint32_t hexagon_find_last_irq(CPUHexagonState *env, uint32_t vid) { - g_assert_not_reached(); + int offset =3D (vid =3D=3D HEX_SREG_VID) ? L2VIC_VID_0 : L2VIC_VID_1; + CPUState *cs =3D env_cpu(env); + HexagonCPU *cpu =3D HEXAGON_CPU(cs); + const hwaddr pend_mem =3D cpu->l2vic_base_addr + offset; + uint32_t irq; + cpu_physical_memory_read(pend_mem, &irq, sizeof(irq)); + return irq; } =20 static void hexagon_read_timer(CPUHexagonState *env, uint32_t *low, --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=1756785900; cv=none; d=zohomail.com; s=zohoarc; b=f8Mjw7Z6wVbGPIgJgLf2TXYfeYkbKGigW7c4wcwhtI08utxFFhb23NbvKwXBEbv+Bf0YBjf1WaZzHKoN9fQyjlufuR3bXOszCvxZMPJsn62DF69F1cfPTCG6BSv2q5ZlLMWbNXaPLcRjtSkavamSk+eZ0Geuv/UeoM29fZUgxKg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785900; 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=PV4iW4lWrufS2Wd6cGIX4QwBDeoO018DLJefWyOeZgg=; b=LFfQlBOiAZmdc6eIPyCELJNVih/EHmAXja+VcuLQSmlZKJFIBlmADBdTaBQ0EoXyS9XAEN+fQIMeg74URQU6xb8dpyPPgMi3UaMlHjYtv6JkzPW8wWaHCkF1N1jYPXlXxB0sdyMbeHqSwLaj4hxlPXQOrbnS+KHt7ATS8vnSXvM= 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 1756785900698487.41463131010755; Mon, 1 Sep 2025 21:05:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI1f-0003me-4Y; Mon, 01 Sep 2025 23:49:43 -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 1utI1c-0003WY-PK for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:40 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI1b-0004ee-27 for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49: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 5822S9g0030176 for ; Tue, 2 Sep 2025 03:49:28 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 48w8wy26t6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:49:27 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-329e1e3b25bso318456a91.2 for ; Mon, 01 Sep 2025 20:49: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 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.49.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:49: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= PV4iW4lWrufS2Wd6cGIX4QwBDeoO018DLJefWyOeZgg=; b=GXacjumFRcu3kurk v6sizDE1htHwKdHRWafGdootVwG8kGTqOGFMzs88oeRKBAno10DOph92SwtdwAXk XomJD0m7ZPcFPM9PuaZszkDL0+H3A+90rkQ4Rvq2UqXmgLqHCsjuotxvLvO5WRHe EvxkCNmsqRbVPRRsYISLDlimMvJ5CvWrtTz2iUeNei/u9NM+ukKImlkfHGrWO4Ps HQbyu1GbKv4I2BjRz9n7EPjjFIhsjMfcrV/TAhYOYRUYQD8Mn7HJ9s3dqs2y1UJP haE/hEhIxhgagMhBoKCumR2tmTvUCAlJ9s0HjYsZnt0IHbTbEybMZKWUOnv8btFb h7xWuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784966; x=1757389766; 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=PV4iW4lWrufS2Wd6cGIX4QwBDeoO018DLJefWyOeZgg=; b=ZiV4W+4yRqalbl5qmkf2LfQxJsMJL1JQEbOiRpwrQBar7i3ciV557F+g3VaN/5YGxf k0u180c+u7aKGuDrc8AT/ohIzoi34hSrXbMr8wYAe1+yh+01yqcksK6FHk+dWdyGQ/7K pBVXZ4D0oXnaQHEDu1+HRh30nvJlaxoZ3bMpMG3V1Q+M/diUUDecUNLEinGteVdNlryW OpbLBa1MHzcrHyHdktKB9ZfZATZ4fZ0iUkb/cr9pHH4ueH1RWBXvN/qCtbK2aOVZq3XG jX777iy/fsS5lQCyC+odXziBk453aClOf9uaq63VSWLuNPj6t+VidHpLkIgrQn7mU+Sy LgtA== X-Gm-Message-State: AOJu0YxGFlpuSKbDAEA6gryaUlS3UXC4JZ7lV50j1txbOydncVW68FAA ZakcXD7tUxUahWLL/4yVwFBL7T2RwBrmgIImujhTwLc1+YvKr6NhXLAQfTP8Wxloc+yv3SC6Fjb r2YZ2AxE9C5J5Ds4AbeMw25UFReS+ePlfddKNAGNWHbuob+/s/pX6whUz3f4/bj1KHzeC X-Gm-Gg: ASbGncvsTaHvJ1L7Sj5B0HGfx6R7KBYL2nqoszOaWPUsMFXgvOsXKPz/yu4CiGkEhMs V8t9GBLyQA+yHATUAVBM8mg3Pk6zZsIchGs/eWkqTAj1lm3zaEPOe49nFXp0oJYLFziQ3Yq/VI9 /wyA3D2S1gd/oSC1MOTlq1fd3MnbgvmnN0P0d7EGgy0aJABWk3fKZKsjuc4+581lnTcdT4s2GiC DHU6wizY844okmvVFVG+d7ih2IeZW5KAKC6FqaZXIwZkCnQXg9wsyj5DxsoRMdxLhc2hVz8KMuS R6ictGeDDDixCnChHibQxIgqvWiXbuB4Oo0i6uomD4bmtaFSUgNQ/dR/6eEYs6gdfrYTo5EnVF9 nfYMMOHhYfCU2 X-Received: by 2002:a17:90b:3148:b0:327:4d3b:fc46 with SMTP id 98e67ed59e1d1-328156b9261mr16019538a91.17.1756784966365; Mon, 01 Sep 2025 20:49:26 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGbvw8midtoHXzul8d4qPx6mM/0Vvc2t1/zHwW8c4ELwlYuBaD9mQzKx0mmJyxJs8SKPj4O9g== X-Received: by 2002:a17:90b:3148:b0:327:4d3b:fc46 with SMTP id 98e67ed59e1d1-328156b9261mr16019478a91.17.1756784965646; Mon, 01 Sep 2025 20:49: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 28/39] target/hexagon: Implement modify_ssr, resched, pending_interrupt Date: Mon, 1 Sep 2025 20:48:36 -0700 Message-Id: <20250902034847.1948010-29-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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=68b66947 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=w_Ktf-yQGdqK2aTfpWsA:9 a=QEXdDO2ut3YA:10 a=mQ_c8vxmzFEMiUWkPHU9:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: VDb6T2Ku0K6T0fOBcqG6Z5CDkDM_3MVW X-Proofpoint-ORIG-GUID: VDb6T2Ku0K6T0fOBcqG6Z5CDkDM_3MVW X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTAxMDEwMSBTYWx0ZWRfX/eae60zKazzg mudt90RZgp2Joe+NtbNtISQSbgpq3p/Qn9RqcAzTD+kyJUSkgsLyKDQblt06saS8F+qPcizbf58 1lyqVUR9scN0UasqGqp5in+Bf2+PsQ0UMDIY8wJGhQ55+e2Bay+Rx3NLqnbJOF2KbsklRSIh2So g9W3+dXkdAD13Ww0fw3IPAwIvuzy0Zgamik8Eq/lbzRFsLU3ZDqDTbLoYnyLRiL+1EQ3J5gRyxC k8ymqQQJf99BpWv4SJ8CB5EDJHU1qnjso1oAQBK2NUwFm6sSYzYneLldhnogRanXoGjS6gBXues dRgfzIrikLt6XmyKnhWHFO0QINEjvFDlcwR2roxNlynSqL8knK2jZ4V6uPr2iRwZYfCGsBtvltX Ril3giT6 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: 1756785903328124100 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/helper.h | 5 +++++ target/hexagon/op_helper.c | 20 ++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index 730eaf8b9a..e107d74609 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -129,4 +129,9 @@ 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) +DEF_HELPER_1(resched, void, env) +DEF_HELPER_3(modify_ssr, void, env, i32, i32) +DEF_HELPER_1(pending_interrupt, void, env) +DEF_HELPER_3(sreg_write_masked, void, env, i32, i32) +DEF_HELPER_3(sreg_write_pair_masked, void, env, i32, i64) #endif diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 5196226f02..e283c5c809 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1180,6 +1180,15 @@ float64 HELPER(dfmpyhh)(CPUHexagonState *env, float6= 4 RxxV, return RxxV; } =20 +#ifndef CONFIG_USER_ONLY +void HELPER(modify_ssr)(CPUHexagonState *env, uint32_t new, uint32_t old) +{ + BQL_LOCK_GUARD(); + hexagon_modify_ssr(env, new, old); +} +#endif + + /* Histogram instructions */ =20 void HELPER(vhist)(CPUHexagonState *env) @@ -1523,6 +1532,11 @@ static inline QEMU_ALWAYS_INLINE void resched(CPUHex= agonState *env) } } =20 +void HELPER(resched)(CPUHexagonState *env) +{ + resched(env); +} + void HELPER(wait)(CPUHexagonState *env, target_ulong PC) { BQL_LOCK_GUARD(); @@ -1844,6 +1858,12 @@ void HELPER(nmi)(CPUHexagonState *env, uint32_t thre= ad_mask) { g_assert_not_reached(); } + +void HELPER(pending_interrupt)(CPUHexagonState *env) +{ + BQL_LOCK_GUARD(); + hex_interrupt_update(env); +} #endif =20 =20 --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=1756785936; cv=none; d=zohomail.com; s=zohoarc; b=KqJOmedSG+ibTOPdBHspL6Cd8R8b0SL8kvN6YJ9G6SJnTqb3xxnq3JWLo9hFqUrHcd7o/U6vWtA4kRtXLHpeZG5TQUAHp0FcI2a39B4zZno8BoEKEkRu3x7bQIdIxc8cJCluBR+BbUSaA26tYJ70AHBp7yARKRulWhtn7DsTEfE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785936; 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=3r9XB5ApdGl0zJJXVSs68EPti39S8JotrbofO4ZR95E=; b=XXQGOMrcYaS1F/T/sLwf3pKA+2sUW5DT3JQiMguWck3EEztwmGCpDhrMRHivUiTl1748V81Up8f0mKROlsVFsVKfk7O2KrxRTUT1SwxJxU4DVU+v/ZCUuImee+2XBpssucvUf52TUlDBVzwZyGHsLX8kIiySnN8vFpoFV75DZ7Q= 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 1756785936214324.011434540235; Mon, 1 Sep 2025 21:05:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI1j-0004JY-P4; Mon, 01 Sep 2025 23:49:47 -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 1utI1f-0003pb-MR for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:43 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI1d-0004ew-4F for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:43 -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 5822SEhr022405 for ; Tue, 2 Sep 2025 03:49:29 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 48upnp6hv4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:49:29 +0000 (GMT) Received: by mail-pg1-f197.google.com with SMTP id 41be03b00d2f7-b4c229e2a42so3573963a12.0 for ; Mon, 01 Sep 2025 20:49:29 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.49.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:49: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= 3r9XB5ApdGl0zJJXVSs68EPti39S8JotrbofO4ZR95E=; b=N72ub1ZJp+iTiKnD 3lVsF2XTiR2KEu9hGTqZPcUrW4gVWrqwfd08z22w0h1ZQs3tc27R9XxcrDLoaMTR 6BvTAvsuLLMLTI0Cw3V4xaNRZ5raEa06ImzSc7fusoELhW4SvEe8ya1uv7DgaJ8T NuixI+iDZDXqRpLQd3tD8fP4X7uLE+SznHNp8tY6XCxZ7vDRP4TwHrZc8AkrAbMc KYyP/wG22HjgBjFi3exHdxEYUj/EYejBikivw1hxG5sl5u9J5WDrSZdoiuXTxNs9 L/PY6YrQTJ7fOjxvv4jqNnJZ6Yolu1T5weCc+GfUft6olbdDdOt4OaXHotENgEHI r5XgUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784968; x=1757389768; 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=3r9XB5ApdGl0zJJXVSs68EPti39S8JotrbofO4ZR95E=; b=qcdNsz0Q4H54KPdudjt0fLM1KaUHgxPmrGFnHpTZpQ5de07XmiSatAZfVzt6JNjN54 lPHBT/BRxKvh3ouDg9b9MfpHD9d+9BxgPAdrUmUzdRiPpya3/2DzDV9jKUx8TV0LPIJX EoUcUynCgU6Wu4ldyn4vbsaFqwcVdD3rl/Lyv/QEcKiFrkEQy3fEutR4nUA0sETB3y/u sFP+yfkld7w+Jadxq2wy42HXCV7Zl1Gu0XgAbC5gMqm2RtLjSCR3GfDjy/6BbJuguePE w4LsufLEHy1eMIHdSUUIiLnUy+gK60ndPjcb1Ke1u2RatQ5e5zlo0t+tCJFxr37P2btM R65Q== X-Gm-Message-State: AOJu0Yzu1dqF0GdG5httHsxRsAgoSpAQeYSQQdCo5aJE6NErA2Shxz/A 28BDZsL+t3W5NUMTLxVqzj9cVei9PWlZBlxJGR8VEx0hffU9wbKoOSSxhw1R9HCviRdloba15Yi kJekgDWT+ZW5YWZ3EOtitFoIqs7zGfXHYi/SkbCl3x1gvzSfd8D0LIfy66T+HqCmCTNB8 X-Gm-Gg: ASbGncvPpWllgdEaqRIObIUrDfiN92t8Gx4As26F/yO1s7VPVApzzWV/bmtTLwfr7U0 ZYu2rgDSFvBm+Y44UJ6anCqOlVuKtaoNYVYHY9rRF9G3QIl+ERzED8kzAq7p5Cp5C8+jDsAMX3s bI7Nhjq6/+IW/EBBJCD/K06qrl6AZkPJ7H/Auq7fPmdKSJy7sqMELF4yzn0pY7ORfEWLTKxe4ND tPadA7jq9RhEjnv454u05ujD5ZLAJ+2Peav4jUNj6jiXCBK6o9eYAGKGF9MBUNVMLSxVEj0DlE2 DuXPXC/3d3DL78iJHDAEHqkI8TSROdBHyfXEbm98JvrFMrtdbl1n8jV00NYANBeNyvuKXPLY6IN QWf4vTv2hbnmS X-Received: by 2002:a17:90b:3148:b0:328:650:4e7a with SMTP id 98e67ed59e1d1-32815412274mr13594797a91.3.1756784968222; Mon, 01 Sep 2025 20:49:28 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEiw4IuRjfaE7GOIK3xUBxzcM85eeSUeG6gW+wxX8LF7w4Xh31xxdhN+a9W+VtaHPyi4//Ung== X-Received: by 2002:a17:90b:3148:b0:328:650:4e7a with SMTP id 98e67ed59e1d1-32815412274mr13594762a91.3.1756784967666; Mon, 01 Sep 2025 20:49: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 29/39] target/hexagon: Add pkt_ends_tb to translation Date: Mon, 1 Sep 2025 20:48:37 -0700 Message-Id: <20250902034847.1948010-30-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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: AZzqbxHC6DbTqMjAvbyyBq3ji4E9x8mx X-Authority-Analysis: v=2.4 cv=Jt/xrN4C c=1 sm=1 tr=0 ts=68b66949 cx=c_pps a=rz3CxIlbcmazkYymdCej/Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=imK-vThzYG-NRbbrpigA:9 a=QEXdDO2ut3YA:10 a=bFCP_H2QrGi7Okbo017w:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: AZzqbxHC6DbTqMjAvbyyBq3ji4E9x8mx X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAwMSBTYWx0ZWRfX/A+LeQLfaLdJ Uq+THYORMD0rgaR6JTakOl/lUhHiN5RBCrREyRE8mYL3zo+uTchnFpaiLbg+i0iSgTdgszTz1k1 l2ccCLOd79YK3+IuigIRCe3CR+mKhJXDoxPoEnGO6pKxWkXnVXexvOAVhfiNzyZvuOLmBCYxR+p 3P3BpjX+jNWT70rSS8e898TAnBW7RRZ28VHsMOf/mQp39sifkMNzVYMmAVImvcyFHGJ/2ms9zjc Jei6+wkMWtMx3aU4C/EzZboQQbIa/CxqHmddFMJPu+0zERia5irpzX+STkn/TfBlODfW/pTsUzE FFzRysNq1bKbdJi0i1HtV8nMwn8zV7IDukCLZLMhssPW+elMqhzOND4eRIY6+/2iMD0OyB8Lpvb s2W/Ib9O 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: 1756785936742116600 From: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/translate.h | 1 + target/hexagon/translate.c | 102 ++++++++++++++++++++++++++++++++++++- 2 files changed, 101 insertions(+), 2 deletions(-) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index 0bdf526a9e..08194a3309 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -84,6 +84,7 @@ typedef struct DisasContext { TCGv branch_taken; TCGv dczero_addr; bool pcycle_enabled; + bool pkt_ends_tb; uint32_t num_cycles; } DisasContext; =20 diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index a71fa33ccf..92adc60d1a 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -258,6 +258,16 @@ static bool check_for_attrib(Packet *pkt, int attrib) return false; } =20 +static bool check_for_opcode(Packet *pkt, uint16_t opcode) +{ + for (int i =3D 0; i < pkt->num_insns; i++) { + if (pkt->insn[i].opcode =3D=3D opcode) { + return true; + } + } + return false; +} + static bool need_slot_cancelled(Packet *pkt) { /* We only need slot_cancelled for conditional store instructions */ @@ -271,6 +281,90 @@ static bool need_slot_cancelled(Packet *pkt) return false; } =20 +#ifndef CONFIG_USER_ONLY +static bool sreg_write_to_global(int reg_num) +{ + return reg_num =3D=3D HEX_SREG_SSR || + reg_num =3D=3D HEX_SREG_STID || + reg_num =3D=3D HEX_SREG_IMASK || + reg_num =3D=3D HEX_SREG_IPENDAD || + reg_num =3D=3D HEX_SREG_BESTWAIT || + reg_num =3D=3D HEX_SREG_SCHEDCFG; +} + +static bool has_sreg_write_to_global(Packet const *pkt) +{ + for (int i =3D 0; i < pkt->num_insns; i++) { + Insn const *insn =3D &pkt->insn[i]; + uint16_t opcode =3D insn->opcode; + if (opcode =3D=3D Y2_tfrsrcr) { + /* Write to a single sreg */ + int reg_num =3D insn->regno[0]; + if (sreg_write_to_global(reg_num)) { + return true; + } + } else if (opcode =3D=3D Y4_tfrspcp) { + /* Write to a sreg pair */ + int reg_num =3D insn->regno[0]; + if (sreg_write_to_global(reg_num)) { + return true; + } + if (sreg_write_to_global(reg_num + 1)) { + return true; + } + } + } + return false; +} +#endif + +static bool pkt_ends_tb(Packet *pkt) +{ + if (pkt->pkt_has_cof) { + return true; + } +#ifndef CONFIG_USER_ONLY + /* System mode instructions that end TLB */ + if (check_for_opcode(pkt, Y2_swi) || + check_for_opcode(pkt, Y2_cswi) || + check_for_opcode(pkt, Y2_ciad) || + check_for_opcode(pkt, Y4_siad) || + check_for_opcode(pkt, Y2_wait) || + check_for_opcode(pkt, Y2_resume) || + check_for_opcode(pkt, Y2_iassignw) || + check_for_opcode(pkt, Y2_setimask) || + check_for_opcode(pkt, Y4_nmi) || + check_for_opcode(pkt, Y2_setprio) || + check_for_opcode(pkt, Y2_start) || + check_for_opcode(pkt, Y2_stop) || + check_for_opcode(pkt, Y2_k0lock) || + check_for_opcode(pkt, Y2_k0unlock) || + check_for_opcode(pkt, Y2_tlblock) || + check_for_opcode(pkt, Y2_tlbunlock) || + check_for_opcode(pkt, Y2_break) || + check_for_opcode(pkt, Y2_isync) || + check_for_opcode(pkt, Y2_syncht) || + check_for_opcode(pkt, Y2_tlbp) || + check_for_opcode(pkt, Y2_tlbw) || + check_for_opcode(pkt, Y5_ctlbw) || + check_for_opcode(pkt, Y5_tlbasidi)) { + return true; + } + + /* + * Check for sreg writes that would end the TB + */ + if (check_for_attrib(pkt, A_IMPLICIT_WRITES_SSR)) { + return true; + } + if (has_sreg_write_to_global(pkt)) { + return true; + } +#endif + return false; +} + + static bool need_next_PC(DisasContext *ctx) { Packet *pkt =3D ctx->pkt; @@ -426,7 +520,10 @@ static void analyze_packet(DisasContext *ctx) static void gen_start_packet(DisasContext *ctx) { Packet *pkt =3D ctx->pkt; - target_ulong next_PC =3D ctx->base.pc_next + pkt->encod_pkt_size_in_by= tes; + target_ulong next_PC =3D (check_for_opcode(pkt, Y2_k0lock) || + check_for_opcode(pkt, Y2_tlblock)) ? + ctx->base.pc_next : + ctx->base.pc_next + pkt->encod_pkt_size_in_= bytes; int i; =20 /* Clear out the disassembly context */ @@ -472,6 +569,7 @@ static void gen_start_packet(DisasContext *ctx) tcg_gen_movi_tl(hex_slot_cancelled, 0); } ctx->branch_taken =3D NULL; + ctx->pkt_ends_tb =3D pkt_ends_tb(pkt); if (pkt->pkt_has_cof) { ctx->branch_taken =3D tcg_temp_new(); if (pkt->pkt_has_multi_cof) { @@ -926,7 +1024,7 @@ static void gen_commit_packet(DisasContext *ctx) pkt->vhist_insn->generate(ctx); } =20 - if (pkt->pkt_has_cof) { + if (ctx->pkt_ends_tb || ctx->base.is_jmp =3D=3D DISAS_NORETURN) { gen_end_tb(ctx); } } --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=1756785295; cv=none; d=zohomail.com; s=zohoarc; b=Toih+oWRZrFEkd4/y5ljHJkgI98O4QTQI2Gi/+VSkAd97ht9g4Z2yb++cVRmrW5t57Ys2rZUibOVwmeU7B2X/UfRujz+9kvfAypFKuCOgus2G4qmFRSnp02olk618FgP9EwBuNZ4vDqUGDLH8OCL898XnJy0TUoNIIMPsoAuMEQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785295; 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=odlSiS+rcvfGScBqQl/2ZTBdoBcRPzOiwcEO95H2Szk=; b=mEVSeppr2clhcyn4KfbZIVqhJye87LOynqCGIeHFS0v+xv2Q4V9ZQQysSZBRq3uCRglsyfhtUzCIYIBqREAyYXuoqSumR0ymhlqEdB88y6EFhjuU6swT/KFCYWMM6FDm25UI3Jlj840/kbBPFzfuVm9RxSQHyAeYm/r36tMOX7k= 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 17567852958551.589548623230712; Mon, 1 Sep 2025 20:54:55 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI1o-0004oy-6d; Mon, 01 Sep 2025 23:49:52 -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 1utI1l-0004ct-HF for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:49 -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 1utI1e-0004f6-Ae for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:49 -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 5822Rok9012516 for ; Tue, 2 Sep 2025 03:49:30 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 48uq0eeja1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:49:30 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-3274f7e6c1fso5175918a91.0 for ; Mon, 01 Sep 2025 20:49: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 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.49.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:49:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= odlSiS+rcvfGScBqQl/2ZTBdoBcRPzOiwcEO95H2Szk=; b=T7FHzg3055OWyLQJ z8JW3bKsN/LULkScvnR0vM18L51JAbENM++WMFwii/AhWVfesJt8dERCMvetOStN n3jI+buRJK17MlHnc9/KrMat2ymWz+AwYkCBBkTYbg6XcoBryp3ShbQ8xH1CdKvS iDZ6MOM3ts0NVNSLjH0cCzmmIur85SBGScXwo7m2uWAThgPmc44R4+UvgnmwVK5A zXd1EH92g/gNMUVlFr5gfJTyBNnw/X6XGyHTaGZNs4fDVsiR33+9IpTzzRXrvm1E CzKgSZjuAgnFsrIpZdA4MtYvd7VWpKpVlIXBQYqIzbNS3xkkmoezJwLie5cESxPc r6XzbA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784969; x=1757389769; 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=odlSiS+rcvfGScBqQl/2ZTBdoBcRPzOiwcEO95H2Szk=; b=Wfn1Go21QmDKKyOArTXD7Sd2gEPuL7J+wMY4AMVhHLbmxBv6eas1h4ifIryTVMdQAC fAU+2hAnDGRamHwepNmMDWdYupwqCXAk89krFohkEJMNuxUYgF7RElmgA2pZSZMcEGdi 2+UaKvvrxE4tKifbAIIOEbGYrCtfNPGCLIVWSzHkXfBcDtDKLKJjQQNnPUNV6i0HGOV6 +W9lbEKdUw9gTbpeq0UVne2zFsx7uofcYHcAzujztBaVls6F2AAPB84Sd8pnAKEnEZ26 xyi6pHnU6Fm3FcAk20xOxX6mEd9hEYbFcQcBVxixHsBN+zgcckYgadAxDL60c4JsRvbt T4oA== X-Gm-Message-State: AOJu0YwkFZLQbSBGJKmjDHpTvzbq3b0wgNwcLABrFthgtdLgXUfagJOn 974jCujTVuuoyC6hyCUQatjy9Hl93bAiEGc9+YeEgugHVe1wSJ+BIuh8yoFugK+mOoQQGsaKob6 Ob6pTuvsfXCNsZaI4a2D724tQiufFzamkcyHHpZHf//dyzfKpoGTnNYYlUnhPkbkiP0LR X-Gm-Gg: ASbGncs4aBZhx922qZGlZmBwq2TM8vDrU724PkANixbjST7J4oD6CIWfh96Tpr6htCX ahQ5BXZ5x0PnqtYBB9g40+wxjPuXo+3URZa2+hd8BgdW9ZCCwF17a0zfLxhj259IOxn2C0T4Ie1 0k3o0yKZZRYosmvql/TZdPa+swi0ZgelQho2G380ggn2CKZCsq3aq+UywWiK1lYDYK9HIJzUZQf e69r3p06XF4IOl77Vh0e0c2OD7Ixp43TubbDPqH5PQ/ogoi2hL7uYvIJURMGwnt25ZcxCwtxlAS WHImiqNxH/uhr6esemm7AGna71qX4DlIEECLMsAHN3RDpTzfCtmv5cEBflMN46bUuwndE8r/m+/ 6gxGvcGPn+bYo X-Received: by 2002:a17:90b:2ec8:b0:327:5081:d5d0 with SMTP id 98e67ed59e1d1-328156bac3dmr13404866a91.19.1756784969370; Mon, 01 Sep 2025 20:49:29 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFR9+T75fORHH+wbdFXW8zCMda6dNO1WwyXLi77RQ6MtVMh2oRScSMBSuvBQS5OtehYZzXjEg== X-Received: by 2002:a17:90b:2ec8:b0:327:5081:d5d0 with SMTP id 98e67ed59e1d1-328156bac3dmr13404831a91.19.1756784968778; Mon, 01 Sep 2025 20:49: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 30/39] target/hexagon: Add next_PC, {s,g}reg writes Date: Mon, 1 Sep 2025 20:48:38 -0700 Message-Id: <20250902034847.1948010-31-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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: qjTlhruIvykvi7Duy8Hr7s8pDQwcjm8h X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAwNCBTYWx0ZWRfX6YShhM6xTMba XXBzkhBnRKG/IUOKSy2N22OW8wVmuZxGrFsiXazHcrnkMupKBduR5k7//W3Ocu34ESqtoY7IvNC 4rCg1GPanVyTJYwmqU8zTtsB6kVOATGlbZ84CKzonxRboYFO/EzHPgm8PLEhgTNNAAhK7Xchy/1 bNPh+S7WqBzDfdp14wSFsvvlsD/cnxk1OmbChEDkNswuYj/GhbHOW/WxZrvkO7HgsV/au1J5jeI e/Mxmo5eNmCO4aeKTMmrVorC/DKhwUlpWMkh2OUnFO7Akot+6LsAN/Zjnw/Y1AP8gBO8ngtvAU/ XwtKdl9U7LCIfkvi4MLvwfz9JNz8R/CmWX41dzERl0FsoLAuiGRvi+gdfgIqcbb7+EwSePZ1ssY 1vq+uoLo X-Proofpoint-ORIG-GUID: qjTlhruIvykvi7Duy8Hr7s8pDQwcjm8h X-Authority-Analysis: v=2.4 cv=ea09f6EH c=1 sm=1 tr=0 ts=68b6694a 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=2idpCataKItiPf5XX10A: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: , 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: 1756785298272124100 From: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/translate.h | 2 + target/hexagon/genptr.c | 7 +- target/hexagon/translate.c | 134 ++++++++++++++++++++++++++++++++----- 3 files changed, 123 insertions(+), 20 deletions(-) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index 08194a3309..95f570c02a 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -85,6 +85,7 @@ typedef struct DisasContext { TCGv dczero_addr; bool pcycle_enabled; bool pkt_ends_tb; + bool need_next_pc; uint32_t num_cycles; } DisasContext; =20 @@ -306,6 +307,7 @@ static inline void ctx_log_qreg_read(DisasContext *ctx, } =20 extern TCGv hex_gpr[TOTAL_PER_THREAD_REGS]; +extern TCGv hex_next_PC; extern TCGv hex_pred[NUM_PREGS]; extern TCGv hex_slot_cancelled; extern TCGv hex_new_value_usr; diff --git a/target/hexagon/genptr.c b/target/hexagon/genptr.c index 0648daefb6..ca41ddf0e9 100644 --- a/target/hexagon/genptr.c +++ b/target/hexagon/genptr.c @@ -613,14 +613,15 @@ static void gen_write_new_pc_addr(DisasContext *ctx, = TCGv addr, tcg_gen_brcondi_tl(cond, pred, 0, pred_false); } =20 + TCGv PC_wr =3D ctx->need_next_pc ? hex_next_PC : hex_gpr[HEX_REG_PC]; if (ctx->pkt->pkt_has_multi_cof) { /* If there are multiple branches in a packet, ignore the second o= ne */ - tcg_gen_movcond_tl(TCG_COND_NE, hex_gpr[HEX_REG_PC], + tcg_gen_movcond_tl(TCG_COND_NE, PC_wr, ctx->branch_taken, tcg_constant_tl(0), - hex_gpr[HEX_REG_PC], addr); + PC_wr, addr); tcg_gen_movi_tl(ctx->branch_taken, 1); } else { - tcg_gen_mov_tl(hex_gpr[HEX_REG_PC], addr); + tcg_gen_mov_tl(PC_wr, addr); } =20 if (cond !=3D TCG_COND_ALWAYS) { diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index 92adc60d1a..70e0a1ff33 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -49,6 +49,7 @@ static const AnalyzeInsn opcode_analyze[XX_LAST_OPCODE] = =3D { TCGv hex_gpr[TOTAL_PER_THREAD_REGS]; TCGv hex_pred[NUM_PREGS]; TCGv hex_slot_cancelled; +TCGv hex_next_PC; TCGv hex_new_value_usr; TCGv hex_store_addr[STORES_MAX]; TCGv hex_store_width[STORES_MAX]; @@ -61,6 +62,7 @@ TCGv_i64 hex_cycle_count; TCGv hex_vstore_addr[VSTORES_MAX]; TCGv hex_vstore_size[VSTORES_MAX]; TCGv hex_vstore_pending[VSTORES_MAX]; +static bool need_next_PC(DisasContext *ctx); =20 #ifndef CONFIG_USER_ONLY TCGv hex_greg[NUM_GREGS]; @@ -183,6 +185,9 @@ static void gen_end_tb(DisasContext *ctx) =20 gen_exec_counters(ctx); =20 + if (ctx->need_next_pc) { + tcg_gen_mov_tl(hex_gpr[HEX_REG_PC], hex_next_PC); + } if (ctx->branch_cond !=3D TCG_COND_NEVER) { if (ctx->branch_cond !=3D TCG_COND_ALWAYS) { TCGLabel *skip =3D gen_new_label(); @@ -368,18 +373,24 @@ static bool pkt_ends_tb(Packet *pkt) static bool need_next_PC(DisasContext *ctx) { Packet *pkt =3D ctx->pkt; - - /* Check for conditional control flow or HW loop end */ - for (int i =3D 0; i < pkt->num_insns; i++) { - uint16_t opcode =3D pkt->insn[i].opcode; - if (GET_ATTRIB(opcode, A_CONDEXEC) && GET_ATTRIB(opcode, A_COF)) { - return true; - } - if (GET_ATTRIB(opcode, A_HWLOOP0_END) || - GET_ATTRIB(opcode, A_HWLOOP1_END)) { - return true; + if (pkt->pkt_has_cof || ctx->pkt_ends_tb) { + for (int i =3D 0; i < pkt->num_insns; i++) { + uint16_t opcode =3D pkt->insn[i].opcode; + if ((GET_ATTRIB(opcode, A_CONDEXEC) && GET_ATTRIB(opcode, A_CO= F)) || + GET_ATTRIB(opcode, A_HWLOOP0_END) || + GET_ATTRIB(opcode, A_HWLOOP1_END)) { + return true; + } } } + /* + * We end the TB on some instructions that do not change the flow (for + * other reasons). In these cases, we must set pc too, as the insn won= 't + * do it themselves. + */ + if (ctx->pkt_ends_tb && !check_for_attrib(pkt, A_COF)) { + return true; + } return false; } =20 @@ -531,6 +542,10 @@ static void gen_start_packet(DisasContext *ctx) ctx->reg_log_idx =3D 0; bitmap_zero(ctx->regs_written, TOTAL_PER_THREAD_REGS); bitmap_zero(ctx->predicated_regs, TOTAL_PER_THREAD_REGS); +#ifndef CONFIG_USER_ONLY + ctx->greg_log_idx =3D 0; + ctx->sreg_log_idx =3D 0; +#endif ctx->preg_log_idx =3D 0; bitmap_zero(ctx->pregs_written, NUM_PREGS); ctx->future_vregs_idx =3D 0; @@ -563,21 +578,41 @@ static void gen_start_packet(DisasContext *ctx) * gen phase, so clear it again. */ bitmap_zero(ctx->pregs_written, NUM_PREGS); +#ifndef CONFIG_USER_ONLY + for (i =3D 0; i < NUM_SREGS; i++) { + ctx->t_sreg_new_value[i] =3D NULL; + } + for (i =3D 0; i < ctx->sreg_log_idx; i++) { + int reg_num =3D ctx->sreg_log[i]; + if (reg_num < HEX_SREG_GLB_START) { + ctx->t_sreg_new_value[reg_num] =3D tcg_temp_new(); + tcg_gen_mov_tl(ctx->t_sreg_new_value[reg_num], hex_t_sreg[reg_= num]); + } + } + for (i =3D 0; i < NUM_GREGS; i++) { + ctx->greg_new_value[i] =3D NULL; + } + for (i =3D 0; i < ctx->greg_log_idx; i++) { + int reg_num =3D ctx->greg_log[i]; + ctx->greg_new_value[reg_num] =3D tcg_temp_new(); + } +#endif =20 /* Initialize the runtime state for packet semantics */ if (need_slot_cancelled(pkt)) { tcg_gen_movi_tl(hex_slot_cancelled, 0); } ctx->branch_taken =3D NULL; - ctx->pkt_ends_tb =3D pkt_ends_tb(pkt); if (pkt->pkt_has_cof) { ctx->branch_taken =3D tcg_temp_new(); - if (pkt->pkt_has_multi_cof) { - tcg_gen_movi_tl(ctx->branch_taken, 0); - } - if (need_next_PC(ctx)) { - tcg_gen_movi_tl(hex_gpr[HEX_REG_PC], next_PC); - } + } + if (pkt->pkt_has_multi_cof) { + tcg_gen_movi_tl(ctx->branch_taken, 0); + } + ctx->pkt_ends_tb =3D pkt_ends_tb(pkt); + ctx->need_next_pc =3D need_next_PC(ctx); + if (ctx->need_next_pc) { + tcg_gen_movi_tl(hex_next_PC, next_PC); } =20 /* Preload the predicated registers into get_result_gpr(ctx, i) */ @@ -713,6 +748,59 @@ static void gen_reg_writes(DisasContext *ctx) } } =20 +#ifndef CONFIG_USER_ONLY +static void gen_greg_writes(DisasContext *ctx) +{ + int i; + + for (i =3D 0; i < ctx->greg_log_idx; i++) { + int reg_num =3D ctx->greg_log[i]; + + tcg_gen_mov_tl(hex_greg[reg_num], ctx->greg_new_value[reg_num]); + } +} + + +static void gen_sreg_writes(DisasContext *ctx) +{ + int i; + + TCGv old_reg =3D tcg_temp_new(); + for (i =3D 0; i < ctx->sreg_log_idx; i++) { + int reg_num =3D ctx->sreg_log[i]; + + if (reg_num =3D=3D HEX_SREG_SSR) { + tcg_gen_mov_tl(old_reg, hex_t_sreg[reg_num]); + tcg_gen_mov_tl(hex_t_sreg[reg_num], ctx->t_sreg_new_value[reg_= num]); + gen_helper_modify_ssr(tcg_env, ctx->t_sreg_new_value[reg_num], + old_reg); + /* This can change processor state, so end the TB */ + ctx->base.is_jmp =3D DISAS_NORETURN; + } else if ((reg_num =3D=3D HEX_SREG_STID) || + (reg_num =3D=3D HEX_SREG_IMASK) || + (reg_num =3D=3D HEX_SREG_IPENDAD)) { + if (reg_num < HEX_SREG_GLB_START) { + tcg_gen_mov_tl(old_reg, hex_t_sreg[reg_num]); + tcg_gen_mov_tl(hex_t_sreg[reg_num], + ctx->t_sreg_new_value[reg_num]); + } + /* This can change the interrupt state, so end the TB */ + gen_helper_pending_interrupt(tcg_env); + ctx->base.is_jmp =3D DISAS_NORETURN; + } else if ((reg_num =3D=3D HEX_SREG_BESTWAIT) || + (reg_num =3D=3D HEX_SREG_SCHEDCFG)) { + /* This can trigger resched interrupt, so end the TB */ + gen_helper_resched(tcg_env); + ctx->base.is_jmp =3D DISAS_NORETURN; + } + + if (reg_num < HEX_SREG_GLB_START) { + tcg_gen_mov_tl(hex_t_sreg[reg_num], ctx->t_sreg_new_value[reg_= num]); + } + } +} +#endif + static void gen_pred_writes(DisasContext *ctx) { /* Early exit if not needed or the log is empty */ @@ -1012,6 +1100,10 @@ static void gen_commit_packet(DisasContext *ctx) process_store_log(ctx); =20 gen_reg_writes(ctx); +#if !defined(CONFIG_USER_ONLY) + gen_greg_writes(ctx); + gen_sreg_writes(ctx); +#endif gen_pred_writes(ctx); if (pkt->pkt_has_hvx) { gen_commit_hvx(ctx); @@ -1073,6 +1165,7 @@ static void hexagon_tr_init_disas_context(DisasContex= tBase *dcbase, ctx->is_tight_loop =3D FIELD_EX32(hex_flags, TB_FLAGS, IS_TIGHT_LOOP); ctx->short_circuit =3D hex_cpu->short_circuit; ctx->pcycle_enabled =3D FIELD_EX32(hex_flags, TB_FLAGS, PCYCLE_ENABLED= ); + ctx->need_next_pc =3D false; } =20 static void hexagon_tr_tb_start(DisasContextBase *db, CPUState *cpu) @@ -1201,6 +1294,13 @@ void hexagon_translate_init(void) offsetof(CPUHexagonState, llsc_val_i64), "llsc_val_i64"); hex_cycle_count =3D tcg_global_mem_new_i64(tcg_env, offsetof(CPUHexagonState, t_cycle_count), "t_cycle_count"); +#ifndef CONFIG_USER_ONLY + hex_cause_code =3D tcg_global_mem_new(tcg_env, + offsetof(CPUHexagonState, cause_code), "cause_code"); +#endif + hex_next_PC =3D tcg_global_mem_new(tcg_env, + offsetof(CPUHexagonState, next_PC), "next_PC"); + for (i =3D 0; i < STORES_MAX; i++) { snprintf(store_addr_names[i], NAME_LEN, "store_addr_%d", i); hex_store_addr[i] =3D tcg_global_mem_new(tcg_env, --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=1756785274; cv=none; d=zohomail.com; s=zohoarc; b=fCwg35kP0If1UxJZ9wq5+QTszXgCjQa7Qzi7MXDzdP2/zX+tNVT08rHBOe7FlNXVI5okn/KcjJrbGIEHJB+dHKfMG5cRq5M2MTvNlM35PjTbaxctT2LWS3pGAUM/Xg5iHvN3aqQIouCxGAyjJ6Wjm/NUrFL1eZkQtgdQhI6xZQg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785274; 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=P1Mtf9skrqB1o8icHd+jobTVwn2iH31GHNWI8AEw0h8=; b=WLilFx6tVpQ+T/o1Jo0M6qYcDTvEZodGFVZet1Uk/yoOx/6f/a4RU5QmFDZ9fH4yX5z8uoGSR3Te1OipyZM1UBpC/cO/5irEy7HimAqSujEqMLuyaCjjJivIpglXmB35YCy3azkNOywkch8j/l4WlLmfHvF62G3++Rif0YTXrhM= 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 175678527423142.04432556673248; Mon, 1 Sep 2025 20:54:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI1m-0004hT-Ho; Mon, 01 Sep 2025 23:49:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI1h-000497-QT for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:45 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI1e-0004fH-QC for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:45 -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 5822RknW016550 for ; Tue, 2 Sep 2025 03:49:31 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 48utk8x8am-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:49:31 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-248981c02cfso53818255ad.1 for ; Mon, 01 Sep 2025 20:49:31 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.49.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:49:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= P1Mtf9skrqB1o8icHd+jobTVwn2iH31GHNWI8AEw0h8=; b=VDUrdOpJgS/ElQix 7HX0HV2H9L9aUPSoAkuHP61qoiPmJR87/OKl87Uvg0l67m8XL0qHDdvUGN7imANs rgz2CSHn1QRUJtzWmnmzmuikkugr+RA+kXl1NqTiDA+1i/Z5uxNwREgaZgq0NYvk wjESBGQt5gxKBYervl0Mab3Rz92tW/kAm/T+Hvy0tccT6V++4lddA4jiY/2CUxf6 jrwnGZP8SQ1rzEo1Lw5+FAhxZ7DJgb+dEei1AAEGoMizhdQN1TRz4Bk1s0SCTE78 1RxEBbnJ7N5x2oKAVCXZvBmZrYmgXbK1aa61PzOizowKr1kIH1SfnsRC8LS5BRw/ BRjbCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784970; x=1757389770; 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=P1Mtf9skrqB1o8icHd+jobTVwn2iH31GHNWI8AEw0h8=; b=jUTByDCoPLGNdq73XxDl1FRLoH6Y8lM9aI7TJr3ilj5sfKSVHqVt8V+v2Y3lT6zlRD 6O89vNt6Qokw3RVR/tX370O0xp71YZgfDouCLshZOd3NZIc9E16ZLxciNMsCb4Su3bdB U0jBPOmS8YNbIfRV8gGFbHFtNRIf3Ug2yqlEyusgRtsKTPrflBIOfmF+XHWa1H4PEBQg ydH0cAP54R+3vJlMV18P80Spw/J9I8i1XxpGFSc1ndMalZfdl291xs6xTnqRgtHvEuTk cCZaBIB5ENUnFCNxl6m6UTqlz7atHNge9/At3xVbJD2mcONNcdFEJxfxLPGlKkJDxCXo BpgQ== X-Gm-Message-State: AOJu0YwR2/nwSb/RcV4kGAJdYVisUqFXaY/UbD+4ol80pXYBwOa8oUFF xF+VpeYOTArnaiiTjiO2Ssg+zEilm04BnMmzkinlZ9V5vHxNPWyzeNBgruI1EKkEEs8jp/8KF6X 0ySIJQSV/nKIO9ErcGQl0nKllcea3wlEU5cKqElH0eb6H7rDbH6Z/LDDzT2NE2yUFGWtP X-Gm-Gg: ASbGncubQ7/wH2FVOj0S5uFsme9P4cxymh6VISGILoDTdicVguCrONrbTvzThp8B8X/ 8xtOYJDOo9kGKeYYhb+633HFscJ5uO5Vn11yhpgp/vNNx6eZMugbxkvEmpNLCnuzrMXqMxkl0cW mTa649BY44hi31evGDzXF7NlnM4PqmFeKBBupiopKvAeRwB3Rr35sVEZ7Fjg707unqcOoM1iBBA SZJitD3n98dCgvH4DqYs3TqVd/RkNy01gs91o6rdk1waksSpq3reQNgKYlrDpQ95P+UCTGu4+A4 XFlurq7OsKKOO40eb7J3/WyxiL8TjyhHQK+SrmZw6AaT8QaSu8MPUXcvKYpL3UQ/h/Mg/Z25nYN OjjlXCTeEcfOb X-Received: by 2002:a17:902:f608:b0:24a:ad42:3559 with SMTP id d9443c01a7336-24aad4237ddmr100730985ad.56.1756784970327; Mon, 01 Sep 2025 20:49:30 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGdX3p299DTD9LIfSHYsLBmr8zLPcOXRXadTGIKHv8nFAiUm0Mm2RUwtXcM1n7M5CxvVVfE+w== X-Received: by 2002:a17:902:f608:b0:24a:ad42:3559 with SMTP id d9443c01a7336-24aad4237ddmr100730695ad.56.1756784969858; Mon, 01 Sep 2025 20:49: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 31/39] target/hexagon: Add implicit sysreg writes Date: Mon, 1 Sep 2025 20:48:39 -0700 Message-Id: <20250902034847.1948010-32-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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: 2KDzaruBEuullbWkmZkj9xIdpBtKVBv3 X-Proofpoint-ORIG-GUID: 2KDzaruBEuullbWkmZkj9xIdpBtKVBv3 X-Authority-Analysis: v=2.4 cv=ccnSrmDM c=1 sm=1 tr=0 ts=68b6694b cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=ySlkKLH3HnL0fBWr2zQA:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDA0MiBTYWx0ZWRfX8b8b8LwrHHhy s5LaS98CEGXDmUvhTQjZYBzboJEq/a4DK6UB16HRajzk/P+1e3LTP9YPz+kTdE3P7ASQIBUd2iP 0kJcHt9Zm5DX2myjeUXeLzJZmMNi6DBDg7HUVRstTHlZ/0qtytR+8ZHblZCDKPzIvaxvcrl/jpG q7Yi0qdUYYyqw6F4D3YwI9w1taRZ+4bttkJCFkQ5Krpv4oyIyddGacN5hX37ElKpe0wxGaxwVoc XXYlosgpcjdk6rgZt9mx3qcOdTsdV3VTKcHitXE04j/fIt4Oiz2HY9q+ArPdAUUMQH6nUM3I9QF uQm2f8/NXQq5Jt1FZgNb/7XKGsPmod+F2eJibie02KRr0FHzm11QFi7seE4AHMIqxjp1PkeJLja YgG/ZXnv 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: 1756785276268116600 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/translate.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index 70e0a1ff33..743c96e6e1 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -422,6 +422,16 @@ static void mark_implicit_reg_write(DisasContext *ctx,= int attrib, int rnum) } } =20 +#ifndef CONFIG_USER_ONLY +static void mark_implicit_sreg_write(DisasContext *ctx, int attrib, int sn= um) +{ + uint16_t opcode =3D ctx->insn->opcode; + if (GET_ATTRIB(opcode, attrib)) { + ctx_log_sreg_write(ctx, snum); + } +} +#endif + static void mark_implicit_reg_writes(DisasContext *ctx) { mark_implicit_reg_write(ctx, A_IMPLICIT_WRITES_FP, HEX_REG_FP); @@ -433,6 +443,12 @@ static void mark_implicit_reg_writes(DisasContext *ctx) mark_implicit_reg_write(ctx, A_IMPLICIT_WRITES_SA1, HEX_REG_SA1); mark_implicit_reg_write(ctx, A_IMPLICIT_WRITES_USR, HEX_REG_USR); mark_implicit_reg_write(ctx, A_FPOP, HEX_REG_USR); + +#ifndef CONFIG_USER_ONLY + mark_implicit_sreg_write(ctx, A_IMPLICIT_WRITES_SGP0, HEX_SREG_SGP0); + mark_implicit_sreg_write(ctx, A_IMPLICIT_WRITES_SGP1, HEX_SREG_SGP1); + mark_implicit_sreg_write(ctx, A_IMPLICIT_WRITES_SSR, HEX_SREG_SSR); +#endif } =20 static void mark_implicit_pred_write(DisasContext *ctx, int attrib, int pn= um) --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=YQ0moaZRqe8Gk+sVLz8O0I/al6Ygo5VoXQ16U2QT6itzwXvp22SnTca0r14jXI1p3D9vPSGrq2YoScO5CTD3lo7toYwXrkAozyf5DBXebviiCTqJjyvNad1byC/zN+5U9BdiK6rPqAOxu4nAn40IpnKRG61GzkCsY827x8nljPg= 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=UeEE5ojvXNhEhfJpLxhMabI5sN4yc768WwV+45QkkrI=; b=WP5mPJ2aUyoB5Z+0B/sfWUJmETZiIFaoVRH+cBIlWRkEA+bEJmcc1nN+VSkQ8DfO7XYBxo3bkryIfbJA3aQtbD6ZFoyYosEsevjKJLPKS6EnScGYWHh02iLTuk0EDJ2Ftk2YdkLmmatXNwSGoch12yd1tgzK481uJj6kk/38v00= 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 1756785002771617.7741306760126; 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 1utI1p-0004y3-Kc; Mon, 01 Sep 2025 23:49:53 -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 1utI1m-0004iV-L6 for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:50 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI1g-0004fp-B6 for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49: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 5822SDqP030680 for ; Tue, 2 Sep 2025 03:49:33 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 48ura8pc41-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:49:32 +0000 (GMT) Received: by mail-pg1-f197.google.com with SMTP id 41be03b00d2f7-b4d48818a04so2708374a12.1 for ; Mon, 01 Sep 2025 20:49:32 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.49.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:49: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= UeEE5ojvXNhEhfJpLxhMabI5sN4yc768WwV+45QkkrI=; b=frOEJLYoVEXt9lLF 9wDypURcfyZ898yWsv5j08I5xlYMo3H2siEuQ2j25qk7ovh+2vAxtUvim066Nc++ CpgX8y8UUloH/jdaBjKHSMrHOVtdcvo7YDUmfEP/MQNYQ/lNwNLGSvQFJZZ/j/QF XU3V/F8LZoUvih1GDB+gtDkajaLyNI1d+zGZymmdLBQWvDTjO4VS3ZFtcax/l448 KHNcN0BmjzG5HQmbxFl9EeK1kRT1UJ9oAYjMjIuVEKT+lZj1q6GXjV2uxhFkTiEn sdvhorACsUKlIdKYTxmxctLac3CSLXbMxh9lCd3+a7oyfjNGq0sPcrSTK2nz3eio bC60ww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784971; x=1757389771; 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=UeEE5ojvXNhEhfJpLxhMabI5sN4yc768WwV+45QkkrI=; b=N8oueAaWBytpjKSnuMcXK7C3SkvupYtWXbNV3J1wq23wztEWvDlfrBJ/fo9Go4YoLs euRDwwvdtFyP0f7yokUxf3a2SZeHjciv2OMeCyCyRpiEutB+IgeFbEz6CGZsvmWegGiW lg1tw0AYhY5xA9MY8avM5cDXaGF5t4wMZkCea5vK2ypqtrCSUOvuVnaWW/SjuMrQ3I45 H0A2iEngQjhDgLyJWwBmgFEKkhtV6F0TRXsbQHy20fhWI6W7wrK4k/K4QwXGKFHfktaz Rz9/W6lzTpDA7QpBNOLGOF8iueCqwdvzseBBNeZoi0r0/IhrT3z+nop/YMHay8j+/aav LXxA== X-Gm-Message-State: AOJu0YzF7OMZ7E6r+V/S9G5eCUiRCwjGaD/QziSXbnDsdeQPTBJKtEKP llR682ZFMDnohyMXXCApe1ZnA/WoqyPDi+QNhctJEdz0Gm1TE6ohj5igIwvISbsq8ahgvLqgc+a aNQJUjASNavKOvshOfi0abDjKmBCu66/Fcj276ThsHyNZbPkXuwYN0A7kZ3K4+11x48+L X-Gm-Gg: ASbGncsrd/kOjVjvcP37lH+2r9+6yMIHdozSNskxYpEcpzRl+cH4iVk8NJCZoHKtTUW EqqxTi3U55JikrSiCBqD3HBozVRXaKVCVDcCPlhBA9e6HJS79dpo38XiWEedN1OkIwRHiOB8XSb qECUTxWscct8K0oXvKPbc2EiTGsmF6GKkJsOJhFImCj5BMQRhM8Zo5sy5vPlOwAj5+O3N05dWuF HjtQcuqK7WekNt0qC1FGvfJ6p90h3Q/09/5TubwG3boenHML95GftxBcgYm6Q0PvVcBTa3bJZMc bdVRLHd76pwXrpKqvm0RHqIiyZdlV9LBRmkuv580qNj28iKp55MJP284/+Lmzgl668fOTgoaU5I seZ9OybRa0AVZ X-Received: by 2002:a05:6a20:3c8e:b0:23f:f712:411c with SMTP id adf61e73a8af0-243d6f02f4cmr15427905637.36.1756784971529; Mon, 01 Sep 2025 20:49:31 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGp70sfZcgMOaXe6om1awLqZVuc0WpEXMNsnLKlPPJawiKVSvQUK/ub3PJRzUzjBtyPMHqSZQ== X-Received: by 2002:a05:6a20:3c8e:b0:23f:f712:411c with SMTP id adf61e73a8af0-243d6f02f4cmr15427882637.36.1756784971082; Mon, 01 Sep 2025 20:49:31 -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/39] target/hexagon: Define system, guest reg names Date: Mon, 1 Sep 2025 20:48:40 -0700 Message-Id: <20250902034847.1948010-33-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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: 7Sy9waknEeqobfZ-I6BrS76d4LFHOT8c X-Proofpoint-GUID: 7Sy9waknEeqobfZ-I6BrS76d4LFHOT8c X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAyMCBTYWx0ZWRfXx4Mtzl4omSz9 oaJGyXOcVV62+FiOnw28NbyRbfdA3w6kmx/dZxQEoKPC0igWcHhCkVIyjZNY8yDNyJHH+rfP5jA bKH4hn2FDUVmyMw57et8h3qZqar1YZ63JXlq2zY1Jy9CDJo+nn/ShGF78tXqIqhrNFbtxv7n13b iRg9ewkoyvZqLxVhDhl4IQ3ij3ycZM3aTGtDTaYUp0Nn1Fjtdw52AbBGvRphZGOz+EPBy0o0B4X jHf7Ju776UzRBtXdbkbbF4A7s87DVYe0qt1qy942sjmMZ9y3kS+8DqPLeylZJaTkUL51bBCVVLh /j9Gw40vCRZiFT3HcDUftxbEdO3FZs1rKzYrlLVy5jWqKSp2oKWSWQrMd4mq50RiuZ6nyjNYp2X TOBvjGZQ X-Authority-Analysis: v=2.4 cv=VNndn8PX c=1 sm=1 tr=0 ts=68b6694c cx=c_pps a=rz3CxIlbcmazkYymdCej/Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=Y3CEZXcnQwYgoNz55sMA: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 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: 1756785004729116600 From: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/internal.h | 2 ++ target/hexagon/cpu.c | 29 +++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/target/hexagon/internal.h b/target/hexagon/internal.h index 94e5e502a9..a9eb5645f1 100644 --- a/target/hexagon/internal.h +++ b/target/hexagon/internal.h @@ -34,6 +34,8 @@ void hexagon_debug_qreg(CPUHexagonState *env, int regnum); void hexagon_debug(CPUHexagonState *env); =20 extern const char * const hexagon_regnames[TOTAL_PER_THREAD_REGS]; +extern const char * const hexagon_sregnames[]; +extern const char * const hexagon_gregnames[]; =20 void G_NORETURN do_raise_exception(CPUHexagonState *env, uint32_t exception, diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 6d2013ce89..122761e657 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -88,6 +88,35 @@ const char * const hexagon_regnames[TOTAL_PER_THREAD_REG= S] =3D { "c24", "c25", "c26", "c27", "c28", "c29", "c30", "c31", }; =20 +#ifndef CONFIG_USER_ONLY +const char * const hexagon_sregnames[] =3D { + "sgp0", "sgp1", "stid", "elr", "badva0", + "badva1", "ssr", "ccr", "htid", "badva", + "imask", "gevb", "vwctrl", "s13", "s14", + "s15", "evb", "modectl", "syscfg", "segment", + "ipendad", "vid", "vid1", "bestwait", "s24", + "schedcfg", "s26", "cfgbase", "diag", "rev", + "pcyclelo", "pcyclehi", "isdbst", "isdbcfg0", "isdbcfg1", + "livelock", "brkptpc0", "brkptcfg0", "brkptpc1", "brkptcfg1", + "isdbmbxin", "isdbmbxout", "isdben", "isdbgpr", "pmucnt4", + "pmucnt5", "pmucnt6", "pmucnt7", "pmucnt0", "pmucnt1", + "pmucnt2", "pmucnt3", "pmuevtcfg", "pmustid0", "pmuevtcfg1", + "pmustid1", "timerlo", "timerhi", "pmucfg", "rgdr2", + "rgdr", "turkey", "duck", "chicken", +}; + +G_STATIC_ASSERT(NUM_SREGS =3D=3D ARRAY_SIZE(hexagon_sregnames)); + +const char * const hexagon_gregnames[] =3D { + "gelr", "gsr", "gosp", "gbadva", "gcommit1t", + "gcommit2t", "gcommit3t", "gcommit4t", "gcommit5t", "gcommit6t", + "gpcycle1t", "gpcycle2t", "gpcycle3t", "gpcycle4t", "gpcycle5t", + "gpcycle6t", "gpmucnt4", "gpmucnt5", "gpmucnt6", "gpmucnt7", + "gcommit7t", "gcommit8t", "gpcycle7t", "gpcycle8t", "gpcyclelo", + "gpcyclehi", "gpmucnt0", "gpmucnt1", "gpmucnt2", "gpmucnt3", + "g30", "g31", +}; +#endif /* * One of the main debugging techniques is to use "-d cpu" and compare aga= inst * LLDB output when single stepping. However, the target and qemu put the --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=1756785201; cv=none; d=zohomail.com; s=zohoarc; b=ERqLOBd3sPzHp+o20Sq1M2853BZzs27YdYKGAYAFceLDU3mvQT4yeYXrEcH8yt/C6AfBjRXWwi8aVFznW0ZgNxeOCM4BFN0/myNh57YoH3pTwRN0UbvDwCBvgtvbA01g4T9Kw3d5G4ACmFulqojUCDioXH/pNoB1sD7VI56Fz2M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785201; 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=AH6fpokvciXoPtKOjc0f6fIGfoz3joRI6xzaLDYXcGI=; b=PQ6xpbIyw+xSBrsMemA9/FP2F7L4u5iPoGwCkf4Iv8sUqPx8YqL/dBkARmITjbVdLSWSlsCo2VKp2MzrFg6VGSKaeQXhed9gCc5muS8nu/1/Iaz6pWbfy2/81nXoWBr3gd8acdmjn1LvYLww+YBiMGGzaYtaGt4Yt/tdE4UVDzQ= 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 1756785201803118.46636509599728; Mon, 1 Sep 2025 20:53:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI1p-0004xx-KW; Mon, 01 Sep 2025 23:49:53 -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 1utI1l-0004cs-HP for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49: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 1utI1i-0004fz-76 for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:48 -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 5822Rv3P029695 for ; Tue, 2 Sep 2025 03:49:34 GMT Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48ura8pc43-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:49:34 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-248981c02cfso53818505ad.1 for ; Mon, 01 Sep 2025 20:49:34 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.49.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:49:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= AH6fpokvciXoPtKOjc0f6fIGfoz3joRI6xzaLDYXcGI=; b=HVPjAzDsAm6d2ECs ZMGHhe8PqSqcYW82yp6kggIO85+bFdFlTEaGMaQWNnjbq8la+HWN40X44m0aQTPj tQuDytsBtUJYCB3+t7d6N9QnCGJu+h7IqSSC6u7WZglazhsbM6ofWdH+uFiHVY8P RTK/FEgxzX2vSC8r1/lH8tO+agCWWjap/b3VGBT8H5Z9ELvYo4k++CnJHDQr3Msb gi6BYAY2Uhz53lC/BWyfoueLsbfe1ZXKKb9GCHgze9M8PYXhOAdbhGymdvqqkLNG E5Gyd5zeJx7/S0lYM4+/UYie164EUeN7d4ZXvx1PkNKw/LduH4fjNlaNQumluEhA dqijqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784973; x=1757389773; 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=AH6fpokvciXoPtKOjc0f6fIGfoz3joRI6xzaLDYXcGI=; b=ht3E9yYQbRgnNLc5NMTUaH1U+mTKo0GBP0yMRjpL/OAt0LQfFJmBLGhn0nKd1cKrGX QHX5jB+N2kiDBVVOiEOqIGWBsnjB26RjTU3tl+TdjA1FxFcFOoZZcJlIoMS7EhvLdJ4c rnwoS81Orl5Ljeo90fk571tLxBwSqMWeEDf8Bm4gZONhvBpdTr8Ngz9pW9olG2W9N4Nv 5DZW3WbTxu/XR+gA0ilUSB28j8WKBfoB/0RwRPq9drwijmXuzepcVP9DDrNQN0Og3SV8 nIjfH3HSTa9Gr4Qd3w91x0kblY9YTNXDwCYVC5F/J7NdVqYjSahOMyt8y/S5SGaAIlL4 5bSw== X-Gm-Message-State: AOJu0YxmRyrpmdx+/luQuK8vyqz78mJ2c/NNOZllrhk7RUguvKkjaN7t wYl2UJJHDGMG8/UAz9RDAcL31Juagu9QMyA8BmccaqCYuvJwde6Ya6WEQdMPIqYb5vdIX88DQ8r 10Dz9BOU8xZW203KqwMVD6Op/fwUIvJoepQrgV/QoL8DC9tXae/V8GkYSLWfwxqWFNyp4 X-Gm-Gg: ASbGncsTbGJnOdGRV2nZ8iIRMvOUG02KLDqI/hhr5/Kvdd1nMdDbZYB4ZDsiH9h+f/C enQKjCsfSJI3urPOCe6Mbqnsn6MRda8WjPEcoj3zdgZH5W9nbOSjc9a+6nuSW6jVgoUNuSTGYvQ GCa+ysbWbbDVu1sh+4RfTQhalYXWNswlZ/EGHo2UPUNBSdS8bqfwci4KtmB6B8tthqRD1InP3Aq ierpMY04Kkj9Hb4dQSOzYh18SYP0LhEDmQmtOjl/8S5QLRILwsRSbefIsw39md7E5A/D9o87qFy JUJZK10GNlLvseaK7Jdi1QP+2Rfe7IWLFxSgOPmO4t5+gbru0MUxAbmw/41jNgSCEjwo67sID0J OlSc/lPMW07MG X-Received: by 2002:a17:903:1d2:b0:246:22e3:6a2a with SMTP id d9443c01a7336-249448ad91dmr138386655ad.15.1756784972758; Mon, 01 Sep 2025 20:49:32 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG5QoMsunnYH4fu8IowCMn/GAqlddIHrIyI3yeqcwnG3Ov1z6RXjTAEzquFscr05TxlqcR+Dg== X-Received: by 2002:a17:903:1d2:b0:246:22e3:6a2a with SMTP id d9443c01a7336-249448ad91dmr138386445ad.15.1756784972327; Mon, 01 Sep 2025 20:49: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 33/39] target/hexagon: initialize sys/guest reg TCGvs Date: Mon, 1 Sep 2025 20:48:41 -0700 Message-Id: <20250902034847.1948010-34-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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: OnUtbNHz8gdQSdpiL9S6lvKqvbNv_Xsf X-Proofpoint-GUID: OnUtbNHz8gdQSdpiL9S6lvKqvbNv_Xsf X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAyMCBTYWx0ZWRfXw/iUOOagKI6Q pqubgcUnlx7rFIUdgQt0IYGozGeEgvAlPC3419aAV5xAwKvlTu8N3UJI0hOlxv0tloCYHXagf3D mUa+Tqg8ZGSl5KQ36IxQWKHm3UEKbBXgspqm/4EgI1DMjJDSYIuzf/kWfVDVFjnwkY/jHq68WhK 8XualGCBczgFtFLS0Ff9hPnvvjIVHEYwXffueN4wGQCVf5L0PUucoMsgCoudDmdCD4YlsNGf40e tddzCBKOsaQmaQUxGf8IbY7Mh/UK3bGUl0Y6TW9oPuXgTBsFRVoyZwk63l2HjVHWDebq3ReLmYz Wn6BAS6SclFk9pwp/mEGBnB8aPkkZphdU9UiXHIeV5npopeyBq1NC7J47lHzCMmcE8t54P/ItNx VOkU5skk X-Authority-Analysis: v=2.4 cv=VNndn8PX c=1 sm=1 tr=0 ts=68b6694e cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=XKwcXZh5TvB60uggK-cA:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02: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: 1756785203002124100 From: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/translate.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index 743c96e6e1..01a236d108 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -1287,6 +1287,20 @@ void hexagon_translate_init(void) =20 opcode_init(); =20 +#ifndef CONFIG_USER_ONLY + for (i =3D 0; i < NUM_GREGS; i++) { + hex_greg[i] =3D tcg_global_mem_new(tcg_env, + offsetof(CPUHexagonState, greg[i]), + hexagon_gregnames[i]); + } + for (i =3D 0; i < NUM_SREGS; i++) { + if (i < HEX_SREG_GLB_START) { + hex_t_sreg[i] =3D tcg_global_mem_new(tcg_env, + offsetof(CPUHexagonState, t_sreg[i]), + hexagon_sregnames[i]); + } + } +#endif for (i =3D 0; i < TOTAL_PER_THREAD_REGS; i++) { hex_gpr[i] =3D tcg_global_mem_new(tcg_env, offsetof(CPUHexagonState, gpr[i]), --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=1756786398; cv=none; d=zohomail.com; s=zohoarc; b=Nl8YGVPzUhnEq6rMWvZCApUXzSmzglF5P3prek0YnruVNW6y5eNp6EFELVn5L+X63UwDmFsP1RjVJBLgwOhjeUR1aaaVOaqnr0My/1rh5tFZOSWfECoNAE01OvChqE9b1s2wn2rVSbJa1gVPsNd1Kg7P3ltqI2aHWnGLReEOC9Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756786398; 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=m3Jy3qDy8UMtfwS27O7HCnbT1ahJwyKtcD8kQj9/kgQ=; b=k2U4EuwA7QeeWkwCYspckVEJ3Ajv973XQzu/kMi75JP6HCyHUyXc5vd0Gk+xsAa46y/TosE1yWZhefWqTYTNIcxzZH6z/BVPD6zqDXozh3b2Re+CiaPA/yohSH4mnUDPqgNUOXUJsilOAOrlnCxSaf0XUSpoo/IFwehYA4o+MME= 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 1756786398590182.2335499661233; Mon, 1 Sep 2025 21:13:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI1t-0005LC-U1; Mon, 01 Sep 2025 23:49:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI1r-00057i-7W for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:55 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI1i-0004gG-La for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:55 -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 5822RkKA016374 for ; Tue, 2 Sep 2025 03:49:35 GMT Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48utk8x8ar-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:49:35 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-24abc029ee3so18822655ad.0 for ; Mon, 01 Sep 2025 20:49:34 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.49.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:49:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= m3Jy3qDy8UMtfwS27O7HCnbT1ahJwyKtcD8kQj9/kgQ=; b=oV8wiWuu3PJk7BLH dFp57XYiQHfbIqiJ8IvajsVgqeRt6X04rNBezv7tB7vgfHk72FE9bNyesNIDSlbj /kltj6tnjvFS6e0Tsru+RO5Mi2dB67BwXqvspX3utVJ6nJpF4QnHfC8LjBBDgojj ujClsNjLKuJb6FrTfcrRmoSZJUABrHLldfa/wDT2oY83F28z+XGdnVvXJ0fmlCKQ 8IPLKV90lsbMcpOkgYhhV2zerDjyNhv5ySCmtrJBDj9RalbFQiKB3xnCayBGbsrK tROp+93cImhQxqge9+MB9lNsuHjh+UfdeVh1A/1r0sRuUXBoUN/dHsT7jw8bm+z2 VrffOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784974; x=1757389774; 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=m3Jy3qDy8UMtfwS27O7HCnbT1ahJwyKtcD8kQj9/kgQ=; b=HTFx5j8R7VZNVViHuWdrxcrxaxlU0AxWX78VHXsc/SLE8bh5Got8YyYe36s/qwz+26 7MRiI01kdsAPrLCOTgn0FGu2ag+jC1l7vzIlbSV7ftQkT8RJ8zJsl7p0NjUswvp71tC9 x1JHa387ouXRBTahzbNHizu0dExJyHrudOgVeF4N+PZ9Roele4QGIBfhjKcAJNm6ZBgc PJNf0UqIyMLvP114u6qvsdMoxJxaEPs45vPpnLXNTwMYKM6ON/Xs5zgb6wwR3Mft6QA4 crBYH2mRhAfDGla34j+DekxaPS/47ODrq510fcB6+17TEvU4qKImdw6pTfYLsK1Ph66l JbYQ== X-Gm-Message-State: AOJu0YyCPT7jcuUyFm80o0kAsCtcOsALg7RSfz+7In6UxjWapylIa8jH 6qTr/TswxNbltOd8Lpxq1qQghnvjpCSVFfSKwBnKIXt57eRlBg0Ab29B7TDzTSFXO1wpyzOl+uF 9COfImWYCdgvT2KvUxqgflVDP41kMvviPMSqmwKi2Ut+vsuczWcJBaeb7VcDeZekL7AFk X-Gm-Gg: ASbGncvipUr8UAFj4+moYN/qWsQWtv8wAuilrVsKYAaPkV2bCHFIr//eSK4Y+iaW0Id OnYA3zEqSKCRfPgZr8iOTZdF4q+3PvhRnwCVcGWoRLu9RgMSSLF1gjhGZkrj4BVSFama4uWMKtJ 5isdUGcj0wZBZtXgqaldTewH0QDb4206BW+GLECwGP9Y3ic/E9zI67aaoFQGHxddRmT5bo8klJR h7b6HibFviCeUspHLgCktt8w+bxVVLKd1AFpfqcjdAz3WbwdXID4Vfgmha37OxyVcWF2ba5MVo6 PxpG/1PRFJX8guzkzljb0ogqszGBnw0yzLVO2dHTcx18nurc6TUPFvoAinIYM2cGorf9poegy5a AGzJtN3rh4BvA X-Received: by 2002:a17:902:e750:b0:24b:12ce:48bd with SMTP id d9443c01a7336-24b12ce4946mr15323865ad.17.1756784973940; Mon, 01 Sep 2025 20:49:33 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGswUP6qStdwNIF/8fCiAUYsapjaEWjlCDJ7zPkrxgd09zewQresdZZvBdxWKgA7ige9AgkDw== X-Received: by 2002:a17:902:e750:b0:24b:12ce:48bd with SMTP id d9443c01a7336-24b12ce4946mr15323585ad.17.1756784973457; Mon, 01 Sep 2025 20:49: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 34/39] target/hexagon: Add TLB, k0 {un,}lock Date: Mon, 1 Sep 2025 20:48:42 -0700 Message-Id: <20250902034847.1948010-35-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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: c3iQJ5B-GOb-wrDA6B1hMLDSNkngS9Rl X-Proofpoint-ORIG-GUID: c3iQJ5B-GOb-wrDA6B1hMLDSNkngS9Rl X-Authority-Analysis: v=2.4 cv=ccnSrmDM c=1 sm=1 tr=0 ts=68b6694f cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=5qM_0fsqfvQKBOMFAjMA:9 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDA0MiBTYWx0ZWRfX5+Z2pxCjHsGk gww47V5kDs+/umbvl5t07AZsBQtc8PtV0yzKiqe3sucN4giZ5Qnwm2tfWqxSIB/k1RR7FoH5Mr0 csCAtB58aKIwWOI1tRFFxRYAcwt44HezOkvRuEBY7J/UaHLDEHyzvO49ohP6j6Sb9utsFltXXHE SP0p/EbsEC755fMcOd7kM38+w9m5u3YLCrGQt3Nd8J2MIkH7A5luwXAd5chlIKb/UnUQM61CGbo K5/DKBpst+NW+rLD/KVzQhiYpSu5W2/xV+ZTPi/sxbuDpJws9R/a5cFF/bkx4iozTZNPyNqLm5d VzhOCJ6B7CdWV3wDau1YdwblKtcGA0pMrfDcdHzydrx0H0VV2VzLtlvxccuTm02dnmY0uhpAyj5 aFtMVqwm 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: 1756786401256124100 From: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/sys_macros.h | 8 +-- target/hexagon/op_helper.c | 104 ++++++++++++++++++++++++++++++++++++ 2 files changed, 108 insertions(+), 4 deletions(-) diff --git a/target/hexagon/sys_macros.h b/target/hexagon/sys_macros.h index 3c4c3c7aa5..e5dc1ce0ab 100644 --- a/target/hexagon/sys_macros.h +++ b/target/hexagon/sys_macros.h @@ -143,11 +143,11 @@ #define fDCINVIDX(REG) #define fDCINVA(REG) do { REG =3D REG; } while (0) /* Nothing to do in qem= u */ =20 -#define fSET_TLB_LOCK() g_assert_not_reached() -#define fCLEAR_TLB_LOCK() g_assert_not_reached() +#define fSET_TLB_LOCK() hex_tlb_lock(env); +#define fCLEAR_TLB_LOCK() hex_tlb_unlock(env); =20 -#define fSET_K0_LOCK() g_assert_not_reached() -#define fCLEAR_K0_LOCK() g_assert_not_reached() +#define fSET_K0_LOCK() hex_k0_lock(env); +#define fCLEAR_K0_LOCK() hex_k0_unlock(env); =20 #define fTLB_IDXMASK(INDEX) \ ((INDEX) & (fPOW2_ROUNDUP(fCAST4u(env_archcpu(env)->num_tlbs)) - 1)) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index e283c5c809..5efd644fa7 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1186,6 +1186,110 @@ void HELPER(modify_ssr)(CPUHexagonState *env, uint3= 2_t new, uint32_t old) BQL_LOCK_GUARD(); hexagon_modify_ssr(env, new, old); } + +static void hex_k0_lock(CPUHexagonState *env) +{ + BQL_LOCK_GUARD(); + g_assert((env->k0_lock_count =3D=3D 0) || (env->k0_lock_count =3D=3D 1= )); + + uint32_t syscfg =3D arch_get_system_reg(env, HEX_SREG_SYSCFG); + if (GET_SYSCFG_FIELD(SYSCFG_K0LOCK, syscfg)) { + if (env->k0_lock_state =3D=3D HEX_LOCK_QUEUED) { + env->next_PC +=3D 4; + env->k0_lock_count++; + env->k0_lock_state =3D HEX_LOCK_OWNER; + SET_SYSCFG_FIELD(env, SYSCFG_K0LOCK, 1); + return; + } + if (env->k0_lock_state =3D=3D HEX_LOCK_OWNER) { + qemu_log_mask(LOG_GUEST_ERROR, + "Double k0lock at PC: 0x%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->k0_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->k0_lock_count++; + env->k0_lock_state =3D HEX_LOCK_OWNER; + SET_SYSCFG_FIELD(env, SYSCFG_K0LOCK, 1); + } + +} + +static void hex_k0_unlock(CPUHexagonState *env) +{ + BQL_LOCK_GUARD(); + g_assert((env->k0_lock_count =3D=3D 0) || (env->k0_lock_count =3D=3D 1= )); + + /* Nothing to do if the k0 isn't locked by this thread */ + uint32_t syscfg =3D arch_get_system_reg(env, HEX_SREG_SYSCFG); + if ((GET_SYSCFG_FIELD(SYSCFG_K0LOCK, syscfg) =3D=3D 0) || + (env->k0_lock_state !=3D HEX_LOCK_OWNER)) { + qemu_log_mask(LOG_GUEST_ERROR, + "thread %d attempted to unlock k0 without having the= " + "lock, k0_lock state =3D %d, syscfg:k0 =3D %d\n", + env->threadId, env->k0_lock_state, + GET_SYSCFG_FIELD(SYSCFG_K0LOCK, syscfg)); + g_assert(env->k0_lock_state !=3D HEX_LOCK_WAITING); + return; + } + + env->k0_lock_count--; + env->k0_lock_state =3D HEX_LOCK_UNLOCKED; + SET_SYSCFG_FIELD(env, SYSCFG_K0LOCK, 0); + + /* Look for a thread to unlock */ + 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->k0_lock_state =3D=3D HEX_LOCK_WAITING) { + if (!unlock_thread) { + unlock_thread =3D thread; + } else if (unlock_thread->threadId > this_threadId) { + if (this_threadId < thread->threadId && + thread->threadId < unlock_thread->threadId) { + unlock_thread =3D thread; + } + } else { + if (thread->threadId > this_threadId) { + unlock_thread =3D thread; + } + if (thread->threadId < unlock_thread->threadId) { + unlock_thread =3D thread; + } + } + } + } + if (unlock_thread) { + cs =3D env_cpu(unlock_thread); + unlock_thread->k0_lock_state =3D HEX_LOCK_QUEUED; + SET_SYSCFG_FIELD(unlock_thread, SYSCFG_K0LOCK, 1); + cpu_interrupt(cs, CPU_INTERRUPT_K0_UNLOCK); + } + +} #endif =20 =20 --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=1756785271; cv=none; d=zohomail.com; s=zohoarc; b=VnTOA/WEb4xNGu7KYOk7FVwtQQyM4cTT9MIzeOwoyUFPxAmVzgBmdvXgV2YPkdTN0sDd94Mq7k/U95RtykHXvibdzjWKeLg0PMGsYZCShMOfyqsE4JGbpadCUrSV1IumvFenFSZ2lMYdTmQ7+uOeX/s6HrA9fjxWTud77oy4WY4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785271; 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=/XtkofbAZfBFOGB7EfpPi54q1WneJlNbiChUs0mvYsc=; b=Kfn4c193EyPKMU9irHm6NfrYLRaueCL55VLY0wSDh0o+ecEUb2/WSNME96Dv5YC30eagBwa0lRbOmNrBmurf2zKbv2ZeHL9EmrgG7YWSgMtD9ntzibSkukt03boMy2kTZvxvuw0WwwHwKV5WdYSTyNgQ58sE78KREKirvqeTqew= 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 1756785271163464.40583464943506; Mon, 1 Sep 2025 20:54:31 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI20-0005tT-Mk; Mon, 01 Sep 2025 23:50:04 -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 1utI1n-0004mC-Eu for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:51 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI1j-0004gS-QW for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:50 -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 5822Rm9o012351 for ; Tue, 2 Sep 2025 03:49:36 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 48ut2fea6c-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:49:36 +0000 (GMT) Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-329e3db861eso234173a91.0 for ; Mon, 01 Sep 2025 20:49:36 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.49.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:49:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= /XtkofbAZfBFOGB7EfpPi54q1WneJlNbiChUs0mvYsc=; b=lFY0euds75ntjVJ/ Gfnxxw3EGIvCaeqydCJN3x6e+Vm+UUWLPCau7Ia58HKKH6nJ51WHQfCZgR/MEKPO hLZkGVwBT5N7o34+lmdAUb6TUixZeG2z4b1DzutWta3FJzq9uq+xjdhMkjAaEmUf FDUgiDgdInk17DdaLV0kCwzg+vsdeNZBwtOib7S50BUTmmoIYZNXPRmJ/82BSz/r q71acnvxyUhLyX/RneC9uEgb67zWkGGHrOizTjijAUZ93rbEIJGIyvjXy2OjDS8g c5rSw590ruJ6eX0y/7JEPSscPZ5EtZQSBUEVeGgiqbLALDDR1gU4MLOwMToF57wg 7No6LA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784975; x=1757389775; 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=/XtkofbAZfBFOGB7EfpPi54q1WneJlNbiChUs0mvYsc=; b=dgdXSZnMTvU7vVS9L1rNaoyrMgcEOFqxMbvm4+37oPAQ3vB8sSyxGHG97EyLOzgGwf LyfrIZl5hKohjV7Jk4gHKzkHjmYmbN8+1s2ngPZPD6gTnmd11Z+kHgFafaRr+kg/XyhV XwggiDRQPCA3t+N4fj3tVMI9b0RYPXwwMli6OqFN+1m3w/tsRIUS5y2COEtgEF94DvDE Sqh4Nu+q8PwczW6C2cWYLbP/cndDR/sKQZ/ea+DWFqyZhb5pLe471U9SmPSpFBatdY/9 L0sA7RuN517X0HbGBAzYSV3niP0MhcGqqMHjy0dLD3c9FKaFa3NdD3xEsxIjNAbPjDmq Q7UQ== X-Gm-Message-State: AOJu0YxX4ppl2Xld8tm2USseAn9Thr6MQhBisWe36wkX9i0A+Epop2gT 6l6P4uIsm8/IiD2Ufld7of9qLj5IZz5L2ENTXgoqWVTFxkLajADB7VCGPg8R9wv1bFxKqXOXQp5 vwPOE5Ce6noUo7bYPtPQP3e5KKRsa0di6K0vsdwV1aZrLXKiEVpSL8Xt4z070WiDurAoj X-Gm-Gg: ASbGncu4C32wKMKtD8FEiQsj/JwzB+s6OeVD0n7jebOSdujcJNxYR1b5dLJF37J1zrr XKquBOuDRVPJzC+lz8QLwk2CSW0rWhpvGo1+BUa1AABz+uJQ+/dvQ+Kj1Bb+KZbAGvtYJbMslA/ yZhL5Dz9QNXD4Fg9gVlEFFhLzh3XnGCJbyhhXgTGEGHqhHfGNpYV4FAl73mjq7E+/XeKJCbfLop +mYg6zsM8hqIJKM+KiD+gXx6U6vKYwo/99ftjI5bq+n1vB+eDF6sCtTsXFrUEj3WnJJ3N0LCGDf /iVnTrqctFcS1tBH1LCYJBTejyQJLKXn7PycPRgD3UASIEUkankv8jfIoJGETKyUT94I/8bmoIb Yb3GotST7woDv X-Received: by 2002:a17:90b:3d8f:b0:327:8c05:f8b0 with SMTP id 98e67ed59e1d1-3281531d6e0mr13485550a91.0.1756784975000; Mon, 01 Sep 2025 20:49:35 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH7Nil/yjE/x9qgOOxIJSMtOMx0OErqJ5KVVRKgBCPLxyhdB4yJn9xGAgjRaf71yrulq2NyAA== X-Received: by 2002:a17:90b:3d8f:b0:327:8c05:f8b0 with SMTP id 98e67ed59e1d1-3281531d6e0mr13485528a91.0.1756784974502; Mon, 01 Sep 2025 20:49: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 35/39] target/hexagon: Define gen_precise_exception() Date: Mon, 1 Sep 2025 20:48:43 -0700 Message-Id: <20250902034847.1948010-36-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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: AW1haW4tMjUwODMwMDAzOCBTYWx0ZWRfXzOVYpvxn1Wtf gwRhyHALLNKuDfed4ynJL1V17uyFE+O/0HACYPHgjhZoyflbhOTH1TzmqyDYAvefPxKhlVaY8G7 ivblKyLh+oqTsRqgyVrtVtVr1RGxFz57T8STiSZ6wDpQF0Kt8kBCUnwEQxOksi+wmHUk+1Xe46r /KCbCpPAPCSBRUhc4+FRdune93+dRXU8RSPrrJqbVsZ3FKxkUXgx08z3u4Izj9dh2CZRog09tk3 PPUQFlnP6Y6DLbRA9ANNiGpdwq/1Mm4xUR9zpD7VmMuBjZGr6BpvP9yrg6Oj9IJdk/GcKq45aGa OmEp/Q6yClAe1NQeR0TlPH38MEfig9MLhRPpchn8e6kwlKbVqPWM636uhJplLEGAzgGcXlz2Ba2 VxQngfd3 X-Proofpoint-ORIG-GUID: gIF6PZep3N9DCx0jU5ImRMkOaNhE34Zn X-Proofpoint-GUID: gIF6PZep3N9DCx0jU5ImRMkOaNhE34Zn X-Authority-Analysis: v=2.4 cv=U7iSDfru c=1 sm=1 tr=0 ts=68b66950 cx=c_pps a=vVfyC5vLCtgYJKYeQD43oA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=nvr5Al9PzyP1cg5pS9MA: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 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: 1756785271942124100 From: Brian Cain Add PC to raise_exception helper Replace the fGEN_TCG_J2_trap0 macro override with the fTRAP()-generated system helper instead. Signed-off-by: Brian Cain --- target/hexagon/gen_tcg.h | 7 ------- target/hexagon/helper.h | 2 +- target/hexagon/op_helper.c | 10 ++++------ target/hexagon/translate.c | 13 ++++++++----- 4 files changed, 13 insertions(+), 19 deletions(-) diff --git a/target/hexagon/gen_tcg.h b/target/hexagon/gen_tcg.h index 71f8a0e2d0..146aadc737 100644 --- a/target/hexagon/gen_tcg.h +++ b/target/hexagon/gen_tcg.h @@ -1370,13 +1370,6 @@ #define fGEN_TCG_S2_storew_rl_st_vi(SHORTCODE) SHORTCODE #define fGEN_TCG_S4_stored_rl_st_vi(SHORTCODE) SHORTCODE =20 -#define fGEN_TCG_J2_trap0(SHORTCODE) \ - do { \ - uiV =3D uiV; \ - tcg_gen_movi_tl(hex_gpr[HEX_REG_PC], ctx->pkt->pc); \ - TCGv excp =3D tcg_constant_tl(HEX_EVENT_TRAP0); \ - gen_helper_raise_exception(tcg_env, excp); \ - } while (0) #endif =20 #define fGEN_TCG_A2_nop(SHORTCODE) do { } while (0) diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index e107d74609..bd75c72abd 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -18,7 +18,7 @@ #include "internal.h" #include "helper_protos_generated.h.inc" =20 -DEF_HELPER_FLAGS_2(raise_exception, TCG_CALL_NO_RETURN, noreturn, env, i32) +DEF_HELPER_FLAGS_3(raise_exception, TCG_CALL_NO_RETURN, noreturn, env, i32= , i32) DEF_HELPER_2(commit_store, void, env, int) DEF_HELPER_3(gather_store, void, env, i32, int) DEF_HELPER_1(commit_hvx_stores, void, env) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 5efd644fa7..6783e1e7d1 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -71,15 +71,13 @@ G_NORETURN void hexagon_raise_exception_err(CPUHexagonS= tate *env, uint32_t exception, uintptr_t pc) { - CPUState *cs =3D env_cpu(env); - qemu_log_mask(CPU_LOG_INT, "%s: %d\n", __func__, exception); - cs->exception_index =3D exception; - cpu_loop_exit_restore(cs, pc); + do_raise_exception(env, exception, pc, 0); } =20 -G_NORETURN void HELPER(raise_exception)(CPUHexagonState *env, uint32_t exc= p) +G_NORETURN void HELPER(raise_exception)(CPUHexagonState *env, uint32_t exc= p, + target_ulong PC) { - hexagon_raise_exception_err(env, excp, 0); + hexagon_raise_exception_err(env, excp, PC); } =20 void log_store32(CPUHexagonState *env, target_ulong addr, diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index 01a236d108..38c2037c47 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -122,9 +122,10 @@ intptr_t ctx_tmp_vreg_off(DisasContext *ctx, int regnu= m, return offset; } =20 -static void gen_exception_raw(int excp) +static void gen_exception(int excp, target_ulong PC) { - gen_helper_raise_exception(tcg_env, tcg_constant_i32(excp)); + gen_helper_raise_exception(tcg_env, tcg_constant_i32(excp), + tcg_constant_tl(PC)); } =20 #ifndef CONFIG_USER_ONLY @@ -219,9 +220,11 @@ static void gen_end_tb(DisasContext *ctx) =20 void hex_gen_exception_end_tb(DisasContext *ctx, int excp) { - gen_exec_counters(ctx); - tcg_gen_movi_tl(hex_gpr[HEX_REG_PC], ctx->next_PC); - gen_exception_raw(excp); +#ifdef CONFIG_USER_ONLY + gen_exception(excp, ctx->pkt->pc); +#else + gen_precise_exception(excp, ctx->pkt->pc); +#endif ctx->base.is_jmp =3D DISAS_NORETURN; } =20 --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=1756785335; cv=none; d=zohomail.com; s=zohoarc; b=EsZhLBxyPavlmqXB7T41UvJ+ASm3sHfta+J2HOCLED6nE5WK8Lr8Gxtq4cnDqm+ewcPW5+fbFRyh/uWc9F/dX7l0bcyc2e0emJGa4SUu+c+1GTIOuLz4Hycb2UTYF24FQThREDuQBPchIv8/TmpIa6LaHw8TT6KkCNlTkEfVjRI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785335; 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=bQNP/pyEYOz75w7E6mG0hPIz4XTTqxmaqbupKpuY34k=; b=ORpsmHx6pzZup1NwJXlXL6sgy2IMwvXfMuFKEPFiNWz7fECenZbsazUJluOUG4E8UikVlo/Ey317wGTTpXBq3LAhgZWLQEEGbQ+PmI9F6rprSYAb2q/dCVMo+2Fb6IUGrPM3GU4OozIREyiJk9ORMAQ2EgC6ZjyL6lGjkmefIX0= 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 1756785335294832.6524534469901; Mon, 1 Sep 2025 20:55:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI1y-0005iA-G9; Mon, 01 Sep 2025 23:50:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI1n-0004mB-Eg for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49: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 1utI1l-0004gh-0W for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:50 -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 5822S5W9022217 for ; Tue, 2 Sep 2025 03:49:37 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 48upnp6hvd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:49:37 +0000 (GMT) Received: by mail-pg1-f197.google.com with SMTP id 41be03b00d2f7-b4f736195daso1339392a12.0 for ; Mon, 01 Sep 2025 20:49: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 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.49.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:49:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= bQNP/pyEYOz75w7E6mG0hPIz4XTTqxmaqbupKpuY34k=; b=MhjtE4kwMcZ5tsmP JRNtScuzx2MQAY9yQ0uZGIF2yk8pu4gjsWK14rdz4w5b/e8RoNkJhVEwk9XGG6N5 IzZTY8zKNyqaKA5Wc+CMA6AnmL5BpE6ADHSsFvnbyybsqMrjlH9qHtP6gPcAXqtd jP724O07/raBzRLT7f39N1EYs+W3gJhGb73kfbvtTtac2V59Szz1epQHNz2vLCLJ +HDfBrTq1NuILW40RPD7UksodhJI3IZ2+TSrDzca/Mg73uq5DiddoMDFczcTPm/n ybMcTYq8WFS98usY/Hd9R5K+6PnODQgokL7Pxh/SjklEfHixntJmTXGoHxyiGJRt +X+eTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784976; x=1757389776; 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=bQNP/pyEYOz75w7E6mG0hPIz4XTTqxmaqbupKpuY34k=; b=Hm7RbHMGyz0G3CLqFTIXtBhhcIluyPxMlDzzVQ9JYuBVz4EAro3HrumK0r9cf6oAST xXpcZ+QF8VNlQgGFuvskgOXSS7I7HFI+AgFnmJ/RuHZEO87K3qwJuhzwwfNyNFbU+Xjx efgxUEYC3IJEo4k1dhj8Y5hHaDHczw3M5p9eJOiDgT2oIHdfPoeENVrXEDYRPe5aL8pk 1oG7uyN8QTF/VeLHGnUB/p6QI7eemcrPqYcGJKig+0PRyR35YMnUbZ/JIzQi7s9EriVk dnySER4aaaiWjENkc1VELP85+mslh0saurb0Gb+jvEGgoMC7cf7+s6gJIcFK3WF+FqVU UXQg== X-Gm-Message-State: AOJu0YzmJOD2SwqaYuRoV6I2HdNOM/g2GROPJFrf02B6/GFHso4uRgad KEIRu54wPzhDnGGcc06DU7+wzvF7lKvnc1VpECCniWKuqUXl1Lr+JW1XB3mA8/CGzc7I6lpvMos Chp5EaPG1C9iNwjNZW4be5JSgi3QKTs2oh9+QguDL5o77WNF1UiEadg8Hme6/GrQ9CY8e X-Gm-Gg: ASbGncv4i9ZUwWNyK1j/tBaEGCwtrY8uvVOHSsA7dAx0IGNkejLe/rfvuJIJew/vL/6 P23TZX6dYjMHlsyh7SOp6jsn1oxIscGhI//Vq6ehPBOBH6Whp+j1Nbo8B57+J8Z9qJLsdeo1KiY lHYc+2iQh3ZDDtscnF137XW9WE+VllJ9nyz+LTYq9B4swXACkSca71wa/I8GiA6sKQS9YKylGRR rWwLlgISs0Ho78tay5OVTC+4rSRwfqpTvoprIPylT8qcfryUld0JmE7ISOkDU9qy56oajIm4wfo arNXbxraXb8cmda4+S/WM7sjrLlIG7UjvjuJ+OxIux10WVg0tuoVtMdKv0KAHzkYwE+e0lC/7Sg elJKPyTW4e/be X-Received: by 2002:a05:6a20:3944:b0:243:be7c:2d62 with SMTP id adf61e73a8af0-243d6dd4decmr12522496637.11.1756784976012; Mon, 01 Sep 2025 20:49:36 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHmcIrPb4loqcV9t3CUxKNVzsRGuy7JrYwDXe0xRBFg9brUG9qeG4dhejwa4r3XXhO5CKu3oA== X-Received: by 2002:a05:6a20:3944:b0:243:be7c:2d62 with SMTP id adf61e73a8af0-243d6dd4decmr12522474637.11.1756784975545; Mon, 01 Sep 2025 20:49: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 36/39] target/hexagon: Add TCG overrides for transfer insts Date: Mon, 1 Sep 2025 20:48:44 -0700 Message-Id: <20250902034847.1948010-37-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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: IdDi4R-_g5SJ9QNGNFlCLxz-YqdQNunK X-Authority-Analysis: v=2.4 cv=Jt/xrN4C c=1 sm=1 tr=0 ts=68b66951 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=LN73x9Sj_Gq4gUX8wwYA:9 a=QEXdDO2ut3YA:10 a=bFCP_H2QrGi7Okbo017w:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: IdDi4R-_g5SJ9QNGNFlCLxz-YqdQNunK X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAwMSBTYWx0ZWRfX/Wqj6X+oVV2q GxIW0+gXxVeysaHuiU+op1zjm2pNXHNqsd4kZt2ibz21nzrPwDxUJqmVPlk4q4GwDBcLZCCAd49 u4jY8cAi3dwR3yrpY+4ZeXO/tPud0hfQLk/JHLfKN3GgtDnD4Lr+iv9CngZ0CebJ8gj2gsFbzaq 8tZZI0B+V5nmuY5vZU3EDJIFxUClo+FBzzanG8Bwag4S1UzcQxnpwIdyxhAj9NTl0WKJwMb83wP L4Q4powDZfywhJsduBFN7cyJguApnvKZEVyqGe6WHd1U40eYOxI8ger/IkZKPPLXDtO5AUtilNV zIJ68Ges2xLNCiYvZSb9ESnMifh9OXoS/3mQPOgZSb7d44elC48vJ6WF4MCOu1YLkoE5NxRkyEp WBetLAve 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: 1756785336736124100 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/gen_tcg_sys.h | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/target/hexagon/gen_tcg_sys.h b/target/hexagon/gen_tcg_sys.h index 6d73a18db4..e56553462f 100644 --- a/target/hexagon/gen_tcg_sys.h +++ b/target/hexagon/gen_tcg_sys.h @@ -81,6 +81,31 @@ gen_helper_stop(tcg_env); \ } while (0) =20 +#define fGEN_TCG_Y2_tfrscrr(SHORTCODE) \ + tcg_gen_mov_tl(RdV, SsV) + +#define fGEN_TCG_Y2_tfrsrcr(SHORTCODE) \ + tcg_gen_mov_tl(SdV, RsV) + +#define fGEN_TCG_Y4_tfrscpp(SHORTCODE) \ + tcg_gen_mov_i64(RddV, SssV) + +#define fGEN_TCG_Y4_tfrspcp(SHORTCODE) \ + tcg_gen_mov_i64(SddV, RssV) + +#define fGEN_TCG_G4_tfrgcrr(SHORTCODE) \ + tcg_gen_mov_tl(RdV, GsV) + +#define fGEN_TCG_G4_tfrgrcr(SHORTCODE) \ + tcg_gen_mov_tl(GdV, RsV) + +#define fGEN_TCG_G4_tfrgcpp(SHORTCODE) \ + tcg_gen_mov_i64(RddV, GssV) + +#define fGEN_TCG_G4_tfrgpcp(SHORTCODE) \ + tcg_gen_mov_i64(GddV, RssV) + + /* * rte (return from exception) * Clear the EX bit in SSR --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=1756785934; cv=none; d=zohomail.com; s=zohoarc; b=eupozwY4eTVu69iKAuzuHjMFUZsQZ57IEIU1UgntCpdxwmxXk8ZHcixdaVfYm8/KxwxUaKY742MavEdNzcvmkVFc3la2oehaY3kg7Z3PkIExRgqk+r2YQNGWfm86PdEAA1+5h1ww525JpzV1izK5lIN4TW7naVyUb3/Kt3fGUBg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785934; 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=O9I3g7Y55SmupnY5HGKX2w4q9NJsFa535eQugDny6JE=; b=U+2hVQ5PHLZBAflmg0NUIdoP9x22HdbVZAA02FIpmY9lXLKffflXt6ib53djIIbh7zRsmCXnowpfV+WMcGUxaBqquEvJJSxQAGTsh90FT2mJ2XY1UbaKU4r+AkdQIbKh2IUxd2is1CcC3QKAOrBfSkbcwdpfkg2k5lA4zBuY4Qs= 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 1756785934355195.8072981151886; Mon, 1 Sep 2025 21:05:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI1q-00056C-Sf; Mon, 01 Sep 2025 23:49:55 -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 1utI1o-0004pG-7A for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:52 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI1m-0004gq-71 for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:51 -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 5822SO4l013850 for ; Tue, 2 Sep 2025 03:49:38 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 48uq0eejac-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:49:38 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-324e4c3af5fso5183780a91.3 for ; Mon, 01 Sep 2025 20:49:38 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.49.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:49:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= O9I3g7Y55SmupnY5HGKX2w4q9NJsFa535eQugDny6JE=; b=gnyrqfDY+rKrKegw vdfv4m65eD5VIc7Xu+c0pyKcf1/USiAbRukT0/A4wdTgQIFPc4iWLRni0Mp0X47b q4cTpDKpgXeboR29AHFYbtVNER+XYaxIyTSoHZmGBs0Q063K/PJCQEWDW7zRhANK X3TV14ag6b0qssat37kmVQd1+k2K3w0m9jG9sb41+werYlkC4rJKYAxr6/4LL17L WsJmEpihYdM4rRVwMkXX88ALA2lOOWKjfCq8FHv6bRAGdSZ69s5AqKwIcqu2fwDd /9Vw6pQgtTIIa1dhbeE+2hI9LrEunl+YT8Re1VLVQOI2sTg40Z7HnbB5SdiXK4sQ aikQ+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784977; x=1757389777; 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=O9I3g7Y55SmupnY5HGKX2w4q9NJsFa535eQugDny6JE=; b=epsakrAs3x/evTAHnFlkM6jZwLIACE4uf8fubhYiJtyydahAyu9eP/qxLXZCG6Xllu ICojMB4bzZ0nhvgeLKoNl/4TzV/s87A2khlOQt9UwMJ8NoLrZ9r2B0X7bj5yNnsK3FOQ a4cnDQ0hP1GvW81ZhWjMokpXoeHPjXWfhfuyTGExQqz8ocCue1MJRQWJn1GQ+VEzqSQS ay1xvStOiDQoE7qVvgAWgajcg3EbbU/4z6nMmBqVoGGvH8L+H52Gs0B32cmSKRMFJnvk uS5j00GODj1R6kQh2NBCEJcUPRRGwZQmmbWONlUDn2fNXSVWI9JlkzuJIZfg0VGjGGxQ y4Mw== X-Gm-Message-State: AOJu0YzlJSZjcRQ5yMlvEAvFH8SfveRQJ9adJf8HeakPzjwGsVe50yiY ma/RQjtOyrCmESfchy9nkvzkMV9Zxl4fuv47PTfLkMnAW9EfeVxSG7Ddv+Oixk6FkUksTd5Luay jxO+OnAmv+AGD0LYLHdc9ZkC85Z6nxH85/wTR1/SSjZMBSRj+rMiZRTWMxhYL5cGcpgKW X-Gm-Gg: ASbGncut1pUfCqQdPqOePie89CGfu2z/8mJoSGL+Z+zmqEJUiQfltFiCrhaEMLdgQGk vBdEUdFlXnouXL6eShU54jryreIT9nkc/14BEOssBiIma7QLsly8XHtMJKknBqAY5p/Sio7Zuyb M79N+hGNOPosWtJvZ55qRNruOEHkvpNVebZE8dYF717F8z/iy8vw9UrGiAvNImVYNDen6mLZlgs eeS0082CW4QAsW7ddC0iR2SSSUYDOmToRU9Da09tJV34YLpy11azQkYopsl0KzJiMjnsMAj6Ntz ng9NTWGwo3B82ifvrLgUbyQXskgucbtg639HEhuHLPr4AsQnXe473l1fj8UPsJY8pumDhzL6g6J HUi/DAmU9LT43 X-Received: by 2002:a17:90b:54c5:b0:329:8160:437a with SMTP id 98e67ed59e1d1-3298160446amr11234194a91.24.1756784977174; Mon, 01 Sep 2025 20:49:37 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH+a7kkaLQKQ/CLk4rCxxF60Z65/NJ0QJZr63EscBAjOLwYKGEDEMj8gl9NVsu/37FSCVYtuw== X-Received: by 2002:a17:90b:54c5:b0:329:8160:437a with SMTP id 98e67ed59e1d1-3298160446amr11234168a91.24.1756784976699; Mon, 01 Sep 2025 20:49: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 37/39] target/hexagon: Add support for loadw_phys Date: Mon, 1 Sep 2025 20:48:45 -0700 Message-Id: <20250902034847.1948010-38-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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: KBU_yr8vpUEkAtd_Nl0kzC4WGH2sTg20 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAwNCBTYWx0ZWRfXwv4U9pxmLZrj N1YsYPszHImchr9vyrUXrd4Z5El5+dc9kbvTjatMGeL1hHfCY4+t4d59gTtqYmxmuI8PC8+pX28 P+lZiaDjutKj2sS4Lx/vAJCalmZ4Gga5EkpkwqQmaptYtayKJwPrTZdn/4S93g8Dt6of/FvtXt7 3Hj6f24ECRYBZfIEeyfVbug98vK3WpFlCMmwygPQkQNlD+Xd3L5poH1KZAQsuFbRAiUq96yvtWR X5Tyz8U7LByzfglagNHEUf0a15syPDus4LwIwmrKjxHjOfWV1L7E0344pMiiKlryBd1TDqK3NsE pXdyR5zRBaOfrAQsVRYK5oSYb+Vo2xueiT2wca9WaSolEOr253DbaJYY7XAdIUgwgHKgNuo4NPq C/EuOrqt X-Proofpoint-ORIG-GUID: KBU_yr8vpUEkAtd_Nl0kzC4WGH2sTg20 X-Authority-Analysis: v=2.4 cv=ea09f6EH c=1 sm=1 tr=0 ts=68b66952 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=M_0_kNSAHlZdZebFLzYA: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 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: 1756785934762116600 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/hex_common.py | 3 +++ target/hexagon/imported/encode_pp.def | 1 + target/hexagon/imported/ldst.idef | 3 +++ 3 files changed, 7 insertions(+) diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py index 39451e6d88..2770b0638b 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -265,6 +265,9 @@ def need_slot(tag): and "A_CVI_GATHER" not in attribdict[tag] and ("A_STORE" in attribdict[tag] or "A_LOAD" in attribdict[tag]) + and tag !=3D "L4_loadw_phys" + and tag !=3D "L6_memcpy" + and tag !=3D "Y6_dmlink" ): return 1 else: diff --git a/target/hexagon/imported/encode_pp.def b/target/hexagon/importe= d/encode_pp.def index 37faf62b1b..41e4ab9e3a 100644 --- a/target/hexagon/imported/encode_pp.def +++ b/target/hexagon/imported/encode_pp.def @@ -388,6 +388,7 @@ DEF_ENC32(L4_return_fnew_pnt, ICLASS_LD" 011 0 000 ssss= s PP1010vv ---ddddd") =20 /** Load Acquire Store Release Encoding **/ =20 +DEF_ENC32(L4_loadw_phys, ICLASS_LD" 001 0 000 sssss PP1ttttt -00ddddd= ") DEF_ENC32(L2_loadw_locked, ICLASS_LD" 001 0 000 sssss PP000--- 000ddddd= ") DEF_ENC32(L4_loadd_locked, ICLASS_LD" 001 0 000 sssss PP010--- 000ddddd= ") =20 diff --git a/target/hexagon/imported/ldst.idef b/target/hexagon/imported/ld= st.idef index 53198176a9..4e1e5d5326 100644 --- a/target/hexagon/imported/ldst.idef +++ b/target/hexagon/imported/ldst.idef @@ -203,6 +203,9 @@ Q6INSN(S2_storew_locked,"memw_locked(Rs32,Pd4)=3DRt32",= ATTRIBS(A_REGWRSIZE_4B,A_M Q6INSN(L4_loadd_locked,"Rdd32=3Dmemd_locked(Rs32)", ATTRIBS(A_REGWRSIZE_8B= ,A_MEMSIZE_8B,A_LOAD,A_RESTRICT_SLOT0ONLY,A_RESTRICT_PACKET_AXOK,A_NOTE_AXO= K), "Load double with lock", { fEA_REG(RsV); fLOAD_LOCKED(1,8,u,EA,RddV) }) =20 +Q6INSN(L4_loadw_phys,"Rd32=3Dmemw_phys(Rs32,Rt32)", ATTRIBS(A_REGWRSIZE_4B= ,A_PRIV,A_RESTRICT_SLOT0ONLY,A_NOTE_PRIV,A_MEMSIZE_4B,A_LOAD,A_NOTE_NOPACKE= T,A_RESTRICT_NOPACKET), "Load word from physical address", +{ fLOAD_PHYS(1,4,u,RsV,RtV,RdV); }) + Q6INSN(S4_stored_locked,"memd_locked(Rs32,Pd4)=3DRtt32", ATTRIBS(A_REGWRSI= ZE_8B,A_MEMSIZE_8B,A_STORE,A_RESTRICT_SLOT0ONLY,A_RESTRICT_PACKET_AXOK,A_NO= TE_AXOK,A_RESTRICT_LATEPRED,A_NOTE_LATEPRED), "Store word with lock", { fEA_REG(RsV); fSTORE_LOCKED(1,8,EA,RttV,PdV) }) =20 --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=1756785015; cv=none; d=zohomail.com; s=zohoarc; b=m6cLxQteo8ZQ5CSX0icxEapkQhBm0gPtep2PJ80krj9Druab3wR5je0o91aKnhL86SsDnQUja5CCjOEullpHhr2+J9V9oFbxfNzhjIXAq+N7UnT+gOExswbIeiCXFyT30wpmTHfJrCXhkID1zprwR+BkIQ+IHBWpGjb3y9IsY5A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785015; 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=LKbDsVtkNa9fudbo/M95wP/WPuYwdkcECdTm6exGrug=; b=WqImrO14ZWuXMzBa7V9j1E2lK8A9FqLtcQre4XZs4bjAKzGg+RYbfJwOHbo4SCYMO4oIKd0vIhfNUBm/3seUDNpn8CvfEyoHuhDHaJCwfiHCmBLoNHxQ6LQTlWYhFwn79EPLxM3YPZZlR0duZbcRtKZa+nElFmd0cMCYHfw8teY= 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 1756785015685945.2782067114713; Mon, 1 Sep 2025 20:50:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI1w-0005Zd-Ot; Mon, 01 Sep 2025 23:50:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI1o-0004uE-SF for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:53 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI1n-0004h5-1L for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:52 -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 5822SMPO021885 for ; Tue, 2 Sep 2025 03:49: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 48ur8rxf6w-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:49:39 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-329745d6960so2489720a91.0 for ; Mon, 01 Sep 2025 20:49: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 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.49.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:49: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= LKbDsVtkNa9fudbo/M95wP/WPuYwdkcECdTm6exGrug=; b=ZnPZy1iN/BQriJsk dFNq0wlDURXKKtzfqY8bBgIVSXjVcnz7C9RT2nAVCQYS1Vmi9U75zTGvraqCct0W 4yQY4u8gDZjBoPJ+BfkSEWBZr+B0A2cvn6jdTEczF4H1sl827KHRCjWNOizgCbzS X8pT5vcG/F6Xj1n41CiAX3pd0hF8dgpxbpXDoHJjmONWfl4pYTNzW+6JKZNapmZq jVHqWieZ0inTkMVdExK78hdg9oysSdSJ6W55xpZysl2J4Q0zo1B2EuvoGXwCFEAY iCYfXrI6+61/I5MC44ro7dyaQHekllOP+Ea8h50aR7A845FqQfZtSXXnDh4mTYIh soQzQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784978; x=1757389778; 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=LKbDsVtkNa9fudbo/M95wP/WPuYwdkcECdTm6exGrug=; b=hbd6LzcNGI14kBee3q86cbLWPhuXIgmXQkb2auAoouJF6UT1rdSrXRDhlr+ojthCPO pyjmP9iKitNrgb/zqMWMW1Y+tnXSO6A7bz84IJw/UbQBhmV0eZYXHgZxLfGlS6F0ha+e RRUgV4uiBrh/HEHrItlJctlWPTll9CLiivzzWOso7ZqO14CBiILTjl//U7kWy5uhJlvV MMW+rO+GXcWYTEAOOjFG1Y47YAOSZru/+iwVmgHLRE9+h0SlSsQF+3e/pq0KYcOA/F5a qVwK12sdkw+Pu2WTYvFGij3DSEA0nVNa4+6OxsP3gxbDLmEUPsUMaFvB6jtTu1TaTA7y 3U/w== X-Gm-Message-State: AOJu0YzaX9A5JoWhpWQQSobFqRTmAZPL3oMuHjgyKsVodWlUy4HWiIOz gg2aT/VbGbEvZZXsvo5GpW/jazyt5zEBJzAiyoS8uTt5Hh+TyRDSkCbo5N7biBtnLR69JaFNa/E vR+cO84jUOyx+eNMDdwDpv9GWr/PzCalLGPQ+WNn9ZY9AJBZu/PAumNq9BnXuQTPf0L3C X-Gm-Gg: ASbGnctq6Fu5TY/fUZP8Wwyvf9dfBiMRNbqitfo1p650LVE8U3rqn4Gt6iNX7jOyeoQ WR/KmJO/Hq/n/LtqeamK3ZQHfi+rAUhfraoPUgZ5ybI7RvekP7FaqVKfZQk1dcCeBgIvr8lkQKx wFkPGEjqHij9LF0FQm1p4LOcYsE2eWwz9EReLzS+eDslmaAslOz2zUjEejqRuU5daYGqWe10DQP dozIiBFClcRAWcX8KAb0EskDLD52vglOlGtCBvelKgyg5/P2O+PnVhzIsUk/Bf7LseLWPyYVc/g s1R8oihzvhpCyEWEceKriZhCtVH5OwfTFuaSEPKmPX6g0L53nLxQEW88WwwWydu3TxKX5zOCeDP ZPbqJxPjTmIPY X-Received: by 2002:a17:90b:5865:b0:313:1c7b:fc62 with SMTP id 98e67ed59e1d1-328156c62c2mr11299070a91.22.1756784978408; Mon, 01 Sep 2025 20:49:38 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG90l+nDW6UzaW4w3jnpMjo21OvrdSmm41pPQvOJ9m13Cill9c+EBeQc7owo6hB7cgwc3UF7A== X-Received: by 2002:a17:90b:5865:b0:313:1c7b:fc62 with SMTP id 98e67ed59e1d1-328156c62c2mr11299047a91.22.1756784977922; Mon, 01 Sep 2025 20:49: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, Matheus Tavares Bernardino Subject: [PATCH v2 38/39] target/hexagon: Add guest reg reading functionality Date: Mon, 1 Sep 2025 20:48:46 -0700 Message-Id: <20250902034847.1948010-39-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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: AW1haW4tMjUwODMwMDAxOSBTYWx0ZWRfX5UjOvxtXq3x2 pmeA+gfniydDGRhvHffSAocDLLoEwPqiVOkztJ/qBUcrhR0c8BwXo5bTQG0KdG9+AF4kDWZrrZ9 IwJ4wbBlULV0RlOv/nbi4Fsmbgii+bcplS/Y7TBfZD3qd7XzzPEEQ21U1usIyC37knnKKepg7gU usaJJMAeSf4jcBaXCFPmHt5fPx7S6vjs0qMY++rHNCDaUaBHJjJuxmmW04GEofRCyAcdcCX9mns YHaOcTERSjFXmIdJo09hPxWRsp6nCe2bYJjilUbf2Nxnpjbk7Xmhz+HOlAEmFyX/jeNr+pSPgqo 5X1wq8SKemjIoDm6J1hlFzkP/CVtT8zuMPwPn/JNT5+UfzIMDWON1cAKXbyMD/DHeCSZqAfSbnT TBuPeVXF X-Proofpoint-GUID: ukp_NONtHRSRORgf9hpa2ddxiGoixv1X X-Proofpoint-ORIG-GUID: ukp_NONtHRSRORgf9hpa2ddxiGoixv1X X-Authority-Analysis: v=2.4 cv=PNkP+eqC c=1 sm=1 tr=0 ts=68b66953 cx=c_pps a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=R0ySI1B19UU8Iy5bGTEA: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 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: 1756785016771116600 From: Matheus Tavares Bernardino Signed-off-by: Matheus Tavares Bernardino --- target/hexagon/cpu.c | 19 ++++++++++++++++++- target/hexagon/op_helper.c | 19 +++++++++++++++++-- 2 files changed, 35 insertions(+), 3 deletions(-) diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 122761e657..751ba613cc 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -778,7 +778,24 @@ static void hexagon_cpu_class_init(ObjectClass *c, con= st void *data) #ifndef CONFIG_USER_ONLY uint32_t hexagon_greg_read(CPUHexagonState *env, uint32_t reg) { - g_assert_not_reached(); + target_ulong ssr =3D arch_get_system_reg(env, HEX_SREG_SSR); + int ssr_ce =3D GET_SSR_FIELD(SSR_CE, ssr); + + if (reg <=3D HEX_GREG_G3) { + return env->greg[reg]; + } + switch (reg) { + case HEX_GREG_GPCYCLELO: + return ssr_ce ? hexagon_get_sys_pcycle_count_low(env) : 0; + + case HEX_GREG_GPCYCLEHI: + return ssr_ce ? hexagon_get_sys_pcycle_count_high(env) : 0; + + default: + qemu_log_mask(LOG_UNIMP, "reading greg %" PRId32 + " not yet supported.\n", reg); + return 0; + } } #endif =20 diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 6783e1e7d1..1bc32769c6 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1927,13 +1927,28 @@ uint64_t HELPER(sreg_read_pair)(CPUHexagonState *en= v, uint32_t reg) } =20 uint32_t HELPER(greg_read)(CPUHexagonState *env, uint32_t reg) + { - g_assert_not_reached(); + return hexagon_greg_read(env, reg); } =20 uint64_t HELPER(greg_read_pair)(CPUHexagonState *env, uint32_t reg) + { - g_assert_not_reached(); + if (reg =3D=3D HEX_GREG_G0 || reg =3D=3D HEX_GREG_G2) { + return (uint64_t)(env->greg[reg]) | + (((uint64_t)(env->greg[reg + 1])) << 32); + } + switch (reg) { + case HEX_GREG_GPCYCLELO: { + target_ulong ssr =3D arch_get_system_reg(env, HEX_SREG_SSR); + int ssr_ce =3D GET_SSR_FIELD(SSR_CE, ssr); + return ssr_ce ? hexagon_get_sys_pcycle_count(env) : 0; + } + default: + return (uint64_t)hexagon_greg_read(env, reg) | + ((uint64_t)(hexagon_greg_read(env, reg + 1)) << 32); + } } =20 void HELPER(setprio)(CPUHexagonState *env, uint32_t thread, uint32_t prio) --=20 2.34.1 From nobody Sun Sep 28 16:37:08 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=1756785502; cv=none; d=zohomail.com; s=zohoarc; b=ddg8xFLU0JCXNXU2dKBHeQVg1FGu0rifN04YS3JYqpWg71PdyE4wHSru9w/UkxcGOKFCKjqvWHEVntVRkHNH/99EQmleRVC6BN57GK3BzHm+ovNnK2bOoLw+ATf6plvUPWnNFjD5RCmlhlpYRz4CU1+qsevy998mI3+4/qYcrXk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756785502; 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=UM5LYPMkA0OC0J1ZEBpgnBrYVBgf9BIWiBbgIW52EXo=; b=JQDtXSLIgHE/1/8uuDi4Lellue9a8cJ6UOwM+cMLD4lN2xENkpDAmGbBAz+kyHCMpqW2y5tJJooSERhBiYdQIR76k69BZDhZp6fI5xfmlVS+EpjtgdS+T2WDzJflZQqKg9/Z2R/ehmqaFAwp2/M5x7ZkZJh3GIYdIHDGzAeAhTI= 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 1756785502982179.5340449063567; Mon, 1 Sep 2025 20:58:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1utI1y-0005jS-IW; Mon, 01 Sep 2025 23:50:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI1s-0005Af-G3 for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:56 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1utI1p-0004hJ-Gu for qemu-devel@nongnu.org; Mon, 01 Sep 2025 23:49:56 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5822XJPU031628 for ; Tue, 2 Sep 2025 03:49:40 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 48wqvw855f-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 02 Sep 2025 03:49:40 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-329e3db861eso234213a91.0 for ; Mon, 01 Sep 2025 20:49:40 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-327daeeca1csm12543546a91.25.2025.09.01.20.49.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 20:49:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= UM5LYPMkA0OC0J1ZEBpgnBrYVBgf9BIWiBbgIW52EXo=; b=p5JiNk7UXPhAweud e1yjuMMF6TirExZfjkBZXuk8CGP65d+mFnRK4JeCHSV4E8yZ4zO0A49YYZ62G+3R PmLD2Z0tW7/CQdF+YTPXOQdRJ4yxkNnu1AESK57uKarcnGF6deNzQAZGkuZQtrSK 0hBNyB9OfeZFVmoxQh+nDmJ+VLhDT8Hnlgj2S6nZtJHdWaHfyvVwxAlfv4O37kgy OP7eSW78uYnkNcPRmhQOX0n50NCQeFL1iESRucO5lt11xkgIR6HD2j23piWktz1I cOpHEySOf/5CGdhcPdAGYsOGIEMv0pgCxsppddW0gZ3ZumwrxV0W/wt4/9w59hs4 4nqY5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756784979; x=1757389779; 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=UM5LYPMkA0OC0J1ZEBpgnBrYVBgf9BIWiBbgIW52EXo=; b=Seni+XlmFQ3rlfoyvq+mv6pI2uDdEo/V55VIG4E/9wRY39A2NoawcsXdD73rCj7Nmt UXQDiCfpbPEGkc6sh2CRddHV3SSkfSDK+/IOP02fwedAoWeWTjSuerTy5XNlpIBF/rDK RDiaz4NQCJvLJV5T1ZUhb2U1h5xWsItwkpTWwGZJBalZ3KUCW1oa3EW5rlrOBmJywinn nc0SqrmLT0vJuMrCBZa+riq3mSg7jbw4ECQpkmC9PstUdAaObBZXu8wzrcmT1DBGQ+im pot59+PvILUtXuDTjKKeoBFzcYODg9KdnfCR2LUWJLlqEiwdhKPzINbrg12kP0jfDBSa qiFg== X-Gm-Message-State: AOJu0Yzdh3hkiIEpstBxK6CZI8VIVq8B8Lf+p13y2mVh6k8erauRl5Iy BBvVLDLgpK0iAmvBUtGsXdQ5ZgaDMgdQBXexOTkTSDSG/rJpkiNkTUkDRgAnThOojHRHaJQrXPE Nz4jpmdDcwmzjLJqKj7jylqjqSgTSQGkcqM8wy9evy5yiLghh9XhySOz+BBgZuNj7Dxb0 X-Gm-Gg: ASbGncvo0CmiSOsy/l4Jq8yWuJZv+EEMEsgs57WV/dM7UmaL5SHcHAJXxywe/ddQ70C kRqtsfFnYQFpBtV5BIyQnOpx9KNCXF+EPqvhrTmNYphWXvuGeRkRRt8/kHt+/J4Cwqicc9xw5zc /pYmw11QvpFCVht8XTbzZ/G8SR4rW4tjNmoZhm4B3jKvj2KmdrGd2vkaEtMG7yqUY7rCtA9QAMD S3Q4Nx3zH0rP5Pmuj468NGGKvwJmWrBP0/qNC7lFnVWRiHOUx9k8EHjN3fmPK0m6Q5nwt8kT1f7 TR8OfdC8IoShHTB47BF7RyjeulQyTaZLJWUZINchavWdyzU33JIZ5bDZH4XNZ+44RQqo3WOjbLh 4T2J+qA/g1/fF X-Received: by 2002:a17:90b:1d09:b0:323:7e80:8817 with SMTP id 98e67ed59e1d1-328156e3582mr13995100a91.36.1756784979419; Mon, 01 Sep 2025 20:49:39 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHxPzkbr0SYW/6LdbKj2c4yVH3TDM5+btsri38teqH6Z96p416dJ4Na8MS/AjcdrmqNXPMjTQ== X-Received: by 2002:a17:90b:1d09:b0:323:7e80:8817 with SMTP id 98e67ed59e1d1-328156e3582mr13995076a91.36.1756784978959; Mon, 01 Sep 2025 20:49: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, Matheus Tavares Bernardino Subject: [PATCH v2 39/39] target/hexagon: Add pcycle setting functionality Date: Mon, 1 Sep 2025 20:48:47 -0700 Message-Id: <20250902034847.1948010-40-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250902034847.1948010-1-brian.cain@oss.qualcomm.com> References: <20250902034847.1948010-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: AW1haW4tMjUwOTAyMDAyNCBTYWx0ZWRfXx/upH3dwu6Q3 DkcG419YlmIgrsm0YY97KbVwG62p+9rG+HLOsEocaKMGa0+Wt2CeJXOA8B2dIyI8+dU6PeduUjG fFJg1EvTP22hfWeWj29Q77feC5YShu0uxnR/de2m8mNL+YW2JWcDCuomgpNviyJFTZATj7LZJGu sJ2+ZzfHERyCpGCArY7QKMLmOdVIO+9KMd/XAIYNeOv3e/plyyEhVhb+/InwV1jQqh3WOQxq7G/ nXBEMMSQ0azG2iue9uIYTl07m6VvBcalCHczxg/YTMftL0ICy1b4KsC2knQnm8xIOrciE82E0Qc UHfVYOgG52mx9tSdM9XX+vcTsnDvcx12usDEJFJvpn2BZsl1opOsSjlWf8kz7OzVNHdCn/Yc9bt zw9SNyJq X-Authority-Analysis: v=2.4 cv=WKh/XmsR c=1 sm=1 tr=0 ts=68b66954 cx=c_pps a=0uOsjrqzRL749jD1oC5vDA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=EUspDBNiAAAA:8 a=COk6AnOGAAAA:8 a=Kc8miizCJkRJjwKmxNEA:9 a=QEXdDO2ut3YA:10 a=mQ_c8vxmzFEMiUWkPHU9:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: QqpQaltNKNGPyrEBF-o7M08P7fNER6y4 X-Proofpoint-ORIG-GUID: QqpQaltNKNGPyrEBF-o7M08P7fNER6y4 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 bulkscore=0 phishscore=0 adultscore=0 spamscore=0 malwarescore=0 impostorscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2509020024 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: 1756785504834124100 Signed-off-by: Brian Cain Signed-off-by: Matheus Tavares Bernardino --- target/hexagon/cpu_helper.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/target/hexagon/cpu_helper.c b/target/hexagon/cpu_helper.c index 5d0ba23d02..447421cdd0 100644 --- a/target/hexagon/cpu_helper.c +++ b/target/hexagon/cpu_helper.c @@ -120,13 +120,18 @@ uint32_t hexagon_get_sys_pcycle_count_low(CPUHexagonS= tate *env) void hexagon_set_sys_pcycle_count_high(CPUHexagonState *env, uint32_t cycles_hi) { - g_assert_not_reached(); + uint64_t cur_cycles =3D hexagon_get_sys_pcycle_count(env); + uint64_t cycles =3D + ((uint64_t)cycles_hi << 32) | extract64(cur_cycles, 0, 32); + hexagon_set_sys_pcycle_count(env, cycles); } =20 void hexagon_set_sys_pcycle_count_low(CPUHexagonState *env, uint32_t cycles_lo) { - g_assert_not_reached(); + uint64_t cur_cycles =3D hexagon_get_sys_pcycle_count(env); + uint64_t cycles =3D extract64(cur_cycles, 32, 32) | cycles_lo; + hexagon_set_sys_pcycle_count(env, cycles); } =20 void hexagon_set_sys_pcycle_count(CPUHexagonState *env, uint64_t cycles) --=20 2.34.1