From nobody Sun Jul 26 11:50:59 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397047; cv=none; d=zohomail.com; s=zohoarc; b=njFIdg5pFDIu4qQgP81DxOrmGDzldc3W7V2DiOAcux1DNzaehGFggVoGkZo42NvZV4RoWRoXaYVWWOa0bFekIA2r6YPzItI2Eloi40dkKsymvaihSx5DxnKPOzejEYe1hLWc6kNJT16rX47eOy5VA1QalsZWPkRpU4H3AdRk8sM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397047; 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=GzfjMTa7/TAEb8Qt7kfPRKylaW6NS9iOefvoJnZ46FM=; b=A3l3sbbetZadfO/FpfnHcp4AhDVxzaifK6pQ8gDeAhsYyTe/tCzEcBIWgqvn8ALBy2VGx2OOh3DN2xDxT43l1vjts45WIsH9oq33y0mKC5Bpn8Nux4hswc0yS9IkJRSzjd1eqBAkCL9B5RhjfRYnVACfb0kvQehGrF5qbCvp0Hc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782397047147871.2920563602926; Thu, 25 Jun 2026 07:17:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wckss-0006b7-2r; Thu, 25 Jun 2026 10:16:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wcksp-0006aS-Q8 for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:16:47 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wckso-0008PJ-02 for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:16:47 -0400 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9k4hx2048176 for ; Thu, 25 Jun 2026 14:16:42 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0uyqjf1g-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:16:42 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30c5978b108so6528040eec.1 for ; Thu, 25 Jun 2026 07:16:42 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.16.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:16:39 -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=GzfjMTa7/TAEb8Qt7kfPRKylaW6NS9iOefvoJnZ46FM=; b=gN vQcpljn5edzCSE2WZzyw/UkA82TZ2bV5g8hW8vJP18mylqawv/RvukE0qV1j/qES B+WrQtJa7fhMGCI5+FKCf3vRUvEDxm1UvnfSm5/6nFoChncZ61iD2bP9eUv6Wl2t DMom4A8IHK/tNCSxixiqeS/0X4DpAyUHMCEXDToKU0Xm7stePBDR3Mi+z9zAe9C1 boPJBJaH17izFcTBptpdgp+pppppsqTpMytx5yB5dYt67+dElsMJT/347385Z5J6 u8AdCJDXN25OSSW69v3Li9/cn+8YKO93vSu7MlU21WCA/4jGoM33ytlpN2pw9wUu g1jQZmudV3m2zcQXtAVQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397001; x=1783001801; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=GzfjMTa7/TAEb8Qt7kfPRKylaW6NS9iOefvoJnZ46FM=; b=Idw+G18oQ1cpwHR3z1BdXUK8qxEKGxVzPe7dw1VMoRivLlyfCVfpYZnNQYQWfb8Mfz uOZWQ825Wcl1E7uoqdw990u6LCi1Z8Bx5cuaCqmsC1JeYz7iN0oApxl3bBPMkMMGPAw9 AgaUhrS+pUTLT7L4M0KpEYxGkZ8IuiwXePINVQSA6Kh6No7PuVN2HCPbldM0pkUCaY1/ zsnvDB8p/uPjmNBUahZoBIklV8EkzIIgYrKV5/SkuusgWAU46U1zYMtFM67Wi/uAh29K loNdZyrAtJf3UCMj9XEGN7VqrdeiVJSy7VP77Pk2GEY07I2vt9mKncmigC9bYA17DZBb KIPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397001; x=1783001801; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=GzfjMTa7/TAEb8Qt7kfPRKylaW6NS9iOefvoJnZ46FM=; b=bVj6/mm5K7KUXEtHptLZkzS1jwCyi8eBRs8O/ziHb1+kUdOLUSMAemJUlkEVANdHcf CQtCKvtCbL1nw9XMCg28UCeqf2AfDTu+S5gcRWqcpgJMgsyMPtrUs9z1ef9EKXIRbkup LPOZlUl2bMRp0ApVK6lm+qRaKXUx0pkGLsHm3sI1xigZ96p5ioPKWC+X823zGUYkN420 8Nmezx0kstpyFhFwYWJ0GaYg/Sw+scOY5EqNbK/FQy3PeMDCGzoV0wAgnfXVuf7dwbB3 eQ9usOG02C22wJGsUVzDKekfILkdRg+9fWEMS/qb5P6y0ncRqA9QfoO/n4+Xn0wnLpf2 Y3wg== X-Gm-Message-State: AOJu0Ywc6Jn0qphL65Vrnh/zpYw3npEFVRAzOaB5whkhzt5IX/4EL386 Kqa1AKA5j/71OcY0fe+aygh1+oOQVgs0BRy7DXe9DzmXRRfAMa1eHCImgpH9CvCu9A2MdTZg2qp xKnMk0RUkxzUewfK2aPgR9cTqkVKi/1L6LSFYT/rdF+PsejRLEMnsBGLdc76CQpfGNg== X-Gm-Gg: AfdE7cmf+vWLJ/4Z8TuUscvVql1ZfvQiieXpW090mgwAL1/UADOlCfN4QHDzYP9eHOX AVwG2XPulIX6J/fKzQPDG6p5gLQ9IFaG/+ccZieIYD+EafhmhdCFtqTvDNQK3vp/MKARR5IRfiJ SmZjXxfmkJYasQGXJ72Fd0TCjbqNQKj0Ism8D/QhiXIJ3mZ0TU5aXQWLRytizP8sD2L8WFBoqRN kH8YGfC3YOkiAVqB7fletRH6/v8fz1eG9FiE2X2W1MQQObIbeAaBW/31uJjZa6wjuyL67k6k6vI /0sgpv0jXNy8YPKOR9/R1hhPnW3/pxSd4vzi6sDF1RhH3jKMMydd50hvgMvTYXuk3xOYbs0Xd2E IqgVKtVzBesYniqjD4o+F8j9hVZHk2pCKI0fFdpwVJf01Q5a3RHtElzUEGX4= X-Received: by 2002:a05:7300:5351:b0:2df:7fe3:96a with SMTP id 5a478bee46e88-30c848aca17mr3826131eec.0.1782397001073; Thu, 25 Jun 2026 07:16:41 -0700 (PDT) X-Received: by 2002:a05:7300:5351:b0:2df:7fe3:96a with SMTP id 5a478bee46e88-30c848aca17mr3826074eec.0.1782397000423; Thu, 25 Jun 2026 07:16:40 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Pierrick Bouvier , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Kohei Tokunaga , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [PULL v3 01/76] tests/docker: add flex and bison to emsdk-wasm64-cross Date: Thu, 25 Jun 2026 07:15:18 -0700 Message-Id: <20260625141633.449487-2-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: UzpNGOnG6NBFQM9XcmSXqgt-SsMTLdIf X-Proofpoint-ORIG-GUID: UzpNGOnG6NBFQM9XcmSXqgt-SsMTLdIf X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX5hXrkHfGJZGL iYkLmoIoYP86mUTkvXGvEULhXh8sXo8ilCKpiVoETAmtH5UR6PPHPFzAim4+Hs8DmOekU27B2UJ jMjD5gQUBdDymql34JdgCkyS042nolA= X-Authority-Analysis: v=2.4 cv=EsLiaycA c=1 sm=1 tr=0 ts=6a3d384a cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=VwQbUJbxAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=20KFwNOVAAAA:8 a=dTW7Cx3YwPv8u8hf8ikA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX8B30nzMY64vn JzrjUajC/+jm3lBkrCB2dv3ov1hLYqBnB7+ZQdf+e7hNn0Kf05+Skqqln45pPsoP5bt1Sl5ncUg TOEgDopEQhov6v+rOU3LFfZs6xpI0FrvlCH7Yq9rdvDNeSYcGex+8JwENHaxZVASlpguThFz80P AzWrDvqrrzOZRW3y6vaZ3bvvsJ9H0JETfk1GBemBmAfNLV9T7XPQTV0cYzhEdGlXAtDmIdURyBq BWKJA8KWgVD+YZ3VnuvklHtLG79FhXsNoCPeYsvtB187SgEZe0Pn+mln49Ow8lWXgfEfxfjystt 8mFZ8jGJP/qukJ5SWaOIKpqHJwcURfm0EuArYXUJbQQlzDRs1wRTbm6StMF42FVY8hmTbRRpnDQ YoyfEJeRCnVlMAczbxeKnojMgXvX2GDSslH2UbJ/7+OtPBrvxgJwYrSRSlAiFGc5P+1L+gvPn2o VhGX64SHz5TMbZHiLvQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 bulkscore=0 clxscore=1015 priorityscore=1501 impostorscore=0 adultscore=0 spamscore=0 malwarescore=0 lowpriorityscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397049905158500 Content-Type: text/plain; charset="utf-8" The hexagon idef-parser requires flex and bison as host build tools. Add them to the emsdk-wasm64-cross container image so that wasm64 builds including hexagon-softmmu can find them. Link: https://lore.kernel.org/qemu-devel/CAJSP0QVk6wsOnPAspC4YfXRp90saKibQf= D4Mk-44-RQo0k=3Dz3w@mail.gmail.com/ Reviewed-by: Pierrick Bouvier Reviewed-by: Stefan Hajnoczi Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Kohei Tokunaga Signed-off-by: Brian Cain --- tests/docker/dockerfiles/emsdk-wasm64-cross.docker | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/docker/dockerfiles/emsdk-wasm64-cross.docker b/tests/doc= ker/dockerfiles/emsdk-wasm64-cross.docker index 8a924816f92..5debbc77d08 100644 --- a/tests/docker/dockerfiles/emsdk-wasm64-cross.docker +++ b/tests/docker/dockerfiles/emsdk-wasm64-cross.docker @@ -19,7 +19,9 @@ ENV CXXFLAGS=3D"$CFLAGS" ENV LDFLAGS=3D"-sWASM_BIGINT -sASYNCIFY=3D1 -L$TARGET/lib" RUN apt-get update && apt-get install -y \ autoconf \ + bison \ build-essential \ + flex \ libglib2.0-dev \ libtool \ pkgconf \ --=20 2.34.1 From nobody Sun Jul 26 11:50:59 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397084; cv=none; d=zohomail.com; s=zohoarc; b=BBirEWxJStZhkaOcWEfmS5OmDHaJHlm+VsLivkob0BEFjuc7/irv6Ik2FoE3n+eW10wi4KyC3BrsCetRZOrRQc1+0BmsI1hNn07ulAtH8kp0GUMpy3FDRbhdBfzPEB6JTJjVmbgo7Z7icpApPqs9YX0Y5yJjvvukQC5lX4nr/BE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397084; 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=GLP31WMp9ya2aQSzhpJX7UU63XGBhoUjedxw7x1beJQ=; b=N4WYXqEmfccyDAfNfoLdNmlot1iLU3ptpdJrGSyDJw+yrcmab/ODe9v2tEpfQwNzbSdOHGHsjnhZkz92lWHiGp06K+zX7N4GW8uxSn1FZQgswWvsIAN5H9zNrvfMIkjIaK2xTvLxZYrsXhjTr1iJ2l0JYb615XjwfFu93Fm3gsw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782397084153135.80481075749242; Thu, 25 Jun 2026 07:18:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wckst-0006ce-Tq; Thu, 25 Jun 2026 10:16:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wcksr-0006bI-49 for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:16: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 1wckso-0008PQ-JM for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:16:48 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9ju6B1753859 for ; Thu, 25 Jun 2026 14:16:44 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0w0q26s8-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:16:44 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30c42d96713so1711412eec.1 for ; Thu, 25 Jun 2026 07:16:44 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.16.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:16:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=GLP31WMp9ya2aQSzhpJX7UU63XGBhoUjedxw7x1beJQ=; b=pv hyPhXuDjBZD+Z4MW8em3r6zmdK+wVz6GtOtaA21G0p+mjxxIuD/LO2ydw7di8rip hvmzpHrCpgb9BCsi8Q2dZkMnhi2dGqbifBLlPxt8mWE+3DOOYgpWPx0FXaIHe7/H ZP+PJOCS2S3csez7w78nQoKcam5Lk/8eaELlmmVz68Zs8FxO3jUlZ03LgxNFwTfe 5tbkcp76aFML/7MC6XRQaNpgPPOSne4lTKVwbaMdzuBoFHDnIXKixI2BmZ81aZvi b5kzy4fUbfCIoGSdMaM89a50DiE2odEvwUm4vc9D6YQ8We5nhNBmu4N0Hpp4A/At 5LdIqMJrq99Iwukes+Cg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397003; x=1783001803; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=GLP31WMp9ya2aQSzhpJX7UU63XGBhoUjedxw7x1beJQ=; b=ItZOTnF6ng3qyjqNCg/YY45d4t9I2jFtMcgYUXbTmHSKyxUcNKA1Sxxuc2zQEx2o3n FUM1zKarl+3Pj9cCDJXy1IV/3ogWPwnzbJMYy76jTAB7m34fuxmTb9dhGcFdsFaWLsI5 DQtKRIPorgXAG1CRgmC4X9fec3acUVUmAhi4J1WR8auWwcHNnS0iekykobM8jpsRjKYe zh4Il4SD8X6NEVWAoz0arMFuNROtiYwoq/dsVFvN1Og8SVBnAs/80XeqWHZcI04zNKCG uo/PLAOMyJMjC3KVBpNJllKOgd5Lj3pXKZaDZ4HyG0a3vDIbCayh/6ILK179/r0AZgUs 1e6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397003; x=1783001803; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=GLP31WMp9ya2aQSzhpJX7UU63XGBhoUjedxw7x1beJQ=; b=eaWuPYtLgeMpfpn4nLO+X/iL2MBuv9x/DEfk7ei1IJjb8XFqEvpc+8Od+T1JREmqyN 1Bt+ooXteuIbHh6XUrZIB5uVP7e5+TDL1a8644kyF8geL5boJQ0So44XLLfSm50QrUBG XfqGNhkT8vesvbElLb4Q9IpDng+nUTfls1CJkEai4dcelTCZ4Iyc8N6lrOo4N2JazWV/ TFXsqQl1f1uPHgDV0WU7ekwNMyO9EWji8rhe0IgnCL1ycfCoz6YaYOsjziFIlakgrM0v 76+o8WWeI1GmEBW4pZS7+MlPudWSbUJRnIrY7KbEOSUvbygIv7YAhjNIBMOw4lukZF59 284g== X-Gm-Message-State: AOJu0YzPKTKgEKOXjVUodIpdUxyKSdEXp1GVUq5zTIvyfyW7sXuFLckc ZgYuDFjjA95HN2UuPb1jMhUn6F6B2GF9b8d/iNFpxvYstwHGJ+XfGDgrGYe9sgqskfj3EhsS0kP GYLEzuLQ1WAcEUAZry/Itsw8zM/FXa18S/sex+JQWFr/dY6E/0CF35fidehcPSpiN1w== X-Gm-Gg: AfdE7cmplYAmjsnIExFCARfzHHfhond7vN8BuFM7YJg8UjEpoPe28DyPK3K6K1Z4G46 z/hGt6+zsNKlg5j0MRLkNONdP7k8OpPDB+0xOr2uGhhJqXK+bBleRIdFNsgayjiKRcx1Isvhei1 Z3a0+oo2Arrm6G1rYDbksSS5T3W1wWX6+lXOICZBqASzmEK6AlhQhl3tHH9Z0SIChhUlPyRYIHG w/wqgesdCAxsXFQfyb21sWDmqPtSefltf/hJMXo5mb7ViSY1EpertYeXx0arhel+SViVf0SnSP/ 4fE67RfrZv5TWnfPALB8G2Gqz9LxVk2yrBF4bxQKvKS9F6YERQGwLW14VyOVHXByOhcheAtnr4b fYAnClPgvaY8MsUimWa7bOMZCc5LTEiY/kdhJ6rzH5BwczxIQm5IdDsWKrHI= X-Received: by 2002:a05:7301:6a05:b0:30c:5254:788b with SMTP id 5a478bee46e88-30c84db2886mr3037959eec.10.1782397003125; Thu, 25 Jun 2026 07:16:43 -0700 (PDT) X-Received: by 2002:a05:7301:6a05:b0:30c:5254:788b with SMTP id 5a478bee46e88-30c84db2886mr3037887eec.10.1782397002217; Thu, 25 Jun 2026 07:16:42 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pierrick Bouvier Subject: [PULL v3 02/76] target/hexagon: use cmd_array() instead of get_id() Date: Thu, 25 Jun 2026 07:15:19 -0700 Message-Id: <20260625141633.449487-3-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: XvJQqN-igBfx_t3ho2oIg9eEDAWEFQKs X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX3k0lQ+m5wRM2 QdtWcP9KJllMNIMiGkwpizlcUjAsIaYB06YxQBLZgbdEteaAmUnRN0dZhEL0EfP4j21K7v1/WV6 h2GQ/ljEjCY2lLX4d5hZEAnbg/rKZgs= X-Proofpoint-GUID: XvJQqN-igBfx_t3ho2oIg9eEDAWEFQKs X-Authority-Analysis: v=2.4 cv=R6Ez39RX c=1 sm=1 tr=0 ts=6a3d384c cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=VwQbUJbxAAAA:8 a=pGLkceISAAAA:8 a=20KFwNOVAAAA:8 a=EUspDBNiAAAA:8 a=SrZkeIdwbWuKvdoqoQQA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX9+plnJhqRf0+ T5cRp3ITt2PrbA0z606Yh+Rx4wNUhivqQaCfBiNCFDJx6AbJXHFKE7uwaODudLT2ZunyqW3M/n7 VGzWeG25mJJejSYz37YqVQTZI32Sjwea2oWK5v06AHXv5us3F2mCXjGlSCI1XWi6AXxj8NIiNvp AQE9Qbzh1N2QtRvydu29tL63Sv8+EU8G/6yx5DX2cnsqYlq8WvUJalvyZml11uyRkUogUOrZZ08 B6s5QgI9yTr+U9V/ZYCTEFK2gkhTsdwh+nkwMKRWGk0DCPyvYhT6gZLEnChV77Mo3LjXfHEjdZR u6Sx9/83jdOkcmQENmpQKbP9g0fMRHnwt4yNtg1+EMQ2IdzAjJnmNob4w8OnqNrqciJCPgkXEBK H8PBFGYv50QIdtGOlWwhkS7GPVN2RGRBfeHzDS8V1fG1QSfj9B4Q1MGxkPGdu1GRadMkPzPaMgH MFBxIJJpe+fwX0du+EQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 clxscore=1015 malwarescore=0 priorityscore=1501 adultscore=0 suspectscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397085832158500 Content-Type: text/plain; charset="utf-8" get_id() returns the compiler's short name not a program. Passing it directly as the command for the idef-parser preprocessing custom_target happened to work for native gcc/clang builds but breaks under cross compilers such as emcc or any ccache-wrapped compiler. Link: https://lore.kernel.org/qemu-devel/CAJSP0QWzQEgoYMCgZX+9jCvrV6O3RqnA+= df1DpT2R6MZvVXiNg@mail.gmail.com/ Reviewed-by: Stefan Hajnoczi Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- target/hexagon/meson.build | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/hexagon/meson.build b/target/hexagon/meson.build index d169cf71b2f..ff22b4e4706 100644 --- a/target/hexagon/meson.build +++ b/target/hexagon/meson.build @@ -270,13 +270,13 @@ if idef_parser_enabled and 'hexagon-linux-user' in ta= rget_dirs command: [python, files('gen_idef_parser_funcs.py'), semantics_gen= erated, '@OUTPUT@'], ) =20 - compiler =3D meson.get_compiler('c').get_id() + compiler =3D meson.get_compiler('c').cmd_array() preprocessed_idef_parser_input_generated =3D custom_target( 'idef_parser_input.preprocessed.h.inc', output: 'idef_parser_input.preprocessed.h.inc', input: idef_parser_input_generated, depend_files: [idef_parser_dir / 'macros.h.inc'], - command: [compiler, '-x', 'c', '-E', '-I', idef_parser_dir, '-o', = '@OUTPUT@', '@INPUT@'], + command: compiler + ['-x', 'c', '-E', '-I', idef_parser_dir, '-o',= '@OUTPUT@', '@INPUT@'], ) =20 flex =3D generator( --=20 2.34.1 From nobody Sun Jul 26 11:50:59 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397203; cv=none; d=zohomail.com; s=zohoarc; b=NSb3R8zEacO4Vl90HSivLXLqWc6/K4+3mM3Nltnt++pN1DJWMA75iP8bDcjCxDswMo5rzn8J9nKb/hJ3gUA0HXlBweglZXf0AiWRRxDlQBNd9y6a1OlXiEyJzRlQnC/kAitjO8a4XsgoT1D32/hWpS9jSp8zVg9HXqgMsdZUnqk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397203; 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=OES4OwpY68ze2Hmn3HRKPHOte4o1zK6n49UyqbIUhyE=; b=Ov9H4DId3oXNzt2t4s3UNKKVYPan46luuLVordKFw9dT00Xa0M/UTUfwfqoVRRO+5lE0kOfmlpi0Kt+nBMDHDR0yjoN0fvoe/Fipy5flic8iHO2YP5h/hJqr9TZYQWfst1KDIjgVh3gYY6blXQOoYDNS6+jUTwUd/d5eDO8czeg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17823972038778.269305008643187; Thu, 25 Jun 2026 07:20:03 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wcksu-0006cf-9u; Thu, 25 Jun 2026 10:16:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wcksq-0006bH-VO for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:16: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 1wcksp-0008Pf-B5 for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:16:48 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9jxSL2010790 for ; Thu, 25 Jun 2026 14:16:46 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0uhmjju6-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:16:46 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30c17f62afdso924613eec.0 for ; Thu, 25 Jun 2026 07:16:46 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.16.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:16:42 -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=OES4OwpY68ze2Hmn3HRKPHOte4o1zK6n49UyqbIUhyE=; b=bX E5LJ7fGj+C1es7UiBxDlJBFjQSeh4DWPV+sMOfMELL0c3dzGiQsNRCHbz26tIGkV qgjl3kH02JekkDCKpoiIAYT0DGpkvJLi1AL4s24LvxXmUi3m9JbyR2Sb71OmXdp0 4qsb2J4Vp5ur9mCP8N4WSAC++E16L5C51Xc9smIM7CQp/IUav3sxN+bXbsIjLWdx o8KnEa4pj1xXQLapKq+coGFJfPHtLxu3ogxyiRe4XwEEUOhXLtigRArBQrLDe1xI X/zMw9bhG0jqLC0CR0U2gIp43EYw3PQzNGAH+DgnGR724inkMT5Eke8zqknc3Lws +INUj0TyjWWFBgh0PjNw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397005; x=1783001805; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=OES4OwpY68ze2Hmn3HRKPHOte4o1zK6n49UyqbIUhyE=; b=SgAxJ8Q8KW1dBvvVbbBHIKGthdv5MXRs6vsNMoHt/EePYVe9lZSLlvEg5VagOfRrXc zgajAQyr+VXkpUCBdOT9TPmzo84TJfUHPdhPKSMR1Xy7DuUXAzkyuCgYTadNzYn1ewrq IkeMIEpB0GOynqKe4skgfFCd9kMHmTOPtBIUxMu2YnUklKPs3mRSqF1apqgurkYPNkP6 Xh9xjmqbUr5PXHL5e3p8+MC79Ku1qvBVW71tHEdWguzfc04rWIncxUmq+XyUalUjB2Mf yvgWHMF2MC2FWnWBGSyVIVqu599vp1Hr6567vDd0TYOcCp/0C0aTkpRpOiRyaEaHBm8z a/2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397005; x=1783001805; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=OES4OwpY68ze2Hmn3HRKPHOte4o1zK6n49UyqbIUhyE=; b=GMUwrMIaO1ObCAeCWPW8/cDTx7rW9+L/Cd2cSM1ayWy3rF79Z3oMnSpE23oOXzNxD0 9LbmgzeNjrM396/+bHt/kcslDSHr4vX0bbSp9taIPyitPoR9F2ZKZ0XJkD6Z5e7fvcP5 wqeY+0TtMZBIjBqyva7K8Beyb7yI5cIyWhHc/d2exWrMrpGwf1pY1z82EVSnPw8GMmmE /mMIqSeK0z5EN+g6EFvOnoPUn+ApTEGjMOpApb6r2H++I5HJ8dcTWFE7H1AvdnBzZDaz S7nDvndJEiKaeMlCBvlEEOaM2Il/VTSwsJCDK6D+n5C4efDECNH/BqDDKqJ7CIxWiTLi HyCw== X-Gm-Message-State: AOJu0YyILXvwId0Zq6LhsSxkxBuYN14O8C54sVbGFpNQa1JNs5j4W59r 521cIEhCfEMcd6HSRQrE4c5Ak8VMUoJxBQuL+ZrBsZ3tnTKmX6eeo+HQfv+qzrgS/ibLXFQomAn A8rdrb9kHJQ0CSjoMmUT+dJm6NOZj+nvOiekvtzSfaERMKbRJ+f9hyMYRVeV0O5j5hQ== X-Gm-Gg: AfdE7cmQrUmptBEiBQTvP7BcLyhv4HLzLp1GaNGa1ttdCQelQPJZjOabK6xv8ysX2eD YCNGqPCXnxMwqBvjU56PotKp08KOdKeGnRk0BBWHDzcpSuJVjLHV14iBt4E8Wz6Jx9G9LScU/BE cclHsFQ4f2kRBQsLTbZ9CmO6hP9BMJ4Zz5I4tQTZ+t8dxsftgp3aVMB1GgJSe1sC0b4nW3mnNRQ JbHJ33ihx/4K9+aCgfeROlGeENxRHlK/U4tqsghLhtKj/I32RwTlA4hVZwuF8Nf1uX9UnXhqbVv V0ztxG4pylBDRgULUXB26x5e0M/MGvv3390vNZEXiYj31GiJL5MCIio5XkO/nqYm4PO7e3onTVr FSq2TLuRkdnSC+DgAvXa68Mz4ydLcIcmex4OdwDXWsW05G8uvIKmth/cniUI= X-Received: by 2002:a05:693c:62c4:b0:30c:650c:2161 with SMTP id 5a478bee46e88-30c650c359bmr5369547eec.13.1782397005246; Thu, 25 Jun 2026 07:16:45 -0700 (PDT) X-Received: by 2002:a05:693c:62c4:b0:30c:650c:2161 with SMTP id 5a478bee46e88-30c650c359bmr5369523eec.13.1782397004534; Thu, 25 Jun 2026 07:16:44 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Pierrick Bouvier , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Alessandro Di Federico , Anton Johansson Subject: [PULL v3 03/76] target/hexagon/idef-parser: open input file in binary mode Date: Thu, 25 Jun 2026 07:15:20 -0700 Message-Id: <20260625141633.449487-4-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=cqerVV4i c=1 sm=1 tr=0 ts=6a3d384e cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=XwlTJ2-QRR3pk5tWCfYA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfXxztKhuazCnyP Hrm46ULOweZTkkokNZz5yu6dS8sg/1HcuozPp6Yuh8USZXgCJhfv9WNKltiDFqNLdVcFpTcC73p VJl7uSQYuSiCl2G5meIBmUEyhhusI8fboz20yS2B9JxUSQFMq4Cw8hWOH5bME8QIvojj5k1MCEi ZNQYJ3/7ddxuXIq7TiR8U8MWFBBbMKBq1ZTSJOCDq6/iScWq8dHqhoj1x7X45OQj6Kw5x+I9QaQ bUlIXYHYtzslxE2F6e5t4/NEAK8lzZHCf3jndrzSdfWOhEoeDyBXZzdnZ4sk0lxsLn3oP7t+fTj fCnZ6lPGOCEoDkUrxo7I3/WGHRwIo148IIaBRWQBFu1XrA5UXc4MwqYl8S1h7aNuGGjmZVQdSNU olHIbJGfggjtezfv0+K9s+NKGrZFsjuL8Q6x/Uk9A2bOYzpOY9eLxaX3uMNlz58zffIhHtBwY31 W18uyCLHYPy6Unev7Tg== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX+U4rfJb6GyR8 BIYVgi0++gQDdICq1siqhu7H6ixSdeKCKnG3VNMY9T7f1+jwrTaGnJLCXndMW9Bj4w0AJayddtD NjGqmQciQnIRzkuWXX2eN+O4Alv8NOk= X-Proofpoint-GUID: RWWg1_Ckc0D3_cZ9RZR7Lfh0Mh_tYliM X-Proofpoint-ORIG-GUID: RWWg1_Ckc0D3_cZ9RZR7Lfh0Mh_tYliM X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 clxscore=1015 bulkscore=0 phishscore=0 priorityscore=1501 malwarescore=0 suspectscore=0 impostorscore=0 spamscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397204704158500 Content-Type: text/plain; charset="utf-8" On Windows, opening a file in text mode causes fread() to return fewer bytes than ftell() reported, because CRLF sequences are translated to LF on read. This causes idef-parser to report an error and abort. Open the input file in binary mode ("rb") so that ftell() and fread() agree on the file size across all platforms. Reviewed-by: Pierrick Bouvier Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Brian Cain --- target/hexagon/idef-parser/idef-parser.y | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/hexagon/idef-parser/idef-parser.y b/target/hexagon/idef= -parser/idef-parser.y index c6f17c6afa7..caba0d2644d 100644 --- a/target/hexagon/idef-parser/idef-parser.y +++ b/target/hexagon/idef-parser/idef-parser.y @@ -869,7 +869,7 @@ int main(int argc, char **argv) context.header_str =3D g_string_new(NULL); context.ternary =3D g_array_new(FALSE, TRUE, sizeof(Ternary)); /* Read input file */ - FILE *input_file =3D fopen(argv[ARG_INDEX_IDEFS], "r"); + FILE *input_file =3D fopen(argv[ARG_INDEX_IDEFS], "rb"); fseek(input_file, 0L, SEEK_END); long input_size =3D ftell(input_file); context.input_buffer =3D (char *) calloc(input_size + 1, sizeof(char)); --=20 2.34.1 From nobody Sun Jul 26 11:50:59 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397047; cv=none; d=zohomail.com; s=zohoarc; b=c1FWJJjfFhsZfsSehtK0uXTiQMVe1U1ce+loReb4RIFJxTGTA9hGvfq/wvBOP+kM/ZWLxgoteiG/7i9NAjg/vS6/CMVwgUrkq6OtMGvGpMgiEEdbYXqj86mTuf5WLk4mIIWMoxz7jnvV6fmZZxSFZGKD/GXTT5DtSICDPRhCtuI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397047; 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=k4H2A93g1uFAwqMIKdSpCr5z3k+jeTW1Fky82RW/xuE=; b=UqvUeA+WZ78K+HX0T3H8jALJyymDQG+nljvLzN67vtFgDvHko9tvF0F964YtiH6TZ56dhJ268eG1RZ6mR1o1ZbqXq9NM7wow49qtJg4TA7u1PzJvXL5VlyqB6YqBllgy+1oLgm58AEpqxip4JpQqxnZnFgQm6rmxDbDP+aCZsng= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782397047667892.1474203852127; Thu, 25 Jun 2026 07:17:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wcksy-0006eJ-Mu; Thu, 25 Jun 2026 10:16:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wcksw-0006dd-42 for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:16:54 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wckst-0008QI-QV for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:16:53 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9kE1P1948562 for ; Thu, 25 Jun 2026 14:16:50 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0ya8spj1-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:16:50 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30c84dc3574so996753eec.0 for ; Thu, 25 Jun 2026 07:16:50 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.16.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:16:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= k4H2A93g1uFAwqMIKdSpCr5z3k+jeTW1Fky82RW/xuE=; b=ho1kSTH3DDfsEkUp U5krGQvb9cmRVFkC+O0+h9XTtsdz5K4VdUOBPXoRwGqJ18m3jh9oE4ZYKHzOocnu XOCXnf3l+0tYDYZmrCLCc5daYIx20ZRkGDXuMvFZIyj/L3uF5zoAD226nU3YN6sQ 4wUMICRAgqdI5PXiNKH5bslH2KQaKDIOjYRWwmytsIE4d9z9iJcH1K2CX5eWjXj7 UG/n8VKCDesgsa20Di273rhF7D4vtKzjurU0LeWVTtxRX9TafAJ52Ymb775BJV73 ypeuJd7jAzyGpUDtWCCgoi1GugDzZkJmKNwGp/qLyRHH/9twV/WmqD7yot3z1d7A nUzEkQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397009; x=1783001809; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=k4H2A93g1uFAwqMIKdSpCr5z3k+jeTW1Fky82RW/xuE=; b=FtylIKxdMF/VRHqEtcEFgSAj8Td2HY7x0L3WTLNoIZgQBxn+C6JgWWf+p9ywFaZaCv ewE0o5ZutQ0knGg9gPFGMt4XmaYy8Q7Io8PmKK6NzQEPAIs5iW8KerFoNQF/XNWKK4bA 1nqBYPb6DLHd/IKdMHkFKd1ujIb2VdQUGx4su8Lgujl+9tc4XhXXYug0YwuTN9IczZco swlQXgvTOSP/G+M3b/UMHchWzhqrdTEaGs7Jvhvchc5cm1TJ3QWBeJDJt4fNEuVkIoqF tcEZdUfhekXuEPF5z4pycNW8MSoCByiD4srRpc7217nzLte7H9/nFTI+X3zb2q2pERDI Tt/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397009; x=1783001809; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=k4H2A93g1uFAwqMIKdSpCr5z3k+jeTW1Fky82RW/xuE=; b=BIf81N3E0UMqlTRY92WHmiiBqVPxtfaFDa8G06wF91hdjV4WSsUxrrXjZbs5kuORB4 /CyUmxx42+KN43QOawCCdlVFP716vqoETPbAGkvkKXIP5lHAjZ1d6siAkwmRlKx6tJRt rY/w0VeNIxSapV5m459YnG+WCzizYgKSp2ChPvheeVD923FFytPL3FzMAC38LQIkhK7R cgz0NCALTx7u2koFSH/CyFtfFvKMriD5CWKfX9EuMubZ+K96SI7rQ3Qoa8c4GxHsMev4 6NCRovav2ynN6fOl4Vx3Unj9M25axqCAuwVsGl5A5wUE1ZNjzgd/GWeDUn8wx0Jr30W9 RWUw== X-Gm-Message-State: AOJu0YwM7EpVZ31tWYrY/Q1Vy39Y4HCxwe5SiD8Fc+V9VHy9v8umcbs4 xoNwDzmUffZKqDTc8aKfRvDZG7Na4+evvJy8l6yoIaiFbrlU7r7c88UnSZcd0AAGGwtm0XhrOUS jpATUUyC9JFs1nMdTgo9rIUUwt4GRPltUhR8wXDuyYWNIdfToZsD34WAGTrlbcn3j+g== X-Gm-Gg: AfdE7cnpG/GNwLxGt93oIK+XPsk3ALJXIhret19ni8Ba/l5B2FiNZQLejr07EQpKPlm dDtORXV35tAjAA/bT7km0VMRBS0lII6aYXW+LjiKnNh2ArkGMuc7uJWB8Iw/wkdITmFDID+NXR+ OCGNw6clu0rKLY+rDdUK+oIzX3yU7EAXNqgNqFOGHWbs64tZuVZsnuiY5MOMu5j0zlCzpL4kVgL n73YJ4athFoFkOjaLZVgaGN3R+bYno978xNmNO2KcukTeDMLnRSkJNekKlgE9RAfOMusZoc6tK8 Mkm6X104cJsNuFGH/yc9ESLAgJdsa/Vdb2mu+ZwJrjv3WBMWSToGbvMFNEos4qbE986j4AfMpDo gRxjjSR/D5DTf/Wm7av6wXz7e9K04ZZlgASw4h09nqDzOa23SI0rsHU7meBM= X-Received: by 2002:a05:7300:188b:b0:30c:1924:1509 with SMTP id 5a478bee46e88-30c84e0c318mr3702618eec.14.1782397008712; Thu, 25 Jun 2026 07:16:48 -0700 (PDT) X-Received: by 2002:a05:7300:188b:b0:30c:1924:1509 with SMTP id 5a478bee46e88-30c84e0c318mr3702530eec.14.1782397007820; Thu, 25 Jun 2026 07:16:47 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 04/76] docs: Add hexagon sysemu docs Date: Thu, 25 Jun 2026 07:15:21 -0700 Message-Id: <20260625141633.449487-5-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX9kvYWaOri86a D57D0jvhuMgdNigPeUdpn1TW0GVbppoMk/tW8/YFghZtt2+Nqt0SY3OkJVoTKne8nucHMOwffW4 spFMCdlrH7vnjZUtrCaX5BznD9/bWOU= X-Proofpoint-GUID: DcHxi3S6kjt8hgFqhFWiwVXQQLyy4WhQ X-Proofpoint-ORIG-GUID: DcHxi3S6kjt8hgFqhFWiwVXQQLyy4WhQ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfXzub2aP2LrRdd DRBUnIXIuX4TGJMFzq3Ep4j7DuUS/hPmSLz1+tQlO6HhHzsydfBifa/NssuXJQxU3vPiaxK419h 5li3vQxcYBDvSA/yvqIFPFugPx5BX8tWn14fsORiVtM6BNILvTjXWpoiQjJqFKZbFNC0sY/0ZxI k//mqib8NOpvvQ0TTfVv4KBUzNgHwOE59ImIAVhU7j1lzFi+n7zdT5/FrFWFmHcM3Cc//nL+M+i Vo4qQ4OYjv8yw50Qg8QmX2fNeVBkVkI9EkBNFHbRVXU9sCzDwiO87gCKQuL8zlQoZ6ZjGAljU9D 33P0ELWxv/KLelxAGGr28BEBT+0PuQw1zBxpDVKgXpqCdvNHPT/xwgyoXWgViL7Xnc4kNODzs6/ DmnfUaOugpmvg3r+BABTOFCEx9dvsqouQ0OplhSOCW5wIv1Zvd9q7EBosw3xVCnggl91YS9wBFT vBI0vS8Sxg2O/pcCGXQ== X-Authority-Analysis: v=2.4 cv=Z+Xc2nRA c=1 sm=1 tr=0 ts=6a3d3852 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=NEAV23lmAAAA:8 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=fXLLft-zuLPsu7fQao0A:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 bulkscore=0 suspectscore=0 phishscore=0 spamscore=0 adultscore=0 lowpriorityscore=0 priorityscore=1501 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397049995158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- MAINTAINERS | 3 + docs/devel/hexagon-sys.rst | 112 +++++++++++++++++++++++++++++++++ docs/devel/index-internals.rst | 1 + docs/system/hexagon/cdsp.rst | 12 ++++ docs/system/target-hexagon.rst | 101 +++++++++++++++++++++++++++++ docs/system/targets.rst | 1 + 6 files changed, 230 insertions(+) create mode 100644 docs/devel/hexagon-sys.rst create mode 100644 docs/system/hexagon/cdsp.rst create mode 100644 docs/system/target-hexagon.rst diff --git a/MAINTAINERS b/MAINTAINERS index 93df53d87f6..9d195e56ce9 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -258,6 +258,9 @@ F: disas/hexagon.c F: configs/targets/hexagon-linux-user.mak F: tests/docker/dockerfiles/debian-hexagon-cross.docker F: gdbstub/gdb-xml/hexagon*.xml +F: docs/system/target-hexagon.rst +F: docs/system/hexagon/ +F: docs/devel/hexagon-sys.rst T: git https://github.com/qualcomm/qemu.git hex-next =20 Hexagon idef-parser diff --git a/docs/devel/hexagon-sys.rst b/docs/devel/hexagon-sys.rst new file mode 100644 index 00000000000..92ebc32dce8 --- /dev/null +++ b/docs/devel/hexagon-sys.rst @@ -0,0 +1,112 @@ +.. SPDX-License-Identifier: GPL-2.0-or-later + +.. _Hexagon-System-arch: + +Hexagon System Architecture +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D + +The hexagon architecture has some unique elements which are described here. + +Interrupts +---------- +When interrupts arrive at a Hexagon DSP core, they are priority-steered to +be handled by an eligible hardware thread with the lowest priority. + +Memory +------ +Each hardware thread has an ``SSR.ASID`` field that contains its Address +Space Identifier. This value is catenated with a 32-bit virtual address - +the MMU can then resolve this extended virtual address to a physical addre= ss. + +TLBs +---- +The format of a TLB entry is shown below. + +.. note:: + The Small Core DSPs have a different TLB format which is not yet + supported. + +.. admonition:: Diagram + + .. code:: text + + 6 5 4 3 + 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |v|g|x|A|A| | | + |a|l|P|1|0| ASID | Virtual Page | + |l|b| | | | | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + 3 2 1 0 + 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | | | | | | | + |x|w|r|u|Cacheab| Physical Page |S| + | | | | | | | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + +* ASID: the address-space identifier +* A1, A0: the behavior of these cache line attributes are not modeled by Q= EMU. +* xP: the extra-physical bit is the most significant physical address bit. +* S: the S bit and the LSBs of the physical page indicate the page size +* val: this is the 'valid' bit, when set it indicates that page matching + should consider this entry. + +.. list-table:: Page sizes + :widths: 25 25 50 + :header-rows: 1 + + * - S-bit + - Phys page LSBs + - Page size + * - 1 + - N/A + - 4kb + * - 0 + - 0b1 + - 16kb + * - 0 + - 0b10 + - 64kb + * - 0 + - 0b100 + - 256kb + * - 0 + - 0b1000 + - 1MB + * - 0 + - 0b10000 + - 4MB + * - 0 + - 0b100000 + - 16MB + +* glb: if the global bit is set, the ASID is not considered when matching + TLBs. +* Cacheab: the cacheability attributes of TLBs are not modeled, these bits + are ignored. +* RWX: read-, write-, execute-, enable bits. Indicates if user programs + are permitted to read/write/execute the given page. +* U: indicates if user programs can access this page. + +Scheduler +--------- +The Hexagon system architecture has a feature to assist the guest OS +task scheduler. The guest OS can enable this feature by setting +``SCHEDCFG.EN``. The ``BESTWAIT`` register is programmed by the guest OS +to indicate the priority of the highest priority task waiting to run on a +hardware thread. The reschedule interrupt is triggered when any hardware +thread's priority in ``STID.PRIO`` is worse than the ``BESTWAIT``. When +it is triggered, the ``BESTWAIT.PRIO`` value is reset to 0x1ff. + +HVX Coprocessor +--------------- +The Supervisor Status Register field ``SSR.XA`` binds a DSP hardware thread +to one of the eight possible HVX contexts. The guest OS is responsible for +managing this resource. + +.. seealso:: + + ``target/hexagon/README`` in the QEMU source tree for more info about = Hexagon. diff --git a/docs/devel/index-internals.rst b/docs/devel/index-internals.rst index 7a0678cbdd3..0471db80645 100644 --- a/docs/devel/index-internals.rst +++ b/docs/devel/index-internals.rst @@ -14,6 +14,7 @@ Details about QEMU's various subsystems including how to = add features to them. block-coroutine-wrapper clocks ebpf_rss + hexagon-sys migration/index multi-process reset diff --git a/docs/system/hexagon/cdsp.rst b/docs/system/hexagon/cdsp.rst new file mode 100644 index 00000000000..237529273cb --- /dev/null +++ b/docs/system/hexagon/cdsp.rst @@ -0,0 +1,12 @@ +.. SPDX-License-Identifier: GPL-2.0-or-later + +Compute DSP +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +A Hexagon CDSP is designed as a computation offload device for an SoC. The +``V66G_1024`` machine contains: + +* L2VIC interrupt controller +* QTimer timer device + +This machine will support any Hexagon CPU, but will default to ``v66``. diff --git a/docs/system/target-hexagon.rst b/docs/system/target-hexagon.rst new file mode 100644 index 00000000000..65866296724 --- /dev/null +++ b/docs/system/target-hexagon.rst @@ -0,0 +1,101 @@ +.. SPDX-License-Identifier: GPL-2.0-or-later + +.. _Hexagon-System-emulator: + +Hexagon System emulator +----------------------- + +Use the ``qemu-system-hexagon`` executable to simulate a 32-bit Hexagon +machine. + +Hexagon Machines +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +Hexagon DSPs are suited to various functions and generally appear in a +"DSP subsystem" of a larger system-on-chip (SoC). + +Hexagon DSPs are often included in a subsystem that looks like the diagram +below. Instructions are loaded into DDR before the DSP is brought out of +reset and the first instructions are fetched from DDR via the EVB/reset ve= ctor. + +In a real system, a TBU/SMMU would normally arbitrate AXI accesses but +we don't have a need to model that for QEMU. + +Hexagon DSP cores use simultaneous multithreading (SMT) with as many as 8 +hardware threads. + +.. admonition:: Diagram + + .. code:: text + + AHB (local) bus AXI (global) bus + =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=82 + =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=90 =E2=94=82 =E2=94=8C=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=90 = =E2=94=82 + =E2=94=82 L2VIC =E2=94=9C=E2=94=80=E2=94=80=E2=94=A4 =E2=94= =82 =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80=E2=94=BC=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=96=BA = =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=A4 + =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=96=B2=E2= =94=80=E2=94=80=E2=94=80=E2=94=98 =E2=94=82 =E2=94=82 Hexagon DSP = =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=82 =E2=94=82 =E2= =94=82 =E2=94=82 =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=90 + =E2=94=82 =E2=94=82 =E2=94=82 N threads =E2= =94=82 =E2=94=82 =E2=94=82 DDR =E2=94=82 + =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=A4 =E2=94=82 =E2=94= =82 =E2=94=82 =E2=94=82 + =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=B4=E2=94=80=E2= =94=80=E2=94=90 =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=A4 =E2=94=82 + =E2=94=82QTimer =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 = =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=82 + =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 + =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=98 =E2=94=82 =E2=94=82 =E2=94=8C=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=90 = =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=82 =E2=94=8C=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=90=E2= =94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 + =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=90 =E2=94=82 =E2=94=82 =E2=94=82 HVX xM =E2=94=82=E2= =94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 + =E2=94=82QDSP6SS=E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 = =E2=94=82 =E2=94=82 =E2=94=82=E2=94=98 =E2=94=82 =E2=94= =82 =E2=94=82 =E2=94=82 + =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=98 =E2=94=82 =E2=94=82 =E2=94=94=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=98 = =E2=94=82 =E2=94=82 =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=98 + =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=82 + =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=90 =E2=94=82 =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=98 =E2=94=82 + =E2=94=82 CSR =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 + =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=98 =E2=94=82 =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=90 =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=90 + =E2=94=82 =E2=94=82 TCM =E2=94=82 =E2=94=82 VTC= M =E2=94=82 + =E2=94=82 =E2=94=82 =E2=94=82 =E2= =94=82 + =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=98 =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=82 + =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =98 + +Components +---------- +Other than l2vic and HVX, the components below are not implemented in QEMU. + +* L2VIC: the L2 vectored interrupt controller. Supports 1024 input + interrupts, edge- or level-triggered. The core ISA has system registers + ``VID``, ``VID1`` which read through to the L2VIC device. +* QTimer: ARMSSE-based programmable timer device. Its interrupts are + wired to the L2VIC. System registers ``TIMER``, ``UTIMER`` read + through to the QTimer device. +* QDSP6SS: DSP subsystem features, accessible to the entire SoC, including + DSP NMI, watchdog, reset, etc. +* CSR: Configuration/Status Registers. +* TCM: DSP-exclusive tightly-coupled memory. This memory can be used for + DSPs when isolated from DDR and in some bootstrapping modes. +* VTCM: DSP-exclusive vector tightly-coupled memory. This memory is acces= sed + by some HVX instructions. +* HVX: the vector coprocessor supports 64 and 128-byte vector registers. + 64-byte mode is not implemented in QEMU. + + +Bootstrapping +------------- +Hexagon systems do not generally have access to a block device. So, for +QEMU the typical use case involves loading a binary or ELF file into memory +and executing from the indicated start address:: + + $ qemu-system-hexagon -kernel ./prog -append 'arg1 arg2' + +Semihosting +----------- +Hexagon supports a semihosting interface similar to other architectures'. +The ``trap0`` instruction can activate these semihosting calls so that the +guest software can access the host console and filesystem. Semihosting +is not yet implemented in QEMU hexagon. + + +Hexagon Features +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D +.. toctree:: + hexagon/cdsp diff --git a/docs/system/targets.rst b/docs/system/targets.rst index 5b12858b216..5ebdd0f7fea 100644 --- a/docs/system/targets.rst +++ b/docs/system/targets.rst @@ -30,3 +30,4 @@ Contents: target-sparc64 target-i386 target-xtensa + target-hexagon --=20 2.34.1 From nobody Sun Jul 26 11:50:59 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397218; cv=none; d=zohomail.com; s=zohoarc; b=QDbdUH3+RgeH70AaBC+3T4hZaa6y/77Y/uhy9SH83eLdLj1aqungCU77mJH3N2OnxmFm92quzCCH/oMydBkjXVD/N8mDF14C22VrrApUZRJ/KYZd0j0XPVL9ZLudrYp6Y3ZY+GVj6C/km0vShk1yF8tW4QGoe6N4qYtwveP6npI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397218; 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=PhlMi1XNwmwGtcu38VtvVt8mGfYfYfXO6/8xhorQDxo=; b=bg9A+6knDecT331mmm3XaS6txEHbwwo2OAG6B70IzOmVneZbqvyVnM1lIlveoVgaBne9SEIq+cA2GRMQ7r/vtHn/+zalGFYVIItqLKmmTh8GDmHYhGzzIx7dPNib1xeEhQD4fczKInlnCJt9kLb2MBlDFBVWGD3v9vs0LNLT9NM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782397218045358.29481462372405; Thu, 25 Jun 2026 07:20:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wcksy-0006du-CD; Thu, 25 Jun 2026 10:16:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wcksv-0006dU-MS for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:16:53 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wcksu-0008QQ-5H for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:16:53 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9jt652009522 for ; Thu, 25 Jun 2026 14:16:51 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0uhmjjue-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:16:51 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c8d355dbcso1437507eec.1 for ; Thu, 25 Jun 2026 07:16:51 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.16.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:16:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= PhlMi1XNwmwGtcu38VtvVt8mGfYfYfXO6/8xhorQDxo=; b=cB0UaQ9p45vbUcRc S6h5/c565G4KcD6x/MCvAKo1ofWP0qkKjZlLCSQKf8Ltu9gp1vAq74mMh83LS+Xl YRpCpWx0BJDMB8r9rhFi4B4bfLG2s9eRrcXLiRxXzytn+uhPV1dbdhg/7+gJKG7R a2bKjjFod2xfWrSD+0TzSiI2pnks8O2LF67Ifl0p7jksLpib4RVtYXR4KwcnX5at WZQxtizYtxuSja6v9UFdr+SlZnBWR/0vYFA7DF7vdZxrOt0HC/BHAhh0W8Kev4xh OQufWiGrlWPz7CREbhsOjP6Edp5Proi+nc77jlLzZGSdjouVE9KQ8nQQ/pup0gD3 Wx8Mhw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397010; x=1783001810; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=PhlMi1XNwmwGtcu38VtvVt8mGfYfYfXO6/8xhorQDxo=; b=cpLC2iGIlwNtzWtMSCdghdnMvF2y8adP6j6jcI5TAjgfZvUt5kcUKn9bUiHNZInNSl dHPXXQ2OR0iiuGjoPLW+xj5d8AqX+ajOnTFEheBgUO53xZz6cMXSZYPlGkSYMYvUaU4J ZV+HlUVWQl8EVvkPVI6zlgdp00fkCaOWSEXmSZZ9klBvV48Cqoxi3Pmek0lhCu8EHhWL x7eMg1sLConSOqnXUtdQFXeiyuLz+kvHU1nabhGPqpfX0TyQ0EzyRvl+TXCHuoynml2V h8bXeNR3IOIeAr4rn+32byrWYD3mULysIJC3DcfJ0qyuOHaPDBOYAuWtWYSI9QEHGm6Q eLOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397010; x=1783001810; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=PhlMi1XNwmwGtcu38VtvVt8mGfYfYfXO6/8xhorQDxo=; b=f7aQNSGDDj0JTZnLHQCSi4U26+QaG7P0wPzS96cv9Dqf3AvTX01T0E0IbF+QMGHrIO bF2jd0/2DaJHFdrjUwsgSilg5NOepFG/c79i5gXrxKQl4Z78pDylvVQbH+RuP92rP1Eu gehY88N3p7toMtRHvlVw600zaX+jD5poAQzNWsqQ5POG8c53LGqTRTubBqLmqbLuYLVu X0Bmbg7Fnhaq4iJrk27Fen3rmlWhUkuIP5sy5VcACA9KecL3S1rt5foWIIjrgFdt4QN4 w64aT6m+/1Sme66nusf57ZRFrUuXydfLTX5+FjDwZKlANoaJM16gu5m3k/iZJlfua59+ ErLg== X-Gm-Message-State: AOJu0YydXORVmj4ndH6UqMQjFhRkpITJZW0OSxn/A/cG4PQ7gn+sELD1 bfiYaCyBt07e/Le6OLEcTa9PhI/RRHa5rT+Iv4yV5MqtvCvL76ARP1HrAMMyQKynFvI4D/rhHbq E6rQRBrOdNBbiLD72GRDi37eXOFoBQyQ0yML6m2zW5qFkUFU14Zy5B7rDbdMGKsSFMw== X-Gm-Gg: AfdE7cksuLS402WVsGg8Sr2GbCv58C68UnEtldBaNRRwXhQBbqm7MSWL4hIQXCXXfTU Aya8tIRewTVzS8p1IHCqVdB+e+cVy47sxobPBupUZPfa/hbY1n0CzCaMQCtToSlLd+Uj9JDOLmC gnJaDsWFf+BBL+N2MV0kKsTewdpxICL1Rw6NK2X6hdre6qZwlN4OIIVUWIFdGs+KuglJsg6TyMl ewmD+R/ni62qBvlMy5PJjYvUP4Fu7t/3Xa0ceKlmMGARWWVYWFGrrdRvMcRglBB6UyunsYgRodP sMdIoxH3kerwLymTixLPHwG9Sak0dcX8LaRkdSOmgY9qDfMIUqtTFDY/kz4DlkASvw2lwVURucw Y16mMxqNdNKEfubuaWKGCSllyO2eERSIzFSpXh15dpEu7AY0bYhvCaokfsYA= X-Received: by 2002:a05:7301:d8c:b0:30b:c502:23df with SMTP id 5a478bee46e88-30c84bae4e8mr3005236eec.13.1782397010235; Thu, 25 Jun 2026 07:16:50 -0700 (PDT) X-Received: by 2002:a05:7301:d8c:b0:30b:c502:23df with SMTP id 5a478bee46e88-30c84bae4e8mr3005158eec.13.1782397009463; Thu, 25 Jun 2026 07:16:49 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 05/76] docs/system: Add hexagon CPU emulation Date: Thu, 25 Jun 2026 07:15:22 -0700 Message-Id: <20260625141633.449487-6-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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=cqerVV4i c=1 sm=1 tr=0 ts=6a3d3853 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=14gtCLEoMj5qQ5-DTC4A:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfXxAb/vublHoxA akYiyEZg/e+b3cpqh0mSsEvBW1/HgIATIm9Pv5ZlHSh2c6Lll+Jbw8/UmfN3jClU/fCFaKMNQ4Z 6e85ISKLeTGh3SV+dDWaouT1tWmHrIGtuOGZzmwwWD1nrRq7TJ6P+96empUPA1c0RQHvyaCPHHu 2hfLatmh24w/bp3vYmjsXoRyRnV0pCpX62rATjTt0JOGKKTkAbpRUuXaJnar0Mu/t4sadP9jTk6 8Ko4394I8z4pp4ScGT2ss1eiP2/pNl2uvUZ4HZZXYT8LkOgy4lGhGqTvXAfnKyrGrmEflp7+1zM 8NADfNGWDzos1JcESjHggfbUpMsIFd5Gfwm4FdoFNx0slekG8noAMcEy579gwme1rA74rs4hrKf 9q7vrRBg44quFqKRT9YCw3gLmHx4e7kWAG8Xxrx3HddoVRya+ivPK5TSkmbrdP90DUSIkrWCdP4 mqPVoGtGhiGmNSQomXw== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfXyufUQ/c678JU rZFJa6Q1mJQwTcoSEpIaiUm3/TqJjkfd8KgyMbtEqngg9iv2WsX2RgaB/2VPU+koCDe705g0Ajt yqnAaeMQkyBb9dqRR+p1oixBIUP4KQ4= X-Proofpoint-GUID: Pii0YmcPJuHHV_KusoUY6-WgY9G1x8V2 X-Proofpoint-ORIG-GUID: Pii0YmcPJuHHV_KusoUY6-WgY9G1x8V2 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 clxscore=1015 bulkscore=0 phishscore=0 priorityscore=1501 malwarescore=0 suspectscore=0 impostorscore=0 spamscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397219782158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- docs/system/hexagon/emulation.rst | 15 +++++++++++++++ docs/system/target-hexagon.rst | 2 ++ 2 files changed, 17 insertions(+) create mode 100644 docs/system/hexagon/emulation.rst diff --git a/docs/system/hexagon/emulation.rst b/docs/system/hexagon/emulat= ion.rst new file mode 100644 index 00000000000..36f54f058af --- /dev/null +++ b/docs/system/hexagon/emulation.rst @@ -0,0 +1,15 @@ +.. SPDX-License-Identifier: GPL-2.0-or-later + +.. _Hexagon Emulation: + +Hexagon CPU architecture support +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D + +QEMU's TCG emulation includes support for v65, v66, v67, v68, v69, v71, v7= 3. +It also has support for the following architecture extensions: + +- HVX (Hexagon Vector eXtensions) + +For information on the specifics of the HVX extension, please refer +to the `Qualcomm Hexagon V73 HVX Programmer's Reference Manual +`_. diff --git a/docs/system/target-hexagon.rst b/docs/system/target-hexagon.rst index 65866296724..416b8f7be76 100644 --- a/docs/system/target-hexagon.rst +++ b/docs/system/target-hexagon.rst @@ -98,4 +98,6 @@ is not yet implemented in QEMU hexagon. Hexagon Features =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D .. toctree:: + hexagon/emulation hexagon/cdsp + --=20 2.34.1 From nobody Sun Jul 26 11:50:59 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397047; cv=none; d=zohomail.com; s=zohoarc; b=M1Deo3fOM99m0ng+sCtC1YaXT7LUpinW8JSoDuyY/E1zhbQhxDMIxJIzMnWiBtjDGO0PuEBfqfRs3QuFMay3Tmguwg8ct0BdPue+X8gITCykk2qmmthgjhv6ZBtMGamzhnkBigKyuus57wakXNik83a+pmlcKKIImFeYYEs8+cg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397047; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=IkxVmrZuFWa1Fs3sFSDNQQouCUhLSalQWx3BbBytT1I=; b=NIhTTMqajeO+8B9vih4oZqMVO2YRvzlLIN+6vhpwdozAbRuXCnJuvaT80mf46cOe/CQz15Z+qZC0m3J6oGgoUJKq8/jMR+9d6+tqH+ASzC/rvPZFfQXTf56q9bwQKb0mXfytAuSR48+YfEvH2aTRXqAY5bp3V7GeJXEgAEdCxJU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782397047694427.03005286929033; Thu, 25 Jun 2026 07:17:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wcksz-0006et-RW; Thu, 25 Jun 2026 10:16:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wcksx-0006dt-Dn for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:16:56 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wcksw-0008QV-0h for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:16:55 -0400 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9ju5x1723259 for ; Thu, 25 Jun 2026 14:16:53 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0j7dvnpd-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:16:53 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30c50cd6cbcso2570242eec.1 for ; Thu, 25 Jun 2026 07:16:52 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.16.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:16:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=IkxVmrZuFWa1Fs3sFSDNQQouCUhLSalQWx3BbBytT1I=; b=Hc c2Rv7dq2UDP+pqZI2YhRtRuugsTGTRuxx9yWJqm/uewYlbgh3JL3kJHlxSp28urb v4dNyN2HVmoax2X1iFs4XDvm4x+6/s6/9jH1qPd8BLc17QRC0deIwb/LbTkd+NqK 2WYAWSh28+S0ucFdO6dT5ujC/Kip6bkROfPqwpK6nO34EHgD8HNLXQuhYSLGFa1Q C6ksytieUoklXti3J2S4gNqFwOsyLhV0b6mlxwJD6j9VauiffatQJLTNsQ1UVhUK UbRvHBvJgFOUcppdsxdeXZCBPBd/ybA5coAjaRMWs2I3zmUwZkItIDH6GH2vRUAM pl0ovCXOr6YRHTZ5Y50Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397012; x=1783001812; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=IkxVmrZuFWa1Fs3sFSDNQQouCUhLSalQWx3BbBytT1I=; b=SUXDcRKj0pWT4eSPDQ3kOAu1kbePHBuHUL8H9Bx50VVEsWwixk4VQ5iehEgSqPq0v4 /gX4yoqMbPklhSN6JvnR+ir24prAVoOR0xqYxrQodu3UMLNCL0Olxxyr58CZ66gJqa9w gbMFtgkkORdvALAeaqDIqyfkmkxsS0KIYNXu0S3N2czdKYkJvcCL6Fj6496Fu2gaCmXI yPerqBvsfp1Mk09A+9saemmggUrTV8G2mP1dFBr2wTT3jv/wzf3Wu93cm2BrUZ4VnqQ7 YZemkWwSEaklF7u+O0M9CZmNGI3WHv42IGM39nVwcAgc2MClAtiWR0bX8C7oHS10lHrF dGsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397012; x=1783001812; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=IkxVmrZuFWa1Fs3sFSDNQQouCUhLSalQWx3BbBytT1I=; b=X4QYGot+Y+f2/soAt2TQc1cFAxFtoEWUT26u9zmQ5BaxtV/uEr6hqSEzlk6iiIdaEM mEL4zQkjkllcbAAcJWFJXyCIKkky9xBTDfr+AaQ6dbBGcbcW+Sr9q3UA0jfZlhX1c/JK KHHWF55jveVJ9j/v19cNYV8vs6R1Jjt7uZFMTioa2XbZqKlTbX04fpkSzbcHOywZSdYv k/bF8DKYkMp8fs/uAkt/Ur/n7j99n8ZyfUfY4po0RYqI1wuS/SGCV1uwA18oeiUzmN85 RshmgYWwgSBPH9QrVdW15cMksi17GvnkKa/uVX0o8LGM+SBV9BZzCPuqPhCzz0R/avBj oemw== X-Gm-Message-State: AOJu0YwnzEIHe5J1hN1rCD4wB3yafoH6l22LCoaXwlBHeU5Lis55Nxyk 6ZNA5W7PaxPqkfNEEzqR+yGAd/EC3CMfKZ6hJkG5skkgTHy/cyNg6WguDxTloVvTFwpLgNEAHsW Mo4BkLKfh0N90k1ke9MFmOWuPVPTgdAPCJyxECh5e9W2bwcqa0KMY9flg8rroetdKFw== X-Gm-Gg: AfdE7cl0Fha2kU5K0QEflOYu3XIztr7R0RSI+hvv+J4ISgH2CZHtTluBCYLV1wk3XeA wp4bCaIgM7Fw9lUTia6hUpKxeFjiHg5XvuLlpcLIjQXitfgMy5dg+TuKIEYNmMWtZke4oeAt+uk TV43mEcZzvaBKtA9MW/O6fgsyU4tnSCvZ4N6srgzGcsnbcS/cyTxQ/tfsCiEJlv+VqbPJ58IIs3 2WR3nAdnw7f3iEpCyiG+N882fiNb2OiOAJOsQeH6rCGdKtadpgv6lsu9mwux3U+dU/CrC/ABlaE NCo/z2EEjNXzhGEtXhQ8YWFLFm7IagNaCIGhzW+7QQPq10WrsuzsyrRTS+CbLR5Y4sWaFPHB4NU 0F1X4WMTNTiMNSrcthooNzoQXYOPhdTK6ijCojz8KbtfrOmvXUIUnOO6hZ98= X-Received: by 2002:a05:7300:f108:b0:30c:5807:abbb with SMTP id 5a478bee46e88-30c84cb1ab9mr2643417eec.20.1782397011915; Thu, 25 Jun 2026 07:16:51 -0700 (PDT) X-Received: by 2002:a05:7300:f108:b0:30c:5807:abbb with SMTP id 5a478bee46e88-30c84cb1ab9mr2643352eec.20.1782397011245; Thu, 25 Jun 2026 07:16:51 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 06/76] target/hexagon: Fix badva reference, delete CAUSE Date: Thu, 25 Jun 2026 07:15:23 -0700 Message-Id: <20260625141633.449487-7-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: nmUwSEJKLOs7ZRzJWzrxoZHcUJZtNRhG X-Authority-Analysis: v=2.4 cv=NvHhtcdJ c=1 sm=1 tr=0 ts=6a3d3855 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=pGLkceISAAAA:8 a=YHbvUooXmMNqKe3LDhEA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX+H3/MuZkO5x3 SSO7tXc8RZlkUgzIRigMTYNa9okvZLqGHwW8Ida8fzVtdCwklv1LglQxN1bbnDkuX0sj16dMj4d b2+hhAW7GFkAW/kxM+rRTctAyh0tmGA= X-Proofpoint-ORIG-GUID: nmUwSEJKLOs7ZRzJWzrxoZHcUJZtNRhG X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX+B0zac38bGwi Hk7ku+WMDkfHa3FV9gwZYJqvLHYxY/ErFTGTOL5P/RhUjYR1MGTCQ/S4L76JJSHMPd4oNYpyaPe n3606/bIZVs85eiHeUrnr/4ADh2A7L6IU9e+bBmY/Qb0VTutDsFs3OZzJAdlINnGR65PA3exjXu WHPzW2fdaVK8TRr65I8vEGNTNfAnMdXrfp3oIR84PTRtFSfHOHc4IPnGPNcSy/I0COQuTTaM2Yj WmQl1sYocuqliPxIMf6VdOaP6KoY6eUQ209DzeIokviZdQaY5zmvrU/Ne2IxbbTh9P83x67mKDY Vurt2vk1CFZiTJyVxTzOdAmOOyS5on4eyUrx2ROW+a4kElf38jsXbD0BoCDJgA0mYVfnhyUpSGn PxLncgOC2Ql+GNxn4ukKdC+dDQwGfh8wVLx/rjrXzzfeqVKrvQbm23iV0Rc9HUAXxbtOnqhOZgD g7uw6T5D34T6kDXGGAA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 suspectscore=0 adultscore=0 impostorscore=0 phishscore=0 spamscore=0 bulkscore=0 lowpriorityscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397049906158500 Content-Type: text/plain; charset="utf-8" From: Brian Cain The BADVA reg is referred to with the wrong identifier. The CAUSE reg field of SSR is not yet modeled, we will dump the SSR in a subsequent commit. Signed-off-by: Brian Cain Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 2c53f2c2836..bd568bdd871 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -110,6 +110,14 @@ static void print_reg(FILE *f, CPUHexagonState *env, i= nt regnum) hexagon_regnames[regnum], value); } =20 +#ifndef CONFIG_USER_ONLY +static void print_t_sreg(FILE *f, const CPUHexagonState *env, int regnum) +{ + qemu_fprintf(f, " %s =3D 0x" TARGET_FMT_lx "\n", + hexagon_sregnames[regnum], env->t_sreg[regnum]); +} +#endif + static void print_vreg(FILE *f, CPUHexagonState *env, int regnum, bool skip_if_zero) { @@ -209,8 +217,7 @@ static void hexagon_dump(CPUHexagonState *env, FILE *f,= int flags) qemu_fprintf(f, " cs0 =3D 0x00000000\n"); qemu_fprintf(f, " cs1 =3D 0x00000000\n"); #else - print_reg(f, env, HEX_REG_CAUSE); - print_reg(f, env, HEX_REG_BADVA); + print_t_sreg(f, env, HEX_SREG_BADVA); print_reg(f, env, HEX_REG_CS0); print_reg(f, env, HEX_REG_CS1); #endif --=20 2.34.1 From nobody Sun Jul 26 11:50:59 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397132; cv=none; d=zohomail.com; s=zohoarc; b=VKyXBGu5Agcx1IFD3XLCB2t++DngvsmB+vzXE1cPz45mhBNO+c4Wnt2w1isXOdAtf2HbBW5TXVAVw60jN2OvUnLT/dbgtTdyU/YevV5Nyj5+Kcrf6RqX2LleeJfwDtrw/EQHfdXhakpwlsx+tQovadmY3hUIv1IvDPX1o93Vir4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397132; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=akHFVisJDbmBFFMLQN2z4af12XW5M1jZKu+CQ2LFdG0=; b=ceyJxmVXUVrp0ZBJtCkrkhb8uP1R/vf6zTzTte6ejgkJYRJZob/whHrJ4jxZ0rE8n+kfZq6eJFv8DKvKV+whOVa86A14PgcHTuoLgZJmHsqbq1X70N53WVqurCJb39a7tVE+KWZ2qSAQgHHdxEtdOzBRQkRTUZVYnEm0J47etE0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782397132038344.5947173587401; Thu, 25 Jun 2026 07:18:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wckt0-0006f7-Qc; Thu, 25 Jun 2026 10:16:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wcksz-0006es-P2 for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:16:57 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wcksy-0008Qr-Ag for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:16:57 -0400 Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9jvK13078245 for ; Thu, 25 Jun 2026 14:16:54 GMT Received: from mail-dl1-f72.google.com (mail-dl1-f72.google.com [74.125.82.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0yynsj3y-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:16:54 +0000 (GMT) Received: by mail-dl1-f72.google.com with SMTP id a92af1059eb24-1370417c0bfso1041653c88.0 for ; Thu, 25 Jun 2026 07:16:54 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.16.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:16:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= akHFVisJDbmBFFMLQN2z4af12XW5M1jZKu+CQ2LFdG0=; b=GNJ4wDZBHpHqWWc4 g10aDTDrdtSh9UtDfqwv5NQSQfFZNY9erXvD7cGzcejw1A0K1wlvzoMDw41UlbId xxIn5VppZNv+2gqr6uTK4p0d9w7Lh7YnmTiHM5JUPnbzP5hp5nrqO2Z6l+0GNWB1 JMkytj+ZI114GkNV5ISpqVPmckArYGI2hiDeKbMngjVHw/TX9jXvTKo3AUrhAJf8 ORhHDSHTxi0iZuQF9BdLeCmNf6MjCsNRLHy3hzy4pKfNjvvxtuNY7imaQhOg2Ezn E4/CDdXrgxrzSQxyMlxIGyYpPm1pKSexj8Op7stiUdnCr8DneehKI1cHNgybYMXL phAjXg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397014; x=1783001814; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=akHFVisJDbmBFFMLQN2z4af12XW5M1jZKu+CQ2LFdG0=; b=G49yuWoaJbDdf3Up2flwvwCFkPavKMvfu98IT9CnjbVqIadOqD7zDjdYHvn7NYjZGQ H3+7sGAwLD2OYiVvL57X8qLwesZp2nPYiJ4uyp1cjbJYxnj3aJ3YKt6sEbwVdV4LERBF JrIgOEYCpJl7ntbWdseZGhRSdY/Ux2cyx5v/MGouypUZbbviBKOZn+CVtqG3dWT0JC3u 5t+xnVEz0PxlMSp5wk5vcyspCVMsEnuUtWsv2pZSkzWl/uweZxd1viIu6X42dheI7NnS 5p3QV6Lmbt03r3prLbWrGpbMt+bY60qjVLzmoTt401StwvjcZOirUmoS31cDlNADS5pW l39g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397014; x=1783001814; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=akHFVisJDbmBFFMLQN2z4af12XW5M1jZKu+CQ2LFdG0=; b=DKyYPR4/1igWvRiMjTxWGL2m8wBU53nLjKFJLxPs9pZeb/gIqWIkO44ikSCSITkNgJ fESNpM/QYn/Iqag9B0YXFONdegDN3v49IfPrO96U9GvLJQ/YVykg7Nrlyf4YXYQIec1H rbWH8oou619g7OvJGst/aSsv9tAsqnFlYAD4hz7lXqG/lh1p0Izg0a2YlhZWCkIeD9Za BiHuSP1xj1wgM9p/+9q/4zJZ691yw9G1QHrlM0ENZ6eSpqqMvtQ9MQPFXRlkfVIEfWQe 61rrsOX47KyuDp6LUOmVyzYyIm1MKO4mDPRmypaeeyM6ZZOJcN1FS+3XR5qeuPxJXc7e VfjA== X-Gm-Message-State: AOJu0YwVKPq56ttYfMtIRe0yUG+vjB+6q1m6ZYMGZcD8sjtKpvqrM29K S8L+uKzxPkOBIIXE81Ag/YIMct7UUa7//scVLfsZBHlxpP9UBAcdboHIhJrgK+yOLw/mBlq3QJz yCXqOo5NYHiyCaLvBEk2FubFmGsrFBAb+R/4fPZF1RzCW38jCVAPVdcUnLX7d+2x9/Q== X-Gm-Gg: AfdE7cmqxyXXxQREUONrkBWJcWBtl0qy8Jni5IwJTqyG8NlmdQFS2k5/cF+oPvjBOe9 Z4msh9VwSUt2HaGG27STN1k4zFfB2IVWQY2tgdYi35kaTNnrBtwO8NAAoJgX52DcBjXu6dJDml0 fbIx654yOGM98VzEE5S9KuZJod95DVqSd3yRfKJ/IQalLcrNPB6BJPGxsS5vqTDxqVCbKRftuoc mFlQfGQyps+5Na8snyi26a6CKsaV6bD7LSupd2BaAoKwKEtxlTPMPM7MtJ8qwC1Zj27N/A/Baq0 jqj5SEjQ1iYiRKb8/hMPOO3WaiHaPWP9U4T25IIo1/tixEGTLHLZ7TpE4X+V/nnd+0mYV/N+ZCc DwjZcW15iRcJlpKGR4YnDo0VkTSoCzjYxiHa1+oCABPINHIcRRrfsnheaNxc= X-Received: by 2002:a05:7022:1281:b0:139:b0a7:9df2 with SMTP id a92af1059eb24-139c3c1f6d4mr11357746c88.7.1782397013786; Thu, 25 Jun 2026 07:16:53 -0700 (PDT) X-Received: by 2002:a05:7022:1281:b0:139:b0a7:9df2 with SMTP id a92af1059eb24-139c3c1f6d4mr11357715c88.7.1782397013221; Thu, 25 Jun 2026 07:16:53 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 07/76] target/hexagon: Add missing A_CALL attr, hintjumpr to multi_cof Date: Thu, 25 Jun 2026 07:15:24 -0700 Message-Id: <20260625141633.449487-8-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX9AlqFkBlFbl7 +S6E3q3ZnFuRn+IkuMjVj7A5unNpL0y3CEVv9KXD9mFY5KEvPmUQMuStleNfp8K8EnRWhtJsobt G6TdH2zGEzAqvQmIqi0kwBKk+Dwbmxlc4pWEYYinn5BeR+FmAFh62ZelkkpYjtNUuyXDA/b6bPR wz+NfcdmObYv22obKgknJaygiNG/6IXNaC7SmCHUh1Bc0gxac3S3TJ7Roo8EddW3dMdoE7fXBZa N1odGtR59heB4As7k8CFj9z+vT7dhWNIUOCg0iGEz7ye8Fa4AI/Ib2fvqQzZHGeasz43UpAHxeW WV6Ndu/nA36c2hHZjYhWxo1osKKSAx3HDjAA6cgOGesd1gA+XSe9p9mt7Hm66AT41UqRlZJnbg3 M2/9sAdudhfVkmwsbAFEVtpEMvqNdawqEP8fgoqu9NQfs/5C/pqOLdihMBwCS7vI+FQdW3riYdh BOfMSYsnp7N3NTuvMww== X-Authority-Analysis: v=2.4 cv=aoyCzyZV c=1 sm=1 tr=0 ts=6a3d3856 cx=c_pps a=bS7HVuBVfinNPG3f6cIo3Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=pGLkceISAAAA:8 a=ZLKCIdW5I75hk_SXmpcA:9 a=QEXdDO2ut3YA:10 a=vBUdepa8ALXHeOFLBtFW:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: fKpmxBhb3P9mB3gP47yLIp1DwyfXF34O X-Proofpoint-GUID: fKpmxBhb3P9mB3gP47yLIp1DwyfXF34O X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX18lT0COaeiJ2 3J6q3A0Ud+M7ZG7vAX5dDf+mHdvs5N6azxEFesKz99MRYz4HhGhuQHpAYylYYfSDLOP0AvR95hO 4E/4dg+wbYacNQQ0+j04U4UxuL6C4zA= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 suspectscore=0 spamscore=0 priorityscore=1501 clxscore=1015 adultscore=0 malwarescore=0 phishscore=0 bulkscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=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: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397134136158500 From: Brian Cain Signed-off-by: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/hex_common.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py index e37d5a514f0..280aef0df3f 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -247,7 +247,9 @@ def need_next_PC(tag): =20 =20 def need_pkt_has_multi_cof(tag): - return "A_COF" in attribdict[tag] + if attribdict[tag] & {"A_JUMP", "A_CALL"}: + return tag !=3D "J4_hintjumpr" + return False =20 =20 def need_pkt_need_commit(tag): --=20 2.34.1 From nobody Sun Jul 26 11:50:59 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397154; cv=none; d=zohomail.com; s=zohoarc; b=UVkoo1OlxnvS0Wr4Qcyv4pdccIYkAJFTsGkJFanBffnbL41BXCWG0+jhZO/XpJTAAtI3T6LMnEsCs/maKx6H7zSN99k6o2YlpVTgU9okw817aFZqxeufJTJegDffV44StntQxludJtfu14D9f4G427oDXb74k4wgFSZAV0qoJDc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397154; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=3PJq1TG0I8TU78Tf0jGrc0eZLiVvKT6OxHA758wVFTs=; b=JnVIICL/dIHg6IwWFB1aa3kQo6THOcH0dR69V/onUelTIELgWcPn8mP/MiZZffjA9zCRSHxF6eHfQVCZBgyx/dnhx5xiToY/4O7lYlK74guPaFcbURfDxrFyxzfp/CQziNhvbzo4LpugwkWO2e++rPFBYfuj3ZR4wZ47mR0CQEk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178239715417530.289383891874195; Thu, 25 Jun 2026 07:19:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wckt3-0006fe-88; Thu, 25 Jun 2026 10:17:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wckt1-0006fO-LT for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:16:59 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wcksz-0008R6-Q4 for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:16:59 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9jvJl1754173 for ; Thu, 25 Jun 2026 14:16:57 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0w0q26t7-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:16:56 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30ba395b047so6671637eec.0 for ; Thu, 25 Jun 2026 07:16:56 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.16.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:16: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= 3PJq1TG0I8TU78Tf0jGrc0eZLiVvKT6OxHA758wVFTs=; b=pEERvd4uhO/NNTQX iJibK7xg6YWA3R3aeoo6tXu5Kgr0ZK13WBPPWSiWf1xINkaSnZSO+de326ez+Hcb Lq/6uVDzJ9p7KPf7MgRlLJeFXSwI/+T63QmQhD6NTbF4v1haSTKktu9Alv+jngfD Am/Zrq3r48b4yL8VE4FMoStplA7r8Qong4VV0YH0Rh6v8j769Qf/3RqaAtUHXI8r Vw2KNe5Lg/eXAEv2x6qZ8Ph6AQxLJ+xZvaluwB2vrPAPQ5E5w9VoWKr3qLjKBYxq MEVTgptaGoXmmz/gdGaSQT1DUsPjHda6m5BtG0+FASmySAtaHXPkbjAYm2O4BMXX CxxEbg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397016; x=1783001816; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=3PJq1TG0I8TU78Tf0jGrc0eZLiVvKT6OxHA758wVFTs=; b=GXzLTrpsWoD6AgUshUixMYxEKozy+bIPyEbJ1vHZK2hjRGU7M3OC9oVNyvZBW6R+Yw 4vk03dEdF9kpfBnQn6dPzWHoxxZsuCxCfDk7XV0ChO0R07nghf8kWQfIP+HJ3UzYfqTq vGEmtw3c0qojbp6uayVaEcHsAiuJ8zT9ntvyIcJ4IhPIZeJaNCH6FlSsYqAen7hn1b5s 3SZUFwcStpsUkaCgzN/kNllDmzZonq1zQh6WYU9qFfYCYJ7aesfV7yMtxyeGsHWG4BQo 33x6D12Xurlp7X4IjNwJopCHzQlYzGdju2zpv5LbjRNNYI7jQ2PNOWl5hK6nZJre5XAJ Pj9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397016; x=1783001816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=3PJq1TG0I8TU78Tf0jGrc0eZLiVvKT6OxHA758wVFTs=; b=cGlJD3717pq45zo9eaQ1KbAGgHzWZupiTWr4ZR/yPLYGdyuaZNlZpsfuhi/MOAbfZL nNvaI6WnrpFHamnQP3GaYuWD7plgWQRuNnbdXjjal7Oe+jYsQChOSh+TbVLlO2FDulUT rHo/JeNzN2EwFGiJ8HOZ2oIS8nk7dyxbtBqQxXrH9qBgIGDxpzrdPjJf4qhNFr2iIApK c1mIh5C6Vq4DpIIB8U5ghFoA2mk4rsTCNQ31hnVeIvMLExP647lGkh/p380T5wqlTT5L XBd4Dm0RcCrPrnRqo81QYqf2ktCeaOlPIRzIdHe6Pfpcxrhbn4JjAaHHUOg1WebiF+Ls 01pg== X-Gm-Message-State: AOJu0YymfGvNJVc2tDwdyUlI2Sb9rPbHXpkkATQd/ImzzKC9v4winjEY cdM3ZRB4YWTZ7rCY7XRyVAdmvTN+MiYmXJAsN9+nZvYqRDoaRxiV1LGk0hkWASzQL+jsA7xio81 jC9hXSkrFRo810/pKjrzj/W1x+a1QrbUTGMFd7M9a9LQi1c+MGCb+PmajFQvhJ6GhZA== X-Gm-Gg: AfdE7ck3VCckordM5OYKIXPclRCXnnyiO64HeJQUIUdj+XAxHQ37bcBpeAsrf7g/NNV KXY1s2A/k0hUv9W21u7YlUdiNJepY88MKOokpcI0S7Cmktp00Dnsa3XenGwB1TXNBDejzWWPOE4 Jd0lSSHMi1B1MlUkFaWH9XXRmsD303vX5aL6+cHhVV62IJXT2mp6t7tkxjTWcOc4R810EwrTsh4 gO4dui8+iCgpGOj16m3GzNrVS50mdUUw6MIyAxVgkH3d5ViRsRD4E+3MP47EE/feLfa1rVLcYCl kvowruTW9xac/aSe2rWI2A2ygtNul4/pABWGDIHdi41+tsygRWv7jis6EljWMkTv93HPZfKIdgO mfYvV7Vhm+AtlrhlrajwtWyJ0R5tqTsPGsJZ1vc32pQB5BO0Hk7e1Y6jh3OU= X-Received: by 2002:a05:7301:3d10:b0:2f0:c8b5:3dc7 with SMTP id 5a478bee46e88-30c84dad323mr2707127eec.22.1782397015473; Thu, 25 Jun 2026 07:16:55 -0700 (PDT) X-Received: by 2002:a05:7301:3d10:b0:2f0:c8b5:3dc7 with SMTP id 5a478bee46e88-30c84dad323mr2707074eec.22.1782397014804; Thu, 25 Jun 2026 07:16:54 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 08/76] target/hexagon: Handle system/guest registers in gen_analyze_funcs.py and hex_common.py Date: Thu, 25 Jun 2026 07:15:25 -0700 Message-Id: <20260625141633.449487-9-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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: EnmPT2h8c1ylbs_bptLZidreWimN_fH_ X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX7HmSkbX4dcYe Jd6pjP+GUtIDre4ajPFjL9qLCP+ReF8FtfDqJqK3kGld1TVmf22FsnO31z8PRXvqTQWg6Tw5ExU Wb6IgsPJ+NbhibDu5TNZmmDK4QCJhz0= X-Proofpoint-GUID: EnmPT2h8c1ylbs_bptLZidreWimN_fH_ X-Authority-Analysis: v=2.4 cv=R6Ez39RX c=1 sm=1 tr=0 ts=6a3d3858 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=-IRm0M9p1sl727KxlF4A:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX2gtQCBQUo79f KWz6ytw6Pqzktr4DBO+hPetPv6E2qb2NXZFzHzZutLN2tNaG4NaBT6Kb5w2vK/OKcPNRlHc8rWW sfWl/ea9kmOLO+GIRHxpv+rq4twzDtQO8NTCW6mahAcB77q4fyBqw0Bhzvp8P91GC145e9/59yL 4eRk86U6HzcMF3khJifOIXPG1bFlbJcDxYrCvd9yxFvjUrz4oZIQ8N0d6HETDGSOAqbYPQlFAng ouCCkZzRw0cWrS4YbdRQyQp46GoS6mujZF6pgEkkkWToyXOe5gbGtse9jxUCh2kRRlZqmkpJjiD LVedP5ogHXxGIKtEVFrbo4iBAvdKImgdv5BN2+yob3jz83sW+cY95QEHWt9p16yI4LskP8aAK7H qRAWmv1JLLyZPXMfKNkJDO11vNq7ILctpa9+cAspg82EfVW4Fxvm6hWrFUp8FOCm3626XX06oig rTETrpwfYy7iHnEnmuA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 clxscore=1015 malwarescore=0 priorityscore=1501 adultscore=0 suspectscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397156378158500 From: Brian Cain Add register classes for guest (G) and system (S) registers to hex_common.py, and update gen_analyze_funcs.py to handle them. Guest and system registers can only appear once per packet (one transfer instruction each), so there is no read-after-write hazard to detect during the analyze phase. Source classes (GuestSource, GuestPairSource, SystemSource, SystemPairSource) provide a no-op analyze_read() since these register reads do not need tracking. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/gen_analyze_funcs.py | 14 ++- target/hexagon/hex_common.py | 152 ++++++++++++++++++++++++++++ 2 files changed, 164 insertions(+), 2 deletions(-) diff --git a/target/hexagon/gen_analyze_funcs.py b/target/hexagon/gen_analy= ze_funcs.py index fdefd5b4b36..44bb22ed927 100755 --- a/target/hexagon/gen_analyze_funcs.py +++ b/target/hexagon/gen_analyze_funcs.py @@ -22,7 +22,6 @@ import string import hex_common =20 - ## ## Generate the code to analyze the instruction ## For A2_add: Rd32=3Dadd(Rs32,Rt32), { RdV=3DRsV+RtV;} @@ -42,6 +41,13 @@ def gen_analyze_func(f, tag, regs, imms): f.write(f"static void analyze_{tag}(DisasContext *ctx)\n") f.write("{\n") =20 + if hex_common.tag_ignore(tag): + f.write("}\n\n") + return + + if hex_common.is_sysemu_tag(tag): + f.write("#ifndef CONFIG_USER_ONLY\n") + f.write(" Insn *insn G_GNUC_UNUSED =3D ctx->insn;\n") if (hex_common.is_hvx_insn(tag)): if hex_common.has_hvx_helper(tag): @@ -58,7 +64,8 @@ def gen_analyze_func(f, tag, regs, imms): for regno, register in enumerate(regs): reg_type, reg_id =3D register reg =3D hex_common.get_register(tag, reg_type, reg_id) - reg.decl_reg_num(f, regno) + if reg.is_read() or reg.is_written(): + reg.decl_reg_num(f, regno) =20 ## Analyze the register reads for regno, register in enumerate(regs): @@ -78,6 +85,9 @@ def gen_analyze_func(f, tag, regs, imms): =20 f.write(" mark_implicit_writes(ctx);\n") =20 + if hex_common.is_sysemu_tag(tag): + f.write("#endif /* !CONFIG_USER_ONLY */\n") + f.write("}\n\n") =20 =20 diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py index 280aef0df3f..79436ee29d7 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -33,6 +33,41 @@ overrides =3D {} # tags with helper overrides idef_parser_enabled =3D {} # tags enabled for idef-parser =20 + +def is_sysemu_tag(tag): + return bool(attribdict[tag] & {"A_PRIV", "A_GUEST"}) + + +def tag_ignore(tag): + tag_skips =3D ( + "Y6_diag", + "Y6_diag0", + "Y6_diag1", + ) + attr_skips =3D { + "A_FAKEINSN", + "A_MAPPING", + "A_CONDMAPPING", + } + return tag in tag_skips or attribdict[tag] & attr_skips + + +def get_sys_tags(): + return sorted( + tag for tag in frozenset(tags) if is_sysemu_tag(tag) + ) + + +def get_user_tags(): + return sorted( + tag for tag in frozenset(tags) if not is_sysemu_tag(tag) + ) + + +def get_all_tags(): + return get_user_tags() + get_sys_tags() + + # We should do this as a hash for performance, # but to keep order let's keep it as a list. def uniquify(seq): @@ -369,12 +404,16 @@ def helper_proto_type(self): return "s32" def helper_arg_type(self): return "int32_t" + def is_pair(self): + return False =20 class Pair(Scalar): def helper_proto_type(self): return "s64" def helper_arg_type(self): return "int64_t" + def is_pair(self): + return True =20 class Hvx: def is_scalar_reg(self): @@ -1010,6 +1049,109 @@ def analyze_write(self, f, tag, regno): ctx_log_qreg_write(ctx, {self.reg_num}, insn_has_hvx_helper); """)) =20 +class GuestRegister(Register): + pass + +class GuestDest(GuestRegister, Single, Dest): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno) + f.write(code_fmt(f"""\ + TCGv_i32 {self.reg_tcg()} =3D tcg_temp_new_i32(); + """)) + def gen_write(self, f, tag): + f.write(code_fmt(f"""\ + gen_log_greg_write(ctx, {self.reg_num}, {self.reg_tcg()}); + """)) + def analyze_write(self, f, tag, regno): + f.write(code_fmt(f"""\ + ctx_log_greg_write(ctx, {self.reg_num}); + """)) + +class GuestSource(GuestRegister, Single, OldSource): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno) + f.write(code_fmt(f"""\ + TCGv_i32 {self.reg_tcg()} =3D tcg_temp_new_i32(); + gen_read_greg({self.reg_tcg()}, {self.reg_num}); + """)) + def analyze_read(self, f, regno): + pass + +class GuestPairDest(GuestRegister, Pair, Dest): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno) + f.write(code_fmt(f"""\ + TCGv_i64 {self.reg_tcg()} =3D tcg_temp_new_i64(); + """)) + def gen_write(self, f, tag): + f.write(code_fmt(f"""\ + gen_log_greg_write_pair(ctx, {self.reg_num}, {self.reg_tcg()}); + """)) + def analyze_write(self, f, tag, regno): + f.write(code_fmt(f"""\ + ctx_log_greg_write_pair(ctx, {self.reg_num}); + """)) + +class GuestPairSource(GuestRegister, Pair, OldSource): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno) + f.write(code_fmt(f"""\ + TCGv_i64 {self.reg_tcg()} =3D tcg_temp_new_i64(); + gen_read_greg_pair({self.reg_tcg()}, {self.reg_num}); + """)) + def analyze_read(self, f, regno): + pass + +class SystemDest(Register, Single, Dest): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno) + f.write(code_fmt(f"""\ + TCGv_i32 {self.reg_tcg()} =3D tcg_temp_new_i32(); + """)) + def gen_write(self, f, tag): + f.write(code_fmt(f"""\ + gen_log_sreg_write(ctx, {self.reg_num}, {self.reg_tcg()}); + """)) + def analyze_write(self, f, tag, regno): + f.write(code_fmt(f"""\ + ctx_log_sreg_write(ctx, {self.reg_num}); + """)) + +class SystemSource(Register, Single, OldSource): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno) + f.write(code_fmt(f"""\ + TCGv_i32 {self.reg_tcg()} =3D tcg_temp_new_i32(); + gen_read_sreg({self.reg_tcg()}, {self.reg_num}); + """)) + def analyze_read(self, f, regno): + pass + +class SystemPairDest(Register, Pair, Dest): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno) + f.write(code_fmt(f"""\ + TCGv_i64 {self.reg_tcg()} =3D tcg_temp_new_i64(); + """)) + def gen_write(self, f, tag): + f.write(code_fmt(f"""\ + gen_log_sreg_write_pair(ctx, {self.reg_num}, {self.reg_tcg()}); + """)) + def analyze_write(self, f, tag, regno): + f.write(code_fmt(f"""\ + ctx_log_sreg_write_pair(ctx, {self.reg_num}); + """)) + +class SystemPairSource(Register, Pair, OldSource): + def decl_tcg(self, f, tag, regno): + self.decl_reg_num(f, regno) + f.write(code_fmt(f"""\ + TCGv_i64 {self.reg_tcg()} =3D tcg_temp_new_i64(); + gen_read_sreg_pair({self.reg_tcg()}, {self.reg_num}); + """)) + def analyze_read(self, f, regno): + pass + def init_registers(): regs =3D { GprDest("R", "d"), @@ -1056,6 +1198,16 @@ def init_registers(): QRegSource("Q", "u"), QRegSource("Q", "v"), QRegReadWrite("Q", "x"), + + # system regs + GuestDest("G", "d"), + GuestSource("G", "s"), + GuestPairDest("G", "dd"), + GuestPairSource("G", "ss"), + SystemDest("S", "d"), + SystemSource("S", "s"), + SystemPairDest("S", "dd"), + SystemPairSource("S", "ss"), } for reg in regs: registers[f"{reg.regtype}{reg.regid}"] =3D reg --=20 2.34.1 From nobody Sun Jul 26 11:50:59 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397080; cv=none; d=zohomail.com; s=zohoarc; b=XMQm1FkT8MtZbwru8FpX5pwm6lA3z+MTCaSzis7iZtVxIhl8GJFAM0qactTLKepviebEE3k1QTIzIeG3rPdSCkwDowkwvefcFWePb1RNLcQuNVrwZbfAMkeEM5ncKQ8zPHBQgQt63axjD9+FDwNcnSvOpWLFLuSPRQKdb/yCrKM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397080; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=lcxOkFKNgQXZO0voxWGA9hyffwnAo/o2WwcbX7ewzeA=; b=cbCksbaJSPR/sVgKkvyskN1PGb1pLSbdTKRYenWFTzTLE45aVROCbPCtRQAhG0ZW7BIWTvWqbwcUyvnuOZyozyqtHrwAcseXl00CWW4qUxyfCehbA9dpWcC/qfqp1nJsIozgC+fw+BF85qpOVKEXjVka6uovg2GkQVewMPRkejE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782397080072333.7638411219285; Thu, 25 Jun 2026 07:18:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wckt4-0006g5-5l; Thu, 25 Jun 2026 10:17:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wckt2-0006fW-Qu for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:00 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wckt1-0008RL-5q for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:00 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9k9He1948022 for ; Thu, 25 Jun 2026 14:16:58 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0ya8spjg-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:16:58 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30c0d568830so8989097eec.1 for ; Thu, 25 Jun 2026 07:16:58 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.16.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:16: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= lcxOkFKNgQXZO0voxWGA9hyffwnAo/o2WwcbX7ewzeA=; b=ZolBK4LGAIJHptfs q7HQqNA8gt/poRlD5v1xC3SgzLeNGjIu5RFClASxCvPzVh86q6DCI+trOqiODCJV 1r6F79I17gXQ2Uj9LdV+mBHw+2LWZJGo1r2+7CjfMP80CvzxZJ+NqAT852+j5C96 NmCo6a51Xd4c+8e5N1W6Vg+u6d/y9fzy+KYxguruAmwBJDHxKgqa3pXlobsCZ56G fZcLINQ1n6QEXhGxeqXKvw+q1VnuxYckIFIum8ikG6ZMhwjJWPnjZ5rRop8BYnYn 1JkGrF25bhE8kiOFffRAlmyO8Ah2FIiGYjGUiPq/BzH7m86hi/3VjLFTkfdiQZgg f+AYhg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397017; x=1783001817; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=lcxOkFKNgQXZO0voxWGA9hyffwnAo/o2WwcbX7ewzeA=; b=KJUaoZdqOz72oJi45PfQz4HxNc4EklzP6BbczwdcStdjIYwcLWAP4eSE7nVPAuzgjj XicCxkXNOqKLhBtxdHnGoGs92GuZ/JA6kwsp8GTWxpX7aygtIx7F2hR3rua2Bj9VPX26 W6eRRSMhgSW6SdMkqsoRv5D+Vuduo2g3/kQwEN1G04gd9YKYFIWCf/2LMUiNGw+ztevU 3NWT6ly2wsl/AWE+cyMgMEuR6GqDb8k5Ya8C81V4YVdtcE5U8Axyt4USp+G+Nl/aZwQa nwPVeqDeeGUEP+N9Psp9EE08O/jjofkgrMN1XgT1SqVAclo676TXtx3KcEYX9BH4n1+y DoTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397017; x=1783001817; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=lcxOkFKNgQXZO0voxWGA9hyffwnAo/o2WwcbX7ewzeA=; b=OwH/R/ihHT4xfSXfPdaGX8Y3yWI6iz96+vA4yG19DfLFyQKKo6Nu0y7k5KtXd3tw+9 JL+UHbfxD6u+rzbsUcSrAk57gFJLlcl3hMrMmxFPAsJQbtV4aXaHwaL2f8ISdRJf0iLZ GzoAnxEBpTO/GDY7Gk+Nt/KgLQL12Lam0njksGCLDz/ahrkcInYAMw3sDMZV1WsIIQ+S fWjtTZeS4ERT5GQhAOjIDNE0e1DKk3T2UX+lAvXBXgnBLkS9M/uHlZbCU7ctLyBWmmm0 aOFu8jJii5MBgUdCbyWBeGz2ZORYSw3P/wAczIETjVBDlqhH6epmbl2Ty7D+TLDODJSG o+mg== X-Gm-Message-State: AOJu0Yx98UVOxzDchQ8P/EqLpkSQc3uRRtFL/BXotZ7Zan9c6LZj4IAC LoSenXBUnwKSPpY2MQDqSxZstL5o5kSPPGJdwcM2iOAPdysVvb3yUPKIhUl1CZ+O4yPwPw7WGMd 6nl3Xaya5dOhXN/YGMLWs5LNvcPRF+ZOqeVXpLbImm/3K6QY2lB5j/+p9M1GZhnKRbg== X-Gm-Gg: AfdE7cmHRUlFGjiFIR2kWiQgPMNTj2No1rI7JMxNK5rsR01bHlKEQruvh3edTtdBLJJ Z95Pn8LlyJgoa0E4I4d+1sKCvg97lAdqkHX7K3CSQYtSeDsfzklR5z5YjIJiORUF9cop5i8SbZX XTiABgx3QcT9jCaJj6JcnScOxA8NhiNfAv+TfNisOCBe8pPmskEJhGB/1UN0OFEVA+teL7zi5Oq 5mNtegknk0pP+isNqXwJxA+NuInKywaxgz/PF880PtHsNDBnVo3dcIKlTLqypJCKbr9AJbmp2Cu +17dMYKBl9wvI7c3beXHYlglE7t7BK/kh9+2SJNhZbm251svWQz+8SLMZ3InsrhammtOBU2sPfc bFmfiRuHwenRXHZtvC7shYTgKSLcqHcEnmhI5SNg9zd++cARpdeNFDsAc+iY= X-Received: by 2002:a05:7300:188b:b0:2d1:d434:cfe3 with SMTP id 5a478bee46e88-30c848b8eedmr3858186eec.0.1782397017067; Thu, 25 Jun 2026 07:16:57 -0700 (PDT) X-Received: by 2002:a05:7300:188b:b0:2d1:d434:cfe3 with SMTP id 5a478bee46e88-30c848b8eedmr3858135eec.0.1782397016500; Thu, 25 Jun 2026 07:16:56 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 09/76] target/hexagon: Suppress unused-variable warnings for sysemu source regs Date: Thu, 25 Jun 2026 07:15:26 -0700 Message-Id: <20260625141633.449487-10-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX20fTpYjIrxGm s3CY5K/NRnJcEIMnxVBuNH5NbETMLJ7dL8FxZlPHQqdar5fb+WGfW7/2yuvqewYxGP9IEFG/YiH m1ZNTbNFmKiIWDQBLwN+sYUueP5fZXM= X-Proofpoint-GUID: Uq2d90V_tKKlqWHiR-8NccrWNKX9GS_n X-Proofpoint-ORIG-GUID: Uq2d90V_tKKlqWHiR-8NccrWNKX9GS_n X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfXxRl91JSB+DwJ P+0GPZeUKEZsz1n5PmB9G4uNpT6c1OH94tw6vi4PQ1swgVCgxmGWA6hjWdFn36590p+6dchhNtP vudI0dI0k5ksjyjfB908f4Jy7yV/OqWeaanBVc7y0t7M/YyU9W7FhfcI921tQoG+UzIf768Po3V vg2ei6znL0VGnLBrHvWXCMK6VP+2UF9x4Bo4Dw+wh1n8AG/j0C9Jmz4ikIAPhpuRxMR+bf9X7aJ 8HAiW+k6HtfStSJ5vI7QqAzrH2H2iC0OAN5zd8FZogpv+BttTNrJHcpNyzAd+0BCXHpmb+ECZWF W7zgFxZxJrbRt4vkNakigb5Zyo/K63+3ayIINUgLG5gzFcxeRMPDW2OW+E1ak7oxoS0urdHqsT2 dSB8P93kxKPS7+W6ZdqOaeq1x8lzE3qpEV5/kHzsn00W0MKe7+y7OeFZ6pgVWdtDRu62Iu4C1a6 StNenwGN+xnNm4avwqQ== X-Authority-Analysis: v=2.4 cv=Z+Xc2nRA c=1 sm=1 tr=0 ts=6a3d385a cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=dvhcR3axvtdXbCCTPW8A:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 bulkscore=0 suspectscore=0 phishscore=0 spamscore=0 adultscore=0 lowpriorityscore=0 priorityscore=1501 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397082586158500 The analyze_read() methods on GuestSource, GuestPairSource, SystemSource, and SystemPairSource were no-ops because these source registers do not need read-tracking in the analyze phase. However, gen_analyze_funcs.py unconditionally declares the register-number variable (e.g. GsN) via decl_reg_num() for all registers that are read or written. When building with hexagon-softmmu, the generated analyze function bodies are compiled (outside the #ifndef CONFIG_USER_ONLY guard), and the declared-but-unreferenced register-number variable triggers -Werror=3Dunused-variable under both gcc and clang. Override decl_reg_num() in each class to declare the register number with G_GNUC_UNUSED, suppressing the warning. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/hex_common.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py index 79436ee29d7..df8d3ba6586 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -1068,6 +1068,10 @@ def analyze_write(self, f, tag, regno): """)) =20 class GuestSource(GuestRegister, Single, OldSource): + def decl_reg_num(self, f, regno): + f.write(code_fmt(f"""\ + const int {self.reg_num} G_GNUC_UNUSED =3D insn->regno[{regno}= ]; + """)) def decl_tcg(self, f, tag, regno): self.decl_reg_num(f, regno) f.write(code_fmt(f"""\ @@ -1093,6 +1097,10 @@ def analyze_write(self, f, tag, regno): """)) =20 class GuestPairSource(GuestRegister, Pair, OldSource): + def decl_reg_num(self, f, regno): + f.write(code_fmt(f"""\ + const int {self.reg_num} G_GNUC_UNUSED =3D insn->regno[{regno}= ]; + """)) def decl_tcg(self, f, tag, regno): self.decl_reg_num(f, regno) f.write(code_fmt(f"""\ @@ -1118,6 +1126,10 @@ def analyze_write(self, f, tag, regno): """)) =20 class SystemSource(Register, Single, OldSource): + def decl_reg_num(self, f, regno): + f.write(code_fmt(f"""\ + const int {self.reg_num} G_GNUC_UNUSED =3D insn->regno[{regno}= ]; + """)) def decl_tcg(self, f, tag, regno): self.decl_reg_num(f, regno) f.write(code_fmt(f"""\ @@ -1143,6 +1155,10 @@ def analyze_write(self, f, tag, regno): """)) =20 class SystemPairSource(Register, Pair, OldSource): + def decl_reg_num(self, f, regno): + f.write(code_fmt(f"""\ + const int {self.reg_num} G_GNUC_UNUSED =3D insn->regno[{regno}= ]; + """)) def decl_tcg(self, f, tag, regno): self.decl_reg_num(f, regno) f.write(code_fmt(f"""\ --=20 2.34.1 From nobody Sun Jul 26 11:50:59 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397274; cv=none; d=zohomail.com; s=zohoarc; b=Y67L0psznux4w35qHupGc0TQTPIKM/5G6ZjmJBWv+DvF3J0nlmJ1yki7XjsOqQYD54LRKYjms3c59woeC+sfGNNUqLi7WvUmFFYG4OShtUYWuEmsD+h2nAG9lpXnu07usM61yNock3EAwDjAopgp+dPojRsfAm2Qj0d3ParitKI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397274; 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=+b8voobbRHB+fEzV3OFcGYw0x0PvxvjT9mR8Wf/yF+Q=; b=VIm+DlkW8dD+tPwgvsyNPB1aL90bi252fiiP7kf45gsmMXwh8om8ZEFC5Ak1TG5/thdhVpeFkVEaSebCyBh7n0/UpXoO2pF/loILeo8lZ6ucDiTdXarnYKgj3MI0zUaLlNYF3M4+iryPiRwk7aU7waEyEftFksWyvG5f5wqQjUE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782397274218393.13938950914144; Thu, 25 Jun 2026 07:21:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wckt6-0006gp-Ps; Thu, 25 Jun 2026 10:17:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wckt4-0006gK-MU for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:02 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wckt2-0008Ra-Uq for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:02 -0400 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9juwI1723340 for ; Thu, 25 Jun 2026 14:17:00 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0j7dvnpy-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:17:00 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30ba395b047so6671794eec.0 for ; Thu, 25 Jun 2026 07:16:59 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.16.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:16: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= +b8voobbRHB+fEzV3OFcGYw0x0PvxvjT9mR8Wf/yF+Q=; b=Kg5NryiWWKCdIy62 a5ZOQxyn6fNKOuf0Rez4C7FyewcEJYUS0A2++TXZjJAnTkhnY3uBbbgas8YqSQJn pDf2NlnZyQ1/va4hzTZkNSr7mwTZex4APGw6zxN1hyTPyD9LQOMAwGKGcbkQyFaA b6b6dS5TqTqOiwP6BluuoVhgvShP2yntsLh1zVTL3PHsb9OzKAJVJJHvPixQFgWe 8/L++Mw+bBkN2yOx7Mv4ftfsvRO7kjJEubDR1l933WdLZ+z0FvdPGELw3AFSX32V JvPIi2UG7Twx98OaLEI0oxo787+SGZxTlC+k4LyLLpNh3FgRkr/r/swb4J+aKRX+ 2szNOA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397019; x=1783001819; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+b8voobbRHB+fEzV3OFcGYw0x0PvxvjT9mR8Wf/yF+Q=; b=KolsfQZ9U6zgDzkD1w0gb7XCbvkXlp+CdNotZtFs8TCLFBiFt3UQKcYC5ac5Qpbu0K Z4PnG9DTL1nGAMoTei0mccLSyfY3PkaJ8n3+F1s4j78yngv38R3OfF00Md8iuklRZZTo aU5kUnT6uOLjJ8IaWJHjoZHQrrGLdGjiPGd9cgAk6YgtLkdBRDiuuGzk5a57RVhZT7v4 Jt8/qq4ajrZ3AO5zSiHTpPXLXeBach8B5GnPfw/yGtaRtnm4hTglOTzjCGUEyC8XHkaR kfvnAkSEfcY4xGfYGQJW0Usf9I93buuhe7eLSn3cM3luiuRKQr4HRoHamBgWepZD7jZy GyjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397019; x=1783001819; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=+b8voobbRHB+fEzV3OFcGYw0x0PvxvjT9mR8Wf/yF+Q=; b=gqN1p+DvcnwcGSmpSQEvaDZuXYCW+dHeEme/kYL3Eb0Dv3g80FU+ZIDMgFQvjGVmaf X7mfJpKW02BQpGyjVh54obryq69SZT1gY+zkfdqFnjfW+kKHNBnEyD9sYg1miiS+att7 /sWcBz3EN5S6Ne82r4S8I6o972DcY4TfiNqPk6bhy4Qtd3f7Yy2bQiBE3MVReLJ4gnMh pOQyjTKauwnRdP6K9eL5nmczjHgiKf19gtJ6/Bi5GuNhP31v/E1Vw2X3NaVgJo2+7hCd ylzoeR0hC2D/YJ/PU1MepkmtFTkTqimbxMazQWTBukoonC8d+D7KashWD+Nio569aAVf R1sA== X-Gm-Message-State: AOJu0YxRbWleZSN1rL77vsf1S/o4J4k5j6Dmm3V79WSmtd1BPutH+v7r f67aWxwWqHNvRLFaMluGLN49RDmtozXdnblnTIYs5jvCGgb7O7nxZquM3Z3okDTqgnYR7pLOx72 IASe8j0JFai9DyFpSJztO+FV5LIK3ebkfRTyqQ7Z0Alp2y7eFLlm+J8kkNgrqPoOvQw== X-Gm-Gg: AfdE7ckLYs6YKE7UMVu2PomGQAWTIQQPh963Gh7tHo7/423Ms/0ohA1jblYia1Ehrqj n5MMqlIs3IVab6zistdmWPRkIFiPJ+320ZsPZK8mJHM/lKdFzOg7IhsTj5nID6Moqpr95UM5U3E q6jixKFJVBTicfB/zuT1raCESuB2fuOxTTerfErlsXhdrWS3YWyVKvuas7RraX5ndr5rh9yTmNG FciS9ogppWoIK6lIqwTRi98Dp5cdqzQI9B7zpF6RovMx3LM9aIog3NrkHWqlz+Pj374uiMAM3Fz SCED6RdgPg2Xnhu3Bito/czi01r725aKpjn1+O9rmEVKrTITWoAHhw8lOFHJatIJIEXRq+0TBDQ I+ygH+4BWq0NCm6fRzMbG6q6Uz7JnDO36rQqOhMWkjBMHpR/0O+XUweD1U/c= X-Received: by 2002:a05:7300:fd03:b0:30c:5534:e6f1 with SMTP id 5a478bee46e88-30c84e3157bmr2939445eec.29.1782397018939; Thu, 25 Jun 2026 07:16:58 -0700 (PDT) X-Received: by 2002:a05:7300:fd03:b0:30c:5534:e6f1 with SMTP id 5a478bee46e88-30c84e3157bmr2939372eec.29.1782397018092; Thu, 25 Jun 2026 07:16:58 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier , Alessandro Di Federico , Anton Johansson Subject: [PULL v3 10/76] target/hexagon: Switch to tag_ignore(), generate via get_{user, sys}_tags() Date: Thu, 25 Jun 2026 07:15:27 -0700 Message-Id: <20260625141633.449487-11-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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: 3pLWAIPg-TNWn0hNwBKJb5uEie9pg-W5 X-Authority-Analysis: v=2.4 cv=NvHhtcdJ c=1 sm=1 tr=0 ts=6a3d385c cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=orAq0Iv1PZLbcfkgE-4A:9 a=QEXdDO2ut3YA:10 a=O8hF6Hzn-FEA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX7ikxqoaLIC/L eTTfBs5LUn+oUi+I+fyTvkgnbqeYYMAOAfc8h/XvSPXxy/ztFFfwztUFqUJ1vOmZ6XGD/IOo2C9 p91wcJ81f4z2wl87GO2QL0ebCv/RJ3A= X-Proofpoint-ORIG-GUID: 3pLWAIPg-TNWn0hNwBKJb5uEie9pg-W5 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX1wzmexQ65abW x33MuPbLBsst3p5gLm79oCthXAMOshyTL7u/R/NTzg4/MxeNyGMtXBDYTf0WE7Zy1q6Ltq4pMA7 mrHv4MFj7lMtKsWsRgaEb/spXIbbiy9qScYIYMuGIWPM1IggwqtX+HauE+KgZ5i0Pi3p4LN59Sj WxLOm4hdq1/NAWW3J9lTIkFSKOsZUMyKlFPf+NZQfbLrLNmUbop3gSthdBFNFXilhxmrscBYwB8 HeT/TCE6eP2Fu65ZJ/UsV53J+OYDjz8jgGfbZtvyR2RbYVBuxuFzfkFN04h9OHpHllWBzk4sF5g u3h+EcLtvYkmOPbjKqBUOb7FRw6U5WMlFIIwlGfAzgT5tGELa1drxTku08E3Jxp+Zly1/GqQx8u w/lB4R3UcQfiQ3aj3GdIxeiK68QEGEZYVncGjuoZYlS/+RnM1gGxT+iMz7UoawbfHcj/3wEUDgZ tEiK0ip6Op6VtLuzQ7A== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 suspectscore=0 adultscore=0 impostorscore=0 phishscore=0 spamscore=0 bulkscore=0 lowpriorityscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397275348158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/gen_helper_funcs.py | 26 ++++++++++--------------- target/hexagon/gen_helper_protos.py | 23 +++++++++++----------- target/hexagon/gen_idef_parser_funcs.py | 2 ++ target/hexagon/gen_op_attribs.py | 2 +- target/hexagon/gen_opcodes_def.py | 5 ++++- 5 files changed, 29 insertions(+), 29 deletions(-) diff --git a/target/hexagon/gen_helper_funcs.py b/target/hexagon/gen_helper= _funcs.py index 6206104424c..1629ebc0e1a 100755 --- a/target/hexagon/gen_helper_funcs.py +++ b/target/hexagon/gen_helper_funcs.py @@ -104,29 +104,23 @@ def main(): tagimms =3D hex_common.get_tagimms() =20 with open(args.out, "w") as f: - for tag in hex_common.tags: - ## Skip the priv instructions - if "A_PRIV" in hex_common.attribdict[tag]: - continue - ## Skip the guest instructions - if "A_GUEST" in hex_common.attribdict[tag]: - continue - ## Skip the floating point instructions - if "A_FPOP" in hex_common.attribdict[tag]: - continue - ## Skip the diag instructions - if tag =3D=3D "Y6_diag": - continue - if tag =3D=3D "Y6_diag0": - continue - if tag =3D=3D "Y6_diag1": + for tag in hex_common.get_user_tags(): + if hex_common.tag_ignore(tag): continue if hex_common.skip_qemu_helper(tag): continue if hex_common.is_idef_parser_enabled(tag): continue + gen_helper_function(f, tag, tagregs, tagimms) =20 + f.write("#if !defined(CONFIG_USER_ONLY)\n") + for tag in hex_common.get_sys_tags(): + if hex_common.skip_qemu_helper(tag): + continue + if hex_common.is_idef_parser_enabled(tag): + continue gen_helper_function(f, tag, tagregs, tagimms) + f.write("#endif\n") =20 =20 if __name__ =3D=3D "__main__": diff --git a/target/hexagon/gen_helper_protos.py b/target/hexagon/gen_helpe= r_protos.py index 77f8e0a6a32..59c8bdd05c0 100755 --- a/target/hexagon/gen_helper_protos.py +++ b/target/hexagon/gen_helper_protos.py @@ -59,27 +59,28 @@ def main(): tagimms =3D hex_common.get_tagimms() =20 with open(args.out, "w") as f: - for tag in hex_common.tags: - ## Skip the priv instructions - if "A_PRIV" in hex_common.attribdict[tag]: + for tag in hex_common.get_user_tags(): + if hex_common.tag_ignore(tag): continue - ## Skip the guest instructions - if "A_GUEST" in hex_common.attribdict[tag]: - continue - ## Skip the diag instructions - if tag =3D=3D "Y6_diag": - continue - if tag =3D=3D "Y6_diag0": + + if hex_common.skip_qemu_helper(tag): continue - if tag =3D=3D "Y6_diag1": + if hex_common.is_idef_parser_enabled(tag): continue =20 + gen_helper_prototype(f, tag, tagregs, tagimms) + + f.write("#if !defined(CONFIG_USER_ONLY)\n") + for tag in hex_common.get_sys_tags(): + if hex_common.tag_ignore(tag): + continue if hex_common.skip_qemu_helper(tag): continue if hex_common.is_idef_parser_enabled(tag): continue =20 gen_helper_prototype(f, tag, tagregs, tagimms) + f.write("#endif\n") =20 =20 if __name__ =3D=3D "__main__": diff --git a/target/hexagon/gen_idef_parser_funcs.py b/target/hexagon/gen_i= def_parser_funcs.py index 2f6e826f76d..32bce9b0028 100644 --- a/target/hexagon/gen_idef_parser_funcs.py +++ b/target/hexagon/gen_idef_parser_funcs.py @@ -60,6 +60,8 @@ def main(): f.write('#include "macros.h.inc"\n\n') =20 for tag in hex_common.tags: + if hex_common.tag_ignore(tag): + continue ## Skip the priv instructions if "A_PRIV" in hex_common.attribdict[tag]: continue diff --git a/target/hexagon/gen_op_attribs.py b/target/hexagon/gen_op_attri= bs.py index bbbb02df3a2..94dd1f876b2 100755 --- a/target/hexagon/gen_op_attribs.py +++ b/target/hexagon/gen_op_attribs.py @@ -38,7 +38,7 @@ def main(): ## Generate all the attributes associated with each instruction ## with open(args.out, "w") as f: - for tag in hex_common.tags: + for tag in hex_common.get_all_tags(): f.write( f"OP_ATTRIB({tag},ATTRIBS(" f'{",".join(sorted(hex_common.attribdict[tag]))}))\n' diff --git a/target/hexagon/gen_opcodes_def.py b/target/hexagon/gen_opcodes= _def.py index 94a19ff412e..17ba3f9db95 100755 --- a/target/hexagon/gen_opcodes_def.py +++ b/target/hexagon/gen_opcodes_def.py @@ -37,7 +37,10 @@ def main(): ## Generate a list of all the opcodes ## with open(args.out, "w") as f: - for tag in hex_common.tags: + for tag in hex_common.get_user_tags(): + f.write(f"OPCODE({tag}),\n") + + for tag in hex_common.get_sys_tags(): f.write(f"OPCODE({tag}),\n") =20 =20 --=20 2.34.1 From nobody Sun Jul 26 11:50:59 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397267; cv=none; d=zohomail.com; s=zohoarc; b=XqeUgc3IhRzKRoDe3haw6NVP5eyhbf3xzFLxcdqAHhKQA1zi8PZSF0daIbIbK7Ip8wG8IMO1r6AmVZ7k4WSv5Z1vLlTzxpz8F+A2T/FZCItCjkT+yuH6Ev/kf5mtGF5S30mn/UmnPZAKmxjj5BqE3Hq4haznYk3CovJkKO/tGcA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397267; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=U0YIrWOgJadDyhJIcIFlA8Ek4kYkhreGdWe9fXSI7qc=; b=UGNHkqnm8WlcI9dewlmUZM1cQJbCxYOESte9cOY9iedy0HK4+tU5r31Kp+rwMhbYDPvZ5eIpOgLL4B7pB1QVqpO4cKRrV6nNVh6f/Y/JpyJcC2pJopNoe1JBn/mGwHpfqAsS4spIqcp+ovT2v+/icStH0HwhEC0qFHKDNhbBJIg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782397267963118.34157212815853; Thu, 25 Jun 2026 07:21:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wcktA-0006h0-89; Thu, 25 Jun 2026 10:17:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wckt6-0006gq-UF for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:04 -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 1wckt4-0008Rs-SJ for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:04 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9jvJm1754173 for ; Thu, 25 Jun 2026 14:17:02 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0w0q26tk-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:17:01 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c0d568830so8989271eec.1 for ; Thu, 25 Jun 2026 07:17:01 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.16.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:16:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= U0YIrWOgJadDyhJIcIFlA8Ek4kYkhreGdWe9fXSI7qc=; b=IonsmAzLKrj+l8gW RGcaN32SzW5pUOZY3uZG2/sc/RqyfoeXxHMpIOqE3txxUcxD7rd5GaSB6JnT1+T+ yzHrkK+PB8U22HzOpf+qZrKWyxpATTkleyZC/73LWeXHVMo++x7cZiFw7iVRjuyV syQoppaRqhy5vi6JsXB9+ixT1FhHVjiVkhUt7dEN15ak2uiU0nL2u7vbfZKY9n3M v/YbghX9i19ypgKqsikalVCpJ2q1Se9iXcUuO4I54xuDT/noYuXv9+BI07zfWIt3 jUbiJYZzmNsKIqsUD9WcYRJYCDVDjgJEFnxFz2FYXpwa7SH0NYnewdO2yjWIyUdL PKdg6A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397021; x=1783001821; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=U0YIrWOgJadDyhJIcIFlA8Ek4kYkhreGdWe9fXSI7qc=; b=A+GOUPWfn+zJK+9pTZKNXmPiU9YHAMEtPV6Po8Hk2qjaT9XlEk7pyXS9ZnvSC3d8mt xQdCw/9iJaftQcggKVcJvthX8rdMVf3zpXW1HXBztbvdRSyv1TdEvcRuVMXkx71UqiYn N+klzvXzccbutDHXMpIfe+20O2JDS9Ulxv/MDtyzCYS1AtqTgHpEsEVkC+VXme+Gls6N CuZIiaEE/3/pmRkChw/a4zflkLEpUGQfbcHMxVZgU627yRvU+fmfah/jYA6BBdY3Mi9K 0ngg68Siy3gAaZpvoDC/GxRpVJ96srPNroZCxYKv2iImn4PzIaejPB7JaltxTwTDw0AA ++sw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397021; x=1783001821; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=U0YIrWOgJadDyhJIcIFlA8Ek4kYkhreGdWe9fXSI7qc=; b=meoS1M7ljJnoI5rj++g+WXoW03DL8qTYP5bu6Fm8/UnqegyJ1pw2d2zeIbVrW/BEL5 qISEWoqSXvNP8Mrd8NAR3axvRwLT1GBs6boj33PXGMVpCvugYkON0HVYToK8H6DswjZ1 Tk3lhMq7I7wYHxVeawutwVH5dj3coMqCJW2WKTGNeCgtqs8t5L8EwxgTG8wB4TAZ9Ntn dyuc6wtanB7y+PquTNSH/TfYWsXEIJQ/7pbLOr7pRhLpsWcmFMkP1g5RcgrfAqVHWq9e KZJpex8GOpz9ft4eWzqdwZQAU/TD4y+2DF/5XhZAOf0BZ1/SSiU+r4DLgx4Pw+P8siVJ HNjw== X-Gm-Message-State: AOJu0YwUnkZOUR23ReTqE0WWR0bTTwUdDchg99mLXBL+1B1dJZVVfFUO wMtiMZ0Pdm507izHqrdnLgsU3ShqUZLvyisxYTLqyMp6HhsGXXG7G070ujibK9Ndi2DbuDM033X qdQKkIDB+4ucORIDpAlUYTvJKcaOHYfvQAbi0qh9ev6ntvQEFaBf743sNK8LfpAneNg== X-Gm-Gg: AfdE7cn4mWO6b7oE0UHOD7+9oK2dN+yyRQtXJ5zZHwLhFOw6OuGJEIi2ON+mpfsrv21 q/WsIZG5gQgmNjx3NDXztGdKeYPfPFp9A3IktDUePQ1uD1M4jIroSOT742ZSWQVK5Q9wqFKO0CI D0yjImgmtC9nn2/gdzNFljaEZkKD/WXA5PjlJzJ//VMHg1ga1maAZiCrGM5JG05RGsif62asyfH V5ZudBuvEsYV7J0bOKPJvKTO7YQtjO8pCX6FfTZE0EHcGmc3mGPnbFfZjSN7LUCf1Q8YXcJp5Gt du1BLK92li/bmzLoyT0onWdfxUNpT8b1cjbYNVuH6mbjt0qVr8324A55SAFPcovtKgaociGj0IX sMVkD/NSiwMBkbRFS+r9zrdIPk8zsjW7CWafQ7jwckumvHksHHsxl1yofY3Q= X-Received: by 2002:a05:7300:8191:b0:30c:19fe:3c99 with SMTP id 5a478bee46e88-30c84db2febmr3367352eec.28.1782397020484; Thu, 25 Jun 2026 07:17:00 -0700 (PDT) X-Received: by 2002:a05:7300:8191:b0:30c:19fe:3c99 with SMTP id 5a478bee46e88-30c84db2febmr3367294eec.28.1782397019893; Thu, 25 Jun 2026 07:16:59 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Taylor Simpson , Pierrick Bouvier , Laurent Vivier , Helge Deller Subject: [PULL v3 11/76] target/hexagon: Add privilege check, use tag_ignore() Date: Thu, 25 Jun 2026 07:15:28 -0700 Message-Id: <20260625141633.449487-12-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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: lSFESyGy0wwP-nGiNP3eM1h1GcRp3FjC X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX3T0yJus4HK6T jnHNFc+iUnHik85BZzjAYtrXtw3cM0AdjyC6AMgSonG2vBEW43z5pp00A4/YmTtlySrIjhR4r3H ks5iL/9zluFNAeYMsdHLFK8myCr2mmg= X-Proofpoint-GUID: lSFESyGy0wwP-nGiNP3eM1h1GcRp3FjC X-Authority-Analysis: v=2.4 cv=R6Ez39RX c=1 sm=1 tr=0 ts=6a3d385d cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=wr4TPrvmPTm06inSG8kA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX4fVoEL/nTgeH 27CwdJ+QgcjL2zqA56vg2vQo5mHiMlzJ8VydkHrS/tSDFn49Th3yGTI6/ev0w76lgngcucRgGiy 9adEldd/AFivlmttMpkbf6ERRjsQ91MvgWybDYk2TXif4GBzVHaePVN7+7t3ywhOjf88GSW8foN fp2r94wIJdys8uIyHUqJ8A/zmP2J82Pdm+oVNvuC9Ig2ZJ0AzTiAYDxbYbC0jzK4gXyZruQAx+p CQ8jhDHsbF0x7NGwK17EADkjMjMztyRcZkKr/F7jrfjFoUygvYsKgvv4pGhQfhsQz8J2A7vqgy2 l8EHtJAJRgqtZ89M0ctzwJng9JUf2UVdrHevv5sa+2b0sW8fJ1tdOtGVscowpXObkF98CPjAZNn bWSe6i+TxJcGkJDBOyOZzcQYNjvcrr2Qcs9gzGDPgNTUCHh/rdiTO+/hc01CIcfnsEN+7e+jCR7 GVCMVCjWYa+hPhCadQA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 clxscore=1015 malwarescore=0 priorityscore=1501 adultscore=0 suspectscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397269342158500 Add system event and cause code definitions needed for exception handling in sysemu mode. Add privilege checks that raise exceptions for guest/supervisor-only instructions executed without appropriate privilege. Expose hex_gen_exception_end_tb() via translate.h (previously the static gen_exception_end_tb) so that it can be called from the generated privileged-instruction TCG stubs. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 10 +++++ target/hexagon/cpu_bits.h | 75 +++++++++++++++++++++++++++++---- target/hexagon/translate.h | 2 + linux-user/hexagon/cpu_loop.c | 16 +++++++ target/hexagon/cpu.c | 1 + target/hexagon/translate.c | 12 +++++- target/hexagon/gen_tcg_funcs.py | 35 +++++++++------ 7 files changed, 127 insertions(+), 24 deletions(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 7c09c97db85..e22567d8e67 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -45,6 +45,15 @@ =20 #define MMU_USER_IDX 0 =20 +#define HEXAGON_CPU_IRQ_0 0 +#define HEXAGON_CPU_IRQ_1 1 +#define HEXAGON_CPU_IRQ_2 2 +#define HEXAGON_CPU_IRQ_3 3 +#define HEXAGON_CPU_IRQ_4 4 +#define HEXAGON_CPU_IRQ_5 5 +#define HEXAGON_CPU_IRQ_6 6 +#define HEXAGON_CPU_IRQ_7 7 + typedef struct { target_ulong va; uint32_t width; @@ -77,6 +86,7 @@ typedef struct { typedef struct CPUArchState { target_ulong gpr[TOTAL_PER_THREAD_REGS]; target_ulong pred[NUM_PREGS]; + uint32_t cause_code; =20 /* For comparing with LLDB on target - see adjust_stack_ptrs function = */ target_ulong last_pc_dumped; diff --git a/target/hexagon/cpu_bits.h b/target/hexagon/cpu_bits.h index aaac6b9ea64..164e74c782b 100644 --- a/target/hexagon/cpu_bits.h +++ b/target/hexagon/cpu_bits.h @@ -25,20 +25,77 @@ #define PCALIGN_MASK (PCALIGN - 1) =20 enum hex_event { - HEX_EVENT_NONE =3D -1, - HEX_EVENT_TRAP0 =3D 0x008, + HEX_EVENT_NONE =3D -1, + HEX_EVENT_RESET =3D 0x0, + HEX_EVENT_IMPRECISE =3D 0x1, + HEX_EVENT_PRECISE =3D 0x2, + HEX_EVENT_TLB_MISS_X =3D 0x4, + HEX_EVENT_TLB_MISS_RW =3D 0x6, + HEX_EVENT_TRAP0 =3D 0x8, + HEX_EVENT_TRAP1 =3D 0x9, + HEX_EVENT_FPTRAP =3D 0xb, + HEX_EVENT_DEBUG =3D 0xc, + HEX_EVENT_INT0 =3D 0x10, + HEX_EVENT_INT1 =3D 0x11, + HEX_EVENT_INT2 =3D 0x12, + HEX_EVENT_INT3 =3D 0x13, + HEX_EVENT_INT4 =3D 0x14, + HEX_EVENT_INT5 =3D 0x15, + HEX_EVENT_INT6 =3D 0x16, + HEX_EVENT_INT7 =3D 0x17, + HEX_EVENT_INT8 =3D 0x18, + HEX_EVENT_INT9 =3D 0x19, + HEX_EVENT_INTA =3D 0x1a, + HEX_EVENT_INTB =3D 0x1b, + HEX_EVENT_INTC =3D 0x1c, + HEX_EVENT_INTD =3D 0x1d, + HEX_EVENT_INTE =3D 0x1e, + HEX_EVENT_INTF =3D 0x1f, }; =20 enum hex_cause { HEX_CAUSE_NONE =3D -1, - HEX_CAUSE_TRAP0 =3D 0x172, - HEX_CAUSE_FETCH_NO_UPAGE =3D 0x012, - HEX_CAUSE_INVALID_PACKET =3D 0x015, - HEX_CAUSE_INVALID_OPCODE =3D 0x015, + HEX_CAUSE_RESET =3D 0x000, + HEX_CAUSE_BIU_PRECISE =3D 0x001, + HEX_CAUSE_UNSUPPORTED_HVX_64B =3D 0x002, /* QEMU-specific */ + HEX_CAUSE_DOUBLE_EXCEPT =3D 0x003, + HEX_CAUSE_TRAP0 =3D 0x008, + HEX_CAUSE_TRAP1 =3D 0x009, + HEX_CAUSE_FETCH_NO_XPAGE =3D 0x011, + HEX_CAUSE_FETCH_NO_UPAGE =3D 0x012, + HEX_CAUSE_INVALID_PACKET =3D 0x015, + HEX_CAUSE_INVALID_OPCODE =3D 0x015, /* alias: same cause as INVALID_PA= CKET */ + HEX_CAUSE_NO_COPROC_ENABLE =3D 0x016, + HEX_CAUSE_NO_COPROC2_ENABLE =3D 0x018, + HEX_CAUSE_PRIV_USER_NO_GINSN =3D 0x01a, + HEX_CAUSE_PRIV_USER_NO_SINSN =3D 0x01b, HEX_CAUSE_REG_WRITE_CONFLICT =3D 0x01d, - HEX_CAUSE_PC_NOT_ALIGNED =3D 0x01e, - HEX_CAUSE_PRIV_NO_UREAD =3D 0x024, - HEX_CAUSE_PRIV_NO_UWRITE =3D 0x025, + HEX_CAUSE_PC_NOT_ALIGNED =3D 0x01e, + HEX_CAUSE_MISALIGNED_LOAD =3D 0x020, + HEX_CAUSE_MISALIGNED_STORE =3D 0x021, + HEX_CAUSE_PRIV_NO_READ =3D 0x022, + HEX_CAUSE_PRIV_NO_WRITE =3D 0x023, + HEX_CAUSE_PRIV_NO_UREAD =3D 0x024, + HEX_CAUSE_PRIV_NO_UWRITE =3D 0x025, + HEX_CAUSE_COPROC_LDST =3D 0x026, + HEX_CAUSE_STACK_LIMIT =3D 0x027, + HEX_CAUSE_VWCTRL_WINDOW_MISS =3D 0x029, + HEX_CAUSE_IMPRECISE_NMI =3D 0x043, + HEX_CAUSE_IMPRECISE_MULTI_TLB_MATCH =3D 0x044, + HEX_CAUSE_TLBMISSX_CAUSE_NORMAL =3D 0x060, + HEX_CAUSE_TLBMISSX_CAUSE_NEXTPAGE =3D 0x061, + HEX_CAUSE_TLBMISSRW_CAUSE_READ =3D 0x070, + HEX_CAUSE_TLBMISSRW_CAUSE_WRITE =3D 0x071, + HEX_CAUSE_DEBUG_SINGLESTEP =3D 0x80, + HEX_CAUSE_FPTRAP_CAUSE_BADFLOAT =3D 0x0bf, + HEX_CAUSE_INT0 =3D 0x0c0, + HEX_CAUSE_INT1 =3D 0x0c1, + HEX_CAUSE_INT2 =3D 0x0c2, + HEX_CAUSE_INT3 =3D 0x0c3, + HEX_CAUSE_INT4 =3D 0x0c4, + HEX_CAUSE_INT5 =3D 0x0c5, + HEX_CAUSE_INT6 =3D 0x0c6, + HEX_CAUSE_INT7 =3D 0x0c7, }; =20 #define PACKET_WORDS_MAX 4 diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index 1fc185e3edd..d80bc532e24 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -283,6 +283,8 @@ extern TCGv hex_vstore_addr[VSTORES_MAX]; extern TCGv hex_vstore_size[VSTORES_MAX]; extern TCGv hex_vstore_pending[VSTORES_MAX]; =20 +void hex_gen_exception_end_tb(DisasContext *ctx, int excp); + void process_store(DisasContext *ctx, int slot_num); =20 FIELD(PROBE_PKT_SCALAR_STORE_S0, MMU_IDX, 0, 2) diff --git a/linux-user/hexagon/cpu_loop.c b/linux-user/hexagon/cpu_loop.c index 9464246e9e3..9f54c7b3f96 100644 --- a/linux-user/hexagon/cpu_loop.c +++ b/linux-user/hexagon/cpu_loop.c @@ -22,6 +22,7 @@ #include "qemu.h" #include "user-internals.h" #include "user/cpu_loop.h" +#include "target/hexagon/internal.h" #include "signal-common.h" #include "internal.h" =20 @@ -60,6 +61,21 @@ void cpu_loop(CPUHexagonState *env) env->gpr[0] =3D ret; } break; + case HEX_EVENT_PRECISE: + switch (env->cause_code) { + case HEX_CAUSE_PRIV_USER_NO_GINSN: + case HEX_CAUSE_PRIV_USER_NO_SINSN: + case HEX_CAUSE_INVALID_PACKET: + force_sig_fault(TARGET_SIGILL, TARGET_ILL_ILLOPC, + env->gpr[HEX_REG_PC]); + break; + default: + EXCP_DUMP(env, "\nqemu: unhandled CPU precise exception " + "cause code 0x%x - aborting\n", + env->cause_code); + exit(EXIT_FAILURE); + } + break; case HEX_CAUSE_PC_NOT_ALIGNED: force_sig_fault(TARGET_SIGBUS, TARGET_BUS_ADRALN, env->gpr[HEX_REG_R31]); diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index bd568bdd871..5bf6e85b939 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -299,6 +299,7 @@ static void hexagon_cpu_reset_hold(Object *obj, ResetTy= pe type) set_float_detect_tininess(float_tininess_before_rounding, &env->fp_sta= tus); /* Default NaN value: sign bit set, all frac bits set */ set_float_default_nan_pattern(0b11111111, &env->fp_status); + env->cause_code =3D HEX_EVENT_NONE; } =20 static void hexagon_cpu_disas_set_info(const CPUState *cs, diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index 0b9337d9120..d61658a798c 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -65,6 +65,10 @@ TCGv hex_vstore_addr[VSTORES_MAX]; TCGv hex_vstore_size[VSTORES_MAX]; TCGv hex_vstore_pending[VSTORES_MAX]; =20 +#ifndef CONFIG_USER_ONLY +TCGv_i32 hex_cause_code; +#endif + static const char * const hexagon_prednames[] =3D { "p0", "p1", "p2", "p3" }; @@ -187,7 +191,7 @@ static void gen_end_tb(DisasContext *ctx) ctx->base.is_jmp =3D DISAS_NORETURN; } =20 -static void gen_exception_end_tb(DisasContext *ctx, int excp) +void hex_gen_exception_end_tb(DisasContext *ctx, int excp) { gen_exec_counters(ctx); tcg_gen_movi_tl(hex_gpr[HEX_REG_PC], ctx->next_PC); @@ -580,7 +584,7 @@ static void gen_insn(DisasContext *ctx) ctx->insn->generate(ctx); mark_store_width(ctx); } else { - gen_exception_end_tb(ctx, HEX_CAUSE_INVALID_OPCODE); + hex_gen_exception_end_tb(ctx, HEX_CAUSE_INVALID_OPCODE); } } =20 @@ -1138,4 +1142,8 @@ void hexagon_translate_init(void) offsetof(CPUHexagonState, vstore_pending[i]), vstore_pending_names[i]); } +#ifndef CONFIG_USER_ONLY + hex_cause_code =3D tcg_global_mem_new(tcg_env, + offsetof(CPUHexagonState, cause_code), "cause_code"); +#endif } diff --git a/target/hexagon/gen_tcg_funcs.py b/target/hexagon/gen_tcg_funcs= .py index e7f90a0da11..6d5d99cee3a 100755 --- a/target/hexagon/gen_tcg_funcs.py +++ b/target/hexagon/gen_tcg_funcs.py @@ -21,7 +21,7 @@ import re import string import hex_common - +from textwrap import dedent =20 ## ## Generate the TCG code to call the helper @@ -49,6 +49,18 @@ def gen_tcg_func(f, tag, regs, imms): =20 f.write(" Insn *insn G_GNUC_UNUSED =3D ctx->insn;\n") =20 + if "A_PRIV" in hex_common.attribdict[tag]: + f.write(dedent("""\ +#ifdef CONFIG_USER_ONLY + hex_gen_exception_end_tb(ctx, HEX_CAUSE_PRIV_USER_NO_SINSN); +#else +""")) + if "A_GUEST" in hex_common.attribdict[tag]: + f.write(dedent("""\ +#ifdef CONFIG_USER_ONLY + hex_gen_exception_end_tb(ctx, HEX_CAUSE_PRIV_USER_NO_GINSN); +#else +""")) if hex_common.need_ea(tag): f.write(" TCGv EA G_GNUC_UNUSED =3D tcg_temp_new();\n") =20 @@ -100,6 +112,11 @@ def gen_tcg_func(f, tag, regs, imms): if reg.is_written(): reg.gen_write(f, tag) =20 + if ( + "A_PRIV" in hex_common.attribdict[tag] + or "A_GUEST" in hex_common.attribdict[tag] + ): + f.write("#endif /* CONFIG_USER_ONLY */\n") f.write("}\n\n") =20 =20 @@ -124,18 +141,10 @@ def main(): f.write('#include "idef-generated-emitter.h.inc"\n\n') =20 for tag in hex_common.tags: - ## Skip the priv instructions - if "A_PRIV" in hex_common.attribdict[tag]: - continue - ## Skip the guest instructions - if "A_GUEST" in hex_common.attribdict[tag]: - continue - ## Skip the diag instructions - if tag =3D=3D "Y6_diag": - continue - if tag =3D=3D "Y6_diag0": - continue - if tag =3D=3D "Y6_diag1": + if hex_common.tag_ignore(tag): + f.write(f"static void generate_{tag}" + f"(DisasContext *ctx)\n") + f.write("{\n}\n\n") continue =20 gen_def_tcg_func(f, tag, tagregs, tagimms) --=20 2.34.1 From nobody Sun Jul 26 11:50:59 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397233; cv=none; d=zohomail.com; s=zohoarc; b=Wsp4yf26jcxsn6jHx/uTQFJdkc/7mfadU6oR3Cs7KsgONp++cOB2LmWt1BwROxEs8Y7ql5goy5CUMVpUBMa2NGNOZUpvKItvCmskCcoT4f7Q1To3eynb9RtHKqVAdTMmA+VpXc7RizM2GVk3OXoSwdbzWllq5ZUyNKWyQUo4tHc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397233; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=qd0MRjIIozbImbBr0lnxAdZmpDNRrMGNSs+reFaWXjE=; b=Yywxzp5S7VuOmEJ3IagtyEdUNbPRp+jejBDv40adEisGYhZE0d9oBnQVKIXxsfXEI8tZIcBX8Y+KLuhnkSXIiC8M/9X0zAtGAQPruc43cBRiqYVsIdm49JM8Y2XAqOQgePPyf3+tb9sRUs0dSC5iJyHLQ69hKHiVdajAHG2cSc0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782397233628988.7368208671281; Thu, 25 Jun 2026 07:20:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wcktC-0006hZ-Gi; Thu, 25 Jun 2026 10:17:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wcktA-0006hB-F6 for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17: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 1wckt8-0008SX-QO for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:08 -0400 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9ju131723164 for ; Thu, 25 Jun 2026 14:17:05 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0j7dvnqh-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:17:05 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c8a940e76so743525eec.1 for ; Thu, 25 Jun 2026 07:17:05 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.17.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:17:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=qd0MRjIIozbImbBr0lnxAdZmpDNRrMGNSs+reFaWXjE=; b=fX NiQD/TfxpNfaypKefcumAxEWtGppRqq7VWlpnDk+IRTg2rHgZli3UHUZjMBgWY+K NnGzu2lIsQO301pG5Ip+OOxjIYQscpgl/QTO4KR184cHBqIqQfABvZTlZfFdYOFG Srv7RfrpKp5qMJO0jQD7/+jcDryIQpmRSPeCeqJhiMBUA67QCbA9xIU06se5qv0V itAzbAEyOqWfsTfbpKqyiovXx1X9yIhonqmrLGcq6Dyg1FkMOGOJzyQWbDgTw+wg cA/0gia3iVeDHeMahCBjFsmJdYiC4wQrfPGZ2cfgyR2rZQXpCXcDOlPDjm9AWBE+ mLxFeot6P/bqVXMtAEvg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397025; x=1783001825; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=qd0MRjIIozbImbBr0lnxAdZmpDNRrMGNSs+reFaWXjE=; b=dN6ESJwDUo5WslVldQKzIXvdN5VgpPK9uhQDezbxnLmvJbwijEkO/5MYMX+E+hHh+z iWN2WCNBZRd1RgiggXF8ZeVGnYuEgndF+/ncNREUrC9u56iVvMQsyndtV/hWSlKfNdzh Iv1acUv4odd5+IAXNgIfk+hvhCHjov+1EIA/b1UW+S9UhflcLYlrsES3GfoMtTbmphA6 BGy9KUIT6Dw4V6LD5u+DPqaynZSnv0d3Hk0HOhSqLm5qke3yYxk0PIw5umuYbn0d9Uoe 6V4kgEOoPhIG/UXN0NE9EqsIZIvbHwZDEeEMznQZZsmQ9ng10natHm2uf9PUb4IVLht7 O73g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397025; x=1783001825; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=qd0MRjIIozbImbBr0lnxAdZmpDNRrMGNSs+reFaWXjE=; b=cpstXsWpvvMySU5PnZYsDV1Dx2Q75KDmbSGp6UawclgqSAyN5hLkWrYl87BWr1geac H4I42um1T3pcEx9UDw0vRY9Wt13vPfj91dcPRs9C/z912XUNWaY+zVg2MGpwH42QQ7oO 38b/J4PByG8I2LSOp9A3PVESlxcsf71v01zi0FBEz34QxfOTGYlNZ8JLWNuLt/a33kMO F4BgdVn9+NOmEyZM2A1tSVh8BN1gmaWQ2pibavJ87cqf+GtLs5UI5GvR2gWyqexjxQV8 /BS3zDA6LuqnKXJCZTTFB/Ln9CKMEjCyqL0qWJMh11elzsgPzCq3+6mbE413rPDpAoeE EqkA== X-Gm-Message-State: AOJu0Yzyl1dZtXaQ3Au3oWBFvu3AmdgwgbL70Xn0LJKjvvkqVPwHDRYu UbS5EeTtwGQPjZpsLAZASpM93NtPtiIlRelDkQdBRVC49FL0SscwKsSWWopWhvQfhpzrhPasa3F rmmwPZQ//NrD1Eo7vuV1c7aYqveODdVJy20PQbTX/bW7vr7PK4WaUG5ogRbRZWGdmBA== X-Gm-Gg: AfdE7clYpfxJ8ddW/TJuq7Xmtx2gjtznGf7pgWZzFGZQddi50uifVsV+vuwXOYiprwq Y7PRZIP5+jr8g9p0aCV2H4csu95yFXKDYLW+CPXDfeMYAUSaVpOi7ynJAyZk9khW04vg2ONLSJb 00FUvjOdoteyMe5guW4+w/d5eIbSYN9dt8sDTRDwtv8BhF4ep5H67tYMGSqn/fPMfaxB0olnN2X i32IT3zrAFewEiHvaET4nDxTsHg1r5AWFR4E5Ys/4XvpOKEiDduaZ9FLHom9hOliZAP1hjaxLPR 9qo82wumWeFEojiZS+mmJBUvWbIRy6UdL8w1GTvSHx8A739JkG8EqCqY95K1xQe23KRJo3yYVyw X+7aFMABfXy/979u9nHgelOmMIBk9H7pUDofMl/qVf+04sY06iRJtccuPuJg= X-Received: by 2002:a05:7300:3b0c:b0:30b:6191:7f96 with SMTP id 5a478bee46e88-30c84de5507mr2444315eec.30.1782397024453; Thu, 25 Jun 2026 07:17:04 -0700 (PDT) X-Received: by 2002:a05:7300:3b0c:b0:30b:6191:7f96 with SMTP id 5a478bee46e88-30c84de5507mr2444223eec.30.1782397023430; Thu, 25 Jun 2026 07:17:03 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pierrick Bouvier Subject: [PULL v3 12/76] target/hexagon: Add a placeholder fp exception Date: Thu, 25 Jun 2026 07:15:29 -0700 Message-Id: <20260625141633.449487-13-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: 1ms2xGI5LkJAbY6QtuPz-8gI3HKFwtze X-Authority-Analysis: v=2.4 cv=NvHhtcdJ c=1 sm=1 tr=0 ts=6a3d3861 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=R5LHHePp8dzqxDYlWrYA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX1ygj6LqssG4g G32v6XCzVpqo7dedTlCaR20xKlOcy+sjen/taHYFLcss3HL3+SMoSVUJ3H0dTVQWh3KmHkp8R7r wPQ73Ha3q84Vf9ShxF68PYZk+umIoIw= X-Proofpoint-ORIG-GUID: 1ms2xGI5LkJAbY6QtuPz-8gI3HKFwtze X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX49N1zW074bWa M4LGSKj5Qvm68Ivnm3OhS20jIROgXTOUONdKGctT1CFQq73x0hPjWEJE49DL1UyRiKzx38eI10b BAUPr6coR3vvTBHcnNbt6xNrhWG6Z4Uka4Z3+6ueGEbs8tr3bJvV2K0kacUjwp15FMFCNdmDtud atZLhL5wpg1WscWT6usGEeDjcLPZx+Kn3JmjSNVlWey5SiNpGSMP3sT+JEQ3bOkheuIBVdn0Qqr z8uCVbtUCDUJndsmn/QQxkH9/fAUhJ1IUBZ5TaGdbKZV7hfJc10yHE678dzShZpkrvEbVbqhzaB CW/LrUxTUbahtwmhaSFKz9ynkAn6nZi8PHc+eEyrzjTlIRUDtrwAp+7snKU9vLPkWrVS8eo60ZV rGB5DACy3wksUgvhnPwRuJRSNf13Y4wE0zjlKuF2rhWVWZ3MtGlPaKqX6GXjdpy/o8YXjYXUxiK nuuVIb5NZgntQaxipsA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 suspectscore=0 adultscore=0 impostorscore=0 phishscore=0 spamscore=0 bulkscore=0 lowpriorityscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397234916158500 Content-Type: text/plain; charset="utf-8" From: Brian Cain Reviewed-by: Taylor Simpson Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Brian Cain --- target/hexagon/arch.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/target/hexagon/arch.c b/target/hexagon/arch.c index e17e714a6ac..0a400bf7a77 100644 --- a/target/hexagon/arch.c +++ b/target/hexagon/arch.c @@ -208,6 +208,11 @@ void arch_fpop_start(CPUHexagonState *env) * model it in qemu user mode. */ #define RAISE_FP_EXCEPTION do {} while (0) +#else + /* + * To be implemented. + */ +#define RAISE_FP_EXCEPTION do { g_assert_not_reached(); } while (0) #endif =20 #define SOFTFLOAT_TEST_FLAG(FLAG, MYF, MYE) \ --=20 2.34.1 From nobody Sun Jul 26 11:50:59 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397252; cv=none; d=zohomail.com; s=zohoarc; b=Gm7UuzFlpsHFk0huDFtF9zZKiyZCSHTc6Zdn4XjsIcYy8gH/nsdv7Nv2HLMWExRLRUtz9VBruhRaSGyw4KSL9FnnXhnNrxKP8Qw6nNHSur0jMt5Q6X/TnEUOlJ2QPpR5uC+GOt2vMYt+zAkeCe3fH0XNiA8Nty05PPrbqH2+Iik= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397252; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ThmCBEUUn0U8qb4sT7PqDbrtmt1EHLpETdzQjy89vaA=; b=OUTRUvQpepyTZSfipuAM18vk7DpDMpJB91SLwlMLbpOk2ZIxc+3dJs9TVG4gC997/Pz6KfErkuidIEqqPabED5HftLpFmV5eFQd+cHELKgO6kIdcq3RD6fYD8Dz42xJMhAuzGBjRFCONnR7uRYGJQ8Q4aBYuEJmtQtz6zpq0y90= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782397252878916.8984872597132; Thu, 25 Jun 2026 07:20:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wcktP-0006j8-Jx; Thu, 25 Jun 2026 10:17:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wcktM-0006iJ-EY for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:20 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wcktK-0008TN-Pq for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:20 -0400 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9k4i12048176 for ; Thu, 25 Jun 2026 14:17:07 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0uyqjf3d-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:17:07 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30c1f6c5559so2299075eec.0 for ; Thu, 25 Jun 2026 07:17:07 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.17.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:17: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= ThmCBEUUn0U8qb4sT7PqDbrtmt1EHLpETdzQjy89vaA=; b=mGaUqRuvG4OFSjZG scj0HrMRSpxzcbvp6YH8mGL5UzU4eJEx0gzEHOPeCscb0yFR/xGrmRBJHSybTb6F v36TepPDJCRuTHVYEwE/cr6Cr6a13U66AZFFdoFMvRR/kuoDMiFBlU5bhtlyEsVd cDtMis4qgReMOTIEBYxivvns0b9F06/g63A+5TTUz7BELQxDW971NtLxo6xKJJk8 6LNYq2L1gUAFvnQEQAVEULImbTM/2s2PzniOWu64S/tu2d73qo+nIHjnuXCLLa82 OWkwicf9D4kjmmGuTquoqMSNynuB3fF5iYHj5BEaeImuCCOMG+avk7XevKjARTxd mQt7Gg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397026; x=1783001826; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ThmCBEUUn0U8qb4sT7PqDbrtmt1EHLpETdzQjy89vaA=; b=Fy+gOyPp/7fdRelYKem3n/u/y84UCHhwmhAehc2sH7XpP2+oykGk4K3KsEft5edi1j kNXkQuxtU9aRJJmaCmYQ/ITj5sPVH7EAf0T1pWKcuyWmmRMbRGQNWt5vTo7Q7nvPpncB sbZk1GU41Hn7DMv+renl+s4CKlzUrOKuS94Lkj0fSKM1FK4RxZCFyl/UpLfLGp9KwVH0 ydojK0TU9YE89dA5HLwZBliM8DVWQ6Rf+nIXcZj/UWSL3xX1otaOG18db3mQZmFec/wm /iTj2YqpZQkGx0tEkRzOkBo83TjDSdJSMw2JMeSOLMpSsOs9YkOZQSXhAAMvnnny/RIj J98Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397026; x=1783001826; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ThmCBEUUn0U8qb4sT7PqDbrtmt1EHLpETdzQjy89vaA=; b=ieG5Vg2ZVwjjb7OlzWDM2CPYFwtQzWe4o46gfR8BApO/yKc//cDRJufrB/3O1eUX8r O2HMIMtGrPMwGqha+L6Wk+LLAWmp04lzhb3TVhCpA8mpBS1P2CRfCVbGXpxLGQEWB6tq 9KQNh3xZFMko6nshJZp000uRvqdJQGK6ojp54BQkPHU0ZcWXYO0eMvzsD/Lb9J+hUMcU kyxfhzKbuZ0rPwwdKgvfyN1jTokz7QYfk3K4oM42IpluC1O35lSEBPG12LvPKWLJ+UsA OcGm2GhoLHDRvCmJc/Rv9CyZ6QXIuhbcb9tMZhr+KbxMHLcliUY7KakZPkYLRVc/xd1w 3Elg== X-Gm-Message-State: AOJu0YzMU4fn17qgu8WhbWkq550v9K/0T3P5XZOcFblJsKTVODsrYZ2M m6bcB9JfdW6Bi1wM+opg7WWmEw9lIzSqzfsLJ5cuQdqoRdxTCLjZQHi3f1jf0ROQi7mObRpH067 DMs+CO4Ze4MWyS84obL+06gd70EIFY8KHVCaKaZQTLLgLHBUjE4cxKoJbr9RTlGDk2w== X-Gm-Gg: AfdE7cl3VyHlnwBG8RFGEArM+LpymD0UK5TAMeRUxzGCn41EOOLoJ+Cegzz3KsN2OXp NXTte+lmTSdQ10vOVzqJwR3q3KNhmN0PolJ62C2De2Ll82zBLazmtWwrlPmgb4OLPv62rtaET+v Ob7bck/Tb5jeIU7piGCYLaQlAv2kHRR+SRb+59KtF8lwkETc0znx/LnQ0kHZi5VeU0492U++Wma B3X6xp/wBSKL9aqJQcTgSN5ik9QSdA9Oezp2xXl4Lf4h+tGKOYQiLy5krxAwtVpYuZ5cgIhLmQq c9yP7pAVO130we43aj+2g9pO2dtfSOfA1iDxK49JsEId9sGkTCD2igMAxbJIUNePuJ6+BgsSLOE eusRYW9bYebKzkIdLZWyHFRDi9innSL1XHDryw9k31xtkRWTQBy/cRcftFQw= X-Received: by 2002:a05:7300:2321:b0:30a:e52d:fb27 with SMTP id 5a478bee46e88-30c84b84f6dmr3264581eec.11.1782397026109; Thu, 25 Jun 2026 07:17:06 -0700 (PDT) X-Received: by 2002:a05:7300:2321:b0:30a:e52d:fb27 with SMTP id 5a478bee46e88-30c84b84f6dmr3264423eec.11.1782397024812; Thu, 25 Jun 2026 07:17:04 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 13/76] target/hexagon: Add guest, system reg number defs Date: Thu, 25 Jun 2026 07:15:30 -0700 Message-Id: <20260625141633.449487-14-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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: 0gUENbOlLFNWJP0ciloyXZsvqzxtOQ3M X-Proofpoint-ORIG-GUID: 0gUENbOlLFNWJP0ciloyXZsvqzxtOQ3M X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX8UktwxPJs+2K CRATXiXo6gsRod2gFVd6e++m0BkvQweZKwW/fIWnmnI5bqaQRIRfc969bjc3EmjNCxqDFJIXd9D DLftYT1rcW2zzmCVpmlBzQhkboimeMY= X-Authority-Analysis: v=2.4 cv=EsLiaycA c=1 sm=1 tr=0 ts=6a3d3863 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=pGLkceISAAAA:8 a=tCkOjFGBvLAhDY2OQcYA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX1O8jGhpnVxV5 GVgY7Hz8iOluArVQk0QYf5PnrNs3Jf9Y5GFxUWiINoTOq7IdxfYn2MOwtDXOCoDL/I+IZMSz/Vb QAkw0zhhspTi/9+AYvw+lVgOapGm+Bevj19AmJJ8dqXOUvpb/7AjkGWTy3sK/MDUJ8t1z2MO3iy btAMNGTCMe2VEaV6w9MKHrXoF5/aHfh6S7Tt9mJx8LxsVBlCviQqhPHPf07Y4pkppwwFR4RMUAe xbHNWmv+rGTjzNAaIbssJ7/g46Ld3G+n8ZvbyADIwpA7gkXt1HxMXuxsZeJ20TmyWJ40NefapzE Nsyn5PBccPmyywwII7+uVorTaeMuuB7LKoEU78HH/dZzh6eFgJzlVdkORG2hYEthixME1jAbQP7 eiqXzgDg3xVW8O0t5uICL01aLrtohYYT9zE6RIy52TgDatXZl1B5SwzlghB6OQ7I/R3aOdG53oM s+EHDIU2e9yiZYViWaQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 bulkscore=0 clxscore=1015 priorityscore=1501 impostorscore=0 adultscore=0 spamscore=0 malwarescore=0 lowpriorityscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UPPERCASE_50_75=0.008 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397255096158500 From: Brian Cain Signed-off-by: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 7 +++ target/hexagon/hex_regs.h | 117 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 124 insertions(+) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index e22567d8e67..e0cf87e5a4c 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -20,6 +20,13 @@ =20 #include "fpu/softfloat-types.h" =20 +#ifndef CONFIG_USER_ONLY +#define NUM_GREGS 32 +#define GREG_WRITES_MAX 2 +#define NUM_SREGS 64 +#define SREG_WRITES_MAX 2 +#endif + #include "cpu-qom.h" #include "exec/cpu-common.h" #include "exec/target_long.h" diff --git a/target/hexagon/hex_regs.h b/target/hexagon/hex_regs.h index bddfc28021c..214b7b8fde8 100644 --- a/target/hexagon/hex_regs.h +++ b/target/hexagon/hex_regs.h @@ -81,4 +81,121 @@ enum { HEX_REG_UTIMERHI =3D 63, }; =20 +#ifndef CONFIG_USER_ONLY + +#define HEX_GREG_VALUES \ + DECL_HEX_GREG(G0, 0) \ + DECL_HEX_GREG(GELR, 0) \ + DECL_HEX_GREG(G1, 1) \ + DECL_HEX_GREG(GSR, 1) \ + DECL_HEX_GREG(G2, 2) \ + DECL_HEX_GREG(GOSP, 2) \ + DECL_HEX_GREG(G3, 3) \ + DECL_HEX_GREG(GBADVA, 3) \ + DECL_HEX_GREG(GCYCLE_1T, 10) \ + DECL_HEX_GREG(GCYCLE_2T, 11) \ + DECL_HEX_GREG(GCYCLE_3T, 12) \ + DECL_HEX_GREG(GCYCLE_4T, 13) \ + DECL_HEX_GREG(GCYCLE_5T, 14) \ + DECL_HEX_GREG(GCYCLE_6T, 15) \ + DECL_HEX_GREG(GPMUCNT4, 16) \ + DECL_HEX_GREG(GPMUCNT5, 17) \ + DECL_HEX_GREG(GPMUCNT6, 18) \ + DECL_HEX_GREG(GPMUCNT7, 19) \ + DECL_HEX_GREG(GPCYCLELO, 24) \ + DECL_HEX_GREG(GPCYCLEHI, 25) \ + DECL_HEX_GREG(GPMUCNT0, 26) \ + DECL_HEX_GREG(GPMUCNT1, 27) \ + DECL_HEX_GREG(GPMUCNT2, 28) \ + DECL_HEX_GREG(GPMUCNT3, 29) \ + DECL_HEX_GREG_DONE + +#define DECL_HEX_GREG_DONE +#define DECL_HEX_GREG(name, val) HEX_GREG_ ##name =3D val, +enum hex_greg { + HEX_GREG_VALUES +}; +#undef DECL_HEX_GREG +#undef DECL_HEX_GREG_DONE + +#define DECL_HEX_GREG_DONE 0 +#define DECL_HEX_GREG(_, val) (1 << val) | +static inline bool greg_implemented(enum hex_greg greg) +{ +#if NUM_GREGS > 32 +#error "NUM_GREGS too large for greg_implemented(): update `impl_bitmap`" +#endif + static int32_t impl_bitmap =3D HEX_GREG_VALUES; + return impl_bitmap & (1 << greg); +} +#undef DECL_HEX_GREG +#undef DECL_HEX_GREG_DONE + +#endif /* CONFIG_USER_ONLY */ + +#ifndef CONFIG_USER_ONLY +enum { + HEX_SREG_SGP0 =3D 0, + HEX_SREG_SGP1 =3D 1, + HEX_SREG_STID =3D 2, + HEX_SREG_ELR =3D 3, + HEX_SREG_BADVA0 =3D 4, + HEX_SREG_BADVA1 =3D 5, + HEX_SREG_SSR =3D 6, + HEX_SREG_CCR =3D 7, + HEX_SREG_HTID =3D 8, + HEX_SREG_BADVA =3D 9, + HEX_SREG_IMASK =3D 10, + HEX_SREG_GEVB =3D 11, + HEX_SREG_GLB_START =3D 16, + HEX_SREG_EVB =3D 16, + HEX_SREG_MODECTL =3D 17, + HEX_SREG_SYSCFG =3D 18, + HEX_SREG_IPENDAD =3D 20, + HEX_SREG_VID =3D 21, + HEX_SREG_VID1 =3D 22, + HEX_SREG_BESTWAIT =3D 23, + HEX_SREG_IEL =3D 24, + HEX_SREG_SCHEDCFG =3D 25, + HEX_SREG_IAHL =3D 26, + HEX_SREG_CFGBASE =3D 27, + HEX_SREG_DIAG =3D 28, + HEX_SREG_REV =3D 29, + HEX_SREG_PCYCLELO =3D 30, + HEX_SREG_PCYCLEHI =3D 31, + HEX_SREG_ISDBST =3D 32, + HEX_SREG_ISDBCFG0 =3D 33, + HEX_SREG_ISDBCFG1 =3D 34, + HEX_SREG_LIVELOCK =3D 35, + HEX_SREG_BRKPTPC0 =3D 36, + HEX_SREG_BRKPTCFG0 =3D 37, + HEX_SREG_BRKPTPC1 =3D 38, + HEX_SREG_BRKPTCFG1 =3D 39, + HEX_SREG_ISDBMBXIN =3D 40, + HEX_SREG_ISDBMBXOUT =3D 41, + HEX_SREG_ISDBEN =3D 42, + HEX_SREG_ISDBGPR =3D 43, + HEX_SREG_PMUCNT4 =3D 44, + HEX_SREG_PMUCNT5 =3D 45, + HEX_SREG_PMUCNT6 =3D 46, + HEX_SREG_PMUCNT7 =3D 47, + HEX_SREG_PMUCNT0 =3D 48, + HEX_SREG_PMUCNT1 =3D 49, + HEX_SREG_PMUCNT2 =3D 50, + HEX_SREG_PMUCNT3 =3D 51, + HEX_SREG_PMUEVTCFG =3D 52, + HEX_SREG_PMUSTID0 =3D 53, + HEX_SREG_PMUEVTCFG1 =3D 54, + HEX_SREG_PMUSTID1 =3D 55, + HEX_SREG_TIMERLO =3D 56, + HEX_SREG_TIMERHI =3D 57, + HEX_SREG_PMUCFG =3D 58, + HEX_SREG_S59 =3D 59, + HEX_SREG_S60 =3D 60, + HEX_SREG_S61 =3D 61, + HEX_SREG_S62 =3D 62, + HEX_SREG_S63 =3D 63, +}; +#endif /* !CONFIG_USER_ONLY */ + #endif --=20 2.34.1 From nobody Sun Jul 26 11:50:59 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397196; cv=none; d=zohomail.com; s=zohoarc; b=Y3UbcvjUzhM9M6GVesH3H2DANAKxUU6Z7crgIQ2dkbmS4VYTm+gBx6uLUhHfLtU3qMjV3VrzbGv3BfOOdgXaU4vaMbEoHs8yB+K44e2PUqA82iTUHN07K9wrSTFennTsxI2EiSi/y5m5LH1mL5eJmgU7lkUt1TEtoAIbYlB0fRQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397196; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=X1535rWHbX3maN5NHx9P8KfIpPdOoals3VppoQq+RNI=; b=YYz8SXEmh1nRRphNlumdkfU25A+ULtjNdBXIUvBviwC5RGEtWVmao+nHZep6I97iCmpSV7iICi2TG4Y/rIsNR4HeovgQ1Vl4Pi7DvZjeQpRFbGlBTSpIJW4AlFQd35iKuoXT675Dg6Xwmr3II1hekGNb9NE0FSSzh86BpEV2KY0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782397196084374.3753956754174; Thu, 25 Jun 2026 07:19:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wcktR-0006jI-AI; Thu, 25 Jun 2026 10:17:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wcktO-0006iZ-R3 for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:22 -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 1wcktL-0008Tc-F1 for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:21 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9jvlt1754134 for ; Thu, 25 Jun 2026 14:17:08 GMT Received: from mail-dl1-f70.google.com (mail-dl1-f70.google.com [74.125.82.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0w0q26u9-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:17:08 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-137e49e896aso929612c88.0 for ; Thu, 25 Jun 2026 07:17:08 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.17.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:17: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= X1535rWHbX3maN5NHx9P8KfIpPdOoals3VppoQq+RNI=; b=AuORlnyYTQ/YQCS8 39jiNuNzbucg409N+pTzldAG+CexCBcAzGAtW29MlW3jznYb/7MR+n1B0BvRA26D k/FlOraRUhCKwVENmuAqii249wfMFfpc/eX8rGzBnw2/1hFtEU9SPmj2ASocXqn2 RR1fYccPlUQt+5uZzxY8B+xrNssWSnbWyiDqmP+bnS0aOvGPhZhZCjNHdlKmas3L OR0symWQHIJH3Whbwchd1/AD1GjihDs53zNqR0vi6T8J3fZYECZg67Rv8K2N7fRG 0s/VxHBPWZTC1um1TVK4GRIst4DkNq3MqH0Wjq67cVVO379HEDwb++i62TyE0oXo 2rFJFg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397027; x=1783001827; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=X1535rWHbX3maN5NHx9P8KfIpPdOoals3VppoQq+RNI=; b=e5G2rFO8tp4GOqAcPVD99hqwnvpXF8oxs0DNZM1NqElr8m++Sk2KTaFmA/RDWXcTqU jucIcpsfXegCzHt0BqxWGlV75nuKQFacXbTLFd+0NjAes+lh9jbtCSccE9UnIyBu8b1S rLF8vdr3W3ojsvbdqB6jyMvjZ3ffgOcg4sI+R96sOhE1DpmqCSZmpc7cFkkHW1+Em68D JaXluT5WT7s33wSjeZZ3KYw8wSlS4xZmknMjFL3Eey4McZIgNPqAjwHAhbQyQRpAHczB k+jVP5kPO55auNGlU98TpfFbI5x+WsrI1tm0jd63dHjBdXwOGdGDeoqXj3gUpIK7UheF YykA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397027; x=1783001827; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=X1535rWHbX3maN5NHx9P8KfIpPdOoals3VppoQq+RNI=; b=pViogyGW0myDhaFH/ipBhM6jGNpy3YybAtMvXYuqKKhniaHZBU0+hEEs2thcxU6njP DOX3ERKmVCNUCd4DY+O8EnhXGX2a9jxGMHrlCJGGO4SVISTUDM6+VCeT2m8/6tFQicbV W2LnxxIYeCjA++XD8tUH21eSH8TxjcaFeVXR1nI4xt/9jwcNAmEcWR78qhjXux+JRH+U mCMj7lml9MlY74NKbycG1Ia7vb7dbdrWOSxnjWtihvGtuEnBg8NIDzCdA7QduQv1LpIC sgogoX+R37AEPTTzfRRUjjyqobYFxnz61ULvbSnEZQOqCKY4BJ0gPZNIF6f0mMtDLVSO yDng== X-Gm-Message-State: AOJu0YwDzgR2sfu6vnhzT8AaWYQti4VG4l9oZMBl+h0NoAiLv0rO0RGV hsT/pt9LJveXHj4v675r2iATroVtSZgZP0XwhtH6zhz7a+H6NEUhPOrvPdXXP/ez3vuHU0bZjoT FbPfFy5g9Ep9ZPv3e9mgRIFEMMbMSbxN07sfuKMT5/Ccf3KYEajood2eAGJvZVhBATA== X-Gm-Gg: AfdE7ckQVY9NCHUVcp07xcnTBPYi5APZe2oBM/DKHoXnMCzmQNy8L/xwc6q4/4nq7hg OE2KpbVF+pYlSR5lHFD2TkCHwvvieT94vV9WI97DeqLl+lNbYcXF+dBlbYZLsQY/cE7TLQVNjUa Y6j6TP7TXZn3YUf71kZw8NdjoKXHyhs0XaancW3YH6ZMqFow685dXxbTi6206m0XcDXYK7SQXN8 eXrc2icVuy2C4jpvYyXGHJSvSJFyeJihlb76YkpEbDIc6O8RSCmRbiI3G9mrBwvWi5i1TKooe+X a8+FoK8Quo9YIGmxQpe9HDqu4xOBssWeRj+Wyw6aevzwL4s71yKrVdo27Qg86pVU7Iv4LwfC8iW atni5F7sZ6YasBB8jINvWSSdfwRLQAcVb7XsyD9AqBzM85ZWzWR0HNoOOi/o= X-Received: by 2002:a05:7022:61e:b0:138:59d:e1 with SMTP id a92af1059eb24-139c3d145c3mr10206849c88.24.1782397027251; Thu, 25 Jun 2026 07:17:07 -0700 (PDT) X-Received: by 2002:a05:7022:61e:b0:138:59d:e1 with SMTP id a92af1059eb24-139c3d145c3mr10206814c88.24.1782397026584; Thu, 25 Jun 2026 07:17:06 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 14/76] target/hexagon: Add guest, system reg number state Date: Thu, 25 Jun 2026 07:15:31 -0700 Message-Id: <20260625141633.449487-15-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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: taXm4pZlb37UWlEMF6glGLHEktFDwukt X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX6mE2vWiZeBU4 4wBvJ+hHpapo8pkueX2wH64l4XBXu+f43Lm7SKyhBLX6Jwdcxf2g38FmuMBqP8QyOF7ZWbmzLlk 9OAtLi1MSCzEHLn2BrnJYAWZ59kFvv0= X-Proofpoint-GUID: taXm4pZlb37UWlEMF6glGLHEktFDwukt X-Authority-Analysis: v=2.4 cv=R6Ez39RX c=1 sm=1 tr=0 ts=6a3d3864 cx=c_pps a=SvEPeNj+VMjHSW//kvnxuw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=ikZfMmNF8Hme0_TNbpMA:9 a=QEXdDO2ut3YA:10 a=Kq8ClHjjuc5pcCNDwlU0:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX1adtQxEaO25U Ba8wT4zFOCY0v7FwSX2Z8yYQmHwuGWGcxRTODkZmllh6HM1zZiWO9D65wuUUcTVGSMzHl/MvDea zO5U3gRdS7QojrY3EWGMt1cK3hsUR48JFvPyrOpEzYNf+FejeEwE/KTJ6CytHY3DJ4ZCCDgo5nU j8G7H2ZmGaJhuoL5Q91/IxNhwzFw6v6uiJKj38JyriWRWspiME++o1zEsXISdKuh2VtZHBcAdxV LF/1rZmXd8CTzkaI86n2+crY9ixkmgfGhJfVk/+ta/7g1b83mALX8pjUBS8j9bvK0v9W8bctCoz 6vS4mfI2fWikcw4hquWiT1bMFfy5QFoITG+atdhsjtfG2+8YVRo8xYn/RZUwaDKcWUjsd3NQe1z fqUhyJzm83x5EHCr828xkdXo6MK9kBi5Q+rbObPJwd4k7JDU4f2884gwv8ez5aac4+E8ZjVqUb4 Uq6VWDAHg5cEkK6Wovg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 clxscore=1015 malwarescore=0 priorityscore=1501 adultscore=0 suspectscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397196604158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 11 +++++++++++ target/hexagon/cpu.c | 5 +++++ 2 files changed, 16 insertions(+) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index e0cf87e5a4c..4bea953ac73 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -100,6 +100,17 @@ typedef struct CPUArchState { target_ulong stack_start; =20 uint8_t slot_cancelled; + +#ifndef CONFIG_USER_ONLY + /* Some system registers are per thread and some are global. */ + uint32_t t_sreg[NUM_SREGS]; + + uint32_t greg[NUM_GREGS]; + uint32_t wait_next_pc; + + /* This alias of CPUState.cpu_index is used by imported sources: */ + uint32_t threadId; +#endif target_ulong new_value_usr; =20 MemLog mem_log_stores[STORES_MAX]; diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 5bf6e85b939..d30e5b64eac 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -299,6 +299,11 @@ static void hexagon_cpu_reset_hold(Object *obj, ResetT= ype type) set_float_detect_tininess(float_tininess_before_rounding, &env->fp_sta= tus); /* Default NaN value: sign bit set, all frac bits set */ set_float_default_nan_pattern(0b11111111, &env->fp_status); +#ifndef CONFIG_USER_ONLY + memset(env->t_sreg, 0, sizeof(uint32_t) * NUM_SREGS); + memset(env->greg, 0, sizeof(uint32_t) * NUM_GREGS); + env->wait_next_pc =3D 0; +#endif env->cause_code =3D HEX_EVENT_NONE; } =20 --=20 2.34.1 From nobody Sun Jul 26 11:50:59 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397261; cv=none; d=zohomail.com; s=zohoarc; b=h2nWmudE9enSjhSxVvfU0Bb/A7WrlaNiOJBjbnKvXXM7ENtlFg5Zbd2TGdsB1RDAIiivpaYSYTm/0k9l/baqNrdnUhrhKZTGSJJUnkxDG478y0YWt5HxNqCfvxNBtbEwVSQ9up/irZ1ADm3WnANmzgZYFPiP/3oVHZ0AstBm6n4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397261; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=AWqgRF4Ibw8S5E/4OIgHvd5Hhd9R0yIZ8RFAsz/XZEg=; b=isYcdIhx19eB7a5zQHoJNO9i1Rh3kHT9Fex05WKH6cK/Iq054ilvafnDTP3FLHyhAqvUVHIE1Ruou8Uwrl9DjUrwAVAxil+fmRnZ5l54YiRNmAg8Rd0ZO/Hj5Op55t3LWYbFFVDQ5YeYWbX4IWDcttBKI97En2SfsoGB4eREyiQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782397261426936.6950001029819; Thu, 25 Jun 2026 07:21:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wcktT-0006pc-Px; Thu, 25 Jun 2026 10:17:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wcktR-0006jW-Lg for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:25 -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 1wcktP-0008Tq-44 for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:25 -0400 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9jvpA1723469 for ; Thu, 25 Jun 2026 14:17:11 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0j7dvnr1-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:17:10 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30bcb065bfdso2672142eec.0 for ; Thu, 25 Jun 2026 07:17:10 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.17.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:17:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=AWqgRF4Ibw8S5E/4OIgHvd5Hhd9R0yIZ8RFAsz/XZEg=; b=Jq qRtymc1MnspgLZmlJBibc8/YxCEtyZu8ythjk7KcgWV81o9PKfe/0Bn0KH1DpzGg BETVHe6IZbLESrzk8PpYf4ateYo1QM2zVvrfXbgFzrfvqfyem1BDBLQqL03Jk5RL TOlO5XImf18X8Rq6pdwmrGaAiTuXjqvCd+yuHBjHX+NOZAd9BP+1vUdj6wyBuxeK iXq/lAfDKAtyPq9ZwcpBh3I3xp5vTLhRsYFwTzT/g9e5eoSXGvrNOk0BXJKwmioq zidzv/Rw9f+GWplOSVKV1OjC/+7eKWSShfRBRzqwTSisrHyr4DMd0kiXR+o1Mjfx Z5zaSou6wLAvpPeGXlOA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397030; x=1783001830; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=AWqgRF4Ibw8S5E/4OIgHvd5Hhd9R0yIZ8RFAsz/XZEg=; b=JnPdDEJKkmuIpxiGmAdvGNTUXIHowt+9KaNNpDVygvFBBetk9FvPjPNeaviQ4UBizk pLERj0dm3MZZxSuKNtapda/EL5Inc9tPEmRB2W4LFvriaH3IDbWmXq1RBX6zbg7d/j6N 3cU7XOGIlbck2q9E0yAFNWynfs4IV3Et6ef/qzyFMTFA8QrqFo8GXuMM51rAIWMQUmG+ w6oftaAS2qL99j3HJaCbaxl/eMKsbGplw5/g+UyBTVr2WZ8iuKx2fMzoNmol43NsYc6Z 9tEFdpJzy7f1qBfaph3Xdg7bUxmIHGaZxqtk5f+N9LNuLvdv5BS1lYdeK1njZ2FU9ot4 s9xw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397030; x=1783001830; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=AWqgRF4Ibw8S5E/4OIgHvd5Hhd9R0yIZ8RFAsz/XZEg=; b=XtuHGu5W9DxmdUa7XmFaLZaCIZi2tnmiZY1M9BsgWh8IenZuqa1Wd+NyM6y/sn78rE hb6Niq/QvzyJ7PuX1s2sT8reJ9y/WOH7AVq5PQKuorIgmHOTaatMe/zp9ypt7U4jdgQT WTtA7kPRo6qwNz/1p67QgfpRFdFR3UXfUMByZN/LZ5GxSPeUzhpCPrQIVnqrwpq4SYyC 1m3jdoBNTV8GlXV25GYAgbOydZwGU0y/kIggs+d+IHiGjyn3SiEoV6Zd9xqSO4zbeMgp l/cqkxZzopR4nI8yXPNLlj/lDyWLs0UfmC3wkfq+NlT4ueJKAj633WYVZzwI57OhM6hb 1ESg== X-Gm-Message-State: AOJu0YxVd4zJjB+iix6D0P6jBHJBDo1OD9vN2KzT/D0mqyjgc2Z40v9h gxAOXPhlFrxpEi6DGOe/05apKHwBRKn1dlbf8Fy5wbtbS9crunwKonILkxqeXRIupIf0G+HKqV9 5fE5v7Sv1PEVVICeNLHE8DwNF9iy2ku3MdqQ46S+QwbkMiacW3hfExcfOsEK41eJfJQ== X-Gm-Gg: AfdE7cl448BsPSdk2msL8qE0VHwsPoJHxL1PQRh46069GZEiAKeU4mpPi4RF5ngS/lL z99hboOxn4XSYInTbdcQzTksJmIls+VwfQdimtW04d4ukxYiClXnNAnvWa+fkI10CaN9mvBZlDu 8J3CT+6Ykq1/4ih8/hWXDSHWrVAArsOQpKYHC1umGgBkVdC77sLVX3boePgo1/eMUZbpmO+mI4N 92baSmVGTnvNHa5QwlF3DA3s5EDnXtGdLkI8lJce34es8+XhcPY8v8yTjc+q7Zx9HwZplr8wEgK Tb3GYVpLlvhFvZjS9yMUtKs6i3b1ArBV0DjYCiC5reMv8Vt1493wBIuBNrD7v0fT4NeN/5aKI9c CpoFjK88OnjM71v+Jgp6lXFpZDEdzTf9eCaqGX4Zdnrl0/X9EBSrQplM9PC0= X-Received: by 2002:a05:7301:60c:b0:30b:e14e:b5e0 with SMTP id 5a478bee46e88-30c84d9ba0dmr3108226eec.34.1782397029651; Thu, 25 Jun 2026 07:17:09 -0700 (PDT) X-Received: by 2002:a05:7301:60c:b0:30b:e14e:b5e0 with SMTP id 5a478bee46e88-30c84d9ba0dmr3108149eec.34.1782397028898; Thu, 25 Jun 2026 07:17:08 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pierrick Bouvier Subject: [PULL v3 15/76] target/hexagon: Add TCG values for sreg, greg Date: Thu, 25 Jun 2026 07:15:32 -0700 Message-Id: <20260625141633.449487-16-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: QifqRYEda-jXrY6ejatNoZXDYUaMwdrN X-Authority-Analysis: v=2.4 cv=NvHhtcdJ c=1 sm=1 tr=0 ts=6a3d3866 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=8kp5zrIFwsha1M26KQwA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX+1/rGtyfjpnn H29HgSiGcSeWFoG+CnVQc4urnmP8K1MaLutiqei0ksnZArRwHYFAaHxhH2rE6nMmnNCDhxk+Mqt lLzqvhpuylFUyXoaY49QsfeUZrTBO+Q= X-Proofpoint-ORIG-GUID: QifqRYEda-jXrY6ejatNoZXDYUaMwdrN X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX1gEx4lhom+pP WhASMh24h5KL0bIFZAjMnIYEmRh7VI38pXIB9mFtbf4HWApPhhzSXRsqphurW0n4h7EnZGk35Uf ihgRmfMOwsf81mBQS3swbqWgD119yGuhlOHSYz/xSl9GQTz2jJu/tpy7rVXHPXyoVjd8RPXkxJ2 VP/andNFp0QXR9tUI/mMFF4+YdK8EMG2NnzmRzeW3dAlTZRx98Bw9p9AHdQM1zy5ByWA8FJqP/d GByrSQwG0o+4nAhFlUQjOzn/uWDee3/DjaXRnZPkfXBBRiVu7yNFU65o+klUpoma5TRFOcvwzGV 6rAHSnQNTBlFA3QBHWZ5cXLvBFIYn/F6EhviQfdYglwThnGJk3UCEHwM7CEUKoSe2oCfGwQSQ+x KKnQCabBsFQIOPpSz4425bHWDPB3BEL2rO1ZZg4UkqOOYaFC6Z/dIs6p9TzrhzwixSpEayl8n4o qR+Ni39L8kNRDDrK5Qg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 suspectscore=0 adultscore=0 impostorscore=0 phishscore=0 spamscore=0 bulkscore=0 lowpriorityscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397263178158500 Content-Type: text/plain; charset="utf-8" From: Brian Cain Reviewed-by: Taylor Simpson Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Brian Cain --- target/hexagon/translate.h | 5 +++++ target/hexagon/translate.c | 16 ++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index d80bc532e24..d8eea56191d 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -282,6 +282,11 @@ extern TCGv_i64 hex_llsc_val_i64; extern TCGv hex_vstore_addr[VSTORES_MAX]; extern TCGv hex_vstore_size[VSTORES_MAX]; extern TCGv hex_vstore_pending[VSTORES_MAX]; +#ifndef CONFIG_USER_ONLY +extern TCGv_i32 hex_greg[NUM_GREGS]; +extern TCGv_i32 hex_t_sreg[NUM_SREGS]; +#endif + =20 void hex_gen_exception_end_tb(DisasContext *ctx, int excp); =20 diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index d61658a798c..97849ab861a 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -66,6 +66,8 @@ TCGv hex_vstore_size[VSTORES_MAX]; TCGv hex_vstore_pending[VSTORES_MAX]; =20 #ifndef CONFIG_USER_ONLY +TCGv_i32 hex_greg[NUM_GREGS]; +TCGv_i32 hex_t_sreg[NUM_SREGS]; TCGv_i32 hex_cause_code; #endif =20 @@ -1084,6 +1086,20 @@ void hexagon_translate_init(void) =20 opcode_init(); =20 +#ifndef CONFIG_USER_ONLY + for (i =3D 0; i < NUM_GREGS; i++) { + hex_greg[i] =3D tcg_global_mem_new_i32(tcg_env, + offsetof(CPUHexagonState, greg[i]), + hexagon_gregnames[i]); + } + for (i =3D 0; i < NUM_SREGS; i++) { + if (i < HEX_SREG_GLB_START) { + hex_t_sreg[i] =3D tcg_global_mem_new_i32(tcg_env, + offsetof(CPUHexagonState, t_sreg[i]), + hexagon_sregnames[i]); + } + } +#endif for (i =3D 0; i < TOTAL_PER_THREAD_REGS; i++) { hex_gpr[i] =3D tcg_global_mem_new(tcg_env, offsetof(CPUHexagonState, gpr[i]), --=20 2.34.1 From nobody Sun Jul 26 11:50:59 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397257; cv=none; d=zohomail.com; s=zohoarc; b=f0JmRxD9BuONGT+YtuipAONbrC56jzWMa2mp0ew9uXIR7MwV7C6SFfo1uEwZPK8Odpv0gVjnusVHtwK8GCfpoDnKPqcoa6dF3H1lnt0y6HeIAhO6cGLT20xbnVAFsj0fJjRI3iHAWPwjKFjEsqlPBIUQcxyxL+9Q9/Po4LgA+Pw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397257; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=3FB08ozXJ75KuaQ0Uu8ai6pxj0RZ56tBJAjvVwXnq20=; b=ce2Fzy8RhptSMxzyyAjK4ftpDPyzFfASM2iaN04bQ0NjVRdi3zzZhSMv2w2H10Mmxqp/q/jgVKQiFfzlIyya7vUTxZh9fuPRYBD3bvRXbdj5fAIL8L0i75NveTfKcyO4BS3DaivqnUg7TEUkIHqIddRc925Lkbqm0Q/YnwNWPdw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178239725724449.597005788831666; Thu, 25 Jun 2026 07:20:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wcktT-0006pi-QH; Thu, 25 Jun 2026 10:17:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wcktR-0006jV-KB for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:25 -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 1wcktP-0008U3-JQ for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:25 -0400 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9kAfr1921421 for ; Thu, 25 Jun 2026 14:17:12 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0ueuajux-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:17:12 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30bcb065bfdso2672200eec.0 for ; Thu, 25 Jun 2026 07:17:12 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.17.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:17: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= 3FB08ozXJ75KuaQ0Uu8ai6pxj0RZ56tBJAjvVwXnq20=; b=jl9O97QcOmmmWiIR fB6Gn7yE5xHJw5A1vFTi2rlMnpIoheWy+cXzcmcQJW3i6ZrYi53+blFI8ShiZSBk Ykole5r5dNvB1YgzOEH+Z1If6uW9CkSUsvSOLDJp8c5+PpmBlRGgXTnU2jaEhQPP NVEWPmP6j9gNnyIIDuh/Q7sH4KAlo2VdUeSQuUKhQd+gPwOepM+ZFdrVuDc6q1WC vdaYFjXE2GamvqXNDGHSGHZHWGVlYEZLI8ZJ0eVEVR2B/fn6hOKKGZrx3SndmwQE 5/JykcWMa2caNCJ6fKRuP+gPqdOjWx0faXgGFefyOZ/BRSJwFiKcoBc1PDwJI9Hh aAKF0w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397032; x=1783001832; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=3FB08ozXJ75KuaQ0Uu8ai6pxj0RZ56tBJAjvVwXnq20=; b=Mac33QDS78RKHo8tmSv4nTX9QlJ0r1WB0bjXu4m/0cupjrNEmnVbHwZdwFRHPsqVCu gUmn6mNYi5n65S7Uo7xWv0SuQFpNJuivjiKPHphsfKJS+b22CuZgATOiFzqCjBUl2kIO FYOwYuaUIOtHt4tmEcM1mnqEOtqeDAl/Xz8bf42AqlDGuLDyeLcyPEUlcTfJgBrW/ap9 8zoXsK06oyFhlGpT60bAVhDmPWPWn1UdVWhTkj8M3bxJy5J/28/MXKllnkZYfrK4qpiO DFvfCQ2ndPtyuzwx4yMEorcXb7ezjVboJ0/MSo3I7kYdtUkpXGfJ/sfGZJg+JPtoD0Jp LuqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397032; x=1783001832; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=3FB08ozXJ75KuaQ0Uu8ai6pxj0RZ56tBJAjvVwXnq20=; b=I1kyd3jT0PpJm1kVzVxlJ8nhT9VISOGM+mJWa8GZcj+/4TUK/eRaHKCnEzgl9pz1e3 2zhHQgbDhN6jDx2DIhSfDsMP8NlaQZC6loqOhPxU3kS3q/7tbD/hNACnuzZlTGSiTrHA T98tBTqVHgEwFfx/B9zAda9OE4vj0pAv2nQ6KRKFUW0Om6OrwD8dTociUKOQlttsVLwA sePxrrYsucikNsA87WJ3LhqfYew+OVFgCEulTs3ADiFYQ3EPyEuXgOWM7oo+GOvtqQm3 g4plhdQS+QqauJyh/VLD1jErRTXWE7qiZx6YGWTXA0uheBnYpulm6NSwYDZzmUk1OTtH lO0g== X-Gm-Message-State: AOJu0YzZBS6B/gmdGj5HKoeOq4IlvGhlyk1qQXzfkVwRgNfyXv2Nmc+2 2ufYY1qDeBbhRte4lrYuCJ+xYq3ID/RjpSVd5tCxrqEbCCxY3DzqpfDtn9qvJNrq8wO1IwpbvD5 rQxkxqDi1EgdEQNUpr0/fFuALHM2wkJ/aXO11jJnYq3+dBp2zcMCx2yO+rTEyN20RuQ== X-Gm-Gg: AfdE7cn/zij5/QK/tNkELJifjs8Ic10DfMmpeoyv7H1c6bmMft9RZ6D+9zNuND0eA2g RmGPIp5T2zFlEtQSJvT2OGGzP6np4ci9eRqiwUeHV3cSkZbekxcmfjU43LC6xzmFGsRzI7eolPu G4SxVNK7KiC50fFj9QOqU1KbTh7oXMW5Gnc2Knp7H7EJShkbUjSBRJDDMfTI60KBx0m5BiG3sXu 1ktv4Pa0Gse+/wjp9xzS+sJ/EN5oB1Ryx5uRsCQjvXP7wsj5ojFVyk+Yh03mQ2by7AF08agrNg+ Tcs/vl8ZFWW7vPr8XWNoGDtdaclBcoBrg3kX6jAaNyCSCVwg13hxV828I/MF2LRHCYBJ8PeQrA+ 5NmW4NC/HWmla5XV97D+4ROeNqodCKvCBYwW1GQywqgRJrdAoQLPbqDQAF7Y= X-Received: by 2002:a05:7300:aca8:b0:2ea:edc0:4fbe with SMTP id 5a478bee46e88-30c84b8a06bmr3224564eec.14.1782397031540; Thu, 25 Jun 2026 07:17:11 -0700 (PDT) X-Received: by 2002:a05:7300:aca8:b0:2ea:edc0:4fbe with SMTP id 5a478bee46e88-30c84b8a06bmr3224462eec.14.1782397030796; Thu, 25 Jun 2026 07:17:10 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 16/76] target/hexagon: Add guest/sys reg writes to DisasContext Date: Thu, 25 Jun 2026 07:15:33 -0700 Message-Id: <20260625141633.449487-17-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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: uSFE0BI_ip6o2v6dg9te1r_X78HDmTq0 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX6ct1mS0mZI/a 0A1413+u0kYxguWsJJp6dQNiihtM8Dx/EvkVCc69B3OWaZORWOKxBYUqiINIb6emuhL+0Pilgsc e8+1Tb7ILtjBekf81uV52N2tvXs9jlQ= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX3BMRZk9QYeF/ WttR7eaBpFngW3NEDnaA4hIEVFnoq4Tt6uBC9f57uXBd0fxU01NZj7TBVog/XxWRqY5D6lXbcnD Yvt5RZIAAphGsU9SPP2ZDLLdhiQOtBS4+YB2tyUn98bimUbJkyJ2BmK9vdm7hlShfgd6H51DVnn PH5mm5dEpvj39b/6zZlmwVADqBI682m1Rvy12ii7Sbq2b7JZkywxFGgVbZI0NxZWcKJHyaVCUHo t3VeeWvWI16lVdBTX2nlWyHLf/qeoq4szkSQddjnCMID3lkUI+YrXpShIpo9qDTyPJANYvCJ1I5 kvxZPrAzQ+zzHxYu0H0YzoK/XfO3QnrNtLgMFfl75+H5Azt708FO7R8a4jffu8eorYqYm8UAvFo G9Ts+LGySYH8gk+EOwvxok9Zb4t/3KWBav7kN4t9cgOXwYgegMD/rL3+R2mhycCevDhIQ5qxi0Z mnTlgSgOHJepSgJUfBQ== X-Authority-Analysis: v=2.4 cv=b/SCJNGx c=1 sm=1 tr=0 ts=6a3d3868 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=tdgd3nfel_K54e3JQaMA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: uSFE0BI_ip6o2v6dg9te1r_X78HDmTq0 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 suspectscore=0 phishscore=0 bulkscore=0 adultscore=0 clxscore=1015 spamscore=0 malwarescore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397259161158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/translate.h | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index d8eea56191d..57767acf002 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -41,6 +41,14 @@ typedef struct DisasContext { DECLARE_BITMAP(regs_written, TOTAL_PER_THREAD_REGS); DECLARE_BITMAP(predicated_regs, TOTAL_PER_THREAD_REGS); bool implicit_usr_write; +#ifndef CONFIG_USER_ONLY + int greg_log[GREG_WRITES_MAX]; + int greg_log_idx; + int sreg_log[SREG_WRITES_MAX]; + int sreg_log_idx; + TCGv_i32 t_sreg_new_value[NUM_SREGS]; + TCGv_i32 greg_new_value[NUM_GREGS]; +#endif int preg_log[PRED_WRITES_MAX]; int preg_log_idx; DECLARE_BITMAP(pregs_written, NUM_PREGS); @@ -81,6 +89,34 @@ typedef struct DisasContext { =20 bool is_gather_store_insn(DisasContext *ctx); =20 +#ifndef CONFIG_USER_ONLY +static inline void ctx_log_greg_write(DisasContext *ctx, int rnum) +{ + assert(rnum <=3D HEX_GREG_G3); + ctx->greg_log[ctx->greg_log_idx] =3D rnum; + ctx->greg_log_idx++; +} + +static inline void ctx_log_greg_write_pair(DisasContext *ctx, int rnum) +{ + assert(!(rnum % 2)); + ctx_log_greg_write(ctx, rnum); + ctx_log_greg_write(ctx, rnum + 1); +} + +static inline void ctx_log_sreg_write(DisasContext *ctx, int rnum) +{ + ctx->sreg_log[ctx->sreg_log_idx] =3D rnum; + ctx->sreg_log_idx++; +} + +static inline void ctx_log_sreg_write_pair(DisasContext *ctx, int rnum) +{ + ctx_log_sreg_write(ctx, rnum); + ctx_log_sreg_write(ctx, rnum + 1); +} +#endif + static inline void ctx_log_pred_write(DisasContext *ctx, int pnum) { if (!test_bit(pnum, ctx->pregs_written)) { --=20 2.34.1 From nobody Sun Jul 26 11:50:59 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397189; cv=none; d=zohomail.com; s=zohoarc; b=J8ASkXP21y+fM35w+lSGgAr4Q4C+RfYKNLWi4QFufvFAJ9vhlDG7wsCTFUIZ87zhGSfpKvy64RcT4A/YxJ4lPwTtX+EX8vH0l+6RznMZHxVdqIqR+zNmkDDxMxrboHjYGC/ELuR8P8RQShnSrrnuX2/mArT7ysQ/AafS5iiJKs4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397189; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=hhoakWVabZ7IJR8eGDuXPSShTsj/f5bhJiXKe7ZTYNg=; b=DvO3fY7+iWrdX6IXcM6YYJQ9I3bxiGs7X6eBzsBm2rsgJzjcba4JPvaUOv2wHzxLD4hmZk6YZ3WufBVtdBUJXQIreZspkMxhw5G6ms6zq8rcq0W32eDFYkCQ1LdFLPWSaJ3quLKyes4q+tZj8ZKQcNutlpswc1tk9WQ5SikDMrY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782397189612802.8599071529961; Thu, 25 Jun 2026 07:19:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wcktY-0006tE-L1; Thu, 25 Jun 2026 10:17:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wcktU-0006s0-Of for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:28 -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 1wcktR-0008UF-Sn for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:28 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9jufP1753954 for ; Thu, 25 Jun 2026 14:17:15 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0w0q26uw-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:17:14 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30c50cd6cbcso2571086eec.1 for ; Thu, 25 Jun 2026 07:17:14 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.17.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:17: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= hhoakWVabZ7IJR8eGDuXPSShTsj/f5bhJiXKe7ZTYNg=; b=kTFekEYUVdCjtydd aX7LxMtAYq88wqKxXanWQAILKUHqGvhdHZzHenSx5cTaszaTnhwHlhgum9EVxzio cY7WR1tDdMxjG4nXU9xaOYUPkYogCPU+f/FB8G+RqWj+Aon6Xa41e3pa07pOVkPE xOYDl5TA+hBKWw8JepcHAtscTeLNFZJToRZ+X+SYAMiJPKwpERTTo2EPd7LeWJTe qvaHwL+iituXVXob+TGZ51LkcPu2m2XVL2eRyqJpJm6r/W5WMcz3jQ+7zi46MMQI B2Gc+Ke78JQcfsPX/774002oyJgQhQTvWd8D98tcWh61LfVuAkot5ZDaz2T/5sWl Wb+G+w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397034; x=1783001834; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=hhoakWVabZ7IJR8eGDuXPSShTsj/f5bhJiXKe7ZTYNg=; b=KbATGHTlf03uzT28lSc5JE47rqW4ZyW2klru18nN7aqOWD6wlCa9kfmVbZyExEjD7M QtGa6LVV6+eJ46KuT2JAyWTHSSCgDEFW2h2FhgG7s9J7we/ID1+87iTIu1eIDuWW/961 j5lwf1ykiDm8HAuO3c1rnVMOvtFVPXkMAD/dJl+AMR6SpBWVe3FlQFOI0LWrqxP4zMDW ROCYK1LKQWca0mPV/mptzulXD+SM7P19RbD2cGmgMGBy3V3QZOBgFglNwmfiQPBx04xc IeGl091Ts5J1KJZbIipeZ1ZOdQambM01VJSBLENNInlrRiWdpI5OQlDrTRCi904K0YIB 6N6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397034; x=1783001834; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=hhoakWVabZ7IJR8eGDuXPSShTsj/f5bhJiXKe7ZTYNg=; b=Xq8KW7/toHi/t0GWO9+tVYorXG0xLjRDUm0DDTlZ8JMlIfPu6cFbjWLuwcQJZNIyPu OLDK7vYwdoTKhXftCCYig1dpuzRhGSSNtaDMANGr0M+ajrMl9oNWOv/cq17sF0DiH61M X7cuvqOyc9ROfxH3CYA3W6O2TBgZtwHfywetbkWto08xlhkXYevLE29QZxIZcBBrPyX2 hzUG9w/dunFkduIZHu17iGh/v7JdeQzmvvruSptqx+FyQ1sm0YuTnzvQdeIPJm7w7K7D 5VKgVOrJJzJe2Kq0mjmdOIzUMUh8EosF3q6nljYMwpmWPktVE/OjeGLO2RxXEHx+lJx9 sQ1g== X-Gm-Message-State: AOJu0YxZ+eRbPFUqlhr5zT2PVBfCeTAWszqXMEVeH6CHf/xsk6Zsmby5 c2ZT+O+hsI/xDNwbVwLLuHG5TGboR7Me/CzONnkFu6/P6DOaJud5wrj48Xf9/9V0ehVOEYpuUPI +qxvbNmnS0JMob90KaBT21WHELwvKHEbV82BpdZI5owdqvn7EoqR4LrM8U4TVMA+DDA== X-Gm-Gg: AfdE7cmtJB90yOt8UHQY9ZTSxSvDWS0g1Jy4N8fBPB25bhfBbzgNsSbHvrLQNPglNUR whK6CyTIe5gmXELrE6k45G0h0hhxbDF8i2jpEnrTuRQMqRqOntLAfpmsU8w9g9ofxfbVORThHoR fDGa5pB/9qAAFZZ5o5G+KXJvmxY1f3KaQKShmS4HYa/Kv3MUxKxUNi+3V0fCO+TcYkXoMmv8TLb LrvjCPuNCwK2h5GhKV1TsM/dbUFa65O4YyIcBFqSTAhH8I3Avrl9DkdCGYSvKS9OYMgHG5bjRWG P+6KshscI0WKd+PllwAZ5EB6uXuhke5E5vTasSR71KW02zXzCTKdzVrsndVtqUkZ4emvLk8o0EQ FsEa32bj8QsX9BSg7SlUKRp18IcJu80efGxyYfGXnGxkGA1MOT8m8x82ZOjw= X-Received: by 2002:a05:7300:2d2c:b0:30c:41df:3734 with SMTP id 5a478bee46e88-30c84caee33mr3309876eec.22.1782397033168; Thu, 25 Jun 2026 07:17:13 -0700 (PDT) X-Received: by 2002:a05:7300:2d2c:b0:30c:41df:3734 with SMTP id 5a478bee46e88-30c84caee33mr3309784eec.22.1782397032444; Thu, 25 Jun 2026 07:17:12 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Pierrick Bouvier Subject: [PULL v3 17/76] target/hexagon: Add imported macro, attr defs for sysemu Date: Thu, 25 Jun 2026 07:15:34 -0700 Message-Id: <20260625141633.449487-18-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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: qymddCeIhVc3IoHgm7e-s2HnnXX34tFz X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX5Mn3BnzBr4PM Sxrgi09NC06+m3A6B2vbAe2be4EMLKINFzWZ1GXrh6Vkg3McDVQb390bc3vkJFeODmylYgAPqf4 Q08HQm+z28kYT8O7H6QewGyUA2/CLxw= X-Proofpoint-GUID: qymddCeIhVc3IoHgm7e-s2HnnXX34tFz X-Authority-Analysis: v=2.4 cv=R6Ez39RX c=1 sm=1 tr=0 ts=6a3d386a cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=9WelToRRDTwRCstGtewA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX5Tp33Kj4Q+lq 9brLawt++rn2dWhRxJfPeomDLhfXqSRbM8h2OCiALhGsRtVsLr1Dvgit90oTYS5Qt4i5NTADR6O 7jXoAplH8A9LTJQXCrbihIzlpjkAcLVjpZUyrb6AH7qPxQYsFtm1dPGl0/NnxkTSLoWHg/lxhuC 0POoLIyJ8Sf+QT58xSo4aKPTeXtIdmNEnprKWeALv46ythUIsJqVptyv9WdJEnHRnpG84Ii6GNx 4obCbt1ijOVhiDfCOvMRPfYtPAgDWmrpe2yLeYJQRdzXUwa4ZWNtZSpR0AD6yEREHfWUytpQsPc hLn/kCq0uQdUrxGXtPe+c7qbdi9kU89BRYTVDe1FoRXoUnahc0t+z9tIQZHWu5d1fgZcEO0+z51 4h2SFhNDOh0LO96EkRBHIPWEkiMUdcDIZA0J8V/sWxuun476kG9JvUo62J4cFUN+2dN4GJSJOv2 nj136wjPl4dXsFYek0w== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 clxscore=1015 malwarescore=0 priorityscore=1501 adultscore=0 suspectscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UPPERCASE_50_75=0.008 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397190733158500 From: Brian Cain Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- target/hexagon/attribs_def.h.inc | 35 ++- target/hexagon/imported/macros.def | 482 ++++++++++++++++++++++++++++- 2 files changed, 504 insertions(+), 13 deletions(-) mode change 100755 =3D> 100644 target/hexagon/imported/macros.def diff --git a/target/hexagon/attribs_def.h.inc b/target/hexagon/attribs_def.= h.inc index 9e3a05f8828..6c55063a309 100644 --- a/target/hexagon/attribs_def.h.inc +++ b/target/hexagon/attribs_def.h.inc @@ -52,6 +52,9 @@ DEF_ATTRIB(REGWRSIZE_4B, "Memory width is 4 bytes", "", "= ") DEF_ATTRIB(REGWRSIZE_8B, "Memory width is 8 bytes", "", "") DEF_ATTRIB(MEMLIKE, "Memory-like instruction", "", "") DEF_ATTRIB(MEMLIKE_PACKET_RULES, "follows Memory-like packet rules", "", "= ") +DEF_ATTRIB(CACHEOP, "Cache operation", "", "") +DEF_ATTRIB(COPBYADDRESS, "Cache operation by address", "", "") +DEF_ATTRIB(COPBYIDX, "Cache operation by index", "", "") DEF_ATTRIB(RELEASE, "Releases a lock", "", "") DEF_ATTRIB(ACQUIRE, "Acquires a lock", "", "") =20 @@ -101,7 +104,9 @@ DEF_ATTRIB(ROPS_3, "Compound instruction worth 3 RISC-o= ps", "", "") =20 /* access to implicit registers */ DEF_ATTRIB(IMPLICIT_WRITES_LR, "Writes the link register", "", "UREG.LR") +DEF_ATTRIB(IMPLICIT_READS_PC, "Reads the program counter", "UREG.PC", "") DEF_ATTRIB(IMPLICIT_WRITES_SP, "Writes the stack pointer", "", "UREG.SP") +DEF_ATTRIB(IMPLICIT_READS_SP, "Reads the stack pointer", "UREG.SP", "") DEF_ATTRIB(IMPLICIT_WRITES_FP, "Writes the frame pointer", "", "UREG.FP") DEF_ATTRIB(IMPLICIT_WRITES_LC0, "Writes loop count for loop 0", "", "UREG.= LC0") DEF_ATTRIB(IMPLICIT_WRITES_LC1, "Writes loop count for loop 1", "", "UREG.= LC1") @@ -111,13 +116,19 @@ DEF_ATTRIB(IMPLICIT_WRITES_P0, "Writes Predicate 0", = "", "UREG.P0") DEF_ATTRIB(IMPLICIT_WRITES_P1, "Writes Predicate 1", "", "UREG.P1") DEF_ATTRIB(IMPLICIT_WRITES_P2, "Writes Predicate 1", "", "UREG.P2") DEF_ATTRIB(IMPLICIT_WRITES_P3, "May write Predicate 3", "", "UREG.P3") -DEF_ATTRIB(IMPLICIT_READS_PC, "Reads the PC register", "", "") -DEF_ATTRIB(IMPLICIT_READS_P0, "Reads the P0 register", "", "") -DEF_ATTRIB(IMPLICIT_READS_P1, "Reads the P1 register", "", "") -DEF_ATTRIB(IMPLICIT_READS_P2, "Reads the P2 register", "", "") -DEF_ATTRIB(IMPLICIT_READS_P3, "Reads the P3 register", "", "") +DEF_ATTRIB(IMPLICIT_READS_P0, "Reads Predicate 0", "UREG.P0", "") +DEF_ATTRIB(IMPLICIT_READS_P1, "Reads Predicate 1", "UREG.P1", "") +DEF_ATTRIB(IMPLICIT_READS_P3, "Reads Predicate 3", "UREG.P3", "") DEF_ATTRIB(IMPLICIT_WRITES_USR, "May write USR", "", "") -DEF_ATTRIB(IMPLICIT_READS_SP, "Reads the SP register", "", "") +DEF_ATTRIB(IMPLICIT_WRITES_CCR, "Writes CCR register", "", "UREG.CCR") +DEF_ATTRIB(IMPLICIT_WRITES_GOSP, "Writes GOSP register", "", "UREG.GOSP") +DEF_ATTRIB(IMPLICIT_WRITES_SSR, "Writes SSR register", "", "UREG.SSR") +DEF_ATTRIB(IMPLICIT_WRITES_SGP0, "Writes SGP0 register", "", "UREG.SGP0") +DEF_ATTRIB(IMPLICIT_WRITES_SGP1, "Writes SGP1 register", "", "UREG.SGP1") +DEF_ATTRIB(IMPLICIT_WRITES_IMASK_ANYTHREAD, + "Writes IMASK for any thread", "", "") +DEF_ATTRIB(IMPLICIT_WRITES_STID_PRIO_ANYTHREAD, + "Writes STID priority for any thread", "", "") DEF_ATTRIB(COMMUTES, "The operation is communitive", "", "") DEF_ATTRIB(DEALLOCRET, "dealloc_return", "", "") DEF_ATTRIB(DEALLOCFRAME, "deallocframe", "", "") @@ -137,9 +148,14 @@ DEF_ATTRIB(RESTRICT_SLOT3ONLY, "Must execute on slot3"= , "", "") DEF_ATTRIB(RESTRICT_NOSLOT1, "No slot 1 instruction in parallel", "", "") DEF_ATTRIB(RESTRICT_PREFERSLOT0, "Try to encode into slot 0", "", "") DEF_ATTRIB(RESTRICT_PACKET_AXOK, "May exist with A-type or X-type", "", "") +DEF_ATTRIB(RESTRICT_SLOT1_AOK, "Slot 1 is allowed", "", "") =20 DEF_ATTRIB(ICOP, "Instruction cache op", "", "") =20 +DEF_ATTRIB(EXCEPTION_SWI, "Software interrupt exception", "", "") +DEF_ATTRIB(DMA, "DMA instruction", "", "") +DEF_ATTRIB(NO_TIMING_LOG, "Does not get logged to the timing model", "", "= ") + DEF_ATTRIB(HWLOOP0_END, "Ends HW loop0", "", "") DEF_ATTRIB(HWLOOP1_END, "Ends HW loop1", "", "") DEF_ATTRIB(RET_TYPE, "return type", "", "") @@ -151,6 +167,10 @@ DEF_ATTRIB(DCFETCH, "dcfetch type", "", "") =20 DEF_ATTRIB(L2FETCH, "Instruction is l2fetch type", "", "") =20 +DEF_ATTRIB(DCTAGOP, "Data cache tag operation", "", "") +DEF_ATTRIB(ICTAGOP, "Instruction cache tag operation", "", "") +DEF_ATTRIB(L2TAGOP, "L2 cache tag operation", "", "") + DEF_ATTRIB(ICINVA, "icinva", "", "") DEF_ATTRIB(DCCLEANINVA, "dccleaninva", "", "") =20 @@ -166,6 +186,9 @@ DEF_ATTRIB(NOTE_LATEPRED, "The predicate can not be use= d as a .new", "", "") DEF_ATTRIB(NOTE_NVSLOT0, "Can execute only in slot 0 (ST)", "", "") DEF_ATTRIB(NOTE_NOVP, "Cannot be paired with a HVX permute instruction", "= ", "") DEF_ATTRIB(NOTE_VA_UNARY, "Combined with HVX ALU op (must be unary)", "", = "") +DEF_ATTRIB(NOTE_SLOT1_AOK, "Slot 1 is allowed", "", "") +DEF_ATTRIB(NOTE_GUEST, "Guest mode instruction", "", "") +DEF_ATTRIB(NOTE_BADTAG_UNDEF, "Bad tag results in undefined behavior", "",= "") =20 /* V6 MMVector Notes for Documentation */ DEF_ATTRIB(NOTE_SHIFT_RESOURCE, "Uses the HVX shift resource.", "", "") diff --git a/target/hexagon/imported/macros.def b/target/hexagon/imported/m= acros.def old mode 100755 new mode 100644 index 4bbcfdd5e19..13eb13c71f7 --- a/target/hexagon/imported/macros.def +++ b/target/hexagon/imported/macros.def @@ -353,6 +353,12 @@ DEF_MACRO( () ) =20 +DEF_MACRO( + fREAD_SSR, /* read SSR register */ + (READ_RREG(REG_SSR)), /* behavior */ + () +) + DEF_MACRO( fWRITE_LR, /* write lr */ WRITE_RREG(REG_LR,A), /* behavior */ @@ -371,12 +377,36 @@ DEF_MACRO( (A_IMPLICIT_WRITES_SP) ) =20 +DEF_MACRO( + fWRITE_GOSP, /* write gosp */ + WRITE_RREG(REG_GOSP,A), /* behavior */ + (A_IMPLICIT_WRITES_GOSP) +) + DEF_MACRO( fREAD_SP, /* read stack pointer */ (READ_RREG(REG_SP)), /* behavior */ () ) =20 +DEF_MACRO( + fREAD_GOSP, /* read guest other stack pointer */ + (READ_RREG(REG_GOSP)), /* behavior */ + () +) + +DEF_MACRO( + fREAD_GELR, /* read guest other stack pointer */ + (READ_RREG(REG_GELR)), /* behavior */ + () +) + +DEF_MACRO( + fREAD_GEVB, /* read guest other stack pointer */ + (READ_RREG(REG_GEVB)), /* behavior */ + () +) + DEF_MACRO( fREAD_CSREG, /* read CS register */ (READ_RREG(REG_CSA+N)), /* behavior */ @@ -570,6 +600,11 @@ DEF_MACRO( WRITE_PREG(3,VAL), /* behavior */ (A_IMPLICIT_WRITES_P3) ) +DEF_MACRO( + fWRITE_P3_LATE, /* write Predicate 0 */ + {WRITE_PREG(3,VAL); fHIDE(MARK_LATE_PRED_WRITE(3))} , /* behavio= r */ + (A_IMPLICIT_WRITES_P3,A_RESTRICT_LATEPRED) +) =20 DEF_MACRO( fPART1, /* write Predicate 0 */ @@ -660,6 +695,7 @@ DEF_MACRO( ((size8s_t)((size2s_t)(A))), /* optional attributes */ ) + DEF_MACRO( fCAST2_8u, /* macro name */ ((size8u_t)((size2u_t)(A))), @@ -1532,18 +1568,137 @@ DEF_MACRO(fECHO, /* OS interface and stop/wait */ /********************************************/ =20 +DEF_MACRO(RUNNABLE_THREADS_MAX, + /* */, + () +) + +DEF_MACRO(THREAD_IS_ON, + ((PROC->arch_proc_options->thread_enable_mask>>TNUM) & 0x1), + () +) + +DEF_MACRO(THREAD_EN_MASK, + ((PROC->arch_proc_options->thread_enable_mask)), + () +) + + + +DEF_MACRO(READ_IMASK, + /* */, + () +) +DEF_MACRO(WRITE_IMASK, + /* */, + (A_IMPLICIT_WRITES_IMASK_ANYTHREAD) +) + + +DEF_MACRO(WRITE_PRIO, + /* */, + (A_IMPLICIT_WRITES_STID_PRIO_ANYTHREAD) +) + + +DEF_MACRO(DO_IASSIGNW, + /* */, + (A_IMPLICIT_WRITES_IMASK_ANYTHREAD) +) + + + + +DEF_MACRO(fDO_NMI, + /* */, +) + +DEF_MACRO(fDO_TRACE, + /* */, +) + +DEF_MACRO(DO_IASSIGNR, + /* */, + () +) + +DEF_MACRO(DO_SWI, + /* */, + (A_EXCEPTION_SWI) +) + +DEF_MACRO(DO_CSWI, + LOG_GLOBAL_REG_WRITE(REG_IPEND,GLOBAL_REG_READ(REG_IPEND) & ~((REG= ) & GLOBAL_REG_READ(REG_IEL)));, + () +) + +DEF_MACRO(DO_CIAD, + sys_ciad(thread,VAL); LOG_GLOBAL_REG_WRITE(REG_IAD,GLOBAL_REG_READ= (REG_IAD) & ~(VAL));, + (A_EXCEPTION_SWI) +) + +DEF_MACRO(DO_SIAD, + sys_siad(thread,VAL); LOG_GLOBAL_REG_WRITE(REG_IAD,GLOBAL_REG_READ= (REG_IAD) | (VAL));, + (A_EXCEPTION_SWI) +) + +DEF_MACRO(fBREAK, + /* */, + () +) + DEF_MACRO(fPAUSE, {sys_pause(thread, insn->slot, IMM);}, () ) =20 + DEF_MACRO(fTRAP, - warn("Trap NPC=3D%x ",fREAD_NPC()); - warn("Trap exception, PCYCLE=3D%lld TYPE=3D%d NPC=3D%x IMM=3D0x%x",thr= ead->processor_ptr->pstats[pcycles],TRAPTYPE,fREAD_NPC(),IMM); - register_trap_exception(thread,fREAD_NPC(),TRAPTYPE,IMM);, + /* */, + (A_EXCEPTION_SWI) +) + +DEF_MACRO(fCLEAR_RTE_EX, + /* */, + () +) + +DEF_MACRO(fTLB_LOCK_AVAILABLE, + (fREAD_GLOBAL_REG_FIELD(SYSCONF,SYSCFG_TLBLOCK) =3D=3D 0), () ) =20 +DEF_MACRO(fK0_LOCK_AVAILABLE, + (fREAD_GLOBAL_REG_FIELD(SYSCONF,SYSCFG_K0LOCK) =3D=3D 0), + () +) + +DEF_MACRO(fSET_TLB_LOCK, + { + if (fTLB_LOCK_AVAILABLE()) { + fLOG_GLOBAL_REG_FIELD(SYSCONF,SYSCFG_TLBLOCK,1); + } else { + sys_waiting_for_tlb_lock(thread); + } + }, + () +) + +DEF_MACRO(fSET_K0_LOCK, + /* */, + () +) + +DEF_MACRO(fCLEAR_TLB_LOCK, + /* */, + () +) + +DEF_MACRO(fCLEAR_K0_LOCK, + /* */, + () +) + DEF_MACRO(fALIGN_REG_FIELD_VALUE, ((VAL)<Regs[REG_##REG], reg_field_info[FIELD].width, @@ -1561,6 +1734,11 @@ DEF_MACRO(fREAD_REG_FIELD, /* ATTRIBS */ ) =20 +DEF_MACRO(fREAD_GLOBAL_REG_FIELD, + /* */, + /* ATTRIBS */ +) + DEF_MACRO(fGET_FIELD, fEXTRACTU_BITS(VAL, reg_field_info[FIELD].width, @@ -1576,6 +1754,174 @@ DEF_MACRO(fSET_FIELD, /* ATTRIBS */ ) =20 +DEF_MACRO(fSET_RUN_MODE_NOW, + /* */, +) + +DEF_MACRO(fIN_DEBUG_MODE, + (thread->debug_mode || (fREAD_GLOBAL_REG_FIELD(ISDBST,ISDBST_DEBUGMODE= ) & 1<debug_mode), + () +) + + +DEF_MACRO(fIN_DEBUG_MODE_WARN, + { + if (fREAD_GLOBAL_REG_FIELD(ISDBST,ISDBST_DEBUGMODE) & 1<> 1) | ((VAL) >> 2) | ((VAL) >> 4) | ((VAL) >> 8) | (= (VAL) >> 16)), + () +) + +DEF_MACRO(fPOW2_ROUNDUP, + fPOW2_HELP_ROUNDUP((VAL)-1)+1, + () +) + +DEF_MACRO(fTLB_IDXMASK, + /* */, + () +) + +DEF_MACRO(fTLB_NONPOW2WRAP, + /* */, + /* ATTRIBS */ +) + +DEF_MACRO(fTLBW, + /* */, + /* ATTRIBS */ +) + +DEF_MACRO(fTLB_ENTRY_OVERLAP, + fHIDE( (sys_check_overlap(thread,VALUE)!=3D-2) ), + /* ATTRIBS */ +) + +DEF_MACRO(fTLB_ENTRY_OVERLAP_IDX, + fHIDE(sys_check_overlap(thread,VALUE)), + /* ATTRIBS */ +) + + +DEF_MACRO(fTLBR, + TLB_REG_READ(fTLB_NONPOW2WRAP(fTLB_IDXMASK(INDEX))), + /* ATTRIBS */ +) + +DEF_MACRO(fTLBP, + tlb_lookup(thread,((TLBHI)>>12),((TLBHI)<<12),1), + /* attribs */ +) + + + +DEF_MACRO(READ_SGP0, + READ_RREG(REG_SGP), + () +) + +DEF_MACRO(READ_SGP1, + READ_RREG(REG_SGP+1), + () +) + +DEF_MACRO(READ_SGP10, + READ_RREG_PAIR(REG_SGP), + () +) + +DEF_MACRO(READ_UGP, + READ_RREG(REG_UGP), +) + +DEF_MACRO(WRITE_SGP0, + WRITE_RREG(REG_SGP,VAL), + (A_IMPLICIT_WRITES_SGP0) +) + +DEF_MACRO(WRITE_SGP1, + WRITE_RREG(REG_SGP+1,VAL), + (A_IMPLICIT_WRITES_SGP1) +) + +DEF_MACRO(WRITE_SGP10, + WRITE_RREG_PAIR(REG_SGP,VAL), + (A_IMPLICIT_WRITES_SGP0,A_IMPLICIT_WRITES_SGP1) +) + +DEF_MACRO(WRITE_UGP, + WRITE_RREG(REG_UGP,VAL), +) + +DEF_MACRO(fSTART, + /* */, + () +) + +DEF_MACRO(fRESUME, + fLOG_GLOBAL_REG_FIELD(MODECTL,MODECTL_W, + fREAD_GLOBAL_REG_FIELD(MODECTL,MODECTL_W) & (~(REG))), + () +) + +DEF_MACRO(fGET_TNUM, + thread->threadId, + () +) + /********************************************/ /* Cache Management */ /********************************************/ @@ -1602,19 +1948,49 @@ DEF_MACRO(fISYNC, ) =20 =20 +DEF_MACRO(fICFETCH, + , + () +) + DEF_MACRO(fDCFETCH, sys_dcfetch(thread, (REG), insn->slot), (A_MEMLIKE) ) =20 DEF_MACRO(fICINVA, - { - arch_internal_flush(thread->processor_ptr, 0, 0xffffffff); - sys_icinva(thread, (REG),insn->slot); - }, + /* */, (A_ICINVA) ) =20 +DEF_MACRO(fDCTAGR, + ({DST=3Dsys_dctagr(thread, INDEX, insn->slot,DSTREGNO);})/* FIXME */, + () +) + +DEF_MACRO(fDCTAGW, + (sys_dctagw(thread, INDEX, PART2, insn->slot)), + () +) +DEF_MACRO(fICTAGR, + ({DST=3Dsys_ictagr(thread, INDEX, insn->slot,REGNO);}), + () +) + +DEF_MACRO(fICDATAR, + ({DST=3Dsys_icdatar(thread, INDEX, insn->slot);}), + () +) + +DEF_MACRO(fICTAGW, + (sys_ictagw(thread, INDEX, PART2, insn->slot)), + () +) +DEF_MACRO(fICDATAW, + ({ fHIDE(); }), + () +) + DEF_MACRO(fL2FETCH, sys_l2fetch(thread, ADDR,HEIGHT,WIDTH,STRIDE,FLAGS, insn->slot), (A_MEMLIKE,A_L2FETCH) @@ -1635,6 +2011,12 @@ DEF_MACRO(fDCZEROA, (A_MEMLIKE) ) =20 +DEF_MACRO(fDCINVA, + sys_dcinva(thread, (REG)), + (A_MEMLIKE) +) + + DEF_MACRO(fCHECKFORPRIV, {sys_check_privs(thread); if (EXCEPTION_DETECTED) return; }, () @@ -1645,6 +2027,16 @@ DEF_MACRO(fCHECKFORGUEST, () ) =20 +DEF_MACRO(fTAKEN_INTERRUPT_EDGECLEAR, + { proc->global_regs[REG_IPEND] &=3D ~(INT_NUMTOMASK(intnum) & proc= ->global_regs[REG_IEL]); }, + () +) + +DEF_MACRO(fSET_IAD, + /* */, + () +) + DEF_MACRO(fBRANCH_SPECULATE_STALL, { sys_speculate_branch_stall(thread, insn->slot, JUMP_COND(JUMP_PRED= _SET), @@ -1664,3 +2056,79 @@ DEF_MACRO(IV1DEAD, , () ) + +DEF_MACRO(fIN_MONITOR_MODE, + sys_in_monitor_mode(thread), + () +) + +DEF_MACRO(fIN_USER_MODE, + sys_in_user_mode(thread), + () +) + +DEF_MACRO(fIN_GUEST_MODE, + sys_in_guest_mode(thread), + () +) + +DEF_MACRO(fGRE_ENABLED, + fREAD_REG_FIELD(CCR,CCR_GRE), + () +) + +DEF_MACRO(fGTE_ENABLED, + fREAD_REG_FIELD(CCR,CCR_GRE), + () +) + +DEF_MACRO(fTRAP1_VIRTINSN, + ((fIN_GUEST_MODE()) + && (fGRE_ENABLED()) + && ( ((IMM) =3D=3D 1) + || ((IMM) =3D=3D 3) + || ((IMM) =3D=3D 4) + || ((IMM) =3D=3D 6))), + () +) + +DEF_MACRO(fVIRTINSN_RTE, + do { + thread->trap1_info =3D TRAP1_VIRTINSN_RTE; + fLOG_REG_FIELD(SSR,SSR_SS,fREAD_REG_FIELD(GSR,GSR_SS)); + fLOG_REG_FIELD(CCR,CCR_GIE,fREAD_REG_FIELD(GSR,GSR_IE)); + fLOG_REG_FIELD(SSR,SSR_GM,!fREAD_REG_FIELD(GSR,GSR_UM)); + fBRANCH((fREAD_GELR() & -4),COF_TYPE_RTE); + fINTERNAL_CLEAR_SAMEPAGE(); + } while (0), + (A_IMPLICIT_WRITES_CCR,A_IMPLICIT_WRITES_SSR) +) + +DEF_MACRO(fVIRTINSN_SETIE, + do { + fLOG_REG_FIELD(CCR,CCR_GIE,(REG) & 1); + REG =3D fREAD_REG_FIELD(CCR,CCR_GIE); + thread->trap1_info =3D TRAP1_VIRTINSN_SETIE; + } while (0), + (A_IMPLICIT_WRITES_CCR) +) + +DEF_MACRO(fVIRTINSN_GETIE, + { + thread->trap1_info =3D TRAP1_VIRTINSN_GETIE; + REG =3D fREAD_REG_FIELD(CCR,CCR_GIE); + }, + () +) + +DEF_MACRO(fVIRTINSN_SPSWAP, + do { + if (fREAD_REG_FIELD(GSR,GSR_UM)) { + size4u_t TEMP =3D REG; + REG =3D fREAD_GOSP(); + fWRITE_GOSP(TEMP); + thread->trap1_info =3D TRAP1_VIRTINSN_SPSWAP; + } + } while (0), + (A_IMPLICIT_WRITES_GOSP) +) --=20 2.34.1 From nobody Sun Jul 26 11:50:59 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397177; cv=none; d=zohomail.com; s=zohoarc; b=U1FzyyFBpksEEwV7BCLnfhfzszaCbZ1UR0MUazBsWS09QaJrw4+mCNsjGlOlqDOJormu+g4htGCBcxevd3SdkJCdzcyYl3CkUcSK3FfeLG2W09FYG0Z4XcTioMXAZSgbQx4bXela66CNN6cQ97Oc96jZUbQBU/NeOuphxpyIKJc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397177; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=QOPCxfzT1avmaDDfh5FOnklE9vds5SWBGBuv99jugao=; b=QMXmr3BpGvqEgoKhO2TjVBG12+088mGQEa01/xaiq+iDIwevrjnA+YyDeNZMyN32CSUFs+hV8FKRq5pkiqROaE/MkUTEorferTE+ivagzrzuQScSfsKvJTeSxu3IkukkhdlJK0Q5CdVtUXLFPIRDea/0rhmJjjinlVXoUng7mwA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782397177631782.2365212248036; Thu, 25 Jun 2026 07:19:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wcktc-0006v6-Jw; Thu, 25 Jun 2026 10:17:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wcktW-0006su-VG for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:30 -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 1wcktT-0008UR-S2 for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:30 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9k9Ft1755523 for ; Thu, 25 Jun 2026 14:17:17 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0w0q26v2-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:17:16 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30c13bb8ca9so3002855eec.0 for ; Thu, 25 Jun 2026 07:17:16 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.17.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:17: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= QOPCxfzT1avmaDDfh5FOnklE9vds5SWBGBuv99jugao=; b=iyWLIx4RCVWnrclT Zm4hrWpwaiBOecR4p+3DMzcOQjIoVvbrzSvFC80CO9fR3k1pF5TaX7w8l8CvkVD6 Q3E2Hp0BDW2c1UIJbrOVSMZIYgtcvvOt5V60XStlANH6Hd46r2nRTiSaIQcw+tH6 LQHNlBP9BN7WnZvHyzmenG2qCVeevWMRedTNrC1HDSwxZf2MMxEG/TwljWH2HQHn FJpe1znOjUJU9A7R5KUSaTo3/P5I1V6FLxpm/52/ov06Gs1ERwhJ+UMPYFNc+9U3 UR+UIwL5DjaauZz2yCdLZ1bAgRCF7PQy1I2VIG6f93hb565wsLsjTQt2Zg+/p7q+ EpHGYA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397036; x=1783001836; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=QOPCxfzT1avmaDDfh5FOnklE9vds5SWBGBuv99jugao=; b=L1b47IRlxTYG1xmrOtfRz/A2EVbQgppzTMZLunLx3D/u8XgHBT4RFZ3JZvjxPyST6a HNlWZ1ARM2qQDMeHeG4Jz/ydSb+jpYUCEDREUdNSozVx8vLNhgByiOBpjmhh2NRfYxOc DjVkbOoSyqYaxxGdGWyVIa5j4iOh+fh8SJo6SOW4VsC10p6HFbBAU6wcn0+zcfV6f4EB l35W++p5iq9rpfIwvPoQusvvxL2i/wMBcPEe5GM5MYN/8JRhpBqw7a5a6OwztVaRmFbK zhGweWe13y3KNw4NJxeiBl3bDCcvcpsD+xRChTQ/4lEkYS63mo+rmrbrEABdSVpGzt9Y /C+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397036; x=1783001836; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=QOPCxfzT1avmaDDfh5FOnklE9vds5SWBGBuv99jugao=; b=bQOFIXCrAff1aGMuAQcInRmcQOonXJk6Wgklb92omPUDLt12qwohPvYXB6mffBjvhA w3Tux8vhq4rFgHTso3Xoiul2dJwx8sWrA8UwQUTqcsmDvD2vPQQu94xde/Vg3mx9IrEz m2D3yYIxjSruvHK+nO9voPrx0M7EfiKf3IhAwqVhN+TU+D8LAw0SIby3XOMalTEsJHyN 7MqABtOy7AKMvVcxZmC8d/tkAaIFPCkRz2SAH7P1W8LYuWdAkurqrzVj8lNQoJtdajf7 QeIkN9p+kZQsIYYKSDDJOK8c/MI0gIljgG5nAMctCg2rfrfN9Rp82xAYTqvWgvaiyknQ teYQ== X-Gm-Message-State: AOJu0YyNTQmFg9LAsagJhzWiaRH8mD9saLHyRv9GaaznqhiaJuKUXe19 U4TR3/TSFxfC2oF+Nx5Hosv5q4W+CQ0HFgwxO9wM7e42ggNAdhXuoucKBqyGoccD+sHT+iUw5oQ Uo/1dzOWU8jteZB+zapBYFLQHgSgPro9O0k6xMLaL21rCV658Fybb/TED84dk/sE0qQ== X-Gm-Gg: AfdE7cmZs05dQcYdzsyqzTT3Z950ofb0N2KIwpDoAmKhV9kFJmVKSBtrr8ndaZkVRJJ EiXhELYL6zdSRAdXvqPo3T0tDPA9B1UuAxpoe25AfNGAmpavsFvVgPTTnZ3GWOKrttIjlfbL9c3 +G+dE0ov7kRT9mo5FweBZfWhGjhk4s3cA79TlX7OqVI2w0+oK+2a1nTXoOXLWkBZvJeybjP05c+ PEQi5E9eA8fqUxpsyfekYyDdcikJLEB/3yFQV16X6iEas7mZqM5wr/4LyhPs+JhXDSlYY4sOj1y rr6Fn1esrQ9Jl3MB2j1hjQnhSOVLua6yXNlSb98yd5w4+qZLYTieH8HS0bgLABuNnVeB9XZ0lTu X1z743VA1x9meqdcgqEOpPnkWBHABJGZNdvX4wKusbUZeg33Kw3OLqabs8t0= X-Received: by 2002:a05:7301:6583:b0:30c:7b76:9047 with SMTP id 5a478bee46e88-30c84d4a202mr2966326eec.17.1782397035405; Thu, 25 Jun 2026 07:17:15 -0700 (PDT) X-Received: by 2002:a05:7301:6583:b0:30c:7b76:9047 with SMTP id 5a478bee46e88-30c84d4a202mr2966245eec.17.1782397034606; Thu, 25 Jun 2026 07:17:14 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 18/76] target/hexagon: Add new macro definitions for sysemu Date: Thu, 25 Jun 2026 07:15:35 -0700 Message-Id: <20260625141633.449487-19-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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: Kp_9eLkGgdsrfJRvsHjNvJzxHQXHKJcy X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfXyYFh9qIMYRwO AYq0gJnIeuouJA+/6FN16QmsYW2H+2aOiMA/qszaQphxF0nyRODpHAR/8qGL0kQOU/ETY+MSG3p /EWkSs+o1/wxtkO62/oTBfKLtTXQS2I= X-Proofpoint-GUID: Kp_9eLkGgdsrfJRvsHjNvJzxHQXHKJcy X-Authority-Analysis: v=2.4 cv=R6Ez39RX c=1 sm=1 tr=0 ts=6a3d386c cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=VoFV4bgUeqxKQXHmsMYA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX+0OqFQ9Rl9BS xT0c8tWE7dN31UJeQdOgZDrKQqI4HHrFkXHn7n3xWG9aPQwe7sPVdS2hoyFBIxvK02ods+sfnqs hvp1aY/W3KgK8OoU549rbluwbXr2MI1RVkP877C51WmuhhJP0KJ/6w/eVx6jX0jiu7yEgYWcwOM x0xAjhwXmNYPnTDKFm5fwNJMIuF5MzrIwo5ViiR2OmV9qEKoUjfy2ql59RuTYXw7OeKRgZ/eQSk Md8Bv50MbPZuHcTGOieJJ/2hN9m0Q+ZYodgla539fVOksD3Xlg/oSvDCxpMGzhPXL81l8KXm5mE pF/UgIzQ5hk+sr760NoKCru4hhE2mw69CgDXaLGvewvMb7VBBRVGYbCC29//nJGOBKpjHqdLUez IkfKk5Do4RdEklp3KxWgFT0L4ODRHqIur4mmmn3aFXS3JnJyf2AWJsw4j7zUw6XNYPK7lPsRa1n DpClo+WRItQMXZP4isA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 clxscore=1015 malwarescore=0 priorityscore=1501 adultscore=0 suspectscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397178557158500 From: Brian Cain Also: add nop TCG overrides for break, unpause, fetchbo; add TCG override for dczeroa_nt (non-temporal variant of dczeroa). break: this hardware breakpoint instruction is used with the in-silicon debugger feature, this is not modeled. unpause: this instruction is used to resume hardware threads that are stalled by pause instructions. pause is modeled as a nop, or in RR mode as an EXCP_YIELD. This instruction is safe to ignore. Since prefetch functions are not modeled, fetchbo is safe to ignore. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/gen_tcg.h | 9 ++ target/hexagon/macros.h | 25 +++- target/hexagon/sys_macros.h | 239 ++++++++++++++++++++++++++++++++++++ target/hexagon/op_helper.c | 4 + 4 files changed, 276 insertions(+), 1 deletion(-) create mode 100644 target/hexagon/sys_macros.h diff --git a/target/hexagon/gen_tcg.h b/target/hexagon/gen_tcg.h index 0159e5c2d5f..4a58ead877b 100644 --- a/target/hexagon/gen_tcg.h +++ b/target/hexagon/gen_tcg.h @@ -488,6 +488,7 @@ =20 /* dczeroa clears the 32 byte cache line at the address given */ #define fGEN_TCG_Y2_dczeroa(SHORTCODE) SHORTCODE +#define fGEN_TCG_Y2_dczeroa_nt(SHORTCODE) SHORTCODE =20 /* In linux-user mode, these are not modelled, suppress compiler warning */ #define fGEN_TCG_Y2_dcinva(SHORTCODE) \ @@ -1112,6 +1113,9 @@ RdV, tcg_constant_tl(0)); \ } while (0) =20 +#define fGEN_TCG_Y2_break(SHORTCODE) +#define fGEN_TCG_J2_unpause(SHORTCODE) + #define fGEN_TCG_J2_pause(SHORTCODE) \ do { \ uiV =3D uiV; \ @@ -1321,6 +1325,11 @@ RsV =3D RsV; \ uiV =3D uiV; \ } while (0) +#define fGEN_TCG_Y2_dcfetchbo_nt(SHORTCODE) \ + do { \ + RsV =3D RsV; \ + uiV =3D uiV; \ + } while (0) =20 #define fGEN_TCG_L2_loadw_aq(SHORTCODE) SHORTCODE #define fGEN_TCG_L4_loadd_aq(SHORTCODE) SHORTCODE diff --git a/target/hexagon/macros.h b/target/hexagon/macros.h index eebfe1e5ed9..38a43647dd9 100644 --- a/target/hexagon/macros.h +++ b/target/hexagon/macros.h @@ -631,8 +631,18 @@ static inline TCGv gen_read_ireg(TCGv result, TCGv val= , int shift) #define fCONSTLL(A) A##LL #define fECHO(A) (A) =20 -#define fTRAP(TRAPTYPE, IMM) helper_raise_exception(env, HEX_EXCP_TRAP0) +#ifdef CONFIG_USER_ONLY +#define fTRAP(TRAPTYPE, IMM) \ + do { \ + hexagon_raise_exception_err(env, HEX_EVENT_TRAP0, PC); \ + } while (0) +#endif + +#define fDO_TRACE(SREG) +#define fBREAK() +#define fUNPAUSE() #define fPAUSE(IMM) +#define fDCFETCH(REG) =20 #define fALIGN_REG_FIELD_VALUE(FIELD, VAL) \ ((VAL) << reg_field_info[FIELD].offset) @@ -654,5 +664,18 @@ static inline TCGv gen_read_ireg(TCGv result, TCGv val= , int shift) #define fBRANCH_SPECULATE_STALL(DOTNEWVAL, JUMP_COND, SPEC_DIR, HINTBITNUM= , \ STRBITNUM) /* Nothing */ =20 +#ifdef CONFIG_USER_ONLY +/* + * This macro can only be true in guest mode. + * In user mode, the 4 VIRTINSN's can't be reached + */ +#define fTRAP1_VIRTINSN(IMM) (false) +#define fVIRTINSN_SPSWAP(IMM, REG) g_assert_not_reached() +#define fVIRTINSN_GETIE(IMM, REG) g_assert_not_reached() +#define fVIRTINSN_SETIE(IMM, REG) g_assert_not_reached() +#define fVIRTINSN_RTE(IMM, REG) g_assert_not_reached() +#endif + +#define fPREDUSE_TIMING() =20 #endif diff --git a/target/hexagon/sys_macros.h b/target/hexagon/sys_macros.h new file mode 100644 index 00000000000..4de4d53823a --- /dev/null +++ b/target/hexagon/sys_macros.h @@ -0,0 +1,239 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HEXAGON_SYS_MACROS_H +#define HEXAGON_SYS_MACROS_H + +/* + * Macro definitions for Hexagon system mode + */ + +#ifndef CONFIG_USER_ONLY + +#include "system/physmem.h" + +#ifdef QEMU_GENERATE +#define GET_SSR_FIELD(RES, FIELD) \ + GET_FIELD(RES, FIELD, hex_t_sreg[HEX_SREG_SSR]) +#else + +#define GET_SSR_FIELD(FIELD, REGIN) \ + (uint32_t)GET_FIELD(FIELD, REGIN) +#define GET_SYSCFG_FIELD(FIELD, REGIN) \ + (uint32_t)GET_FIELD(FIELD, REGIN) +#define SET_SYSTEM_FIELD(ENV, REG, FIELD, VAL) \ + do { \ + HexagonCPU *_sf_cpu =3D env_archcpu(ENV); \ + uint32_t regval; \ + if ((REG) < HEX_SREG_GLB_START) { \ + regval =3D (ENV)->t_sreg[(REG)]; \ + } else { \ + regval =3D _sf_cpu->globalregs ? \ + hexagon_globalreg_read(_sf_cpu->globalregs, (REG), \ + (ENV)->threadId) : 0; \ + } \ + fINSERT_BITS(regval, reg_field_info[FIELD].width, \ + reg_field_info[FIELD].offset, (VAL)); \ + if ((REG) < HEX_SREG_GLB_START) { \ + (ENV)->t_sreg[(REG)] =3D regval; \ + } else if (_sf_cpu->globalregs) { \ + hexagon_globalreg_write(_sf_cpu->globalregs, (REG), regval, \ + (ENV)->threadId); \ + } \ + } while (0) +#define SET_SSR_FIELD(ENV, FIELD, VAL) \ + SET_SYSTEM_FIELD(ENV, HEX_SREG_SSR, FIELD, VAL) +#define SET_SYSCFG_FIELD(ENV, FIELD, VAL) \ + SET_SYSTEM_FIELD(ENV, HEX_SREG_SYSCFG, FIELD, VAL) + +#define CCR_FIELD_SET(ENV, FIELD) \ + (!!GET_FIELD(FIELD, (ENV)->t_sreg[HEX_SREG_CCR])) + +/* + * Direct-to-guest is not implemented yet, continuing would cause unexpect= ed + * behavior, so we abort. + */ +#define ASSERT_DIRECT_TO_GUEST_UNSET(ENV, EXCP) \ + do { \ + switch (EXCP) { \ + case HEX_EVENT_TRAP0: \ + g_assert(!CCR_FIELD_SET(ENV, CCR_GTE)); \ + break; \ + case HEX_EVENT_IMPRECISE: \ + case HEX_EVENT_PRECISE: \ + case HEX_EVENT_FPTRAP: \ + g_assert(!CCR_FIELD_SET(ENV, CCR_GEE)); \ + break; \ + default: \ + if ((EXCP) >=3D HEX_EVENT_INT0) { \ + g_assert(!CCR_FIELD_SET(ENV, CCR_GIE)); \ + } \ + break; \ + } \ + } while (0) +#endif + +#define fREAD_ELR() (env->t_sreg[HEX_SREG_ELR]) + +#define fLOAD_PHYS(NUM, SIZE, SIGN, SRC1, SRC2, DST) { \ + const uintptr_t rs =3D ((unsigned long)(unsigned)(SRC1)) & 0x7ff; \ + const uintptr_t rt =3D ((unsigned long)(unsigned)(SRC2)) << 11; \ + const uintptr_t addr =3D rs + rt; \ + physical_memory_read(addr, &DST, sizeof(uint32_t)); \ +} + +#define fPOW2_HELP_ROUNDUP(VAL) \ + ((VAL) | \ + ((VAL) >> 1) | \ + ((VAL) >> 2) | \ + ((VAL) >> 4) | \ + ((VAL) >> 8) | \ + ((VAL) >> 16)) +#define fPOW2_ROUNDUP(VAL) (fPOW2_HELP_ROUNDUP((VAL) - 1) + 1) + +#define fTRAP(TRAPTYPE, IMM) \ + register_trap_exception(env, TRAPTYPE, IMM, PC) + +#define fVIRTINSN_SPSWAP(IMM, REG) +#define fVIRTINSN_GETIE(IMM, REG) { REG =3D 0xdeafbeef; } +#define fVIRTINSN_SETIE(IMM, REG) +#define fVIRTINSN_RTE(IMM, REG) +#define fGRE_ENABLED() \ + GET_FIELD(CCR_GRE, env->t_sreg[HEX_SREG_CCR]) +#define fTRAP1_VIRTINSN(IMM) \ + (fGRE_ENABLED() && \ + (((IMM) =3D=3D 1) || ((IMM) =3D=3D 3) || ((IMM) =3D=3D 4) || ((IMM= ) =3D=3D 6))) + +/* Not modeled in qemu */ + +#define MARK_LATE_PRED_WRITE(RNUM) +#define fICINVIDX(REG) +#define fICKILL() +#define fDCKILL() +#define fL2KILL() +#define fL2UNLOCK() +#define fL2CLEAN() +#define fL2CLEANINV() +#define fL2CLEANPA(REG) +#define fL2CLEANINVPA(REG) +#define fL2CLEANINVIDX(REG) +#define fL2CLEANIDX(REG) +#define fL2INVIDX(REG) +#define fL2TAGR(INDEX, DST, DSTREG) +#define fL2UNLOCKA(VA) ((void) VA) +#define fL2TAGW(INDEX, PART2) +#define fDCCLEANIDX(REG) +#define fDCCLEANINVIDX(REG) + +/* Always succeed: */ +#define fL2LOCKA(EA, PDV, PDN) ((void) EA, PDV =3D 0xFF) +#define fCLEAR_RTE_EX() \ + do { \ + uint32_t tmp =3D env->t_sreg[HEX_SREG_SSR]; \ + fINSERT_BITS(tmp, reg_field_info[SSR_EX].width, \ + reg_field_info[SSR_EX].offset, 0); \ + log_sreg_write(env, HEX_SREG_SSR, tmp, slot); \ + } while (0) + +#define fDCINVIDX(REG) +#define fDCINVA(REG) do { REG =3D REG; } while (0) /* Nothing to do in qem= u */ + +#define fTLB_IDXMASK(INDEX) \ + ((INDEX) & (fPOW2_ROUNDUP( \ + fCAST4u(hexagon_tlb_get_num_entries(env_archcpu(env)->tlb))) - 1)) + +#define fTLB_NONPOW2WRAP(INDEX) \ + (((INDEX) >=3D hexagon_tlb_get_num_entries(env_archcpu(env)->tlb)) ? \ + ((INDEX) - hexagon_tlb_get_num_entries(env_archcpu(env)->tlb)) : \ + (INDEX)) + + +#define fTLBW(INDEX, VALUE) \ + hex_tlbw(env, (INDEX), (VALUE)) +#define fTLBW_EXTENDED(INDEX, VALUE) \ + hex_tlbw(env, (INDEX), (VALUE)) +#define fTLB_ENTRY_OVERLAP(VALUE) \ + (hex_tlb_check_overlap(env, VALUE, -1) !=3D -2) +#define fTLB_ENTRY_OVERLAP_IDX(VALUE) \ + hex_tlb_check_overlap(env, VALUE, -1) +#define fTLBR(INDEX) \ + hexagon_tlb_read(env_archcpu(env)->tlb, \ + fTLB_NONPOW2WRAP(fTLB_IDXMASK(INDEX))) +#define fTLBR_EXTENDED(INDEX) \ + hexagon_tlb_read(env_archcpu(env)->tlb, \ + fTLB_NONPOW2WRAP(fTLB_IDXMASK(INDEX))) +#define fTLBP(TLBHI) \ + hex_tlb_lookup(env, ((TLBHI) >> 12), ((TLBHI) << 12)) +#define iic_flush_cache(p) + +#define fIN_DEBUG_MODE(TNUM) ({ \ + HexagonCPU *_cpu =3D env_archcpu(env); \ + uint32_t _isdbst =3D _cpu->globalregs ? \ + hexagon_globalreg_read(_cpu->globalregs, \ + HEX_SREG_ISDBST, env->threadId) : 0; \ + (GET_FIELD(ISDBST_DEBUGMODE, _isdbst) \ + & (0x1 << (TNUM))) !=3D 0; }) + +#define fIN_DEBUG_MODE_NO_ISDB(TNUM) false +#define fIN_DEBUG_MODE_WARN(TNUM) false + +#ifdef QEMU_GENERATE + +/* + * Read tags back as zero for now: + * + * tag value in RD[31:10] for 32k, RD[31:9] for 16k + */ +#define fICTAGR(RS, RD, RD2) \ + do { \ + RD =3D ctx->zero; \ + } while (0) +#define fICTAGW(RS, RD) +#define fICDATAR(RS, RD) \ + do { \ + RD =3D ctx->zero; \ + } while (0) +#define fICDATAW(RS, RD) + +#define fDCTAGW(RS, RT) +/* tag: RD[23:0], state: RD[30:29] */ +#define fDCTAGR(INDEX, DST, DST_REG_NUM) \ + do { \ + DST =3D ctx->zero; \ + } while (0) +#else + +/* + * Read tags back as zero for now: + * + * tag value in RD[31:10] for 32k, RD[31:9] for 16k + */ +#define fICTAGR(RS, RD, RD2) \ + do { \ + RD =3D 0x00; \ + } while (0) +#define fICTAGW(RS, RD) +#define fICDATAR(RS, RD) \ + do { \ + RD =3D 0x00; \ + } while (0) +#define fICDATAW(RS, RD) + +#define fDCTAGW(RS, RT) +/* tag: RD[23:0], state: RD[30:29] */ +#define fDCTAGR(INDEX, DST, DST_REG_NUM) \ + do { \ + DST =3D 0; \ + } while (0) +#endif + +#else +#define ASSERT_DIRECT_TO_GUEST_UNSET(ENV, EXCP) do { } while (0) +#endif + +#define NUM_TLB_REGS(x) (hexagon_tlb_get_num_entries(env_archcpu(env)->tlb= )) + +#endif diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 0a946433644..5b9c266d02f 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -25,6 +25,7 @@ #include "cpu.h" #include "internal.h" #include "macros.h" +#include "sys_macros.h" #include "arch.h" #include "hex_arch_types.h" #include "fma_emu.h" @@ -32,6 +33,9 @@ #include "mmvec/macros.h" #include "op_helper.h" #include "translate.h" +#ifndef CONFIG_USER_ONLY +#include "hexswi.h" +#endif =20 #define SF_BIAS 127 #define SF_MANTBITS 23 --=20 2.34.1 From nobody Sun Jul 26 11:50:59 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397167; cv=none; d=zohomail.com; s=zohoarc; b=ErnhYD7AcdR3wHN1DFv3XLcKcMfr/qHD5VtHIuuefMAlWf3Z+pOTosHa59fWdTW5gNHoTXeWDmVjClC0+ZNqxqIISYARPNEb6bxEOCtviX4D40PKwinElvWWLs6Jh1hgpMHUw9108YuyOi9z1L3zzIAzJf77UzEFJRqYmodnA/Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397167; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=93NO5nTkqSLKhLHTshorCnrOXtq4w0A1wRQSw+4IeFU=; b=Dfi+FACN7/D1Q2+QsN1kxHuNoGbw0Cf4InCiRIb2NL5rKi3zreO6dQgynmDwJF9NiZyZmaI9evY7aV+nrwzPlQULZ2dN/UCnsfCNNMA/deoaVB53bQoWJc4tZh7BGbp+t6fHZtuCWQDFC9mLXVF4agnSE+B4fYq2ZtIdsnn5ZnA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782397167829273.8412522409959; Thu, 25 Jun 2026 07:19:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wckta-0006u7-Cz; Thu, 25 Jun 2026 10:17:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wcktW-0006sk-Mz for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:30 -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 1wcktU-0008Ub-Vy for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:30 -0400 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9jspe1919005 for ; Thu, 25 Jun 2026 14:17:18 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0ueuajv9-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:17:18 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c84dc3574so997894eec.0 for ; Thu, 25 Jun 2026 07:17:17 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.17.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:17: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= 93NO5nTkqSLKhLHTshorCnrOXtq4w0A1wRQSw+4IeFU=; b=doQYDXbrJ5npWNTT ZSTJXjiW8c7n9qALOlMYFsN+/SsxjLCbz6SDZnDVfoEz9zZzGevRcwmMluBzn4AS jckiDGIfLRqN0FlilSU37DT1I8t7+jqrM9F38hz2j4fZUCjJvU40kKUGw0hNEV6L MvWrRjde7rvOT5333cERg3rQdY0EKfBBWb09QHZilMANP13DeVX+2yvzYmQtuLo8 2yUoeJgEj9aM64KGhTmW1DFIfp3o8KE83viIOumcp24TG/dlrfobMW5NZVgdm6f3 EKc/ZPRjPDo2zu4it7ZT1RzHhyUoUzT4tg311kuuSdJtGztDOrX9RlB6vHhlAxAj CFV6gg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397037; x=1783001837; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=93NO5nTkqSLKhLHTshorCnrOXtq4w0A1wRQSw+4IeFU=; b=Md3UEL65ISzzMjh+tSOKqaU7wWv/8WQqcyghmxM1p5lE/QllvHA1Y25IeU4za34Bxv Kl/W07nLi/6yy6dzQk3wLxf9hSukrin/XylQa9RG3XVl1yOg6nUsLx46NjvQyPPd1pJv iEvUUe/YbExQoqVQi8TW3n5IPwVvE/tJsFW4jF3kUe0SumK4xmK6PXlTqsOIDBUffwY1 CUmLkhIQwXBm2BKQHiX7Ti4cWPu/xOvS1F/jgwQ5ho88zD1P6Z4K+bZH8CRFpANnrWTE 8NT0qvUfSXGVxChVT5E3d0lDlAv9WTcouZzs9eVey0tiLBfk7G9HteSCqeXKdS4fMaFN Vj2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397037; x=1783001837; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=93NO5nTkqSLKhLHTshorCnrOXtq4w0A1wRQSw+4IeFU=; b=eybGW6GM62Brj5QNt+ARPXSWCygf8XsCRDDKRDYJLgXzKYnGOxI2Kmn5NKrgiVGz5g zdrhmIxbplKs7bPpm1pDlbZ0CmM5+2jaJlhJiM9lkFIjfiM3RCfx0yqRUDSwlYv7lOUR L4uNnzti+J24Fr0mWe79RnFYTWdvSGeNIJwH1klkE/bKtOR9WI0g0LaN9+Mal7NNHuGJ EcBjUzh6Nl23HjcBy3GTMEEcSbu8fiCwBBiImZXjM+ao91gSVri3qb/ra4l4rEr5vWlP q0FzsW/kItkENGTfeWS2bGr5WLHx7KqbmXBjOw+zph+24LbAQ0wdYCTeS8ey4IOxFZiy uxig== X-Gm-Message-State: AOJu0YySEC3VxpWzPrpDdJDq4EtGqD+3GkJTg+Ajx39Siu2CpqNo5yKx RIK3lrFibTocpw3iQcnmWjDCOVT0muSZ0KXCVozX6kx2AIi3n0JenWSA1Zqn69gNBgm/gpMVj10 sbNcRJTHPr1BJaRkpWlROXLZxOwZHgFf1Zc4NPFx/goUSTFeArP+onbGP9Bk+H2rWOQ== X-Gm-Gg: AfdE7cnwY8rVPVXN+19JsQPFRC8PB1r1MmhCulqHNBIGSJ9XFiFgCa7kO/g16YDv88f c7Y/kU1uYEC8rTq+VUq/S9WBkb+F17Ek+lXFISlANfIv8TjS0PceauCrAkyHtIK6P30h7MtfkNB 3iqffPTjplh7/TRoH6Gp4kk1EtqNjVMJKaYH28LRLwgF/gf14vimQtdfAhFlb5D/5pe3ESCaLp/ 7xpO4ZLVXf3IEeBjYq2Q2GDSTUhrjnxxdOYkNC8U+7ET5jr4Ed3if6wkvUr491HGFZCZEp9NiS8 /bpbuGpvCCt2hgE2K2Gm1s5YMgNM3IZqhIIE7PpYZICRwogX+DMs8ol+oWizD//MPt3qVscJP/d IH1Wytss8RnmoTXQfuiSNs3/rC3FNgoDBK0KxeroY6BjGn2Da8psqChAWPMA= X-Received: by 2002:a05:7300:d517:b0:30c:5254:787a with SMTP id 5a478bee46e88-30c84ad6d1bmr2905776eec.0.1782397036803; Thu, 25 Jun 2026 07:17:16 -0700 (PDT) X-Received: by 2002:a05:7300:d517:b0:30c:5254:787a with SMTP id 5a478bee46e88-30c84ad6d1bmr2905722eec.0.1782397036197; Thu, 25 Jun 2026 07:17:16 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 19/76] target/hexagon: Add handlers for guest/sysreg r/w Date: Thu, 25 Jun 2026 07:15:36 -0700 Message-Id: <20260625141633.449487-20-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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: IYPNwF9w5sz-KuzY2Kdzpp9YvfTQhhVM X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX0y+IS1BffVXY 96KN3LK1YqunOHM0KPL5ST3i5BEbZrlPcoWwV+FJC4mfJLuPL8YYdQduf0w8sVeE8x87F4CCANe P7nm6R+X3YJS3xdhSW/ZI2nEuRP8Vw8= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfXxdeqhoCBEq2a kfjiP+U186Hd4KmYfA8Li0TkDSDy/q2QPNikCc9FJ1JZipVuVs0y+U7BvHU6g9SMCvSUZNy2H4U +JuQ+YLw8K4CgfpOjo8ZsqsVS4Outdhnt6ttZ9QLn2fXHkRf4OLTRiOdKVCw3KBHguCGkJGVvSU F+SDipNSFZqypcM+MZvOEau/e32boLZx2lNu5SXbncJcjBMwZMjq1ZjLSSm5nKDgCSpKliporst yZEDQUdXss5AoMV+/g0l6IXZe2SxSqJ5U6PYYW2olua0YRjjBZ6pC4+g34FfCis5NO/Mjb5L5Oc 0PabjJJogUjAwIVEfWdYuaz4GZQIAYOPwh/htLnV4b/hBuTWdHKVlON9T6OPge0U+EbmOuSZFZX QLyOP/rvCZABqkLqCQhdUMIEZyDTUmtNa0ehbW3RLUEw8djpna9hXblpjPRHIIrNDjl653d5UtL yTbgvmQ14Sxi6Wm8+SA== X-Authority-Analysis: v=2.4 cv=b/SCJNGx c=1 sm=1 tr=0 ts=6a3d386e cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=YS0KV4ZxTOLzYV__0jkA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: IYPNwF9w5sz-KuzY2Kdzpp9YvfTQhhVM X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 suspectscore=0 phishscore=0 bulkscore=0 adultscore=0 clxscore=1015 spamscore=0 malwarescore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397168333158500 From: Brian Cain This commit provides handlers to generate TCG for guest and system register reads and writes. They will be leveraged by a future commit. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/genptr.c | 151 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 151 insertions(+) diff --git a/target/hexagon/genptr.c b/target/hexagon/genptr.c index 5d5adace4b3..8f191f80619 100644 --- a/target/hexagon/genptr.c +++ b/target/hexagon/genptr.c @@ -23,6 +23,7 @@ #include "exec/helper-gen.h" #include "insn.h" #include "opcodes.h" +#include "sys_macros.h" #include "translate.h" #define QEMU_GENERATE /* Used internally by macros.h */ #include "macros.h" @@ -120,6 +121,156 @@ TCGv get_result_pred(DisasContext *ctx, int pnum) } } =20 +#ifndef CONFIG_USER_ONLY +G_GNUC_UNUSED +static bool greg_writable(int rnum, bool pair) +{ + if (pair) { + if (rnum < HEX_GREG_G3) { + return true; + } + qemu_log_mask(LOG_UNIMP, + "Warning: ignoring write to guest register pair G%d:%d\n", + rnum + 1, rnum); + } else { + if (rnum <=3D HEX_GREG_G3) { + return true; + } + qemu_log_mask(LOG_UNIMP, + "Warning: ignoring write to guest register G%d\n", rnum); + } + return false; +} + +G_GNUC_UNUSED +static void check_greg_impl(int rnum, bool pair) +{ + if (pair && (!greg_implemented(rnum) || !greg_implemented(rnum + 1))) { + qemu_log_mask(LOG_UNIMP, + "Warning: guest register pair G%d:%d is unimplemented or " + "reserved. Read will yield 0.\n", + rnum + 1, rnum); + } else if (!pair && !greg_implemented(rnum)) { + qemu_log_mask(LOG_UNIMP, + "Warning: guest register G%d is unimplemented or reserved." + " Read will yield 0.\n", rnum); + } +} + +G_GNUC_UNUSED +static inline void gen_log_greg_write(DisasContext *ctx, int rnum, TCGv_i3= 2 val) +{ + tcg_gen_mov_i32(ctx->greg_new_value[rnum], val); +} + +G_GNUC_UNUSED +static void gen_log_greg_write_pair(DisasContext *ctx, int rnum, TCGv_i64 = val) +{ + TCGv_i32 val32 =3D tcg_temp_new_i32(); + + /* Low word */ + tcg_gen_extrl_i64_i32(val32, val); + gen_log_greg_write(ctx, rnum, val32); + + /* High word */ + tcg_gen_extrh_i64_i32(val32, val); + gen_log_greg_write(ctx, rnum + 1, val32); +} + +static const uint32_t sreg_immut_masks[NUM_SREGS] =3D { + [HEX_SREG_STID] =3D 0xff00ff00, + [HEX_SREG_ELR] =3D 0x00000003, + [HEX_SREG_SSR] =3D 0x00008000, + [HEX_SREG_CCR] =3D 0x10e0ff24, + [HEX_SREG_HTID] =3D IMMUTABLE, + [HEX_SREG_IMASK] =3D 0xffff0000, + [HEX_SREG_GEVB] =3D 0x000000ff, +}; + +G_GNUC_UNUSED +static void gen_log_sreg_write(DisasContext *ctx, int rnum, TCGv_i32 val) +{ + const uint32_t reg_mask =3D sreg_immut_masks[rnum]; + + if (reg_mask !=3D IMMUTABLE) { + if (rnum < HEX_SREG_GLB_START) { + gen_masked_reg_write(val, hex_t_sreg[rnum], reg_mask); + if (ctx->need_commit || rnum =3D=3D HEX_SREG_SSR) { + tcg_gen_mov_i32(ctx->t_sreg_new_value[rnum], val); + } else { + tcg_gen_mov_i32(hex_t_sreg[rnum], val); + } + } else { + gen_helper_sreg_write_masked(tcg_env, tcg_constant_i32(rnum), = val); + } + } +} + +G_GNUC_UNUSED +static void gen_log_sreg_write_pair(DisasContext *ctx, int rnum, TCGv_i64 = val) +{ + TCGv_i32 val32 =3D tcg_temp_new_i32(); + + /* Low word */ + tcg_gen_extrl_i64_i32(val32, val); + gen_log_sreg_write(ctx, rnum, val32); + + /* High word */ + tcg_gen_extrh_i64_i32(val32, val); + gen_log_sreg_write(ctx, rnum + 1, val32); +} + +G_GNUC_UNUSED +static void gen_read_sreg(TCGv_i32 dst, int reg_num) +{ + if (reg_num >=3D HEX_SREG_GLB_START || reg_num =3D=3D HEX_SREG_BADVA) { + gen_helper_sreg_read(dst, tcg_env, tcg_constant_i32(reg_num)); + } else { + tcg_gen_mov_i32(dst, hex_t_sreg[reg_num]); + } +} + +G_GNUC_UNUSED +static void gen_read_sreg_pair(TCGv_i64 dst, int reg_num) +{ + if (reg_num < HEX_SREG_GLB_START) { + if (reg_num + 1 =3D=3D HEX_SREG_BADVA) { + TCGv_i32 badva =3D tcg_temp_new_i32(); + gen_helper_sreg_read(badva, tcg_env, + tcg_constant_i32(HEX_SREG_BADVA)); + tcg_gen_concat_i32_i64(dst, hex_t_sreg[reg_num], badva); + } else { + tcg_gen_concat_i32_i64(dst, hex_t_sreg[reg_num], + hex_t_sreg[reg_num + 1]); + } + } else { + gen_helper_sreg_read_pair(dst, tcg_env, tcg_constant_i32(reg_num)); + } +} + +G_GNUC_UNUSED +static void gen_read_greg(TCGv_i32 dst, int reg_num) +{ + if (reg_num <=3D HEX_GREG_G3) { + tcg_gen_mov_i32(dst, hex_greg[reg_num]); + } else { + gen_helper_greg_read(dst, tcg_env, tcg_constant_i32(reg_num)); + } +} + +G_GNUC_UNUSED +static void gen_read_greg_pair(TCGv_i64 dst, int reg_num) +{ + if (reg_num =3D=3D HEX_GREG_G0 || reg_num =3D=3D HEX_GREG_G2) { + tcg_gen_concat_i32_i64(dst, hex_greg[reg_num], + hex_greg[reg_num + 1]); + } else { + gen_helper_greg_read_pair(dst, tcg_env, tcg_constant_i32(reg_num)); + } +} +#endif + + void gen_pred_write(DisasContext *ctx, int pnum, TCGv val) { TCGv pred =3D get_result_pred(ctx, pnum); --=20 2.34.1 From nobody Sun Jul 26 11:50:59 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397174; cv=none; d=zohomail.com; s=zohoarc; b=Zb/nWz28l34J6VcW/q2MQL1y69hYrTSS3xHQci9jRv8Z87L5sihsLSiaLB8lZEJ5Bq0K4L56hkaGFNUgjv0NqbXIDEZOaIxgwsILzhXeZvYI2yicMmP7/x1IcaP1BrpK/1xxYiL54MeCn71MVZ+ozkQgBAFLI1xjpb2KvOS0WHo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397174; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=wO8Hpccix22tZFHgyU0VgMmMK7ZQOufSmnr3QdC9JmM=; b=HWWOBhva+Lu/wKosne7D1SGIdeR5jHV63zymqpY5REGgPaCKRxuhvMpGLPFE0ThYZR00/vMpVP3Dpm4wrFwCknp52fu8oKGfeqTjv1HSxIH21tiyidDjpayQyToDGppIbyBCTrz+bAnBgblzByaT0jQoU9P/wcfx7H6U0WzkAzg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178239717455431.381731888098784; Thu, 25 Jun 2026 07:19:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wckta-0006tr-9B; Thu, 25 Jun 2026 10:17:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wcktY-0006tF-Jw for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17: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 1wcktW-0008Um-NQ for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:32 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9k0Xe2010812 for ; Thu, 25 Jun 2026 14:17:20 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0uhmjjwt-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:17:19 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c50cd6cbcso2571320eec.1 for ; Thu, 25 Jun 2026 07:17:19 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.17.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:17: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= wO8Hpccix22tZFHgyU0VgMmMK7ZQOufSmnr3QdC9JmM=; b=Zm/m8Ix0d0S6cF4D g0Ib/05PGpO3jwPPg6dYA8t2ZEgQBYKZMVDdiuZOraUJ4/8+ITwCjpotSFDqKoTf n1WXsCBv/1DizeKZfM8F0YAB+9/OuporBfNRurrYlHNdpbB24MV0iUt9MtY/PaGb Q1DW+7UegnEflzZPEos3w/fX8V29gsrztK//etaiYNW9lTL7aALwDyayFbSJpx7m qdODGu1t9w6jJk9mLRlgrFxiqeU0batA9b0JPtj0AnPWPY6zKvbAnvqmjzAInHV6 FkvnnzxuWGyrMrd5DqWdRYQgdcbYgrCxnYXmhGDceyFeBH0cP/ACTbPGa1JH//6p GUDsbw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397039; x=1783001839; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=wO8Hpccix22tZFHgyU0VgMmMK7ZQOufSmnr3QdC9JmM=; b=RSlhYtkPw5R4zB+H64Ng5iOasX7l6W74J0AGOeHbXirPVeM2hIIvnQ/N7oFU92CZk3 eietRfhq5LLyoDNHHczSI1gNNkTTYY5IbpuApHBN2CdIafrSfmvMxhI0XjZE3dQdeRgW /HuhKqZo3rmgeW8fIutE1diku2EhIY8A/F00CZgCS9KCLAvD1hVL05iZXrfMITQghBHb aG8LlH4190Zox0xSufqpqNr9wRaXGJ1abEGpdp7t42zNkvFoIYk9U7W71jSXenpoZFdJ dzoaVw3ckqtEwvGgdJDRnl+w282ZyUzbhMiKNcufFZ1/h/ZOnt9E5ggwt1TLNLJKIZWb gPsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397039; x=1783001839; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=wO8Hpccix22tZFHgyU0VgMmMK7ZQOufSmnr3QdC9JmM=; b=FszEdaXTDHJOcaOCvT6ghYDH+Qe3V9FsvaShNqZ6UgB2t1MrmOSNh4SKYZfXgQTgeY yz3ZIQ9ZGVI2LBA5JNuZxEfB9JGK6e5j+nLtMS/TPoDGlZlNJMDKKfblBvNtRMHGhyiC PCvWUGNdESfL8ZERZFg0JjoHqc1nf+Iw7rSeo4wpkzKKNaebboi0Km++LVrSxLiToJjm PYBbeKXPgKAcX3Gq/nXOSX0LWEwlrE1/JUTuuPSW3ChvsjhBwOVGlYhplsgSsAsdxCpY NchiW0F7jN+zTkmBKQ6cU2L056GF7fnIzBPDYOsNpAq86ZvHnsAsIUkamkaX2vepVaNI VGSg== X-Gm-Message-State: AOJu0Yz+e79USasDh+vRnatAhf0ZMeeIVg/WrsvPSvIOhP7CntDaRBET h5mwPZd2keH1aC8gQ/tqVi9rFXba8qmHLOTnhr4EQKKn1EVGv/24kqJnkckf9CFsda5I6153pqo Q3N+DTHy0bvwsbVno/3mV66fWCU7zkBTlUTyl8ixvPE1I/SYHwX2l05AgihhAuu5lzQ== X-Gm-Gg: AfdE7ckedsWgXQQYR5VJhD27x1Yb5baLjvwVCNQcryZstQyBrJy4/cNniKIy/NUV3Wx itjsGUcBmoE5BiMK1sAML7VESmitrjYEpslsIhWOM34isd7Fa48ivRdzYcdV5cue/MR/QoF+g6F onfPWD0svfLjrMIifFYxT482OJK1lHJSq4yD0rVlm2rxKkarb8ECFmAPmZja1aCfG4eR8zVHwi1 df1bGcFkVYFLAzQsWygw/Eju+XXCfynYdwvgsthK35/nCXWmbvrM1l3wQJ6SEHi+uGT89yGVjNu KuFKImpK6jUakF+ShTwu2J7rWkl4fKJS9gRGpKMk8qk1PFb3XZM8zM2BqP9bhUYmlooDTdNuRgM Owj3XVL24+aMOrQd6qafzs67+ixFs63/vkZi57sPLah0DR0U7p6wUsVHdYVA= X-Received: by 2002:a05:7301:1930:b0:2fc:9aa8:83da with SMTP id 5a478bee46e88-30c84d4ac97mr3182337eec.29.1782397038680; Thu, 25 Jun 2026 07:17:18 -0700 (PDT) X-Received: by 2002:a05:7301:1930:b0:2fc:9aa8:83da with SMTP id 5a478bee46e88-30c84d4ac97mr3182279eec.29.1782397038120; Thu, 25 Jun 2026 07:17:18 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 20/76] target/hexagon: Add placeholder greg/sreg r/w helpers Date: Thu, 25 Jun 2026 07:15:37 -0700 Message-Id: <20260625141633.449487-21-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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=cqerVV4i c=1 sm=1 tr=0 ts=6a3d386f cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=wA0rHRt5QP8iJxr38i8A:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX9QL1atp85hmy n6zwU5MRdefYJPs/uUzg4frssoh7W0ez9p6Nk1HQ2QJyLQj54mvmEQTBnolDy0aaafY9a4GoQZf BObqYQXWQPkw4LHQUIvTdLW0gOXTQNaIkhQfuFsAKEHOl46cJsdIJOsejYG9lJ/cS2cJbqeSKBQ SeeIb3Y1q1Z4FuUkb08LFKk1JTWQ2qykwF0qyrEKVP1S78FpGwc1hGVxSSqWGn74Q8w4UmbmxpD +d2/tg1Gp+3VMyF1C0pWkXCLhN9HQYUDGSJUVXjjZD0eQZKMPoFLYVPx1PfsnBK30p+hXO9kwDy FXLdOWRE0gMKs/KXFNNTQAngBcMH9b2SF5tB0TFk6uuVfwLT0I0+GsjrWf2ny0mCjDSjNG7mL03 +XRFk5r4rTK0B2dYiDY0UpZKBqIE7XoQqaVh7yZVF3gFXGiZtBxXgO+/G4F84Whu5yfEbHmy7PQ FgjRk2K9QcU/NCrRzFg== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfXwEizxwAxww8F ZZT2ZbCsDDArTnkvebyEghMXai/jyEBWTDXUiPlSdpRhNnA70WZmRrfbP49GuQzAXoPDy2YJThe hErf5p63iyOgY6wW7I+XcGavV53Jjzs= X-Proofpoint-GUID: OEgirOysIOmxUbzK1dA8--ExOKUrYW1I X-Proofpoint-ORIG-GUID: OEgirOysIOmxUbzK1dA8--ExOKUrYW1I X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 clxscore=1015 bulkscore=0 phishscore=0 priorityscore=1501 malwarescore=0 suspectscore=0 impostorscore=0 spamscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397176454158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/helper.h | 8 ++++++++ target/hexagon/op_helper.c | 28 ++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index 64456822bc1..28b9b59e0f2 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -107,3 +107,11 @@ DEF_HELPER_4(probe_noshuf_load, void, env, i32, int, i= nt) DEF_HELPER_2(probe_pkt_scalar_store_s0, void, env, int) DEF_HELPER_2(probe_hvx_stores, void, env, int) DEF_HELPER_2(probe_pkt_scalar_hvx_stores, void, env, int) + +#if !defined(CONFIG_USER_ONLY) +DEF_HELPER_2(sreg_read, i32, env, i32) +DEF_HELPER_2(sreg_read_pair, i64, env, i32) +DEF_HELPER_2(greg_read, i32, env, i32) +DEF_HELPER_2(greg_read_pair, i64, env, i32) +DEF_HELPER_3(sreg_write_masked, void, env, i32, i32) +#endif diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 5b9c266d02f..cd324c19a9d 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1374,6 +1374,34 @@ void HELPER(vwhist128qm)(CPUHexagonState *env, int32= _t uiV) } } =20 +#ifndef CONFIG_USER_ONLY +void HELPER(sreg_write_masked)(CPUHexagonState *env, uint32_t reg, uint32_= t val) +{ + g_assert_not_reached(); +} + +uint32_t HELPER(sreg_read)(CPUHexagonState *env, uint32_t reg) +{ + g_assert_not_reached(); +} + +uint64_t HELPER(sreg_read_pair)(CPUHexagonState *env, uint32_t reg) +{ + g_assert_not_reached(); +} + +uint32_t HELPER(greg_read)(CPUHexagonState *env, uint32_t reg) +{ + g_assert_not_reached(); +} + +uint64_t HELPER(greg_read_pair)(CPUHexagonState *env, uint32_t reg) +{ + g_assert_not_reached(); +} +#endif + + /* These macros can be referenced in the generated helper functions */ #define warn(...) /* Nothing */ #define fatal(...) g_assert_not_reached(); --=20 2.34.1 From nobody Sun Jul 26 11:50:59 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397215; cv=none; d=zohomail.com; s=zohoarc; b=HO1HONwX+DsQFQ1FxgI7nGLHsDCpB9iMkzd25z6lhXZtE+KzG3eKbdMsO/HCvtqusoXFO+T2+aV6ayn59As+FaRafCExxY2Wzdg/R1IST5N/fq8Kft8gv4ltGtLdPUxoXo7K/Rqa/VGQLec/kaojEg4aX8lTW3sPWN0i6bmnWmY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397215; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=qFYqNPPFISG4W33OXfV6Z2hBY6Ip8YqwFk+1NFRkGKE=; b=kBrtxLVo5LBOC4u8ml7ewU3n1blGIuuER5uRCve8fsvB/ovSnhsdIEkNaavJuSdOSSBS9NxEPce3T+ur7/JUMl+6xJAXw/LKv23koZlHAtZBzfYeY+R6KnChiPOUbqhKtagQWDsTtK1MUixuYbcbgKBVMbiggYZfiXd61P3IMqI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782397215628858.3994159682297; Thu, 25 Jun 2026 07:20:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wcktf-0006ve-3O; Thu, 25 Jun 2026 10:17:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wckta-0006uQ-P7 for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17: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 1wcktY-0008V6-JP for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:34 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9kE1e1948648 for ; Thu, 25 Jun 2026 14:17:21 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0ya8spm7-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:17:21 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c17bc96afso4979702eec.0 for ; Thu, 25 Jun 2026 07:17:21 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.17.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:17: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=qFYqNPPFISG4W33OXfV6Z2hBY6Ip8YqwFk+1NFRkGKE=; b=Hv W13nef0RCmrR9bD4PJ7+yC9RExkPwqTfTN3Qk/p3vVW4CRw19fRvPhInNJ9Hh1vU zYY6mWmn5zEejX7YnoE9R/GhrLlUb3Qkc6vuYoltsqa8saMnSj694X0c6QmaL5v5 W2jWCtvVRfckqeNhOoXID91l+7BDd5+VeqhMklHpb46smJvdOkcruu9amIJlnYm6 0+im5LW2EOQL5k7Q2eHwwxfD4T6QG60UH9EjxG5x10hTxhLwitVnCoMuejw/0o9j Q7CzjTaATbUin682t5Qh8j3398O5GWCIC2RlWmraz0fteX4MuPjrnfBnUGhuxj6g MfwZaQ9hg6nFJZjhhIPg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397041; x=1783001841; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=qFYqNPPFISG4W33OXfV6Z2hBY6Ip8YqwFk+1NFRkGKE=; b=VRPMr+lKRVTP5D817br8+kZ9LYt7GyFYBQLza+BHk3DjF0ghqAlsdzqfn/QKVrSbrz haDPg+WxIBud6yoL43LkUTEsgT5y7IEu+PGe7aigjUr2EB9mAdiBzOFRFHU0ObLu9FeN dRuS1+xBqoXlrkMbF8gSMLCJOKWNjuxHRINw92kDQ3GYaHKtbRfEoevJgRgWA4yZlv88 Uy9DCryvn7DIDl5kaE89mRJGZ0WxMiMUc1OCY5jsmskqosiQUrD9og1/xvbZ78wosoN+ jxhrwFWaYKk13kJq1xksuhr4e28pBqflt3RMu9gxPPe71LVerZth07yGrxeB8q2CvTNk 5sqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397041; x=1783001841; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=qFYqNPPFISG4W33OXfV6Z2hBY6Ip8YqwFk+1NFRkGKE=; b=Y+yy/5mh/ASoaHGPsVQaI8xh5giOWgv/R9hLc8RpyVNvYLMUSsSZR7Q/Dnd//Tcfge 2/0ww8eiIBDbT7UOBEuzgzzXmAQBMyPExa4nTS2n8nRrEiSddxU6T0GdJ+oG2av1cxeN x3lcJTiUxs5MSSB+mDL0JdH9Uk0sEB6l9aWLJ+aRI26l+NLKi7O1grr/NLgiP/x922aU PgKImX3dG8mYYufIhfoQq8cbg11rKlS4CUX5+e/fZXCVMIl1fLXJ0k18Bv683pup+qOP IAXn7MbviAYqMLQFTpFLs+rHDEyJ+LOre/J9awMk0QwxRzoa4ELy/Plus/3SdwJmi2mQ heoQ== X-Gm-Message-State: AOJu0YyZUXdwptcTQuPHI+UEJsRWQovydCJ8lonQDEM7wWzRs6iVywoo 3AfutM3KqtOr02dreOT+1DiSo3uXFMBoHuIjFp+01Bxy32PRaLek4ygBFMmcQvnOppI4w0G2NN2 J/JOP9h/ebe6Ai0wVjW0VgAs0A29IN5SPZKgiU2u/HDbLPmAz/ibH7ICToYfsr0qEsQ== X-Gm-Gg: AfdE7cnmdntVfRebnbikmk6lYPjqZgI+1b3Kf+2+rItSoaGr5LA7ZDsRisNAyx8TJ1e 7YxN2ikGDTbk5DqVk/1bXGO7QRBG2G26q64CP+TZPv8H01ELC9GsGvr2UR49VIp3+7Dsa9gCSud 91+v0X4ZKNXi/JM8RCV8N8bqMI69xdzD5I5n3V3QnntGPN0hGFLlzBK8W5Pq6w0LMEQ0023rZyc +7QArKQ+TlK004aKreSdONPtP9MzCfZwIT5AsnBlC0SqSKAT0xLm873nZFUotAfkigkQqyBxtU+ IspjBxn6bCyrluG5VzXJNjhxF4/qeP3df3c3ehMDklEjTt6lSOC0zOtP7820uZmG2R6Krtie0zC QfA/Sd7FjOuDNmvXtNuT9XUs7gHpCDMf9OQrxchoqy1kYZmlRD2aapQZwm4M= X-Received: by 2002:a05:7301:2a08:b0:304:d82f:be10 with SMTP id 5a478bee46e88-30c84bad8ddmr3658021eec.11.1782397040419; Thu, 25 Jun 2026 07:17:20 -0700 (PDT) X-Received: by 2002:a05:7301:2a08:b0:304:d82f:be10 with SMTP id 5a478bee46e88-30c84bad8ddmr3657920eec.11.1782397039584; Thu, 25 Jun 2026 07:17:19 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Richard Henderson , Pierrick Bouvier Subject: [PULL v3 21/76] target/hexagon: Add vmstate representation Date: Thu, 25 Jun 2026 07:15:38 -0700 Message-Id: <20260625141633.449487-22-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX/e/Q0OaG3eZQ GoyKhUtw5nDesGxAdllH4NKtV6gpB05d0Of7r6yBxCUbmHt4iXiHOSU/fX6SeAL/0cv+Hw3rNRy YQPQ7Tntl3CckGSRLs6skuDBaCph3nw= X-Proofpoint-GUID: LmxTD5AmEJxJnOqnIzHT9wJOp9XgvEbm X-Proofpoint-ORIG-GUID: LmxTD5AmEJxJnOqnIzHT9wJOp9XgvEbm X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX4Fl1+x40TTu7 TOVz9RNt5obm0L4/z2ZBfuCu1947DU6IH12tNaO/gWmiBguaCeQMTzFf6glnxrXwzxSKxz6gjJO 3splgZAEIq0SaiVijePtc2z982xsaKKXt2ZRaKwlWDNgwOsNmrrguAVR4ojrIfhphnKTB6o5zui H0IlXPcT4PycdeiNSWwlLrHWIcGHjFkeprjdNGMI0eQ+daMuEw10GnNzoOdDUsuPAuRhDM1rVTH wrRNTFWAiqLORnZX+Zzpn37s6Y4pkIqsqCAEG6mo1mhg7u3a9+R2bdmTcJ3dAIcozm3zME9HcW3 rdzoZ9cRv90p7YNOjWIz3Izs76p5CAJsAoFcix5oQXuIImnx4zVMsMcxqRd0dirb4bIijH4NeNE CHpgUqhEAiaHf5KWWE7kyVldjElWSS1159q761V0MkQRRxt+VUcfJuMyCyHMta1KzFsbutYJI0+ ysp7U+osNNyVGPl4spQ== X-Authority-Analysis: v=2.4 cv=Z+Xc2nRA c=1 sm=1 tr=0 ts=6a3d3871 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=pDBHowQsxXgegazyqkAA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 bulkscore=0 suspectscore=0 phishscore=0 spamscore=0 adultscore=0 lowpriorityscore=0 priorityscore=1501 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397216802158501 Content-Type: text/plain; charset="utf-8" From: Brian Cain Reviewed-by: Taylor Simpson Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Signed-off-by: Brian Cain --- target/hexagon/internal.h | 4 ++++ target/hexagon/cpu.c | 3 +++ target/hexagon/machine.c | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 39 insertions(+) create mode 100644 target/hexagon/machine.c diff --git a/target/hexagon/internal.h b/target/hexagon/internal.h index 5fc837ae229..cd06ff41d4f 100644 --- a/target/hexagon/internal.h +++ b/target/hexagon/internal.h @@ -31,4 +31,8 @@ void hexagon_debug(CPUHexagonState *env); =20 extern const char * const hexagon_regnames[TOTAL_PER_THREAD_REGS]; =20 +#ifndef CONFIG_USER_ONLY +extern const VMStateDescription vmstate_hexagon_cpu; +#endif + #endif diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index d30e5b64eac..3059196bcac 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -382,6 +382,9 @@ static void hexagon_cpu_class_init(ObjectClass *c, cons= t void *data) cc->gdb_stop_before_watchpoint =3D true; cc->gdb_core_xml_file =3D "hexagon-core.xml"; cc->disas_set_info =3D hexagon_cpu_disas_set_info; +#ifndef CONFIG_USER_ONLY + dc->vmsd =3D &vmstate_hexagon_cpu; +#endif cc->tcg_ops =3D &hexagon_tcg_ops; } =20 diff --git a/target/hexagon/machine.c b/target/hexagon/machine.c new file mode 100644 index 00000000000..2dd95466e7d --- /dev/null +++ b/target/hexagon/machine.c @@ -0,0 +1,32 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "migration/vmstate.h" +#include "cpu.h" + +const VMStateDescription vmstate_hexagon_cpu =3D { + .name =3D "cpu", + .version_id =3D 1, + .minimum_version_id =3D 1, + .fields =3D (const VMStateField[]) { + VMSTATE_UINT32_ARRAY(env.gpr, HexagonCPU, TOTAL_PER_THREAD_REGS), + VMSTATE_UINT32_ARRAY(env.pred, HexagonCPU, NUM_PREGS), + VMSTATE_UINT32_ARRAY(env.t_sreg, HexagonCPU, NUM_SREGS), + VMSTATE_UINT32_ARRAY(env.greg, HexagonCPU, NUM_GREGS), + VMSTATE_UINT32(env.next_PC, HexagonCPU), + VMSTATE_UINT32(env.tlb_lock_state, HexagonCPU), + VMSTATE_UINT32(env.k0_lock_state, HexagonCPU), + VMSTATE_UINT32(env.tlb_lock_count, HexagonCPU), + VMSTATE_UINT32(env.k0_lock_count, HexagonCPU), + VMSTATE_UINT32(env.threadId, HexagonCPU), + VMSTATE_UINT32(env.cause_code, HexagonCPU), + VMSTATE_UINT32(env.wait_next_pc, HexagonCPU), + VMSTATE_UINT64(env.t_cycle_count, HexagonCPU), + + VMSTATE_END_OF_LIST() + }, +}; --=20 2.34.1 From nobody Sun Jul 26 11:50:59 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397132; cv=none; d=zohomail.com; s=zohoarc; b=FOZblTNvOkWqwaE3GHyYOxTMk0l6+SmcLeFfbd9+cAD4WtJgUw2+77CUDMc9cT3TMLhwpTyqDDlQVknVQpANIRGqf2vHPQJcOr4zLfpK81LO9FL6xP+oiwgyFKar+mHdDYhq/DswQkDb4HjZTdbGwdglMVDOPHDfX9hS2SJ4+AY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397132; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=YSGjopxVE+rdAilYCXMYF1ogegIN4PeOYEB5C/MYTiE=; b=GJlpdhtegTMoMHCShsmPURoY/UJyK8cW1bLMNi7wklmC2wBFjFiqsMEYDGJqVRjBsvjHqy7wpt0jZukLtAT52EltJB18Y0tacbo0D4frLZW0i3H0vrJnWgaRk2hyjDs9ufmFqOlpL+jxWSmVX7glQDLP7vqw7GWcJzjjbDCF9bg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782397131958634.5273709726554; Thu, 25 Jun 2026 07:18:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wcktg-0006vx-2j; Thu, 25 Jun 2026 10:17:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wcktb-0006v1-OL for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17: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 1wckta-0008VF-8U for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:35 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9jsti2009329 for ; Thu, 25 Jun 2026 14:17:22 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0uhmjjwy-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:17:22 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c13bb8ca9so3003073eec.0 for ; Thu, 25 Jun 2026 07:17:22 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.17.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:17: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= YSGjopxVE+rdAilYCXMYF1ogegIN4PeOYEB5C/MYTiE=; b=BpTmkpX0NHIJNbpC WK5KAnIsZ7ywb2eeGdWQAusQTfO+CoMcqE5qohX0ebaphpQ3l6lWIXnCTmH90Bg9 duQAaMMi/D7TCpVFTm8iAcc+yOqPxndXISLbj2asElwTm8F1bDyi74PBwdzz6fdu jDtdh7e1CoNMbRvvcor5ejdUjnJ4BdDNuF8DkTOudCplmgggvDOiGEa8DsKKSWZK MiCAXbqgu5LZt4KHfkwWo5gtUrtnGT3Hl16sXcRS418hv5DLXW/8sT6C5YmSub+M eSOb2ecrrLeB2OjrvXaB32opMzdp+7nwEUhP2EElpoLcbzE0AKOU+GLzYk/W65up MrljVA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397041; x=1783001841; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=YSGjopxVE+rdAilYCXMYF1ogegIN4PeOYEB5C/MYTiE=; b=Jmk1uHw8kjhyhItKOQURX5gTxvuYcmJvf0coPg5aNQJMfErsm8X1rzOc9ymSq0Y/0U DBrFvshkr6aXe+VDvi926mxcKhXVeRRd5LUo0DxtwOTpjAxSRzYT1unKmz17fel1vg8i lNP0EymmQnluSmJ4zDBhgoiOvo0vN9UVZW4NHY71l1whai2+vYGHsbKP2GPOKbkubLFZ 9uzemABdS0K8KSk/APxKEoxvQfaVBnkwoXgH0ssozve20SyDQo4b03slalOjf1P6NaSN AdCH/LCIPm0kkM2CFCg0D7sMO5RbEQv7I+NywSPPxKx0gYWg7XpUTVzpOj3n49QxQGd6 JY8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397041; x=1783001841; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=YSGjopxVE+rdAilYCXMYF1ogegIN4PeOYEB5C/MYTiE=; b=qTQC1s8q14Q3SgDt4zIO5G8dSQF7uwewVkHQCl+SJq66rGR5y6ujhgvaunIOfY3Vfw 4PWIOZOEdBjY5D0DBFMO0cUFHaShC+aHH7Y6pOXZcQcOncj6gSLarSe/eNys87BXqTMP j8etA4ZaWwYiSdcaF99zSZSTgJi6nEHqGfEJdku49B4Mo1Yv6scepS+BDfxbEqnGZLND KJ/lszotCvwcPBcn0sMiJHwy83JqqGvfYOQyaPF/Lw7mtCwSdleYapE+rAmT+y4Ad8gV flY0qJFrvLq+9weUJF/oEklZx8G/4QetzTtHEkCSsNOSEr8xUNWF2ZTQiHINlloGwpNI uB5g== X-Gm-Message-State: AOJu0Yw1ylDOm/vcV/BOsHt6K1d9ayIGfn/pxBKfmSxLUFAO/HEwJS12 ri9jgkrFNttYzbsDLByh8ARu/v4lq7SbxE6juIyPXE+coTRvBzlEKFwBK8XFaXOl1CfN8+h8vvw 5wpNzMlpkgZktd1DHGHM/5nN/3hnHtTJMzwHGBDeLDNBTfooiEACp0UuQ9GZze6MZiQ== X-Gm-Gg: AfdE7cnxIvsk45JBMl9uoJDNEi3JsEQbGfuc5xUKpCw/S/QLH3EYgUqPvxhBMHT+Ec4 Oo+htDXr3ZotK20EnLS+GF3856LMYDCLq6wp6z+W2lUGdQMHW1D5OD9TzYuRMaCJweBZxzn/xmI c2DYnp+ZJ2TBizamMip8ip22e4PddUlVecSdQndUBIBWUurFlsQqYg5X2TzUaQbkwK8IsmCH13L 4CZ09w2NoCQRhyRYJUVQF2W7/LnbUUcXw0Kvpgg6Esb7jn1WRupFSeGuTmBCnMpd3BZx6avlQV8 ozVTRUDNmWJukDborZkLRlNE6lYhs93XnVaghdb6tUf31c1ZfTgLg6SAxOsIaBVAyU1QxsO1Bfn /LCw6rxqWxeAP7+wxZESp0zXUcrovrQ8/a6N1Qqed1Ix5MC0T9pZacYQwgHE= X-Received: by 2002:a05:7301:1486:b0:2c7:3a7:c792 with SMTP id 5a478bee46e88-30c84d50a3amr2934848eec.20.1782397041476; Thu, 25 Jun 2026 07:17:21 -0700 (PDT) X-Received: by 2002:a05:7301:1486:b0:2c7:3a7:c792 with SMTP id 5a478bee46e88-30c84d50a3amr2934781eec.20.1782397040718; Thu, 25 Jun 2026 07:17:20 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 22/76] target/hexagon: Make A_PRIV, "J2_trap*" insts need_env() Date: Thu, 25 Jun 2026 07:15:39 -0700 Message-Id: <20260625141633.449487-23-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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=cqerVV4i c=1 sm=1 tr=0 ts=6a3d3872 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=923NME1-z-asBZaYXDoA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfXzIjKqskj7e3A Ev8DnRUlc4kS3PM7ORNezWYKmxca5DR0mWlV/76k8LTG8NVGu8cLZjXHN1DFSyTK8K+C70JMQHG 91OVii/+ThmhZqMHvPwKQIxKBbbZwp9z8hPyyTBs/nLjjZnUq4SHw7815kJ4LZpNRX1DEgEsxzy BZkyttF/NkhV6fy3VZ/R0HW8FZ9cy/5h/q+uKceF9gmYoF9ljX4JIEa3X/I8fsc5heCW5wQ5qpP g/b0926KSuua6n6xGhf2FBSeDJwlmcTZVEYJL481DsF30hAhGAIE8Ze7W9lFdnK+VUelPbb6yb6 ZUWzCy5y9oJQifEMLWflW1UtQitnBfhegABjN28oMseF4ZCvof0MSed1ml15w/wTm5FLUlI0+yR n2v56KuhMIbE9zqzvsmEdGQbwQqk5bsUuFznchOGJ90RvGuewmJTWWDkJJ6QyB5sB6sIhIEq3oi HQu5cN2tUXHKFY0kYrw== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX4Ox8PJ0D+KPP 3nbYp3L8dO2xHy8O4y3JFJH2Y5nBfRiAwfoDbxDWmaCGGcbYpdKavJAwxJa122IzxJM0/22Ry5t Ax7k5TI2iwd5akzNE/Ptkkh365Z6Pug= X-Proofpoint-GUID: MR5FK1zTFIBjzXy_-SUbQAHAcPQFw6kr X-Proofpoint-ORIG-GUID: MR5FK1zTFIBjzXy_-SUbQAHAcPQFw6kr X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 clxscore=1015 bulkscore=0 phishscore=0 priorityscore=1501 malwarescore=0 suspectscore=0 impostorscore=0 spamscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397134141158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/hex_common.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py index df8d3ba6586..b555e2b663b 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -250,7 +250,9 @@ def need_env(tag): "A_LOAD" in attribdict[tag] or "A_CVI_GATHER" in attribdict[tag] or "A_CVI_SCATTER" in attribdict[tag] or - "A_IMPLICIT_WRITES_USR" in attribdict[tag]) + "A_IMPLICIT_WRITES_USR" in attribdict[tag] or + "A_PRIV" in attribdict[tag] or + "J2_trap" in tag) =20 =20 def need_slot(tag): --=20 2.34.1 From nobody Sun Jul 26 11:50:59 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397069; cv=none; d=zohomail.com; s=zohoarc; b=ZI8+siyeSCOqOx9lSqHWwuub547MY2m+HntvSiXMDnhxivtb7kmsrmVHHIRml6rQ8LJaiHvmdr7zkkpDTaSzoPOeJxn7UwtULv418kLDw+8e/QoNHG7eEeUq2m3HFx8FfRHJUgQBO/8xLkTZ7Dyhj4WCtVXdlZDz9O1aIKpPVGY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397069; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=gR7dx5FAHey0hvTHweaG0/Fx4UXE1mDGyZgCKofpSwQ=; b=IoXX4f9t8dwT+L4bUYxH0yNQkI5Gl8N0hVR/QY7q64lG8/8CmzcmM3SlEHudKW/RlmwkfwiPzO8wrEP0wX445+WLNJWkRFPh8gqnJOicY5CakaLV3eZTW/Q5AHB2N+VgxNGjME3eb5myW63kVkyCdarFf7FMqq3rf9+qB5hQtmM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782397069724624.3894504574358; Thu, 25 Jun 2026 07:17:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wcktg-0006wR-JR; Thu, 25 Jun 2026 10:17:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wcktd-0006vd-BS for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17: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 1wcktb-0008VR-Et for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:37 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9jvJt1754173 for ; Thu, 25 Jun 2026 14:17:24 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0w0q26vt-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:17:24 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c5b9f6a51so648482eec.1 for ; Thu, 25 Jun 2026 07:17:24 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.17.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:17: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= gR7dx5FAHey0hvTHweaG0/Fx4UXE1mDGyZgCKofpSwQ=; b=XVbx3yotwXeGgKfu kiEDyWBL5+Cj60cpLFRoXRveeYCTmbIPFe2TbSsnOcfZp9D/bhIpmw/N4RGu46XK GMaepJFjRfq72w7TMoGJkfRQJ1NDeeFXKKSbgvNqSWsUEa3qYPAyy9IJSmWAXic0 0kEhTHy3UgG1Yqj2Tge6kSMd7TDN5IQhH8in3j52vz+WADlECOFRTAfpP9ipGE9q ZxQMeoj0cJ6l/nyTLMUa96AD0588rCTqIhWAKwU5Cmo3tl4FUzGIo4GAVkv4PUm4 j9HtdfMHZBAy02EBQkaHCE1ZDQw88iVgzzWuiCGwTOx6zJtiVwE9bpweM0QsiuqU 6GzU4w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397043; x=1783001843; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=gR7dx5FAHey0hvTHweaG0/Fx4UXE1mDGyZgCKofpSwQ=; b=P7Exet2X3eZlQ+U4JGE31lRs711xx10r5uNWaAKMdkQPFlrVnD8qA2NSoVJQQRYpD3 1iMgXaTyAG9Qot9jHRasD9raMeBSuTB1l9K6ElqPEzYVdrn2CutD5molrm9VE6hX7qcS aV4LBLFV/kghzXyCku61VDyIIWubU8JSSVQv/u/6LfKEYrYZoYk2rLZeYG6JA8Yp8Ebe 4VpbuCYccYY5KrCs2l3o2c9VU4cngxWFnrrTWy2eGf3SQ45lcNzBoJhDF62XE3PEt+Gs HZxGHvMvp7d5HwxoAKyvZfw4+K6nt8QuFt/OfV6mDqIGtQEVwDHmkayZ7lBff2NKxAg1 8zbA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397043; x=1783001843; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=gR7dx5FAHey0hvTHweaG0/Fx4UXE1mDGyZgCKofpSwQ=; b=UVUR4Av0Qz4BZu/ZMmGYYphUsCPpeLR1A4mcXqO1zqp5xunbn/HoXtSd3HpltRsx6l 7qSRSz9BaQrh1TXZM7bOmVCk61iiVdXnzk8HVr45ISLZ3WehsztQCg9oi55Ox1pSFc5f NQLCAmGAaFXWQtCS1dJbjH0wxaiAGYlFDsE2f0F8GmDnlk4sKUDhdHutjvMpHxgOV33A /Gv6Xk4FAZDipxDkLdjzbvN62SL7l2scNm7tGjuA49q14UFUop0NSTbL+DpJZymMcBuC 5zm+cdUW8vJBTCCda9JUcp/qUcpCC9GPq7FtNhvFfVx8lz5I9uoH4to23FIGXtDS4zFA 6/bg== X-Gm-Message-State: AOJu0YwIN9o4A0fEqOSUdzC6uH5XyjKHnTkQVMywcqD1jTFXTqq5EXyg 3x5wuaylsbBBLj7pXD0XNj8FB/2j7rVIS5WiofY6njrtLV+EmXnSXV/K8GGewwe6n3l5yimaf7j e8hD8+Calt7jOVk2Ul+JxgSBAU9xDWV4lThs0IYQmvBsdeM+wtQRziRmy1jXz2+k1PA== X-Gm-Gg: AfdE7cm6Y5gJ9RqZdXG0DTPCTkAgMDLiAGi2+YBc7vAVEdkMQ3sPEuhncrU+thoGsoU AKLb1T6Wb52oRUBqWpgjTv6TW7GjilE7cRHUbFlZS4uDYgbENDfup8S4BNXQ0t8eXJmU4zgmIdj L26GkoLhoG11UWUMmyVdLd1I9ZA337CCesEsBc2SDO6fQo2SD5jynlLqDvaoUC9ts8sNqozmFka /iQq0rg0uXB74LlOFZD6RlrR+GHxMruIkvaYKfVOyYGcHrHfLY+hqqm8ao7uLKi25621PiRl4+0 o4QbKVXG1eWO3VGly4Agxn5CLgal6vZ3xY+aoIozuPO5569mXGky9l2TGoqI5kSwitUJCzLEaLi boQxs+5ePmGuXqAnGAVDGtXPFBDwZnP6ueB6FAGRkULtXxOcDQolSTqxXPgc= X-Received: by 2002:a05:7300:4312:b0:304:bd90:b88f with SMTP id 5a478bee46e88-30c85a5c6a7mr2775701eec.9.1782397043376; Thu, 25 Jun 2026 07:17:23 -0700 (PDT) X-Received: by 2002:a05:7300:4312:b0:304:bd90:b88f with SMTP id 5a478bee46e88-30c85a5c6a7mr2775673eec.9.1782397042663; Thu, 25 Jun 2026 07:17:22 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 23/76] target/hexagon: Define register fields for system regs Date: Thu, 25 Jun 2026 07:15:40 -0700 Message-Id: <20260625141633.449487-24-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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: NVrjm5rcU4DiamRwwSFhy6JGsQ44hdz8 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX7hA+hcYmi+qw JXAcGXu5IQdpC0st0kQIUGp11AfFK3QpEZSPJyUa6N+M6eRsOKxYdnzzRl7DjZJcqzixHNxIcM8 qbmxy8LAtaQSJ7rkjJbKf4p4p7Sb1ys= X-Proofpoint-GUID: NVrjm5rcU4DiamRwwSFhy6JGsQ44hdz8 X-Authority-Analysis: v=2.4 cv=R6Ez39RX c=1 sm=1 tr=0 ts=6a3d3874 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=mmKuwxttERDeH49ycpoA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX5I3r1R3pVG1g iewUr+H70KvcVHwmjskFh5NIjVhD8HwF6Uxihk4K6QrLL4dra+XB5SyTyJsCGSvUnys49EuRKvJ vu8rfqdr69ISMWG6l35IUNYJZBRsey9Q7l9IGVmp8+tyM63A/od06Ema94zJJgbdJCvJmZlEQ9u yCKp/tGTHplouZuAhPv6qJ0XWCUU2CQ071n+wxW5vPaXjx6tCAsmuaT9PVO7U/4VEhvrnZ4siGl Td51VEmUZaOnDMt13QxRZWtk568sPs83gvU0Tc+2rhKlVOhwgNUDn/vZTvBCvAw0mg8sF3bJnqC 4CTOvV3WW5Wto81aqCtzsO0npcPX9jok8PmsOIND8LFqR4gUvHJMmTA1ZslWUpbJwJhtqZx6IU+ mNiBBh+TieBJ3tyY3NtZa0SGXaswhSH7ivN7SR7Uq6CPEeIH6yn+4KAld1ReSbhlIMpK8ig/1WR vZrwwvO/CfFKErddA6A== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 clxscore=1015 malwarescore=0 priorityscore=1501 adultscore=0 suspectscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UPPERCASE_50_75=0.008 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397073842158500 From: Brian Cain Define the register fields for ssr, schedcfg, stid, bestwait, ccr, modectl, imask, ipendad. Define the fields for TLB entries. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/reg_fields_def.h.inc | 96 +++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) diff --git a/target/hexagon/reg_fields_def.h.inc b/target/hexagon/reg_field= s_def.h.inc index f2a58d486c5..9b112ccec64 100644 --- a/target/hexagon/reg_fields_def.h.inc +++ b/target/hexagon/reg_fields_def.h.inc @@ -39,3 +39,99 @@ DEF_REG_FIELD(USR_FPDBZE, 26, 1) DEF_REG_FIELD(USR_FPOVFE, 27, 1) DEF_REG_FIELD(USR_FPUNFE, 28, 1) DEF_REG_FIELD(USR_FPINPE, 29, 1) + +DEF_REG_FIELD(IPENDAD_IAD, 16, 16) +DEF_REG_FIELD(IPENDAD_IPEND, 0, 16) + +DEF_REG_FIELD(SCHEDCFG_EN, 8, 1) +DEF_REG_FIELD(SCHEDCFG_INTNO, 0, 4) +DEF_REG_FIELD(BESTWAIT_PRIO, 0, 9) + + +/* PTE (aka TLB entry) fields */ +DEF_REG_FIELD(PTE_PPD, 0, 24) +DEF_REG_FIELD(PTE_C, 24, 4) +DEF_REG_FIELD(PTE_U, 28, 1) +DEF_REG_FIELD(PTE_R, 29, 1) +DEF_REG_FIELD(PTE_W, 30, 1) +DEF_REG_FIELD(PTE_X, 31, 1) +DEF_REG_FIELD(PTE_VPN, 32, 20) +DEF_REG_FIELD(PTE_ASID, 52, 7) +DEF_REG_FIELD(PTE_ATR0, 59, 1) +DEF_REG_FIELD(PTE_ATR1, 60, 1) +DEF_REG_FIELD(PTE_PA35, 61, 1) +DEF_REG_FIELD(PTE_G, 62, 1) +DEF_REG_FIELD(PTE_V, 63, 1) + +/* SYSCFG fields */ +DEF_REG_FIELD(SYSCFG_MMUEN, 0, 1) +DEF_REG_FIELD(SYSCFG_ICEN, 1, 1) +DEF_REG_FIELD(SYSCFG_DCEN, 2, 1) +DEF_REG_FIELD(SYSCFG_ISDBTRUSTED, 3, 1) +DEF_REG_FIELD(SYSCFG_GIE, 4, 1) +DEF_REG_FIELD(SYSCFG_ISDBREADY, 5, 1) +DEF_REG_FIELD(SYSCFG_PCYCLEEN, 6, 1) +DEF_REG_FIELD(SYSCFG_V2X, 7, 1) +DEF_REG_FIELD(SYSCFG_IGNOREDABORT, 8, 1) +DEF_REG_FIELD(SYSCFG_PM, 9, 1) +DEF_REG_FIELD(SYSCFG_TLBLOCK, 11, 1) +DEF_REG_FIELD(SYSCFG_K0LOCK, 12, 1) +DEF_REG_FIELD(SYSCFG_BQ, 13, 1) +DEF_REG_FIELD(SYSCFG_PRIO, 14, 1) +DEF_REG_FIELD(SYSCFG_DMT, 15, 1) +DEF_REG_FIELD(SYSCFG_L2CFG, 16, 3) +DEF_REG_FIELD(SYSCFG_ITCM, 19, 1) +DEF_REG_FIELD(SYSCFG_L2NWA, 21, 1) +DEF_REG_FIELD(SYSCFG_L2NRA, 22, 1) +DEF_REG_FIELD(SYSCFG_L2WB, 23, 1) +DEF_REG_FIELD(SYSCFG_L2P, 24, 1) +DEF_REG_FIELD(SYSCFG_SLVCTL0, 25, 2) +DEF_REG_FIELD(SYSCFG_SLVCTL1, 27, 2) +DEF_REG_FIELD(SYSCFG_L2PARTSIZE, 29, 2) +DEF_REG_FIELD(SYSCFG_L2GCA, 31, 1) + +/* SSR fields */ +DEF_REG_FIELD(SSR_CAUSE, 0, 8) +DEF_REG_FIELD(SSR_ASID, 8, 7) +DEF_REG_FIELD(SSR_UM, 16, 1) +DEF_REG_FIELD(SSR_EX, 17, 1) +DEF_REG_FIELD(SSR_IE, 18, 1) +DEF_REG_FIELD(SSR_GM, 19, 1) +DEF_REG_FIELD(SSR_V0, 20, 1) +DEF_REG_FIELD(SSR_V1, 21, 1) +DEF_REG_FIELD(SSR_BVS, 22, 1) +DEF_REG_FIELD(SSR_CE, 23, 1) +DEF_REG_FIELD(SSR_PE, 24, 1) +DEF_REG_FIELD(SSR_BP, 25, 1) +DEF_REG_FIELD(SSR_XE2, 26, 1) +DEF_REG_FIELD(SSR_XA, 27, 3) +DEF_REG_FIELD(SSR_SS, 30, 1) +DEF_REG_FIELD(SSR_XE, 31, 1) + +/* misc registers */ +DEF_REG_FIELD(IMASK_MASK, 0, 16) + +DEF_REG_FIELD(STID_PRIO, 16, 8) +DEF_REG_FIELD(STID_STID, 0, 8) + +/* MODECTL fields */ +DEF_REG_FIELD(MODECTL_E, 0, 8) +DEF_REG_FIELD(MODECTL_W, 16, 8) + +DEF_REG_FIELD(CCR_L1ICP, 0, 2) +DEF_REG_FIELD(CCR_L1DCP, 3, 2) +DEF_REG_FIELD(CCR_L2CP, 6, 2) + +DEF_REG_FIELD(CCR_HFI, 16, 1) +DEF_REG_FIELD(CCR_HFD, 17, 1) +DEF_REG_FIELD(CCR_HFIL2, 18, 1) +DEF_REG_FIELD(CCR_HFDL2, 19, 1) +DEF_REG_FIELD(CCR_SFD, 20, 1) + +DEF_REG_FIELD(CCR_GIE, 24, 1) +DEF_REG_FIELD(CCR_GTE, 25, 1) +DEF_REG_FIELD(CCR_GEE, 26, 1) +DEF_REG_FIELD(CCR_GRE, 27, 1) +DEF_REG_FIELD(CCR_VV1, 29, 1) +DEF_REG_FIELD(CCR_VV2, 30, 1) +DEF_REG_FIELD(CCR_VV3, 31, 1) --=20 2.34.1 From nobody Sun Jul 26 11:50:59 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397061; cv=none; d=zohomail.com; s=zohoarc; b=QsUscFj32pyiYoMES6iIEPHVXfU7wZfpwVUN/ze6Uw3Dv+67xSmm9aw1JpFd+kD59qnsw3O1V1Q/Ij9t8NS/oqebQC7xl6kHbmcdTTNIwgryu6Z8uwLmcpUkg1fYYLd86HRXgkuAJsPfXYwbLHD/i1Q9NrJjTwZi/gyJBafTYXI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397061; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=iyq7LBA9ReIYZhusAxIzcfXUYATt4rc1w494jGlIN/c=; b=lN9ubpEFA+ZxIH8k2bA408Nyx1QE6APStVm39AU+0FI/njfWTvZFMugJaDp3TFXRBOClB/Vly/43EaVa7dQz5pSubfOFSTFei6E/2q28R2J5Fx5L6UeMZ2cuGl2ZuZljE9+ExXtlqUzH1gc6tl2dcO/tUIGr03uL+G9DdZzUEzA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178239706149959.447227878966714; Thu, 25 Jun 2026 07:17:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wcktZ-0006tY-38; Thu, 25 Jun 2026 10:17:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wcktV-0006sE-6k for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:29 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wcktT-0008Vm-Il for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:28 -0400 Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9juso1470528 for ; Thu, 25 Jun 2026 14:17:26 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0nv7kp2w-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:17:25 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30c8d355dbcso1439296eec.1 for ; Thu, 25 Jun 2026 07:17:25 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.17.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:17:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=iyq7LBA9ReIYZhusAxIzcfXUYATt4rc1w494jGlIN/c=; b=Ee kQLoup9VsZlC75MdSSS2E8xx23lB8/V/5emjgivFwXSCF3LJSGiIjPraAf5I2trH i8EA0QhZS5bpcfzpfAXju+WHRhIloB7fUrsqj//a6YYffk7xcqttQ9/Do/KxuWS3 lqOmxqCxpBqzfZ1oRCMroZ8U6tEgsj88pufXneFZMBrRuUTfTU5SZ2ksS/CzLNnS FGCaV7k7WrGAgpQ6MaKV2GK/JK5c95JRXTOtopKN6tMpfMsn2AMsC4ij9cQAEgOv X19FpTqmjMSd1lH8xmKhQVtmsbxkilZSZQ9S5xczs3c6vNJLlTjdVSTUphlodbCH 0XAE2U2NEk1IDRjNhiBg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397045; x=1783001845; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=iyq7LBA9ReIYZhusAxIzcfXUYATt4rc1w494jGlIN/c=; b=Nr2K39L+z1+c+NS00p2vkTuV8lQzY9haBh4ARKnXTX36bJci/fa3Eu8Yuoia8agYz7 /e7htIC1VYoddATd+wfrX+Zk9zZByjzKBm3q4Fea4dZsBfRUU4HdAHe7xVl942ZQG8iQ e2GLKrEl6Sv1wAZ5PTwUipOl1XQMnjpwYFAQSSDcnmNq2egKkm/bplckVqd56Z8SISZp YIWOTHzdC3G8M2aue+9ZTIyNISbovTDBpL+ZqH1GvSumvJodGR3uqGvT28sFzBES4+WQ VKESAIHsXkq598yRt3dmVlESLHpqE6l//uwC/kmpDgfw3iPsGcLZItr+xTUCKPLE7Oz3 QH/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397045; x=1783001845; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=iyq7LBA9ReIYZhusAxIzcfXUYATt4rc1w494jGlIN/c=; b=FNrXLVjVV3qzjvg8Xv/jLfC1iUO3p7SJwcKFd00hdcAFiEjSLR/GBHFQw/+6qeNp72 RdH7TOsc1+sIxiLj1d5ZlNvv/f14LHBy1DvmZzBqGCd4OPySf+ZE1pdoOQKjuY88TN8d RBg1DGjUYmg9gij9GjU4r9Q2oZvzPuMtAXkVcwCxA6HGqbHj2pyBCK/1IuLAROT9mQ0h Cwn6pUsbryP0SOT7Cg01Wm0L4ryfYeldALvj1PH/Q4BlVxiWJT40ttRuOBc8mwZJk9Mr WOD4FztbI/gRhwXb2Gpp/oSn6YlemoMZC399Oen9Qj05/nouu4oJxzFk5MS27+zeHPCi NQsg== X-Gm-Message-State: AOJu0Ywte8l6xkYh6JfkOjvZESuKLr+m9NhwvxReXgCUCgi6Is1qj1H4 Nf9VbyUjZgk0hWL3QQmMwnIPRc6jiOx3BmQzxPNSNXfyHc6WUlfqJvJlP/uzmif2tgnBPyLB9y1 4heIyguQypzZfl2ksmTcYYgOhgwlg9/DEQgDzzHSXOuI1GaNXc72ezyxzGaKl3R6z+w== X-Gm-Gg: AfdE7ckRdJ/lOYxWPeTq0/da4AUKx3TPKcxFRUqNHzNMpChV4W+mk53GKTzmsLn2QJg m2G1k4n+aWWWmBDcYWw125kFkxzTE09RKTw7FHfv/CcRnRgOGHuO00a0/KgBI7I6PFXO/JU/h2u MXn7xjVaa63OrkHVu/4MhIU+4uxHhJzADws6zfAZYlful1DkyNCHswUAW2R50V5/g2xJblBCMFb 4vlraUfSVkCajdENycEqZ6n+nDC3RJmkegO3YcoxeZ/SLPAtEeWjL0sUh/JyO9vqxicEQSM2V0Y ojTVB0JPVAt0UsKLv/oF92DdFB0LKD4f79eLmOHFQAmepd+lTOVQgdS7DmZkn+l4h1bndZ2yxCs pHVQtR8Qj3XPQH1kQDONB+N5mGjiuOSYclRFfA8Aopy40Mm6ukZbEJ3C+vUg= X-Received: by 2002:a05:7301:9bcb:b0:2e7:c701:aa85 with SMTP id 5a478bee46e88-30c84d1063cmr3971536eec.17.1782397045016; Thu, 25 Jun 2026 07:17:25 -0700 (PDT) X-Received: by 2002:a05:7301:9bcb:b0:2e7:c701:aa85 with SMTP id 5a478bee46e88-30c84d1063cmr3971450eec.17.1782397044238; Thu, 25 Jun 2026 07:17:24 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pierrick Bouvier Subject: [PULL v3 24/76] target/hexagon: Implement do_raise_exception() Date: Thu, 25 Jun 2026 07:15:41 -0700 Message-Id: <20260625141633.449487-25-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfXxXrXKAXns4qK airYVL5+2KvIef0qO4/5w4xIlAN3GD5KP4ouiksZIwDpPXUFMBbl+TM1goLhdblFUQiKCblVpMB VkeMuASeoUYToe0viS+401wjF1jB7tg= X-Authority-Analysis: v=2.4 cv=RJiD2Yi+ c=1 sm=1 tr=0 ts=6a3d3875 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=hK29HtBGQMdOITfcgGsA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: rRqVdZv2H18pA0rKCWZQNaiApfRrej_U X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX+D5aLjGFGOLP 1bEdsIQaooZTTjdf9eeLYOPFRBGLRBSmq4R7OZyEa3aqSFeTIjRs4M0V0/iqd5BiqM4T9KOC1Mu 7bh1yFvMUSP0mQW+By0Wl+1cIhlYsz/K6kds4Tmxf9mzIhvZ1zd3+YhMETEs/9vD5VRIh+WOZbU fkBzqDhOAv/KdwmJPtZey7DMYzQQtxCQ2nHv886uLdAtlxyPT5OdXNe0xjcz8r6XlCo5J57VnpP 26CTQQkVri7Lcln/u3zSLubJInK/yYttoIWOTLnHiOyaMCdM7gklw87s+ygicwLoMMhEy/B3Lcd pbnHWtLAOXj4IeOltpExtvgU/LtaVSK48eMqLHyjmJKnxv1jsj7L+VSHfpZH+2JNsGpoyq84rsT XtSdFet4zl+fAHnafRZkON4yucB0AAzmM2L6CJ8TzzeBUiL5toLDjtCbAFjWir+n3JbuQ2OVo5O zYHh6fK1ukp/Ce/gRHw== X-Proofpoint-GUID: rRqVdZv2H18pA0rKCWZQNaiApfRrej_U X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 bulkscore=0 lowpriorityscore=0 priorityscore=1501 spamscore=0 clxscore=1015 impostorscore=0 suspectscore=0 adultscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=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: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397063494158500 Content-Type: text/plain; charset="utf-8" From: Brian Cain Reviewed-by: Taylor Simpson Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Brian Cain --- target/hexagon/internal.h | 5 +++++ target/hexagon/op_helper.c | 14 ++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/target/hexagon/internal.h b/target/hexagon/internal.h index cd06ff41d4f..33d73ed18d1 100644 --- a/target/hexagon/internal.h +++ b/target/hexagon/internal.h @@ -31,6 +31,11 @@ void hexagon_debug(CPUHexagonState *env); =20 extern const char * const hexagon_regnames[TOTAL_PER_THREAD_REGS]; =20 +void G_NORETURN do_raise_exception(CPUHexagonState *env, + uint32_t exception, + uint32_t PC, + uintptr_t retaddr); + #ifndef CONFIG_USER_ONLY extern const VMStateDescription vmstate_hexagon_cpu; #endif diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index cd324c19a9d..0f43a666341 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -41,6 +41,20 @@ #define SF_MANTBITS 23 =20 /* Exceptions processing helpers */ +G_NORETURN +void do_raise_exception(CPUHexagonState *env, uint32_t exception, + uint32_t PC, uintptr_t retaddr) +{ + CPUState *cs =3D env_cpu(env); + qemu_log_mask(CPU_LOG_INT, "%s: 0x%08" PRIx32 ", @ %08" PRIx32 "\n", + __func__, exception, PC); + ASSERT_DIRECT_TO_GUEST_UNSET(env, exception); + + env->gpr[HEX_REG_PC] =3D PC; + cs->exception_index =3D exception; + cpu_loop_exit_restore(cs, retaddr); +} + G_NORETURN void hexagon_raise_exception_err(CPUHexagonState *env, uint32_t exception, uintptr_t pc) --=20 2.34.1 From nobody Sun Jul 26 11:50:59 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397196; cv=none; d=zohomail.com; s=zohoarc; b=D2hvlR2XMHwOs/9AkiGo5ClXy3N5kOa7MUHgjTpGWceQLXJ1rRzGee02+PBgjwL+30qsYSxKiT6ZAgfX6kTcg14Fv2onmprFNrDKX2/R33yJz4LocE2caws39X3jNPKVS4Bh64pzNcMiEqoa0lJrIUGGmr/Dlbt8fWJUsAIOMtA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397196; 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=SMYZDYiUGejwU6Mad11x7nCVYujld7nQh+MefWVhoDU=; b=Tn+HqoyO5ClfgMW7u9ZTuzMcHlf6TKSgtSFDDfNDGt2XHZA9q2hjj2uaIN7x6Vqu7WQxOJqmmW+1Kg/TfkuByP6Vzw7lKO9JGJMxi9PhdaCmDumexBz9YAGQkgtzspSI58oG2/dj0Gd/DUWmD7mFRbBOwWFO59foXwTD1eNd5NA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782397196376896.9908254100201; Thu, 25 Jun 2026 07:19:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wcktg-0006wC-9k; Thu, 25 Jun 2026 10:17:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wcktc-0006vU-Uh for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:37 -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 1wcktV-0008WA-BX for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:36 -0400 Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9jueX1470515 for ; Thu, 25 Jun 2026 14:17:28 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0nv7kp31-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:17:27 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30bcbb34e57so2792258eec.1 for ; Thu, 25 Jun 2026 07:17: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 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.17.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:17: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= SMYZDYiUGejwU6Mad11x7nCVYujld7nQh+MefWVhoDU=; b=a3c66BDcTV8BzoNt N0m2hNnusxCh2CMlxU9CPj0Ct1ViJX4WQ5iR5LzNBs6XZ5afBQmFkbw5gpkJ7LDV nsTpBuv+Nslgz1QCDfHLhXSOtJ15Cji0fP67/H7tPkMr7L16gXvpiQg2/HJrqLqR UD6pH4PTFcQbigkfwWghTT0dNobYUSa5q9/zP9uQjDOmTJ0Kg2hSqIdnz2WpMD2b ReLk6N68bswaLXXTSfPhWr68vjTK9yhnHvLKYJrIWSVd+DupMl7TCGy80B+vWPLp 1rbTNudk6f9u1+tqx7KUra4WqElvFq/tFtIl48TwF9c/wBRX7NgjcgxEzwGSdRSt w1GqAQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397047; x=1783001847; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=SMYZDYiUGejwU6Mad11x7nCVYujld7nQh+MefWVhoDU=; b=TtJKp8/99VcgtY8JtrlUwBqFbe7fb+LZdByd2bUVxor/joPJzHx0vhbQ1JE23aX9f3 WPKL2H8jnwuBfYVZwkLbf+dSnJik4vu6I++KgKllR/YGbFEmsbs8LlnlO/wDs09TKWJ7 xFEtXFdzRV/l4t1+qb7hyH7Os7XwropFXpo/YB37XQrJD9gSx90wuI6uEL+/H0/WtYP5 cKJNfie6Y/+xpL2w5/rWu6Nqw/pgoxZQXHJJqW/Hbw/00ecnnMX8OfynULT1Ii7YMEFA 8KRQKIIsQSnRq30v3CU0EWctkBPaHilybdQsDZWbUSa6NaLuazzK+55iKBmXEKekLF/a Vi2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397047; x=1783001847; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=SMYZDYiUGejwU6Mad11x7nCVYujld7nQh+MefWVhoDU=; b=kUW23uJaipJvkPGKVnpZ27o4ph7CD79fGuw55QV4YPqvTWW7mCvAio3Vg7MBhKNrJ4 /k+GSgdAtkH+YM8AF9a0LPKop18hnDuyjLmZczKv5PVE3W3kFvd0SMev71yv8ks8g1jb QdRzcoxQN5kftI8eqvErQcy5jFXhtQi36sMMwuklgjGxeh47xMbntvvj3k95v/fEXZms TNN08rBx0DsiLA0CpMh67QW8qR5AQ1TEEbxuhUKNAwnJMRNA09Oxul7xW0ZL2Pv0dYpS wgzL+lyD+BVob4Vba/tL4Q5uzzGddTgZEEDwmcJMWMBwCrX8yiKhsE/51bwp90IFT0Zh nivg== X-Gm-Message-State: AOJu0YyW7hgYU98clSUaNlxu06i2RLsoVd/CX72TxdCeZ3vlv7Iu0apb TKop9WKym9aiE5RD0xQZFFiHEzfsW+5sSRfH1rIha30x5pf7rXSxtDswnVvoCsi73b34hcjiKh7 IU73aVg+VKbY1WcmUG7zU0VXuWNGp3lsQ0PSVJLReoNeF2BHR8qDRY8BpHKigxA764Q== X-Gm-Gg: AfdE7cmlYFrac9xGliHxKdZPIoJYaXOe3oSmsVDNVIoYm77YqH3/cNQXgahqVN5pdW3 Fyd9jr/8ZviUN/SKzFRwoKxSWU9PHUgfpa9I6Lmr47YINNJYW/aHmNOH9Un8oh2zHtfNEqm0uWg 1kxgA9K0pw63d4cCGybSZ9pMUIc946JED+b4mPfd1BFAxxxnUlKxABfFNNbeP2SJG2XH6PqMvFy L/n6LAw0Gd3zF2nqRf/tGaXq183dcFgkS3kCGyigvqRszL6APvzTr59kXfSKfFeXYlHqmnWzBdD Wvi0gwBYCbm1qpT2OhzvsBy5zNrN7m+KW3EzdQwfynlaS6IFGOoCaoEd+e0BXRw2Uo1sSbqBSTV KSWwl74cFAP/HORrkECiSvt45eJ8yyHkaVWC9RONbKoKzYjPmQFZ5RxnwgqE= X-Received: by 2002:a05:7300:7b8a:b0:2ea:4228:ab11 with SMTP id 5a478bee46e88-30c84b1df71mr2690680eec.3.1782397046760; Thu, 25 Jun 2026 07:17:26 -0700 (PDT) X-Received: by 2002:a05:7300:7b8a:b0:2ea:4228:ab11 with SMTP id 5a478bee46e88-30c84b1df71mr2690610eec.3.1782397045930; Thu, 25 Jun 2026 07:17:25 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 25/76] target/hexagon: Add system reg insns Date: Thu, 25 Jun 2026 07:15:42 -0700 Message-Id: <20260625141633.449487-26-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX7M7HPssl2Xwu MePzvkhuhndplzSgmQaC9Gev9V2PvGPXKkocJhbHlHUN29cRKKNwYDzjlB1qnsr/IICPbMMmF3N 2BAQJqImR/AHcHKV9+vVyOEt7h2Nw+I= X-Authority-Analysis: v=2.4 cv=RJiD2Yi+ c=1 sm=1 tr=0 ts=6a3d3877 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=XudKOxRI_tdk19a2JVQA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: OuSkF71GCw8G2_1F3zEwb1wJBrVpVC92 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX3RO6VfkIWeOk PtIkmlASjjYGHZt7CpamE6cE9FCK6xcEA7WwQft4zTuStK7B2flR6xt7nj4Hfepzp4CsRgNw22A bFqULW4FWdX+ZyeHi3Xt63DsBavkxJXLhKac9f9lUQ07EONcOePrwo0wOAdj/Pn6CZnkUf+DosI Xgkc6P5hSwoUEiJN6kenhZGq4NQkjmhwsEU9AhXchXh4tp3k05B+mpEySVUl+LmntlDJ7QgebtZ 1GAd29PlF5PcM0eEcPcckOJ/SW2do1CIH6TEheZVToFOCKD5Bru+ZIo/OwAeOrAeLUBMYKG8J6r JYT6L9zu50VRC1FrO3jLJrRDAs34KDiSD8KCwe+uL/xTdM5txZFsgC8OKjPKz8WDsVNP6M/BF7T Em/QhdW+rj8BMTZQtK+iNDFBo9Hz5E38R8SXFK8kIcl3yjqbyFHafaEQRwASN0k/slgErT2+H/O ddgnGcIVrJuizGvtALw== X-Proofpoint-GUID: OuSkF71GCw8G2_1F3zEwb1wJBrVpVC92 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 bulkscore=0 lowpriorityscore=0 priorityscore=1501 spamscore=0 clxscore=1015 impostorscore=0 suspectscore=0 adultscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UPPERCASE_50_75=0.008 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397196589158500 From: Brian Cain Acked-by: Taylor Simpson Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- target/hexagon/imported/encode_pp.def | 128 ++++++++++++-- target/hexagon/imported/system.idef | 243 ++++++++++++++++++++++++-- 2 files changed, 344 insertions(+), 27 deletions(-) diff --git a/target/hexagon/imported/encode_pp.def b/target/hexagon/importe= d/encode_pp.def index 0cd30a5e857..04e911f59c8 100644 --- a/target/hexagon/imported/encode_pp.def +++ b/target/hexagon/imported/encode_pp.def @@ -382,15 +382,18 @@ DEF_ENC32(L4_return_fnew_pt, ICLASS_LD" 011 0 000 ss= sss PP1110vv ---ddddd") DEF_ENC32(L4_return_tnew_pnt, ICLASS_LD" 011 0 000 sssss PP0010vv ---ddddd= ") DEF_ENC32(L4_return_fnew_pnt, ICLASS_LD" 011 0 000 sssss PP1010vv ---ddddd= ") =20 -DEF_ENC32(L2_loadw_locked,ICLASS_LD" 001 0 000 sssss PP000--- 000ddddd") - +/** Load Acquire Store Release Encoding **/ =20 +DEF_ENC32(L2_loadw_locked, ICLASS_LD" 001 0 000 sssss PP000--- 000ddddd= ") +DEF_ENC32(L4_loadd_locked, ICLASS_LD" 001 0 000 sssss PP010--- 000ddddd= ") =20 DEF_ENC32(L2_loadw_aq, ICLASS_LD" 001 0 000 sssss PP001--- 000ddddd= ") DEF_ENC32(L4_loadd_aq, ICLASS_LD" 001 0 000 sssss PP011--- 000ddddd= ") =20 -DEF_ENC32(R6_release_at_vi, ICLASS_ST" 000 01 11sssss PP0ttttt --0011dd= ") -DEF_ENC32(R6_release_st_vi, ICLASS_ST" 000 01 11sssss PP0ttttt --1011dd") + +DEF_ENC32(S2_storew_locked, ICLASS_ST" 000 01 01sssss PP-ttttt ----00dd") +DEF_ENC32(S4_stored_locked, ICLASS_ST" 000 01 11sssss PP0ttttt ----00dd") + =20 DEF_ENC32(S2_storew_rl_at_vi, ICLASS_ST" 000 01 01sssss PP-ttttt --0010dd= ") DEF_ENC32(S2_storew_rl_st_vi, ICLASS_ST" 000 01 01sssss PP-ttttt --1010dd") @@ -398,17 +401,15 @@ DEF_ENC32(S2_storew_rl_st_vi, ICLASS_ST" 000 01 01sss= ss PP-ttttt --1010dd") DEF_ENC32(S4_stored_rl_at_vi, ICLASS_ST" 000 01 11sssss PP0ttttt --0010dd= ") DEF_ENC32(S4_stored_rl_st_vi, ICLASS_ST" 000 01 11sssss PP0ttttt --1010dd") =20 -DEF_ENC32(L4_loadd_locked,ICLASS_LD" 001 0 000 sssss PP010--- 000ddddd") -DEF_EXT_SPACE(EXTRACTW, ICLASS_LD" 001 0 000 iiiii PP0iiiii -01iiiii") +DEF_ENC32(R6_release_at_vi, ICLASS_ST" 000 01 11sssss PP0ttttt --0011dd= ") +DEF_ENC32(R6_release_st_vi, ICLASS_ST" 000 01 11sssss PP0ttttt --1011dd") + +DEF_EXT_SPACE(EXTRACTW, ICLASS_LD" 001 0 000 iiiii PP0iiiii 001iiiii") DEF_ENC32(Y2_dcfetchbo, ICLASS_LD" 010 0 000 sssss PP0--iii iiiiiiii") =20 =20 =20 =20 - - - - /*******************************/ /* */ /* */ @@ -488,13 +489,17 @@ STD_PST_ENC(rinew, "1 101","10ttt") /* x bus/cache */ /* x store/cache */ DEF_ENC32(S2_allocframe, ICLASS_ST" 000 01 00xxxxx PP000iii iiiiiiii") -DEF_ENC32(S2_storew_locked,ICLASS_ST" 000 01 01sssss PP-ttttt ----00dd") -DEF_ENC32(S4_stored_locked,ICLASS_ST" 000 01 11sssss PP0ttttt ----00dd") +DEF_ENC32(Y5_l2locka, ICLASS_ST" 000 01 11sssss PP1----- ------dd") DEF_ENC32(Y2_dczeroa, ICLASS_ST" 000 01 10sssss PP0----- --------") =20 =20 DEF_ENC32(Y2_barrier, ICLASS_ST" 100 00 00----- PP------ 000-----") DEF_ENC32(Y2_syncht, ICLASS_ST" 100 00 10----- PP------ --------") +DEF_ENC32(Y2_l2kill, ICLASS_ST" 100 00 01----- PP-000-- --------") +DEF_ENC32(Y5_l2gunlock, ICLASS_ST" 100 00 01----- PP-010-- --------") +DEF_ENC32(Y5_l2gclean, ICLASS_ST" 100 00 01----- PP-100-- --------") +DEF_ENC32(Y5_l2gcleaninv, ICLASS_ST" 100 00 01----- PP-110-- --------") +DEF_ENC32(Y2_l2cleaninvidx,ICLASS_ST" 100 00 11sssss PP------ --------") =20 =20 =20 @@ -502,9 +507,28 @@ DEF_ENC32(Y2_dccleana, ICLASS_ST" 000 00 00sssss P= P------ --------") DEF_ENC32(Y2_dcinva, ICLASS_ST" 000 00 01sssss PP------ --------") DEF_ENC32(Y2_dccleaninva, ICLASS_ST" 000 00 10sssss PP------ --------") =20 -DEF_ENC32(Y4_l2fetch, ICLASS_ST" 011 00 00sssss PP-ttttt 000-----") +/* Super */ +DEF_ENC32(Y2_dckill, ICLASS_ST" 001 00 00----- PP------ --------") +DEF_ENC32(Y2_dccleanidx, ICLASS_ST" 001 00 01sssss PP------ --------") +DEF_ENC32(Y2_dcinvidx, ICLASS_ST" 001 00 10sssss PP------ --------") +DEF_ENC32(Y2_dccleaninvidx,ICLASS_ST" 001 00 11sssss PP------ --------") + +DEF_ENC32(Y2_dctagw ,ICLASS_ST" 010 00 00sssss PP-ttttt --------") +DEF_ENC32(Y2_dctagr ,ICLASS_ST" 010 00 01sssss PP------ ---ddddd") + +DEF_ENC32(Y4_l2tagw ,ICLASS_ST" 010 00 10sssss PP0ttttt --------") +DEF_ENC32(Y4_l2tagr ,ICLASS_ST" 010 00 11sssss PP------ ---ddddd") + +DEF_ENC32(Y4_l2fetch, ICLASS_ST" 011 00 00sssss PP-ttttt 000-----= ") +DEF_ENC32(Y5_l2cleanidx, ICLASS_ST" 011 00 01sssss PP------ --------") +DEF_ENC32(Y5_l2invidx, ICLASS_ST" 011 00 10sssss PP------ --------") +DEF_ENC32(Y5_l2unlocka, ICLASS_ST" 011 00 11sssss PP------ --------") DEF_ENC32(Y5_l2fetch, ICLASS_ST" 011 01 00sssss PP-ttttt --------") =20 +DEF_ENC32(Y6_l2gcleanpa, ICLASS_ST" 011 01 01----- PP-ttttt --------") +DEF_ENC32(Y6_l2gcleaninvpa,ICLASS_ST" 011 01 10----- PP-ttttt --------") + + /*******************************/ /* */ /* */ @@ -547,13 +571,23 @@ DEF_ENC32(J2_jumprfnewpt, ICLASS_J" 0011 011sssss P= P-11-uu --------") =20 DEF_FIELDROW_DESC32(ICLASS_J" 0100 -------- PP------ --------","[#4] (#u8)= ") DEF_ENC32(J2_trap0, ICLASS_J" 0100 00------ PP-iiiii ---iii--") -DEF_ENC32(J2_pause, ICLASS_J" 0100 01------ PP-iiiii ---iii--") +DEF_ENC32(J2_trap1, ICLASS_J" 0100 10-xxxxx PP-iiiii ---iii--") +DEF_ENC32(J2_pause, ICLASS_J" 0100 01----ii PP-iiiii ---iii--") + +DEF_FIELDROW_DESC32(ICLASS_J" 0101 -------- PP------ --------","[#5] Rd=3D= (Rs) ") +DEF_ENC32(Y2_icdatar, ICLASS_J" 0101 101sssss PP------ ---ddddd") +DEF_ENC32(Y2_ictagr, ICLASS_J" 0101 111sssss PP------ ---ddddd") +DEF_ENC32(Y2_ictagw, ICLASS_J" 0101 110sssss PP0ttttt --------") +DEF_ENC32(Y2_icdataw, ICLASS_J" 0101 110sssss PP1ttttt --------") =20 DEF_FIELDROW_DESC32(ICLASS_J" 0110 -------- PP------ --------","[#6] icop(= Rs) ") DEF_ENC32(Y2_icinva, ICLASS_J" 0110 110sssss PP000--- --------") +DEF_ENC32(Y2_icinvidx, ICLASS_J" 0110 110sssss PP001--- --------") +DEF_ENC32(Y2_ickill, ICLASS_J" 0110 110----- PP010--- --------") =20 DEF_FIELDROW_DESC32(ICLASS_J" 0111 -------- PP------ --------","[#7] () ") DEF_ENC32(Y2_isync, ICLASS_J" 0111 11000000 PP0---00 00000010") +DEF_ENC32(J2_rte, ICLASS_J" 0111 111----- PP00---- 000-----") =20 /* JUMP */ DEF_FIELDROW_DESC32(ICLASS_J" 100- -------- PP------ --------","[#8,9] PC= =3D(#r22)") @@ -738,12 +772,19 @@ DEF_ENC32(J2_jumprltezpt,ICLASS_CR" 0001 11isssss P= Pi1iiii iiiiiii-") =20 DEF_FIELDROW_DESC32( ICLASS_CR" 0010 -------- PP------ --------","[#= 2] Cd=3DRs ") DEF_ENC32(A2_tfrrcr, ICLASS_CR" 0010 001sssss PP------ ---ddddd") +DEF_ENC32(G4_tfrgrcr, ICLASS_CR" 0010 000sssss PP------ ---ddddd") +DEF_ENC32(Y4_trace, ICLASS_CR" 0010 010sssss PP------ 000-----") +DEF_ENC32(Y6_diag, ICLASS_CR" 0010 010sssss PP------ 001-----") +DEF_ENC32(Y6_diag0, ICLASS_CR" 0010 010sssss PP-ttttt 010-----") +DEF_ENC32(Y6_diag1, ICLASS_CR" 0010 010sssss PP-ttttt 011-----") =20 DEF_FIELDROW_DESC32( ICLASS_CR" 0011 -------- PP------ --------","[#= 3] Cdd=3DRss ") DEF_ENC32(A4_tfrpcp, ICLASS_CR" 0011 001sssss PP------ ---ddddd") +DEF_ENC32(G4_tfrgpcp, ICLASS_CR" 0011 000sssss PP------ ---ddddd") =20 DEF_FIELDROW_DESC32( ICLASS_CR" 1000 -------- PP------ --------","[#= 8] Rdd=3DCss ") DEF_ENC32(A4_tfrcpp, ICLASS_CR" 1000 000sssss PP------ ---ddddd") +DEF_ENC32(G4_tfrgcpp, ICLASS_CR" 1000 001sssss PP------ ---ddddd") =20 DEF_FIELDROW_DESC32( ICLASS_CR" 1001 -------- PP------ --------","[#= 9] (#r8,#U10)") DEF_ENC32(J2_ploop1si, ICLASS_CR" 1001 101IIIII PP-iiiii IIIii-II") @@ -754,6 +795,7 @@ DEF_ENC32(J2_loop1i, ICLASS_CR" 1001 001IIIII PP-i= iiii IIIii-II") =20 DEF_FIELDROW_DESC32( ICLASS_CR" 1010 -------- PP------ --------","[#= 10] Rd=3DCs ") DEF_ENC32(A2_tfrcrr, ICLASS_CR" 1010 000sssss PP------ ---ddddd") +DEF_ENC32(G4_tfrgcrr, ICLASS_CR" 1010 001sssss PP------ ---ddddd") DEF_ENC32(C4_addipc, ICLASS_CR" 1010 01001001 PP-iiiii i--ddddd") =20 =20 @@ -781,6 +823,64 @@ DEF_ENC32(C4_fastcorner9_not, ICLASS_CR"1011 0001--s= s PP1---tt 1--1--dd") =20 =20 =20 +/* Supervisor CR ops */ +/* Interrupts */ +DEF_FIELDROW_DESC32( ICLASS_CR" 0100 -------- PP------ --------","[#4] = (Rs,Pt)") +DEF_ENC32(Y2_swi, ICLASS_CR" 0100 000sssss PP------ 000-----") +DEF_ENC32(Y2_cswi, ICLASS_CR" 0100 000sssss PP------ 001-----") +DEF_ENC32(Y2_iassignw, ICLASS_CR" 0100 000sssss PP------ 010-----") +DEF_ENC32(Y2_ciad, ICLASS_CR" 0100 000sssss PP------ 011-----") +DEF_ENC32(Y2_setimask, ICLASS_CR" 0100 100sssss PP----tt 000-----") +DEF_ENC32(Y2_setprio, ICLASS_CR" 0100 100sssss PP----tt 001-----") +DEF_ENC32(Y4_siad, ICLASS_CR" 0100 100sssss PP------ 011-----") + +DEF_ENC32(Y2_wait, ICLASS_CR" 0100 010sssss PP------ 000-----") +DEF_ENC32(Y2_resume, ICLASS_CR" 0100 010sssss PP------ 001-----") +DEF_ENC32(Y2_stop, ICLASS_CR" 0100 011sssss PP------ 000-----") +DEF_ENC32(Y2_start, ICLASS_CR" 0100 011sssss PP------ 001-----") +DEF_ENC32(Y4_nmi, ICLASS_CR" 0100 011sssss PP------ 010-----") + +DEF_FIELDROW_DESC32( ICLASS_CR" 0101 -------- PP------ --------","[#5] = Rx ") +DEF_ENC32(Y2_crswap0, ICLASS_CR" 0101 000xxxxx PP------ --------") +DEF_ENC32(Y4_crswap1, ICLASS_CR" 0101 001xxxxx PP------ --------") + +DEF_FIELDROW_DESC32( ICLASS_CR" 0110 -------- PP------ --------","[#6] = Rd=3D(Rs)") +DEF_ENC32(Y2_getimask, ICLASS_CR" 0110 000sssss PP------ ---ddddd") +DEF_ENC32(Y2_iassignr, ICLASS_CR" 0110 011sssss PP------ ---ddddd") + +DEF_FIELDROW_DESC32( ICLASS_CR" 0111 -------- PP------ --------","[#7] = cr=3DRs ") +DEF_ENC32(Y2_tfrsrcr, ICLASS_CR" 0111 00-sssss PP------ -ddddddd") + +DEF_FIELDROW_DESC32( ICLASS_CR" 1100 -------- PP------ --------","[#12]= ") +DEF_ENC32(Y2_break, ICLASS_CR" 1100 001----- PP------ 000-----") +DEF_ENC32(Y2_tlblock, ICLASS_CR" 1100 001----- PP------ 001-----") +DEF_ENC32(Y2_tlbunlock,ICLASS_CR" 1100 001----- PP------ 010-----") +DEF_ENC32(Y2_k0lock, ICLASS_CR" 1100 001----- PP------ 011-----") +DEF_ENC32(Y2_k0unlock, ICLASS_CR" 1100 001----- PP------ 100-----") +DEF_ENC32(Y2_tlbp, ICLASS_CR" 1100 100sssss PP------ ---ddddd") +DEF_ENC32(Y5_tlboc, ICLASS_CR" 1100 111sssss PP------ ---ddddd") +DEF_ENC32(Y5_tlbasidi, ICLASS_CR" 1100 101sssss PP------ --------") +DEF_ENC32(Y2_tlbr, ICLASS_CR" 1100 010sssss PP------ ---ddddd") +DEF_ENC32(Y2_tlbw, ICLASS_CR" 1100 000sssss PP0ttttt --------") +DEF_ENC32(Y5_ctlbw, ICLASS_CR" 1100 110sssss PP0ttttt ---ddddd") + +DEF_FIELDROW_DESC32( ICLASS_CR" 1101 -------- PP------ --------","[#13]= Rxx ") +DEF_ENC32(Y4_crswap10, ICLASS_CR" 1101 10-xxxxx PP------ ---00000") +DEF_ENC32(Y4_tfrspcp, ICLASS_CR" 1101 00-sssss PP------ -ddddddd") + +DEF_FIELDROW_DESC32( ICLASS_CR" 1110 -------- PP------ --------","[#14]= Rd=3Dcr ") +DEF_ENC32(Y2_tfrscrr, ICLASS_CR" 1110 1sssssss PP------ ---ddddd") + +DEF_FIELDROW_DESC32( ICLASS_CR" 1111 -------- PP------ --------","[#15]= Rdd=3DSss ") +DEF_ENC32(Y4_tfrscpp, ICLASS_CR" 1111 0sssssss PP------ ---ddddd") + + + + + + + + /*******************************/ /* */ /* */ diff --git a/target/hexagon/imported/system.idef b/target/hexagon/imported/= system.idef index 7c6568e75e4..9e85bed0a6e 100644 --- a/target/hexagon/imported/system.idef +++ b/target/hexagon/imported/system.idef @@ -25,31 +25,230 @@ /* User->OS interface */ /********************************************/ =20 -Q6INSN(J2_trap0,"trap0(#u8)",ATTRIBS(A_COF), +Q6INSN(J2_trap0,"trap0(#u8)",ATTRIBS(A_COF,A_NOTE_NOPACKET,A_RESTRICT_NOPA= CKET), "Trap to Operating System", fTRAP(0,uiV); ) =20 -Q6INSN(J2_pause,"pause(#u8)",ATTRIBS(A_COF), +Q6INSN(J2_trap1,"trap1(Rx32,#u8)",ATTRIBS(A_COF,A_NOTE_NOPACKET,A_RESTRICT= _NOPACKET), +"Trap to Operating System", + /* + * Note: if RxV is not written, we get the same as the input. + * Since trap1 is SOLO, this means the register will effectively not be u= pdated + */ + if (!fTRAP1_VIRTINSN(uiV)) { + fTRAP(1,uiV); + } else if (uiV =3D=3D 1) { + fVIRTINSN_RTE(uiV,RxV); + } else if (uiV =3D=3D 3) { + fVIRTINSN_SETIE(uiV,RxV); + } else if (uiV =3D=3D 4) { + fVIRTINSN_GETIE(uiV,RxV); + } else if (uiV =3D=3D 6) { + fVIRTINSN_SPSWAP(uiV,RxV); + }) + +Q6INSN(J2_pause,"pause(#u8)",ATTRIBS(A_COF,A_NOTE_NOPACKET,A_RESTRICT_NOPA= CKET), "Enter low-power state for #u8 cycles",{fPAUSE(uiV);}) =20 -Q6INSN(Y2_icinva,"icinva(Rs32)",ATTRIBS(A_ICOP,A_ICFLUSHOP),"Instruction C= ache Invalidate Address",{fEA_REG(RsV); fICINVA(EA);}) +Q6INSN(J2_rte, "rte", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NO_TIMING_LOG), +"Return from Exception", +{ +fHIDE(if((thread->timing_on) && (thread->status & EXEC_STATUS_REPLAY)) { r= eturn; }) +fHIDE(CALLBACK(thread->processor_ptr->options->rte_callback, + thread->system_ptr,thread->processor_ptr, + thread->threadId,0);) +fCLEAR_RTE_EX(); +fBRANCH(fREAD_ELR(),COF_TYPE_RTE);}) =20 -Q6INSN(Y2_isync,"isync",ATTRIBS(),"Memory Synchronization",{fISYNC();}) -Q6INSN(Y2_barrier,"barrier",ATTRIBS(A_RESTRICT_SLOT0ONLY),"Memory Barrier"= ,{fBARRIER();}) -Q6INSN(Y2_syncht,"syncht",ATTRIBS(A_RESTRICT_SLOT0ONLY),"Memory Synchroniz= ation",{fSYNCH();}) =20 +/********************************************/ +/* Interrupt Management */ +/********************************************/ =20 -Q6INSN(Y2_dcfetchbo,"dcfetch(Rs32+#u11:3)",ATTRIBS(A_RESTRICT_PREFERSLOT0,= A_DCFETCH),"Data Cache Prefetch",{fEA_RI(RsV,uiV); fDCFETCH(EA);}) +Q6INSN(Y2_swi,"swi(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_AXOK,A_RESTRIC= T_PACKET_AXOK),"Software Interrupt",{DO_SWI(RsV);}) +Q6INSN(Y2_cswi,"cswi(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_AXOK,A_RESTR= ICT_PACKET_AXOK),"Cancel Software Interrupt",{DO_CSWI(RsV);}) +Q6INSN(Y2_ciad,"ciad(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_AXOK,A_RESTR= ICT_PACKET_AXOK),"Re-enable interrupt in IAD",{DO_CIAD(RsV);}) +Q6INSN(Y4_siad,"siad(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_AXOK,A_RESTR= ICT_PACKET_AXOK),"Disable interrupt in IAD",{DO_SIAD(RsV);}) +Q6INSN(Y2_iassignr,"Rd32=3Diassignr(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NO= TE_AXOK,A_RESTRICT_PACKET_AXOK),"Read interrupt to thread assignments",{DO_= IASSIGNR(RsV,RdV);}) +Q6INSN(Y2_iassignw,"iassignw(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_AXOK= ,A_RESTRICT_PACKET_AXOK),"Write interrupt to thread assignments",{DO_IASSIG= NW(RsV);}) =20 =20 -Q6INSN(Y2_dczeroa,"dczeroa(Rs32)",ATTRIBS(A_STORE,A_RESTRICT_SLOT0ONLY,A_D= CZEROA),"Zero an aligned 32-byte cacheline",{fEA_REG(RsV); fDCZEROA(EA);}) -Q6INSN(Y2_dccleana,"dccleana(Rs32)",ATTRIBS(A_RESTRICT_SLOT0ONLY,A_DCFLUSH= OP),"Data Cache Clean Address",{fEA_REG(RsV); fDCCLEANA(EA);}) -Q6INSN(Y2_dccleaninva,"dccleaninva(Rs32)",ATTRIBS(A_RESTRICT_SLOT0ONLY,A_D= CFLUSHOP),"Data Cache Clean and Invalidate Address",{fEA_REG(RsV); fDCCLEAN= INVA(EA);}) -Q6INSN(Y2_dcinva,"dcinva(Rs32)",ATTRIBS(A_RESTRICT_SLOT0ONLY,A_DCFLUSHOP),= "Data Cache Invalidate Address",{fEA_REG(RsV); fDCCLEANINVA(EA);}) +Q6INSN(Y2_getimask,"Rd32=3Dgetimask(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NO= TE_AXOK,A_RESTRICT_PACKET_AXOK),"Read imask register of another thread", +{RdV =3D READ_IMASK(RsV & thread->processor_ptr->thread_system_mask); }) =20 +Q6INSN(Y2_setimask,"setimask(Pt4,Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_= AXOK,A_RESTRICT_PACKET_AXOK),"Change imask register of another thread", +{fPREDUSE_TIMING();WRITE_IMASK(PtV & thread->processor_ptr->thread_system_= mask,RsV); }) =20 -Q6INSN(Y4_l2fetch,"l2fetch(Rs32,Rt32)",ATTRIBS(A_RESTRICT_SLOT0ONLY),"L2 C= ache Prefetch", + + +/********************************************/ +/* TLB management */ +/********************************************/ + +Q6INSN(Y2_tlbw,"tlbw(Rss32,Rt32)", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPAC= KET,A_RESTRICT_NOPACKET), +"Write TLB entry", {fTLBW(RtV,RssV);}) + +Q6INSN(Y5_ctlbw,"Rd32=3Dctlbw(Rss32,Rt32)", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_N= OTE_NOPACKET,A_RESTRICT_NOPACKET), +"Conditional Write TLB entry", +{ + if (fTLB_ENTRY_OVERLAP( (1LL<<63) | RssV )) { + RdV=3DfTLB_ENTRY_OVERLAP_IDX( (1LL<<63) | RssV); + } else { + fTLBW(RtV,RssV); + RdV=3D0x80000000; + } +}) + +Q6INSN(Y5_tlboc,"Rd32=3Dtlboc(Rss32)", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_N= OPACKET,A_RESTRICT_NOPACKET), +"TLB overlap check", +{ + if (fTLB_ENTRY_OVERLAP( (1LL<<63) | RssV )) { + RdV=3DfTLB_ENTRY_OVERLAP_IDX( (1LL<<63) | RssV); + } else { + RdV=3D0x80000000; + } +}) + +Q6INSN(Y2_tlbr,"Rdd32=3Dtlbr(Rs32)", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOP= ACKET,A_RESTRICT_NOPACKET), "Read TLB entry", +{RddV =3D fTLBR(RsV);}) + +Q6INSN(Y2_tlbp,"Rd32=3Dtlbp(Rs32)", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPA= CKET,A_RESTRICT_NOPACKET), "Probe TLB", {RdV=3DfTLBP(RsV);}) + +Q6INSN(Y5_tlbasidi,"tlbinvasid(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NO= PACKET,A_RESTRICT_NOPACKET), "Invalidate ASID", +{ + fHIDE(int i;) + fHIDE(unsigned int NUM_TLB_ENTRIES =3D NUM_TLB_REGS(thread->processor_= ptr);) + for (i =3D 0; i < NUM_TLB_ENTRIES; i++) { + if ((fGET_FIELD(fTLBR(i),PTE_G) =3D=3D 0) && + (fGET_FIELD(fTLBR(i),PTE_ASID) =3D=3D fEXTRACTU_RANGE(RsV,26,20))) { + fTLBW(i,fTLBR(i) & ~(1ULL << 63)); + } + } +}) + +Q6INSN(Y2_tlblock,"tlblock", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A_= RESTRICT_NOPACKET,A_NO_TIMING_LOG), "Lock TLB", +{fSET_TLB_LOCK();}) + +Q6INSN(Y2_tlbunlock,"tlbunlock", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKE= T,A_RESTRICT_NOPACKET), "Unlock TLB", +{fCLEAR_TLB_LOCK();}) + +Q6INSN(Y2_k0lock,"k0lock", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A_RE= STRICT_NOPACKET,A_NO_TIMING_LOG), "Lock K0", +{fSET_K0_LOCK();}) + +Q6INSN(Y2_k0unlock,"k0unlock", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,= A_RESTRICT_NOPACKET), "Unlock K0", +{fCLEAR_K0_LOCK();}) + +/********************************************/ +/* Supervisor Reg Management */ +/********************************************/ + +Q6INSN(Y2_crswap0,"crswap(Rx32,sgp0)",ATTRIBS(A_PRIV,A_NOTE_PRIV), "Swap s= ystem general pointer 0 with GPR", +{fHIDE(size4s_t tmp;) tmp =3D RxV; RxV =3D READ_SGP0(); WRITE_SGP0(tmp);}) +Q6INSN(Y4_crswap1,"crswap(Rx32,sgp1)",ATTRIBS(A_PRIV,A_NOTE_PRIV), "Swap s= ystem general pointer 1 with GPR", +{fHIDE(size4s_t tmp;) tmp =3D RxV; RxV =3D READ_SGP1(); WRITE_SGP1(tmp);}) + +Q6INSN(Y4_crswap10,"crswap(Rxx32,sgp1:0)",ATTRIBS(A_PRIV,A_NOTE_PRIV), "Sw= ap system general purpose 0/1 with GPR Pair", +{fHIDE(size8s_t tmp;) tmp =3D RxxV; RxxV=3DREAD_SGP10(); WRITE_SGP10(tmp);= }) + +Q6INSN(Y2_tfrscrr,"Rd32=3DSs128",ATTRIBS(A_PRIV,A_NOTE_PRIV),"Transfer Sup= ervisor Reg to GPR", {RdV=3DSsV;}) +Q6INSN(Y2_tfrsrcr,"Sd128=3DRs32",ATTRIBS(A_PRIV,A_NOTE_PRIV),"Transfer GPR= to Supervisor Reg", {SdV=3DRsV;}) +Q6INSN(Y4_tfrscpp,"Rdd32=3DSss128",ATTRIBS(A_PRIV,A_NOTE_PRIV),"Transfer S= upervisor Reg to GPR", {RddV=3DSssV;}) +Q6INSN(Y4_tfrspcp,"Sdd128=3DRss32",ATTRIBS(A_PRIV,A_NOTE_PRIV),"Transfer G= PR to Supervisor Reg", {SddV=3DRssV;}) + +Q6INSN(G4_tfrgcrr,"Rd32=3DGs32",ATTRIBS(A_GUEST,A_NOTE_GUEST),"Transfer Gu= est Reg to GPR", {RdV=3DGsV;}) +Q6INSN(G4_tfrgrcr,"Gd32=3DRs32",ATTRIBS(A_GUEST,A_NOTE_GUEST),"Transfer GP= R to Guest Reg", {GdV=3DRsV;}) +Q6INSN(G4_tfrgcpp,"Rdd32=3DGss32",ATTRIBS(A_GUEST,A_NOTE_GUEST),"Transfer = Guest Reg to GPR", {RddV=3DGssV;}) +Q6INSN(G4_tfrgpcp,"Gdd32=3DRss32",ATTRIBS(A_GUEST,A_NOTE_GUEST),"Transfer = GPR to Guest Reg", {GddV=3DRssV;}) + + + +Q6INSN(Y2_setprio,"setprio(Pt4,Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV),"Change = TID Prio of another thread", +{fPREDUSE_TIMING();WRITE_PRIO(PtV & thread->processor_ptr->thread_system_m= ask,RsV); }) + + + + +/********************************************/ +/* Power Management / Thread on/off */ +/********************************************/ +Q6INSN(Y6_diag,"diag(Rs32)",ATTRIBS(),"Send value to Diag trace module",{ +}) +Q6INSN(Y6_diag0,"diag0(Rss32,Rtt32)",ATTRIBS(),"Send values of two registe= r to DIAG Trace. Set X=3D0",{ +}) +Q6INSN(Y6_diag1,"diag1(Rss32,Rtt32)",ATTRIBS(),"Send values of two registe= r to DIAG Trace. Set X=3D1",{ +}) + + +Q6INSN(Y4_trace,"trace(Rs32)",ATTRIBS(A_NOTE_AXOK,A_RESTRICT_PACKET_AXOK),= "Send value to ETM trace",{ + fDO_TRACE(RsV); +}) + +Q6INSN(Y2_stop,"stop(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A_R= ESTRICT_NOPACKET),"Stop thread(s)",{ + fHIDE(RsV=3DRsV;) + if (!fIN_DEBUG_MODE_NO_ISDB(fGET_TNUM())) fCLEAR_RUN_MODE(fGET_TNUM()); +}) + +Q6INSN(Y4_nmi,"nmi(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A_RES= TRICT_NOPACKET,A_NO_TIMING_LOG),"Raise NMI on thread(s)",{ + fDO_NMI(RsV); +}) + +Q6INSN(Y2_start,"start(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A= _RESTRICT_NOPACKET),"Start thread(s)",fSTART(RsV);) + +Q6INSN(Y2_wait,"wait(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A_R= ESTRICT_NOPACKET,A_NO_TIMING_LOG),"Make thread(s) wait",{ + fHIDE(RsV=3DRsV;) + if (!fIN_DEBUG_MODE(fGET_TNUM())) fSET_WAIT_MODE(fGET_TNUM()); + fIN_DEBUG_MODE_WARN(fGET_TNUM()); +}) + +Q6INSN(Y2_resume,"resume(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET= ,A_RESTRICT_NOPACKET),"Make thread(s) stop waiting",fRESUME(RsV);) + +Q6INSN(Y2_break,"brkpt",ATTRIBS(A_NOTE_NOPACKET,A_RESTRICT_NOPACKET),"Brea= kpoint",{fBREAK();}) + + +/********************************************/ +/* Cache Management */ +/********************************************/ + +Q6INSN(Y2_ictagr,"Rd32=3Dictagr(Rs32)",ATTRIBS(A_ICOP,A_PRIV,A_NOTE_PRIV,A= _NOTE_NOPACKET,A_RESTRICT_NOPACKET,A_CACHEOP,A_COPBYIDX,A_ICTAGOP),"Instruc= tion Cache Tag Read",{fICTAGR(RsV,RdV,RdN);}) +Q6INSN(Y2_ictagw,"ictagw(Rs32,Rt32)",ATTRIBS(A_ICOP,A_PRIV,A_NOTE_PRIV,A_N= OTE_NOPACKET,A_RESTRICT_NOPACKET,A_CACHEOP,A_COPBYIDX,A_ICTAGOP),"Instructi= on Cache Tag Write",{fICTAGW(RsV,RtV);}) +Q6INSN(Y2_icdataw,"icdataw(Rs32,Rt32)",ATTRIBS(A_ICOP,A_PRIV,A_NOTE_PRIV,A= _NOTE_NOPACKET,A_RESTRICT_NOPACKET,A_CACHEOP,A_COPBYIDX,A_ICTAGOP),"Instruc= tion Cache Data Write",{fICDATAW(RsV,RtV);}) +Q6INSN(Y2_icdatar,"Rd32=3Dicdatar(Rs32)",ATTRIBS(A_ICOP,A_PRIV,A_NOTE_PRIV= ,A_NOTE_NOPACKET,A_RESTRICT_NOPACKET,A_CACHEOP,A_COPBYIDX,A_ICTAGOP),"Instr= uction Cache Data Read",{fICDATAR(RsV, RdV);}) +Q6INSN(Y2_icinva,"icinva(Rs32)",ATTRIBS(A_ICOP,A_NOTE_NOPACKET,A_RESTRICT_= NOPACKET,A_CACHEOP,A_COPBYADDRESS,A_ICFLUSHOP),"Instruction Cache Invalidat= e Address",{fEA_REG(RsV); fICINVA(EA);}) +Q6INSN(Y2_icinvidx,"icinvidx(Rs32)",ATTRIBS(A_ICOP,A_PRIV,A_NOTE_PRIV,A_NO= TE_NOPACKET,A_RESTRICT_NOPACKET,A_CACHEOP,A_COPBYIDX,A_ICFLUSHOP),"Instruct= ion Cache Invalidate Index",{fICINVIDX(RsV);}) +Q6INSN(Y2_ickill,"ickill",ATTRIBS(A_ICOP,A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKE= T,A_RESTRICT_NOPACKET,A_CACHEOP,A_ICFLUSHOP),"Instruction Cache Invalidate"= ,{fICKILL();}) + +Q6INSN(Y2_isync,"isync",ATTRIBS(A_NOTE_NOPACKET,A_RESTRICT_NOPACKET),"Memo= ry Synchronization",{fISYNC();}) +Q6INSN(Y2_barrier,"barrier",ATTRIBS(A_NOTE_NOPACKET,A_RESTRICT_SLOT0ONLY,A= _RESTRICT_PACKET_AXOK),"Memory Barrier",{fBARRIER();}) +Q6INSN(Y2_syncht,"syncht",ATTRIBS(A_NOTE_NOPACKET,A_RESTRICT_SLOT0ONLY,A_R= ESTRICT_NOPACKET),"Memory Synchronization",{fSYNCH();}) + + +Q6INSN(Y2_dcfetchbo,"dcfetch(Rs32+#u11:3)",ATTRIBS(A_RESTRICT_PREFERSLOT0,= A_DCFETCH,A_RESTRICT_NOSLOT1_STORE),"Data Cache Prefetch",{fEA_RI(RsV,uiV);= fDCFETCH(EA);}) +Q6INSN(Y2_dckill,"dckill",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A_RES= TRICT_SLOT0ONLY,A_RESTRICT_NOPACKET,A_CACHEOP,A_DCFLUSHOP),"Data Cache Inva= lidate",{fDCKILL();}) + + +Q6INSN(Y2_dczeroa,"dczeroa(Rs32)",ATTRIBS(A_STORE,A_RESTRICT_SLOT1_AOK,A_N= OTE_SLOT1_AOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYADDRESS,A_DCZEROA),"Zer= o an aligned 32-byte cacheline",{fEA_REG(RsV); fDCZEROA(EA);}) +Q6INSN(Y2_dccleana,"dccleana(Rs32)",ATTRIBS(A_RESTRICT_SLOT1_AOK,A_NOTE_SL= OT1_AOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYADDRESS,A_DCFLUSHOP),"Data Ca= che Clean Address",{fEA_REG(RsV); fDCCLEANA(EA);}) +Q6INSN(Y2_dccleanidx,"dccleanidx(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_RESTR= ICT_PACKET_AXOK,A_NOTE_AXOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYIDX,A_DCF= LUSHOP),"Data Cache Clean Index",{fDCCLEANIDX(RsV);}) +Q6INSN(Y2_dccleaninva,"dccleaninva(Rs32)",ATTRIBS(A_RESTRICT_SLOT1_AOK,A_N= OTE_SLOT1_AOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYADDRESS,A_DCFLUSHOP),"D= ata Cache Clean and Invalidate Address",{fEA_REG(RsV); fDCCLEANINVA(EA);}) +Q6INSN(Y2_dccleaninvidx,"dccleaninvidx(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A= _RESTRICT_PACKET_AXOK,A_NOTE_AXOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYIDX= ,A_DCFLUSHOP),"Data Cache Clean and Invalidate Index",{fDCCLEANINVIDX(RsV);= }) +Q6INSN(Y2_dcinva,"dcinva(Rs32)",ATTRIBS(A_RESTRICT_SLOT1_AOK,A_NOTE_SLOT1_= AOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYADDRESS,A_DCFLUSHOP),"Data Cache = Invalidate Address",{fEA_REG(RsV); fDCCLEANINVA(EA);}) +Q6INSN(Y2_dcinvidx,"dcinvidx(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_RESTRICT_= PACKET_AXOK,A_NOTE_AXOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYIDX,A_DCFLUSH= OP),"Data Cache Invalidate Index",{fDCINVIDX(RsV);}) +Q6INSN(Y2_dctagr,"Rd32=3Ddctagr(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_RESTRI= CT_PACKET_AXOK,A_NOTE_AXOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYIDX,A_DCTA= GOP),"Data Cache Tag Read",{fDCTAGR(RsV,RdV,RdN);}) +Q6INSN(Y2_dctagw,"dctagw(Rs32,Rt32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_RESTRICT= _SLOT0ONLY,A_NOTE_NOPACKET,A_RESTRICT_NOPACKET,A_CACHEOP,A_COPBYIDX,A_DCTAG= OP),"Data Cache Tag Write",{fDCTAGW(RsV,RtV);}) + + +Q6INSN(Y2_l2kill,"l2kill",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A_RES= TRICT_SLOT0ONLY,A_RESTRICT_NOPACKET,A_CACHEOP,A_L2FLUSHOP),"L2 Cache Invali= date",{fL2KILL();}) +Q6INSN(Y4_l2tagw,"l2tagw(Rs32,Rt32)",ATTRIBS(A_PRIV,A_NOTE_BADTAG_UNDEF,A_= NOTE_PRIV,A_RESTRICT_SLOT0ONLY,A_NOTE_NOPACKET,A_RESTRICT_NOPACKET,A_CACHEO= P,A_COPBYIDX,A_L2TAGOP),"L2 Cache Tag Write",{fL2TAGW(RsV,RtV);}) +Q6INSN(Y4_l2tagr,"Rd32=3Dl2tagr(Rs32)",ATTRIBS(A_PRIV,A_NOTE_BADTAG_UNDEF,= A_NOTE_PRIV,A_NOTE_AXOK,A_RESTRICT_PACKET_AXOK,A_RESTRICT_SLOT0ONLY,A_CACHE= OP,A_COPBYIDX,A_L2TAGOP),"L2 Cache Tag Read",{fL2TAGR(RsV,RdV,RdN);}) + +Q6INSN(Y2_l2cleaninvidx,"l2cleaninvidx(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A= _NOTE_AXOK,A_RESTRICT_PACKET_AXOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYIDX= ,A_L2FLUSHOP),"L2 Cache Clean and Invalidate Index",{fL2CLEANINVIDX(RsV); }) +Q6INSN(Y5_l2cleanidx,"l2cleanidx(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_= AXOK,A_RESTRICT_PACKET_AXOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYIDX,A_L2F= LUSHOP),"L2 Cache Clean by Index",{fL2CLEANIDX(RsV); }) +Q6INSN(Y5_l2invidx,"l2invidx(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_AXOK= ,A_RESTRICT_PACKET_AXOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYIDX,A_L2FLUSH= OP),"L2 Cache Invalidate by Index",{fL2INVIDX(RsV); }) + + + +Q6INSN(Y4_l2fetch,"l2fetch(Rs32,Rt32)",ATTRIBS(A_RESTRICT_SLOT0ONLY,A_REST= RICT_PACKET_AXOK,A_NOTE_AXOK),"L2 Cache Prefetch", { fL2FETCH(RsV, (RtV&0xff), /*height*/ ((RtV>>8)&0xff), /*width*/ @@ -59,10 +258,28 @@ Q6INSN(Y4_l2fetch,"l2fetch(Rs32,Rt32)",ATTRIBS(A_RESTR= ICT_SLOT0ONLY),"L2 Cache P =20 =20 =20 -Q6INSN(Y5_l2fetch,"l2fetch(Rs32,Rtt32)",ATTRIBS(A_RESTRICT_SLOT0ONLY),"L2 = Cache Prefetch", +Q6INSN(Y5_l2fetch,"l2fetch(Rs32,Rtt32)",ATTRIBS(A_RESTRICT_SLOT0ONLY,A_RES= TRICT_PACKET_AXOK,A_NOTE_AXOK),"L2 Cache Prefetch", { fL2FETCH(RsV, fGETUHALF(0,RttV), /*height*/ fGETUHALF(1,RttV), /*width*/ fGETUHALF(2,RttV), /*stride*/ fGETUHALF(3,RttV)); /*flags*/ }) + +Q6INSN(Y5_l2locka,"Pd4=3Dl2locka(Rs32)", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_CACH= EOP,A_COPBYADDRESS,A_RESTRICT_SLOT0ONLY,A_RESTRICT_PACKET_AXOK,A_NOTE_AXOK,= A_RESTRICT_LATEPRED,A_NOTE_LATEPRED), +"Lock L2 cache line by address", { fEA_REG(RsV); fL2LOCKA(EA,PdV,PdN); fHI= DE(MARK_LATE_PRED_WRITE(PdN)) }) + + +Q6INSN(Y5_l2unlocka,"l2unlocka(Rs32)", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_CACHEO= P,A_COPBYADDRESS,A_RESTRICT_SLOT0ONLY,A_RESTRICT_PACKET_AXOK,A_NOTE_AXOK), = "UnLock L2 cache line by address", { fEA_REG(RsV); fL2UNLOCKA(EA); }) + + + +Q6INSN(Y5_l2gunlock,"l2gunlock",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET= ,A_RESTRICT_SLOT0ONLY,A_RESTRICT_NOPACKET,A_CACHEOP,A_L2FLUSHOP),"L2 Global= Unlock",{fL2UNLOCK();}) + +Q6INSN(Y5_l2gclean,"l2gclean",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A= _RESTRICT_SLOT0ONLY,A_RESTRICT_NOPACKET,A_CACHEOP,A_L2FLUSHOP),"L2 Global C= lean",{fL2CLEAN();}) + +Q6INSN(Y5_l2gcleaninv,"l2gcleaninv",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPA= CKET,A_RESTRICT_SLOT0ONLY,A_RESTRICT_NOPACKET,A_CACHEOP,A_L2FLUSHOP),"L2 Gl= obal Clean and Invalidate",{fL2CLEANINV();}) + +Q6INSN(Y6_l2gcleanpa,"l2gclean(Rtt32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_N= OPACKET,A_RESTRICT_SLOT0ONLY,A_RESTRICT_NOPACKET,A_CACHEOP,A_L2FLUSHOP),"L2= Global Clean by PA Range",{fL2CLEANPA(RttV);}) + +Q6INSN(Y6_l2gcleaninvpa,"l2gcleaninv(Rtt32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_= NOTE_NOPACKET,A_RESTRICT_SLOT0ONLY,A_RESTRICT_NOPACKET,A_CACHEOP,A_L2FLUSHO= P),"L2 Global Clean and Invalidate by PA Range",{fL2CLEANINVPA(RttV);}) --=20 2.34.1 From nobody Sun Jul 26 11:50:59 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397070; cv=none; d=zohomail.com; s=zohoarc; b=iAmErlClt3dY4FKnXeFYoL4+RJYmIiQFFPtKvrA1JF+lACLrAQLQskws5xbFCzOIyQACYEhvH4Ezco+56y+xdJ+Et82AVygSKdY5SeAcRQ/11wuHaqCobFjmINnG5e5Qzvu7QOPmyRXNZxetiRuKgvIg6yXDvZ5hAK8Aot1n51o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397070; 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=/VupIGXlaT55BiO1M+rRAhb74/1Wio7tg5AsFBlbUDk=; b=Lq4BC4zP106aY7sWS4YsW6JRHDIfy7JgoKAydNsqleSyMXyFPl0koaNFnOnA5+Z/9I55GjQHS2OcvAFnq7ttQY/tuoC8dKJQyiKS9mWrkP1236quUDrN36xZGKv1uPOTGweVwnM3XvbvmjIUQrtG6dLf/Jc6Bgcbdrt0No3lMrQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782397070631790.1004620095978; Thu, 25 Jun 2026 07:17:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wcktk-000701-0o; Thu, 25 Jun 2026 10:17:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wckti-0006zY-Gj for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:42 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wcktg-0008WV-Ck for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:42 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9jstk2009329 for ; Thu, 25 Jun 2026 14:17:29 GMT Received: from mail-dl1-f71.google.com (mail-dl1-f71.google.com [74.125.82.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0uhmjjxf-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:17:29 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-137e49e896aso929932c88.0 for ; Thu, 25 Jun 2026 07:17:29 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.17.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:17: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= /VupIGXlaT55BiO1M+rRAhb74/1Wio7tg5AsFBlbUDk=; b=d48hK6ivjtvhQUlP l0iQGijv2hMxbvRTXvZ+DXuyxGNEfKY9oqufP5NSbQxEpmpdp3nIBaUr5gDdUKoN Gv5Uum+uPfWpotvHiXnx034eJdO9vwOdOIxyAZapIs9zLWEaVWWHfGKrZIPXI66R fDVsRLd8gjOgTtof04Iu9sUTBuPn0mosARmSXrOQsEOZ5hPOhk2GshJ1jKFSBQO9 MZD+HJGNQqyJiXpmNGXi0Rjl1MjBmSBrke2pAQvTBrZLJT9ig1yBSIQAmImv6DB7 hPe1xHmWFKiuIUozxneLN2Fzz6Zjtm6+15EHvBqts93jTd8oy+2Wd9CLjgcjHQ0z QY1BfA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397048; x=1783001848; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=/VupIGXlaT55BiO1M+rRAhb74/1Wio7tg5AsFBlbUDk=; b=Z6poy0geRr3krMNfejMvR1io1D/Smf0bmgNJNkv0kDedMVJ/ENdSHmoJY6xzwatH+8 9aTrwuQVz7U9ydF9pX+jxrE5WoBKxXIz2EEwmnBbC4vqkL+Xdcr8DoOQ5uPJdfMDkNbT egnz9qYFmD+7S7gO674yJHjGS2Ca6T+34RnFiH6qdJMczTl3E6F9ksjaKscCT7JPTQ9+ YZr+iGD79lM/kPgqCN4aAQVqE6DSQjgEXKVqmpf3ESAx8TqcdKPaNSdn5lTmyyHCPwxW hmnkCdxVS1BNx9YGc8Cabsu7x69IJFIkkqdZVGQ6vJ5BxwmcS35yWRCbl9m6pagNnhzi K+ug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397048; x=1783001848; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=/VupIGXlaT55BiO1M+rRAhb74/1Wio7tg5AsFBlbUDk=; b=Qv7ldg73n23lZH2mnoVMJ4G4kp8vuDrd2TEdd0s18FJMGNsviP1LcegiFyl2/vXctm no63B+5RSMkMo5jNxRtGlTkBURjCdrRAkhG5qo2Q67Fs/yX5Xi/c640IcXOiXj4a1wVh VDexPiLPeJrjsQuh/iwqS+e7Ltz80lhgEBYzedz80tMFqOJMi8tshvdneAzbeSpipgOH FAR9xE2SCG0k4aNlEFB8Lgc3cT2CyZe4QxG1SDw/9MM9uV4YajoAFqijA2sBh1BDVN+V eD1BvvmzEKBqZlOuMFoCa0Jk017fCqKlqhDZqSB32WpkZO184M8Hrbveq6G7OFg5IwuD rA6A== X-Gm-Message-State: AOJu0YzUuoV4c3m+bt06cKyh7/dh4FGOv8jgz2n0J05plcfqUUE2hBpn LQcm06we7rZ83nEL9Zzz0tOroGJ+eC7fkSJTUGPiQ3RXFjTJFL5dA9lvXDUx3oCE4jAy6URsKUg KBHRTM4Wb5InhSnr/JGg78fgUy70/t/J/u4GkqILdkCwkdNcrHNSd1OSByP1GnuZDcQ== X-Gm-Gg: AfdE7clG7br4bmVwBwCLUZYRn5kok7CqygByNikKi2Sg9mJMSaTe4WV9iT7zn95AOzf 1Iam+aIi+b3F+XzsVMutxs1uDsj68kOUqOPFPj7eztiDIwUuElzN6CZ+9juE41NvFNG+j/nEljY sjzRxjLuU0S8bigTu5/Lyocr4WnAOQ37WZ2FVFJQx6DLvg+oOPVkfDUdbGpzJuiWMtaRD1CNExc suH2SgEoBZgIfZYG0XFmZ0lGjbQLIcRn+nopp0eebAA0WIGSkvwTibt0iTrUVgRYZ31abAwQagP O8RAPT9LW5zHPwacBF1HvBDVvxoG6X8QXVy9xoyqmYI2uob3ZiEJkdxgZTSb668Ve3B9JUPO5pL TV7CY5CgGkZgeXxIwbZ5mIYP9ktU1Y/31/1wjxPoD6xaNxdVhe/8T+yZSre8= X-Received: by 2002:a05:7022:98f:b0:12a:8122:24a9 with SMTP id a92af1059eb24-139c3d0958amr8748610c88.22.1782397048169; Thu, 25 Jun 2026 07:17:28 -0700 (PDT) X-Received: by 2002:a05:7022:98f:b0:12a:8122:24a9 with SMTP id a92af1059eb24-139c3d0958amr8748563c88.22.1782397047475; Thu, 25 Jun 2026 07:17:27 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 26/76] target/hexagon: Add sysemu TCG overrides Date: Thu, 25 Jun 2026 07:15:43 -0700 Message-Id: <20260625141633.449487-27-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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=cqerVV4i c=1 sm=1 tr=0 ts=6a3d3879 cx=c_pps a=JYo30EpNSr/tUYqK9jHPoA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=dSil3A76VgRsV-fRJqMA:9 a=QEXdDO2ut3YA:10 a=Fk4IpSoW4aLDllm1B1p-:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX57F7//KwCm/O vzeDfU4JuVVpFTcnVvr3pYLLyw5oGYnJ46yfKs97NMkQLt6GdeFicNFkIfRK26wr4zHDCdsaErN lTqBfFUQNrNC/HHBRGkRIYZCmMvwr47lsCeb0nuANfuBs/8LD6U3WIB6YeEiW/gzlMq8hE9tu4o 2SppeVUL/3fYeP2u9ZUlqz6mNcVeJYANbQ+sJqJuCv861yhtHc7HsNHee+eycKSX4hsG6E4XbCy mV0PyCc12NBXAf66/8YcHbwcak+RSFILW20kraF2sMFGdg+IYOD+fJOJXr1Y5dv/NoZ1fTxABH1 hgCy61A/pMF23VnTIXf9QYWrydEGYbBbbTL9vy5p950QLb8h9SrGmkp+m/5DcqfYUXGJqF1bhbp nTbzJZYXtHDhmVSKGddb72lheSfmT3shmhDEXx3CH8CHiBQZEYCZR8d2Q4nnnRziJs7qNCNvOUs v/7O5swtPUo6FExvcYg== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfXxv0E8UWy3/Ks rxKb9NKE9BTbZnS4O4viRhl1SO7NBN9HbxDT+o0iG2yOHgROXSW/VHsYqnV/7Utrpe8AS4ARyNt FYeN4/UB58ha965nt5lrcHsDR0arLe8= X-Proofpoint-GUID: tmgtLvixlQFmC1DO9qZK94ycTp9g_Rhk X-Proofpoint-ORIG-GUID: tmgtLvixlQFmC1DO9qZK94ycTp9g_Rhk X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 clxscore=1015 bulkscore=0 phishscore=0 priorityscore=1501 malwarescore=0 suspectscore=0 impostorscore=0 spamscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397071926158500 From: Brian Cain Define TCG overrides for setprio(), crswap(,sgp{0,1,1:0}). Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu_helper.h | 18 ++++++++++++ target/hexagon/gen_tcg_sys.h | 55 ++++++++++++++++++++++++++++++++++++ target/hexagon/helper.h | 1 + target/hexagon/genptr.c | 4 +++ target/hexagon/op_helper.c | 9 +++++- target/hexagon/hex_common.py | 2 ++ target/hexagon/meson.build | 13 +++++---- 7 files changed, 95 insertions(+), 7 deletions(-) create mode 100644 target/hexagon/cpu_helper.h create mode 100644 target/hexagon/gen_tcg_sys.h diff --git a/target/hexagon/cpu_helper.h b/target/hexagon/cpu_helper.h new file mode 100644 index 00000000000..75a28fc10f9 --- /dev/null +++ b/target/hexagon/cpu_helper.h @@ -0,0 +1,18 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HEXAGON_CPU_HELPER_H +#define HEXAGON_CPU_HELPER_H + +uint32_t hexagon_get_pmu_counter(CPUHexagonState *cur_env, int index); +uint64_t hexagon_get_sys_pcycle_count(CPUHexagonState *env); +uint32_t hexagon_get_sys_pcycle_count_high(CPUHexagonState *env); +uint32_t hexagon_get_sys_pcycle_count_low(CPUHexagonState *env); +void hexagon_set_sys_pcycle_count_high(CPUHexagonState *env, uint32_t val); +void hexagon_set_sys_pcycle_count_low(CPUHexagonState *env, uint32_t val); +void hexagon_set_sys_pcycle_count(CPUHexagonState *env, uint64_t val); + +#endif diff --git a/target/hexagon/gen_tcg_sys.h b/target/hexagon/gen_tcg_sys.h new file mode 100644 index 00000000000..f78c9635c3f --- /dev/null +++ b/target/hexagon/gen_tcg_sys.h @@ -0,0 +1,55 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HEXAGON_GEN_TCG_SYS_H +#define HEXAGON_GEN_TCG_SYS_H + +#define fGEN_TCG_Y2_setprio(SHORTCODE) \ + gen_helper_setprio(tcg_env, PtV, RsV) + +#define fGEN_TCG_Y2_crswap0(SHORTCODE) \ + do { \ + TCGv_i32 tmp =3D tcg_temp_new_i32(); \ + tcg_gen_mov_tl(tmp, RxV); \ + tcg_gen_mov_tl(RxV, hex_t_sreg[HEX_SREG_SGP0]); \ + if (ctx->need_commit) { \ + tcg_gen_mov_tl(ctx->t_sreg_new_value[HEX_SREG_SGP0], tmp); \ + } else { \ + tcg_gen_mov_tl(hex_t_sreg[HEX_SREG_SGP0], tmp); \ + } \ + } while (0) + +#define fGEN_TCG_Y4_crswap1(SHORTCODE) \ + do { \ + TCGv_i32 tmp =3D tcg_temp_new_i32(); \ + tcg_gen_mov_tl(tmp, RxV); \ + tcg_gen_mov_tl(RxV, hex_t_sreg[HEX_SREG_SGP1]); \ + if (ctx->need_commit) { \ + tcg_gen_mov_tl(ctx->t_sreg_new_value[HEX_SREG_SGP1], tmp); \ + } else { \ + tcg_gen_mov_tl(hex_t_sreg[HEX_SREG_SGP1], tmp); \ + } \ + } while (0) + +#define fGEN_TCG_Y4_crswap10(SHORTCODE) \ + do { \ + TCGv_i64 tmp =3D tcg_temp_new_i64(); \ + tcg_gen_mov_i64(tmp, RxxV); \ + tcg_gen_concat_i32_i64(RxxV, \ + hex_t_sreg[HEX_SREG_SGP0], \ + hex_t_sreg[HEX_SREG_SGP1]); \ + if (ctx->need_commit) { \ + tcg_gen_extrl_i64_i32( \ + ctx->t_sreg_new_value[HEX_SREG_SGP0], tmp); \ + tcg_gen_extrh_i64_i32( \ + ctx->t_sreg_new_value[HEX_SREG_SGP1], tmp); \ + } else { \ + tcg_gen_extrl_i64_i32(hex_t_sreg[HEX_SREG_SGP0], tmp); \ + tcg_gen_extrh_i64_i32(hex_t_sreg[HEX_SREG_SGP1], tmp); \ + } \ + } while (0) + +#endif diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index 28b9b59e0f2..5405342f798 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -114,4 +114,5 @@ DEF_HELPER_2(sreg_read_pair, i64, env, i32) DEF_HELPER_2(greg_read, i32, env, i32) DEF_HELPER_2(greg_read_pair, i64, env, i32) DEF_HELPER_3(sreg_write_masked, void, env, i32, i32) +DEF_HELPER_3(setprio, void, env, i32, i32) #endif diff --git a/target/hexagon/genptr.c b/target/hexagon/genptr.c index 8f191f80619..ee69feae4b0 100644 --- a/target/hexagon/genptr.c +++ b/target/hexagon/genptr.c @@ -31,6 +31,10 @@ #undef QEMU_GENERATE #include "gen_tcg.h" #include "gen_tcg_hvx.h" +#ifndef CONFIG_USER_ONLY +#include "gen_tcg_sys.h" +#endif + #include "genptr.h" =20 TCGv gen_read_reg(TCGv result, int num) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 0f43a666341..3236ce0c8f0 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -20,9 +20,9 @@ #include "accel/tcg/cpu-ldst.h" #include "accel/tcg/cpu-loop.h" #include "accel/tcg/probe.h" +#include "cpu.h" #include "exec/helper-proto.h" #include "fpu/softfloat.h" -#include "cpu.h" #include "internal.h" #include "macros.h" #include "sys_macros.h" @@ -32,6 +32,7 @@ #include "mmvec/mmvec.h" #include "mmvec/macros.h" #include "op_helper.h" +#include "cpu_helper.h" #include "translate.h" #ifndef CONFIG_USER_ONLY #include "hexswi.h" @@ -1413,6 +1414,12 @@ uint64_t HELPER(greg_read_pair)(CPUHexagonState *env= , uint32_t reg) { g_assert_not_reached(); } + +void HELPER(setprio)(CPUHexagonState *env, uint32_t thread, uint32_t prio) +{ + g_assert_not_reached(); +} + #endif =20 =20 diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py index b555e2b663b..8c6a0589f88 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -1369,6 +1369,7 @@ def parse_common_args(desc): parser.add_argument("semantics", help=3D"semantics file") parser.add_argument("overrides", help=3D"overrides file") parser.add_argument("overrides_vec", help=3D"vector overrides file") + parser.add_argument("overrides_sys", help=3D"system overrides file") parser.add_argument("out", help=3D"output file") parser.add_argument("--idef-parser", help=3D"file of instructions translated by idef-pa= rser") @@ -1376,6 +1377,7 @@ def parse_common_args(desc): read_semantics_file(args.semantics) read_overrides_file(args.overrides) read_overrides_file(args.overrides_vec) + read_overrides_file(args.overrides_sys) if args.idef_parser: read_idef_parser_enabled_file(args.idef_parser) calculate_attribs() diff --git a/target/hexagon/meson.build b/target/hexagon/meson.build index ff22b4e4706..fd3d69feffd 100644 --- a/target/hexagon/meson.build +++ b/target/hexagon/meson.build @@ -20,6 +20,7 @@ hexagon_ss =3D ss.source_set() hex_common_py =3D 'hex_common.py' gen_tcg_h =3D meson.current_source_dir() / 'gen_tcg.h' gen_tcg_hvx_h =3D meson.current_source_dir() / 'gen_tcg_hvx.h' +gen_tcg_sys_h =3D meson.current_source_dir() / 'gen_tcg_sys.h' idef_parser_dir =3D meson.current_source_dir() / 'idef-parser' =20 # @@ -337,12 +338,12 @@ if idef_parser_enabled and 'hexagon-linux-user' in ta= rget_dirs # Setup input and dependencies for the next step, this depends on whet= her or # not idef-parser is enabled helper_dep =3D [semantics_generated, idef_generated_tcg_c, idef_genera= ted_tcg] - helper_in =3D [semantics_generated, gen_tcg_h, gen_tcg_hvx_h, '--idef-= parser', idef_generated_list] + helper_in =3D [semantics_generated, gen_tcg_h, gen_tcg_hvx_h, gen_tcg_= sys_h, '--idef-parser', idef_generated_list] else # Setup input and dependencies for the next step, this depends on whet= her or # not idef-parser is enabled helper_dep =3D [semantics_generated] - helper_in =3D [semantics_generated, gen_tcg_h, gen_tcg_hvx_h] + helper_in =3D [semantics_generated, gen_tcg_h, gen_tcg_hvx_h, gen_tcg_= sys_h] endif =20 # @@ -356,7 +357,7 @@ helper_protos_generated =3D custom_target( 'helper_protos_generated.h.inc', output: 'helper_protos_generated.h.inc', depends: helper_dep, - depend_files: [hex_common_py, gen_tcg_h, gen_tcg_hvx_h], + depend_files: [hex_common_py, gen_tcg_h, gen_tcg_hvx_h, gen_tcg_sys_h], command: [python, files('gen_helper_protos.py'), helper_in, '@OUTPUT@'= ], ) hexagon_ss.add(helper_protos_generated) @@ -365,7 +366,7 @@ helper_funcs_generated =3D custom_target( 'helper_funcs_generated.c.inc', output: 'helper_funcs_generated.c.inc', depends: helper_dep, - depend_files: [hex_common_py, gen_tcg_h, gen_tcg_hvx_h], + depend_files: [hex_common_py, gen_tcg_h, gen_tcg_hvx_h, gen_tcg_sys_h], command: [python, files('gen_helper_funcs.py'), helper_in, '@OUTPUT@'], ) hexagon_ss.add(helper_funcs_generated) @@ -374,7 +375,7 @@ tcg_funcs_generated =3D custom_target( 'tcg_funcs_generated.c.inc', output: 'tcg_funcs_generated.c.inc', depends: helper_dep, - depend_files: [hex_common_py, gen_tcg_h, gen_tcg_hvx_h], + depend_files: [hex_common_py, gen_tcg_h, gen_tcg_hvx_h, gen_tcg_sys_h], command: [python, files('gen_tcg_funcs.py'), helper_in, '@OUTPUT@'], ) hexagon_ss.add(tcg_funcs_generated) @@ -383,7 +384,7 @@ analyze_funcs_generated =3D custom_target( 'analyze_funcs_generated.c.inc', output: 'analyze_funcs_generated.c.inc', depends: helper_dep, - depend_files: [hex_common_py, gen_tcg_h, gen_tcg_hvx_h], + depend_files: [hex_common_py, gen_tcg_h, gen_tcg_hvx_h, gen_tcg_sys_h], command: [python, files('gen_analyze_funcs.py'), helper_in, '@OUTPUT@'= ], ) hexagon_ss.add(analyze_funcs_generated) --=20 2.34.1 From nobody Sun Jul 26 11:50:59 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397102; cv=none; d=zohomail.com; s=zohoarc; b=DTJDtJy0yAe/WsOe1Am5fNcvxzWPwmgb5BP+v6g72B1pgHyStbXEmVxVtEWUCd0osnnotq2CJPlj+ue9gqxztRynvzPfSH3PM2qJNTdud7pw23nLxS9jSl1501GrVz/sLu1HVMvKjWuELVAcHuyuC00vApl9su6HqRnFI/ADjEY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397102; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=A6hX7dXQXO1+fIeZgKUska/ZVbxUwMZyizq5wXsBD70=; b=kjmSVTmKRYy/spjXchJatiYA7X4R1cRUhSNiclZ98IZCEkv8oXkze4/Laui9ywKKVUD/jwErvAdfRK7QwXTrkVw1sGNYiioD2TbeNNjYMM0+rKJkrJSHuUQcoeU0t4NrS4VqGesex8q66V15VK6PHwrqdFad9t2KBS2A5OVkCbM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782397102817479.04109661833763; Thu, 25 Jun 2026 07:18:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wcktq-0007RW-6n; Thu, 25 Jun 2026 10:17:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wcktk-00072W-67 for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:45 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wckti-00005I-Cj for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:43 -0400 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9k4i52048176 for ; Thu, 25 Jun 2026 14:17:31 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0uyqjf5n-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:17:31 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c50cd6cbcso2571768eec.1 for ; Thu, 25 Jun 2026 07:17:31 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.17.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:17: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= A6hX7dXQXO1+fIeZgKUska/ZVbxUwMZyizq5wXsBD70=; b=EmT4rkAnGyCgosYl MWiALQKktkfLYdZ5noYE0YXHRQrinR/i4BIpjOzzvUGn1s9cXWMMa47gmsjifD+i zH4mSMTSLYDKBetdcwUTh74ptab0PgUmSZ0qrKNwi3PdGPQvZyWK3/bDg88B6oCS RsMsXdtiXuMwQbV0mKcbJK+mo//pZvP0IZbhPzaSgaVdoQS2XcmaAU7828hskNnt 3PC/NSN8xh1Lhj0YpNfcpIHQXta9Qji6nrCuDCfAYXOnNSYV3jDhLHTOvClKniJS Pe2+FQpGdKmDl2Ou802i56HVttsRpkVwtdJAfakZSug8Cge2jlXqLPrGFgN4X42s N76s2w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397050; x=1783001850; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=A6hX7dXQXO1+fIeZgKUska/ZVbxUwMZyizq5wXsBD70=; b=Xe/SrkAITZgyXME1I86AwJUiGeI5fT4BuoAdguRyfo18Z8W621lvQNClgxsR7NQj54 OWB5cnIyt+vK5cIZHS8k5J5sYE0cFWNH10X2+SyNvKNeT0+mBa8DH6DG5NQxHs1GhHzr a6+0l31miDT3uEf8h4tDzV1jqYOzVEuRlExktA1N8xGIHbaXDv3Uj1coEWmDZqG3UybE 1Et+9IQvt+OhgXUxwp68c6z6fQ+jz9Rmmcgr8so+NCDRCVCE7r7Ais2DagEGUNe3T57B IcpZth2FtH4ArLJuJySQqte7dGVRqhAmaqwc9V2nq9gyCGVLMHQ7hIFOKe/2KnaWUMKq TrWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397050; x=1783001850; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=A6hX7dXQXO1+fIeZgKUska/ZVbxUwMZyizq5wXsBD70=; b=oE4e00+WNqv/2qRoYhChONDATU7LTxY51dwO4SHMOBXZUvwFA6fPFAmhBVuMBsT3m2 oVoX+AU1TZ4xl2d9bGeoXqB3kawCQdqhhrQbk+j/VSsXqLidD1OF6FwOjdeVv8/e1VNG EX1sRCvll9+I0d2rX8hyFp6z/lswpBK/5lqMMnGcxDy2L98xmTgDyAVRxey6NMVTOa2P +PBcsGzc4A4uiNKDpZe2kE7uMbdWaGKPtUROjJFoMWRwpfqG9Wt1j5wcDB+4TcGEYYR3 pzakyRBaUvyT3RphEDcblJkWj8m68TGCm6ve7bNwL2k9p0Cj7+MEzg5rF7zkfTwPRZUh QpiQ== X-Gm-Message-State: AOJu0Yz3SOfoD84YIgmaAxZuWZI4gmUFmNmQCLTS5gq4UNE3mxWRv3Iv imJSg17+O77tG2g4ebS1de2XZUJKFImGqDOmnHaURtVrApKJC9f2W40PdzCZDwGUJ0ckj6Qk5TZ BuCXEuazY2vY2+VlTiLVyTuT/5EFj29L36LQJTtXvdfUX5HLbTTBAR4d6hEeUH6h6Ow== X-Gm-Gg: AfdE7clI8reaNEKOjugWnQILPcXklrONC8LuKa71mvOuTlPGpLOCro2iPGiYAHXwwAc bapDpDNRgQiw+korJQEszrhQz4KjYJ604daf//VlLY4cj5pyqm/vuTjPl4nEtcstOlefyRYnLUi nt+2zS0VBojrFfJjaLn1AO9aEjxraCl1cTxCOc3T1kvNJu0+rdVVU9bfhRqrV0hQpW8wMOEBKKj WocClpp5mGyYv1di1WXjcvsCuJURJyXsXl6zkYMp4HrbRJt7cSLmy+m1ACkqkvV0sDrcleHoGwr 8s0WepS6DhuKJAnankagGzfIl/3QV1wy0hakGp1Dcm/ej7SkRsThL9NQG89xEE9MijLCug5FSO1 f9+e7QU1hNbzb0qGAT2tCNCBhbKGq3JfCn2rxvkrLnLOxH7GLVrfs/WkmO9s= X-Received: by 2002:a05:7300:8606:b0:30c:5807:abc7 with SMTP id 5a478bee46e88-30c84cac264mr3151650eec.17.1782397050192; Thu, 25 Jun 2026 07:17:30 -0700 (PDT) X-Received: by 2002:a05:7300:8606:b0:30c:5807:abc7 with SMTP id 5a478bee46e88-30c84cac264mr3151589eec.17.1782397049584; Thu, 25 Jun 2026 07:17:29 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 27/76] target/hexagon: Add implicit attributes to sysemu macros Date: Thu, 25 Jun 2026 07:15:44 -0700 Message-Id: <20260625141633.449487-28-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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: CAUbIkoXzscjwsJrGOl7fYKgd8uI39lw X-Proofpoint-ORIG-GUID: CAUbIkoXzscjwsJrGOl7fYKgd8uI39lw X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfXwNu9MKR7I9uB Wfd5KAawOEEeScLJmdWzcJ6onwKXBlN8RGl7L6S46C595R/PZzRgt7ZPyYbEN3uxfxwa2cGw3eq Yyc9N/eyO2k22GkJsBBFhyADGDZgmqQ= X-Authority-Analysis: v=2.4 cv=EsLiaycA c=1 sm=1 tr=0 ts=6a3d387b cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=jiUnMIOmsb6gMTORg9AA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX55W4eMh5rj1K 8LzC5m0R+9cuZv9QDx3TVdK3U4wWZAzlEKkYtxLmF+IBWlEjQgP3q+122ZH3I9U9yHOGoKHp+I2 8dh/cm78Z3UfMd9V0p1hgnDF53AfsZb+hZGAyc2H9syh8SnG4y/m3oAOUMC08JOwjaBYK1iIPT2 vaSEFxk/lVwIVRGgVEQTII4N63XxXy6PP9fpRkCuXJP48/qSd1BkXRHDreK9lpNRqFyflWOLLKk uUFdg0YTrUrylyLV+319KtbZP/js2I9iu7LPDwZH/Nm7fkqbeQ5O4W9iy4Ei8f9eiMrUNRbA4K/ /ZyLd+PH9AAuGKt4ci4vPJLIy+Gg1IOxLya4/aFu6wKfxppvRkF5KH38FLYKi0+lavZN322lnbk yQuSkuR5+GaTj74EP70px5M85mvUhcc401kHa2SmiwDCsnL9OkNf3DehIgtMz8+EKM01xcQCjka VRN0HtlWldfmX0hAE0w== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 bulkscore=0 clxscore=1015 priorityscore=1501 impostorscore=0 adultscore=0 spamscore=0 malwarescore=0 lowpriorityscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397103780158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/hex_common.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py index 8c6a0589f88..acaaa3c944a 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -128,8 +128,11 @@ def calculate_attribs(): add_qemu_macro_attrib("fTRAP", "A_IMPLICIT_READS_PC") add_qemu_macro_attrib("fSET_OVERFLOW", "A_IMPLICIT_WRITES_USR") add_qemu_macro_attrib("fSET_LPCFG", "A_IMPLICIT_WRITES_USR") + add_qemu_macro_attrib("fCLEAR_RTE_EX", "A_IMPLICIT_WRITES_SSR") add_qemu_macro_attrib("fLOAD", "A_SCALAR_LOAD") add_qemu_macro_attrib("fSTORE", "A_SCALAR_STORE") + add_qemu_macro_attrib("fSET_K0_LOCK", "A_IMPLICIT_READS_PC") + add_qemu_macro_attrib("fSET_TLB_LOCK", "A_IMPLICIT_READS_PC") add_qemu_macro_attrib('fLSBNEW0', 'A_IMPLICIT_READS_P0') add_qemu_macro_attrib('fLSBNEW0NOT', 'A_IMPLICIT_READS_P0') add_qemu_macro_attrib('fREAD_P0', 'A_IMPLICIT_READS_P0') --=20 2.34.1 From nobody Sun Jul 26 11:50:59 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397082; cv=none; d=zohomail.com; s=zohoarc; b=VUMbzCUTYGbJQTOawmNFVr4vHIBFkqdIq0+l48tsIKQa/2ltr6qx7/P1HizF/QrjruDW8UUIsXhoB8UTFBUpCT6vGJyeKh+X4+mpkq50HlbODhzaKysS/lsZahj+u+X6gprDUP8W36lnzZyzDZyIOtZvbV1t1LMP0ZGljr5J5HU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397082; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=SxgjDN8stbE6SIBeFPtrecas0sgHajmcu/RG683JGPg=; b=d2/lbTt/mcDIP3l4JCZtVRaGD0EsCl5jdipXg1ghE85hxN+r7ZAnGjoAHcTmeuY+uk6Uq7qXpLMGLj1inhO0uizsr3UzV5PxRHU7BGwD8FThvQ9HJitlLzbCAz+jb0llBb7wEarDz3bdnt2sj9DHkiApq6/dzVWlpOqz39dQwpE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782397082563772.6055497977411; Thu, 25 Jun 2026 07:18:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wcktq-0007VP-QZ; Thu, 25 Jun 2026 10:17:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wcktm-0007Iq-Bo for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:46 -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 1wcktk-00005b-DI for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:46 -0400 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9k1NG1724353 for ; Thu, 25 Jun 2026 14:17:33 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0j7dvnss-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:17:32 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30bccca5620so3184803eec.1 for ; Thu, 25 Jun 2026 07:17:32 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.17.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:17: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= SxgjDN8stbE6SIBeFPtrecas0sgHajmcu/RG683JGPg=; b=VGsiGkRzySNJg1ud SmE1xmDw4TkMyFKujsI2ktgqvIeTwkaN1EgFy6NljnSndWCTsuY8HPYn5JzJ8jms pgSRMPp8Gmn1skOpDzWZTpHAK866u+uqxEm1ABWvUCJ8afnap8qxCfftIKYXg1Qd jfvtA6SgxFPFRYYzAyuY+hfvau3X2wwVSBZ45/5rYg9nVEF0nITpi7S8EZtI5tdY DbDgdM4msX8dpwqtlyCe7iJbOL779xJUZtILPKzzk0qgK74XLZwx5bzen3QV0iIl iYgHBom9KcCIFvsO2hurxke9/i4fOEmzLc/lLuYNBphhbGwkBp1+NUp9uM/yOHga jwZHdQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397052; x=1783001852; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=SxgjDN8stbE6SIBeFPtrecas0sgHajmcu/RG683JGPg=; b=XBLlnQo6zegXLpUk2SS+W8FVMq85Uv7oTg6eoHsGqTim+Sw+FmKErnmfDGvWBThhO3 r/rMdFJbndyivCEmu5L/skJBiIn+hZ0DkfUGMmu6B+yoQxah1YGu2UrvI19UYS4V95Bx 5KY8x+CquEa7aznyxU+uAQlK7aAd5hgknOWoVD+jS7Be+X7bxZYXEhMnUm9H5DsANXyN SUlp28AbFo4b3qP0riUOyvaF5qkFpNvBS3PFC9OazvRmot7aaCYvSR/4cUgSdrbsCV9W R6sK0f/ihbWHXNrB0zRVmWeQPr66AR2K7tH9Vlcwb4eM1blFfe4H+kmngvHJMlzY+Eaj ADoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397052; x=1783001852; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=SxgjDN8stbE6SIBeFPtrecas0sgHajmcu/RG683JGPg=; b=ETIaa3khEMoSr4sBeGjePp1mv9+unqc0MyDanJZwwBUWcPJKw0XPhQ3jZ5Ey3CcdMU 5sJ0HkpD5tbZ0Dghtgsdntk+NdVBZchBfgHcjekRqh0mFVBJQDSmUAXMTu3s2/jMqhO0 urRtVip9o/typKMuxMv2/VJYAmMnup66NH8hY9U+Ov0GUbugRh57UNedTQsf1MokI4qV iwfhfDXYxO0S+q1PCglmD1YH5AXMRtDjBUiUFddrqMJq4pMlsCu5WidPuBsJWbBJahCb so2gHg4OMReNPg3fAoKSZSIuDmuGvwZjqvPNsgf9i3rWfFtfnNTDb4qpGd5+IRI8xlNN H8Ug== X-Gm-Message-State: AOJu0YyItqkhWPJ9sLcRjsQycXRvorsFSH/JjASTLgpxmvlsMKY9ipYm mXMwSsJmIxoFTwrRjryY/RQWqUKGHTmYW9K5bpkkkpYOzVX1udpk496E7q6Zl7gFiBwaos0Z8ci KNNqQu5bKWkjPy/L9g3JiJuEQNJPohD3Ae+mkT9A2VWtVTOgEBh3MhfgZxwdxMNqFKg== X-Gm-Gg: AfdE7cnwOuAC8tsJMsc13e/OohCgiLNXRr18uaHILP++lJTyxi5mmIVrXye2GaTEPxx fjzJ7tJBPCJp5DaAZ1LTUYhlAiRO9Ray7Md+6+I8USY86z0YpU81wvKwVuuzafhMQL9GViUW+/N 5Rrpqj+lHuVwbONGVJyd+Kg/UAkBnP1I+J9KJDGjXXe8oR7c8vZ0UR9VautBviVEG1gy9Pb2VC5 Vysg0/IVCmqE+RQXbJzQnfXm1t/W4N+FWm8I9ppIMbrwqpHcVJLG2a+AvaKU49UuWjSywRLZD/k ePwMEBip+yXnEYKLxqlcmRKCEdE4sx/yv79Ck/yW6k6ob3W36iUV9kC0DbAz6iggMDzd4Eo2WHC skt8r+Zgf8WHMypu6ON9leXjZv4iJBuLarCvLRblZ5hXLTRWwcUuSMu/ZPWU= X-Received: by 2002:a05:7300:8c2c:b0:30c:2af0:1cc with SMTP id 5a478bee46e88-30c84fdf0c5mr3456056eec.34.1782397051743; Thu, 25 Jun 2026 07:17:31 -0700 (PDT) X-Received: by 2002:a05:7300:8c2c:b0:30c:2af0:1cc with SMTP id 5a478bee46e88-30c84fdf0c5mr3456027eec.34.1782397051125; Thu, 25 Jun 2026 07:17:31 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 28/76] target/hexagon: Add TCG overrides for int handler insts Date: Thu, 25 Jun 2026 07:15:45 -0700 Message-Id: <20260625141633.449487-29-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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: xjVwfcRbjNY9rbE60yqyRC0eSXFlQI2S X-Authority-Analysis: v=2.4 cv=NvHhtcdJ c=1 sm=1 tr=0 ts=6a3d387c cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=ncxFUDX8U6Z2rYVbhVQA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX5pbyO2UgCb6T VpMNfmU6GqTfTQWmP54c6s7auDx35w3L2R423Hd376azPz3hYHfXkzr3E30jIIdh7nHZy+86ISl oEg6uHGrur2z7j4063G0Nc7L0u98/jY= X-Proofpoint-ORIG-GUID: xjVwfcRbjNY9rbE60yqyRC0eSXFlQI2S X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX82ZmQ5Ns9kH7 qdS0zWy1Z/mXuKvNNIHjFUbgNt916XUhXvTH1xzK6PdGz8gln547o+/aMvG1mCbh3P3Ya0eurv9 0buHbgBe7QO3obFx0vAL2rNKZQyAut/LjXycnzUfUkjbOnBrOxBzpexPpY1O1V8Ja96juBgWI6s L0+1tpa0l8SqJb9xf5ptHbvow7FYhhWaW4TTDUJHblYIqiNECnaMiZLaxDlIB0jrEjFYGtfC78l E/p0aY9mNPOlFQBqdnob1VTnj4U82wPEHKdFoOciKQsxS1O3KJBn4HIF4nut1uYxomrTCfGsxYX PiloofLaoEJT3JnCaNegUcaalcumieXOKoEv8un67nfoYMS55XRgwlkesEh6nOfpgnE1fbFYrbV Uv1cn0bJqASkyfnTotekg0QEgjtC6sbckQjqf8UXgm7qsDObO+u4xgJLkMFogevdSR/6qMSiy+j aCNI4Q4YmZi7JLvvOiQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 suspectscore=0 adultscore=0 impostorscore=0 phishscore=0 spamscore=0 bulkscore=0 lowpriorityscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397083556158500 From: Brian Cain Define TCG overrides for {c,}swi {c,s}iad, iassign{r,w}, {s,g}etimask instructions. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/gen_tcg_sys.h | 25 ++++++++++++++++++++++ target/hexagon/helper.h | 8 ++++++++ target/hexagon/op_helper.c | 40 ++++++++++++++++++++++++++++++++++++ 3 files changed, 73 insertions(+) diff --git a/target/hexagon/gen_tcg_sys.h b/target/hexagon/gen_tcg_sys.h index f78c9635c3f..4cbbdd1f70b 100644 --- a/target/hexagon/gen_tcg_sys.h +++ b/target/hexagon/gen_tcg_sys.h @@ -7,6 +7,31 @@ #ifndef HEXAGON_GEN_TCG_SYS_H #define HEXAGON_GEN_TCG_SYS_H =20 +/* System mode instructions */ +#define fGEN_TCG_Y2_swi(SHORTCODE) \ + gen_helper_swi(tcg_env, RsV) + +#define fGEN_TCG_Y2_cswi(SHORTCODE) \ + gen_helper_cswi(tcg_env, RsV) + +#define fGEN_TCG_Y2_ciad(SHORTCODE) \ + gen_helper_ciad(tcg_env, RsV) + +#define fGEN_TCG_Y4_siad(SHORTCODE) \ + gen_helper_siad(tcg_env, RsV) + +#define fGEN_TCG_Y2_iassignw(SHORTCODE) \ + gen_helper_iassignw(tcg_env, RsV) + +#define fGEN_TCG_Y2_iassignr(SHORTCODE) \ + gen_helper_iassignr(RdV, tcg_env, RsV) + +#define fGEN_TCG_Y2_getimask(SHORTCODE) \ + gen_helper_getimask(RdV, tcg_env, RsV) + +#define fGEN_TCG_Y2_setimask(SHORTCODE) \ + gen_helper_setimask(tcg_env, PtV, RsV) + #define fGEN_TCG_Y2_setprio(SHORTCODE) \ gen_helper_setprio(tcg_env, PtV, RsV) =20 diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index 5405342f798..955287133e4 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -109,6 +109,14 @@ DEF_HELPER_2(probe_hvx_stores, void, env, int) DEF_HELPER_2(probe_pkt_scalar_hvx_stores, void, env, int) =20 #if !defined(CONFIG_USER_ONLY) +DEF_HELPER_2(swi, void, env, i32) +DEF_HELPER_2(cswi, void, env, i32) +DEF_HELPER_2(ciad, void, env, i32) +DEF_HELPER_2(siad, void, env, i32) +DEF_HELPER_2(iassignw, void, env, i32) +DEF_HELPER_2(iassignr, i32, env, i32) +DEF_HELPER_2(getimask, i32, env, i32) +DEF_HELPER_3(setimask, void, env, i32, i32) DEF_HELPER_2(sreg_read, i32, env, i32) DEF_HELPER_2(sreg_read_pair, i64, env, i32) DEF_HELPER_2(greg_read, i32, env, i32) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 3236ce0c8f0..c90b7572419 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1390,6 +1390,46 @@ void HELPER(vwhist128qm)(CPUHexagonState *env, int32= _t uiV) } =20 #ifndef CONFIG_USER_ONLY +void HELPER(ciad)(CPUHexagonState *env, uint32_t mask) +{ + g_assert_not_reached(); +} + +void HELPER(siad)(CPUHexagonState *env, uint32_t mask) +{ + g_assert_not_reached(); +} + +void HELPER(swi)(CPUHexagonState *env, uint32_t mask) +{ + g_assert_not_reached(); +} + +void HELPER(cswi)(CPUHexagonState *env, uint32_t mask) +{ + g_assert_not_reached(); +} + +void HELPER(iassignw)(CPUHexagonState *env, uint32_t src) +{ + g_assert_not_reached(); +} + +uint32_t HELPER(iassignr)(CPUHexagonState *env, uint32_t src) +{ + g_assert_not_reached(); +} + +uint32_t HELPER(getimask)(CPUHexagonState *env, uint32_t tid) +{ + g_assert_not_reached(); +} + +void HELPER(setimask)(CPUHexagonState *env, uint32_t tid, uint32_t imask) +{ + g_assert_not_reached(); +} + void HELPER(sreg_write_masked)(CPUHexagonState *env, uint32_t reg, uint32_= t val) { g_assert_not_reached(); --=20 2.34.1 From nobody Sun Jul 26 11:50:59 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397084; cv=none; d=zohomail.com; s=zohoarc; b=dAV4/4L/QfsdG7ON16Yipdka0Inm/wE93bcLPnluM8u0K/IAeMsUfd9VwqWHUw0u7ZNipNdL/MY30/faDP5lzVYNs4fcHRLbnHBeJ/0xJqXKgUsXPaktwXNutuVbJatURxPinnrsmkOql9+GowEOfUBtynCMVwyZDIWrVLMxsdw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397084; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=N0iAGziQ+4iP1vKIbJyLWLa6evXdgIMUYRbL+wxICtw=; b=GzBrvyDmXRLiMatjp4hDn+8Bue+wNRgYYq7jtsE7YEmkJfVCg+iY/8BQxnUBF1mU9e9pm8H7UUbF4Z8wnjh5WoTsvLzVFV1LN+RXrijdQ1DUfur6MtRglzYkRMnSWevkvUBUTH+AowkpjdRjgxkm5QGbdJHBPTCnUZOA8kF4/ls= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178239708470787.99927912200587; Thu, 25 Jun 2026 07:18:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wcktr-0007gZ-TA; Thu, 25 Jun 2026 10:17:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wckto-0007L9-44 for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:48 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wcktl-00005p-QC for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:47 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9kBHP2011058 for ; Thu, 25 Jun 2026 14:17:35 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0uhmjjxu-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:17:34 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c0a27ad86so6502551eec.0 for ; Thu, 25 Jun 2026 07:17:34 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.17.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:17: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= N0iAGziQ+4iP1vKIbJyLWLa6evXdgIMUYRbL+wxICtw=; b=OZcRbVuA7nfnQ9wv VkjQbgw0iMbSJGFd++uxiAcEw1lE5MJi8uBwcoQjOKAZlyPJMGKClsb6nGI0NcdQ 24kZhGTCRiDLMXkGFwsuvwS3YYSDywgmr61Zh2vYLzGnk7EYPbXzol0U3tiSiB7E /iRo48vm7iJzjo+ypISp/qXnbsfuoHmuWo3C+l8wG5G1WwRqtzGDTTWnhfgGjeW/ 6PKSL0WTpTKcObR7gAcopyV3taq5oiGWIFADiitPMJvrJW6YHfMkuSTceK7xSfMY XG61RjyAGeC4w1W8Vc3FwuFeaxtjLmWt/16H1/RLxdFYFNH9GwQHxGVf4RwJgRvO Yb4oVg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397054; x=1783001854; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=N0iAGziQ+4iP1vKIbJyLWLa6evXdgIMUYRbL+wxICtw=; b=MGc7w0pGH3ctHDSUImy5cXYAyKnwgRC19SarqAeqMJhlmmNZWM+Mv83VWpgFQtLSCI +IuBA5iTDlfNvP86jG4kvUq+UoWciZ/zrNU2i6U2L4SfC3yodiP27go1WJEA2QCpGGSk /hSsSCooEFpVsMUkF0Pbu5ixiA/8gbDk5UeAu9mfZagJn0j5tMbRTw5lc+6rXsVPvXez VjX0henNqQ118/pf/fAz/Ysg/1KUXQg4eJ47ylOFubn0eQgZPwEVRLkGmMvmwjUFdO8g 3w/4ArcgyyQoE2Q3PNPK0qjKe5tDX5tG7Sr3QemdivBoOvml6V1sDMLs8CO3An8Qh0Kc nZ5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397054; x=1783001854; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=N0iAGziQ+4iP1vKIbJyLWLa6evXdgIMUYRbL+wxICtw=; b=d5FtE9i0okrmOGWnMzdb6xbqo1bYUu+ZP9/goWxGoUwP2s4BDKGrUzEzL8nNEKBxvp QcOB+KhYC6YaMwNvXnoueEnbcR27jJBKifVId40/Bqrj66q+vO8EG9cjrgRtlAGXqxak 1BYlY837RdbsL8CjyhiloT2CEY+yT3iUoZRhj0nbSJLBe3t8rQwhotywKVCGBbMQKc7G KOjJuBy/401OEVshRrTu/z0khsW5Aq6ne4if9pU2Ayo/B1bIXdscRVBqj9L9cp1jlRrI oxyCo/ne4o2/N1pX+WMok969AQtflMzb7qgj2cZXJvHTgYoRPllHrprHQfw9OpBNhmbC FKgw== X-Gm-Message-State: AOJu0YxA8NoiTz0GY2W5I+KIerCksPoZIkIxwu1Xqf1dHyLUOdkXpE7p Y+O9ChjpLOtoCv/wBXpMxbEDgTLrKg5kfwegPV0Gf+8H89SAt22HGGr12w33lG+wYcKF93aqXCk zUvGaCCLZ+66LRFNXHNSlK9KR2fu8J0kdbRRnZC8kQk4q4DY70RPKhXyEpiItjizqRQ== X-Gm-Gg: AfdE7ckA+PhGp3yV/jhHIws0eOpfWIyGd/f4YHKqXY8J6rxi1gEdThofVjRXESY3J4R mcgm9znr5raY0NBJDhugRsPTxx43XcN2DDXZW2BJ+3eI2yAblM+cRhFoiHBKQHOVXmgIdrTizql JSStMhJhWWwGdTQmkjMRuVtRAPHVUDJyBMLX4Zr6XDHA4AP/oRwYqoGr/5oIk7jP6WPXkz65FC6 grYgSXO8UtOQXLUZPDRXW7nlMCKaBuozS+H1mX1GFb/hG8v3/S9K3U4aPBK2obJ1LRctcit1ACi zTaVjmGuby7JWPrfotMx9HLrv3EhsBJWcvzNNNdjHhdPGKi0nTqWTn7xxQWDpfOmg5++sMjPxfM Cp4K7j2uYnBdhBjXgG29QefzZFosKD02veXv/yPMuAGzd7pk/cuM6JN5WKSQ= X-Received: by 2002:a05:7300:e6c4:b0:30c:6d2c:2aa7 with SMTP id 5a478bee46e88-30c84fa683fmr3149191eec.20.1782397053623; Thu, 25 Jun 2026 07:17:33 -0700 (PDT) X-Received: by 2002:a05:7300:e6c4:b0:30c:6d2c:2aa7 with SMTP id 5a478bee46e88-30c84fa683fmr3149137eec.20.1782397053027; Thu, 25 Jun 2026 07:17:33 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 29/76] target/hexagon: Add TCG overrides for thread ctl Date: Thu, 25 Jun 2026 07:15:46 -0700 Message-Id: <20260625141633.449487-30-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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=cqerVV4i c=1 sm=1 tr=0 ts=6a3d387e cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=t9Y8JitlK4h6-XB8aEcA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfXwz2b5V9XOBEA UENQmkrSc+VlkhwLu81uzc5z1m1UP93KSP3vM0K4Pw+rCpdWNgw1cNa0kSj4UEKkUcQ8QJL7qMt 2Xo4ZxmlY17Rbmc5Q329zY5kSvQkNGPhWyZKTNxihuVO9jVE2LngqPcJ2kIz+JjXQdc/IL71vEs aEjVfBrh2qxXq/56fAAZ17zkPFvjmYq12+MVjIld0v/dLi0uvXMk9I+SoixqqSfoG8PCV5Iirlf xJWiJaAgyFGeT9BR19BCkQOMhaelF3fVQUzeyX3ID/m8UEYY/iLl66Bt5Q3uErVG1c24ehdTuy2 gLFFwFzYY3Yb8KYa+cw9WdORkZLj88QYmekk91kHCTN3xCc+EWPZB1aUSxJONA8O5btB2/uKDXq e9hdrNoDuds8vxoJDeoAYHcjMOqKWlqqDGrhWCsZzIMzfuTiuUs1p7xR3OoHNZT7umFfzIu8J2k F0Gqjde9iN6GPYhBIxw== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX61rsqav5HC1g 8pgCU0doH+jWzFHuvlTlVY5ZBIUVC9MsdDSUkgvGT4zPMdfwhxEaWWA3bgIF0eNS+GGHL0EADCp AZ++PKiLI7CjbBxmxagdsbKNxNdItns= X-Proofpoint-GUID: pwBXpoNueg9EEtYoWxC8_BEtW3mXo6Ki X-Proofpoint-ORIG-GUID: pwBXpoNueg9EEtYoWxC8_BEtW3mXo6Ki X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 clxscore=1015 bulkscore=0 phishscore=0 priorityscore=1501 malwarescore=0 suspectscore=0 impostorscore=0 spamscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397085803158501 From: Brian Cain Define TCG overrides for start, stop, wait, resume instructions. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/gen_tcg_sys.h | 18 ++++++++++++++++++ target/hexagon/helper.h | 4 ++++ target/hexagon/op_helper.c | 20 ++++++++++++++++++++ 3 files changed, 42 insertions(+) diff --git a/target/hexagon/gen_tcg_sys.h b/target/hexagon/gen_tcg_sys.h index 4cbbdd1f70b..8650f64a6d4 100644 --- a/target/hexagon/gen_tcg_sys.h +++ b/target/hexagon/gen_tcg_sys.h @@ -77,4 +77,22 @@ } \ } while (0) =20 +#define fGEN_TCG_Y2_wait(SHORTCODE) \ + do { \ + RsV =3D RsV; \ + gen_helper_wait(tcg_env, tcg_constant_tl(ctx->pkt->pc)); \ + } while (0) + +#define fGEN_TCG_Y2_resume(SHORTCODE) \ + gen_helper_resume(tcg_env, RsV) + +#define fGEN_TCG_Y2_start(SHORTCODE) \ + gen_helper_start(tcg_env, RsV) + +#define fGEN_TCG_Y2_stop(SHORTCODE) \ + do { \ + RsV =3D RsV; \ + gen_helper_stop(tcg_env); \ + } while (0) + #endif diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index 955287133e4..682f0c6c26e 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -123,4 +123,8 @@ DEF_HELPER_2(greg_read, i32, env, i32) DEF_HELPER_2(greg_read_pair, i64, env, i32) DEF_HELPER_3(sreg_write_masked, void, env, i32, i32) DEF_HELPER_3(setprio, void, env, i32, i32) +DEF_HELPER_2(start, void, env, i32) +DEF_HELPER_1(stop, void, env) +DEF_HELPER_2(wait, void, env, i32) +DEF_HELPER_2(resume, void, env, i32) #endif diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index c90b7572419..c620a5b8636 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1420,6 +1420,26 @@ uint32_t HELPER(iassignr)(CPUHexagonState *env, uint= 32_t src) g_assert_not_reached(); } =20 +void HELPER(start)(CPUHexagonState *env, uint32_t imask) +{ + g_assert_not_reached(); +} + +void HELPER(stop)(CPUHexagonState *env) +{ + g_assert_not_reached(); +} + +void HELPER(wait)(CPUHexagonState *env, target_ulong PC) +{ + g_assert_not_reached(); +} + +void HELPER(resume)(CPUHexagonState *env, uint32_t mask) +{ + g_assert_not_reached(); +} + uint32_t HELPER(getimask)(CPUHexagonState *env, uint32_t tid) { g_assert_not_reached(); --=20 2.34.1 From nobody Sun Jul 26 11:50:59 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397169; cv=none; d=zohomail.com; s=zohoarc; b=Vq5Ax2xPWgFouMejkw8SK1A2suLQvBWhVSuY3arPJKxU5flVNDFonn5kfIgYzJK/WtXBYos6FOhFkrZkQdmR1Nl/CV8WKwL35/SVr52bMStsu+SYzzn2A4kGivWkTyUVtldx9e1dVeTTn4iFPcVWgyRvTy29JxCjqWcML/ePZws= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397169; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=2jO0e8rIhKLjhW5IYHunqKRgXza1ukawimSTttXDmgI=; b=NoirkmJnhNa8mB3Kj8XSHn35IbRVunLukcHoFK6ulx5FR9Vu2An4WmdYVzyTo+Syb3savLTgQTQoYiaSF1JL1sQeYKJiQrLp28P4yII563x+aVu4FHf35r0Op9s6SUQBywTVbAEea4VNl482Hxe0rFBxT+ZJxtnBEoyOrdcQI0E= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782397169330599.9981159974028; Thu, 25 Jun 2026 07:19:29 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wcktt-0007vq-HZ; Thu, 25 Jun 2026 10:17:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wckts-0007ir-0J for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:52 -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 1wcktq-00006V-Ac for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:51 -0400 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9jtKG1723007 for ; Thu, 25 Jun 2026 14:17:39 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0j7dvnt6-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:17:39 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c84dc3574so998649eec.0 for ; Thu, 25 Jun 2026 07:17:38 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.17.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:17: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= 2jO0e8rIhKLjhW5IYHunqKRgXza1ukawimSTttXDmgI=; b=nXahX0y+zRd3N+O/ 9GT8fc8/l4KkCnjXHkvt1CEp5oKn6ZOBDtEHIq0WfKwAlZhf9p01ufA0s/NO6sa4 MmhJK7XYblmqR0Aby4lqxMIhPievnGP8wxAgIB0pLC0kdGIFoCB4BTaZuU6pY6ys 55xT9odh6t9XIclr9LQyq05VEIxfGm7Nb7teVLogBoZIEs9JnFwspy8bFmOF6Nk8 HankzjKrwMbyavFtbNYBSEyNg2AVaqUlRsoxknDFYodrJyPWWcpZP+9Xvves9Xzd AzAGp8TZVjO7qS5WalNFN+FqiDbh/CLZ2MjPiHKBI7ipmU8+5xJeCxgi1HW7Kduw dL7JBA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397058; x=1783001858; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=2jO0e8rIhKLjhW5IYHunqKRgXza1ukawimSTttXDmgI=; b=AaNzLowhUuL0YD4VhY0p+BSYLTM6IYUDPErj4LawMC0gsIZYdlb2s0tCvya5uX30LK HwmIkQYxIkY2ipZBtfQk0h9Wt97wKtPUyroXHvrZRTscjnA9JibLGzCyyV/b8uw6UwVL krcsAeqJPWyU/bSu9AoaZ27GlBg/bfWcnQJ8Kbj9llDtItTgM37ddx4H3YvJK6ctj1OU MBVySMb+Eph34Rchof+pLCuhRNljt6KajVzvLjr5M1FeTMNFHXxgGwgcTLCO1fXuHvPi QvMov0lkB603Ze3T0rNPZt5aFtTXq69+xmergunu52y8+h1Hu/2KUUNMdrQH/MYLa5Xh FE5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397058; x=1783001858; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=2jO0e8rIhKLjhW5IYHunqKRgXza1ukawimSTttXDmgI=; b=NMGxKQVboryEKz+UD102n3S1YaXx4ocYzF4kVBnYtWnPk1g9y/t91g0Autucx3tELl cG+B2Qnx9zE/LKTh8mYBBezaHf+b8sSnBed6ahegIt+YmoTZQRRHcha0mAUgYKAU73Eo 5cBrGnQJga+zISqK0jrEQExIATAA+uYvnicECEVYoT3kb4KgvxGOZHS+a3XZdz/d7NTO Rj5eKSBrytLuNo9hr3NKJRR44SdCv9gKy32jnJodPbPndOELnAyOMzBTdRnkiu+UbbzJ JOSgPu8ddJ3DnQs3Atece6J8XQVGxexEs7cbe4X+gpLeoC7/uy3akFYY3po8cR9JrQT3 RAjA== X-Gm-Message-State: AOJu0Yy5Q16zGaFdmbzFjYAGkHC8QjZxRn+48JO7GMidD3E6dZJ1EQGb Qx6RS7O7TZ5lplNwqBixonzhihELByoUHx/h2CvjOPV9yPjlIh8bdBnoZljZK8ECK2TJVBit+1S p+vQhqypG7ofUT7NPf+xew/o2hfEX15ZdQB0jvkzfnHOeXUOz1tMecYYZAlHIHI1HQg== X-Gm-Gg: AfdE7clwzJsVhU3Bf+Bzo6CuLT1pBCzm4X8UyME/6aY2Wh7Nf79EEeMtcX3lIFGD1RZ /YOkiDo6kwvsvpD3qJG9l2bIfDWdIMdHztUcu93iN3XboXUPDOaBR+p03dlv4NIwwz9TVwprl39 qnH+CysuxCIWGqBTOjMopjoHJCjyPfjeGY77PQmlEQwcn0nBmmfYn4mgWfM4fFVSB/6Nl+XDa9T YJIobpp2NBMD1qFGQb6T8ODHZGqWagaUyAVc8MlykIx/WoVO/iGAndhA0Fhm9Sk87RLxAlRlI49 qMnOZldjYqrrazvQfpDNQxEIm+bpQ2AkljIOcaCDpyT7g/wpqZsD8sNhpfdakF47zWlkVnxj4vz 4icil7EXt1WAnoixGWqghwV6M1/WDHtELtnafX5EAxb5bx/Z2kVg68lHxWQo= X-Received: by 2002:a05:7300:2320:b0:304:54d6:20f3 with SMTP id 5a478bee46e88-30c84d12a65mr2938153eec.4.1782397058002; Thu, 25 Jun 2026 07:17:38 -0700 (PDT) X-Received: by 2002:a05:7300:2320:b0:304:54d6:20f3 with SMTP id 5a478bee46e88-30c84d12a65mr2938101eec.4.1782397057174; Thu, 25 Jun 2026 07:17:37 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 30/76] target/hexagon: Add TCG overrides for rte, nmi Date: Thu, 25 Jun 2026 07:15:47 -0700 Message-Id: <20260625141633.449487-31-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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: _3H-PrJZ9rwEIR0uUbneiAFAscXs94V8 X-Authority-Analysis: v=2.4 cv=NvHhtcdJ c=1 sm=1 tr=0 ts=6a3d3883 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=QG2uPxDT_WX1JUO730YA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX1N+4KKsJg5uj 8kGKYrNrj/x8dFfIIlGKi+zVzVTosBNoF4lZSRb4+CzjUiQk16wWFLZqJQjZMsSN6hRwjO6ouWm 8wRHXUbFV5y6enQ+iWTtV5sempdbqQs= X-Proofpoint-ORIG-GUID: _3H-PrJZ9rwEIR0uUbneiAFAscXs94V8 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX+qVpGM7a+zV5 dUylz/BtkuaWG1HOBQWjDXK7ssWKUeTvYfUwtuKl9AtkhM4feODai/BlPE/pBzj18+7M/+AzKr+ zbSPfs9ZSRpTmlj5YMfqLr8yprVXGpLNFBciq5alD/9y3BgeVOhtkQub/WB9ZcB92+INv/PRbxL HWgSPJ0ood2a1C/UiwoNdMFZUo/lb8/ANDJyBLvA6LuPypmq0EfamRZEC/ZnERZFvy9C6WCT8Zw CfUdLJCjd0Ao48wiPiWMQqod4zVSDCrzf6483b5mKiYthMA6JWBDDVmXNiAEEfiaf4ivr/mueqh m2EoiNui/0lOKhzRqcsKyMzPyJDHcX/qCnCXRBEVDAr5F+W2fJ4q/zWiXZd7eSKaDZu0z4lZTgC KnqPZqvpMeV5+0s8Yibq0JB1EBk+bjp4Rvb1B1b6Ll9ibsncgl9BYVjcSnb6rAF4a0VrjobLY72 PfHEcCWUVA/092o+oIQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 suspectscore=0 adultscore=0 impostorscore=0 phishscore=0 spamscore=0 bulkscore=0 lowpriorityscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397170425158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/gen_tcg_sys.h | 16 ++++++++++++++++ target/hexagon/helper.h | 3 +++ target/hexagon/sys_macros.h | 3 +++ target/hexagon/op_helper.c | 6 ++++++ 4 files changed, 28 insertions(+) diff --git a/target/hexagon/gen_tcg_sys.h b/target/hexagon/gen_tcg_sys.h index 8650f64a6d4..264ea02752d 100644 --- a/target/hexagon/gen_tcg_sys.h +++ b/target/hexagon/gen_tcg_sys.h @@ -95,4 +95,20 @@ gen_helper_stop(tcg_env); \ } while (0) =20 +/* + * rte (return from exception) + * Clear the EX bit in SSR + * Jump to ELR + */ +#define fGEN_TCG_J2_rte(SHORTCODE) \ + do { \ + TCGv_i32 new_ssr =3D tcg_temp_new_i32(); \ + tcg_gen_deposit_tl(new_ssr, hex_t_sreg[HEX_SREG_SSR], \ + tcg_constant_tl(0), \ + reg_field_info[SSR_EX].offset, \ + reg_field_info[SSR_EX].width); \ + gen_log_sreg_write(ctx, HEX_SREG_SSR, new_ssr); \ + gen_jumpr(ctx, hex_t_sreg[HEX_SREG_ELR]); \ + } while (0) + #endif diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index 682f0c6c26e..0ec3a099cb6 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -127,4 +127,7 @@ DEF_HELPER_2(start, void, env, i32) DEF_HELPER_1(stop, void, env) DEF_HELPER_2(wait, void, env, i32) DEF_HELPER_2(resume, void, env, i32) +DEF_HELPER_1(resched, void, env) +DEF_HELPER_3(modify_ssr, void, env, i32, i32) +DEF_HELPER_1(pending_interrupt, void, env) #endif diff --git a/target/hexagon/sys_macros.h b/target/hexagon/sys_macros.h index 4de4d53823a..e8bbeadfdfb 100644 --- a/target/hexagon/sys_macros.h +++ b/target/hexagon/sys_macros.h @@ -236,4 +236,7 @@ =20 #define NUM_TLB_REGS(x) (hexagon_tlb_get_num_entries(env_archcpu(env)->tlb= )) =20 +/* NMI routing not yet implemented; Y4_nmi is a no-op for now */ +#define fDO_NMI(THREAD_MASK) do { } while (0) + #endif diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index c620a5b8636..2cd7f48ea2f 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1480,6 +1480,12 @@ void HELPER(setprio)(CPUHexagonState *env, uint32_t = thread, uint32_t prio) g_assert_not_reached(); } =20 + +void HELPER(pending_interrupt)(CPUHexagonState *env) +{ + BQL_LOCK_GUARD(); + hex_interrupt_update(env); +} #endif =20 =20 --=20 2.34.1 From nobody Sun Jul 26 11:50:59 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397107; cv=none; d=zohomail.com; s=zohoarc; b=l/x7WX1i/D+PNwFgS8gvJ4WHRM+kdiLpcEcO1i1kq2XYYtN7lHRq/t1iUbdPBbyN9AZNwpAKwRX4+Ve+8zVjbiWz8ZWj0tcaxY2NuvE1T3YVliZFJswl9alMYH68TIG0rp1pm7TzrKkiXhSTlKT2XPSRr8VPyFj7pWMAg49yTlg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397107; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ydI56hjj1K3zzOwtbWnVUpF9xkvs46kCuETc/C2W1YE=; b=f9i62XUpwIE7pWa/wNN3mEnh+JGJaYUeNNZwNl1Hobew38uAs68+7WvFzXwBGPF7uiV++XrORejYDTbSG60/sy3BMY75PlPQ9Cqqq2BOmMCPEysvWu82bgXklp74xtWbSHfIvW52afM7/abe+SxWVzDO4FlKOnlwivyIBdujcvk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782397107709351.4686133621483; Thu, 25 Jun 2026 07:18:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wcku0-0008Ph-Mg; Thu, 25 Jun 2026 10:18:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wckty-0008Bn-A9 for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:58 -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 1wcktv-00006y-Rk for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:17:57 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9jvm11754134 for ; Thu, 25 Jun 2026 14:17:45 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0w0q26xg-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:17:44 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c50cd6cbcso2572096eec.1 for ; Thu, 25 Jun 2026 07:17:44 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.17.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:17: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= ydI56hjj1K3zzOwtbWnVUpF9xkvs46kCuETc/C2W1YE=; b=dzPjeVaMwuOtamjv 374mWVnxLDh0rUoXBLkJsEQkd/EnONcojv9dF2f8t8iBPjgT3l3/K7+HB2/Sr5ss EigSdo1YRAixvLg8aqwBhLX2remM+27KceuToHFQ+gntNqreQJh7erJaNlI0BInL aTpvy4D1dgrUgdYyG7XCv/x1MHfKgyqlIAYozo7V9CDAX77SnecvGsRQsivk/0qW ipfjYRTXB+RYueI/T6zeTMHytNV0xT2s2Oomi+uphNkKLZj/Qk9pS1Mo2kV9XiYB pvGBLnd2p716OHix1mFEIVmwAVY91mzanrk6p8z/o8tN5SBNMetGao2XtnEzvlid 4IB+Aw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397064; x=1783001864; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ydI56hjj1K3zzOwtbWnVUpF9xkvs46kCuETc/C2W1YE=; b=dMgPATBD919wl9Ypm53nmbeWKn+up/7p7cnV5rm5ucuyELThdCNu2zOscgutor0K9A m0dHOQZYbjkeg3n/YHD4w+64WWPneymWNBqkyGpwKz/DiYCCGfbC7OAKoa1AyW7q4I9e hmeT0x3uhsbSS+DGvczH2mY1138Z7yFJUxNCBaSNHuCtcKvOJliTztJmVfeh1UhF6R6M 51p3R6f0tQZBtqZBG9VWkcC6WQUbMm4MIrrQl2JS7fgGdt7CumLzLzfY/yA/XfYhxUDI r6IaYKX+rboNYRkaT0y+VrkY9V5NpdnfJDXEODCo5tUMTgjh7TaySojnkD0ITOzlq7pI nQlA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397064; x=1783001864; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ydI56hjj1K3zzOwtbWnVUpF9xkvs46kCuETc/C2W1YE=; b=QcqtCh2n7LSYrrMU8IQRqBtHlk0aZHrWKWapbdGCj3nWDkDEBIMskXLMixlqUPpwXO nOrF5qUirKDj0uCpcdaBs275M5j8kMyTrh205csPNLKcxyvUqNANcz/wVDCKC2fBWBvT G2agnnhdGeWEIH8xwFabE76JZiD6Lmocu69f9Yv1oxEyQ4lqrgc0D5JwGoyEO8GSKcXe 1iNZyxquvMLeLUFsWkSMGN7Dd6lEUjr52oz2urrGpXrfN2Vm0z/MjpxCAmtTPLVhp+9Y klL5fTSFu3WZaENoVqF0+r2vRTH7ptj2A3VkT6Bjs4DNJAHsGaMxFn0PIVWWF+8MbTts 9G5Q== X-Gm-Message-State: AOJu0YwpOp6vJzKfOp1yYWDjSHQaQN4EnHh12l0dRVNowY8inMbgi02V 6vNgjfEKnPH6NO2ZzBlsN2zbUl1cqlDWkTxIQ3G6lQ92pYiimyATpI+yxweoMjlH/xHHDIHzV+j H5qZnRbbcSpFZ3Z2+ubr7AFZClvwF2UKmn6Vu/VYEZkk5Wm453pEjDyNw8rUEHAAIIA== X-Gm-Gg: AfdE7cmUv05AY+w8SD8HOUFC8N+OJSIpzvQJvzlsduVyxlq6HvCc0HN/rVBrkzHx1SI HO/69rYNesegf2te7FiZVtqPFxURTdEaTUu8mUTPThpd/8k7jJvaPE+MHPHpclSVMb6qm2rf+iF ylMvAE2+JwdLmsQsS9zsFJKf9lyzvCm2rmwX2kc+mqMhAxx1ZVHrMhstkG5HtsrPXzh5SbbtySR e0VzDhFLJ54vA3DS+KoWlHOqBONjqpVktr77SwnMgQlsy+C15P6NMr4hPEmmn14aWy6hwstJmWM mir0wm2QhN7Iqdoss6hBb84MC6i14EhwFf6kSOpPVscNplGfGK9k2r738M6+hK4qbxEPzWT9Bdl RZcWJh/lzcCdLYBt6ntgRcXLYy9A8uiZT/DbNa7DYXcrmJIu9IIdSH1TFRUY= X-Received: by 2002:a05:7300:2310:b0:2ef:8b72:1b9 with SMTP id 5a478bee46e88-30c848a9246mr3189054eec.0.1782397063320; Thu, 25 Jun 2026 07:17:43 -0700 (PDT) X-Received: by 2002:a05:7300:2310:b0:2ef:8b72:1b9 with SMTP id 5a478bee46e88-30c848a9246mr3189013eec.0.1782397062717; Thu, 25 Jun 2026 07:17:42 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Sid Manning , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 31/76] target/hexagon: Add sreg_{read,write} helpers Date: Thu, 25 Jun 2026 07:15:48 -0700 Message-Id: <20260625141633.449487-32-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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: a2BUAbs86oiC46IbCE_Qw2AHnv80yvLJ X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfXxm8Mlq7x54v2 XQ54QvVkG9z7zSI0xYGgkak8O3MXzse5/maD3LxsjTg8B67vPqwQGgMVR7FRYCKutouHcYCFEW/ 6hsnHNm95GYJf6lXZAI3jMd1VYRbjTw= X-Proofpoint-GUID: a2BUAbs86oiC46IbCE_Qw2AHnv80yvLJ X-Authority-Analysis: v=2.4 cv=R6Ez39RX c=1 sm=1 tr=0 ts=6a3d3888 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=rqZXtLhFGwB6yMrbUaoA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX3z2LJFtMFuOR HHWSsKypioa20sAnDd8JqVX9D5lbhAcz7XI3TS0r0GZ36fnj7/yfMYPAIyv1z3F05RoBTzjMokp Vfbex7JBLOxTaRDyPgPjkDhq6ebNa+/8b68o9ByuKhswJZt9YVXpfG1G/o/ArYbqat6iTYNqVum J5lswEdXUMh4krO2YsgE91KKOqdk8gF1aF4VeMgfU08UK2GIeQ6t5nIjDKiHS38xRPCEVjMXryH 4wchEOJE4Sa4kJrxBOYCLgrsP+a3SYMeuGPbIaWDQMyQjEZzPmDa/JJWx8XDvJDoMcTtG8LnPz6 MpTI7trEe96EikfLHQoRSriusKChccTix2Uy0aaWTos8kvzWuG2kVjbB8y0aqp3hofpd5I9xBlo YbkdRoUTtpKXEzang5aRyWSqFJbe3g0U5FJkTXcm6Bwi1X7cgdQMBuuhWTyC39rJ35bd+YdQEIM ghkOQTmiJzSqJwrdaTQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 clxscore=1015 malwarescore=0 priorityscore=1501 adultscore=0 suspectscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397109956158500 From: Brian Cain Co-authored-by: Sid Manning Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.c | 1 - target/hexagon/cpu_helper.c | 354 ++++++++++++++++++++++++++++++++++++ target/hexagon/op_helper.c | 33 +++- 3 files changed, 384 insertions(+), 4 deletions(-) create mode 100644 target/hexagon/cpu_helper.c diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 3059196bcac..a08083ea290 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -334,7 +334,6 @@ static void hexagon_cpu_realize(DeviceState *dev, Error= **errp) =20 qemu_init_vcpu(cs); cpu_reset(cs); - mcc->parent_realize(dev, errp); } =20 diff --git a/target/hexagon/cpu_helper.c b/target/hexagon/cpu_helper.c new file mode 100644 index 00000000000..a2b486f4bb5 --- /dev/null +++ b/target/hexagon/cpu_helper.c @@ -0,0 +1,354 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "cpu.h" +#include "cpu_helper.h" +#include "system/cpus.h" +#include "hw/core/boards.h" +#include "hw/hexagon/hexagon.h" +#include "hw/hexagon/hexagon_globalreg.h" +#include "hex_interrupts.h" +#include "hex_mmu.h" +#include "system/runstate.h" +#include "exec/cpu-interrupt.h" +#include "exec/target_page.h" +#include "accel/tcg/cpu-ldst.h" +#include "exec/cputlb.h" +#include "qemu/log.h" +#include "tcg/tcg-op.h" +#include "internal.h" +#include "macros.h" +#include "sys_macros.h" +#include "arch.h" + + +uint32_t hexagon_get_pmu_counter(CPUHexagonState *cur_env, int index) +{ + g_assert_not_reached(); +} + +uint64_t hexagon_get_sys_pcycle_count(CPUHexagonState *env) +{ + g_assert_not_reached(); +} + +uint32_t hexagon_get_sys_pcycle_count_high(CPUHexagonState *env) +{ + g_assert_not_reached(); +} + +uint32_t hexagon_get_sys_pcycle_count_low(CPUHexagonState *env) +{ + g_assert_not_reached(); +} + +void hexagon_set_sys_pcycle_count_high(CPUHexagonState *env, uint32_t val) +{ + g_assert_not_reached(); +} + +void hexagon_set_sys_pcycle_count_low(CPUHexagonState *env, uint32_t val) +{ + g_assert_not_reached(); +} + +void hexagon_set_sys_pcycle_count(CPUHexagonState *env, uint64_t val) +{ + g_assert_not_reached(); +} + +static void hexagon_resume_thread(CPUHexagonState *env) +{ + CPUState *cs =3D env_cpu(env); + clear_wait_mode(env); + /* + * The wait instruction keeps the PC pointing to itself + * so that it has an opportunity to check for interrupts. + * + * When we come out of wait mode, adjust the PC to the + * next executable instruction. + */ + env->gpr[HEX_REG_PC] =3D env->wait_next_pc; + cs =3D env_cpu(env); + ASSERT_DIRECT_TO_GUEST_UNSET(env, cs->exception_index); + cs->halted =3D false; + cs->exception_index =3D HEX_EVENT_NONE; + qemu_cpu_kick(cs); +} + +void hexagon_resume_threads(CPUHexagonState *current_env, uint32_t mask) +{ + CPUState *cs; + CPUHexagonState *env; + + g_assert(bql_locked()); + CPU_FOREACH(cs) { + env =3D cpu_env(cs); + g_assert(env->threadId < THREADS_MAX); + if ((mask & (0x1 << env->threadId))) { + if (get_exe_mode(env) =3D=3D HEX_EXE_MODE_WAIT) { + hexagon_resume_thread(env); + } + } + } +} + +void hexagon_modify_ssr(CPUHexagonState *env, uint32_t new, uint32_t old) +{ + bool old_EX, old_UM, old_GM, old_IE; + bool new_EX, new_UM, new_GM, new_IE; + uint8_t old_asid, new_asid; + + g_assert(bql_locked()); + + old_EX =3D GET_SSR_FIELD(SSR_EX, old); + old_UM =3D GET_SSR_FIELD(SSR_UM, old); + old_GM =3D GET_SSR_FIELD(SSR_GM, old); + old_IE =3D GET_SSR_FIELD(SSR_IE, old); + new_EX =3D GET_SSR_FIELD(SSR_EX, new); + new_UM =3D GET_SSR_FIELD(SSR_UM, new); + new_GM =3D GET_SSR_FIELD(SSR_GM, new); + new_IE =3D GET_SSR_FIELD(SSR_IE, new); + + if ((old_EX !=3D new_EX) || + (old_UM !=3D new_UM) || + (old_GM !=3D new_GM)) { + hex_mmu_mode_change(env); + } + + old_asid =3D GET_SSR_FIELD(SSR_ASID, old); + new_asid =3D GET_SSR_FIELD(SSR_ASID, new); + if (new_asid !=3D old_asid) { + CPUState *cs =3D env_cpu(env); + tlb_flush(cs); + } + + /* See if the interrupts have been enabled or we have exited EX mode */ + if ((new_IE && !old_IE) || + (!new_EX && old_EX)) { + hex_interrupt_update(env); + } +} + +void clear_wait_mode(CPUHexagonState *env) +{ + HexagonCPU *cpu; + uint32_t modectl, thread_wait_mask; + + g_assert(bql_locked()); + + cpu =3D env_archcpu(env); + if (cpu->globalregs) { + modectl =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_MODECTL, + env->threadId); + thread_wait_mask =3D GET_FIELD(MODECTL_W, modectl); + thread_wait_mask &=3D ~(0x1 << env->threadId); + SET_SYSTEM_FIELD(env, HEX_SREG_MODECTL, MODECTL_W, thread_wait_mas= k); + } +} + +void hexagon_ssr_set_cause(CPUHexagonState *env, uint32_t cause) +{ + uint32_t old, new; + + g_assert(bql_locked()); + + old =3D env->t_sreg[HEX_SREG_SSR]; + SET_SYSTEM_FIELD(env, HEX_SREG_SSR, SSR_EX, 1); + SET_SYSTEM_FIELD(env, HEX_SREG_SSR, SSR_CAUSE, cause); + new =3D env->t_sreg[HEX_SREG_SSR]; + + hexagon_modify_ssr(env, new, old); +} + + +int get_exe_mode(CPUHexagonState *env) +{ + HexagonCPU *cpu; + uint32_t modectl, thread_enabled_mask, thread_wait_mask; + uint32_t isdbst, debugmode; + bool E_bit, W_bit, D_bit; + + g_assert(bql_locked()); + + cpu =3D env_archcpu(env); + modectl =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_MODECTL, + env->threadId) : 0; + thread_enabled_mask =3D GET_FIELD(MODECTL_E, modectl); + E_bit =3D thread_enabled_mask & (0x1 << env->threadId); + thread_wait_mask =3D GET_FIELD(MODECTL_W, modectl); + W_bit =3D thread_wait_mask & (0x1 << env->threadId); + isdbst =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_ISDBST, + env->threadId) : 0; + debugmode =3D GET_FIELD(ISDBST_DEBUGMODE, isdbst); + D_bit =3D debugmode & (0x1 << env->threadId); + + if (!D_bit && !W_bit && !E_bit) { + return HEX_EXE_MODE_OFF; + } + if (!D_bit && !W_bit && E_bit) { + return HEX_EXE_MODE_RUN; + } + if (!D_bit && W_bit && E_bit) { + return HEX_EXE_MODE_WAIT; + } + if (D_bit && !W_bit && E_bit) { + return HEX_EXE_MODE_DEBUG; + } + g_assert_not_reached(); +} + +static uint32_t set_enable_mask(CPUHexagonState *env) +{ + HexagonCPU *cpu; + uint32_t modectl, thread_enabled_mask; + + g_assert(bql_locked()); + + cpu =3D env_archcpu(env); + if (!cpu->globalregs) { + return 0; + } + modectl =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_MODECTL, + env->threadId); + thread_enabled_mask =3D GET_FIELD(MODECTL_E, modectl); + thread_enabled_mask |=3D 0x1 << env->threadId; + SET_SYSTEM_FIELD(env, HEX_SREG_MODECTL, MODECTL_E, thread_enabled_mask= ); + return thread_enabled_mask; +} + +static uint32_t clear_enable_mask(CPUHexagonState *env) +{ + HexagonCPU *cpu; + uint32_t modectl, thread_enabled_mask; + + g_assert(bql_locked()); + + cpu =3D env_archcpu(env); + if (!cpu->globalregs) { + return 0; + } + modectl =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_MODECTL, + env->threadId); + thread_enabled_mask =3D GET_FIELD(MODECTL_E, modectl); + thread_enabled_mask &=3D ~(0x1 << env->threadId); + SET_SYSTEM_FIELD(env, HEX_SREG_MODECTL, MODECTL_E, thread_enabled_mask= ); + return thread_enabled_mask; +} +static void do_start_thread(CPUState *cs, run_on_cpu_data tbd) +{ + CPUHexagonState *env; + + BQL_LOCK_GUARD(); + + env =3D cpu_env(cs); + + hexagon_cpu_soft_reset(env); + + set_enable_mask(env); + + cs->halted =3D 0; + cs->exception_index =3D HEX_EVENT_NONE; + cpu_resume(cs); +} + +void hexagon_start_threads(CPUHexagonState *current_env, uint32_t mask) +{ + CPUState *cs; + CPU_FOREACH(cs) { + CPUHexagonState *env =3D cpu_env(cs); + if (!(mask & (0x1 << env->threadId))) { + continue; + } + + if (current_env->threadId !=3D env->threadId) { + async_safe_run_on_cpu(cs, do_start_thread, RUN_ON_CPU_NULL); + } + } +} + +/* + * When we have all threads stopped, the return + * value to the shell is register 2 from thread 0. + */ +static uint32_t get_thread0_r2(void) +{ + CPUState *cs; + CPU_FOREACH(cs) { + CPUHexagonState *thread =3D cpu_env(cs); + if (thread->threadId =3D=3D 0) { + return thread->gpr[2]; + } + } + g_assert_not_reached(); +} + +void hexagon_stop_thread(CPUHexagonState *env) +{ + uint32_t thread_enabled_mask; + CPUState *cs; + + BQL_LOCK_GUARD(); + + thread_enabled_mask =3D clear_enable_mask(env); + cs =3D env_cpu(env); + cpu_interrupt(cs, CPU_INTERRUPT_HALT); + if (!thread_enabled_mask) { + /* All threads are stopped, request shutdown */ + qemu_system_shutdown_request_with_code( + SHUTDOWN_CAUSE_GUEST_SHUTDOWN, get_thread0_r2()); + } +} + +static int sys_in_monitor_mode_ssr(uint32_t ssr) +{ + if ((GET_SSR_FIELD(SSR_EX, ssr) !=3D 0) || + ((GET_SSR_FIELD(SSR_EX, ssr) =3D=3D 0) && + (GET_SSR_FIELD(SSR_UM, ssr) =3D=3D 0))) { + return 1; + } + return 0; +} + +static int sys_in_guest_mode_ssr(uint32_t ssr) +{ + if ((GET_SSR_FIELD(SSR_EX, ssr) =3D=3D 0) && + (GET_SSR_FIELD(SSR_UM, ssr) !=3D 0) && + (GET_SSR_FIELD(SSR_GM, ssr) !=3D 0)) { + return 1; + } + return 0; +} + +static int sys_in_user_mode_ssr(uint32_t ssr) +{ + if ((GET_SSR_FIELD(SSR_EX, ssr) =3D=3D 0) && + (GET_SSR_FIELD(SSR_UM, ssr) !=3D 0) && + (GET_SSR_FIELD(SSR_GM, ssr) =3D=3D 0)) { + return 1; + } + return 0; +} + +int get_cpu_mode(CPUHexagonState *env) +{ + uint32_t ssr =3D env->t_sreg[HEX_SREG_SSR]; + + if (sys_in_monitor_mode_ssr(ssr)) { + return HEX_CPU_MODE_MONITOR; + } else if (sys_in_guest_mode_ssr(ssr)) { + return HEX_CPU_MODE_GUEST; + } else if (sys_in_user_mode_ssr(ssr)) { + return HEX_CPU_MODE_USER; + } + return HEX_CPU_MODE_MONITOR; +} diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 2cd7f48ea2f..4dc2b8e63a7 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -20,6 +20,7 @@ #include "accel/tcg/cpu-ldst.h" #include "accel/tcg/cpu-loop.h" #include "accel/tcg/probe.h" +#include "qemu/main-loop.h" #include "cpu.h" #include "exec/helper-proto.h" #include "fpu/softfloat.h" @@ -1452,17 +1453,43 @@ void HELPER(setimask)(CPUHexagonState *env, uint32_= t tid, uint32_t imask) =20 void HELPER(sreg_write_masked)(CPUHexagonState *env, uint32_t reg, uint32_= t val) { - g_assert_not_reached(); + BQL_LOCK_GUARD(); + if (reg < HEX_SREG_GLB_START) { + env->t_sreg[reg] =3D val; + } else { + HexagonCPU *cpu =3D env_archcpu(env); + if (cpu->globalregs) { + hexagon_globalreg_write_masked(cpu->globalregs, reg, val); + } + } +} + +static inline QEMU_ALWAYS_INLINE uint32_t sreg_read(CPUHexagonState *env, + uint32_t reg) +{ + HexagonCPU *cpu; + + g_assert(bql_locked()); + if (reg < HEX_SREG_GLB_START) { + return env->t_sreg[reg]; + } + cpu =3D env_archcpu(env); + return cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, reg, env->threadId) : 0; } =20 uint32_t HELPER(sreg_read)(CPUHexagonState *env, uint32_t reg) { - g_assert_not_reached(); + BQL_LOCK_GUARD(); + return sreg_read(env, reg); } =20 uint64_t HELPER(sreg_read_pair)(CPUHexagonState *env, uint32_t reg) { - g_assert_not_reached(); + BQL_LOCK_GUARD(); + + return deposit64((uint64_t) sreg_read(env, reg), 32, 32, + sreg_read(env, reg + 1)); } =20 uint32_t HELPER(greg_read)(CPUHexagonState *env, uint32_t reg) --=20 2.34.1 From nobody Sun Jul 26 11:50:59 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397236; cv=none; d=zohomail.com; s=zohoarc; b=ODeMpcCHBXS8cUEpu2se60XqEPsvgyEuGYMZpIK7jN1Jd7affF9+97gmo6Lw6EenM1quazN9XrGEPUvPFMDdXdxxv7aObhqKMqHZiUohVdd5kLYU3oLZ709r20/vn1gFScHDaHDi7yad5P0UHGNjRZyYsK6mPPpnsj7+cKWZ13k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397236; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=xnSW3oZuwood08ngSSOR1Dm8XpJbybm5vIaVrHhZrro=; b=AX0eC76fGiqK4Gio8KoIGCwsu24wtnIP+VqErH7WUAUVxFCNRvxg+caHLChITy9xsp2s3DKU6A2v0Quso3UtnnRudNLxiGYByw9qKjhBslR2OoJwUvmrrYhn4snhzJFwKxqx8ez/cv5q6CP0a7H5v3ag4aAjlId1F7c6QIWDKw8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782397235964614.1067488805293; Thu, 25 Jun 2026 07:20:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wcku2-0000AV-6p; Thu, 25 Jun 2026 10:18:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wcku0-0008Qi-N1 for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:18:00 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wcktz-00007M-2R for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:18:00 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9juto1753960 for ; Thu, 25 Jun 2026 14:17:48 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0w0q26xs-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:17:48 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30c5b9f6a51so648714eec.1 for ; Thu, 25 Jun 2026 07:17:47 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.17.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:17:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= xnSW3oZuwood08ngSSOR1Dm8XpJbybm5vIaVrHhZrro=; b=Uep86Jp3ps0fWohM ZazpZf3+IWErty5hutkamkEB2e02MS86w09E4IEp/D6LLPr6IinOsL0/cUztuKKV iaahpWDfHsWCR9luMsQ7JeFagnbfGvZN736V1wUliRh8qSFtZgfIju/sFpv+g9Po 49yEXA12Ztvoi+UJBZySKpd/Z7iyGzsspWUuYUcKH0XKztjeVbauZmsQky8gzoG8 z28GB68Q3iHQZJJxqbjyuMxSH0HikClv6+bGVupAmBurV2AOwxJ7ZbR+sOnHSKdQ kEF4YToc7A4XpDkzkoasQuDGWDuG9o2T+s3vhtdxSCsywQnCvmS1Sj8RVHrJTL9v oMChxg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397067; x=1783001867; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=xnSW3oZuwood08ngSSOR1Dm8XpJbybm5vIaVrHhZrro=; b=Ps27DDtp9bEWpeXjViUOZklYHEpODePPY+gRPlaLQzMzA7SvyKg28i1AsdpDjRLlIu Ywi9LLjYGwa1UpA5BzkxG7HlbTF6wElum9mbEVVN6u54XCa2+GxoevcXgk/jjHwk1rpa jGnMeoZCj5BD0mDHZOq1PuJVLqEH5P+MPv+U7IE8XXqFqTmBg3nYEbhUrf07u1lsHCDV yGzJzAf0Bk0perR+r8gjM7ymQCJN984SaG9XnVIr2x+ltEipPPhOCINx+qAWVwpRAsge IxQqVY/bJXCN2gdsbjTlvi35QsV+9CjIMc5a4hbu17uHx0cApW+aRBCFHiAXipfKrGqA bbeQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397067; x=1783001867; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=xnSW3oZuwood08ngSSOR1Dm8XpJbybm5vIaVrHhZrro=; b=HRLT7+3qpkXznLCiF0zMCh9VlsZgECqyeCgyD68FzS0nt0iHSYP+ZdvyhWXG933Nqi QBchDfL+3fU/TsTldXdDL7LST1+yDv5D38Q602SgEV78lq5ruvq89lF7eCMOVVyOOi5O wIp3Q/q2fm/cNYG5NtxFA7uadJBLF2w8774j2nH6hjVuBqXf0SL4rQibXXg0WW11bjZN +Q1gkvI4XZPJoYrIQhBy2ozyDjocc/SSZY2m5tmLrQzOcrxtfKDOT6JEm+2KJT5bhT+A UasfzJOwerCxWO4aXkgdhl/ZHkesdAPK9DecpfwQuhdFJAjsuJtvPKwRh2rX+W/Lzw3V qwNA== X-Gm-Message-State: AOJu0Yw+psWr/0pGU2/OBkS5t8GpDDqaczaHZGrO3HRTtbo1/s7l/8to 3bTiEOMAeB2Cf0I7Hwl88Q3/LkGaDjh3TgsrX6xU6S1eI8iB5hYVrqP7X3IplPs9OQvgpcyLmpv 6ma9mt/7P0REH3S9unDIn5p291ZQHHDHmsbk7xKsVq6h4uVaJYhLojhoItbGzkAlAjw== X-Gm-Gg: AfdE7cki2Nv87lPCOweLVpkhhqUJz33HXD8PGgtK3HQj8xdhFPLCJv2hXsLI2+JKMFY 2OHArhPTMsKI+ifHkqHTVKXQdzt+0SUw9B7GsG6WcL3reU9FaKTv/HQT7udJByVF13kUCjHs6Zi PQIG1diN38Accmpxl1n47u7Idv0VW+f3CorHRJtLxrkqjLSEKSrHUAlXQrnuUrCD2ookxi+8AB7 LY4RNSbvwIfQRW73Xf3hTBCZXTWNnb0sOaaP3wb/MljhUg5eUFBqRDYI2NAA7nvZPvF+j1eJrG0 yXK5eJkBc3QiCRQxxOAKQCbILzc6ogpQzbNo5yOlFpM8y+7zIhURBr7SjmzfHANpIvw2xJjCFKZ t41EvPsXfj8ifKQUovMx8sIbT/3Y1qXfNJlB8fBORWDF/gDh8hFZhzEdJxpI= X-Received: by 2002:a05:7300:372c:b0:30b:c0b4:db42 with SMTP id 5a478bee46e88-30c85a5cd27mr3415352eec.11.1782397067091; Thu, 25 Jun 2026 07:17:47 -0700 (PDT) X-Received: by 2002:a05:7300:372c:b0:30b:c0b4:db42 with SMTP id 5a478bee46e88-30c85a5cd27mr3415323eec.11.1782397066594; Thu, 25 Jun 2026 07:17:46 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 32/76] target/hexagon: Add representation to count cycles Date: Thu, 25 Jun 2026 07:15:49 -0700 Message-Id: <20260625141633.449487-33-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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: fWC_k3igJLIlCyuk7hcI9KBrFs_FbSZI X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX+GqCwSmYObbz d3y5LPqJ5fN8UiojF69gF6Nw58n2nApaDxzZDB0eP4I5Qh0sUTYwJiuepfEBON7n9C1hPcQkPSW w3TuApaARPZOTcHpfPEV1ol3ZttC/MM= X-Proofpoint-GUID: fWC_k3igJLIlCyuk7hcI9KBrFs_FbSZI X-Authority-Analysis: v=2.4 cv=R6Ez39RX c=1 sm=1 tr=0 ts=6a3d388c cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=gmA5YO3DfmenxuRff1QA:9 a=tsLLKIjAKpJP5df9:21 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX+4aOjKzqZ8JG DoaeNTq873KaX2vYmZg8TRdDyidKf6JK5PWQuaImivyxy27mLFf+ssoucJDDGSL22U1EDNqiVMp ZBEYZV403Wk9DahwR3LtixMOhILgAHWkIeHSf1Mh6cZaBLan0ZQpyvsSVxDzbE4rC98xulZDd6H 86y/Qx2Zh4ML0TLL6LoA836FHygUDHvHoRSZSDfEpyayfxCf//hH3gaUbrYfSEUxicv7x+fdMRQ mPVTcnLmu8gG8OLAU7V29mAkxpEX8WvKvRdbBf6svz+wZG324JVQ4/RzQiSbS05e3mZgNBI2YzB QIgfeN0VgKaa6C9zM1GbWH7yO7jGQbjk22zQyaIr1wISY2qcDj0nfdhjV2abtE+VhJP1sc/MY77 s5fhre0WVYYYC1K+1Vmh54HI0KkrmYDLHbxBlNadPt47rFMdIPge3PKxNN1SUkDC6F8c5g+KvJP nVrcEJ52ZNS58VaPdLQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 clxscore=1015 malwarescore=0 priorityscore=1501 adultscore=0 suspectscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397236909158500 Add t_cycle_count to CPUArchState for tracking processor cycle counts in system emulation. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 1 + 1 file changed, 1 insertion(+) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 4bea953ac73..2540458b370 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -110,6 +110,7 @@ typedef struct CPUArchState { =20 /* This alias of CPUState.cpu_index is used by imported sources: */ uint32_t threadId; + uint64_t t_cycle_count; #endif target_ulong new_value_usr; =20 --=20 2.34.1 From nobody Sun Jul 26 11:50:59 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397165; cv=none; d=zohomail.com; s=zohoarc; b=id11q8l+kJSPd0SMgGBBT/hvSWr0/Ho965saGrPUFdqXy7JznhfeTkazPGUPBN23zCfgMR6Txu6o+Zlhwfq7ERePWEPFlu70WEWH466vvDp0A++/HT5o//JvKLdrxehAVI9GvalVArRNejtrW5KQ/v+O185QFKVbZvNobCpp/Dw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397165; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=dY/1s85TBUfEZ6DKxNXbQLtO9YNnO553PDpX0fAztOM=; b=Z/rXT7vXCZXtEpiI0UG+F7uuipguMOn1fTJ4yboniszYTjmjzEbCPZwDupByqfiJR/j8xT5klY8m4CEgbKE7X9j+793RK7y0MKWYQD25ota4I3vuRalt2KEvOTBr6gQiZcRYZB4MXp6vO+mH9RcY4esmhie73kI4OYfLFm/nGiU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782397165990558.6897628641603; Thu, 25 Jun 2026 07:19:25 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wcku7-0000h8-T1; Thu, 25 Jun 2026 10:18:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wcku4-0000Nu-8n for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:18:04 -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 1wcku2-00007t-3j for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:18:03 -0400 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9jwOf2047057 for ; Thu, 25 Jun 2026 14:17:51 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0uyqjf7d-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:17:50 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30c17f62afdso925424eec.0 for ; Thu, 25 Jun 2026 07:17:50 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.17.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:17:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= dY/1s85TBUfEZ6DKxNXbQLtO9YNnO553PDpX0fAztOM=; b=HTQaikVFZ3eh/qWB qq02EPeU3CPnEdvO2EWOjywiL7HPJYQTuhzIcWhAf/NTfYc06Kf2SrzXZ0esPS1B vdJYA8OCiayKZ+Rx8GKyeaMfRVwamphNY4e3+Mfy1wVOrrITgZEpqCArQ7EhMd85 d+y419iGj3gKROvKxSHTUVvglH4MHAy1U4GgatPwq0elR6PzLP3rdZHc+pRED6Y4 BkTzvQxydssCso5sA7wg8Ya1gT1HFLFfpCKimCMHyug3Cc6waxgnFiIgBJeODxj1 HiYRl9PocHf9/c2StewS2qadIpLATjj+V3dZ4Yo4FE91/et+387fPHHybDG5J/qS CzE/JQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397070; x=1783001870; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=dY/1s85TBUfEZ6DKxNXbQLtO9YNnO553PDpX0fAztOM=; b=FhJdYnCag52afE7/AU4yQ2zLHuqZfld2Rwe3JQBtrOZC05foBgopq224aBjNohY0Af STy72pjWuNe8hssIf653RNx561v3y3fhG65b2nSUC4fsN+amnyWYcML9JZc6/yMfrt9f NKcp5P9Kgqxr51z/FjuKUOQ9FCk3dag9gv1w7DExpYKqTISuLyAd/ikBkkd9WPiPl53B KYK9rUYWMi5a3rSzrokm36uLn1q8eyov7UnXOmFCRLLDnZPZqw/6rwE5wddFoBW0bS16 QxAihXMCy6FFLlNEB9tKmlXm1cMSvCnO8XR/FpoM96wsGZ+IyRi0e9GllG1b51SD91cV qdIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397070; x=1783001870; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=dY/1s85TBUfEZ6DKxNXbQLtO9YNnO553PDpX0fAztOM=; b=oQXobmxWwrhdnadTAeLr2g7ypAsBswIUAdFmZWzc3p4vLUYvfx1m8nx9YCgEfs33z8 KMGyyvKRxnOBtscy1ljRuHjR7Ka5BMIKE6LT10YtEE6mg7IEe5/etxwsxhE4iYvhGdNf SWDGsULf54dsWmlcZ8DED1gKWWHxrI1H8E71ybgRvbvsLCs2rmTIC8p8LEtOWhnZ0Kzu d65sw1Z5HyPd8SP/Axal1F/H1bUSKX4hKhEs7oJVcBDTE0m5TWJJQZlgu4QG7WE0jWVQ 6RqsgUrqlNXu+9F4mFaEYczjXQhK/Fph4hEH0v0L4iSzRy++nx/eK1enakWWEEJdn0Ss miuA== X-Gm-Message-State: AOJu0Yy56L02eerJT0LGbPLufg3Ahmp6zdPOV57NoPBXqLcVOJCOTYqm BXpkKrl/GBuRJlZNUhu+v2edA0vZa4diqUn6j5OE2lv5Mef6bZa1ba787KNifAm2SfpaDAcvh8J S9d8rVSbtDkaSPi0v7yu5GXV/Xii/4gR3fz83YcmQnVQyyfhjd5kkBqrfJmZMcciMVA== X-Gm-Gg: AfdE7cn/Ro20Fu3Bn67hHaLBcQ8X1Nkez0MtaQCQAZB8NEtl2M63teKpPsw7Q/IEQSd tHDrOsgdxFGOOZdXvCaS4cyXMknoV854ziQGW1Ehpw8NlPRg8UIEBP21jLYRZoDefnnEEn7YQSE nVlKf582SwEMhKTATnwN+CkJg2XiNnU0DIOUckqEe7icqMWicKxvSlpdxvYKj9VWqxXY1e5d+b5 U5ZeTC8DT5UlIyfGXi+qMT2AFj5YDhUc9A/tkppXuj2Wd19qLVWq+DbAt19gTlaO5yNKGqQiE/x Fwp61fuVzM/DpGBzukKeignYccAEkbEpleyDReqowEOSI08Cicz9t/sGRM7yZMtqFYQX1Tak4cb 88EGankUyuKsNBuGtemlmlLfFQn6C7If3y5MvOtNJELWspDi0iDi9i7Iwx40= X-Received: by 2002:a05:7300:e8a4:b0:30a:e52f:9b99 with SMTP id 5a478bee46e88-30c850ccd63mr2499441eec.0.1782397069973; Thu, 25 Jun 2026 07:17:49 -0700 (PDT) X-Received: by 2002:a05:7300:e8a4:b0:30a:e52f:9b99 with SMTP id 5a478bee46e88-30c850ccd63mr2499420eec.0.1782397069435; Thu, 25 Jun 2026 07:17:49 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 33/76] target/hexagon: Add implementation of cycle counters Date: Thu, 25 Jun 2026 07:15:50 -0700 Message-Id: <20260625141633.449487-34-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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: zaWhWoPhE3nhB15aOJH3Y5x8gOTsYuDV X-Proofpoint-ORIG-GUID: zaWhWoPhE3nhB15aOJH3Y5x8gOTsYuDV X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX31Jl54mAHLRn peukr7VdpCoScq3xDOAg68RSII5zyrKus4VK8zICGmtB5QcdZi6bDHlE6g3V51DiSA1HBnp3z0O SkeqpPum9Kj0UedzYJeQav5voVdgufw= X-Authority-Analysis: v=2.4 cv=EsLiaycA c=1 sm=1 tr=0 ts=6a3d388f cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=Bw4caLd0n_0OF-yX4NUA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfXwB1Tn6pdwdwY /WmCOkctdBLV4KJKVtOgnqVH4jxg4bqMDYG5jyV5f7ZIwTLM55fokznhSU1UifGbhn1uKMKvtSJ bM0wRC9ENTeyplKRQcYF7s6KJ39KC894DAUR76paPT6VBaQ+/Xy2sdlm5jAC/MHTjSc7MQmny97 vYDI6ZFq1yQj16HBCuMdMQ6BJqvwWleLFe2p60Sr4tR8rjptxyK0J4u2oOv3WUnbQcewoIQ/RSA POqkixdRbSNvYZwkLIOlk+YC9epk3Kei1PuJkLXn/AY+F5uHjsMeDtDqoRap3LjBZXcIDtCB/49 EsS2laV6qxumPQJKMQXkI34+PF+HNUUQWdiUNiJaDmv3UGD94mTPH20MCFsD8a3qK+1LParohkS lpdUnO325uSiy1E6Cp7P17XlNSvyFirffSkLAycUZVS5TCW0dWPKLfCwLfIX13+Fbu3vP0d6j4B eAcqVmGFxvAjBQVdZCw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 bulkscore=0 clxscore=1015 priorityscore=1501 impostorscore=0 adultscore=0 spamscore=0 malwarescore=0 lowpriorityscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397166411158500 Add cycle counting infrastructure for system emulation: - PCYCLE_ENABLED TB flag to gate cycle counting - gen_pcycle_counters() to emit cycle count increments - Real implementations replacing pcycle stubs in cpu_helper.c - hex_cycle_count TCG global for t_cycle_count - pcycle_enabled context field in DisasContext All pcycle code is guarded by #ifndef CONFIG_USER_ONLY. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 1 + target/hexagon/translate.h | 3 +++ target/hexagon/cpu.c | 4 ++++ target/hexagon/cpu_helper.c | 14 +++++++++++--- target/hexagon/translate.c | 26 ++++++++++++++++++++++++++ 5 files changed, 45 insertions(+), 3 deletions(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 2540458b370..ddf6da78c18 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -164,6 +164,7 @@ struct ArchCPU { #include "cpu_bits.h" =20 FIELD(TB_FLAGS, IS_TIGHT_LOOP, 0, 1) +FIELD(TB_FLAGS, PCYCLE_ENABLED, 4, 1) =20 G_NORETURN void hexagon_raise_exception_err(CPUHexagonState *env, uint32_t exception, diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index 57767acf002..208cf141e7e 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -85,6 +85,9 @@ typedef struct DisasContext { TCGv new_pred_value[NUM_PREGS]; TCGv branch_taken; TCGv dczero_addr; + bool pcycle_enabled; + bool pkt_ends_tb; + uint32_t num_cycles; } DisasContext; =20 bool is_gather_store_insn(DisasContext *ctx); diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index a08083ea290..0773ef8fe79 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -268,6 +268,10 @@ static TCGTBCPUState hexagon_get_tb_cpu_state(CPUState= *cs) hexagon_raise_exception_err(env, HEX_CAUSE_PC_NOT_ALIGNED, 0); } =20 +#ifndef CONFIG_USER_ONLY + hex_flags =3D FIELD_DP32(hex_flags, TB_FLAGS, PCYCLE_ENABLED, 1); +#endif + return (TCGTBCPUState){ .pc =3D pc, .flags =3D hex_flags }; } =20 diff --git a/target/hexagon/cpu_helper.c b/target/hexagon/cpu_helper.c index a2b486f4bb5..bb991a671e8 100644 --- a/target/hexagon/cpu_helper.c +++ b/target/hexagon/cpu_helper.c @@ -33,17 +33,25 @@ uint32_t hexagon_get_pmu_counter(CPUHexagonState *cur_e= nv, int index) =20 uint64_t hexagon_get_sys_pcycle_count(CPUHexagonState *env) { - g_assert_not_reached(); + uint64_t total =3D 0; + CPUState *cs; + + g_assert(bql_locked()); + CPU_FOREACH(cs) { + CPUHexagonState *thread_env =3D cpu_env(cs); + total +=3D thread_env->t_cycle_count; + } + return total; } =20 uint32_t hexagon_get_sys_pcycle_count_high(CPUHexagonState *env) { - g_assert_not_reached(); + return (uint32_t)(hexagon_get_sys_pcycle_count(env) >> 32); } =20 uint32_t hexagon_get_sys_pcycle_count_low(CPUHexagonState *env) { - g_assert_not_reached(); + return (uint32_t)(hexagon_get_sys_pcycle_count(env)); } =20 void hexagon_set_sys_pcycle_count_high(CPUHexagonState *env, uint32_t val) diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index 97849ab861a..ed96d9a66b3 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -61,6 +61,9 @@ TCGv_i64 hex_store_val64[STORES_MAX]; TCGv hex_llsc_addr; TCGv hex_llsc_val; TCGv_i64 hex_llsc_val_i64; +#ifndef CONFIG_USER_ONLY +TCGv_i64 hex_cycle_count; +#endif TCGv hex_vstore_addr[VSTORES_MAX]; TCGv hex_vstore_size[VSTORES_MAX]; TCGv hex_vstore_pending[VSTORES_MAX]; @@ -128,6 +131,15 @@ static void gen_exception_raw(int excp) gen_helper_raise_exception(tcg_env, tcg_constant_i32(excp)); } =20 +#ifndef CONFIG_USER_ONLY +static void gen_pcycle_counters(DisasContext *ctx) +{ + if (ctx->pcycle_enabled) { + tcg_gen_addi_i64(hex_cycle_count, hex_cycle_count, ctx->num_cycles= ); + } +} +#endif + static void gen_exec_counters(DisasContext *ctx) { tcg_gen_addi_tl(hex_gpr[HEX_REG_QEMU_PKT_CNT], @@ -136,6 +148,9 @@ static void gen_exec_counters(DisasContext *ctx) hex_gpr[HEX_REG_QEMU_INSN_CNT], ctx->num_insns); tcg_gen_addi_tl(hex_gpr[HEX_REG_QEMU_HVX_CNT], hex_gpr[HEX_REG_QEMU_HVX_CNT], ctx->num_hvx_insns); +#ifndef CONFIG_USER_ONLY + gen_pcycle_counters(ctx); +#endif } =20 static bool use_goto_tb(DisasContext *ctx, target_ulong dest) @@ -810,6 +825,8 @@ static void gen_commit_hvx(DisasContext *ctx) } } =20 +#define PCYCLES_PER_PACKET 1 + static void update_exec_counters(DisasContext *ctx) { int num_real_insns =3D 0; @@ -829,6 +846,7 @@ static void update_exec_counters(DisasContext *ctx) ctx->num_packets++; ctx->num_insns +=3D num_real_insns; ctx->num_hvx_insns +=3D num_hvx_insns; + ctx->num_cycles +=3D PCYCLES_PER_PACKET; } =20 static void gen_commit_packet(DisasContext *ctx) @@ -978,6 +996,10 @@ static void hexagon_tr_init_disas_context(DisasContext= Base *dcbase, ctx->is_tight_loop =3D FIELD_EX32(hex_flags, TB_FLAGS, IS_TIGHT_LOOP); ctx->short_circuit =3D hex_cpu->short_circuit; ctx->hex_def =3D HEXAGON_CPU_GET_CLASS(hex_cpu)->hex_def; +#ifndef CONFIG_USER_ONLY + ctx->num_cycles =3D 0; + ctx->pcycle_enabled =3D FIELD_EX32(hex_flags, TB_FLAGS, PCYCLE_ENABLED= ); +#endif } =20 static void hexagon_tr_tb_start(DisasContextBase *db, CPUState *cpu) @@ -1121,6 +1143,10 @@ void hexagon_translate_init(void) offsetof(CPUHexagonState, llsc_val), "llsc_val"); hex_llsc_val_i64 =3D tcg_global_mem_new_i64(tcg_env, offsetof(CPUHexagonState, llsc_val_i64), "llsc_val_i64"); +#ifndef CONFIG_USER_ONLY + hex_cycle_count =3D tcg_global_mem_new_i64(tcg_env, + offsetof(CPUHexagonState, t_cycle_count), "t_cycle_count"); +#endif for (i =3D 0; i < STORES_MAX; i++) { snprintf(store_addr_names[i], NAME_LEN, "store_addr_%d", i); hex_store_addr[i] =3D tcg_global_mem_new(tcg_env, --=20 2.34.1 From nobody Sun Jul 26 11:50:59 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397094; cv=none; d=zohomail.com; s=zohoarc; b=docMJ93eQwc78Ac44SF2LNVb7nQmVtllI3IhMK3NjQW0dYp7JmUVRpCsHY+Tb5QgPr7wgF1kQZw5ZFJgnpOkFGsXbht3aFTDclzOzwuH1znio8ZsUC/tKDzNaQODQJfam1RKhMQJ2vxJhQS6jsdoUxIfrU63XqXyX+eOm1DIfPo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397094; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=MzvUFKvc+sUpWvc2016FnOxj5PhtBZkyxIiMWx3S09s=; b=eAqf/LKebxtXAd3kA84sbY98kGfybDImeHdobEj6hM8xYu824aWhCMmdhKhDsFW7R+qpNTwZc1yvls3QZl5lrB0uS9lHlh2iW4LEwcIQ+ojdmxAjgIJbkn0SICO9T5W3CS3SzrZfvkOEjbgGodNDdCHrtUGBCCPnl+U/rf8VPP4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782397094471298.1550672418575; Thu, 25 Jun 2026 07:18:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wcku7-0000cb-98; Thu, 25 Jun 2026 10:18:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wcku6-0000Qr-3C for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:18: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 1wcku4-000096-6n for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:18:05 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9k9et1948004 for ; Thu, 25 Jun 2026 14:17:53 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0ya8spp2-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:17:53 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30c17f62afdso925466eec.0 for ; Thu, 25 Jun 2026 07:17:53 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.17.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:17:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= MzvUFKvc+sUpWvc2016FnOxj5PhtBZkyxIiMWx3S09s=; b=IkOZGJLN0mCYWyyk 210EhNYFqW6djWQUhii7mU/pAgMFHA37dbLcz00Ygjm5CJDdHWnDGlgqXEULHZQq +nGr/mhSM8gwTWEyJkNY9gV79jcOFOSgW/ypuukihuLMUhJS/QHiUM05cIDL3vN8 FeFpQAO9SlUOH0nlHfaTmeJVk69fBbJTMcRD04Pa6tCt13XUZ5CnHLliE/tSRXg4 y+IwV+XS9sgjQsDyBATL8iwF4a+h1ghb/6PyiKOI+INU0Vy9JIQhsA9s3KdG8I9o BSUPjEKQKutZMxSzIQ8xq0wY2mHsipBOH08TriVnFxcbFSq45NxXApiR6r3nS6lY MJY2FA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397072; x=1783001872; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=MzvUFKvc+sUpWvc2016FnOxj5PhtBZkyxIiMWx3S09s=; b=abls16APCXT/w9XJckMeh54Xuye26qtXEX7wA8qwQe7oVtds1bcXJD/qHqX4YeWWxy hL56VTI0a3Jc7E859PRN/qec+3RLwRNy0MJz52AAQAj85fRXVpfVj3Ic0rjG0Z1LZuBp n8qSwNUZUxY93c3NTPC/HzKeUOJiyklwfxB0YIXYXVn2wvozeqcBNGMH6SxMqXQLIcoY Ya8sp4NiATUh39u3OLw1BuqHZSvXI1fxv9bRhRCbqVnrhlXogQmINpJq6qfygNfYe/Ip 8xyEk6WWg4GuzLjbchErKRwVUmEX03+11G1eRjARsEJ5wIiUMmweFE/5eJlb6ZeZbAxK YVWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397072; x=1783001872; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=MzvUFKvc+sUpWvc2016FnOxj5PhtBZkyxIiMWx3S09s=; b=tJK+BlZb7shHTbK0rhJp2CwRtitMsbkgqsUxlQR1yQ6D5Ak6QRV7y+mqHlUDFRlUsG /Fisuu3nroRHvH7cmHUb9koxGLeoSdOd8UYAvu2sH+Xr6DSZuT/i7CNEX3N1bIwgzTVu xmHV5XBn5IMK9bupzi88cWa83+FNTbaowxrKPAaB+R8htJ4yhJ5OZkf8IyZxSFBPvAky PsNtnEa2+j80XkkRxXvzwVj+CooC+2KzBa/OHo0fwK8WcK+/dDo6+jIrQtc6BeO+GiaI Q9+As4o8FuIcL/cKLCAmVjXmIFXke2f1QOkus8eSyKw51bFprBdZDzUK6u+F8YgTHlDM bJig== X-Gm-Message-State: AOJu0YyJjzLkXhSHzOKUfgwZc7O4+YkZZBJAuf7Dy+j2mCQpZo9ljPdg TcrXMRMSgSuleHwGyuGWXUsVPUgwj03kfu30EtBx4yH6dZqw7bOBhVjr0WuxMGR2KWKFipBESgH edfnPMewMRAIouh06q5xl11+fbVEBu2pYqqsRbsPg26prWRsMWSKft6deap7LVymwDA== X-Gm-Gg: AfdE7cmDWNL5P7c1wMnLI5SeUNR1y+9OhV4IpfLPDas+4aVRTO4N2UYzuSRY3WHg01h MCatJOnaWQjJmKVGK6Sj348AE5kRWkRa6UKkgGWocZn7Yp1jMFghvqjay6IXe5SM7PvDt03NJiy yw2G0ZVA7tf2Ozee5LMAykrlt5HBYx3Es4vUA9gFjBDSUAVHhwdacIThdr0zyCE0uXQphRq4ing hB6Y+MDxKbjy2yVHQ+2PY6MgTN1rWWmJdiatfMFFYW5GkLoxXbGe70+pIJ9A8Mit7ST0UrHx7UO JWtwFsvOG3mVrHKm0n9OlH7qnFdZFvVwJdMWA8Wl0A7ao0HQ6FxUl/JF3lYL8VE3r50Kkpbk0jK ba9bv3Ji3+VOXEtufopcjVIAp1HwMeXz4yAGoVn22g66gT2tnrRN5ZU/jsQU= X-Received: by 2002:a05:7300:d407:b0:304:e587:50b8 with SMTP id 5a478bee46e88-30c55641f4dmr7067651eec.18.1782397072093; Thu, 25 Jun 2026 07:17:52 -0700 (PDT) X-Received: by 2002:a05:7300:d407:b0:304:e587:50b8 with SMTP id 5a478bee46e88-30c55641f4dmr7067626eec.18.1782397071492; Thu, 25 Jun 2026 07:17:51 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 34/76] target/hexagon: Add pcycle setting functionality Date: Thu, 25 Jun 2026 07:15:51 -0700 Message-Id: <20260625141633.449487-35-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX39wuuZY8qlXa o29rBjkamz4jlv/2wIXCmMyAvLrPJoOHv28aoVGtLfVGGTzNNlpuwfXCy8ZxFEWKr0oTyVvrgK7 JMr3KQHwIm9RVEJAgZUrib5vhu6VKB0= X-Proofpoint-GUID: _ChnQQlE_UKUjmieFhCLB-K-mXQpIeNy X-Proofpoint-ORIG-GUID: _ChnQQlE_UKUjmieFhCLB-K-mXQpIeNy X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfXw4c25k3tn1E4 LFgfRucup/oW+B8iixI3AqEwkMfPEoprSe7DfQzFdF5li5zLmGh6cVV9oncF44lHpKvFCAm46ne HofUOfXAhmdgcgVzuvdW+dQGknFaU8/WF+4s8jiz3PpcJKaTpRplLQ9ziDyFUiGQz1RxXq5kjzz NW3ngBYxL7LtLif+d06CZU9awYE+pu/qv2yusjU2TzouopCBkWxKF/XmqfNZv4eSKbBzpl+fYCr hkeomrLyYs6DXg/cwOk87ApPBqZSwEU6zLHLZHeBA0HWY+uVQrIv5DBN/H1fY76RqQTskTrxePe zTr5Mf+gM5tE2ExJCyUZOZntOKvEVjxAqnRC0JUvXcGXL4ZqjQqrcBaZFRwkdZ3NCSAwEUtkWGT qMeVRSIMwYYQoq9dij2xsMFsTvcoGRJtoHuQt+DvWhW4OBg38S25YA1UNa/jNDjkrqJu1BA6I0D apCW8wjlziz4Xrty3iQ== X-Authority-Analysis: v=2.4 cv=Z+Xc2nRA c=1 sm=1 tr=0 ts=6a3d3891 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=OF6xqQKflNrgTLtdKXcA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 bulkscore=0 suspectscore=0 phishscore=0 spamscore=0 adultscore=0 lowpriorityscore=0 priorityscore=1501 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397095701158500 Replace pcycle set stubs with real implementations that distribute cycle count changes across all active threads. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu_helper.c | 43 ++++++++++++++++++++++++++++++++++--- 1 file changed, 40 insertions(+), 3 deletions(-) diff --git a/target/hexagon/cpu_helper.c b/target/hexagon/cpu_helper.c index bb991a671e8..64c5746c6d9 100644 --- a/target/hexagon/cpu_helper.c +++ b/target/hexagon/cpu_helper.c @@ -56,17 +56,54 @@ uint32_t hexagon_get_sys_pcycle_count_low(CPUHexagonSta= te *env) =20 void hexagon_set_sys_pcycle_count_high(CPUHexagonState *env, uint32_t val) { - g_assert_not_reached(); + uint64_t old; + + g_assert(bql_locked()); + old =3D hexagon_get_sys_pcycle_count(env); + old =3D deposit64(old, 32, 32, val); + hexagon_set_sys_pcycle_count(env, old); } =20 void hexagon_set_sys_pcycle_count_low(CPUHexagonState *env, uint32_t val) { - g_assert_not_reached(); + uint64_t old; + + g_assert(bql_locked()); + old =3D hexagon_get_sys_pcycle_count(env); + old =3D deposit64(old, 0, 32, val); + hexagon_set_sys_pcycle_count(env, old); } =20 void hexagon_set_sys_pcycle_count(CPUHexagonState *env, uint64_t val) { - g_assert_not_reached(); + CPUState *cs; + uint64_t total; + int num_threads; + int64_t delta, per_thread, remainder; + + g_assert(bql_locked()); + total =3D hexagon_get_sys_pcycle_count(env); + + /* Count active threads */ + num_threads =3D 0; + CPU_FOREACH(cs) { + num_threads++; + } + g_assert(num_threads > 0); + + /* + * Distribute the delta evenly across all threads. + * Any remainder goes to the calling thread. + */ + delta =3D (int64_t)(val - total); + per_thread =3D delta / num_threads; + remainder =3D delta - per_thread * num_threads; + + CPU_FOREACH(cs) { + CPUHexagonState *thread_env =3D cpu_env(cs); + thread_env->t_cycle_count +=3D per_thread; + } + env->t_cycle_count +=3D remainder; } =20 static void hexagon_resume_thread(CPUHexagonState *env) --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397109; cv=none; d=zohomail.com; s=zohoarc; b=GfWejdfsQ+Ep4CMOoNgWl/l8N9WEdS0Q4kiV2zAGyaW35PRcUA/ae96IU9Z/KG1RJVcaYp3llxjW68Y4kf7iHrmb5lZXSUKzr0cXDOnL/u/mhOp/HbXXYkqRpwkZjPJC2CnMxvCM6wbUbwusLbY6NVJjdEATBhGqvu0vMyU6rg4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397109; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=RwPVW3CwUQS2/lnObn+K7hYU+7Hhy6ohC8oxC7MFC5M=; b=dm3FkP0/Mn2Von8poPwNUY/kGGj0SWnYZxK0b6b2q0q4g724g5Ukf5vEwZDrs44c+gjyKldjEkYfjvZy6+MTSXyvYNTKcQYI0XlCQ86XjeJ68vljNudnI8EWA6Qc+1dK6u/2/u2Vb08OvGcgpHFA34io/0p12AdxkNE4pOpMS1s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782397109605921.0781727130803; Thu, 25 Jun 2026 07:18:29 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wckuB-00016m-U9; Thu, 25 Jun 2026 10:18:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wcku9-0000u1-Qa for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:18:09 -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 1wcku8-00009L-2n for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:18:09 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9jvVu1754106 for ; Thu, 25 Jun 2026 14:17:57 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0w0q26yu-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:17:57 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c50cd6cbcso2572319eec.1 for ; Thu, 25 Jun 2026 07:17:56 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.17.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:17:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= RwPVW3CwUQS2/lnObn+K7hYU+7Hhy6ohC8oxC7MFC5M=; b=HF8yyvQb4pAmfeS2 PV4rkcbV0y+TZGj1cNeNdFzUmnijkHtR+qdC2LtqCPSmyF9iaK+xxqzibGX2AWyM 2ZSqMJ61hBhWJ1VH/FQzRXzzlE6sgHVhiwGejwNJuv1cgsoH1cIC6n/xyDMhytbc Sc0AxL8Xj1mcLY8EGWwuNHNz9Hc/1nwCtInwzD+7J7ZRPy4eN3QKDKVPDagQcJpe NafX1l9l2Y76mPZyGVm9mNQbn94MckhBHY7z3toYUyT2lZsPhbmjMMOsL2Ah3Us6 PuOvJbLg1+66U+rYR7xa7FpxAI4NOwBJwxmttNvNERSItiRCkejdCg7I2i67IBiQ 92q8TQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397076; x=1783001876; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=RwPVW3CwUQS2/lnObn+K7hYU+7Hhy6ohC8oxC7MFC5M=; b=R7/jMQbC/YazH0HCuLRviuBbLT5OCS6KWFiPIwkUF41rGnj7GfAPYQAEqI/VBVd5XR SxGhyX7qullIrezVGgcCFHPlATFBL+JWmt3iuvZrMaEcDh3fEZOCLJXuvFcJI7AC81PG UFoUJb/vizSa3o4O2IIY3ZMFBMkhywlCq2hEBWQkng2o2b37rq/lXJZQw1d0qJRIE7dk hld58GDDbHOQIwUHrfqca79CQZg5Vhsd4Dl42t/jQ0P3LOLlq38u3HoaF8iHH3bjLs0N QKA09L317sxsjoBfWgCC6VFQDgBJ809iOw16YCFrUjGzAWtYUHXvtZgh803+3tqAPgo/ 9EEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397076; x=1783001876; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=RwPVW3CwUQS2/lnObn+K7hYU+7Hhy6ohC8oxC7MFC5M=; b=CtooWuSi1D8HgYuSWxwg7YMBddNm7CrVNbnRd+1Aq6OH12r/cImRxHvWGduiyM3CI9 o1ngTEskNT1vtvXRnC8jvCUbQLa5OrZwEOHd2PPn++ac5apUB5a7/jmFqs/Cwvpm/xVm /xPinR17qu8MnzMOpvQuv/wUESzKgKtJ6T/ojpTqOX6eXq3mkwKZiy3RIhjzPKxBJw+0 gYuokMxQNo04uwk87JVC6Wj6NSy7+1z8Y59ieIEoyQTDXfesj73FJEJiA7BtbMS01++c ccqaXalzN37R3XqwGUEzlS+4uKQoYxt2EZrBpyGKxF0CWulUe3FSzkxTmYgjRtsZlL8J H3FQ== X-Gm-Message-State: AOJu0YwMzdxHnYrdMJWcgy76CNl17WnxQA7Xdi0kWCroQBdDlDv1VcEy +eTo4zIhjqQJTw139U490ZFUhU8G+YK26NPcPaUhhuEYTPuq5uyM47ytKMaNxcFZTfF+iUDVESH V8lsZzm0Dc0INzrC+x+q/9HxOv+bmuNgilcNdHV6jgjTghOeVMHMackMbUX6QuObiMw== X-Gm-Gg: AfdE7ckUaEZcSxO+/dKuBtS9z5gmVi32uQVrcml30dSu0wfIDpRaKkmlPGWAOD0Tzp/ vITQHr5pZrjJnyQrJWIH6vUX6ioLodB/3umRGFvHv99PKviQGEjBo8lzdaO/hZrjjUOomZjcbVV GI1FZ2YJRf52GAfcaqHpjjvhJic1YmEFvY6AUl+WMlx91teVzTjV4A2umL7WmLayfTkKrPT5xrR qRUp//uXMm1wN/cuzNHk1/JvK9kdeLy6BSrgYIYFJMvjK5qD/M4TXMX3UEnLFdlNhNXK5E871FK 5Nrbb7qmnYtZGhXkJsyzRyahh7ZqZD66dVCxsToFpWGdS9R1jp/x29R1pf73yvEy3cVTEAauhet 1HDC5L4oNwjAsJ4pGfz0VWWq9lpGvAJRHIMNxDjfE+7GS1lmw7JG1en2UI8A= X-Received: by 2002:a05:7300:f108:b0:30c:5807:abbb with SMTP id 5a478bee46e88-30c84cb1ab9mr2648518eec.20.1782397076063; Thu, 25 Jun 2026 07:17:56 -0700 (PDT) X-Received: by 2002:a05:7300:f108:b0:30c:5807:abbb with SMTP id 5a478bee46e88-30c84cb1ab9mr2648493eec.20.1782397075419; Thu, 25 Jun 2026 07:17:55 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 35/76] target/hexagon: Add cpu modes, mmu indices, next_PC to state Date: Thu, 25 Jun 2026 07:15:52 -0700 Message-Id: <20260625141633.449487-36-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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: ez8qVy-gxJSfmjyzprHt7AIS3O50tfL9 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX/51Quz+tQMG+ 5rFwFS2Cxp2XDGFPt5NYx7DwaZ4la+BETVE1rsZPoH32jPk1qgxjv5qTamygycjT2Q89++A1Y1s fJ67qG+QAzsG54F12IJq0klTdC+p3QA= X-Proofpoint-GUID: ez8qVy-gxJSfmjyzprHt7AIS3O50tfL9 X-Authority-Analysis: v=2.4 cv=R6Ez39RX c=1 sm=1 tr=0 ts=6a3d3895 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=StfCoqezVcLOyubjZekA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX3cF383SQtzZc c3h0RqjggYChJKH9ogV0hkfj8pQ2mUHXRieNJA9Ti4LiI8AE5tebwHyXXRwMK+P7ZqwRE9P8MaL kwBx+mSNdJW8hVULzXPMRQHzl76cykBRKj5cedpxykic0bed3COhZAcYeYXTwCoY4WOAnG44f+J ls3ezpc/TAwh2Z5wy39YU0eZ3CKq83GEdFtKe+9hYRUV9jq8TCfpwbDMY5FktavPuHV1EOHS/sS IoRDhR5nRbaysLAa1FkG3ccXjUFZRWGKaDkEcfRyKIFvb3SThS6oKkWcuOsdYSje8ZN3Rm5pMpn AqTR+vN++3Rb2QZlJIfkaszg8qGWvMvrTzsVhbXEVsYr1jwIvtleQzTWMoeXZxAeGXGF5XgIuiI svwudttsbyJgJwDMs0hRtUF3dmVOJjik2cs9d/TBzlsG19AXHSyTr1g0EMNyI8t7DwRG03e/d0O vwmgGR9ExTGlF5LTGFw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 clxscore=1015 malwarescore=0 priorityscore=1501 adultscore=0 suspectscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397111877158500 From: Brian Cain Add cpu execution mode (user/supervisor/guest), MMU index, and next_PC to DisasContext and translation state. Declare the MMU_INDEX bit field in TB_FLAGS and use it to propagate the mmu index into translations. Reviewed-by: Taylor Simpson Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 22 +++++++++++++++++++++- target/hexagon/cpu.c | 1 + target/hexagon/translate.c | 2 +- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index ddf6da78c18..7ba1d3047df 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -49,8 +49,26 @@ #define VSTORES_MAX 2 =20 #define CPU_RESOLVING_TYPE TYPE_HEXAGON_CPU +#ifndef CONFIG_USER_ONLY +#define CPU_INTERRUPT_SWI CPU_INTERRUPT_TGT_INT_0 + +#define HEX_CPU_MODE_USER 1 +#define HEX_CPU_MODE_GUEST 2 +#define HEX_CPU_MODE_MONITOR 3 + +#define HEX_EXE_MODE_OFF 1 +#define HEX_EXE_MODE_RUN 2 +#define HEX_EXE_MODE_WAIT 3 +#define HEX_EXE_MODE_DEBUG 4 +#endif + +#define MMU_USER_IDX 0 +#ifndef CONFIG_USER_ONLY +#define MMU_GUEST_IDX 1 +#define MMU_KERNEL_IDX 2 + +#endif =20 -#define MMU_USER_IDX 0 =20 #define HEXAGON_CPU_IRQ_0 0 #define HEXAGON_CPU_IRQ_1 1 @@ -112,6 +130,7 @@ typedef struct CPUArchState { uint32_t threadId; uint64_t t_cycle_count; #endif + uint32_t next_PC; target_ulong new_value_usr; =20 MemLog mem_log_stores[STORES_MAX]; @@ -164,6 +183,7 @@ struct ArchCPU { #include "cpu_bits.h" =20 FIELD(TB_FLAGS, IS_TIGHT_LOOP, 0, 1) +FIELD(TB_FLAGS, MMU_INDEX, 1, 3) FIELD(TB_FLAGS, PCYCLE_ENABLED, 4, 1) =20 G_NORETURN void hexagon_raise_exception_err(CPUHexagonState *env, diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 0773ef8fe79..626100d43fd 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -307,6 +307,7 @@ static void hexagon_cpu_reset_hold(Object *obj, ResetTy= pe type) memset(env->t_sreg, 0, sizeof(uint32_t) * NUM_SREGS); memset(env->greg, 0, sizeof(uint32_t) * NUM_GREGS); env->wait_next_pc =3D 0; + env->next_PC =3D 0; #endif env->cause_code =3D HEX_EVENT_NONE; } diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index ed96d9a66b3..ce5bbe92d5d 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -988,7 +988,7 @@ static void hexagon_tr_init_disas_context(DisasContextB= ase *dcbase, HexagonCPU *hex_cpu =3D env_archcpu(cpu_env(cs)); uint32_t hex_flags =3D dcbase->tb->flags; =20 - ctx->mem_idx =3D MMU_USER_IDX; + ctx->mem_idx =3D FIELD_EX32(hex_flags, TB_FLAGS, MMU_INDEX); ctx->num_packets =3D 0; ctx->num_insns =3D 0; ctx->num_hvx_insns =3D 0; --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397181; cv=none; d=zohomail.com; s=zohoarc; b=VObpPScoTdLk1SQfP8BUR1Vz3ppIz9A0JKBLtY0dJFtn5RkJLZfNs+yGF8Mo/zOOaXuxfFZlP4DiQoA/W5xfoPARnV0heNYx6ohQZ0y8fQO4/MthskSdi9CuQ6XTMT6solO2rhTEjObhargJbO0fEonOgLSvsXSQ3n3WLHML1Ho= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397181; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=T4QeLlBFUTpGlmsbriWoI9s9TWXslg2oBf/G9cVJFSw=; b=URwnZqm7R+THwqcCHP2XUD6QXSXdjgDV6QL1lrQOvb0jmAsNOBcSJ4GBeqPapZDBoVlng4s7tSUedoRmQpxSQIFzVGXYDYhDSRRJN13MJ7LR0ue/tuBIcgc2HqH5HP1vZsw7WKzPEmj9sC48RCrWRR49N8sNEX30M3GzQu+Zx3U= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782397181082714.3788406829435; Thu, 25 Jun 2026 07:19:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wckuD-0001Bh-EI; Thu, 25 Jun 2026 10:18:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wckuB-000166-Rb for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:18:11 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wckuA-00009g-AR for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:18:11 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9kBKY1948063 for ; Thu, 25 Jun 2026 14:17:59 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0ya8sppe-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:17:59 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c17bc96afso4981612eec.0 for ; Thu, 25 Jun 2026 07:17:59 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.17.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:17: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= T4QeLlBFUTpGlmsbriWoI9s9TWXslg2oBf/G9cVJFSw=; b=WSormFRvrb8rt5u3 UJtPKtu81Q389jY/W1Fvy/X6LgC3LVZigfqTe6bvno6v5ryPbI4THifV1iX1v0rZ c17eLNuYMnH+VQAdNWEZCGU7wq503Y1WFAmNXbbGs1sY/p9HPxo8lAEH1+7UfCoR vFrJhHDlZ1Mx5tSapF3i66r/mcu5ezzsiR0eUPvL/1goWoN9dZS3MG5gSnmpfq9y ve+kMCT4HEfFy010JO0+8WwS0HwQ/b3hrilH9hXofUyD4tnVhEqwYJTxQPgh61OI KX4QKOHC2tn1fsvQEfkRHRB6vEZvutQjVhTzTweyis++8zkucBvNdL8gpw0tRwMa LhIoxA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397078; x=1783001878; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=T4QeLlBFUTpGlmsbriWoI9s9TWXslg2oBf/G9cVJFSw=; b=bSSJi4t8F4MJn/968zsJ8eejVxumb7RfDYbgcMeY0O64N19wk6B1iMceS89Dk1Qi5D rO/4vD6EoevbtRofO21Ty8P6oqb09MI2piiPCeG+JQbpNr6yM3trDhKpUyNHYle/pKxy wnXkATJyqCPJUc7CHDAPlj9UUHTG4G5dk4nUC1VWBoIDBD3f2npCOXtehvgOv3/EoH4z PUeZgt+UNDqmE52BmztBU4Tk3limsMJMXONC9Ho+/MpwPmkfw5FDMiJu6i8cbGKw0AvH FQmjtP1affsgdei8LxmKaUBSo5kpnnE8boI+DXa1qkPwpp/qe0OvJrrpFMYumzOXq5eA 6kIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397078; x=1783001878; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=T4QeLlBFUTpGlmsbriWoI9s9TWXslg2oBf/G9cVJFSw=; b=p6tjwtOYV0NbeVewiWUPIN8Mewp7zYF3I8yWdeJyqJD8yqdRdLK2wX+pc2iI7BUUdR 4M7H88MuPYQWg/WUVKXyHsthsa4pYHclScmhcqaIJz96grYHVlvTwosj5/cFGhbEaWkX 0N7ZPZZNp24xurRYX+0eRWGg6NfH3n5gdN+APhLpZbwV9CsNr4lla2Up/qgIqehZRKw1 oGLiKFGq0If3EuSbaXIQU75jtfDKiggSbtFJs3FOvI6YzeWnKAMj4scvT+/QTFWbfDly fMg2egbo4tTsk4t6oK1oBZU1S7W4NgFab/vug4Q+OuGu3SD9GUHzePDHT0TPwJsptK8F qM8g== X-Gm-Message-State: AOJu0Yy3NqbNwEqHtmdSGoKWi9jWAE7uivbDHPBrsnmIns+yjEzm5czK 85VLZ17YrWbgztPFAPqg/apqzysT0F8NaKv8azP8pY81q9/mlxjpYF8Jb+qfNnpp2RqnjVnCy77 QYxGxD6hLD7MPI6O8q+OoBppALCsW6a/joaTlxC6EyYxdxGSzDhrvEW7scHYhhrnreQ== X-Gm-Gg: AfdE7cmoeKRUpsC+NXB+PPaU8WB0kZ3xacTyNNJxHZuX6gL0VRrUS/M42kmyr39zdD0 Izj+t42+JPMBATwxyn70fOtHuGmSErWmxlt28at1zwFmpPUH+jERAgqQuscOOZ/Q2Ff4PPVr6vk MCvY5hOINbymmH5oTpnreEM4i8v+4w8ihxqUKuznAym6T7pV4lW6YRNTzymERl1N3OVOcLSp3gM 4j6ZNIC2GT+qW8gxl9y2Lwh6S/J0cWEe/HJgpVFrnxch9apwJ4VXZc1HxgEWYgdsLYAVXsePgVx NImEouljrpjPZHrHhYOq5qxlJOzfIhSjAwh7hx2b7QcXTKlLYnCFn0Kk6Z/ho3xu07V4FQIwxRG XQFgyODJ2Nfbbj95L3Gu+vqWDy1gXC+3s1fPjlnEoAb+NVkNs+4cR2W8NPaE= X-Received: by 2002:a05:693c:2297:b0:30c:4832:1ac4 with SMTP id 5a478bee46e88-30c84d0f0c7mr3357490eec.22.1782397078082; Thu, 25 Jun 2026 07:17:58 -0700 (PDT) X-Received: by 2002:a05:693c:2297:b0:30c:4832:1ac4 with SMTP id 5a478bee46e88-30c84d0f0c7mr3357455eec.22.1782397077442; Thu, 25 Jun 2026 07:17:57 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Pierrick Bouvier Subject: [PULL v3 36/76] hw/hexagon: Declare hexagon TLB device interface Date: Thu, 25 Jun 2026 07:15:53 -0700 Message-Id: <20260625141633.449487-37-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX1Vp5yduwhG2P sqGEeaFnlvwFzErTWEscjC8NTuMobXh9AJW6hxBwk7CS2pt0Q6THD6NE3yu66qEsRe7v6fyuXll +7ZryuKS3MpjoMJuJl6hRT3PGpfl95E= X-Proofpoint-GUID: 8zyIQed5KGaE9Se8atR13Z74gV7Y-ymn X-Proofpoint-ORIG-GUID: 8zyIQed5KGaE9Se8atR13Z74gV7Y-ymn X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX9xKKpgQC80aD 4bMQK+Ve/ELQsenYi8BS83HptIUZUEaSPV9zqP3EJiCcHQW0odGfdSH3uZoIT+g/e3DqkOptrXY QADwv1ttZpl21BWodlPrbYftEu+CEZM4gtoe8vw/0aqD7jqVBsm6NEkol8OfELcp+o7a1t7B/lC HgkMO3atT0anZq3r11FQCLpd13UPH61S7VHMxww7TdhhyFQuJKjlqGRXUkNjNRvYsr9pnuYfGE/ 984fIp4hpit1bV5ArLKlnRxJT6d3RZFH6FAFT+fyhCAdufttSP28IXfMVuSB3T6Sev7BSDit84I +2wddLiruiE+5fyn/aAMV6uW2D3rkryH8JmtatBbCJSNrg60QclQe6FfiWMQ9550sKC+LceuqkN 1u2jEjAQRLOS4lnNXrjeg32O3As0oHicDrEYuSFA6LdPAtMoGi3i6Gmi1fViPsRuzd2TK1WbhqM Td7FFs3w+Kjy4YV1qUw== X-Authority-Analysis: v=2.4 cv=Z+Xc2nRA c=1 sm=1 tr=0 ts=6a3d3897 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=p_7iY2stt2bzV07uMJkA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 bulkscore=0 suspectscore=0 phishscore=0 spamscore=0 adultscore=0 lowpriorityscore=0 priorityscore=1501 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397182504158500 Add the hexagon TLB device interface header. Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- include/hw/hexagon/hexagon_tlb.h | 46 ++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 include/hw/hexagon/hexagon_tlb.h diff --git a/include/hw/hexagon/hexagon_tlb.h b/include/hw/hexagon/hexagon_= tlb.h new file mode 100644 index 00000000000..90d9ed84043 --- /dev/null +++ b/include/hw/hexagon/hexagon_tlb.h @@ -0,0 +1,46 @@ +/* + * Hexagon TLB QOM Device + * + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HW_HEXAGON_TLB_H +#define HW_HEXAGON_TLB_H + +#include "hw/core/sysbus.h" +#include "qom/object.h" +#include "exec/hwaddr.h" +#include "exec/mmu-access-type.h" +#include "monitor/monitor.h" +#define TYPE_HEXAGON_TLB "hexagon-tlb" +OBJECT_DECLARE_SIMPLE_TYPE(HexagonTLBState, HEXAGON_TLB) + +struct HexagonTLBState { + SysBusDevice parent_obj; + + uint32_t num_entries; + uint64_t *entries; +}; + +uint64_t hexagon_tlb_read(HexagonTLBState *tlb, uint32_t index); +void hexagon_tlb_write(HexagonTLBState *tlb, uint32_t index, uint64_t valu= e); + +bool hexagon_tlb_find_match(HexagonTLBState *tlb, uint32_t asid, + uint32_t VA, MMUAccessType access_type, + hwaddr *PA, int *prot, uint64_t *size, + int32_t *excp, int *cause_code, int mmu_idx); + +uint32_t hexagon_tlb_lookup(HexagonTLBState *tlb, uint32_t asid, + uint32_t VA, int *cause_code); + +int hexagon_tlb_check_overlap(HexagonTLBState *tlb, uint64_t entry, + uint64_t index); + +void hexagon_tlb_dump(Monitor *mon, HexagonTLBState *tlb); + +bool hexagon_tlb_dump_entry(Monitor *mon, uint64_t entry); + +uint32_t hexagon_tlb_get_num_entries(HexagonTLBState *tlb); + +#endif /* HW_HEXAGON_TLB_H */ --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397253; cv=none; d=zohomail.com; s=zohoarc; b=QNMUfrz3S7gr1g2S4fnjrfYtuv0wIzSVhloiMHyfRFzxmtOESEK79erm36HegLIDNfXOtDcC7l4ccQ/+0HvaLSWDhcsaGmiQo3xMSNDHz5awCbzlPhm7lG8oW4B0ToMR6JtZSe6Vpom21t+eHM6PsTrdFGUeCz50o0LRuATQu2I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397253; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=7mMKASCyM5y7fHIpILH7Fqqeizn/+r4LwxCWOb6jddk=; b=mVe7yaj3aceYcY2Dbg1tBrm0xHbeFTo6D7lwPSVjDaR5rQzfDKqNM78x1sMn1wc1wNjRtefTnzWZ8XXAVXaJMTRaLxzSzDuOG4mfBVnvSlQTc4M2EIJaAHXORkZsTCv0FqPOrNLqmdKpqG43kz5y8nJYIHeo3cZfsbqVfMmtsgw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782397253840991.1090082646786; Thu, 25 Jun 2026 07:20:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wckuL-0001ne-Gy; Thu, 25 Jun 2026 10:18:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wckuI-0001gR-PU for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:18:18 -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 1wckuG-0000Af-3y for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:18:18 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9k4Bt1755406 for ; Thu, 25 Jun 2026 14:18:05 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0w0q270s-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:18:05 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c8a940e76so744930eec.1 for ; Thu, 25 Jun 2026 07:18:04 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.17.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:17:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 7mMKASCyM5y7fHIpILH7Fqqeizn/+r4LwxCWOb6jddk=; b=oxAPS8ehevI5USt6 mfUYdBdS2E5fzfU2L5uqzer0L4/eYmyIPtSvdy7t+KUOX0cleUTyYDFaVHyMO3XS kWespx7DFg7VQEK/kgxttZD0kA9h+NaTEQqrAzddOp/gVht01F3TvC/ZB6rFh7zZ fQ0SrvE23tukd78IQEKrRq4h99d6LkQDNL0PWXmvr6EMPwnKP2q8T+cyIk1X+1uH YgrCPsZJ+IaqZo6K1Y+9petK2g0msaO5h0AM1cx3QfbE+WijCpP+SzPYICpy+lIz gc5sqbnwgmPTZgeG3LnvJQ7D6DOYwSd6PXJdBtFsUKd2EAwpMfWIAClhWRnKD4Py JfbrfQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397084; x=1783001884; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=7mMKASCyM5y7fHIpILH7Fqqeizn/+r4LwxCWOb6jddk=; b=IEgB8XlBMSPR7f7qx5yUmdXXwYS5a+CgV+kVRdGi/3F2xgiFoy303OFXsl8k6GMsyH j/2bVlTWvztDi3MX5rzzLAxkHejio41FhG2zQIIww9E5mosmA/IdNpvMBpZlPnXH8ih6 Gp+8wZEiFOjZ2RJl7ZqMFg6DSycxAWT85QqCJ2AuQclQdy/xf4o3isOyeoRpM8QZIyQD km13jOu8cCU4UwVhPmWPE1/RzjTm80PQglZMhYjy0cRAe0laxSZQKMlUJ3fpoxN3+LZI YTbNV+zyPA70dJRlAmYkxsh6Vt7scbjnfmv8KrFRXnKZZH1EZqe845lUVPSexvCxtwwP IMqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397084; x=1783001884; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=7mMKASCyM5y7fHIpILH7Fqqeizn/+r4LwxCWOb6jddk=; b=UvsHxwtRZylcKC7HLCRJVHGkOSLPZ01PBpT9wU4CDWVDTZc33uZNXwmZHAWbcyNmeG d7LMKq62EskQEKQ3Qnb4qz29BKycHhF9z3CF/09Dq7xn5qiczrt+qKPNcHQHvWnx7OuR 0feTbx7Rm5uZNxIqnIID5d0NniOhaPVAsYsL9IjRBYqHywRayHqBHQPJZRAUqINNLXSO KAEsfaS2bQ0GXRdLEsbos5tH7RJ5vDcJrxbqpVQkA1hoPztCDGKTpSBs46cTr8d3jKRF WU3fwTIV2WR3lqq5hunA5En+IsrT6DHNYkPAPqIOlfzZfIfdgaGg9aXKrhngwZJEANMW gbNQ== X-Gm-Message-State: AOJu0Yx1ZBsiD0TmleeI590Fl7amohz6yiCqGjJeaQ81vhzjbyS8X1o7 l6u5Ds5QrOCSQ/W3wzWZU6/5NP365378ieUsPD7LxegzZp1iVnulFmP18SkHLLa5aINYKfCQiYw 7wHvN36wa170yQHaDd63EDjubYQWm6HP2vTigQPSiwxqKvi4L6l5dKM/kHNa6znMfTg== X-Gm-Gg: AfdE7clEH2YwFDsbO/65BKdv1d/voEzkSmVfVmIZ9I2y2rA0HtIquRKBe0E9Gf+eQoN vw30JhqbXURpT5Rb52My9ZLwWNSH8QKG7EIzapxbZhskelYEhzK9/MdwRKzc43n/vuUGHEjQyz4 kO8hYcn4Hj/qX/PCxQKr4M5AXkCROttFxZNkPx+nQGYBzWpE3UfRfZERYh1QbXLCqJHrlqIl7op noJqVEKf+7MkaQk/TVCoBTnysznmgc1SXNv1L7ITha/uy1ydqrgZJivRdPaglrMSeYiur77quKK 9vICSHy9UU6/OZwTsrGZcnM5+9pSwESXdH5SLOHSls8PIQ0KqQAQ373MFV1+MgwfBXcUow59dS7 peLbjr0Fzs51h+xZ92ft9c27x9DOnqv3oKgyd/Fle6OjYoMaB3ICYGSvA080= X-Received: by 2002:a05:7300:214b:b0:2d9:db50:c6a5 with SMTP id 5a478bee46e88-30c84630554mr3561666eec.0.1782397083686; Thu, 25 Jun 2026 07:18:03 -0700 (PDT) X-Received: by 2002:a05:7300:214b:b0:2d9:db50:c6a5 with SMTP id 5a478bee46e88-30c84630554mr3561591eec.0.1782397082148; Thu, 25 Jun 2026 07:18:02 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Pierrick Bouvier Subject: [PULL v3 37/76] target/hexagon: Update TARGET_PAGE_BITS, stubs for modify_ssr/get_exe_mode Date: Thu, 25 Jun 2026 07:15:54 -0700 Message-Id: <20260625141633.449487-38-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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: wyHXRYkeUDt8TjGPMhahpsrDknY7Q_Vi X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfXzsr4TS87fT4+ yBNZNjO3GeGpblpp9Kgnj3rLQ5L8mGAh9qatMFXcD4YXhXTzFsPyeUfSMn47P+B0d3IkXYEY7Xp BoCGJ1/pdhXkzzGAlr+Iza7t+7HuguI= X-Proofpoint-GUID: wyHXRYkeUDt8TjGPMhahpsrDknY7Q_Vi X-Authority-Analysis: v=2.4 cv=R6Ez39RX c=1 sm=1 tr=0 ts=6a3d389d cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=1eS9DRoYkSOUxsN_X7IA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX+YpKC6Ka5iM8 0Q9Qk9uH7ALgQIwK/KN6RvUv42fi+FTtqg70d5K+gn9dLmC6pG6LxeWuPeqk/wSacQVdCoDzzFO LzEj7RRBGkOQlitf6I6HDERLR/jTYQg1oxNHnT4VL8j5CyzWJG+yyRiWJDyvVLbvRP92Poj4ehX Aa+jkOcsvsGB/laUadQkXmLhQZjNU10ftuw0Mh23tCG/Vl9EVBG0hD99XhZW1zIGGnK+sPvxLXn 5+V/vueqgrgGZRMflhggC3/ZVRe1NS3mUJyeXU3pI0Ce7OGhU8pR24K5kKSQDmThFBmDkEpeaXz tI89WTPrHus0zvsLq7JdQtP1dFWrRJWYiXBeGgClmhZttixPBef4TUfRoJ0Yu9qm00lNVIAzgN3 0zaN3RD/Q8uUblITJ+JI2goN47DB+jjjQKTXDw3FHFlLVDmZkUuBKowWZ7RZT0KyCQZB4dD2f8Z FKV5CrINIlx1LZQvpVw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 clxscore=1015 malwarescore=0 priorityscore=1501 adultscore=0 suspectscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397255271158500 Add hex_mmu.[ch], cpu mode helpers, and additional includes/stubs that integrate the TLB device with the CPU model. Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- target/hexagon/cpu-param.h | 2 +- target/hexagon/cpu.h | 21 +++ target/hexagon/hex_mmu.h | 26 ++++ target/hexagon/internal.h | 9 ++ target/hexagon/sys_macros.h | 3 + target/hexagon/cpu.c | 36 +++++ target/hexagon/hex_mmu.c | 270 ++++++++++++++++++++++++++++++++++++ 7 files changed, 366 insertions(+), 1 deletion(-) create mode 100644 target/hexagon/hex_mmu.h create mode 100644 target/hexagon/hex_mmu.c diff --git a/target/hexagon/cpu-param.h b/target/hexagon/cpu-param.h index 1f0f22a7968..bfe9a868d63 100644 --- a/target/hexagon/cpu-param.h +++ b/target/hexagon/cpu-param.h @@ -18,7 +18,7 @@ #ifndef HEXAGON_CPU_PARAM_H #define HEXAGON_CPU_PARAM_H =20 -#define TARGET_PAGE_BITS 16 /* 64K pages */ +#define TARGET_PAGE_BITS 12 /* 4K pages */ =20 #define TARGET_VIRT_ADDR_SPACE_BITS 32 =20 diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 7ba1d3047df..dbdc456d732 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -27,6 +27,9 @@ #define SREG_WRITES_MAX 2 #endif =20 +typedef struct HexagonTLBState HexagonTLBState; +typedef struct HexagonGlobalRegState HexagonGlobalRegState; + #include "cpu-qom.h" #include "exec/cpu-common.h" #include "exec/target_long.h" @@ -39,6 +42,7 @@ #error "Hexagon does not support system emulation" #endif =20 + #define NUM_PREGS 4 #define TOTAL_PER_THREAD_REGS 64 =20 @@ -47,10 +51,13 @@ #define REG_WRITES_MAX 32 #define PRED_WRITES_MAX 5 /* 4 insns + endloop */ #define VSTORES_MAX 2 +#define MAX_TLB_ENTRIES 1024 =20 #define CPU_RESOLVING_TYPE TYPE_HEXAGON_CPU #ifndef CONFIG_USER_ONLY #define CPU_INTERRUPT_SWI CPU_INTERRUPT_TGT_INT_0 +#define CPU_INTERRUPT_K0_UNLOCK CPU_INTERRUPT_TGT_INT_1 +#define CPU_INTERRUPT_TLB_UNLOCK CPU_INTERRUPT_TGT_INT_2 =20 #define HEX_CPU_MODE_USER 1 #define HEX_CPU_MODE_GUEST 2 @@ -67,6 +74,12 @@ #define MMU_GUEST_IDX 1 #define MMU_KERNEL_IDX 2 =20 +typedef enum { + HEX_LOCK_UNLOCKED =3D 0, + HEX_LOCK_WAITING =3D 1, + HEX_LOCK_OWNER =3D 2, + HEX_LOCK_QUEUED =3D 3 +} hex_lock_state_t; #endif =20 =20 @@ -128,6 +141,10 @@ typedef struct CPUArchState { =20 /* This alias of CPUState.cpu_index is used by imported sources: */ uint32_t threadId; + hex_lock_state_t tlb_lock_state; + hex_lock_state_t k0_lock_state; + uint32_t tlb_lock_count; + uint32_t k0_lock_count; uint64_t t_cycle_count; #endif uint32_t next_PC; @@ -178,6 +195,10 @@ struct ArchCPU { bool lldb_compat; target_ulong lldb_stack_adjust; bool short_circuit; +#ifndef CONFIG_USER_ONLY + HexagonTLBState *tlb; + uint32_t htid; +#endif }; =20 #include "cpu_bits.h" diff --git a/target/hexagon/hex_mmu.h b/target/hexagon/hex_mmu.h new file mode 100644 index 00000000000..4f556c715a9 --- /dev/null +++ b/target/hexagon/hex_mmu.h @@ -0,0 +1,26 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HEXAGON_MMU_H +#define HEXAGON_MMU_H + +#include "cpu.h" +#include "monitor/monitor.h" + +extern void hex_tlbw(CPUHexagonState *env, uint32_t index, uint64_t value); +extern uint32_t hex_tlb_lookup(CPUHexagonState *env, uint32_t ssr, uint32_= t VA); +extern void hex_mmu_on(CPUHexagonState *env); +extern void hex_mmu_off(CPUHexagonState *env); +extern void hex_mmu_mode_change(CPUHexagonState *env); +extern bool hex_tlb_find_match(CPUHexagonState *env, uint32_t VA, + MMUAccessType access_type, hwaddr *PA, int = *prot, + uint64_t *size, int32_t *excp, int mmu_idx); +extern int hex_tlb_check_overlap(CPUHexagonState *env, uint64_t entry, + uint64_t index); +extern void hex_tlb_lock(CPUHexagonState *env); +extern void hex_tlb_unlock(CPUHexagonState *env); +void dump_mmu(Monitor *mon, CPUHexagonState *env); +#endif diff --git a/target/hexagon/internal.h b/target/hexagon/internal.h index 33d73ed18d1..4338914efb5 100644 --- a/target/hexagon/internal.h +++ b/target/hexagon/internal.h @@ -36,6 +36,15 @@ void G_NORETURN do_raise_exception(CPUHexagonState *env, uint32_t PC, uintptr_t retaddr); =20 +#define hexagon_cpu_mmu_enabled(env) ({ \ + HexagonCPU *cpu =3D env_archcpu(env); \ + cpu->globalregs ? \ + GET_SYSCFG_FIELD(SYSCFG_MMUEN, \ + hexagon_globalreg_read(cpu->globalregs, \ + HEX_SREG_SYSCFG, (env)->threadId)) : \ + 0; \ +}) + #ifndef CONFIG_USER_ONLY extern const VMStateDescription vmstate_hexagon_cpu; #endif diff --git a/target/hexagon/sys_macros.h b/target/hexagon/sys_macros.h index e8bbeadfdfb..ade57290166 100644 --- a/target/hexagon/sys_macros.h +++ b/target/hexagon/sys_macros.h @@ -141,6 +141,9 @@ #define fDCINVIDX(REG) #define fDCINVA(REG) do { REG =3D REG; } while (0) /* Nothing to do in qem= u */ =20 +#define fSET_TLB_LOCK() hex_tlb_lock(env); +#define fCLEAR_TLB_LOCK() hex_tlb_unlock(env); + #define fTLB_IDXMASK(INDEX) \ ((INDEX) & (fPOW2_ROUNDUP( \ fCAST4u(hexagon_tlb_get_num_entries(env_archcpu(env)->tlb))) - 1)) diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 626100d43fd..73aca0a4217 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -23,9 +23,17 @@ #include "qapi/error.h" #include "hw/core/qdev-properties.h" #include "fpu/softfloat-helpers.h" +#include "hw/hexagon/hexagon_tlb.h" #include "tcg/tcg.h" #include "exec/gdbstub.h" #include "accel/tcg/cpu-ops.h" +#include "cpu_helper.h" +#include "hex_mmu.h" + +#ifndef CONFIG_USER_ONLY +#include "sys_macros.h" +#include "accel/tcg/cpu-ldst.h" +#endif =20 static ObjectClass *hexagon_cpu_class_by_name(const char *cpu_model) { @@ -43,6 +51,11 @@ static ObjectClass *hexagon_cpu_class_by_name(const char= *cpu_model) } =20 static const Property hexagon_cpu_properties[] =3D { +#ifndef CONFIG_USER_ONLY + DEFINE_PROP_LINK("tlb", HexagonCPU, tlb, TYPE_HEXAGON_TLB, + HexagonTLBState *), + DEFINE_PROP_UINT32("htid", HexagonCPU, htid, 0), +#endif DEFINE_PROP_BOOL("lldb-compat", HexagonCPU, lldb_compat, false), DEFINE_PROP_UNSIGNED("lldb-stack-adjust", HexagonCPU, lldb_stack_adjus= t, 0, qdev_prop_uint32, target_ulong), @@ -269,7 +282,11 @@ static TCGTBCPUState hexagon_get_tb_cpu_state(CPUState= *cs) } =20 #ifndef CONFIG_USER_ONLY + hex_flags =3D FIELD_DP32(hex_flags, TB_FLAGS, MMU_INDEX, + cpu_mmu_index(env_cpu(env), false)); hex_flags =3D FIELD_DP32(hex_flags, TB_FLAGS, PCYCLE_ENABLED, 1); +#else + hex_flags =3D FIELD_DP32(hex_flags, TB_FLAGS, MMU_INDEX, MMU_USER_IDX); #endif =20 return (TCGTBCPUState){ .pc =3D pc, .flags =3D hex_flags }; @@ -289,11 +306,15 @@ static void hexagon_restore_state_to_opc(CPUState *cs, cpu_env(cs)->gpr[HEX_REG_PC] =3D data[0]; } =20 + static void hexagon_cpu_reset_hold(Object *obj, ResetType type) { CPUState *cs =3D CPU(obj); HexagonCPUClass *mcc =3D HEXAGON_CPU_GET_CLASS(obj); CPUHexagonState *env =3D cpu_env(cs); +#ifndef CONFIG_USER_ONLY + HexagonCPU *cpu =3D HEXAGON_CPU(cs); +#endif =20 if (mcc->parent_phases.hold) { mcc->parent_phases.hold(obj, type); @@ -307,7 +328,14 @@ static void hexagon_cpu_reset_hold(Object *obj, ResetT= ype type) memset(env->t_sreg, 0, sizeof(uint32_t) * NUM_SREGS); memset(env->greg, 0, sizeof(uint32_t) * NUM_GREGS); env->wait_next_pc =3D 0; + env->tlb_lock_state =3D HEX_LOCK_UNLOCKED; + env->k0_lock_state =3D HEX_LOCK_UNLOCKED; + env->tlb_lock_count =3D 0; + env->k0_lock_count =3D 0; env->next_PC =3D 0; + + env->t_sreg[HEX_SREG_HTID] =3D cpu->htid; + env->threadId =3D cpu->htid; #endif env->cause_code =3D HEX_EVENT_NONE; } @@ -337,7 +365,15 @@ static void hexagon_cpu_realize(DeviceState *dev, Erro= r **errp) hexagon_hvx_gdb_write_register, gdb_find_static_feature("hexagon-hvx.xml")); =20 +#ifndef CONFIG_USER_ONLY + if (!HEXAGON_CPU(dev)->tlb) { + error_setg(errp, "hexagon cpu requires 'tlb' link property to be s= et"); + return; + } +#endif + qemu_init_vcpu(cs); + cpu_reset(cs); mcc->parent_realize(dev, errp); } diff --git a/target/hexagon/hex_mmu.c b/target/hexagon/hex_mmu.c new file mode 100644 index 00000000000..1c8ccec69ef --- /dev/null +++ b/target/hexagon/hex_mmu.c @@ -0,0 +1,270 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "qemu/log.h" +#include "qemu/main-loop.h" +#include "qemu/qemu-print.h" +#include "cpu.h" +#include "system/cpus.h" +#include "internal.h" +#include "exec/cpu-interrupt.h" +#include "cpu_helper.h" +#include "exec/cputlb.h" +#include "hex_mmu.h" +#include "macros.h" +#include "sys_macros.h" +#include "hw/hexagon/hexagon_tlb.h" +#include "hw/hexagon/hexagon_globalreg.h" + +static inline void hex_log_tlbw(uint32_t index, uint64_t entry) +{ + qemu_log_mask(CPU_LOG_MMU, + "tlbw[%03" PRIu32 "]: 0x%016" PRIx64 "\n", + index, entry); +} + +void hex_tlbw(CPUHexagonState *env, uint32_t index, uint64_t value) +{ + uint32_t myidx =3D fTLB_NONPOW2WRAP(fTLB_IDXMASK(index)); + HexagonTLBState *tlb =3D env_archcpu(env)->tlb; + uint64_t old_entry =3D hexagon_tlb_read(tlb, myidx); + + bool old_entry_valid =3D extract64(old_entry, 63, 1); + if (old_entry_valid && hexagon_cpu_mmu_enabled(env)) { + CPUState *cs =3D env_cpu(env); + tlb_flush(cs); + } + hexagon_tlb_write(tlb, myidx, value); + hex_log_tlbw(myidx, value); +} + +void hex_mmu_on(CPUHexagonState *env) +{ + CPUState *cs =3D env_cpu(env); + qemu_log_mask(CPU_LOG_MMU, "Hexagon MMU turned on!\n"); + tlb_flush(cs); +} + +void hex_mmu_off(CPUHexagonState *env) +{ + CPUState *cs =3D env_cpu(env); + qemu_log_mask(CPU_LOG_MMU, "Hexagon MMU turned off!\n"); + tlb_flush(cs); +} + +void hex_mmu_mode_change(CPUHexagonState *env) +{ + qemu_log_mask(CPU_LOG_MMU, "Hexagon mode change!\n"); + CPUState *cs =3D env_cpu(env); + tlb_flush(cs); +} + +bool hex_tlb_find_match(CPUHexagonState *env, uint32_t VA, + MMUAccessType access_type, hwaddr *PA, int *prot, + uint64_t *size, int32_t *excp, int mmu_idx) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t ssr =3D env->t_sreg[HEX_SREG_SSR]; + uint8_t asid =3D GET_SSR_FIELD(SSR_ASID, ssr); + int cause_code =3D 0; + + bool found =3D hexagon_tlb_find_match(cpu->tlb, asid, VA, access_type, + PA, prot, size, excp, &cause_code, + mmu_idx); + if (cause_code) { + env->cause_code =3D cause_code; + } + return found; +} + +/* Called from tlbp instruction */ +uint32_t hex_tlb_lookup(CPUHexagonState *env, uint32_t ssr, uint32_t VA) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint8_t asid =3D GET_SSR_FIELD(SSR_ASID, ssr); + int cause_code =3D 0; + + uint32_t result =3D hexagon_tlb_lookup(cpu->tlb, asid, VA, &cause_code= ); + if (cause_code) { + env->cause_code =3D cause_code; + } + return result; +} + +/* + * Return codes: + * 0 or positive index of match + * -1 multiple matches + * -2 no match + */ +int hex_tlb_check_overlap(CPUHexagonState *env, uint64_t entry, uint64_t i= ndex) +{ + HexagonCPU *cpu =3D env_archcpu(env); + return hexagon_tlb_check_overlap(cpu->tlb, entry, index); +} + +void dump_mmu(Monitor *mon, CPUHexagonState *env) +{ + HexagonCPU *cpu =3D env_archcpu(env); + hexagon_tlb_dump(mon, cpu->tlb); +} + +static inline void print_thread(const char *str, CPUState *cs) +{ + g_assert(bql_locked()); + CPUHexagonState *thread =3D cpu_env(cs); + bool is_stopped =3D cpu_is_stopped(cs); + int exe_mode =3D get_exe_mode(thread); + hex_lock_state_t lock_state =3D thread->tlb_lock_state; + qemu_log_mask(CPU_LOG_MMU, + "%s: threadId =3D %" PRIu32 ": %s," + " exe_mode =3D %s, tlb_lock_state =3D %s\n", + str, + thread->threadId, + is_stopped ? "stopped" : "running", + exe_mode =3D=3D HEX_EXE_MODE_OFF ? "off" : + exe_mode =3D=3D HEX_EXE_MODE_RUN ? "run" : + exe_mode =3D=3D HEX_EXE_MODE_WAIT ? "wait" : + exe_mode =3D=3D HEX_EXE_MODE_DEBUG ? "debug" : + "unknown", + lock_state =3D=3D HEX_LOCK_UNLOCKED ? "unlocked" : + lock_state =3D=3D HEX_LOCK_WAITING ? "waiting" : + lock_state =3D=3D HEX_LOCK_OWNER ? "owner" : + "unknown"); +} + +static inline void print_thread_states(const char *str) +{ + CPUState *cs; + CPU_FOREACH(cs) { + print_thread(str, cs); + } +} + +void hex_tlb_lock(CPUHexagonState *env) +{ + qemu_log_mask(CPU_LOG_MMU, "hex_tlb_lock: " TARGET_FMT_ld "\n", + env->threadId); + BQL_LOCK_GUARD(); + g_assert((env->tlb_lock_count =3D=3D 0) || (env->tlb_lock_count =3D=3D= 1)); + + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t syscfg =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_SYSCFG, + env->threadId) : 0; + uint8_t tlb_lock =3D GET_SYSCFG_FIELD(SYSCFG_TLBLOCK, syscfg); + if (tlb_lock) { + if (env->tlb_lock_state =3D=3D HEX_LOCK_QUEUED) { + env->next_PC +=3D 4; + env->tlb_lock_count++; + env->tlb_lock_state =3D HEX_LOCK_OWNER; + SET_SYSCFG_FIELD(env, SYSCFG_TLBLOCK, 1); + return; + } + if (env->tlb_lock_state =3D=3D HEX_LOCK_OWNER) { + qemu_log_mask(CPU_LOG_MMU | LOG_GUEST_ERROR, + "Double tlblock at PC: 0x%" PRIx32 + ", thread may hang\n", + env->next_PC); + env->next_PC +=3D 4; + CPUState *cs =3D env_cpu(env); + cpu_interrupt(cs, CPU_INTERRUPT_HALT); + return; + } + env->tlb_lock_state =3D HEX_LOCK_WAITING; + CPUState *cs =3D env_cpu(env); + cpu_interrupt(cs, CPU_INTERRUPT_HALT); + } else { + env->next_PC +=3D 4; + env->tlb_lock_count++; + env->tlb_lock_state =3D HEX_LOCK_OWNER; + SET_SYSCFG_FIELD(env, SYSCFG_TLBLOCK, 1); + } + + if (qemu_loglevel_mask(CPU_LOG_MMU)) { + qemu_log_mask(CPU_LOG_MMU, "Threads after hex_tlb_lock:\n"); + print_thread_states("\tThread"); + } +} + +void hex_tlb_unlock(CPUHexagonState *env) +{ + BQL_LOCK_GUARD(); + g_assert((env->tlb_lock_count =3D=3D 0) || (env->tlb_lock_count =3D=3D= 1)); + + /* Nothing to do if the TLB isn't locked by this thread */ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t syscfg =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_SYSCFG, + env->threadId) : 0; + uint8_t tlb_lock =3D GET_SYSCFG_FIELD(SYSCFG_TLBLOCK, syscfg); + if ((tlb_lock =3D=3D 0) || + (env->tlb_lock_state !=3D HEX_LOCK_OWNER)) { + qemu_log_mask(LOG_GUEST_ERROR, + "thread %" PRIu32 " attempted to tlbunlock" + " without having the lock, tlb_lock state =3D %d\n", + env->threadId, env->tlb_lock_state); + g_assert(env->tlb_lock_state !=3D HEX_LOCK_WAITING); + return; + } + + env->tlb_lock_count--; + env->tlb_lock_state =3D HEX_LOCK_UNLOCKED; + SET_SYSCFG_FIELD(env, SYSCFG_TLBLOCK, 0); + + /* Look for a thread to unlock */ + unsigned int this_threadId =3D env->threadId; + CPUHexagonState *unlock_thread =3D NULL; + CPUState *cs; + CPU_FOREACH(cs) { + CPUHexagonState *thread =3D cpu_env(cs); + + /* + * The hardware implements round-robin fairness, so we look for th= reads + * starting at env->threadId + 1 and incrementing modulo the numbe= r of + * threads. + * + * To implement this, we check if thread is a earlier in the modulo + * sequence than unlock_thread. + * if unlock thread is higher than this thread + * thread must be between this thread and unlock_thread + * else + * thread higher than this thread is ahead of unlock_thread + * thread must be lower then unlock thread + */ + if (thread->tlb_lock_state =3D=3D HEX_LOCK_WAITING) { + if (!unlock_thread) { + unlock_thread =3D thread; + } else if (unlock_thread->threadId > this_threadId) { + if (this_threadId < thread->threadId && + thread->threadId < unlock_thread->threadId) { + unlock_thread =3D thread; + } + } else { + if (thread->threadId > this_threadId) { + unlock_thread =3D thread; + } + if (thread->threadId < unlock_thread->threadId) { + unlock_thread =3D thread; + } + } + } + } + if (unlock_thread) { + cs =3D env_cpu(unlock_thread); + print_thread("\tWaiting thread found", cs); + unlock_thread->tlb_lock_state =3D HEX_LOCK_QUEUED; + SET_SYSCFG_FIELD(unlock_thread, SYSCFG_TLBLOCK, 1); + cpu_interrupt(cs, CPU_INTERRUPT_TLB_UNLOCK); + } + + if (qemu_loglevel_mask(CPU_LOG_MMU)) { + qemu_log_mask(CPU_LOG_MMU, "Threads after hex_tlb_unlock:\n"); + print_thread_states("\tThread"); + } + +} --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397180; cv=none; d=zohomail.com; s=zohoarc; b=H3iBl4BYjhGn4uZ+2u8tk0WuID3AO8wklx2fohEllsx/aftOL+uWAYW8Wp2z40KEXyWa7J1J1AUlKhVAlbtMPRMKw2AjwWHjn++kARvf74ISnm2gjTCNoBBhOfjBSJ2ObN/vSViqCs3MmXWO9pDw5b6U3QSXr0NezSPkb+xzTdA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397180; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ohgluABwS6D8saHfHv2eOLCkXGQOTd4JgFhw3pUO1aE=; b=FETCA627cGXxEHTqgVDwBAWwuGavoSmyh4yTNzd7f+qJNXVRY2gjAZAOQC8R/zmJ6OhYtMY/Nu3mnABEipgUuDHN0FAs7PcSrK3TAomSGMo4c92/vy7FQxWs9QtpjmQ9cIXrY8iKLxRRVmcEGLdKpgSVT4KwlquuTOPLeNSEphY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782397180483403.65324299564463; Thu, 25 Jun 2026 07:19:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wckuO-00020g-Js; Thu, 25 Jun 2026 10:18:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wckuM-0001sI-GH for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:18:22 -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 1wckuK-0000BA-7v for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:18:22 -0400 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9jvpR1723469 for ; Thu, 25 Jun 2026 14:18:09 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0j7dvnvx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:18:09 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30c62861b3bso1149710eec.0 for ; Thu, 25 Jun 2026 07:18:09 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.18.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:18: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= ohgluABwS6D8saHfHv2eOLCkXGQOTd4JgFhw3pUO1aE=; b=g7Xbf+sId0W38I4P bJ/1SsxHpYfmTYsK3Rvfjw1Ks0BRXm5sru2fk1Lb3g324gePaDmjB2SM5hiptTco jhSQ2ksYW6/JiDXu8YpJWnwKGLhFcxtQWFYx9m9UFEXOrTVeF+XCVy/bJGQ3jMc+ otXMm4VYEFKe44bDq2Ls/SXcSE2z1aKLuKSgL/qa/TkqWKts7xJSo+b+/NvyWIW1 rCFc5xfOlzLABXIXgm/bD0njVrR8L6uv0Z1CRasbzihbD/hiAkNKJrKEjoZDVtGO SAR8WAtU/GLH7txup+WMnQiMKWYmMTsd8CYjULp/Csy8222IhYONG3vea/eiPm4n CZEW+Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397088; x=1783001888; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ohgluABwS6D8saHfHv2eOLCkXGQOTd4JgFhw3pUO1aE=; b=J2nEqll2ZRTBh85+MBX7OJwrJvJnN5I+uvB4RkQZKVypvtxkz7IblRDvl+mHPyGULD V0t5oLpf6c5dUCbT2gX4zjkhUrcIMe8/msh7/OWq8hKLoCo0iuv1z0mE/zubbBHcDX5y pr5hm3daQFtN7+xpTKc9c0M68oV3Mee+f9+I+sdqQu1f1/cA8xDUeh6fcc9mHFfTuE8P 3ZqPaX6gcr7+8BmiCrdphq5b3or//+zn2fsa2A6yMbQ6Z920iapu7nBLZNGxk0o+7zBB N4FCBoJ7D+Qb8PTGTNDbDWJpj49ahHO5oLT0VTN+5Nsk7W1yJEdfNF1wlDFmdlyECsjH rRlw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397088; x=1783001888; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ohgluABwS6D8saHfHv2eOLCkXGQOTd4JgFhw3pUO1aE=; b=HeSxrnGq7ZRpMAIwYzbbOJ+OGXNEnniycMnskI+JE6u4f0CrpQNQKU0Qwvu2J936Ls hKqeVmeh95uAgXXYyLwbDXIdFOVwajV/j2/NcF+gO5nZE32QWAOVhz/PIZCS/ay1+SYC H6oPb0Y9S2p1gcwD3/FmWguYux48f899naAaxGuByhDsUUtkcStCLSYL+lxHmRbXekkl lv53DTeyCSPLrPsb3lWHFcjPDmzOl6ef673Gg3bZ11Ivs+dnX0tAr+GK4VAlUIdgF8+8 SqmNbt6G2FqQMKENi/g0cGQBxfBU/R+shqoDaUk6ITVBKTRVZfEvjY/aA9nur8HSLRC6 7fKg== X-Gm-Message-State: AOJu0YxHXv1na1MxxZ/WEot9an6IYobz+lVt4w7PpiUPAuGK40CGHHc5 t0tKgY6CEl+phcN/pjgZUcbAZiadquGDyWP6TAwqua3HBU0LIE/dAJJKFbLKiAeYnGTIQZv76a1 7aFk42MvkQDqaKWNCK++t0G3nQHwCVAWDcayX0d59BYlD5QVlix6YoDd+PkEr33d72w== X-Gm-Gg: AfdE7ckClH12vK2/SDDjyeSfhFdGeEj6x/aBoo5bsZD8TVTwVrmK+0JVsSze0PJ5WAN k86F6g4ckW4Hp0+T+nNiOEM7dMjToJRq9U9PaAS+x8G1V/C9ohKZvM+FpyUI3tie31Cr/VGZE/F fS8YShWanESEaLEkujbd1gyGN2I8ltWdcc+lLLhgGraWklT7+9jMWcORyeZz8oD+JzTFCVPjfTD XSBnXDETCpov67/jLDVpFpi5D7pEjY6ZAew6rExGm6Cst8n8KvVzuYuM2zQuciT8v6A6XkXMgX5 j6MIPmqZqqZkhg88+n9flKBMrVpRv5f0hMgf9rERd/YlOCQv0Oq2p7lDr9VIELyRgD7bYRkr8H+ 4sGMAE9lbR3CP59qcK5LGo3IhrVHJLWr5HBZIKwaKHMDx/8ApM0GUzew1RYI= X-Received: by 2002:a05:7301:2f8a:b0:304:6d18:3646 with SMTP id 5a478bee46e88-30c8489175amr3433140eec.0.1782397085660; Thu, 25 Jun 2026 07:18:05 -0700 (PDT) X-Received: by 2002:a05:7301:2f8a:b0:304:6d18:3646 with SMTP id 5a478bee46e88-30c8489175amr3433106eec.0.1782397085155; Thu, 25 Jun 2026 07:18:05 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 38/76] target/hexagon: Define f{S,G}ET_FIELD macros Date: Thu, 25 Jun 2026 07:15:55 -0700 Message-Id: <20260625141633.449487-39-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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: YpE9lzYRCLC1mU-EBj2n5Un1Bg-s-5mW X-Authority-Analysis: v=2.4 cv=NvHhtcdJ c=1 sm=1 tr=0 ts=6a3d38a1 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=OC-ZKJ6AczBSh3OnBRYA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX9tww/ty4RwPy f0eIxUo+wtVOX6A1Ed/pVmJ0G483luY139r3n5wrcCdGVZ5/qV8z+vkuYjNQrmCO3+WAQsJkezA bqx9GbIJCH2HtDsW157r/c6AZ6wKnNU= X-Proofpoint-ORIG-GUID: YpE9lzYRCLC1mU-EBj2n5Un1Bg-s-5mW X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfXwhf+aiZ7/AGY 30BoGSsz6JFqXueIJFaAxUjBTBQQDSFx1KYQYmd+fxXpivTqsWGzsaIConkV4FIT+seeOdxcmfB 30VvVea5vGrksTPSMJcdj3VSHu2AYFolaobIFov8/4qXtJpQeSJ5qyDm9s+Mc+kRRCsIotXEoJu INdDnnJ1fY4S4Ddx01fjG9rAeDllRbM/354FtNz1uuqHiUKI7qnztLBYPf6BdVHFn/J443G/V73 N/W57keW+P7/4M9Jg8HztGP/A0SlI5vUiyIFpdfe4OfM1aW1iBDXB0l79GrotQ59147bs9cZoK+ C+Fr/bFEk9nRFhs9A1SF+xRTTiE6rfQYRzKwbscb5r3O7u9Aan4ksTP9B5RPH9BsbZCuS+qzbss 4LjCaWv6puIBw4eKBnnOkmhkya6Own+qkM8YOrYWuvodayZSP5bngVfQK2gkwQ+5gwgxbUShwsW EGM8nUh8PFnSIHnG5/w== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 suspectscore=0 adultscore=0 impostorscore=0 phishscore=0 spamscore=0 bulkscore=0 lowpriorityscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397182487158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/macros.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/target/hexagon/macros.h b/target/hexagon/macros.h index 38a43647dd9..041e68a150e 100644 --- a/target/hexagon/macros.h +++ b/target/hexagon/macros.h @@ -653,6 +653,16 @@ static inline TCGv gen_read_ireg(TCGv result, TCGv val= , int shift) reg_field_info[FIELD].width, \ reg_field_info[FIELD].offset) =20 +#define fGET_FIELD(VAL, FIELD) \ + fEXTRACTU_BITS(VAL, \ + reg_field_info[FIELD].width, \ + reg_field_info[FIELD].offset) +#define fSET_FIELD(VAL, FIELD, NEWVAL) \ + fINSERT_BITS(VAL, \ + reg_field_info[FIELD].width, \ + reg_field_info[FIELD].offset, \ + (NEWVAL)) + #ifdef QEMU_GENERATE #define fDCZEROA(REG) \ do { \ --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782397204; cv=none; d=zohomail.com; s=zohoarc; b=fQj2VSfN6CJxH+U0lRjXCIckRQOjUPtzUD6/QZDUYFj6GWwhmTbs9L4rAHesMktqjjXqey8BXDjxamB+S07kRrTgC6jGg+BgTEOT1v+pCShfyDhSzKY81OG+UBvub4Ki7GLwmvdQEMnDuh6YlJluWlSXEOWRJkmLGWCiVSh8KXc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782397204; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=G8bosUNkIisGhuX8AG1Z5l9LVe/reA0/IE25v64WV3U=; b=JlPXcP5kXq6qMoUYC5wXzqU84VjwUamKmWVFucqM57j2fBVYpunwJEWfAivIRyQ2CYWwGFLv1qdqUCihUgCCiywsmGiOm27BWOQLURnV+sTO63txUb6iY8nDzfILSmJ3NGVmbvzcj8irPnyd+bkrSsGRGuFfDgj7i5BjUU6Xc2w= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782397204942348.9330999220914; Thu, 25 Jun 2026 07:20:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wckug-0002Og-8C; Thu, 25 Jun 2026 10:18:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wckuW-0002Is-6o for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:18:33 -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 1wckuQ-0000C6-KK for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:18:31 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9k0Xq2010812 for ; Thu, 25 Jun 2026 14:18:15 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0uhmjk2j-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:18:15 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c62861b3bso1150022eec.0 for ; Thu, 25 Jun 2026 07:18:15 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8b1ae5sm10168446eec.16.2026.06.25.07.18.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:18:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= G8bosUNkIisGhuX8AG1Z5l9LVe/reA0/IE25v64WV3U=; b=NC5w/0TIQHIaQq51 PuWiCVYp+h1AHaifAKSgM7wMQpo/PskOlTRRzFAI4OFetGKDRoT0NJzEmZmUhinH QeQSRmoo7mHFcaKszCmtU1ks1qn6Ms4hzn36rC4arz1hrfl3S497vv8ryz2SToth YPEQWUITK3II5Q6bZ8PYMIaHf961SjnY2tuX2XOzTocqYJFk2eC5PLjhgAnb1st3 duPZnsDqSNuTf+Ie22WA2JqkQK7Ar6DJCR56UySnRGNmg2Sd0Il86XrLhS+2geVy kmlW1/7dox5WfyAGzJw3i/NnP7eQr4SG54JgnKmyci/E9koV6R/ToCr9urVm3fWj D0xokQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782397095; x=1783001895; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=G8bosUNkIisGhuX8AG1Z5l9LVe/reA0/IE25v64WV3U=; b=Uvd3khTf3Pb5J3qiEovdxIZ5NyP6jaWMXv+OUdsNRRjuMHTiPmPO+9vSXvki0o9gJJ nfyQ47Zbqf1MRlRt20+m0BLZ2WWOvh47aijzTVBFP/zeOQuXvsxjyRWcugqq4gnkaKAt yy1deMs5IpYDZuF5SnWICTRloXwiBa149YTX/j9AiX95yeuQVp90P/9ptvJGyDosSonI W/uxiOwyRTiGgrtrdXjSXYvY/w9SIVBA2GyOlyxmR6iL/Qx0/FPoqYMrMWzWKxLLWCuz ZVrH6JMMj6cnbzWFauI6ouHhHvvjYfq/Q88CWYta7EpVlGnvzNsEvhTU8fZ0/ZC/QiTN O2Wg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782397095; x=1783001895; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=G8bosUNkIisGhuX8AG1Z5l9LVe/reA0/IE25v64WV3U=; b=FAqpgPiOQ9ark220Kqm6WLB9gM3RmtF80OGGWuIKD66vRrBFGE0RcbqMLvwPbmkClJ lKS6bluhHMkOFLuV9pnmo/cQMfy+fchF8i2HCnADaUqjCJoHat6PfwHpewkOfWeal6E1 SwHTsHw0rMBsrNp8TzBQ+7o5x/8kFnJ+oOa7UKUAoXf3KY5QJ5m7vx8MAojEen7zdCJo WtW+6ynHY/uO0BREalrtQzwT9d7uZt1+eiNHMKNr/uoMNERN4YQEzQ3WShAdPUs641j2 WGSkDyQ5aN1StBZilF2mPlfZqWSWJpCrAy2lYtMLuPDOVZji44pqNQT1FP1XVLfNXWuF x9SA== X-Gm-Message-State: AOJu0Yw2y2+hAm/q27zgKmbsT50JZE8wRhMe/h06FNLhCo041V1CJEM2 pQ/u8RAYDmbB8h3NNK6tlPHU3tlNXSS1tSH1iMSDirT6vohu/Oad3t81p1inqTgF9R7NtxNWwml 8PxAt0Xrf2lzEKhuSo128SLWeZX743r4jJatz77O8vi//Kwu57xIRJMST0SNKyQS6RQ== X-Gm-Gg: AfdE7ckj9ZOvEG8vm7KuZe3hYK5Qu/dAdouUbeLsUJLt5/cC5kVLrDNjrP7pG/OC+OE Vd0E43Y5peUAGfGGO6iSjKbbOGAeDQMkWnCSEE5TDXBv9OKO7oY3P9Be3ayt+HJi/+IGQz1P69c RMvqSoE8tS9cGn5l4jV9BWvgdmyT20WE6tyaXesvIigXtfA8olHH+2SmlRDZLQAhKeexW+fzQlA Jqy8SCK/NmjIOXBM6uBVS7cGtQcyOjbOVThIvyE75hIoOElbY15QaQHwWYAiZ72KwxwsBnmdkHg Tjor8b9BDyR//PIikNVt89h+TN05Z9FBb03u2uHb9nXYX5S69M8bcie46qsUH0aIeNenFcSbxFc NxfTqJwnS1SZSRxeQ6XdyrZkmr+Bs/DKresGC1wL1DG/m/NJk9kiJmWvnB0c= X-Received: by 2002:a05:7300:3202:b0:30c:7fc9:ddef with SMTP id 5a478bee46e88-30c84b8680cmr3134089eec.10.1782397087888; Thu, 25 Jun 2026 07:18:07 -0700 (PDT) X-Received: by 2002:a05:7300:3202:b0:30c:7fc9:ddef with SMTP id 5a478bee46e88-30c84b8680cmr3134045eec.10.1782397087170; Thu, 25 Jun 2026 07:18:07 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Sid Manning , Michael Lambert , Pierrick Bouvier Subject: [PULL v3 39/76] target/hexagon: Add hex_interrupts support Date: Thu, 25 Jun 2026 07:15:56 -0700 Message-Id: <20260625141633.449487-40-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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=cqerVV4i c=1 sm=1 tr=0 ts=6a3d38a7 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=_4Jc8uW0NYDJnYJF3oQA:9 a=QEXdDO2ut3YA:10 a=O8hF6Hzn-FEA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX68rDLXN4P5P0 AMLM08Ne45f49m6alw7675Wj1W7K2y7SwYFLbOzpYgh46lQEpMiG2QmC4MO56Gbaq86Fboq7AfK aqpHPWSWEUkMA1k8GLK0btrv872Smd4Wb0FRJ5YDxQyrCrE1ryDalU+yPcntcQpDza091D4sM6u 8r421V/Bn+P7BsVmJSoKn+OJrKeh+5wrODDo7I+Xr6U/CbXa1uKNjssdC8DtKvtZW/NOdm1upRv LaBvoIjAdj2+b+MCMD8Rrmm8yup+AANwQVY/Ao4HA1A12zPnCtT+3IIVbFSUk2sFk17yyox7npn /sA9YX63EGKIYGF8Fpt91lQR+UQ+0RVJgQjsGK3j0eHJpSsB58Wlz7Q1Xc8GajGAF66UWe6VY// H6/yL5iNJe62Zt+qHNazfJ50YecaWWWH2rnxAiVIeULMgQrgpEt1/bTVauE09tDks90bJPMl4Z0 +huceKH7CCpMGE57ovw== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyMiBTYWx0ZWRfX1AXsK9cBKorl n+p+tTu7fITUh9UD2+qAPERe8U0mw4daZc5Lgo1SfomRIvk/wPabbGldAV27oLJoUCVh7T0sBgB 67/q/c4oRhSwJTzff3jVpeinFahgY0Y= X-Proofpoint-GUID: JsaHAwjtXYd1COuk6eG25oGNvTdENW8u X-Proofpoint-ORIG-GUID: JsaHAwjtXYd1COuk6eG25oGNvTdENW8u X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 clxscore=1015 bulkscore=0 phishscore=0 priorityscore=1501 malwarescore=0 suspectscore=0 impostorscore=0 spamscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250122 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782397206681158500 From: Brian Cain Co-authored-by: Taylor Simpson Co-authored-by: Sid Manning Co-authored-by: Michael Lambert Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 2 + target/hexagon/hex_interrupts.h | 15 ++ target/hexagon/cpu.c | 4 + target/hexagon/hex_interrupts.c | 371 ++++++++++++++++++++++++++++++++ 4 files changed, 392 insertions(+) create mode 100644 target/hexagon/hex_interrupts.h create mode 100644 target/hexagon/hex_interrupts.c diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index dbdc456d732..1b225e35abc 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -197,6 +197,8 @@ struct ArchCPU { bool short_circuit; #ifndef CONFIG_USER_ONLY HexagonTLBState *tlb; + uint32_t boot_addr; + HexagonGlobalRegState *globalregs; uint32_t htid; #endif }; diff --git a/target/hexagon/hex_interrupts.h b/target/hexagon/hex_interrupt= s.h new file mode 100644 index 00000000000..6b6f5403633 --- /dev/null +++ b/target/hexagon/hex_interrupts.h @@ -0,0 +1,15 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HEX_INTERRUPTS_H +#define HEX_INTERRUPTS_H + +bool hex_check_interrupts(CPUHexagonState *env); +void hex_clear_interrupts(CPUHexagonState *env, uint32_t mask, uint32_t ty= pe); +void hex_raise_interrupts(CPUHexagonState *env, uint32_t mask, uint32_t ty= pe); +void hex_interrupt_update(CPUHexagonState *env); + +#endif diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 73aca0a4217..eb1f7049298 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -54,6 +54,9 @@ static const Property hexagon_cpu_properties[] =3D { #ifndef CONFIG_USER_ONLY DEFINE_PROP_LINK("tlb", HexagonCPU, tlb, TYPE_HEXAGON_TLB, HexagonTLBState *), + DEFINE_PROP_UINT32("exec-start-addr", HexagonCPU, boot_addr, 0xfffffff= f), + DEFINE_PROP_LINK("global-regs", HexagonCPU, globalregs, + TYPE_HEXAGON_GLOBALREG, HexagonGlobalRegState *), DEFINE_PROP_UINT32("htid", HexagonCPU, htid, 0), #endif DEFINE_PROP_BOOL("lldb-compat", HexagonCPU, lldb_compat, false), @@ -336,6 +339,7 @@ static void hexagon_cpu_reset_hold(Object *obj, ResetTy= pe type) =20 env->t_sreg[HEX_SREG_HTID] =3D cpu->htid; env->threadId =3D cpu->htid; + env->gpr[HEX_REG_PC] =3D cpu->boot_addr; #endif env->cause_code =3D HEX_EVENT_NONE; } diff --git a/target/hexagon/hex_interrupts.c b/target/hexagon/hex_interrupt= s.c new file mode 100644 index 00000000000..3534481da24 --- /dev/null +++ b/target/hexagon/hex_interrupts.c @@ -0,0 +1,371 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "qemu/log.h" +#include "qemu/main-loop.h" +#include "cpu.h" +#include "cpu_helper.h" +#include "exec/cpu-interrupt.h" +#include "hex_interrupts.h" +#include "macros.h" +#include "sys_macros.h" +#include "system/cpus.h" +#include "hw/hexagon/hexagon_globalreg.h" + +static bool hex_is_qualified_for_int(CPUHexagonState *env, int int_num); + +static bool get_syscfg_gie(CPUHexagonState *env) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t syscfg =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_SYSCFG, + env->threadId); + return GET_SYSCFG_FIELD(SYSCFG_GIE, syscfg); +} + +static bool get_ssr_ex(CPUHexagonState *env) +{ + uint32_t ssr =3D env->t_sreg[HEX_SREG_SSR]; + return GET_SSR_FIELD(SSR_EX, ssr); +} + +static bool get_ssr_ie(CPUHexagonState *env) +{ + uint32_t ssr =3D env->t_sreg[HEX_SREG_SSR]; + return GET_SSR_FIELD(SSR_IE, ssr); +} + +/* Do these together so we only have to call hexagon_modify_ssr once */ +static void set_ssr_ex_cause(CPUHexagonState *env, int ex, uint32_t cause) +{ + uint32_t old, new; + + old =3D env->t_sreg[HEX_SREG_SSR]; + SET_SYSTEM_FIELD(env, HEX_SREG_SSR, SSR_EX, ex); + SET_SYSTEM_FIELD(env, HEX_SREG_SSR, SSR_CAUSE, cause); + new =3D env->t_sreg[HEX_SREG_SSR]; + hexagon_modify_ssr(env, new, old); +} + +static bool get_iad_bit(CPUHexagonState *env, int int_num) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t ipendad =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_IPENDAD, + env->threadId); + uint32_t iad =3D GET_FIELD(IPENDAD_IAD, ipendad); + return extract32(iad, int_num, 1); +} + +static void set_iad_bit(CPUHexagonState *env, int int_num, int val) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t ipendad =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_IPENDAD, + env->threadId); + uint32_t iad =3D GET_FIELD(IPENDAD_IAD, ipendad); + iad =3D deposit32(iad, int_num, 1, val); + fSET_FIELD(ipendad, IPENDAD_IAD, iad); + hexagon_globalreg_write(cpu->globalregs, HEX_SREG_IPENDAD, + ipendad, env->threadId); +} + +static uint32_t get_ipend(CPUHexagonState *env) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t ipendad =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_IPENDAD, + env->threadId); + return GET_FIELD(IPENDAD_IPEND, ipendad); +} + +static inline bool get_ipend_bit(CPUHexagonState *env, int int_num) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t ipendad =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_IPENDAD, + env->threadId); + uint32_t ipend =3D GET_FIELD(IPENDAD_IPEND, ipendad); + return extract32(ipend, int_num, 1); +} + +static void clear_ipend(CPUHexagonState *env, uint32_t mask) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t ipendad =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_IPENDAD, + env->threadId); + uint32_t ipend =3D GET_FIELD(IPENDAD_IPEND, ipendad); + ipend &=3D ~mask; + fSET_FIELD(ipendad, IPENDAD_IPEND, ipend); + hexagon_globalreg_write(cpu->globalregs, HEX_SREG_IPENDAD, + ipendad, env->threadId); +} + +static void set_ipend(CPUHexagonState *env, uint32_t mask) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t ipendad =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_IPENDAD, + env->threadId); + uint32_t ipend =3D GET_FIELD(IPENDAD_IPEND, ipendad); + ipend |=3D mask; + fSET_FIELD(ipendad, IPENDAD_IPEND, ipend); + hexagon_globalreg_write(cpu->globalregs, HEX_SREG_IPENDAD, + ipendad, env->threadId); +} + +static void set_ipend_bit(CPUHexagonState *env, int int_num, int val) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t ipendad =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_IPENDAD, + env->threadId); + uint32_t ipend =3D GET_FIELD(IPENDAD_IPEND, ipendad); + ipend =3D deposit32(ipend, int_num, 1, val); + fSET_FIELD(ipendad, IPENDAD_IPEND, ipend); + hexagon_globalreg_write(cpu->globalregs, HEX_SREG_IPENDAD, + ipendad, env->threadId); +} + +static bool get_imask_bit(CPUHexagonState *env, int int_num) +{ + uint32_t imask =3D env->t_sreg[HEX_SREG_IMASK]; + return extract32(imask, int_num, 1); +} + +static uint32_t get_prio(CPUHexagonState *env) +{ + uint32_t stid =3D env->t_sreg[HEX_SREG_STID]; + return extract32(stid, reg_field_info[STID_PRIO].offset, + reg_field_info[STID_PRIO].width); +} + +static void set_elr(CPUHexagonState *env, uint32_t val) +{ + env->t_sreg[HEX_SREG_ELR] =3D val; +} + +static bool get_schedcfgen(CPUHexagonState *env) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t schedcfg =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_SCHEDCFG, + env->threadId); + return extract32(schedcfg, reg_field_info[SCHEDCFG_EN].offset, + reg_field_info[SCHEDCFG_EN].width); +} + +static bool is_lowest_prio(CPUHexagonState *env, int int_num) +{ + uint32_t my_prio =3D get_prio(env); + CPUState *cs; + + CPU_FOREACH(cs) { + CPUHexagonState *hex_env =3D cpu_env(cs); + if (!hex_is_qualified_for_int(hex_env, int_num)) { + continue; + } + + /* Note that lower values indicate *higher* priority */ + if (my_prio < get_prio(hex_env)) { + return false; + } + } + return true; +} + +static bool hex_is_qualified_for_int(CPUHexagonState *env, int int_num) +{ + bool syscfg_gie =3D get_syscfg_gie(env); + bool iad =3D get_iad_bit(env, int_num); + bool ssr_ie =3D get_ssr_ie(env); + bool ssr_ex =3D get_ssr_ex(env); + bool imask =3D get_imask_bit(env, int_num); + + return syscfg_gie && !iad && ssr_ie && !ssr_ex && !imask; +} + +static void clear_pending_locks(CPUHexagonState *env) +{ + g_assert(bql_locked()); + if (env->k0_lock_state =3D=3D HEX_LOCK_WAITING) { + env->k0_lock_state =3D HEX_LOCK_UNLOCKED; + } + if (env->tlb_lock_state =3D=3D HEX_LOCK_WAITING) { + env->tlb_lock_state =3D HEX_LOCK_UNLOCKED; + } +} + +static bool should_not_exec(CPUHexagonState *env) +{ + return (get_exe_mode(env) =3D=3D HEX_EXE_MODE_WAIT); +} + +static void restore_state(CPUHexagonState *env, bool int_accepted) +{ + CPUState *cs =3D env_cpu(env); + cpu_reset_interrupt(cs, CPU_INTERRUPT_HARD | CPU_INTERRUPT_SWI); + if (!int_accepted && should_not_exec(env)) { + cpu_interrupt(cs, CPU_INTERRUPT_HALT); + } +} + +static void hex_accept_int(CPUHexagonState *env, int int_num) +{ + CPUState *cs =3D env_cpu(env); + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t evb =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_EVB, + env->threadId); + const int exe_mode =3D get_exe_mode(env); + const bool in_wait_mode =3D exe_mode =3D=3D HEX_EXE_MODE_WAIT; + + set_ipend_bit(env, int_num, 0); + set_iad_bit(env, int_num, 1); + set_ssr_ex_cause(env, 1, HEX_CAUSE_INT0 | int_num); + cs->exception_index =3D HEX_EVENT_INT0 + int_num; + env->cause_code =3D HEX_EVENT_INT0 + int_num; + clear_pending_locks(env); + if (in_wait_mode) { + qemu_log_mask(CPU_LOG_INT, + "%s: thread " TARGET_FMT_ld " resuming, exiting WAIT mode\n", + __func__, env->threadId); + set_elr(env, env->wait_next_pc); + clear_wait_mode(env); + cs->halted =3D false; + } else if (env->k0_lock_state =3D=3D HEX_LOCK_WAITING) { + g_assert_not_reached(); + } else { + set_elr(env, env->gpr[HEX_REG_PC]); + } + env->gpr[HEX_REG_PC] =3D evb | (cs->exception_index << 2); + if (get_ipend(env) =3D=3D 0) { + restore_state(env, true); + } +} + + +bool hex_check_interrupts(CPUHexagonState *env) +{ + CPUState *cs =3D env_cpu(env); + bool int_handled =3D false; + bool ssr_ex =3D get_ssr_ex(env); + int max_ints =3D 32; + bool schedcfgen; + + /* Early exit if nothing pending */ + if (get_ipend(env) =3D=3D 0) { + restore_state(env, false); + return false; + } + + BQL_LOCK_GUARD(); + /* Only check priorities when schedcfgen is set */ + schedcfgen =3D get_schedcfgen(env); + for (int i =3D 0; i < max_ints; i++) { + if (!get_iad_bit(env, i) && get_ipend_bit(env, i)) { + bool syscfg_gie, iad, ssr_ie, imask; + + qemu_log_mask(CPU_LOG_INT, + "%s: thread[" TARGET_FMT_ld "] " + "pc =3D 0x" TARGET_FMT_lx + " found int %d\n", + __func__, env->threadId, + env->gpr[HEX_REG_PC], i); + if (hex_is_qualified_for_int(env, i) && + (!schedcfgen || is_lowest_prio(env, i))) { + qemu_log_mask(CPU_LOG_INT, + "%s: thread[" TARGET_FMT_ld "] int %d handle= d_\n", + __func__, env->threadId, i); + hex_accept_int(env, i); + int_handled =3D true; + break; + } + syscfg_gie =3D get_syscfg_gie(env); + iad =3D get_iad_bit(env, i); + ssr_ie =3D get_ssr_ie(env); + imask =3D get_imask_bit(env, i); + + qemu_log_mask(CPU_LOG_INT, + "%s: thread[" TARGET_FMT_ld "] " + "int %d not handled, qualified: %d, " + "schedcfg_en: %d, low prio %d\n", + __func__, env->threadId, i, + hex_is_qualified_for_int(env, i), schedcfgen, + is_lowest_prio(env, i)); + + qemu_log_mask(CPU_LOG_INT, + "%s: thread[" TARGET_FMT_ld "] " + "int %d not handled, GIE %d, iad %d, " + "SSR:IE %d, SSR:EX: %d, imask bit %d\n", + __func__, env->threadId, i, syscfg_gie, iad, ssr= _ie, + ssr_ex, imask); + } + } + + /* + * If we didn't handle the interrupt and it wasn't + * because we were in EX state, then we won't be able + * to execute the interrupt on this CPU unless something + * changes in the CPU state. Clear the interrupt_request bits + * while preserving the IPEND bits, and we can re-assert the + * interrupt_request bit(s) when we execute one of those instructions. + */ + if (!int_handled && !ssr_ex) { + restore_state(env, int_handled); + } else if (int_handled) { + assert(!cs->halted); + } + + return int_handled; +} + +void hex_clear_interrupts(CPUHexagonState *env, uint32_t mask, uint32_t ty= pe) +{ + if (mask =3D=3D 0) { + return; + } + + /* + * Notify all CPUs that the interrupt has happened + */ + BQL_LOCK_GUARD(); + clear_ipend(env, mask); + hex_interrupt_update(env); +} + +void hex_raise_interrupts(CPUHexagonState *env, uint32_t mask, uint32_t ty= pe) +{ + g_assert(bql_locked()); + if (mask =3D=3D 0) { + return; + } + + /* + * Notify all CPUs that the interrupt has happened + */ + set_ipend(env, mask); + hex_interrupt_update(env); +} + +void hex_interrupt_update(CPUHexagonState *env) +{ + CPUState *cs; + + g_assert(bql_locked()); + if (get_ipend(env) !=3D 0) { + CPU_FOREACH(cs) { + CPUHexagonState *hex_env =3D cpu_env(cs); + const int exe_mode =3D get_exe_mode(hex_env); + if (exe_mode !=3D HEX_EXE_MODE_OFF) { + cpu_interrupt(cs, CPU_INTERRUPT_SWI); + cpu_resume(cs); + } + } + } +} --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782398955; cv=none; d=zohomail.com; s=zohoarc; b=JNYWbfzqiRM5v6TYrKBYUrXh+qZsdkVTW2oXvFLY8pXS8eOvFYCTH6nOfWf/Wm86h+FaQ7d7Cbf5K4FLkk9IPjkxsAjtZZiVFFjWF/71Wvq6QmYsk2GjIvRT2/sHoDPuDXr7REyWyCrat/4CWtt2zMZuw2j5oqVF/QEzESxCeDo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782398955; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=oY8qK4LAUtINTePvitXB1Xfo61hqyHEyBFAF6Gss008=; b=Yebb0CytazxAEYzS6ZSFNQnI0iwYG67I5fq+njcSTgJw0UNbzfNQDDmCg4w5MK5KLIzmk8xMSbUXbY3UVWdWtj6PWig9Tetrv3QFYj86m0pNsE6dsuVwzxMfcagy4qvt1NbiXPU4BQ1uzR3uB/bW4dO2CnZFUZdez1zYJ9LJ4zc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782398955558498.3180840434437; Thu, 25 Jun 2026 07:49:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclNI-0002a5-HV; Thu, 25 Jun 2026 10:48:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclNG-0002Zi-0v for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:14 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclNE-0008WD-Cc for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:13 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9jvbe1754106 for ; Thu, 25 Jun 2026 14:48:10 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0w0q2bxu-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:48:10 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c0a27ad86so6611623eec.0 for ; Thu, 25 Jun 2026 07:48:10 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.48.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:48:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= oY8qK4LAUtINTePvitXB1Xfo61hqyHEyBFAF6Gss008=; b=puChwSRNa2KMc7qR W6gxmA/5Y5nJmkzgPajszJvNKf72JQBd9/gUVYjIdyFaHWss4VKUlsx6jzDT5/Q/ /nsnl9YznZenP0J128D5AfrEqrGqci3T0xWiYzOTEQuguGqwuHMBQH6ol9/fQ+Nc BErUH+gSZD5fCk+zvAiIGIJh3LrUF+BgggotLixJf8+ciYJ0e8FZONgbaef1xLNu Qu5+2yhKgD65ucebKKtlbPxzFxRCMeOOl9XSluY12rKY6Cij1MA3OKwUb7q1KngC 7mG9tAp88QTmyWlqH1I2szhT31Zo5pWEU49RBCABb1N5PEp6W0jAXBDyom2a+3su ndNC5w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398889; x=1783003689; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=oY8qK4LAUtINTePvitXB1Xfo61hqyHEyBFAF6Gss008=; b=gES3/JVKCw/EF8xBq/WLjDKW26ExZNx4KbovjsxBhhr98Jh6YP8yp5hibJTVk+MI42 iqQ+L+ExyxV7ydXNB3LiRWnekMFMWuglS0LBxJSjT0qSMFJyiEsKFzPJfDYnrcP9UCn7 9tQ1rnJYp5Lx+67HxG4mRsRlRCske8+b38nBxgXXR4iZngEF0K8GkCjktSH0bkubfg7A J8ipZPLFCbq4lSdwt6LXMUF29cwJKrres16BSjneWelc/MRs2fGbFRpDAgpiXfkGeVS8 zW/Wl9Wehl8mBI34BiSr7lsqlAsBtMz6ojW/gajdLbMOnzqKCmt7lO2KcbEcjiL8V2Pv vYqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398889; x=1783003689; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=oY8qK4LAUtINTePvitXB1Xfo61hqyHEyBFAF6Gss008=; b=iWmjSR5yN6MMPoyyrU2+j3IBVZary7+Dhx6khkyPghtP4S/LudIn7cP/Zaqtl0u9hT CRjLCwXdhXAlEhKMas77y7Vollya2EEYr2SFwBXchFNrxi3IHitL8uZgf4C9N3cuYAEp 1U+lX0tDcIMXmowVot3bo2oHwF0ch+aztATPcJcmDS2Uqb7i6mfqey2wD0QA7HsceMWn aRZjdc9L4/JlYt7iLPLXgJ3Dmy00exjb9CQTuB7dlOa2GJwzMraL5BH1krYAQYiB41RT NhljWYPufUdwM3vjEef0CZiNkOk9+glWtzbNu9Y25OFokphAF9fvOEiwFvXi9ExbEI7w Ch0g== X-Gm-Message-State: AOJu0YzcAUp+ebqUhEg9oEj0wtrIq/7+wz6phI66utZ51joTyRILr180 LI5YVqlxSNi1gdmTOBfhPS2ajjDxFteZmoledh2n9pZ8zJ89qjuMDYOHF+mZKI3K1RnTWKghb+f XVVBT6w5D/aHdOhgePjEE0hSjvUxpmpllm6VoUqn+FnAofcbX6BNDtwu2ZWUNclw8rQ== X-Gm-Gg: AfdE7cm+efbe7I9kvQe0wUuDPbhKKLw0XgScnXFuF9F56z6iXKmGZg7lYrPzVn5tk4H rRnGHGzaK6j9BHbIdWP6Nj4MIfHwReWeiYy2d8nz4BzUf1wzVX44py+ANjYwIScmp4sufW4Jn8V lFqpAMdv2WT+sxF2jddqIyEnOklqntzWRJMJja/SWws2SoZemFFSsvaig1XJFmOrubmekEhIxVA VJT4YMldY3ZVXSxyk+KKm5R21GdLidDvcZV2juSrbvchkJn5uEUvArP4Yl1vOA0X0gsi6WxK36h p38nyrpYKSU03SzdSW70advJtvjElIE9MeaJGU5qm6PLM56KkUVdMUDwh0z6rQSBpUV7E4YPnG+ x8EDwkCOl5ezCovLYuO6ilTekt/AVN3budRU5dV7pcFsIROMNGJuAeJOpKFQ= X-Received: by 2002:a05:7300:aca5:b0:2d9:ad46:4a92 with SMTP id 5a478bee46e88-30c84e214b8mr3157279eec.13.1782398889231; Thu, 25 Jun 2026 07:48:09 -0700 (PDT) X-Received: by 2002:a05:7300:aca5:b0:2d9:ad46:4a92 with SMTP id 5a478bee46e88-30c84e214b8mr3157246eec.13.1782398888696; Thu, 25 Jun 2026 07:48:08 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 40/76] target/hexagon: Implement {c,}swi helpers Date: Thu, 25 Jun 2026 07:15:57 -0700 Message-Id: <20260625141633.449487-41-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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: tax4Pop4wycpRihdiqZTUaL968HxE6Rq X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyNiBTYWx0ZWRfX1G8iyrpQC5hG l9oUweiUGzmbfrU/KkD1dawuu6goFvaZqdwZOsoH4chdh3AeGzHiD+kV5zFaheMc1wLUF3pXsst euqZ23mwkq3XMJBTDTq5NAKnQtACpIk= X-Proofpoint-GUID: tax4Pop4wycpRihdiqZTUaL968HxE6Rq X-Authority-Analysis: v=2.4 cv=R6Ez39RX c=1 sm=1 tr=0 ts=6a3d3faa cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=KN34Fzpn9o_w8YhA2GgA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyNiBTYWx0ZWRfX9YAMf68iyBQv LyZ8bsLnlV2QqNnnCmRCwo3B6TJoHew4VYw4B8vCZJ+ExYBANspLRggZsPHewbUDVSI8Ss0PXHK fe6fFC2OImvfLqKjYModjn8q3UG61o5n6/ru6D+SPMZ3I+m4Rxb4t+ku1/rkTIgvB8U9jA2aoM3 oKVMCd4YQWUC81EMzE95UJ7uQ69vCVaFvNEZX23+i8iQy6JegrYwzbMkfHBNtD7yfOmEsGO/+ZM dSjC0DHsYV+GRGM3P6erXCBEbu6hY2h41HJIKkSlsaoRY+qkqCuz0+8Od4sqbg0LMRvyupyIVja 03UxtRiuTxYR905wZjH7QIvjy8XKKfpdnN7547eQuLs55YtcwPh3DESRQ7l3D7e46tiK2abgc9u MtmM9jJ0qdZlkrH1vhSxbSQA/DU7eI/2ac2QmP2HwRrmNOPPvrXpsZrzH79ksCz6/PQFTszsJUd GTF+aj1JnjOL/DFlE1w== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 clxscore=1015 malwarescore=0 priorityscore=1501 adultscore=0 suspectscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250126 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782398957122158500 From: Brian Cain {c,}swi are the "software interrupt"/"Cancel pending interrupts" instructio= ns. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/op_helper.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 4dc2b8e63a7..7827696c6b2 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -24,6 +24,7 @@ #include "cpu.h" #include "exec/helper-proto.h" #include "fpu/softfloat.h" +#include "exec/cpu-interrupt.h" #include "internal.h" #include "macros.h" #include "sys_macros.h" @@ -36,6 +37,7 @@ #include "cpu_helper.h" #include "translate.h" #ifndef CONFIG_USER_ONLY +#include "hex_interrupts.h" #include "hexswi.h" #endif =20 @@ -1403,12 +1405,14 @@ void HELPER(siad)(CPUHexagonState *env, uint32_t ma= sk) =20 void HELPER(swi)(CPUHexagonState *env, uint32_t mask) { - g_assert_not_reached(); + BQL_LOCK_GUARD(); + hex_raise_interrupts(env, mask, CPU_INTERRUPT_SWI); } =20 void HELPER(cswi)(CPUHexagonState *env, uint32_t mask) { - g_assert_not_reached(); + BQL_LOCK_GUARD(); + hex_clear_interrupts(env, mask, CPU_INTERRUPT_SWI); } =20 void HELPER(iassignw)(CPUHexagonState *env, uint32_t src) --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782398952; cv=none; d=zohomail.com; s=zohoarc; b=j8N2f6jfizzcvT+79ikrw7aLNPbBy62RTGhC1lehsCBfIG8Jie97CJneGN0wxXgdUB7RKiN9LzRM9PeTccqmf7Rjv5vF+d1apkbaU59dd61drbUbcCjC0/G6vYkz7LjyRrXuoRF4uxE6VMRQ2nJZNeZDUY/5A9Xt511w4Z0phfI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782398952; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=4QO0cWAkJ+q+F3pETQo9dtN15DOJjfUdoMf8+Tm9oak=; b=IliYUnz3K3PgFSXLLqQPBdJ/gxvZ+GUTJydySRLXX5HYKWnhpNK9Mw0ybTGvcdDf3c3vq2GRRBP7XUXJEJBrslj1QhAsaH60sbnTLm1TKdC2BL2j1XBGL/jQlGnRkRAx3Zen2k7QBvkywfIUHYX/hDW7PQx9CfiOuOAxWL0MGk8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782398952895177.66922106764412; Thu, 25 Jun 2026 07:49:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclNM-0002ax-5F; Thu, 25 Jun 2026 10:48:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclNG-0002Zq-JR for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:15 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclNE-0008WL-Ld for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:13 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9jspa2009328 for ; Thu, 25 Jun 2026 14:48:11 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0uhmjqtn-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:48:11 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c17bc96afso5086801eec.0 for ; Thu, 25 Jun 2026 07:48:11 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.48.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:48: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= 4QO0cWAkJ+q+F3pETQo9dtN15DOJjfUdoMf8+Tm9oak=; b=hOhPzXb9BLfRHMgc yYONpTRPwd0qCSODkfXUjz4B49EXPqEqqhaZ9chsQuayDgQpdmgalpQ85QpGNNMR tW2BPSGOKsmyvcLvafkaOdSvH2Ynwp6+dZfwH9rL1hsI7+NVKeUe7RbhD3alb2N0 GAHBJ49uBKzBCMMFFyRXCtYAm94qsDMfOo0zTVOWbiBRUflPnK01J3f6edoT5GZ6 j0reaT/JIs31OVBtaynDnvJSYtz2AMwmQ+2bfT5j9pZlM7E3nw/duJ+nzo1LYM15 rgn5MmH1DdTYZ30NqquY21EAkcOheCVuE4beHuoikBWTeauWt0LHgDMfh55xzjFk DJtX/A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398890; x=1783003690; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=4QO0cWAkJ+q+F3pETQo9dtN15DOJjfUdoMf8+Tm9oak=; b=DuhrYuDO9vAYefE4E6u+LZhAJxTPOaCZ0zSJ+wOlB/i27Ill8213fiNvOjRguh+KdK lV2K29aX4WWFS2OE1/WEQB52P7UXJ9yolgMBTygyrziPdfoGycuWVYe3RJFvn123O1+G MraBTrwtGpRkWQwouVSSWw1kJD5thUJjhLjA+kc80Ahki5+0KbOxFnlZkh8hy7QRQn78 oYG01CVG99B3QpykzQGMBQZmgAGdaXuSHj19z9wvJsuE6PI5A03Xuc5R8J7wIKEmP7uW ICYmM1Z4NWdAryx75X5gqXYok3LF29OB/tHdKxG6HqeaoLwnMwxbkT4/esgXjMcmEJmK 7Giw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398890; x=1783003690; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=4QO0cWAkJ+q+F3pETQo9dtN15DOJjfUdoMf8+Tm9oak=; b=X0LT3gWql8EINN3FM76Jla3HHXjedYtPhnQr84YJM2MEMS+8k2C01Ik9PpcnoqiLPn +giTUHeDA6PiTLcjWd1d4eNKIBgGbjwhhesYrfr3mUB9jvn4txsg+hN4iZNI978Ps22h 7aAt06s8gyrVuodc9wEkVcSJ1JDUrdHWgjyq6FAgAtbsJAlCG8TOZPIUe5K1Avr1oRug xJtuCx5fSgOJs+BTy3yimGM0aHquAGtIjAMkk9l8MI72Kn9MA9EqC0XSJdFZ3cPimScD ST25+6uJUmfMkLjuelkFtD0LU32dOsBydKEt61YGJGOdEskjC/xpmXsvH5tcLRgH6QxZ s06g== X-Gm-Message-State: AOJu0YwWW8jhchCtodUI57o8C/2rv1AkHttBe5Fp2DcCn5IQJQuBL2TW o758jGU1fg45VkKaP47CqlwwkiOuPmpx8ym5QwXUyHk1E6aLIbc5bHO577R232ekH3BsvFKln4a 9wG0RAOGu5XUpWiuhnfO4cSAsJ/HWoForFq4/0JvNhAwIBhTQjffcgOoXA3vy1KP3tw== X-Gm-Gg: AfdE7ck69Beb85k9mc52dzXcWMxnjQteXkL56abZaYUO6eu0GTBJ7uwUTEjTO0k1tU7 NZ5gOb9LmiZP+e39yOZS1nrPT8Im2fPbiKRo4/m7vORITa4naypU1XDS1p6Sw0PTu5Od37+8Csd Y86NG+sDKZGMjyLlEEugvF2Cna42iBXUVJ/OpmO0vtI0wQnHSTr6dpTzxm5o4lGjNcvTwYo/r7+ zypkSAU8tnU6drjeBpU44iBZZ4/901+jrg9PQDrmLW1JpdY/Gn43hc5IFtcyfJlQvRqPQIzf1ko 3PsRIqbDDbJ3mzQRKJPy6/KpWot4WiLw2a/gF90rpbM7X21GDH7W8w3vqkeCtkhYM4Zb+ad/8r4 omN2BtuhNg1oi/Brh0Rz8cPj+0TXpOw09IrbVd1m53nZOtURQu4ErYPjaVgM= X-Received: by 2002:a05:7301:9f13:b0:2f5:5dd3:1fd8 with SMTP id 5a478bee46e88-30c84b9dcc0mr3022206eec.8.1782398890406; Thu, 25 Jun 2026 07:48:10 -0700 (PDT) X-Received: by 2002:a05:7301:9f13:b0:2f5:5dd3:1fd8 with SMTP id 5a478bee46e88-30c84b9dcc0mr3022179eec.8.1782398889871; Thu, 25 Jun 2026 07:48:09 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 41/76] target/hexagon: Implement iassign{r,w} helpers Date: Thu, 25 Jun 2026 07:15:58 -0700 Message-Id: <20260625141633.449487-42-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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=cqerVV4i c=1 sm=1 tr=0 ts=6a3d3fab cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=VnV9S1Uu6eltRR5mmX4A:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyNiBTYWx0ZWRfX/z/Xzqfv+VKy 9V9197mlASKTgsCVGHYp+n9SiK4FyaxqVnqrDDdA0/ZGb28IWwqQPUWO9fobiHE6d04ooNDBRXz ZqlHNKtbl2Qlo+p8GGAMLbRdXQnMuXbe4k7p7alY/II6XFkzxzWsSsvF8ZNFOB3SqWDkFsfHQuP w3sZBaaN7t6FASymDuxv3LqVldzSoK/LeUraG13tfpPhDVGWbLFJtpeIrFhbtiOSozosxh25tX6 SjZuuwaA2Neo6NgnO7jQCpeabetfI7KnhUulaFEeohuUdJj2kHogg88r6IZt8lbBcT1AVPrTN9c baS7F6tK8orCjf/Hr78HXJlUwWUN2nICPXkG16tGAgySQxKAdyxbYT3EdWxAIX1AyBwPchijaai sXtdHENosAEDkHT9FWusT3BVsY+s7Om7s4utrdOEvnaZQ5E6y2HJkPaxqU91WTm1REHCmaGxNNB UXGle1gne4ko+dE7Hyg== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyNiBTYWx0ZWRfXwkiZH9KNf90h nAJ/w7eoRnkPFhvP5AHZh++dFBMH/h5AWkAUt8ccDJ6RsnRUB/qLm3a3xKHdp4LTubp84/PiIls qZlRAmp85hGbFd/Baodq6q9nun3rgdQ= X-Proofpoint-GUID: yXQeMV1vCbTXzMh7JpC1N9uAz3fEtqHM X-Proofpoint-ORIG-GUID: yXQeMV1vCbTXzMh7JpC1N9uAz3fEtqHM X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 clxscore=1015 bulkscore=0 phishscore=0 priorityscore=1501 malwarescore=0 suspectscore=0 impostorscore=0 spamscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250126 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782398955562158500 From: Brian Cain iassign{r,w} are the "Interrupt to thread assignment {read,write}" instructions. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/op_helper.c | 56 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 54 insertions(+), 2 deletions(-) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 7827696c6b2..6f01f3b91d8 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1417,12 +1417,64 @@ void HELPER(cswi)(CPUHexagonState *env, uint32_t ma= sk) =20 void HELPER(iassignw)(CPUHexagonState *env, uint32_t src) { - g_assert_not_reached(); + uint32_t modectl; + uint32_t thread_enabled_mask; + CPUState *cpu; + HexagonCPU *hex_cpu; + + BQL_LOCK_GUARD(); + hex_cpu =3D env_archcpu(env); + modectl =3D hex_cpu->globalregs ? + hexagon_globalreg_read(hex_cpu->globalregs, HEX_SREG_MODECTL, + env->threadId) : 0; + thread_enabled_mask =3D GET_FIELD(MODECTL_E, modectl); + + CPU_FOREACH(cpu) { + CPUHexagonState *thread_env =3D &(HEXAGON_CPU(cpu)->env); + uint32_t thread_id_mask =3D 0x1 << thread_env->threadId; + if (thread_enabled_mask & thread_id_mask) { + uint32_t imask =3D thread_env->t_sreg[HEX_SREG_IMASK]; + uint32_t intbitpos =3D (src >> 16) & 0xF; + uint32_t val =3D (src >> thread_env->threadId) & 0x1; + imask =3D deposit32(imask, intbitpos, 1, val); + thread_env->t_sreg[HEX_SREG_IMASK] =3D imask; + + qemu_log_mask(CPU_LOG_INT, "%s: thread " TARGET_FMT_ld + ", new imask 0x%" PRIx32 "\n", __func__, + thread_env->threadId, imask); + } + } + hex_interrupt_update(env); } =20 uint32_t HELPER(iassignr)(CPUHexagonState *env, uint32_t src) { - g_assert_not_reached(); + uint32_t modectl; + uint32_t thread_enabled_mask; + uint32_t intbitpos; + uint32_t dest_reg; + CPUState *cpu; + HexagonCPU *hex_cpu; + + BQL_LOCK_GUARD(); + hex_cpu =3D env_archcpu(env); + modectl =3D hex_cpu->globalregs ? + hexagon_globalreg_read(hex_cpu->globalregs, HEX_SREG_MODECTL, + env->threadId) : 0; + thread_enabled_mask =3D GET_FIELD(MODECTL_E, modectl); + /* src fields are in same position as modectl, but mean different thin= gs */ + intbitpos =3D GET_FIELD(MODECTL_W, src); + dest_reg =3D 0; + CPU_FOREACH(cpu) { + CPUHexagonState *thread_env =3D &(HEXAGON_CPU(cpu)->env); + uint32_t thread_id_mask =3D 0x1 << thread_env->threadId; + if (thread_enabled_mask & thread_id_mask) { + uint32_t imask =3D thread_env->t_sreg[HEX_SREG_IMASK]; + dest_reg |=3D ((imask >> intbitpos) & 0x1) << thread_env->thre= adId; + } + } + + return dest_reg; } =20 void HELPER(start)(CPUHexagonState *env, uint32_t imask) --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782398962; cv=none; d=zohomail.com; s=zohoarc; b=JoYKZ5IePGvInFucxLEz8vMR8nqF35jfcCiSMvIjmDDnUDzfp7ly1vKQ0FyxXE5XzLAjOtb7eufH6zQPJwu+uD1O4ZkANKhA0ShjL4R7zI7lHvRT3dFp40vc3mwuzLCbmjWICJ/Q1Y2DN2ldlk+VdbyX2yc/kpoXb2swsFvcvjY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782398962; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=TfVBLrLYsvAhGMAw1f7WT0DQu5QIyyTkxXEQsAXLmCA=; b=XWJ6mlKAcZMWXryddkek8iYWdXqYQ/PUqrgwDjrcm7rVH9IsTfxgVvTYkPqnf/vITFSz9Tw7WBS8KX7CeoAkcf/46ANHlPC9OgaPd2hL78I8zxl7UjRrpMMu72RXToTvy4F8fWktKN6RtBtZAy1CWF4Dl1ON8z02nFDExMCpy4I= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782398962646118.06909364418414; Thu, 25 Jun 2026 07:49:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclNR-0002bj-Gh; Thu, 25 Jun 2026 10:48:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclNJ-0002aP-IS for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:17 -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 1wclNH-00004z-Sb for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:17 -0400 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9k1Mw1398519 for ; Thu, 25 Jun 2026 14:48:13 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0uudjmp6-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:48:13 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30c011c7cb9so7001699eec.1 for ; Thu, 25 Jun 2026 07:48:13 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.48.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:48:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= TfVBLrLYsvAhGMAw1f7WT0DQu5QIyyTkxXEQsAXLmCA=; b=O9gmozmyTR6Dez7Q /BzmQHtzVd5q7sNVOnGLmP8ODLZIwQ2HtP2zDRujXrHEJwXyVcDfmphxYU44NK86 CgEy3JCf05JvX6HCesWaYkekWSd9UDU6dELB4XyrYCbLTYqHkJiiL1liMevbORwk MDfXHoJy0upqNYqYko/Q3tumehdtTRurIGqVXWdkzNuhE6q7L/rb9bYgDiqiGxLw Fjgjei9jMaW7ldrYQ+NOBWuvAoRCLPEpauxq6OG5XtGCanJUUYFMDVmzaew3Iyd0 5T8aycAFFpvjpdfuZPmsjC4R9zkVXA2n85/wn0XVbgKnwW8opfHQdH5SgACaJwUk M3eRkw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398892; x=1783003692; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=TfVBLrLYsvAhGMAw1f7WT0DQu5QIyyTkxXEQsAXLmCA=; b=YDIEVu2zR8FaDlrkWF9oXrDa+AzSzBTOtAqzWq4fRwjvxgajuE48QIrXioxWENKH1Q 39rc9LeLhWhQC+eFnzb0Fn1jUKKdJk6R5jtsT0YL2eeUxAx6f3Qj7Nc/qSTyjdhpp46D otvAIzD6zCZDFHjRBCyG4JMIXHyJLIX0GaofvE+La5GwaMyrDGNGjBtw47n2EXlXpf8u x3lSa0J4y90L/1S4h8PURjgnzfCypiJ2jfHseZm7tAH6na6XWWuDgcZNn/aI0q8XJJgn L9OwzauHwN25PNmO61ibDVlz/VxRq/4RgpnCyI98ThFu2nD39PixXAWaair+Q8gCpE1b S/cQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398892; x=1783003692; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=TfVBLrLYsvAhGMAw1f7WT0DQu5QIyyTkxXEQsAXLmCA=; b=Q+rHlx0XlyKLavRuNZJKx//awymvxVNurboGb9eZjonk8QkATOtww1omX25L9f1ADN FrG6ENob00tB5g3MyLvW4TYeD/MlYHbhpJc61Q5ffpNfxL8rer5nATdPynONWrHzbKyM i+DkspgqqQbNJSEuWCF4I5DsvMFsriLVhxoOAL6BEjwcrzPEYqg6oDDFMD0qBo0hL3Mn hHQXY5ZYOJD5ZSx95kisi9I4r1LxG0Ir4eBiS2W1Vk3zb6xfvFvTyvGzZufAhbZM5vca HjUL36hQUMK8axJ876zyoiedFWeRWb9qPRZtGggLimwEl3Gwvmwu/AOGP/CnV7ZCr7Sj LyJg== X-Gm-Message-State: AOJu0Yxc72f23pEBrwSArYR+z4N0Cu/M1VprXnsY/1oiZKOYTL1lONHW IJpcjv3R0uq7wIF87QtmWG8+XWNZOiIkW1FQW9rTsQSKTgGLVhVBPS/dle9CfgkPoBVdKykkfNw KjtD1PXhLvDnyfnyK8bi3x0H6WUduJj0POnNLD9SXFw+LeYtEzdbhYmJ3HMjPcfCFwQ== X-Gm-Gg: AfdE7ck0kjuqtutNxwKFoNeDiDxiW+vFZr3Orcmz5W+Kc0fX1OJWJUnVoiR1XwQFY9y oPBCNSsrjtn2ikRCnFgctVSqkKc3bVybPy6CXhKZMw4X2Oddv4V72yWQ+S8+DsTAehZBfWlZRqw C3iOuMNa27nmKC9SfJSFNDBqt3QAG9K2BYzU4fNximOKj+QVSCNO2WVGHppycVQy3P48xmMyXlK h5I6rHalBgT5BSQbX4DQhBAoa2l6g0S8Jk+PSzaKKNIfXd4PwqzTCotlsn/DgG/wnStmvaE+7Et bQv0uknO8XsHGQeLAsAp0LmvxjSIN7IHE6C+MS5xxIeeQJC2x8hi9tORgbXxalITjYWz74ItREP VkS80Ki0cMtkDaPyb1yDd0pEthYeqqy2XSleApNGp98eM1fO2lR8VFmxXplo= X-Received: by 2002:a05:7300:430f:b0:30c:5ebf:63c9 with SMTP id 5a478bee46e88-30c84d9ba29mr3445716eec.5.1782398892384; Thu, 25 Jun 2026 07:48:12 -0700 (PDT) X-Received: by 2002:a05:7300:430f:b0:30c:5ebf:63c9 with SMTP id 5a478bee46e88-30c84d9ba29mr3445682eec.5.1782398891798; Thu, 25 Jun 2026 07:48:11 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Pierrick Bouvier Subject: [PULL v3 42/76] target/hexagon: Implement start/stop helpers, soft reset Date: Thu, 25 Jun 2026 07:15:59 -0700 Message-Id: <20260625141633.449487-43-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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-Info: AW1haW4tMjYwNjI1MDEyNiBTYWx0ZWRfX60tdqSpFE8Dr kOdxRXZXyO5vb4ej6zekbxQQ/D3okNbYyrj9U3vkNiBr06Y0/VI7BQACj1r/MNgpFSTrxx+Nfjm Jsg/Z9hevWU5RhcRyLn9yJMDLguK0qI= X-Proofpoint-ORIG-GUID: zQLsP7_N8QrtnVmBD5CZpdxSmCa8U8SR X-Proofpoint-GUID: zQLsP7_N8QrtnVmBD5CZpdxSmCa8U8SR X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyNiBTYWx0ZWRfXyl6uMeyJSkCs PAKv+wN0GqbYdT/MRkAw5njOSMndK/lP/XjvKoRg4kjou6bYHPYjcicQKmirx7UlVfiw6ninfn1 eWcPNoNiUBdv26i7PVk6DhxQVEFamF4kT6eea3VT8O9NxXC0xr82MXx9vdobwgS/Ncj/0RZM/eK 6MT4JsRIvqhcUTm3ysz++FSjQq8SQE+vtadh6kZBYS4Ue1y6QTvisP26APyH9jSGX5+uSU5uCT1 y7qi7ewyn3DasA3nmr6Gt6sZqm9oONiH1lx+OC9KP86eDXoS8QOLOFKfDBzKmxPDb+6mnkYVclR CfZjXOJFhhSY5mDw0DYshzh3rBt8o0gr6RRho9qmAvx+3dhPa3U3DNGIMOdqfbPxastGlRHKk7v 7JBgaThabZywGv0R1cysIDfLNJe+seOYccSzf36ub0uDvR8OzU8CYqaqnSTRpF7juTUfMEg8ckl zrfOWN9B2JhixLzuVaw== X-Authority-Analysis: v=2.4 cv=HdckiCE8 c=1 sm=1 tr=0 ts=6a3d3fad cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=mCWuZxMSpaUKZHDxuVkA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 impostorscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 suspectscore=0 clxscore=1015 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250126 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=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: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782398965373158500 From: Brian Cain Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 9 +++++++++ target/hexagon/cpu.c | 28 ++++++++++++++++++++++++++-- target/hexagon/op_helper.c | 4 ++-- 3 files changed, 37 insertions(+), 4 deletions(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 1b225e35abc..92d4bb97129 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -213,6 +213,15 @@ G_NORETURN void hexagon_raise_exception_err(CPUHexagon= State *env, uint32_t exception, uintptr_t pc); =20 +#ifndef CONFIG_USER_ONLY +/* + * @return true if the @a thread_env hardware thread is + * not stopped. + */ +bool hexagon_thread_is_enabled(CPUHexagonState *thread_env); +void hexagon_cpu_soft_reset(CPUHexagonState *env); +#endif + typedef HexagonCPU ArchCPU; =20 void hexagon_translate_init(void); diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index eb1f7049298..27f0ef50df2 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -33,6 +33,7 @@ #ifndef CONFIG_USER_ONLY #include "sys_macros.h" #include "accel/tcg/cpu-ldst.h" +#include "qemu/main-loop.h" #endif =20 static ObjectClass *hexagon_cpu_class_by_name(const char *cpu_model) @@ -310,6 +311,28 @@ static void hexagon_restore_state_to_opc(CPUState *cs, } =20 =20 +#ifndef CONFIG_USER_ONLY +void hexagon_cpu_soft_reset(CPUHexagonState *env) +{ + HexagonCPU *cpu; + + BQL_LOCK_GUARD(); + env->t_sreg[HEX_SREG_SSR] =3D 0; + hexagon_ssr_set_cause(env, HEX_CAUSE_RESET); + + cpu =3D env_archcpu(env); + if (cpu->globalregs) { + uint32_t evb =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_EVB, + env->threadId); + env->gpr[HEX_REG_PC] =3D evb; + } else { + env->gpr[HEX_REG_PC] =3D cpu->boot_addr; + } +} +#endif + + static void hexagon_cpu_reset_hold(Object *obj, ResetType type) { CPUState *cs =3D CPU(obj); @@ -339,9 +362,10 @@ static void hexagon_cpu_reset_hold(Object *obj, ResetT= ype type) =20 env->t_sreg[HEX_SREG_HTID] =3D cpu->htid; env->threadId =3D cpu->htid; - env->gpr[HEX_REG_PC] =3D cpu->boot_addr; -#endif + hexagon_cpu_soft_reset(env); env->cause_code =3D HEX_EVENT_NONE; + env->gpr[HEX_REG_PC] =3D cpu->boot_addr; +#endif } =20 static void hexagon_cpu_disas_set_info(const CPUState *cs, diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 6f01f3b91d8..b9cf1f188bb 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1479,12 +1479,12 @@ uint32_t HELPER(iassignr)(CPUHexagonState *env, uin= t32_t src) =20 void HELPER(start)(CPUHexagonState *env, uint32_t imask) { - g_assert_not_reached(); + hexagon_start_threads(env, imask); } =20 void HELPER(stop)(CPUHexagonState *env) { - g_assert_not_reached(); + hexagon_stop_thread(env); } =20 void HELPER(wait)(CPUHexagonState *env, target_ulong PC) --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782398952; cv=none; d=zohomail.com; s=zohoarc; b=Xt3UeGcFvXQGBZuirXtcTmQqbwL10w3qcoTx5YVUxQ07vkGXWTnfHjViG6XG+4fiEizf7lha/0JqjFdp0Gp4dWhAJ8kykGJTIDWHTPaXPSg14eN15leAhylunz+AhneqQ692wk2Py/gtNpYCpNFKCit+UMSJZW4LRRcpO3f7v0Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782398952; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=i/UBxztk9FzNckObXXg5AeElk2tIk+IMNK3xdbJ6LSM=; b=h6+6HfTO69r9mbll1BXMXQgiF0USRFVOmib0Dh45Xspzou+J6fNfNUosdac0y3LeZBD7vum81zpetDIsFFhv4WUjiyPSeMhIbqEU7cb0t2MrV5obZYQa+Dgm0tzZ5WJ6CDaAXVEXFXRg4/IieR/6dedHvngrwEcQWJ3TBcV2qpI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178239895279780.33144238033219; Thu, 25 Jun 2026 07:49:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclNR-0002bs-TM; Thu, 25 Jun 2026 10:48:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclNJ-0002aL-Cm for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48: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 1wclNH-00005E-TC for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:17 -0400 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9jvvX1723469 for ; Thu, 25 Jun 2026 14:48:14 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0j7dvtd8-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:48:14 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30c8d355dbcso1549581eec.1 for ; Thu, 25 Jun 2026 07:48:14 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.48.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:48:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= i/UBxztk9FzNckObXXg5AeElk2tIk+IMNK3xdbJ6LSM=; b=Z1ZupyLYKkWyFqx8 nh95wD3fj1S1T5iMY6mfi1Wm5JIfbdKJ96D/aVio5sr9qmCb3h4ZDxFd0mUS4qnK c89dQhDSmx5lBPj45iajs2Lm2STf7GEO7jvADn326SH6B9TNdY6HbwIbH+ycjuHl SjgLmvvAtfuxfNwJS2shOJ9CvkySudGTKUJKuD7lze17kpBILunREARJ4Q20JwkR 5E3Yfwnmh2I6/rPz7kCvYRpSiuR0C5bDwxi5BnNjPoB7CNWX+0n6N6Zet5IxKK1Q hpvpiFmFVYdX0IZfVX1SBomIcapoB1dWsEWdyLemSRkZa2Wx2qDQEq8UfVBN+wl7 SpUGTQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398894; x=1783003694; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=i/UBxztk9FzNckObXXg5AeElk2tIk+IMNK3xdbJ6LSM=; b=hCCdWO9AxCwG/t9XcKIkcbwwSEL/qbx9HXCot5KUFkhYppWvucmloGaZYNp7liSWG3 eIjYr92IPjRgW1GmD/3CHZpWEtIqV+VSFB5L+tKmidjC8p3L7JWs4WFQxHMgHQ+1BY6i KszBot5QsFfgPNobD8G3huX9VXU2ugffhdDs1RB9hvK+3pqZT/Y2trd+sba+vWjWdrzC +DEHBv2whqrKXqWoOLM4SBvYms58wTEXa7nALaa+jpqacPIh1XV0FJMd2rdc3cd+bhAP leJQZlkfO1cDnApAWka88ILiKt6lRJ1awO7DSx8IHUiVtH+z/l3DsKW3eTebXQjtTYUT uGCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398894; x=1783003694; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=i/UBxztk9FzNckObXXg5AeElk2tIk+IMNK3xdbJ6LSM=; b=ksO3Ahuuop0BIpK4s3Ts/FeAPNcEnM/Uq6+n/wK5spbC1Dg8EcPfdj1NGQiq8pgChf ddnodmXQ7AiDom69v4+0/TI8wimWKgA35iDu530Y7gMsXV6my4oUNwK8c6dH3jwfnFWu mC7j4Nh/q7eyU8tOagZqtpg3MV73s0HoJQzpm+Cy9OtrvmlVxu8ywXTALkXqn/wmi7Bt oMKQg1OCBiZzsdP7GH6JmQeAOOJd6GbdhCiw0Ie6+fLcw9htVwhiZie3xk1PzQKoM2Ae Colt/EVZ1BDBvfQkr6annpImSSrfJJixuT6I8LGit2nyIJH+wX8uINypvFv/iyCKvjbn TK7A== X-Gm-Message-State: AOJu0Ywk+H622c7zZI+tSEPUrrXLptMGEbHsn0D8MFHm+uJqomQdYIyk Idn6G8yzZZlMhcQtz6bfmMCu4w8KXNH18k5nih/wLjQw7MlV5fcFPUolpXj5XekaRwo5D50Sw7D 7zsENPW8GSpjsxH/urgOQlnYXIKnQ4aGDuMBqOwP/WpsuThLLQqrg0Cvcak+MRSYsBw== X-Gm-Gg: AfdE7ck9rm8l1YCYuWPRcuouLudj4R7XVn5wbal5SHtyXwMjdVqwmTjqTMN3x4wUhJF 5xJ2V+zV235MAhwTlW7Zx0Lf/5LRvxF/suPihKkV4h5ccKGfDAuKo6pjrVx6y1jxetTUeKNuzZ0 xoEtYC4jNGdEVhfF+wwgxSdSzcXxN/q1M8sz5ULHyQvu3Eg3gsi1RakYfpDhSVUd9hf5JoIFh0u kN9a/3R1FqJKhLNoSLHUaQsaiYlK8LgJgrwJzMsuAr3At8Qf5+rbWBaf+7gzqLojQJa7fshnYeH MhSfrvdt0EVBw36OTiJxqiyAuPaznJa9nR5pRxHkVwJ7GItp/wJNVJ62h8mvyfQbx9glb2j24Px Z787UrwwunE64W4xKICKU15xEOrhUbTKA0uQiB01h+oxBi3q7dWacvoXZgys= X-Received: by 2002:a05:7300:6143:b0:2ef:9961:27fa with SMTP id 5a478bee46e88-30c84d127b4mr3321854eec.18.1782398893698; Thu, 25 Jun 2026 07:48:13 -0700 (PDT) X-Received: by 2002:a05:7300:6143:b0:2ef:9961:27fa with SMTP id 5a478bee46e88-30c84d127b4mr3321820eec.18.1782398893182; Thu, 25 Jun 2026 07:48:13 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 43/76] target/hexagon: Implement {g,s}etimask helpers Date: Thu, 25 Jun 2026 07:16:00 -0700 Message-Id: <20260625141633.449487-44-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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: j92VwCpl6tdaNIFTgRi7SqbRxnWJJX0C X-Authority-Analysis: v=2.4 cv=NvHhtcdJ c=1 sm=1 tr=0 ts=6a3d3fae cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=he7afFXPmx5H4pWyvLYA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyNiBTYWx0ZWRfX6sdjqjAirV36 6Ezn1BkhEqp+D9nlm5PH99JoHH9KHg3+f91HThoTB/I2omyS38SW4buftbLpMy5SJ0Hn5zK4d4n xTzGffjicYuCtGuuDPx+c7NwQlj5cow= X-Proofpoint-ORIG-GUID: j92VwCpl6tdaNIFTgRi7SqbRxnWJJX0C X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyNiBTYWx0ZWRfX2Hv5YRJSLoiW /4M31+CY+BZcn6jwgh44R0HNF5e8WbnKR/ZQ6sbICV2CF0PsVXK16F1WGTLksYEIdylm44W9H32 0B4K0VriP7SzHe9c1c4QdKC02dxQoJQxpSs7uXc7BCDuuBCxvBLiaH79jS+Tuk7Fjdf2qRxcUsp yPC5vkIAmIlf0Ju7wTy/Lmro48L8Gch2hK5Hq3QRgcezwDjodFd5puR+kaQGcOjZigewq5ciErL jWqCdY/p2tvzLdbu/I9tFZyOpiAk77YImg1GASygTM0McZoDYcg/+llUK8KErRJkr9W2KoK/SYH +KWCnRf7Gzzisn7KIh+3pSyQHEAJ1FweH/2hN8nSjZybzD8YD7LpgajSjXoYeX2JdKdNgyVy3Cr /igw8XRQYikq3yQFPkoR8nmYmt28a7+D9iMyIJse7yA+2T9UwsgVcEelsqhu2Kd+0PSPL3ZqhBm czspwZ/HpUHoAAw9lOQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 suspectscore=0 adultscore=0 impostorscore=0 phishscore=0 spamscore=0 bulkscore=0 lowpriorityscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250126 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782398955505158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/op_helper.c | 36 ++++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index b9cf1f188bb..1680e300ec4 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1499,12 +1499,44 @@ void HELPER(resume)(CPUHexagonState *env, uint32_t = mask) =20 uint32_t HELPER(getimask)(CPUHexagonState *env, uint32_t tid) { - g_assert_not_reached(); + CPUState *cs; + BQL_LOCK_GUARD(); + CPU_FOREACH(cs) { + HexagonCPU *found_cpu =3D HEXAGON_CPU(cs); + CPUHexagonState *found_env =3D &found_cpu->env; + if (found_env->threadId =3D=3D tid) { + uint32_t imask =3D found_env->t_sreg[HEX_SREG_IMASK]; + qemu_log_mask(CPU_LOG_INT, "%s: tid " TARGET_FMT_lx + " imask =3D 0x%" PRIx32 "\n", __func__, + env->threadId, + (uint32_t)GET_FIELD(IMASK_MASK, imask)); + return GET_FIELD(IMASK_MASK, imask); + } + } + return 0; } =20 void HELPER(setimask)(CPUHexagonState *env, uint32_t tid, uint32_t imask) { - g_assert_not_reached(); + CPUState *cs; + + BQL_LOCK_GUARD(); + CPU_FOREACH(cs) { + HexagonCPU *found_cpu =3D HEXAGON_CPU(cs); + CPUHexagonState *found_env =3D &found_cpu->env; + + if (tid =3D=3D found_env->threadId) { + SET_SYSTEM_FIELD(found_env, HEX_SREG_IMASK, IMASK_MASK, imask); + qemu_log_mask(CPU_LOG_INT, "%s: tid " TARGET_FMT_lx + " imask 0x%" PRIx32 "\n", + __func__, found_env->threadId, imask); + hex_interrupt_update(found_env); + return; + } + } + qemu_log_mask(LOG_GUEST_ERROR, + "setimask used with an invalid tid near PC: 0x%" + PRIx32 "\n", env->next_PC); } =20 void HELPER(sreg_write_masked)(CPUHexagonState *env, uint32_t reg, uint32_= t val) --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782399131; cv=none; d=zohomail.com; s=zohoarc; b=WKCEd7xpSh9CCejgpANeooWjbaPIaYli7orcrCQ8CVsP5EFDtJR/c5NziU281Bzitt7fXHABGU7lUm9q32U38GR/oEC4IR+tD5mRG5r3NdCnxO/2K/MEvnzzFPTeRx3SYMqFuAuMQm2ePP71rJY6j+aA2KcBOflH0YQ8F1Oxv50= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782399131; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=HfSshN2DTXGV0fIztvVhxkGkdYU5fHFXewTdLdv52c8=; b=Kplg77A+OadKfiUCrNiErHaK+nPS6Tan/6AyJ8iYOAMDazUeeoN1lP2qtWxoIPFYFA9Jhez2P5Pwjk7EmAysRlhNYpRen2OJj/bRNdh8e5l24NVMe0nLgmnH+UyJbVwAW9HlE/Fni/+w5WxPp4B9so4IFFwCub+xMT9zKrDIK4I= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782399131418130.7493316846692; Thu, 25 Jun 2026 07:52:11 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclNX-0002bt-2C; Thu, 25 Jun 2026 10:48:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclNP-0002b4-BC for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:24 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclNJ-00005N-8V for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:18 -0400 Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9jtDb3077408 for ; Thu, 25 Jun 2026 14:48:16 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0yynsq0d-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:48:15 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30c1f6c5559so2342504eec.0 for ; Thu, 25 Jun 2026 07:48:15 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.48.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:48:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= HfSshN2DTXGV0fIztvVhxkGkdYU5fHFXewTdLdv52c8=; b=nH8iea8kQlAXQKcy 6OqZ05ltCbPajRPTI8xJUWQIZKEmKPU8cazu9WkTvieZak1AuypspxmHRSzBG/Td t4ta0LqyT1FS+IO5FO8f1/1/jwLD4R2ZaPmtqkBTz+YWEGIYFq5U8Az5dj49Mtgr 6G9ESFEZU0uAOWIPdGRmdCSdEOcFsURTuN3LollZtPvCGuppsYcRO2RrsJBL4qZI Gf0WVWwfuDRe+1kEuQPimJ4uQEqgRO4DJB31M53A300bA25e9h3bJ5fSwk1et0KO Yz7ml2i37kZdIdM8HPgMz7TtSWzc+JIwPsJCt5bjOWLlaaut8ZiZbOGSa8tK+Zxo ZXQfAg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398895; x=1783003695; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=HfSshN2DTXGV0fIztvVhxkGkdYU5fHFXewTdLdv52c8=; b=TKwLELr9sCBXBtdCVfYgAlUeLEOf4o50LDXis1zN4qw7ddWf0xxBHmEMR1KsIExPQE KT/Qd65Anse6Jk7tGf2Ckd+kM4+lmdrp8OU177u50ytoMwAp7HBW4V9p1VnyUTF9aGwS lbFhxi1oc7C4Q4wTfFMiNw1ROK0eUe4BrNDrc8uMtIB3Ce30E9Nrol9jRNwtWMKbzgI0 Q3seL860do3saXJExn/XtD+4rpTmf9qmiJcfDmVN7sgOFtQ4nlpwLo5tCaOvHiaK9Mu9 uil1PDZBXVhsZHTdVW52g6pwn9TSKpdkPHWSYvzoFXxhGySeKX4EuQ5PMOGFZv9w9CwM dNRw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398895; x=1783003695; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=HfSshN2DTXGV0fIztvVhxkGkdYU5fHFXewTdLdv52c8=; b=KR5HU57QE3fmGYJGll+MtPAs0InCluAEe6iBNYMpknYXaKhb3AAXx+kSTc6iqHQgzS l2B6BFN9c06Buw+4M8N4AMvU8nNjzgKwLl7BJvFh/+7QykRnKtunJqqBTN5+e2Xtffe6 tFRmTmoHWuqIanbrywOhu6gk/ps9aqmInPyJrftTE+gFAeYsTTexKdVZY4Sj2A3skuB1 Ea2cFtvgFSZP3Fd4s53y1U5ANncqEh0XIUysLc4I9Kyzph6s6X2ZGr0XMG3wqJVEEUtg wDnG9QCjonTqgaqfshE6FO0P1xj5j2ICiPrfJK7FcBHhSEJDMJ4Rd+ekG2djIv3+lBCR l3rw== X-Gm-Message-State: AOJu0YzLrzC7t4VmaL0Q/T82JZbTDPW+8Duf6O5NnkBTXe5HFliusWv1 UAOCwsBeIBjtJXt3hlBJpRcgLVOUWsiFnhk29csZEPp1qGv6gctJBby79VHqlehCjrFKKyyhppr sqgcHLqsy3jp/RTtPsGij2TvMIo3ocKHRybgNmMa++FiXiuyAh0g6oThtvFKiuH2bQQ== X-Gm-Gg: AfdE7cm8q2SRme8OWObQd6tuR91XQVW7sSo7QQULNMfMhVuaG/kMNPSplh/4KLCYMKG pDjL2kkz4ZXerG5FBDJlHecTwnb/dDKqS+tYOzUcE3eKbNfZtCZY9YV4Dt/PbJVpRbak2gGySTa mw99+o5YhsNHE/Z/g8Kr/EesZXHO1l6/56+pXAcsG5xxyGYe7wEIp5NcHIR6dCgkPig/yVw/Ovo egL+Yn/JiQxqSSgSaZc6CVW2pFQcqUWsQ3nZM0j5M5P5SGZoIGG54SPoFPpXSmeGfCw45e06x9B +l1Q0nZ9caFMaJ3IYWhoGskHVrynWhoBkdPKmcuhyR584Vc5peGNAKm08qAO6w6a7MJTGANSPvv 9HLCE2ldyf36btFXhRoyoUeNwQDFRsiImpl9TkceKY9bq4Isl48Z/c/c1ejo= X-Received: by 2002:a05:7300:760a:b0:30c:2d3d:7840 with SMTP id 5a478bee46e88-30c84e1987cmr3314545eec.35.1782398895151; Thu, 25 Jun 2026 07:48:15 -0700 (PDT) X-Received: by 2002:a05:7300:760a:b0:30c:2d3d:7840 with SMTP id 5a478bee46e88-30c84e1987cmr3314503eec.35.1782398894566; Thu, 25 Jun 2026 07:48:14 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 44/76] target/hexagon: Implement wait helper Date: Thu, 25 Jun 2026 07:16:01 -0700 Message-Id: <20260625141633.449487-45-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX1v6e3OEvPqJt OrtrGNJISrOyADP8FObxNTBRUtzAyHGkpn70Ip9faYk8TPItZoy1r4soDnFgSa2I8X5bGrZxaeV zpOQn2tGKsQEVZ6ew+hQAVF0bP1Zz7IkW9MAqIZyb9nhzCTCDbjGUAQKsGISVclvtlFTp+trJ78 bPpl1xCGLbEJWgwew36jt7XjK+vMCPSOIN0yylZ1z4vg9nKgjla08E058y7e4M27lgoHKvd3Zf4 nScTzwgIp8cgyV4jOoIxurdi9w9k6gJSj0V0C0zrxHObdKeMMLg5r9ZItf4Eo5trA1IISl/sGNk 1Mz57jQXB5aMkT7ABRfOJ4yhtbUaO7MkST2okiq+uG74wy1JA2VA9HgMBwWDlfkOtdDs32gCrAp Yz6Y7lmvpXPVQsA7uq+Ya80SJQfCP+IgSwJmeBA+bW23Ko50Kchqy2xlND3Q6RRBQUimA/TuZL4 4xmMoRaMLQFnuLOi9IA== X-Authority-Analysis: v=2.4 cv=aoyCzyZV c=1 sm=1 tr=0 ts=6a3d3faf cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=UWtQ3YZIe0Xef7kIUYIA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: 3CUTQoF8Gx8dTLRG7KigKpGZMUvH7VjT X-Proofpoint-GUID: 3CUTQoF8Gx8dTLRG7KigKpGZMUvH7VjT X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX8C7MsDukOIU0 dhUPeARmS5E47RashbPz54fZvRsdap+Gm/Wv5CfWnWbeuHIQAlZ9flYdAJYRF+x/a9UqGl1IkNP Z7WtzQFwgpxy3iBFxkSX4x2lTE05VQY= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 suspectscore=0 spamscore=0 priorityscore=1501 clxscore=1015 adultscore=0 malwarescore=0 phishscore=0 bulkscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250127 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=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: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782399132346158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/gen_tcg_sys.h | 2 +- target/hexagon/op_helper.c | 60 ++++++++++++++++++++++++++++++++++-- 2 files changed, 59 insertions(+), 3 deletions(-) diff --git a/target/hexagon/gen_tcg_sys.h b/target/hexagon/gen_tcg_sys.h index 264ea02752d..68b23895428 100644 --- a/target/hexagon/gen_tcg_sys.h +++ b/target/hexagon/gen_tcg_sys.h @@ -80,7 +80,7 @@ #define fGEN_TCG_Y2_wait(SHORTCODE) \ do { \ RsV =3D RsV; \ - gen_helper_wait(tcg_env, tcg_constant_tl(ctx->pkt->pc)); \ + gen_helper_wait(tcg_env, tcg_constant_tl(ctx->pkt.pc)); \ } while (0) =20 #define fGEN_TCG_Y2_resume(SHORTCODE) \ diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 1680e300ec4..9d50e6ef882 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1487,9 +1487,65 @@ void HELPER(stop)(CPUHexagonState *env) hexagon_stop_thread(env); } =20 -void HELPER(wait)(CPUHexagonState *env, target_ulong PC) +static void set_wait_mode(CPUHexagonState *env) { - g_assert_not_reached(); + HexagonCPU *cpu; + uint32_t modectl; + uint32_t thread_wait_mask; + + g_assert(bql_locked()); + + cpu =3D env_archcpu(env); + if (!cpu->globalregs) { + return; + } + modectl =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_MODECTL, + env->threadId); + thread_wait_mask =3D GET_FIELD(MODECTL_W, modectl); + thread_wait_mask |=3D 0x1 << env->threadId; + SET_SYSTEM_FIELD(env, HEX_SREG_MODECTL, MODECTL_W, thread_wait_mask); +} + +static void hexagon_wait_thread(CPUHexagonState *env, uint32_t PC) +{ + CPUState *cs; + + g_assert(bql_locked()); + + if (qemu_loglevel_mask(LOG_GUEST_ERROR) && + (env->k0_lock_state !=3D HEX_LOCK_UNLOCKED || + env->tlb_lock_state !=3D HEX_LOCK_UNLOCKED)) { + qemu_log("WARNING: executing wait() with acquired lock" + "may lead to deadlock\n"); + } + g_assert(get_exe_mode(env) !=3D HEX_EXE_MODE_WAIT); + + cs =3D env_cpu(env); + /* + * The addtion of cpu_has_work is borrowed from arm's wfi helper + * and is critical for our stability + */ + if ((cs->exception_index !=3D HEX_EVENT_NONE) || + (cpu_has_work(cs))) { + qemu_log_mask(CPU_LOG_INT, + "%s: thread %" PRIu32 " skipping WAIT mode, have some work\n", + __func__, env->threadId); + return; + } + set_wait_mode(env); + env->wait_next_pc =3D PC + 4; + + cpu_interrupt(cs, CPU_INTERRUPT_HALT); +} + +void HELPER(wait)(CPUHexagonState *env, uint32_t PC) +{ + BQL_LOCK_GUARD(); + + if (!fIN_DEBUG_MODE(env->threadId)) { + hexagon_wait_thread(env, PC); + } } =20 void HELPER(resume)(CPUHexagonState *env, uint32_t mask) --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782399143; cv=none; d=zohomail.com; s=zohoarc; b=evXF6X3UbLsQDjKMi3GYluiGSWMGeet+M28DlkgbNARC30fhC1AEiVBkDQbd2a7n9187f/hz+e6iDVqj5+S/z/M5+p09rqmRo7I10WTWip+XLHdO1UXP+lAolp93Oeuv8bk6xJDrrM9u4nt3lsHuCVl5+ESPHvaHZPCxZxpzcAE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782399143; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=UbuzJ7YCQZGqOoiI5HAt63RuanuV51wqRpzkdURFyKo=; b=aGWYdY2xj8csJIGbJpporn62l5WIOEwGLC2JyXl078E077hfg+N2jJ81H+ScifkupROu3MvJaBdOhXffVXDPeIlOkagCEDr9fq2Wlc1HBd/HGFuPTwDkZjHtvllYs0LN7rdnfS3d803zmQoQ6/MCzBfxg5NYWbDcRP9qxI4w2Jk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782399143044358.9948848829905; Thu, 25 Jun 2026 07:52:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclNX-0002ct-8t; Thu, 25 Jun 2026 10:48:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclNP-0002b5-BJ for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:24 -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 1wclNL-00005h-3Z for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:21 -0400 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9juuM2046412 for ; Thu, 25 Jun 2026 14:48:17 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0uyqjky0-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:48:17 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30c95b0e22aso75412eec.1 for ; Thu, 25 Jun 2026 07:48:17 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.48.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:48:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= UbuzJ7YCQZGqOoiI5HAt63RuanuV51wqRpzkdURFyKo=; b=SJqcNTPfEcRHM0Qk AsvNHQs6jK0H9BGozCxbKVBAKXtVC/6g3BY1kPAQvztJ5pVfFuVP+cA+OnzFWeVQ T6ktJC/WKy0PrVQssMZvGyy0W9b8QUVhBGWBO/bPy2loeLVubRi2y6UUHbQAzwKH fC/Qe3Xqd0CGYxhtkpBjQd46qMPF1SIwwextEunyqf4LGPR/EsjirPv64vApHLMt kZMtRLAtcqd6gJuWOgj+kh8CR1ph5pwMIZft6aquPJFLK9z9UsUUyoxPTHQ1JnDh EITRpqAsXD54Gmnt2H8CI2YG5GH8FhEKqjgP/0B6exTLYh38vXjkVAPyHJV5H2gv 6WbGOw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398897; x=1783003697; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=UbuzJ7YCQZGqOoiI5HAt63RuanuV51wqRpzkdURFyKo=; b=EvWVUK7nis4kebQMCBj4ZwNfhPgjQjfYhtVSIQ+bPM35uVK+AVlKKPjP9N6DW91cAX 503jNUs5eKCHQmwMBu19ooPt0X6mcNm037H3jJXWghsBNWcOcuHs9b7WnopNVxVvu01n vvGh4puOWMMOWsXIqytDNm06GLNObRVGPOIT2+nbH/Fzkuc08c92hHqvT66De4nzuU5X R52p1co5vmo/aGYLxnMYpRX/AD4wbDUTx22ToCWCZmXpLQI6Orwo6+uW2n8p/4EctYfs gxiId1DGLdYI5XndBrrtoa4RzHXzcFYojIa2PgeYzbUeFjHseX6Y8V8LBhFNMhOb6IWa pJUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398897; x=1783003697; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=UbuzJ7YCQZGqOoiI5HAt63RuanuV51wqRpzkdURFyKo=; b=qWzLrzzqRRywLAm08K+CVtabQLeg32Ly/Jy+qWrCSMHL8JBkmYUM2s3eoQZ0x/JQcE BsYYrUWI4UQd+p49Wzp388tsJSIG1xsg2nutUK5OOa4DlZgN1CpR+jb07K3JVCSCsdxh 7i/yOJ2mI81LfR00e/IZ+u2DpbIGNY0u2HIsJYvhgQo45vUKoY02nZ+nVZ8tBxdlzrpS TsIsGY6zv3oyWlREEii95eWEMJJH9xL2kNSZjO4w8nm/1noOAueJJL8v97xehgoJhwLT tTb3YxSy0aedBSVB7xe04aA4isMqZOdxoN7ffe4IPEiGpBn4p4LmX+f+P4V7HMG7YMlG TZiQ== X-Gm-Message-State: AOJu0Yz7lEmXgj9NtX5/VC55oyPZulxazpsIiTmNM4iRKcPWw/eU0CmL Q2AzUfpwc2Nqdatc2Lt6/HR6aZv+f1QnM3JIdQlD4C6kNAjuoPyzN/nm7YxpFQxdHRcHsN9aHi9 ENFdHcvs3VdGUOBUtF0whd4RAA/2B6/BmGbWZtOIZXaFq6O0THlWeqM3suoC7JlvhKA== X-Gm-Gg: AfdE7cnr3yjzEmMap3WcCGMSs/GAyZNRlmP31rYKel6bFd2dHKNHJgalwS60ASGRZT1 h0e8ViDLOWM08zbK4J3LsuK/M3Khxfy+SKaRAVCoW3O4mfNBQP06qxxk9KpujvgLTT4Kha4yMRu xu/DnN0lU8rB8IEMQTRG33KO5/ePwcM0G0TYisjlFloTDf0AxwqIyT1s/ZWWkDiAF19S2i8wdiq uVIJKYbkMItm+YraRIwezFBX0G/h+fvr6S4A05m1q41/mWhg6oARsoxXyLH5CZ2RR3qkoL8otR7 IVFaUrbsrf95N2lLpSQSIjTrg0nWY6tnR0nq0ZAq7IKYA3vLWiscQ5YR6krtCKlbE1mVfqbBQ5n 16XS2oWuLu9b3K4436u54km/ATwE/C6FMOk1ADM71iCdhVC2KfDmxc/k9P3Y= X-Received: by 2002:a05:7301:3d10:b0:2f0:c8b5:3dc7 with SMTP id 5a478bee46e88-30c84dad323mr2813124eec.22.1782398896618; Thu, 25 Jun 2026 07:48:16 -0700 (PDT) X-Received: by 2002:a05:7301:3d10:b0:2f0:c8b5:3dc7 with SMTP id 5a478bee46e88-30c84dad323mr2813094eec.22.1782398896118; Thu, 25 Jun 2026 07:48:16 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 45/76] target/hexagon: Implement get_exe_mode() Date: Thu, 25 Jun 2026 07:16:02 -0700 Message-Id: <20260625141633.449487-46-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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: SNs7e_chww5qo1Sja9YmpzgNYh2dxXQi X-Proofpoint-ORIG-GUID: SNs7e_chww5qo1Sja9YmpzgNYh2dxXQi X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX//7/l3lMzGca cqpwiIkGbvAWhAEVycjBDv70ridT4uupAr+YXklzMl3Jvm8/V+SQ1m9C5qaHmkUy7c/pznahzsB SQeqHL1RYdyq+IX6WCzPx9AfopKiJkY= X-Authority-Analysis: v=2.4 cv=EsLiaycA c=1 sm=1 tr=0 ts=6a3d3fb1 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=4_WtjC8beq4VSFaiBQMA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfXwure0i69tpqy hdS4dLFA+Edhr+vzT92MkY9xEJ1Abhttjv9yEvNUNs7huJOo9wNHe0Wv+FRStfsjewfatRWwV7S 6ebr/zSlhyLwthOQsEcT6fMK2lIvBBrvXXQglLORATJSUSys8pUluqnyM78sYOTsPmoqmRJDQs1 Eah/eJkHz8WSbFvzxD58JK9ktvkhNUDoDHPhZYBuMcWv6dlsoQPSoeZwPry7Li+6c64is/1/WSQ 9fBbZCjLwuDSgrirUMAcCW1m0r5KflzzpvHRU4T5lecwJx9957o2IPDchdclNJa27q90E0kcgVy Id44CZWglq9BGQ0NyGQELJ7RoFlyKWAUX/6GYveJAeaiUDb74c/nNG0PlUQWPNfZJW3zbR3i6OE DC3T2rFs0pcFcT1LePScRGk6XJhC/2GUSKjDsuvpBvT6k9uiC2aPjQK2kecQSpOwd4W0DyVOoIU OVkjEoRHrrKfhGsZuxQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 bulkscore=0 clxscore=1015 priorityscore=1501 impostorscore=0 adultscore=0 spamscore=0 malwarescore=0 lowpriorityscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250127 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, TVD_SPACE_RATIO=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782399144429158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/reg_fields_def.h.inc | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/target/hexagon/reg_fields_def.h.inc b/target/hexagon/reg_field= s_def.h.inc index 9b112ccec64..d2c706d56b5 100644 --- a/target/hexagon/reg_fields_def.h.inc +++ b/target/hexagon/reg_fields_def.h.inc @@ -135,3 +135,14 @@ DEF_REG_FIELD(CCR_GRE, 27, 1) DEF_REG_FIELD(CCR_VV1, 29, 1) DEF_REG_FIELD(CCR_VV2, 30, 1) DEF_REG_FIELD(CCR_VV3, 31, 1) + +/* ISDB ST fields */ +DEF_REG_FIELD(ISDBST_WAITRUN, 24, 8) +DEF_REG_FIELD(ISDBST_ONOFF, 16, 8) +DEF_REG_FIELD(ISDBST_DEBUGMODE, 8, 8) +DEF_REG_FIELD(ISDBST_STUFFSTATUS, 5, 1) +DEF_REG_FIELD(ISDBST_CMDSTATUS, 4, 1) +DEF_REG_FIELD(ISDBST_PROCMODE, 3, 1) +DEF_REG_FIELD(ISDBST_MBXINSTATUS, 2, 1) +DEF_REG_FIELD(ISDBST_MBXOUTSTATUS, 1, 1) +DEF_REG_FIELD(ISDBST_READY, 0, 1) --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782399004; cv=none; d=zohomail.com; s=zohoarc; b=DM4PDyeV3Uf5Pb69r+ZvYZWZPZja7R93M05n9JhW7iZCErJbolBg3QeookaQ3eQDbreW9S5UbspuxHc4/PXzOlf4Q1yQHhAzlWvPBPUmyu2X15BOTjFluefoGXoZFoCeQY8jodJVDA+EzoY3bxZCZpyPiTxx7t7Q5e7YNWXf8+c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782399004; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=4hsqE0JDPfvXJ30nhCZ/CCXuACFuBC+IpE9moxChOvw=; b=Kcft39bA1iz0JHaRVsY6hXy1GK1pUzgiUKSb1EEJOW4C+OSXh1kubjVTjW8CE354hCQpvpU9bH5+byY8z4Hv7NURQ6loFPgNikJ3n4/xnfoCHYfD5k41fSIAqEtDUVg8xBM3BIEYu/n5IhWfsdc3SMFilPsnc4DIRyU1gkGhQCo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782399004625919.8800292609271; Thu, 25 Jun 2026 07:50:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclNa-0002e5-PV; Thu, 25 Jun 2026 10:48:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclNU-0002c0-V8 for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:30 -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 1wclNP-00005x-4V for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:26 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9k3ZE1755363 for ; Thu, 25 Jun 2026 14:48:19 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0w0q2byc-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:48:19 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30c95b0e22aso75514eec.1 for ; Thu, 25 Jun 2026 07:48:19 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.48.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:48:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 4hsqE0JDPfvXJ30nhCZ/CCXuACFuBC+IpE9moxChOvw=; b=Wz1pBwEGXvDRNXGr IPTEnU8cPnjGzgn6vgYZEQkcxV18vbVbzu2EBCZ5lX1TDCBoVqkiamjvgzA11Qnp 4XmGSFCQ8mppHrLCdZnKz3SxDHQLOw+5UfnTlsKJQvuYednkQmzVdDosB6B1DS1Z ctSv0+LBQ2OHyOOE1eJTwDMmmFqW+kD/yLeXR0XyYCdvPApLZ8NIinzRbmAupc8d iRi+fWTleGnQu2WLg/OtkmZcmjeESovzmLIYq3LNC2dtjcPgqO9BCR+LOzX10Q16 lGpVN1bT+vvvzusNQ/WOnJH8bUeOJkLD6ldU67cmi+v+Xyav4OqWYc8CLRSgrMJF iSNj0g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398898; x=1783003698; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=4hsqE0JDPfvXJ30nhCZ/CCXuACFuBC+IpE9moxChOvw=; b=M16eXiQxhjdTX0zH3Q4IYoFyTHcrQZdC538t7nAsMjsRQoJ40hxkY9HnR7ypmkQ9LK u21o2bNWzOtLz3V2bfCo+AIe7OXqt6PGoBOFcy9vhopYQbEBNnARyRAhE+jkQ+e30ITN yfru5TyAs90ijXngiSlr1SiyoXgPLkF126SqKr4aJ1d0kgA66fnz7/NeCfIqggi2KFWV +OabP+ywBd/MjOTTNpAVk0powbHUy/YeRb0z9TS4I/papyT5QxAUrcYo7JgJPqIq6n78 7ozHB8DYnIKDu4Pz8i7GrEKnyvNhCkMv5yoz2N9doeJSLzwE29X6eUUt3566VDXBfIba fZAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398898; x=1783003698; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=4hsqE0JDPfvXJ30nhCZ/CCXuACFuBC+IpE9moxChOvw=; b=HJvWyoMOFnXBW/3NoRcXz5tkKN830oKqiY7RHSbR7z+Qn2smGsKSfKXmJJox8oczjN djDIwNwneE2hNYh2tcBNZwa58iMuK3gdKbFRuwjj/9GPnQS1RisZNWL0JcZ9AGSuMm8l yPTis/TUU8GrUYd1oOEaBYZEhnydPoFVCvql76pPtLQfnw8P2IyoqoF2NYpYs0VWB01w 74fKrNUfthY5s8pu8puS2L0Qo/oocYm82Bt1vB0ywy4eiTMwr4oR16mXwQmkyjhhs8Ap xyVweQ4vbJUZvjLoakZOCcOzaGaPAM/gcM4OL+kQZwglFe0Qo+VtMgcvoGvz8g1BB+pI EgVA== X-Gm-Message-State: AOJu0YyUhkDGskN92+FRel12vQzXQvGO2WJbBNZFEC24+ianrkl7VuSZ SRmdb4ykfH8sDbxeomnVKX/zKJjACf2Q/2J+lIhzjh5FE+6fULeVX8xLmI4Oc8mjzQ+Oc4CkIIV Rnusz6YhZSnLBP/gtce6ilwRwLGhos90/Iazpno3irr6gRbP8wJbDvIYkgbFT1nVGBQ== X-Gm-Gg: AfdE7ckcIWYd+Ms87ypNg2eV865ES9vZW1ql537lHuQDzOjb97xF8dB1o5oKm6rn7F7 N7Fbv5JLDYwvfU3ZdXOGLlYYisHGZmopPQwO6uxKLua5t1fLcJfAG//Fkm/ek9TV5Wu7Wv89KC0 r4TKvk0o3lXw1VpSSiH1uOdu89QU/B1hfdmbMNmGb8B8bMOXHWrNUO1K6o77odblEC1U3vUrFCr 7xQtAK3eYhzCqaPOXDWtzAeiMwh87ZuqlWXML2PB6fDq3wetMB/GD22LdcnHxkT9coPVxhRsdAa QlkxAhF7NhO0rVAC76z+S9wUd/QalFVxFRNvY9U6GWAPP8QsXnXziiUkx2FpMsKx2euRkQ0qGqS eRzUDB4A0bldNXFFHUBNdWk2x604WiPGCXH80+Yj0fMVYMx/rZw+Lw+T4hjo= X-Received: by 2002:a05:7300:fd03:b0:30c:5534:e6f1 with SMTP id 5a478bee46e88-30c84e3157bmr3042825eec.29.1782398898317; Thu, 25 Jun 2026 07:48:18 -0700 (PDT) X-Received: by 2002:a05:7300:fd03:b0:30c:5534:e6f1 with SMTP id 5a478bee46e88-30c84e3157bmr3042776eec.29.1782398897671; Thu, 25 Jun 2026 07:48:17 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier , Laurent Vivier , Helge Deller Subject: [PULL v3 46/76] target/hexagon: Implement hex_tlb_entry_get_perm() Date: Thu, 25 Jun 2026 07:16:03 -0700 Message-Id: <20260625141633.449487-47-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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: BbvH6sPtB3Vv56RvrxfwDSmlVmT7xm7u X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyNiBTYWx0ZWRfX2KljqNYADdAU F5spuqk2hAzh7Ynac3jtLCv7r6cA5/9Rwc2JVlbwDpCJ1m2Pbi0zskfn0a98LcHF8/DswXqHiwh 8BCv4xlTGa70I8uQCjPq/G6+4QsPu3A= X-Proofpoint-GUID: BbvH6sPtB3Vv56RvrxfwDSmlVmT7xm7u X-Authority-Analysis: v=2.4 cv=R6Ez39RX c=1 sm=1 tr=0 ts=6a3d3fb3 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=RKVJoAg1yBLoogzcrgwA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyNiBTYWx0ZWRfXwNpNfUuRhaqA eLuStUzYL2saK4GdbM/ZQD2wn2yf/3F8woHasJtqiwqyyafw0i3S4N+fWqMcOQjVIhPg5g1HCaw cDqC+R7wGVAKPLY2q+uMayEOqRsAS9xgFo0e1z2mw2z7YqKFWtnzDAQyh5U4dXCO/7Gi0SvSzU7 DbK6vs6sNlNcIez6JDathjWocLyBEHV3mJQItg5NbQ/P6qV+fF95jTYSqWzyzdzjezKWDsAFbpG Gz3C6kFfS739og1sKprtDvlvG7DilqUL3xb4Y6q3oGEq9UE+jvnwJL64+tUxfuOnkM2zMjMsn7C b4EmHGgDEdD9chkjaOo9miBInqtz3T+oBvK6kOX1yWIjv986yuwNcYDEMFPFmkByQLfOzmNKotP pJW/LYlUItX0GVC8nYPCu0sXeAsRXJ0SXR/tKBEJgY53Mk6W3mL5Z3Gndcs07KzGek81Mb/7hRM 8p1GhI/jDoSZeWULl5g== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 clxscore=1015 malwarescore=0 priorityscore=1501 adultscore=0 suspectscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250126 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, TVD_SPACE_RATIO=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782399005468158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- linux-user/hexagon/cpu_loop.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/linux-user/hexagon/cpu_loop.c b/linux-user/hexagon/cpu_loop.c index 9f54c7b3f96..0958c51fbb3 100644 --- a/linux-user/hexagon/cpu_loop.c +++ b/linux-user/hexagon/cpu_loop.c @@ -63,6 +63,13 @@ void cpu_loop(CPUHexagonState *env) break; case HEX_EVENT_PRECISE: switch (env->cause_code) { + case HEX_CAUSE_FETCH_NO_UPAGE: + case HEX_CAUSE_PRIV_NO_UREAD: + case HEX_CAUSE_PRIV_NO_UWRITE: + force_sig_fault(TARGET_SIGSEGV, TARGET_SEGV_MAPERR, + env->gpr[HEX_REG_PC]); + + break; case HEX_CAUSE_PRIV_USER_NO_GINSN: case HEX_CAUSE_PRIV_USER_NO_SINSN: case HEX_CAUSE_INVALID_PACKET: --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782399075; cv=none; d=zohomail.com; s=zohoarc; b=Ynx3OqokgtgAQWCZeeh2t5CZX4tjir0mnzoi2fF1O1U6NdioVBn/c4mD+nEglktKad9CWuxOuLrxVYbrBfeCw3M/oYssa3PPO0+qcJmft0Dy+6T5PbIjXpiQrouemCf5KZGr1+PRD/FS9DNn7EsyQSiBHvRk5DBwrtPmRMNRS+s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782399075; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=aIbWXnylGEOIxNE7Hh9Cxzq5WDrKFEMpHLRhBN9RrG4=; b=hWDn/Gn1oMac7p0x6vjxFGcolyK0abED+ZStWZzmt4rHk69e4z4WIrVCmEfiseMDTOjDt5DKNkw9N7ihlvAR5HIgSVGX4zomv8f29cge/UlJPgjflInbTbcklUQNlbc/p5H9iHjI43YguAaYMtFuixItnKnqijnvkZo5H9eu9OI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782399075254912.0767699876266; Thu, 25 Jun 2026 07:51:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclNZ-0002ds-8T; Thu, 25 Jun 2026 10:48:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclNU-0002bz-VQ for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:30 -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 1wclNP-00006D-4b for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:25 -0400 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9julv1723061 for ; Thu, 25 Jun 2026 14:48:21 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0j7dvtdj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:48:20 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30bcb065bfdso2720480eec.0 for ; Thu, 25 Jun 2026 07:48:20 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.48.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:48:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= aIbWXnylGEOIxNE7Hh9Cxzq5WDrKFEMpHLRhBN9RrG4=; b=F4jHSSPLmJmNv/cV R+bA1gbzt5Edqju8Yi94sv5MWG5hIRhRcd5WE+pTnsLEnpVCDezDyqx83c1I+cQX QRjAhJFOGVVFJx2chN5ob/ziklLaRBzbHr7A/eKQrajEwnFSxZpAR0UXDx6mLyht afBfL3pl95op7co+tNysTUBl1/oR6S7UXBwtyX4Txif4c3cNp5PuyECdR4e2kwUy M/JwT4qftyXERn0ddgC8kzGWycvdybnybI4orCDH3nATvpHjvyIGBdyVkpSRUSD0 EsDF7EtRQUQCFVf+hgAsSiCm5HLeTDeDYYs+Mrm41mXDr07KW7LjL/KrIct5b6PY N3KBKQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398900; x=1783003700; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=aIbWXnylGEOIxNE7Hh9Cxzq5WDrKFEMpHLRhBN9RrG4=; b=gzuqjxDfpf0/MmFQytwTVDOPdLBqrC4+om2Usw2AY21jdYMO+vDyHdR2D3bOg3BUwb YV7bSRETHcSqWy3rLg0AWlgXozoTfvQRu8pgDEugPOEuSrZK7t97agI6lMVK/qTDEsrK 8CmwT50gWN5pRDsOMZ9mdwzgbZVPqTMt3rVxu6Wuwxk4hOO+q/MIhK9CTEM1rl0tHriO RrSusNiiivOQS2DX/+T9l/ElMc4iwZ+PcnRYljrH1rF3IyWWKs6x8OBYcHabAiEIeNFA b4k7JmtHtAB3NhdkbhQ7WjNucC9ucnHuYiFE4KsasI0dRPdcu8Z0u2gPNDTcOC7fa9xZ 9tzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398900; x=1783003700; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=aIbWXnylGEOIxNE7Hh9Cxzq5WDrKFEMpHLRhBN9RrG4=; b=OyPtIPn/uKOj8Nu5PtZKRmE3qAm0VmxYtR70LiRoGL71KQ8XJktToxXpYLguRZW0VQ FtB6HobiDhJRukFyLumQYNg9GTqRQHZoujzjvNFuKGIaK/VQcxTPBpcHbOb6cReDycEN ijc9E1dtyxb7fJwLJjrVMLagDMo1AeK30lWCxmpLBGi8e2aWc0oQYykifyIV69seaWEk YjhkPtPPKAG+d11dAmK8l5hD9Z1LFXCzbLxaIBjDK5I3+2wynU6O2NQtkvybr4PDx0qC HJWJIXNmAj8kRBG0xd3yeP+Dfp84iENRBgXa8G8srhjTINeC+EbzXV7faHLbU0szRXO0 oDxA== X-Gm-Message-State: AOJu0Yw19j178+ZsVctJyPVApDbpJBTuTmOA2ClXj0hFClnxI32t5zh6 BSA8Dfv1qLuhMJ21UCucn3zUroLJE4QG1wPyt9kANdjIhWmc4/MTS5pV27ekwhG5luocz5i3/81 SXok7OITn06Bv3+kiB9K4eeWAeLBF1sOW+qthhOet8nPaathk+pLp2XbdJXUelkiyGw== X-Gm-Gg: AfdE7cmXLftoHI/LRyX2c31T8OqKhmvJKCwTXJWJIv+spbCG4UyCtzzONtHuW7VKvBC NQaYMxkGlWRxSW+hbpfPV/CU5z9syWGokLfsSXXX26fbNGlAJE4VlJiWeQS2pCLWnYSy+37bzwN Gna5fDZJ+VHTRvyOrnDAEa4H0H9oNM/MKOkPm8Q7BdjHMBCKgEM1P3WGGMcGLo4PO3SkpsxU3Gc nN5Z1suGhSg9n6ln8AI1gKj9xkqwTbqOmJH8K+jl4q2KIiv3tBDun4V7ejkZ1ECc+vmLxuFYcic VpF2lnR+VClM6N2/EMHWQ9/BJB+YlSOL1/o4UoAF/RCG9X/SR1s/X2yJRCcXwaFS3qhKstkkIPP gTxqFbmbdfuFhFWE++Lo5Q34KGBrf9GHonbVkxq98g15d8d2p2qD2GV6j7z8= X-Received: by 2002:a05:7300:2d2c:b0:30c:41df:3734 with SMTP id 5a478bee46e88-30c84caee33mr3428688eec.22.1782398899561; Thu, 25 Jun 2026 07:48:19 -0700 (PDT) X-Received: by 2002:a05:7300:2d2c:b0:30c:41df:3734 with SMTP id 5a478bee46e88-30c84caee33mr3428639eec.22.1782398898938; Thu, 25 Jun 2026 07:48:18 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Mike Lambert , Pierrick Bouvier Subject: [PULL v3 47/76] target/hexagon: Implement software interrupt Date: Thu, 25 Jun 2026 07:16:04 -0700 Message-Id: <20260625141633.449487-48-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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: jZelsIfWoKEUmh0RM0-iY5UlEoLUkOcv X-Authority-Analysis: v=2.4 cv=NvHhtcdJ c=1 sm=1 tr=0 ts=6a3d3fb4 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=tNsvDMl9nzr4Tn7f5JwA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyNiBTYWx0ZWRfX4es4iPt71LSA e0IKJJxRY0DwXQ7IKx1Z7YafYj0yfp4s7IK5M1U9Gxg1gRUZEMNQfWx79GFGOhaKFXF+EWprqmc 8ncNX6ReSv/d/iL9P88eoLxKyBh47r8= X-Proofpoint-ORIG-GUID: jZelsIfWoKEUmh0RM0-iY5UlEoLUkOcv X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyNiBTYWx0ZWRfX/QD/TNeNjCAt rXRapgPWDs3AZznnvp43Sg/+TDtec3dC3n9+tGoQy3GTiugeZakvW68RDSSdc+JmKb9FlVeWdR7 cbek4PCIZcCZYi3xm4JyLHqkYxpqkK1p5TESLgwt1nYenPLpHg9jLiC3Oe3Jonw8fuvkrAYzKg5 Tx/l4ZeO+VGP+GH69UxNgQAZat+Ju7ov95d5507M208qAqqnj8uV46TZn5fY6vMtChqktfAewUd q9fhmSC9dpYiWk/ZuDVGw2kEWa5FcS/U5Fu2HUpNc4G3aTw9TM1jvyPBdiTsnUXszslAXTWW0uO IANW1ZiSGd3bRrzCKTnva5wOnySiC6mP4zJaX7vIRWw1eq6oxB5U20722bzdb+/17yaRcxYNEri pROzqp8ltTtETkZ7TmnCa+DwRY3jKEgqvGrsJ/bNxvYtkP8g9Noet2+sxtSXSXGJf3XRfYJEeJQ BwPUbWwrSlDaRkQjW6w== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 suspectscore=0 adultscore=0 impostorscore=0 phishscore=0 spamscore=0 bulkscore=0 lowpriorityscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250126 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782399075915158500 From: Brian Cain Co-authored-by: Mike Lambert Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- target/hexagon/hexswi.h | 17 +++ target/hexagon/cpu.c | 1 + target/hexagon/hexswi.c | 271 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 289 insertions(+) create mode 100644 target/hexagon/hexswi.h create mode 100644 target/hexagon/hexswi.c diff --git a/target/hexagon/hexswi.h b/target/hexagon/hexswi.h new file mode 100644 index 00000000000..48c1ae6e4c1 --- /dev/null +++ b/target/hexagon/hexswi.h @@ -0,0 +1,17 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HEXSWI_H +#define HEXSWI_H + + +#include "cpu.h" + +void hexagon_cpu_do_interrupt(CPUState *cpu); +void register_trap_exception(CPUHexagonState *env, int type, int imm, + uint32_t PC); + +#endif /* HEXSWI_H */ diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 27f0ef50df2..ec0ca3ee678 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -34,6 +34,7 @@ #include "sys_macros.h" #include "accel/tcg/cpu-ldst.h" #include "qemu/main-loop.h" +#include "hex_interrupts.h" #endif =20 static ObjectClass *hexagon_cpu_class_by_name(const char *cpu_model) diff --git a/target/hexagon/hexswi.c b/target/hexagon/hexswi.c new file mode 100644 index 00000000000..43c373ea2ee --- /dev/null +++ b/target/hexagon/hexswi.c @@ -0,0 +1,271 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "cpu.h" +#include "cpu_helper.h" +#include "exec/helper-proto.h" +#include "qemu/log.h" +#include "qemu/main-loop.h" +#include "arch.h" +#include "internal.h" +#include "macros.h" +#include "sys_macros.h" +#include "accel/tcg/cpu-loop.h" +#include "tcg/tcg-op.h" +#include "hex_mmu.h" +#include "hexswi.h" +#include "hw/hexagon/hexagon_globalreg.h" + +#ifdef CONFIG_USER_ONLY +#error "This file is only used in system emulation" +#endif + +static void set_addresses(CPUHexagonState *env, uint32_t pc_offset, + uint32_t exception_index) + +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t evb =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_EVB, + env->threadId) : + cpu->boot_addr; + env->t_sreg[HEX_SREG_ELR] =3D env->gpr[HEX_REG_PC] + pc_offset; + env->gpr[HEX_REG_PC] =3D evb | (exception_index << 2); +} + +static const char *event_name[] =3D { + [HEX_EVENT_RESET] =3D "HEX_EVENT_RESET", + [HEX_EVENT_IMPRECISE] =3D "HEX_EVENT_IMPRECISE", + [HEX_EVENT_PRECISE] =3D "HEX_EVENT_PRECISE", + [HEX_EVENT_TLB_MISS_X] =3D "HEX_EVENT_TLB_MISS_X", + [HEX_EVENT_TLB_MISS_RW] =3D "HEX_EVENT_TLB_MISS_RW", + [HEX_EVENT_TRAP0] =3D "HEX_EVENT_TRAP0", + [HEX_EVENT_TRAP1] =3D "HEX_EVENT_TRAP1", + [HEX_EVENT_FPTRAP] =3D "HEX_EVENT_FPTRAP", + [HEX_EVENT_DEBUG] =3D "HEX_EVENT_DEBUG", + [HEX_EVENT_INT0] =3D "HEX_EVENT_INT0", + [HEX_EVENT_INT1] =3D "HEX_EVENT_INT1", + [HEX_EVENT_INT2] =3D "HEX_EVENT_INT2", + [HEX_EVENT_INT3] =3D "HEX_EVENT_INT3", + [HEX_EVENT_INT4] =3D "HEX_EVENT_INT4", + [HEX_EVENT_INT5] =3D "HEX_EVENT_INT5", + [HEX_EVENT_INT6] =3D "HEX_EVENT_INT6", + [HEX_EVENT_INT7] =3D "HEX_EVENT_INT7", + [HEX_EVENT_INT8] =3D "HEX_EVENT_INT8", + [HEX_EVENT_INT9] =3D "HEX_EVENT_INT9", + [HEX_EVENT_INTA] =3D "HEX_EVENT_INTA", + [HEX_EVENT_INTB] =3D "HEX_EVENT_INTB", + [HEX_EVENT_INTC] =3D "HEX_EVENT_INTC", + [HEX_EVENT_INTD] =3D "HEX_EVENT_INTD", + [HEX_EVENT_INTE] =3D "HEX_EVENT_INTE", + [HEX_EVENT_INTF] =3D "HEX_EVENT_INTF" +}; + +void hexagon_cpu_do_interrupt(CPUState *cs) + +{ + CPUHexagonState *env =3D cpu_env(cs); + uint32_t ssr; + + BQL_LOCK_GUARD(); + + qemu_log_mask(CPU_LOG_INT, + "\t%s: event 0x%02x:%s, cause 0x%" PRIx32 "(%" PRIu32 ")= \n", + __func__, (unsigned)cs->exception_index, + event_name[cs->exception_index], env->cause_code, + env->cause_code); + + env->llsc_addr =3D ~0; + + ssr =3D env->t_sreg[HEX_SREG_SSR]; + if (GET_SSR_FIELD(SSR_EX, ssr) =3D=3D 1) { + HexagonCPU *cpu =3D env_archcpu(env); + if (cpu->globalregs) { + hexagon_globalreg_write(cpu->globalregs, HEX_SREG_DIAG, + env->cause_code, env->threadId); + } + env->cause_code =3D HEX_CAUSE_DOUBLE_EXCEPT; + cs->exception_index =3D HEX_EVENT_PRECISE; + } + + switch (cs->exception_index) { + case HEX_EVENT_TRAP0: + if (env->cause_code =3D=3D 0) { + qemu_log_mask(LOG_UNIMP, + "trap0 is unhandled, no semihosting available\n"= ); + } + + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 4, cs->exception_index); + break; + + case HEX_EVENT_TRAP1: + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 4, cs->exception_index); + break; + + case HEX_EVENT_TLB_MISS_X: + switch (env->cause_code) { + case HEX_CAUSE_TLBMISSX_CAUSE_NORMAL: + case HEX_CAUSE_TLBMISSX_CAUSE_NEXTPAGE: + qemu_log_mask(CPU_LOG_MMU, + "TLB miss EX exception (0x%02" PRIx32 ") caught:= " + "Cause code (0x%" PRIx32 ") " + "TID =3D 0x%" PRIx32 ", PC =3D 0x%" PRIx32 + ", BADVA =3D 0x%" PRIx32 "\n", + (uint32_t)cs->exception_index, + env->cause_code, env->threadId, + env->gpr[HEX_REG_PC], + env->t_sreg[HEX_SREG_BADVA]); + + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + break; + + default: + cpu_abort(cs, + "1:Hexagon exception %" PRId32 "/0x%02" PRIx32 ": " + "Unknown cause code %" PRIu32 "/0x%" PRIx32 "\n", + (uint32_t)cs->exception_index, + (uint32_t)cs->exception_index, + env->cause_code, + env->cause_code); + break; + } + break; + + case HEX_EVENT_TLB_MISS_RW: + switch (env->cause_code) { + case HEX_CAUSE_TLBMISSRW_CAUSE_READ: + case HEX_CAUSE_TLBMISSRW_CAUSE_WRITE: + qemu_log_mask(CPU_LOG_MMU, + "TLB miss RW exception (0x%02" PRIx32 ") caught:= " + "Cause code (0x%" PRIx32 ") " + "TID =3D 0x%" PRIx32 ", PC =3D 0x%" PRIx32 + ", BADVA =3D 0x%" PRIx32 "\n", + (uint32_t)cs->exception_index, + env->cause_code, env->threadId, + env->gpr[HEX_REG_PC], + env->t_sreg[HEX_SREG_BADVA]); + + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + /* env->sreg[HEX_SREG_BADVA] is set when the exception is rais= ed */ + break; + + default: + cpu_abort(cs, + "2:Hexagon exception %" PRId32 "/0x%02" PRIx32 ": " + "Unknown cause code %" PRIu32 "/0x%" PRIx32 "\n", + (uint32_t)cs->exception_index, + (uint32_t)cs->exception_index, + env->cause_code, + env->cause_code); + break; + } + break; + + case HEX_EVENT_FPTRAP: + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + break; + + case HEX_EVENT_DEBUG: + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + qemu_log_mask(LOG_UNIMP, "single-step exception is not handled\n"); + break; + + case HEX_EVENT_PRECISE: + switch (env->cause_code) { + case HEX_CAUSE_FETCH_NO_XPAGE: + case HEX_CAUSE_FETCH_NO_UPAGE: + case HEX_CAUSE_PRIV_NO_READ: + case HEX_CAUSE_PRIV_NO_UREAD: + case HEX_CAUSE_PRIV_NO_WRITE: + case HEX_CAUSE_PRIV_NO_UWRITE: + case HEX_CAUSE_MISALIGNED_LOAD: + case HEX_CAUSE_MISALIGNED_STORE: + case HEX_CAUSE_PC_NOT_ALIGNED: + qemu_log_mask(CPU_LOG_MMU, + "MMU permission exception (0x%02" PRIx32 ") caug= ht: " + "Cause code (0x%" PRIx32 ") " + "TID =3D 0x%" PRIx32 ", PC =3D 0x%" PRIx32 + ", BADVA =3D 0x%" PRIx32 "\n", + (uint32_t)cs->exception_index, + env->cause_code, env->threadId, + env->gpr[HEX_REG_PC], + env->t_sreg[HEX_SREG_BADVA]); + + + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + /* env->sreg[HEX_SREG_BADVA] is set when the exception is rais= ed */ + break; + + case HEX_CAUSE_DOUBLE_EXCEPT: + case HEX_CAUSE_PRIV_USER_NO_SINSN: + case HEX_CAUSE_PRIV_USER_NO_GINSN: + case HEX_CAUSE_INVALID_OPCODE: + case HEX_CAUSE_NO_COPROC_ENABLE: + case HEX_CAUSE_NO_COPROC2_ENABLE: + case HEX_CAUSE_UNSUPPORTED_HVX_64B: + case HEX_CAUSE_REG_WRITE_CONFLICT: + case HEX_CAUSE_VWCTRL_WINDOW_MISS: + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + break; + + case HEX_CAUSE_COPROC_LDST: + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + break; + + case HEX_CAUSE_STACK_LIMIT: + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + break; + + default: + cpu_abort(cs, + "3:Hexagon exception %" PRId32 "/0x%02" PRIx32 ": " + "Unknown cause code %" PRIu32 "/0x%" PRIx32 "\n", + (uint32_t)cs->exception_index, + (uint32_t)cs->exception_index, + env->cause_code, + env->cause_code); + break; + } + break; + + case HEX_EVENT_IMPRECISE: + qemu_log_mask(LOG_UNIMP, + "Imprecise exception: this case is not yet handled"); + break; + + default: + qemu_log_mask(LOG_UNIMP, + "Hexagon Unsupported exception 0x%02x/0x%" PRIx32 "\n", + (unsigned)cs->exception_index, env->cause_code); + break; + } + + cs->exception_index =3D HEX_EVENT_NONE; +} + +void register_trap_exception(CPUHexagonState *env, int traptype, int imm, + uint32_t PC) +{ + CPUState *cs =3D env_cpu(env); + + cs->exception_index =3D (traptype =3D=3D 0) ? HEX_EVENT_TRAP0 : HEX_EV= ENT_TRAP1; + ASSERT_DIRECT_TO_GUEST_UNSET(env, cs->exception_index); + + env->cause_code =3D imm; + env->gpr[HEX_REG_PC] =3D PC; + cpu_loop_exit(cs); +} --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782398987; cv=none; d=zohomail.com; s=zohoarc; b=lVsQvM6l5r1+B3AX+sh3qM1TzasX95z4pvlktlB+TpAKtaDHfxpdZIcywuZOz6rlBbTM9tFrf/5Dv/KKBhhsuvjRatWPwn+/sN60jZC7k7QKl5iKX5wpHx42SgrED22yz1JD5SzCPwdtsuvyY+lSt26tNH9yTIL0MHuy0IbSEts= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782398987; 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=5Ol8x/DbzIMvUDIJM8kbWvZWErXt04EMMYZCOcsacqI=; b=kprPne5vXLSbb+YIPOXWEX84ZDJNJanc1qMmkQ0ft0y5TGXZcXuaDpLUYFUT+EyPWGKy6pI2cF3BLVjO/JhQwWgZbmFSjHb/noOIbbbf+erhS1YrEG+ZwwE6O0kIZA7nKjyDOpWjfbza2Ik6wZkvybh+Fk9WwntxCTijmevuw8s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782398986986636.3207087964089; Thu, 25 Jun 2026 07:49:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclNa-0002eH-Rz; Thu, 25 Jun 2026 10:48:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclNU-0002c1-Vi for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:30 -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 1wclNP-00006N-Q7 for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:27 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9jvsC1754134 for ; Thu, 25 Jun 2026 14:48:22 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0w0q2byk-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:48:22 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c1f6c5559so2342635eec.0 for ; Thu, 25 Jun 2026 07:48:22 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.48.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:48: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= 5Ol8x/DbzIMvUDIJM8kbWvZWErXt04EMMYZCOcsacqI=; b=IDWaNpYyyBt8NRqZ nCP1x61XWtRi36FF71vXKOZGURKswdmZd9P8gDx42rK8YJV1umxSCP42gcnDreZw CSnBw5m0i09H8mITffqTlJVqIoKNXfPOFJn3MfNL6FPfQYNmf4LviGO9wjzcjhaC QPjNVSGuhN0c69LAIg6shNQGWozc92WMFsysopl7v+7SYloRWpPgZ6c5L+sMfcnb opS2kRjU5ToDkc7WZuMEKT+7OlaaKqufJc9uVI1MBU2KAk7wJ9Esx/f7+0U8fTgt 7RJQP1Mh+CXy/Dh8EeexMLs7r/4Te6YVBj9S4EvWSoR3nkth7uxCdIvFLzV/tIUD pwe36Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398901; x=1783003701; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5Ol8x/DbzIMvUDIJM8kbWvZWErXt04EMMYZCOcsacqI=; b=Rh98Oa+27x+oAUP1e2ETVyUYDkAjyax4rHv90NaqE3vf25mDdzkWa6WXpK8LP1ak9/ AOgyQXqrJTrGf8l79nwrDPcav81RnrmXAttsn+AUgGdfzS/Nfi/ufPFyzrtUH0LMPdIo 6zhT7N2T+sPCYZ4renc5qMOJF4tf8I6/QgktPBg7rdjU/HxxeKWwVhV+2KZ/68JLxCE/ JXiWS4Stn05rj5DZKOaRzEm4uWXL9e/SGkD2ioFFPHB5szSxzXZwYVH/jyo0JkdzZeww 6HjqTjtZA5N1q05STvghcG+WAZbjifyiT7v8cMRiqZM5GuM7USpg8ZvS2wmXjr0nfJ5d UbSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398901; x=1783003701; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=5Ol8x/DbzIMvUDIJM8kbWvZWErXt04EMMYZCOcsacqI=; b=ff6A84QHVD4NS5p36j/OvNNJ489VVoUhdfzgc6XDvAPzWekP+mb5s4vvl27LXydkVi NLZ1YD4HHkcjBYRT6mcxWs5GJpZWbA+ORQZYa88edp+59qw9B7DwcS11g/ObMBWX/kS2 UsS0Mdwugqvm+mHy2AphVHW/Z6Hk/l9L9YV2yzQia99+JplE+CalEWZAtHa/k3Id0e3g cF7WPzs9qqU1Zxm5ktE///OeZYqpucRsdIwW7zCSr6WSzqWDGUcWCkUeAPGQzDdmQCeM zfliXOqavKAstjmIrG2fr2eAYX4s3qAkxQDKvKfgxb+C4IFXvwupbuV4rzdJOPypZXm8 GBOg== X-Gm-Message-State: AOJu0Yy12kbGy1Hl6WYpR/PeXgQnFDicg2LaOf839QC0haEQxmxsGZp9 WvmZ4OBGUPviL/+/pMKvrpKLRMThX7jsSwxsMiYyMmM20bL1LDQVsiXVzQvVTq0W4cL5usy+sFy 4SOCeXc7TOxW3h6v1B9NeiEufBU3vMLQYVlgWGUR039riJIzsnDHs4CcOrOslrF2xwg== X-Gm-Gg: AfdE7cmpsHye49M7nExddG9OOjQD6qbeU9gqQJS5oltcDDARUVUtVrBoXJkDJPHz+0k TUZs7I28tQPdi7LctHTUC0kc4k6FvLnu5NBPw/cT/xY0xtbcG+/GomDt5/yPeiPBsC2ItHDVuGr iAr8fYtOsj5K0OO9cKVhVLxADXCaS3iLYmxLahHWLVq26diXcaZ4VQ4sg7H3VpXSRiqVpHf4uRo IRUJaERwu5Xyv3x9uEIdRnE+ToB6sfcYCzqzh8oZBBqqFIHyOgcBl/IkyfXkVTScNLb8K8yXjl0 5RY2ogfiq8spUzusspdZqlIFm0EBfA2PzQoFVbmZAlb9oMn6JL+7BAlr84+LR4yxnspFXVT2K2Y BAQCK7wIQgcVWNeUW5pMF7yoT6vje9Z/wSI39tj77VIvaDvnDUzVlMabx8Hk= X-Received: by 2002:a05:7300:a599:b0:30b:f4e3:a2b0 with SMTP id 5a478bee46e88-30c84d0e7a7mr2748217eec.21.1782398901391; Thu, 25 Jun 2026 07:48:21 -0700 (PDT) X-Received: by 2002:a05:7300:a599:b0:30b:f4e3:a2b0 with SMTP id 5a478bee46e88-30c84d0e7a7mr2748181eec.21.1782398900713; Thu, 25 Jun 2026 07:48:20 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Taylor Simpson , Pierrick Bouvier , Alessandro Di Federico , Anton Johansson Subject: [PULL v3 48/76] target/hexagon: Implement stack overflow exception Date: Thu, 25 Jun 2026 07:16:05 -0700 Message-Id: <20260625141633.449487-49-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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: RJeAS0wx6UYy6SHtJXsEzzqQ3YCWukh- X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyNiBTYWx0ZWRfX/nEyoxH+RrV3 +vKHvy6Jd6MQ8X7CkbsE8SEC+tbtHo3Udw2+CRoxfn3BGuVbSVsyEMhQNYYBC8PFxQcDeSB9Szv ntC6iZaRyB7B161yIxmKGF6U0bKrHDA= X-Proofpoint-GUID: RJeAS0wx6UYy6SHtJXsEzzqQ3YCWukh- X-Authority-Analysis: v=2.4 cv=R6Ez39RX c=1 sm=1 tr=0 ts=6a3d3fb6 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=DTjK4E8Rq4C45BV92HcA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyNiBTYWx0ZWRfX1is3VYgTQW8+ yGK/M1v1OhPoia+uu+6mHzMnZK4GJeNE/dObbF169cY+1L/Q+p6EEwCITrKBnmTbgE8uijMlgPW eaLAohUagzFgDmkhMfumCdIwpqVUiKVGKkCVs/qNrRl1WgylUCxEJvv/4b0ZHYKWo8Fo+EMUj0w wqAkx9cK+iBPcGaRHIFe5MVD52u/Aw1IqNpLgKNPodiai8wHozO/g9pTiN289oYqS0LiLMDPW2H qXkMJKg4P7G2RGniFesbAJ6KOlcRFj5Lq0IcImRiAUTDtrCeo8BoON1IPiP7wxZf2LStNI9Ea97 CBJq5zlGzfSDIaD2qd04uYhMk6cwvWRSnqkqvwxmfD3pf5gfcB6zfV/aYLmMrUZNWMHUc83DDJg Js9XIUvcCLCBE8GtlHLidHVMBRu4KNbqov8PDWrdtHI0XzmV5Rd73eINMwso7Ns5D0DsVLX47IB iPObmr4jl2W5qdtWvkA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 clxscore=1015 malwarescore=0 priorityscore=1501 adultscore=0 suspectscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250126 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782398987242158500 Implement the frame limit check for system emulation mode. When allocframe computes a new stack pointer below FRAMELIMIT, raise a precise exception (HEX_CAUSE_STACK_LIMIT). The check is skipped in monitor mode. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/helper.h | 1 + target/hexagon/idef-parser/parser-helpers.h | 2 ++ target/hexagon/macros.h | 3 -- target/hexagon/sys_macros.h | 4 +++ target/hexagon/translate.h | 2 ++ target/hexagon/genptr.c | 18 +++++++---- target/hexagon/idef-parser/parser-helpers.c | 9 ++++++ target/hexagon/op_helper.c | 36 +++++++++++++++++++++ target/hexagon/idef-parser/idef-parser.y | 3 ++ 9 files changed, 68 insertions(+), 10 deletions(-) diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index 0ec3a099cb6..aa3604dbdc5 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -109,6 +109,7 @@ DEF_HELPER_2(probe_hvx_stores, void, env, int) DEF_HELPER_2(probe_pkt_scalar_hvx_stores, void, env, int) =20 #if !defined(CONFIG_USER_ONLY) +DEF_HELPER_3(raise_stack_overflow, void, env, i32, i32) DEF_HELPER_2(swi, void, env, i32) DEF_HELPER_2(cswi, void, env, i32) DEF_HELPER_2(ciad, void, env, i32) diff --git a/target/hexagon/idef-parser/parser-helpers.h b/target/hexagon/i= def-parser/parser-helpers.h index 2087d534a93..d3dfcec5690 100644 --- a/target/hexagon/idef-parser/parser-helpers.h +++ b/target/hexagon/idef-parser/parser-helpers.h @@ -295,6 +295,8 @@ void gen_cancel(Context *c, YYLTYPE *locp); =20 void gen_load_cancel(Context *c, YYLTYPE *locp); =20 +void gen_framecheck(Context *c, YYLTYPE *locp, HexValue *addr, HexValue *e= a); + void gen_load(Context *c, YYLTYPE *locp, HexValue *size, HexSignedness signedness, HexValue *ea, HexValue *dst); =20 diff --git a/target/hexagon/macros.h b/target/hexagon/macros.h index 041e68a150e..21ab8ae5bbf 100644 --- a/target/hexagon/macros.h +++ b/target/hexagon/macros.h @@ -538,9 +538,6 @@ static inline TCGv gen_read_ireg(TCGv result, TCGv val,= int shift) =20 #ifdef CONFIG_USER_ONLY #define fFRAMECHECK(ADDR, EA) do { } while (0) /* Not modelled in linux-us= er */ -#else -/* System mode not implemented yet */ -#define fFRAMECHECK(ADDR, EA) g_assert_not_reached(); #endif =20 #ifdef QEMU_GENERATE diff --git a/target/hexagon/sys_macros.h b/target/hexagon/sys_macros.h index ade57290166..707afc53e1f 100644 --- a/target/hexagon/sys_macros.h +++ b/target/hexagon/sys_macros.h @@ -97,6 +97,10 @@ #define fTRAP(TRAPTYPE, IMM) \ register_trap_exception(env, TRAPTYPE, IMM, PC) =20 +#ifdef QEMU_GENERATE +#define fFRAMECHECK(ADDR, EA) gen_framecheck(ctx, ADDR, EA) +#endif + #define fVIRTINSN_SPSWAP(IMM, REG) #define fVIRTINSN_GETIE(IMM, REG) { REG =3D 0xdeafbeef; } #define fVIRTINSN_SETIE(IMM, REG) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index 208cf141e7e..f79bdedd7b6 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -341,4 +341,6 @@ FIELD(PROBE_PKT_SCALAR_HVX_STORES, S0_IS_PRED, 3, 1) FIELD(PROBE_PKT_SCALAR_HVX_STORES, S1_IS_PRED, 4, 1) FIELD(PROBE_PKT_SCALAR_HVX_STORES, MMU_IDX, 5, 2) =20 +void gen_framecheck(DisasContext *ctx, TCGv_i32 addr, TCGv_i32 ea); + #endif diff --git a/target/hexagon/genptr.c b/target/hexagon/genptr.c index ee69feae4b0..1ebc7471409 100644 --- a/target/hexagon/genptr.c +++ b/target/hexagon/genptr.c @@ -893,26 +893,30 @@ static void gen_load_frame(DisasContext *ctx, TCGv_i6= 4 frame, TCGv EA) tcg_gen_qemu_ld_i64(frame, EA, ctx->mem_idx, MO_LE | MO_UQ); } =20 -#ifndef CONFIG_HEXAGON_IDEF_PARSER /* Stack overflow check */ -static void gen_framecheck(TCGv EA, int framesize) +void gen_framecheck(DisasContext *ctx, TCGv_i32 addr, TCGv_i32 ea) { - /* Not modelled in linux-user mode */ - /* Placeholder for system mode */ #ifndef CONFIG_USER_ONLY - g_assert_not_reached(); + TCGLabel *ok =3D gen_new_label(); + tcg_gen_brcond_i32(TCG_COND_GEU, addr, hex_gpr[HEX_REG_FRAMELIMIT], ok= ); + gen_helper_raise_stack_overflow(tcg_env, + tcg_constant_i32(ctx->insn->slot), ea); + gen_set_label(ok); #endif } =20 +#ifndef CONFIG_HEXAGON_IDEF_PARSER static void gen_allocframe(DisasContext *ctx, TCGv r29, int framesize) { TCGv r30 =3D get_result_gpr(ctx, HEX_REG_FP); + TCGv_i32 new_r29 =3D tcg_temp_new_i32(); TCGv_i64 frame; tcg_gen_addi_tl(r30, r29, -8); frame =3D gen_frame_scramble(); gen_store8(tcg_env, r30, frame, ctx->insn->slot); - gen_framecheck(r30, framesize); - tcg_gen_subi_tl(r29, r30, framesize); + tcg_gen_subi_tl(new_r29, r30, framesize); + gen_framecheck(ctx, new_r29, hex_gpr[HEX_REG_PC]); + tcg_gen_mov_tl(r29, new_r29); } =20 static void gen_deallocframe(DisasContext *ctx, TCGv_i64 r31_30, TCGv r30) diff --git a/target/hexagon/idef-parser/parser-helpers.c b/target/hexagon/i= def-parser/parser-helpers.c index 70bfa64432d..b942d9ea16b 100644 --- a/target/hexagon/idef-parser/parser-helpers.c +++ b/target/hexagon/idef-parser/parser-helpers.c @@ -1731,6 +1731,15 @@ void gen_load_cancel(Context *c, YYLTYPE *locp) OUT(c, locp, "}\n"); } =20 +void gen_framecheck(Context *c, YYLTYPE *locp, HexValue *addr, HexValue *e= a) +{ + HexValue addr_m =3D rvalue_materialize(c, locp, addr); + HexValue ea_m =3D rvalue_materialize(c, locp, ea); + addr_m =3D gen_rvalue_truncate(c, locp, &addr_m); + ea_m =3D gen_rvalue_truncate(c, locp, &ea_m); + OUT(c, locp, "gen_framecheck(ctx, ", &addr_m, ", ", &ea_m, ");\n"); +} + void gen_load(Context *c, YYLTYPE *locp, HexValue *width, HexSignedness signedness, HexValue *ea, HexValue *dst) { diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 9d50e6ef882..a8bf89ab996 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1393,6 +1393,42 @@ void HELPER(vwhist128qm)(CPUHexagonState *env, int32= _t uiV) } =20 #ifndef CONFIG_USER_ONLY +void HELPER(raise_stack_overflow)(CPUHexagonState *env, uint32_t slot, + uint32_t badva) +{ + /* + * Per section 7.3.1 of the V67 Programmer's Reference, + * stack limit exception isn't raised in monitor mode. + */ + uint32_t ssr =3D env->t_sreg[HEX_SREG_SSR]; + CPUState *cs; + + if (GET_SSR_FIELD(SSR_EX, ssr) || + !GET_SSR_FIELD(SSR_UM, ssr)) { + return; + } + + cs =3D env_cpu(env); + cs->exception_index =3D HEX_EVENT_PRECISE; + env->cause_code =3D HEX_CAUSE_STACK_LIMIT; + ASSERT_DIRECT_TO_GUEST_UNSET(env, cs->exception_index); + + if (slot =3D=3D 0) { + env->t_sreg[HEX_SREG_BADVA0] =3D badva; + SET_SSR_FIELD(env, SSR_V0, 1); + SET_SSR_FIELD(env, SSR_V1, 0); + SET_SSR_FIELD(env, SSR_BVS, 0); + } else if (slot =3D=3D 1) { + env->t_sreg[HEX_SREG_BADVA1] =3D badva; + SET_SSR_FIELD(env, SSR_V0, 0); + SET_SSR_FIELD(env, SSR_V1, 1); + SET_SSR_FIELD(env, SSR_BVS, 1); + } else { + g_assert_not_reached(); + } + cpu_loop_exit_restore(cs, 0); +} + void HELPER(ciad)(CPUHexagonState *env, uint32_t mask) { g_assert_not_reached(); diff --git a/target/hexagon/idef-parser/idef-parser.y b/target/hexagon/idef= -parser/idef-parser.y index caba0d2644d..3cffafa5b76 100644 --- a/target/hexagon/idef-parser/idef-parser.y +++ b/target/hexagon/idef-parser/idef-parser.y @@ -404,6 +404,9 @@ control_statement : frame_check ; =20 frame_check : FCHK '(' rvalue ',' rvalue ')' ';' + { + gen_framecheck(c, &@1, &$3, &$5); + } ; =20 cancel_statement : LOAD_CANCEL --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782399065; cv=none; d=zohomail.com; s=zohoarc; b=O20IRtE8ItCzyhEAaYUL06YIxQd3taF7eHaGrcGMDWe5d02JLBz6N8lp3XeetAqvVuIQYKwaxSSvh0k90Z/Zt1+QIrcInEIogib2iep1E5bhVuPnGZ2qbyFJ1NBpVRzAy8rI1erQItITab9BMz4tPb8E4YVfKNsXIUQFwGg6M9M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782399065; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=zeFyaaj9ezk3dMnLRJvqloiuq+fIgJ0YErhEi239GAY=; b=indLF52PA6OUIf5bmxbH9z2nKwmgg1zMwn96h9F2GvssMX016wlpWiyFb0c8Z4UWC1mBr/ZiKT3KSBF5uGnWcTzHj2u56d81iqjbj44MyM3qRUSSSEZYseaPlF6Uz9VsLZtpB/8deM0U5nN/lAknx53w+GhPdxWkQ6qI/udxluw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782399065799357.3401067992593; Thu, 25 Jun 2026 07:51:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclNZ-0002dp-45; Thu, 25 Jun 2026 10:48:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclNU-0002by-V3 for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:30 -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 1wclNQ-00006b-Ql for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:26 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9jseR2009157 for ; Thu, 25 Jun 2026 14:48:24 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0uhmjque-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:48:23 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c84dc3574so1054194eec.0 for ; Thu, 25 Jun 2026 07:48:23 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.48.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:48: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= zeFyaaj9ezk3dMnLRJvqloiuq+fIgJ0YErhEi239GAY=; b=lbpqxKebSVJr8aJk 6k17QFpHgqLBYrampefyS12wowAWPVVdwoQIwiir767EVnNddHk1MIvE45DLe3vy he+ZUCqLQ3345Jnx9eHHEvhhH5fVuUzkjq77ovD0i2oKLPG22BTFkrAIo8T73P6L tw+VbgEHdeea27RwH1WGldHGyWyCL+OCIgduI8u4NgBe8QtTxZZu/UgUtBScuO/P /yrwgwGg9UdaQ8Kq1pSF0ga7Md8Xf+tR+hQRHmStyI8SM6KsTWqi3ru5wUMVEcup tL3oNSHDYP2ps+TQ7b9YIlQrM/rkAZRdBMkMD8tTuk2c/rseF0ToFR/yQuxTLOuL HFr0Ng== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398903; x=1783003703; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=zeFyaaj9ezk3dMnLRJvqloiuq+fIgJ0YErhEi239GAY=; b=PnglRaAaVLbvIyI40sqE9NgM2BPghbuuUpaByVZVgasmJf7CSLVU24ud0HjEhO6QeH aW1fIsDaGvowwyMSZFqsVg/3j1SJp/K5lvRRh1OODtRBo4H9EOaKEChuzAYmlH9XR9xD VFdON9EfNCi/w3aZeDN6yuD70g+Ianz8qLeD8oSBiCoDbVtyznOCFbyr974mivac5O8g LyrbQKfF39LJ4fBauj6Epchxu/1n3tUMu7gh3r/vMzR53+IzejG50DCLE5iybWtfymB1 QFs99rog7v1jVYkZPRYOi0tNwTBpQnF4JddoDC87uC82uvoLmtV1xbuDwB4BF9mCbmW5 F+rQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398903; x=1783003703; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=zeFyaaj9ezk3dMnLRJvqloiuq+fIgJ0YErhEi239GAY=; b=KYbj+cIAJQC/BX2Y5ViM/KPFZa8vFKK7taPOnAcVNiDoNbuy0EDGWOG0n/ad8CYl4l tOaHK4GhR4Hq5mBvQ7NIhuNm7AtFyU8l8ZjKzdj91ApGHaPXYc7tSjpUtevs4hucUCeK 35H3LtT9leSoGh79P+ElhHOlCj1MqOC/pvsZd7qtbXNBGbmt3IFtAfX9WwiGs+ezguKR xJZ7QqViRbgRG8YzXnVLvgH050HzWUS0EKH+vLzy86pkOeqKyVBD/6/An7YAo71tr7sv 9hNRpXT5AbJGKnZ8+m6f/eUbxVfjVxfvHdTFOcTnOaL6wRq1sseK6rUJYmuMa+OUdGAz jsWA== X-Gm-Message-State: AOJu0YxPfWucgY7gaAj/niXDHV66CKne6j4UOhFB2ofkFYnVxIrx3803 z7HcIB5mh7OeWKgohEz270ssRNhPDh2FqH5mD6TTLAjQM4sjLndO5XAk5u/qqQ7X3gJiOZGfDbk hZnlh81g/DlVRODU9qlTHeqzvVv9V144+iLBzYn1JV8h+qeK15Ponn7JOL9MUnO+jzA== X-Gm-Gg: AfdE7ckGvLrQL6dLns6hKSEKlCJ7coVvnE/ofzhS4Kc7RQ0aDxEmqYcKugUaf/EtAMN FYSlgeSHtWwY3AwQ5rn3/7sxffdTuCFReisvDCnC8utxVXw09nITLPUNQdT2qukVbca2oSvA6Wy zpIar6mxnCxDX/1dVsPMgLpKvm727r0JkbvTKbl8XO+wibU3N5esW3MgJPFLZCnvLvwrvZ7Y2NC wGhaOdOO458PpxvGqYTAWyD8DVlfSm3ZXujFhU/s0m1eYNMDV+71s24KWC882ZL94qAco1v0h9H XECRCwux1ebt2nOsOgRgXtDmOTln93QWArak0VhTX4KFWcLevFxFgb1jQ8YEoO3gWpEQlNqZeCn 3/uJbEZhUg0Xv130ueOsLZLubA8iKT9OGq41YQq95LgO7XX7k+L6ozUuQmeE= X-Received: by 2002:a05:7301:eac:b0:30c:ea:ade0 with SMTP id 5a478bee46e88-30c84d7404emr2999985eec.9.1782398902836; Thu, 25 Jun 2026 07:48:22 -0700 (PDT) X-Received: by 2002:a05:7301:eac:b0:30c:ea:ade0 with SMTP id 5a478bee46e88-30c84d7404emr2999948eec.9.1782398902195; Thu, 25 Jun 2026 07:48:22 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 49/76] target/hexagon: Implement exec_interrupt, set_irq Date: Thu, 25 Jun 2026 07:16:06 -0700 Message-Id: <20260625141633.449487-50-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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=cqerVV4i c=1 sm=1 tr=0 ts=6a3d3fb7 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=GA9jbsKyPMLDJDmtv64A:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfXwNTjbWb/q701 weGcdsYugAXnam1XLY4mxOlOcM5D152wBcNO1fD57z0t3eqkmnmnLzWyMgJsrLn7YzFxqwpk0gg GYR78++vqujH1V5cjqxMFRfQsl5fxWaZBFOA/ZBqVclz0zVqHUU1WW0XCwccF6ZFOayDNKAedpB +e2BJB0HGQH8thWsIInIOGVQ5Rt7lZUiJ0jbDn6u4jAUrZPI0AXu2/OD30I1btAF+3Jm9b/rsBc XFahDyfg0b5NGAVx51721bhbcIhTj3w05GcvJxwmgSIeQjIEfP1VIHsgE+fbr8kpYqAS1yhYget T3lIDi/TTlPzeNEENfOdnefBvQPoPkwOvKAXS8OvfrGda7Lhs8mLcHdP9qQ6Q7DiOb+0VE4pNeR D98fe1lGJjmGiXnITYlhnc9PEzEoD3G9ssBPc4WXgIEfLubAvHwkVU2wpZUoZF1ViUbFvbLnQQy K/KE6flT0IxZ8KkprWQ== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfXwOdVIhoo42Tl njV8pmsml6G69J7V8ZC7MJvhsBHdD+ddaKvCsxQ4yqOGxbI2N8KxyPQcfS/L7PyBtDl0KVQPoMf IAO2WqlB+eA/gjQrjyYbrasNR8Q9eRc= X-Proofpoint-GUID: s1bAOJoRKMqdLHl4oWWNyCVlRJQauiOK X-Proofpoint-ORIG-GUID: s1bAOJoRKMqdLHl4oWWNyCVlRJQauiOK X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 clxscore=1015 bulkscore=0 phishscore=0 priorityscore=1501 malwarescore=0 suspectscore=0 impostorscore=0 spamscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250127 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782399068143158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.c | 84 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index ec0ca3ee678..0d6551dd5b6 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -16,6 +16,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/log.h" #include "qemu/qemu-print.h" #include "cpu.h" #include "internal.h" @@ -31,10 +32,12 @@ #include "hex_mmu.h" =20 #ifndef CONFIG_USER_ONLY +#include "macros.h" #include "sys_macros.h" #include "accel/tcg/cpu-ldst.h" #include "qemu/main-loop.h" #include "hex_interrupts.h" +#include "exec/cpu-interrupt.h" #endif =20 static ObjectClass *hexagon_cpu_class_by_name(const char *cpu_model) @@ -304,6 +307,36 @@ static void hexagon_cpu_synchronize_from_tb(CPUState *= cs, cpu_env(cs)->gpr[HEX_REG_PC] =3D tb->pc; } =20 +#ifndef CONFIG_USER_ONLY +bool hexagon_thread_is_enabled(CPUHexagonState *env) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t modectl; + uint32_t thread_enabled_mask; + bool E_bit; + + if (!cpu->globalregs) { + return true; + } + modectl =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_MODECTL, + env->threadId); + thread_enabled_mask =3D GET_FIELD(MODECTL_E, modectl); + E_bit =3D thread_enabled_mask & (0x1 << env->threadId); + + return E_bit; +} + +static bool hexagon_cpu_has_work(CPUState *cs) +{ + CPUHexagonState *env =3D cpu_env(cs); + + return hexagon_thread_is_enabled(env) && + (cs->interrupt_request & (CPU_INTERRUPT_HARD | CPU_INTERRUPT_SWI + | CPU_INTERRUPT_K0_UNLOCK | CPU_INTERRUPT_TLB_UNLOCK)); +} +#endif + static void hexagon_restore_state_to_opc(CPUState *cs, const TranslationBlock *tb, const uint64_t *data) @@ -412,10 +445,58 @@ static int hexagon_cpu_mmu_index(CPUState *cs, bool i= fetch) return MMU_USER_IDX; } =20 +#ifndef CONFIG_USER_ONLY +static void hexagon_cpu_set_irq(void *opaque, int irq, int level) +{ + HexagonCPU *cpu =3D HEXAGON_CPU(opaque); + CPUState *cs =3D CPU(cpu); + CPUHexagonState *env =3D cpu_env(cs); + + switch (irq) { + case HEXAGON_CPU_IRQ_0 ... HEXAGON_CPU_IRQ_7: + qemu_log_mask(CPU_LOG_INT, "%s: irq %d, level %d\n", + __func__, irq, level); + if (level) { + hex_raise_interrupts(env, 1 << irq, CPU_INTERRUPT_HARD); + } + break; + default: + g_assert_not_reached(); + } +} +#endif + static void hexagon_cpu_init(Object *obj) { +#ifndef CONFIG_USER_ONLY + HexagonCPU *cpu =3D HEXAGON_CPU(obj); + qdev_init_gpio_in(DEVICE(cpu), hexagon_cpu_set_irq, 8); +#endif } =20 +#ifndef CONFIG_USER_ONLY + +static bool hexagon_cpu_exec_interrupt(CPUState *cs, int interrupt_request) +{ + CPUHexagonState *env =3D cpu_env(cs); + if (interrupt_request & CPU_INTERRUPT_TLB_UNLOCK) { + cs->halted =3D false; + cpu_reset_interrupt(cs, CPU_INTERRUPT_TLB_UNLOCK); + return true; + } + if (interrupt_request & CPU_INTERRUPT_K0_UNLOCK) { + cs->halted =3D false; + cpu_reset_interrupt(cs, CPU_INTERRUPT_K0_UNLOCK); + return true; + } + if (interrupt_request & (CPU_INTERRUPT_HARD | CPU_INTERRUPT_SWI)) { + return hex_check_interrupts(env); + } + return false; +} + +#endif + static const TCGCPUOps hexagon_tcg_ops =3D { /* MTTCG not yet supported: require strict ordering */ .guest_default_memory_order =3D TCG_MO_ALL, @@ -426,6 +507,9 @@ static const TCGCPUOps hexagon_tcg_ops =3D { .synchronize_from_tb =3D hexagon_cpu_synchronize_from_tb, .restore_state_to_opc =3D hexagon_restore_state_to_opc, .mmu_index =3D hexagon_cpu_mmu_index, +#ifndef CONFIG_USER_ONLY + .cpu_exec_interrupt =3D hexagon_cpu_exec_interrupt, +#endif /* !CONFIG_USER_ONLY */ }; =20 static void hexagon_cpu_class_init(ObjectClass *c, const void *data) --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782399111; cv=none; d=zohomail.com; s=zohoarc; b=mDM9pCkSbcdbpJ1a6CnmkCqA9m8LY+sAGs5hogRI4VlujpRe+ALQF9flcuLEGyn9+i4KXE2IgtF4AKn1LQEgcQKlZGPg8Ow6xSg1CqPIr8ren9UXZ3z9E/W/zbN51lj6dOxHxf6CexJYtJx0ZdclMd+xm3vXpW02c5eGfXCDelw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782399111; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=X05v3GkLKVJ5oepV5+STkOz6Fp+VxO6RAfpTWbT6B70=; b=VHS4PAJCspZ8mverbW5m3dgL2NAimEpAUK9HBnU6C41BcO6gFgpILjjNznBDhBQ7Es5hDceYvPWS5rzOyc7DIQfig7uMjO0nwf1kwOgPodeMjoCQ0Oc66sv4ug37sP/cqJp7+OvqjEymf1bKM0+5suSVV7Y8jP/7wvanmgx7nt8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782399111683708.5106269083876; Thu, 25 Jun 2026 07:51:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclNb-0002eU-6J; Thu, 25 Jun 2026 10:48:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclNY-0002dE-DY for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48: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 1wclNS-00006t-K5 for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:29 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9juoE1753949 for ; Thu, 25 Jun 2026 14:48:25 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0w0q2bys-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:48:25 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30c95b0e22aso75876eec.1 for ; Thu, 25 Jun 2026 07:48:25 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.48.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:48:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= X05v3GkLKVJ5oepV5+STkOz6Fp+VxO6RAfpTWbT6B70=; b=NSn5cgYSmQuuYueh 0Lj1bF1teF5ctuJQD799Dwh8wWw/AyadjA79iur9YMm7sSR7ofDLuCNQeBai9Cgs mLcH4mERveut8LL0Z6LT1n4CTY1ZuwpLQa3/xitShgUgAENTtmXnaRxj8Ne+rXd9 EMFm+xd+LoSEm//HdQdrIk7ADdPLYqFYJKO1/uDjZK9aI+XENwGUeHSCHnTz4Gcy SHIcUdNdFS+9nmEXmEuSISyExHtCoaNjk6qlKZ3gMLFGE/ocA7IBSE0lsyrW6ADs 1Tp/0ZgRHMAkhEGaxFAe/LdK0ij+7BgNqIjFWnYkVFAaV8k5Zon1oAvN3tWjbpUR kzj+tw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398904; x=1783003704; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=X05v3GkLKVJ5oepV5+STkOz6Fp+VxO6RAfpTWbT6B70=; b=hi4M+FhRMxUB30DcfAD4ccyfHrlZwfdvfRz2azsGAtcwcFplvvl4aeP+6UpFH00FMf iGmEPpYQHt0JtFHmM2Wx+hsahcEADh6hO7aTf15rff1Lhd6Wx0eTjJ84B78pWVsxawWm nxzT25oL7OxHC6ylELSrYfk04UVXTFUnEJyhsToOav6hyWjUFA0HDENFwoKmPP6Vcs/v KTu7pyFegoLTJQbBBj4ZvhPhL9RRDTQymelEf5D1OhJ3Wr+03Pm8roG1gDIjsKcicnax gMOYc/K6z5dxkgoCUIlGR4f+XCWhAQYekZryhrnI+JZMgkF+EbowXdg5GGuAWhqAxuph bhCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398904; x=1783003704; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=X05v3GkLKVJ5oepV5+STkOz6Fp+VxO6RAfpTWbT6B70=; b=HIgwwqqsN5bcde+qGRkLbQO8HPJbxwEMiwrJ90NhR9nUMVYNIk8cGmwK87DdiAgr07 dIOcKTy4Kc1KjvN81H84j9cv3gSlCLztbOOV24qjeOv2UjO5ct+xOU8R/uTm0+Bx8AJm dVMFV5ClvLIKT4oCBM1O2BPJZu3xWpr957YQH03zvUzZm+XiFEyl9yDJpnYVUQ+HfhDZ 3Qd/AA6BqXmu6A8Pn3au/2a/Zv+RUFVDRkALQ0hM7F3EjcmK4PoggAsY7TUl4T/lRj+6 jV8+WS9TDsoyz82BSCamc3WM+Vf8faDWoDmVqSd6Tm3CV4/qFNnpUmRpKvCwoI5ejotZ jcCg== X-Gm-Message-State: AOJu0Yz2oH+lkZ+NdnBrQRdVIlgzPlP1OBSMMOt7j+WLv9FkViLCIb7L PT+4QdJomNdXGAC3E/afnsOWszlqDnhSpirp5oqOl/s3yLx20yYL9noterUm4dKoiqN1jthncvq N7Z8w55PoRK1Gcnvw3lbjVQKFcKOCHGMDbUs6ANrUHmmNL9oJa74zuGIHVSVd8cfQ9w== X-Gm-Gg: AfdE7ckHRzL/PgPFM+tweacsXQP1hO1FHQEiDyhYNxtzwIWAv6xSWNOCJsX82ESe5MO angezuvilIW7VP/2NTRBtBGk+Q57Wot5Eda4eQKyeVon03z50klCNQ/f964SCXtpPqjbv7Qkqyo K8qJZejz5hB5LwnVVbbWdIVCzm1MUf3mRJiPYiIj/aG8yfaEGyQftkH6NNFZ5jtxMA2q1JIzPOj OD33VCb5anxZvCEGF3zkxjlkfCr7qM8YjKzi+808yOHlcUqURdY6GdqQveSAkjoq1BqRTwAphbV MBjToFbEondlGX/3LCk+20GOe2yyCpSTCOWp6LcUKk9clerLxHZ9xaMF43Rfqv0N28SV+Ju02b1 Wkm/X2AJb4xG+ren3WSk3pUGSIzj96eOvJvQ98ZhKgDMeC525PurDVFdHSUY= X-Received: by 2002:a05:7300:8190:b0:304:e2a5:689a with SMTP id 5a478bee46e88-30c84dae80cmr3060426eec.21.1782398904447; Thu, 25 Jun 2026 07:48:24 -0700 (PDT) X-Received: by 2002:a05:7300:8190:b0:304:e2a5:689a with SMTP id 5a478bee46e88-30c84dae80cmr3060398eec.21.1782398903918; Thu, 25 Jun 2026 07:48:23 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Matheus Tavares Bernardino , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 50/76] target/hexagon: add simple cpu_exec_reset and pointer_wrap Date: Thu, 25 Jun 2026 07:16:07 -0700 Message-Id: <20260625141633.449487-51-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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: lI-SJeGoDirF8MZdgKI98EcxngERPb1- X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX7FiTcYXk1KA1 Y4IhLVDre8vVUBmlICgcenOoz22+tOOlB3NPKRte+z1yXkZMUVl4o0pIaM3bVE6YZpZX2RqU04P TvoCceHLkGjBuIHdshT+huPhxCSNgyA= X-Proofpoint-GUID: lI-SJeGoDirF8MZdgKI98EcxngERPb1- X-Authority-Analysis: v=2.4 cv=R6Ez39RX c=1 sm=1 tr=0 ts=6a3d3fb9 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=pGLkceISAAAA:8 a=O9wV_FzQyngHLK0UYg8A:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX0fuoWwSKcjQs A+wBOp2j5ufvXVgEIrlEgLdqCVODOj5hj06mZWbBTHUCefRJ1lGkC2klac35JCCpRcNrVQe+WOj egTGaagzL8mLdxkCQiNT28U01dQLBF+zIbTsST4ShXKTI+SvgleOPts2Gb7UsmoHKakP56dZgIi iPKhPa7krSTaxsZlsaz8ge4ZS9gBzj0IkdSWlST1kC5xq0uaoQ4pirwOZmeYUerdmBvFohi9pyA XLzD8HrgLfZNEHyr6QxhZn/Qm0akGQ7Vv3w0QN2BbJgIoaonev8W5foOqGq9jV/1HzVpsmTkvCA fNfXXQq1kt75jHMw/8fxFgKgeFOYq2GTnGitvfOsn/BnDRmzSEa8OJ1u0my2wtQTG++y5RX8owY UaoAYLAvUsercEECHVdZJ5ZeCY7PKPlrq3kkCtZIpMfZx4/3Xv77XLm8lf9LZjviw+XXlgdmcCV EGb96u95ThZPCvx/RHA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 clxscore=1015 malwarescore=0 priorityscore=1501 adultscore=0 suspectscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250127 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782399112210158500 From: Matheus Tavares Bernardino Signed-off-by: Matheus Tavares Bernardino Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 0d6551dd5b6..edde4b1db84 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -495,6 +495,12 @@ static bool hexagon_cpu_exec_interrupt(CPUState *cs, i= nt interrupt_request) return false; } =20 +static vaddr hexagon_pointer_wrap(CPUState *cs, int mmu_idx, + vaddr result, vaddr base) +{ + return result; +} + #endif =20 static const TCGCPUOps hexagon_tcg_ops =3D { @@ -509,6 +515,8 @@ static const TCGCPUOps hexagon_tcg_ops =3D { .mmu_index =3D hexagon_cpu_mmu_index, #ifndef CONFIG_USER_ONLY .cpu_exec_interrupt =3D hexagon_cpu_exec_interrupt, + .pointer_wrap =3D hexagon_pointer_wrap, + .cpu_exec_reset =3D cpu_reset, #endif /* !CONFIG_USER_ONLY */ }; =20 --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782398969; cv=none; d=zohomail.com; s=zohoarc; b=BfXTV/t4avPN2KRLIwlaL1MbrBLCOX1m/EIdBdKFAsvrUrIEHImj87qgZHydatCFA1OaFvS9RGpUiN8CnSF9EcXug6wx6hucfUdiR7BIYz1iWkhNQAR1CGJNFp4xWMdmk83iL0coJ1QDlzLNropy8QS7d2dnKC3y1Qqbr7ZZ5Zc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782398969; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=jw9yZ1Fa+tyKZPk60MTE6s7LkPtVtmumQCTRRtdnjUc=; b=JUh/AAdFJhr3UW3XNBgUOsfuuT+BMnEf9zVtbsIR5I4/CrbNDX9f/nA/yhar1cbkhi0Vy/w7TohjEOAl78YCiFsSyeN+dgGdKSNDmF/jBsVv5a6KEeWcv7LpZNgX/GBmyDUhJQmDQJeViILuQ9tMwzbeVzDOQkdoO4oGYcCd73c= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782398968990569.7023862418774; Thu, 25 Jun 2026 07:49:28 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclNc-0002fI-By; Thu, 25 Jun 2026 10:48:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclNY-0002da-Pl for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48: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 1wclNU-000078-Ng for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:30 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9kBOa1948085 for ; Thu, 25 Jun 2026 14:48:27 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0ya8su5f-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:48:26 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30c0d568830so9141436eec.1 for ; Thu, 25 Jun 2026 07:48:26 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.48.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:48: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= jw9yZ1Fa+tyKZPk60MTE6s7LkPtVtmumQCTRRtdnjUc=; b=LyCJj4b2KPqND5Ty brqjMmdpvFzeLrL9RoFP8syQ7L5C5PQc34LCxQ9DD4HhCsBA+qIjUzNueZ+LCEDV GzjYdd9ohEO/vpoCksZ4+RLVwz5HMk+cMXoD3kaicFW7hRkqut3sVM31h1lNQj1n nchsFfrC0KsBSc3bGL6RNMRzIRGBUlLheB/7G67Y4V8XGoX+20YOU1ZwcwTksDNE P4QwgadT5soAItTnAzZ32VWiZVggtzJRV9KtWry3+XFDN24sQl5c0QeQfxHXlhHo y6PsKXni2ourId0OEgA5/qyNBtUuEzc9K33dGX3O0uX5QXWdIDnBumbcUT+g8HqJ mV+m+A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398906; x=1783003706; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=jw9yZ1Fa+tyKZPk60MTE6s7LkPtVtmumQCTRRtdnjUc=; b=I6dOuWUSAt+QEEUZfN4VtfTlNx+F0b0naqGjAO0TTYJ/LQyKccevxvu+4Db45Tpgig SnjJOSdfbtK4cDcjtu84vhpwwMS1PU+I1KXbYCco3NEWRLBGxzEeOTaTDh+LMlEMt0wl PAGpZ78NzkyNiP+Vh/FRdQ+WS4yP3EiMy2JRt7zi38jdvjTjoep6dzEr6XYVI+sNY+Qy hIRj2lznJJhj8I8es0xDcYWTEvDMUR+y1HUonJg243ga+Lhm7I04FoG1PifGAvQT3ucl 7Rmi17fIcG91twpsGvCRIwbYwpLDseZYYETHSwSWxJqRVPbIygQ6QOIBcBDhPFDT75Im 2Sdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398906; x=1783003706; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=jw9yZ1Fa+tyKZPk60MTE6s7LkPtVtmumQCTRRtdnjUc=; b=A4Ks9wCb1GZLiBj2JhC0/xpJR1HepRmVvfD4K6t7X8lZ6+MVRqr0S7yam8gqp1eJA6 GteIQjPBbm6dqxv2Mq0RDIdTU7nnPpoEWt4++jQ8n+QV7SAcyMTh5hjP2fNFVuPS0hPY efwCinpYMFKNywed2T2U9oSbqJZGyQ1o//SqkfdaHBCw/3oJ9r1gJ4h2QFII5+7Dps6M 9Tzx2rhlA++ZVo8iiD+gxvDpTz0Lz2LFUpIFoneCCKpDcMseBGGzFAKBJIK+w8trN8Ef PkAxTN/2Wx6HxPHL/3EdBAtNd3CExhs2ko9GF/FTDhKuYJt4pbtIM8qZn8hbZLgbq2gH nRsw== X-Gm-Message-State: AOJu0YyTMBgbV4Jpd6rJBUEhvhKBystyj2TRO8I7D/j8A5TpuyNvCoD1 kZn4KrUWggm+MMSBOYqXpSd+rlpa5mGzeSaxZ/Rdae4tkwIUKAThNSaoYqz5BqNQN/MEEkRtyrP LcyJI7NdTOXeCtX7rwOcX29/oIKa2fBJnuJEtBBU1U2Rtyh+PJSlIfo+tthmU481KDQ== X-Gm-Gg: AfdE7ckmpJgTNKxJpiQzerv+iFNQmJs+2KXdC77cFWE3rS87wUFJwvdy2Ru6yKW4vdG +3bfmrGEq8SoJY/wgouriNrd1syuyr0bqCa2nfuLYK+Nvzn000HDlQEApwUIVJfugn2eClincSO 5znp6tjd7ZLiq4Xj7AUSbrdDxpGdabePbdJgKXsTfWvGrpFA16+NlPNzXEKAQ+36dO22rHyxz4e ukMiPrLOb+gdXUzbufNwzCm7EGLxif/kE5LlUZOwYZAnpQffXe5nTJEMQ+PHlURYXj4fLxJ2ppD IgCKhp79GY+RJ6hI63jI342AmMMq5fRWihWHkPQPnrlueJ2G1/64JiwhQzmz25v6YiPwZU+kksU eWkTyQNtKTCy2jHUE33tLuBwazdUoKOTwba5qUO5jod7q+7XH5aH641imK6s= X-Received: by 2002:a05:693c:2297:b0:30c:4832:1ac4 with SMTP id 5a478bee46e88-30c84d0f0c7mr3473202eec.22.1782398905738; Thu, 25 Jun 2026 07:48:25 -0700 (PDT) X-Received: by 2002:a05:693c:2297:b0:30c:4832:1ac4 with SMTP id 5a478bee46e88-30c84d0f0c7mr3473160eec.22.1782398905162; Thu, 25 Jun 2026 07:48:25 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 51/76] target/hexagon: Implement hexagon_tlb_fill() Date: Thu, 25 Jun 2026 07:16:08 -0700 Message-Id: <20260625141633.449487-52-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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-Info: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfXwhtLRwn8VRxd YT1JAP9rnAAV4WgKS4GbxwACsv5zJ4aYn7buaxWg48D1iDL6oXUyTdWQoai1DEpW/8NRCV7RImF UZHkm9vGScLzYMKuCRU4TwbfEDBsxrk= X-Proofpoint-GUID: rLoX2lnw1Kw1nQrp2nn2LDg4i5iyQaoB X-Proofpoint-ORIG-GUID: rLoX2lnw1Kw1nQrp2nn2LDg4i5iyQaoB X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX8Z15d+ndvLgM NGEH04qd6qgG7q4AKQdk1pnzdk7IEGtzPUAn7cXIpxT7w/81gWtdYdqTOZqF7RKhADZn68LFeSZ rqcXF3oJ6ldy/abOKg0TNXrq8jC2V8sRDJyvfIvC+VoaoPmiZkqgrn14GSK6Lpu8jT5FUVnpBJx H2aflwcPOLrpwpC60Ti2+AuWTAB9hyDBNglkdx6+L5vL1gyrE7ghCXBW6hj0LKb17fkoEHxwvmu EW6h8LPHecESsBcZYx7kiuhUYooQq/+nfJpaksMQbSiPU7Whx65mPI1Y6nnHfoI9QyUJWiCHyAg iXnxg6XVzFpzVGvzgzgV6RH7nG0NgOMxq/VLPy7jXg+fmDs4LwFGwTfdyHbvlFfvgHkhNrn9eXy FWIlsBBotUEStafd/Gf8rHdfxANq8x8hXyPbnpNBR1mncmeugjbhlMHgzA7ZkxbIn1POpFZuOPU jjd3XfbdCcKFEL1GJLA== X-Authority-Analysis: v=2.4 cv=Z+Xc2nRA c=1 sm=1 tr=0 ts=6a3d3fba cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=yz7b9sy1sBSXNk6fZdQA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 bulkscore=0 suspectscore=0 phishscore=0 spamscore=0 adultscore=0 lowpriorityscore=0 priorityscore=1501 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250127 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782398969106158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.c | 136 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 136 insertions(+) diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index edde4b1db84..4e5a25744a1 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -38,6 +38,9 @@ #include "qemu/main-loop.h" #include "hex_interrupts.h" #include "exec/cpu-interrupt.h" +#include "exec/page-protection.h" +#include "exec/target_page.h" +#include "hw/hexagon/hexagon_globalreg.h" #endif =20 static ObjectClass *hexagon_cpu_class_by_name(const char *cpu_model) @@ -475,6 +478,138 @@ static void hexagon_cpu_init(Object *obj) } =20 #ifndef CONFIG_USER_ONLY +static bool get_physical_address(CPUHexagonState *env, hwaddr *phys, int *= prot, + uint64_t *size, int32_t *excp, + uint32_t address, + MMUAccessType access_type, int mmu_idx) + +{ + if (hexagon_cpu_mmu_enabled(env)) { + return hex_tlb_find_match(env, address, access_type, phys, prot, s= ize, + excp, mmu_idx); + } else { + *phys =3D address & 0xFFFFFFFF; + *prot =3D PAGE_VALID | PAGE_READ | PAGE_WRITE | PAGE_EXEC; + *size =3D TARGET_PAGE_SIZE; + return true; + } +} + +/* qemu seems to only want to know about TARGET_PAGE_SIZE pages */ +static void find_qemu_subpage(vaddr *addr, hwaddr *phys, uint64_t page_siz= e) +{ + vaddr page_start =3D *addr & ~((vaddr)(page_size - 1)); + vaddr offset =3D ((*addr - page_start) / TARGET_PAGE_SIZE) * TARGET_PA= GE_SIZE; + *addr =3D page_start + offset; + *phys +=3D offset; +} + + +#define INVALID_BADVA 0xbadabada + +static void set_badva_regs(CPUHexagonState *env, uint32_t VA, int slot, + MMUAccessType access_type) +{ + env->t_sreg[HEX_SREG_BADVA] =3D VA; + + if (access_type =3D=3D MMU_INST_FETCH || slot =3D=3D 0) { + env->t_sreg[HEX_SREG_BADVA0] =3D VA; + env->t_sreg[HEX_SREG_BADVA1] =3D INVALID_BADVA; + SET_SSR_FIELD(env, SSR_V0, 1); + SET_SSR_FIELD(env, SSR_V1, 0); + SET_SSR_FIELD(env, SSR_BVS, 0); + } else if (slot =3D=3D 1) { + env->t_sreg[HEX_SREG_BADVA0] =3D INVALID_BADVA; + env->t_sreg[HEX_SREG_BADVA1] =3D VA; + SET_SSR_FIELD(env, SSR_V0, 0); + SET_SSR_FIELD(env, SSR_V1, 1); + SET_SSR_FIELD(env, SSR_BVS, 1); + } else { + g_assert_not_reached(); + } +} + +static void raise_tlbmiss_exception(CPUState *cs, uint32_t VA, int slot, + MMUAccessType access_type) +{ + CPUHexagonState *env =3D cpu_env(cs); + + set_badva_regs(env, VA, slot, access_type); + + switch (access_type) { + case MMU_INST_FETCH: + cs->exception_index =3D HEX_EVENT_TLB_MISS_X; + if ((VA & ~TARGET_PAGE_MASK) =3D=3D 0) { + env->cause_code =3D HEX_CAUSE_TLBMISSX_CAUSE_NEXTPAGE; + } else { + env->cause_code =3D HEX_CAUSE_TLBMISSX_CAUSE_NORMAL; + } + break; + case MMU_DATA_LOAD: + cs->exception_index =3D HEX_EVENT_TLB_MISS_RW; + env->cause_code =3D HEX_CAUSE_TLBMISSRW_CAUSE_READ; + break; + case MMU_DATA_STORE: + cs->exception_index =3D HEX_EVENT_TLB_MISS_RW; + env->cause_code =3D HEX_CAUSE_TLBMISSRW_CAUSE_WRITE; + break; + } +} + +static void raise_perm_exception(CPUState *cs, uint32_t VA, int slot, + MMUAccessType access_type, int32_t excp) +{ + CPUHexagonState *env =3D cpu_env(cs); + + set_badva_regs(env, VA, slot, access_type); + cs->exception_index =3D excp; +} + +static const char *access_type_names[] =3D { "MMU_DATA_LOAD ", "MMU_DATA_S= TORE", + "MMU_INST_FETCH" }; + +static const char *mmu_idx_names[] =3D { "MMU_USER_IDX", "MMU_GUEST_IDX", + "MMU_KERNEL_IDX" }; + +static bool hexagon_tlb_fill(CPUState *cs, vaddr address, int size, + MMUAccessType access_type, int mmu_idx, bool = probe, + uintptr_t retaddr) +{ + CPUHexagonState *env =3D cpu_env(cs); + int slot =3D 0; + hwaddr phys; + int prot =3D 0; + uint64_t page_size =3D 0; + int32_t excp =3D 0; + bool ret =3D 0; + + qemu_log_mask( + CPU_LOG_MMU, + "%s: tid =3D 0x%" PRIx32 ", pc =3D 0x%08" PRIx32 + ", vaddr =3D 0x%08" VADDR_PRIx ", size =3D %d, %s,\tprobe =3D %d, = %s\n", + __func__, env->threadId, env->gpr[HEX_REG_PC], address, size, + access_type_names[access_type], probe, mmu_idx_names[mmu_idx]); + ret =3D get_physical_address(env, &phys, &prot, &page_size, &excp, add= ress, + access_type, mmu_idx); + if (ret) { + if (!excp) { + find_qemu_subpage(&address, &phys, page_size); + tlb_set_page(cs, address, phys, prot, mmu_idx, TARGET_PAGE_SIZ= E); + return ret; + } + if (probe) { + return false; + } + raise_perm_exception(cs, address, slot, access_type, excp); + do_raise_exception(env, cs->exception_index, env->gpr[HEX_REG_PC], + retaddr); + } + if (probe) { + return false; + } + raise_tlbmiss_exception(cs, address, slot, access_type); + do_raise_exception(env, cs->exception_index, env->gpr[HEX_REG_PC], ret= addr); +} =20 static bool hexagon_cpu_exec_interrupt(CPUState *cs, int interrupt_request) { @@ -517,6 +652,7 @@ static const TCGCPUOps hexagon_tcg_ops =3D { .cpu_exec_interrupt =3D hexagon_cpu_exec_interrupt, .pointer_wrap =3D hexagon_pointer_wrap, .cpu_exec_reset =3D cpu_reset, + .tlb_fill =3D hexagon_tlb_fill, #endif /* !CONFIG_USER_ONLY */ }; =20 --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782398952; cv=none; d=zohomail.com; s=zohoarc; b=SQ86BzsLHUBUPMZLMbrB6z03qlY0srzAYRsOCOXSSy21cNVfDJ4dnl6Uz85M2n27Fr29QZ8iux1OFI3rpM37RUtOsBUllmiLHoTX80ZcYKAv+58AB39GvqwUKlnxuw7uslxiT8qDfLAlzdhMY/gAehsbxRHYVIGaPVG53r/tIhY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782398952; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=WYScGZeBQb/FybxxD9F89fJ15bRXNrsuCqPgSPyLkDw=; b=Z6x7DpXPU/567PwEf2py+t9LUSmW4SLugGsJZ8mNC1bc1moH70j7YSTK3k8fxftBgNsNxvwWOXRTuFrSqiMeuotBDe8oSP59SS6s+yvpZto+fjiKdArSoMy/MzmPUV/9GBxIM362u8gXfdTs36Bi/YMvohGtMfDrTtJckYoYINs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782398952936108.99593443179197; Thu, 25 Jun 2026 07:49:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclNe-0002g7-AV; Thu, 25 Jun 2026 10:48:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclNY-0002db-Qm for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48: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 1wclNV-00007F-0D for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:31 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9kEAx1948503 for ; Thu, 25 Jun 2026 14:48:28 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0ya8su5h-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:48:28 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c50cd6cbcso2630478eec.1 for ; Thu, 25 Jun 2026 07:48: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 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.48.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:48:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= WYScGZeBQb/FybxxD9F89fJ15bRXNrsuCqPgSPyLkDw=; b=UdE3YRbL/IhnmR+5 Q+Sug5XEuiN2F7a22ZnMear23ocYzQlyMhCzJHucJXeeP53Ov0EILoi45u4u/FTX PcFvLuiRZv6i4xmTJdOJkxaLzugyy1eX9pe3UtOADa25aSJSqCuEfDO5aYYxPxE5 dTjra842IOyhK4Qwl3263YD1oSk27UYBv9FEaCwybIb67+jh3LMOG0T8J5V5YZ2a hxzKALSI0aCulvzErQYyXg5/35hbsW6+bJaJP7h8oBTE8uwLAeH3vQ8iHSxcITFg ANMAH4hRviI+AYOYrtN/jCfbaIsPtUkHYvbpYhpr0I45D+VY53Pw6fNqlVtLQm8k qS+5kw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398907; x=1783003707; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=WYScGZeBQb/FybxxD9F89fJ15bRXNrsuCqPgSPyLkDw=; b=XiPvvAzraxVFq5ZPMFPy0OvCUR7/UR101DlntmJdHW+BUwx/BZbqEkbPd8PExPFdxH yNm2ZKQU2DOfSb8szjKShQIILuXpjQ6L0fQk82Rs3fcosN45FCUD3aaA/V5eeZW4NE3J R7lOWM2E7bO2941nEz6DaL+TgZ3iFZ2voH2hLKujm+XMHKfcUk9l2cyKZRmXR+3EcLh9 iDvYIs9hfQDkmt1AEvJTjRFAIcvKfFmaBTxok9ijTr/edeUxbRNGnUxSashqObg1eTIo KOgG5jNXPAZRSyPVpPWPECQLJ/XzfK+4uytADFVTdPnui31JTO1rCvQaNt9ZOvegjgiB elnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398907; x=1783003707; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=WYScGZeBQb/FybxxD9F89fJ15bRXNrsuCqPgSPyLkDw=; b=HMM9EB3SHLCw8+W8/nVQQWPDTjp6oQbiMeIT7YcN+FbxjFTh7FGWNgZDtonJmtRa1l zgqyZ+6OpYC2QbAqrUI20nzdXEfRx56z1rPPiLtD/ZiDEnWYsIM1Ov8ClsQ7onwu057d utClf+jF7L+PokzFa6c66ZD05LmEQmeIzPWXNuw/p6HWyOpTkAe0xWnq6Gz5Ldygg6wL ZuWzkgvNCezMSeSpkYrImAhX3QzQcFFZIO9KKsBbBK9WCyHy2k8MIbzdiJA9CqbdDLX6 QhqLKJyAao2tIcdHig4QqzP/gN/SiswaaZyftjfoi8vzn4VBUrVQgEdt2HwJrIla+1jC RVXQ== X-Gm-Message-State: AOJu0YwLSaTZIZ6J3kUhNIabIUI5m5seupEi8Z5EXdrwW0+2mMx0mkl9 X2pvIjgOYy6UGsWKhmRj05NnhYxu1LE1hWUCH57d6oLXcTRlXPhBj6o9NLmnVDruJ/ATUPICJoE s7DjuVYu2uwdjqidpuivq+PsvVP9hXPM4TdOQDo53V0u4rDhmG2wmdL7QAa4J8xrq+Q== X-Gm-Gg: AfdE7clyFKRAaik3phaMyAZMlTszYpdu7bILe8lz7aH7IskrIhkEjWLafgmYO6jBTnk AGRxjC33q9bEFtvaeSw24XLjEW6NxuhdvkMi62brQeI10YAoX0FLWsEkIT4ekSVU8twn6+3KrKW kHpMfw4mgaJAOBqUPjHGlsDVAz5EX8PBCFQm+mBMrTd2DkXo5xNnK8lxO74Qi7eRtJtui5j5S3o AYBEIM3xVjLOG8m1zZ2XXA08sPxvToifeA7ZE1UQsUjj5Rlh715rXm6o2QyvH5ZqDVQ0uhMYj/G jqygKfRv+t8c9h77tRy8X32FM3uCl8sJfhWfaUVp8KTvCxFGbUfxLYbtbbCTdXp08vszvER/E7a 4/ac6eyQHdTPgooQ3+c+eJtt9z/I/XjowSjZ8rnL4F8knVFSMlXcWUAH1a2Q= X-Received: by 2002:a05:7301:608:b0:307:3a6c:ece9 with SMTP id 5a478bee46e88-30c84b98913mr3201300eec.15.1782398907161; Thu, 25 Jun 2026 07:48:27 -0700 (PDT) X-Received: by 2002:a05:7301:608:b0:307:3a6c:ece9 with SMTP id 5a478bee46e88-30c84b98913mr3201270eec.15.1782398906685; Thu, 25 Jun 2026 07:48:26 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 52/76] target/hexagon: Implement siad inst Date: Thu, 25 Jun 2026 07:16:09 -0700 Message-Id: <20260625141633.449487-53-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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-Info: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX0hQFZRDroPO/ mljtoo9RLFF5d4vULmD8dtylC4np9NlT20a7G/38wA1lXhuS3rQfkUkemgAqrnnQlAx/GqLIHzJ G5osHQqQM3AEHuotG+oplsw5miMNFA8= X-Proofpoint-GUID: esOgb3tPyM7fJBgfskQip0F24VC6ct9y X-Proofpoint-ORIG-GUID: esOgb3tPyM7fJBgfskQip0F24VC6ct9y X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfXybeYZNYLGxK9 qzotDfBCmQdeSC9hEVFCwvipr/6PIADZnOacNWWUM3cQE6kzzptMMWIWoORgbX1+J8rfrE17CZy 7KrepiIZ5iCu+PiLAB3Ds9KgBF2Tv6hUKTReWLjBMyDOj/pop3roCkznK81GcEGs1yOgPJxH8Az vYSlj4MH4c6phJWlWg0oOJeg0xfAlyooOAK+Qg2Ap1e7VsByGQ4Mpu7zDQWEqbHGY+KMUpxYe6/ RMRLQawGc/20ug/NE1f8+iReFX364/8k01JmbrpNNgcRK4RkGn+fYzAzHkba8oolQADXHn46dtj I10eCTiTcwhsRwqJdrFytJKZSQSOLlio36hrNXaUyIh5wsfT3ExYSOpXboEIcjhS9LJIH4D2xt7 NlW3/ryYp7lreP9oFf2xjKO9Gu8gDos0GyUoH/vVmkL5XihgVS/BkTW8MwqrLyIugefX1BhayWV c+sCGfCvdocYP9evnlA== X-Authority-Analysis: v=2.4 cv=Z+Xc2nRA c=1 sm=1 tr=0 ts=6a3d3fbc cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=HdTxHAvixyPUp6pof0EA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 bulkscore=0 suspectscore=0 phishscore=0 spamscore=0 adultscore=0 lowpriorityscore=0 priorityscore=1501 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250127 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782398955505158501 From: Brian Cain siad is the 'Set interrupt auto disable' instruction. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/op_helper.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index a8bf89ab996..4d319a2637f 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1436,7 +1436,22 @@ void HELPER(ciad)(CPUHexagonState *env, uint32_t mas= k) =20 void HELPER(siad)(CPUHexagonState *env, uint32_t mask) { - g_assert_not_reached(); + uint32_t ipendad; + uint32_t iad; + HexagonCPU *cpu; + + BQL_LOCK_GUARD(); + cpu =3D env_archcpu(env); + ipendad =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_IPENDAD, + env->threadId) : 0; + iad =3D fGET_FIELD(ipendad, IPENDAD_IAD); + fSET_FIELD(ipendad, IPENDAD_IAD, iad | mask); + if (cpu->globalregs) { + hexagon_globalreg_write(cpu->globalregs, HEX_SREG_IPENDAD, + ipendad, env->threadId); + } + hex_interrupt_update(env); } =20 void HELPER(swi)(CPUHexagonState *env, uint32_t mask) --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782398965; cv=none; d=zohomail.com; s=zohoarc; b=IEdSWgT8IQhNsm5u2YAUcMdjEr1bMcD2wHa73E8asltQQFwGb1TBDUg5x5TDI4ga+lmKqijty7gWg/MJxr6vRrlZman3Hw04G+DempwEovbQbZBg5dI0W0oF74d5FrIULnE7X2ZyVwr8oZZjROHC4p/UNU30YrkMng8xx3VY7lA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782398965; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=JvcaRvjzOPnVsLj+Umjxfrn/9XQNcxuKMqpMR7fRmpk=; b=KUWnIZkR2VwtQuhS22Sn0tcEWR/lEq2a0rmXnbi2CSdN/Rdajq3dHdHAsophVLtIJzn7stAK8EQ0TH50+rl66jwJi5W/p451q0QzMA8CRnwsL1rnZDwqOceig2GiQxdzDMG/2dhdH6WPVAlGGV7z/RJhSy/ivsPCErieAKJjZyU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782398965027559.4366568670079; Thu, 25 Jun 2026 07:49:25 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclOB-0003bU-Fx; Thu, 25 Jun 2026 10:49:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclNl-0002hH-TX for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:47 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclNh-00007n-EB for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:44 -0400 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9jswO1919005 for ; Thu, 25 Jun 2026 14:48:29 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0ueuaqmk-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:48:29 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30c0d568830so9141659eec.1 for ; Thu, 25 Jun 2026 07:48:29 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.48.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:48:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= JvcaRvjzOPnVsLj+Umjxfrn/9XQNcxuKMqpMR7fRmpk=; b=ixsQyWkK+/5HpjL7 ljTjA6Tirj1Bfxw3pg69979GN+HWgGivluOkLZm9nBmFZfoak27LN6Da49MDbKql V5AC7LvkEYyYQ0zG1IG4UvVn8JY60Y3izybenSIAFpGzeKOHJRtTZbZMgOz3YZKe lnA+jj0TsD40dRazT0hoX+x/Rvcdk8YySRuN/cnFXq4GUwsYisWPWN48SBUYfrAA l1Ku3A71bQDdZbHNuydZgRn4+OUY4H2hAcLN9SeaSZQd1RGJ3cFLI3jfvMl6aHMu 2RYnKx3iQ2xEFuqjABloLYTROzx9R9Gb385nUt1Si68TATCJdwvS2UegT7pMvrU6 kmkoow== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398909; x=1783003709; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=JvcaRvjzOPnVsLj+Umjxfrn/9XQNcxuKMqpMR7fRmpk=; b=RJkzzgLSOcQFAKjjGnlT6Gt/rLm1YidAUPWuj4tojfpZirMKQ9u4n5cEE4zJO1egU6 qt1zH8Yl3asNY5TgYf0Emdig5AgMGZogIbA9kIRcVILw0lPfAmfnOOnWGfCNjKXRNi6C GBuxmJHdQRg/UU2u2SNWsV0CaExiFJkkCmSV0c2KYQTWHAKeR4dIflxbJxWiTf7/Sm1K TEOhYKlkxMJV6J/T+1A1vfAdZx760CLDc97Yc+tWiK9UcNH0DDU4O/D2MYyZJZzYcNm3 K4r+7yD3QamaKN+xp6BprVXWQhSCVlimcZ2QHSEsqwd4S4ZFC9tSdpWmIpai6XWUiPcK umzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398909; x=1783003709; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=JvcaRvjzOPnVsLj+Umjxfrn/9XQNcxuKMqpMR7fRmpk=; b=D3K38lAJS5zhTxIeChk1Enb3Cx+FcHswutQ/G4JfglaML401p06UJCCD4BZ7+I9uWQ 79jSsKwYOSB39RycTHX5orGPlPr5SE8971EpRANnjKxX0/u9S2CIy1FjvqzSZJC7D2W9 6+EsiHUORUJx3XHktPvw7Ijv0aFV663FA1TcEN0rV9o1Fd3msEdM1XGv5Gp21bqS9D6Z HgJksx3ZAKvHgX4/Fg24MY2ii7ziyASDJXFVHY+rHikkHzekuFD7HO0z1DF8k1yspF/x uIcxSCLgualSc7JJHg6nR28uwwyBQVQjOQAgYXDZKrAXcFN6Gg1A6rIeRhr4J39dih0P SqEg== X-Gm-Message-State: AOJu0YwY2DvUl61s9KxcCku4yqtuDpvLrlfF0Zr2GGluk1d5swa4Pa8F 1iS34ixxwvFx+jpMVaT2ovgznnUvvzKXcbXqvhGe1jhsvdzaQ8tXickFhpzymVNj60apW/+yhtR 09faHlf4qevTff9pmUQ5Js+sf7/jmdNFMxYBMECxrYB/YTrdu6jIAMj3sDK19NhJ0cA== X-Gm-Gg: AfdE7ckKk6Ezji3XKPNNUEeOOI1Ud9Apbwy2gLLLTSm3/3q+zqACMTICBmq8tSIKYnT JMOCAHP4zhAVPXuq39ShxaBXGxWifGrQL9dShPD3QvVXaqXVdMbqo9RFF/57Nf0PyaNFbAqQzbF tZDDuHqR4Zh6r1PHdWb0pvIciwvzfiMFnGp9RNKFqtzBXhWYkHDjin+sQMxBv3XwMnBKFGAIYiP yyxtlqyhtJt7u/AZ//Mxeh3CfRVEhyyVzuHUmxU4RrCo47C+3hTaFyycHLJvoyn7Lal/FRmmSVv lUapLcLgauuZ2rbDnrUllXFyrzf98Az/wmKwYtSyRf4DqlQH24ZYoXNgUb4G1NC39SPPksO7Gll w58NVK5FIAqSv1AK3vgqei7LADNpG8QcjVdJqIYhbSvVlDrj1SAys+e+xmW4= X-Received: by 2002:a05:7301:9f13:b0:2f5:5dd3:1fd8 with SMTP id 5a478bee46e88-30c84b9dcc0mr3023186eec.8.1782398908581; Thu, 25 Jun 2026 07:48:28 -0700 (PDT) X-Received: by 2002:a05:7301:9f13:b0:2f5:5dd3:1fd8 with SMTP id 5a478bee46e88-30c84b9dcc0mr3023154eec.8.1782398908052; Thu, 25 Jun 2026 07:48:28 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 53/76] target/hexagon: Implement hexagon_resume_threads() Date: Thu, 25 Jun 2026 07:16:10 -0700 Message-Id: <20260625141633.449487-54-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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: NQL0vkzk85z0MIGVqo81pls7GGq3QjI_ X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX3GZ20Y5YN6Xd Qh5txeUwrONb9SSUzFrC+vP651Kvh3TwQ1rD/2hFMlakvmggbyItUzvZCA9VpQYvjIIyRwJP5OM ULaNwxSUYwKbApKoMUdZuwoXnb76R3E= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX4nHhby3rGqra 6x+cgjIey7Fq5fpcpwf2PEMlCVMAnMv9smX2394NktuzHW0YAdfjeJ/oTaHMr5DKbUV2yTdEa6s D/6txo9PC4+pBNWHeEGX7LB7ldY+hAzr5W3vYsn9gRv9KVLDD0LhSf9OZbzkZxaa+0mMJD9jTtj Qjb7kQUxrALuSgGkH7vyc3WJvGztYLvkWyu50ctheNejCk5Pm8vGRQoo2ZSfryIDkAuJSCLLQMj lqo24YntK04t4fqK00/aiuYnzdJFg+BZq29+ggseTPw7eCyrAv6vGmODZcUOfXxKxXBGCdMq3G9 dQFYhwZ0VfCpUMBy5p64Nm6vjgkB/H5CM2ltKnMG6Qi0jPjfKhY8FUL5AySqZ5bwauALY3g6ynD zW8nPmQHqXqiHEH9z2By7tV4yn/gJp3b9T0Rge4//8L+eJkb9fG4lxHb4EXdC9CW2USd9RH2OY2 3x6vlFet3+84exy6q8A== X-Authority-Analysis: v=2.4 cv=b/SCJNGx c=1 sm=1 tr=0 ts=6a3d3fbd cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=uy5dMy9T3THg1DqjAFIA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: NQL0vkzk85z0MIGVqo81pls7GGq3QjI_ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 suspectscore=0 phishscore=0 bulkscore=0 adultscore=0 clxscore=1015 spamscore=0 malwarescore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250127 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782398967159158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 1 + target/hexagon/op_helper.c | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 92d4bb97129..6a95a6bc5b1 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -52,6 +52,7 @@ typedef struct HexagonGlobalRegState HexagonGlobalRegStat= e; #define PRED_WRITES_MAX 5 /* 4 insns + endloop */ #define VSTORES_MAX 2 #define MAX_TLB_ENTRIES 1024 +#define THREADS_MAX 8 =20 #define CPU_RESOLVING_TYPE TYPE_HEXAGON_CPU #ifndef CONFIG_USER_ONLY diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 4d319a2637f..34c55b560ca 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1601,7 +1601,8 @@ void HELPER(wait)(CPUHexagonState *env, uint32_t PC) =20 void HELPER(resume)(CPUHexagonState *env, uint32_t mask) { - g_assert_not_reached(); + BQL_LOCK_GUARD(); + hexagon_resume_threads(env, mask); } =20 uint32_t HELPER(getimask)(CPUHexagonState *env, uint32_t tid) --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782399044; cv=none; d=zohomail.com; s=zohoarc; b=jwt1+MMGOQgpX/okkz5MewFPHSCIyowX5+EjkLQK9PN5O0818TjvSSrdNIjKNLRVKhvCNk9DpPQaDSuid5CkV2aUFy/klI0A9aIxZGC1inyx3dP5npfiYKHUSefFX7VfkLMGDF18O3w14do907k8++oFZufEAL7WVQQTILvXMZU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782399044; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=J1aA0AXcl1R5eWizmiiFdBlejhKxkpocBp47xOiaUuM=; b=B2B05tKgVRL5CLWyECWd/KcnET5lKhkX5DhG4CphuwETrIrQX819O30XkKP8+iRfzmynJRKeFiP9DDFqGkoqbv4O8PNs9cXETzJDn23Yp2AlOwnOd4kQsoPs9lqKMd+rmQFs71kTRgE4sLzyRR9CfQX90omYBJgPsJSGoG45GRc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782399044649828.7548385164589; Thu, 25 Jun 2026 07:50:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclO1-0002iz-4V; Thu, 25 Jun 2026 10:49:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclNl-0002hG-Tc for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:47 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclNi-00007z-L2 for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:44 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9jxYb2010790 for ; Thu, 25 Jun 2026 14:48:31 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0uhmjqux-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:48:30 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30b877ee493so1094716eec.1 for ; Thu, 25 Jun 2026 07:48:30 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.48.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:48: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= J1aA0AXcl1R5eWizmiiFdBlejhKxkpocBp47xOiaUuM=; b=bz3OYl2SPHXSoy7m GjGWKAQPrFgjNnSvkVt7Y3rBvftUh2P6vyMwgoWrJYvDPbGxZ7QO+bBl4kBcUUte u2JY0owM/SqxJlVzK9L28uHhyZY/KNlVUSSMW0WrJl7XME6gaO5DWzNSxeiIe0KF ydJPGCZ0kK7tIR9R0uV9JNL/rhawK+wWoccGsGxTMoQDOpdM3vpp4jvQ8JOCMiGv mwiNtuRVA+K+IdWDzGlBYiS8YYOgCZ3Xwuq1aqUpajV3pGA9qN5lGXnbBUL9WODG 5WOpQvUXz+vY03YMBO223o9LthtLt6C+t+o2t38zCDBdvDHJijojKEeh+XWVg9Y6 BYre/g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398910; x=1783003710; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=J1aA0AXcl1R5eWizmiiFdBlejhKxkpocBp47xOiaUuM=; b=YC/ZD/UflJS917+lTTFf+XrObmBIzWhFj6O2LP4hWAK/+Z8+jxA7UlQaryOtg9ljoQ lTV+c9Vhea6xOMhdv/285C00Qk3bu2I2Ygp86mSH5mIfK++N517wDZGCvS4L5lWguK0M 4F96lcwT5uuj6n8E26RyqtJ9FDLwYY8OpkEVi5FhWE92OLyyV5DyU+mX66LQ19rB4H83 6nbMUEWFJS+WJEkc7CCH96f+BKdeH4fnX4JBeteNlVvCwiTlYL8AagLJDzDUylareZwm QASPQ195Sq8KKH7FAB9DnXimQhMgr6jLJed7su4OtNKcH4xHbGwslSCWdw9xiYFUbzHt byBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398910; x=1783003710; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=J1aA0AXcl1R5eWizmiiFdBlejhKxkpocBp47xOiaUuM=; b=o8RZgiKaRpAV8frUTtYXkHWTBRWjuFPnHyUT+L3/HcADXa8HedvpkDZ50tQqt7pHBy tCdIRzSAH6ajUhzbKC/TbfwDCLxcxm61I5h1LkshlbijEcVrA4XpyohbFekjqbCq7Zxn /UO0zLSxMRA8ZMWoUsn4Pvjcpai6XELal01ZLoHnFuspfGd67WsR9tHXo4la/AHEJ00h tNaXx67JaeJ6a/aVTarfqLccUhH/mnqv9T4yzvpi8J/L/mc7UrX/ZI6ThrugRfd278uY sOLrvuDym5Mt5xPFf5uD2qg9lZC/9mdReHWY2PX9JAARj6hfCsvCnNpYaKQ2xGyjXj5Y RqhQ== X-Gm-Message-State: AOJu0Ywl0HdjijHAblOGBDFHkgom7WNO5dFHM3H7PO5zSemcYyG+odbR SYHcIWbxAU/804lACfS+hRv4nW5Y9mIsJ3G2m5u32Xajs469THJuLQ7IOX6Nlh0zzwtkjY7dmFC cP03corpphXlGh7uGVNkvtI7q9/5ieV6H6/2Xk8SDyHiYUHgJpZYxcryzeRjpVFy+aA== X-Gm-Gg: AfdE7clIqa6oCikvdc0gHApyWPhjuP+UkRpIZBJfgsdyukmDVxJWVnX96KU6nCdQ1Xx Xkz2+H5L3IojW71U6QWcTN1+uxfEJYJkRQkTrt9qv3zgfXWklW5H1mA3P2/G6Jpw2zOGS08TyEQ qS133IjiiE71HNlpgtLttmElIJtMpG50OnIQSkirZGZPXdW9kyIXvBPU7WgH+wTXg8PAka0zzBG ok2WWdIKql8/dsich+HIdeKkqdhldVHhOUcKfm6RGpjk+ftpTQ90/QPtqrjJx0ZRuYiJIPeuVdi F08+5bapt8o6pGxWGAJAiXUAtT10pRbp25XgeNW05g9MtS8+417+muMjXtyHy4hkiupSDMIPfOg iImYRQbGuOZ2ijwLw4ST/73w0gwFHAQFO5FnAOs9Cqhi/x3fN7am0O/UY5sI= X-Received: by 2002:a05:7022:38c:b0:139:7a48:5e7d with SMTP id a92af1059eb24-139c3d098bfmr8717757c88.23.1782398910028; Thu, 25 Jun 2026 07:48:30 -0700 (PDT) X-Received: by 2002:a05:7022:38c:b0:139:7a48:5e7d with SMTP id a92af1059eb24-139c3d098bfmr8717734c88.23.1782398909450; Thu, 25 Jun 2026 07:48:29 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Pierrick Bouvier Subject: [PULL v3 54/76] target/hexagon: Implement setprio, resched Date: Thu, 25 Jun 2026 07:16:11 -0700 Message-Id: <20260625141633.449487-55-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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=cqerVV4i c=1 sm=1 tr=0 ts=6a3d3fbf cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=9hY_xzidxOicKg_qOOkA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX1o+/mLmqAmIS 7JUmoAaNpPon86cY5nMztLj5WH9oEHqyHCdkfFCZJP6etjweU96YKXWNW05XylX9X72axBx3mU7 dBCpL8HFFp9mEwNx0bSsHk4DpHLC7GR+jMHdGoUO12FP7QR/7fUpAh3VNuWSz3NrK/a4MJX6v6W 3haBRup+88iy1Q6U2cHXSjM0R24U5LCj+jW6qsuhfxI5dI2lKP4SRvUraZ9wZXg4Ztb3G/BmmgZ gegjZRRUM+5PYxHEjMbjOQEPxRadpOKlYOEnm1Kpr6A86AZt6Y6KpogjzXakXUhJHfr0wXJHcgW HYVg6zWnL2geYZkSUv1a8Jb1lLPMFro9EEs4A9NJm+XQjvUv+uLKag55kcg5PGLMy5ez/aAaulB 7cqLi0CYn0Id7do2kzsd9QEyECcmtMwo3qPYq8dGfeugCMRa29Xj7EKV4Gjzgh2jvUEHnl1M4AC FWeEhUFG4sFNQ6lFo2A== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX+t40uTl/LIEZ rtqHrkes148sl9TR1Ex+G3O+PuvM5369C/N0WsGRbY86tKFUVuZ4rnHY8h9IGTSLpUv5wfVdWu7 DOPAwxBcBDXjsjf3f6bDV3fK1fgIyWQ= X-Proofpoint-GUID: gtISxlQj2Hxx_dS87o92tyejB234CMhf X-Proofpoint-ORIG-GUID: gtISxlQj2Hxx_dS87o92tyejB234CMhf X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 clxscore=1015 bulkscore=0 phishscore=0 priorityscore=1501 malwarescore=0 suspectscore=0 impostorscore=0 spamscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250127 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782399045749158500 From: Brian Cain The hardware-assisted scheduler helps manage tasks on the run queue and interrupt steering. Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- target/hexagon/op_helper.c | 77 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 34c55b560ca..3c253b391e7 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1590,6 +1590,64 @@ static void hexagon_wait_thread(CPUHexagonState *env= , uint32_t PC) cpu_interrupt(cs, CPU_INTERRUPT_HALT); } =20 +static inline QEMU_ALWAYS_INLINE void resched(CPUHexagonState *env) +{ + uint32_t schedcfg; + uint32_t schedcfg_en; + int int_number; + CPUState *cs; + uint32_t lowest_th_prio =3D 0; /* 0 is highest prio */ + uint32_t bestwait_reg; + uint32_t best_prio; + HexagonCPU *cpu; + + BQL_LOCK_GUARD(); + qemu_log_mask(CPU_LOG_INT, "%s: check resched\n", __func__); + cpu =3D env_archcpu(env); + schedcfg =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_SCHEDCFG, + env->threadId) : 0; + schedcfg_en =3D GET_FIELD(SCHEDCFG_EN, schedcfg); + int_number =3D GET_FIELD(SCHEDCFG_INTNO, schedcfg); + + if (!schedcfg_en) { + return; + } + + CPU_FOREACH(cs) { + HexagonCPU *thread =3D HEXAGON_CPU(cs); + CPUHexagonState *thread_env =3D &(thread->env); + uint32_t th_prio =3D GET_FIELD( + STID_PRIO, thread_env->t_sreg[HEX_SREG_STID]); + if (!hexagon_thread_is_enabled(thread_env)) { + continue; + } + + lowest_th_prio =3D (lowest_th_prio > th_prio) + ? lowest_th_prio + : th_prio; + } + + bestwait_reg =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_BESTWAIT, + env->threadId) : 0; + best_prio =3D GET_FIELD(BESTWAIT_PRIO, bestwait_reg); + + /* + * If the lowest priority thread is lower priority than the + * value in the BESTWAIT register, we must raise the reschedule + * interrupt on the lowest priority thread. + */ + if (lowest_th_prio > best_prio) { + qemu_log_mask(CPU_LOG_INT, + "%s: raising resched int %u," + " cur PC 0x%" PRIx32 "\n", + __func__, (unsigned)int_number, env->gpr[HEX_REG_PC]); + SET_SYSTEM_FIELD(env, HEX_SREG_BESTWAIT, BESTWAIT_PRIO, ~0); + hex_raise_interrupts(env, 1 << int_number, CPU_INTERRUPT_SWI); + } +} + void HELPER(wait)(CPUHexagonState *env, uint32_t PC) { BQL_LOCK_GUARD(); @@ -1698,8 +1756,27 @@ uint64_t HELPER(greg_read_pair)(CPUHexagonState *env= , uint32_t reg) g_assert_not_reached(); } =20 +/* + * setprio/resched - hardware-assisted scheduler helpers for managing + * the run queue and interrupt steering. + */ void HELPER(setprio)(CPUHexagonState *env, uint32_t thread, uint32_t prio) { + CPUState *cs; + + BQL_LOCK_GUARD(); + CPU_FOREACH(cs) { + HexagonCPU *found_cpu =3D HEXAGON_CPU(cs); + CPUHexagonState *found_env =3D &found_cpu->env; + if (thread =3D=3D found_env->threadId) { + SET_SYSTEM_FIELD(found_env, HEX_SREG_STID, STID_PRIO, prio); + qemu_log_mask(CPU_LOG_INT, + "%s: tid %" PRIu32 " prio =3D 0x%" PRIx32 "\n", + __func__, found_env->threadId, prio); + resched(env); + return; + } + } g_assert_not_reached(); } =20 --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782399136; cv=none; d=zohomail.com; s=zohoarc; b=SQcUgLSufsaSjg/xpLUlFSvQU1sS1E9vfVkjjCU8n6J0dIu4Zt93uUFBUbqOVBjnCgCrQsBqIfiCmoV8LLrcIwAH8sQhHPIdlC/Pqzy8jXj594uYkAhke6cexCJNK9nJbynob2xRwQEKGDEr+PbDT4ora3MZ9qqz/53kw06Afr8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782399136; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=HRwBm1PEj4CfI6jfh+n9tz4eTBvdQkmFIGL8YkDQmso=; b=RfvM05tfQC7MxojCKt1cASkBIaQVoPld9a/BRPRRWsIO7ue4A7r0NwKzOXVNXxwP+mHrSU81x3Wqv/JsHa6cgGC9jSMQ+2GunDkU6lk2D4MCcLSSS9ILGOWot3M50Ef3dARPzypUDgkJGUHuvVBWPDVAT52hgsFMPYqnonD9ZRI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782399136436396.4039029038797; Thu, 25 Jun 2026 07:52:16 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclOC-0003g2-Dp; Thu, 25 Jun 2026 10:49:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclNo-0002hb-4D for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48: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 1wclNk-000087-M7 for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:47 -0400 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9juBw1723104 for ; Thu, 25 Jun 2026 14:48:32 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0j7dvteb-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:48:32 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30bcb065bfdso2720961eec.0 for ; Thu, 25 Jun 2026 07:48:32 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.48.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:48: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= HRwBm1PEj4CfI6jfh+n9tz4eTBvdQkmFIGL8YkDQmso=; b=Ho5hIdnONcpUZ+b1 OxEg/Z3+mjJBZAm4q0v/RwDccYaLpypclQsGFk8W2L4eFR3GHIW8rf7nlw3dZrow hjAn64Cgk5UXLmhSgX0buykq21epqudpoS5zXxOo1rUYqW9sLIEvNEnFfyEoi0zs mLTVkXH5DqP1LzA0OIqMxaukt8syzUyaMMV5n/JnWw6+h1ur3mvgMAiMhd4PYC8F y2pTxBIh1ggAcslsEpDUwY8FeSDuKIWtKt5kA1SXRDmIzZ6qZ7V5BGVXepyu9M3G RFF/5XNiwahGKsxSzkXHziDymDWhja6mbOnPBsIGWBq4Sjpsov39gnUQcltzOXnA XOlQWw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398911; x=1783003711; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=HRwBm1PEj4CfI6jfh+n9tz4eTBvdQkmFIGL8YkDQmso=; b=ctcr8M9S87OPTgGpo3zsXmAJr790NapbBOeeNAqUmZzeMxW4/s6t4EjNYRfYjeEC55 /S/lzLqYsID8dTuW85v6zBVLCXk2V4WEhijgj5ClAqJqM+O7FCMZun4Zrslt1EE022X+ aTCeizgu2s21IiwrjaxWF033K3C2E0BE3EdtMjcioJJwbygoQ5FrnkAHZimRTxMUeewS GhJRxiU+ftJ/uxJo0PFK5TrdfzhMtCHC0hHDMYljixzyLyx0lOtHJGmfXVJpnzmldL9T 8Ewdq3HfnBKczzSnhifZQpojHchWXaL1bgC3OLnlVbj+/gDVPSaaf5ZmMvPoEfFvypT6 rhOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398911; x=1783003711; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=HRwBm1PEj4CfI6jfh+n9tz4eTBvdQkmFIGL8YkDQmso=; b=oQhFtzUgdQDnlQvJsuW6hCogRRYmfH4M6e9G0cxzC/X9BPvqByKrz6BZDO0cIdeYgU zF3cOhNGGXjYMIQOKbrs1XTYCiemP7CkoZpLvTr91wwQoUbcnMGDz2UOpsTmNDlOvLF5 jW9yVnkUwJoOozdb6iobqkgJjmlnkBSpPtJOCr+1pcZgPCRUsR2/VBaIz4mwDSyAv2H6 kkaHhR8KaEfr3jH2SrE1C1GgRy9KSDBMncHZsHwQnKuLRHAAtYlxTE3661hVO/0Jv4gs YOM8ysFLEMo5EyUmkWMM+rLyT3sK676tWNPJcDy+9jY9xHPq3EvWlJuKEu7q5CJR4Y1o g/1w== X-Gm-Message-State: AOJu0YzzHNcZ837US3KyIOeShmJgHnQCCNx/gLzHAJZFup/wp5ZpGn9I l70dQkyD2Ho/EupDs6d1WpDfwgjj3jc6QgQd3a8UCYyCSlkzTZ3JlGo2s9Kk9ycKEPoIPoYuGGY g/79ifq0t9bKMYLs7sNdA3cCc3eUb6go5rwnOVoZbYymX007WCqd6dOKwa7Qb1csfFw== X-Gm-Gg: AfdE7cnHbgZt5RxEkVRTh8Ym99S/iymZo1Qx+2M8fzhoGb/txEXEQ4p9NE5SwY2J2ol dK/sA2RFV4Pau1VzG0//4MxLIugrA5QyP7k6T3ShDPrdA9M9dDYA3AeB3Fu1vy1398QmBy5uDwM n8hb/QJ5acjKTjy0/LTKlaVGq0JtkuG+yJgnQ6orc6lKgQqlvdUxugRXZs7Hzo9rCqZ0XJ5fjha 5q6h3mqmFaGdyb4ohA5e5UyUpGkz4JoUtztUoeWfFp1q0PZxKF9D2my7FUZGdSkt4H9oMByAPX5 c5vJVC4QTGZRsjxFqTXSa8q8rQET+hPSLye0TGTFUhaRhlLgoK4Av8gS4zsjnn8VsfbZfj5z/0X 8kNMCTLOmIl/3Xgq5sqrdULwDb/aTVUlfUtGpKG/IIJVZz00oNq4TzD6JgbI= X-Received: by 2002:a05:7300:2d2c:b0:30c:41df:3734 with SMTP id 5a478bee46e88-30c84caee33mr3429373eec.22.1782398911211; Thu, 25 Jun 2026 07:48:31 -0700 (PDT) X-Received: by 2002:a05:7300:2d2c:b0:30c:41df:3734 with SMTP id 5a478bee46e88-30c84caee33mr3429346eec.22.1782398910762; Thu, 25 Jun 2026 07:48:30 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 55/76] target/hexagon: Add sysemu_ops, cpu_get_phys_page_debug() Date: Thu, 25 Jun 2026 07:16:12 -0700 Message-Id: <20260625141633.449487-56-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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: 4P8vR7q62zjdf-rRa-T7vjO31aL1QDOn X-Authority-Analysis: v=2.4 cv=NvHhtcdJ c=1 sm=1 tr=0 ts=6a3d3fc0 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=fg0LxJQkbHe3Ved8Rg4A:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfXyVXKkfftR7BL C+ToAw63Or88dEoQFrpXit7CxhjIe+UVIWilQk5eGg68aTZ2ehOE5SqKGiV2xj5wtw4WPMMbOks bXlx9VAZoOWsaz2tidmvct+aCG3K8B0= X-Proofpoint-ORIG-GUID: 4P8vR7q62zjdf-rRa-T7vjO31aL1QDOn X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX446edUAXheTW zOaWo9DH1Ip1OpqzYiTdG6VECtMkdZ8W1o/oRiyNTn88I5shISbRKBMMYjSVfpcZkWu3Rza6umA jXsBZTi1wHuNf5UPj1CpCG2yQNOIFXd34Jh6v2yzzIcEpUG2cEmns0+g8tsNAKl3ZDxds0n3XMp jDjW3yQLM+9GsKIQa7b4i29Gcee1/EO5a54SYmzwIvcLz6/xoiANFtRsLQnlO87vOtOsLVGRSHd cpZkGJbjgnCP8SJI0gFSyvbedL8jDNGp2RExP13QgpuW4HqorrGYG+RdWxOF8ky9gr5MbAN1QVv 89N78Si4mbpy0XEPwpkJTK9dgLHhFxjaeY1ssB8awXqhAVEaFOS/E48058W3sDb7P8cvbV4PyjR 84XXIdSD69VW+RXXM5lVLBgYNpsOa9kgSrfHAKhXHzBrj7f8ZVOSjW/IBWs025pF/JVp2Kj+RR1 uVo10apqtq4/ZqgQMBw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 suspectscore=0 adultscore=0 impostorscore=0 phishscore=0 spamscore=0 bulkscore=0 lowpriorityscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250127 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782399138413158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 4e5a25744a1..670668808a8 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -20,6 +20,7 @@ #include "qemu/qemu-print.h" #include "cpu.h" #include "internal.h" +#include "exec/cputlb.h" #include "exec/translation-block.h" #include "qapi/error.h" #include "hw/core/qdev-properties.h" @@ -37,6 +38,7 @@ #include "accel/tcg/cpu-ldst.h" #include "qemu/main-loop.h" #include "hex_interrupts.h" +#include "hexswi.h" #include "exec/cpu-interrupt.h" #include "exec/page-protection.h" #include "exec/target_page.h" @@ -504,6 +506,24 @@ static void find_qemu_subpage(vaddr *addr, hwaddr *phy= s, uint64_t page_size) *phys +=3D offset; } =20 +static hwaddr hexagon_cpu_get_phys_addr_debug(CPUState *cs, vaddr addr) +{ + CPUHexagonState *env =3D cpu_env(cs); + hwaddr phys_addr; + int prot; + uint64_t page_size =3D 0; + int32_t excp =3D 0; + int mmu_idx =3D MMU_KERNEL_IDX; + + if (get_physical_address(env, &phys_addr, &prot, &page_size, &excp, + addr, 0, mmu_idx)) { + find_qemu_subpage(&addr, &phys_addr, page_size); + return phys_addr; + } + + return -1; +} + =20 #define INVALID_BADVA 0xbadabada =20 @@ -611,6 +631,13 @@ static bool hexagon_tlb_fill(CPUState *cs, vaddr addre= ss, int size, do_raise_exception(env, cs->exception_index, env->gpr[HEX_REG_PC], ret= addr); } =20 +#include "hw/core/sysemu-cpu-ops.h" + +static const struct SysemuCPUOps hexagon_sysemu_ops =3D { + .has_work =3D hexagon_cpu_has_work, + .get_phys_addr_debug =3D hexagon_cpu_get_phys_addr_debug, +}; + static bool hexagon_cpu_exec_interrupt(CPUState *cs, int interrupt_request) { CPUHexagonState *env =3D cpu_env(cs); @@ -653,6 +680,8 @@ static const TCGCPUOps hexagon_tcg_ops =3D { .pointer_wrap =3D hexagon_pointer_wrap, .cpu_exec_reset =3D cpu_reset, .tlb_fill =3D hexagon_tlb_fill, + .cpu_exec_halt =3D hexagon_cpu_has_work, + .do_interrupt =3D hexagon_cpu_do_interrupt, #endif /* !CONFIG_USER_ONLY */ }; =20 @@ -680,9 +709,12 @@ static void hexagon_cpu_class_init(ObjectClass *c, con= st void *data) cc->gdb_core_xml_file =3D "hexagon-core.xml"; cc->disas_set_info =3D hexagon_cpu_disas_set_info; #ifndef CONFIG_USER_ONLY + cc->sysemu_ops =3D &hexagon_sysemu_ops; dc->vmsd =3D &vmstate_hexagon_cpu; #endif +#ifdef CONFIG_TCG cc->tcg_ops =3D &hexagon_tcg_ops; +#endif } =20 static void hexagon_cpu_class_base_init(ObjectClass *c, const void *data) --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782399044; cv=none; d=zohomail.com; s=zohoarc; b=Qr5c1z0ZIVvO5y/V449HdEQERwpcmNQr8xag25v9ymiQYJzuzRkSdo2TbSXo6MqhiHBPoraI9Qow2iqZgRTr0cQDheTxTSyr6eT29DrFVr+sBWUs/gVn40KoimktS2AUhjwjDD6d5CvFwSUOcG2OwHwK2su7dbZwqSntJIYUYHM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782399044; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=pn/yqs889jusoL8Cmra03kW8nABJmbmt9+r6zbgwxKs=; b=LdX6ZPivgpYhCot+KbxMGx3wudJ5mXu/EKp+2rjYnNS7AzJns/6eprLv1fbEkTFYmGitMRBZWHI4DGSRmyQRpkWJrDueId9nmvJjpduKg6U7R4RBVlpB4x89/i3BmJ9rStAb/VQ3u70lMXq2b4SLCKZFN7s27bxnbOFJ25XY7HQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17823990447121006.388161441105; Thu, 25 Jun 2026 07:50:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclNd-0002fl-TE; Thu, 25 Jun 2026 10:48:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclNc-0002fK-GN for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:36 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclNa-00008T-W1 for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:36 -0400 Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9jv4m025784 for ; Thu, 25 Jun 2026 14:48:33 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0tsptx5d-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:48:33 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c011c7cb9so7003057eec.1 for ; Thu, 25 Jun 2026 07:48:33 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.48.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:48: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= pn/yqs889jusoL8Cmra03kW8nABJmbmt9+r6zbgwxKs=; b=N74AtR3H1uzOvL5h mGUkBgWAUwmhZmHCGqBIEHotZO6MudSWnQ/DsVTQXov+SRcolrCwVSHB0C+kCanX 6azwB1ESX7NfE4qbpUIFIM8YcmSieVjYUhp9Za7DR4UIE4YECh3ACGealhtSHgM0 lSxYES54Kkp/GS7JIKh7rS+vDmYNsLjh9O+J19HyfOt6y4mC10fhrdJJZsH1ST64 iFAY3m0aNhTrEiQVpAY5eKfdDb3g9QIo1EOl5H6RXKDCyJILulc5rRCtcWOKKzBM psYLlO1pRqLjkkDjwNrrAFWHfkNdCwgKqfUxq3qxSlJrnct3MjyfUlJ/xi4dwsqY 2lIMlA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398913; x=1783003713; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=pn/yqs889jusoL8Cmra03kW8nABJmbmt9+r6zbgwxKs=; b=X4GyVzoM9oFC/kLa48IcfCcky24+ntXjwJd5ghdgRFIPbRaYMNEZW1n1NbTBKvDszW gukAJ9Fk7l53INC5zzH0rLTgzyPTQnKNnI8/fAugbPKVOSPMXyypIS3Mhf/7g/szJBB/ YXdrV29TVNdB+eOmiWJXzrEOJynTjqU1Yq3LgtXnIQLQXfeSpKuPs9KeLbAMh6aAWofw l6NVdS7TyeYvBVjEX792+nYZybGLi2o7FB34Vcgr4ER3NYXXCzev0PNprWDXaPGHv8tQ UjNNkFTNlKFfCcuUBdQzSBs4FYGhSHuHGn+z3Lv/qg/FMMM8LfJ0UDgJv8YdmGl+7N0y APNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398913; x=1783003713; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=pn/yqs889jusoL8Cmra03kW8nABJmbmt9+r6zbgwxKs=; b=FgLbuw/jUwurZYmf3JZHoaOayrXwTzMXum2Yzx1gie7W9hEhkdqoc5LCf/2kDa9ZYH /HSBoNwLNbubw0fE+IFMC3ESr+rj/oVvgFpLmJIARpihCsvEV2Pv5BHFPrcz9NBMGCSp LB/qwSy/WIxOOhP/4tJjYtLejmXNzUt1bIEABZLytZu6+Mc7sz0NR1WPPQNyMhiCoWrH +o4a7CveLCLhmyHRGwbqgflrvgj8phBFExtYaK5dp4Nta9etXD1ZueSYCecbmH7agE8z ZKLmSFgjOqfxBTArFHRwIlKfeUXjTsJaifZbJhDa1k3qmIYfqflvOZJVQ2gVhGz+M5QL LXbA== X-Gm-Message-State: AOJu0Yz2S12tASCVxBkAXV1q9qTFPpHPu4OWILm0psuF9fQXiI68HTZj jn+F/Vi4w+kIKJBjaUH6+IMtwhHoadgOT0bcdjZY8g2PCFIom2p8r0RNV8KrXUPQZ5aP+ALkVw3 WW3a/ZAVtD2LjFKjlXentvzr3ITEOnuX3mUNE1s6oHsh/2huW9RDwHT2Kn01OublDTw== X-Gm-Gg: AfdE7ck1Ep5lZApMvTaJr7D3F453+/h8hETklvSu93/yKrZjPQNWr1RSy0T8OoAa0pF VoQi36oKHEwzLXHPZqJRLxAuWMJ9VJM+sujbt8dWB/w7XKWEWsKoPyAaP3zC5WLYyRMs7NoyKi9 +k5zo07oL8GIkrq8ujwqqFNSKtr0lTclvfdF4Z20JjuQMsc8goXleSt3SwgL62od8ZjThp/qodm j/+sjh5LpIQriWEKAbdsp2e/t41mW0kJATYPOnfXZC5exdClw7/t/wu+eJ02WGq4C/mWo+3UYhL iSx6H1PBpWwu3LkfSALi61wqyjsh4p8WQKev/AOaqUuHPDQ7sFGIk7wbpuQRZgfhtqaaFV2wLHm el5tLMUX/GBuViYWY0N7lKEyo0+HfMUiP6bE57gSwPmYvppntI6jiY7P6zO0= X-Received: by 2002:a05:693c:6383:10b0:30c:8d9c:78a with SMTP id 5a478bee46e88-30c8d9c0d06mr1113590eec.19.1782398912840; Thu, 25 Jun 2026 07:48:32 -0700 (PDT) X-Received: by 2002:a05:693c:6383:10b0:30c:8d9c:78a with SMTP id 5a478bee46e88-30c8d9c0d06mr1113566eec.19.1782398912235; Thu, 25 Jun 2026 07:48:32 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 56/76] target/hexagon: extend hexagon_cpu_mmu_index() for sysemu Date: Thu, 25 Jun 2026 07:16:13 -0700 Message-Id: <20260625141633.449487-57-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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=OL8XGyaB c=1 sm=1 tr=0 ts=6a3d3fc1 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=hUoHZ09r4jABJgGRQWAA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfXx6YEoIR5ofpV Dfj9xZAjAdh9qw31XUcIuthgGdejLCwTfGfJJ1qw2mjtFkRZStGlCEs0oc4oz3ll4lXoRXQw6Tx PV9jbcMHDjyMmJpQg//yibemudX8hGK03D7KWnY5Z1vamvVSzjElN4O9+70vKK8M1a8rL7wGUIg QtgBAdxTEgmkOWh+YYcsMFnR52ZJ1maMhx+Ea995qYOmhpN6FDqt16eY6xQs2LkdW7AFxwZKZTc 3Y4PjeizZcjVDwF7LOdDVtEZRIWW/WVWk67R9P36hpUWGiYgG4E+i0zpYWX92r/cEgIOClzDXSF F2NgZn5UQQZ10YYjsYq1/HdfMLCS493xh7TA7ZjD0ORwHi2S2+kLZ8N7eH5Z1YjS8D/8lOlU4tR FSUyN5tdblv8eZuENMyCwvb3Ed/xOsALU+k44/GM2rNn95ODgR3GPT8k8hn6xysswCxj9uHEMTz iEkeZv/HiXUgAEs6h3w== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX243ID/SJxLAV 3jCf+JXjhBabxaXiHNmaA+ye9o4GJy6iy1xoFiwg0VhMOpIpjY3GRWEaVKa2p7+ER98b/xThGxF RfEsG5t2LRjhqmc99w4J9Bwwz/1WN5Q= X-Proofpoint-ORIG-GUID: E-IYkoCtrgwXxxNR14xEIFgCDmXmxwLg X-Proofpoint-GUID: E-IYkoCtrgwXxxNR14xEIFgCDmXmxwLg X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 phishscore=0 clxscore=1015 malwarescore=0 lowpriorityscore=0 suspectscore=0 priorityscore=1501 spamscore=0 impostorscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250127 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=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: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782399045671158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu_helper.h | 8 ++++++++ target/hexagon/cpu.c | 24 ++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/target/hexagon/cpu_helper.h b/target/hexagon/cpu_helper.h index 75a28fc10f9..d1767503156 100644 --- a/target/hexagon/cpu_helper.h +++ b/target/hexagon/cpu_helper.h @@ -8,6 +8,14 @@ #define HEXAGON_CPU_HELPER_H =20 uint32_t hexagon_get_pmu_counter(CPUHexagonState *cur_env, int index); +void hexagon_modify_ssr(CPUHexagonState *env, uint32_t new, uint32_t old); +int get_cpu_mode(CPUHexagonState *env); +int get_exe_mode(CPUHexagonState *env); +void clear_wait_mode(CPUHexagonState *env); +void hexagon_ssr_set_cause(CPUHexagonState *env, uint32_t cause); +void hexagon_start_threads(CPUHexagonState *env, uint32_t mask); +void hexagon_stop_thread(CPUHexagonState *env); +void hexagon_resume_threads(CPUHexagonState *env, uint32_t mask); uint64_t hexagon_get_sys_pcycle_count(CPUHexagonState *env); uint32_t hexagon_get_sys_pcycle_count_high(CPUHexagonState *env); uint32_t hexagon_get_sys_pcycle_count_low(CPUHexagonState *env); diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 670668808a8..3af90e30b0f 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -447,6 +447,30 @@ static void hexagon_cpu_realize(DeviceState *dev, Erro= r **errp) =20 static int hexagon_cpu_mmu_index(CPUState *cs, bool ifetch) { +#ifndef CONFIG_USER_ONLY + CPUHexagonState *env =3D cpu_env(cs); + HexagonCPU *cpu =3D HEXAGON_CPU(cs); + int cpu_mode; + + BQL_LOCK_GUARD(); + if (cpu->globalregs) { + uint32_t syscfg =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_SYSCFG, + env->threadId); + uint8_t mmuen =3D GET_SYSCFG_FIELD(SYSCFG_MMUEN, syscfg); + if (!mmuen) { + return MMU_KERNEL_IDX; + } + } + + cpu_mode =3D get_cpu_mode(env); + if (cpu_mode =3D=3D HEX_CPU_MODE_MONITOR) { + return MMU_KERNEL_IDX; + } else if (cpu_mode =3D=3D HEX_CPU_MODE_GUEST) { + return MMU_GUEST_IDX; + } +#endif + return MMU_USER_IDX; } =20 --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782399085; cv=none; d=zohomail.com; s=zohoarc; b=X+0TL5ZPJpuOnL5nGqvhgl26eCGerdFZ0QuzNS2gTLxOYQcGQ2U+5PMeeNmyORxc53WwBK0u1JFLwvmLe/NWcBAdZp87bT7IJllZ/8/rbdmkgyux7huuKQ++Lp0MoHKHKDsSgWWUj/zuELd3fRdNIGAIErcQ8lc64XWGuknTpRg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782399085; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=KM8Vmh2bjk7TYidhmOrqAPOj1Wp2rd3I7ixjJkyml2o=; b=Lv0y2hV9HbnUr7p4lF0ZEZI82T6cYzJylV706IaKwFBslAxRMQ0XoLTNZejpYAZVeJR5DzTl/vP/+DwASnwJBPXa9yq/mVWl+3ajjfcLkdcrqjc1GyfsoeUHNFQP2GbX2YGn1INzkt5ykvjFWc3s16qSCManK5Vvg4hvwwi3g5w= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782399085411141.0186757702994; Thu, 25 Jun 2026 07:51:25 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclNk-0002gc-89; Thu, 25 Jun 2026 10:48:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclNe-0002fp-1t for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:38 -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 1wclNc-00008c-Ii for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:37 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9jwHK1371465 for ; Thu, 25 Jun 2026 14:48:35 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0ymv1r1p-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:48:35 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30c0a27ad86so6613181eec.0 for ; Thu, 25 Jun 2026 07:48:34 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.48.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:48:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= KM8Vmh2bjk7TYidhmOrqAPOj1Wp2rd3I7ixjJkyml2o=; b=hdrxanV8Hfo/gSrf IEy8gOrRHrlM62QjQPyak3nGYIGZ4gKKe+CO2RzS0JIg7pyouNhplQMrGTiM8mom KEHUjGCgXt3E7ScwCLZNmV7K1Wo45GwW2H8GJ1A5xzOJ3+aAIE25zLEmxZkqtVFH rvbB1o2KeWpGtTCpn5wMVc6Ok3lrFX3scJR+Dty8WN2BViAv/bKLgyfv6PLkRDqb 7FrfHrE0fesbdVcdNivD4DetUn90e5kSortFkcID1XBJsub4XOYMvZGwTpqHE1Qs 5/qlD1aDroowyuI/czuFT9YEbKkrFWkU7ma8au6ZoyckbJeJd17qIAFQJ97ZK0Rx FmHvKA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398914; x=1783003714; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=KM8Vmh2bjk7TYidhmOrqAPOj1Wp2rd3I7ixjJkyml2o=; b=KOkyxlm32zyHVZOLVxGKa+kQJtuc+7tjZX1x1JamC12gTNOWMtQuNG2hvG0t9VD1Eh bhAUjQeoZ0FwoxVnRgm27yd8eCON+oAnxAYQ8/DpL7k/GuhOfyCBXjIcnB7l8s5fC5xO B6f/qlBIVGl4Ov0b2PLkLip1SV7lGQJvKYSRpEu28flT1pjxb+iXX52QhDWGmV3QuGpr bkRYVHWzCw7PCSbdZ4/HnKBKxoW16nB9PZSvrjRoo3B58tltQG//Iq/RQp6BAdDdSCIi TXy+i0xfoKfX5soBA3ofX93Sn0feKX+7fhuJjCec1UffmuyySPp1GXno8sIOHlltQbcf pY8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398914; x=1783003714; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=KM8Vmh2bjk7TYidhmOrqAPOj1Wp2rd3I7ixjJkyml2o=; b=TO5ovX6lIOQasj059Fmjpnc9Ibngez7k3PXekcSudVRcHHAP0UHQkqM6HeIXtdz25c lW26wafnYuX3otfioDEAb4Rr14Eod9sku571GXYQjQ1NZo/GgBYAEWqNof0XdNhO51HK vIlj7/jby50oeatHVfmrhzeurvl7sG0Gwh9nFv22/Qzx1/o8iG/X4ppcp82GCZ11dvEZ 7mXtSGzJsU0oxbry6/7J5mqEUK9bh30mHNePfDIHM14SiKgnRAaBoMzDe3O66CSScz11 P11Hyu8BkdiaXL3Q4jMwp6HyeCOzJZwTy6AvO0IN2Wj5ZA2hD9Fz050SabdzmjxwLPd7 ZYGg== X-Gm-Message-State: AOJu0YwODFf0qXMp9N7R9q1AWnxbznhWuchYkF7mXt8g5xFcfO0IIGB9 rQAwuHd8qyQP2oTMHHhEU9PzDsK8NzxGFBzRgH5U/z0a8dEMFOqADE3t67AQcR7ALQg7wl3XkZm ccI5wnpqacNCXH720SUkx0ehTTF1rHMjXWSX3HgCoLSaj9jRtZzV3TEY8Gk0Pmazaug== X-Gm-Gg: AfdE7clI4Y/ITViOHagwDO4z1gi7xL3qNRqLMLUIDX/GiHfgvSzHVQ3wasLrEY7eG4o DSY6WlTW9dp5udLhcU4iKBBnZvPx+vLhyaVYwsGI1rPv6QvWabYto+kyAnvhpO0UocrVvVrIkMT uuSmjIW0BotGB1Uc6YIReNM/kValg4tfmc6pJcYPjTZG+j5LAPiBnnAYZWFtNANrUwr4JG0hKBq dDhgfPUJczT1nMwJDark45mzD3w6YvWB6CxQvk8uVtD4Pawf3Qec0Om0Rr7Jgg1C1RGTnQjUSq0 4/Jtbkj3fYq9ZGLX0aOGG2C0R5A7nkzmcZy7OcPqF2EypQPw5fJqy/P7zGNbFGEaEuKHkSo+CIu 47RrbhJElB891o/EEjAc6uIWnBy6z4e/wi68KgX9LCSx7OBw9MK9CUKGSo7M= X-Received: by 2002:a05:7301:5f84:b0:307:37a4:15dd with SMTP id 5a478bee46e88-30c85009ea4mr3814609eec.26.1782398914422; Thu, 25 Jun 2026 07:48:34 -0700 (PDT) X-Received: by 2002:a05:7301:5f84:b0:307:37a4:15dd with SMTP id 5a478bee46e88-30c85009ea4mr3814560eec.26.1782398913850; Thu, 25 Jun 2026 07:48:33 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 57/76] target/hexagon: Decode trap1, rte as COF Date: Thu, 25 Jun 2026 07:16:14 -0700 Message-Id: <20260625141633.449487-58-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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=DqBmPm/+ c=1 sm=1 tr=0 ts=6a3d3fc3 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=oDs3gbQtVgqjpHJ5GUgA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfXzZojR0t+eJ9v XelGGnNTmlpTyzib7h0vAVPnhtMlhE8qSwWaTTpatlJcuGepAFgACBauanihwfJcSIYbosfgour C6Njft8TL8Qf5BWLlMtThMpJQ3TFzPM= X-Proofpoint-ORIG-GUID: DLD-nVjV-7n7pGt_UY3YrZdNimnahtwL X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX0RwC0Al9ToTu mJYnFFEm5UDbGAC11cXTYWSctYLgBNeU3nO0IHVDiXL/Y4fvs9bknG64p6EXxLYHgpvNdhEtqks pnSPaTFtVISXiwZB6sQDu3ESiL5oK8Ei/LMGDTnb3lD7I3xnF3r+/QIjxhkCmJFgJK36rMN7ZV5 NK4MaPizqKPB0zd3q5BTCUooGEGBMoVh9XN8ng09gOPp2TJbPDy0y4eYyw+74//Xx6ciR2YXZe9 iit77m1vXUmSm8mpqG1JFNgFeZGJzG27h2UwpIYFBH3TLes5H3YnLOvuXrp6lKtr+53UHLv7thZ GOQ11aAoMpggjXdHseMdYhba+AV2E0mEDh64D98UyKO+oJCwakLzaTQFLI7QsKpFUyRz19j6M8q HJOC+ZJuBXkqEgfmDrbaP8Cmoo1s1Eb/s1R6B+LbO6Vbb0d1OY1B87d8fUJtMEz8MqJgYc0rkag 9b3XhXvHjxxxFpHyqhw== X-Proofpoint-GUID: DLD-nVjV-7n7pGt_UY3YrZdNimnahtwL X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 lowpriorityscore=0 priorityscore=1501 malwarescore=0 suspectscore=0 bulkscore=0 adultscore=0 spamscore=0 impostorscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250127 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=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: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782399085985158500 From: Brian Cain Also: handle rte instructions at the end of the packet. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/decode.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/target/hexagon/decode.c b/target/hexagon/decode.c index 15954518b83..6eddcca26ed 100644 --- a/target/hexagon/decode.c +++ b/target/hexagon/decode.c @@ -185,6 +185,8 @@ static bool decode_opcode_can_jump(int opcode) if ((GET_ATTRIB(opcode, A_JUMP)) || (GET_ATTRIB(opcode, A_CALL)) || (opcode =3D=3D J2_trap0) || + (opcode =3D=3D J2_trap1) || + (opcode =3D=3D J2_rte) || (opcode =3D=3D J2_pause)) { /* Exception to A_JUMP attribute */ if (opcode =3D=3D J4_hintjumpr) { @@ -363,6 +365,18 @@ static void decode_shuffle_for_execution(Packet *packe= t) break; } } + /* + * And at the very very very end, move any RTE's, since they update + * user/supervisor mode. + */ +#if !defined(CONFIG_USER_ONLY) + for (i =3D 0; i < last_insn; i++) { + if (packet->insn[i].opcode =3D=3D J2_rte) { + decode_send_insn_to(packet, i, last_insn); + break; + } + } +#endif } =20 static void --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782399080; cv=none; d=zohomail.com; s=zohoarc; b=Y5JSI5PTKJwlBQSYlQDHsXVJvJX6Mhck31q1hkPHP/GU+swDc4Xs0syfJxQOHgG1B8hyb6P7oF6y2XXYEDJyExdFCc6XFkh1XNjdELY2zvRAAuLfuvYSU9D4BwfpiWXJt0AkQBOVSl27dcy5m3X82mZVPDBGZtxxDOAaOXSdAG4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782399080; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=3UuTOFdc8oYjbXiuLSyd2e3M5N5lZKNz6xk5uPNFpGs=; b=d3lEC5GGtgGcl8OBID67IbVJSQ6OjSHqya15GMMsK5OS377wAzP4ZRhynG9UvQkA5nFkDZ4WBwe0yFUeH7ofJ3a9qjjviA7aNGU3auldNfy2H2UkH4clYOGrsvN98vn4Y4vJxnuDpKxhfbJ00YUlU7OGWbwIUJbBiNslLcnAJnM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782399080791950.998103716309; Thu, 25 Jun 2026 07:51:20 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclO7-00031p-JK; Thu, 25 Jun 2026 10:49:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclNp-0002hk-74 for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48: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 1wclNn-00008o-QD for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:48 -0400 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9jsZj1919010 for ; Thu, 25 Jun 2026 14:48:36 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0ueuaqmw-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:48:36 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30c5b9f6a51so670265eec.1 for ; Thu, 25 Jun 2026 07:48:36 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.48.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:48: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= 3UuTOFdc8oYjbXiuLSyd2e3M5N5lZKNz6xk5uPNFpGs=; b=IJenYrO78aeSUUIZ lGmr+zV0ksYHitxUjkQeG4e/h/mWu7fHubnofMgzpX9rMqLgkDC56mZhHXs3Y/W2 mKfzV/vC3wj2IWioTpLEflDKmKjA4m3bhCdXqrCRHZ9ZgDfuRMOKEM5z43wJerl9 /Lm14D2X23PGKmBtcQ/EsNdYWb5s5CYHhbQ/k7wwKN0srRn9ThkLTYGvDKs9Ivff 215d20gur5DiRgtFVyS4wqFa9oeJjmnqWbiglxSuyBZD/WP65FFdGcdBevI+qgtX Ig+ieOg91G0KzyZY0888g4qfbjiwSaKIIylXdTlIj6bo1hKcH6RXSMy4/0Zs/NhZ QemQkw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398916; x=1783003716; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=3UuTOFdc8oYjbXiuLSyd2e3M5N5lZKNz6xk5uPNFpGs=; b=fDCFsGZFK2BGsiysYwQbOebFtJ8pWQUVaA7E1kj5adYfRhgpAp83L4ou4WcwNsxCxo MDddX6HfRE4r2cHscac99wqFSaI0qiIItCbUwMUz7b+4jqH5Xd5hcJz6DVfMXAWRd+VZ LyVDKDUGSI+WnYy9XX10C3B2TKlddK+1N29GvbKyM4v8m6PV5jqCw0uyGIgRqp4m+d6W lD2YFguH2lKaUj2mVGI1LdnoP5Pm4pCRRrPg7qHJEYlKP1zfVZAkt2sG3YKm7Wctifo3 1mpq5gdvSSDavAor7s0luYMREAPFaNtwguOH3FlBomdX3MbhEdKxm2ibK7aT4jxI+Tmq DREg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398916; x=1783003716; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=3UuTOFdc8oYjbXiuLSyd2e3M5N5lZKNz6xk5uPNFpGs=; b=HFoQO9dKceCBSaYf9CtfszqO4u2J0xJBFruykmVOeYuK7NGUjjWCvl45lMUHFL6wZ5 GKiGlhCLss2p4owssI06I4OfNLvQEtUdOEQen3b0IIZw8o2rk3rPvqnFysiAJ6oeLBPb rZ18Ut56NGQHWYunDc1QBeWeA7C0mWSNPLsuUoafz4c5Nds4eu0SSHAehN7fk2aa7zst Rv5jy5x7F3q9QyX6SQKsfuVnXMZln0Dry6TgTzHG2kJDGe+nbbQJNN3cvMGtqLaXyYo4 6+snktsoXD78mggl6h52wrAcpPTnIn1GdbZSdJp6cnJiqQmeEkdUtyCZ5vs+U60v8hlj JP1Q== X-Gm-Message-State: AOJu0YxkuEWW3HuciM5rB72uWdZGNjujkvsK0ZEUBSe911vtarbbuo/s uOcXsQVfeY9XnQqJr6pqEHPzICHHHv5lJvLxT/U3Q1VkEbEfoUiuSYLoOTxL0dDUx0tQkGmgI56 EtrhIejBV7viNW5xyRQw0B0INBuj11VtSu4UNDCaiYefmrBtffZ9Fa0G2lEighS37CQ== X-Gm-Gg: AfdE7ckSx+p251Gz1k3JaKUbrsaEM7TZnv7Q+7CWnUea9D2Fv6tqLs+LO/6N6DijtYr bpRhPKyHFnYMdho/E0hhaO6iV9PYm4u3KPyaXSD7Iqp1EoayHDPx7M/iJEy6ZtPNDsWaZ8WBcnI Bs+gprtIXkfHabH40FZrsJmNGUxJ5KAoB4OxmQhLKkYlpLJFAwDyIK95WAXNe2SaWyNA7OfhVev WstL+oAuie6lLjw/Yj1Zo6g3BvK2MF+b5Svijxqjo6LTKFDTbVB4fpIY3BJHY1opP/S4UnKkRv5 lcKTEUBtVmI+8k4dmJ+u9DaAcMoInMRtoO45wpr9JrvjrmeeYFSvJ1WMvQ+ONM0q81PkFKF99wj jsr9jENvwiPQUyCKE7GTJnkXUkN2R10f7PhQCoYaE9ZH+JTPDayxaQ5NkbXs= X-Received: by 2002:a05:7301:7c0b:b0:304:dc2c:3280 with SMTP id 5a478bee46e88-30c85b27df9mr2511182eec.14.1782398915617; Thu, 25 Jun 2026 07:48:35 -0700 (PDT) X-Received: by 2002:a05:7301:7c0b:b0:304:dc2c:3280 with SMTP id 5a478bee46e88-30c85b27df9mr2511160eec.14.1782398915049; Thu, 25 Jun 2026 07:48:35 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 58/76] target/hexagon: Implement modify_ssr, resched, pending_interrupt Date: Thu, 25 Jun 2026 07:16:15 -0700 Message-Id: <20260625141633.449487-59-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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: R_F_4FsuE4KszwcpPaB7t9ujGZhRcsLY X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX3jlZsOvttkcj y1dtVWkV1oEmPDIEp1xrHktsaXuUKbSCFDSMFsNFUAwllOX9TKuPQtkfoYA8hq5nh8cWSDFGmc+ eAktVbn3WLQsc8eiPKPokRe9iCp3hhg= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX45Ua4RO9VVuE 056ZISo371KnjPXN6Wu9O3hAC8Q8mPxEuo30kDC5kpzQ+qc0CgAO8tmgLCX1ZLOgxh5y3IAbO30 lbiiimFD35wtRl5JJEbkQrVije20rYdeCCQkJZJ/BVgsHW4vi1Oovb3tX+b82MYSVRs3Y3ktsXQ w5eNCojHADovieeECcADqYYuK+s7aw75o0ZG53th445Oiqhxb2EZUlXhtcm69/tuDWpcG0N0zQQ G2JSVrUgJbOAVVlpppFEFuvkTUqcIA1zk22Cnd4HhdviWNTUvPP69f2eymErRJ44/4V/XRm3oqj XsXbQAEl6C9W0v3wYSg4ZAlI6QbEc1q6+NrQirNOUavA69/aawILyfwH/fIZaGhlB8Eow8hd2gh uWkKXtlTAtpp9DvjGTZjudYQoLdK/AxVuGEs+Q2kQD4l7p1l3ZUtOmtGedt3f2AwKN1GKJR6kYI 2lh5qItvhEqIKSP4UGA== X-Authority-Analysis: v=2.4 cv=b/SCJNGx c=1 sm=1 tr=0 ts=6a3d3fc4 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=c5yFZwH1WPb9xS9x6awA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: R_F_4FsuE4KszwcpPaB7t9ujGZhRcsLY X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 suspectscore=0 phishscore=0 bulkscore=0 adultscore=0 clxscore=1015 spamscore=0 malwarescore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250127 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782399081970158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/op_helper.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 3c253b391e7..9fbcd79c9d4 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1227,6 +1227,15 @@ float64 HELPER(dfmpyhh)(CPUHexagonState *env, float6= 4 RxxV, return RxxV; } =20 +#ifndef CONFIG_USER_ONLY +void HELPER(modify_ssr)(CPUHexagonState *env, uint32_t new, uint32_t old) +{ + BQL_LOCK_GUARD(); + hexagon_modify_ssr(env, new, old); +} +#endif + + /* Histogram instructions */ =20 void HELPER(vhist)(CPUHexagonState *env) @@ -1648,6 +1657,11 @@ static inline QEMU_ALWAYS_INLINE void resched(CPUHex= agonState *env) } } =20 +void HELPER(resched)(CPUHexagonState *env) +{ + resched(env); +} + void HELPER(wait)(CPUHexagonState *env, uint32_t PC) { BQL_LOCK_GUARD(); --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782398979; cv=none; d=zohomail.com; s=zohoarc; b=TTt3dCHFhtoqfVmlN6+KDduLUe+FDtPLPDFgbmrdLjuhF7bItQlJO/4nuE0yMM6wZ5+/FMVeXrZM2D07WVfPaSIsn3Fbq28VqwNbs4yKl7WOwM45C/FEZYRYVxYsljaYfN9yLymkfHKxbufezeSlee0pJFatEUJLsF4MPKP/ZEY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782398979; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=DwmtLwNQ586yD7zGJVwVTp7uqi8JKqPltGIMKxadn6Y=; b=BS5IuAUtwAcT1cgkte4PN54m3rJQ+NZoagzuwV8PKWjde3tZspZZRmH6ECWkYBZIVCSF6pk8+F8ym9Vh0ry6foj//tZDFtsAcA2QJhGOF3bQ8f7Vq23j15HeAozUGfetrBOEq+4IbnqToSUIsCCc4AkM+s+1Qp4bkPepb8Ds2Ks= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782398979214195.11299289113185; Thu, 25 Jun 2026 07:49:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclNq-0002hq-Ll; Thu, 25 Jun 2026 10:48:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclNg-0002gV-QV for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48: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 1wclNe-000091-S4 for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:40 -0400 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9k0tK1398063 for ; Thu, 25 Jun 2026 14:48:37 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0uudjmqb-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:48:37 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30bcbb34e57so2846166eec.1 for ; Thu, 25 Jun 2026 07:48:37 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.48.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:48: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= DwmtLwNQ586yD7zGJVwVTp7uqi8JKqPltGIMKxadn6Y=; b=ih+ZnKQlmXYG6ocq 34DNqXW0adE6Ma3IuP2Sh9aiUgM70vLHt2ULkqiOUPyoowGkl3PY4bbFOanyUWL0 g8qbx/o8o2PGx+x/bSiRi0pFyRRF0WUcCEUVYhtDoAextdbK/JFf9tukAUyV+Rd3 /Elm6X3QNI4MotW/TkW4Zf6XOSAOrGP3GspyjGOLfimA+LPN2s9r5F2bL72Mi55k WH0Ku3JXv9HrO+06zGyNqyy+ZCuQ7xr+Cv4PYibUAqUFx5Fmv5rcT5+97OAsBD+Z VVFTU/z1bl7FrqiGOB2I0BZV1mk5NT7Bs972pmkr7YkvA3YUDX4nd6ayXA/P4hmu htHdJw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398917; x=1783003717; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=DwmtLwNQ586yD7zGJVwVTp7uqi8JKqPltGIMKxadn6Y=; b=cwoFGZEsI9sowWG75YxZxHCzrPQyf8ejfleqO9HoR5lRpdn+ElxBxyNKk8cYGNy14+ 1hN6uYbXpb7udDATIQ4moBy8t62RfczUvNUcpJ4qf7d3/Vb7p6mXC0/44ICKRc0IvSj3 4hSnO23nOwG+Lj4qV8lD35MXqFQtZfJqjLa0GBiSj3NFmm32CYel86MwJcIsvApeBYcG qkvHGklMfRiyIl0xNVUESM7eq23WBhe+u73CjY1IrCDngBNJsm97E85wVpZuVBIkVzyK 069hsMzNZQf+dFqVdBonzCYz/pX/He0VjgtMhvriglE652tSBflCamUI2fxOmsxs/Cxh Wo0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398917; x=1783003717; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=DwmtLwNQ586yD7zGJVwVTp7uqi8JKqPltGIMKxadn6Y=; b=mM/IrXSflsaIWw2FWuhOA0qvXI0GD3V5Ejm7OUDZsphqA5MMr3cWWif/XasOmKJDJ4 5p9yMTPGpK22ZoHTLO44cPln/Qndv5lRk5JoJtLk2VO+tt7xrBobmvoVNLOZXr2EofE+ pClNpN/FN1a+R0hyOnPvwjpZFORPCmsM4JkJaQNd3fLbDUkm3jvmcox59B9Vr5WtmlDX EXdRRaRipAgulf1oTdrWdT7dVcN5X19kKjGJowOKGTI65acVvjYI9aRIAb8VTt/yH3Wi sH7aDM+iVHrcinxaSCZfM2tKI4Q5bA0/7bquIujNoNb89rWz8D5rjcyEipRPDmZ+om+e l4mA== X-Gm-Message-State: AOJu0Yw6yTpims67AoO2iCx4zOuUCBLufKny99kA+GDNTASAe9C3/2Cm oFEBnQh53cTmytX+KlLLzfLgBP5QaIY7xzr9nqtgT2xYTkDm/WbgLeBjaBoUcemsXSaKzQ8nKcU WrB+F/wcvrJIu4tiQhJTNynbpe5/TXO9HttGc5YtHDdrS7WGYjZQ1E+U5EYmSAV/yEw== X-Gm-Gg: AfdE7clWsYakDvUjnmIoDjlAn/n6VXpDM8UOra9SfedDsjHEiIfGICFY92gMzb0xgvS r48cK7cXkPCLBnwtA4n8gzml1C4xt/gB9JdTJ7u+Ejv0Cg+naimMnnLRMT3JF5lbnPpdcsLLoXw jBOti9IEwO6ZyUqQAHbyhCLiYJ37fH4jfd4OkHH3wcBSk+Wka4T50t9ULnDLryhKrS3FeFNg/k4 T5bXAkI+z1hMbtoW9KR19/BxdF7vYvA96G8VdCtIsvokSR/Pvvpqflsd+EhsfDWEX+v4vUzLfOW IleI7anmf56FTCwkjP0xjIVv63et9m/Vpg/Y6XOjyGy6jnznusShWQcVo8g+EYReRvwMwEB6XTt ztKy4yujKUp0/jd8Wujyqb88hlrg/n74y0QmQGzGpYQqT9DJMzd5Oa3RUiE4= X-Received: by 2002:a05:7301:608:b0:304:ab8:f89a with SMTP id 5a478bee46e88-30c84b21483mr3192411eec.1.1782398916821; Thu, 25 Jun 2026 07:48:36 -0700 (PDT) X-Received: by 2002:a05:7301:608:b0:304:ab8:f89a with SMTP id 5a478bee46e88-30c84b21483mr3192384eec.1.1782398916286; Thu, 25 Jun 2026 07:48:36 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 59/76] target/hexagon: Add pkt_ends_tb to translation Date: Thu, 25 Jun 2026 07:16:16 -0700 Message-Id: <20260625141633.449487-60-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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-Info: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX1wS1DYBtSU+I xcibZTfK8mBesBcmLhIrpkKCt29htkDM1cKXuWV+y7VDybHm2IPNoVhlffZnoVMuXT1AKAuXjJP jFpWtNkKSn7SOEv0shkGDvyuR1dazS4= X-Proofpoint-ORIG-GUID: pZCNLezKegmBvntXwbkrQQporH7DbrZt X-Proofpoint-GUID: pZCNLezKegmBvntXwbkrQQporH7DbrZt X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfXzvWINkNQPeeE oLrQmDNtbILFsGATqPi8Mh+loexBmGGelErLUNL94rh3JVMn3hMff2Y1w9HODyQyHx6pu0zNfNm b66sfu+MDet5Faw5RdATAlWL59S0iuc/sou9CxghV50h74oZUQIPT2cZjgmbp/7DeB+Gtik6mmZ L/7Y7Vl62kE77/pyBWS1jZeczGgM7WA4oRPMA2YOp5oT6PS6Oc20KvmuW5SUtIaJUvKWGchJWfo Hy0SfBIvypG0gIX3ZcLTX6O0RyJloNnItN7i2Ng5HMyFR83+eI62BJUb4bx+DCLN7c/42LNqV0r xyBLzNEd0TZnOTTRzsrFZ9s1hekZ492r/SIX1ZinyGe/ifprtcZ9aksG81FXeYGJ7gJCIYA7582 ygHob4xDblQFfza2JZDIIhdPoppRWSfimXHABKuPC2xlgsoDp5hPFTIMkw06xwf/DHSJM1L3w2g iKT5pbafDCR9CsQkqlw== X-Authority-Analysis: v=2.4 cv=HdckiCE8 c=1 sm=1 tr=0 ts=6a3d3fc5 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=PUAfe4L2FItr89aHCx8A:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 impostorscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 suspectscore=0 clxscore=1015 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250127 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=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: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782398981288158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/translate.h | 1 - target/hexagon/translate.c | 102 ++++++++++++++++++++++++++++++++++++- 2 files changed, 100 insertions(+), 3 deletions(-) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index f79bdedd7b6..fea88cb2db7 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -86,7 +86,6 @@ typedef struct DisasContext { TCGv branch_taken; TCGv dczero_addr; bool pcycle_enabled; - bool pkt_ends_tb; uint32_t num_cycles; } DisasContext; =20 diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index ce5bbe92d5d..35e90362880 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -270,6 +270,16 @@ static bool check_for_attrib(Packet *pkt, int attrib) return false; } =20 +static bool check_for_opcode(Packet *pkt, uint16_t opcode) +{ + for (int i =3D 0; i < pkt->num_insns; i++) { + if (pkt->insn[i].opcode =3D=3D opcode) { + return true; + } + } + return false; +} + static bool need_slot_cancelled(Packet *pkt) { /* We only need slot_cancelled for conditional store instructions */ @@ -283,6 +293,90 @@ static bool need_slot_cancelled(Packet *pkt) return false; } =20 +#ifndef CONFIG_USER_ONLY +static bool sreg_write_ends_tb(int reg_num) +{ + return reg_num =3D=3D HEX_SREG_SSR || + reg_num =3D=3D HEX_SREG_STID || + reg_num =3D=3D HEX_SREG_IMASK || + reg_num =3D=3D HEX_SREG_IPENDAD || + reg_num =3D=3D HEX_SREG_BESTWAIT || + reg_num =3D=3D HEX_SREG_SCHEDCFG; +} + +static bool has_sreg_write_ends_tb(Packet const *pkt) +{ + for (int i =3D 0; i < pkt->num_insns; i++) { + Insn const *insn =3D &pkt->insn[i]; + uint16_t opcode =3D insn->opcode; + if (opcode =3D=3D Y2_tfrsrcr) { + /* Write to a single sreg */ + int reg_num =3D insn->regno[0]; + if (sreg_write_ends_tb(reg_num)) { + return true; + } + } else if (opcode =3D=3D Y4_tfrspcp) { + /* Write to a sreg pair */ + int reg_num =3D insn->regno[0]; + if (sreg_write_ends_tb(reg_num)) { + return true; + } + if (sreg_write_ends_tb(reg_num + 1)) { + return true; + } + } + } + return false; +} +#endif + +static bool pkt_ends_tb(Packet *pkt) +{ + if (pkt->pkt_has_cof) { + return true; + } +#ifndef CONFIG_USER_ONLY + /* System mode instructions that end TLB */ + if (check_for_opcode(pkt, Y2_swi) || + check_for_opcode(pkt, Y2_cswi) || + check_for_opcode(pkt, Y2_ciad) || + check_for_opcode(pkt, Y4_siad) || + check_for_opcode(pkt, Y2_wait) || + check_for_opcode(pkt, Y2_resume) || + check_for_opcode(pkt, Y2_iassignw) || + check_for_opcode(pkt, Y2_setimask) || + check_for_opcode(pkt, Y4_nmi) || + check_for_opcode(pkt, Y2_setprio) || + check_for_opcode(pkt, Y2_start) || + check_for_opcode(pkt, Y2_stop) || + check_for_opcode(pkt, Y2_k0lock) || + check_for_opcode(pkt, Y2_k0unlock) || + check_for_opcode(pkt, Y2_tlblock) || + check_for_opcode(pkt, Y2_tlbunlock) || + check_for_opcode(pkt, Y2_break) || + check_for_opcode(pkt, Y2_isync) || + check_for_opcode(pkt, Y2_syncht) || + check_for_opcode(pkt, Y2_tlbp) || + check_for_opcode(pkt, Y2_tlbw) || + check_for_opcode(pkt, Y5_ctlbw) || + check_for_opcode(pkt, Y5_tlbasidi)) { + return true; + } + + /* + * Check for sreg writes that would end the TB + */ + if (check_for_attrib(pkt, A_IMPLICIT_WRITES_SSR)) { + return true; + } + if (has_sreg_write_ends_tb(pkt)) { + return true; + } +#endif + return false; +} + + static bool need_next_PC(DisasContext *ctx) { /* Check for conditional control flow or HW loop end */ @@ -439,7 +533,11 @@ static void analyze_packet(DisasContext *ctx) =20 static void gen_start_packet(DisasContext *ctx) { - target_ulong next_PC =3D ctx->base.pc_next + ctx->pkt.encod_pkt_size_i= n_bytes; + Packet *pkt =3D &ctx->pkt; + target_ulong next_PC =3D (check_for_opcode(pkt, Y2_k0lock) || + check_for_opcode(pkt, Y2_tlblock)) ? + ctx->base.pc_next : + ctx->base.pc_next + pkt->encod_pkt_size_in_= bytes; int i; =20 /* Clear out the disassembly context */ @@ -944,7 +1042,7 @@ static void gen_commit_packet(DisasContext *ctx) ctx->pkt.vhist_insn->generate(ctx); } =20 - if (ctx->pkt.pkt_has_cof) { + if (pkt_ends_tb(&ctx->pkt) || ctx->base.is_jmp =3D=3D DISAS_NORETURN) { gen_end_tb(ctx); } } --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782399107; cv=none; d=zohomail.com; s=zohoarc; b=jAgXpQ3xjp5DSZquJlMggKJVZ4NGj6OtncPCy+hrR6xr66H9V6OuQo7CHrJW4VOEJXBLeQiQi/f6QBXskM8K2JuOVYxZG5oMK11mRnvKKGUzs4V7GwNebmge+CQmI+lL8ehqkn7tsRalN74NJhJ015hhgxxmnnboo3SzFD9XKJU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782399107; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Yp87kcoinbDBfUm50phdJD1Q0SWWmLVPCkRoyO7PWUc=; b=A+66bvA0mQ6OaX9SyiGMO3QW2ILczA481YVjcaURhrgE/JaQSBToJG/Cmr/2cQbIPsxFmmsk+836Wio1kfLNYaZQhBwAxMvPhEhVqaAS37oqzGgfD2pXN882Zs/ry5MV9wDdHdQAvJEcBJR6hAnBL4wh+R/b042wVlxDHSuy47o= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782399107172758.0666704481902; Thu, 25 Jun 2026 07:51:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclNt-0002hw-FZ; Thu, 25 Jun 2026 10:48:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclNj-0002gg-De for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:44 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclNg-00009K-Gk for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:42 -0400 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9jxBf1397995 for ; Thu, 25 Jun 2026 14:48:39 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0uudjmqg-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:48:39 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c17bc96afso5088508eec.0 for ; Thu, 25 Jun 2026 07:48:39 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.48.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:48:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= Yp87kcoinbDBfUm50phdJD1Q0SWWmLVPCkRoyO7PWUc=; b=QCVmBAdK6kBogdC7 CLjvbC2yHf+KvQHn/7k8xg7Fw8g6QrxPZZPZIqWf1BlcX1tYUp2wnecjWxMq9sb1 zvzm730I6s+EPaqAt1YESI/hVmoF3YjieD6nsFO1QUJOr9qwryW0JB+qei/HA2OQ iUXJ19p83Yb+1wTe1iY0HHVsVyDS8XgZR2ZmFdw7yfbvupoatRoSJEpzAlV8vRL4 00sKmUGT0mzafENJRQOJLw/rhwItIfFNAJKk7MdPDHEaCpxPoEQIwUm69JiQdYOW QRz5eMIGT5rdsKvbehDRWl8pZd5h8mnYBW2jZRweYSDPEy3vki7qoJf5jD8DrWHg lYEYsw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398918; x=1783003718; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Yp87kcoinbDBfUm50phdJD1Q0SWWmLVPCkRoyO7PWUc=; b=OijVD99y7vKLPYT7dWLniTbPcp8WgvGCHQjVBu60BpsFjVsjeYoG5XaMztsP/ZCvVR N9KDdbl7OhvRHTNc9nsh7kLVm6+atEjV3SqKl8PlT3kpsv+3oLIoY2NZKDnrJHfj99Af i6Q03lRxgH4BRIvaSlYNpjofCGqDLgsISjv89877bVyB0k10LdlOs8iOQuLHTIu6pwGm kbxPnsEWgnNxmqEH4Kpudy6pypkskHszuSQ/r1WEguUJeDwwaeH3vDJYzzsoVFqRlRtW 8tT3fV8S+JAXds6H3lwYzwvH5bNq9YHDuW1anSpzuhGJDwa3N0pD+SgYmlDObfU/JMbF mTPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398918; x=1783003718; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Yp87kcoinbDBfUm50phdJD1Q0SWWmLVPCkRoyO7PWUc=; b=ekac37NqMvsPvPHPhJYHvQy3JtDMz3Ucs/Wa9K09p4fNdxFry8WtCN4BL9FPPoQkA7 glKFEBui1RWB+7L1DKwWTew7lH9ChuFhKFPNJjX+C5QbhNw2YMZ498WxIDn7AJbdU25q 7fdpNqZ7ExPx+hFL4QKjwAtmxPn5U2UVXUYlMRc5Nbyvp6txQdrRm/MljWFOq6VAhmKg FvlcwhnH6+cg2mc3s5Art/rktcFRVO5loFRkSK6dXjgIH2dP8ZXh9BHAEUY/PHDybsa0 RBVYG3fcg/glwvf9I1gD+PdiLiOjvepXPh/oOTPFNUgRrF1wzd6d9Bakg228tx790gyu YzKQ== X-Gm-Message-State: AOJu0YxsHUp1r98hP5ZSn/0kS6n/9kDFnbBFa+ceUuWdi/CB2vQlkYoS vO85Es7WIic40egriTuL6bZZmQUjZPf9AMTja43DrXqtbKnPtEwQ25xdXebRMFfOtn22l/IQoxX hQ6MwCS+JvOUOGv0a8e+jKkRYx4QF4e7m1NI110o0bOz/GjyMGTFS2096UMHkYfb6dA== X-Gm-Gg: AfdE7cmpCbsyqzn4+e3fmiCBj3TlZIsQ29zL2VZ2l78XPjBsx7fsjSsgViWvULttGDU lEZIo8Bqz1WPGmf8SpFptijRtJXEggIFGjroBIBhssecRr156rMn93bAqc9oI9RV7roNUKLlEIt 1Wxtmc7ebXuN3sq4B0vqM4cH7OwoBmYd+If1FFWNmLZ7nBUWacZFuFe7A/jzDOz0fzpfWqVkKo5 1W+ajeuChKke9IgDPdIhxokpTyxw7leA6AB6Ego5k8hIVJuSTm7Ef4EI6WgGFyBjyh82OXoCBhS zVhPr+Xopp1uGPm7w1ixihzEM1Zk89r1XxEFjL/mYSYoxkcn2YHxAEgpfSJ3DlBpUZq8PH5z6RT i+Bm94Bn7SzlzSzJmiEX4JYw1AXylRY9bZ6FIF+eB0ZkBXXCsujK2/NYl44g= X-Received: by 2002:a05:7300:8b15:b0:304:e72a:d4d9 with SMTP id 5a478bee46e88-30c84d0d612mr3182353eec.19.1782398918279; Thu, 25 Jun 2026 07:48:38 -0700 (PDT) X-Received: by 2002:a05:7300:8b15:b0:304:e72a:d4d9 with SMTP id 5a478bee46e88-30c84d0d612mr3182315eec.19.1782398917734; Thu, 25 Jun 2026 07:48:37 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Pierrick Bouvier Subject: [PULL v3 60/76] target/hexagon: Add next_PC, {s,g}reg writes Date: Thu, 25 Jun 2026 07:16:17 -0700 Message-Id: <20260625141633.449487-61-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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-Info: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfXwdm9wejgFT0z UB7NGjbLJY44g50wjr7+3ykUXwkmVa3djh1kt7wDEXyTG3mruT2RQIhl1jxO2g28lG3ibbIcWdo tyUQPgRgKJDr8d4IbWAYHqP0xoJFw8E= X-Proofpoint-ORIG-GUID: 9zhPD_79uigJM1Oyn_bhzNjxBL3HvEAz X-Proofpoint-GUID: 9zhPD_79uigJM1Oyn_bhzNjxBL3HvEAz X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX5MoKH+uIcHdB m5JyceBZnrsNf8vnRprMcKK6zfhFYCAoUZxvQqA1OAFnr47tK1ZJTFr8Nb5le4sg/b6ZD7zcWLe OAk9mWffqE3B1tWs+Nut2UrbH6cRltwbwQzM4wC+0jVBc34JSFn4S3Y8+JFM3I4RtC8sDYZ7sne sQxK83iPBvKiSCTs1YSoqRt9d51ZNWLAt+K8Yyv83SJfuRff0C0FZ6wWl2eqM/AbJKyUd/AKSRF iDzGnACtvVFpb/mNxORVq6jN4EBxLElIIyaDQAakwV8hp5hFgpA+rTpNzLE/ihxmFTKpdfRd+lX h/8o8YtSslxhOyGdUNSEu54irGjhFXzHEEH+NCKqb5gKgwdHscxb96mMSa4K1pCeIa/3aHdS+vD IcSG4BzUykA5KbZJzbsPndxGynjcZYXrOJnd8Qkod5ruedry2n+JCwpQcACcKVDYV4p75PPjc0P +P2fNdEqEY5UK3Otb2Q== X-Authority-Analysis: v=2.4 cv=HdckiCE8 c=1 sm=1 tr=0 ts=6a3d3fc7 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=fJQQT6FIS2xgNqPK2MMA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 impostorscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 suspectscore=0 clxscore=1015 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250127 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=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: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782399108224158500 From: Brian Cain Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- target/hexagon/translate.h | 2 +- target/hexagon/translate.c | 77 ++++++++++++++++++++++++++++++++++++-- 2 files changed, 74 insertions(+), 5 deletions(-) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index fea88cb2db7..0a7f37d5842 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -46,7 +46,7 @@ typedef struct DisasContext { int greg_log_idx; int sreg_log[SREG_WRITES_MAX]; int sreg_log_idx; - TCGv_i32 t_sreg_new_value[NUM_SREGS]; + TCGv_i32 t_sreg_new_value[HEX_SREG_GLB_START]; TCGv_i32 greg_new_value[NUM_GREGS]; #endif int preg_log[PRED_WRITES_MAX]; diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index 35e90362880..f4a353958ff 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -545,6 +545,10 @@ static void gen_start_packet(DisasContext *ctx) ctx->reg_log_idx =3D 0; bitmap_zero(ctx->regs_written, TOTAL_PER_THREAD_REGS); bitmap_zero(ctx->predicated_regs, TOTAL_PER_THREAD_REGS); +#ifndef CONFIG_USER_ONLY + ctx->greg_log_idx =3D 0; + ctx->sreg_log_idx =3D 0; +#endif ctx->preg_log_idx =3D 0; bitmap_zero(ctx->pregs_written, NUM_PREGS); ctx->future_vregs_idx =3D 0; @@ -577,6 +581,25 @@ static void gen_start_packet(DisasContext *ctx) * gen phase, so clear it again. */ bitmap_zero(ctx->pregs_written, NUM_PREGS); +#ifndef CONFIG_USER_ONLY + for (i =3D 0; i < HEX_SREG_GLB_START; i++) { + ctx->t_sreg_new_value[i] =3D NULL; + } + for (i =3D 0; i < ctx->sreg_log_idx; i++) { + int reg_num =3D ctx->sreg_log[i]; + if (reg_num < HEX_SREG_GLB_START && + (ctx->need_commit || reg_num =3D=3D HEX_SREG_SSR)) { + ctx->t_sreg_new_value[reg_num] =3D tcg_temp_new(); + } + } + for (i =3D 0; i < NUM_GREGS; i++) { + ctx->greg_new_value[i] =3D NULL; + } + for (i =3D 0; i < ctx->greg_log_idx; i++) { + int reg_num =3D ctx->greg_log[i]; + ctx->greg_new_value[reg_num] =3D tcg_temp_new(); + } +#endif =20 /* Initialize the runtime state for packet semantics */ if (need_slot_cancelled(&ctx->pkt)) { @@ -734,6 +757,50 @@ static void gen_reg_writes(DisasContext *ctx) } } =20 +#ifndef CONFIG_USER_ONLY +static void gen_greg_writes(DisasContext *ctx) +{ + int i; + + for (i =3D 0; i < ctx->greg_log_idx; i++) { + int reg_num =3D ctx->greg_log[i]; + + tcg_gen_mov_tl(hex_greg[reg_num], ctx->greg_new_value[reg_num]); + } +} + + +static void gen_sreg_writes(DisasContext *ctx) +{ + int i; + + TCGv_i32 old_reg =3D tcg_temp_new_i32(); + for (i =3D 0; i < ctx->sreg_log_idx; i++) { + int reg_num =3D ctx->sreg_log[i]; + + if (reg_num =3D=3D HEX_SREG_SSR) { + tcg_gen_mov_tl(old_reg, hex_t_sreg[reg_num]); + tcg_gen_mov_tl(hex_t_sreg[reg_num], ctx->t_sreg_new_value[reg_= num]); + gen_helper_modify_ssr(tcg_env, ctx->t_sreg_new_value[reg_num], + old_reg); + } else if ((reg_num =3D=3D HEX_SREG_STID) || + (reg_num =3D=3D HEX_SREG_IMASK) || + (reg_num =3D=3D HEX_SREG_IPENDAD)) { + if (ctx->need_commit && reg_num < HEX_SREG_GLB_START) { + tcg_gen_mov_tl(hex_t_sreg[reg_num], + ctx->t_sreg_new_value[reg_num]); + } + gen_helper_pending_interrupt(tcg_env); + } else if ((reg_num =3D=3D HEX_SREG_BESTWAIT) || + (reg_num =3D=3D HEX_SREG_SCHEDCFG)) { + gen_helper_resched(tcg_env); + } else if (ctx->need_commit && reg_num < HEX_SREG_GLB_START) { + tcg_gen_mov_tl(hex_t_sreg[reg_num], ctx->t_sreg_new_value[reg_= num]); + } + } +} +#endif + static void gen_pred_writes(DisasContext *ctx) { /* Early exit if not needed or the log is empty */ @@ -1030,6 +1097,10 @@ static void gen_commit_packet(DisasContext *ctx) process_store_log(ctx); =20 gen_reg_writes(ctx); +#ifndef CONFIG_USER_ONLY + gen_greg_writes(ctx); + gen_sreg_writes(ctx); +#endif gen_pred_writes(ctx); if (ctx->pkt.pkt_has_hvx) { gen_commit_hvx(ctx); @@ -1242,6 +1313,8 @@ void hexagon_translate_init(void) hex_llsc_val_i64 =3D tcg_global_mem_new_i64(tcg_env, offsetof(CPUHexagonState, llsc_val_i64), "llsc_val_i64"); #ifndef CONFIG_USER_ONLY + hex_cause_code =3D tcg_global_mem_new_i32(tcg_env, + offsetof(CPUHexagonState, cause_code), "cause_code"); hex_cycle_count =3D tcg_global_mem_new_i64(tcg_env, offsetof(CPUHexagonState, t_cycle_count), "t_cycle_count"); #endif @@ -1282,8 +1355,4 @@ void hexagon_translate_init(void) offsetof(CPUHexagonState, vstore_pending[i]), vstore_pending_names[i]); } -#ifndef CONFIG_USER_ONLY - hex_cause_code =3D tcg_global_mem_new(tcg_env, - offsetof(CPUHexagonState, cause_code), "cause_code"); -#endif } --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782398961; cv=none; d=zohomail.com; s=zohoarc; b=lyiIfPtsTvzXdeD0FZxZxgilsx3f0nNWyyv5nk7kTMoB5rQUMva+jzePwVhRRIfBraB/q4DBA8S5ZL/k+4jDvgN/3ClzEF03NUKoeqVwJAGPQ7zN2fWQ4RN3o6M5rg9ppFY7P6vo4rWwU/NepvG1qTWBr2AXf+cpEQ74oiHWK0g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782398961; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=WSxBtQ42d1TB+r/kba+VA2NNeVAZKwGKrYR4H+pwBnA=; b=fFiP1MvK9mDF2b8Oh62xKDmwlX6pvMfRKOhFoIfZvYSl2woHb2aOXD0dBVLAUaWyR0gsx6LMC6cpRZrxkAYOU/HxoW8A/ncAjrcE8HpIOSLGGkaPa95E7sbsIzOVaFanw/MZy1pJ011a7tg+kVja1+UmiOc3kvM6o/5W9sUt4h4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782398961622153.3780810824161; Thu, 25 Jun 2026 07:49:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclO4-0002sU-TQ; Thu, 25 Jun 2026 10:49:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclNu-0002iX-NP for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:55 -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 1wclNs-00009i-FB for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:54 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9js2S2009329 for ; Thu, 25 Jun 2026 14:48:41 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0uhmjqvg-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:48:40 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30c8a940e76so783121eec.1 for ; Thu, 25 Jun 2026 07:48:40 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.48.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:48: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= WSxBtQ42d1TB+r/kba+VA2NNeVAZKwGKrYR4H+pwBnA=; b=ZW3Ar85rq0IdyGtQ eS7V3NES+CUr3maRKslPKZLETcRtK06PGMQZln2G7vTaqu8Ru6D3uj5ekK4LIOMp prShdJRad/3nIBsUeVfOAgPj9RUAq5LiLJZRMkjR+CPYdrQ0YuhlR6Kcupt5z2YF 7HvLXw/9x1TXds1zA9Kli3/l28ugG/tDoXhHylNoEni32gSG/aGx1eOl+jBhhmLj MOyCP42yvQ2VyIBNZ/F43J5Wy4+YzVnpDsj8Affo618SH8rPQ87P2nsTBBTJ5Mc+ 1OHNDt4VMupN/Kpd+maLKhpqzN3XgjxDSWDwllPE/kAQDJVWeVolYQE4vJLsapiD 6t2Rww== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398920; x=1783003720; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=WSxBtQ42d1TB+r/kba+VA2NNeVAZKwGKrYR4H+pwBnA=; b=FJ3f+r7QCYcX3lH3HwKKcqGiDAg43bsctvxZ0QT9jAUAtIn8hIabrvpJGTS1Zofvo+ HB4M6xwKX6OL6UxxQAmUPmW3P99TRIm6PVrybakPmhd+qlHW37WzhsZwb/Sp3ShJe9Ea T0xovyC0g9jmP01iw6bLuOK3CYP8euqJaG/WiWYTYC9pK0zmMG+t9v7rFz4mAhzgjIDc sCPp4LnVSmAtidFO1e2TdKsEHMCeCkhZgbILI5ti0/2y+KSpVe38WiclxjHozNKftY8C t67WLIg6texTer6H+UwgJNNJ6+ByV8pdEWnEEv5dRf9rXkWzVAC+lw7uCNGNc5i7Ripc cQJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398920; x=1783003720; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=WSxBtQ42d1TB+r/kba+VA2NNeVAZKwGKrYR4H+pwBnA=; b=ZtntCAUmUpp9Sj68iABD+dQdpvo8azvmUidG5IN2nFVG2jITXy0Q+/BYcE6Xa9ZtYo jrSmLCedg181RFWrHWaPzEZJQlqCSZ/LlZ43Y8Ca7ZytedvkyEvJFoQvz5dHOGSmXeBa cCWr3jnpyttWqNkavC2kmokP2sID1pgX+nUg/eqZIFt6+ZKQa13zMIEJs3nZyF2KtHA1 PCorcL19L2Y7nWbJCF3P5ykiMnQGWaxUgmrhkkL0ta44cTODW45IIIT6L0TxnKJ04uW7 Po4SkWfzO5zlMUUw7mbpklK2FP26LlLtC8+Ds9E9iExKlzvW6soxY74MBbo0OkQUO9RU T5/w== X-Gm-Message-State: AOJu0YzQDtTiu54xJfOt2Lv1D69Dh0uxwdF/+V6Hfeh+vLe3q2ifu7lp gdcgO2MGzhgBTWAUksvanA98c6k9kQjvfxu9I/T7uGeteLtbNn0h28hu6C5eD8NHywvniY30ijz 9eRMU/Vua/Cjj+K7/dDvN3ORAM8hqLaoBZZvjMXJjBKVJy7NIoPi+k99mu67ppD0MEg== X-Gm-Gg: AfdE7clMl6W4j7yUjGDohHHEu0JJVgrSW+Vu8oSV/PLJYe/smiWU86U/P7F4GhutDNn SdbVCA1QHybHsaTpA9UTxXPsoe5IZTqsPlIxNtSSvZ1Wbt0IRNdd/ir+4k9dG5bh221oBLnsFAo eNZHMNjohnQwctsUuhxFvkM28oKtsc52ZCYY5ih+lMOQq05173uDNThA/wpWD+AMmnEcnftJMrE TzdUP1FyvwXYOoPm8E5te41VVM+kldpIKyHQp1uw9S9a/n0cuunNZ4XqhfWicsGy97TdSGzjMSA 9aoo293Js62o7ls53a9WonFiXXcTMCDhwzzNKzMOdAynCr2AZMq7EW1PQ99VS0Vu42SZJWfzT2I OsOGRs73jY1mKprcHks1D7IdelhVmmLZMaAfJD1ENZT/XolyWoKIyqy/xev0= X-Received: by 2002:a05:7301:a88:b0:304:4f23:4466 with SMTP id 5a478bee46e88-30c84be5889mr3191575eec.15.1782398919975; Thu, 25 Jun 2026 07:48:39 -0700 (PDT) X-Received: by 2002:a05:7301:a88:b0:304:4f23:4466 with SMTP id 5a478bee46e88-30c84be5889mr3191548eec.15.1782398919363; Thu, 25 Jun 2026 07:48:39 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 61/76] target/hexagon: Add implicit sysreg writes Date: Thu, 25 Jun 2026 07:16:18 -0700 Message-Id: <20260625141633.449487-62-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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=cqerVV4i c=1 sm=1 tr=0 ts=6a3d3fc8 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=ySlkKLH3HnL0fBWr2zQA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX8oDi4psKfx06 onM7yo3jBFOzXDJgbTXFVLPavLphwOCgwLr+C3jQA7bbskYzJh1Y54g2qf+sp+kTG/mTJLegbR4 vfiYhG/CuUNaCYWszm/F1v9AnRLY6+lXXyWonxrr/XvZnHMUXHNOceTTF9jPDSpI/Gt2ai4nnMv 2NKuQuHvag0+5mJz108idiRJsDxLlc2X/7TzQIXQPEXS/aY7No3rrUvaY8hhYr9j7cIgec+C+ND EfC92LsxSQGu+1j+xc9RpFbzpIT4UOxhTVg5r8oPycFpAqXxoOycAY6idna/V0WL7qfMd2+xQMc 5XOi/MGHejyFsYZ1lhVC8/6ZE6W7m8xIZ98L+9Wqopzp4Qu/NOy2Ju2HUW8+cEXP+KLrKwwvESK 6OX25HCMR+amc7itqMyysxgY138vLmGoImWH+tDaqluBflO8jKvrO121dvge73RcSKnawEweb/X tMinT2LSppB9D78fQMQ== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX8Akm75POmxlG 1LlnMbTsVOV15D7cUoU8HOl1eiRsKIs/Q2UjReus+oiZvM65znHB5hHWRd9bHnssEBIALDi8K+j Rg1qXStmS1xnK61bGOAwAz+ulx3O1h8= X-Proofpoint-GUID: V53O0Qjk4y-o2UguRNtq9-CnWV_ppyTI X-Proofpoint-ORIG-GUID: V53O0Qjk4y-o2UguRNtq9-CnWV_ppyTI X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 clxscore=1015 bulkscore=0 phishscore=0 priorityscore=1501 malwarescore=0 suspectscore=0 impostorscore=0 spamscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250127 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782398963422158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/translate.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index f4a353958ff..f5450ced7de 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -424,6 +424,16 @@ static void mark_implicit_usr_write(DisasContext *ctx,= int attrib) } } =20 +#ifndef CONFIG_USER_ONLY +static void mark_implicit_sreg_write(DisasContext *ctx, int attrib, int sn= um) +{ + uint16_t opcode =3D ctx->insn->opcode; + if (GET_ATTRIB(opcode, attrib)) { + ctx_log_sreg_write(ctx, snum); + } +} +#endif + static void mark_implicit_reg_writes(DisasContext *ctx) { mark_implicit_reg_write(ctx, A_IMPLICIT_WRITES_FP, HEX_REG_FP); @@ -436,6 +446,12 @@ static void mark_implicit_reg_writes(DisasContext *ctx) =20 mark_implicit_usr_write(ctx, A_IMPLICIT_WRITES_USR); mark_implicit_usr_write(ctx, A_FPOP); + +#ifndef CONFIG_USER_ONLY + mark_implicit_sreg_write(ctx, A_IMPLICIT_WRITES_SGP0, HEX_SREG_SGP0); + mark_implicit_sreg_write(ctx, A_IMPLICIT_WRITES_SGP1, HEX_SREG_SGP1); + mark_implicit_sreg_write(ctx, A_IMPLICIT_WRITES_SSR, HEX_SREG_SSR); +#endif } =20 static void mark_implicit_pred_write(DisasContext *ctx, int attrib, int pn= um) --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782399017; cv=none; d=zohomail.com; s=zohoarc; b=IKMo9BqUOb/1CQqokzTGpM3x7QvRqNv11cfXrAifz5oDscvupnaHIMLzvyjjT24KDKT9Yf1sj6Q45/A4s9UGph+nXCN0UEj2ABsgPW5NraUodBdWo3JA2uujh1FLbaPKSSx0xN0+KNf84aXL2FLmc9RGEKbGFc5vX/HjdVrcLjY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782399017; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=KQKd6wa9CP0Atn8b+uEkUcIK7E1HAQywunGjG1NtcJk=; b=ko4q009SVlyE3yaaueNXhZi+kKZIVNGvjpF7ShsRMzYBJOzI+e/S8c9+pnxde/LVYI5dJLYXrrw3v0VZos76oEtptC30L9ERmAfcwGyYSErPqVPaNbwIjjroqR73nurmkBxKTgpB9w2ThT6CD3UvvqPB1L+xcGreJhIdHdZbQFU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782399017088947.4393240519458; Thu, 25 Jun 2026 07:50:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclO7-00032B-K9; Thu, 25 Jun 2026 10:49:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclNv-0002iY-4B for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:55 -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 1wclNt-00009v-Ja for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:54 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9juBt1753995 for ; Thu, 25 Jun 2026 14:48:42 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0w0q2c0r-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:48:42 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c8d355dbcso1551537eec.1 for ; Thu, 25 Jun 2026 07:48:42 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.48.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:48:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= KQKd6wa9CP0Atn8b+uEkUcIK7E1HAQywunGjG1NtcJk=; b=l1YxA+Ivm+kwMI38 8wveSIFcPQEs5cAa7BVX4GhGUi7XBKHrUEhWtbYV1c7N7dM2uUdYcvVRsWcZITOn frt4WtVz0JNGmsPc9JguyM/deTbTN8n7tWb66hzbxjPMlGwn9EPbyA/M5/RzgFu3 S/AkHuW1WTRw3wQEm6PcMNcQYYFEvsc/PBNDe1dSSSvPeLwFP0xmVUY0TyuSJ3VB YM/z2+RukMObobRNYpohtbROFI7mQISJ+GLM+dugAmIJKujDK78LwO5/Yj43qZMH 3P5gwFYV9wPHyTu/hw4pUbP/au3q3ldVJmH9Kqu7+fe3GCcfoWAnKgP+OUVag+Is JyuuKQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398921; x=1783003721; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=KQKd6wa9CP0Atn8b+uEkUcIK7E1HAQywunGjG1NtcJk=; b=EqSIO3IRVY0eET9bIpUPlKuJmoyuAUVC06t5trKuwT/xQ4qs39vjR0a+BK3GGdlUjj 8gAOESQWkK0mS3/GWelSiI5NwkmDpN2E0SOxnhGuMBtoEl9BtXNPav6QjP8UGlFAe4H0 HVHObBAITflNl2/h9zF3JgnVIjrr+yq7EfnAtozycSHdgEMP47BBjOj3SIq7I+WxH3Dv OljfZ6YLtKunSLM9cIxZ9r/4mlc2iyN81faQ3p50p3uXSA6rguWIn8RHNuPt8qVzWp/M yflGMOtbk4JVnwxQpl5AtPUG3Rr7tjBTewMkCxjoqjPa8ubIzQKS/5+MiH6+ydjdd1Dc hNKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398921; x=1783003721; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=KQKd6wa9CP0Atn8b+uEkUcIK7E1HAQywunGjG1NtcJk=; b=UChazRa+YeSFzWXSTLLduXqI3WpGZZFtX3up0MQ7jYWDBK1Ayy8vQxtJTItbK7WqMB gv5biekk13V0jlN5UeNj4p0tCeJx38OtnNH6O9/eHHN67ZPZII0C3jyBmH41vAix66PN 1LCjzoU8KN0NNlT/c4e3P81smdF7jKS+8ZLspAeC+BTK7r4VqgZDfjCCJuMo37LG7unP UfNK8Fz+LkNoJU65jtjLxFswjKZt8Z7qrdkdftep0SQ8VnKq5BBkPgpx6e3PERl/uOF/ kmmkAL1jlzmCHwwoRRYLj4TKEa0TZIp1FmpK8NIGhoeqxMee0qA0vW3H9luydITOZzbt awgg== X-Gm-Message-State: AOJu0YzMx13vNcRTBcUGSWuEw+mztCR5l+hhMYuHE2Rjw9wfga8c1nSO E/TVtJWIJfZW8IMCXSwwB8mvMuRvvGr3jXNuUvIo2yLs5mtnDJdOXlf2y0QBth1qbY1Y34AxSwU 7Sdwb2su8GA+g8pbjwYviWFU2otONidkAG1TQJGDDWKCBFaguE+dZAarSLMz8josBrg== X-Gm-Gg: AfdE7clKEH6VziJJB8o47+5ItuEnhTpxlbvw7BMOxAXeIPZmS/QM6AMzZhZVuk4k/Zv tSdzH3GN9KIUKurUk0fPJzx5OlrCUWEYvIF7UrbYPZ8rJbunigqL05Qh6Jzlk7QK0YIK0J2pR0l UAkR4ILFYJX3I08qGU0f3/hDepn9FoJnjnpBHBpPEjiSpXCD23P38HnoFQ8tnCAXsrPaod+8k9q XUcZO1Bri3GU1ITMAwAbRqp1MoQdacpnHBGqokrj20ILWTYLfgj2rK/8H+GUl3JN01wxo8BP7Zf V9XguNNYzvhmdaJavm5H++JkxUsY0T0/uVxAdk3HzEHdTBVQWQblAnk3MsrdD4rPw6Nph/ejSSC 8BNHd5tvcB7F91rgpVefSDCnF2mtnMIB+XPYWrCu9Mg1b9M8O16bPxJeJ+T0= X-Received: by 2002:a05:7300:b586:b0:304:18be:55a5 with SMTP id 5a478bee46e88-30c84d15d55mr3129508eec.22.1782398921389; Thu, 25 Jun 2026 07:48:41 -0700 (PDT) X-Received: by 2002:a05:7300:b586:b0:304:18be:55a5 with SMTP id 5a478bee46e88-30c84d15d55mr3129461eec.22.1782398920702; Thu, 25 Jun 2026 07:48:40 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 62/76] target/hexagon: Define system, guest reg names Date: Thu, 25 Jun 2026 07:16:19 -0700 Message-Id: <20260625141633.449487-63-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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: 9-3yGPxdQKBJt8iYCa7kYel4QTshUJS0 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX/eZcvkn+QaWl W/zMlG9ignV/U47XsMf1bE633WJsQ+j9eyQGTVpqnlf6vQzJcKLaraq46ip5n9zHw/0x0x0LLTm h035s7ZpoF+KQrqk/9cnegCckET7vtA= X-Proofpoint-GUID: 9-3yGPxdQKBJt8iYCa7kYel4QTshUJS0 X-Authority-Analysis: v=2.4 cv=R6Ez39RX c=1 sm=1 tr=0 ts=6a3d3fca cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=Y3CEZXcnQwYgoNz55sMA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfXzjEHLginhK5x DbjEAoDAed8t8Z5cj5N89j04fko4pC5m+9/URdAy9bnIgRzJ0ydEcX3P5SYwN1HyjZ6bl980YDe TdsUsLT5q5tbYEn/Mok03XXOSTdF9+Cc+HqA5unLGXX6KIxyTt6+1iZt4Ft554jZPUs04wyDDLm tY7V+8uQwmUy+dSgD0rVooJmpex1AwNdOyu1DlLwjDGyQoJ9wgOU33rlZqkSnN6su85wdRHhcm2 wStBEaVCCDuggYLXAWgXE7Vqlb1Nq/Td5vKt6V2HTvhkzJblsFG+gZHMkZBBWTFrkkYizMBCtBT WdblpevrkUKQnBBVMXTKO1/ROCxuiMFMFTuDwE8XzMSvErYUDBsZF8oCpYvhnS2GxHbve5m230g qhqeRhjZpEDgMZA2vndtD0etVngryOSGsqcQXOOxZYrBsxgIVSy+xzzKsXsCQeMLuPcmk1B0P4N S2ovgSuRXqNOY36q9+Q== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 clxscore=1015 malwarescore=0 priorityscore=1501 adultscore=0 suspectscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250127 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782399017508158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/internal.h | 4 ++++ target/hexagon/cpu.c | 29 +++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/target/hexagon/internal.h b/target/hexagon/internal.h index 4338914efb5..00b37aea7af 100644 --- a/target/hexagon/internal.h +++ b/target/hexagon/internal.h @@ -30,6 +30,10 @@ void hexagon_debug_qreg(CPUHexagonState *env, int regnum= ); void hexagon_debug(CPUHexagonState *env); =20 extern const char * const hexagon_regnames[TOTAL_PER_THREAD_REGS]; +#ifndef CONFIG_USER_ONLY +extern const char * const hexagon_sregnames[]; +extern const char * const hexagon_gregnames[]; +#endif =20 void G_NORETURN do_raise_exception(CPUHexagonState *env, uint32_t exception, diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 3af90e30b0f..b35caaecfae 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -86,6 +86,35 @@ const char * const hexagon_regnames[TOTAL_PER_THREAD_REG= S] =3D { "c24", "c25", "c26", "c27", "c28", "c29", "c30", "c31", }; =20 +#ifndef CONFIG_USER_ONLY +const char * const hexagon_sregnames[] =3D { + "sgp0", "sgp1", "stid", "elr", "badva0", + "badva1", "ssr", "ccr", "htid", "badva", + "imask", "gevb", "vwctrl", "s13", "s14", + "s15", "evb", "modectl", "syscfg", "segment", + "ipendad", "vid", "vid1", "bestwait", "s24", + "schedcfg", "s26", "cfgbase", "diag", "rev", + "pcyclelo", "pcyclehi", "isdbst", "isdbcfg0", "isdbcfg1", + "livelock", "brkptpc0", "brkptcfg0", "brkptpc1", "brkptcfg1", + "isdbmbxin", "isdbmbxout", "isdben", "isdbgpr", "pmucnt4", + "pmucnt5", "pmucnt6", "pmucnt7", "pmucnt0", "pmucnt1", + "pmucnt2", "pmucnt3", "pmuevtcfg", "pmustid0", "pmuevtcfg1", + "pmustid1", "timerlo", "timerhi", "pmucfg", "s59", + "s60", "s61", "s62", "s63", +}; + +G_STATIC_ASSERT(NUM_SREGS =3D=3D ARRAY_SIZE(hexagon_sregnames)); + +const char * const hexagon_gregnames[] =3D { + "gelr", "gsr", "gosp", "gbadva", "gcommit1t", + "gcommit2t", "gcommit3t", "gcommit4t", "gcommit5t", "gcommit6t", + "gpcycle1t", "gpcycle2t", "gpcycle3t", "gpcycle4t", "gpcycle5t", + "gpcycle6t", "gpmucnt4", "gpmucnt5", "gpmucnt6", "gpmucnt7", + "gcommit7t", "gcommit8t", "gpcycle7t", "gpcycle8t", "gpcyclelo", + "gpcyclehi", "gpmucnt0", "gpmucnt1", "gpmucnt2", "gpmucnt3", + "g30", "g31", +}; +#endif /* * One of the main debugging techniques is to use "-d cpu" and compare aga= inst * LLDB output when single stepping. However, the target and qemu put the --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782399051; cv=none; d=zohomail.com; s=zohoarc; b=Vd5NTjXfqSGxJsKCNWh7HXnYYtvW30DRKeR1CLtyRMkrsr1pDpNDZwReJhohcUsIYh9nO1fPE/8s6elV6Ed6Prhdl/JlUmUD0pI2MmSEcntsZZgp1PCHuiQtLNe8SLXT9mR31uAAuKDlSB+OJBC3mBI5YkV4keACy5mZg5byLmQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782399051; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=nqsoCKwlR/1AtxhbSkaDMpXnd9wjaz9i7dlB1dgLGBU=; b=FSI+LoBXrN4WUKvQhKinHdQGIvpDI3kQewQ6pQPMTPhQpC+6G1/y8oSkcmjomzRqM7yI85ddWhqPj7PN8Yl0N46B/n4yURIToRFIkE1MjZNh6a34vWs1AelaY+ZpihS2+cAfOIHHmj5RqIxA5qd96BULG3XqIuKwRaF4YhWk1zk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782399051011113.81486720915814; Thu, 25 Jun 2026 07:50:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclO8-00038R-CA; Thu, 25 Jun 2026 10:49:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclNx-0002j0-F3 for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:49:00 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclNv-0000AT-MH for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:57 -0400 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9kBeJ2048300 for ; Thu, 25 Jun 2026 14:48:44 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0uyqjm04-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:48:43 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30c011c7cb9so7003673eec.1 for ; Thu, 25 Jun 2026 07:48:43 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.48.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:48:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= nqsoCKwlR/1AtxhbSkaDMpXnd9wjaz9i7dlB1dgLGBU=; b=ob4bzZshc57QPtYq 8IuSuejustdtaZiQYUkay2Z3DxbBcjlu+N32sWI9UVQ+ZctziPUXNJxq4xbJw5zo /HBASU6TzhZcQH4RaN9LNyQwl1Gdz3tTwF5i0RjnkMhwH6+MH3PXYO/R8O6na9Vj mJYYuzaMY0zLSgqxcb93MBET7D1zHuHzcLeIpOLZZ6aTdthXeN3gD4rXPogccSfo vGj5s3Qv8mXheLiAuCDIyOmN09+7DLH1RwYrbAGuojy3o9Qh4N3di1JgUUWzMGMy mXEkGCsbPMMeqnqo2FzopRPaSx7T7YoBpnP80LbBHg4TGxxzrHjFm4crhrHg46ax o8EphQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398923; x=1783003723; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=nqsoCKwlR/1AtxhbSkaDMpXnd9wjaz9i7dlB1dgLGBU=; b=dmOpYKxB4+/edhHdwX3hct3q6Xal3o3JOgKnHBDIDzZ9UZO6yGaUNYLJ3mx0zZg6Ej x5/28UHFTCKnw68/3u1cUoO+HFdhB/RSKO1+1Ln3AHdAeph2QfOp+s2QxTUa91qNw4hA TQYUvVw0ZipS1vonMTnOuRkBYcYN1nd1Q9zcO9gCrX2oH3N0A4x0M9gBCMwDV5OyAP08 TPEiM/vL2gh9m7PfgY9DFSLWw/TAMn5F6oODaUlsOI71sc+reuYACI0mnt341BDk1FQ5 DIzUj73heCLu6HaKZpKWk3oscnIE+pWVb/OX+Af5hZyOFnTSiLiENtlPgK1rLupUmCfc uyxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398923; x=1783003723; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=nqsoCKwlR/1AtxhbSkaDMpXnd9wjaz9i7dlB1dgLGBU=; b=QvQuUvWwR5lFf8enUAylLg+Javp9SXtu32BMHs0Ml6nKpfgvpEbcHsVJXb6wtAnp3o 0pvMz2610fJ0X2g/nLHEY4QdQQOZH9qJt70cwD7QIBMZ2JIQcKAOhYLRNo/PJZqVgrQ/ xDeHPZvCdotxBCBkpP7Ian3I9GcI7Z2X2Idrk6b15gEJTZF+rR1jcImQFRo/2cv1yy7U yrpGpYa+6K0sUP1N8nWJbmM1zdD2igAISpce4KTyjmgQ4zlOVh00dcj4YMN1RH7OIV7v HkLTWGLOZ5y0vg3ANV1E2UwGr6M7gqkeOaMvrkBxdu0kQs6gFmO1tNT7dv1cyrbEf3WE IHdw== X-Gm-Message-State: AOJu0Yx8dFFGdlPD1NfPakzLp0CMv4Fhx2te2qYueog0l5Bt61Pa4H5L WGj7b5uRPKAlUb0zGs8Fhtllz139DdhG7rA99rcoHY2FyQBxHPgqKXDRqgQ7jkza3BpTU3J+YlS fMRaD3Ijv+3zOYeWneoDrpS6IVJu1z9iCgMsIxWDwcQ6rgyOzCec0MuOMKsI0DJzHFA== X-Gm-Gg: AfdE7ckHfcwLKFz02S5f+X/d2MC/Gtwx12REA13uj/8W6f8Fy23/2vMCRk9Xs80ipG3 woqSHCHnZtwPIyPizxrigzJS4JPY9imzn/rlab04Fz/s0fjvosiA7DaUicIXI1eSQZ4m0SlYK2i 8BqNLoMFUNHKAumrzYvlk3MZkqnu4bLSytFROAldoRB7FslIdfsyvztasj9uZz6dZqWqtjA8r0L Zdd2Cw/raZeO+XjxBKccU++O5FCxZlusrlzhRdiZeT95R+7PlCHFcNkmMNNPUr8BZGtMF5oWePs GFQAyCQRk4mmTBmYNegMuaOwJM8TgbkamFgCqeaJ0CN+C7VwH9BFmCXnMRqg+l+ucYkPnVSPWEc ctAMmAR02CSUw+v7XC7B9Yt0rQWr0d8W6p82BUE0Kn9ZtX3aWFDU+SFgLaRs= X-Received: by 2002:a05:7300:a485:b0:30b:eca2:be75 with SMTP id 5a478bee46e88-30c84de3bd1mr3047013eec.8.1782398922843; Thu, 25 Jun 2026 07:48:42 -0700 (PDT) X-Received: by 2002:a05:7300:a485:b0:30b:eca2:be75 with SMTP id 5a478bee46e88-30c84de3bd1mr3046980eec.8.1782398922305; Thu, 25 Jun 2026 07:48:42 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 63/76] target/hexagon: Add k0 {un,}lock Date: Thu, 25 Jun 2026 07:16:20 -0700 Message-Id: <20260625141633.449487-64-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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: 9ITlmmKViQ0zK5Q6VtGjdQSLigfBz7SK X-Proofpoint-ORIG-GUID: 9ITlmmKViQ0zK5Q6VtGjdQSLigfBz7SK X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX4uPGK2smOLac N67NxCIG7+nCAbf/cJqnlab3k9XJXtd9xTuQAMfctp+jAiuqqcny5Y8QeqfsCgSCYORxpYPpWj8 cAY94H8yytVZwuwcbFIIInN00xU/pcI= X-Authority-Analysis: v=2.4 cv=EsLiaycA c=1 sm=1 tr=0 ts=6a3d3fcb cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=ZtvnA-OJD4c8FAOZTSoA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX5rY8SWybOcCk 5iXLqdmB4jXlEwjb8xeoyAj3FJ2bTSUBuV5UoaOUYhHS/xT1zqq1jAPxFJ2SiewuuVKrzS2mu66 d7sssGzvrcZ5TP3K/5pVfCPO189n4Z2wf00/VvbOVMkPvcv+rswbQpMOlxQCSLvpUwCs7msH2xh WeyaOO3LuSJTsEmWNI0vvxEmt1rpwPgIHW8zORCkkponwhNTbXXSRZu1EKJnyxJLB0NJyB+gSpU Gy7nJsde9Tr8tFtz8aLXMt3fh+vILRd7MhmTR7IBkmzFkJtqG2BOoqkzMORLqUgsuf8DD5dhkhp tlsBa/eVAvcGsJIXLejmHEmBb4SDykUstfnVuNt2Z1CgDMwjDGk10YongFLC3v/1SeJI5IOrGoA a71d6l2n68ymNUUOzmfOcyPVTccKPV1V8oJdc7FgAVLHiImWCSN6VjK5x347arS7A1s4gguJawd d+KYR/Hk7zLxo+Zx2Gw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 bulkscore=0 clxscore=1015 priorityscore=1501 impostorscore=0 adultscore=0 spamscore=0 malwarescore=0 lowpriorityscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250127 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782399051815158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/sys_macros.h | 3 + target/hexagon/hex_mmu.c | 4 +- target/hexagon/op_helper.c | 119 ++++++++++++++++++++++++++++++++++++ 3 files changed, 124 insertions(+), 2 deletions(-) diff --git a/target/hexagon/sys_macros.h b/target/hexagon/sys_macros.h index 707afc53e1f..a49c72715dc 100644 --- a/target/hexagon/sys_macros.h +++ b/target/hexagon/sys_macros.h @@ -148,6 +148,9 @@ #define fSET_TLB_LOCK() hex_tlb_lock(env); #define fCLEAR_TLB_LOCK() hex_tlb_unlock(env); =20 +#define fSET_K0_LOCK() hex_k0_lock(env); +#define fCLEAR_K0_LOCK() hex_k0_unlock(env); + #define fTLB_IDXMASK(INDEX) \ ((INDEX) & (fPOW2_ROUNDUP( \ fCAST4u(hexagon_tlb_get_num_entries(env_archcpu(env)->tlb))) - 1)) diff --git a/target/hexagon/hex_mmu.c b/target/hexagon/hex_mmu.c index 1c8ccec69ef..81d64a6146c 100644 --- a/target/hexagon/hex_mmu.c +++ b/target/hexagon/hex_mmu.c @@ -206,8 +206,8 @@ void hex_tlb_unlock(CPUHexagonState *env) (env->tlb_lock_state !=3D HEX_LOCK_OWNER)) { qemu_log_mask(LOG_GUEST_ERROR, "thread %" PRIu32 " attempted to tlbunlock" - " without having the lock, tlb_lock state =3D %d\n", - env->threadId, env->tlb_lock_state); + " without having the lock, tlb_lock state =3D %u\n", + env->threadId, (unsigned)env->tlb_lock_state); g_assert(env->tlb_lock_state !=3D HEX_LOCK_WAITING); return; } diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 9fbcd79c9d4..b82713bd1c0 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -37,6 +37,9 @@ #include "cpu_helper.h" #include "translate.h" #ifndef CONFIG_USER_ONLY +#include "hw/hexagon/hexagon_globalreg.h" +#include "hex_mmu.h" +#include "hw/hexagon/hexagon_tlb.h" #include "hex_interrupts.h" #include "hexswi.h" #endif @@ -1233,6 +1236,122 @@ void HELPER(modify_ssr)(CPUHexagonState *env, uint3= 2_t new, uint32_t old) BQL_LOCK_GUARD(); hexagon_modify_ssr(env, new, old); } + +static void hex_k0_lock(CPUHexagonState *env) +{ + HexagonCPU *cpu =3D env_archcpu(env); + CPUState *cs =3D env_cpu(env); + target_ulong syscfg; + + BQL_LOCK_GUARD(); + g_assert((env->k0_lock_count =3D=3D 0) || (env->k0_lock_count =3D=3D 1= )); + + syscfg =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_SYSCFG, + env->threadId) : 0; + if (GET_SYSCFG_FIELD(SYSCFG_K0LOCK, syscfg)) { + if (env->k0_lock_state =3D=3D HEX_LOCK_QUEUED) { + env->next_PC +=3D 4; + env->k0_lock_count++; + env->k0_lock_state =3D HEX_LOCK_OWNER; + SET_SYSCFG_FIELD(env, SYSCFG_K0LOCK, 1); + return; + } + if (env->k0_lock_state =3D=3D HEX_LOCK_OWNER) { + qemu_log_mask(LOG_GUEST_ERROR, + "Double k0lock at PC: 0x%" PRIx32 + ", thread may hang\n", + env->next_PC); + env->next_PC +=3D 4; + cpu_interrupt(cs, CPU_INTERRUPT_HALT); + cpu_loop_exit(cs); + return; + } + env->k0_lock_state =3D HEX_LOCK_WAITING; + cpu_interrupt(cs, CPU_INTERRUPT_HALT); + cpu_loop_exit(cs); + } else { + env->next_PC +=3D 4; + env->k0_lock_count++; + env->k0_lock_state =3D HEX_LOCK_OWNER; + SET_SYSCFG_FIELD(env, SYSCFG_K0LOCK, 1); + } +} + +static void hex_k0_unlock(CPUHexagonState *env) +{ + HexagonCPU *cpu =3D env_archcpu(env); + unsigned int this_threadId =3D env->threadId; + CPUHexagonState *unlock_thread =3D NULL; + CPUState *cs; + target_ulong syscfg; + + BQL_LOCK_GUARD(); + g_assert((env->k0_lock_count =3D=3D 0) || (env->k0_lock_count =3D=3D 1= )); + + /* Nothing to do if the k0 isn't locked by this thread */ + syscfg =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_SYSCFG, + env->threadId) : 0; + if ((GET_SYSCFG_FIELD(SYSCFG_K0LOCK, syscfg) =3D=3D 0) || + (env->k0_lock_state !=3D HEX_LOCK_OWNER)) { + qemu_log_mask(LOG_GUEST_ERROR, + "thread %" PRIu32 " attempted to unlock k0 without" + " having the lock, k0_lock state =3D %u," + " syscfg:k0 =3D %" PRIu32 "\n", + env->threadId, (unsigned)env->k0_lock_state, + (uint32_t)GET_SYSCFG_FIELD(SYSCFG_K0LOCK, syscfg)); + g_assert(env->k0_lock_state !=3D HEX_LOCK_WAITING); + return; + } + + env->k0_lock_count--; + env->k0_lock_state =3D HEX_LOCK_UNLOCKED; + SET_SYSCFG_FIELD(env, SYSCFG_K0LOCK, 0); + + /* Look for a thread to unlock */ + CPU_FOREACH(cs) { + CPUHexagonState *thread =3D cpu_env(cs); + + /* + * The hardware implements round-robin fairness, so we look for th= reads + * starting at env->threadId + 1 and incrementing modulo the numbe= r of + * threads. + * + * To implement this, we check if thread is a earlier in the modulo + * sequence than unlock_thread. + * if unlock thread is higher than this thread + * thread must be between this thread and unlock_thread + * else + * thread higher than this thread is ahead of unlock_thread + * thread must be lower then unlock thread + */ + if (thread->k0_lock_state =3D=3D HEX_LOCK_WAITING) { + if (!unlock_thread) { + unlock_thread =3D thread; + } else if (unlock_thread->threadId > this_threadId) { + if (this_threadId < thread->threadId && + thread->threadId < unlock_thread->threadId) { + unlock_thread =3D thread; + } + } else { + if (thread->threadId > this_threadId) { + unlock_thread =3D thread; + } + if (thread->threadId < unlock_thread->threadId) { + unlock_thread =3D thread; + } + } + } + } + if (unlock_thread) { + cs =3D env_cpu(unlock_thread); + unlock_thread->k0_lock_state =3D HEX_LOCK_QUEUED; + SET_SYSCFG_FIELD(unlock_thread, SYSCFG_K0LOCK, 1); + cpu_interrupt(cs, CPU_INTERRUPT_K0_UNLOCK); + } + +} #endif =20 =20 --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782398966; cv=none; d=zohomail.com; s=zohoarc; b=RBgM9H5btPrtXmwkk95HoKiR+vrnBWe+m3/zprXpYW4pkRCwH985XpaNwbIYc759x+0FUHDcEcKl+PZSAMQbPdw9Fy87KRXnbcbpbYXIFSSCKM8Iq3orqOrQlgmbxf0nIKwa0F03aMaloq+3KqsjYGu67T/sc4HEBu/Yb7y44uk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782398966; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=k98P3mzy875bIQ72dfi4cpupNsJGfuDp4DlfWaLieyw=; b=XYAGKtR1BaoDu1EMMMSiw+8ormBdsbSfnGpshjMTWPIQJ0XDGVL09mYBcfSAZWLJq6kjEbkyPJB4evECCfd6Y1P+WRPDuHK6kftYYz+F7wGiD7saO1FGey/LE85cZaHjJ7JtnvZ5bFruVklrZRzLm0to8jbLbcq8EbsMBQ37hXg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782398966053775.643806105151; Thu, 25 Jun 2026 07:49:26 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclO9-0003DM-2z; Thu, 25 Jun 2026 10:49:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclNz-0002p9-DK for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:49:01 -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 1wclNw-0000At-AN for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:48:57 -0400 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9juCp2046506 for ; Thu, 25 Jun 2026 14:48:45 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0uyqjm07-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:48:45 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30bcb065bfdso2721415eec.0 for ; Thu, 25 Jun 2026 07:48:45 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.48.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:48:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= k98P3mzy875bIQ72dfi4cpupNsJGfuDp4DlfWaLieyw=; b=NnB4Zt0FwKt9SyVR q8ItM5rEOO4jK/vArf147Vmv0uVca9xup4O9AGWpcSaqpubAKTSBGW5mtXgDvXrs kDvW7FuU68eCNYAVBQsKo81P24zXflVTtCo/AgaFeLKnO4umPMVhpZT7isF6sLXu w+RkUUPM9bi1HwSiFDXwq1oE1Z4CI3lZf+05VyMEpnhm4taavvLvN4nbJdk76G0v C3UmV/dWGMxcDr5V/kUDul1QAzEdPjM2YauQprxWNNdqIJYN/ZnIXILbcUMlluFe CvwLkT0BMhDyebIjO7XHZ57VHj24NMZAgSP4NzHFCDyE2imWLdL7YltM3OF2jYkJ GXHphQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398924; x=1783003724; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=k98P3mzy875bIQ72dfi4cpupNsJGfuDp4DlfWaLieyw=; b=Q0EyTY2qOj2diREET17zXlimw5BF2hq2W9xulLooEsQsWsn+bp2j4yZ02ATR4IXzxM B7iEl/Im+caZGFm3OW7fS2GVEupUuVjl38ZTbwgGdoIvpSDc5lJ8ZjsHZABdTMXMDi46 bOegJEOHXog4MCT3/3FtlUP++ATFRdBwUfKGXDOt9L84Kxhc/4RFA5REgsyc4KNa1aI/ SuYrtv10EVkHqQAcBXdp5emLjXdzK5wAkDuLgs/3GZKCLM5CUibSSftZjIrlpJpfUjw0 3KenJF95QeDWrNjeIc65k8XXMPsZuNmHgmgHj1U4aXXQvMszY6DS1ckPOYWkLFFjGEAz rm0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398924; x=1783003724; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=k98P3mzy875bIQ72dfi4cpupNsJGfuDp4DlfWaLieyw=; b=FNafOaa1kc5PkQ9WvbONGlSX6riIW5wVMYulISZ7l4bgA7a4fNpgu2jHx7jrFWJH8K 4lZlNUrm06oMA6U98GOSYYWvac3fzP8wyqFqcltvpB9FaRky5KljVlcAGKLQK+UNHQm/ ZDQRD6Bv8hhPFWqkXQJ0v0FfUsalCCnMPR2u9BDHbsybzmD+W1EkgiB8vnrP8nEsqCtO tmEuAm5Mx9whuu0SB1SND+sXGxgSfdE6xXrxAqgBAALitovlaxLAyfRJxo8iWV28yrgT rdJYKX322DA2/CNe78VwWIvRCJMv4yoYX354CexVVln5P/DeOVcsGFDne4SuJqoqDfC4 RG8g== X-Gm-Message-State: AOJu0Yx5qQXzefKaj3dT2mS5ESquaSg5C8uJCoS3eTPw+Pl87Z+xPfp9 wpsd3o4cLzz3foXOHrkisD2i100DqCApeKwiH7IpYMr9gFM+e1OWeQ7qZbkSkc9vOaBWHtJclsd PfSUDIeCXFr9jLeMAO4qSKLeepzpELeBDGOZhKWPVMsk3wJPJXHFzwj523vNH6ClERg== X-Gm-Gg: AfdE7ckNqemtdwMuunqKnNGpXZDKobjzw51Es/n7JFxiNT9d0RPTiWXrZgBqE4tQ7pt 4DBm12TLHOHeCf9B3g5OM5bP3qw6m8Fbt9+N06R/6J7SJCnHI3Apzq2+ftXi4EtsUJOkzipcqRx ZCHS0zIuXQhGH/ypYuv0D3RzArmHuk23ZdJwT1WfsFWTwd0oA2LRhgn3UeKbBy3179+Bpp3g+hA fsinkcGTlNxZ+w+qJAvkxcJSBsX9LXsKI9V1gbv3WyPsY2yEv7OAfYCrwUZ5UMn9LAqKvlLFY5I 0TB6CdAZBVTtn3Zb5YIumrSV4fnWqkldQmCAhes2YsLaTftfzfK4eab8u8r+ljY6Spxl/xgWsLT RJbadGdSyIWMADA5y0IeOCZtJhNGIC/wHX/5U2k1TyswUxB6YrI+FSjXTeO0= X-Received: by 2002:a05:693c:2285:b0:30c:45de:8fbc with SMTP id 5a478bee46e88-30c84b64cb7mr3042077eec.9.1782398924422; Thu, 25 Jun 2026 07:48:44 -0700 (PDT) X-Received: by 2002:a05:693c:2285:b0:30c:45de:8fbc with SMTP id 5a478bee46e88-30c84b64cb7mr3042045eec.9.1782398923920; Thu, 25 Jun 2026 07:48:43 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 64/76] target/hexagon: Add PC to raise_exception, use fTRAP() helper Date: Thu, 25 Jun 2026 07:16:21 -0700 Message-Id: <20260625141633.449487-65-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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: H4juNxcVZkwAX0hFpgIYUmnNl9_haAFf X-Proofpoint-ORIG-GUID: H4juNxcVZkwAX0hFpgIYUmnNl9_haAFf X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfXz0AHpSvedAha ODMtfR5uYf9NvUxHM3gSs3rMppC16nFSHUsichkE8m6HSraWmoqIx6h7ULkkVZGDAm1tVdzqCO2 /ifRU2LoirSPhke8ceXvYSyPHMd1MyE= X-Authority-Analysis: v=2.4 cv=EsLiaycA c=1 sm=1 tr=0 ts=6a3d3fcd cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=4FQt9sIIQT5CW9ciUtIA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX4u/XUAf59Nk3 +ut13YvYnt4jC47QtqWUiB1clfmxYY1Ymng95UgtisbNsUNYWc3kyNm4sxTyvHGuUljkLxW5sTA Kl/8ToGFgKzgmo0XR7d/+WbPwKzsnXyDzM+fp39yzLfV2ZEzyRdk2wTtmbOHGZOjH2w3mZv4rDw IBE/7Gyvb6gkz4BIeJwYDvZEcwL18hfjTbEuHBee7vvalSW2J7U5kIIz5NVC6MZJWtWipz6tldp W5quCBC3bAjcohs9XbR9G3iTtRuI9mw3E/UpifqeLQEaxeiobg8Cu9cAYm8OhRGtE5pqu9NiX0n CLvzpBXbuXd4mYdMx2veX43IuOFDzskMfOICmPHfTgyoo6PnsZVvs73gyrZUogiHPh3CMZyjwMW Cvd+zbs6QMErif99KH9qWFtUHKwBELHTltVOM+vdPcoQjhUcDPNps5G+zuQyLoCbzsI++MPPUrZ xAY6dnxAeMtx8iiO/4w== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 bulkscore=0 clxscore=1015 priorityscore=1501 impostorscore=0 adultscore=0 spamscore=0 malwarescore=0 lowpriorityscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250127 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782398967232158500 From: Brian Cain Add PC to raise_exception helper Replace the fGEN_TCG_J2_trap0 macro override with the fTRAP()-generated system helper instead. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/gen_tcg.h | 7 ------- target/hexagon/helper.h | 2 +- target/hexagon/op_helper.c | 10 ++++------ target/hexagon/translate.c | 21 ++++++++++++++++----- 4 files changed, 21 insertions(+), 19 deletions(-) diff --git a/target/hexagon/gen_tcg.h b/target/hexagon/gen_tcg.h index 4a58ead877b..a28af0c245b 100644 --- a/target/hexagon/gen_tcg.h +++ b/target/hexagon/gen_tcg.h @@ -1349,13 +1349,6 @@ #define fGEN_TCG_S2_storew_rl_st_vi(SHORTCODE) SHORTCODE #define fGEN_TCG_S4_stored_rl_st_vi(SHORTCODE) SHORTCODE =20 -#define fGEN_TCG_J2_trap0(SHORTCODE) \ - do { \ - uiV =3D uiV; \ - tcg_gen_movi_tl(hex_gpr[HEX_REG_PC], ctx->pkt.pc); \ - TCGv excp =3D tcg_constant_tl(HEX_EVENT_TRAP0); \ - gen_helper_raise_exception(tcg_env, excp); \ - } while (0) #endif =20 #define fGEN_TCG_A2_nop(SHORTCODE) do { } while (0) diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index aa3604dbdc5..033e5619d6b 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -18,7 +18,7 @@ #include "internal.h" #include "helper_protos_generated.h.inc" =20 -DEF_HELPER_FLAGS_2(raise_exception, TCG_CALL_NO_RETURN, noreturn, env, i32) +DEF_HELPER_FLAGS_3(raise_exception, TCG_CALL_NO_RETURN, noreturn, env, i32= , i32) DEF_HELPER_2(commit_store, void, env, int) DEF_HELPER_3(gather_store, void, env, i32, int) DEF_HELPER_1(commit_hvx_stores, void, env) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index b82713bd1c0..8a3723cbafa 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -66,15 +66,13 @@ G_NORETURN void hexagon_raise_exception_err(CPUHexagonS= tate *env, uint32_t exception, uintptr_t pc) { - CPUState *cs =3D env_cpu(env); - qemu_log_mask(CPU_LOG_INT, "%s: %d\n", __func__, exception); - cs->exception_index =3D exception; - cpu_loop_exit_restore(cs, pc); + do_raise_exception(env, exception, pc, 0); } =20 -G_NORETURN void HELPER(raise_exception)(CPUHexagonState *env, uint32_t exc= p) +G_NORETURN void HELPER(raise_exception)(CPUHexagonState *env, uint32_t exc= p, + uint32_t PC) { - hexagon_raise_exception_err(env, excp, 0); + hexagon_raise_exception_err(env, excp, PC); } =20 void log_store32(CPUHexagonState *env, target_ulong addr, diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index f5450ced7de..e0418ee990d 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -126,12 +126,19 @@ intptr_t ctx_tmp_vreg_off(DisasContext *ctx, int regn= um, return offset; } =20 -static void gen_exception_raw(int excp) +static void gen_exception(int excp, uint32_t PC) { - gen_helper_raise_exception(tcg_env, tcg_constant_i32(excp)); + gen_helper_raise_exception(tcg_env, tcg_constant_i32(excp), + tcg_constant_i32(PC)); } =20 #ifndef CONFIG_USER_ONLY +static inline void gen_precise_exception(int excp, uint32_t PC) +{ + tcg_gen_movi_i32(hex_cause_code, excp); + gen_exception(HEX_EVENT_PRECISE, PC); +} + static void gen_pcycle_counters(DisasContext *ctx) { if (ctx->pcycle_enabled) { @@ -140,6 +147,7 @@ static void gen_pcycle_counters(DisasContext *ctx) } #endif =20 + static void gen_exec_counters(DisasContext *ctx) { tcg_gen_addi_tl(hex_gpr[HEX_REG_QEMU_PKT_CNT], @@ -211,8 +219,11 @@ static void gen_end_tb(DisasContext *ctx) void hex_gen_exception_end_tb(DisasContext *ctx, int excp) { gen_exec_counters(ctx); - tcg_gen_movi_tl(hex_gpr[HEX_REG_PC], ctx->next_PC); - gen_exception_raw(excp); +#ifdef CONFIG_USER_ONLY + gen_exception(excp, ctx->pkt.pc); +#else + gen_precise_exception(excp, ctx->pkt.pc); +#endif ctx->base.is_jmp =3D DISAS_NORETURN; } =20 @@ -226,7 +237,7 @@ static void gen_exception_decode_fail(DisasContext *ctx= , int nwords, int excp) =20 gen_exec_counters(ctx); tcg_gen_movi_tl(hex_gpr[HEX_REG_PC], fail_pc); - gen_exception_raw(excp); + gen_exception(excp, fail_pc); ctx->base.is_jmp =3D DISAS_NORETURN; ctx->base.pc_next =3D fail_pc; } --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782398980; cv=none; d=zohomail.com; s=zohoarc; b=gjw/nf2iJkEVzA/dIjlyS4RQXlk/7UgIRjjXG8qU4/DcXxylyrte3HKPXkPLFBMxejIkXJdUWbST271p5y3+9gx6us2R0XROTUTFWLmqZDRcg2R4IuiNRw0Hj/yycymnUeVq8+XT/oZ3b80PGMdHYS1Dovfol3Jhcm+AyxmzXwQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782398980; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=1ECOxl3Fg5yOtnmQVv6BfaD55uXykPkSbZivFHhIDWY=; b=DTa1uG9ceZSA/DoMBEprLTMTh+kvhpnK+4V0ZF/rQHCQnL9lITjM7xwh3ElHpjMV3BoyG+7qK5hK5hJsJuO06jb+D/FZEaXMhF/PElZmM6sM72n4xhgTe2QCD/D/rPizdfbXbLdBKMxJxUittIXvMvrOZq2zW9f+fEWpQoZuBpg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782398980515455.67624956393354; Thu, 25 Jun 2026 07:49:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclO9-0003JW-Pi; Thu, 25 Jun 2026 10:49:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclO1-0002sV-7k for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:49:02 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclNx-0000BL-Sy for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:49:00 -0400 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9k0fE1920626 for ; Thu, 25 Jun 2026 14:48:46 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0ueuaqnd-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:48:46 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c17bc96afso5088932eec.0 for ; Thu, 25 Jun 2026 07:48:46 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.48.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:48:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 1ECOxl3Fg5yOtnmQVv6BfaD55uXykPkSbZivFHhIDWY=; b=VPmvcvONjRr/u1zm TN88AhDHbE1zI82losrCgnETbFjL3Ylh5jgynb/FnNSI/NDvwTKsNrvxpbkE/nYf YLUZbj9yPiwzcBMSosIjz6hJzqA1YSnuoKOZBvIkXAh0KdOnEgEVv/rSjYVy7yu1 p4Ax25dHI9wOVmqC0In1kYUkq0t6E3caurrmuzWAOGKDAWUCmwdtvUubeUMiLMAZ 9qdmLR9mLQxs/o8GmXPSR86iZ/OSCqMCjRnhVJ0TEgczxuA/yResF3WwiD+DpANt kSdr0zwTm+oTp21PRoJ4oT5nNlRpC5y0S1AB1idFSMPWDerMtMKqsSz2XR83h03E SHTEqw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398926; x=1783003726; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=1ECOxl3Fg5yOtnmQVv6BfaD55uXykPkSbZivFHhIDWY=; b=BvYfhjMD6RyvRSidSBqHFEu/G+OmaGx6D9caBBetOgCDtFrsdEo4i9WElH/HgZ+RYq j7dGIuL4E5d0MFxBqmQwAQbX9oWc+QMrI9uAArW5/FyKVwE3BrdE3seZEl9B4N6ozWnK zc3dJvnxHhyYFhsmRwTqbMTUXGHLHFGuKg4WDNYDFBgtXWwckEAtGcKw6Lyxt/ON749y 3q5IIXjGReFIpFXSdkT5kbDYlPXCxqIY9rvEOQz66u1tG/KhG5mJ/luHkQfg1Ir3n2VO yIiiWgMRfpYDliYe8KhAcgMCBVGDM7v5ojJHUi165ynXto8O2iEemd4WQpDAEEI9bxzu 1mBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398926; x=1783003726; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=1ECOxl3Fg5yOtnmQVv6BfaD55uXykPkSbZivFHhIDWY=; b=Aa7KRHh99qfwiI8tIXrUbkm2CoFOD9FruHfTQuivdxdNsogibxpuLKdrRKoE62T3/B g7PXkQRpwKyjWAdAIUmZonqrOeJvwqdiigTNTd6i8NJtGh4iP7R5pq8FptK1ftoCTDEr 8WE461uH5fTv1O6dKyRUa51C2mmjZDwfvU1ig03YekOBIQvbsC78/7DfZvEvPetWwPZ0 bq2Y16faitCGDxZIPu3cjcKB8D3vEEC2G1Mn8cLJdo505d1l5PjV6KPRRIWAp3PFLLWa AHXRr/oTHd3K5rZRGWDtaKQzfCaDSuB/M2BOqOggxq39BfMh6Ng/ojWyOZXCPaPiZbjS 81Eg== X-Gm-Message-State: AOJu0Ywg90HUf8fsQU6q/MyuEThzQEaEUUdWQMK0eApjYx7Foqjqi1cA y1opWp/Rzz03VEukFB6Z7M5NFJSveQSew75ytHiEFZfpW5WrjAMXdbyXEb60tobmJpavJTeKq1c HPyvEPLBJzn5dhyWRB6XISRSVqy22q65gFWBam4KizlkNQpmonw8MZ/SxwJl0vjZHWQ== X-Gm-Gg: AfdE7cl3bkZoZGGjqU5i0ccOePGSU0NoqCQzmNF9bEOOGmuzsJRjRwwrM3svs3vxz9Z 08eBhZGbCHZuVYlggAe5blf9+fCmXvPE3uBU6e33YFovANXHtNBKt36D49os9WXtJ7j3jtZiNPO 43uw8XuJz05/igPjCps4tkYWS+lhg9MpTKd4gunCpATZInF2Ex5/ma1Tjc/ebxJMgITUJ51aNjO B6ek07t2jbu9O03tMr7k7gFsFxMR+F+jqCey3k+KjvsaOd7Zxpy4ZntRcgioaVxBW1gKCxLyq/K yuzqQDGTeJs/SXgIy1LczH4wZmkryfSam+3rhu6p+974fnMfbp7C8/8DYfcqH3QOA+kHiWuCO0G EvdF7wknPdwB2eZAfkwnXowmUtyHEbEGw+Y95XJxpZ1OKr0gO/ixwHbk1V9k= X-Received: by 2002:a05:693c:2297:b0:30c:4832:1ac4 with SMTP id 5a478bee46e88-30c84d0f0c7mr3474553eec.22.1782398925556; Thu, 25 Jun 2026 07:48:45 -0700 (PDT) X-Received: by 2002:a05:693c:2297:b0:30c:4832:1ac4 with SMTP id 5a478bee46e88-30c84d0f0c7mr3474514eec.22.1782398925053; Thu, 25 Jun 2026 07:48:45 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 65/76] target/hexagon: Add TCG overrides for transfer insts Date: Thu, 25 Jun 2026 07:16:22 -0700 Message-Id: <20260625141633.449487-66-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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: InvW5kvySlBI6zgLz07KD_Hap8b9tZwE X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX0u4qpwfSR/FN K/Hs6bCBXkGEfAJfJAe4Y6bPgj9SWE+7O9tWf/2ZDjQq+tcCoNqhIKbB79g9De4U7NNhm3xcaEQ sharVFxGALed2aFFdR2fDwaS/eOrNvk= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX/NMpzOoyxyv8 o0l4VlWt+rOgUU+En8vrBZCyluurb8kMRilX+2yZsB51hJK5L6S65Po7cfFhuLAWuuSCg33gpjG 5LZnrmuPkISud5zte1A2KhThNX/dKoePhBuLnpE8nXe1w0lXXENEZ9bptOoOVPsXN6WYJHlylhA xWiOfktEcZe/kEBs4uW+Qo4zpNH6bgWdNQJ3NEzP6tNyq8uG7Z1T2rSEhGbxaYnBJ/U8JzM0e7S A9k92ew2njjhJtFltE06OXDlxJQxo3KgcldNa+bucgjblqNtlcbYO6yH0MC8aPoEB46UsE/8jyr 9TNj6TonvSnCXK54RfsXohigpV1FgIuWFEAewwFr4JMISatoFQLc9xMeguWpjns/jtOs1QEdhLf MYkk9rF0Fsv60KpZGLmC7s2lNkg5OB3biGCIChYPI8sHjMAOusYYaPJLEYupJR6b3X0jwViWUeA aTIY2jjeOsV/5Z/tiNg== X-Authority-Analysis: v=2.4 cv=b/SCJNGx c=1 sm=1 tr=0 ts=6a3d3fce cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=LN73x9Sj_Gq4gUX8wwYA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: InvW5kvySlBI6zgLz07KD_Hap8b9tZwE X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 suspectscore=0 phishscore=0 bulkscore=0 adultscore=0 clxscore=1015 spamscore=0 malwarescore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250127 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782398981211158501 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/gen_tcg_sys.h | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/target/hexagon/gen_tcg_sys.h b/target/hexagon/gen_tcg_sys.h index 68b23895428..af5032214c4 100644 --- a/target/hexagon/gen_tcg_sys.h +++ b/target/hexagon/gen_tcg_sys.h @@ -95,6 +95,31 @@ gen_helper_stop(tcg_env); \ } while (0) =20 +#define fGEN_TCG_Y2_tfrscrr(SHORTCODE) \ + tcg_gen_mov_tl(RdV, SsV) + +#define fGEN_TCG_Y2_tfrsrcr(SHORTCODE) \ + tcg_gen_mov_tl(SdV, RsV) + +#define fGEN_TCG_Y4_tfrscpp(SHORTCODE) \ + tcg_gen_mov_i64(RddV, SssV) + +#define fGEN_TCG_Y4_tfrspcp(SHORTCODE) \ + tcg_gen_mov_i64(SddV, RssV) + +#define fGEN_TCG_G4_tfrgcrr(SHORTCODE) \ + tcg_gen_mov_tl(RdV, GsV) + +#define fGEN_TCG_G4_tfrgrcr(SHORTCODE) \ + tcg_gen_mov_tl(GdV, RsV) + +#define fGEN_TCG_G4_tfrgcpp(SHORTCODE) \ + tcg_gen_mov_i64(RddV, GssV) + +#define fGEN_TCG_G4_tfrgpcp(SHORTCODE) \ + tcg_gen_mov_i64(GddV, RssV) + + /* * rte (return from exception) * Clear the EX bit in SSR --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782399112; cv=none; d=zohomail.com; s=zohoarc; b=jE8eJE1XBKBGeBtFvDaSsHiruSKm2Pu1xXkRoDyHV8GNk32GjXEjWA93ZrYWK3npTKtCoVzYR5UwOGfSxu3pn19ft8SXyUM7lwHqJf5gm8AET9755SiXDcfD1J3sZZx3wfyZ6v6XF8nCO6POsZMWFj6cWEj6dFeK68soHtoBsGM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782399112; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=W9aRU99FRJkCFdVjE14GeGuaLGKvifAUAOZ13h7xav8=; b=bAkfDiVI11YkuU47Zw1A2RIi2Po+eWANa2sGUVseYZroM0TStGJ+kJdj5wSTA4uJijYcdF7RBn1XcZWAksRq+GiLBCcjoXHZMkuYRQweniIPWbvtfimV+EyqMzJjafqtq02EuHLMcrtds0w1VeLXviefGMVhN95njlUmA5wekIo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782399111928813.3828453959479; Thu, 25 Jun 2026 07:51:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclO8-00038b-EM; Thu, 25 Jun 2026 10:49:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclO2-0002sc-6R for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:49:02 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclNz-0000Bq-C2 for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:49:01 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9js2T2009329 for ; Thu, 25 Jun 2026 14:48:48 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0uhmjqvw-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:48:48 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c5b9f6a51so670412eec.1 for ; Thu, 25 Jun 2026 07:48:48 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.48.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:48:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= W9aRU99FRJkCFdVjE14GeGuaLGKvifAUAOZ13h7xav8=; b=orBa9g79WmfW82s2 yvFIjKZmYe3eSP0SnHkU1YP7w9btxGrRB5MOUydTGeLmn02AqM84V15westku70h ufuE0DmKed3PKMFPk3jmeEemvzIfdB5sO2om3dk94Rb5BRq/KGz2h3+7N1m71DZe oO8gfvYE3YBtEIJzzhX+S4yXPCEpatDMS+8OXtl0Ip6KYmOsn6eX4BzgsRSk35xs IHqeYgCoANxiVw8AZqfg50KuQSJHIhmHIiY7PwlIJAFpGniQHxjTlRVv7OSiQtlw iE4kvVgZc+E8/mfwD36Z+eXtoo/s6Bl1L9ajSgWK35H/zTbAL8i3CvCK0WZ4DfOI e+w+7A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398927; x=1783003727; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=W9aRU99FRJkCFdVjE14GeGuaLGKvifAUAOZ13h7xav8=; b=FDabR218VpaR/PWMnwgL3G4q6T/Q5HZYqTvdl/xms6dYnB0aokM2slAm/xgSeGYNHj +BGjiIL1Og0yIHkM1YwWIurRrsFJMnu3c/mnq4A0Jg0/GZHE9a4f02sAqtqiytqCcTdf lwP0yY6QtR6wimmD4BadfrIW7OqzdcWl9ZY6UJJGr02ApqC+RHJyj9QTJHHRL2QYuTAV 4o8ONyh9mMK5Nn8tUQtKBbhC+QQZdxWG4oJQN3+AIZa3GFyOM4HHk4NoX7Ut9fJ23ZQc +tnSPyldJ8Cj2cDrXAwl3ag0dDACaqvTdwixFxCky7HAVKfP4VViF5TaKFXVn1VAHROj KIYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398927; x=1783003727; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=W9aRU99FRJkCFdVjE14GeGuaLGKvifAUAOZ13h7xav8=; b=Uvc93tIVLZ7UAD9V4z5xV9Z+9X6LWtm4NSiZT/Pfp0Dx1jYhvuLVUC1mY8KlIh7JE6 F7KZc2/sVUrE8KNgJZ5xa7Leml2qaQqwuF3/pXJ69JjHzmmn9IUaO6dHSM4MUxvLmbl7 99IN8a4KRH4XVZhOuGFxNXcZeTVQLF/um7ukHe0LjWJet1WVeIq0+lq0Aqoqnph+0Zt6 TYWpKq6VGH+ud5PLOO9m5xZjs85mbOAe6JFpgXwm56/xsSma6L++jNdGI7ppQqEQEWDs RV0ME8NGnGU/pozFNytbs7KH+GVgOZyE0wyHY4svwQchew+vCMyXs0CgM7fCTxgjni4S IymA== X-Gm-Message-State: AOJu0YwMR5V6oXB03nmaRD/YvhGR8/PqlqS7RM4ln55gf+Ab5Cu9Lox+ ZR6QMu1yGeR+G8Xjvh6eAcl/ugOyD1PNx+ni9jEDO7BarnTnHMVpGTf9ndyRJbm9zAF/RMmdHjr zLIGndCPX4dm8oUwvLK7LoAgtDY9IDBIbcdNePMC4yfIidOjkCIfsLoTnnbaI/fkQnA== X-Gm-Gg: AfdE7ckgkgQcCnWM6yEGwykNYs2OS/L1qkSBs8syYkskBXe93IRYsBvg/EnMivdn1kv mn7LQdJXsa92ACeAz/LUJpX3Vfq5CZVjZPNDRNWeyor3nLh8HoRFP3EXUDtsUxmVC32I7Qp9RaM 4/YloX8mL9AsB6wqtfUMlgd7iTFBjl7BnGSpAPdXJdFFCN8bU33NWlUI7GD3fi48WoPuGVXK4Ua n9Kpo5d9Gd9DvWdXw+7Cc1wCnV0YMtzS+6MSFXll1Tuhx9R5qudtJvYY5zF+Ip2gHofwGLiB6Jl 4/hlmK54T/Doxhx1OGOhT5x0eRsrJT/REwtLq0Mhv4Clk3aGcBZWrZaOwNpopfzn6ZeCCwEk2q+ 5eB7oJVhhaqUMZLfAM1pkFHVCA6/xdnUyght+0bCHHXKWFyjw/oj5IYZOtPY= X-Received: by 2002:a05:693c:62c4:b0:30c:650c:2161 with SMTP id 5a478bee46e88-30c650c359bmr5429336eec.13.1782398927450; Thu, 25 Jun 2026 07:48:47 -0700 (PDT) X-Received: by 2002:a05:693c:62c4:b0:30c:650c:2161 with SMTP id 5a478bee46e88-30c650c359bmr5429312eec.13.1782398926827; Thu, 25 Jun 2026 07:48:46 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 66/76] target/hexagon: Add support for loadw_phys Date: Thu, 25 Jun 2026 07:16:23 -0700 Message-Id: <20260625141633.449487-67-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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=cqerVV4i c=1 sm=1 tr=0 ts=6a3d3fd0 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=M_0_kNSAHlZdZebFLzYA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX5VoSW36HfzZe a8M7+z575v/1DqSInYm7FjJkHmPGMs6bhvY604sS9/wCiDxajsh8UP5/miiuXzJv7w7Fad2ALZW LNfz9oHFf53ltFIV5s/FDZMmKMKQOQ5O6KpRBdWqvMIHTaMynL79Tzdzie09mFpsxmEiz8BUArJ MepCmPESzoyGKq4HspO3TeCDmHT2CE5gvUnfX+ETVJu427i+3dAGIG5sKepP1AFJIjwssnz8xh9 c+LOSPqQ1mX1YXBmEWpyBdwTNztlcHxWOOiBCRySB9elWYIzQl77r9U0fKj1NnCKH2EDYin1ajK aFbKQTVZNR2lwnUjC2imjTeVxkFLYO2cyak72hK6WJjEgdMeJqVholRrFqYruQqRo5vDOCH7eik FZgAwXkqktlnlg6tL314xWBiRsgNwheirNwtVH0kWbt+NSKFALsTtRnu3McJFJl+yyntyL86UN0 qTzS3Q3zSqQs07D4qgA== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX3eApBSef604y y4vioI3c68F68cP9XFIeAyT5UUqwXFwVCDP6NEHeGnvT6JGx66lBo30lbxKI7MbQaw8+K+2EjzK Uc7dP5bG4ecduGlKVQyxqApUM0PlBVs= X-Proofpoint-GUID: 11VjLwxvtKWxoB36xU_NwZChvB47tVFg X-Proofpoint-ORIG-GUID: 11VjLwxvtKWxoB36xU_NwZChvB47tVFg X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 clxscore=1015 bulkscore=0 phishscore=0 priorityscore=1501 malwarescore=0 suspectscore=0 impostorscore=0 spamscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250127 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782399112228158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/hex_common.py | 3 +++ target/hexagon/imported/encode_pp.def | 1 + target/hexagon/imported/ldst.idef | 3 +++ 3 files changed, 7 insertions(+) diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py index acaaa3c944a..d91a653c3d4 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -264,6 +264,9 @@ def need_slot(tag): and "A_CVI_GATHER" not in attribdict[tag] and ("A_STORE" in attribdict[tag] or "A_LOAD" in attribdict[tag]) + and tag !=3D "L4_loadw_phys" + and tag !=3D "L6_memcpy" + and tag !=3D "Y6_dmlink" ): return 1 else: diff --git a/target/hexagon/imported/encode_pp.def b/target/hexagon/importe= d/encode_pp.def index 04e911f59c8..1c64495d519 100644 --- a/target/hexagon/imported/encode_pp.def +++ b/target/hexagon/imported/encode_pp.def @@ -384,6 +384,7 @@ DEF_ENC32(L4_return_fnew_pnt, ICLASS_LD" 011 0 000 ssss= s PP1010vv ---ddddd") =20 /** Load Acquire Store Release Encoding **/ =20 +DEF_ENC32(L4_loadw_phys, ICLASS_LD" 001 0 000 sssss PP1ttttt -00ddddd= ") DEF_ENC32(L2_loadw_locked, ICLASS_LD" 001 0 000 sssss PP000--- 000ddddd= ") DEF_ENC32(L4_loadd_locked, ICLASS_LD" 001 0 000 sssss PP010--- 000ddddd= ") =20 diff --git a/target/hexagon/imported/ldst.idef b/target/hexagon/imported/ld= st.idef index 53198176a99..4e1e5d5326d 100644 --- a/target/hexagon/imported/ldst.idef +++ b/target/hexagon/imported/ldst.idef @@ -203,6 +203,9 @@ Q6INSN(S2_storew_locked,"memw_locked(Rs32,Pd4)=3DRt32",= ATTRIBS(A_REGWRSIZE_4B,A_M Q6INSN(L4_loadd_locked,"Rdd32=3Dmemd_locked(Rs32)", ATTRIBS(A_REGWRSIZE_8B= ,A_MEMSIZE_8B,A_LOAD,A_RESTRICT_SLOT0ONLY,A_RESTRICT_PACKET_AXOK,A_NOTE_AXO= K), "Load double with lock", { fEA_REG(RsV); fLOAD_LOCKED(1,8,u,EA,RddV) }) =20 +Q6INSN(L4_loadw_phys,"Rd32=3Dmemw_phys(Rs32,Rt32)", ATTRIBS(A_REGWRSIZE_4B= ,A_PRIV,A_RESTRICT_SLOT0ONLY,A_NOTE_PRIV,A_MEMSIZE_4B,A_LOAD,A_NOTE_NOPACKE= T,A_RESTRICT_NOPACKET), "Load word from physical address", +{ fLOAD_PHYS(1,4,u,RsV,RtV,RdV); }) + Q6INSN(S4_stored_locked,"memd_locked(Rs32,Pd4)=3DRtt32", ATTRIBS(A_REGWRSI= ZE_8B,A_MEMSIZE_8B,A_STORE,A_RESTRICT_SLOT0ONLY,A_RESTRICT_PACKET_AXOK,A_NO= TE_AXOK,A_RESTRICT_LATEPRED,A_NOTE_LATEPRED), "Store word with lock", { fEA_REG(RsV); fSTORE_LOCKED(1,8,EA,RttV,PdV) }) =20 --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782398970; cv=none; d=zohomail.com; s=zohoarc; b=MHgtpNFjxd8l3GoU6a4ZQ1PyEnmpprU/gL4EBCLIsNf1RmH7abcFvxvYvScVt7w1iObLQ+IZsy78ERWyLhr2sfuCsuqT8kVxdQGGB5vmUbe6cKrrXBl41N+aqLooTQxoTS+2080rTlcptnUV3CRBYmTaIbOY4MH3M3HHba6UvaI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782398970; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=c10dnjx3jWBtOFG53LaPJvlCxFR1rsBjBNQjpvdRffY=; b=lqpZW1Nm8yj6q/o28+TTdSl18QCL2nnuOpuX0QuI1iFX4bBDnzzKCPmxDmwAcn9eUsu1oerNJYoSYhlOVQ9KnX16rUKBJtewiRGfjDTH1NbV2RKX40rjvCVpcZAVXWzFqPHL9Jh/6CJLAUG5JL5DqDDxbseiG9Czd9VdtwXvepI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782398970679119.14104706302874; Thu, 25 Jun 2026 07:49:30 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclO9-0003J5-Nx; Thu, 25 Jun 2026 10:49:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclO2-0002sd-FX for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:49:02 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclO0-0000CG-LD for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:49:02 -0400 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9juAM1919787 for ; Thu, 25 Jun 2026 14:48:49 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0ueuaqnm-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:48:49 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30c8a940e76so783261eec.1 for ; Thu, 25 Jun 2026 07:48:49 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.48.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:48:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= c10dnjx3jWBtOFG53LaPJvlCxFR1rsBjBNQjpvdRffY=; b=U1M9x5Ff8z8lAti3 yKDI2EoZggr1ACY8Hu+JNad2DYQ5QwNPxL7BtGdEK0nJ8M3Yt6sK7QcglQu6bLSN PQQUWflVUQPNb1rBj6A5dR+Mvy0YTijEX363plHwg9f1DxvGgUbHBnC/ZeAZytbQ q6n+1zWN6gStlJv6T7TbbsnS+lgDAecO2ycvHZpbGmCQVE6rbBGw0GnjxY2qIGp8 JPOGJmV2obAlB9qhqp1hURyh50BvcplYAhQaRBobv8mo4wY7iuUkkXm/E2mUD+3p krouSFPwXlEwzrNYGn3nORXJz3CX8u8KTwaEkgfy0UHscbPns9iezFzZPmYBGjqO 6S3AMg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398929; x=1783003729; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=c10dnjx3jWBtOFG53LaPJvlCxFR1rsBjBNQjpvdRffY=; b=TdPOEh48dkudop8W6fXa2D8UhUZaBu2s6Cvntza7+aRrH9ZjqoGpbd9wI5pjZtS2Rx EJ8RZMU3ZANfrCIzAY6mE9Ij30sn4Zfs2q7H/BpwhnC4rieov8CP/DFmlR8T7FjgDnes oHlFChl/d12uK1HSEh/yZ7vokqjZ4L+SHxRK0pnVLztnGmh5f5dh0qXes0fgeatTg/6X fic5Okst02eHXQqMWciSw7KxeXQ35WawmW3ZS6irvWVe6mP6CQnYyc6dUkZ45ABNK4ij 9reRmsz0nmoZwTtY5fVjfI+lXXoOonhaJA8abtbkOF6Rng6oEP7XW3VADtzv3kBON3lM lb+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398929; x=1783003729; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=c10dnjx3jWBtOFG53LaPJvlCxFR1rsBjBNQjpvdRffY=; b=M6anHavtGZgn2mNWbELpHmt9r7gClv52uxKEk9H7+PHKR+6bnRNds/9igzalGl+haV ByKvt4YwseFzdWxtPUw4pqbDlpqVUT6X1UhV9ppdX7i/5XUqHMu+xiIsEQ/QLVBcxXsJ 9u2ffF9EESI50Af3we7Y5vVPy0BiERv4fRM94e/hIp+2uWWvjVhW4N+GirDFTxhRduHK bF8nCMVcXENJxTpsOFsqtxpZMkgEfbr5xO4m5clDY1oq9yAK4xrsunSODw1koQDCcpbr 2IQWfVVdIf1YXwzCiD3nmpQ1Nmr+1W7bV53jDeQbOcecSDs9FciV35T1qgLvTXk7V37/ E88Q== X-Gm-Message-State: AOJu0YznUdBjH8i845YuEyOO0tUs3+wLP2WJxd285p8HDxwdFRgVTHbt tJvUF6Lx32mTqZXvh5F0a7ScG55BmCe8kdUscs4yXd3BYBAUi5rO2Mly9vp7K0p/uGaxgJyQ44R /eZGr8WD8dw9Yg8d9EN7e3YkN+I5zEA2/Gm3GTfg5vPe5XIwtRyhVOtSxEUZ7Dmqlew== X-Gm-Gg: AfdE7clJpr4e6lXxhns9Gel3rifIgCh2KGareExDHegU6N55CpTFDdir8HoM+rpX09p O68BZqvO3UiNhHps3X0CfVPwxggh6bBjJvvkW8XrLkLULMdIAe66to1Mx61jv99/VJTol83LbE9 Z7YhSlK92ju0egyM2yD8AxENNg8MYkB7BDERXzmJB/8gqBgo08ml1eyEN8jSLQzkDnf/HnIc4yF woPq/3SeszXp57XDMYUht+H3GHU9ExCOctKJAjUq2NLL3f1xy7b2qnj4sDGNer3PdTUQ1oCK2OG 9uxehI8BdfD/pFXWLWA8F17WHd9Q/xpw6PSTLW11CSiCUsksKx9G99wPMh5UNU3WUSG9zWsV9rk BggmqKqU8LM1TjWLW6HOem7zv3pvRcIHBHmKtP/5v42uux796dyPO4rpwtYs= X-Received: by 2002:a05:7301:644c:b0:2ea:e93a:ff9b with SMTP id 5a478bee46e88-30c84bcdacfmr3093727eec.13.1782398928631; Thu, 25 Jun 2026 07:48:48 -0700 (PDT) X-Received: by 2002:a05:7301:644c:b0:2ea:e93a:ff9b with SMTP id 5a478bee46e88-30c84bcdacfmr3093691eec.13.1782398928117; Thu, 25 Jun 2026 07:48:48 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Matheus Tavares Bernardino , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 67/76] target/hexagon: Add guest reg reading functionality Date: Thu, 25 Jun 2026 07:16:24 -0700 Message-Id: <20260625141633.449487-68-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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: aYpMZc7sk_0r220ZPaTvBlKPbjp3CA7u X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX1xDIZU0Z1J0N 6+ahx4f4DgDzxeVCYHthEeZmmJ8qKWTctEYDm2qn+SSVhu+M9gBGdwzSPzsrtvHTvNBbF5x6Wba 8BfqLkzOZtQG/YKdMJE3eauIRdJZ2TA= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX4WzqyQ4BY4Y4 R661JypJvdmY96AUZTFXlV45pjFS/XTo2V/lCnvI4UPx7ovHPAh39+KaLiqA+WUNKIqUdjGuNjQ zFB19WLsCovfGetoXqb2mZqOzCZDhW9MhT87YARQdJxPZrzxqvfIy3OHufYyTpPXLVcyx2KoKGh eIQdfklyZCeFyzr9X0M78ihRkf46EwT9PvkqsSlihR36hlRgv3NFCa5+O5Gp9fGGRR5tdSOYwh6 7/qHG5Gew8EGtS9pxlThr5gV9MfqP5c04H6afL6c+QIy99jJ4oxuqjC99z9vwl40KidylcAgAdb CIo+HYOhTXezK5DTu+kiDwHgK4cK/ySaeOfGxkFbGniPTqNHw/JrKN32h056+0Mz7nMjEcZwsJB SUQTpFlaoE6iUh/N0N12FLxPuWgxBGxemgPw/hshGjRgZMtywOgceFeA0LjpezJlVedYJpltUsZ C+boSS76yVuWFuH+Z1w== X-Authority-Analysis: v=2.4 cv=b/SCJNGx c=1 sm=1 tr=0 ts=6a3d3fd1 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=IJQQmebJWjVxhimlKuwA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: aYpMZc7sk_0r220ZPaTvBlKPbjp3CA7u X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 suspectscore=0 phishscore=0 bulkscore=0 adultscore=0 clxscore=1015 spamscore=0 malwarescore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250127 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782398971396158500 From: Matheus Tavares Bernardino Signed-off-by: Matheus Tavares Bernardino Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 1 + target/hexagon/cpu.c | 19 +++++++++++++++++++ target/hexagon/op_helper.c | 16 ++++++++++++++-- 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 6a95a6bc5b1..4a12dc04727 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -220,6 +220,7 @@ G_NORETURN void hexagon_raise_exception_err(CPUHexagonS= tate *env, * not stopped. */ bool hexagon_thread_is_enabled(CPUHexagonState *thread_env); +uint32_t hexagon_greg_read(CPUHexagonState *env, uint32_t reg); void hexagon_cpu_soft_reset(CPUHexagonState *env); #endif =20 diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index b35caaecfae..06be5c8d498 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -770,6 +770,25 @@ static void hexagon_cpu_class_init(ObjectClass *c, con= st void *data) #endif } =20 +#ifndef CONFIG_USER_ONLY +uint32_t hexagon_greg_read(CPUHexagonState *env, uint32_t reg) +{ + if (reg <=3D HEX_GREG_G3) { + return env->greg[reg]; + } + switch (reg) { + case HEX_GREG_GPCYCLELO: + return hexagon_get_sys_pcycle_count_low(env); + case HEX_GREG_GPCYCLEHI: + return hexagon_get_sys_pcycle_count_high(env); + default: + qemu_log_mask(LOG_UNIMP, "reading greg %" PRId32 + " not yet supported.\n", reg); + return 0; + } +} +#endif + static void hexagon_cpu_class_base_init(ObjectClass *c, const void *data) { HexagonCPUClass *mcc =3D HEXAGON_CPU_CLASS(c); diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 8a3723cbafa..125952aee59 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1878,13 +1878,25 @@ uint64_t HELPER(sreg_read_pair)(CPUHexagonState *en= v, uint32_t reg) } =20 uint32_t HELPER(greg_read)(CPUHexagonState *env, uint32_t reg) + { - g_assert_not_reached(); + return hexagon_greg_read(env, reg); } =20 uint64_t HELPER(greg_read_pair)(CPUHexagonState *env, uint32_t reg) + { - g_assert_not_reached(); + if (reg =3D=3D HEX_GREG_G0 || reg =3D=3D HEX_GREG_G2) { + return (uint64_t)(env->greg[reg]) | + (((uint64_t)(env->greg[reg + 1])) << 32); + } + switch (reg) { + case HEX_GREG_GPCYCLELO: + return hexagon_get_sys_pcycle_count(env); + default: + return (uint64_t)hexagon_greg_read(env, reg) | + ((uint64_t)(hexagon_greg_read(env, reg + 1)) << 32); + } } =20 /* --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782399097; cv=none; d=zohomail.com; s=zohoarc; b=cIycE4063UihvnUmdO9wm3Ed0fFhI1Aohd/QNIlZsP+BBg4610vpoIQafwnEFWGyxufIz4MtG69FJjidPrsrDoo7+EGv41HtBPuUb6gJwvuhVYqKPUVszOMrMU3qlqyQCGWIVynxE+1ZNwt1GnilvTVhR4BUaI/mecRwgyuXDA0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782399097; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=IR53Mjz5etxJrjMQaZOHC4cu/qgzTKOGEQyPVYlQwQ0=; b=RP7+zD6w/owxoqj8Hgb7IWklpabwIhMrGf1qumiocEmsfnKsR0ntpzt+DFixBgLuIhKfwGzb+t3lld6wHHYnlmf5ibGIpf8qpSFhlcpR0s0VEZAVxTSWmWCnvNU238vcFqp2nNnsTrR2SJBzTu7eD2NL2y0D8kcJwSZY9TrikJo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782399097053954.6130237736377; Thu, 25 Jun 2026 07:51:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclOA-0003S1-Ml; Thu, 25 Jun 2026 10:49:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclO5-0002wK-I3 for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10: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 1wclO3-0000Cr-EM for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:49:05 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9jsbG2009301 for ; Thu, 25 Jun 2026 14:48:51 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0uhmjqw4-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:48:51 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30c84dc3574so1054947eec.0 for ; Thu, 25 Jun 2026 07:48:51 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.48.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:48:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=IR53Mjz5etxJrjMQaZOHC4cu/qgzTKOGEQyPVYlQwQ0=; b=lu KAQJHaSXtJSZEn6G5Tj59KDWZrVc+2+hasS/jHNdoqpMaIDQoDBpXbh4MaqaNrVx /NLVs/4tgsqxp1ND1eD1VAiEkMZI2/0g9pjHEZ/hNJAuNsnqwAt4D4l/0wPARiWI J0/RAyQt+5KG4QaajnHrpftX0DGREWMXQWFnjMgkpbhmq5yQF5PfxNav/4sBgSBr v2w0dEKk//TcuoWzk9hLdITNmduwK4jEB4FJI3PhFJHCaROtZ3cMYchVpGtEpQCh +PhmKJ1T3GvOnDnCN8IotA3NANMHvPAvSQKAekrmmzeHRowwXacIMSZ8K24NXJjX C40ZnOzx7MixhMD0YjXQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398931; x=1783003731; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=IR53Mjz5etxJrjMQaZOHC4cu/qgzTKOGEQyPVYlQwQ0=; b=VbbPtO9mhIgabPVFSbQR6lhAjPdghEDGD+I936cVkd9jT0MI49q5m5Jh/05h9zdqSP 9kGhSpFuxxMdqFwdPYxzorFAhviHJ1EF8uKdLExGaSy9Kcf0sSvYIUxmUGrrJ/ej3ZB+ B2GRhbzuYz2yF2DzMn4jlPXKZmAJu3xl/uYoSUhsUB+h4hg8zwMjIF3MEsRmoNrh+l8G JFYhrwdfqFJq3o+7n5LgQHvGB2Q38uGMwfwAXW232myF8a4NSbE+w/T6WowxGqXY6zL5 fYvO97VTV4D0JM7vre8olnVoWw5g7OerSEsRPLwQzWBpw8fRKTKi4RmGY/oXh1DVob++ 7fkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398931; x=1783003731; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=IR53Mjz5etxJrjMQaZOHC4cu/qgzTKOGEQyPVYlQwQ0=; b=sWElGK7/UwcMpgzMkUDcQJ97JjOqR8JfigIw0QyKqZY6gWgo7K/SJT6MQIo9TysP6B 0bY8jsQgqXptTWsxhB90zBmzD5CVZT8AmmSYWduSeQ0nQ4E+SpJ9l8B9r09bM3q+UWwN sf8589CqFkxbGNtiehQpBcrX1dCHoXWhi/543Jc9a3NVOTmUSfIC17cbywmViVIDGxvq 4nm8A6r0ND4ScEB9ohE+rejSDphLAZAhN37aktnFOAqEG0eHwI4o/yKhjvi1q+viQwHC AoS8HrwEuo/4l3bPJUOh4alQaEqZuqSxYZRB6X6Gd/c+wMiSOXQvVMfBIuWKFXY5PdC+ gcjg== X-Gm-Message-State: AOJu0YzGkIXlneHvA93sl2hs73eJ/eNBW/nBXH75PYPgUmfR8HOCk9Fs r0F5nXWN9koTdvmCFXNPJ96OFM8/II9bh6tVhQYJf3sbJ8jBNar9yOpz/fvbCG3v5TINKwqlRPk QWaeJKfApxC20Kctmz3HA/WFYJXVkB2S4s8tR8C1y79ar+2cOyDIwm68WqeOcnBmKDg== X-Gm-Gg: AfdE7cmKochN2dyP3qt/ry5RhHyjWPzXcDdzVNpvvka+y/ddBVBfXX2ywBjKKUXm+Dj UflP0BwIHaUnSiqbcT+mfM87SzsOz1XSMkE6Ae/PRarh64n2/3LHTrunJOThd7Mp8JmffNkXKUb yChwzprfVdM+GGzKsRsU0kv2Ci3ZWOM+vklbV94H20pBL4hprGt3vEItXievisut0V5jUKg6ZqQ 3YQV7jV9YXYqZBOUDht0AalnvVzbWwWXLP+LcuIehf1hOeYuEhPf3rlaP2m6wvtNVelpMF5HGdX TIy2H/NVGQKVma9DMwBgLGFptc+X06bo557ef1EmEOQwe1ko0T6VR0Qe7CLXTrNx3tV4jN2ngO1 HpYGSKppxr9+CnGyOuJlzG6pydC8b2gO3dUiZqqxXELMWwKnsYf1+X9Yuius= X-Received: by 2002:a05:7300:4316:b0:2f2:6dde:df66 with SMTP id 5a478bee46e88-30c84f3ed92mr3687672eec.22.1782398930572; Thu, 25 Jun 2026 07:48:50 -0700 (PDT) X-Received: by 2002:a05:7300:4316:b0:2f2:6dde:df66 with SMTP id 5a478bee46e88-30c84f3ed92mr3687626eec.22.1782398929798; Thu, 25 Jun 2026 07:48:49 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Sid Manning , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pierrick Bouvier Subject: [PULL v3 68/76] hw/hexagon: Add globalreg model Date: Thu, 25 Jun 2026 07:16:25 -0700 Message-Id: <20260625141633.449487-69-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=cqerVV4i c=1 sm=1 tr=0 ts=6a3d3fd3 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=ykHTVMA0J60qDn7DFlgA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX/g6sd1tjgboh y8T3MVSIP3unhyExRsL/N6AlZGXo/qpJXYpZf/KzwKwg1ubDZeLt4HIWk/D/5t7ahTUiaod4Fjl Zfn2T1dvUySWiuFPubAcChBo5cA1Y04M8LNFZ2wwZVjivJH8oCUMXu5BMrXfrupp/QSD7veMATa cRbTal9u8msQIrv03KsLmccegCZyhJFVMTO1s8JksvQguiii8qnPnD+AbJn5vaF+BZlw+lT/rwx w+02UoAIxMBN/VhueQZRRIJiMjG5FufBPzWffuUty0JigUNN8qNma5zxU7eNs+8DS+lr4qFpqgU v2pX3Qpx402VtZddGPHfEHbDHqbgaBHeqGZS9cmg6zkzw1o9Lx2jMrqg22YPUmUol2AQzLVCndO XHAyE25I1iWCNIpttx3cLHjzPVBwmGxWEIlf/3acTrRD8f9YOsIvqEAR+8JW8OjMpredP4cJGqT XMBtDW4tt6dlcDZPADQ== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfXzyOwEuSX4cul B2byQhKFR66NPqrut/mc3bczD0fuv3pzr2Uys5JEouaSFawxX7ho1A/IjJ8xSzifk/pGlImDqTS jzctMr94J1IhjhZCliGttd+8WGASXHM= X-Proofpoint-GUID: SyZOV5L1-Q2gjSAoWVIkBKDcXfnmCkee X-Proofpoint-ORIG-GUID: SyZOV5L1-Q2gjSAoWVIkBKDcXfnmCkee X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 clxscore=1015 bulkscore=0 phishscore=0 priorityscore=1501 malwarescore=0 suspectscore=0 impostorscore=0 spamscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250127 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782399098215158500 Content-Type: text/plain; charset="utf-8" Some of the system registers are shared among all threads in the core. This object contains the representation and interface to the system registers. Reviewed-by: Sid Manning Acked-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Brian Cain --- include/hw/hexagon/hexagon_globalreg.h | 55 ++++++ hw/hexagon/hexagon_globalreg.c | 243 +++++++++++++++++++++++++ 2 files changed, 298 insertions(+) create mode 100644 include/hw/hexagon/hexagon_globalreg.h create mode 100644 hw/hexagon/hexagon_globalreg.c diff --git a/include/hw/hexagon/hexagon_globalreg.h b/include/hw/hexagon/he= xagon_globalreg.h new file mode 100644 index 00000000000..950099808fd --- /dev/null +++ b/include/hw/hexagon/hexagon_globalreg.h @@ -0,0 +1,55 @@ +/* + * Hexagon Global Registers QOM Object + * + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HEXAGON_GLOBALREG_H +#define HEXAGON_GLOBALREG_H + +#include "hw/core/qdev.h" +#include "hw/core/sysbus.h" +#include "qom/object.h" +#include "target/hexagon/cpu.h" + +#define TYPE_HEXAGON_GLOBALREG "hexagon-globalreg" +OBJECT_DECLARE_SIMPLE_TYPE(HexagonGlobalRegState, HEXAGON_GLOBALREG) + +struct HexagonGlobalRegState { + SysBusDevice parent_obj; + + /* Array of system registers */ + uint32_t regs[NUM_SREGS]; + + /* Global performance cycle counter base */ + uint64_t g_pcycle_base; + + /* Properties for global register reset values */ + uint32_t boot_evb; /* Boot Exception Vector Base (HEX_SREG_E= VB) */ + uint64_t config_table_addr; /* Configuration table base */ + uint32_t dsp_rev; /* DSP revision register (HEX_SREG_REV) */ + + /* ISDB properties */ + bool isdben_etm_enable; /* ISDB ETM enable bit */ + bool isdben_dfd_enable; /* ISDB DFD enable bit */ + bool isdben_trusted; /* ISDB trusted mode bit */ + bool isdben_secure; /* ISDB secure mode bit */ +}; + +/* Public interface functions */ +uint32_t hexagon_globalreg_read(HexagonGlobalRegState *s, uint32_t reg, + uint32_t htid); +void hexagon_globalreg_write(HexagonGlobalRegState *s, uint32_t reg, + uint32_t value, uint32_t htid); +uint32_t hexagon_globalreg_masked_value(HexagonGlobalRegState *s, uint32_t= reg, + uint32_t value); +void hexagon_globalreg_write_masked(HexagonGlobalRegState *s, uint32_t reg, + uint32_t value); + +/* Global performance cycle counter access */ +uint64_t hexagon_globalreg_get_pcycle_base(HexagonGlobalRegState *s); +void hexagon_globalreg_set_pcycle_base(HexagonGlobalRegState *s, + uint64_t value); + +#endif /* HEXAGON_GLOBALREG_H */ diff --git a/hw/hexagon/hexagon_globalreg.c b/hw/hexagon/hexagon_globalreg.c new file mode 100644 index 00000000000..28cb5a4158d --- /dev/null +++ b/hw/hexagon/hexagon_globalreg.c @@ -0,0 +1,243 @@ +/* + * Hexagon Global Registers + * + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "hw/hexagon/hexagon.h" +#include "hw/hexagon/hexagon_globalreg.h" +#include "hw/core/qdev-properties.h" +#include "hw/core/sysbus.h" +#include "hw/core/resettable.h" +#include "migration/vmstate.h" +#include "qom/object.h" +#include "target/hexagon/cpu.h" +#include "target/hexagon/hex_regs.h" +#include "qemu/log.h" +#include "qapi/error.h" + +#define IMMUTABLE (~0) +#define INVALID_REG_VAL 0xdeadbeef + +/* Global system register mutability masks */ +static const uint32_t global_sreg_immut_masks[NUM_SREGS] =3D { + [HEX_SREG_EVB] =3D 0x000000ff, + [HEX_SREG_MODECTL] =3D IMMUTABLE, + [HEX_SREG_SYSCFG] =3D 0x80001c00, + [HEX_SREG_IPENDAD] =3D IMMUTABLE, + [HEX_SREG_VID] =3D 0xfc00fc00, + [HEX_SREG_VID1] =3D 0xfc00fc00, + [HEX_SREG_BESTWAIT] =3D 0xfffffe00, + [HEX_SREG_IAHL] =3D 0x00000000, + [HEX_SREG_SCHEDCFG] =3D 0xfffffee0, + [HEX_SREG_CFGBASE] =3D IMMUTABLE, + [HEX_SREG_DIAG] =3D 0x00000000, + [HEX_SREG_REV] =3D IMMUTABLE, + [HEX_SREG_ISDBST] =3D IMMUTABLE, + [HEX_SREG_ISDBCFG0] =3D 0xe0000000, + [HEX_SREG_BRKPTPC0] =3D 0x00000003, + [HEX_SREG_BRKPTCFG0] =3D 0xfc007000, + [HEX_SREG_BRKPTPC1] =3D 0x00000003, + [HEX_SREG_BRKPTCFG1] =3D 0xfc007000, + [HEX_SREG_ISDBMBXIN] =3D IMMUTABLE, + [HEX_SREG_ISDBMBXOUT] =3D 0x00000000, + [HEX_SREG_ISDBEN] =3D 0xfffffffe, + [HEX_SREG_TIMERLO] =3D IMMUTABLE, + [HEX_SREG_TIMERHI] =3D IMMUTABLE, +}; + +static void hexagon_globalreg_init(Object *obj) +{ + HexagonGlobalRegState *s =3D HEXAGON_GLOBALREG(obj); + + memset(s->regs, 0, sizeof(s->regs)); +} + +static inline uint32_t apply_write_mask(uint32_t new_val, uint32_t cur_val, + uint32_t reg_mask) +{ + if (reg_mask) { + return (new_val & ~reg_mask) | (cur_val & reg_mask); + } + return new_val; +} + +uint32_t hexagon_globalreg_read(HexagonGlobalRegState *s, uint32_t reg, + uint32_t htid) +{ + uint32_t value; + + if (!s) { + return 0; + } + g_assert(reg < NUM_SREGS); + g_assert(reg >=3D HEX_SREG_GLB_START); + + value =3D s->regs[reg]; + + return value; +} + +void hexagon_globalreg_write(HexagonGlobalRegState *s, uint32_t reg, + uint32_t value, uint32_t htid) +{ + if (!s) { + return; + } + g_assert(reg < NUM_SREGS); + g_assert(reg >=3D HEX_SREG_GLB_START); + s->regs[reg] =3D value; +} + +uint32_t hexagon_globalreg_masked_value(HexagonGlobalRegState *s, uint32_t= reg, + uint32_t value) +{ + uint32_t reg_mask; + + if (!s) { + return value; + } + g_assert(reg < NUM_SREGS); + g_assert(reg >=3D HEX_SREG_GLB_START); + reg_mask =3D global_sreg_immut_masks[reg]; + return reg_mask =3D=3D IMMUTABLE ? + s->regs[reg] : + apply_write_mask(value, s->regs[reg], reg_mask); +} + +void hexagon_globalreg_write_masked(HexagonGlobalRegState *s, uint32_t reg, + uint32_t value) +{ + if (!s) { + return; + } + s->regs[reg] =3D hexagon_globalreg_masked_value(s, reg, value); +} + +uint64_t hexagon_globalreg_get_pcycle_base(HexagonGlobalRegState *s) +{ + g_assert(s); + return s->g_pcycle_base; +} + +void hexagon_globalreg_set_pcycle_base(HexagonGlobalRegState *s, + uint64_t value) +{ + g_assert(s); + s->g_pcycle_base =3D value; +} + +static void do_hexagon_globalreg_reset(HexagonGlobalRegState *s) +{ + uint32_t isdben_val =3D 0; + + g_assert(s); + memset(s->regs, 0, sizeof(s->regs)); + + s->g_pcycle_base =3D 0; + + s->regs[HEX_SREG_EVB] =3D s->boot_evb; + s->regs[HEX_SREG_CFGBASE] =3D HEXAGON_CFG_ADDR_BASE(s->config_table_ad= dr); + s->regs[HEX_SREG_REV] =3D s->dsp_rev; + + if (s->isdben_etm_enable) { + isdben_val |=3D (1 << 0); /* ETM enable bit */ + } + if (s->isdben_dfd_enable) { + isdben_val |=3D (1 << 1); /* DFD enable bit */ + } + if (s->isdben_trusted) { + isdben_val |=3D (1 << 2); /* Trusted bit */ + } + if (s->isdben_secure) { + isdben_val |=3D (1 << 3); /* Secure bit */ + } + s->regs[HEX_SREG_ISDBEN] =3D isdben_val; + s->regs[HEX_SREG_MODECTL] =3D 0x1; + + /* + * These register indices are placeholders in these arrays + * and their actual values are synthesized from state elsewhere. + * We can initialize these with invalid values so that if we + * mistakenly generate reads, they will look obviously wrong. + */ + s->regs[HEX_SREG_PCYCLELO] =3D INVALID_REG_VAL; + s->regs[HEX_SREG_PCYCLEHI] =3D INVALID_REG_VAL; + s->regs[HEX_SREG_TIMERLO] =3D INVALID_REG_VAL; + s->regs[HEX_SREG_TIMERHI] =3D INVALID_REG_VAL; + s->regs[HEX_SREG_PMUCNT0] =3D INVALID_REG_VAL; + s->regs[HEX_SREG_PMUCNT1] =3D INVALID_REG_VAL; + s->regs[HEX_SREG_PMUCNT2] =3D INVALID_REG_VAL; + s->regs[HEX_SREG_PMUCNT3] =3D INVALID_REG_VAL; + s->regs[HEX_SREG_PMUCNT4] =3D INVALID_REG_VAL; + s->regs[HEX_SREG_PMUCNT5] =3D INVALID_REG_VAL; + s->regs[HEX_SREG_PMUCNT6] =3D INVALID_REG_VAL; + s->regs[HEX_SREG_PMUCNT7] =3D INVALID_REG_VAL; +} + +static void hexagon_globalreg_reset_hold(Object *obj, ResetType type) +{ + HexagonGlobalRegState *s =3D HEXAGON_GLOBALREG(obj); + do_hexagon_globalreg_reset(s); +} + +static const VMStateDescription vmstate_hexagon_globalreg =3D { + .name =3D "hexagon_globalreg", + .version_id =3D 1, + .minimum_version_id =3D 1, + .fields =3D (const VMStateField[]){ + VMSTATE_UINT32_ARRAY(regs, HexagonGlobalRegState, NUM_SREGS), + VMSTATE_UINT64(g_pcycle_base, HexagonGlobalRegState), + VMSTATE_UINT32(boot_evb, HexagonGlobalRegState), + VMSTATE_UINT64(config_table_addr, HexagonGlobalRegState), + VMSTATE_UINT32(dsp_rev, HexagonGlobalRegState), + VMSTATE_BOOL(isdben_etm_enable, HexagonGlobalRegState), + VMSTATE_BOOL(isdben_dfd_enable, HexagonGlobalRegState), + VMSTATE_BOOL(isdben_trusted, HexagonGlobalRegState), + VMSTATE_BOOL(isdben_secure, HexagonGlobalRegState), + VMSTATE_END_OF_LIST() + } +}; + +static const Property hexagon_globalreg_properties[] =3D { + DEFINE_PROP_UINT32("boot-evb", HexagonGlobalRegState, boot_evb, 0x0), + DEFINE_PROP_UINT64("config-table-addr", HexagonGlobalRegState, + config_table_addr, 0xffffffffULL), + DEFINE_PROP_UINT32("dsp-rev", HexagonGlobalRegState, dsp_rev, 0), + DEFINE_PROP_BOOL("isdben-etm-enable", HexagonGlobalRegState, + isdben_etm_enable, false), + DEFINE_PROP_BOOL("isdben-dfd-enable", HexagonGlobalRegState, + isdben_dfd_enable, false), + DEFINE_PROP_BOOL("isdben-trusted", HexagonGlobalRegState, + isdben_trusted, false), + DEFINE_PROP_BOOL("isdben-secure", HexagonGlobalRegState, + isdben_secure, false), +}; + +static void hexagon_globalreg_class_init(ObjectClass *klass, const void *d= ata) +{ + DeviceClass *dc =3D DEVICE_CLASS(klass); + ResettableClass *rc =3D RESETTABLE_CLASS(klass); + + rc->phases.hold =3D hexagon_globalreg_reset_hold; + dc->vmsd =3D &vmstate_hexagon_globalreg; + dc->user_creatable =3D false; + device_class_set_props(dc, hexagon_globalreg_properties); +} + +static const TypeInfo hexagon_globalreg_info =3D { + .name =3D TYPE_HEXAGON_GLOBALREG, + .parent =3D TYPE_SYS_BUS_DEVICE, + .instance_size =3D sizeof(HexagonGlobalRegState), + .instance_init =3D hexagon_globalreg_init, + .class_init =3D hexagon_globalreg_class_init, +}; + +static void hexagon_globalreg_register_types(void) +{ + type_register_static(&hexagon_globalreg_info); +} + +type_init(hexagon_globalreg_register_types) --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782399145; cv=none; d=zohomail.com; s=zohoarc; b=To37aJIiIdlfAnO1n5meX4SwjFJEsUTIbo7O0D1KcfycHPO5Be+JIyUfPzSj82YePzv63gcZt3MthJghU/dVEL9ewA+xIpar0KxkDWCoJNuE5HPfEtFpA7SaenxPoPbQkdvsDd58J4betuGA0st+jWhdadQ7KuX240YpFGglqco= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782399145; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=WuFcXxSP9Fzp6C31qhgOnqeUQp9/ystWflMVHLK8WCY=; b=W+iqGsmtvpN6/pNVivOMWnnAgWnrv76lq88VR1AG4B7vkQROXOK+xUW8Jfacn6vb7/OKtUvzBaRDWnrApJmJ1rkGsA4Cb2v/rXE9Pzq0oZiiyOagdiiNH4FD+J/UXOC4aLmv1Y9W+l1HMjISYfuOHYa6XaRFK9tM7XEDCNgGnRI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782399145936111.96649978926257; Thu, 25 Jun 2026 07:52:25 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclOC-0003c3-75; Thu, 25 Jun 2026 10:49:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclO6-0002zI-VN for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10: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 1wclO4-0000DE-6e for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:49:06 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9k9TJ1948000 for ; Thu, 25 Jun 2026 14:48:53 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0ya8su79-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:48:53 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30bcb065bfdso2721629eec.0 for ; Thu, 25 Jun 2026 07:48:53 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.48.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:48:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=WuFcXxSP9Fzp6C31qhgOnqeUQp9/ystWflMVHLK8WCY=; b=Jz dmL9RiJ08HdC6yBPndUy3LFuCddkIJnazr/+esNHg6oXa/P+61QPI95GCnMzXJS9 eTYKQx1hfUKDg/FNTj6wEyGa7sYHPK8K8tZvjXKVA4wkxoSv26co6oMpVSmroZYR Iv5XUx1lZY0rh5Gu5bwSy/84nDTmvAUFzMAKjzfbEk96vghhTGQxD+GqX42Ovq0s +rO+7I76WIyDRePNzxTKTzvtT2TuujMeC7Utdxuwb8FezyTXbsLQ7YpeoHJfOiOw jk6Ev1jR3AhvaZ2jDRozu48ZB1uNmhL6zNiMXxs5bW3sOybaChpgT4jG0K2RzxPM wifPCLcRcOYR13VQTCig== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398932; x=1783003732; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=WuFcXxSP9Fzp6C31qhgOnqeUQp9/ystWflMVHLK8WCY=; b=CR0lAyIYmfN4EPilG83ah2F9vJsADMjFB+zOQ2K+RdYL9OYerTLrDvUO0N87YOBVCK yyL/8NDRkKjF/04txzQEMR0vMbffcyPi81pNAH2oOIY1fdFTUUbhrjGPdV1gt1fWMlU7 FNLxVwG5RZyk56VFCBjTHuR5b/k+usuFHquwRaibl7XQEGagadf5BVdwaNHjMzfXKD0t id0IQn9oy4kKg4Zxp+ZsfR9YGJvtumPyYXYJqCVM9QC8MqR6zLyrLW9sP/1pw/2Z3WU+ 2QqMTsk3+7kd3ZWHIXFi8kg+XPrG1GHdVa9cOhbBZj/L1p36Hbd56xRIyAERM7JxFnIt 0l5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398932; x=1783003732; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=WuFcXxSP9Fzp6C31qhgOnqeUQp9/ystWflMVHLK8WCY=; b=fi9gLkWDfQWa6QhOagnYtlNXDsiPwzuXJkHpyjjtOtsNrwoAkmSzZmXJ75vBcCYwVE ndOGIPddIxQbOTBrShnV1gEyshpUz/1Gc7JdcReh41CEZZ/9oqV90rYspzLpnXZaLAIG 5NNEmv1lR8Glrnc0eFu7IEjX3LirV+zlNaHrXll5/gGdfNRM3tZ4MIOktF9xhoMwHD+A K21N6Hyz7YlQZpKPIgpnLA9yxOC196jiO+TNAdU2V8ogi8CeNaGVQIjZ2xllCi+wguAg ivzF7AJY2mmc6097Wstv4O871H/3WO22TJvXLdrzyR/8w728S5n4oEseAVQU79CVaXbw Uonw== X-Gm-Message-State: AOJu0YzX4xd+1ksqzlDkDOMTabB53ZZt3BKQysJlX3SzxYvocJGqRxx2 LEhK0ow20o8H8Kmy6uR6oDxanoJCsQPzIgFnjjq2EamsTRfyOJLNN2P5xnbx26yevI3jzpP5D3i jyuGtaRa0Bky6CaMifsabTb1XjsuTgnNIa8VzmSDbvLZsfgtlMwrOPO/Pplv8+r3LfQ== X-Gm-Gg: AfdE7clBbsMWdnJjJjnL6j2ka46mX7QZ15VlqqPwnRyO8RHGyaLoYGulEsGfA8l+/Ty YKCKgE83g0rW3IQbQAV8OQgqqPqpJ3+8TO2Wrl8E4PU0haC5Haay73ryYlKD2RVUxkvfavE0P5n ragN6l9rEL5LeTDHq5RNAPl56yIjzsDwe6UJK3KAvMMs7aZJWWOOuZ+jHDhl8E5v+/TTfIqKvwV zdrLJbWCpe53O2LVJoj6yJh9ft3aF8HDPh8esLNBQHBJrKo1/ciMPcu7/PT9zDCaXYmWxiR9x37 cHV2AogpvokNGuc8XgtUkwz3USD03zXLDi49orwFo47V7+5HT313pyeJYkH0SKpsuEupewpmMrk xGPFBh0tNWHWjS42BDNeEcOR3kkPddh+2cBLLk+j7Gzl2bGliDsXXRDfView= X-Received: by 2002:a05:693c:6383:10b0:30c:9051:e4be with SMTP id 5a478bee46e88-30c9051f8ecmr817133eec.35.1782398932127; Thu, 25 Jun 2026 07:48:52 -0700 (PDT) X-Received: by 2002:a05:693c:6383:10b0:30c:9051:e4be with SMTP id 5a478bee46e88-30c9051f8ecmr817090eec.35.1782398931375; Thu, 25 Jun 2026 07:48:51 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Paolo Bonzini , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL v3 69/76] hw/hexagon: Add global register tracing Date: Thu, 25 Jun 2026 07:16:26 -0700 Message-Id: <20260625141633.449487-70-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX8ZR+Sot3yeuW pz8Txxbn8ScRevowvV/VaQMIG7V0gu+JBctH3dq6p9BqAH0svqn/eoIHcBsR3Ebpy63y+uEWvsq xZ18AkY2ljNVLjcIR++snX9FGK20BSU= X-Proofpoint-GUID: KzIIMy9r56BPx9Szj7nv-_--Bsnbojp4 X-Proofpoint-ORIG-GUID: KzIIMy9r56BPx9Szj7nv-_--Bsnbojp4 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX5RhJEWz6IFf7 +B0NiILQ4xwzXD4PHn465yN7UcyG+a9fxBoWXFNRROkkV5E5ySUbzoBn0E5CfDiEMtMOGFPFmYo fk9P863Br2oxFoR900dJ9id+ZddJay+cyrgedJBk3sFaAEwE3QUVF0rc1MPw2uFPXwMU0/0XwdF E8VU5QNAelKwti4E13oPzDXsHKKRrh8KknrhYkSYJEXL2c6B7PIzLTd0FH6Asw73DdNUmcTGzG7 dZrWyPRdcWH4sSlOkPnzDoEO6p+wFOWLAE0UynBAftEl00wW/YkwDq7q4rqbzeY0FsiD8Pk1VIa l3PSBFMtlGpmi2AEpc6PPgUGKJkhT895g6aYiD97O/YPgQnZT9O/cgNUR6j5cJMpIKBTXQzTqH8 47E3P4yilT8zU4/yNdH1EGPRse38/dkQWnA8Zy8YH/wDgQ7+G4RYQDevgzK6aKKQ2XPbfXS9n19 loSE1n2SEpwcPvUFeuw== X-Authority-Analysis: v=2.4 cv=Z+Xc2nRA c=1 sm=1 tr=0 ts=6a3d3fd5 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=8QmChvNvioVktlEtA_0A:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 bulkscore=0 suspectscore=0 phishscore=0 spamscore=0 adultscore=0 lowpriorityscore=0 priorityscore=1501 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250127 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782399146578158500 Content-Type: text/plain; charset="utf-8" Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Brian Cain --- meson.build | 1 + hw/hexagon/trace.h | 2 + hw/hexagon/hexagon_globalreg.c | 73 ++++++++++++++++++++++++++++++++++ hw/hexagon/trace-events | 3 ++ 4 files changed, 79 insertions(+) create mode 100644 hw/hexagon/trace.h create mode 100644 hw/hexagon/trace-events diff --git a/meson.build b/meson.build index e026851309e..d4206a5d3f8 100644 --- a/meson.build +++ b/meson.build @@ -3599,6 +3599,7 @@ if have_system 'hw/display', 'hw/dma', 'hw/fsi', + 'hw/hexagon', 'hw/hyperv', 'hw/i2c', 'hw/i3c', diff --git a/hw/hexagon/trace.h b/hw/hexagon/trace.h new file mode 100644 index 00000000000..9e0b39f3c66 --- /dev/null +++ b/hw/hexagon/trace.h @@ -0,0 +1,2 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +#include "trace/trace-hw_hexagon.h" diff --git a/hw/hexagon/hexagon_globalreg.c b/hw/hexagon/hexagon_globalreg.c index 28cb5a4158d..b5e5913507e 100644 --- a/hw/hexagon/hexagon_globalreg.c +++ b/hw/hexagon/hexagon_globalreg.c @@ -16,11 +16,82 @@ #include "target/hexagon/cpu.h" #include "target/hexagon/hex_regs.h" #include "qemu/log.h" +#include "trace.h" #include "qapi/error.h" =20 #define IMMUTABLE (~0) #define INVALID_REG_VAL 0xdeadbeef =20 +static const char *hex_sreg_names[] =3D { + [HEX_SREG_SGP0] =3D "sgp0", + [HEX_SREG_SGP1] =3D "sgp1", + [HEX_SREG_STID] =3D "stid", + [HEX_SREG_ELR] =3D "elr", + [HEX_SREG_BADVA0] =3D "badva0", + [HEX_SREG_BADVA1] =3D "badva1", + [HEX_SREG_SSR] =3D "ssr", + [HEX_SREG_CCR] =3D "ccr", + [HEX_SREG_HTID] =3D "htid", + [HEX_SREG_BADVA] =3D "badva", + [HEX_SREG_IMASK] =3D "imask", + [HEX_SREG_GEVB] =3D "gevb", + [HEX_SREG_EVB] =3D "evb", + [HEX_SREG_MODECTL] =3D "modectl", + [HEX_SREG_SYSCFG] =3D "syscfg", + [HEX_SREG_IPENDAD] =3D "ipendad", + [HEX_SREG_VID] =3D "vid", + [HEX_SREG_VID1] =3D "vid1", + [HEX_SREG_BESTWAIT] =3D "bestwait", + [HEX_SREG_IEL] =3D "iel", + [HEX_SREG_SCHEDCFG] =3D "schedcfg", + [HEX_SREG_IAHL] =3D "iahl", + [HEX_SREG_CFGBASE] =3D "cfgbase", + [HEX_SREG_DIAG] =3D "diag", + [HEX_SREG_REV] =3D "rev", + [HEX_SREG_PCYCLELO] =3D "pcyclelo", + [HEX_SREG_PCYCLEHI] =3D "pcyclehi", + [HEX_SREG_ISDBST] =3D "isdbst", + [HEX_SREG_ISDBCFG0] =3D "isdbcfg0", + [HEX_SREG_ISDBCFG1] =3D "isdbcfg1", + [HEX_SREG_LIVELOCK] =3D "livelock", + [HEX_SREG_BRKPTPC0] =3D "brkptpc0", + [HEX_SREG_BRKPTCFG0] =3D "brkptcfg0", + [HEX_SREG_BRKPTPC1] =3D "brkptpc1", + [HEX_SREG_BRKPTCFG1] =3D "brkptcfg1", + [HEX_SREG_ISDBMBXIN] =3D "isdbmbxin", + [HEX_SREG_ISDBMBXOUT] =3D "isdbmbxout", + [HEX_SREG_ISDBEN] =3D "isdben", + [HEX_SREG_ISDBGPR] =3D "isdbgpr", + [HEX_SREG_PMUCNT4] =3D "pmucnt4", + [HEX_SREG_PMUCNT5] =3D "pmucnt5", + [HEX_SREG_PMUCNT6] =3D "pmucnt6", + [HEX_SREG_PMUCNT7] =3D "pmucnt7", + [HEX_SREG_PMUCNT0] =3D "pmucnt0", + [HEX_SREG_PMUCNT1] =3D "pmucnt1", + [HEX_SREG_PMUCNT2] =3D "pmucnt2", + [HEX_SREG_PMUCNT3] =3D "pmucnt3", + [HEX_SREG_PMUEVTCFG] =3D "pmuevtcfg", + [HEX_SREG_PMUSTID0] =3D "pmustid0", + [HEX_SREG_PMUEVTCFG1] =3D "pmuevtcfg1", + [HEX_SREG_PMUSTID1] =3D "pmustid1", + [HEX_SREG_TIMERLO] =3D "timerlo", + [HEX_SREG_TIMERHI] =3D "timerhi", + [HEX_SREG_PMUCFG] =3D "pmucfg", + [HEX_SREG_S59] =3D "s59", + [HEX_SREG_S60] =3D "s60", + [HEX_SREG_S61] =3D "s61", + [HEX_SREG_S62] =3D "s62", + [HEX_SREG_S63] =3D "s63", +}; + +static const char *get_sreg_name(uint32_t reg) +{ + if (reg < ARRAY_SIZE(hex_sreg_names) && hex_sreg_names[reg]) { + return hex_sreg_names[reg]; + } + return "UNKNOWN"; +} + /* Global system register mutability masks */ static const uint32_t global_sreg_immut_masks[NUM_SREGS] =3D { [HEX_SREG_EVB] =3D 0x000000ff, @@ -77,6 +148,7 @@ uint32_t hexagon_globalreg_read(HexagonGlobalRegState *s= , uint32_t reg, =20 value =3D s->regs[reg]; =20 + trace_hexagon_globalreg_read(htid, get_sreg_name(reg), value); return value; } =20 @@ -89,6 +161,7 @@ void hexagon_globalreg_write(HexagonGlobalRegState *s, u= int32_t reg, g_assert(reg < NUM_SREGS); g_assert(reg >=3D HEX_SREG_GLB_START); s->regs[reg] =3D value; + trace_hexagon_globalreg_write(htid, get_sreg_name(reg), value); } =20 uint32_t hexagon_globalreg_masked_value(HexagonGlobalRegState *s, uint32_t= reg, diff --git a/hw/hexagon/trace-events b/hw/hexagon/trace-events new file mode 100644 index 00000000000..5d623ed2516 --- /dev/null +++ b/hw/hexagon/trace-events @@ -0,0 +1,3 @@ +# Hexagon global register access +hexagon_globalreg_read(uint32_t htid, const char *reg_name, uint32_t value= ) "htid=3D%u reg=3D%s value=3D0x%x" +hexagon_globalreg_write(uint32_t htid, const char *reg_name, uint32_t valu= e) "htid=3D%u reg=3D%s value=3D0x%x" --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782399121; cv=none; d=zohomail.com; s=zohoarc; b=TEYH/0hcVAgFNWpuAUxZi3k7+cHO1KIVhVOSaVyqCT6j9G9E0MMui2Om9zs10kMDBn7TSQyCFEG82H9KuH+HbIIJ5JmUVEZ9aeNt3Epjdv4DWUibCgQ/TrF8Igs0iLXyy4/egcZ62DVJDho2zFss3iRd/Nj04pj2re2udMVunNk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782399121; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=EzOvoGhvtPKig+yChPX1XxYwqHpTeQ/TAqtl6EODqY0=; b=kVULsymtWeq9lU7x1z6O33FtDvcV050UXyTX+J6tnOvz10Sz2P8sJxytyqR7/jdJidBSrpMyPDp6rry9OS5L2BiV1DK9mG6qqX9rhL7O5rEUWJMLvQBnexIJNHOa/OfEi8iJleuuVD6XwibLqCiaUsQMikYwIXOumW07boCvuTg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782399121026406.5403079508659; Thu, 25 Jun 2026 07:52:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclOA-0003Ow-Gn; Thu, 25 Jun 2026 10:49:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclO8-000391-D3 for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10: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 1wclO5-0000Db-Qh for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:49:08 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9kE7s1948562 for ; Thu, 25 Jun 2026 14:48:55 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0ya8su7c-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:48:54 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c17bc96afso5089436eec.0 for ; Thu, 25 Jun 2026 07:48:54 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.48.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:48:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= EzOvoGhvtPKig+yChPX1XxYwqHpTeQ/TAqtl6EODqY0=; b=B0DMvd6wyXzpASLf wzbhEMwZ/xmVqBGKSuheIVAu0Wf1Xrdl1eLpoc4jrz4wtgz2kGxZs2rkpIx67RnX W257abpWJOcMVNOs/EpMpQ42M0MTvm7hfw1zlWU6W7Ejuwlixup5zKabiTfukn53 yyl9VYWNF+QczmzNF4l/zfqGtHj0n7L4uxObxPqxyIe5GhtcP5lf3lUIuXiZNRYS Y3UbZiXICvD8Q+CnTCBKL6CIVk3NodP5UJC5nqqQkQhNwjipN6Y5sOOhRFtpf6W7 8nWTTcEvuk9Yt+e+ySmL1eB9BedhuPRhnTyUpNAXNUDy3Ff+tzHtDVf3X6QDG6Yv Tz2t6Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398934; x=1783003734; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=EzOvoGhvtPKig+yChPX1XxYwqHpTeQ/TAqtl6EODqY0=; b=g00K0bkcVXdE7hXixpSPMxvKEGDlmSvSWsfLqq9ea0ulohyGFkzBnsueTeBeXAjR2B DILGoEOyOVJarACAY+KhBTh5UPsZkNcvQ3JxcecGwUfrTYMyoazgskdtBecgN6Bl56T+ nV5Uhq+C9KALeyfedkFTfnvI/8Qgo5S7byEfuy9XZcSrh/miChyKHnmOeVR4tpG83Glf 3qcxC27cfFYBZzH/BwN6mRfwIsO0qB8Cs+iQWKKgtaYobI5LVkDhi2lkCDsDWbEOgb3j Cq60oI+PiS52R5/bf94CP0sN7ZZtE10hL7Fdf17G+uz2+nV4AIk21NBN3yC4Q3hI5Lap 7Nmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398934; x=1783003734; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=EzOvoGhvtPKig+yChPX1XxYwqHpTeQ/TAqtl6EODqY0=; b=bYxqmNYeNPyXiVeJ0PceqUXDPSHiDXGSzNlPsg7vBnmsRskzW+RAB3ln2oK05/Q4+n doQ9u2QzG9qyrlg6I52Fty1Mjrgx8Xrbd3QnEXYOR8Yvx4bP55MxpplE1OhuxddUPrdx hwD+JjUQ3nUTUiaQQLW0vnKpWh+QYg6PHDZoC7P65vCoGHxEDFQR2OgXH1fKwYtr2H8F bYb+mQbwWR/tHrPK0CssMDXXhrIqLxOnQd4uDExfL+Gq4B4MsBcXaSRQPW7O/LVJ7khs 1KVaJ5n1r89zJVm2ekDJz1BJuMexODwWTaWybJ1nCfAyDdtU38imjXK07z1ZGOmFbxxB ICCQ== X-Gm-Message-State: AOJu0YwyEkJIzGmTstZCPI2DGHIdf23vvbqojV/dObMgMkHTJnBF2lgp /+bcybrJ/xzJscd5HMI28kh6SL/B8BrepsEoELETGmn18KuQ807HySYgNRxbAhmQ+W40EN1ViEz RMLjF/OCAONxM7OJCCYMLEUK78SX9kYMh2qGkd+28KiZVSCja7OUa1mgcNFfEWLzBHQ== X-Gm-Gg: AfdE7cmCttimkLw13kg3/Lz83QgXbWRtVYFegPablFKHQRNrXlgk//MbcgEwyamtUII umFV45eTpTzEMzadHWFHrj/15DuCmAzuZj2bNNE83szrXJ69dop6nIL8fvmMhA9rIwPNgjy9jmI suDbPtQw6vnqYoIEEZfC8PbpqYgBN/iirHo01223GLqbSJT8eCPYpWqL1SY6DuNPsImXS1hELn7 SbZ3COA9tigIoNfPAnqZYt3HwGnzRGylznx/3NEQYaZwFs4dIphQzuJmFpRHcngggRjabwvZ8mQ F2df0Wvv1Hjbdh06T/ydFDP9N2iJvYQF7gpaIxBwFvRpHnZlzFuVGtRdENkhWxIY70ilFgxCcIO iQVf4ZMof6dsEaKXtY6eeSwb8NhzwS3buk3H714ozFXxGugXXnF5awMX1lZo= X-Received: by 2002:a05:7301:198c:b0:307:3a6c:ecf4 with SMTP id 5a478bee46e88-30c84ba5a7bmr3135848eec.9.1782398933677; Thu, 25 Jun 2026 07:48:53 -0700 (PDT) X-Received: by 2002:a05:7301:198c:b0:307:3a6c:ecf4 with SMTP id 5a478bee46e88-30c84ba5a7bmr3135807eec.9.1782398933062; Thu, 25 Jun 2026 07:48:53 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Pierrick Bouvier Subject: [PULL v3 70/76] hw/hexagon: Add hexagon TLB device implementation Date: Thu, 25 Jun 2026 07:16:27 -0700 Message-Id: <20260625141633.449487-71-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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-Info: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX481cA42h+iHc hxRhy1vaZe+tZdKyxnkVkSpgAj0d8N6cXqFEV1hoV+GzByAXFV6wflpdLOqccWuC8TaH8hx7um5 ELzTlVeZbo70SZW6XzFLkRmh7QkG/6Q= X-Proofpoint-GUID: M1yXWgIt9vttY62ynZjUnym4G4VzCaRv X-Proofpoint-ORIG-GUID: M1yXWgIt9vttY62ynZjUnym4G4VzCaRv X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfXwDrdsqU1n15q sfSzpTP0W57A77EAYxAcmcTrTjXBO+xBYScvnfWwav6dRlCeuYWSe+b8jrvXjxWpjTd/KUPqamt QEiRAvzF6jC2UaLFdFZ4Y5nbzts+jUmI5wMhdLpBdv/yIUMwsBFY3XCuYU7L3t3To/f8YbXZOfC s8ghOQeCEIAIyTro4cGF8+Px2a3JqnG3XYd9Dn9B1yusfwGWaStpDLSNJTCFGClVIujbr9SVT2/ L7q+rEmXJMAnpt39U/lKi5VYsi6qmfgIJO3paJMCYHoucXXdlxJZZky0FWOL5KalirBtZtGkbu/ 7O+c7RJ1JsBTl6WjCu6+N1mFaNOQtx9qHdj63eM7BEI+46BEwsa3OPEenZsSjmLT4BCL+Djoj74 vDlsWGKPPZYVtO0Lv7EnHV/Its08uY5saYmvM2XxQ7FqTKv8iDGqzFfXnKdPwU4VTXtjWtjHiRc TvSttlT6+kxqdpFOvDQ== X-Authority-Analysis: v=2.4 cv=Z+Xc2nRA c=1 sm=1 tr=0 ts=6a3d3fd6 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=PVkRrmxsJ_TG981LwpgA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 bulkscore=0 suspectscore=0 phishscore=0 spamscore=0 adultscore=0 lowpriorityscore=0 priorityscore=1501 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250127 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782399122398158500 Add the hexagon TLB QOM device model implementation. Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- hw/hexagon/hexagon_tlb.c | 467 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 467 insertions(+) create mode 100644 hw/hexagon/hexagon_tlb.c diff --git a/hw/hexagon/hexagon_tlb.c b/hw/hexagon/hexagon_tlb.c new file mode 100644 index 00000000000..b6d4aff389e --- /dev/null +++ b/hw/hexagon/hexagon_tlb.c @@ -0,0 +1,467 @@ +/* + * Hexagon TLB QOM Device + * + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "qemu/log.h" +#include "hw/hexagon/hexagon_tlb.h" +#include "hw/core/qdev-properties.h" +#include "hw/core/resettable.h" +#include "migration/vmstate.h" +#include "monitor/monitor.h" +#include "qapi/error.h" +#include "exec/page-protection.h" +#include "exec/target_page.h" +#include "target/hexagon/cpu.h" +#include "target/hexagon/cpu_bits.h" + +/* PTE (TLB entry) field extraction */ +#define GET_PTE_PPD(entry) extract64((entry), 0, 24) +#define GET_PTE_C(entry) extract64((entry), 24, 4) +#define GET_PTE_U(entry) extract64((entry), 28, 1) +#define GET_PTE_R(entry) extract64((entry), 29, 1) +#define GET_PTE_W(entry) extract64((entry), 30, 1) +#define GET_PTE_X(entry) extract64((entry), 31, 1) +#define GET_PTE_VPN(entry) extract64((entry), 32, 20) +#define GET_PTE_ASID(entry) extract64((entry), 52, 7) +#define GET_PTE_ATR0(entry) extract64((entry), 59, 1) +#define GET_PTE_ATR1(entry) extract64((entry), 60, 1) +#define GET_PTE_PA35(entry) extract64((entry), 61, 1) +#define GET_PTE_G(entry) extract64((entry), 62, 1) +#define GET_PTE_V(entry) extract64((entry), 63, 1) + +/* PPD (physical page descriptor) */ +static inline uint64_t GET_PPD(uint64_t entry) +{ + return GET_PTE_PPD(entry) | (GET_PTE_PA35(entry) << 24); +} + +#define NO_ASID (1 << 8) + +typedef enum { + PGSIZE_4K, + PGSIZE_16K, + PGSIZE_64K, + PGSIZE_256K, + PGSIZE_1M, + PGSIZE_4M, + PGSIZE_16M, + PGSIZE_64M, + PGSIZE_256M, + PGSIZE_1G, +} tlb_pgsize_t; + +#define NUM_PGSIZE_TYPES (PGSIZE_1G + 1) + +static const char *pgsize_str[NUM_PGSIZE_TYPES] =3D { + "4K", + "16K", + "64K", + "256K", + "1M", + "4M", + "16M", + "64M", + "256M", + "1G", +}; + +#define INVALID_MASK 0xffffffffLL + +static const uint64_t encmask_2_mask[] =3D { + 0x0fffLL, /* 4k, 0000 */ + 0x3fffLL, /* 16k, 0001 */ + 0xffffLL, /* 64k, 0010 */ + 0x3ffffLL, /* 256k, 0011 */ + 0xfffffLL, /* 1m, 0100 */ + 0x3fffffLL, /* 4m, 0101 */ + 0xffffffLL, /* 16m, 0110 */ + 0x3ffffffLL, /* 64m, 0111 */ + 0xfffffffLL, /* 256m, 1000 */ + 0x3fffffffLL, /* 1g, 1001 */ + INVALID_MASK, /* RSVD, 1010 */ +}; + +static inline tlb_pgsize_t hex_tlb_pgsize_type(uint64_t entry) +{ + if (entry =3D=3D 0) { + qemu_log_mask(CPU_LOG_MMU, "%s: Supplied TLB entry was 0!\n", + __func__); + return 0; + } + tlb_pgsize_t size =3D ctz64(entry); + g_assert(size < NUM_PGSIZE_TYPES); + return size; +} + +static inline uint64_t hex_tlb_page_size_bytes(uint64_t entry) +{ + return 1ull << (qemu_target_page_bits() + 2 * hex_tlb_pgsize_type(entr= y)); +} + +static inline uint64_t hex_tlb_phys_page_num(uint64_t entry) +{ + uint32_t ppd =3D GET_PPD(entry); + return ppd >> 1; +} + +static inline uint64_t hex_tlb_phys_addr(uint64_t entry) +{ + uint64_t pagemask =3D encmask_2_mask[hex_tlb_pgsize_type(entry)]; + uint64_t pagenum =3D hex_tlb_phys_page_num(entry); + uint64_t PA =3D (pagenum << qemu_target_page_bits()) & (~pagemask); + return PA; +} + +static inline uint64_t hex_tlb_virt_addr(uint64_t entry) +{ + return (uint64_t)GET_PTE_VPN(entry) << qemu_target_page_bits(); +} + +bool hexagon_tlb_dump_entry(Monitor *mon, uint64_t entry) +{ + if (GET_PTE_V(entry)) { + uint64_t PA =3D hex_tlb_phys_addr(entry); + uint64_t VA =3D hex_tlb_virt_addr(entry); + monitor_printf(mon, "0x%016" PRIx64 ": ", entry); + monitor_printf(mon, "V:%" PRId64 " G:%" PRId64 + " A1:%" PRId64 " A0:%" PRId64, + GET_PTE_V(entry), + GET_PTE_G(entry), + GET_PTE_ATR1(entry), + GET_PTE_ATR0(entry)); + monitor_printf(mon, " ASID:0x%02" PRIx64 " VA:0x%08" PRIx64, + GET_PTE_ASID(entry), VA); + monitor_printf(mon, + " X:%" PRId64 " W:%" PRId64 " R:%" PRId64 + " U:%" PRId64 " C:%" PRId64, + GET_PTE_X(entry), + GET_PTE_W(entry), + GET_PTE_R(entry), + GET_PTE_U(entry), + GET_PTE_C(entry)); + monitor_printf(mon, " PA:0x%09" PRIx64 " SZ:%s (0x%" PRIx64 ")", + PA, pgsize_str[hex_tlb_pgsize_type(entry)], + hex_tlb_page_size_bytes(entry)); + monitor_printf(mon, "\n"); + return true; + } + + /* Not valid */ + return false; +} + +static inline bool hex_tlb_entry_match_noperm(uint64_t entry, uint32_t asi= d, + uint64_t VA) +{ + if (GET_PTE_V(entry)) { + if (GET_PTE_G(entry)) { + /* Global entry - ignore ASID */ + } else if (asid !=3D NO_ASID) { + uint32_t tlb_asid =3D GET_PTE_ASID(entry); + if (tlb_asid !=3D asid) { + return false; + } + } + + uint64_t page_size =3D hex_tlb_page_size_bytes(entry); + uint64_t page_start =3D + ROUND_DOWN(hex_tlb_virt_addr(entry), page_size); + if (page_start <=3D VA && VA < page_start + page_size) { + return true; + } + } + return false; +} + +static inline void hex_tlb_entry_get_perm(uint64_t entry, + MMUAccessType access_type, + int mmu_idx, int *prot, + int32_t *excp, int *cause_code) +{ + bool perm_x =3D GET_PTE_X(entry); + bool perm_w =3D GET_PTE_W(entry); + bool perm_r =3D GET_PTE_R(entry); + bool perm_u =3D GET_PTE_U(entry); + bool user_idx =3D mmu_idx =3D=3D MMU_USER_IDX; + + if (mmu_idx =3D=3D MMU_KERNEL_IDX) { + *prot =3D PAGE_VALID | PAGE_READ | PAGE_WRITE | PAGE_EXEC; + return; + } + + *prot =3D PAGE_VALID; + switch (access_type) { + case MMU_INST_FETCH: + if (user_idx && !perm_u) { + *excp =3D HEX_EVENT_PRECISE; + *cause_code =3D HEX_CAUSE_FETCH_NO_UPAGE; + } else if (!perm_x) { + *excp =3D HEX_EVENT_PRECISE; + *cause_code =3D HEX_CAUSE_FETCH_NO_XPAGE; + } + break; + case MMU_DATA_LOAD: + if (user_idx && !perm_u) { + *excp =3D HEX_EVENT_PRECISE; + *cause_code =3D HEX_CAUSE_PRIV_NO_UREAD; + } else if (!perm_r) { + *excp =3D HEX_EVENT_PRECISE; + *cause_code =3D HEX_CAUSE_PRIV_NO_READ; + } + break; + case MMU_DATA_STORE: + if (user_idx && !perm_u) { + *excp =3D HEX_EVENT_PRECISE; + *cause_code =3D HEX_CAUSE_PRIV_NO_UWRITE; + } else if (!perm_w) { + *excp =3D HEX_EVENT_PRECISE; + *cause_code =3D HEX_CAUSE_PRIV_NO_WRITE; + } + break; + } + + if (!user_idx || perm_u) { + if (perm_x) { + *prot |=3D PAGE_EXEC; + } + if (perm_r) { + *prot |=3D PAGE_READ; + } + if (perm_w) { + *prot |=3D PAGE_WRITE; + } + } +} + +static inline bool hex_tlb_entry_match(uint64_t entry, uint8_t asid, + uint32_t VA, + MMUAccessType access_type, hwaddr *= PA, + int *prot, uint64_t *size, + int32_t *excp, int *cause_code, + int mmu_idx) +{ + if (hex_tlb_entry_match_noperm(entry, asid, VA)) { + hex_tlb_entry_get_perm(entry, access_type, mmu_idx, prot, excp, + cause_code); + *PA =3D hex_tlb_phys_addr(entry); + *size =3D hex_tlb_page_size_bytes(entry); + return true; + } + return false; +} + +static bool hex_tlb_is_match(uint64_t entry1, uint64_t entry2, + bool consider_gbit) +{ + bool valid1 =3D GET_PTE_V(entry1); + bool valid2 =3D GET_PTE_V(entry2); + uint64_t size1 =3D hex_tlb_page_size_bytes(entry1); + uint64_t vaddr1 =3D ROUND_DOWN(hex_tlb_virt_addr(entry1), size1); + uint64_t size2 =3D hex_tlb_page_size_bytes(entry2); + uint64_t vaddr2 =3D ROUND_DOWN(hex_tlb_virt_addr(entry2), size2); + int asid1 =3D GET_PTE_ASID(entry1); + int asid2 =3D GET_PTE_ASID(entry2); + bool gbit1 =3D GET_PTE_G(entry1); + bool gbit2 =3D GET_PTE_G(entry2); + + if (!valid1 || !valid2) { + return false; + } + + if (((vaddr1 <=3D vaddr2) && (vaddr2 < (vaddr1 + size1))) || + ((vaddr2 <=3D vaddr1) && (vaddr1 < (vaddr2 + size2)))) { + if (asid1 =3D=3D asid2) { + return true; + } + if ((consider_gbit && gbit1) || gbit2) { + return true; + } + } + return false; +} + +/* Public API */ + +uint64_t hexagon_tlb_read(HexagonTLBState *tlb, uint32_t index) +{ + g_assert(index < tlb->num_entries); + return tlb->entries[index]; +} + +void hexagon_tlb_write(HexagonTLBState *tlb, uint32_t index, uint64_t valu= e) +{ + g_assert(index < tlb->num_entries); + tlb->entries[index] =3D value; +} + +bool hexagon_tlb_find_match(HexagonTLBState *tlb, uint32_t asid, + uint32_t VA, MMUAccessType access_type, + hwaddr *PA, int *prot, uint64_t *size, + int32_t *excp, int *cause_code, int mmu_idx) +{ + *PA =3D 0; + *prot =3D 0; + *size =3D 0; + *excp =3D 0; + *cause_code =3D 0; + + for (uint32_t i =3D 0; i < tlb->num_entries; i++) { + if (hex_tlb_entry_match(tlb->entries[i], asid, VA, access_type, + PA, prot, size, excp, cause_code, mmu_idx)= ) { + return true; + } + } + return false; +} + +uint32_t hexagon_tlb_lookup(HexagonTLBState *tlb, uint32_t asid, + uint32_t VA, int *cause_code) +{ + uint32_t not_found =3D 0x80000000; + uint32_t idx =3D not_found; + + for (uint32_t i =3D 0; i < tlb->num_entries; i++) { + uint64_t entry =3D tlb->entries[i]; + if (hex_tlb_entry_match_noperm(entry, asid, VA)) { + if (idx !=3D not_found) { + *cause_code =3D HEX_CAUSE_IMPRECISE_MULTI_TLB_MATCH; + break; + } + idx =3D i; + } + } + + if (idx =3D=3D not_found) { + qemu_log_mask(CPU_LOG_MMU, + "%s: 0x%" PRIx32 ", 0x%08" PRIx32 " =3D> NOT FOUND\n= ", + __func__, asid, VA); + } else { + qemu_log_mask(CPU_LOG_MMU, + "%s: 0x%" PRIx32 ", 0x%08" PRIx32 " =3D> %d\n", + __func__, asid, VA, idx); + } + + return idx; +} + +/* + * Return codes: + * 0 or positive index of match + * -1 multiple matches + * -2 no match + */ +int hexagon_tlb_check_overlap(HexagonTLBState *tlb, uint64_t entry, + uint64_t index) +{ + int matches =3D 0; + int last_match =3D 0; + + for (uint32_t i =3D 0; i < tlb->num_entries; i++) { + if (hex_tlb_is_match(entry, tlb->entries[i], false)) { + matches++; + last_match =3D i; + } + } + + if (matches =3D=3D 1) { + return last_match; + } + if (matches =3D=3D 0) { + return -2; + } + return -1; +} + +void hexagon_tlb_dump(Monitor *mon, HexagonTLBState *tlb) +{ + for (uint32_t i =3D 0; i < tlb->num_entries; i++) { + hexagon_tlb_dump_entry(mon, tlb->entries[i]); + } +} + +uint32_t hexagon_tlb_get_num_entries(HexagonTLBState *tlb) +{ + return tlb->num_entries; +} + +/* QOM lifecycle */ + +static void hexagon_tlb_init(Object *obj) +{ +} + +static void hexagon_tlb_realize(DeviceState *dev, Error **errp) +{ + HexagonTLBState *s =3D HEXAGON_TLB(dev); + + if (s->num_entries =3D=3D 0 || s->num_entries > MAX_TLB_ENTRIES) { + error_setg(errp, "Invalid TLB num-entries: %" PRIu32, + s->num_entries); + return; + } + s->entries =3D g_new0(uint64_t, s->num_entries); +} + +static void hexagon_tlb_unrealize(DeviceState *dev) +{ + HexagonTLBState *s =3D HEXAGON_TLB(dev); + g_free(s->entries); + s->entries =3D NULL; +} + +static void hexagon_tlb_reset_hold(Object *obj, ResetType type) +{ + HexagonTLBState *s =3D HEXAGON_TLB(obj); + if (s->entries) { + memset(s->entries, 0, sizeof(uint64_t) * s->num_entries); + } +} + +static const VMStateDescription vmstate_hexagon_tlb =3D { + .name =3D "hexagon-tlb", + .version_id =3D 0, + .minimum_version_id =3D 0, + .fields =3D (const VMStateField[]) { + VMSTATE_UINT32(num_entries, HexagonTLBState), + VMSTATE_VARRAY_UINT32_ALLOC(entries, HexagonTLBState, num_entries, + 0, vmstate_info_uint64, uint64_t), + VMSTATE_END_OF_LIST() + }, +}; + +static const Property hexagon_tlb_properties[] =3D { + DEFINE_PROP_UINT32("num-entries", HexagonTLBState, num_entries, + MAX_TLB_ENTRIES), +}; + +static void hexagon_tlb_class_init(ObjectClass *klass, const void *data) +{ + DeviceClass *dc =3D DEVICE_CLASS(klass); + ResettableClass *rc =3D RESETTABLE_CLASS(klass); + + dc->realize =3D hexagon_tlb_realize; + dc->unrealize =3D hexagon_tlb_unrealize; + rc->phases.hold =3D hexagon_tlb_reset_hold; + dc->vmsd =3D &vmstate_hexagon_tlb; + dc->user_creatable =3D false; + device_class_set_props(dc, hexagon_tlb_properties); +} + +static const TypeInfo hexagon_tlb_info =3D { + .name =3D TYPE_HEXAGON_TLB, + .parent =3D TYPE_SYS_BUS_DEVICE, + .instance_size =3D sizeof(HexagonTLBState), + .instance_init =3D hexagon_tlb_init, + .class_init =3D hexagon_tlb_class_init, +}; + +static void hexagon_tlb_register_types(void) +{ + type_register_static(&hexagon_tlb_info); +} + +type_init(hexagon_tlb_register_types) --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782399104; cv=none; d=zohomail.com; s=zohoarc; b=mzZbWjH1PVefQDMo79FAaOtVl1CV5WanamCB4x2bcskJ/kYUgH6vmPEI3UgsGGhOKWtH4Oxvf9yQ6LYQ2CDvTdP/5rQ9w8DbTdRxeljvhgEq6XVv6jnCTQ8vdBnmKgxCsHT5VXssqr8Wg+e/p29IFn+xViNPrlR2mRCdrQLc3qY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782399104; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=l0ub0LQTusEky/jbhnJx1qS1ayN/zdRG9RpvcebfSnY=; b=aErlj8zEOcMm+sqbt82UNdyJd15OCwH/lHTpjwIYwwMrsduMJ0zMxMOKDE3TP08Tp8PGqBAQmJ8Og28ku5D15Qe2KXRhcCWe60Fg0ns8vkENqkNbeFWehWL32QM7oHJH6pwPIxYaTFwRdWTcRcwWxcAlAxvGXvwIya0TDn+vVso= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782399103927638.451352300098; Thu, 25 Jun 2026 07:51:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclOF-00041U-1b; Thu, 25 Jun 2026 10:49:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclOC-0003gU-8D for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:49:12 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclO9-0000E9-30 for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:49:11 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9kJgE1948759 for ; Thu, 25 Jun 2026 14:48:57 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0ya8su7h-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:48:56 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30c84dc3574so1055129eec.0 for ; Thu, 25 Jun 2026 07: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 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.48.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07: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= l0ub0LQTusEky/jbhnJx1qS1ayN/zdRG9RpvcebfSnY=; b=J2I3AKopG87JKzNh hnbkSrxVk36m1TW5lATtH+0gwZcNsvm69jm/EpfWsg4r8YHggpbiNVx4+KfcucU8 6omE72iQXguK0oGtFo4FqpmrfGdq4GHE/qeRdfzOLO9WmNvDLHpOKaWnz/vBjGe4 T4PykiMIiibmmGPsHswrzdc49Jn4GNwGZ7+wUbbPHczSEUW9PNZPIbPVrW1eIBvg rNBeXJ7+nJCkVdtzfgmrd3THv30P9sjUPlyO7oSjObizYTLT0rTnkv3QiLMBkOaJ kTY3ti5KaEqqYhjV48qnm/hVTrcqUvcBbDHfiLEarhfIQyYmu14pXIHJGmnUkaiv rkmF7Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398936; x=1783003736; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=l0ub0LQTusEky/jbhnJx1qS1ayN/zdRG9RpvcebfSnY=; b=Cki+ZVKFf83DlR/xVAhGVgVFaPwItl1QssX9HJyPOxnWr6bVvDC8+VGH9i7Y6Q1GrA FMAEyi1zA0pPId6LXSBphwpgtjCEXGoZ8WAaIuZLCTIVSbsvPziMSbSoICihL10fO6Cy s3tMjCEXMt+eEDk8w4NEpHAuxz5FpFmDRy0tcPcFSBe26yuZwmo6O58BwXhbLvejlysN mQUU1UkyzvVoHq2wmuaSSMH4/tEJoj+cV5PniyIfbJAoXKxMAY6+3OcmnxS4AH2q7ZTD HsUj8cR4uYiGjJ5T37zP119sWEgHJ5Ax+E2cHR1tVPKMzsojZfCZ4N3yBjQ5ejS26QXz ko5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398936; x=1783003736; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=l0ub0LQTusEky/jbhnJx1qS1ayN/zdRG9RpvcebfSnY=; b=DOxi8unWh1XSNM5wk3G2/JNpoworJdbQwFrenPsRhcI4qxO07vKNdmk5qYIMMWsARL A2K6LD/35CMe1g/Pyyq6XkOBiBTnt70kWkxC5EEP1nw3AZP56AM8T381k6+WujXlSTvF KSb3em/Laosp3DiM/loMfAMnEdyCfQPDjrS3hBNuqCYc82DtlkQddS2thJxZlNv/LtsY FkVL+fRdGmoc9GfsIllvOsEnQD47Zio0VnERkswf3r13y28kxKiZqF8L6/c6ZBRIqeko fSVadoCZ1jXsvK7ivbF1wtDOjM1V4jhnSp761T8Jl7ZFkbx4BKfIBv4PwbkRexvgfzVd qb3w== X-Gm-Message-State: AOJu0YzB0bsEBuCeCoydhrXq7VJGvCm+kRJcJpWL5rRfVkNyiCjJK5cL cEc8VZZI+z4F5v0VD6s96rb6EAandZ22xW9jJO8JATKzC2Bvzaw/z5hwI0bIRweoeBU8vsxchLd 99xX7ZKMf6AHa6fmsASt/r3klE7oTInX+ezzWfshMUtcWx3tOnnoc95AEn3/mdnpXXA== X-Gm-Gg: AfdE7clPkodSkxhFS0RhAst9BjuKanYxMguHJ4yriPrMDk/xRMhGFoFTlbBzh2+OCuQ e36ozbp2cH9HCHGWdCCteZ/NC1z3/uK4E9vjcuZ+E+3OXqAuuTfg+gdAeT3xQGtzZEotccWM5gT 0kQA6iJx+svMc0zvesivMF2YqVoxLWY/OHtJPTwasAXgAkklTjasmuBhZELJD2Yn6idaZAP0xwL 9G8WEREy/zgvf9SnQUtYVpoqNtTMgqDoribBGM9KqTkBUnaBThTb3cF0Xeiaxasa/INtL6ONAq8 4QQbG9SXKO7QtNm/4RYYr4UiJNpRyxAkyHkN/wsLzOWadguomSEEDaK9Kabq5Ej8fSYvIn4rNMH N3lAWrcC5EMJNTwbGVqQ46OJkl+QtcfyHpu0UbKM7+jCa2a6GhLfsvHjL97I= X-Received: by 2002:a05:7300:2320:b0:304:54d6:20f3 with SMTP id 5a478bee46e88-30c84d12a65mr3057998eec.4.1782398935526; Thu, 25 Jun 2026 07:48:55 -0700 (PDT) X-Received: by 2002:a05:7300:2320:b0:304:54d6:20f3 with SMTP id 5a478bee46e88-30c84d12a65mr3057947eec.4.1782398934746; Thu, 25 Jun 2026 07:48:54 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Markus Armbruster , Mike Lambert , Sid Manning , Pierrick Bouvier , Paolo Bonzini , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= Subject: [PULL v3 71/76] hw/hexagon: Add machine configs for sysemu Date: Thu, 25 Jun 2026 07:16:28 -0700 Message-Id: <20260625141633.449487-72-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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-Info: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX6RuRFTZdq20y IcTxB4UMV2HWT5mS6Pf9ifNq7Agh4YQhzcdQAmaXPTx9mCzbBw2qAfOq2vbiTX2MpGAmZyMVve6 bs5CjdsroxP5520OrCJnYK72jUJnx4g= X-Proofpoint-GUID: Jz8Ildymk6nPgeCzcViYLfZFuPqWfMug X-Proofpoint-ORIG-GUID: Jz8Ildymk6nPgeCzcViYLfZFuPqWfMug X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX54BJ5dhCguDR kuyEBZebLlc94OXlU9azD7NHUs/9bu4YcL9T3QTfyLsYTrSpU4Tbx4eVce2DyDlUV2nlJMzkRYE fyjS3bWRx9mwgK9aa/JZqgBr4FgybFWK+9jXHNMgrr2MKniW4cS5bL3DtW/WAf6ER0Pv2BAhhUV lP5JyS4tqpAMxLkXMpAIxwMM1OvpwGjTUIJsArenjFgH4LPa5HtYvZLmPb7nPl9wKZImK3Eam5b F6902UUydMvJrGEDL01gJZJdXjgzFCAYPQN0KWcdeO2TWZ3hooNIkEbaKOvKCqKfgdCogF2kS9e /twQ7/85XJYheKvWo0nWQVlg4nEQ5d0P2RDfFbwTz4G546XfYP1BTQpzEelZKjSpKjI5WsME9lL /0EVClbLg5NS5L9NeWCbhWNEEv439IHunWMC2peyR1sVHD8qQNdXvPko0pUK8jPmg2ndSKO49lW +oCLekuaui1th7b7G2Q== X-Authority-Analysis: v=2.4 cv=Z+Xc2nRA c=1 sm=1 tr=0 ts=6a3d3fd8 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=COk6AnOGAAAA:8 a=20KFwNOVAAAA:8 a=EUspDBNiAAAA:8 a=eE4CN_At-pr7qPS3jZsA:9 a=hiJlUhq8NronkB9Q:21 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 bulkscore=0 suspectscore=0 phishscore=0 spamscore=0 adultscore=0 lowpriorityscore=0 priorityscore=1501 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250127 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782399106275158500 From: Brian Cain Some header includes are modified here: these are uniquely required for basic system emulation functionality and had not been required for linux-us= er. Acked-by: Markus Armbruster Co-authored-by: Mike Lambert Co-authored-by: Sid Manning Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- MAINTAINERS | 12 ++ include/hw/hexagon/hexagon.h | 161 ++++++++++++++++++ hw/hexagon/machine_cfg_v66g_1024.h.inc | 64 +++++++ hw/hexagon/hexagon_dsp.c | 221 +++++++++++++++++++++++++ system/qdev-monitor.c | 2 +- target/hexagon/translate.c | 1 + hw/Kconfig | 1 + hw/hexagon/Kconfig | 4 + hw/hexagon/meson.build | 6 + hw/meson.build | 1 + 10 files changed, 472 insertions(+), 1 deletion(-) create mode 100644 include/hw/hexagon/hexagon.h create mode 100644 hw/hexagon/machine_cfg_v66g_1024.h.inc create mode 100644 hw/hexagon/hexagon_dsp.c create mode 100644 hw/hexagon/Kconfig create mode 100644 hw/hexagon/meson.build diff --git a/MAINTAINERS b/MAINTAINERS index 9d195e56ce9..44063d6e13b 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1344,6 +1344,18 @@ F: pc-bios/hppa-firmware.img F: roms/seabios-hppa/ F: tests/functional/hppa/ =20 +Hexagon Machines +---------------- +V66G_1024, V68N_1024, sa8775-cdsp0 +M: Brian Cain +R: Pierrick Bouvier +S: Supported +F: hw/hexagon/ +F: include/hw/hexagon/ +F: configs/devices/hexagon-softmmu/default.mak +F: docs/system/hexagon/ +F: docs/devel/hexagon-sys.rst + LoongArch Machines ------------------ Virt diff --git a/include/hw/hexagon/hexagon.h b/include/hw/hexagon/hexagon.h new file mode 100644 index 00000000000..1034b09c2ac --- /dev/null +++ b/include/hw/hexagon/hexagon.h @@ -0,0 +1,161 @@ +/* + * Hexagon Baseboard System emulation. + * + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * SPDX-License-Identifier: GPL-2.0-or-later + */ + + +#ifndef HW_HEXAGON_H +#define HW_HEXAGON_H + +#include "system/memory.h" +#include "hw/core/boards.h" + +struct hexagon_board_boot_info { + uint64_t ram_size; + const char *kernel_filename; + uint32_t kernel_elf_flags; +}; + +typedef enum { + unknown_rev =3D 0, + v66_rev =3D 0xa666, + v67_rev =3D 0x2667, + v68_rev =3D 0x8d68, + v69_rev =3D 0x8c69, + v71_rev =3D 0x8c71, + v73_rev =3D 0x8c73, + v73m_rev =3D 0xcc73, +} Rev_t; +#define HEXAGON_LATEST_REV v73 +#define HEXAGON_LATEST_REV_UPPER V73 + +/* + * Config table address bases represent bits [35:16]. + */ +#define HEXAGON_CFG_ADDR_BASE(addr) (((addr) >> 16) & 0x0fffff) + +#define HEXAGON_CFGSPACE_ENTRIES (128) + +union hexagon_config_table { + struct { + /* Base address of L2TCM space */ + uint32_t l2tcm_base; + uint32_t reserved0; + /* Base address of subsystem space */ + uint32_t subsystem_base; + /* Base address of ETM space */ + uint32_t etm_base; + /* Base address of L2 configuration space */ + uint32_t l2cfg_base; + uint32_t reserved1; + /* Base address of L1S */ + uint32_t l1s0_base; + /* Base address of AXI2 */ + uint32_t axi2_lowaddr; + /* Base address of streamer base */ + uint32_t streamer_base; + uint32_t reserved2; + /* Base address of fast L2VIC */ + uint32_t fastl2vic_base; + /* Number of entries in JTLB */ + uint32_t jtlb_size_entries; + /* Coprocessor type */ + uint32_t coproc_present; + /* Number of extension execution contexts available */ + uint32_t ext_contexts; + /* Base address of Hexagon Vector Tightly Coupled Memory (VTCM) */ + uint32_t vtcm_base; + /* Size of VTCM (in KB) */ + uint32_t vtcm_size_kb; + /* L2 tag size */ + uint32_t l2tag_size; + /* Amount of physical L2 memory in released version */ + uint32_t l2ecomem_size; + /* Hardware threads available on the core */ + uint32_t thread_enable_mask; + /* Base address of the ECC registers */ + uint32_t eccreg_base; + /* L2 line size */ + uint32_t l2line_size; + /* Small Core processor (also implies audio extension) */ + uint32_t tiny_core; + /* Size of L2TCM */ + uint32_t l2itcm_size; + /* Base address of L2-ITCM */ + uint32_t l2itcm_base; + uint32_t reserved3; + /* DTM is present */ + uint32_t dtm_present; + /* Version of the DMA */ + uint32_t dma_version; + /* Native HVX vector length in log of bytes */ + uint32_t hvx_vec_log_length; + /* Core ID of the multi-core */ + uint32_t core_id; + /* Number of multi-core cores */ + uint32_t core_count; + uint32_t coproc2_reg0; + uint32_t coproc2_reg1; + /* Supported HVX vector length */ + uint32_t v2x_mode; + uint32_t coproc2_reg2; + uint32_t coproc2_reg3; + uint32_t coproc2_reg4; + uint32_t coproc2_reg5; + uint32_t coproc2_reg6; + uint32_t coproc2_reg7; + /* Voltage droop mitigation technique parameter */ + uint32_t acd_preset; + /* Voltage droop mitigation technique parameter */ + uint32_t mnd_preset; + /* L1 data cache size (in KB) */ + uint32_t l1d_size_kb; + /* L1 instruction cache size in (KB) */ + uint32_t l1i_size_kb; + /* L1 data cache write policy: see HexagonL1WritePolicy */ + uint32_t l1d_write_policy; + /* VTCM bank width */ + uint32_t vtcm_bank_width; + uint32_t reserved4; + uint32_t reserved5; + uint32_t reserved6; + uint32_t coproc2_cvt_mpy_size; + uint32_t consistency_domain; + uint32_t capacity_domain; + uint32_t axi3_lowaddr; + uint32_t coproc2_int8_subcolumns; + uint32_t corecfg_present; + uint32_t coproc2_fp16_acc_exp; + uint32_t AXIM2_secondary_base; + }; + uint32_t raw[HEXAGON_CFGSPACE_ENTRIES]; +}; + +struct hexagon_machine_config { + /* Base address of config table */ + uint32_t cfgbase; + /* Size of L2 TCM */ + uint32_t l2tcm_size; + /* Base address of L2VIC */ + uint32_t l2vic_base; + /* Size of L2VIC region */ + uint32_t l2vic_size; + /* QTimer csr base */ + uint32_t csr_base; + uint32_t qtmr_region; + union hexagon_config_table cfgtable; +}; + +#define TYPE_HEXAGON_COMMON_MACHINE "hexagon-common-machine" +OBJECT_DECLARE_SIMPLE_TYPE(HexagonCommonMachineState, HEXAGON_COMMON_MACHI= NE) + +struct HexagonCommonMachineState { + MachineState parent_obj; + + MemoryRegion ram; + MemoryRegion cfgtable_rom; +}; + +#endif diff --git a/hw/hexagon/machine_cfg_v66g_1024.h.inc b/hw/hexagon/machine_cf= g_v66g_1024.h.inc new file mode 100644 index 00000000000..cc4d89b89c9 --- /dev/null +++ b/hw/hexagon/machine_cfg_v66g_1024.h.inc @@ -0,0 +1,64 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +static const struct hexagon_machine_config v66g_1024 =3D { + .cfgbase =3D 0xd8180000, + .l2tcm_size =3D 0x00000000, + .l2vic_base =3D 0xfc910000, + .l2vic_size =3D 0x00001000, + .csr_base =3D 0xfc900000, + .qtmr_region =3D 0xfc921000, + .cfgtable =3D { + .l2tcm_base =3D 0x0000d800, + .reserved0 =3D 0x0000d400, + .subsystem_base =3D 0x0000fc90, + .etm_base =3D 0x0000d805, + .l2cfg_base =3D 0x0000d81a, + .reserved1 =3D 0x00000000, + .l1s0_base =3D 0x0000d820, + .axi2_lowaddr =3D 0x00003000, + .streamer_base =3D 0x00000000, + .reserved2 =3D 0x0000d819, + .fastl2vic_base =3D 0x0000d81e, + .jtlb_size_entries =3D 0x00000080, + .coproc_present =3D 0x00000001, + .ext_contexts =3D 0x00000004, + .vtcm_base =3D 0x0000d820, + .vtcm_size_kb =3D 0x00000100, + .l2tag_size =3D 0x00000400, + .l2ecomem_size =3D 0x00000400, + .thread_enable_mask =3D 0x0000000f, + .eccreg_base =3D 0x0000d81f, + .l2line_size =3D 0x00000080, + .tiny_core =3D 0x00000000, + .l2itcm_size =3D 0x00000000, + .l2itcm_base =3D 0x0000d820, + .reserved3 =3D 0x00000000, + .dtm_present =3D 0x00000000, + .dma_version =3D 0x00000000, + .hvx_vec_log_length =3D 0x00000080, + .core_id =3D 0x00000000, + .core_count =3D 0x00000000, + .coproc2_reg0 =3D 0x00000000, + .coproc2_reg1 =3D 0x00000000, + .v2x_mode =3D 0x00000000, + .coproc2_reg2 =3D 0x00000000, + .coproc2_reg3 =3D 0x00000000, + .coproc2_reg4 =3D 0x00000000, + .coproc2_reg5 =3D 0x00000000, + .coproc2_reg6 =3D 0x00000000, + .coproc2_reg7 =3D 0x00000000, + .acd_preset =3D 0x00000000, + .mnd_preset =3D 0x00000000, + .l1d_size_kb =3D 0x00000000, + .l1i_size_kb =3D 0x00000000, + .l1d_write_policy =3D 0x00000000, + .vtcm_bank_width =3D 0x00000000, + .reserved4 =3D 0x00000000, + .reserved5 =3D 0x00000000, + .reserved6 =3D 0x00000000, + .coproc2_cvt_mpy_size =3D 0x00000000, + .consistency_domain =3D 0x00000000, + .capacity_domain =3D 0x00000000, + .axi3_lowaddr =3D 0x00000000, + }, +}; diff --git a/hw/hexagon/hexagon_dsp.c b/hw/hexagon/hexagon_dsp.c new file mode 100644 index 00000000000..ac01d359928 --- /dev/null +++ b/hw/hexagon/hexagon_dsp.c @@ -0,0 +1,221 @@ +/* + * Hexagon DSP Subsystem emulation. This represents a generic DSP + * subsystem with few peripherals, like the Compute DSP. + * + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + + +#include "qemu/osdep.h" +#include "qemu/units.h" +#include "system/address-spaces.h" +#include "hw/core/boards.h" +#include "hw/core/qdev-properties.h" +#include "hw/hexagon/hexagon.h" +#include "hw/hexagon/hexagon_globalreg.h" +#include "hw/hexagon/hexagon_tlb.h" +#include "hw/core/loader.h" +#include "qapi/error.h" +#include "qemu/error-report.h" +#include "qemu/log.h" +#include "elf.h" +#include "cpu.h" +#include "migration/cpu.h" +#include "system/system.h" +#include "target/hexagon/internal.h" +#include "system/physmem.h" +#include "system/reset.h" + +#include "machine_cfg_v66g_1024.h.inc" + +#define TYPE_HEXAGON_DSP_MACHINE "hexagon-dsp-machine" +OBJECT_DECLARE_SIMPLE_TYPE(HexagonDspMachineState, HEXAGON_DSP_MACHINE) + +struct HexagonDspMachineState { + HexagonCommonMachineState parent_obj; + + hwaddr isdb_secure_flag; + hwaddr isdb_trusted_flag; +}; + +static HexagonDspMachineState *current_dms; + +static void hex_symbol_callback(const char *st_name, int st_info, + uint64_t st_value, uint64_t st_size) +{ + if (!g_strcmp0("isdb_secure_flag", st_name)) { + current_dms->isdb_secure_flag =3D st_value; + } + if (!g_strcmp0("isdb_trusted_flag", st_name)) { + current_dms->isdb_trusted_flag =3D st_value; + } +} + +/* Board init. */ +static struct hexagon_board_boot_info hexagon_binfo; + +static void hexagon_load_kernel(HexagonDspMachineState *dms, HexagonCPU *c= pu) +{ + uint64_t pentry; + long kernel_size; + + current_dms =3D dms; + kernel_size =3D load_elf_ram_sym(hexagon_binfo.kernel_filename, NULL, = NULL, + NULL, &pentry, NULL, NULL, + &hexagon_binfo.kernel_elf_flags, 0, EM_HEXAGON, 0, 0, + &address_space_memory, false, hex_symbol_callback); + current_dms =3D NULL; + + if (kernel_size <=3D 0) { + error_report("no kernel file '%s'", + hexagon_binfo.kernel_filename); + exit(1); + } + + qdev_prop_set_uint32(DEVICE(cpu), "exec-start-addr", pentry); +} + +static void hexagon_init_bootstrap(HexagonDspMachineState *dms, HexagonCPU= *cpu) +{ + MachineState *machine =3D MACHINE(dms); + + if (machine->kernel_filename) { + uint32_t mem =3D 1; + + hexagon_load_kernel(dms, cpu); + if (dms->isdb_secure_flag) { + physical_memory_write(dms->isdb_secure_flag, + &mem, sizeof(mem)); + } + if (dms->isdb_trusted_flag) { + physical_memory_write(dms->isdb_trusted_flag, + &mem, sizeof(mem)); + } + } +} + +static void do_cpu_reset(void *opaque) +{ + HexagonCPU *cpu =3D opaque; + CPUState *cs =3D CPU(cpu); + cpu_reset(cs); +} + +static void hexagon_common_init(MachineState *machine, Rev_t rev, + const struct hexagon_machine_config *m_cfg) +{ + HexagonCommonMachineState *hms =3D HEXAGON_COMMON_MACHINE(machine); + HexagonDspMachineState *dms =3D HEXAGON_DSP_MACHINE(machine); + MemoryRegion *address_space; + DeviceState *glob_regs_dev; + DeviceState *tlb_dev; + + memset(&hexagon_binfo, 0, sizeof(hexagon_binfo)); + if (machine->kernel_filename) { + hexagon_binfo.ram_size =3D machine->ram_size; + hexagon_binfo.kernel_filename =3D machine->kernel_filename; + } + + machine->enable_graphics =3D 0; + + address_space =3D get_system_memory(); + + memory_region_init_rom(&hms->cfgtable_rom, NULL, "config_table.rom", + sizeof(m_cfg->cfgtable), &error_fatal); + memory_region_add_subregion(address_space, m_cfg->cfgbase, + &hms->cfgtable_rom); + + memory_region_init_ram(&hms->ram, NULL, "ddr.ram", + machine->ram_size, &error_fatal); + memory_region_add_subregion(address_space, 0x0, &hms->ram); + + glob_regs_dev =3D qdev_new(TYPE_HEXAGON_GLOBALREG); + object_property_add_child(OBJECT(machine), "global-regs", + OBJECT(glob_regs_dev)); + qdev_prop_set_uint64(glob_regs_dev, "config-table-addr", m_cfg->cfgbas= e); + qdev_prop_set_uint32(glob_regs_dev, "dsp-rev", rev); + sysbus_realize_and_unref(SYS_BUS_DEVICE(glob_regs_dev), &error_fatal); + + tlb_dev =3D qdev_new(TYPE_HEXAGON_TLB); + object_property_add_child(OBJECT(machine), "tlb", OBJECT(tlb_dev)); + qdev_prop_set_uint32(tlb_dev, "num-entries", + m_cfg->cfgtable.jtlb_size_entries); + sysbus_realize_and_unref(SYS_BUS_DEVICE(tlb_dev), &error_fatal); + + for (int i =3D 0; i < machine->smp.cpus; i++) { + HexagonCPU *cpu =3D HEXAGON_CPU(object_new(machine->cpu_type)); + qemu_register_reset(do_cpu_reset, cpu); + + /* + * CPU #0 is the only CPU running at boot, others must be + * explicitly enabled via start instruction. + */ + qdev_prop_set_bit(DEVICE(cpu), "start-powered-off", (i !=3D 0)); + if (i =3D=3D 0) { + hexagon_init_bootstrap(dms, cpu); + } + object_property_set_link(OBJECT(cpu), "global-regs", + OBJECT(glob_regs_dev), &error_fatal); + object_property_set_link(OBJECT(cpu), "tlb", + OBJECT(tlb_dev), &error_fatal); + qdev_realize_and_unref(DEVICE(cpu), NULL, &error_fatal); + } +} + +static void init_mc(MachineClass *mc) +{ + mc->block_default_type =3D IF_SD; + mc->default_ram_size =3D 4 * GiB; + mc->no_parallel =3D 1; + mc->no_floppy =3D 1; + mc->no_cdrom =3D 1; + mc->no_serial =3D 1; + mc->is_default =3D false; + mc->max_cpus =3D 8; +} + +/* ----------------------------------------------------------------- */ +/* Core-specific configuration settings are defined below this line. */ +/* Config table values defined in machine_configs.h.inc */ +/* ----------------------------------------------------------------- */ + +static void v66g_1024_config_init(MachineState *machine) +{ + hexagon_common_init(machine, v66_rev, &v66g_1024); +} + +static void v66g_1024_init(ObjectClass *oc, const void *data) +{ + MachineClass *mc =3D MACHINE_CLASS(oc); + + mc->desc =3D "Hexagon V66G_1024"; + mc->init =3D v66g_1024_config_init; + init_mc(mc); + mc->is_default =3D true; + mc->default_cpu_type =3D TYPE_HEXAGON_CPU_V66; + mc->default_cpus =3D 4; +} + +static const TypeInfo hexagon_machine_types[] =3D { + { + .name =3D TYPE_HEXAGON_COMMON_MACHINE, + .parent =3D TYPE_MACHINE, + .instance_size =3D sizeof(HexagonCommonMachineState), + .abstract =3D true, + }, + { + .name =3D TYPE_HEXAGON_DSP_MACHINE, + .parent =3D TYPE_HEXAGON_COMMON_MACHINE, + .instance_size =3D sizeof(HexagonDspMachineState), + .abstract =3D true, + }, + { + .name =3D MACHINE_TYPE_NAME("V66G_1024"), + .parent =3D TYPE_HEXAGON_DSP_MACHINE, + .class_init =3D v66g_1024_init, + }, +}; + +DEFINE_TYPES(hexagon_machine_types) diff --git a/system/qdev-monitor.c b/system/qdev-monitor.c index dfc95a08c10..00fed791cce 100644 --- a/system/qdev-monitor.c +++ b/system/qdev-monitor.c @@ -71,7 +71,7 @@ typedef struct QDevAlias QEMU_ARCH_SPARC | \ QEMU_ARCH_XTENSA) #define QEMU_ARCH_VIRTIO_CCW (QEMU_ARCH_S390X) -#define QEMU_ARCH_VIRTIO_MMIO (QEMU_ARCH_M68K) +#define QEMU_ARCH_VIRTIO_MMIO (QEMU_ARCH_M68K | QEMU_ARCH_HEXAGON) =20 /* Please keep this table sorted by typename. */ static const QDevAlias qdev_alias_table[] =3D { diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index e0418ee990d..77235916f4b 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -32,6 +32,7 @@ #include "translate.h" #include "genptr.h" #include "printinsn.h" +#include "exec/target_page.h" =20 #define HELPER_H "helper.h" #include "exec/helper-info.c.inc" diff --git a/hw/Kconfig b/hw/Kconfig index c109f5537b2..c92ca2b13a3 100644 --- a/hw/Kconfig +++ b/hw/Kconfig @@ -53,6 +53,7 @@ source arm/Kconfig source cpu/Kconfig source alpha/Kconfig source avr/Kconfig +source hexagon/Kconfig source hppa/Kconfig source i386/Kconfig source loongarch/Kconfig diff --git a/hw/hexagon/Kconfig b/hw/hexagon/Kconfig new file mode 100644 index 00000000000..cdf7770a305 --- /dev/null +++ b/hw/hexagon/Kconfig @@ -0,0 +1,4 @@ +config HEX_DSP + bool + default y + depends on HEXAGON diff --git a/hw/hexagon/meson.build b/hw/hexagon/meson.build new file mode 100644 index 00000000000..f528d2bc4ab --- /dev/null +++ b/hw/hexagon/meson.build @@ -0,0 +1,6 @@ +hexagon_ss =3D ss.source_set() +hexagon_ss.add(files('hexagon_tlb.c')) +hexagon_ss.add(files('hexagon_globalreg.c')) +hexagon_ss.add(when: 'CONFIG_HEX_DSP', if_true: files('hexagon_dsp.c')) + +hw_arch +=3D {'hexagon': hexagon_ss} diff --git a/hw/meson.build b/hw/meson.build index ef65ba51950..7fa81db453e 100644 --- a/hw/meson.build +++ b/hw/meson.build @@ -3,6 +3,7 @@ subdir('alpha') subdir('arm') subdir('avr') subdir('hppa') +subdir('hexagon') subdir('xenpv') # i386 uses it subdir('i386') subdir('loongarch') --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782399105; cv=none; d=zohomail.com; s=zohoarc; b=n9/0l96kjEqutqz0D3C5nzuySQ4VOmrR1VMzuWhfTw2kkPDCyyXfKOYznw/PK6DXiPas18RXzPAiUt41YywySkNpsnbzuuhlwwYZlDHFgsT84eJtnyvYMKe8drBs328v6uXFvRlcsSuZEXMMmB9woqTaUuBn4gTBQ/ePYD5+JvE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782399105; 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=koogbpqsRfa0PrvfbI4x1+QqWqwbbpCsK4Ya9bbJIn4=; b=L6q9gvHwiEHsD8aXzOtpzVrvGLBzO2rRvywQkDQTbbS5yKvzBCWMsDGLt9MWzGMEIMNzsUaEOHdozArj/vrM4OgH6SON9woBnP27670LVKNJdQOOn+1vnfbI43lJfJAsfGYwXP3SYK1H0im7/YCekreey6T9LNxvtiWx3GBmRbw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178239910511337.31772276306151; Thu, 25 Jun 2026 07:51:45 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclOE-0003zk-OA; Thu, 25 Jun 2026 10:49:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclOB-0003b3-4M for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:49:11 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclO9-0000ER-4J for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:49:10 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9ju6J1753945 for ; Thu, 25 Jun 2026 14:48:57 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0w0q2c1r-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:48:57 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30bcbb34e57so2846922eec.1 for ; Thu, 25 Jun 2026 07: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 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.48.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:48:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=koogbpqsRfa0PrvfbI4x1+QqWqwbbpCsK4Ya9bbJIn4=; b=Jv OlxM8zX8Q8XpUyX775OdPx+j1mdYrgWmi4sqfuKPq4060aDmrYDdGE+jOFSiUxvB 2I3cifkL5sUME2MQ7zgJaFEBskF/+uB5iknN39XNfUvgb8FwbUx+3N99zMv18g3K 8cRXTHi0bKPXANhf9eEGXB270kaJG48z+mdHrCUXQi6smeJWMOijXPcABdbpLZEm qcgQS1U4uPjJJKiyH5n/PqsgpCXTrm27tPHhLBEWc/3aV3kIjIHza3MMV8uI4gVa p7iD7VWzBjWSq9Infqyvdt5n1UNtyhuFZWaLnQz9dLkiLpryh9lWwJR65DPGQG4i 7lJdkZfWoG9MwW7P/jnQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398936; x=1783003736; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=koogbpqsRfa0PrvfbI4x1+QqWqwbbpCsK4Ya9bbJIn4=; b=YSxP/gVi7HXBc6S4W4B6LAb6KYXUjbw5/6lnUgNTYhy2LHFyBg1d7ARmJNU2aXURs4 WeU8O6XLkCajL3P0xy1B3GulqfB7F+zjBksHGgACkpAOde3Un9u3rOXaQ5tPAaPAr39i Oa+8vY+onf8+PzBeHVMa6c0AN60/iiX3vd/O4pG+nzjGaAYzSujqp27lBtDR0mCzWaMM lxXZD1F8gXDaUfK3nZuiUqvKN1HylBYbUnD5xCZwwXgfA9f6CSklZjSuC3H8dIn6oz0t bt47y/6I5UYwK2pKbnALy1w4desU+Kp36CGUW7WwdR/Q25oxIHuDd4O2hhw+f5SoIhZ4 HwVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398936; x=1783003736; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=koogbpqsRfa0PrvfbI4x1+QqWqwbbpCsK4Ya9bbJIn4=; b=cVY4W9/R96hs8JEkp7ebL7v9YpmiTKDiG8pb6IMsZz/SwzVzJ+ZaCJb4eaMVtIPeiz p/s6okpZ7gcNleqjP7osgOCzxUpvOJ5mT6mDQD+APb35Jm/06RNPmJuipJ4mLXj02AZI 4SO8p9Yc6Ezz5REhb6DoOhPfyQcgXIPDiWmyHNc0kOuYRBqq11hADitrdYU164XW+y0g xD08mKW/pAE52y9SfU50+0y7C5jXGu3xO15bUXcLrgtn9E9/ZJ2zcfrzzZyOprMNqLVe 8tQTW8NP6M7SREntHDB+6pVeivjygIYAu3I+wJpw+BPYy0i+6wNXNfgbdhEebdhmjmfO toKQ== X-Gm-Message-State: AOJu0YwBWE5ffrs3UISbuAuyypISfUDTwKIokXiLi4JMzvqPMXe6ny4R PDtjW/vLsLqF+BBpzVs/qbYdsv/wrXoNRLAnpv3tmCfkRuFCudVfGNNjs3+TwH8efEBRFYkGr8v yRnYrs7qOJQy0LP+TdTL5Js/kwxr8ywldpTHCIOteJwWBZF0mS7MHHHkodfb1Y55nvA== X-Gm-Gg: AfdE7cnH7bPh8ISHLjyMcqGxfnMV/yHNt91QeE7aC7BFxuhX6V5/sUHsrM0WMdPJBRc +3I3Inv50NrRHhMeWYhpxVla/sQlRgt9TTTXpyifVb7nj6Vs4Bxx0EoptVGo76pTNNgcZrJ/nRN 6kas91/R2eVJMnBLQ9cnovFyndCDwCEuhTWh+tScZxuIeMphz8i2yalUdkzDZv/R9LaBa1kfo8A axrYG1ba6c6XPH60XgT+4WXariJea4JqwLtvldlJtFOo+1OqzJ5B9iG8DVQrdlrLb1oP3z1jj38 UXRzSwlQ3zpk8noVJmN9ifGeQCBBwJx9pvy9Q/JMnQ/ZriNMbopQPkR0ncoTqkUbPZb9Z/ZXmhU yRGur3YwkhQNykofwrs20+ZMBS6Gl9DbYOy/7hBrcEkQCPLtuaQCfzInjQL8= X-Received: by 2002:a05:7301:9e41:b0:30c:472a:248 with SMTP id 5a478bee46e88-30c84df9c55mr2745710eec.32.1782398936336; Thu, 25 Jun 2026 07:48:56 -0700 (PDT) X-Received: by 2002:a05:7301:9e41:b0:30c:472a:248 with SMTP id 5a478bee46e88-30c84df9c55mr2745689eec.32.1782398935772; Thu, 25 Jun 2026 07:48:55 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pierrick Bouvier Subject: [PULL v3 72/76] hw/hexagon: Add v68, sa8775-cdsp0 defs Date: Thu, 25 Jun 2026 07:16:29 -0700 Message-Id: <20260625141633.449487-73-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: _WHd1XecJ12FTqAMttrq6xCjxpQkW2Ms X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX9vyqilZINefv OiQvKL3YVitWOJeRETrjqNhOuyH+AbjzTUqrggHCLdOv3qZzNr7mWv0L/Pl4tCY0LzK2o2exnzD +XwCAEA2QXE5iXpHXeUI8iDpn6WphOA= X-Proofpoint-GUID: _WHd1XecJ12FTqAMttrq6xCjxpQkW2Ms X-Authority-Analysis: v=2.4 cv=R6Ez39RX c=1 sm=1 tr=0 ts=6a3d3fd9 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=G5se95cPlkO2hgD9IGUA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX3jESOMKdDGfs KjyDU2Ay06e1iYRSIKAVwRoiGqmO95zZrkPnPobxitwtsRSwwdAvwE4EegOW+5pNQ+F8RxupLaJ Yiddb6a55m9RsL/rEEICtRyjpXrdsDeeIHNtiprgmtqkbEV9RCpQVYrgurmRXSpWhY6qiig+zRw WJxaA3ZAt2GHTw7oxeCJd83g4GGQcJv8oLCXz0LMSHKpmYvDUOKdsFej4f+5I3J1MnBdZt2Ruj5 izl8qDYTlKSBi0wI7OMW3Ws7NdPeAHtpVAfxWbpg3OqrtlMLfVNgPGPzHVnZxAMzlfUC+629chE eSs5gTI28QOO9fGhNhlij5Nc0hMiayYbPTzoAhbaEl64nIDxLMM6vTD1Qx75+8VO5LUd7mHAt4h sseTYGmOK8Owzn8HrPGxv/BIgksOmZNYf0z5fPygIxECeLkUeSig3T9FnqOvf1n3vFtotPPimcC yXykNgX3J7jIlZsw7EQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 clxscore=1015 malwarescore=0 priorityscore=1501 adultscore=0 suspectscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250127 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782399106221158500 Content-Type: text/plain; charset="utf-8" From: Brian Cain Acked-by: Taylor Simpson Acked-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- hw/hexagon/machine_cfg_sa8775_cdsp0.h.inc | 64 +++++++++++++++++++++++ hw/hexagon/machine_cfg_v68n_1024.h.inc | 64 +++++++++++++++++++++++ 2 files changed, 128 insertions(+) create mode 100644 hw/hexagon/machine_cfg_sa8775_cdsp0.h.inc create mode 100644 hw/hexagon/machine_cfg_v68n_1024.h.inc diff --git a/hw/hexagon/machine_cfg_sa8775_cdsp0.h.inc b/hw/hexagon/machine= _cfg_sa8775_cdsp0.h.inc new file mode 100644 index 00000000000..442cbe3be31 --- /dev/null +++ b/hw/hexagon/machine_cfg_sa8775_cdsp0.h.inc @@ -0,0 +1,64 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +static const struct hexagon_machine_config SA8775P_cdsp0 =3D { + .cfgbase =3D 0x24000000 + 0x180000, + .l2tcm_size =3D 0x00000000, + .l2vic_base =3D 0x26300000 + 0x90000, + .l2vic_size =3D 0x00001000, + .csr_base =3D 0x26300000, + .qtmr_region =3D 0x26300000 + 0xA1000, + .cfgtable =3D { + .l2tcm_base =3D 0x00002400, + .reserved0 =3D 0x00000000, + .subsystem_base =3D 0x00002638, + .etm_base =3D 0x00002419, + .l2cfg_base =3D 0x0000241a, + .reserved1 =3D 0x0000241b, + .l1s0_base =3D 0x00002500, + .axi2_lowaddr =3D 0x00000000, + .streamer_base =3D 0x00000000, + .reserved2 =3D 0x00000000, + .fastl2vic_base =3D 0x0000241e, + .jtlb_size_entries =3D 0x00000080, + .coproc_present =3D 0x00000001, + .ext_contexts =3D 0x00000004, + .vtcm_base =3D 0x00002500, + .vtcm_size_kb =3D 0x00002000, + .l2tag_size =3D 0x00000400, + .l2ecomem_size =3D 0x00000000, + .thread_enable_mask =3D 0x0000003f, + .eccreg_base =3D 0x0000241f, + .l2line_size =3D 0x00000080, + .tiny_core =3D 0x00000000, + .l2itcm_size =3D 0x00000000, + .l2itcm_base =3D 0x00002400, + .reserved3 =3D 0x00000000, + .dtm_present =3D 0x00000000, + .dma_version =3D 0x00000003, + .hvx_vec_log_length =3D 0x00000007, + .core_id =3D 0x00000000, + .core_count =3D 0x00000000, + .coproc2_reg0 =3D 0x00000040, + .coproc2_reg1 =3D 0x00000020, + .v2x_mode =3D 0x00000001, + .coproc2_reg2 =3D 0x00000008, + .coproc2_reg3 =3D 0x00000020, + .coproc2_reg4 =3D 0x00000000, + .coproc2_reg5 =3D 0x00000002, + .coproc2_reg6 =3D 0x00000016, + .coproc2_reg7 =3D 0x00000006, + .acd_preset =3D 0x00000001, + .mnd_preset =3D 0x00000000, + .l1d_size_kb =3D 0x00000010, + .l1i_size_kb =3D 0x00000020, + .l1d_write_policy =3D 0x00000002, + .vtcm_bank_width =3D 0x00000080, + .reserved4 =3D 0x00000001, + .reserved5 =3D 0x00000000, + .reserved6 =3D 0x00000003, + .coproc2_cvt_mpy_size =3D 0x0000000a, + .consistency_domain =3D 0x000000e0, + .capacity_domain =3D 0x00000080, + .axi3_lowaddr =3D 0x00000000, + }, +}; diff --git a/hw/hexagon/machine_cfg_v68n_1024.h.inc b/hw/hexagon/machine_cf= g_v68n_1024.h.inc new file mode 100644 index 00000000000..0c79689bc21 --- /dev/null +++ b/hw/hexagon/machine_cfg_v68n_1024.h.inc @@ -0,0 +1,64 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +static const struct hexagon_machine_config v68n_1024 =3D { + .cfgbase =3D 0xde000000, + .l2tcm_size =3D 0x00000000, + .l2vic_base =3D 0xfc910000, + .l2vic_size =3D 0x00001000, + .csr_base =3D 0xfc900000, + .qtmr_region =3D 0xfc921000, + .cfgtable =3D { + .l2tcm_base =3D 0x0000d800, + .reserved0 =3D 0x00000000, + .subsystem_base =3D 0x0000fc90, + .etm_base =3D 0x0000d819, + .l2cfg_base =3D 0x0000d81a, + .reserved1 =3D 0x00000000, + .l1s0_base =3D 0x0000d840, + .axi2_lowaddr =3D 0x00003000, + .streamer_base =3D 0x0000d81c, + .reserved2 =3D 0x0000d81d, + .fastl2vic_base =3D 0x0000d81e, + .jtlb_size_entries =3D 0x00000080, + .coproc_present =3D 0x00000001, + .ext_contexts =3D 0x00000004, + .vtcm_base =3D 0x0000d840, + .vtcm_size_kb =3D 0x00001000, + .l2tag_size =3D 0x00000400, + .l2ecomem_size =3D 0x00000400, + .thread_enable_mask =3D 0x0000003f, + .eccreg_base =3D 0x0000d81f, + .l2line_size =3D 0x00000080, + .tiny_core =3D 0x00000000, + .l2itcm_size =3D 0x00000000, + .l2itcm_base =3D 0x0000d820, + .reserved3 =3D 0x00000000, + .dtm_present =3D 0x00000000, + .dma_version =3D 0x00000001, + .hvx_vec_log_length =3D 0x00000007, + .core_id =3D 0x00000000, + .core_count =3D 0x00000000, + .coproc2_reg0 =3D 0x00000040, + .coproc2_reg1 =3D 0x00000020, + .v2x_mode =3D 0x1f1f1f1f, + .coproc2_reg2 =3D 0x1f1f1f1f, + .coproc2_reg3 =3D 0x1f1f1f1f, + .coproc2_reg4 =3D 0x1f1f1f1f, + .coproc2_reg5 =3D 0x1f1f1f1f, + .coproc2_reg6 =3D 0x1f1f1f1f, + .coproc2_reg7 =3D 0x1f1f1f1f, + .acd_preset =3D 0x1f1f1f1f, + .mnd_preset =3D 0x1f1f1f1f, + .l1d_size_kb =3D 0x1f1f1f1f, + .l1i_size_kb =3D 0x1f1f1f1f, + .l1d_write_policy =3D 0x1f1f1f1f, + .vtcm_bank_width =3D 0x1f1f1f1f, + .reserved4 =3D 0x1f1f1f1f, + .reserved5 =3D 0x1f1f1f1f, + .reserved6 =3D 0x1f1f1f1f, + .coproc2_cvt_mpy_size =3D 0x1f1f1f1f, + .consistency_domain =3D 0x1f1f1f1f, + .capacity_domain =3D 0x1f1f1f1f, + .axi3_lowaddr =3D 0x1f1f1f1f, + }, +}; --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782399077; cv=none; d=zohomail.com; s=zohoarc; b=OYrKPo1FxrJ9u0+tnNRx+zyZG1Rr75NvqyJ7gR4458JyKMysKQZ9g02yQBB54ox4AE1LA7ZZTRT8TB+/L9Sg0zjLcv+fBsiAQ10Iu61j0oakgvvfxAGm4x2OaHiF3u5lXnJgn0nyFT3AWsmgIgSsDmqgJ4pJB4l2pPEjWmLUWMs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782399077; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=rn3nrXF+9M3gB0m5jL2ztn1CUMGQuvNbgLv/5EwohVs=; b=lMUFxjkxrZ1pBR4h/Ow6AUOi56sGgzFbvnXgPIMxXJD15g00ur1OKPvy8S1H/9gChtq1NhkyIY8OJAfj5n4ef6t+WAgLpz21guOhMLFLqHBNAN4lcvdhGC87j0VhsoNBStxNO6ZtnSZcyYFpCh+74oyeFUzjz+tzrjK0dq1OJZA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782399077631603.3547924502317; Thu, 25 Jun 2026 07:51:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclOF-00041V-1g; Thu, 25 Jun 2026 10:49:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclOC-0003iL-OJ for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:49:12 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclO9-0000EW-W9 for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:49:12 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9kJgF1948759 for ; Thu, 25 Jun 2026 14:48:58 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0ya8su7q-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:48:58 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30c0d568830so9143969eec.1 for ; Thu, 25 Jun 2026 07:48:58 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.48.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07: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= rn3nrXF+9M3gB0m5jL2ztn1CUMGQuvNbgLv/5EwohVs=; b=V6YXHORxC3+hjXnN 9eVeXY5jWxxXj+qpVFcL+Vyd5U971kGOh8B5/Ke0JvwLTYsxEvstWHxJ8fJEtgf7 lqXq7J5YRbLifYTvXYfdIGoCRgqkunqIOdFTltYyjlOSvULpHmobPjBcV+X4Ldql xEfsssQHhkGVKmX7gMfogGfSvHOV00P0Q9l0LrmPiL0BGzFCx0WzIreTTRTytSPy vn9zATYJuLhKN6DLkEeFeoKi14OaIJtwpfU2J9Ni6tthQBbHcm50+gxZqB/if3Y2 h2/IWy4Jlc25IqabFCn/jWoZ3G9PmG8anfSW8UKTvgNYsD7TxPP2iOKR+eYsyHyd EABUGw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398937; x=1783003737; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=rn3nrXF+9M3gB0m5jL2ztn1CUMGQuvNbgLv/5EwohVs=; b=Qs5K+hn59Io2P/l5vygWMm6kjfUUXIB9VJ+OjtcuhMl+rbJHINGqpAMPPkNqVSdsWR ZSMG06AruHQFKMYFb5I5kuh4Vntjo03wF817oSJX1wC/Xzo3BmJI5+pyjvPKeD4GKy0X aP9plUIFmDQJWU4RnzJ47Z6hliPnyypo7PuTC2GfsWE1rr1zCBefqHCI9eBGIMOXPtw/ gklZeSAtJilNxxJdyCXfaq/tMftftfhQHwhRvqa8C2kZLuzeRir5B4vLT1CuUcODGDs7 f3m036pTgyZ5FOHZPztdy0hVbg8FwDL75Wthz5Tof1lLumsR7daoTOCxsr/SswDezCDs TWEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398937; x=1783003737; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=rn3nrXF+9M3gB0m5jL2ztn1CUMGQuvNbgLv/5EwohVs=; b=Ufi8X/GsR9UZrI/abT+YXOE5do646MXZIa05NMos4c+35XOBkE0hEiuG9zq44eV4Rm rki1xN9/xlsDci1ZguAi5FjqmLN2bQ4CrIgdRU04+TIIAEIviWs2iE7/zyIC6JJPUUhk GyECwSChagkT9u/KQWa1fyplyO9Feo+5rq0WaunZPlKzFoFXAeWgD2VPOPz2J8jnVLbN 8Ek/eZZxLkFpefTRHcjS1JaiL3g/GKBBdRpJ9nvoqtFPgMuthCYJO/d+Fw+8ngzOvCLR 1thVG88hKWLgbUyDvAfHOfMq2pbjSdHxBflMdlMuHQtwHEvDDY9Tp7rQnpm3MLexH3/F vT5Q== X-Gm-Message-State: AOJu0Yx1Lh1Y0IjX4QCM49iK1poSEu8DKnwd2Fw0JfC2HYEBY9whVbS7 e6JRxRKpUuysFKQUP8Kyy636AgkoYJgVYoavhDG9QvdevkvV7XC9d9mgOsPcszuUD8Fq07YKefh aCLPvs+lJjke5AWMqXHX1Ti/PyN+n2EmQbeYyW/PaBMuG4FyM8xcYaex/eKCHWkrlhw== X-Gm-Gg: AfdE7ck9TwGI8CjgDhozeEK+T/Agk+o2lQfyn2S4cpRkaFs+RcbzkKz3rDWYF3aUpPO 5aanaBAxMZ2AmwtGX7KCeROOpNSld9D4aBriq++aLTMh8GONuIWnmJ6gR8usdnC+lN525plzicz GRecAo/fN4bpMpiEbNwiTmnjH6MLRPO8y0Mp+SXomJC0aTW0MBFXMICEwzcd3/+z1I6v4PE9Tez +xR6b5o1GpahfC/JJ1GbAv2PP0DlvZyGGe3+IBzJDZa1sG/n/2ovdG2ssO+ATpiWp1zqywtbAyR QRDDGSW9J7kkkfgkuAi/FTWRDxouW00VhWEfp7VcvpLsOBJwgUtyroB6aLcxRi6gOG7wGqkCvy7 oqmg4+i42VvsMeJDKEp+hKSsa32FI5TvAC3/BBy+vji2V7U6//TAbfNd0pXU= X-Received: by 2002:a05:7301:9c95:b0:30b:9b64:4a3e with SMTP id 5a478bee46e88-30c84b6c547mr3750681eec.1.1782398937433; Thu, 25 Jun 2026 07:48:57 -0700 (PDT) X-Received: by 2002:a05:7301:9c95:b0:30b:9b64:4a3e with SMTP id 5a478bee46e88-30c84b6c547mr3750635eec.1.1782398936925; Thu, 25 Jun 2026 07:48:56 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Sid Manning , Taylor Simpson , Pierrick Bouvier Subject: [PULL v3 73/76] hw/hexagon: Add support for cfgbase Date: Thu, 25 Jun 2026 07:16:30 -0700 Message-Id: <20260625141633.449487-74-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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-Info: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX0+Hyr9iVsGca bcpgvyjcFMSmzWB1i31Xl0R6Cw70m2CMooArK8Su28BkVhMXhrk4a8OecSKRt38Zh1vb3gpzoP0 6cVa9aWI+eEjXNkuanoB3DnZwalLWIg= X-Proofpoint-GUID: iCN8cP_dW69aqeyPZeIGwmQjAcAxM2To X-Proofpoint-ORIG-GUID: iCN8cP_dW69aqeyPZeIGwmQjAcAxM2To X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfXyigOAQSo/vBt 0Ki/RnbATWH0lLDN1SIjdF7WX1YWrjxXjZK11se49RzGB0zQbs6JYzu/yE34BL7n0+syXdPEeV2 Ien/pu8QB8kni/Kwwo46WEyeSGsY3rMHcb3kTEwaxxO27/vA6SliBJsHPzDHn3UEdamahHVpI7R een7OPNBUBBD/1f7ebvwcPxKAsNwWqEv+gclZugroF8CmdR15nRIXFuy11KrmL0iLbfD1gWUowa IOlK86kJRB9CisiRlR87OtvFMBEgJh8EneQDDmeXIk5wZWKGahpRSFyBaLf+nMIBx3EkMQoQcCS zmbtEaQ1iJ3KAOFgEamxT5oRra/W7s1CzlkJjuyECxJjKNI/pCyEIFPlqGwScfuGWMO7WyRrrUT FLxlEHn57+mqXRqfO86ijFywYGLrx/uc1wkD2cjrsLCjtl+yi+Twqo6mrFBQK0tZM2qDX7+39N4 QwoHGXK2DsNQWE1S5PQ== X-Authority-Analysis: v=2.4 cv=Z+Xc2nRA c=1 sm=1 tr=0 ts=6a3d3fda cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=7umkzkyUMl8fFcUskJ4A:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 bulkscore=0 suspectscore=0 phishscore=0 spamscore=0 adultscore=0 lowpriorityscore=0 priorityscore=1501 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250127 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782399077930158500 From: Sid Manning Reviewed-by: Taylor Simpson Signed-off-by: Sid Manning Signed-off-by: Brian Cain --- hw/hexagon/hexagon_dsp.c | 4 ++++ target/hexagon/cpu.c | 1 - 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/hw/hexagon/hexagon_dsp.c b/hw/hexagon/hexagon_dsp.c index ac01d359928..aa493993229 100644 --- a/hw/hexagon/hexagon_dsp.c +++ b/hw/hexagon/hexagon_dsp.c @@ -162,6 +162,10 @@ static void hexagon_common_init(MachineState *machine,= Rev_t rev, OBJECT(tlb_dev), &error_fatal); qdev_realize_and_unref(DEVICE(cpu), NULL, &error_fatal); } + + rom_add_blob_fixed_as("config_table.rom", &m_cfg->cfgtable, + sizeof(m_cfg->cfgtable), m_cfg->cfgbase, + &address_space_memory); } =20 static void init_mc(MachineClass *mc) diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 06be5c8d498..42d93e5da47 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -400,7 +400,6 @@ void hexagon_cpu_soft_reset(CPUHexagonState *env) } #endif =20 - static void hexagon_cpu_reset_hold(Object *obj, ResetType type) { CPUState *cs =3D CPU(obj); --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782399069; cv=none; d=zohomail.com; s=zohoarc; b=hE+Ky2FsbleuYdAl/Ub04lfW5vVUcFlkmcMkUR65QW4k8WZhm6PsGmAYBN6smI8Jf+VWEQ6LhxxKGe+UW3sTODXDXcQWRFsl0mHiwTJG5qt1ErTxfeCCwb/5PTvFOi6KxdOb4bXkz7PoD+YO4evZx/DGLJcvEF/o0NgacmiSJr4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782399069; 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=wjuhDqFA99bfqKwa5FJeRGdXAp8yPWnYoBMxxqb/9H4=; b=ihR+EggSSYrrc+W8DSMhAbIXm3aXqi6dlPZ/HPwpF7ZfEF8kpkhF4cZ4E872NUcDapG8oQLng40LXNM61E8EiWA4vvJkLPoa+Lsaupo3KGx2aq0bFXldsCjT/CyXdhXtKIPT35lsa3rj2Isce3JRQl95rj3Ylik/Gxkn2dfc0D0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178239906911087.7154253025584; Thu, 25 Jun 2026 07:51:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclOF-00042u-L5; Thu, 25 Jun 2026 10:49:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclOD-0003vR-Vs for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:49:14 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclOB-0000FC-Vu for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:49:13 -0400 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9juAN1919787 for ; Thu, 25 Jun 2026 14:49:00 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0ueuaqpe-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:49:00 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c17bc96afso5089768eec.0 for ; Thu, 25 Jun 2026 07: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 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.48.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:48:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=wjuhDqFA99bfqKwa5FJeRGdXAp8yPWnYoBMxxqb/9H4=; b=Gt EWqjUBH2lgDQJOLeWxJwTAIYbdyO16QQW/AGh4Zq+9Gk+GE1Afl0+WVaoF4QeEmm 7shf4gpXFbe7fAKXouVKN1EybToCw4g7YvB1K9cJ2Rf07uSQGJp5DNH+Dx32Uu2O 3aPdFAiP8OJomedqV8I4VmRJTx6x0cLg49xuNxRta/RI4zUdCEtmvxQPVSTE9x1G ILvcQoaoAvClDoWR+6/OP+O7At8T16AKEAOVTXNLugCit5sjO+IhGUPUiFx+toIa PIvHSHmFoLBBb7gw/g1jI8tA+QBGbjTKca5H2h1W9FFfK6FsHFODbAKumDYICUQU 25cvxUoUEmap48L04oXQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398940; x=1783003740; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=wjuhDqFA99bfqKwa5FJeRGdXAp8yPWnYoBMxxqb/9H4=; b=OkPgLxHsYaxy3dujbPxxSL9gaGfj16NqvfKhIa/wvmG36XSd65pIrRhKf4wp7RtJB9 0ECzkEXx1KskdO0+60yCJCAUtEEQepiJ03kXctRfeMJA/R74Jjy/ixEDpP22/hOj6XKy 44XNe32Pe++5gIO3CxWvKyi+OWcrh6/qpIbvkNqReJsWGPo/U1jqYYss3QsPxBSq7Tb+ Yk2d7nAKv/iOXrhu+O1Vy69VKfy+NU+ZzAVOwTgoXZ87HIXVpzUnyolS4aJvqi5FHrTJ 6Xyydvdz4kOBymYATJQAHj3zNxz1Y5NQ+80SjgMf1fWy5PODDJTB2JJI2Q8aZNV9+2M+ WRSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398940; x=1783003740; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=wjuhDqFA99bfqKwa5FJeRGdXAp8yPWnYoBMxxqb/9H4=; b=RobKfgwn9bj2u3PCNCVcCFyUtDNUa/8/Zymw4aNB0se+3iri9SiS8zqRSRQB8kiOL7 OyZg6eplLm8V+AjJMlmEN/xJd/HrS0sm7ZS95PZGtKYr15GMoSDJvTk+B7BUDWyc4MjR eD2/bIcZt4ZWZGPDRP/V3dzoEGeLXdS5hjW0IzJr7kCVlHuCfu3PdM1GNDkzQBYHCrWN WxWlw5luXzv91KRWjHz408bNdb0AS9vq7ynPNLzgNqlLPkAmVyIYQdBIHAESIwdki6aA pvjAwGqw8euYZasqAXdPzVrn4N1uk6YXVHwJ+1w6F95r7t4VglQI2DKC09R7TGpKa1yq BNzg== X-Gm-Message-State: AOJu0YwV8iyzJTIrfd355z7oJQZftVmiBPXk/oi+Gpt+i56LL5sjRRrz 7fUonstEjKOfWxVu0B2YWf7KnSMfitNqeqBWGY0on9vOLAUG8ZNtQB7XzTQ3XoAxzp6UVWCN+J0 RR04MTg585GlggG3m+sk/gsh5VByz7FagqfH5DeG9AkZQIF7cBhjVH7lCRkHu2NnG9w== X-Gm-Gg: AfdE7ckH/ooFVWKwBwt/S1rAKFwfn4C4j0YaOFBSiIy1uRbNOLLBnfjtBo7Kmbfw4Se uH1fRuPmpsRpuVKXHg3ZOfZwbRYpPEopPffqgOS10/WQlLmnncmQJbIKE2EBoQXAp57tNmk+Z9u u6/uVAuc9fvwLVCmbynZfj0CJaGQw7sVW22UZNAQmXJ3QOkjnAi+w6tsc6BBaD51y+4uLkdPWpQ u2wo9S8KOvZaVN0ZlXx1QlCRkxH3rM1c3C1tG20fO+4qoboMKjYLjDgGt93VE2ZlE9fpKcuVBeF yeATbdoJm/ASiUscoiYKb9XggolNWbiiL13YzUonTHB0/PUBXNmsXfifMCaRy7j0n3EePfmuRlL FtxU3tzKKwk+0rXPJW5aFp2RoSwHrCDjZZE4mhJHDm8lM/BquusB6dnNlRHE= X-Received: by 2002:a05:7301:9f13:b0:2f5:5dd3:1fd8 with SMTP id 5a478bee46e88-30c84b9dcc0mr3024785eec.8.1782398939411; Thu, 25 Jun 2026 07:48:59 -0700 (PDT) X-Received: by 2002:a05:7301:9f13:b0:2f5:5dd3:1fd8 with SMTP id 5a478bee46e88-30c84b9dcc0mr3024747eec.8.1782398938857; Thu, 25 Jun 2026 07:48:58 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Taylor Simpson , Pierrick Bouvier , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Paolo Bonzini Subject: [PULL v3 74/76] target/hexagon: add build config for softmmu Date: Thu, 25 Jun 2026 07:16:31 -0700 Message-Id: <20260625141633.449487-75-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: E0t5X2R3bpMBN3p-lNxtPN-vYmujAWSH X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfXxWc/yOEhu1gJ Rq8OsHFvnEcDSLLfPQaj/iQIcpa1ggdHAiLhKRLTKVoybq4letS6EotU7kPh02jn7E7OG34UGtD /8MkvgLS0V+qYcQsF40oKgviHUWgaEI= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX+CaV731QexUL Eoo02o/JHONTAiZ4/LlqvkEBl9DLSfhzrYWlm1usiLV8D2RAFd6aBlWqrgFmn2tvG0Ambz10y12 LzKb2sjRZ85dkkRyDdjlzLk5nusIm6j0voAg28Ozof1S9aA0sKodOP3xPWUEzqr6ud/6j/UYYKn wbDAAY+C5eAKKRtb2qxsuD9a7l1dCHg48RhuoI7Wtzgp4QFYRBtvdH3++pVkx74KIQ0UrmupNEf a4t4DV3aSzFx9mOFuCxzmp6CcFGt9uX4mFj/2KpONukM8KqxoPuRMro413YmVFuuaI4wwRQofCl 1huCFdjuFR7LWUTqFt0U3tNqClbywBwpJVsUVFS263taD4ujmzXCin2JSG6BsM/vEJrLxkMzmo9 si6g6whYYldCxTTrKu81cqTEbqe+h7ABkoH/dGJINuO0o8/O33bHg6o4T3kT9Rj/MPrcz8HRpHF Ur4SSziN4+FW6CAsuWQ== X-Authority-Analysis: v=2.4 cv=b/SCJNGx c=1 sm=1 tr=0 ts=6a3d3fdc cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=S56xvJB5AAAA:8 a=nnu-IgKveahPCV3q3nEA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=MH9Ivq0PDQRhlrFuIVvX:22 X-Proofpoint-GUID: E0t5X2R3bpMBN3p-lNxtPN-vYmujAWSH X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 suspectscore=0 phishscore=0 bulkscore=0 adultscore=0 clxscore=1015 spamscore=0 malwarescore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250127 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782399070103158500 Content-Type: text/plain; charset="utf-8" Reviewed-by: Taylor Simpson Reviewed-by: Pierrick Bouvier Acked-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Brian Cain --- MAINTAINERS | 1 + configs/devices/hexagon-softmmu/default.mak | 6 ++++++ configs/targets/hexagon-softmmu.mak | 7 +++++++ target/hexagon/cpu.h | 5 +---- target/Kconfig | 1 + target/hexagon/Kconfig | 2 ++ target/hexagon/meson.build | 13 ++++++++++++- 7 files changed, 30 insertions(+), 5 deletions(-) create mode 100644 configs/devices/hexagon-softmmu/default.mak create mode 100644 configs/targets/hexagon-softmmu.mak create mode 100644 target/hexagon/Kconfig diff --git a/MAINTAINERS b/MAINTAINERS index 44063d6e13b..cda4d57b495 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -256,6 +256,7 @@ F: linux-user/hexagon/ F: tests/tcg/hexagon/ F: disas/hexagon.c F: configs/targets/hexagon-linux-user.mak +F: configs/targets/hexagon-softmmu.mak F: tests/docker/dockerfiles/debian-hexagon-cross.docker F: gdbstub/gdb-xml/hexagon*.xml F: docs/system/target-hexagon.rst diff --git a/configs/devices/hexagon-softmmu/default.mak b/configs/devices/= hexagon-softmmu/default.mak new file mode 100644 index 00000000000..f7fc874eb0c --- /dev/null +++ b/configs/devices/hexagon-softmmu/default.mak @@ -0,0 +1,6 @@ +# Default configuration for hexagon-softmmu + +# Uncomment the following lines to disable these optional devices: + +# Boards are selected by default, uncomment to keep out of the build. +# CONFIG_HEX_DSP=3Dy diff --git a/configs/targets/hexagon-softmmu.mak b/configs/targets/hexagon-= softmmu.mak new file mode 100644 index 00000000000..fdfa29b4f39 --- /dev/null +++ b/configs/targets/hexagon-softmmu.mak @@ -0,0 +1,7 @@ +# Default configuration for hexagon-softmmu + +TARGET_ARCH=3Dhexagon +TARGET_XML_FILES=3Dhexagon-core.xml hexagon-hvx.xml +TARGET_LONG_BITS=3D32 +TARGET_NOT_USING_LEGACY_LDST_PHYS_API=3Dy +TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API=3Dy diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 4a12dc04727..7694fd91fa8 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -38,10 +38,7 @@ typedef struct HexagonGlobalRegState HexagonGlobalRegSta= te; #include "hw/core/registerfields.h" #include "qemu/bitmap.h" =20 -#ifndef CONFIG_USER_ONLY -#error "Hexagon does not support system emulation" -#endif - +#include "target/hexagon/reg_fields.h" =20 #define NUM_PREGS 4 #define TOTAL_PER_THREAD_REGS 64 diff --git a/target/Kconfig b/target/Kconfig index 3c73e3bae01..0288a3f4164 100644 --- a/target/Kconfig +++ b/target/Kconfig @@ -16,6 +16,7 @@ source sh4/Kconfig source sparc/Kconfig source tricore/Kconfig source xtensa/Kconfig +source hexagon/Kconfig =20 config TARGET_BIG_ENDIAN bool diff --git a/target/hexagon/Kconfig b/target/hexagon/Kconfig new file mode 100644 index 00000000000..7e556f35063 --- /dev/null +++ b/target/hexagon/Kconfig @@ -0,0 +1,2 @@ +config HEXAGON + bool diff --git a/target/hexagon/meson.build b/target/hexagon/meson.build index fd3d69feffd..59cb09c1070 100644 --- a/target/hexagon/meson.build +++ b/target/hexagon/meson.build @@ -235,6 +235,7 @@ decodetree_trans_funcs_generated =3D custom_target( command: [python, files('gen_trans_funcs.py'), semantics_generated, '@= OUTPUT@'], ) hexagon_ss.add(decodetree_trans_funcs_generated) +hexagon_softmmu_ss =3D ss.source_set() =20 hexagon_ss.add(files( 'cpu.c', @@ -253,6 +254,14 @@ hexagon_ss.add(files( 'mmvec/system_ext_mmvec.c', )) =20 +hexagon_softmmu_ss.add(files( + 'cpu_helper.c', + 'hex_mmu.c', + 'hex_interrupts.c', + 'hexswi.c', + 'machine.c', +)) + # # Step 4.5 # We use flex/bison based idef-parser to generate TCG code for a lot @@ -262,7 +271,8 @@ hexagon_ss.add(files( # idef-generated-enabled-instructions # idef_parser_enabled =3D get_option('hexagon_idef_parser') -if idef_parser_enabled and 'hexagon-linux-user' in target_dirs +if idef_parser_enabled and ('hexagon-linux-user' in target_dirs or + 'hexagon-softmmu' in target_dirs) idef_parser_input_generated =3D custom_target( 'idef_parser_input.h.inc', output: 'idef_parser_input.h.inc', @@ -390,3 +400,4 @@ analyze_funcs_generated =3D custom_target( hexagon_ss.add(analyze_funcs_generated) =20 target_arch +=3D {'hexagon': hexagon_ss} +target_system_arch +=3D {'hexagon': hexagon_softmmu_ss} --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782399134; cv=none; d=zohomail.com; s=zohoarc; b=j4pEPsemobcNJ5CWRfLjrn2nO8oQTbxikAMKFQTnvNVkW7DSv3ZwJiGz4YWPTbHX0dFdCy0G1eZNqLo0k0HOclP+zjb5LTsrCDDTGTdbqh5ggk84Nkcii+y6InMUy/pSvJ+UgO718mtYUBshE3j8qxD8zeOXbwKvyG5FxkXmJrw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782399134; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=yceAhRCtNZOpbaG7j5M0kMisT3HAlYGvNKxciZB2G+k=; b=GO9Dth+i7QItfgEMnybCCoEHBwIIggtJwpdusE8z6jaA65hw6MhhPkrktbcy5mkEcfKSzQDjBSomn/Fumf3Prn7SJJOMYas++/nwDHmM5aagpLzliZBP19WfDNuT/Uv0LiuZznJSFRZf2rT78/4zwrs8leV9UAsYoKHlG58hPTE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782399134263296.63249833703196; Thu, 25 Jun 2026 07:52:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclOI-00047I-5l; Thu, 25 Jun 2026 10:49:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclOF-000440-TO for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10: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 1wclOD-0000GG-5y for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:49:15 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9kCuJ1948233 for ; Thu, 25 Jun 2026 14:49:02 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0ya8su84-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:49:01 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c17bc96afso5089849eec.0 for ; Thu, 25 Jun 2026 07:49:01 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.48.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07: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= yceAhRCtNZOpbaG7j5M0kMisT3HAlYGvNKxciZB2G+k=; b=dHpOorz13d0qBxnl UXOkwl4yERhb6wd3OBS3O/pMuQILY4oq4jqF39UbS/29YZY3gLCiUPjVUPiH18bh ctskZVxjE0zP9xY1Lzyon3QcTNrC5cgM+fEUwERSPPNKcpfUVoo4JQcVs9hRNVZ6 5HHAeTfYZTl5Rg0mAycwSQoJBJBXDFmPWz61jhjbFZcCNRkmQTQbLkJhlE4z1c7A H5mj4jTUBahobKczYYzW6gwPTt6mHvKwhvxpQjkGz7JDc4l3lCxRUGMHn4cKZJYF CXpmm0Bh92pu5pp4U88ywlClWEQLurUybDm5r2G43QKFyBlp+GEeuF9yiscdLqw1 fPKg2Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398941; x=1783003741; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=yceAhRCtNZOpbaG7j5M0kMisT3HAlYGvNKxciZB2G+k=; b=dQqDbGkN+imDDyomo9XJSJPKhybLql2H3nGFevGEzgrcUnCEDptkvzAOTYK6SFbMkt lsVuiwYWtytPIAXLWGfM1XhpQvbqlFRQgQQqeSt+S9EpEwEGrKYvYwRI1ukd237FZ4ig gs6NHgm7k4r5Nw5+5vCXD7vqqoOlt/0CCkp9aWCHvTZmpPQ8CKcBFoQSJeOTJzOlyh6f tb+45YchDK0e2NeRrt8W8ik2v8P2Un+Ahw48nwmQkSJ4HnVjpHuOElJivuP1ucwNX9wA NHDEYQPMRPkTn3xiYQRwtwCBq7QIGoTIPVT5QjMgeRnQcLfT/k8d6xKLO6ztUEA4bJV3 zAeg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398941; x=1783003741; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=yceAhRCtNZOpbaG7j5M0kMisT3HAlYGvNKxciZB2G+k=; b=cZNIFWJYeJ44+VJ3fDU9emnvwf1xjlvIbUlBqQQHQsiSX9SixO+EH5IHiQn2tqPBiG ehEhCAdApo5wEaN6K6J6lDdMIhYvYofYMUyF3CwygHcPIR/QdkG9eeVn14xTQ00dE9vH NyzXPVXDgw7FfScwCbzsCmeKdBnPiL1yE2wONWmmI6waxAZwmMQ0hcReYtNk8d+B1+u7 rIvXgrT+peQwUPQ8/bIsWTCJmXaFoy/7F56x4sbVBN3CoR2Jlgea50wgShxYCI7sng6b 1VKTWS17O8Xp2Ks+JQMojZoKM5sthqCOPO963o8R42DDQ5LwnLwlqPeviUKzHAu5m8Rx eQEA== X-Gm-Message-State: AOJu0YwTrMPqfjMgstvHdsphaYwatkJzp8T9fJfViVtwiJeLgdf1rxaq pMGeG/fSvUWihztz51WRWvj9kSGfuxH2IPsaEXgOblhEJ3RNeGt64SnL81CRZI27GXgKSabsg/c m6+H0rhkSJ3cUmX46ceR0vEsNVTdyg2llntnUPYw5meECSpYiybS0SfMxxN3DDLdSUA== X-Gm-Gg: AfdE7cldldUfKRJk5RWWs5twNznq6loo1P9BXm0hqX4iGvKhL3QKpKUpXnDHFf8814O 9+oKeQHtiee1c3QfeuCRMofoHXfxFBl4uvqONyQ88DqDN4QH4uerbN7Xs5dZr4eKuCo5baV+SET acqvYKK72y1PJCDUgxDEDuS0amWd1JW55hPwwB03ncmYYehYuXISCL4izG3d2zvRJsiyNPvGahs NBuEVqX5WMJYnkKklRpXJrTW6QIH1fRux9ECSGT03I1J65qvh3EBAWXMQ+IIo7tYBGRoG5ahxr3 0n774RXewqStSpfdrSIVINgr/YI4tv8/txpYGzJqRCZVe9Dh2rnXorHZEArWSvGkKfPyFjoh6ml fRxBgYvHMapEOAryVfevur0bIexkf4r1M+x7WKmxj4VM3ggv74giFH9ofQq4= X-Received: by 2002:a05:7300:50c:b0:304:ba84:a0cc with SMTP id 5a478bee46e88-30c84e494camr3743695eec.33.1782398940857; Thu, 25 Jun 2026 07:49:00 -0700 (PDT) X-Received: by 2002:a05:7300:50c:b0:304:ba84:a0cc with SMTP id 5a478bee46e88-30c84e494camr3743651eec.33.1782398940209; Thu, 25 Jun 2026 07:49:00 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Pierrick Bouvier , Paolo Bonzini , Kevin Wolf , Hanna Reitz , qemu-block@nongnu.org (open list:Block layer core) Subject: [PULL v3 75/76] hw/hexagon: Define hexagon "virt" machine Date: Thu, 25 Jun 2026 07:16:32 -0700 Message-Id: <20260625141633.449487-76-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-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-Info: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX/SdGCGnOQVCo b2JygfugCPoMSSTpGwM+i7jOqZvUeYzbln7QnHasc59/lTCgFZQbyJChEL6HF3Af5lB86c99i+F cCR3IIlPVHj3tZDXvRMQxhy/p23hGoo= X-Proofpoint-GUID: YBilQa7qo9qR2HOdt8utpcsug_7-t0LI X-Proofpoint-ORIG-GUID: YBilQa7qo9qR2HOdt8utpcsug_7-t0LI X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX3jpVYgrvPqUq pav5rX80uXWsatlN9f6wezObNvV/R5VWtq84iy5Zf+veMwpH9f4fusb+6CzDGfz8EmqB40aYcQB fwSRoes8A8p9FVAIaN+OU99+mScHdwpplHw0d3T9a52QspM4MK+wXsT6JSen/MhDww9ORc/Vxmg kyGEHIY3HQR6ozZ4/31z0LUeiYko92KDR8A6o9vWc0Vmurv9Dq8LanZxS9om0RRJAOZbp7IUJPm GR6vENTXEhtHqCKJJNc71o/D6nEjr5RUXx+U35YxIWZadnYai5MpjdcDu2lBxMreuH2z/XPrNwV x5rP9PgI/iNFi8DusU04KFIPRBsx0w6bb2fEOQlnKn3e7R6skHztfv+/IOndLRfU9oMeTSbzpI3 ZXt5MGwf6mkxINdeLsw9k40nYXSwCp7h/q6s+uytsPUJVN1QYnbB5RmSJEXL0lErXIPEUGRGCtO PlfuLlB5kPxZ+PXKlnA== X-Authority-Analysis: v=2.4 cv=Z+Xc2nRA c=1 sm=1 tr=0 ts=6a3d3fde cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=CPh6EXbgsUTdwlFVG8oA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 bulkscore=0 suspectscore=0 phishscore=0 spamscore=0 adultscore=0 lowpriorityscore=0 priorityscore=1501 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250127 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782399136522158500 From: Brian Cain Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- configs/devices/hexagon-softmmu/default.mak | 1 + configs/targets/hexagon-softmmu.mak | 1 + include/hw/hexagon/virt.h | 30 ++ hw/hexagon/virt.c | 347 ++++++++++++++++++++ hw/hexagon/Kconfig | 10 + hw/hexagon/meson.build | 1 + tests/qemu-iotests/testenv.py | 1 + 7 files changed, 391 insertions(+) create mode 100644 include/hw/hexagon/virt.h create mode 100644 hw/hexagon/virt.c diff --git a/configs/devices/hexagon-softmmu/default.mak b/configs/devices/= hexagon-softmmu/default.mak index f7fc874eb0c..6f2007771b5 100644 --- a/configs/devices/hexagon-softmmu/default.mak +++ b/configs/devices/hexagon-softmmu/default.mak @@ -3,4 +3,5 @@ # Uncomment the following lines to disable these optional devices: =20 # Boards are selected by default, uncomment to keep out of the build. +# CONFIG_HEX_VIRT=3Dy # CONFIG_HEX_DSP=3Dy diff --git a/configs/targets/hexagon-softmmu.mak b/configs/targets/hexagon-= softmmu.mak index fdfa29b4f39..a77c100f0c5 100644 --- a/configs/targets/hexagon-softmmu.mak +++ b/configs/targets/hexagon-softmmu.mak @@ -5,3 +5,4 @@ TARGET_XML_FILES=3Dhexagon-core.xml hexagon-hvx.xml TARGET_LONG_BITS=3D32 TARGET_NOT_USING_LEGACY_LDST_PHYS_API=3Dy TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API=3Dy +TARGET_NEED_FDT=3Dy diff --git a/include/hw/hexagon/virt.h b/include/hw/hexagon/virt.h new file mode 100644 index 00000000000..fcb47762194 --- /dev/null +++ b/include/hw/hexagon/virt.h @@ -0,0 +1,30 @@ +/* + * Definitions for hexagon virt board. + * + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HW_HEXAGONVIRT_H +#define HW_HEXAGONVIRT_H + +#include "hw/hexagon/hexagon.h" +#include "target/hexagon/cpu.h" + +struct HexagonVirtMachineState { + HexagonCommonMachineState parent_obj; + + int fdt_size; + MemoryRegion *sys; + MemoryRegion tcm; + MemoryRegion vtcm; + MemoryRegion bios; + Clock *apb_clk; +}; + +void hexagon_load_fdt(const struct HexagonVirtMachineState *vms); + +#define TYPE_HEXAGON_VIRT_MACHINE MACHINE_TYPE_NAME("virt") +OBJECT_DECLARE_SIMPLE_TYPE(HexagonVirtMachineState, HEXAGON_VIRT_MACHINE) + +#endif /* HW_HEXAGONVIRT_H */ diff --git a/hw/hexagon/virt.c b/hw/hexagon/virt.c new file mode 100644 index 00000000000..a3638998b87 --- /dev/null +++ b/hw/hexagon/virt.c @@ -0,0 +1,347 @@ +/* + * Hexagon virt emulation + * + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "qapi/error.h" +#include "hw/hexagon/virt.h" +#include "elf.h" +#include "hw/char/pl011.h" +#include "hw/core/clock.h" +#include "hw/core/sysbus-fdt.h" +#include "hw/hexagon/hexagon.h" +#include "hw/hexagon/hexagon_globalreg.h" +#include "hw/hexagon/hexagon_tlb.h" +#include "hw/core/loader.h" +#include "hw/core/qdev-properties.h" +#include "hw/core/qdev-clock.h" +#include "hw/core/register.h" +#include "qemu/error-report.h" +#include "qemu/guest-random.h" +#include "qemu/units.h" +#include "machine_cfg_v68n_1024.h.inc" +#include "system/address-spaces.h" +#include "system/device_tree.h" +#include "system/reset.h" +#include "system/system.h" +#include + +enum { + VIRT_UART0, + VIRT_FDT, +}; + +static const MemMapEntry base_memmap[] =3D { + [VIRT_UART0] =3D { 0x10000000, 0x00000200 }, + [VIRT_FDT] =3D { 0x99800000, 0x00400000 }, +}; + + +static void create_fdt(HexagonVirtMachineState *vms) +{ + MachineState *ms =3D MACHINE(vms); + void *fdt =3D create_device_tree(&vms->fdt_size); + uint8_t rng_seed[32]; + + if (!fdt) { + error_report("create_device_tree() failed"); + exit(1); + } + + ms->fdt =3D fdt; + + qemu_fdt_setprop_cell(fdt, "/", "#address-cells", 0x2); + qemu_fdt_setprop_cell(fdt, "/", "#size-cells", 0x1); + qemu_fdt_setprop_string(fdt, "/", "model", "hexagon-virt,qemu"); + qemu_fdt_setprop_string(fdt, "/", "compatible", "qcom,sm8150"); + + qemu_fdt_add_subnode(fdt, "/soc"); + qemu_fdt_setprop_cell(fdt, "/soc", "#address-cells", 0x2); + qemu_fdt_setprop_cell(fdt, "/soc", "#size-cells", 0x1); + qemu_fdt_setprop(fdt, "/soc", "ranges", NULL, 0); + + qemu_fdt_add_subnode(fdt, "/chosen"); + qemu_guest_getrandom_nofail(rng_seed, sizeof(rng_seed)); + qemu_fdt_setprop(fdt, "/chosen", "rng-seed", rng_seed, sizeof(rng_seed= )); +} + +static void fdt_add_hvx(HexagonVirtMachineState *vms, + const struct hexagon_machine_config *m_cfg) +{ + const MachineState *ms =3D MACHINE(vms); + uint32_t vtcm_size_bytes =3D m_cfg->cfgtable.vtcm_size_kb * 1024; + if (vtcm_size_bytes > 0) { + memory_region_init_ram(&vms->vtcm, NULL, "vtcm.ram", vtcm_size_byt= es, + &error_fatal); + memory_region_add_subregion(vms->sys, m_cfg->cfgtable.vtcm_base <<= 16, + &vms->vtcm); + + qemu_fdt_add_subnode(ms->fdt, "/soc/vtcm"); + qemu_fdt_setprop_string(ms->fdt, "/soc/vtcm", "compatible", + "qcom,hexagon_vtcm"); + + assert(sizeof(m_cfg->cfgtable.vtcm_base) =3D=3D sizeof(uint32_t)); + qemu_fdt_setprop_cells(ms->fdt, "/soc/vtcm", "reg", 0, + m_cfg->cfgtable.vtcm_base << 16, + vtcm_size_bytes); + } + + if (m_cfg->cfgtable.ext_contexts > 0) { + qemu_fdt_add_subnode(ms->fdt, "/soc/hvx"); + qemu_fdt_setprop_string(ms->fdt, "/soc/hvx", "compatible", + "qcom,hexagon-hvx"); + qemu_fdt_setprop_cells(ms->fdt, "/soc/hvx", "qcom,hvx-max-ctxts", + m_cfg->cfgtable.ext_contexts); + qemu_fdt_setprop_cells(ms->fdt, "/soc/hvx", "qcom,hvx-vlength", + m_cfg->cfgtable.hvx_vec_log_length); + } +} + +static int32_t fdt_add_clocks(const HexagonVirtMachineState *vms) +{ + MachineState *ms =3D MACHINE(vms); + int32_t clk_phandle =3D qemu_fdt_alloc_phandle(ms->fdt); + + qemu_fdt_add_subnode(ms->fdt, "/apb-pclk"); + qemu_fdt_setprop_string(ms->fdt, "/apb-pclk", "compatible", "fixed-clo= ck"); + qemu_fdt_setprop_cell(ms->fdt, "/apb-pclk", "#clock-cells", 0x0); + qemu_fdt_setprop_cell(ms->fdt, "/apb-pclk", "clock-frequency", 2400000= 0); + qemu_fdt_setprop_string(ms->fdt, "/apb-pclk", "clock-output-names", + "clk24mhz"); + qemu_fdt_setprop_cell(ms->fdt, "/apb-pclk", "phandle", clk_phandle); + + return clk_phandle; +} + +static void fdt_add_uart(const HexagonVirtMachineState *vms, int uart, + int32_t clk_phandle) +{ + char *nodename; + hwaddr base =3D base_memmap[uart].base; + hwaddr size =3D base_memmap[uart].size; + assert(uart =3D=3D 0); + const char compat[] =3D "arm,pl011\0arm,primecell"; + const char clocknames[] =3D "uartclk\0apb_pclk"; + MachineState *ms =3D MACHINE(vms); + DeviceState *dev; + SysBusDevice *s; + + dev =3D qdev_new(TYPE_PL011); + s =3D SYS_BUS_DEVICE(dev); + qdev_prop_set_chr(dev, "chardev", serial_hd(0)); + qdev_connect_clock_in(dev, "clk", vms->apb_clk); + sysbus_realize_and_unref(s, &error_fatal); + sysbus_mmio_map(s, 0, base); + + nodename =3D g_strdup_printf("/pl011@%" PRIx64, base); + qemu_fdt_add_subnode(ms->fdt, nodename); + + /* Note that we can't use setprop_string because of the embedded NUL */ + qemu_fdt_setprop(ms->fdt, nodename, "compatible", compat, sizeof(compa= t)); + qemu_fdt_setprop_cells(ms->fdt, nodename, "reg", 0, base, size); + qemu_fdt_setprop_cells(ms->fdt, nodename, "clocks", clk_phandle, + clk_phandle); + qemu_fdt_setprop(ms->fdt, nodename, "clock-names", clocknames, + sizeof(clocknames)); + + qemu_fdt_setprop_string(ms->fdt, "/chosen", "stdout-path", nodename); + qemu_fdt_add_subnode(ms->fdt, "/aliases"); + qemu_fdt_setprop_string(ms->fdt, "/aliases", "serial0", nodename); + + g_free(nodename); +} + +static void fdt_add_cpu_nodes(const HexagonVirtMachineState *vms) +{ + MachineState *ms =3D MACHINE(vms); + qemu_fdt_add_subnode(ms->fdt, "/cpus"); + qemu_fdt_setprop_cell(ms->fdt, "/cpus", "#address-cells", 0x1); + qemu_fdt_setprop_cell(ms->fdt, "/cpus", "#size-cells", 0x0); + + /* cpu nodes */ + for (int num =3D ms->smp.cpus - 1; num >=3D 0; num--) { + char *nodename =3D g_strdup_printf("/cpus/cpu@%d", num); + qemu_fdt_add_subnode(ms->fdt, nodename); + qemu_fdt_setprop_string(ms->fdt, nodename, "device_type", "cpu"); + qemu_fdt_setprop_cell(ms->fdt, nodename, "reg", num); + qemu_fdt_setprop_cell(ms->fdt, nodename, "phandle", + qemu_fdt_alloc_phandle(ms->fdt)); + g_free(nodename); + } +} + + + +static void virt_instance_init(Object *obj) +{ + HexagonVirtMachineState *vms =3D HEXAGON_VIRT_MACHINE(obj); + + create_fdt(vms); +} + +void hexagon_load_fdt(const HexagonVirtMachineState *vms) +{ + MachineState *ms =3D MACHINE(vms); + hwaddr fdt_addr =3D base_memmap[VIRT_FDT].base; + uint32_t fdtsize =3D vms->fdt_size; + + g_assert(fdtsize <=3D base_memmap[VIRT_FDT].size); + /* copy in the device tree */ + rom_add_blob_fixed_as("fdt", ms->fdt, fdtsize, fdt_addr, + &address_space_memory); + qemu_register_reset_nosnapshotload( + qemu_fdt_randomize_seeds, + rom_ptr_for_as(&address_space_memory, fdt_addr, fdtsize)); +} + +static uint64_t load_kernel(const HexagonVirtMachineState *vms) +{ + MachineState *ms =3D MACHINE(vms); + uint64_t entry =3D 0; + if (load_elf_ram_sym(ms->kernel_filename, NULL, NULL, NULL, &entry, NU= LL, + NULL, NULL, 0, EM_HEXAGON, 0, 0, &address_space_m= emory, + false, NULL) > 0) { + return entry; + } + error_report("error loading '%s'", ms->kernel_filename); + exit(1); +} + +static uint64_t load_bios(HexagonVirtMachineState *vms) +{ + MachineState *ms =3D MACHINE(vms); + uint64_t bios_addr =3D 0x0; /* Load BIOS at reset vector address 0x0 = */ + int bios_size; + + bios_size =3D load_image_targphys(ms->firmware ?: "", + bios_addr, 64 * 1024, NULL); + if (bios_size < 0) { + error_report("Could not load BIOS '%s'", ms->firmware ?: ""); + exit(1); + } + + return bios_addr; /* Return entry point at address 0x0 */ +} + +static void do_cpu_reset(void *opaque) +{ + HexagonCPU *cpu =3D opaque; + CPUState *cs =3D CPU(cpu); + cpu_reset(cs); +} + +static void virt_init(MachineState *ms) +{ + HexagonVirtMachineState *vms =3D HEXAGON_VIRT_MACHINE(ms); + const struct hexagon_machine_config *m_cfg =3D &v68n_1024; + DeviceState *gsregs_dev; + DeviceState *tlb_dev; + DeviceState *cpu0; + int32_t clk_phandle; + + qemu_fdt_setprop_string(ms->fdt, "/chosen", "bootargs", ms->kernel_cmd= line); + + vms->sys =3D get_system_memory(); + + /* Create APB clock for peripherals */ + vms->apb_clk =3D clock_new(OBJECT(ms), "apb-pclk"); + clock_set_hz(vms->apb_clk, 24000000); + + memory_region_init_ram(&vms->parent_obj.ram, NULL, "ddr.ram", + ms->ram_size, &error_fatal); + memory_region_add_subregion(vms->sys, 0x0, &vms->parent_obj.ram); + + if (m_cfg->l2tcm_size) { + memory_region_init_ram(&vms->tcm, NULL, "tcm.ram", m_cfg->l2tcm_si= ze, + &error_fatal); + memory_region_add_subregion(vms->sys, m_cfg->cfgtable.l2tcm_base <= < 16, + &vms->tcm); + } + + memory_region_init_rom(&vms->parent_obj.cfgtable_rom, NULL, + "config_table.rom", sizeof(m_cfg->cfgtable), + &error_fatal); + memory_region_add_subregion(vms->sys, m_cfg->cfgbase, + &vms->parent_obj.cfgtable_rom); + fdt_add_hvx(vms, m_cfg); + + gsregs_dev =3D qdev_new(TYPE_HEXAGON_GLOBALREG); + object_property_add_child(OBJECT(ms), "global-regs", OBJECT(gsregs_dev= )); + qdev_prop_set_uint64(gsregs_dev, "config-table-addr", m_cfg->cfgbase); + qdev_prop_set_uint32(gsregs_dev, "dsp-rev", v68_rev); + sysbus_realize_and_unref(SYS_BUS_DEVICE(gsregs_dev), &error_fatal); + + tlb_dev =3D qdev_new(TYPE_HEXAGON_TLB); + object_property_add_child(OBJECT(ms), "tlb", OBJECT(tlb_dev)); + qdev_prop_set_uint32(tlb_dev, "num-entries", + m_cfg->cfgtable.jtlb_size_entries); + sysbus_realize_and_unref(SYS_BUS_DEVICE(tlb_dev), &error_fatal); + + cpu0 =3D NULL; + for (int i =3D 0; i < ms->smp.cpus; i++) { + HexagonCPU *cpu =3D HEXAGON_CPU(object_new(ms->cpu_type)); + qemu_register_reset(do_cpu_reset, cpu); + + if (i =3D=3D 0) { + cpu0 =3D DEVICE(cpu); + if (ms->kernel_filename) { + uint64_t entry =3D load_kernel(vms); + qdev_prop_set_uint32(cpu0, "exec-start-addr", entry); + } else if (ms->firmware) { + uint64_t entry =3D load_bios(vms); + qdev_prop_set_uint32(cpu0, "exec-start-addr", entry); + } + } + qdev_prop_set_uint32(DEVICE(cpu), "htid", i); + qdev_prop_set_bit(DEVICE(cpu), "start-powered-off", (i !=3D 0)); + object_property_set_link(OBJECT(cpu), "global-regs", + OBJECT(gsregs_dev), &error_fatal); + object_property_set_link(OBJECT(cpu), "tlb", + OBJECT(tlb_dev), &error_fatal); + + qdev_realize_and_unref(DEVICE(cpu), NULL, &error_fatal); + } + fdt_add_cpu_nodes(vms); + clk_phandle =3D fdt_add_clocks(vms); + fdt_add_uart(vms, VIRT_UART0, clk_phandle); + + rom_add_blob_fixed_as("config_table.rom", &m_cfg->cfgtable, + sizeof(m_cfg->cfgtable), m_cfg->cfgbase, + &address_space_memory); + + hexagon_load_fdt(vms); +} + + +static void virt_class_init(ObjectClass *oc, const void *data) +{ + MachineClass *mc =3D MACHINE_CLASS(oc); + + mc->desc =3D "Hexagon Virtual Machine"; + mc->init =3D virt_init; + mc->default_cpu_type =3D HEXAGON_CPU_TYPE_NAME("v68"); + mc->default_ram_size =3D 4 * GiB; + mc->max_cpus =3D 8; + mc->default_cpus =3D 8; + mc->is_default =3D false; + mc->default_kernel_irqchip_split =3D false; + mc->block_default_type =3D IF_VIRTIO; + mc->default_boot_order =3D NULL; + mc->no_cdrom =3D 1; + mc->numa_mem_supported =3D false; + mc->default_nic =3D "virtio-mmio-bus"; +} + + +static const TypeInfo virt_machine_types[] =3D { { + .name =3D TYPE_HEXAGON_VIRT_MACHINE, + .parent =3D TYPE_HEXAGON_COMMON_MACHINE, + .instance_size =3D sizeof(HexagonVirtMachineState), + .class_init =3D virt_class_init, + .instance_init =3D virt_instance_init, +} }; + +DEFINE_TYPES(virt_machine_types) diff --git a/hw/hexagon/Kconfig b/hw/hexagon/Kconfig index cdf7770a305..52065ab3b22 100644 --- a/hw/hexagon/Kconfig +++ b/hw/hexagon/Kconfig @@ -2,3 +2,13 @@ config HEX_DSP bool default y depends on HEXAGON + +config HEX_VIRT + bool + default y + depends on HEX_DSP && FDT + select DEVICE_TREE + select VIRTIO_MMIO + select PL011 + select VIRTIO_BLK + select VIRTIO_SCSI diff --git a/hw/hexagon/meson.build b/hw/hexagon/meson.build index f528d2bc4ab..bade3a32921 100644 --- a/hw/hexagon/meson.build +++ b/hw/hexagon/meson.build @@ -2,5 +2,6 @@ hexagon_ss =3D ss.source_set() hexagon_ss.add(files('hexagon_tlb.c')) hexagon_ss.add(files('hexagon_globalreg.c')) hexagon_ss.add(when: 'CONFIG_HEX_DSP', if_true: files('hexagon_dsp.c')) +hexagon_ss.add(when: 'CONFIG_HEX_VIRT', if_true: files('virt.c')) =20 hw_arch +=3D {'hexagon': hexagon_ss} diff --git a/tests/qemu-iotests/testenv.py b/tests/qemu-iotests/testenv.py index c357e6ebf50..86bcdf7cfad 100644 --- a/tests/qemu-iotests/testenv.py +++ b/tests/qemu-iotests/testenv.py @@ -259,6 +259,7 @@ def __init__(self, source_dir: str, build_dir: str, ('arm', 'virt'), ('aarch64', 'virt'), ('avr', 'mega2560'), + ('hexagon', 'virt'), ('m68k', 'virt'), ('or1k', 'virt'), ('riscv32', 'virt'), --=20 2.34.1 From nobody Sun Jul 26 11:51:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782399130; cv=none; d=zohomail.com; s=zohoarc; b=FoRm1uE71pZhrUWWfTcGhwVPb1kS8wY/rKLAyrNQCgkO023c7lvJtEwNmVsjohyxUNIg5YhAIewcfZ0UkWCLl+ne9QuqXven0RdQwAgJ45oHAkb8dSB+b1rX0U1A0qWrTauqlPjcGZHP1AVXbRDRDWnFHFKSP2321ZpYyrZzwjA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782399130; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=gn83dxXALMHX9hShj5DO/MP/66YGPFEzq+6xQ++j3U4=; b=CBD8SQwwrZuuLeceI9f4cbrr84wOXKkdN8/Db2sYbb/1MVNAdNp0RzFsd4f1kWPGYo1F4ykpOv7sGPqSkCz7GTIoZopEVxv66UdgXGEtM5q60d59F7alyRyZlBKOeOr3o+kfZtIWwlV0oIj8ts+ohIJdZvqXQruYcbTIiGT8lxI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782399130279256.0360780138037; Thu, 25 Jun 2026 07:52:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wclOD-0003mA-4n; Thu, 25 Jun 2026 10:49:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclO6-0002zH-Us for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:49:07 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wclO5-0000Gw-9x for qemu-devel@nongnu.org; Thu, 25 Jun 2026 10:49:06 -0400 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65P9k0AJ1398023 for ; Thu, 25 Jun 2026 14:49:04 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0uudjms9-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 14:49:03 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30c17f62afdso955688eec.0 for ; Thu, 25 Jun 2026 07: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 5a478bee46e88-30c7c8afca8sm8999209eec.17.2026.06.25.07.49.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 07:49:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=gn83dxXALMHX9hShj5DO/MP/66YGPFEzq+6xQ++j3U4=; b=cW ti+yCTkQaaHpPfJoMVl0+TpIYw8zjToZGxnLKYUyt0UeusbQblNGOvDl/4wqR8QW +znAvvLU3OLbdn4iozfVYGzb3JVs+jD87m33av7xI0zjX0VrJLSKWHPW8AEcBmfm dQaWl7JEu4MZz3hX/TZ0TvwxXHUWCx57m0/DmrzYZzrwmJgaJmRzmGHXh0rlxKTZ OXZliZSV8hG1wEC6kfpeMu2swBITfZnl1y3h+ZnKt6/wCAKqSohtEjIXteLqRDvm EsH5ikKR3MZqno3Cf6nZegbiG77RsPcaGiOGhMEMKG8r1/pXEku8CEJXNm2n/jrb X/cn7sW/+Pjlg673JsLA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782398943; x=1783003743; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=gn83dxXALMHX9hShj5DO/MP/66YGPFEzq+6xQ++j3U4=; b=ZIlRY+XZSG6LddweMQyoMtf4jWoUfF/zQ5GSUVFHOreMGLQMoH9Rc3tYVd64QFW9Pr yiQbmhPN/db+vw1qbPMuWWMT3xkoWhyHjTwpTyttXPlCWO51yzMgBpBwqjQpbVKZ0hd9 xxQVSCABauoEy5CyyH0agz5JFvMlcyL+GoPH3IekMZgDm3uJ6WvdVpFXiFf/fNS8GEFi jj6cZkMUwJ39Sacr061vZuN/3h+rXPSIGDx35HA2EGCmgRMSXMtFR6KkaDmXNvnkHgid UyySU26A600V4Z4h5OT1GtraSCA+PhjFtTigHNhGwxkA3ZWbuNHjNR5w6HLpDuB7j8ch aVoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782398943; x=1783003743; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=gn83dxXALMHX9hShj5DO/MP/66YGPFEzq+6xQ++j3U4=; b=lKcUHHSD/xp0AjAe6gEJptKOkCLrdijwUlrfSAmAK+MTspuVAhdNe9VQ70RXEgjk50 ild89d4i/Ebw3uFKrKSEzzsyV3qF6F9JrPG0lw5luGCVim8Zu46S4mJ96ycew/cM4WMG BkgHoLH1nsbFxWaLoiLjnbl/hRA4gIjigNxmPebGUMddX5kEsRJwxbyyT1/vndRNChas esF2JRpwELDZ8JuxhQHw1mukbPez0La+DBenvgjRiWA4fJeqvHdD7ODDtVgRrHmjFVA4 lR1Lc+GNsl8bK+uf5v0XMlteI9vRtLF7YEiJLwFpqa9+7S64bzhkXoEkewqBO4hojS/V W4nA== X-Gm-Message-State: AOJu0YyW9B2eLAFq9ORIKDh5mVWh7qNveq3b136BpVa7BTmlg35pNord 7wWqLSzDkvOf7KflDjmDoAil2wswcqat8KOdSSH7SQvdLJfV/0BQiMDdfKAni7HioK3GckfoVpv iMKvnbezsp4r2+z4KJgShfwkVR1m++JUrXKNACntjEbpMDXVVcUfKx5xqmE5jltvhlg== X-Gm-Gg: AfdE7cm0IPuaFdNUuwiEHv8ccmOZrFyR/AMkE3xs9s/nWxnUb/ifbQG54UVaA1JdNnK y/YlF3O59TaNOX0sy0yIC/RBwqsfNchY6k/7wpARPjWtBfT6+kxAfh+XkqVPXCVdChCelC9Ayd7 xGeacHugDGQ5csSVvRTUwp6F3T7EdzsJMK8kuEJu5E2ToJoEv+VveHCWpCBI3RE6YBpO6bdITBv 2UOmIaEp3g3hUiziNf4z5S9iLVUbqbxzelh0Du/EgKzO6iv6L80Eql2z4xOmgMTxBZzYT2HJzKO ANTnkHdNxM/zyGOsJ58y0afUXd4e+cSsukmjwL/niwvq2GGU++kkA3YVTydxuU0AVeCvjOCO9uK kdujK1nM58QtLtsDHkROxW6byLDNvIyJtn0/N8TuoUmTvx61TbTnW9XTSSDw= X-Received: by 2002:a05:7300:80cc:b0:30c:1fb5:94b1 with SMTP id 5a478bee46e88-30c5553657amr12583310eec.6.1782398943126; Thu, 25 Jun 2026 07:49:03 -0700 (PDT) X-Received: by 2002:a05:7300:80cc:b0:30c:1fb5:94b1 with SMTP id 5a478bee46e88-30c5553657amr12583260eec.6.1782398942358; Thu, 25 Jun 2026 07:49:02 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Fabiano Rosas , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Laurent Vivier , Paolo Bonzini Subject: [PULL v3 76/76] tests/qtest: Add hexagon boot-serial-test Date: Thu, 25 Jun 2026 07:16:33 -0700 Message-Id: <20260625141633.449487-77-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> References: <20260625141633.449487-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfX5Zvelo9rB4kS uPNLhdphuU1kSjQRx1oLyFugHtGs0niolAGWy5gBDDCT+M0evF/pivsD0kM0DKptM6Ic+4Enmn9 jdJRJ4eZwyGqP+gnzuV/WdjTfM56SrA= X-Proofpoint-ORIG-GUID: 22fxd8sGpFdFr_rzbNOx1-udpL6jNUCB X-Proofpoint-GUID: 22fxd8sGpFdFr_rzbNOx1-udpL6jNUCB X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDEyNyBTYWx0ZWRfXzdvEuOEdJ+ye bwfYxZKep1KRjgc/VHV9VBWmS3//CmytwjI0nTPpCBSu14JmUBpnEoN1+sGLvGy+9Lea+mJQwj+ Ow/fuJ+lmAAKaJBoWL2Xv3d5VHg0XiGBsrqbkVqi/dJxlr/x7/0aAGkyi+HQWZOCRtw2O3LBNiG GZ6yyDeDfuEktwsw3rlcbPfWdBEA15XY0P5xrRZYwIdUnCP6Rm0YSvqHHeEEOKjGjrTlmthIKRa xDfIFvuWQKZvjW2qmBe839tPLJUugF+Bu+/qYaNA4DKUunfufZ9AMqlXNJ1Zv2ocdVcQNMl4UbV qcprTSziF6XL1JYxzGo2VWKD8rKEc6kKXfFy+iVEURshnQunvPim6Lc5gtPFzyJEufpj1mzqmQn V1dgmPr9WDNy5zQPS00KXiRs3HTUzEUBZ2J7TvgmUJWViUfcXL/dLty5eJxVT1hdr9Ld3T2G018 XPRZU1C5cWKB/YkTuaw== X-Authority-Analysis: v=2.4 cv=HdckiCE8 c=1 sm=1 tr=0 ts=6a3d3fdf cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=_K2MQWaM9sUw3x3I4k0A:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_01,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 impostorscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 suspectscore=0 clxscore=1015 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250127 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=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: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782399132438158500 Content-Type: text/plain; charset="utf-8" Add boot-serial-test support for Hexagon architecture using the virt machine. Reviewed-by: Fabiano Rosas Acked-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- tests/qtest/boot-serial-test.c | 8 ++++++++ tests/qtest/meson.build | 2 ++ 2 files changed, 10 insertions(+) diff --git a/tests/qtest/boot-serial-test.c b/tests/qtest/boot-serial-test.c index bcd0a9c50e7..37fee7a91c4 100644 --- a/tests/qtest/boot-serial-test.c +++ b/tests/qtest/boot-serial-test.c @@ -142,6 +142,13 @@ static const uint8_t kernel_stm32vldiscovery[] =3D { 0x04, 0x38, 0x01, 0x40 /* 0x40013804 =3D USART1 TXD */ }; =20 +static const uint8_t bios_hexagon[] =3D { + 0x00, 0x40, 0x00, 0x01, /* immext(#0x10000000) */ + 0x00, 0xc0, 0x00, 0x78, /* r0 =3D ##0x10000000 */ + 0x54, 0xc0, 0x00, 0x3c, /* memb(r0+#0) =3D #0x54 Write= 'T' */ + 0xf8, 0xff, 0xff, 0x59 /* jump 0x0 ; Loop back to sta= rt */ +}; + typedef struct testdef { const char *arch; /* Target architecture */ const char *machine; /* Name of the machine */ @@ -194,6 +201,7 @@ static const testdef_t tests[] =3D { { "arm", "microbit", "", "T", sizeof(kernel_nrf51), kernel_nrf51 }, { "arm", "stm32vldiscovery", "", "T", sizeof(kernel_stm32vldiscovery), kernel_stm32vldiscovery }, + { "hexagon", "virt", "", "TT", sizeof(bios_hexagon), NULL, bios_hexago= n }, =20 { NULL } }; diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build index 4897325d84a..b2d36499d27 100644 --- a/tests/qtest/meson.build +++ b/tests/qtest/meson.build @@ -295,6 +295,8 @@ qtests_riscv64 =3D ['riscv-csr-test'] + \ ['iommu-riscv-test'] : []) + \ (config_all_devices.has_key('CONFIG_K230') ? ['k230-wdt-test'] : []) =20 +qtests_hexagon =3D ['boot-serial-test'] + qos_test_ss =3D ss.source_set() qos_test_ss.add( 'ac97-test.c', --=20 2.34.1